0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

軟件定義汽車:將無處不在的虛擬機以及國產虛擬機分析

佐思汽車研究 ? 來源:佐思汽車研究 ? 2023-05-30 14:47 ? 次閱讀

09ec9500-feb3-11ed-90ce-dac502259ad0.png

軟件定義汽車對應中央服務器計算架構,即Zonal架構,在此架構下,虛擬機將無處不在。軟件定義汽車的實現離不開中央服務器計算架構,這與IT領域的云計算非常相似,云簡而言之就是將IT資源服務化。過去辦公場景中我們每人一臺PC,擁有獨立的IT資源,而云可以將IT資源按需分配給需要的租戶,實現按需、彈性拓展。以前每人一臺PC,現在大家共享一臺超級PC,按需訪問,不用時,資源自動釋放,可供其他用戶使用,這樣資源得以最大化利用,且可以按需擴展,及時滿足使用需求。

在汽車領域,每人一臺PC就是每一個分布式ECU,超級PC就是超級SoC芯片,典型如英偉達的Thor,高通的SA8775以及聯(lián)發(fā)科最新的3納米車載芯片(型號可能會是MT8678),云計算的網絡通信在汽車領域就是車載以太網以及車載以太網協(xié)議棧標準TSN。

中央服務器架構和云計算一樣離不開虛擬機。英偉達的Thor,高通的SA8795以及聯(lián)發(fā)科最新的3納米車載芯片(型號可能會是MT8678)的出現,讓車載算力幾乎與目前主流的PC差不多,汽車電子底層硬件不再是由單一芯片提供簡單的邏輯計算,而是多核 SoC 芯片提供更為復雜控制邏輯以及強大的算力支持。但是汽車領域業(yè)務具有不同的技術需求,比如座艙域 IVI 業(yè)務強調交互體驗、應用生態(tài)豐富,比較適合的操作系統(tǒng)Android;儀表盤、輔助駕駛有實時性、可靠性要求,操作系統(tǒng)傾向于 RTLinux、RTOS;智駕域強調大算力融合感知、推演規(guī)劃,也有實時性、可靠性要求,也會選擇 RTLinux、RTOS。在域融合的同時,要保證關鍵業(yè)務的安全可靠,也要考慮應用生態(tài)的可持續(xù)性兼容,這就需要有資源隔離技術來支撐在同一 SOC 上切分資源,可并發(fā)運行多種操作系統(tǒng),保障互不干擾。

資源隔離技術有多種,從硬件底層逐層向上包括硬件隔離、虛擬化隔離、容器隔離、進程隔離等。硬件隔離的隔離性最好,單隔離域的性能、安全可靠性最好,但靈活性、可配置性差,不能實現硬件共享,導致整個系統(tǒng)的資源利用率差,成本居高不下,不能充分達到軟件定義汽車的目標。

再有就是現在的先進SoC包含多種運算資源,如DSP、NPU、CPUGPU等(因此也稱之為HPC,異構計算),不同域需要不同的運算資源,這顯然需要資源共享。容器隔離、進程隔離可以更輕量級地實現業(yè)務隔離,但還是在同一個操作系統(tǒng)內,存在著資源干擾、相互安全攻擊的隱患,并且無法支持異構操作系統(tǒng)業(yè)務域融合,影響傳統(tǒng)業(yè)務繼承,不利于生態(tài)發(fā)展。在眾多的資源隔離技術中,虛擬化是安全可靠、彈性靈活的優(yōu)選方案,是軟件定義汽車的重要支撐技術。

Hypervisor 直譯即 “超級監(jiān)督者” ,也稱為虛擬機監(jiān)控程序(VMM)。Hypervisor處于SoC硬件平臺之上,將實體資源(如 CPU、內存、存儲空間、網絡適配器、外設等 ) 轉換為虛擬資源,按需分配給每個虛擬機,允許它們獨立地訪問已授權的虛擬資源。Hypervisor實現了硬件資源的整合和隔離,使應用程序既能共享 CPU 等物理硬件,也能依托不同的內核環(huán)境和驅動運行,從而滿足汽車領域多元化應用場景需求。

