Files
rtos_llm_opt/10-研究框架/08-RTOS-Linux-Hypervisor边缘并行架构说明.md

242 lines
10 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# RTOS + Linux + Hypervisor 边缘并行架构说明
## 1. 架构目标
边缘侧采用并行分域思路:RTOS 负责控制和安全关键路径,Linux 负责 AI 推理与复杂软件生态,Hypervisor 或等价静态分区层负责空间隔离、时间干扰控制和设备分配。
该架构不把“让 RTOS 原生运行全部大模型软件栈”作为前提。优化目标按优先级排序为:
1. 控制闭环截止期不被推理负载破坏;
2. AI 结果在规定的新鲜度窗口内可用;
3. 推理域故障不扩散到控制域;
4. 在前三项满足后提高推理吞吐、能效和资源利用率。
## 2. 逻辑架构
```text
┌─────────────────────────────────────────────────────────────┐
│ 边缘计算硬件 │
│ CPU 核 / LLC / DRAM / 内存带宽 / NPU或GPU / I/O / 时钟 │
├─────────────────────────────────────────────────────────────┤
│ Hypervisor、静态分区器或具备等价能力的隔离层 │
│ vCPU/物理核分配、内存区间、IOMMU、设备直通、中断路由、监控 │
├───────────────────────────┬─────────────────────────────────┤
│ RTOS 控制域 │ Linux 推理域 │
│ - 周期控制与联锁 │ - 模型加载与推理运行时 │
│ - 现场总线与关键传感器 │ - GPU/NPU 驱动与厂商 SDK │
│ - 时间戳、结果校验 │ - 数据预处理与后处理 │
│ - 超时、降级与安全状态 │ - 模型更新、日志与网络服务 │
├───────────────────────────┴─────────────────────────────────┤
│ 有界跨域通道:共享内存环形队列 + 通知 / RPMsg / 虚拟设备等 │
└─────────────────────────────────────────────────────────────┘
```
这里的“Hypervisor”表示架构角色,不预设具体产品。若 SoC 已具备安全岛、独立 MCU、AMP 或硬件静态分区能力,只要能够提供可验证的资源和故障隔离,也可以作为实现路径。
## 3. 两个域的职责边界
### 3.1 RTOS 控制域
RTOS 域应拥有:
- 周期控制、联锁、执行器输出和关键状态采集;
- 控制任务使用的定时器、关键中断和关键 I/O;
- AI 请求的采样时刻、任务编号、期望完成期限和优先级;
- AI 结果的完整性、新鲜度、置信度和序列一致性检查;
- 超时、失联、异常结果和推理域重启时的回退控制;
- 必要的看门狗与推理域生命周期控制接口。
RTOS 域不应依赖 Linux 域才能维持基本安全状态。AI 可增强系统能力,但关键控制闭环应明确 AI 缺席时的可接受行为。
### 3.2 Linux 推理域
Linux 域应拥有:
- 模型文件、模型运行时和推理服务;
- GPU/NPU/DLA 等加速器驱动及厂商 SDK;
- 复杂预处理、后处理、模型编排和批处理;
- 网络、存储、模型更新以及非关键日志服务;
- 推理资源的吞吐优化和域内调度。
Linux 域可以对 AI 服务做软实时优化,但不得把域内平均时延等同于控制系统的实时保证。
### 3.3 Hypervisor/分区层
隔离层需要明确而不是笼统声称以下能力:
- CPU 核是静态独占、时间分片还是混合分配;
- 内存区域是否静态划分,是否存在共享页和动态气球机制;
- LLC、内存带宽和互联是否可分配、限额或仅可观测;
- 加速器采用直通、复用还是由单一域独占;
- 设备 DMA 是否受 IOMMU 限制;
- 物理中断如何路由,是否会在控制核上产生额外虚拟化出口;
- 一个域崩溃、重启或过载时,另一域是否持续运行。
Hypervisor 本身也会引入 VM exit、虚拟中断和跨域通信开销,必须纳入实测,不能只把它视为零成本隔离层。
## 4. 跨域通信契约
推荐使用异步、有界、可丢弃的通信语义,避免 RTOS 控制任务同步等待 Linux 推理。
### 4.1 请求消息最小字段
| 字段 | 作用 |
|---|---|
| `request_id` | 区分请求和乱序结果 |
| `sample_time` | 标识传感数据的采样时刻 |
| `deadline` | AI 结果最晚可用时刻 |
| `priority/class` | 区分任务重要性和推理策略 |
| `payload_ref` | 指向受控共享缓冲区或内联小数据 |
| `schema/version` | 防止两域版本不一致 |
### 4.2 结果消息最小字段
| 字段 | 作用 |
|---|---|
| `request_id` | 与请求配对 |
| `model_version` | 支撑审计和回滚 |
| `finish_time` | 计算跨域端到端时延 |
| `confidence/status` | 判断结果是否可用 |
| `valid_until` | 规定结果新鲜度边界 |
| `payload/checksum` | 结果与完整性校验 |
### 4.3 控制域消费规则
RTOS 只在以下条件同时满足时采用 AI 结果:
```text
ID 匹配
AND 数据完整
AND finish_time <= deadline
AND now <= valid_until
AND confidence/status 满足策略
```
任一条件不满足时执行预定义回退,例如沿用上次可信结果、使用传统控制器、降低运行等级或进入安全状态。回退动作和完成时间本身也属于实时需求。
## 5. 系统级时间模型
AI 辅助决策链可表示为:
```text
R_ai = C_sample + C_tx_req + Q_linux + C_pre
+ C_infer + C_post + C_tx_rsp + C_validate
```
系统约束不是简单要求 `C_infer` 最小,而是:
```text
R_control <= D_control
AI 结果被采用时:R_ai <= D_ai 且 age(result) <= A_max
AI 结果未按时到达时:R_fallback <= D_fallback
```
其中,控制闭环约束为硬优先级;AI 时效约束通常为任务相关的软实时或固实时约束;回退路径必须有独立期限。
## 6. 资源并行与隔离策略
### 6.1 CPU 和中断
- 为 RTOS 域保留独立物理核,避免与 Linux vCPU 时间复用;
- 将关键定时器和现场总线中断直达 RTOS 域;
- 将网卡、存储和加速器完成中断尽量路由到 Linux 域;
- 若共享 LLC,测量 Linux 推理对控制任务缓存行为的干扰;
- 记录 SMT、动态迁核和电源管理对分区确定性的影响。
### 6.2 内存、带宽和 DMA
- 两域使用静态内存区间,共享区保持最小化;
- 共享缓冲区预分配,禁止关键路径动态扩容;
- 使用 IOMMU 或硬件访问控制限制 DMA 范围;
- 对 DRAM 带宽、内存控制器和互联竞争进行压力实验;
- 若硬件不支持带宽限额,必须把“核隔离”和“内存隔离”分开表述。
### 6.3 加速器
推荐由 Linux 推理域独占 GPU/NPU,以保留成熟驱动和运行时生态。RTOS 通过请求契约使用推理服务,而不是直接进入厂商运行时。
若控制域也需访问同一加速器,则必须额外解决队列仲裁、DMA 隔离、不可抢占执行段和故障复位归属。这种共享模式风险更高,应作为扩展方案而非默认主线。
### 6.4 功耗和热
分域不自动消除芯片级功耗和温度耦合。Linux 域的持续推理可能触发全芯片功耗限制或降频,进而改变 RTOS 域执行时间。因此需要:
- 固定或记录各域频率和功率模式;
- 同步采集控制延迟、推理负载、温度和实际频率;
- 对推理域设置负载准入或功耗上限;
- 验证热稳态而非只测短时冷机性能。
## 7. 故障与降级状态机
```text
正常增强控制
│ AI 超时/低置信度
▼
传统控制或保持模式
│ 连续超时/通信故障
▼
推理域隔离与重启
│ 控制风险上升
▼
受限运行或安全状态
```
需要验证的故障至少包括:
- Linux 推理进程崩溃;
- Linux 域卡死或重启;
- 加速器驱动错误或设备复位;
- 跨域队列堆满、消息乱序或数据损坏;
- 推理持续超时;
- Linux 域 CPU、内存、网络或存储过载。
每种故障都要记录检测时间、隔离时间、回退完成时间、控制任务违约数和恢复后首个有效 AI 结果时间。
## 8. 可比较的架构组
| 组别 | 架构 | 用途 |
|---|---|---|
| A0 | 单 Linux,控制与推理同域 | 通用部署基线 |
| A1 | PREEMPT_RT Linux,控制与推理同域 | 实时增强 Linux 基线 |
| A2 | RTOS 同域承载控制与可运行的 AI | 适用于 MCU/小模型,不强求大模型生态 |
| A3 | RTOS 控制域 + Linux 推理域 + 分区层 | 边缘并行主方案 |
| A4 | A3 加入通信、带宽、故障和热治理机制 | 完整优化方案 |
比较时必须固定硬件、控制任务语义、AI 模型、输入到达序列和功率策略。A2 与 A3 若使用不同推理后端,应明确这是“系统方案比较”,不能仅归因为内核差异。
## 9. 核心评价指标
### 控制域
- 周期任务响应时间、抖动和 deadline miss ratio;
- 外部输入到执行器输出的物理链路延迟;
- AI 过载与故障期间的观测最大响应时间;
- 回退路径完成时间。
### AI 链路
- 从 RTOS 发起请求到结果验证完成的端到端延迟;
- 结果按期率、新鲜度合格率、超时率和丢弃率;
- 吞吐、TTFT/TPOT 或任务特定推理时延;
- 推理域重启后的恢复时间。
### 隔离与代价
- 空载和推理满载时控制延迟之差;
- CPU、内存带宽、I/O、DMA 和热干扰敏感度;
- 跨域 IPC 延迟、抖动、拷贝次数和 CPU 开销;
- 静态资源预留造成的推理吞吐及能效损失。
## 10. 架构结论边界
本架构旨在证明“系统可以在 AI 负载不确定的情况下保护关键控制路径,并对 AI 结果实施有期限的安全消费”。它不自动证明:
- Linux 域中的大模型具备硬实时性;
- Hypervisor 消除了所有共享硬件干扰;
- 一个硬件平台的分区结果可直接迁移到另一 SoC;
- 只要控制域未违约,AI 功能就一定满足任务需求。
最终结论必须同时报告控制保障效果、AI 结果可用性以及隔离带来的资源代价。