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