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