基于Hypervisor智能驾舱的AUTOSAR解决方案(1)

引言

当今的汽车制造商正竞相通过使用人机界面(HMI),基于云的服务,车辆自组织网络(VANET)和自动驾驶等技术在未来的车辆中部署这些创新且吸引眼球的新功能。这些新技术增加了车辆电气和电子(E / E)架构的复杂性,并要求软件系统要支持汽车间及汽车和云端的互连及交互。随着现代车辆中100多个ECU的出现,电子控制单元(ECU)的数量不断增加。这迫使汽车OEM厂商将多个单元整合到一个单一的高计算平台中。

尽管这种方法简化了车辆的网络模型,但它给汽车软件系统架构带来了更多挑战。这些挑战同样存在于智能座舱,高级驾驶员辅助系统(ADAS),智能穿戴设备和远程信息通信系统等领域中(图1)。更复杂的是,这些软件应用程序中对在安全性和互连性方面有更严格的实时性和功能安全性要求。对车载通信和对安全性有严格要求的系统通常需要实时操作系统(RTOS),而与安全性无关的信息娱乐应用程序则在Linux通用操作系统上运行。两个OS的组合使这些应用程序具有异构性质。

图1:座舱域控制器网络

解决方案

可以在同一电子控制单元上添加两个微控制器(MCU)。 一个MCU运行基于Linux®的应用程序,该应用程序负责AI等算法和信息娱乐功能等高计算任务,而另一个MCU运行通常用于车载和诊断通信的简单,实时的应用程序。 这两个MCU通过串行外围设备接口连接,从而允许这两个应用程序之间进行通信(图2)。

尽管此方法允许重用标准软件体系结构,但为每个系统添加专用硬件效率不高且成本很高。 而且,通过串行通信接口在这些系统之间大量的数据通信无法保证其通信的可靠性。 另一种方法是在Linux上移植实时应用程序。

图2:驾驶舱领域进行信息娱乐/ AUTOSAR整合的方法

通过使用高性能的Embedded Hypervisor硬件和虚拟化技术可在同一处理器上整合多个操作系统。这是开发异构的汽车应用程序的有效方法。下面介绍如何使用Mentor嵌入式管理程序将实时AUTOSAR应用程序与基于Linux的应用程序整合在一起。所描述的解决方案使用TI Jacinto 6信息娱乐评估模块(图3)。

图3:TI Jacincto 6信息娱乐评估模块

系统架构与方法

本节定义了虚拟化环境的特征以及用于满足异构汽车应用程序要求的方法。

虚拟化的环境

实现一致的虚拟化环境的核心在于处理影响处理器硬件状态的敏感指令。 实现此目的的技术可以总结如下:

全虚拟化:全虚拟化(Full virtualization), 也称为原始虚拟化技术,它使用虚拟机协调客户操作系统和原始硬件。这里"协调"是一个关键词, 因为VMM在客户操作系统和裸硬件之间用于工作协调。一些受保护的指令必须由Hypervisor(虚拟机管理程序)来捕获和处理. 因为操作系统是通过Hypervisor来分享底层硬件.

全虚拟化的运行速度要快于硬件模拟, 但是性能方面不如裸机, 因为Hypervisor需要占用一些资源. 全虚拟化最大的优点是操作系统没有经过任何修改. 它的唯一限制是操作系统必须能够支持底层硬件(比如, PowerPC).

半虚拟化:半虚拟化(Paravirtualization)是另一种类似于全虚拟化的热门技术. 它使用Hypervisor(虚拟机管理程序)分享存取底层的硬件, 但是它的客户操作系统集成了虚拟化方面的代码. 该方法无需重新编译或引起陷阱, 因为操作系统自身能够与虚拟进程进行很好的协作.

硬件辅助虚拟化:该技术通过使用硬件扩展来处理敏感操作,从而从全虚拟化和半虚拟化中获得最大收益,从而在大多数情况下消除了虚拟机管理程序仿真的开销,而无需修改虚拟进程在虚拟机管理程序上运行。 当然,此方法的缺点是它仅适用于具有虚拟化支持的现代处理器。

CPU虚拟化

