【问题标题】:Parallel lookup in L1 / L2 / LLC / DRAM?L1 / L2 / LLC / DRAM中的并行查找?
【发布时间】:2014-07-17 18:43:14
【问题描述】:

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

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

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

【问题讨论】:

  • 除了许多处理器现在是多核的,即使在单核上,您也可能有 DMA 传输。这些将导致总线争用,实际上可能会减慢速度。
  • 不仅避免了并行内存和缓存访问,而且非 L1 缓存通常会在访问任何数据之前检查标签。在多 CPU 系统中,通常在返回一致性响应之前访问内存(因此,如果缓存块存在并且在另一个 CPU 的缓存中是脏的,则内存带宽可能会被浪费——存在但干净将使用内存带宽但在 CPU 间连接中节省一些带宽)。峰值(不太典型)内存带宽低于 L1 带宽并且使用缓存块粒度。

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


【解决方案1】:

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

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

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

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

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

【讨论】:

  • 感谢@aminfar。您是否有任何参考资料支持您的主张?还是硬件供应商为自己保守的秘密?
  • 这根本不是秘密。您可以在主要的计算机体系结构书籍中找到此信息。如果我找到参考,我会在这里发布。
  • 你说得对,缓存越接近查找速度越快,但我将问题理解为“为什么不向所有级别发送并行查找,以减少较长的循环”。在这种情况下,答案可能需要考虑功率和带宽节约。
  • @Leeor 我处理了你的评论。
猜你喜欢
  • 1970-01-01
  • 2020-08-04
  • 1970-01-01
  • 2021-11-13
  • 2013-01-20
  • 2018-11-02
  • 2020-05-19
  • 2015-06-29
  • 2020-06-02
相关资源
最近更新 更多