隨著嵌入式技術(shù)和市場(chǎng)預(yù)期的發(fā)展,設(shè)計(jì)工程師不斷面臨著將擴(kuò)展功能集成到更小、功耗更低的設(shè)備中的壓力。除了為這些新項(xiàng)目增加應(yīng)用軟件的復(fù)雜性之外,客戶還需要交互式界面、無(wú)處不在的連接性、絕對(duì)的安全性和極高的可靠性。
嵌入式設(shè)計(jì)人員還面臨著將較慢的傳統(tǒng)接口電路與最新的高速控制設(shè)備和多個(gè)顯示器相結(jié)合的挑戰(zhàn)。最終的系統(tǒng)通常包括帶有操作系統(tǒng) (OS) 和應(yīng)用軟件的原始硬件,以及一個(gè)帶有軟件的完全獨(dú)立的控制器來(lái)處理更新的需求。這種方法增加了組件數(shù)量和功率要求,并且無(wú)助于提高傳統(tǒng)應(yīng)用程序的性能。
為了應(yīng)對(duì)這種日益增加的復(fù)雜性,設(shè)計(jì)人員正在利用托管多個(gè)操作系統(tǒng)的虛擬處理器來(lái)確保對(duì)實(shí)時(shí)事件的無(wú)阻礙、確定性響應(yīng),同時(shí)為用戶和操作員提供基于圖形的高級(jí)界面。虛擬化是通過(guò)添加一個(gè)虛擬機(jī)監(jiān)視器 (VMM) 軟件層或管理程序來(lái)實(shí)現(xiàn)的,該層或管理程序隔離各個(gè)分區(qū)并執(zhí)行客戶操作軟件。管理程序創(chuàng)建一個(gè)或多個(gè)模擬計(jì)算機(jī)環(huán)境或虛擬機(jī),它們可以同時(shí)在單個(gè)處理器上托管獨(dú)立的操作系統(tǒng)和應(yīng)用程序。
為了加快虛擬組件交互,芯片制造商正在將硬件輔助虛擬化整合到為延長(zhǎng)生命周期的嵌入式應(yīng)用程序量身定制的處理器架構(gòu)中。例如,第二代 Intel Core 和 Intel Atom E6xx 處理器支持 Intel Virtualization Technology (Intel VT)。該技術(shù)通過(guò)使用硬件輔助來(lái)捕獲和執(zhí)行某些 VMM 指令,從而提高了基于軟件的虛擬化性能和安全性。Intel VT 允許 VMM 將內(nèi)存和 I/O 設(shè)備分配給特定分區(qū),從而降低處理器負(fù)載并減少虛擬機(jī)切換時(shí)間。
虛擬隔離
將實(shí)時(shí)或安全關(guān)鍵嵌入式功能與基于圖形的大型操作系統(tǒng)相結(jié)合的虛擬平臺(tái)必須包含安全規(guī)定,允許未受影響的分區(qū)在發(fā)生軟件故障或網(wǎng)絡(luò)攻擊時(shí)繼續(xù)運(yùn)行。例如,LynuxWorks 為各種虛擬機(jī)配置更新了 LynxSecure 分離內(nèi)核和管理程序,如圖 1 所示。該虛擬化軟件旨在在安全防御環(huán)境中運(yùn)行,其中具有不同安全級(jí)別的數(shù)據(jù)和應(yīng)用程序必須共同駐留在單個(gè)設(shè)備上沒(méi)有腐敗。LynxSecure 使用虛擬機(jī)管理程序創(chuàng)建虛擬化層,將物理系統(tǒng)資源映射到每個(gè)客戶操作系統(tǒng),并為其分配專用資源,例如內(nèi)存、CPU 時(shí)間和 I/O 外圍設(shè)備。
圖 1: LynxSecure 嵌入式管理程序允許多個(gè)不同的操作系統(tǒng)共享一個(gè)物理硬件平臺(tái)。
TenAsys Corporation 為 Windows 提供 eVM,這是另一個(gè)嵌入式虛擬化平臺(tái),在同一處理器平臺(tái)上與 Windows 一起托管嵌入式操作系統(tǒng)或?qū)崟r(shí)操作系統(tǒng) (RTOS)。為確保關(guān)鍵硬件接口未被虛擬化,eVM 對(duì)平臺(tái)進(jìn)行分區(qū),從而保證最大性能和對(duì)實(shí)時(shí)事件的確定性響應(yīng)。eVM 作為標(biāo)準(zhǔn) Windows 應(yīng)用程序安裝,包括設(shè)置、啟動(dòng)和停止多個(gè) RTOS 客戶配置所需的所有集成工具?;?Windows 的控制面板還允許用戶分配中斷、分配 I/O 設(shè)備和設(shè)置磁盤啟動(dòng)映像。系統(tǒng)設(shè)置完成后,eVM 為客戶 RTOS 提供盡可能低的中斷延遲、直接訪問(wèn) I/O 和非分頁(yè) RAM。
多核虛擬化
盡管虛擬化允許設(shè)計(jì)人員將操作系統(tǒng)和應(yīng)用程序結(jié)合起來(lái)以降低系統(tǒng)功率要求和外形尺寸,但它對(duì)提高單個(gè)軟件組件的性能幾乎沒(méi)有任何作用。設(shè)計(jì)人員的最新趨勢(shì)之一是將多核處理器與虛擬化結(jié)合起來(lái),通過(guò)并行處理提高性能。
通過(guò)虛擬化,管理程序在操作環(huán)境之間隔離和分配系統(tǒng)資源,以便實(shí)時(shí)、通用和遺留軟件可以很容易地集成到多核系統(tǒng)中。除了內(nèi)存和硬件設(shè)備分配之外,虛擬化還允許開發(fā)人員根據(jù)需要將多個(gè)內(nèi)核分配給計(jì)算密集型應(yīng)用程序,以最大限度地提高整體系統(tǒng)性能。
Wind River Hypervisor 將虛擬化擴(kuò)展到多核應(yīng)用程序,允許設(shè)計(jì)人員將硬件設(shè)備、內(nèi)存和內(nèi)核配置和劃分為虛擬板,每個(gè)板都有自己的操作系統(tǒng),同時(shí)保持必要的分離(見(jiàn)圖 2)。這些虛擬板可以在單個(gè)處理器內(nèi)核上運(yùn)行,也可以根據(jù)系統(tǒng)需求分布在多個(gè)內(nèi)核上。Wind River Hypervisor 已應(yīng)用于安全關(guān)鍵型應(yīng)用,在這些應(yīng)用中,系統(tǒng)的安全認(rèn)證和非認(rèn)證組件傳統(tǒng)上必須在物理上分離。然而,嵌入式虛擬化允許系統(tǒng)設(shè)計(jì)人員隔離經(jīng)過(guò)安全認(rèn)證的組件,同時(shí)仍使用經(jīng)過(guò)認(rèn)證的管理程序在單個(gè)硬件平臺(tái)上運(yùn)行。
圖 2: Wind River Hypervisor 提供了一個(gè)虛擬化層,可將單核或多核芯片劃分為具有不同級(jí)別保護(hù)和功能的多個(gè)分區(qū)。
Real-Time Systems 還為多核處理器提供虛擬化支持。RTS Real-Time Hypervisor 充分利用英特爾 VT 的安全性,允許在單個(gè)多核平臺(tái)上完全獨(dú)立地執(zhí)行多個(gè)操作系統(tǒng)。設(shè)計(jì)人員可以為每個(gè)操作系統(tǒng)分配單獨(dú)的處理器內(nèi)核、內(nèi)存和設(shè)備。通過(guò)配置文件,可以指定引導(dǎo)順序,并且在需要時(shí),可以獨(dú)立于其他操作系統(tǒng)重新引導(dǎo)操作系統(tǒng)。為了促進(jìn)操作系統(tǒng)之間的通信,管理程序還提供可配置的用戶共享內(nèi)存,以及基于 TCP/IP 的虛擬網(wǎng)絡(luò)驅(qū)動(dòng)程序。該系統(tǒng)可以運(yùn)行多個(gè) RTOS 實(shí)例,并與 Windows XP/CE/7/Embedded、QNX、Linux、On Time RTOS-32、VxWorks、Microware OS-9 和 Android 等高級(jí)操作軟件混合使用。
開發(fā)和調(diào)試
無(wú)論虛擬應(yīng)用程序是在單個(gè)處理器上運(yùn)行還是跨多個(gè)內(nèi)核運(yùn)行,軟件開發(fā)和調(diào)試工具都必須配置為支持多個(gè)操作系統(tǒng)和內(nèi)存分區(qū)。例如,Green Hills Software 更新了其 INTEGRITY RTOS 和 MULTI 集成開發(fā)環(huán)境 (IDE),以支持最新的虛擬化微架構(gòu)。INTEGRITY RTOS 圍繞分區(qū)架構(gòu)構(gòu)建,為嵌入式系統(tǒng)提供增強(qiáng)的可靠性、安全性和實(shí)時(shí)性能。安全分區(qū)保證每個(gè)任務(wù)獲得保護(hù)操作系統(tǒng)和用戶任務(wù)免受錯(cuò)誤和惡意代碼攻擊所需的資源。INTEGRITY 架構(gòu)提供針對(duì)嵌入式和實(shí)時(shí)多核處理器優(yōu)化的非對(duì)稱多處理 (AMP) 和對(duì)稱多處理 (SMP) 支持。
MULTI IDE 軟件工具在單個(gè)包中包含多個(gè) C 編譯器選項(xiàng)、調(diào)試器、編輯器、配置管理器、代碼瀏覽器和調(diào)試器。MULTI 還具有 DoubleCheck,這是一個(gè)集成的靜態(tài)分析器,可以隔離由可能不在同一源文件中的代碼段之間的復(fù)雜交互引起的錯(cuò)誤。此外,Green Hills Probe 還為電路板啟動(dòng)、設(shè)備驅(qū)動(dòng)程序開發(fā)和系統(tǒng)級(jí)調(diào)試提供多核調(diào)試控制。
下一步是通過(guò)更新和簡(jiǎn)化軟件開發(fā)工具集來(lái)整合多核支持,同時(shí)最大限度地減少對(duì)當(dāng)前代碼創(chuàng)建實(shí)踐的修改。各種軟件供應(yīng)商為基于第二代英特爾酷睿設(shè)備的產(chǎn)品提供高級(jí)開發(fā)工具和板級(jí)支持包。例如,CriticalBlue 的 Prism 軟件分析工具允許開發(fā)人員分析現(xiàn)有的軟件應(yīng)用程序,評(píng)估新架構(gòu)的優(yōu)勢(shì),并選擇合適的處理器。
Prism 分析在模擬器或硬件開發(fā)板上運(yùn)行的現(xiàn)有代碼的行為,以評(píng)估引入或添加更多并行代碼結(jié)構(gòu)的機(jī)會(huì)。例如,開發(fā)人員可以選擇第二代英特爾酷睿處理器家族的適當(dāng)成員,并分析英特爾超線程技術(shù)、數(shù)據(jù)緩存未命中和指令吞吐量的影響。Prism 為開發(fā)人員提供了通過(guò)將程序劃分為多個(gè)線程可實(shí)現(xiàn)的性能增益的估計(jì)。
設(shè)計(jì)簡(jiǎn)化,性能優(yōu)化
虛擬化是一種行之有效的方法,可以用更少的組件簡(jiǎn)化嵌入式設(shè)計(jì),同時(shí)集成輕松組合不同操作軟件或未來(lái)更新所需的框架。虛擬化還通過(guò)隔離硬件和軟件層來(lái)簡(jiǎn)化系統(tǒng)升級(jí),以便設(shè)計(jì)人員可以輕松添加或修改外圍設(shè)備、內(nèi)存和內(nèi)核,而無(wú)需重構(gòu)軟件架構(gòu)。虛擬機(jī)管理程序使設(shè)計(jì)人員即使在部署后也可以通過(guò)調(diào)整資源映射來(lái)優(yōu)化性能。
審核編輯:郭婷
-
處理器
+關(guān)注
關(guān)注
68文章
18927瀏覽量
227252 -
嵌入式
+關(guān)注
關(guān)注
5046文章
18821瀏覽量
298627 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6545瀏覽量
122753
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論