多核處理器在計(jì)算領(lǐng)域的盛行現(xiàn)已成為現(xiàn)實(shí),OEM 正在嘗試在不同處理器內(nèi)核上劃分其應(yīng)用程序的方法。在嵌入式計(jì)算領(lǐng)域,這可能意味著同時(shí)在同一處理器芯片上托管多個(gè)異構(gòu)操作系統(tǒng)。因此,虛擬化是關(guān)鍵。雖然某些虛擬機(jī)管理器 (VMM) 僅混合使用通用操作系統(tǒng) (GPOS),但同時(shí)包含實(shí)時(shí)操作系統(tǒng) (RTOS) 和 GPOS 的任務(wù)關(guān)鍵型虛擬化方案帶來了其獨(dú)特的挑戰(zhàn)。Chris 揭示了虛擬化和確定性的細(xì)節(jié),提供了一個(gè)示例,然后解釋了遺留應(yīng)用程序如何適應(yīng)該方案。
考慮到多核處理器在嵌入式領(lǐng)域中的日益普及,虛擬化是使多個(gè)操作系統(tǒng)在多核處理器芯片上共存的關(guān)鍵。但是,每個(gè)虛擬化嵌入式系統(tǒng)都是不同的,特別是當(dāng)嵌入式系統(tǒng)涉及在同一平臺(tái)上的不同來賓操作系統(tǒng)上運(yùn)行的任務(wù)關(guān)鍵型或高度安全的應(yīng)用程序時(shí)。通常,實(shí)時(shí)操作系統(tǒng) (RTOS) 和通用操作系統(tǒng) (GPOS) 將組合在一起。需要不同的操作系統(tǒng),因?yàn)閷?shí)時(shí)或機(jī)器導(dǎo)向的任務(wù)對(duì)操作系統(tǒng)功能的需求與常規(guī)用途或人為導(dǎo)向的任務(wù)不同。
但是,在構(gòu)建此類任務(wù)關(guān)鍵型嵌入式系統(tǒng)時(shí),虛擬化的實(shí)施方式至關(guān)重要。必須保持系統(tǒng)的響應(yīng)能力,這意味著保留原始系統(tǒng)以時(shí)間可預(yù)測(cè)和可重復(fù)或確定的方式響應(yīng)刺激的能力。但挑戰(zhàn)也隨之而來:并非所有虛擬機(jī)管理器 (VMM) 實(shí)現(xiàn)都是平等的。例如,服務(wù)器應(yīng)用程序中使用的 VMM 將最大資源利用率作為其最高優(yōu)先級(jí),而為電信應(yīng)用程序需求而構(gòu)建的虛擬機(jī)管理程序通常側(cè)重于數(shù)據(jù)吞吐量。
但是,兩者都不關(guān)注對(duì)外部事件的響應(yīng)能力,而實(shí)時(shí)防御應(yīng)用程序的虛擬化方案需要這種響應(yīng)。對(duì)于大多數(shù)關(guān)鍵任務(wù)軍事嵌入式系統(tǒng),需要一種特殊的虛擬化 - 嵌入式虛擬化 - 以便確定性地響應(yīng)一系列外部事件。這種理想的軍事嵌入式系統(tǒng)虛擬化方法還允許OEM節(jié)省投資成本并保護(hù)知識(shí)產(chǎn)權(quán),因?yàn)樗梢暂p松地將其傳統(tǒng)的實(shí)時(shí)應(yīng)用程序與新系統(tǒng)元素一起托管,而對(duì)現(xiàn)有代碼的更改(如果有的話)很少。但是,托管舊版應(yīng)用程序比簡(jiǎn)單地在 VMM 或虛擬機(jī)監(jiān)控程序上執(zhí)行代碼要困難得多。我們的討論探討了虛擬化和確定性之間的關(guān)系,包括一個(gè)示例,并解釋了如何在遺留應(yīng)用程序中折疊。
對(duì)事件的確定性響應(yīng)
構(gòu)建確定性 VMM 的關(guān)鍵是首先處理如何將處理器中斷傳遞到每個(gè)來賓操作環(huán)境的問題。啟用最短的響應(yīng)時(shí)間可確保確定性,并需要區(qū)分可以虛擬化的 I/O 資源和不應(yīng)虛擬化的 I/O 資源。例如,磁盤訪問通常不是嵌入式系統(tǒng)中的時(shí)間關(guān)鍵型元素,因此可以對(duì)其進(jìn)行虛擬化。這樣,單個(gè)磁盤可以在多個(gè)操作環(huán)境之間共享。相比之下,來自硬件設(shè)備(例如為閉環(huán)運(yùn)動(dòng)控制提供輸入的編碼器)的中斷需要根據(jù)精確的時(shí)間表進(jìn)行處理,以便應(yīng)用程序以可預(yù)測(cè)的方式工作。因此,這些過程的中斷輸入實(shí)際上必須“硬連線”到運(yùn)行實(shí)時(shí)控制程序的處理器。
嵌入式虛擬化平臺(tái)必須在多個(gè)操作系統(tǒng)之間實(shí)現(xiàn)隔離,同時(shí)將虛擬化開銷降至最低。因此,允許此平臺(tái)托管的操作系統(tǒng)軟件和應(yīng)用程序直接訪問關(guān)鍵 I/O 設(shè)備,以保持對(duì)設(shè)備事件的確定性響應(yīng)。虛擬化整個(gè)計(jì)算機(jī)環(huán)境的通用虛擬化方法可能會(huì)以犧牲對(duì)外部事件的響應(yīng)為代價(jià)來最大化 CPU 的利用率。他們?cè)噲D最大化平臺(tái)的效用,并且通常通過在 CPU 可用時(shí)將工作分配給 CPU 來實(shí)現(xiàn)這一點(diǎn)。通過這種方式,他們可以使用高比例的可用CPU周期(在某些情況下超過90%),這使他們能夠降低運(yùn)行給定數(shù)量的服務(wù)器應(yīng)用程序的硬件成本。
相比之下,嵌入式 VMM 實(shí)現(xiàn)必須最大限度地提高應(yīng)用程序?qū)τ布录捻憫?yīng)的可預(yù)測(cè)性,CPU 利用率并不那么重要。最重要的因素是給定接口到 CPU 的性能,VMM 通過在虛擬環(huán)境之間隔離硬件來確保這一點(diǎn)。
示例:GPOS/RTOS 虛擬化
考慮以下示例,其中虛擬環(huán)境之間的硬件隔離是使用多個(gè)計(jì)算變電站的系統(tǒng)中的一個(gè)因素。該應(yīng)用程序的目的是檢索小型無人船并將它們放置在海軍艦艇上。問題是如何引導(dǎo)固定在船上的機(jī)器人,以便它可以在無人浮動(dòng)車輛上安裝線或固定裝置,同時(shí)兩者都在海上折騰。機(jī)器人起重機(jī)使用視覺系統(tǒng)來準(zhǔn)確查看車輛的連接點(diǎn)的位置,并計(jì)算算法以預(yù)測(cè)未來在海洋作用下移動(dòng)時(shí)的位置。機(jī)器人起重機(jī)由運(yùn)動(dòng)控制系統(tǒng)引導(dǎo)到預(yù)測(cè)有吊鉤或閂鎖的位置,并在兩者結(jié)合在一起時(shí)進(jìn)行接觸。
如前所述,此應(yīng)用程序利用多個(gè)計(jì)算子系統(tǒng)。其中一個(gè)處理器專用于處理與視覺系統(tǒng)相關(guān)的任務(wù),而與驅(qū)動(dòng)運(yùn)動(dòng)子系統(tǒng)相關(guān)的操作任務(wù)專用于另一個(gè)CPU。該方案允許視覺系統(tǒng)的處理壟斷一個(gè)處理器的周期而不影響系統(tǒng)的其他功能,反之亦然。第三個(gè)處理器沒有時(shí)間關(guān)鍵型處理需求,支持人機(jī)界面 (HMI)。在多核 CPU 和 VMM 軟件出現(xiàn)之前,這三個(gè)處理子系統(tǒng)將作為三個(gè)獨(dú)立的計(jì)算單元實(shí)現(xiàn),具有自己的處理器卡、內(nèi)存、電源調(diào)節(jié)電路等。
現(xiàn)在,三個(gè)獨(dú)立的子系統(tǒng)可以托管在同一處理器芯片的不同內(nèi)核上,從而在不犧牲獨(dú)立功能的性能和確定性的情況下節(jié)省系統(tǒng)成本。如圖 2 所示,保持系統(tǒng)響應(yīng)能力的關(guān)鍵之一是將處理器內(nèi)核和相關(guān) I/O 專用于單獨(dú)的操作環(huán)境。
為了保持確定性,嵌入式 VMM 開發(fā)人員必須仔細(xì)規(guī)劃虛擬化,以便中斷開銷可預(yù)測(cè)、可衡量且最小。此外,每個(gè) CPU 內(nèi)核必須有自己的任務(wù)計(jì)劃程序和虛擬機(jī),而不是使用旨在共享多個(gè)內(nèi)核的單個(gè)主計(jì)劃程序。這種方法的另一個(gè)好處是消除了與主調(diào)度程序相關(guān)的開銷,許多虛擬化方案使用它來實(shí)現(xiàn)對(duì)稱多處理 (SMP) 來管理多個(gè)處理器內(nèi)核上多個(gè) GPOS 的執(zhí)行。與嵌入式多處理方法相比,SMP 調(diào)度程序的開銷相對(duì)較高,后者不會(huì)在系統(tǒng)級(jí)別強(qiáng)加調(diào)度策略。
實(shí)時(shí)折疊,遺留流程
如前所述,多操作系統(tǒng)嵌入式系統(tǒng)最有價(jià)值的用途之一是將傳統(tǒng)的實(shí)時(shí)流程整合到新的或升級(jí)的產(chǎn)品中。軍事 OEM 通常擁有大量的知識(shí)產(chǎn)權(quán)投資,他們不想在遷移到新平臺(tái)時(shí)冒險(xiǎn)或放棄這些投資。通常,這些OEM將從在VMM上運(yùn)行其傳統(tǒng)RTOS與Windows一起開始。但隨著時(shí)間的推移,他們可能會(huì)發(fā)現(xiàn)需要擴(kuò)展的實(shí)時(shí)功能,并在Windows上運(yùn)行多個(gè)RTOS。
在考慮將遺留應(yīng)用程序集成到利用RTOS和GPOS的虛擬化方案中時(shí),除了確定性問題之外,另一個(gè)問題是管理環(huán)境之間的有效通信。要將舊版應(yīng)用程序從多平臺(tái)環(huán)境遷移到單平臺(tái)、多核、多操作系統(tǒng)環(huán)境,虛擬化時(shí)間不嚴(yán)格的標(biāo)準(zhǔn)資源(用于引導(dǎo)的磁盤服務(wù)、用于日志記錄的串行終端服務(wù)以及 Windows 虛擬通信服務(wù),如虛擬以太網(wǎng)和虛擬串行互連)是值得的, 同時(shí)避免虛擬化對(duì)提供確定性至關(guān)重要的 I/O(例如,運(yùn)動(dòng)控制接口和視覺子系統(tǒng))。為了以最少的數(shù)據(jù)丟失實(shí)現(xiàn)最大性能(典型要求為無),確定性地處理中斷至關(guān)重要。
使遺留軟件在嵌入式虛擬環(huán)境中輕松工作的另一個(gè)方面是為軟件加載提供支持。嵌入式 VMM 平臺(tái)應(yīng)允許每個(gè)來賓操作系統(tǒng)像在電腦上一樣正常啟動(dòng),而無需更改,而不是要求使用特殊的主板支持包 (BSP) 修改每個(gè)來賓操作系統(tǒng)以使軟件在 VMM 中正常運(yùn)行。這消除了對(duì)軟件修改的需要,可以大大降低成本并簡(jiǎn)化嵌入式系統(tǒng)的實(shí)現(xiàn)。
通過嵌入式虛擬化利用多核芯片
嵌入式虛擬化使OEM廠商有機(jī)會(huì)在RTOS和GPOS所在的平臺(tái)中充分利用新的多核處理器芯片,在不犧牲確定性的情況下降低系統(tǒng)成本并保留遺留代碼。對(duì)于軍事嵌入式系統(tǒng)市場(chǎng)來說,這項(xiàng)新技術(shù)來得正是時(shí)候,因?yàn)樗性荚O(shè)備制造商都在尋找提高效率的方法。
審核編輯:郭婷
-
嵌入式
+關(guān)注
關(guān)注
5141文章
19537瀏覽量
315136 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
7095瀏覽量
124968 -
RTOS
+關(guān)注
關(guān)注
24文章
841瀏覽量
120779
發(fā)布評(píng)論請(qǐng)先 登錄
嵌入式開發(fā)入門指南:從零開始學(xué)習(xí)嵌入式
ARM嵌入式實(shí)時(shí)操作系統(tǒng)比較
使用任務(wù)通知提高RTOS應(yīng)用的效率
【「嵌入式Hypervisor:架構(gòu)、原理與應(yīng)用」閱讀體驗(yàn)】+全文學(xué)習(xí)心得
【「嵌入式Hypervisor:架構(gòu)、原理與應(yīng)用」閱讀體驗(yàn)】+第7-8章學(xué)習(xí)心得
【「嵌入式Hypervisor:架構(gòu)、原理與應(yīng)用」閱讀體驗(yàn)】+第三四章閱讀報(bào)告
【「嵌入式Hypervisor:架構(gòu)、原理與應(yīng)用」閱讀體驗(yàn)】+第一二章讀后感
嵌入式系統(tǒng)的未來趨勢(shì)有哪些?
開啟全新AI時(shí)代 智能嵌入式系統(tǒng)快速發(fā)展——“第六屆國(guó)產(chǎn)嵌入式操作系統(tǒng)技術(shù)與產(chǎn)業(yè)發(fā)展論壇”圓滿結(jié)束
學(xué)習(xí)hypervisor嵌入式產(chǎn)品安全設(shè)計(jì)
《嵌入式機(jī)電一體化系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)》讀后感
RTOS的特性和類型
嵌入式系統(tǒng)中的實(shí)時(shí)操作系統(tǒng)
從菜鳥到大牛!嵌入式完整學(xué)習(xí)路線:STM32單片機(jī)-RTOS-Linux

評(píng)論