来源:编译自semiwiki
RVA23 标志着主流 CPU 性能扩展方式的一个转折点。它强制要求使用 RISC-V 向量扩展 (RVV),从而将结构化、显式并行计算提升到与标量执行相同的架构地位。向量计算不再是附加在高负载运算核心上的可选加速器,而是软件可以依赖的基础功能。
RVA23 并非强制标量执行实现确定性,而只是使确定性成为可能,因为标量部分不再负责吞吐量。向量单元显式地处理并行工作,而标量核心则成为一个协调器,在不牺牲性能的前提下,实现简单、可预测和低功耗。
要理解这种转变为何如此重要,不妨回顾一下推测执行是如何彻底主导高性能 CPU 设计的。它确实带来了速度提升,但代价也越来越高——功耗、复杂性、验证负担和安全风险都在增加。RVA23 并非否定推测执行,而是力求恢复平衡。它承认,可预测的、向量驱动的并行计算如今已成为提升性能的可靠主流途径。
强制向量支持从根本上改变了软件性能契约。编译器、库和应用程序现在可以假定每个兼容的核心都存在 RVV(资源向量向量)。优化策略从“让 CPU 猜测”转向显式、结构化的并行处理。工具链必须能够可靠地生成向量代码。数学和 DSP 库可以减少或消除标量回退。应用程序开发人员获得了一个可预测的模型,用于扩展循环和数据并行工作负载。
这种文化转变意义重大:并行性不再是硬件试图推断的东西,而是软件直接表达的东西。对于硬件设计者而言,这种转变虽然不同,但同样意义深远。向量单元现在是强制性的,但规范仍然保留了微架构的自由度。
实现者可以选择通道宽度、流水线深度、指令发出策略和内存设计。改变的是性能重心。设计者不再被迫完全依赖更深层次的推测——更大的分支预测器、更宽的重排序缓冲区和日益复杂的恢复机制——来保持竞争力。
相反,面积和功耗可以转移到向量吞吐量和内存带宽上。对于曾经需要复杂推测性机制的工作负载而言,配备强大向量引擎的更简单的顺序执行内核变得可行。
推测执行并非一蹴而就,而是从放宽严格顺序执行限制的技术中逐步发展而来。1967 年,罗伯特·托马苏洛 (Robert Tomasulo) 在IBM System/360 Model 91上的工作引入了动态调度和寄存器重命名,使得指令可以乱序执行而不违反程序语义。大约在同一时期,詹姆斯·桑顿 (James Thornton) 在CDC 6600中设计的记分板机制,使得流水线在遇到冲突时也能保持运行。这些机制本身并不进行推测,但它们消除了曾经迫使处理器停顿的结构性障碍。一旦乱序执行成为可能,推测便势不可挡。
20世纪70年代末80年代初,詹姆斯·E·史密斯正式提出了分支预测的概念,将推测性操作建立在概率基础之上。内存不再是处理器被动等待的对象,而是需要预先获取的对象。数据在确认需要之前就被提取出来。缓存也从局部性优化器演变为能够吸收推测性执行过程中各种波动的缓冲区。
学术界也强化了这一方向。斯坦福大学和伯克利大学的指令级并行研究将推测视为前进的方向。约翰·亨尼西将推测定义 为一种在不放弃顺序编程的前提下提高性能的方法。大卫·帕特森阐述了“内存墙”的概念,鼓励采用更深层次的缓存和分层存储。
业界纷纷效仿。英特尔奔腾Pro(P6)将具有深度缓存层次结构的推测性乱序执行技术确立为主流CPU模板。IBM POWER和AMD Zen强化了这一模式:通过扩展缓冲、带宽和内存级并行性来支持日益增长的在执行推测性工作量。每一代CPU都在扩展推测能力,而不是质疑它。
随着时间的推移,成本问题变得愈发清晰。在2014年国际计算机科学与技术大会(ISSCC)全体会议上,马克·霍洛维茨指出,能源——而非晶体管密度或原始逻辑速度——已成为计算领域的主要制约因素。算术运算仅消耗几个皮焦耳的能量。缓存访问的成本要高出一个数量级。DRAM访问的成本则要高出两到三个数量级。数据传输而非计算,才是能源消耗的主要来源。
电压调节停滞不前,频率调节也达到了散热极限。简单地增加核心数已无法恢复以往的性能曲线。与此同时,末级缓存和寄存器文件体积庞大,其能耗开始与它们所服务的核心相当,甚至往往超过后者。现代内存层次结构并非独立演进,而是与推测执行协同发展。它们成为支撑大量进行中、不确定工作所需的框架。推测执行旨在优化程序运行的假象。内存系统的存在正是为了维持这种假象,并在预测失败时进行清理。
在 DRAM 层面上,Onur Mutlu展示了现代处理器如何通过干扰、行冲突和不可预测的访问模式来给内存系统带来压力——其中许多并非由已提交的计算驱动,而是由最终会被丢弃的推测驱动。
从这个角度来看,现代CPU内存层次结构并非独立演化而来,而是与推测性乱序执行共同演化,成为支撑这种机制的物理基础。推测性执行的核心在于优化一种错觉——即通过预测未来执行的线程,使单个顺序线程的运行速度看起来更快。
相比之下,确定性执行针对已知因素进行优化。它将延迟视为可调度因素,而不是需要通过不断增加带宽来掩盖的问题。推测性架构通过增加复杂性来弥补不确定性,而确定性架构则通过提高可预测性和持续吞吐量来提升性能。
推测并非不可避免。西摩·克雷的向量机证明,推测绝非唯一的出路。他们完全摒弃了推测,转而依赖可预测的内存步长模式、明确的向量长度和确定性调度。并行性直接暴露在硬件面前,而非通过猜测推断,延迟也需要提前规划,而不是试图隐藏。
他们的内存系统设计旨在实现稳定、高吞吐量的访问,而不是后来推测性架构所需的猜测和恢复行为。从这个意义上讲,Cray 的方法更接近 RVV 的结构化、长度无关模型,而不是后来主导通用 CPU 的推测性超标量架构。
历史上,推测编程之所以能够胜出,是因为它保留了顺序编程模型,并将软件中断降至最低。但这种成功也造成了路径依赖。内存层次结构为了提高推测吞吐量而进行了优化,却导致功耗、验证复杂性和架构不透明性不断增加。
人工智能、机器学习和信号处理工作负载具有结构化特征,并且本质上是数据并行的。它们的访问模式通常是可知的,而非概率性的。在这些领域,显式并行比推测性猜测更具优势。RVA23 通过强制使用 RVV,确保了硬件对这类工作负载的支持。结构化并行从可选扩展转变为架构基线。这并没有消除推测,而是消除了排他性。
诸如 Simplex Micro 探索的那种确定性、基于时间的调度方法等架构,现在可以将向量计算能力作为基础。它们不再弥补推测性计算的低效,而是显式地协调计算和内存。性能的扩展取决于资源利用率和可预测性,而非推测深度。对于向量和矩阵工作负载而言,这与其说是一场革命,不如说是回归到曾经被推测性计算所取代的架构传统。
RVA23 的意义远不止于指令编码。编译器基础设施可以假定支持向量。操作系统可以考虑向量资源进行调度。硬件实现可以优化向量效率,而无需担心生态系统是否会忽略它。三十年来,推测性技术获得了持续的架构投资,而结构化并行技术却没有。
RVA23 改变了这一点。它并非强制放弃推测式架构,而是强制要求架构上的对等性。设计人员可以在适当的情况下同时部署这两种架构,但结构化并行不再是次要的。非此即彼的错误二元论——要么通过推测式架构扩展,要么接受性能下降——不再适用。
借助 RVA23,向量运算能力的不确定性降低,确定性方法能够实现一流性能的疑虑减少,扩展性方面对推测计算的依赖也降低。不再仅仅依赖推测计算来实现扩展。如今的工作负载本身就是并行的,而非通过编译器从顺序代码中巧妙提取而来。对于这类工作负载,推测计算的成本越来越大于其收益。
RVA23 并没有终结投机时代,而是终结了投机垄断。这种转变——而非任何单一的技术特性——或许才是它对处理器架构最重要的贡献。
参考链接:https://semiwiki.com/ip/risc-v/367094-rva23-ends-speculations-monopoly-in-risc-v-cpus/
本文转自:半导体行业观察,转载此文目的在于传递更多信息,版权归原作者所有。如不支持转载,请联系小编demi@eetrend.com删除。





