嵌入式虛擬化技術的起源源于創建實時操作系統 (RTOS) 可以與 Microsoft Windows 等通用操作系統 (GPOS) 一起工作的環境的想法。嵌入式虛擬化創建了一個分區環境,其中兩個操作系統及其上的應用程序運行在一個平臺上,就好像它們運行在兩個獨立的平臺上一樣。這樣做的好處是顯而易見的:如果需要更少的處理平臺來滿足應用程序的計算需求,則可以降低系統成本和復雜性。如果系統可以用更少的硬件元件構建,那么產品的可靠性也可以得到提高。
早在 80 年代初期,機器制造商就看到了利用 PC 平臺為其機器構建控制系統的機會。第一個此類應用程序相對簡單,重點主要是利用成本大大低于專用控制硬件的可用硬件。
隨著 PC 隨著 Windows 的加入而發展,大量應用軟件包被引入,推動了具有支持圖形引擎和軟件工具的人機界面 (HMI) 的新標準。機器制造商看到了使用 Windows 創建可以簡化機器設置、操作和維護的高級 HMI 的機會。但是,基于 Windows 的 PC 不能用于涉及時間關鍵控制的應用程序的某些部分,因為 Windows 本身不是 RTOS,并且不能確定性地執行控制功能。因此,除了 PC 之外,嵌入式系統設計人員通常會在機器上添加一個實時計算機子系統,以提供一整套產品功能。
另一方面,RTOS 供應商沒有資源來構建可用于 Windows 的那種圖形軟件工具和支持。一些人看到了將他們的操作系統與 Windows 耦合的機會,以便在單個計算平臺上將 RTOS 功能添加到基于 Windows 的系統中。
對于嵌入式系統 OEM 而言,將 RTOS 與 Windows 結合在一臺機器上的好處是顯而易見的,但與此相關的技術問題非常復雜。在一臺計算機上運行兩個操作系統并不是一個新概念。10 年前,它已在采用虛擬化技術的大型機上完成。該技術虛擬化了整個計算機平臺,本質上在操作系統和硬件之間創建了一個接口層,就像今天的現代服務器虛擬化技術一樣。
這樣做的根本問題是,當應用軟件需要與其 I/O 交互時,將操作系統和應用軟件與硬件的直接訪問隔離開會導致不確定的時間延遲。然而,實時應用程序必須直接訪問(有時稱為裸機訪問)應用程序需要控制的設備,以便軟件可以及時向 I/O 設備寫入或讀取數據,確定性的方式。
嵌入式虛擬化解決了多操作系統的確定性問題
必須設計一種方法來劃分平臺資源,以便 RTOS 可以直接訪問 I/O 和確定性運行應用程序所必需的中斷。像 Windows 這樣的 GPOS 不允許共同駐留的 RTOS 控制其 I/O 設備。
相反,GPOS 通常在安裝期間控制平臺上所有可用的 I/O。除非修改 Windows 的選項會帶來全新的問題,否則必須設計一種從 Windows 保留 I/O 的方法。由于這最初是在單核處理器時代完成的,因此必須開發技術讓處理器以最小的開銷將上下文從 RTOS 切換到 GPOS。這些是嵌入式虛擬化的原則,這些原則已在數千個成功的嵌入式系統產品中得到驗證。
進程間通信使任務協調成為可能
在共享但獨立的環境中運行應用程序的多個操作系統需要應用程序相互傳遞數據。這可以通過簡單的保留內存塊輕松執行,但需要應用程序進行一定程度的內務管理,并且在需要在特定時間傳遞和讀取消息的實時系統中管理起來很麻煩。
通信過程需要以這樣一種方式構建,即在預期保持確定性時發生消息傳遞。通信必須考慮消息的優先級相對于當時正在運行的其他實時任務的優先級,以便消息將在正確的時間或以正確的順序傳遞。當在非實時 GPOS 環境中運行的應用程序與在實時環境中在 RTOS 上運行的應用程序之間進行通信時,這一點尤其重要。不得允許未確定優先級的事件中斷已確定優先級的任務。
多核處理器有助于功能分區
多核處理器的引入導致一些規則發生了變化。原則上,處理器不再需要共享。每個操作系統都可以有自己的處理器內核(或者多個內核可以專用于一個操作系統);但是,實際上,Windows 等操作系統在安裝時假定所有處理器內核都屬于它們。
設置多核系統以使 GPOS 控制某些內核而不控制其他內核需要一種方法來告訴 GPOS 哪些內核對其不可用。通過適當的解決方法,四核處理器可以支持多種 GPOS:RTOS 配置,包括 3:1;2:2 和 1:3(參見圖 2)。這種靈活性允許用戶根據應用程序的要求優化平臺的計算資源。雖然具有復雜 Windows 部分和輕實時要求的應用程序可以配置為運行 GPOS 應用程序的三個內核和一個運行 RTOS 的內核,但具有同時運行多個實時控制功能并與簡單 HMI 通信的應用程序可能具有一個專用于 Windows 的內核和三個到多個 RTOS 實例。
圖 2:嵌入式虛擬化支持多核處理器上的不同功能分區策略。
由于可以在多核處理器上同時運行多個 RTOS,最初開發用于在單個共享處理器上的 GPOS 和 RTOS 之間進行通信的通信系統可以擴展為支持 RTOS 和 GPOS 的多個實例之間的通信。 從理論上講,系統架構可以擴展為創建一個相互通信的操作系統網絡,每個操作系統都運行特別適合其自身環境的應用程序元素。與系統的 I/O 需求一樣,通信結構需要維護和支持實時子系統的實時確定性要求。
虛擬化支持跨平臺的確定性通信
TenAsys 公司的 INtime RTOS 系列是一種已在關鍵任務應用程序中證明自己的嵌入式虛擬化環境。銀泰嵌入式虛擬化技術封裝了PC平臺分區的原理,使Windows和RTOS并行運行。INtime 通過稱為 GOBSnet 的全球對象網絡系統促進 RTOS 和 Windows 實例之間的確定性通信。這包括一個內置的通信網絡,允許不同操作系統上的多個應用程序以確定的方式在進程級別進行通信。
使用具有類似于 URL 的尋址方案的以太網,GOBSnet 被擴展以使單獨的系統功能塊(稱為節點)能夠在同一多核處理器上或跨物理不同的平臺進行確定性通信。通過這種方式,大型和復雜的應用程序可以分布在多個節點上(參見圖 3),從而在利用多核處理器的并行處理能力的同時簡化它們的創建、調試和優化。這使得 OEM 可以通過擴展所使用的處理器或處理器內核的數量來以不同的成本點或功能級別生產一系列產品。
圖 3:全球對象網絡促進了復雜嵌入式應用(例如汽車測試系統)中內核之間和跨計算平臺的通信。
嵌入式虛擬化技術已經在實時應用程序中使用了十多年,但是隨著包括越來越多 CPU 內核的處理器的出現,這些方法徹底改變嵌入式系統設計的全部潛力現在才變得清晰起來。隨著全球對象網絡支持,嵌入式虛擬化已準備好成為構建大型多操作系統系統的標準方式。
審核編輯:郭婷
-
處理器
+關注
關注
68文章
19348瀏覽量
230248 -
嵌入式
+關注
關注
5087文章
19145瀏覽量
306119 -
cpu
+關注
關注
68文章
10879瀏覽量
212188
發布評論請先 登錄
相關推薦
評論