Caching 缓存分析-计算机体系结构

Caching 缓存分析-计算机体系结构,caching,computer-architecture,Caching,Computer Architecture,这是计算机体系结构课程中的一个问题,给我带来了一些麻烦: 您有一个应用程序,其内存访问模式为流,其整个数据集为128kB。计算机中的数据缓存容量为64kB。它是字寻址的,直接映射32B行。它一次只能取一行 给定访问模式:0、4、8、12、16、20、24、28、32、36、40、…、32768,其中每个访问都是一个4B字 错过率是多少 使用更大的缓存是否可以降低未命中率 如果数据集的大小减小,是否可以降低未命中率 我认为是这样的:缓存最初是空的,这意味着每次访问都会导致强制的未命中。那么这是否意

这是计算机体系结构课程中的一个问题,给我带来了一些麻烦:

您有一个应用程序,其内存访问模式为流,其整个数据集为128kB。计算机中的数据缓存容量为64kB。它是字寻址的,直接映射32B行。它一次只能取一行

给定访问模式:0、4、8、12、16、20、24、28、32、36、40、…、32768,其中每个访问都是一个4B字

  • 错过率是多少
  • 使用更大的缓存是否可以降低未命中率
  • 如果数据集的大小减小,是否可以降低未命中率
  • 我认为是这样的:缓存最初是空的,这意味着每次访问都会导致强制的未命中。那么这是否意味着未命中率为100%,因为最初没有加载数据,并且模式没有两次命中任何地址


    任何有助于理解这一点的人都将不胜感激

    请注意,缓存线的长度为32B,这意味着当加载地址0时,将收到地址4、8、…、28,所有这些都将命中缓存。所以你的失误率是4/32=1/8=12.5%。更大的缓存或减少数据集都无济于事,因为所有未命中都是强制未命中。但添加预取器将有助于降低未命中率。

    计算机科学杂志在:+1上回答了这个问题。这个答案很有用,但可能有助于解释为什么所有未命中都是首次访问/强制未命中(无重复引用的流式访问)。