軟件定義汽車對應(yīng)中央服務(wù)器計算架構(gòu),即Zonal架構(gòu),在此架構(gòu)下,虛擬機(jī)將無處不在。軟件定義汽車的實(shí)現(xiàn)離不開中央服務(wù)器計算架構(gòu),這與IT領(lǐng)域的云計算非常相似,云簡而言之就是將IT資源服務(wù)化。過去辦公場景中我們每人一臺PC,擁有獨(dú)立的IT資源,而云可以將IT資源按需分配給需要的租戶,實(shí)現(xiàn)按需、彈性拓展。以前每人一臺PC,現(xiàn)在大家共享一臺超級PC,按需訪問,不用時,資源自動釋放,可供其他用戶使用,這樣資源得以最大化利用,且可以按需擴(kuò)展,及時滿足使用需求。
在汽車領(lǐng)域,每人一臺PC就是每一個分布式ECU,超級PC就是超級SoC芯片,典型如英偉達(dá)的Thor,高通的SA8775以及聯(lián)發(fā)科最新的3納米車載芯片(型號可能會是MT8678),云計算的網(wǎng)絡(luò)通信在汽車領(lǐng)域就是車載以太網(wǎng)以及車載以太網(wǎng)協(xié)議棧標(biāo)準(zhǔn)TSN。
中央服務(wù)器架構(gòu)和云計算一樣離不開虛擬機(jī)。英偉達(dá)的Thor,高通的SA8795以及聯(lián)發(fā)科最新的3納米車載芯片(型號可能會是MT8678)的出現(xiàn),讓車載算力幾乎與目前主流的PC差不多,汽車電子底層硬件不再是由單一芯片提供簡單的邏輯計算,而是多核 SoC 芯片提供更為復(fù)雜控制邏輯以及強(qiáng)大的算力支持。但是汽車領(lǐng)域業(yè)務(wù)具有不同的技術(shù)需求,比如座艙域 IVI 業(yè)務(wù)強(qiáng)調(diào)交互體驗(yàn)、應(yīng)用生態(tài)豐富,比較適合的操作系統(tǒng)是 Android;儀表盤、輔助駕駛有實(shí)時性、可靠性要求,操作系統(tǒng)傾向于 RTLinux、RTOS;智駕域強(qiáng)調(diào)大算力融合感知、推演規(guī)劃,也有實(shí)時性、可靠性要求,也會選擇 RTLinux、RTOS。在域融合的同時,要保證關(guān)鍵業(yè)務(wù)的安全可靠,也要考慮應(yīng)用生態(tài)的可持續(xù)性兼容,這就需要有資源隔離技術(shù)來支撐在同一 SOC 上切分資源,可并發(fā)運(yùn)行多種操作系統(tǒng),保障互不干擾。
資源隔離技術(shù)有多種,從硬件底層逐層向上包括硬件隔離、虛擬化隔離、容器隔離、進(jìn)程隔離等。硬件隔離的隔離性最好,單隔離域的性能、安全可靠性最好,但靈活性、可配置性差,不能實(shí)現(xiàn)硬件共享,導(dǎo)致整個系統(tǒng)的資源利用率差,成本居高不下,不能充分達(dá)到軟件定義汽車的目標(biāo)。
再有就是現(xiàn)在的先進(jìn)SoC包含多種運(yùn)算資源,如DSP、NPU、CPU、GPU等(因此也稱之為HPC,異構(gòu)計算),不同域需要不同的運(yùn)算資源,這顯然需要資源共享。容器隔離、進(jìn)程隔離可以更輕量級地實(shí)現(xiàn)業(yè)務(wù)隔離,但還是在同一個操作系統(tǒng)內(nèi),存在著資源干擾、相互安全攻擊的隱患,并且無法支持異構(gòu)操作系統(tǒng)業(yè)務(wù)域融合,影響傳統(tǒng)業(yè)務(wù)繼承,不利于生態(tài)發(fā)展。在眾多的資源隔離技術(shù)中,虛擬化是安全可靠、彈性靈活的優(yōu)選方案,是軟件定義汽車的重要支撐技術(shù)。
Hypervisor 直譯即 “超級監(jiān)督者” ,也稱為虛擬機(jī)監(jiān)控程序(VMM)。Hypervisor處于SoC硬件平臺之上,將實(shí)體資源(如 CPU、內(nèi)存、存儲空間、網(wǎng)絡(luò)適配器、外設(shè)等 ) 轉(zhuǎn)換為虛擬資源,按需分配給每個虛擬機(jī),允許它們獨(dú)立地訪問已授權(quán)的虛擬資源。Hypervisor實(shí)現(xiàn)了硬件資源的整合和隔離,使應(yīng)用程序既能共享 CPU 等物理硬件,也能依托不同的內(nèi)核環(huán)境和驅(qū)動運(yùn)行,從而滿足汽車領(lǐng)域多元化應(yīng)用場景需求。
Hypervisor 可以劃分為兩大類:
一類是 Type1 裸機(jī)型,Hypervisor 直接運(yùn)行在硬件設(shè)備上的,也叫做 Bare-Metal Hardware Virtualization(裸金屬虛擬化環(huán)境);
一類是 Type2 主機(jī)托管型,也叫做 Hosted Virtualization (主機(jī)虛擬化環(huán)境)。
Type2 型 Hypervisor 需要借助宿主操作系統(tǒng)來管理 CPU、內(nèi)存、網(wǎng)絡(luò)等資源,由于 Hypervisor 和硬件之間存在一個宿主操作系統(tǒng),Hypervisor 及 VM 的所有操作都要經(jīng)過宿主操作系統(tǒng),所以就不可避免地會存在延遲、性能損耗,同時宿主操作系統(tǒng)的安全缺陷及穩(wěn)定性問題都會影響到運(yùn)行在之上的VM(虛擬機(jī)),所以 ,Type2型 Hypervisor 主要用于對性能和安全要求不高的場合,比如 : 個人 PC 系統(tǒng)。
Type1 型的 Hypervisor 不依賴主機(jī)操作系統(tǒng),其自身具備操作系統(tǒng)的基礎(chǔ)功能。設(shè)計上更為簡潔,直接運(yùn)行于硬件之上,整體代碼量和架構(gòu)更為精簡,對內(nèi)存和存儲資源要求更少,可滿足自動駕駛系統(tǒng)功能安全等級要求,也具備進(jìn)行形式化驗(yàn)證的條件。所以汽車操作系統(tǒng)更適合使用 Type 1 型 Hypervisor。
隨著微內(nèi)核操作系統(tǒng)技術(shù)的發(fā)展,很多基于微內(nèi)核操作系統(tǒng)設(shè)計的Hypervisor 依賴的 Host OS 已經(jīng)非常精簡,只包括基本的、不變的功能,如 : CPU 調(diào)度和內(nèi)存管理,設(shè)備驅(qū)動和其他可變組件處于內(nèi)核之外,這類Hypervisor 應(yīng)當(dāng)歸于 Type1、還是 Type2,業(yè)內(nèi)存在分歧,但絕大多數(shù)都自稱Type1,因?yàn)槎贾繲ype1是高大上的。
典型的基于HPC的汽車軟件架構(gòu)
圖片來源:大陸汽車
從SoC角度看中間件,虛擬機(jī)和BSP是一體的,BPU指的就是AI運(yùn)算。圖片來源:大陸汽車
圖片來源:Elektrobit
從軟件通訊的角度看虛擬機(jī)的位置,虛擬機(jī)主要是基于以太網(wǎng)硬件之上,未來虛擬機(jī)可以在SoC上,也可以在以太網(wǎng)交換機(jī)上。
Vector PREE 9.5版本上的虛擬機(jī)
圖片來源:Elektrobit
顯然,每個提供自適應(yīng)AUTOSAR的廠家都需要自己研發(fā)一套虛擬機(jī),VECTOR的叫LEAN虛擬機(jī)。
博世旗下的ETAS,其虛擬機(jī)叫VRTE,也是其自適應(yīng)AutoSAR產(chǎn)品的一部分。圖片來源:ETAS
德國大陸汽車旗下的EB用的是L4Re微內(nèi)核虛擬機(jī)。圖片來源:KevnKonzept
鑒于汽車的軟件系統(tǒng)異常復(fù)雜,這會帶來不小的性能損耗,同時車載算力遠(yuǎn)不如PC那樣容易升級,因此虛擬機(jī)要盡量地小,輕量化和高效率,車載SoC的CPU算力要盡可能地高。
早期汽車用虛擬機(jī)還有考慮XEN,后期基本上都是微內(nèi)核,這個微內(nèi)核虛擬機(jī)更接近一個虛擬交換機(jī),主要就是I/O。本來微內(nèi)核的難度頗高,但KVM和OASIS的出現(xiàn)讓微內(nèi)核虛擬機(jī)變得非常容易,一個不到100人的公司也可以在1年內(nèi)搞出一個微內(nèi)核。早期的微內(nèi)核多數(shù)是基于UNIX,而近些年來的微內(nèi)核技術(shù)更接近KVM。
KVM(Kernel-based Virtual Machine,基于內(nèi)核的虛擬機(jī))是一個基于Linux環(huán)境的開源虛擬化解決方案,最早由以色列Qumranet公司開發(fā),在2006年10月出現(xiàn)在Linux內(nèi)核的郵件列表上,并于2007年2月被集成到Linux 2.6.20內(nèi)核中,成為內(nèi)核的一部分。2008年,Qumranet被RedHat所收購,但KVM本身仍是一個開源項(xiàng)目,由RedHat、IBM等廠商支持。與VMwareESX/ESXi、微軟Hyper-V和Xen等虛擬化產(chǎn)品不同,KVM的思想是在Linux內(nèi)核的基礎(chǔ)上添加虛擬機(jī)管理模塊,重用Linux內(nèi)核中已經(jīng)完善的進(jìn)程調(diào)度、內(nèi)存管理、I/O管理等代碼,使之成為一個可以支持運(yùn)行虛擬機(jī)的Hypervisor。因此,KVM并不是一個完整的模擬器,而只是一個提供了虛擬化功能的內(nèi)核插件,具體的模擬器工作需要借助QEMU來完成。
通過KVM模塊的加載將Linux內(nèi)核轉(zhuǎn)變成Hypervisor,KVM在Linux內(nèi)核的用戶(User)模式和內(nèi)核(Kernel)模式基礎(chǔ)上增加了客戶(Guest)模式。Linux本身運(yùn)行于內(nèi)核模式,主機(jī)進(jìn)程運(yùn)行于用戶模式,虛擬機(jī)則運(yùn)行于客戶模式,使得轉(zhuǎn)變后的Linux內(nèi)核可以將主機(jī)進(jìn)程和虛擬機(jī)進(jìn)行統(tǒng)一的管理和調(diào)度,這也是KVM名稱的由來。當(dāng)然,這是典型的Type2的虛擬機(jī)。問題是微內(nèi)核嚴(yán)格說也是Type2的,這個界限已經(jīng)變得模糊。
ARM自8.1后,增加了vhe擴(kuò)展支持,使得hostos和hypervisor都可以運(yùn)行在EL2下。此時它們之間可以直接通過函數(shù)的方式實(shí)現(xiàn)功能調(diào)用,因此其效率已經(jīng)與Type1hypervisor不相上下。而ARM不僅統(tǒng)治了手機(jī)領(lǐng)域,也主導(dǎo)了車載領(lǐng)域,你可以不用ARM架構(gòu),但ARM指令集,沒有廠家能拒絕。
車載Hypervisor與標(biāo)準(zhǔn)化服務(wù)器(x86)+標(biāo)準(zhǔn)化OS(Windows和Linux)的云虛擬化應(yīng)用場景不同,汽車嵌入式環(huán)境中的虛擬化技術(shù)面臨的挑戰(zhàn)是Hypervisor往往需要定制適配底層SoC硬件和上層OS軟件,這一點(diǎn)對于Hypervisor的大規(guī)模商用與普及是一個非常大的技術(shù)障礙。
2016年3月,OASIS(Organizationfor the Advancement of Structured Information Standards,結(jié)構(gòu)化信息標(biāo)準(zhǔn)促進(jìn)組織)正式標(biāo)準(zhǔn)化VirtIO項(xiàng)目,旨在提供一種通用的框架和標(biāo)準(zhǔn)接口,減少Hypervisor對底層不同硬件和上層不同軟件的適配開發(fā)工作量。很快VirtIO標(biāo)準(zhǔn)得到了眾多科技巨頭的支持,包括Apple、Google、ARM、Intel、Red Hat、華為等。Google也在AndroidAutomotive OS中集成對VirtIO的支持。
VirtIO是一套易維護(hù)和易擴(kuò)展的通用設(shè)備仿真接口,由前端驅(qū)動程序(Front-End Driver)、后端驅(qū)動程序(Back-End Driver)和VirtIO虛擬隊(duì)列(Virtual Queue)構(gòu)成。前端驅(qū)動程序由Guest OS實(shí)現(xiàn),后端驅(qū)動程序由Hypervisor實(shí)現(xiàn),虛擬隊(duì)列通常使用環(huán)形緩沖,在Hypervisor和Guest OS之間傳輸數(shù)據(jù),每個驅(qū)動可以有0個或多個隊(duì)列,取決于實(shí)際需要。
回到目前虛擬機(jī)最常用的座艙領(lǐng)域,智能座艙域融合也是在近幾年啟動,正持續(xù)迭代演進(jìn)。NXP和芯馳科技采用了硬隔離方案來實(shí)現(xiàn)域融合,一方面最大程度地沿用既有技術(shù)能力,有確定性保障,但缺少了軟件定義的靈活性,智能化程度有限,是域融合的一種可選方案。
在嵌入式虛擬化技術(shù)方面,國外的 QNX、OpenSynergy、PikeOS 等有先發(fā)優(yōu)勢,尤其在汽車領(lǐng)域已耕耘多年的QNX,在這兩年涌現(xiàn)了較多的QNX應(yīng)用案例。隨著KVM和VirtIO的出現(xiàn),虛擬機(jī)門檻大大降低,國內(nèi)這幾年也出現(xiàn)了不少芯片廠商、獨(dú)立軟件廠商研發(fā)嵌入式虛擬化技術(shù)、產(chǎn)品、解決方案,如中瓴智行的 RAITE Hypervisor(RHOS)、中興 GoldenOS、斑馬智行的 AliOS Hypervisor、中汽創(chuàng)智 CAIC Hypervisor 等。國產(chǎn)化方案芯馳 X9HP+ 平臺,采用硬分區(qū)、Hypervisor 兩種方案靈活配置實(shí)現(xiàn)中低端智能座艙域控制器產(chǎn)品。
中瓴智行的 RAITE Hypervisor(RHOS)
圖片來源:中瓴智行
圖片來源:中瓴智行
中瓴智行與聯(lián)發(fā)科MT8675緊密合作,據(jù)說出貨量已經(jīng)超過600萬套,可算是國產(chǎn)第一。MT8675 只提供了一個 GPU,座艙域需要在儀表和中控上共享使用 GPU 資源。RHOS 實(shí)現(xiàn)了 GPU虛擬化共享,并通過性能優(yōu)化,達(dá)到業(yè)界領(lǐng)先的虛擬化效果(損耗 < 6%)。RHOS 支持Suspend to RAM 功能,MT8675 A 核完全下電,滿足智能座艙待機(jī)靜態(tài)功耗小于 4mA 要求,對DRAM的消耗也低很多。
對于獨(dú)立虛擬機(jī)廠家來說,關(guān)鍵是SoC的選擇。對車廠或Tier1來說都是先確定SoC,再確定周邊供應(yīng)商。再有就是像高通這樣的大廠會推薦同樣體量的軟件合作伙伴如QNX,提供完整的服務(wù),但獨(dú)立性就差點(diǎn)。對于國內(nèi)獨(dú)立的虛擬機(jī)廠家來說,恐怕很難讓高通滿意,因此最好的合作伙伴是聯(lián)發(fā)科。
對于QNX來說,有些麻煩,QNX的確是目前唯一一個能達(dá)到ASIL-D等級的操作系統(tǒng)(包含Hypervisor)。但如果需要實(shí)現(xiàn)ASIL-D級別的系統(tǒng),必須把現(xiàn)有的軟件從Linux系統(tǒng)都移植到QNX。雖然QNX也是符合POSIX標(biāo)準(zhǔn)的,但是移植起來還是非常麻煩,最關(guān)鍵的是這些移植過去的驅(qū)動,其實(shí)是沒有安全等級的,畢竟它根基還是LINUX。換句話說,要想做到真正的ASIL-D,那么一開始就必須以QNX為基礎(chǔ)開發(fā)。
虛擬機(jī)門檻的降低對獨(dú)立軟件廠家非常有益處,但也有些隱憂,比如比亞迪此類大廠,就會內(nèi)部研發(fā)虛擬機(jī)。不過比亞迪這樣垂直供應(yīng)鏈的廠家國內(nèi)僅此一家,對獨(dú)立軟件廠家來說市場空間還是越來越大。
審核編輯 :李倩
-
芯片
+關(guān)注
關(guān)注
456文章
50892瀏覽量
424324 -
soc
+關(guān)注
關(guān)注
38文章
4173瀏覽量
218423 -
虛擬機(jī)
+關(guān)注
關(guān)注
1文章
918瀏覽量
28242
原文標(biāo)題:軟件定義汽車:將無處不在的虛擬機(jī)以及國產(chǎn)虛擬機(jī)分析
文章出處:【微信號:zuosiqiche,微信公眾號:佐思汽車研究】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論