4. 多域隔离需求建模
在 R-Car Hypervisor 工程中,隔离设计不能从“先分几个虚拟机”开始,而应从各业务域的运行特征反推隔离需求。仪表、座舱、ADAS、网关四类域在实时性、功能安全、信息安全、资源预算上的诉求差异极大,若用同一套隔离策略覆盖,要么过度隔离导致资源浪费与通信延迟,要么隔离不足导致跨域干扰。本节的任务是把这些差异量化为可写入配置的设计输入。
一、四类域的运行特征与需求差异
仪表域的核心是“确定性”:车速、转速、报警灯等信号必须在固定周期内刷新,典型刷新周期为 10~20 ms,端到端抖动通常要求控制在周期的 10% 以内。它通常承载 ASIL-B 级别的显示安全目标,一旦画面冻结或延迟,驾驶员会失去关键信息。座舱域则以多媒体、语音、导航为主,吞吐量大但实时性宽松,刷新周期可到 33~100 ms,安全等级多为 QM,但它拥有大量对外接口(蓝牙、Wi-Fi、USB),是信息安全攻击的高风险入口。ADAS 域要求高算力与低延迟并存,感知融合与决策周期常在 20~50 ms,安全等级可达 ASIL-D,且对内存带宽和 CPU 核占用极为敏感。网关域负责 CAN、以太网、LIN 等总线路由,实时性要求中等(报文转发延迟通常 < 5 ms),但它是整车信息安全的边界,必须实现严格的访问控制与报文过滤。
这些差异意味着:隔离需求不是“隔离或不隔离”的二值选择,而是按维度分级的连续谱。下面这张需求映射图把四个域的关键诉求与对应的隔离手段对应起来,作为后续配置的输入依据。
二、把需求转成可配置的隔离等级
R-Car Hypervisor 通常提供 CPU 核绑定、内存分区、外设直通/虚拟化、中断路由、通信通道五类隔离手段。需求建模的产出应是一张“域—隔离手段—等级”的矩阵。以示例参数说明:仪表域 CPU 核绑定设为独占(等级 3),内存分区设为静态固定(等级 3),显示控制器直通(等级 3),中断直投(等级 3),通信通道仅开放与网关的 CAN 通道(等级 2)。ADAS 域 CPU 核绑定独占(等级 3),内存分区静态固定(等级 3),但 GPU/加速器可共享(等级 1),中断可部分共享(等级 2)。座舱域 CPU 核绑定共享(等级 1),内存分区动态可回收(等级 1),外设虚拟化(等级 1),通信通道开放较多(等级 1)。网关域 CPU 核绑定独占(等级 3),内存分区静态固定(等级 3),外设直通(等级 3),通信通道严格白名单(等级 3)。
这里的等级 1/2/3 是示例定义:1 表示共享、2 表示受控共享、3 表示独占或强隔离。实际项目中应结合芯片资源与安全目标调整。关键判断依据是:安全等级越高、实时性越硬,隔离等级越高;对外接口越多,信息安全隔离等级越高。
三、资源预算的量化方法
资源预算不能凭感觉分配。以 R-Car H3/M3 类 SoC 为例,假设总共有 8 个 Cortex-A 核、4 GB 内存。一个可落地的示例分配如下:仪表域 1 核 + 512 MB,ADAS 域 3 核 + 2 GB,座舱域 2 核 + 1 GB,网关域 1 核 + 256 MB,剩余 1 核 + 256 MB 作为 Hypervisor 自身与预留。内存分配需按 2 MB 对齐,并预留至少 10% 的余量应对峰值。CPU 核分配要避免跨核缓存争用,ADAS 的 3 个核应尽量落在同一簇内以减少跨簇访问延迟。
带宽预算同样重要。ADAS 的感知数据流可能占用数 GB/s 的内存带宽,若与座舱的显示刷新共享内存控制器,会造成仪表抖动。因此内存带宽需按域预留,示例中 ADAS 预留 60%,仪表 15%,座舱 20%,网关 5%。这些数字应在项目早期通过带宽估算工具或实测校准,而不是直接照搬。
四、形成隔离设计输入文档
需求建模的最终交付物是一份隔离设计输入,它至少应包含:每个域的实时性指标(周期、抖动上限)、安全等级(ASIL/QM)、信息安全要求(接口白名单、加密需求)、资源预算(核、内存、带宽、外设)、隔离等级矩阵、通信通道定义(源域、目的域、协议、方向、周期)。这份文档直接作为 Hypervisor 配置文件的输入,配置项与文档字段一一对应,避免“文档写一套、配置做一套”。
完成本节的需求建模后,后续的虚拟机划分、CPU 调度配置、内存映射与通信通道实现才有明确依据。隔离设计输入的质量,直接决定多域隔离工程能否一次落地。