引言
當(dāng)今的汽車制造商正競相通過使用人機界面(HMI),基于云的服務(wù),車輛自組織網(wǎng)絡(luò)(VANET)和自動駕駛等技術(shù)在未來的車輛中部署這些創(chuàng)新且吸引眼球的新功能。這些新技術(shù)增加了車輛電氣和電子(E / E)架構(gòu)的復(fù)雜性,并要求軟件系統(tǒng)要支持汽車間及汽車和云端的互連及交互。隨著現(xiàn)代車輛中100多個ECU的出現(xiàn),電子控制單元(ECU)的數(shù)量不斷增加。這迫使汽車OEM廠商將多個單元整合到一個單一的高計算平臺中。
盡管這種方法簡化了車輛的網(wǎng)絡(luò)模型,但它給汽車軟件系統(tǒng)架構(gòu)帶來了更多挑戰(zhàn)。這些挑戰(zhàn)同樣存在于智能座艙,高級駕駛員輔助系統(tǒng)(ADAS),智能穿戴設(shè)備和遠程信息通信系統(tǒng)等領(lǐng)域中(圖1)。更復(fù)雜的是,這些軟件應(yīng)用程序中對在安全性和互連性方面有更嚴格的實時性和功能安全性要求。對車載通信和對安全性有嚴格要求的系統(tǒng)通常需要實時操作系統(tǒng)(RTOS),而與安全性無關(guān)的信息娛樂應(yīng)用程序則在Linux通用操作系統(tǒng)上運行。兩個OS的組合使這些應(yīng)用程序具有異構(gòu)性質(zhì)。
圖1:座艙域控制器網(wǎng)絡(luò)
解決方案
可以在同一電子控制單元上添加兩個微控制器(MCU)。一個MCU運行基于Linux?的應(yīng)用程序,該應(yīng)用程序負責(zé)AI等算法和信息娛樂功能等高計算任務(wù),而另一個MCU運行通常用于車載和診斷通信的簡單,實時的應(yīng)用程序。這兩個MCU通過串行外圍設(shè)備接口連接,從而允許這兩個應(yīng)用程序之間進行通信(圖2)。
盡管此方法允許重用標準軟件體系結(jié)構(gòu),但為每個系統(tǒng)添加專用硬件效率不高且成本很高。而且,通過串行通信接口在這些系統(tǒng)之間大量的數(shù)據(jù)通信無法保證其通信的可靠性。另一種方法是在Linux上移植實時應(yīng)用程序。圖2:駕駛艙領(lǐng)域進行信息娛樂/ AUTOSAR整合的方法
通過使用高性能的Embedded Hypervisor硬件和 虛擬化技術(shù)可在同一處理器上整合多個操作系統(tǒng)。這是開發(fā)異構(gòu)的汽車應(yīng)用程序的有效方法。下面介紹如何使用Mentor嵌入式管理程序?qū)崟rAUTOSAR應(yīng)用程序與基于Linux的應(yīng)用程序整合在一起。所描述的解決方案使用TI Jacinto 6信息娛樂評估模塊(圖3)。圖3:TI Jacincto 6信息娛樂評估模塊
系統(tǒng)架構(gòu)與方法
本節(jié)定義了虛擬化環(huán)境的特征以及用于滿足異構(gòu)汽車應(yīng)用程序要求的方法。
虛擬化的環(huán)境
實現(xiàn)一致的虛擬化環(huán)境的核心在于處理影響處理器硬件狀態(tài)的敏感指令。實現(xiàn)此目的的技術(shù)可以總結(jié)如下:
-
全虛擬化:全虛擬化(Full virtualization), 也稱為原始虛擬化技術(shù),它使用虛擬機協(xié)調(diào)客戶操作系統(tǒng)和原始硬件。這里"協(xié)調(diào)"是一個關(guān)鍵詞, 因為VMM在客戶操作系統(tǒng)和裸硬件之間用于工作協(xié)調(diào)。一些受保護的指令必須由Hypervisor(虛擬機管理程序)來捕獲和處理. 因為操作系統(tǒng)是通過Hypervisor來分享底層硬件.全虛擬化的運行速度要快于硬件模擬, 但是性能方面不如裸機, 因為Hypervisor需要占用一些資源. 全虛擬化最大的優(yōu)點是操作系統(tǒng)沒有經(jīng)過任何修改. 它的唯一限制是操作系統(tǒng)必須能夠支持底層硬件(比如, PowerPC).
-
半虛擬化:半虛擬化(Paravirtualization)是另一種類似于全虛擬化的熱門技術(shù). 它使用Hypervisor(虛擬機管理程序)分享存取底層的硬件, 但是它的客戶操作系統(tǒng)集成了虛擬化方面的代碼. 該方法無需重新編譯或引起陷阱, 因為操作系統(tǒng)自身能夠與虛擬進程進行很好的協(xié)作.
-
硬件輔助虛擬化:該技術(shù)通過使用硬件擴展來處理敏感操作,從而從全虛擬化和半虛擬化中獲得最大收益,從而在大多數(shù)情況下消除了虛擬機管理程序仿真的開銷,而無需修改虛擬進程在虛擬機管理程序上運行。當(dāng)然,此方法的缺點是它僅適用于具有虛擬化支持的現(xiàn)代處理器。
CPU虛擬化
Arm?TrustZone?是一個內(nèi)置的硬件安全解決方案,它定義了一個由兩個區(qū)域組成的安全域:安全和非安全。引入了處理器模式以進行監(jiān)視區(qū)域的切換,并引入了特權(quán)指令(由安全監(jiān)視軟件調(diào)用)來管理這兩個區(qū)域的軟件堆棧。
圖4:當(dāng)前的Armv7 CPU模式。
盡管TrustZone主要是為安全性而設(shè)計的,但它可以用作混合關(guān)鍵系統(tǒng)的硬件輔助虛擬化方法。不能單獨使用TrustZone擴展來處理虛擬機監(jiān)控程序代碼,因為無法捕獲非安全區(qū)域到安全區(qū)域的指令,從而無法虛擬化非安全區(qū)域中的其他進程。但是,這可以使用新的HYP模式來實現(xiàn),該模式降低了虛擬機管理程序設(shè)計的復(fù)雜性,并降低了敏感指令仿真的成本,因為它通過使用自己的專用寄存器應(yīng)用陷印和仿真技術(shù)。
內(nèi)存虛擬化
添加了地址轉(zhuǎn)換的新階段,以使來賓內(nèi)核對內(nèi)存地址的管理與物理內(nèi)存脫鉤。這是通過使用第二階段頁表轉(zhuǎn)換將中間物理地址(IPA)轉(zhuǎn)換為物理地址(PA)來實現(xiàn)的。此階段對來賓內(nèi)核完全透明,并保護物理內(nèi)存免受來賓未經(jīng)授權(quán)的訪問。圖5顯示了在虛擬機管理程序上運行的虛擬機的地址轉(zhuǎn)換階段。圖5:內(nèi)存地址轉(zhuǎn)換 也可以從HYP模式中刪除第二階段地址轉(zhuǎn)換,以使IPA和PA地址相同。
ARM的通用中斷控制器
Arm通用中斷控制器主要由兩個組件組成:
-
分配器(GICD):執(zhí)行中斷優(yōu)先級分配并路由到所有CPU。還負責(zé)軟件中斷的產(chǎn)生。 -
CPU接口(GICC):負責(zé)處理CPU級別的中斷,因為它根據(jù)CPU當(dāng)前的優(yōu)先級接受來自分配器的中斷。負責(zé)確認并通知中斷結(jié)束。
ARM的虛擬CPU接口
Arm中通用中斷控制器的虛擬化擴展添加了另一個組件,即虛擬CPU接口。虛擬CPU接口寄存器具有與物理CPU相同的編程模型 接口注冊,因此來賓內(nèi)核不會知道它是否正在與物理或虛擬CPU通信。它將始終使用物理接口的地址,但是如果軟件已虛擬化,則管理程序可以使用第二階段地址轉(zhuǎn)換將該接口重定向到虛擬CPU寄存器。這個設(shè)計 無需模擬CPU接口訪問,因此客戶機OS可以更高效地執(zhí)行諸如中斷確認之類的頻繁任務(wù)。
系統(tǒng)管理程序通過分發(fā)器管理所有物理中斷,并通過列表寄存器將它們作為虛擬中斷路由到來賓,該列表寄存器是系統(tǒng)管理程序用來維護虛擬中斷狀態(tài)的列表。這樣,虛擬機管理程序可以為所有訪客虛擬化分發(fā)服務(wù)器的功能,但這也意味著必須模擬對分發(fā)服務(wù)器注冊的訪客訪問。
在Arm的通用中斷控制器的新體系結(jié)構(gòu)中,中斷停用的過程可以分為兩個步驟:
1)通過降低CPU優(yōu)先級,以及
2)中斷停用。
進行虛擬化時,將這兩個步驟分開可能會有所幫助。系統(tǒng)管理程序收到物理中斷并將其作為虛擬中斷路由到來賓內(nèi)核后,可以在仍在處理虛擬中斷的同時降低CPU的優(yōu)先級。當(dāng)降低CPU優(yōu)先級時,可以觸發(fā)新的中斷,從而允許管理程序
在將它們觸發(fā)給來賓之前更有效地對收到的中斷進行優(yōu)先級排序。在此配置中,當(dāng)來賓內(nèi)核取消激活虛擬中斷時,物理中斷也將被取消激活。
通用計時器
通用計時器模塊為每個CPU提供一個實時計數(shù)器和一個計時器,這些計時器和計時器可用于在配置的時間段后生成中斷。通常,任何內(nèi)核都需要具有控制能力并能夠操縱計時器,以便實時安排事件。這意味著在虛擬化的情況下,管理程序?qū)⒈仨毮M來賓的所有訪問者訪問計時器的效率非常低。這將大大降低實時性能。這就是為什么Arm體系結(jié)構(gòu)中的通用計時器提供虛擬計數(shù)器和虛擬計時器的原因,來賓內(nèi)核可以使用這些計數(shù)器和虛擬計時器而無需捕獲虛擬機管理程序。來賓內(nèi)核應(yīng)該能夠在沒有管理程序干預(yù)的情況下配置停止/重啟虛擬計時器,而管理程序直接將物理計時器用于其自身的調(diào)度目的。虛擬計數(shù)器可以配置為 與實體計數(shù)器的偏移量,以便每個訪客都有自己的相對時間。而且,虛擬計數(shù)器將 在切換到HYP模式(將來賓與虛擬機監(jiān)控程序操作隔離開)的情況下自動停止。
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!