文章
198
粉丝
0
获赞
2
访问
63.2k
(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...
登录后发布评论
暂无评论,来抢沙发