本节摘要:这一族扩展不为峰值算力而生——标量密码指令把分组密码与哈希的轮函数做成单周期原语,恒定时间执行纪律从结构上掐灭时序侧信道,等待指令与时钟门控给出两层功耗手段,实时性则把"最坏情况的确定性"写进设计约束。本节逐项讲机制,并把它们放回安全关键与电池供电两类产品的选型语境。
设想一颗用软件实现分组密码的处理器:查表实现的轮函数,命中缓存快、未命中慢,而这个时间差取决于密钥的字节分布。攻击者无需碰内存,只要掐着执行时间反复测量,就能 statistically 逆推出密钥的片段——这是真实发生过的时序侧信道攻击。教训是:密码代码的速度波动本身就是信息泄漏。
防御思路因此反直觉:让执行时间与数据完全无关。标量密码指令族沿这条路走——把高级加密标准的轮变换、安全哈希的轮压缩、国密算法的轮函数分别做成专门指令,单周期或固定周期完成。专门电路没有查表分支,时间天然恒定;顺带把几十条基础指令的软件轮循环压缩成一条指令,速度与代码密度同时受益。子扩展按算法家族分册(分组加密一册、哈希一册、国密一册、随机数一册),又是"按需选购"的模块化设计——物联网小核只买用到的分册。
恒定时间执行不只靠密码指令,它是一条贯穿实现的纪律:
指令层——专门指令替代查表软件,轮函数时间固定;微架构层——访存模式不依赖密钥数据(避免数据相关的缓存行为),比较类操作用位技巧改写而非分支;系统层——安全关键代码段锁定缓存与旁路缓冲(避免冷热不均的时间差),必要时禁用会在后台制造时序噪声的机制。三层缺一不可:指令层做了恒定时间,微架构层一个数据相关的分支就把努力泄了密。
| 层 | 手段 | 防什么 |
|---|---|---|
| 指令层 | 密码轮函数单周期化 | 查表时间差 |
| 微架构层 | 数据无关的访存与分支 | 缓存行为泄漏 |
| 系统层 | 锁定缓存、隔离执行 | 后台噪声与飞地外窥探 |
等待指令是体系结构与软件的约定:执行它,核宣布"我没事做了"。硬件响应可以是浅睡(停流水线时钟)到深睡(关更多域、留唤醒逻辑),外部中断到来即唤醒,从等待指令处无缝续跑。机制层级决定了唤醒延迟与省电深度的交换——浅睡唤醒近乎零延迟、省电有限;深睡省电可观、唤醒要等时钟与状态的重建。操作系统调度器按预期的空闲时长选择睡多深,这是一段每天都在发生的"延迟对功耗"微谈判。
时钟门控是更底层的老朋友:组合逻辑没活干时把它那一片的时钟关掉,动态功耗随开关活动直接下降。现代综合工具能自动识别大片可门控的区域,设计师则通过编码风格(使能信号规整、寄存器分组清晰)给工具留出可门控的结构。它与等待指令是宏观与微观的两级:前者关"整个人的表",后者关"每只手的表"。
实时场景要的不是快,是可预期的最坏情况。上一代高性能技术在这里几乎全是负资产:深流水加长冲刷惩罚、乱序窗口让中断延迟抖动、缓存让访存时间两极分化。实时友好的微架构约束因此非常具体:中断延迟要有上界(第五章的构成分析)、访存要有最坏情况保障(缓存可锁定、或干脆用紧耦合内存绕开缓存)、不要不可预测的机制(或给出可禁用的开关)。
由此形成了一个清晰的产品谱系:安全关键的控制器核刻意保持较浅的流水与确定性访存——牺牲平均性能换取最坏情况可证明。这与 6.1 的向量哲学形成完整对照:一边为平均值买吞吐,一边为最坏值买确定。选型时先问你的系统罚的是"平均慢"还是"偶尔超时"——答案直接决定往哪边走。

问:等待指令和时钟门控是不是一回事? 不是同一层——等待指令是软件对硬件的"交底"(我空闲了),时钟门控是硬件对电路的"执行"(这片没活干了,关钟)。前者宏观、后者微观,两者配合才把空闲真正变成省电。
问:实时核为什么不干脆把缓存去掉? 有的产品真的去掉,用紧耦合内存替代——容量小、延迟固定、行为完全可分析。代价是容量上限与灵活性;折中方案是"可锁定的缓存":关键工作集锁进缓存行,其余照常使用。去留取决于工作集大小与确定性要求的严格程度。
⚠️ 常见坑:给实时系统选了带丰富预测器与深乱序的核,再用"关掉所有自适应机制"来换取确定性。结果花了乱序的钱、过着顺序的日子,功耗面积双输——确定性需求应在选型第一问就摆上桌,而不是事后补救。
把两节的取舍并排放,方便选型时对照。目标函数:6.1 最大化平均吞吐,本节最小化最坏偏差。存储设计:6.1 堆大容量多车道,本节刻意精简换可分析。流水线态度:6.1 越深越宽越好,本节浅而稳优先。验证重心:6.1 防算错,本节防"算对但时间泄漏"。功耗手段:6.1 算力密度换能效,本节睡深与关断换能效。一颗芯片里两种哲学并存是常态——大算力核带实时小核、加速阵列配安全岛,8.1 的三代核谱系与 9.1 的应用版图会反复出现这种搭配。分清手头模块属于哪种哲学,是配置与优化不出大错的前提。
把本节内容放回两类典型产品的语境里收个尾。安全微控制器(智能门锁、支付终端的安全单元)的账单:标量密码指令族按需选分册(用到的算法才买)、恒定时间纪律全层落实、启动链锚点必配;性能要求温和,顺序核足够——预算大头给安全认证而非算力。电池供电的传感节点(穿戴设备、远程监测)的账单:等待指令的睡眠分档策略决定续航曲线上限、时钟门控的编码习惯在综合阶段兑现、中断延迟上界保证事件不丢;密码指令按通信加密需求选配。两份账单几乎不重叠——同一族扩展,在不同产品里挑的是完全不同的条目,这正是"扩展按需选购"设计意图的最终呈现。
扩展的硬件实现讲完,下一章换到软件那一边——编译器、操作系统与工具链如何看你的微架构。