跳转到主要内容

2.8 结束语:展望未来

过去三十年间,曾有人多次预言,计算机性能的提升即将停滞。每一次这样的预测都错了。它们之所以错,是因为依赖了未曾明说、后来又被事实推翻的假设。例如,由于未能预见从分立元件到集成电路的转变,有人曾预测,光速的限制会使计算机速度的上限比今天慢几个数量级。我们对存储墙的预测很可能也会出错,但它提醒我们,必须开始跳出既有框架思考。

——Wm. A. Wulf 和 Sally A. McKee,Hitting the Memory Wall: Implications of the Obvious,University of Virginia 计算机科学系,1994 年 12 月。这篇论文提出了 memory wall(存储墙)一词。1

使用存储层次结构的构想,可以追溯到 20 世纪 40 年代末至 50 年代初通用数字计算机诞生之时。虚拟内存在 60 年代初用于研究型计算机,70 年代进入 IBM 大型机。缓存也在大致同一时期出现。此后,这些基本概念不断扩展和完善,以缩小主存与处理器之间的访问时间差距,但基本思想始终未变。近年来,多种因素汇聚,使得过去 25 年一直由先进存储层次结构克服的存储墙,再次成为性能提升的重要限制。

一个正在显著改变存储层次结构设计的趋势,是 DRAM 密度提升和访问时间改善的持续放缓。过去 15 年都能观察到这两个趋势,最近 5 年尤其明显。虽然 DRAM 带宽有所增加,访问时间的缩短却缓慢得多,从 DDR4 到 DDR5 甚至没有改善。Dennard 缩放规律失效与 Moore 定律放缓都促成了这一局面。DRAM 使用的沟槽电容设计也限制了其缩放能力。堆叠内存等封装技术,很可能成为改善 DRAM 访问带宽和延迟的主要来源。最近,采用新半导体工艺时,SRAM 的性能改善也不如逻辑电路明显。

因此,我们看到多种因素会阻碍存储层次结构性能的提高:

  • DRAM 延迟没有改善,密度提升幅度减小。
  • SRAM 访问时间的改善幅度减小,每位功耗也几乎没有改善。
  • 增大 LLC 容量或增加缓存级数,所得收益逐渐递减。
  • 越来越多的应用以流式方式处理极大的数据集,时间和空间局部性较低,包括图形和深度神经网络;见第 4 章和第 7 章。

这些因素共同增强了存储墙的影响,而此前我们已经将它挡在门外 25 年。正如第 4 章和第 7 章将展示的,对某些应用而言,最佳办法可能是采用不同的存储组成;Cray 早在 50 年前设计的一台超级计算机中,就实践了这一认识!

不论 DRAM 和 SRAM 如何发展,Flash 都在发挥越来越大的作用。Flash 已主导 PMD 存储 15 年,并在近 10 年前成为笔记本电脑的标准配置。过去几年,多数台式机出厂时也已将 Flash 作为主要辅助存储器。Flash 相对 DRAM 的潜在优势,特别是不必为每一位配置控制写入的晶体管,也恰恰是其弱点:Flash 必须采用成批擦除再写入的周期,而这一过程慢得多。因此,虽然 Flash 已成为增长最快的辅助存储形式,DDR DRAM 仍然主导主存。

尽管以相变材料制造存储器的构想已存在一段时间,它却一直未能成为磁盘或 Flash 的有力竞争者。这项技术似乎比 Flash 有若干优势,包括消除缓慢的先擦除后写入周期,以及更长的使用寿命;但迄今尚未取得显著的商业成功。

多年来,人们不断预言存储墙即将到来,见前面的引语及论文,认为它将严重限制处理器性能。幸运的是,缓存扩展到更多层级,从 2 级发展到 4 级,更复杂的回填和预取机制,编译器与程序员对局部性重要性的更深认识,以及 DRAM 带宽的巨大提升——自 20 世纪 90 年代中期以来超过 200 倍——共同帮助我们抵御了存储墙。

近年来,L1 容量受到访问时间约束,而访问时间又受时钟周期限制;L2 和 L3 容量则受到能耗方面的限制。这些因素带来了新的挑战。i7 与 i9 处理器核在大约十二年间的演进正说明了这一点:L1 指令缓存容量没有变化,数据缓存也只增长了 50%!更积极地使用预取,正是为了弥补 L2 和 L3 无法继续增大的限制。

除了依靠多级缓存,还可以引入支持多个未完成未命中的乱序流水线,利用已有的指令级并行性,隐藏带缓存系统中尚未消除的内存延迟。引入多线程和更多线程级并行性,又将这一思路推进了一步:并行性更大,隐藏延迟的机会也更多。很可能,利用指令级与线程级并行性,会成为隐藏现代多级缓存系统各种内存延迟的更重要手段。

一个不时被重新提出的构想,是使用由程序员控制的 scratchpad,即软件显式管理的高速暂存存储器,或其他对软件可见的高速存储器。我们将看到,GPU 和领域专用体系结构会采用这类存储,见第 7 章。它们一直没有成为通用处理器的主流,原因有几方面。首先,引入行为不同的地址空间会打破原来的内存模型。其次,与编译器或程序员实施的缓存优化,例如预取,不同,使用 scratchpad 的存储变换必须完整处理从主存地址空间到 scratchpad 地址空间的重新映射。这使变换更难实施,也限制了适用范围。

GPU(见第 4 章)和领域专用体系结构(见第 7 章)大量使用本地 scratchpad,目前管理它们的负担仍落在程序员和编译器身上。对于能够利用这种存储的领域专用软件系统,性能收益非常显著。HBM 技术是图形及类似系统的主要工作内存。领域专用体系结构在克服 Dennard 缩放规律失效和 Moore 定律放缓带来的限制方面,已变得更加重要,见第 7 章;这也让 scratchpad 和类似向量的寄存器组越来越普遍。

Dennard 缩放规律失效同时影响 DRAM 和处理器技术。由于 DRAM 的独特结构,其受到的影响稍大一些;但无论逻辑还是存储,都受到功率上限和 Moore 定律放缓的制约。要延续过去 50 年间的性能提升,关键在于计算机体系结构与相关软件的共同创新,同时提高性能和效率。


  1. 译注: 引文原文将“即将”写作 eminent,并附有作者保留原误的 [sic] 标记;按语义应为 imminent。中文译文按“即将”表达,特在此保留原书的用词提示。 ↩︎