Hypervisor 可以劃分為兩大類:

一類是 Type1 裸機型,Hypervisor 直接運行在硬件設備上的,也叫做 Bare-Metal Hardware Virtualization(裸金屬虛擬化環(huán)境);

一類是 Type2 主機托管型,也叫做 Hosted Virtualization (主機虛擬化環(huán)境)。

Type2 型 Hypervisor 需要借助宿主操作系統(tǒng)來管理 CPU、內存、網絡等資源,由于 Hypervisor 和硬件之間存在一個宿主操作系統(tǒng),Hypervisor 及 VM 的所有操作都要經過宿主操作系統(tǒng),所以就不可避免地會存在延遲、性能損耗,同時宿主操作系統(tǒng)的安全缺陷及穩(wěn)定性問題都會影響到運行在之上的VM(虛擬機),所以 ,Type2型 Hypervisor 主要用于對性能和安全要求不高的場合,比如 : 個人 PC 系統(tǒng)。

Type1 型的 Hypervisor 不依賴主機操作系統(tǒng),其自身具備操作系統(tǒng)的基礎功能。設計上更為簡潔,直接運行于硬件之上,整體代碼量和架構更為精簡,對內存和存儲資源要求更少,可滿足自動駕駛系統(tǒng)功能安全等級要求,也具備進行形式化驗證的條件。所以汽車操作系統(tǒng)更適合使用 Type 1 型 Hypervisor。

隨著微內核操作系統(tǒng)技術的發(fā)展,很多基于微內核操作系統(tǒng)設計的Hypervisor 依賴的 Host OS 已經非常精簡,只包括基本的、不變的功能,如 : CPU 調度和內存管理,設備驅動和其他可變組件處于內核之外,這類Hypervisor 應當歸于 Type1、還是 Type2,業(yè)內存在分歧,但絕大多數都自稱Type1,因為都知道Type1是高大上的。

典型的基于HPC的汽車軟件架構

0a259eea-feb3-11ed-90ce-dac502259ad0.png

圖片來源:大陸汽車

0a682a12-feb3-11ed-90ce-dac502259ad0.png

從SoC角度看中間件,虛擬機和BSP是一體的,BPU指的就是AI運算。圖片來源:大陸汽車

0a7bb28a-feb3-11ed-90ce-dac502259ad0.png

圖片來源:Elektrobit

從軟件通訊的角度看虛擬機的位置,虛擬機主要是基于以太網硬件之上,未來虛擬機可以在SoC上,也可以在以太網交換機上。

Vector PREE 9.5版本上的虛擬機

0a9e6ec4-feb3-11ed-90ce-dac502259ad0.png

圖片來源:Elektrobit

顯然,每個提供自適應AUTOSAR的廠家都需要自己研發(fā)一套虛擬機,VECTOR的叫LEAN虛擬機。

0aaf7aac-feb3-11ed-90ce-dac502259ad0.png

博世旗下的ETAS,其虛擬機叫VRTE,也是其自適應AutoSAR產品的一部分。圖片來源:ETAS

0adfe5ac-feb3-11ed-90ce-dac502259ad0.png

德國大陸汽車旗下的EB用的是L4Re微內核虛擬機。圖片來源:KevnKonzept

鑒于汽車的軟件系統(tǒng)異常復雜,這會帶來不小的性能損耗,同時車載算力遠不如PC那樣容易升級,因此虛擬機要盡量地小,輕量化和高效率,車載SoC的CPU算力要盡可能地高。

早期汽車用虛擬機還有考慮XEN,后期基本上都是微內核,這個微內核虛擬機更接近一個虛擬交換機,主要就是I/O。本來微內核的難度頗高,但KVM和OASIS的出現讓微內核虛擬機變得非常容易,一個不到100人的公司也可以在1年內搞出一個微內核。早期的微內核多數是基于UNIX,而近些年來的微內核技術更接近KVM。

