Skip to content

设计空间与 PPA ​

DULI 不是一套冻结的设计。每个机制都有便宜和激进两种实现方式,评估过程沿着 这条曲线,从即插即用的扩展走到最低延迟的版本。本页是这条曲线的地图。

基线 ​

扩展在一颗专门构建的 RISC-V 实时核心上探索,这样测到的是机制本身的开销, 而不是某条商业流水线的特性:

属性数值
指令集 / 流水线RV32IM,三级顺序执行,静态分支预测
存储哈佛结构,64 位指令总线,64 位 AHB-Lite 数据总线,无 cache
保护8 项 PMP,支持 NAPOT 与 TOR
性能2.77 CoreMark/MHz
频率 / 工艺典型 200 MHz,最高 240 MHz,Nangate 45 nm
核心面积0.0715 mm²
内核级中断硬件 5 周期;经微内核 634 周期

四个可调项 ​

维度便宜的一端快的一端代价
IID 查询RAM 表CPU 内 CAM延迟 vs. 核心面积
域表位置主 SRAM专用 TCM总线竞争 vs. 额外访存端口
上下文切换压栈到 SRAM寄存器组 + 溢出回退压栈延迟 vs. 面积
被抢占的内核 PMP溢出到内存影子寄存器组几个周期 vs. 一组影子寄存器

五个变体对应依次出现的瓶颈:先表查询,再上下文压栈,再总线竞争,最后是 IID 本身。

V1 — 最小复杂度 ​

IID 为 RAM 表,上下文压入主 SRAM,全部表放在同一块内存,不新增总线端口。 内核管理的 PMP 使用影子寄存器组。

37 周期,核心面积 +23%(0.0878 mm²),静态 1.89 mW,动态 22.4 µW/MHz。 这是必须保持原有存储接口的核心所选的点。目标休眠时,它已经比最好的软件方案快 3 倍,而普通计算负载下的动态功耗只增加约 3%。

V2 — 隐藏表延迟 ​

用一个专用 TCM 端口存放上下文栈——这是最长的操作。PMP 与预算表访问现在与压栈 重叠,而不是互相竞争。

29 周期,+27%(0.0905 mm²),1.90 mW,23.9 µW/MHz。 新增端口带来的面积与 功耗开销很小;这是已经具备 TCM 的核心的甜点。它也是 V5 寄存器组耗尽时的回退 模式。

V3 — 消除压栈瓶颈 ​

增加一组寄存器实现零延迟上下文切换;TCM 栈保留,用于无界嵌套。

17 周期,+48%(0.1057 mm²),2.23 mW,23.95 µW/MHz。 与 Cortex-R4 的 中断延迟相当。第二组寄存器会把面积推到 +70%,却只增加嵌套深度。

V4 — 解决表竞争 ​

PMP 表搬到自己的 TCM 端口,与预算装入并行。

14 周期,+51%(0.1077 mm²),2.23 mW,23.95 µW/MHz。 与 Cortex-M0 的 内核级中断延迟相当——同时保持完整的隔离。

V5 — 零延迟识别 ​

IID 变成 CAM,在中断应答周期内完成查询;16 项足以覆盖设计目标的六到八个进程 整合场景。

模型 11 周期,实测 15 周期,+66%(0.1186 mm²),2.53 mW,23.6 µW/MHz。 它比 Cortex-M3 的中断入口更快,而且动态功耗反而低于 V3/V4——因为 IID 单元不再 位于数据通路上。把 CAM 减半到 8 项,面积为 +57%;翻倍到 32 项,面积为 +81%。

全部变体 ​

变体延迟(周期)核心面积(mm²)相对基线静态(mW)动态计算(µW/MHz)动态背靠背(µW/MHz)
基线核心5(内核级)0.0715100%1.5021.7512.80
V1370.0878123%1.8922.4025.00
V2290.0905127%1.9023.9025.90
V3170.1057148%2.2323.9528.65
V4140.1077151%2.2323.9529.30
V5110.1186166%2.5323.6026.60
内核路径634—————

表中的 V1–V5 延迟为硬件模型值;V5 在 50 MHz FPGA 上端到端实测为 15 个周期。

面积与延迟的权衡(核心面积开销 vs. 中断延迟)0102030400%20%40%60%核心面积开销(%)中断延迟(周期)BaseV1V2V3V4V5
变体面积开销延迟(周期)
Base0%5
V1+23%37
V2+27%29
V3+48%17
V4+51%14
V5+66%11
V1–V5 延迟为硬件模型值;V5 在 FPGA 上端到端实测为 15 个周期。

“背靠背”一列是扩展真正工作时的功耗:基线核心动态功耗为 12.8 µW/MHz,持续 中断交付大约翻倍。普通计算时扩展不活动,所以 V1 的动态开销只有约 3%。

真实 SoC 中的面积 ​

核心只是微控制器的一小部分。测量四颗去封装的 40 nm SoC(比 45 nm 测试芯片 更先进)后,扩展的占比一目了然:

SoC裸片面积(mm²)核心占比V1 额外V2 额外V5 额外
STM32H743(通用)23.780.3%0.07%0.08%0.20%
LPC55S69(安全)8.060.9%0.20%0.24%0.58%
ESP32-C3(Wi-Fi IoT)5.181.4%0.31%0.37%0.91%
TC387(汽车)56.460.1%0.03%0.03%0.08%

即便假设一颗只有 1 mm² 的裸片,V1 也只增加不到 2%,V5 约为 5%。在真实硅片上, 扩展相对 Flash、SRAM 与外设几乎可以忽略。

如何选择 ​

需求选择原因
不改动存储接口V137 周期,+23% 面积,即插即用
已有原生 TCMV2比 V1 多 4% 面积,换来 29 周期
延迟优先,面积次要V5模型 11 周期 / 实测 15 周期
深嵌套且预算有限V2无界嵌套,确定性溢出
折中点V3 / V417 / 14 周期,+48% / +51%

所有变体保持相同的软件 API 与隔离语义。选择纯粹是 PPA 决策。

面向确定性用户级中断的硬件研究扩展。

DULI·确定性用户级中断硬件扩展·www.runyupan.com·rypan@rtospro.com·开源工件