
聚焦 CPU 架构的革新方向 —— 确定性 CPU,探讨其如何突破传统投机执行的局限,为 AI 性能带来可预测性。
过去三十多年来,现代 CPU 一直依赖投机执行技术来保持流水线的高效运转。这项技术在 20 世纪 90 年代问世时,与更早时期的流水线技术、超标量执行技术一样,被誉为微架构领域的突破性成果,每一次技术革新都标志着 CPU 架构的代际飞跃。通过预测分支结果和内存加载情况,处理器能够避免流水线停滞,确保执行单元始终处于忙碌状态,从而提升运算效率。
然而,这种架构转变并非毫无代价。当预测失败时,会造成大量能源浪费;同时,投机执行还增加了 CPU 设计的复杂性,更引发了 Spectre(幽灵)、Meltdown(熔断)等严重的安全漏洞。这些问题为另一种替代方案 —— 确定性、基于时间的执行模型 —— 创造了发展空间。正如大卫・帕特森(David Patterson)在 1980 年所言:“精简指令集计算机(RISC)或许只需通过更简洁的设计就能提升速度。” 这一 “简洁性原则” 为投机执行的替代方案奠定了理论基础,而确定性、基于时间的执行模型正是这一原则的现代实践。
自投机执行成为 CPU 架构的主流范式以来,一种根本性的全新架构方案终于应运而生。这一突破体现在近期美国专利商标局(USPTO)获批的六项美国专利中,这些专利共同提出了一种截然不同的指令执行模型。该模型彻底脱离传统投机技术的框架,用基于时间、可容忍延迟的机制取代了 “猜测式” 执行。在这种架构中,每条指令都会在流水线中被分配一个精确的执行时隙,最终形成严格有序、可预测的执行流程,重新定义了现代处理器处理延迟和并发的方式,实现了更高的效率与可靠性。
确定性 CPU 的核心是一个简单的时间计数器,它能确定地设定未来指令的精确执行时间。每条指令在被分配到执行队列时,都会根据数据依赖关系的解析结果和资源(包括读取总线、执行单元、寄存器文件的写入总线)的可用情况,被预设一个执行时间。指令会在队列中等待,直到预设的执行时隙到来才会启动执行。这种全新的确定性方案,或许是自投机执行成为行业标准以来,首个对其构成重大挑战的主流架构。
该架构天然支持矩阵计算,目前已有一项 RISC-V 指令集提案正在社区评审中。其可配置的通用矩阵乘法(GEMM)单元,规模可从 8×8 扩展至 64×64,既支持基于寄存器的操作数,也支持直接内存访问(DMA)供给的操作数。这种灵活性使其能够适配各类 AI 和高性能计算(HPC)负载。初步分析显示,该架构的可扩展性可与谷歌 TPU 核心相媲美,同时在成本和功耗需求上显著更低。
若要准确定位这种架构,不应将其与通用 CPU 直接对比,而更适合参考向量和矩阵引擎:传统 CPU 仍依赖投机执行和分支预测,而该设计则将确定性调度直接应用于 GEMM 单元和向量单元。其效率优势不仅来自可配置的 GEMM 模块,更源于基于时间的执行模型 —— 指令会根据操作数就绪情况和资源可用性,被解码并分配精确的执行时隙。在这种模型中,执行流程绝非在多个候选方案中随机选择或依赖启发式算法,而是遵循预先规划的可预测路径,确保计算资源持续处于高效利用状态。未来计划开展的矩阵基准测试,将直接对比该架构与 TPU 的 GEMM 实现,凸显其在无需数据中心级开销的前提下,实现数据中心级性能的能力。
有批评者可能认为,静态调度会增加指令执行的延迟。但实际上,延迟本身早已存在 —— 无论是等待数据依赖关系解决,还是等待内存读取完成。传统 CPU 试图通过投机执行掩盖这种延迟,但一旦预测失败,流水线刷新会带来额外延迟并浪费电力。而时间计数器方案则正视延迟的存在,通过确定性地填充有效工作来利用这段时间,避免了回滚操作。正如相关专利所指出的,这种架构下的指令仍能保持乱序执行的效率:“配备时间计数器、用于静态分配指令的微处理器,可基于预测时序实现执行,无需投机式发布和恢复机制”,既保留了预设执行时间的优势,又省去了寄存器重命名或投机比较器带来的开销。
要理解确定性 CPU 的价值,需先明确投机执行为何陷入瓶颈。投机执行通过在结果确定前提前预测并执行指令,再在猜测错误时丢弃无效结果,以此提升性能。这种方式虽能加速部分工作负载,但也引入了性能不可预测性和功耗低效问题。预测失误会向流水线中注入 “空操作”(No Ops),导致执行停滞,同时浪费大量能源在未完成的无效工作上。
这些问题在现代 AI 和机器学习(ML)负载中更为突出。此类负载以向量和矩阵运算为主,且内存访问模式极不规则。长时读取、不可缓存加载和未对齐向量等情况,常会触发投机架构中的流水线刷新,进而导致 “性能断崖”—— 性能会随数据集和问题规模的变化剧烈波动,使得持续优化几乎不可能实现。更严重的是,投机执行带来的副作用还暴露了安全漏洞,引发了多起高关注度的安全攻击事件。随着数据密集型任务增多、内存系统压力增大,投机执行已难以维持其最初承诺的 “无缝加速” 效果,逐渐成为性能提升的障碍。
确定性 CPU 架构的核心创新,是一款配备时间计数器的向量协处理器,用于静态分配指令。与投机执行不同,该架构仅在数据依赖关系和延迟窗口完全明确后,才会发布指令。这一设计彻底消除了 “猜测” 环节和高昂的流水线刷新成本,同时保留了乱序执行的吞吐量优势。基于该专利框架构建的架构,通常具备 12 级深度流水线,配合支持 8 路解码的宽前端和容量超过 250 项的大型重排序缓冲区,进一步提升了执行效率。
从架构框图(图 1)可见,该处理器在顶层与传统 RISC-V 处理器类似,指令读取和解码阶段会向执行单元输送指令。其创新点在于时间计数器和寄存器计分板的整合 —— 这两个组件被巧妙地置于读取 / 解码阶段与向量执行单元之间。该架构不再依赖投机比较器或寄存器重命名,而是通过寄存器计分板和时间资源矩阵(TRM),基于操作数就绪情况和资源可用性,实现指令的确定性调度。
在确定性处理器上运行程序的初始阶段,与传统 RISC-V 系统基本一致:指令从内存中读取并解码,以判断其属于标量、向量、矩阵还是自定义扩展指令。两者的差异体现在指令分配阶段。确定性处理器不会投机式发布指令,而是借助周期精确的时间计数器与寄存器计分板协作,精准判断每条指令的执行时机。这种机制构建了 “确定性执行契约”,确保指令在可预测的周期内完成,减少了无效发布时隙的浪费。
时间资源矩阵会与寄存器计分板协同工作,将指令与执行周期关联,使处理器能在可用资源范围内,确定性地规划指令分配。计分板会实时跟踪操作数就绪状态和冲突信息,无需寄存器重命名或投机比较器即可完成调度。通过监控写后读(RAW)、读后写(WAR)等数据依赖关系,该架构能在无流水线刷新成本的前提下解决冲突问题。正如专利中所述:“在多线程微处理器中,时间计数器和计分板可围绕缓存缺失、分支刷新和 RAW 冲突重新调度指令,无需投机回滚。”
当操作数就绪后,指令会被分配到相应的执行单元:标量操作由标准算术逻辑单元(ALU)处理,向量和矩阵指令则在连接至大型向量寄存器文件的宽执行单元中执行。由于指令仅在执行条件安全时才启动,这些执行单元能保持高利用率,避免了投机预测失误导致的无效工作和恢复周期。
这种架构的关键支撑,是一个简单的时间计数器,它会根据数据就绪情况和资源可用性协调执行流程,确保指令仅在操作数就绪且资源空闲时才推进。这一原则同样适用于内存操作:内存接口会预测加载和存储的延迟窗口,使处理器能在这些时隙中调度独立指令,保持执行流程不间断。
从程序员视角来看,确定性 CPU 的使用流程与传统架构差异不大 ——RISC-V 代码的编译和执行方式保持不变。关键区别在于 “执行契约”:该处理器不再依赖动态投机来掩盖延迟,而是承诺提供可预测的指令分配和完成时间。这一改变既消除了投机执行带来的性能断崖和能源浪费,又保留了乱序执行的吞吐量优势。
这一设计理念与约翰・亨尼西(John Hennessy)的观点高度契合:“在运行时做编译时就能完成的工作,是不明智的”—— 这句话也反映了 RISC 架构的核心理念与前瞻性设计哲学。RISC-V 指令集架构(ISA)支持自定义和扩展指令,涵盖浮点运算、数字信号处理(DSP)和向量操作等,这使得确定性处理器既能实现指令的确定性执行,又能保留乱序执行的性能优势。通过摒弃投机执行,该设计简化了硬件结构、降低了功耗,并避免了流水线刷新。
这些效率优势在向量和矩阵运算中更为显著。宽执行单元要达到峰值性能,需要持续的高利用率支持。向量扩展通常需要大容量寄存器文件和大型执行单元,而在投机式处理器中,为从分支预测失误中恢复,这些组件必须配合昂贵的寄存器重命名机制。而在确定性设计中,向量指令仅在确认执行后才启动,彻底省去了重命名需求。
每条指令都会根据周期精确的时间计数器进行调度:“时间计数器提供了确定性执行契约,确保指令在可预测的周期内完成,减少了无效发布时隙的浪费。” 向量寄存器计分板会在指令发布到执行流水线前,解决数据依赖问题。指令会按已知顺序在正确周期被分配,实现了既可预测又高效的执行。
向量执行单元(包括整数和浮点类型)直接连接至大型向量寄存器文件。由于指令不会被刷新,不存在重命名开销。计分板确保了寄存器的安全访问,时间计数器则使执行与内存就绪状态保持同步。一个专用内存模块会预测加载操作的返回周期,处理器无需停滞或投机,而是将独立指令调度到延迟时隙中,确保执行单元持续忙碌。正如专利所述:“配备时间计数器、用于静态分配指令的向量协处理器,能确保宽执行单元的高利用率,同时避免预测失误带来的代价。”
在当前主流 CPU 中,编译器和程序员编写代码时,默认硬件会动态重排指令并投机执行分支,硬件则通过寄存器重命名、分支预测和恢复机制处理冲突。程序员虽能获得一定性能提升,但需以性能不可预测性和高功耗为代价。而在确定性基于时间的架构中,仅当时间计数器显示操作数即将就绪时,指令才会被分配。这意味着编译器(或运行时系统)无需插入预测失误恢复的保护代码,调度过程更为简洁 —— 指令能确保在正确周期发布,无需回滚。对程序员而言,指令集仍保持 RISC-V 兼容性,而确定性扩展则降低了对投机安全机制的依赖。
在 AI/ML 核心任务中,向量加载和矩阵运算往往占据大部分运行时间。在投机式 CPU 上,未对齐或不可缓存的加载操作可能触发停滞或刷新,导致宽向量和矩阵单元 “饥饿”,大量能源被浪费在丢弃的无效工作上。而确定性设计会以周期精确的时序发布这些操作,确保高利用率和稳定吞吐量。对程序员而言,这意味着更少的性能断崖,以及跨问题规模更可预测的性能扩展。此外,由于相关专利是对 RISC-V 指令集的扩展而非替代,确定性处理器能完全兼容 RVA23 规范及 GCC、LLVM、FreeRTOS、Zephyr 等主流工具链,降低了应用迁移成本。
在实际应用中,确定性模型不会改变代码的编写方式 —— 代码仍可为 RISC-V 汇编语言,或编译为 RISC-V 指令的高级语言。真正改变的是 “执行契约”:程序员无需再围绕微架构特性调整代码,而是能预期到可预测的延迟表现和更高的效率,摆脱了投机执行带来的不确定性困扰。
当前行业正处于关键转折点。AI/ML 负载以向量和矩阵运算为主,GPU 和 TPU 虽在这类任务中表现出色,但需消耗巨大能源并承受复杂架构带来的成本;而仍依赖投机执行的通用 CPU,则在这类负载中逐渐落后。确定性处理器则能在广泛的工作负载中提供可预测性能,无论任务复杂度如何,都能保持稳定表现。通过消除投机执行,它不仅提升了能源效率,还避免了不必要的计算开销。更重要的是,确定性设计天然支持向量和矩阵运算的扩展,使其成为依赖高吞吐量并行计算的 AI 负载的理想选择。这种全新的确定性方案,或许标志着 CPU 架构的下一次飞跃 —— 自投机执行成为标准以来,首次出现对其构成重大挑战的主流架构。
确定性 CPU 是否会取代投机执行,成为主流计算的新范式,目前尚难定论。但结合已获批的专利、经过验证的创新性,以及 AI 负载带来的日益增长的需求,当下正是架构变革的最佳时机。这些技术进步共同表明,确定性执行有望成为 CPU 架构的下一次革命,如同当年的投机执行一样,重新定义性能与效率的衡量标准。投机执行标志着 CPU 设计的上一次革命,而确定性执行,则很可能成为下一次革命的核心。
原创文章,作者:王 浩然,如若转载,请注明出处:https://www.dian8dian.com/chao-yue-tou-ji-zhi-xing-que-ding-xing-cpu-ru-he-shi-xian