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