盡管多核已經(jīng)是與應(yīng)用處理器和基于FPGA的應(yīng)用首要相關(guān)的技術(shù)趨勢,但對(duì)于深度嵌入式應(yīng)用的開發(fā)者而言,這一趨勢背后的真正好處或許并不十分明顯。在本篇文章中,我們將通過幾個(gè)應(yīng)用案例探討多核微控制器相比傳統(tǒng)單核微控制器帶來的優(yōu)勢,文章結(jié)尾將介紹一個(gè)實(shí)際的已經(jīng)實(shí)現(xiàn)的方案。
首先也可能是最常見的一個(gè)使用案例,是用多核微控制器將應(yīng)用程序分成幾塊實(shí)時(shí)的應(yīng)用程序域。在這些應(yīng)用程序中,開發(fā)人員可能會(huì)有不同組且相互沖突的實(shí)時(shí)需求。例如,在PMSM電機(jī)控制應(yīng)用中,功率因數(shù)校正(PFC)環(huán)路需要與電機(jī)控制環(huán)路同時(shí)執(zhí)行。物聯(lián)網(wǎng)設(shè)備可能需要對(duì)大量傳感器進(jìn)行采樣,同時(shí)通過千兆網(wǎng)絡(luò)鏈路傳輸信息,這將導(dǎo)致通信連接協(xié)議棧與傳感器采集任務(wù)之間的沖突。直接解決這些情況的辦法是將一個(gè)任務(wù)放在一個(gè)內(nèi)核中,另一個(gè)任務(wù)放在另一個(gè)內(nèi)核中。
第二個(gè)使用案例經(jīng)常出現(xiàn)在功能性安全應(yīng)用程序中,即用相同的兩個(gè)處理器并行運(yùn)行同一組操作,通過檢測裝置比較兩組結(jié)果,以識(shí)別故障。
第三個(gè)使用案例在安全應(yīng)用方面。對(duì)于單核微控制器,開發(fā)人員使用ARM Trustzone來創(chuàng)建基于硬件的隔離。轉(zhuǎn)換需要長達(dá)三個(gè)時(shí)鐘周期的時(shí)間來切換執(zhí)行域,從而會(huì)導(dǎo)致不必要的延遲。對(duì)于多核微控制器,工程師可以將一個(gè)內(nèi)核專用于安全處理環(huán)境,將另一個(gè)內(nèi)核專用于非安全的處理環(huán)境,無需來回切換。
AI人工智能正變得越來越流行,實(shí)時(shí)控制應(yīng)用也不例外。機(jī)器學(xué)習(xí)推理通常需要大量計(jì)算,所以在實(shí)時(shí)控制應(yīng)用中,較為可取的做法是將實(shí)時(shí)控制和機(jī)器學(xué)習(xí)分離到不同的處理內(nèi)核。
任務(wù)分割及實(shí)時(shí)的簡化
使用多核微控制器的主要優(yōu)勢在于,它可以通過分離關(guān)注點(diǎn)或應(yīng)用程序域來分解應(yīng)用代碼。目前有三類主要的應(yīng)用領(lǐng)域,可適用于大多數(shù)程序,但肯定還有其他的。這三類領(lǐng)域包括:實(shí)時(shí)執(zhí)行;連接性(Ethercat/Profinet等);安全/非安全。
在實(shí)時(shí)實(shí)現(xiàn)方案中,應(yīng)用程序根據(jù)其時(shí)序要求被分成兩個(gè)域。支持豐富執(zhí)行功能(如圖形用戶界面)的組件將位于一個(gè)內(nèi)核中(可能是Cortex-M4/M7);支持實(shí)時(shí)需求(如傳感器采集和控制)的組件將位于第二個(gè)內(nèi)核(可能是Cortex-M3/M4)。
在安全/非安全實(shí)現(xiàn)方案中,應(yīng)用程序不是根據(jù)其執(zhí)行需求,而是出于安全考慮進(jìn)行分解。支持安全啟動(dòng)、加密庫、安全通信或其他安全功能的組件將在一個(gè)處理器(如 Cortex-M0+/M3/M4)上執(zhí)行。同樣,一般應(yīng)用組件將在另一個(gè)處理器(如 Cortex-M4/M7)上執(zhí)行。這種實(shí)施方式的主要好處是Cortex-M0+/M3/M4可作為安全處理器和執(zhí)行環(huán)境,與應(yīng)用程序的其他部分進(jìn)行硬件隔離。
在應(yīng)用/通信實(shí)現(xiàn)方案中,有一個(gè)內(nèi)核專門用于處理通信協(xié)議棧。該協(xié)議棧可以是Wi-Fi協(xié)議棧、藍(lán)牙協(xié)議棧、EtherCat協(xié)議?;蚱渌ㄐ艆f(xié)議棧,甚至可以是多種協(xié)議棧的組合。這樣做的好處是可以使微控制器集成通信功能。第二個(gè)內(nèi)核則專門用于正常的應(yīng)用代碼。
如你所見,使用多核微控制器在這幾個(gè)實(shí)施方案中具有重要意義,在某些實(shí)例中甚至可以使用兩個(gè)以上的內(nèi)核。
使用多核微控制器的第三個(gè)也是最后一個(gè)優(yōu)勢,是它能讓開發(fā)團(tuán)隊(duì)分配工作負(fù)載。這里實(shí)際上意味著兩件事。首先,我們可以將開發(fā)和維護(hù)應(yīng)用程序的工作負(fù)載分配給多個(gè)開發(fā)人員或團(tuán)隊(duì)。我們可以有一個(gè)內(nèi)核一應(yīng)用團(tuán)隊(duì),和一個(gè)內(nèi)核二應(yīng)用團(tuán)隊(duì),每個(gè)團(tuán)隊(duì)專注于各自內(nèi)核的應(yīng)用組件,并與另一個(gè)團(tuán)隊(duì)就可能存在重疊或需要仔細(xì)協(xié)調(diào)內(nèi)核間應(yīng)用行為的領(lǐng)域進(jìn)行互動(dòng)。
很顯然,分配工作負(fù)載的第二種方式,就是將應(yīng)用程序工作負(fù)載分配給多個(gè)處理器。由于擁有多個(gè)內(nèi)核,我們可以得到真正的并發(fā)應(yīng)用行為。但不要忘記,就像在使用RTOS的并發(fā)應(yīng)用程序中一樣,使用多核并發(fā)時(shí),我們會(huì)遇到有趣的競爭條件,定時(shí)問題,共享資源問題和其他并發(fā)行為問題。在分離內(nèi)核間的工作負(fù)載時(shí),必須非常謹(jǐn)慎地使用處理器間的通信方法。
實(shí)際應(yīng)用案例:空調(diào)室外機(jī)中的SPC2188
SPC2188是一款先進(jìn)的微控制器(MCU),配備雙32位ARM Cortex-M4F內(nèi)核,專為需要高效多任務(wù)處理能力的復(fù)雜應(yīng)用而設(shè)計(jì)。SPC2188每個(gè)內(nèi)核的最高工作頻率為240MHz,SRAM容量高達(dá)384KB,具有ECC(糾錯(cuò)碼)保護(hù)功能,為管理實(shí)時(shí)應(yīng)用中的復(fù)雜任務(wù)提供了強(qiáng)大的平臺(tái)(如空調(diào)室外機(jī)中的任務(wù))。
空調(diào)室外機(jī)的高效運(yùn)行需要精確的控制機(jī)制,以便應(yīng)對(duì)實(shí)時(shí)變化。這些設(shè)備需要調(diào)整電機(jī)速度,保持功率因數(shù),并管理熱輸出,同時(shí)最小化噪聲和振動(dòng)。SPC2188雙核MCU采用了專門的任務(wù)分配方法來滿足這些需求,保證了高效率和響應(yīng)性。
眾所周知,PFC在這類應(yīng)用中是一個(gè)關(guān)鍵功能,需要迅速和連續(xù)的計(jì)算,以優(yōu)化能源使用和保持電力效率。PFC的實(shí)時(shí)性以及對(duì)高速、重復(fù)計(jì)算的需求,就決定了要使用SPC2188的一個(gè)內(nèi)核,即CPU0。該內(nèi)核是專門分配給PFC的,因?yàn)樗軌蛑苯訌腞AM執(zhí)行指令,促進(jìn)快速計(jì)算吞吐量,這對(duì)維持高于40kHz的中斷頻率至關(guān)重要。
SPC2188的另一個(gè)內(nèi)核被指定為CPU1,用于管理主控系統(tǒng)和室外機(jī)的組成部件——壓縮機(jī)和風(fēng)機(jī)。這種劃分確保了CPU0專注于要求苛刻的PFC時(shí),CPU1可以有效地監(jiān)督該單元的主要功能。它可以調(diào)節(jié)壓縮機(jī)和風(fēng)扇的電流和速度回路,并根據(jù)工作頻率(風(fēng)扇為10khz,壓縮機(jī)為6kHz)進(jìn)行調(diào)整,經(jīng)過精心選擇,可以在性能與噪音和熱管理方面取得平衡。
一個(gè)精巧的郵箱通信系統(tǒng)對(duì)CPU的同步操作至關(guān)重要。SPC2188確保精確和及時(shí)地進(jìn)行控制調(diào)整,從而保持系統(tǒng)對(duì)環(huán)境和操作變量的實(shí)時(shí)響應(yīng)。
SPC2188 MCU充分體現(xiàn)了專用內(nèi)核分配的潛力,可滿足空調(diào)室外機(jī)的不同功能要求。通過將CPU0專注于PFC的高實(shí)時(shí)性要求,CPU1專注于壓縮機(jī)和風(fēng)扇的總體控制,MCU在效率和響應(yīng)速度之間實(shí)現(xiàn)了絕妙的平衡。這種戰(zhàn)略性任務(wù)分配凸顯了多核MCU在復(fù)雜電機(jī)控制應(yīng)用中的能力,為實(shí)現(xiàn)更智能、更節(jié)能的電機(jī)控制解決方案鋪平了道路。
多核微控制器無疑為開發(fā)團(tuán)隊(duì)提供了諸多優(yōu)勢,可幫助他們解決日益復(fù)雜的系統(tǒng)問題。將應(yīng)用程序分為不同關(guān)注區(qū)域或應(yīng)用程序域的能力,是目前采用多核微控制器的主要驅(qū)動(dòng)因素。在考慮采用多核解決方案時(shí),平衡性能與能耗以及分配工作負(fù)載的能力也是重要優(yōu)勢。雖然目前市場上只有少數(shù)幾種多核微控制器,但在未來十年間,我們無疑會(huì)發(fā)現(xiàn)它們?cè)絹碓蕉嗟爻霈F(xiàn)在我們的設(shè)計(jì)中。