多核微控制器開始在嵌入式系統(tǒng)設計人員中流行起來。設計人員可以通過將其應用程序分解為單獨的應用程序(執(zhí)行)域來利用多個內核。然后,每個域都有一個專用的功能在系統(tǒng)中完成。在嵌入式開發(fā)中,雖然多核已在安全關鍵型應用中使用了一段時間,但隨著多核微控制器成本的降低和可用性的提高,我發(fā)現(xiàn)還有幾個其他用例正變得越來越流行。在這篇文章中,我們將研究三個最常見的用例。
用例 #1 – 實時控制
第一個,也許是最流行的用例,是使用多核微控制器將應用程序分成兩個獨立的實時應用程序域。在這些應用程序中,開發(fā)人員可能有兩組相互競爭的實時需求。例如,物聯(lián)網(wǎng)設備可能需要對一組傳感器進行采樣,同時將傳感器數(shù)據(jù)傳輸?shù)皆贫恕k姵毓╇姷脑O備會嘗試最小化
CPU 功率,這可能會導致連接堆棧和傳感器采集任務之間發(fā)生沖突。一種潛在的解決方案是將連接性放在一個核心中,而傳感器和其他活動則在另一個核心中執(zhí)行。(這就是
ESP32 模塊所做的)。
用例 #2 – 基于硬件的安全隔離
第二個也是我最喜歡的多核微控制器用例之一是在安全應用中。開發(fā)安全應用程序的一種租戶是具有基于硬件的隔離。這個想法是有兩個執(zhí)行域:安全處理環(huán)境(SPE)和非安全處理環(huán)境(NSPE)。
一些單核微控制器使用 Arm TrustZone?
來創(chuàng)建基于硬件的隔離。轉換確實使用最多三個時鐘周期來切換執(zhí)行域。在嵌入式開發(fā)中,多核處理器的酷炫之處在于,您可以將一個核心專用于 SPE,而將另一個核心專用于
NSPE。無需在執(zhí)行域之間來回切換,因為每個內核都是一個專用的執(zhí)行域!這也允許 NSPE 和 SPE
并行運行。加密操作可以在為用戶更新顯示的同時運行。
目前,這可能是多核微控制器最有效的用例,盡管毫無疑問還有許多其他的越來越受歡迎。
用例#3——機器學習和實時控制
我們今天將討論的多核微控制器的最終用例是將機器學習推理與實時控制應用程序域分開。
就像實時用例一樣,我們希望將實時應用程序的各個部分單獨保存在一個核心中,以便它們能夠滿足他們的實時要求。然后,我們可以在另一個內核中運行機器學習推理,這通常是
CPU 密集型操作。
隨著機器學習進入更多嵌入式應用程序,將嵌入式應用程序分解為多個應用程序域并跨多個內核運行這些應用程序將變得更加重要。
結論
對于嵌入式系統(tǒng)開發(fā)人員面臨的許多設計問題,利用多核微控制器是一個令人興奮的解決方案。
該解決方案允許開發(fā)人員將他們的應用程序分解為多個獨立運行但仍共享數(shù)據(jù)和資源的應用程序域。 因此,可以使用多個內核來改善設備能耗并最大限度地利用片上資源。
眾多的應用程序域也使分解問題變得更容易,并允許多個團隊或嵌入式開發(fā)人員同時處理應用程序。