嵌入式系統(tǒng)設(shè)計人員面臨著對更高性能和更快上市時間的不斷增長的需求。嵌入式處理器需要經(jīng)常實時地執(zhí)行不斷擴展的任務(wù)。同時,應(yīng)用需要高吞吐量和高能效以及小外形和低成本。多核微控制器單元(MCU)提供了一種可行的新解決方案,利用模塊化設(shè)計以經(jīng)濟的價格提供多倍的性能提升。
幾十年來,隨著IC上晶體管數(shù)量的增加,芯片性能不斷提高。采用高速緩存和流水線等技術(shù)的更復(fù)雜的架構(gòu)允許芯片設(shè)計人員使用不斷增加的硅密度來不斷提高處理速度。這已不再是這種情況。芯片設(shè)計人員已經(jīng)耗盡了替代架構(gòu)的可能性。生產(chǎn)力的增長已經(jīng)從跟上摩爾定律的速度下降到不到一半。當(dāng)今提高生產(chǎn)力的唯一方法是通過使用多個CPU來利用模塊化。這導(dǎo)致了多核MCU的發(fā)展。
硬件:同構(gòu)與異構(gòu)
我們將多核MCU定義為具有兩個或多個CPU的微處理器,這些CPU一致地共享一個公共存儲器。在多核架構(gòu)中,每個處理器都有自己的指令流作用于自己的數(shù)據(jù)流(MIMD)。
多核MCU可以歸類為同構(gòu)或異構(gòu)。顧名思義,同類模塊具有兩個相同的CPU,可以并行或冗余地運行操作。德州儀器(TI)的Hercules系列產(chǎn)品專為安全應(yīng)用而設(shè)計,擁有兩個同步運行的ARM Cortex-R4F CPU。它們執(zhí)行相同的操作,然后比較每個時鐘周期的結(jié)果,有效地建立一個“安全島”,為設(shè)計人員提供可靠的基礎(chǔ),以在醫(yī)療,工業(yè)和汽車應(yīng)用中實施更復(fù)雜的操作。為了消除潛在的常見故障模式,設(shè)計團隊將芯片組定向為彼此90°,并引入了處理器時序的延遲。該芯片可在高達200 MHz的頻率下運行,并可運行32 MB的閃存。
對于具有特殊要求的應(yīng)用 - 例如,計算密集型操作或大量信號處理 - 異構(gòu)MCU可以提供更好的解決方案。異構(gòu)MCU包含不同類型的處理器。它可能具有通用CPU以及數(shù)字信號處理器(DSP)和/或?qū)S糜诟↑c運算的處理器。例如,TI的Concerto異構(gòu)多核MCU結(jié)合了C28x 32位CPU和ARM Cortex M3 32位CPU來優(yōu)化子系統(tǒng)(圖1)。 C28管理控制子系統(tǒng),提供高達150 MHz的浮點運算。同時,ARM Cortex處理通信,邏輯和排序/監(jiān)控,速度高達100 MHz。 MCU在閃存和RAM上都集成了錯誤檢測功能,以及帶有多個系統(tǒng)看門狗的內(nèi)置時鐘監(jiān)控功能。
圖1:異構(gòu)多核MCU,如Concerto包含不同的內(nèi)核,可為每項任務(wù)提供最佳解決方案。
真正的多核MCU需要的不僅僅是具有共享內(nèi)存的多個內(nèi)核。為了實現(xiàn)有效的并行處理,架構(gòu)必須確保每個CPU都在最新的可能數(shù)據(jù)上運行。在雙核MCU中,每個CPU都有一個專用的I(L1)高速緩存,但所有CPU共享一個2級(L2)高速緩存(圖2)。挑戰(zhàn)在于確保如果CPU1更新其L1緩存中的變量,CPU2將使用正確的信息,而不是其L1緩存先前從L2緩存中獲取的舊數(shù)據(jù)。設(shè)計通常使用各種名稱已知的硬件監(jiān)視器來完成此操作,包括一致性模塊或簡單地說是窺探器。例如,當(dāng)CPU 1將變量保存到其L1高速緩存時,一致性模塊注冊該更改并使CPU2的L1高速緩存中的數(shù)據(jù)無效。當(dāng)CPU2嘗試訪問該位置時,它無法并且必須轉(zhuǎn)到L2緩存以獲取新數(shù)據(jù)。
圖2:來自飛思卡爾的QorIQ系列功能一個一致性模塊,用于監(jiān)控每個CPU的I級緩存的更改,以確保每個核心都運行最新的數(shù)據(jù)。
飛思卡爾半導(dǎo)體的QorIQ P2平臺系列通信處理器基于雙e500 Power Architecture內(nèi)核,每個CPU具有雙32 KB L1高速緩存,另外還有256 KB二級高速緩存。用戶可以選擇在兩個內(nèi)核之間對L2緩存進行分區(qū),也可以將其配置為存儲內(nèi)存或SRAM。 P2020評估板,名為P2020COME-DS-PB-ND,使工程師能夠熟悉飛思卡爾雙核MCU的復(fù)雜性。 Digi-Key網(wǎng)站還提供雙核QorIQ產(chǎn)品的產(chǎn)品培訓(xùn)模塊。
功能并行與數(shù)據(jù)并行
硬件只是一個開始。多核MCU的最大好處是程序員可以利用軟件最大限度地提高工作效率的方式。有多種方法可以編程多核MCU。在對稱多處理(SMP)中,也許是最常見的方法,所有CPU都可以訪問公共內(nèi)存空間并由單個操作系統(tǒng)運行。 CPU通過共享內(nèi)存中的變量進行通信。任何CPU都可以運行任何進程,但通常在任何給定時間都不會在CPU之間共享進程。
非對稱多處理(AMP)提供更多自由度。在AMP中,可以將特定CPU分配給某些進程以實現(xiàn)最佳性能。非對稱體系結(jié)構(gòu)甚至可以在不同的處理器上運行不同的操作系統(tǒng),在核心處理和時間敏感操作上運行實時操作系統(tǒng)(RTOS),而通用核心在Linux上運行。
多核MCU的主要優(yōu)點之一是并行處理能力。并行處理可分為功能并行處理和數(shù)據(jù)并行處理。功能并行性涉及將任務(wù)分解為單個運算符。不同處理器執(zhí)行不同功能。這是一種強大的技術(shù),但不是多核方法中真正的肌肉所在。
數(shù)據(jù)并行性提供了最大的性能提升。它涉及將數(shù)據(jù)劃分為由不同核心處理的各個部分。這是一種功能強大的技術(shù),但由于CPU通過共享內(nèi)存進行通信,因此同步對于確保CPU以正確的順序和正確的數(shù)據(jù)進行操作至關(guān)重要。
多線程或fork/join并行性提供了一種確保同步的方法。系統(tǒng)將處理劃分為線程,在CPU之間拆分?jǐn)?shù)據(jù),每個CPU在其數(shù)據(jù)塊上運行相同的代碼。當(dāng)線程完成其操作時,它們重新組合以產(chǎn)生結(jié)果。在完成所有線程之前,操作不會結(jié)束,因此這種方法可確保同步。
使用先進先出(FIFO)緩沖區(qū)提供了另一種同步方法。當(dāng)CPU通過FIFO進行通信時,如果它是空的,它們只能寫入它。數(shù)據(jù)強制執(zhí)行優(yōu)先級 - 如果緩沖區(qū)已滿,則進程后期的CPU無法寫入。它必須輪流等待。
互斥(互斥)鎖提供了更復(fù)雜的同步方法。通過硬件實現(xiàn),互斥鎖可確保在任何給定時間只有一個CPU擁有共享變量的所有權(quán)。當(dāng)給定線程開始其操作時,它讀取變量并設(shè)置鎖定,這阻止其他線程訪問信息。當(dāng)操作結(jié)束時,線程釋放鎖定,以便其他人可以訪問它。
特別是在并行處理方面,多核MCU為嵌入式設(shè)計提供了強大的解決方案。但是,它們必須經(jīng)過精心設(shè)計和編程。線程越多,該過程就越具有挑戰(zhàn)性。錯誤可能導(dǎo)致系統(tǒng)死鎖,循環(huán)結(jié)束,甚至產(chǎn)生可能的結(jié)果,這些結(jié)果意外地依賴于首先完成哪個線程。
硬件設(shè)計有其自身的挑戰(zhàn)。雖然解決方案功能強大,但重要的是要意識到它們不一定是給定應(yīng)用程序的最佳解決方案。用戶需要考慮處理器功能和帶寬限制 - 與內(nèi)核一樣快,他們都將使用相同的通信總線,ADC和其他資源。
總體而言,多核MCU為各種嵌入式設(shè)計挑戰(zhàn)提供了有用的選擇。存在用于簡化嵌入式設(shè)計和編程的工具。通過訪問它們并密切關(guān)注測試和驗證,設(shè)計團隊可以獲得高性能和經(jīng)濟的價格點,并加快產(chǎn)品上市速度。
-
mcu
+關(guān)注
關(guān)注
146文章
17985瀏覽量
367295 -
嵌入式
+關(guān)注
關(guān)注
5152文章
19677瀏覽量
317755 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
7154瀏覽量
125645
發(fā)布評論請先 登錄
多核嵌入式系統(tǒng)存在的局限性?怎么解決這些問題?
多核MCU可用于簡化嵌入式設(shè)計 精選資料推薦
嵌入式多核程序設(shè)計資料分享
中國首顆ARM+RISC-V異構(gòu)多核MCU伴隨IAR在上海國際嵌入式展亮相
嵌入式異構(gòu)多核的片上通信架構(gòu)設(shè)計
NI LabVIEW 8.6 全面簡化嵌入式系統(tǒng)原型構(gòu)造與發(fā)
嵌入式多媒體應(yīng)用的多核編程框架

基于異構(gòu)多核嵌入式平臺的視頻監(jiān)控系統(tǒng)
多核微控制器提供新的嵌入式期權(quán)

嵌入式多媒體多核應(yīng)用軟件設(shè)計解析

嵌入式多媒體多核應(yīng)用軟件設(shè)計框架

多核MCU可用于簡化嵌入式設(shè)計

嵌入式linux和物聯(lián)網(wǎng),嵌入式Linux或RTOS:用于物聯(lián)網(wǎng)

評論