为什么 L1 缓存的大小在过去 20 年中没有增加太多?

ele*_*n81 45 cpu progress architecture cpu-cache

英特尔的i486有8 KB的L1缓存。在英特尔的Nehalem具有32 KB L1指令高速缓存,每个核心32 KB L1数据高速缓存。

L1 缓存的数量几乎没有以时钟频率增加的速度增加。

为什么不?

JMD*_*JMD 19

30K 的 Wikipedia 文本并没有解释为什么太大的缓存不是最佳的原因。当缓存变得太大时,在缓存中查找项目的延迟(考虑缓存未命中)开始接近在主内存中查找项目的延迟。我不知道 CPU 设计人员的目标是什么比例,但我认为这类似于 80-20 准则:您希望 80% 的时间在缓存中找到最常见的数据,而其他 20 % 的时间你必须去主内存找到它。(或任何 CPU 设计者想要的比例。)

编辑:我确定它远不及 80%/20%,所以替换 X 和 1-X。:)

  • “当缓存变得太大时,在缓存中查找项目的延迟(考虑缓存未命中)开始接近在主内存中查找项目的延迟。” 你确定吗?例如,将安装的 RAM 数量加倍肯定不会增加它的延迟,为什么缓存会这样?而且,如果这是一个问题,为什么 L2 缓存会随着新 CPU 的增加而变得更大?我不是这方面的专家,我真的很想知道:) (8认同)
  • 根据我在低级别摆弄硬件的悠久历史,但实际上并不是设计师,我认为延迟似乎与缓存关联的方式有关,而不是大小。我的猜测是,进入缓存的额外晶体管已被证明在其他地方对整体性能更有效。 (5认同)
  • 我已经准备了一个大而长的软件缓存描述,并测量缓存何时超出自身并应该转储/重建,但后来我决定最好承认我不是硬件设计师。:) 在任何一种情况下,我怀疑答案都可以用收益递减规律来总结。即更多并不总是更好。 (2认同)

小智 12

一个因素是 L1 提取在 TLB 转换完成之前开始,以减少延迟。使用足够小的缓存和足够高的方式,缓存的索引位在虚拟地址和物理地址之间将相同。这可能会降低使用虚拟索引、物理标记的缓存来保持内存一致性的成本。

  • 最有趣的答案:) (3认同)

Cof*_*per 10

缓存大小受许多因素影响:

  1. 电信号的速度(如果不是光速,应该是相同数量级的):

    • 一微秒300米。
    • 一纳秒 30 厘米。
  2. 经济成本(不同缓存级别的电路可能不同,某些缓存大小可能不值得)

    • 将缓存大小加倍不会使性能加倍(即使物理允许该大小工作),对于小尺寸,加倍提供的性能远不止两倍,对于大尺寸,将缓存大小加倍几乎不会带来额外的性能。
    • 在维基百科上,您可以找到一个图表,显示例如使缓存大于 1MB 是多么不值得(实际上存在更大的缓存,但您必须记住这些是多处理器内核。)
    • 对于 L1 缓存,应该有一些其他图表(供应商没有显示)可以方便地使用 64 Kb 作为大小。

如果 L1 缓存大小在 64kb 之后没有改变,那是因为它不再有价值。另请注意,现在关于缓存的“文化”更加浓厚,许多程序员编写“缓存友好”代码和/或使用 prefetech 指令来减少延迟。

我曾经尝试创建一个简单的程序,该程序访问数组(几个兆字节)中的随机位置:该程序几乎冻结了计算机,因为对于每次随机读取,整个页面都从 RAM 移动到缓存,并且因为经常这样做,所以很简单程序耗尽了所有带宽,为操作系统留下了很少的资源。


And*_*gan 6

我相信可以简单地总结一下,缓存越大,访问速度就越慢。因此,更大的缓存根本无济于事,因为缓存旨在减少与 RAM 的慢速总线通信。

由于处理器的速度一直在快速增长,因此相同大小的缓存必须执行得越来越快才能跟上它。因此缓存可能明显更好(在速度方面),但在存储方面则不然。

(我是一名软件人员,所以希望这不是大错特错)


har*_*ymc 5

L1 缓存

一级缓存或主缓存位于 CPU 上,用于临时存储以 32 字节块为单位的指令和数据。主缓存是最快的存储形式。由于它内置于芯片中,并具有 与处理器执行单元的零等待状态(延迟)接口,因此它的大小受到限制

SRAM 每位使用两个晶体管,只要电路有电源,就可以在没有外部帮助的情况下保存数据。这与动态 RAM (DRAM) 形成对比,动态 RAM (DRAM) 必须每秒刷新多次才能保存其数据内容。

英特尔于 1997 年初推出的 P55 MMX 处理器因其一级缓存的大小增加到 32KB 而引人注目。当年晚些时候推出的 AMD K6 和 Cyrix M2 芯片通过提供 64KB 的一级缓存进一步提高了赌注。64Kb 仍然是标准的 L1 缓存大小,尽管各种多核处理器可能会以不同的方式使用它。

编辑:请注意,这个答案是从 2009 年开始的,CPU 在过去 10 年中发生了巨大的发展。如果您已经到了这篇文章,请不要太认真地对待我们在这里的所有答案。