在L1 / L2 / LLC / DRAM中进行并行查找?

时间:2014-07-17 18:43:14

标签: computer-architecture cpu-architecture cpu-cache mmu

这是一个奇怪的问题,但也许这里有人知道: 参考Intel / AMD最新处理器, CPU是否同时查找缓存和DRAM?

这可能是节省周期的好方法(但可能更耗电)。

任何答案(最好带参考)都会有所帮助。 谢谢!

1 个答案:

答案 0 :(得分:3)

简单的答案是否定的。处理器通常首先查找L1。在L1未命中的情况下,它会查找L2。如果没有,它会查找DRAM。

缓存层次结构的重点是通过将最常访问的数据存储在缓存中来获得更快的数据访问。与缓存相比,DRAM相当慢。随着缓存级别的增加(例如,从L1变为L2),访问延迟和容量也会增加。

为什么不向所有级别发送并行查找?这是因为能量和带宽的对话。查找所有缓存和DRAM(如果可能)会产生大量的能量开销。此外,当您遍历内存层次结构(例如,从上一级缓存到DRAM)时,带宽会下降。因此,实际上,如果高速缓存不过滤大多数请求,则DRAM不能提供足够的带宽来跟上处理器请求。简而言之,并行查找是不可行的。如果你真的很感兴趣,你可以看一下最近的paper,它提出了一种在缓存层次结构中定位数据的方法,而不是遍历缓存层次结构(这是常用的方法)。该提案的主要目标是通过消除不必要的缓存查找来节省能源。

注1:我在这里忽略了连贯性。

注2:可能有L3,甚至L4。此外,某些I / O设备可能使用DMA引擎直接连接到DRAM。