KVM(Kernel-based Virtual Machine,基于內核的虛擬機)是一個基于Linux環(huán)境的開源虛擬化解決方案,最早由以色列Qumranet公司開發(fā),在2006年10月出現在Linux內核的郵件列表上,并于2007年2月被集成到Linux 2.6.20內核中,成為內核的一部分。2008年,Qumranet被RedHat所收購,但KVM本身仍是一個開源項目,由RedHat、IBM等廠商支持。與VMwareESX/ESXi、微軟Hyper-V和Xen等虛擬化產品不同,KVM的思想是在Linux內核的基礎上添加虛擬機管理模塊,重用Linux內核中已經完善的進程調度、內存管理、I/O管理等代碼,使之成為一個可以支持運行虛擬機的Hypervisor。因此,KVM并不是一個完整的模擬器,而只是一個提供了虛擬化功能的內核插件,具體的模擬器工作需要借助QEMU來完成。

通過KVM模塊的加載將Linux內核轉變成Hypervisor,KVM在Linux內核的用戶(User)模式和內核(Kernel)模式基礎上增加了客戶(Guest)模式。Linux本身運行于內核模式,主機進程運行于用戶模式,虛擬機則運行于客戶模式,使得轉變后的Linux內核可以將主機進程和虛擬機進行統(tǒng)一的管理和調度,這也是KVM名稱的由來。當然,這是典型的Type2的虛擬機。問題是微內核嚴格說也是Type2的,這個界限已經變得模糊。

ARM自8.1后,增加了vhe擴展支持,使得hostos和hypervisor都可以運行在EL2下。此時它們之間可以直接通過函數的方式實現功能調用,因此其效率已經與Type1hypervisor不相上下。而ARM不僅統(tǒng)治了手機領域,也主導了車載領域,你可以不用ARM架構,但ARM指令集,沒有廠家能拒絕。

車載Hypervisor與標準化服務器(x86)+標準化OS(Windows和Linux)的云虛擬化應用場景不同,汽車嵌入式環(huán)境中的虛擬化技術面臨的挑戰(zhàn)是Hypervisor往往需要定制適配底層SoC硬件和上層OS軟件,這一點對于Hypervisor的大規(guī)模商用與普及是一個非常大的技術障礙。

2016年3月,OASIS(Organizationfor the Advancement of Structured Information Standards,結構化信息標準促進組織)正式標準化VirtIO項目,旨在提供一種通用的框架和標準接口,減少Hypervisor對底層不同硬件和上層不同軟件的適配開發(fā)工作量。很快VirtIO標準得到了眾多科技巨頭的支持,包括Apple、Google、ARM、Intel、Red Hat、華為等。Google也在AndroidAutomotive OS中集成對VirtIO的支持。

VirtIO是一套易維護和易擴展的通用設備仿真接口,由前端驅動程序(Front-End Driver)、后端驅動程序(Back-End Driver)和VirtIO虛擬隊列(Virtual Queue)構成。前端驅動程序由Guest OS實現,后端驅動程序由Hypervisor實現,虛擬隊列通常使用環(huán)形緩沖,在Hypervisor和Guest OS之間傳輸數據,每個驅動可以有0個或多個隊列,取決于實際需要。

回到目前虛擬機最常用的座艙領域,智能座艙域融合也是在近幾年啟動,正持續(xù)迭代演進。NXP和芯馳科技采用了硬隔離方案來實現域融合,一方面最大程度地沿用既有技術能力,有確定性保障,但缺少了軟件定義的靈活性,智能化程度有限,是域融合的一種可選方案。

在嵌入式虛擬化技術方面,國外的 QNX、OpenSynergy、PikeOS 等有先發(fā)優(yōu)勢,尤其在汽車領域已耕耘多年的QNX,在這兩年涌現了較多的QNX應用案例。隨著KVM和VirtIO的出現,虛擬機門檻大大降低,國內這幾年也出現了不少芯片廠商、獨立軟件廠商研發(fā)嵌入式虛擬化技術、產品、解決方案,如中瓴智行的 RAITE Hypervisor(RHOS)、中興 GoldenOS、斑馬智行的 AliOS Hypervisor、中汽創(chuàng)智 CAIC Hypervisor 等。國產化方案芯馳 X9HP+ 平臺,采用硬分區(qū)、Hypervisor 兩種方案靈活配置實現中低端智能座艙域控制器產品。

