多核系統(tǒng)、虛擬機監(jiān)控程序和多核框架
時間:2023-06-27 23:21:02 | 來源:網(wǎng)站運營
時間:2023-06-27 23:21:02 來源:網(wǎng)站運營
多核系統(tǒng)、虛擬機監(jiān)控程序和多核框架:在嵌入式開發(fā)中,多核嵌入式系統(tǒng)的軟件可能非常復雜。一個經(jīng)常討論的主題是如何在每個核心上實現(xiàn)代碼,從而使其得到最佳利用。在這篇短文中,有一個不同的視角:關注可以跨多個核心運行的軟件。
多核硬件體系結構從硬件的角度來看,多核設備大致有兩種類型:同質(zhì)多核(其中有多個相同類型的核)和異質(zhì)多核(其中核的類型不同)。異構設備可以包括一些相同的核心。
要跨多個內(nèi)核運行單個軟件,內(nèi)核必須相同(無論如何,從指令集的角度來看)。因此,需要一個同質(zhì)多核設備或異質(zhì)設備中的同質(zhì)“島”。
對稱多處理構建多核系統(tǒng)的一個原因是以節(jié)能的方式最大化計算能力。這是個人電腦設計師所采取的方法;多核處理器在筆記本電腦和臺式機系統(tǒng)中幾乎無處不在。嵌入式開發(fā)人員可能有同樣的目標。最好的方法是使用支持對稱多處理(SMP)的操作系統(tǒng)。
SMP操作系統(tǒng)將進程分布在可用的內(nèi)核上。這通常是自動的,但嵌入式開發(fā)人員可能需要執(zhí)行一些控制,并可能將某些應用程序鎖定到特定的核心。進程不“知道”它們正在不同的內(nèi)核上運行;操作系統(tǒng)提供它們之間的通信和同步。多種實時操作系統(tǒng)(RTOS)的SMP版本可用;Linux還提供SMP變體。
管理程序盡管嵌入式SMP操作系統(tǒng)提供了某種程度的控制,但嵌入式開發(fā)人員通常希望確保資源分配完全按照他們的喜好進行配置。因此,另一種選擇是使用自己的操作系統(tǒng)實例配置每個核心,并且所有核心不必運行相同的操作系統(tǒng)和應用程序代碼。然后,在所有可以控制其操作(引導順序等)并提供內(nèi)核間(或操作系統(tǒng)間)通信的內(nèi)核上運行虛擬機監(jiān)控程序。
要獲得更大的靈活性到目前為止,我們已經(jīng)通過從系統(tǒng)中的單個(SMP)操作系統(tǒng)轉移到多個可能不同的操作系統(tǒng)實例來提高靈活性。但是,如果需要更大的靈活性,需要使用不同體系結構的核心,該怎么辦?這取消了跨多核運行代碼的選項–SMP操作系統(tǒng)或虛擬機監(jiān)控程序都需要一個同構的多核環(huán)境。但是,還有另一種選擇:在每個核心上運行多核框架(可能是基于OpenAMP的產(chǎn)品)。這種方法提供了核心間通信和生命周期管理。此外,可以選擇在“裸機”(即沒有操作系統(tǒng))上運行應用程序。
結論 在多核嵌入式系統(tǒng)上開發(fā)軟件是一項復雜的任務。嵌入式開發(fā)人員有必要考慮一些選項——相對簡單性和完全靈活性之間的權衡。