计算机体系结构-hw9
计算机体系结构-hw9
前言
张科老师的计算机体系结构课后作业,不保证正确,请辩证看待。
Problem 1:
如果存在L3 Cache,AMAT为:
AMAT = 0.98*1 + 0.02(0.99 * 10 + 0.01*(0.995 * 30 + 0.005 * 300)) = 1.18427
another answer: 1000 + 20*10 + 10*30 + 5*300 = 3000
如果不存在L3 Cache,AMAT为:
AMAT = 0.98*1 + 0.02*(0.99*10 + 0.01 * 300)= 1.238
another answer: 1000 + 20*10 + 10*300 = 4200
可以发现:使用L3Cache的(平均)内存访问时间比不使用L3Cache的(平均)内存访问时间更短
所以:需要L3 Cache
Problem 2:
A-组0 B-组1 C-组0 D-组1 E-组0 F-组1 G-组0 这里假设采用LRU置换,估算命中和失效次数:
失效次数:1+1+1+1+...+1 = 11次
命中次数:1+1+1+1+1 = 5次
Problem 3:
由于一个Cacheline大小为64B,8KB的全相联数据缓存阵列,共有Cacheline个数为:
8192B / 64B = 128(个)
- 由于采用全相联映射,因此组个数为1,128路.
- CacheLine大小为64B,按照字节寻址,可以表示64个地址,共用6bits. 因此offset bits为6bits.
- 全相联映射,index bits 为 0.
- 由于地址位为40位。tag bits = 40 - 0 - 6 = 34bits
- 标记数组大小 = 组个数*路个数*tag大小 = 128 * 34 = 4352bits = 544B.
Problem 4:
如果要避免VIPT出现的别名问题,我们应该保证:
page offset >= block index + block offset
明白了上述的内容之后,我们来做一下这道题:
直接映射L1缓存:
- 页面大小16KB,地址以字节寻址,那么一个页面可以表示16K地址。16K = 16 * 1024 = 2^4 * 2^10 = 2^14个地址。共需要14bits.
- 由于缓存块大小32B,可以表示32个地址,2^5个地址。共需要5bits.
- 即 14 >= block index + 5 => 要满足最大,block index 为9bits。
- 9bits共有512路,一路有32B的块。因此:最大映射L1Cache = 512 * 32B = 16KB。
最大二路L1缓存:
- 页面大小16KB,地址以字节寻址,那么一个页面可以表示16K地址。16K = 16 * 1024 = 2^4 * 2^10 = 2^14个地址。共需要14bits.
- 由于缓存块大小32B,可以表示32个地址,2^5个地址。共需要5bits.
- 即 14 >= block index + 5 => 要满足最大,block index 为9bits。
- 9bits共有512个组,一个组有两个块.因此最大二路L1Cache = 512*2*32B = 32KB。
Problem 5:
先给出DRAM的组织结构:
Channel(通道) > DIMM(模组) > Rank(内存组) > Chip(内存芯片) > Bank(内存库) > Row/Column(矩阵行列)
- 共有DIMMs个数 = 2*4*2 = 16DIMMs
- 一个DIMMs有两个2Ranks,因此共有32Ranks
- 一个Rank共有16个chips,因此共有32*16 = 512chips(这里总线的位数是64位,x4代表chip带宽为4位,为了保证最大内存容量,需要16个chips)
- 一个chip4Gb,因此共有512*4Gb = 2048Gb
- 512Gb = 2048 / 8 = 256GB
- 因此服务器支持的最大内存容量为:256GB
Problem 6:
Request | Cache Hit/Miss | Request on the bus | Who responds | State in Cache 1 | State in Cache 2 | State in Cache 3 | State in Cache 4 |
---|---|---|---|---|---|---|---|
Inv | Inv | Inv | Inv | ||||
P1:Rd X | Miss | Rd X | Memory | S | Inv | Inv | Inv |
P2:Rd X | Miss | Rd X | Memory | S | S | Inv | Inv |
P2:Wr X | Perms Miss | Rdx X/Upgrade X | No responds | Inv | M | Inv | Inv |
P3:Wr X | Miss | Wr X | P2 | Inv | Inv | M | Inv |
P3:Rd X | Hit | Inv | Inv | M | Inv | ||
P4:Rd X | Miss | Rd X | P3 responds. Mem wrtbk |
Inv | Inv | S | S |
Problem 7:
Request | Cache Hit/Miss | Messages | Directory State | State in Cache 1 | State in Cache 2 | State in Cache 3 | State in Cache 4 |
---|---|---|---|---|---|---|---|
Inv | Inv | Inv | Inv | ||||
P1:Rd X | Miss | Read request to Directory; Directory responds |
X: S: 1 | S | Inv | Inv | Inv |
P2:Rd X | Miss | Read request to Directory; Directory responds |
X: S: | S | S | Inv | Inv |
P2:Wr X | Perms Miss | Upgrade request to Directory; Directory Inv request P1; P1 Inv response Directory; Directory grants perms to P2; |
X: M: 2 | Inv | M | Inv | Inv |
P3:Wr X | Miss | Write request to Directory; Directory Inv request P2; P2 Inv response Directory with data X; Directory Write response with data X; |
X: M: 3 | Inv | Inv | M | Inv |
P3:Rd X | Hit | X: M: 3 | Inv | Inv | M | Inv | |
P4:Rd X | Miss | P4 Read request to Directory Directory Down request P3 P3 Down response Directory with data X Memory write back Directory responds P4 with data X |
X: S: | Inv | Inv | S | S |
致谢
[1] 以上图片来自于中国科学院大学-计算机体系结构刘珂老师的课程。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现