gpt4 book ai didi

caching - 为什么在大多数处理器中,L1 缓存的大小都小于 L2 缓存的大小?

转载 作者:IT王子 更新时间:2023-10-28 23:29:03 26 4
gpt4 key购买 nike

为什么大部分处理器的L1缓存比L2缓存小?

最佳答案

L1 与 CPU 内核非常紧密耦合,并且在每次内存访问时都会被访问(非常频繁)。因此,它需要非常快地返回数据(通常在时钟周期内)。延迟和吞吐量(带宽)对于 L1 数据缓存来说都是性能关键。 (例如四个周期延迟,并支持 CPU 内核每个时钟周期进行两次读取和一次写入)。它需要大量的读/写端口来支持这种高访问带宽。使用这些属性构建大型缓存是不可能的。因此,设计师将其保持小,例如目前大多数处理器为 32KB。

L2 仅在 L1 未命中时访问,因此访问频率较低(通常为 L1 的 1/20)。因此,L2 可以具有更高的延迟(例如从 10 到 20 个周期)并且具有更少的端口。这让设计师可以把它做得更大。


L1 和 L2 扮演着非常不同的角色。如果 L1 变得更大,它将增加 L1 访问延迟,这将大大降低性能,因为它会使所有相关负载变得更慢,更难隐藏乱序执行。 L1 大小几乎没有争议。

如果我们删除 L2,L1 未命中将不得不进入下一个级别,例如内存。这意味着大量访问将进入内存,这意味着我们需要更多的内存带宽,这已经是一个瓶颈。因此,保持 L2 左右是有利的。

专家通常将 L1 称为延迟过滤器(因为它使 L1 命中的常见情况更快),将 L2 称为带宽过滤器,因为它减少了内存带宽的使用。

注意:我假设了 2 级 cache hierarchy在我的论点中使其更简单。在当今的许多多核芯片中,所有内核之间共享一个 L3 缓存,而每个内核都有自己的私有(private) L1,也许还有 L2。在这些芯片中,共享的最后一级缓存(L3)起到内存带宽过滤器的作用。 L2 起到片上带宽过滤器的作用,即它减少了对片上互连和 L3 的访问。这让设计人员可以使用像环这样的带宽较低的互连,以及使用速度较慢的单端口 L3,从而使 L3 更大。

也许值得一提的是,端口数量是一个非常重要的设计点,因为它会影响缓存消耗多少芯片面积。端口向缓存中添加了线路,这会消耗大量芯片面积和功率。

关于caching - 为什么在大多数处理器中,L1 缓存的大小都小于 L2 缓存的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4666728/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com