目前正在生產的汽車是復雜功能的混合體,只有依賴越來越多的ECU才能實現這些功能。因此,按照之前的趨勢,ECU的數量或越來越多,而且ECU之間的通信會越來越復雜,這種方式顯然難以為繼。
大多數OEM已經在研究下一代E/E架構。ECU融合、域控制器(DomainControl)、車載電腦(HPC)都是下一代E/E架構的熱門詞匯。所有這些都要求電子系統制造商,包括Tier-1和半導體供應商提供安全、可靠、優化解決方案的硬件和軟件。
應用獨占轉向共享
首先我們必須意識到,前幾代嵌入式處理器,比如今天在ECU中大量使用的處理器TC275、S32K、RH850等,最初是為執行單一軟件應用而設計的,比如發動機控制、變速箱控制、剎車控制等。這些處理器支持嵌入式操作系統(AUTOSAR OS),用戶可以在之上開發應用軟件功能。應用軟件的功能動劃分為不同的任務,然后由操作系統來調度執行。操作系統通常運行在處理器的特權模式下,使其能夠根據需要啟動和停止任務。這種既定的模式對基于單一操作系統的硬件一直行之有效。(特權模式,即Supervisor模式,在該模式下可訪問處理器內核、外設、中斷、異常等所有寄存器和內存資源。相對應的是User模式,只能訪問特定的內存資源,其他的想都甭想了。說白了,處理器也是個社會。)
然而,在未來的車輛架構中,幾個應用程序將同時運行在同一硬件平臺上,并有可能同時運行一個以上的操作系統。現在,特權模式突然變成了非常具有限制性,因為兩個操作系統可能無法就執行的任務達成一致(現在有兩個領導了,要分蛋糕了,誰也不服誰啊,所以不好辦了)。此外,共存的應用程序還必須確保它們自己的私有資源(如內存和外設)不會相互干擾(如圖1)。
虛擬機
這個問題的解決方案在計算機科學中早已為人所知。應用程序必須被隔離開來,以便它們可以各自在自己的專用虛擬機(VM)中運行。虛擬機是基于計算機的運行方式,就像它是一個不同種類的計算機一樣,例如在PC上運行Linux或在Mac上運行視頻游戲模擬器。雖然在桌面和其他IT場景中被廣泛了解和使用,但虛擬機還沒有在汽車中使用的嵌入式微處理器中廣泛實現。一個利用其特權來協調任務的操作系統也被開發者稱為Supervisor,而他們將非特權任務稱為User軟件。因此,使用超級權限級別的新軟件系統也被稱為Hypervisor,因為它的權限比Supervisor的權限級別更高。
Hypervisor的角色
Hypervisor的主要作用是通過限制或分配訪問片上資源(如CPU、內存和外圍模塊)來定義每個虛擬機的可用功能。Hypervisor可以通過為每個虛擬機分配不同的資源份額來創建多個虛擬機。例如,它可以將CPU上的處理時間劃分為時間片,并根據需要將其分配給不同的虛擬機。而且,一個虛擬機可以同時和另一個虛擬機共享一個CPU或獨占多個CPU。同樣,內存和外圍模塊可以共享或分配給單個虛擬機。同時,虛擬機需要和其他虛擬機彼此知之甚少或一無所知,并且不能訪問Hypervisor未分配給它們的資源。由于這個原因,Hypervisor也有被稱為VMM(VirtualMachine Monitor)。
Hypervisor利用保護機制和資源控制器,協調對內存和片上外圍模塊的訪問。它還使用特定外圍模塊的部分功能。Hypervisor通常在相應的定時器的幫助下管理CPU時間的共享,該定時器告訴何時需要將CPU切換到另一個虛擬機上。
在實時應用處理器中,內存保護單元(MPU,Memory Protection Unit別想多了,不是現在熱門的那個MPU微處理器)在CPU內提供必要的保護機制。通常情況下,操作系統使用MPU來釋放或分配內存以運行用戶任務。一個具有Supervisor權限的軟件可以擁有自己的私有或共享區域,也可以根據特定的應用配置MPU。在ARMCortex-R52架構中,Hypervisor有一個額外的獨立MPU,即EL2級別的MPU,具有更高的優先級,在這個更高的權限級別,每個虛擬機可用的總內存被分配。
效率的提升
必須盡量減少用于執行Hypervisor本身的處理器資源。這可以通過“資源控制器”來實現,該控制器實現了跨越整個芯片的保護機制,并對某些重要的外圍模塊進行細分,以便進一步分配。重要的是,這種分區完全在硬件中實現,并且也涵蓋了CPU的功能。當系統即包括那些需要高度安全的應用,以及安全等級較低的應用時,情況尤其如此。
資源控制器將內存保護機制擴展到系統中的其他總線主控節點,如DMA或以太網,并增強了內核的可用內存和外圍保護功能。通過這種方式,有可能在多個核上運行一個虛擬機。例如,可以為一個虛擬機分配相當于1.5個內核的處理能力,為另一個虛擬機分配2.5個內核,硬件完全支持這種分配(圖2)。
復雜性帶來安全挑戰
通過硬件的特定措施將多個應用程序整合到多核系統中,也增加了黑客攻擊系統安全的可能性。攻擊面的增加是由于該系統對來自多個來源的應用程序開放,并且新的Hypervisor配備了極高的訪問權限。其中一個應用程序,特別是Hypervisor中的漏洞,可以讓攻擊者不僅破壞甚至接管目標應用程序,而且還可以接管整個系統。如果ECU包含一個可能危及車輛功能安全的應用,這一點尤其值得關注。安全問題可以通過多層次的方法得到最好的控制。對于ECU來說,可以通過硬件和軟件的結合來實現。在啟動時,ECU的代碼必須經過安全認證,而且加載速度要快。在這種情況下,需要對復雜的加密算法提供硬件支持。為了滿足這一要求,可以對程序代碼和用戶的數據進行加密,并利用相應的硬件加速(HSM)來及時解密。此外,至關重要的是,安全硬件及其密鑰要受到保護,以免被正在運行的應用程序或硬件算法(如旁路攻擊)所破壞)。
高性能MCU處理器平臺
NXP的S32S處理器提供了一個安全而強大的平臺,為Hypervisor用戶提供廣泛的硬件支持,并具有靈活的安全功能。為了幫助用戶更快地將強大的解決方案推向市場,恩智浦已與軟件供應商Open Synergy合作,將其專業知識用于開發S32S處理器系列的Hypervisor軟件。COQOS Micro-Hypervisor使用S32S247處理器的功能來實現獨立的虛擬機,這些虛擬機的運行達到ASIL-D安全等級(圖4)。除此之外,ST的Stellar系列與NXP的S32S一樣,采用ARM-Cortex-R52系列內核,支持硬件Hypervisor(圖5)。以上兩家都屬于ARM-Cortex-R52陣營。而Infineon同樣不甘落后,繼續強化Tricore架構,支持基于Hypervisor的虛擬化應用(圖6)。
轉載汽車電子相關文章
轉自汽車電子與軟件