
有一个令人不安的结论:现代高性能处理器中相当大一部分的芯片面积与功耗,并非用于计算结果,而是为了向软件隐藏指令乱序执行这一事实。乱序投机执行,是在通用计算负载主导的时代所做出的必要工程选择,那时的程序分支可预测、独立指令充足。而如今驱动算力投入的主流负载:AI 推理、科学模拟、EDA 工具运行,其依赖结构完全违背了投机执行的设计前提。这些负载承担了投机硬件的全部成本,却几乎得不到收益。
RISC‑V RVA23 配置的正式确定印证了这一方向。通过将向量扩展列为强制要求,RVA23 将性能重心从投机标量执行转向显式向量并行;此举也让简洁、确定性的标量核首次在主流应用处理器中具备可行性。
已发表的微架构研究一致记录了这种开销:在高性能乱序设计中,重排序缓存(ROB)、保留站、寄存器重命名逻辑与分支预测结构,合计约占处理器核面积的 30%–50%。仅分支预测一项,在高端实现中就占芯片总功耗的 10% 以上。
Simplex Micro 基于时间调度(TBS)架构将这一理念应用于对AI负载最为关键的向量处理单元(VPU)。Simplex CPU 采用传统超标量乱序设计,而 TBS 负责管控 VPU,使其以确定性、非投机方式执行。在 VPU 中,向量指令仅在数据就绪时才发射,并非依靠预测器猜测、并非投机执行到可能需要回滚的未来。对于并行计算大量数据元素的AI应用,投机执行会在向量每个元素上成倍放大无效运算。非投机执行并非限制,而是这类负载的正确架构选择。从投机硬件中节省出的芯片面积,可重新投入执行单元、缓存容量或核心数量,而这些才是决定当前关键负载吞吐量的资源。
乱序执行的初衷,是在数据依赖停顿期间让执行单元保持忙碌。当指令 B 依赖指令 A 的结果时,必须等待 A 完成再启动 B 的处理器会浪费周期。乱序方案是向前扫描指令流,找到不依赖 A、B 的指令 C,在等待 A 时先行执行 C。但实现乱序执行需要四类无实际计算功能的硬件,它们仅为支撑投机机制本身而存在。
重排序缓存(ROB) 保存乱序执行的指令,并跟踪它们直至按程序顺序提交,以此维持顺序执行的架构假象。在 Intel P6 及其后续架构中,ROB 还存储未提交的寄存器值,成为重度多端口结构。已有研究将其描述为:“复杂的多端口结构,消耗芯片总功耗的极大比例。” 现代高性能设计会同时维持 200–500 个 ROB 表项,每条均携带指令状态、操作数值、结果数据,以及标记指令是否投机完成的状态位。
保留站在指令译码后暂存指令,等待操作数就绪。每个周期,保留站逻辑扫描所有飞行中指令,通过标签匹配比较检测就绪操作数,并选择指令发射。这种比较逻辑持续活跃,复杂度随飞行中指令数量而非实际就绪指令数量增长。
寄存器重命名消除伪数据依赖(读后写、写后写冲突),这类冲突源于乱序窗口内不同程序指令复用相同架构寄存器名。拥有 16 个架构整数寄存器的处理器,可能需要 180–256 个物理寄存器、重命名表与空闲列表管理。公开发表的分析指出:“所有现代动态调度处理器均使用寄存器重命名解决伪依赖……ROB 是大型多端口结构,占据显著芯片面积与功耗。”
分支预测让处理器在条件分支结果确定前猜测路径,投机执行后续指令。顶尖预测器准确率超过 95%,但需要多个大型预测表、分支目标缓冲器、返回地址栈与间接分支预测器。“高端处理器的复杂分支预测器由大量大型结构组成,合计功耗占比显著,部分场景超过 10%。”
已发表研究对总体成本的结论明确:“乱序调度逻辑占用大量 CPU 芯片面积用于维护依赖信息与指令队列…… 乱序处理器中,用于乱序发射的芯片面积大于实际计算的执行单元面积。” 调度硬件比计算单元占用更多面积,这就是向软件隐藏乱序事实的开销代价。
重排序缓存的面积随表项数量与端口数量增长。500 表项、支持峰值带宽多端口读写、存储完整指令状态与操作数的 ROB 是大型 SRAM 结构。《超级计算期刊》研究指出:“传统 ROB 架构的简单扩展会急剧增加复杂度与功耗。” 这证实 ROB 面积随容量呈超线性增长。
保守公开发表估算显示,ROB 占高性能设计核面积的 5%–10%。商用乱序处理器的版图照片分析确认:ROB 是核面积的主要贡献者,占可识别结构的显著比例。
分支预测开销是记录最完善的部分:
高端处理器分支预测功耗 > 10%
Alpha EV8 分支预测器使用 352 Kb 存储,占用极大面积
BTB 缩小 8 倍,核动态能耗降低 9.2%
分支预测器功耗降低 52%,处理器总能耗降低 4.1%
这些数据确定:分支预测占核面积 8%–15%、动态功耗 >10%,还未包含预测错误的流水线冲刷代价。现代深度流水线超过 20 级,一次误预测会浪费 15–30 个周期,检测到错误时已有约 200 条指令沿错误路径投机执行完毕。
对于迭代求解器、模拟退火、大模型混合专家路由、EDA 动态分发这类负载,分支高度数据相关、误预测率极高,流水线反复冲刷,只耗功耗与周期而无有效计算。
投机执行的安全代价已被现实场景充分证明:2018 年曝出的 Spectre、Meltdown 漏洞表明:即便投机指令结果被丢弃,仍会在缓存中留下可观测痕迹—— 因为投机执行了真实内存访问,甚至访问程序本无权读取的数据。根源在于架构本身:投机的定义就是在确认是否应该执行前就运行指令。
针对这些漏洞的软件与微码修复带来实测性能损失:
Red Hat:初始 1%–20%,优化后 1%–8%
Intel:SYSMark 下降 2%–21%
I/O 密集型服务器、数据库:下降 7%–23%
HPC 单节点 2%–3%,多节点 MPI 升至 5%–11%
这些不是理论成本,而是所有使用乱序处理器的数据中心永久承担的实测性能代价,是几十年前设计选择留下的持续成本。不做投机的处理器,天生不存在 Spectre 攻击面。
TBS 的核心理念简单直接,跟踪每条指令输入数据何时就绪,并在此时发射。无需投机、无需猜测指令就绪、无需维持顺序提交假象、无需在等待依赖时搜寻独立指令,调度机制直接根据操作数可用性完成所有工作。TBS直接跟踪操作数可用性,产生结果的指令完成写入后,依赖指令立即具备发射资格;操作数未就绪则等待。无预测、无投机、无回滚硬件。
该模型彻底消除或大幅减少前述四类投机开销:重排序缓存基本消除TBS 不按程序顺序乱序执行,而是按数据依赖顺序执行,即计算本身要求的顺序。指令无需等待顺序提交,最小化精确异常记录即可,复杂度与面积远小于完整 ROB。保留站大幅缩小无需大型集中式结构、无需每个周期持续标签匹配扫描。TBS 直接跟踪操作数就绪,由指令完成事件驱动调度,而非轮询,架构更简单、功耗更低。寄存器重命名显著减少伪依赖主要源于乱序执行中不同区域指令并发、复用寄存器名。TBS 按数据依赖顺序发射,大幅降低读后写、写后写冲突,物理寄存器文件可显著缩小。分支预测完全消除TBS 不在分支未确定时超前执行。分支条件依赖未完成计算时,TBS 等待计算完成再立即发射正确路径。无预测表、无 BTB、无误预测恢复硬件。根植于错误路径投机访存的 Spectre 攻击面从架构上根除,而非靠补丁修复。
回收面积估算(保守):ROB 减少5%–7%;保留站简化4%–6%;寄存器重命名减少4%–6%;分支预测器消除8%–15%;合计回收面积20%–35%。处理器核面积在高端乱序设计中,投机总开销达 40%–50%,回收比例更高。
回收面积的再利用,更多执行单元:算术、访存、浮点单元直接提升吞吐量;更大缓存层次:解决大模型、HPC、EDA 的真正瓶颈;更多核心:相同芯片容纳更多核心,适配并行负载;片上内存:增大 SRAM 暂存,减少片外访存,提升AI推理效率。
功耗收益,CMOS 中面积与动态功耗高度相关。占用 30%–50% 核面积的投机硬件,同样占据显著动态功耗。公开发表估算:与投机相关的动态功耗占核功耗 20%–30%。对推理服务器、HPC 节点、EDA 集群而言,20%–30% 功耗降低直接转化为多年运营成本的节省。在数据中心规模下,五年电费通常超过硬件采购成本,TBS 同时解决性能与功耗约束。
负载适配性,TBS 并非在所有场景都优于乱序执行。对于分支可预测、独立指令充足的通用整数负载(操作系统、Web 服务器、数据库查询),投机仍有真实收益。临界点在于深真实依赖链 + 不可预测分支—— 而这正是当前主流算力负载的特征。
大模型推理,自回归 Token 生成天然是顺序依赖链,混合专家路由分支数据相关、难以预测。投机错误不会只浪费一条指令,而是在整个向量所有元素上成倍浪费。VPU 非投机、确定性执行完全消除这种倍增损耗。
科学计算与 HPC 迭代求解,高斯 - 赛德尔、共轭梯度、多重网格、模拟退火均具有深度真实依赖链,每一步迭代依赖前一步,数学上天然顺序,无法从投机未来迭代中获益。
EDA 工具,静态时序分析、布局、布线沿有向依赖图传播值,每个节点依赖前驱,收敛过程分支数据相关。投机硬件对这类负载弊大于利。
安全关键与认证系统,航空 DO‑178C、工业 IEC 61508、汽车 ISO 26262 均要求确定性、可重复执行。投机执行在微架构层面固有的非确定性是认证障碍,无法通过补丁修复。TBS 按数据依赖顺序发射,同一程序 + 同一输入 = 完全相同执行路径,是架构级确定性,而非靠额外开销模拟。RVA23 包含 Zkt,要求特定操作常数时间执行,这是标准本身的确定性要求。乱序投机很难无开销满足,而 TBS 天生具备。同时 RVA23 强制 RVV,将标量核从性能引擎转变为依赖协调器,让简洁、确定性标量执行首次在主流处理器中可行。
投机执行的芯片成本已被同行评议微架构研究、Spectre/Meltdown 修复实测、数据中心持续的面积/功耗/安全暴露所共同证实。业界为此付出了五十年代价,因为在那个时代它对主流负载确有效益。但如今驱动算力投资的负载不再具备这些特征:AI 推理、科学模拟、EDA、安全关键嵌入式系统的依赖结构均打破投机假设,承担全部成本,却几乎无收益。
TBS从架构设计上彻底移除投机硬件:指令仅在数据就绪时执行,完全遵循计算逻辑,不在负载不需要时投机。从投机结构中回收的面积与功耗,可直接投入执行单元、存储层次、核心数量,真正服务于当前负载。
本文转自媒体报道或网络平台,系作者个人立场或观点。我方转载仅为分享,不代表我方赞成或认同。若来源标注错误或侵犯了您的合法权益,请及时联系客服,我们作为中立的平台服务者将及时更正、删除或依法处理。
