多核處理器在計算領域的盛行現已成為現實,OEM 正在嘗試在不同處理器內核上劃分其應用程序的方法。在嵌入式計算領域,這可能意味著同時在同一處理器芯片上托管多個異構操作系統。因此,虛擬化是關鍵。雖然某些虛擬機管理器 (VMM) 僅混合使用通用操作系統 (GPOS),但同時包含實時操作系統 (RTOS) 和 GPOS 的任務關鍵型虛擬化方案帶來了其獨特的挑戰。Chris 揭示了虛擬化和確定性的細節,提供了一個示例,然后解釋了遺留應用程序如何適應該方案。
考慮到多核處理器在嵌入式領域中的日益普及,虛擬化是使多個操作系統在多核處理器芯片上共存的關鍵。但是,每個虛擬化嵌入式系統都是不同的,特別是當嵌入式系統涉及在同一平臺上的不同來賓操作系統上運行的任務關鍵型或高度安全的應用程序時。通常,實時操作系統 (RTOS) 和通用操作系統 (GPOS) 將組合在一起。需要不同的操作系統,因為實時或機器導向的任務對操作系統功能的需求與常規用途或人為導向的任務不同。
但是,在構建此類任務關鍵型嵌入式系統時,虛擬化的實施方式至關重要。必須保持系統的響應能力,這意味著保留原始系統以時間可預測和可重復或確定的方式響應刺激的能力。但挑戰也隨之而來:并非所有虛擬機管理器 (VMM) 實現都是平等的。例如,服務器應用程序中使用的 VMM 將最大資源利用率作為其最高優先級,而為電信應用程序需求而構建的虛擬機管理程序通常側重于數據吞吐量。
但是,兩者都不關注對外部事件的響應能力,而實時防御應用程序的虛擬化方案需要這種響應。對于大多數關鍵任務軍事嵌入式系統,需要一種特殊的虛擬化 - 嵌入式虛擬化 - 以便確定性地響應一系列外部事件。這種理想的軍事嵌入式系統虛擬化方法還允許OEM節省投資成本并保護知識產權,因為它可以輕松地將其傳統的實時應用程序與新系統元素一起托管,而對現有代碼的更改(如果有的話)很少。但是,托管舊版應用程序比簡單地在 VMM 或虛擬機監控程序上執行代碼要困難得多。我們的討論探討了虛擬化和確定性之間的關系,包括一個示例,并解釋了如何在遺留應用程序中折疊。
對事件的確定性響應
構建確定性 VMM 的關鍵是首先處理如何將處理器中斷傳遞到每個來賓操作環境的問題。啟用最短的響應時間可確保確定性,并需要區分可以虛擬化的 I/O 資源和不應虛擬化的 I/O 資源。例如,磁盤訪問通常不是嵌入式系統中的時間關鍵型元素,因此可以對其進行虛擬化。這樣,單個磁盤可以在多個操作環境之間共享。相比之下,來自硬件設備(例如為閉環運動控制提供輸入的編碼器)的中斷需要根據精確的時間表進行處理,以便應用程序以可預測的方式工作。因此,這些過程的中斷輸入實際上必須“硬連線”到運行實時控制程序的處理器。
嵌入式虛擬化平臺必須在多個操作系統之間實現隔離,同時將虛擬化開銷降至最低。因此,允許此平臺托管的操作系統軟件和應用程序直接訪問關鍵 I/O 設備,以保持對設備事件的確定性響應。虛擬化整個計算機環境的通用虛擬化方法可能會以犧牲對外部事件的響應為代價來最大化 CPU 的利用率。他們試圖最大化平臺的效用,并且通常通過在 CPU 可用時將工作分配給 CPU 來實現這一點。通過這種方式,他們可以使用高比例的可用CPU周期(在某些情況下超過90%),這使他們能夠降低運行給定數量的服務器應用程序的硬件成本。
相比之下,嵌入式 VMM 實現必須最大限度地提高應用程序對硬件事件的響應的可預測性,CPU 利用率并不那么重要。最重要的因素是給定接口到 CPU 的性能,VMM 通過在虛擬環境之間隔離硬件來確保這一點。
示例:GPOS/RTOS 虛擬化
考慮以下示例,其中虛擬環境之間的硬件隔離是使用多個計算變電站的系統中的一個因素。該應用程序的目的是檢索小型無人船并將它們放置在海軍艦艇上。問題是如何引導固定在船上的機器人,以便它可以在無人浮動車輛上安裝線或固定裝置,同時兩者都在海上折騰。機器人起重機使用視覺系統來準確查看車輛的連接點的位置,并計算算法以預測未來在海洋作用下移動時的位置。機器人起重機由運動控制系統引導到預測有吊鉤或閂鎖的位置,并在兩者結合在一起時進行接觸。
如前所述,此應用程序利用多個計算子系統。其中一個處理器專用于處理與視覺系統相關的任務,而與驅動運動子系統相關的操作任務專用于另一個CPU。該方案允許視覺系統的處理壟斷一個處理器的周期而不影響系統的其他功能,反之亦然。第三個處理器沒有時間關鍵型處理需求,支持人機界面 (HMI)。在多核 CPU 和 VMM 軟件出現之前,這三個處理子系統將作為三個獨立的計算單元實現,具有自己的處理器卡、內存、電源調節電路等。
現在,三個獨立的子系統可以托管在同一處理器芯片的不同內核上,從而在不犧牲獨立功能的性能和確定性的情況下節省系統成本。如圖 2 所示,保持系統響應能力的關鍵之一是將處理器內核和相關 I/O 專用于單獨的操作環境。
為了保持確定性,嵌入式 VMM 開發人員必須仔細規劃虛擬化,以便中斷開銷可預測、可衡量且最小。此外,每個 CPU 內核必須有自己的任務計劃程序和虛擬機,而不是使用旨在共享多個內核的單個主計劃程序。這種方法的另一個好處是消除了與主調度程序相關的開銷,許多虛擬化方案使用它來實現對稱多處理 (SMP) 來管理多個處理器內核上多個 GPOS 的執行。與嵌入式多處理方法相比,SMP 調度程序的開銷相對較高,后者不會在系統級別強加調度策略。
實時折疊,遺留流程
如前所述,多操作系統嵌入式系統最有價值的用途之一是將傳統的實時流程整合到新的或升級的產品中。軍事 OEM 通常擁有大量的知識產權投資,他們不想在遷移到新平臺時冒險或放棄這些投資。通常,這些OEM將從在VMM上運行其傳統RTOS與Windows一起開始。但隨著時間的推移,他們可能會發現需要擴展的實時功能,并在Windows上運行多個RTOS。
在考慮將遺留應用程序集成到利用RTOS和GPOS的虛擬化方案中時,除了確定性問題之外,另一個問題是管理環境之間的有效通信。要將舊版應用程序從多平臺環境遷移到單平臺、多核、多操作系統環境,虛擬化時間不嚴格的標準資源(用于引導的磁盤服務、用于日志記錄的串行終端服務以及 Windows 虛擬通信服務,如虛擬以太網和虛擬串行互連)是值得的, 同時避免虛擬化對提供確定性至關重要的 I/O(例如,運動控制接口和視覺子系統)。為了以最少的數據丟失實現最大性能(典型要求為無),確定性地處理中斷至關重要。
使遺留軟件在嵌入式虛擬環境中輕松工作的另一個方面是為軟件加載提供支持。嵌入式 VMM 平臺應允許每個來賓操作系統像在電腦上一樣正常啟動,而無需更改,而不是要求使用特殊的主板支持包 (BSP) 修改每個來賓操作系統以使軟件在 VMM 中正常運行。這消除了對軟件修改的需要,可以大大降低成本并簡化嵌入式系統的實現。
通過嵌入式虛擬化利用多核芯片
嵌入式虛擬化使OEM廠商有機會在RTOS和GPOS所在的平臺中充分利用新的多核處理器芯片,在不犧牲確定性的情況下降低系統成本并保留遺留代碼。對于軍事嵌入式系統市場來說,這項新技術來得正是時候,因為所有原始設備制造商都在尋找提高效率的方法。
審核編輯:郭婷
-
嵌入式
+關注
關注
5090文章
19173瀏覽量
306844 -
操作系統
+關注
關注
37文章
6882瀏覽量
123582 -
RTOS
+關注
關注
22文章
819瀏覽量
119810
發布評論請先 登錄
相關推薦
評論