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

admin2015-12-30  27

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

假定int类型数据用32位补码表示,程序编译时i、j、sum均分配在寄存器中,数组a按行优先方式存放,其首地址为320(十进制数)。
请回答下列问题,要求说明理由或给出计算过程。
程序A和B的数据访问命中率各是多少?哪个程序的执行时间更短?

选项

答案数组a的大小为256×256×4B=218B,占用218/64=212个主存块,按行优先存放,程序A逐行访问数组a,共需访问的次数为216次,未命中次数为212次(即每个字块的第一个数未命中),因此程序A的命中率为(216-212)/216× 100%=93.75%。

解析 考查Cache的组成,主存与Cache的映射关系,Cache的命中率。
转载请注明原文地址:https://kaotiyun.com/show/isRi777K
0

最新回复(0)