嵌入式虛擬化對 OEM 有幾個積極的影響。例如,一旦有一種方法可以拆分應用程序以在多個內核上運行同時保持確定性,該解決方案隨后可以使實時應用程序能夠向上或向下擴展它們使用的內核數量。借助可擴展性,OEM 可以為其產品提供一系列性價比選項,而無需更改軟件。
虛擬化在計算機科學中并不是一個新概念,但隨著多核處理器的出現,它引起了新的興趣。盡管虛擬化被認為是保持多個處理器內核忙碌的一種方式,但需要注意的是,大多數類型的服務器或客戶端虛擬化并非旨在滿足時間關鍵型嵌入式處理的需求。這些虛擬化方法通常以相同的方式對待多核芯片上的所有處理器。在這些系統中,單個操作系統 (OS) 在處理器可用時將任務分配給處理器,以試圖使所有處理器盡可能地負載處理任務。
服務器和客戶端虛擬化通常會虛擬化所有硬件,包括 I/O 接口。當 I/O 接口需要服務時,虛擬機監視器 (VMM) 會處理請求并將結果傳遞給它所支持的操作系統客戶端。沒有辦法確保在屬于該客戶端的 I/O 需要服務時加載特定的 OS 客戶端,也沒有一種全局方法可以將特定 I/O 與客戶端 OS 和在其上運行的應用程序相關聯。因此,無法準確保證處理 I/O 事件需要多少時間。因此,這種方法不適用于處理嵌入式系統中的實時處理。
嵌入式系統設計人員希望直接控制系統以獲得確定性和一致的性能。雖然需要平衡整體處理器利用率并保持多核處理器盡可能繁忙,但這并不是首要任務。首先,嵌入式設計人員正在尋找能夠幫助他們在增加功能和/或降低 OEM 產品成本的同時保持確定性的軟件技術。
嵌入式設計人員正在尋找一種軟件平臺,使他們能夠組合不同類型的操作系統,以便針對手頭的任務優化處理——例如,處理關鍵 I/O 時序要求的實時操作系統和通用操作系統( GPOS) 來利用 COTS 圖形豐富的應用程序,這些應用程序運行人為導向的功能。他們還在尋找擴展應用程序的解決方案,以便他們可以使用相同的應用程序代碼庫提供不同的產品。這降低了工程開發成本,縮短了上市時間,更重要的是,使新產品能夠基于經過驗證的軟件,這些軟件可以在性能和可靠性方面不斷升級。
嵌入式虛擬化保留了確定性
為了使嵌入式應用程序具有確定性,它必須從開發項目的一開始就進行設計。確定性不是可以在最后添加的東西。必須特別考慮以確保應用程序線程可以直接控制它們所依賴的 I/O 接口。
圖 1 顯示了一個拾放裝配系統,其中 TenAsys 的 Windows 實時操作系統 (RTOS) 托管在四核處理器的三個內核上,而人機界面 (HMI) 托管在第四個內核上。運行 Microsoft Windows 的核心。運行在不同 CPU 上的實時任務在需要時通過全局對象網絡進行通信。該自動化裝配系統包括三個實時子系統:引導裝配機器人的視覺系統、多軸機器人以及將組件索引到裝配位置然后運出裝配單元的材料運輸系統。開發和調試此類應用程序以確保每個組件按要求可靠運行的理想方法是將應用程序拆分為單獨的組件。
圖 1:嵌入式系統可以節省成本并保持實時響應能力,同時通過在多核處理器上托管多個操作系統來添加功能。

