有如下C语言程序段: 若数组a及变量k均为int型,int型数据占4B,数据Cache采用直接映射方式,数据区大小为1KB、块大小为16B,该程序段执行前Cache为空,则该程序段执行过程中访问数组a的Cache缺失率约为( )。

admin2017-08-16  29

问题 有如下C语言程序段:

若数组a及变量k均为int型,int型数据占4B,数据Cache采用直接映射方式,数据区大小为1KB、块大小为16B,该程序段执行前Cache为空,则该程序段执行过程中访问数组a的Cache缺失率约为(          )。

选项 A、1.25%
B、2.5%
C、12.5%
D、25%

答案C

解析 分析语句“a[k]=a[k]+32”。首先读取a[k]需要访问一次a[k],之后将结果赋值给a[k]需要访问一次,共访问两次。第一次访问a[k]未命中,并将该字所在的主存块调入Cache对应的块中,对于该主存块中的4个整数的两次访问中只在访问第一次的第一个元素时发生缺失,其他的7次访间中全部命中,故该程序段执行过程中访问数组a的Cache缺失率约为1/8(即12.5%)。
转载请注明原文地址:https://kaotiyun.com/show/XDRi777K
0

最新回复(0)