假定主存地址为32位,按字节编址,指令Cache和数据Cache与主存之间均采用8路组相联映射方式、直写(Write Through)写策略和LRU替换算法,主存块大小为64B,数据区容量各为32KB,开始时Cache均为空。请回答下列问题: 有如下C语

admin2021-03-17  36

问题 假定主存地址为32位,按字节编址,指令Cache和数据Cache与主存之间均采用8路组相联映射方式、直写(Write Through)写策略和LRU替换算法,主存块大小为64B,数据区容量各为32KB,开始时Cache均为空。请回答下列问题:
有如下C语言程序段:

若数组s及其变量k均为int型,int型数据占4B,变量k分配在寄存器中,数组s在主存中的起始地址为0080 00COH,则该程序段执行过程中,访问数组s的数据Cache缺失次数为多少?

选项

答案因为数组s的起始地址最后6位全为0,故s位于一个主存块开始处,占1024×4B/64B=64个主存块;执行程序段过程中,每个主存块中的64B/4B=16个数组元素依次读、写1次,因而对于每个主存块,总是第一次访问缺失,以后每次命中。综上,数组s的数据Cache访问缺失次数为64次。

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

相关试题推荐
最新回复(0)