嵌入式應用程序中的虛擬化與其企業(yè)和桌面等價物有很多共同之處。獨特的嵌入式用例和專門的底層技術(shù)為開發(fā)人員提供了優(yōu)化設計以提高性能和響應能力的新機會。
在臺式機、數(shù)據(jù)中心以及現(xiàn)在的嵌入式設計中采用多核技術(shù)可以滿足類似的需求——在不提高系統(tǒng)時鐘的情況下擴展計算容量,并為下一代設備和應用程序獲得更高的每瓦 MIPS。
桌面和數(shù)據(jù)中心的主流多核需要來自已部署操作系統(tǒng) (OS) 的對稱多處理 (SMP) 支持。Linux 內(nèi)核已經(jīng)支持 SMP 近十年了,支持 SMP 的 Windows 和 Mac OS 版本在今天被廣泛使用。
相比之下,嵌入式操作系統(tǒng)正試圖趕上支持多核 CPU。即使操作系統(tǒng)越來越擅長在多核環(huán)境中運行,應用程序和中間件仍然面臨線程安全、并發(fā)和負載平衡的挑戰(zhàn)。
虛擬化軟件架構(gòu)
為了解決這些挑戰(zhàn),出現(xiàn)了不同的虛擬化策略,從類型 I 和類型 II 開始,如圖 1 所示。在類型 I 虛擬化中,管理程序“擁有”CPU 并負責引導和運行客戶操作系統(tǒng)。I 型平臺是“精益、 中庸”和成熟的,從大型機和小型機的幾代開發(fā)中出現(xiàn),現(xiàn)在用于移動設備。相比之下,VMware Fusion、Parallels 和 Sun VirtualBox 等平臺提供的 Type II 虛擬化側(cè)重于最終用戶體驗,管理程序作為應用程序在另一個操作系統(tǒng)上運行,沒有性能保證。
圖 1: Type I 管理程序啟動并運行客戶操作系統(tǒng),而 Type II 管理程序作為應用程序在另一個操作系統(tǒng)上運行。
嵌入式虛擬化遵循自己的范式。在路由器、交換機和網(wǎng)關(guān)等基礎設施應用程序中,用例類似于企業(yè)。I 類管理程序托管 Linux 或?qū)崟r操作系統(tǒng) (RTOS) 實例,以支持單個硬件或冗余高可用性架構(gòu)中的虛擬備件上的虛擬設備(防火墻、深度包檢查器和其他設備)。
在移動設備中,OEM 使用裸機虛擬化來整合多個 CPU,以便在單個 CPU 上運行基帶、多媒體和應用程序堆棧以及不同的操作系統(tǒng)(Android 或 Linux 在一個或多個虛擬機中,以及 RTOS 在另一個)以節(jié)省費用材料成本。
走向多核
除了硬件整合之外,虛擬化還提供了一種在單個處理器中跨多個內(nèi)核分配現(xiàn)有負載的良好機制。嵌入式操作系統(tǒng)架構(gòu)師傾向于將多核芯片視為離散 CPU 的集合。大多數(shù)傳統(tǒng) RTOS 多核支持都反映了這一觀點,要求操作系統(tǒng)和堆棧的唯一副本在不同的內(nèi)核上準協(xié)作運行。
隨著 RTOS 供應商開始創(chuàng)建其產(chǎn)品的多核版本,他們經(jīng)常使用負載到多核芯片中內(nèi)核的靜態(tài)映射。一些嵌入式虛擬化平臺需要靜態(tài)分配管理程序及其托管和運行的負載(即每個 CPU 內(nèi)核一個管理程序,如圖 2 所示)。
圖 2:在負載的靜態(tài)映射中,每個 CPU 內(nèi)核分配一個管理程序。
物理硅到虛擬化負載的靜態(tài)映射效率低下,并且無法提供虛擬化所賦予的優(yōu)勢。一種更有效的方法是為每個客戶操作系統(tǒng)配置一個虛擬 CPU,該虛擬 CPU 可以映射到單個 CPU(一對一)、共享一個 CPU(多對一)或分布在多個內(nèi)核(一對多),如圖 3 所示。
圖 3:虛擬化支持負載到內(nèi)核的一對一、多對一和一對多映射。
將負載映射到虛擬 CPU 到物理內(nèi)核可以在集成時鎖定或改變以平衡負載,如以下應用程序所示。
負載均衡
當今的網(wǎng)絡設備——移動電話、機頂盒、車載系統(tǒng)、網(wǎng)絡設備和幾乎任何類型的智能設備——都是應用平臺,其負載與臺式計算機、數(shù)據(jù)中心刀片和服務器一樣多變且復雜。多核 CPU 承諾現(xiàn)代嵌入式軟件的高吞吐量和快速響應,但預測負載和核心利用率超過了集成來自各種來源的軟件的過程,尤其是來自應用商店的軟件。
虛擬化為開發(fā)人員和集成商提供了額外的工具來優(yōu)化設備性能。嵌入式管理程序可以監(jiān)控來賓操作系統(tǒng)和主機策略軟件的負載,以相應地分配 CPU 周期和其他資源。
多核電源管理
多核系統(tǒng)可能對針對單核系統(tǒng)優(yōu)化的電源管理方案提出嚴峻挑戰(zhàn)。特別是,許多多核片上系統(tǒng) (SoC) 對動態(tài)電壓和頻率縮放 (DVFS) 的范圍和能力有限制:
· SoC 子系統(tǒng)和多核 CPU 通常共享電源電壓、時鐘、緩存和其他資源,這意味著 DVFS 適用于所有內(nèi)核。
· 在一個 SoC 子系統(tǒng)上縮放電壓(如果可能)可以限制通過本地總線與其他子系統(tǒng)的通信,并拒絕訪問共享內(nèi)存,包括子系統(tǒng)自己的 DRAM。
· 單個 SoC 子系統(tǒng)的時鐘縮放限制了互操作性,尤其是對于同步總線。
· 一些操作全速使用或根本不使用核心,但其他操作會施加不同的負載。全有或全無使用很容易管理,但多核上的動態(tài)負載提出了更大的電源管理挑戰(zhàn)。
現(xiàn)在添加多個操作系統(tǒng)。高級操作系統(tǒng)通常包括 DVFS 電源管理,例如 Linux 高級電源管理和動態(tài)電源管理以及 Windows/BIOS 高級配置和電源接口。大多數(shù) RTOS 避免了限制實時響應的操作,并且當它們確實提供像 vxLib 的 vxPowerDown() 這樣的顯式電源管理 API 時,它們?nèi)狈﹄娫垂芾聿呗浴<词挂粋€操作系統(tǒng)能夠管理其自己域中的電源,它也不會了解同一系統(tǒng)中其對等方的功能和狀態(tài)。
DVFS 通過降低電壓和時鐘頻率來提供能源效率。支持 DVFS 的 CPU 在固定電壓和頻率下提供安全工作點。隨著負載/需求的增加或減少,電源管理中間件或操作系統(tǒng)會從工作點轉(zhuǎn)換到工作點,如圖 4 所示。
圖 4:通過動態(tài)電壓和頻率縮放,可以跨內(nèi)核遷移負載以節(jié)省功耗。
DVFS 的一個邏輯擴展是將電壓降低到 0 VDC 并通過僅利用兩個操作點(完全停止和完全節(jié)流)在可用內(nèi)核范圍內(nèi)應用來停止 CPU 時鐘。這種巧妙的技巧只有使用虛擬 CPU(參見圖 3 和圖 4)才能實現(xiàn),用于將負載映射到物理芯片并在 CPU 內(nèi)核之間透明地遷移運行負載。關(guān)閉整個內(nèi)核比 DVFS 更易于管理,并導致線性、高度可預測的性能-能源權(quán)衡。
多核基帶
隨著高帶寬 4G 網(wǎng)絡(尤其是 LTE)的出現(xiàn),移動設備需要將更多的處理能力用于無線數(shù)據(jù)通信。為了以更高的并發(fā)性提高吞吐量,新出現(xiàn)的需求要求將整個內(nèi)核專用于 4G I/O 操作。這一要求使無線芯片組供應商和傳統(tǒng) RTOS 供應商爭先恐后地為 SMP 操作重新配置基帶操作系統(tǒng)和軟件堆棧。
更簡單的解決方案是使用移動/嵌入式虛擬化來提高 4G 吞吐量。管理程序可以根據(jù)需要將可用內(nèi)核映射到輸入或輸出操作,并縮減該映射以支持其他 CPU 密集型操作或執(zhí)行每個內(nèi)核的電源管理,而不是將兩個、四個或更多內(nèi)核專用于基帶處理。
只有虛擬化可以擴展
多核軟件設計既復雜又簡單。系統(tǒng)架構(gòu)師應該抵制將遺留軟件元素批量分配給下一代嵌入式芯片上的可用內(nèi)核的誘惑。
處理器路線圖指向可用處理器內(nèi)核的進一步倍增:今天在嵌入式 CPU 上是 2 倍,很快會達到 4 倍、8 倍甚至更高。這種過剩的硅片將很快超過用于配置和管理多核軟件負載的靜態(tài)方法。
只有嵌入式/移動虛擬化才能提供可擴展且靈活的機制,以實現(xiàn)多核處理能力的優(yōu)勢并簡化系統(tǒng)設計、集成和部署,同時使這些系統(tǒng)更加可靠和安全。
審核編輯:郭婷
-
處理器
+關(guān)注
關(guān)注
68文章
19896瀏覽量
235264 -
嵌入式
+關(guān)注
關(guān)注
5152文章
19675瀏覽量
317607 -
cpu
+關(guān)注
關(guān)注
68文章
11080瀏覽量
217106
發(fā)布評論請先 登錄
Linux嵌入式和單片機嵌入式的區(qū)別?
如何提高嵌入式代碼質(zhì)量?
飛凌嵌入式T527核心板已適配Forlinx Desktop 22.04

嵌入式系統(tǒng)開發(fā)與硬件的關(guān)系 嵌入式系統(tǒng)開發(fā)常見問題解決
嵌入式學習建議
【「嵌入式Hypervisor:架構(gòu)、原理與應用」閱讀體驗】+全文學習心得
【「嵌入式Hypervisor:架構(gòu)、原理與應用」閱讀體驗】+第7-8章學習心得
【「嵌入式Hypervisor:架構(gòu)、原理與應用」閱讀體驗】+第三四章閱讀報告
【「嵌入式Hypervisor:架構(gòu)、原理與應用」閱讀體驗】+第一二章讀后感
嵌入式Hypervisor:架構(gòu)、原理與應用 閱讀體驗 +Hypervisor基礎概念

評論