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