随着汽车行业电气化和自动化程度的提高,汽车内部ECU的合并,更严格的安全性标准,汽车生态系统参与者正在以多种方式寻求虚拟化概念,以应对系统的复杂性,实现未来汽车。
计算机领域的硬件虚拟化
硬件虚拟化是一种对计算机或操作系统的虚拟,虚拟化对用户隐藏了真实的计算机硬件,表现出另一个抽象计算平台。
诸如GPU之类的设备,托管一个或多个虚拟机的能力,每个虚拟机的行为类似于具有自己的操作系统独立计算机,并且都在相同的基础设备硬件上运行。这意味着单个GPU可以支持多个同时运行的操作系统,每个操作系统都将工作负载提交给单个图形硬件设备。
如果做一个更形象的比喻,有一台打印机连接在一台电脑上,只有一部电脑才能使用它,为了让不同的电脑能用上它,我们在这台电脑上配置共享打印机的功能,就好比软件虚拟化,打印机本身进化成网络端口,直接提供给不同的电脑同时服务,就成了硬件的虚拟化。
计算平台作为智能网联汽车的大脑,多采用多元异构的硬件架构,并通过多种操作系统运行具有不同功能安全和信息安全等级的环境感知、路径规划和车辆控制算法,让人不禁会思考:硬件虚拟化是否可以嫁接到车载计算机上,充分利用车内计算空间,并进一步压缩硬件成本。
车内虚拟化的发展
1950年,电子产品仅占汽车成本的1%。如今,汽车成本中约有40%是电子设备,随着自动驾驶功能和安全功能的增加以及针对这些系统的定制软件的开发,这种成本将继续上升。
有专家指出,“有些公司构建了SoC,但实际上他们采用了两个图形核心,一个用于仪表板,另一个用于驱动另一块屏幕,这些在物理上是分开的。问题是,如果两者性能存在差异,则不能仅使用另一个GPU来加速它,这是人们遇到的一个大问题。没有充分挖掘和利用计算空间,配置太多模块导致了昂贵的结果。”
传统汽车制造商似乎还没有意识到车载操作系统重要性,它能在未来商业模式中节省资金,同时也可以解决自动驾驶问题,ADAS问题和安全问题以及所有其他电气化问题。
计算平台在硬件层实现多处理器整合的同时,打破了传统汽车电子架构中基于总线和网关的物理保护屏障,使得不同安全级别的应用共享计算能力,在软件层基于自动驾驶操作系统系统软件运行具有不同功能安全及信息安全等级和实时性要求的应用软件。保证差异化功能安全和信息安全要求的同时满 足性能要求是自动驾驶操作系统系统软件设计的关键。
特斯拉在互联汽车的功能方面发挥了重要作用,可以使用iPhone打开汽车,检查汽车,查看汽车中的摄像头,一般情况下,两台不同的计算机,无法将相机连接到该手机上,它观看视频。然而,特斯拉计算机执行摄像头系统,与其他任何设备都可以形成通信,这就是操作系统的意义。
硬件虚拟化旨在解决这些问题。“假设你有一个GPU,但是它具有多个客户端操作系统-基本上是多个受保护的工作负载,它们可以占据一定比例的GPU,可以将其完全放在硬件中,以使开销降至最低,这与人们近来在CPU上所做的事情类似,一种基于时间切片的系统。使用基于软件的规则来调度不同的工作负载并相互保护。”
Cadence解决方案营销高级组总监Frank Schirrmeister指出,鉴于汽车行业正在重新考虑数据总线,因此虚拟化在当前的汽车中尤其重要。“虚拟化非常重要,尤其是在汽车中,您会遇到分区架构以及如何放置的情况。您确实需要小心,将关键方面与次要方面分开,例如音频和视频,后者对自动驾驶很重要。”
在自动驾驶汽车中,具有许多不同的分布式处理器,但并不是每个处理器都专用于特定功能。在许多情况下,这被视为冗余的一种方式,从而增加了重量和成本。但是这种方法也限制了自动驾驶汽车所需的故障转移系统的功能。
每个提供商都将为该特定处理器提供操作系统和应用程序,随着系统复杂程度的提高,所需的计算能力被集中在一台集中式计算机中。这些处理器被要求放在一起,同时又要互不干扰分开工作,不同的安全等级往往会带来很大的难度。通过虚拟化的方法,可以创建分配任务的错觉,将每个任务分开,如果某个特定任务由于软件故障而失败,那么其他所有任务都将不受影响。软件虚拟化是分隔不同软件系统并降低总体硬件成本的有效方法。
国外Imagination公司利用内置的硬件虚拟化功能,实现服务与应用程序的完全隔离,以确保在系统被入侵或数据毁损的情况下仍能保持安全,此平台最多能同时支持八个应用程序或服务运行在各自独立的容器中,汽车 OEM 厂商能任意部署并移除服务,完全不会影响其他同时运行的服务。汽车 OEM 厂商可以根据图形或运算应用程序优先设计其系统,以满足车道偏离警示、盲点侦测、以及全景环绕等 ADAS 功能。其他任务,像是信息娱乐系统和仪表板显示,能在第二个 SPU 上运行,利用优先级机制来达到系统的性能目标。
汽车虚拟化面临的挑战
目前,用于汽车应用的处理器内核发展缓慢。为了支持虚拟化,需要附加硬件功能,结合更多的软件层,这使得整体验证和功能安全合规性更加复杂。同时,如果没有标准化解决方案(例如汽车专用操作系统),该问题将变得更加困难。操作系统的任务是处理这个领域中许多独特的安全性和复杂性要求,但是要与专用操作系统相比,实现这一点要困难得多。
汽车是世界上唯一没有自己的操作系统的大批量消费设备。INTEGRITY和QNX是最著名的以汽车为中心的操作系统。还有汽车级的Linux版本,这是Linux的简化版本,所有这些都可以在虚拟系统中运行。Linux和Android之类的产品都经过了一定程度的测试,但是它们仍然是开源的,不能完全保证它们没有错误。
同时,汽车开发过程中要求将ISO26262覆盖在汽车开发的V模型上。在开发周期的每个阶段,甚至都要解决一些没有出现在开发工具中的开发步骤,并且这些步骤必须是可追溯和可测试的,虚拟化在这里也可以发挥作用。
汽车OEM厂商们正在努力磨练其软件专业知识,解决以硬件为中心的思维方式。 虚拟化,数字化和数字双胞胎确实可以为他们提供帮助,满足在物理上无法验证真实硬件上的所有内容。测试从设计到验证都是断开的,使用数字孪生和虚拟化的抽象是帮助他们突破障碍的一种方法。如果他们在整个过程中都接受这一点,将可以极大地加快和改善更多自动驾驶汽车的开发过程。