多核嵌入式系統的軟件可能非常復雜。一個經常討論的主題是如何在每個內核上實現代碼,以便最佳地利用它。在這篇簡短的文章中,有一個不同的觀點:關注可以跨多個內核運行的軟件。
多核硬件架構
從硬件的角度來看,多核設備大致有兩種類型:同構多核,其中有多個相同類型的內核,以及異構多核,其中內核是不同類型的。異構設備可能包括一些相同的內核。
要跨多個內核運行單個軟件,內核必須相同(無論如何從指令集的角度來看)。因此,需要一個同質的多核設備或異構設備中的同質“孤島”。
對稱多處理
構建多核系統的一個原因是以節能的方式最大化計算能力。這是個人電腦設計者采用的方法;多核處理器在筆記本電腦和臺式機系統中幾乎無處不在。嵌入式開發人員可能有相同的目標。最好的方法是使用支持對稱多處理 (SMP) 的操作系統。
SMP OS 將進程分布在可用內核上。這通常是自動的,但嵌入式開發人員可能需要進行一些控制,并可能將某些應用程序鎖定到特定內核。這些進程并不“知道”它們在不同的內核上運行;操作系統提供它們之間的通信和同步。提供多個實時操作系統 (RTOS) 的 SMP 版本;Linux 還提供 SMP 變體。
管理程序
盡管嵌入式 SMP OS 提供了某種程度的控制,但嵌入式開發人員通常希望確保資源的分配完全符合他們的喜好。因此,另一種選擇是為每個內核配置自己的操作系統實例——所有內核不必運行相同的操作系統——和應用程序代碼。然后,在所有可以控制其操作(引導順序等)并提供內核間(或操作系統間)通信的內核上運行管理程序。
為了獲得更大的靈活性……
到目前為止,我們通過從系統中的單個 (SMP) 操作系統遷移到多個可能不同的操作系統實例來提高靈活性。但是,如果需要更大的靈活性而需要使用不同架構的內核呢?這消除了跨多個內核運行代碼的選項——SMP OS 或管理程序都需要同構多核環境。但是,還有另一種選擇:在每個內核上運行一個多核框架(可能是基于 OpenAMP 的產品)。這種方法提供內核間通信和生命周期管理。此外,還可以選擇在“裸機”(即沒有操作系統)上運行應用程序。
結論
在多核嵌入式系統上開發軟件是一項復雜的工作。了解一些選項至關重要——在相對簡單性和完全靈活性之間進行權衡。
審核編輯:湯梓紅
-
嵌入式系統
+關注
關注
41文章
3672瀏覽量
131111 -
內核
+關注
關注
3文章
1414瀏覽量
41227 -
多核系統
+關注
關注
0文章
11瀏覽量
7574
發布評論請先 登錄
嵌入式開發:高門檻的系統性工程與 996 的行業困局

IAR分析嵌入式系統的市場前景
嵌入式開發必備-RK3562演示Linux常用系統查詢命令(上)觸覺智能出品

評論