目前正在生(shēng)産的(de)汽車(chē)是(shì)複雜(zá)功能(néng)的(d ∏λe)混合體(tǐ),隻有(yǒu)依賴越來(lái)越多(d'∞ ☆uō)的(de)ECU才能(néng)實≈γ現(xiàn)這(zhè)些(xiē)功能(néng)。因此,按照(zhào)之前σ✘☆∑的(de)趨勢,ECU的(de)數(shù)β 量或越來(lái)越多(duō),而且ECU之間(jiān)的(de)通≥÷(tōng)信會(huì)越來(lái)越複雜(zá),這(zhè)種方式顯然難以為→☆φ(wèi)繼。
大(dà)多(duō)數(shù)OEM已經在研究下(xià)一(yī)代E/E架構。ECU融合¶↑♣、域控制(zhì)器(qì)(DomainControl)、車(chē)載電(diàn)≈♥腦(nǎo)(HPC)都(dōu)是(shì)下(xià)一(yī)代E/E架構的(dΩ•₹e)熱(rè)門(mén)詞彙。所有(yǒu)這(zhè)些(π₽δxiē)都(dōu)要(yào)求電(diàn)子(zǐ)系統制(zhì)造商,包括Tier-≥£1和(hé)半導體(tǐ)供應商提供安全、可(kě→π)靠、優化(huà)解決方案的(de)硬件(jiàn)和(hé)軟件(jiàn)。
應用(yòng)獨占轉向共享
首先我們必須意識到(dào),前幾代嵌入式σε處理(lǐ)器(qì),比如(rú)今天在ECU中大(dà)量使用(yòng)的(de) →♣處理(lǐ)器(qì)TC275、S32K、RH850等,最初是(shì)為(wèi↑δ± )執行(xíng)單一(yī)軟件(jiàn)應用(yòn'₹βg)而設計(jì)的(de),比如(rú)發動機(jī)控制(zhì)、變速箱控制(zh©ε≥ì)、刹車(chē)控制(zhì)等。這(zhè)些(xiē)₹'↑ 處理(lǐ)器(qì)支持嵌入式操作(zuò)系統(AUTOS↔α"AR OS),用(yòng)戶可∑δ×(kě)以在之上(shàng)開(kāi)發應用(<&πyòng)軟件(jiàn)功能(néng)。應用(yòng)軟件(jiàn)的(de)"✔♣≥功能(néng)動劃分(fēn)為(wèi)不(bù)同的(de≈∞)任務,然後由操作(zuò)系統來(lái)調度執 ±行(xíng)。操作(zuò)系統通(tōng)常運行(xíng)在處理(lǐ)器(qì≥$≤≤)的(de)特權模式下(xià),使其能γ§(néng)夠根據需要(yào)啓動和(hé)停止任務。≤↑→這(zhè)種既定的(de)模式對(duì)δβ基于單一(yī)操作(zuò)系統的(de)硬件(jiàn)一(yī)直行(€ ↕↕xíng)之有(yǒu)效。(特權模式,即Supervisor模式,在該模式下(xià)可(k앶✔)訪問(wèn)處理(lǐ)器(qì)內(nèi)核、外(wài)設、中斷、異常等所有(yǒu)寄§☆存器(qì)和(hé)內(nèi)存資源。相(xiàng)對(duì)應的(d§≈≈e)是(shì)User模式,隻能(néng)訪問(wèn)特定的(de)內(nèi) ★←<存資源,其他(tā)的(de)想都(dō✘✔≠™u)甭想了(le)。說(shuō)白(bái)了(le),σ♠≠處理(lǐ)器(qì)也(yě)是(shì)個(gè)社會φ∑≥(huì)。)
然而,在未來(lái)的(de)車(chē)輛(liàng)架構中,幾個δ(gè)應用(yòng)程序将同時(shí)運行(xíng)在→♥♠∑同一(yī)硬件(jiàn)平台上(shàng),并有✘↕₽→(yǒu)可(kě)能(néng)同時(shí)運行(xíng)一(yī)個(¶∑↔gè)以上(shàng)的(de)操作(zuò)系統。現(xiàn)在,特權模式突然↔$♥•變成了(le)非常具有(yǒu)限制(zhì)性,因為(w↔☆èi)兩個(gè)操作(zuò)系統可(kě)能(néng)無法就(jiù)執行(xín↑$g)的(de)任務達成一(yī)緻(現(xiàn)在有(yǒu)兩個(gè)★領導了(le),要(yào)分(fēn)蛋糕了(le),誰也(yě)不("∏☆bù)服誰啊,所以不(bù)好(hǎo)辦了(le))α♥。此外(wài),共存的(de)應用(yòng)♣←★程序還(hái)必須确保它們自(zì)己的(de)私有(yǒu)資源(如'"β(rú)內(nèi)存和(hé)外(wài)設)不(bù)會(hu±✘€ì)相(xiàng)互幹擾(如(rú)圖1)。
虛拟機(jī)
這(zhè)個(gè)問(wèn)題的(d$₩""e)解決方案在計(jì)算(suàn)機(jī)科(kē™¶→)學中早已為(wèi)人(rén)所知(zhīγ®→)。應用(yòng)程序必須被隔離(lí)開(kāi)來(lái),以≈ 便它們可(kě)以各自(zì)在自(zì)己的(de)專用(yòng)虛拟機(jī↕•)(VM)中運行(xíng)。虛拟機(jī)是(shì)基于計(jì)算(φ®suàn)機(jī)的(de)運行(xíng)方式,就(jiù)像它是(shì)★φ•一(yī)個(gè)不(bù)同種類的(de)計(jì)算(s©¥↔uàn)機(jī)一(yī)樣,例如(rú)在PC上₹♦♥↔(shàng)運行(xíng)Linux或在Mac上(shàng)運行(xíng)視(shì)頻(<★pín)遊戲模拟器(qì)。雖然在桌面和(hé)其他(tā)I₹✔₹↕T場(chǎng)景中被廣泛了(le)解和(hé)使用(yòng),但(dà≠αn)虛拟機(jī)還(hái)沒有(yǒu)在汽車(chē)中使用(&≠yòng)的(de)嵌入式微(wēi)處理(lǐ)器(qì)中廣泛實現(xiàn)。一(yī)∞∞個(gè)利用(yòng)其特權來(lái)協調任務的(de)操作(zuò)系統也(yě♣₽)被開(kāi)發者稱為(wèi)Supervi♦☆βsor,而他(tā)們将非特權任務稱為(wèi)User軟件(jiàn)。因此,★£使用(yòng)超級權限級别的(de)新軟件(jiàn)系統也(yě) 被稱為(wèi)Hypervisor,因為(wèi)它的(de)權限比Supervisor的♥λ←(de)權限級别更高(gāo)。
Hypervisor的(de)角色
Hypervisor的(de)主要(yào)作(zuò)用(yòng)是( ©εshì)通(tōng)過限制(zhì)或分(fēn)配訪問(wèn)片上(shàng)資源(λ®如(rú)CPU、內(nèi)存和(hé)外(wài)圍模塊)來(λ♣♣lái)定義每個(gè)虛拟機(jī)的(de)可(kě)用(yòng)功能(n✘×♣☆éng)。Hypervisor可(kě)€♣✔以通(tōng)過為(wèi)每個(gè)虛拟機(jī)分(fēn)配不(bù)同的(d&↓e)資源份額來(lái)創建多(duō)個(gè)虛拟機(jī)。例如(r ×←πú),它可(kě)以将CPU上(shàng)的(de)處理(lǐ)時✘§φ(shí)間(jiān)劃分(fēn)為(wèi)時(shí)間(jiānλ♠&)片,并根據需要(yào)将其分(fēn)配給不(bù)同的(de¥ )虛拟機(jī)。而且,一(yī)個(gè)虛拟機(jī)可(kě)以同時(shí)和€↓(hé)另一(yī)個(gè)虛拟機(jī)共享一(yī)個(gè)CPU或獨占多(duō>€ )個(gè)CPU。同樣,內(nèi)存和(hé)外↕©™≥(wài)圍模塊可(kě)以共享或分(fēn)配給單個(gè)虛拟機(jī)。同¥£時(shí),虛拟機(jī)需要(yào)和(h$♦é)其他(tā)虛拟機(jī)彼此知(zhī)之甚少(sh€←ǎo)或一(yī)無所知(zhī),并且不(bù)能(néng)訪問(wèn)Hype♣₽≥rvisor未分(fēn)配給它們的(de)資源。由于這(zhè)個(gè)原因,Hype✔≈±∏rvisor也(yě)有(yǒu)被稱為(wèi)VMM(VirtualMaε¶chine Monitor)。
Hypervisor利用(yòng)保護機(jī)制(zhì)和(hé)資源控§≈制(zhì)器(qì),協調對(duì)內(nèi)存和β(hé)片上(shàng)外(wài)圍模塊的 >÷©(de)訪問(wèn)。它還(hái)使用≤γ (yòng)特定外(wài)圍模塊的(de)部分(fēn)功能(néng)。Hypervisorπ±通(tōng)常在相(xiàng)應的(de)定時(shí)器(qì)的(de)幫助下(x>ià)管理(lǐ)CPU時(shí)間(jiān)的(γ®₹&de)共享,該定時(shí)器(qì)告訴何時™♥(shí)需要(yào)将CPU切換到(dào)另一(yī)個(gè)虛拟機(jī)上(≥™shàng)。
在實時(shí)應用(yòng)處理(lǐ)器(qì)中,內(nèi)存保護γ₩₩單元(MPU,Memory Protection Unit别想©≤多(duō)了(le),不(bù)是(shì)現(xiàn)在熱(rè☆Ω)門(mén)的(de)那(nà)個(gè)MPU微(wēi)處理(lǐ)器(qì) <)在CPU內(nèi)提供必要(yào)的(de)保<₹護機(jī)制(zhì)。通(tōng)常情況下(xià),操作(zuò)系統使用(y<¥λ★òng)MPU來(lái)釋放(fàng)或分(fēn)配內(nèi)存₽βπ<以運行(xíng)用(yòng)戶任務。一(yī)個(gè)具有(yǒ ∑Ω↑u)Supervisor權限的(de)軟件(jiàn)可(kě)以擁有(yǒu)自(zì)↓∏✔己的(de)私有(yǒu)或共享區(qū)域,也(yě)可(kě)以根據特定的(de)×₹應用(yòng)配置MPU。在ARMCortex-R52架構中,Hypervi€®sor有(yǒu)一(yī)個(gè)額外(wài)φφα"的(de)獨立MPU,即EL2級别的(de)MPU,具有(yǒu)更高(gā≠₩®o)的(de)優先級,在這(zhè)個(gè)更高(gāo)的(de)權限級别,每個(g✘¥♣è)虛拟機(jī)可(kě)用(yòng)的(•∑•de)總內(nèi)存被分(fēn)配。
效率的(de)提升
必須盡量減少(shǎo)用(yòng)于執行(xíng)Hypervisor本身(shēn)的§€(de)處理(lǐ)器(qì)資源。這(zhè)可(kě)以通(tōn"™₹αg)過“資源控制(zhì)器(qì)”來(lái)實現(xiàn),該控制(zhì)器(♠¥✔qì)實現(xiàn)了(le)跨越整個(gè)芯片的(de)保護機(jī)制(zh죕),并對(duì)某些(xiē)重要(yào)的(de"₹)外(wài)圍模塊進行(xíng)細分(fē∞&®n),以便進一(yī)步分(fēn)配。重要(yào)的(de)是(shì),這(zφ•→✘hè)種分(fēn)區(qū)完全在硬件(jiàn)中實現(xiàn♣∏¥),并且也(yě)涵蓋了(le)CPU的(de)功能(néng)。當系統即包括那(nà)些(xiēα'γ)需要(yào)高(gāo)度安全的(dδ₹∞σe)應用(yòng),以及安全等級較低(dī)的(γ✘Ωde)應用(yòng)時(shí),情況尤其如(rú)此。
資源控制(zhì)器(qì)将內(nèi)存><↑保護機(jī)制(zhì)擴展到(dào)系統中的(de)其他(tā)總線主控節點,如×€×₩(rú)DMA或以太網,并增強了(le)內(nèi)核的(de)可(kě)用(yòng)內(₩←★≈nèi)存和(hé)外(wài)圍保護功能(néng)。通(tōng)過這(z ₹₩πhè)種方式,有(yǒu)可(kě)能(néng)在多 ®↑↔(duō)個(gè)核上(shàng)運行(xíng)一(yī)個(gè)虛拟機(jī)。例←"如(rú),可(kě)以為(wèi)一(yī ♣λ)個(gè)虛拟機(jī)分(fēn)配相(xiàng)當于1.5個(gè)內(nèi)核的(↕de)處理(lǐ)能(néng)力,為(wèi)另一(y≈σ₽ī)個(gè)虛拟機(jī)分(fēn)配2.5個(gè)內(nèi)核, •硬件(jiàn)完全支持這(zhè)種分(fēn)配(圖2)。
複雜(zá)性帶來(lái)安全挑戰
通(tōng)過硬件(jiàn)的(de)特定措施将多(duō)個(gè)應用(π±yòng)程序整合到(dào)多(duō)核系統中,也(yě)增加了(le)黑ε±×(hēi)客攻擊系統安全的(de)可(kě)能(néng)性。攻擊面的(de)增加是(↑∞£→shì)由于該系統對(duì)來(lái)自(zì)多(duō)個(gè䧩β)來(lái)源的(de)應用(yòng)程序開(kāi)放(fàng ₹α>),并且新的(de)Hypervisor配備ε₽×了(le)極高(gāo)的(de)訪問(wèn)權限。其↕≈中一(yī)個(gè)應用(yòng)程序,特别是(shì)Hypervisoγ≤r中的(de)漏洞,可(kě)以讓攻擊者不(bù)僅破∑↔ Ω壞甚至接管目标應用(yòng)程序,而且還(hái)α₹±÷可(kě)以接管整個(gè)系統。如(rú)果ECU包含一(yī)個(gè)可(k<★'>ě)能(néng)危及車(chē)輛(liàng)功能(néng)安全的(de)應用(yòng)↔π,這(zhè)一(yī)點尤其值得(de)關注。安全問(wèn)題可(kě)以通₹£₩(tōng)過多(duō)層次的(de)方法得(de)到(dào)最好(hǎo)✔≈的(de)控制(zhì)。對(duì)于ECU來(lái)說(shu∏÷↓ō),可(kě)以通(tōng)過硬件(jiàn)和(hé φπ)軟件(jiàn)的(de)結合來(lái)實₹♦♦∞現(xiàn)。在啓動時(shí),ECU的(d∏∏$e)代碼必須經過安全認證,而且加載速度要(yào)快(kΩוuài)。在這(zhè)種情況下(xià),需要(σ÷yào)對(duì)複雜(zá)的(de)加密算(suàn)法提供硬件(σ✔♠>jiàn)支持。為(wèi)了(le)滿足這(z₹∏≥hè)一(yī)要(yào)求,可(kě)以對(duì)程序代碼和(hé)用(yòng)戶≈∑的(de)數(shù)據進行(xíng)加密,并利用(yòng)相(xiàng)應的(de₹₹)硬件(jiàn)加速(HSM)來(lái)及時(shí)解密。此外(wài),至關重要&≥(yào)的(de)是(shì),安全硬件(jiàn)及其 ♥密鑰要(yào)受到(dào)保護,以免被正在運行(xíng)的(de)應用(yò≠™ng)程序或硬件(jiàn)算(suàn)法(如(rú₹ )旁路(lù)攻擊)所破壞)。
高(gāo)性能(néng)MCU處理(lǐ)器(qì)平台
NXP的(de)S32S處理(lǐ)器(₩↑♦qì)提供了(le)一(yī)個(gè)安¶♠全而強大(dà)的(de)平台,為(wèi)Hypervisor用(yònσ★& g)戶提供廣泛的(de)硬件(jiàn)支持,并具有(yǒu)靈活的(d≤↕e)安全功能(néng)。為(wèi)了(le)幫助用(yòng)戶更快(kuài₽≤)地(dì)将強大(dà)的(de)解決方案推向市(shì)場(chǎng),恩智浦已與軟件(≠δjiàn)供應商Open Synergy合作(zuò)δλ,将其專業(yè)知(zhī)識用(yòng)于開(kāi₽→γ)發S32S處理(lǐ)器(qì)系列的(de)Hypervisor軟件γ>(jiàn)。COQOS Micro-H₽←ypervisor使用(yòng)S32S247處理(lǐ)¶α☆器(qì)的(de)功能(néng)來(lái)實現(xiàn)獨立的(d€Ω♦®e)虛拟機(jī),這(zhè)些(xiē)虛拟機(jī)的(γ♥₽de)運行(xíng)達到(dào)ASIL-D安全等級(圖4)。除此之外(wàiφ©≈÷),ST的(de)Stellar系列與NXP的(de)S32S一(yī)樣σε ,采用(yòng)ARM-Cortex-R52系列內(nèi)核,支持硬件(jiàn)Hyper>♥®$visor(圖5)。以上(shàng)兩家(jiā®∏∞₹)都(dōu)屬于ARM-Cortex-R52陣♦∏±≤營。而Infineon同樣不(bù)甘落後,繼續強化(huà≤ε)Tricore架構,支持基于Hypervisor的(de)虛拟化(huà)×∑應用(yòng)(圖6)。
轉載汽車(chē)電(diàn)子(zǐ)相(xiàng)關文(wén)章(zhāngλ∏✔§)
轉自(zì)汽車(chē)電(diàn)子(zǐ)與軟件(jiàn)