某计算机的主存地址空间大小为256MB,按字节编址。指令Cache和数据Cache分离,均有8个Cache行,每个Cache行大小为64B,数据Cache采用直接映射方式。现有两个功能相同的程序A和B,其伪代码如下: 假定int类型数据用32位补码表示,

admin2015-12-30  25

问题 某计算机的主存地址空间大小为256MB,按字节编址。指令Cache和数据Cache分离,均有8个Cache行,每个Cache行大小为64B,数据Cache采用直接映射方式。现有两个功能相同的程序A和B,其伪代码如下:

假定int类型数据用32位补码表示,程序编译时i、j、sum均分配在寄存器中,数组a按行优先方式存放,其首地址为320(十进制数)。
请回答下列问题,要求说明理由或给出计算过程。
数组元素a[0][31]和a[1][1]各自所在的主存块对应的Cache行号分别是多少(Cache行号从0开始)?

选项

答案数组a在主存的存放位置及其与Cache之间的映射关系如下图所示。 [*] 数组按行优先方式存放,首地址为320,数组元素占4个字节。a[0][31]所在的主存块对应的Cache行号为(320+31×4)/64=6;a[1][1]所在的主存块对应的CaChe行号为(320+256×4+1×4)/64%8=5。

解析
转载请注明原文地址:https://kaotiyun.com/show/asRi777K
0

最新回复(0)