Arm®TrustZone®是一个内置的硬件安全解决方案,它定义了一个由两个区域组成的安全域:安全和非安全。 引入了处理器模式以进行监视区域的切换,并引入了特权指令(由安全监视软件调用)来管理这两个区域的软件堆栈。

图4:当前的Armv7 CPU模式。

尽管TrustZone主要是为安全性而设计的,但它可以用作混合关键系统的硬件辅助虚拟化方法。不能单独使用TrustZone扩展来处理虚拟机监控程序代码,因为无法捕获非安全区域到安全区域的指令,从而无法虚拟化非安全区域中的其他进程。 但是,这可以使用新的HYP模式来实现,该模式降低了虚拟机管理程序设计的复杂性,并降低了敏感指令仿真的成本,因为它通过使用自己的专用寄存器应用陷印和仿真技术。

内存虚拟化

添加了地址转换的新阶段,以使来宾内核对内存地址的管理与物理内存脱钩。 这是通过使用第二阶段页表转换将中间物理地址(IPA)转换为物理地址(PA)来实现的。 此阶段对来宾内核完全透明,并保护物理内存免受来宾未经授权的访问。 图5显示了在虚拟机管理程序上运行的虚拟机的地址转换阶段。

图5:内存地址转换也可以从HYP模式中删除第二阶段地址转换,以使IPA和PA地址相同。

ARM的通用中断控制器

Arm通用中断控制器主要由两个组件组成:

分配器(GICD):执行中断优先级分配并路由到所有CPU。 还负责软件中断的产生。

CPU接口(GICC):负责处理CPU级别的中断,因为它根据CPU当前的优先级接受来自分配器的中断。 负责确认并通知中断结束。

ARM的虚拟CPU接口

Arm中通用中断控制器的虚拟化扩展添加了另一个组件,即虚拟CPU接口。虚拟CPU接口寄存器具有与物理CPU相同的编程模型

接口注册,因此来宾内核不会知道它是否正在与物理或虚拟CPU通信。它将始终使用物理接口的地址,但是如果软件已虚拟化,则管理程序可以使用第二阶段地址转换将该接口重定向到虚拟CPU寄存器。这个设计

无需模拟CPU接口访问,因此客户机OS可以更高效地执行诸如中断确认之类的频繁任务。

系统管理程序通过分发器管理所有物理中断,并通过列表寄存器将它们作为虚拟中断路由到来宾,该列表寄存器是系统管理程序用来维护虚拟中断状态的列表。这样,虚拟机管理程序可以为所有访客虚拟化分发服务器的功能,但这也意味着必须模拟对分发服务器注册的访客访问。

在Arm的通用中断控制器的新体系结构中,中断停用的过程可以分为两个步骤:

1)通过降低CPU优先级,以及

2)中断停用。

进行虚拟化时,将这两个步骤分开可能会有所帮助。系统管理程序收到物理中断并将其作为虚拟中断路由到来宾内核后,可以在仍在处理虚拟中断的同时降低CPU的优先级。当降低CPU优先级时,可以触发新的中断,从而允许管理程序

在将它们触发给来宾之前更有效地对收到的中断进行优先级排序。在此配置中,当来宾内核取消激活虚拟中断时,物理中断也将被取消激活。

通用计时器

通用计时器模块为每个CPU提供一个实时计数器和一个计时器,这些计时器和计时器可用于在配置的时间段后生成中断。通常,任何内核都需要具有控制能力并能够操纵计时器,以便实时安排事件。这意味着在虚拟化的情况下,管理程序将必须模拟来宾的所有访问者访问计时器的效率非常低。这将大大降低实时性能。这就是为什么Arm体系结构中的通用计时器提供虚拟计数器和虚拟计时器的原因,来宾内核可以使用这些计数器和虚拟计时器而无需捕获虚拟机管理程序。来宾内核应该能够在没有管理程序干预的情况下配置停止/重启虚拟计时器,而管理程序直接将物理计时器用于其自身的调度目的。虚拟计数器可以配置为

与实体计数器的偏移量,以便每个访客都有自己的相对时间。而且,虚拟计数器将

在切换到HYP模式(将来宾与虚拟机监控程序操作隔离开)的情况下自动停止。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,287评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,346评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,277评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,132评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,147评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,106评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,019评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,862评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,301评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,521评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,682评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,405评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,996评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,651评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,803评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,674评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,563评论 2 352