中瓴智行的 RAITE Hypervisor(RHOS)

0b055a58-feb3-11ed-90ce-dac502259ad0.png

圖片來源:中瓴智行

0b190e40-feb3-11ed-90ce-dac502259ad0.jpg

圖片來源:中瓴智行

中瓴智行與聯(lián)發(fā)科MT8675緊密合作,據說出貨量已經超過600萬套,可算是國產第一。MT8675 只提供了一個 GPU,座艙域需要在儀表和中控上共享使用 GPU 資源。RHOS 實現了 GPU虛擬化共享,并通過性能優(yōu)化,達到業(yè)界領先的虛擬化效果(損耗 < 6%)。RHOS 支持Suspend to RAM 功能,MT8675 A 核完全下電,滿足智能座艙待機靜態(tài)功耗小于 4mA 要求,對DRAM的消耗也低很多。

對于獨立虛擬機廠家來說,關鍵是SoC的選擇。對車廠或Tier1來說都是先確定SoC,再確定周邊供應商。再有就是像高通這樣的大廠會推薦同樣體量的軟件合作伙伴如QNX,提供完整的服務,但獨立性就差點。對于國內獨立的虛擬機廠家來說,恐怕很難讓高通滿意,因此最好的合作伙伴是聯(lián)發(fā)科。

對于QNX來說,有些麻煩,QNX的確是目前唯一一個能達到ASIL-D等級的操作系統(tǒng)(包含Hypervisor)。但如果需要實現ASIL-D級別的系統(tǒng),必須把現有的軟件從Linux系統(tǒng)都移植到QNX。雖然QNX也是符合POSIX標準的,但是移植起來還是非常麻煩,最關鍵的是這些移植過去的驅動,其實是沒有安全等級的,畢竟它根基還是LINUX。換句話說,要想做到真正的ASIL-D,那么一開始就必須以QNX為基礎開發(fā)。

虛擬機門檻的降低對獨立軟件廠家非常有益處,但也有些隱憂,比如比亞迪此類大廠,就會內部研發(fā)虛擬機。不過比亞迪這樣垂直供應鏈的廠家國內僅此一家,對獨立軟件廠家來說市場空間還是越來越大。

審核編輯 :李倩

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 芯片
    +關注

    關注

    450

    文章

    49636

    瀏覽量

    417229
  • soc
    soc
    +關注

    關注

    38

    文章

    4021

    瀏覽量

    217046
  • 虛擬機
    +關注

    關注

    1

    文章

    888

    瀏覽量

    27815

原文標題:軟件定義汽車:將無處不在的虛擬機以及國產虛擬機分析

