2016 组成原理 cache映射方式cache概念 选择题
第 15 题

有如下 C 语言程序段:

for (k = 0 ;k< a[k]=a[k]+

1000;k++) 32;

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

A. 1.25% B. 2.5% C. 12.5% D. 25%

[tag_link]

正确答案:C

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