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