例如,HMI 將是一個單獨的應用程序模塊,可以在 Windows 等非實時環境中運行。這需要一個可以劃分平臺資源的操作系統環境——I/O、內存、中斷和 CPU 內核(在多核處理器平臺的情況下)——以允許應用程序模塊完全獨立地運行。嵌入式虛擬化環境支持這一點,允許不同的實時任務在特定的處理器內核上運行。操作軟件對物理 I/O 接口進行分區,以便來自設備之一的中斷僅中斷處理該設備的處理器。這確保了處理實時事件的可預測響應時間。
多核芯片上的多個操作系統環境的托管由稱為嵌入式虛擬化管理器的軟件或包含在 RTOS 中的特殊嵌入式虛擬化功能進行管理。
嵌入式虛擬化可以以不同的方式實現,具體取決于處理器提供的硬件虛擬化支持量。半虛擬化解決方案使用軟件技術來修改客戶操作系統,允許它們并肩工作,而不會相互影響或損害系統的實時響應能力。實現提供了不同程度的平臺分區,并且通常僅限于在一個平臺上一次運行兩個操作系統——一個 RTOS 和一個 GPOS。一些實現已經發展到 GPOS 不需要任何修改并且很容易支持最新版本的 GPOS 的地步。當將 GPOS 耦合到 RTOS 的目的是按原樣使用傳統 RTOS 應用軟件時,這是一個真正的優勢,無需任何修改,
多年來,其中一些實現已經過優化,可為特定的操作系統組合提供最佳性能。這樣做的缺點是每個實現都特定于特定的操作系統組合,提供通用虛擬化解決方案以支持多種操作系統組合是一種不切實際的方法。
最近推出的 VT(由 Intel 處理器支持)等硬件輔助虛擬化功能通過提供內置于處理器中的硬件輔助,消除了半虛擬化的一些軟件復雜性。通過使用硬件虛擬化支持,可以構建 VMM 以在不了解客戶操作系統的情況下運行。因此,VMM 可以支持針對該平臺的任何操作系統。
英特爾處理器特性,如 VT-x(VT 特性的一個子集)確保客戶操作系統發出的任何內存地址都自動映射到物理內存中的適當地址位置。同樣,稱為 VT-d 的硬件輔助虛擬化功能自動映射總線主控 DMA 設備的 I/O 內存訪問,使作為來賓 RTOS 應用程序一部分的本機 I/O 驅動程序無需修改即可在虛擬化環境中使用。這些硬件輔助功能大大降低了 VMM 的復雜性,并使嵌入式虛擬化成為更可行的解決方案。
使可伸縮性在實時應用程序中發揮作用
雖然嵌入式虛擬化為將實時應用程序拆分為單獨的獨立操作組件提供了理想的環境,但拆分應用程序需要一種機制來支持進程間通信 (IPC)。
過去,設計人員經常在應用子系統之間建立以太網鏈路,并使用 TCP/IP 堆棧在子系統之間進行通信,但這種方法繁瑣、速度慢,有時不可靠,并且給系統的行為增加了不確定性,影響了確定性。
更好的 IPC 方法是使用稱為全局對象網絡的概念。 全局對象網絡提供了一個具有內置啟動和發現服務的托管通信環境,使應用程序能夠在加載時動態分布在一個或多個 CPU 上。自動找到需要其他進程服務的進程,并且本地管理器記錄它們的位置以跟蹤已建立的 IPC 鏈接。如果通信鏈路或目標進程發生故障,管理器會通知啟動進程。此外,當啟動過程不再需要 IPC 鏈接時,本地管理器通過清除所有記錄來保持系統清潔。由于全局對象網絡與操作系統集成,其開銷很低,并且不需要應用程序開發人員創建任何自定義軟件。
操作系統管理全局對象的位置和存在,進程通過這些對象傳遞信息以確保系統的完整性。例如,一個進程在多個處理器上使用的對象是“保持活動狀態”的,只有在所有進程都終止時才會被刪除。這需要底層管理基礎架構來確保不會過早刪除對象,或者不會因為未使用資源清理不當而導致內存泄漏。同樣,如果一個處理節點在其進程終止之前發生故障,管理器需要通知所有其他處理節點上的全局對象管理器它們應該清除對故障節點上對象的任何本地引用。
GOBSnet 通信示例
圖 2 顯示了圖 1 所示系統的軟件架構的高度簡化視圖。除了 RTOS 和實時過程軟件,Cores 0-2 還運行 INtime GOBS manager 軟件,其功能是管理全局對象通信。(GOBSnet 是 TenAsys 的全球對象網絡,由公司的 INtime Distributed RTOS 和 INtime for Windows RTOS 支持。)
圖 2: GOBSnet 促進了在不同處理器內核上運行的實時進程之間的通信。

使用 GOBSnet,一個內核上的進程可以使用全局內存對象與另一個內核上的另一個進程通信。啟動進程,圖 2 中的“進程 1”,創建內存對象并將其編入該內核的根進程中。完成此操作后,運行在其他處理節點上的進程可以找到內存對象,從而為所有進程提供高效的共享內存接口。這同樣適用于 IPC 使用的所有對象范圍(包括信號量和郵箱)。
第二步是讓其他進程定位內存對象并獲取其內存位置。這是通過指定處理器名稱來開始搜索來完成的。當進程找到對象時,它將其位置、類型和參數存儲在處理器節點的 GOBS 管理器中的引用對象中,并保留該引用對象的句柄。從那時起,當遠程進程(本例中的進程 2 或進程 3)想要寫入或讀取內存對象時,它會使用引用對象的句柄來檢索適當的內存對象信息以訪問它。
當進程 2 或進程 3 終止其節點的 GOBS 管理器時,該管理器會清除有關遠程內存對象的所有引用對象信息。當進程 1 終止時,它會刪除它創建的所有對象,包括內存對象。如果這不是最佳操作,則可以選擇使用計數器創建內存對象。每當另一個進程連接到內存對象時,計數器就會增加,而每當這些關聯的進程之一終止時,計數器就會減少。結果是內存對象僅在與其連接的所有進程都終止時才被刪除。這允許遠程進程進程 2 和進程 3 可以繼續通過內存對象傳遞信息的情況,即使啟動進程進程 1 已經終止。
無論實時應用程序分布在同一多核芯片上的 CPU 之間,還是網絡在一起的不同微處理器組件上的不同 CPU 內核之間,都可以使用 GOBSnet 通信。通過圍繞這種靈活的系統軟件架構設計系統,嵌入式系統開發人員有足夠的空間來提高其產品的處理能力或相應地縮小其處理能力,以應對未來的挑戰。
審核編輯:郭婷
-
處理器
+關注
關注
68文章
20259瀏覽量
252546 -
嵌入式
+關注
關注
5200文章
20469瀏覽量
334381 -
cpu
+關注
關注
68文章
11285瀏覽量
225129
發布評論請先 登錄
arm嵌入式主板優缺點
什么是嵌入式操作系統?
嵌入式軟件分層架構設計原則
嵌入式實時操作系統的特點
NetApp助力對象存儲現代化,提升速度、可擴展性和安全性
嵌入式工程師為什么要學QT?
RISC-V 虛擬化堆棧和硬件的最新進展
一文讀懂:嵌入式Linux實時性進階
嵌入式軟件開發常用的軟件有哪些?
Linux嵌入式和單片機嵌入式的區別?
瑞薩電子RA系列微控制器的可擴展性強的配置軟件包 (FSP)安裝下載與使用指南
飛凌嵌入式ElfBoard ELF 1板卡-Regmap的優勢
瑞芯微RK3288解決方案:高性能、高擴展性的嵌入式系統設計理念與應用分析
嵌入式虛擬化支持多核實時應用程序的可擴展性
評論