# 技术路线:静态编排、工具链与芯片协同 ## 1. 总体架构 本子课题采用“离线联合编排 + SylixOS有界运行时 + 规则兜底”的结构。 ```text 模型与数据集 控制任务与安全规则 │ │ ├──模型解析/量化 ├──周期/截止期/WCET ├──算子图/张量生命周期 ├──中断/DMA/通信开销 └──质量阈值 └──降级与恢复条件 │ │ └────┬─────┘ ▼ 离线联合编排器 内存规划/时间编排/准入判定 │ ┌───────────┴───────────┐ ▼ ▼ 拒绝或降级建议 SylixOS工程产物 │ ▼ 固定任务、静态内存、有界队列 │ ▼ 超时检测、规则兜底、恢复 ``` ## 2. 四层技术结构 ### 2.1 模型与算子层 - 固定模型版本、输入尺寸和任务质量标准; - INT8等目标量化; - 有限算子集合; - 统计权重、Tensor Arena和工作区; - 建立目标板算子执行时间和能耗数据库。 ### 2.2 离线编排层 - 分析控制任务周期、截止期、执行时间与干扰; - 规划静态内存和张量复用; - 选择完整推理窗口或算子分段窗口; - 计算响应时间和安全余量; - 输出 `PASS / PASS WITH LIMITS / REJECT`。 ### 2.3 SylixOS执行层 - 固定优先级与周期释放; - 控制任务、AI任务和安全任务分级; - 任务核绑定与中断治理; - 静态区、固定Arena和DMA缓冲; - 高精度时间戳、看门狗和异常恢复。 ### 2.4 规则与闭环层 - AI输出范围、状态机和置信度检查; - 超时或过载时丢弃过期结果; - 默认动作或规则控制接管; - 恢复前连续自检; - 保证控制内环不等待AI。 ## 3. 核心机制 ### 3.1 静态内存 部署前计算: \[ M_{AI}=M_{weights}+M_{arena}+M_{workspace}+M_{IO}+M_{stack} \] 并保证: \[ M_{AI}\leq M_{total}-M_{OS}-M_{control}-M_{comm}-M_{safety} \] 运行阶段避免模型路径使用无界动态分配;权重、张量、DMA和控制缓冲分区管理。 ### 3.2 静态时间 控制任务始终高于AI任务。AI采用以下两种方式之一: - 固定周期内完成一次完整推理; - 把算子图切分成若干有界片段,分布在多个控制周期的空闲窗口执行。 必须分析AI不可抢占片段、中断和DMA对关键任务造成的最大阻塞。 ### 3.3 有界通信 - 固定长度队列或环形缓冲; - 最新值优先,过期输入可丢弃; - 控制任务不得因等待AI队列而阻塞; - 结果携带时间戳和有效期; - 超时结果不得晚到生效。 ### 3.4 部署准入 在编译和烧录前检查: - Flash/RAM是否超限; - 算子是否受支持; - 模型质量是否达标; - 推理窗口是否满足; - 控制任务是否仍可调度; - 是否存在规则兜底和故障恢复路径。 ## 4. 工具链路线 ```text ONNX/TFLite/其他固定模型 → 解析与校验 → 量化和算子合法化 → 目标芯片算子映射 → 张量生命周期与静态内存规划 → 控制任务联合调度分析 → SylixOS C/C++、链接段和任务配置生成 → RealEvo编译、部署、调试 → 板端数据回灌 ``` 建议研究团队开发独立的编排器,不重复实现IDE。编排器负责模型、资源和任务分析;RealEvo继续负责BSP/App工程、交叉编译、部署和调试。 ## 5. 结合现有设备的实现 ### 5.1 4×V100服务器 负责训练、剪枝、量化校准、参考精度、模型转换和编排工具运行。服务器结果只提供模型侧基线,不作为控制端实时性证据。 ### 5.2 RK3588工业盒 首期以CPU路径打通端到端流程,再把NPU作为条件扩展: 1. SylixOS BSP和控制任务准入; 2. CPU小模型运行; 3. 静态Arena和任务生成; 4. 固定核、共享核与干扰对照; 5. 超时、过载和规则兜底; 6. NPU运行时可用后增加DMA、统一内存和中断实验。 ### 5.3 RK3568/RK3576 用于验证生成代码和资源描述能否跨BSP迁移,并逐步缩小内存、算力和功耗预算。两者仍归类为控制端SoC。 ### 5.4 真正MCU 必须在BSP、最小系统、模型运行时和测量链路确认后选型。真正MCU阶段应把模型收敛到1D CNN、DS-CNN、MLP、决策树等有限任务,不延续大模型口径。 ## 6. SylixOS技术映射 | 研究机制 | SylixOS/RealEvo落点 | 待确认项 | |---|---|---| | 周期任务与优先级 | 线程、定时器、RMS/固定优先级 | API和实际调度配置 | | 核绑定 | SMP与大小核调度 | RK3588具体亲和性接口 | | 静态内存 | BSP内存映射、链接脚本、静态区 | 内存域和限额能力 | | DMA/Cache | BSP与驱动接口 | NPU、摄像头等设备一致性路径 | | 异常恢复 | 看门狗、任务/进程恢复 | 推荐的局部重启方式 | | 代码部署 | RealEvo BSP/App构建、上传和调试 | 外部生成工程接口 | | MCU落地 | lite/tiny与目标BSP | 芯片清单和最小资源占用 | ## 7. 技术边界 - 不把GPU/NPU内部执行时间直接归因于RTOS; - 不把不同推理后端的整栈差异写成操作系统差异; - 不用观测最大值替代理论WCET; - 不在驱动未准入时承诺NPU路径; - 不用SoC受限配置替代真正MCU功耗和存储结论。 六步编排、配置产物和准入门槛详见 [01-离线联合编排研究框架.md](./01-离线联合编排研究框架.md)。