0
点赞
收藏
分享

微信扫一扫

车载hypervisor选型

夜空一星 2022-03-21 阅读 143
linux

关键场景及需求

场景

汽车电子E/E集中化,线束聚合的趋势下;自动驾驶/OTA等计算中心化的背景下,促使通过Hypervisor技术来支持一芯多系统

在智能座舱方案中,在一个SoC同时运行包括娱乐,仪表和HUD等系统,存在如下问题,这也要求通过Hypervisor技术来支持一芯多系统

Mixed Criticality:和娱乐相比,仪表和Safety相关,需要实时性和确定性(ASIL-B)

Security:娱乐系统如果被攻击,不能影响仪表的功能

需求

Safety/Security隔离性保证:分为时间隔离/空间隔离;包括故障隔离,授权隔离等

实时性/确定性保证:通过Cache Coloring等手段支持确定性

复用/减少成本:代码复用,认证结果复用等

总结

在一个SoC上运行多系统是核心需求,需要通过Hypervisor来支持;本文目的在于决策自研Hypervisor的基线

一芯多系统 Hypervisor方案

方案:

基于Security Extension/SE:TrustZone-Assisted Hypervisor

VOSYSmonitor / RTZVisor / LTZVisor

基于Virtualization Extension/VEHypervisor

对比:后文在基于VE的Hypervisor方案中选择

 

 

业界方案 商业方案

车载商用方案包括:QNX / Green Hills(multivisor) / WindRiver / Mentor(Nucleus) / LynxSecure / ElektroBit (corbos / tresos) / VOSyS (VOSYSmonitor) / SYSGO (PikeOS) / Open Synergy (COQOS) / HARMAN(Red Bend) / Kernkonzept(L4Re) / XEN衍生(Perseus / Crucible/...) / ...

基本上是Type I(可能原因:性能 + Safety认证,攻击面)Embedded Hypervisor

 

 

开源选项 现状

汽车开源组织建议

AGL推荐

XEN / KVM / L4RE / ACRN

GENIVI Hypervisor Project建议

不针对Type I/II等做建议,尝试通过VirtIO等规范来确保Hypervisor能力在不同Hypervisor版本之间实现互操作

其它开源方案

 

 开源选项 对比

目前看到如下的开源项目及其比较:

 开源选项 XEN和Hafnium比较

Hafnium Hypervisor典型特征

安全模型:优先保证虚拟机之间内存隔离性;只保证Primary VM不保证Secondary VM可用

内存虚拟化: Stage 2 Page Table / SMMU for DMA Access

CPU虚拟化:Primary VM的线程作为VMvCPU,同时假设Linux/Android作为Primary VM,充分重用Linux的调度器(包括电源管理,Big.Little等场景)。缺点是:调度延迟较大

中断虚拟化:中断由Primary VMSecondary VM注入,因此中断注入的延迟较大

 

XEN的嵌入式虚拟化改造

代码精简:1) XEN最初支持X86且用于服务器虚拟化,简化了大量代码(~1/6)  2) 消除设备模拟/QEMU相关依赖

Dom0-less支持:1) 支持DomU的快速启动(XEN+DomU的时间)  2) DomU完全脱离Dom0运行

TEE虚拟化支持:协调多虚拟机访问TA的能力(SMC指令的模拟),实现包括内存共享,IPAPA转化等工作

功能安全相关认证:1) 2019年成立功能安全工作组(FuSA SIG) 2) 定义了如何达成ASIL-B的路标 3) 定义了XEN需要遵从的MISRA C规则 4) 当前正在梳理安全认证的相关文档和文档维护流程 5) Zephyr项目一起开展安全认证工作

 自研考虑及建议

技术可获得性风险:中美长期竞合的趋势/无国产替代的背景下,应避免卡脖子

外购成本昂贵:以QNX为例,各种授权费用昂贵导致单车成本高

软硬件方案的灵活性:Hypervisor和SoC基本是绑定关系,长期来看,不利于我司自研芯片的导入

功能定制的时间成本:商业软件功能的定制性较差,周期长

差异化竞争优势不足:商业软件功能稳定且同质化,不利于自研差异化的特色功能

建议

强调功能完整性:基于Hypervisor的成熟度,Safety认证的可能性等因素,建议基于XEN自研

强调分区隔离性:考虑Lisence等因素,建议基于Hafnium自研。但是其调度延迟和中断延迟较大;同时由于Hafnium不保证secondary VMs的可用性,这对于车载场景是较大的风险

综合考虑:基于XEN自研

举报

相关推荐

0 条评论