【发布时间】:2020-04-20 01:37:32
【问题描述】:
给定一个具有单向关联性的缓存大小,为什么增加块大小会降低未命中率?使用固定的缓存大小,我们存储的数据量不一样吗,这意味着我们将获得同样准确的数据?
【问题讨论】:
给定一个具有单向关联性的缓存大小,为什么增加块大小会降低未命中率?使用固定的缓存大小,我们存储的数据量不一样吗,这意味着我们将获得同样准确的数据?
【问题讨论】:
好问题。
在缓存大小固定的情况下,增加块大小会导致我们存储 less 个块,保持数据的 net size 相同,但存储的数据(在缓存)总体上在内存中的分布会更少,因为数据总体上属于较少的块。因此,由于空间局部性原则,我们必须多次访问内存才能获取新块。 (这是因为我们将使用我们已经拥有的内存,而不是其他方式。)因此,未命中率降低。
但是,未命中惩罚会因此而增加。这是因为如果发生未命中,我们需要将更多数据复制到缓存中。 (我们必须将 16 KB 块而不是 4 KB 块加载到缓存中。
【讨论】: