文章
19
粉丝
0
获赞
0
访问
660
(1)8*(1+19+64*8)=4272bit
(2)
计算 a[0][31]
的地址和 Cache 行号:
计算 a[0][31]
的偏移地址:
a[0][31]
相对于 a[0][0]
的偏移量是 31 * sizeof(int)
。
偏移量 = 31 * 4B = 124B
计算 a[0][31]
的绝对地址:
绝对地址 = 数组首地址 + 偏移量
绝对地址 = 320 + 124 = 444 (十进制)
转换为十六进制:444 = 0x1BC
确定 Cache 行号:
将地址 0x1BC
(二进制 00...001 1101 1100
) 拆分为 Tag、Index、Offset。
为了清晰表示,我们从最低位开始数:
Offset (6位): 11 1100
(4C H)
Index (3位): 110
(6)
Tag (19位): 0000000000000000001
(1 H)
完整地址 (28位): 0000000000000000001
(Tag) 110
(Index) 111100
(Offset)
所以,a[0][31]
所在的主存块对应的 Cache 行号是 6。
计算 a[1][1]
的地址和 Cache 行号:
计算 a[1][1]
的偏移地址:
a[1][1]
相对于 a[0][0]
的偏移量是 (1 * 256 + 1) * sizeof(int)
。
偏移量 = (256 + 1) * 4B = 257 * 4B = 1028B
计算 a[1][1]
的绝对地址:
绝对地址 = 数组首地址 + 偏移量
绝对地址 = 320 + 1028 = 1348...
登录后发布评论
暂无评论,来抢沙发