隨著越來越多的嵌入式系統設計有多個 CPU(最常見的是芯片上的多個內核),多核設計仍然是一個熱門話題。理解多核的一個挑戰是該術語被廣泛用于描述許多設計方法和架構。需要一些明確性。
弄清楚術語是第一個挑戰。..。..
“多核”一詞讓許多人想到臺式電腦、平板電腦、智能手機等中使用的微處理器芯片。這些設備由許多(有時是大量!)相同的 CPU 構成,它們提供了巨大的計算能力和運行并行算法的機會,這對某些應用程序非常有益。這些設備被正確地稱為“同質多核”,因為所有 CPU 都是相同的。該軟件的架構是對稱多處理 (SMP),它是通過在所有 CPU 上運行操作系統(Windows、Linux 或 MacOS)來實現的。(使用操作系統的單個副本。)
在嵌入式系統中,SMP 也占有一席之地。它用于需要在經濟和節能配置中提供大量計算能力的地方。因此,可以使用許多實時操作系統的 SMP 版本。
可以預見,同構的替代多核架構是異構的,其中各種內核具有不同的架構。這對嵌入式系統開發人員很有吸引力,因為 CPU 可以部署到應用程序中最適合它們的部分。這種系統的軟件架構必然是非對稱多處理 (AMP),其中每個 CPU 運行自己的操作系統(或者可能根本沒有操作系統)。這意味著可以酌情為每個 CPU 部署不同的操作系統。例如,一些 CPU 可能運行 RTOS,而其他 CPU,考慮到不需要實時行為,可能運行 Linux。
多核設計的一些其他方面:
如果需要,您可以在同構多核設備上實施 AMP。
在復雜的系統中,可能存在 SMP 和 AMP 的組合。由于運行 SMP 的 CPU 集群看起來有點像單個 CPU,因此它可以是 AMP 系統的一部分。
AMP 設計方法提供了以各種方式對軟件進行細分的絕佳機會。不僅實時軟件和其他軟件可以分離,而且安全關鍵軟件組件可以很容易地與其他軟件子系統分離(和保護)。
SMP 系統中的 CPU 間通信由 OS 提供;可以使用正常的任務間通信。對于 AMP 系統,需要選擇合適的機制和協議。
多核系統設計具有挑戰性,我認為有兩個方面特別麻煩:
配置——構建一個系統涉及到讓所有部分——操作系統、內核間通信等——很好地協同工作。隨著內核的種類越來越廣泛,這一挑戰變得越來越關鍵。一個好的方法是考慮一些異構多核基礎設施軟件——一個框架或管理程序——它提供了經過充分驗證的“粘合劑”。
調試——通常,調試比編碼花費更多的時間(即使開發人員會否認這一點!)。如果您使用 RTOS,調試多線程代碼很困難,因為顯然同時執行的線程之間的交互是微妙的。在具有真正同時性的多核系統中,情況只會變得更糟。傳統的“停止和凝視”調試不會破解它。需要更復雜的工具來捕獲完整系統的操作并使開發人員能夠根據需要放大以查看細節。
毫無疑問,多核將很快從普遍走向無處不在。設計和開發挑戰仍將存在,需要認識到思考和解決問題的新方法。
審核編輯:郭婷
-
嵌入式
+關注
關注
5087文章
19148瀏覽量
306194 -
Linux
+關注
關注
87文章
11322瀏覽量
209869 -
WINDOWS
+關注
關注
4文章
3551瀏覽量
88923
發布評論請先 登錄
相關推薦
評論