考虑一个数组A [999],每个元素占用4个字。使用了32个字的高速缓存,并将其划分为16个字的块。以下语句的未命中率是多少。假设在未命中的情况下将一个块读入高速缓存:
for(i=0; i < 1000; i++)
A[i] = A[i] + 99
(A) 0.125
(B) 0.875
(C) 0.75
(D) 0.50答案: (A)
说明:由于有16个字块,因此4个元素可以留在一个块中。现在注意,每个元素被引用两次,一次读取和一次写入操作。
因此,当在一个块中引用第一个元素进行读取时,它将被丢失,因此该块将被复制到缓存中。
现在将对该第一个元素的第二,第三和第四引用进行读取和写入。因此,在8个参考中,有1个未命中,7个命中一个盖帽。为每个块重复。
因此,击中7/8而错过1/8。
选项(A)是正确的。
这个问题的测验