無論軟件開發人員喜不喜歡,也不管他們是否為此做好準備,幾乎每個稱職的半導體制造商都在生產多核片上系統 (SoC)。這些 SoC 通常將兩個或更多 CPU 內核與額外的特定應用硬件加速器配對,以提供完整的系統。例如,Cavium Networks、NetLogic Microsystems 和 Freescale Semiconductor 生產用于網絡處理的 SoC,而德州儀器和 Broadcom 則生產用于數字媒體設備的 SoC。
對于軟件人員來說,這提出了一個有趣的挑戰,即使應用程序能夠從這些多核 SoC 環境中獲得所有可用的處理能力。開發人員如何確保他們的應用程序與可用內核線性擴展,并充分利用媒體加速器和數據包引擎等其他 SoC 硬件組件?需要明確的是,對于許多應用程序來說,可擴展性問題仍然是一個真正的科學項目。然而,有一些系統要構建和產品要發布,所以開發人員不能等待理論上完美的解決方案。
在過去的一年中,MontaVista Software 研究了廣泛的應用程序中的大量客戶用例,包括網絡處理、數字電視、車載信息娛樂、超低功耗服務器 Web 托管等。目標是了解基于 Linux 的軟件解決方案如何在廣泛的應用需求中充分利用底層 SoC 硬件。該研究確定了任何解決方案都必須滿足的以下高級要求。
多核支持
現代嵌入式系統的需求正在加速采用多核 SoC。同時運行多個系統的要求進一步強調了這些要求;因此,該解決方案必須提供一種使用和管理多核環境的有效方式。
安全
根據定義,下載到設備的任何內容都是不安全的。該解決方案必須有效隔離從核心設備功能下載的任何內容,并且不得允許下載的應用程序污染其他應用程序。
資源擁塞
必須防止下載的應用程序占用系統資源。目標是有效地共享內存、CPU 時間和 I/O 等資源。這種共享必須允許更重要的系統功能優先于不太重要的下載應用程序。
國外系統集成
許多環境運行在 Linux 內核之上。但是,這些環境可能需要不同的用戶空間庫以及不同的內核補丁。例如,Android 系統有自己的設備驅動程序和內核補丁。理想情況下,系統可以運行在 Linux 內核上運行的任何用戶空間。與這些環境相關的內核補丁和用戶空間必須與安全性和資源共享相結合。
這種分析促成了基于 Linux 的架構的開發,該架構最大限度地發揮了當今強大的多核 SoC 的底層功能。
架構概述
要了解該軟件的整體架構,有必要了解一些現代操作系統 (OS) 環境,尤其是虛擬化技術。但小心點; 圍繞虛擬化有很多炒作(或者,正如我們喜歡說的,圍繞虛擬機管理程序有很多炒作)。
虛擬化是一種將計算機資源劃分為多個執行環境的方法。目前使用的虛擬化主要分為三大類,它們之間的主要區別在于發生虛擬化的層:
全虛擬化和半虛擬化:這些類型的虛擬化用于托管多個相互隔離的客戶操作系統。雖然功能強大,但由于管理程序和多個操作系統的開銷,性能(沒有大量優化)非常低。示例包括 QEMU、基于內核的虛擬機 (KVM)、Zen 和 VMware。
操作系統資源虛擬化:這種類型的虛擬化用于隔離和擴展使用單個操作系統的應用程序。這里的優勢是單一操作系統和較低的開銷,在大多數情況下通常不到 1%。因為開銷很小,所以擴展和/或優化性能的能力是一個巨大的好處。示例包括 Linux 容器和 BDS Jails。
硬件分段(非對稱多處理或 AMP):這種高性能配置將硬件專用于在用戶模式下運行的特定應用程序,以獲得最佳性能。這可以通過使用簡單的運行時執行程序或利用操作系統資源虛擬化和處理器內核關聯功能將內核和 I/O 專用于進程而幾乎沒有開銷來實現。
這些類型的虛擬化提供不同的性能特征,需要不同的設置和維護開銷,將獨特級別的復雜性引入運行時環境,并解決不同的問題。
雖然業界目前專注于推動完全虛擬化的管理程序作為多核優化的萬能解決方案,但現實情況是嵌入式開發人員需要一系列可針對特定應用程序需求量身定制的選項。開發人員將需要一種或多種這些虛擬化技術的某種組合,以提供符合硬件限制并滿足設計性能特征的產品。簡而言之,訣竅是將應用程序與正確的操作系統服務相匹配,以滿足整體系統要求,包括性能、可靠性和安全性。
MontaVista 提供三種基于非專有、開源 Linux 技術的虛擬化方法,并支持多處理器架構。因為它是單個運行時,所以有一個編譯器和一組工具可用于任何用例或用例組合。圖 1 顯示了這種方法的總體情況。這三種方法是:
KVM Hypervisor(完全虛擬化)
Linux 容器(操作系統資源虛擬化)
MontaVista Bare Metal Engine(操作系統資源虛擬化和 SoC 硬件分割)
圖 1:一個編譯器和一組工具可用于任何用例或使用 MontaVista 的三種虛擬化方法的組合。
微服務器用例
微服務器背后的想法是利用更小、更節能的處理器來降低一類以 Web 為中心的 IT 應用程序的物理和能源消耗足跡。對于某些工作負載,幾個低功耗處理器可能比更少、更強大的處理器更高效。Cavium Octeon 處理器和其他半導體供應商的處理器非常適合在內核本身的功率效率的基礎上滿足微服務器概念的密度和功率效率要求。這些 SoC 還包括專用硬件來處理基于 Web 的應用程序所需的前端安全和加密/解密處理。
從軟件的角度來看,MontaVista Linux Containers 和 Bare Metal Engine 技術有助于完成這幅畫。容器用于提供操作系統級別的虛擬化,允許對工作負載要求進行非常有效的虛擬化。例如,容器可用于托管數千個獨立網站,每個網站彼此安全隔離。容器允許精確控制分配給每個容器的運行時資源,因此每個網站都可以限制在客戶購買的性能水平上。或者,更重要的是,可以使用相同的機制阻止流氓網站過度消耗資源,從而阻止拒絕服務類型的攻擊。
Bare Metal Engine 為每個托管網站所需的安全和加密/解密操作提供運行時環境。例如,一個 32 核的 SoC 可以利用大部分核心進行應用程序處理,而少數專用于數據包處理,所有這些都由一個 Linux 實例控制。
Linux 提供了一個簡單的解決方案
人們普遍認為,必須利用 Linux 與實時操作系統 (RTOS) 或簡單的運行時環境的組合來充分實現多核處理器的高性能。助長這種誤解的想法是,Linux 本身無法滿足要求,因為它太大、太慢且不是實時的。這種謬誤還推動了管理程序和/或虛擬化必須調解和隔離不同的運行時環境并促進它們之間的相互通信的要求。通常是 RTOS 供應商自己使這種錯誤信念永久化。
最后,這些對 Linux 驅動器的誤解增加了開發過程的復雜性和成本。由于多個運行時和開發環境(Linux、RTOS 和可能的管理程序各一個),復雜性增加。由于專有 RTOS 和虛擬機管理程序的特許權使用費,成本增加,更不用說開發復雜性本身帶來的額外成本,需要更多的開發人員在更長的時間內。
在任何地方都使用 Linux 并在可能無法滿足某些要求的地方對其進行修復的方法會產生單一的操作系統環境、單一的工具鏈以及適用于應用程序所有方面的通用開發和調試工具。正如愛因斯坦所說,“讓一切盡可能簡單,但不要簡單。”
作者:Jim Ready,Patrick MacCartee
審核編輯:郭婷
-
驅動器
+關注
關注
53文章
8272瀏覽量
147075 -
Linux
+關注
關注
87文章
11345瀏覽量
210418 -
RTOS
+關注
關注
22文章
819瀏覽量
119890
發布評論請先 登錄
相關推薦
EE-19:最大化DSP-21xx系列DSP(不包括ADSP-218x)的引導內存效率
![EE-19:<b class='flag-5'>最大化</b>DSP-21xx系列DSP(不包括ADSP-218x)的引導內存效率](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
EE-365:在ADSP-CM40x混合信號控制處理器上實現ADC采樣速率最大化
![EE-365:在ADSP-CM40x混合信號控制處理器上實現ADC采樣速率<b class='flag-5'>最大化</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
璟豐機電丨派克parker江蘇代理,攜手打造工業自動化巔峰性能
![璟豐機電丨派克parker江蘇代理,攜手打造工業自動<b class='flag-5'>化</b>巔峰<b class='flag-5'>性能</b>](https://file1.elecfans.com/web3/M00/01/B7/wKgZPGdX01iAeAywAABx8lfPbHs420.png)
光伏發電如何實現能效最大化
如何優化SOC芯片性能
![](https://file1.elecfans.com/web1/M00/F3/09/wKgaoWcPcc6AMVeHAAVbJfpXwfo413.jpg)
擴展塢使用技巧:如何最大化你的筆記本電腦接口能力
液冷充電槍線最大化提高充電效率
CPU單核性能與多核性能的區別
66AK2Hxx多核DSP+ARM? KeyStone II片上系統(SoC)數據表
![66AK2Hxx<b class='flag-5'>多核</b>DSP+ARM? KeyStone II片上系統(<b class='flag-5'>SoC</b>)數據表](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
使用OpenUSD和NVIDIA Omniverse開發虛擬工廠解決方案
![使用OpenUSD和NVIDIA Omniverse開發<b class='flag-5'>虛擬</b>工廠解決方案](https://file1.elecfans.com/web2/M00/E9/E1/wKgZomZVrk6AS-ktAAAiaOvgNQc807.png)
統信UOS專業版桌面操作系統V20發布,優化設計、智能化及操作
risc-v多核芯片在AI方面的應用
超級電容怎樣充電好
PCB設計優化指南:如何最大化EMC性能效果?
![PCB設計優化指南:如何<b class='flag-5'>最大化</b>EMC<b class='flag-5'>性能</b>效果?](https://file1.elecfans.com/web2/M00/C8/4C/wKgaomYTjhSAYmvSAAAlK6QX7Ws630.png)
評論