Skip to content

实测结果 ​

以下数字全部来自可运行的平台:V1、V2、V5 在 50 MHz 的 XC7K480T FPGA 上, 128 KiB 零等待 SRAM,256 KiB Flash 由 SRAM 模拟。程序使用 GCC 15.2.0 -O3 编译,每项测量重复 10 000 次。基线包括纯内核路径(KERNEL)、只在目标活跃时 绕过内核的 Intel UINTR 式方案(UINTR),以及最小软件序言方案(SOFTWARE)。

一个保守的测试平台

零等待 SRAM 近似理想 cache 行为。在真实 SoC 上,外部或较慢内存会让内核路径 更长,而扩展本身可以放在 TCM 里——所以这里报告的提升是保守值。

原始延迟 ​

中断延迟:目标进程运行中 vs. 已休眠(周期,越低越好)目标运行中目标已休眠0200400600800内核转发>800>800纯软件快路径80120DULI · V51515UINTR 式方案只有在目标进程被调度时才走快路径;目标休眠时退回内核路径,最坏情况与内核相同。
方案目标运行中目标已休眠
内核转发>800>800
纯软件快路径80120
DULI · V51515
15 周期V5,50 MHz 下 300 ns,目标运行或休眠都一样
>800 周期内核转发交付
>50×相对 KERNEL 与 UINTR 的最坏情况提升
>8×相对最佳软件路径的提升

最关键的结果不是平均值,而是那根柱子不动:V1 与 V2 在两种进程状态下都低于 50 周期,V5 始终是 15 周期。所有扩展变体在“目标活跃”与“目标休眠”之间的方差 都接近于零,而任何基线都做不到——UINTR 只在目标被调度时快,否则退回完整的 内核路径。

隔离在攻击下依然成立 ​

我们注册恶意处理程序,让它们读取他人内存或无限循环。三种关键场景都会终止 处理程序并返回被抢占的上下文:

  1. 恶意处理程序抢占用户线程;
  2. 恶意处理程序抢占内核;
  3. 恶意处理程序抢占另一个用户级处理程序,包括 V5 寄存器组耗尽后的深层嵌套。

空间违规由 PMP 捕获,时间违规由预算计数器捕获。在第三种场景中,V5 退化为 V2 的延迟而不是失败——时间隔离仍然成立。

运动控制:脉冲串输出 ​

脉冲串输出(PTO)是 PLC/伺服的基本原语:中断处理程序计算下一个脉冲周期并 翻转输出引脚。它是确定性抖动的标准测试。

方案最高可持续频率抖动
KERNEL最低;约 15 kHz 以上不可用15 kHz 附近 >40%
UINTR目标休眠时等同内核混合场景下灾难性劣化
SOFTWARE中等100 kHz 时无法接受
DULI V1/V2接近 300 kHz100 kHz 时 <5%
DULI V5>250 kHz250 kHz 以上 8%

在常见的 10 kHz 工作点,所有 DULI 变体的抖动都低于 0.5%——比内核转发好约 60 倍。工业驱动要求的 20 kHz 下限被远远满足,而另一个进程仍在持续穿插。

单核上的实时与尽力而为 ​

Modbus-RTU 前台(每字节一次中断)与图像识别后台并发运行。这就是业务整合场景: 实时任务要低最坏延迟,后台任务要吞吐。

方案115.2 kbps1 Mbps最高波特率
KERNEL143 → 92 FPS(−36%)失败<300 kbps
UINTR与 KERNEL 相同(目标休眠)失败<300 kbps
SOFTWARE轻微损失68 FPS(−52%)>1 Mbps
DULI V1≤5 FPS 损失108 FPS(−24%)2 Mbps
DULI V5≤5 FPS 损失120 FPS(−17%)2 Mbps

在无处不在的 115.2 kbps 下,DULI 的吞吐损失比内核转发小约 10 倍,比最佳软件 路径小 2 倍。到 1 Mbps 时,内核类基线已经出局。

面积与集成工作量 ​

扩展的核心面积开销从 +23%(V1)到 +66%(V5),但核心在真实裸片中只占很小 一部分:在四颗去封装的 SoC 上,额外面积只占总裸片面积的 0.03%–0.91%。 完整表格见设计空间页。

接入现有微内核所需的新增源码:

变体新增源码行占内核 + HAL 比例
V1 / V2+216+2.14%
V5+270+2.67%

在 5 856 + 4 249 行的内核与 HAL 上,这是一个小且可审查的改动——中断路径上 没有新增代码,只有注册、预算补充和新的用户级返回指令。

这些数字没有覆盖什么 ​

  • 单核。 全局中断路由与仲裁属于未来工作。
  • 原型没有 cache。 扩展受影响很小,因为它的表可以放在 TCM;内核路径会 受到更大影响。
  • 没有 FPU 上下文。 FPU 寄存器不在范围内;基线中的 FPU 仅用于面积统计。
  • 平均情况不是重点。 以上结果全部关于最坏情况。尾链(tail-chaining)等 平均情况优化被刻意省略。

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

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