81 lines
2.6 KiB
Markdown
81 lines
2.6 KiB
Markdown
# 大小脑时间契约与跨域通信
|
|
|
|
## 1. 接口原则
|
|
|
|
大小脑之间采用异步、有界、可超时和可丢弃的消息通道。小脑控制线程不得执行无限等待、动态扩容或不可控的大块数据复制。
|
|
|
|
大脑输出应从开放文本收敛为受约束结构:
|
|
|
|
```text
|
|
任务目标 → 白名单技能 → 参数与约束 → 小脑验证 → 执行
|
|
```
|
|
|
|
## 2. 消息模型
|
|
|
|
### 请求
|
|
|
|
| 字段 | 含义 |
|
|
|---|---|
|
|
| `request_id` | 唯一序号 |
|
|
| `sample_time` | 输入数据采样时刻 |
|
|
| `deadline` | 最晚可用时刻 |
|
|
| `task_class` | 感知、规划、诊断或交互类别 |
|
|
| `priority` | 域内服务优先级提示 |
|
|
| `payload_ref` | 受控共享缓冲区引用 |
|
|
| `schema_version` | 接口版本 |
|
|
|
|
### 响应
|
|
|
|
| 字段 | 含义 |
|
|
|---|---|
|
|
| `request_id` | 请求匹配 |
|
|
| `finish_time` | 推理完成时刻 |
|
|
| `valid_until` | 结果失效时刻 |
|
|
| `model_version` | 模型版本和审计信息 |
|
|
| `confidence/status` | 结果质量与错误状态 |
|
|
| `skill_id` | 白名单技能编号 |
|
|
| `constraints` | 速度、力、空间和持续时间约束 |
|
|
| `checksum` | 完整性校验 |
|
|
|
|
## 3. 小脑消费条件
|
|
|
|
```text
|
|
accept(result) =
|
|
id_match
|
|
AND schema_valid
|
|
AND checksum_valid
|
|
AND finish_time <= deadline
|
|
AND now <= valid_until
|
|
AND confidence >= threshold
|
|
AND skill_is_whitelisted
|
|
AND constraints_passed
|
|
```
|
|
|
|
拒绝结果后,小脑执行保持、传统控制、减速、停车或其他预定义回退,不等待大脑重新计算。
|
|
|
|
## 4. 通信实现候选
|
|
|
|
| 方式 | 优点 | 风险 | 适用场景 |
|
|
|---|---|---|---|
|
|
| 共享内存环形队列 + 通知 | 低复制、可控队列 | 缓存一致性和内存访问权限 | 同 SoC 分域主方案 |
|
|
| RPMsg/邮箱 | SoC 生态常见、域间明确 | 消息大小和驱动能力受限 | MCU + 应用核 |
|
|
| 虚拟设备 | 与 Hypervisor 集成 | VM exit 和虚拟中断开销 | 虚拟机分区 |
|
|
| 以太网/TSN | 物理隔离、易扩展 | 网络栈与同步误差 | 双机大小脑 |
|
|
|
|
## 5. 队列策略
|
|
|
|
- 队列必须有固定容量;
|
|
- 状态类消息可采用“只保留最新值”;
|
|
- 事务类技能命令不得静默覆盖;
|
|
- 大脑过载时优先拒绝低价值请求;
|
|
- 小脑记录丢弃、超时、覆盖和回退原因;
|
|
- 域重启后通过 epoch 或会话号拒绝旧消息。
|
|
|
|
## 6. 验证重点
|
|
|
|
- IPC 单向、往返、P99.9 和观测最大时延;
|
|
- 消息大小、频率和队列深度的影响;
|
|
- 队列满、乱序、重复、损坏和版本不一致;
|
|
- 大脑域重启后的旧消息隔离;
|
|
- 通信线程是否影响控制核和关键中断。
|