文章出處:【微信號:zuosiqiche,微信公眾號:佐思汽車研究】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    什么是虛擬機?虛擬機真的那么好用嗎?

    在日新月異的科技世界中,虛擬化技術如同一座橋梁,連接著現實與數字的鴻溝,為我們打開了全新的計算維度。虛擬機,這一概念,自其誕生以來,就以其獨特的魅力和強大的功能,深深地影響了軟件開發(fā)、系統(tǒng)測試和云
    的頭像 發(fā)表于 07-06 08:05 ?463次閱讀
    什么是<b class='flag-5'>虛擬機</b>?<b class='flag-5'>虛擬機</b>真的那么好用嗎?

    虛擬機虛擬化技術

    虛擬機虛擬化技術給計算機應用注入了新的研究與開發(fā)點,同時也存在諸多不利因素。本文綜述了虛擬機虛擬化技術的發(fā)展歷程,指出了虛擬機
    發(fā)表于 09-07 10:15 ?13次下載

    Java虛擬機基礎

    JVM基礎----java虛擬機的學習內容。
    發(fā)表于 10-30 10:21 ?0次下載

    VMware軟件虛擬機和PLC通訊的連接方法

    現在虛擬機應該說主流的用的比較多的還是使用VMware軟件虛擬機,所以我就以VMware軟件虛擬機應該如何和PLC通訊做一個簡單的說明!
    的頭像 發(fā)表于 09-30 14:29 ?2.4w次閱讀

    虛擬機:QEMU虛擬機和主機無線網絡通訊設置

    虛擬機:QEMU虛擬機和主機無線網絡通訊設置
    的頭像 發(fā)表于 06-22 10:19 ?5289次閱讀
    <b class='flag-5'>虛擬機</b>:QEMU<b class='flag-5'>虛擬機</b>和主機無線網絡通訊設置

    虛擬機是什么,具體是做什么的呢?

    虛擬機簡單來講就是一款虛擬的機器,并不是真實存在的物體,在已經安裝過系統(tǒng)的電腦或者其他設備上,可以通過一些軟件模擬出一款虛擬機,然后就可以在虛擬機
    的頭像 發(fā)表于 10-23 17:23 ?1.5w次閱讀

    一文帶你了解虛擬機

    今天的許多前沿技術,如云計算、邊緣計算和微服務,都源于虛擬機的概念——操作系統(tǒng)和軟件實例從底層物理計算機中分離出來。 ? ? ? 什么是虛擬機?
    的頭像 發(fā)表于 01-17 15:52 ?2661次閱讀

    linux虛擬機怎么調出命令行

    命令行的方式可以因不同的虛擬機軟件而異,下面介紹幾種常用的虛擬機軟件以及它們調出命令行的方法。
    的頭像 發(fā)表于 11-17 09:55 ?3180次閱讀

    linux虛擬機使用教程

    引言:Linux虛擬機是一種方便且常用的技術,它允許用戶在現有操作系統(tǒng)的基礎上創(chuàng)建和運行另一個獨立的操作系統(tǒng)。在本篇文章中,我們提供一份詳盡的教程,幫助你了解如何安裝、配置和使用Linux虛擬機
    的頭像 發(fā)表于 11-17 10:06 ?1110次閱讀

    虛擬機linux怎么編寫程序

    虛擬機Linux上編寫程序是一項非常常見且有用的任務。無論是開發(fā)一個簡單的腳本、一個Web應用程序還是一個復雜的軟件項目,Linux提供了強大的工具和環(huán)境來幫助你進行編程。本文詳細介紹如何在
    的頭像 發(fā)表于 11-17 10:08 ?1215次閱讀

    虛擬機如何運行c程序

    虛擬機(Virtual Machine,VM)是一種模擬了物理計算機的軟件,可以在計算機上創(chuàng)建虛擬的硬件平臺,使得用戶可以在其中運行操作系統(tǒng)和應用程序。在虛擬機中運行C程序需要進行多個
    的頭像 發(fā)表于 11-17 10:14 ?4000次閱讀

    Docker與虛擬機的區(qū)別

    的操作系統(tǒng)實例來實現虛擬化的技術。其實現方式是通過Hypervisor來實現的。Hypervisor是一個運行在物理機上的軟件或硬件,負責管理和分配虛擬機的硬件資源。 1.2 Docker Docker是一種容器化技術,它利用L
    的頭像 發(fā)表于 11-23 09:37 ?6821次閱讀

    怎么安裝linux虛擬機

    在計算機領域,虛擬機是一種軟件程序,它允許在主操作系統(tǒng)上運行多個虛擬操作系統(tǒng)。Linux虛擬機在開發(fā)、測試和學習等環(huán)境中得到廣泛應用。本文
    的頭像 發(fā)表于 11-23 10:50 ?928次閱讀

    虛擬機怎么進入root用戶

    進入虛擬機的root用戶,需要通過以下步驟完成。首先,我們需要明確一點,root用戶是Linux系統(tǒng)下的超級管理員,具有最高權限。 第一步:打開虛擬機 首先,要確保已經安裝了虛擬機軟件
    的頭像 發(fā)表于 11-23 10:51 ?1.4w次閱讀

    虛擬機ubuntu怎么聯(lián)網

    與外部網絡通信。本文詳細介紹虛擬機Ubuntu的網絡連接方法以及一些常見的網絡問題解決辦法。 一、虛擬機網絡概述 虛擬機的網絡連接有多種方
    的頭像 發(fā)表于 12-27 16:51 ?794次閱讀