缓存:块大小和未命中率

Caching: Block Sizes and Miss Rates

给定一个具有单向关联性的缓存大小,为什么增加块大小会降低未命中率?使用固定的缓存大小,我们存储的数据量是否相同,这意味着我们将同样准确地获取数据?

好问题。

在缓存大小固定的情况下,增加块大小会使我们存储 less 个块,从而保持数据的 net size相同,但存储(在缓存中)的数据总体上在内存中的分布较少,因为数据总体上属于较少的块。因此,由于空间局部性原则,我们必须多次访问内存才能获取新块。 (这是因为我们会比其他情况下更可能使用我们已经拥有的内存。)因此,未命中率的减少.

但是,未命中惩罚会因此增加。这是因为如果发生未命中,我们需要将更多数据复制到缓存中。 (我们必须将 16 KB 的块而不是 4 KB 的块加载到缓存中。