MCU MPU之間的共同點,曾經(jīng)是兩個完全不同的設(shè)備。微控制器完成與控制相關(guān)的任務(wù),并根據(jù)外部信號刺激進(jìn)行反應(yīng)。微處理器主要執(zhí)行處理功能,對數(shù)據(jù)處理和計算能力要求較高。
但現(xiàn)在,由于內(nèi)存架構(gòu)的變化,兩者之間的界限正變得模糊。例如,熟悉的ST和NXP已經(jīng)推出了MPU,通過比較你也可以發(fā)現(xiàn)MCU和MPU之間有很多共同點。
事實上,微處理器和微控制器可以通過多種方式區(qū)分,但該行業(yè)尚未就其區(qū)分標(biāo)準(zhǔn)達(dá)成共識。但兩者之間的準(zhǔn)確區(qū)分已不再重要。
近年來,MCU和MPU之間的區(qū)別變得越來越模糊。最初,MCU將CPU、內(nèi)存和外圍設(shè)備集成到芯片中,現(xiàn)在大多數(shù)MCU仍然如此,但由于MCU有足夠強(qiáng)大的功能來支持更復(fù)雜的應(yīng)用程序,附加外部存儲器的MCU也變得很常見。
計算芯片的兩個市場
計算芯片的兩個市場已經(jīng)有一段時間了。計算芯片分為兩個完全不同的市場。大多數(shù)芯片設(shè)備主要針對主流計算,性能是主要考慮因素。這些單片微型計算機(jī)被稱為微處理器,為個人計算機(jī)和更大的系統(tǒng)提供動力。
如今,我們可以在各種類型的筆記本電腦、臺式電腦和服務(wù)器中看到它們。值得注意的是,它們是通用引擎,旨在運(yùn)行任何未知數(shù)量的程序。主內(nèi)存為DRAM,非易失性存儲為硬盤驅(qū)動器或固態(tài)硬盤。
在不那么主流的嵌入式計算世界中,需要適度的計算能力和特殊用途。設(shè)計好的程序可以在固件中運(yùn)行,以便在發(fā)貨前驗證整個系統(tǒng)(包括程序和所有系統(tǒng))。內(nèi)存需求將受到更多的限制存儲代碼的SRAM和非易失性內(nèi)存可以與CPU集成到同一芯片中。關(guān)鍵是實時響應(yīng)通常非常重要。
嵌入式計算機(jī)也傾向于在有特殊I/O需求的環(huán)境中使用,有的可能驅(qū)動電機(jī),有的可能處理聲音或讀取傳感器。將專用外圍設(shè)備接口硬件集成到與CPU和內(nèi)存相同的芯片中是非常有效的,這將產(chǎn)生不同特性的各種芯片。
一般來說,CPU與SRAM、非易失性存儲器和專用外設(shè)集成在一起,稱為微控制器。
到目前為止,微處理器已經(jīng)發(fā)展到64位,而微控制器仍然是8位居多,但中間發(fā)生了一些變化,使兩者的區(qū)別更加模糊。
集成閃存是MCU的一個重要特征,但這種閃存沒有用于最先進(jìn)節(jié)點的微控制器上,所以許多以微控制器形式銷售的設(shè)備使用外部閃存而不是嵌入式閃存,并使用外部DRAM。
事實上,一個叫做shadowing的過程可以從外部閃存中獲取代碼,并將其復(fù)制到DRAM中,然后執(zhí)行代碼,為了提高性能,還可以包括緩存。這使得CPU/內(nèi)存子系統(tǒng)與MPU幾乎沒有區(qū)別。
區(qū)分MCU和MPU的因素
如今,MCU與MPU非常相似,但在許多方面仍存在一些細(xì)微的差異,包括CPU功能、位數(shù)、操作系統(tǒng)、時序要求、核心數(shù)量等。
在CPU功能方面,如果CPU具有復(fù)雜的裝配線、預(yù)測執(zhí)行和其他超標(biāo)功能,則可視為MPU,但轉(zhuǎn)換的確切位置尚未明確界定。
在位數(shù)上,8位設(shè)備更有可能被視為MCU,64位設(shè)備更有可能被視為MPU。但最早的是MPU是4位,這更像是歷史問題,而不是決定性的特征。
也可以根據(jù)計算機(jī)可操作的操作系統(tǒng)進(jìn)行分類。如果它運(yùn)行Linux,它可以被稱為MPU。如果它只允許較小的實時操作系統(tǒng),甚至只運(yùn)行裸機(jī),它可以被稱為MCU,這為可操作Linux的設(shè)備留下了許多中間區(qū)域。在時間順序方面,MCU通常用于需要硬或軟實時響應(yīng)的應(yīng)用程序,MPU通常不用于此目的。
一般來說,多核處理器也被視為MPU,特別是在核心相同和管理對稱的情況下。然而,專用設(shè)備可能有多個處理器,一些專門用于數(shù)字信號等特定任務(wù)的處理器也被視為MCU,因此通過核心數(shù)量判斷MPU或MCU并不是準(zhǔn)確的基礎(chǔ)。
從使用目的來看,可以認(rèn)為通用設(shè)備是MPU,單用途設(shè)備是MCU,但這實際上只關(guān)系到設(shè)備的使用方式。如果在不明確使用目的的情況下使用任何設(shè)備,當(dāng)時如何稱之為設(shè)備?
通常,全功能MPU沒有特殊的外圍設(shè)備,這在很大程度上是因為它們是通用的,而不是針對特定的應(yīng)用程序,所以你可能會認(rèn)為只要有這樣的外圍設(shè)備,MCU,但事實并非如此,缺乏外圍設(shè)備并不意味著MPU。
從以上分析來看,每個特征因素都會有缺陷,結(jié)果不盡如人意,那么行業(yè)專家怎么看呢?
MCU和MPU已成為過時的術(shù)語
CadenceIP集團(tuán)產(chǎn)品營銷總監(jiān)Marcgrenberg表示:我不知道MCU和MPU的區(qū)別是否有一些官方的定義。經(jīng)過簡單的檢索,似乎表明MCU存在于裸片上,但各種MPU上都有一些NVM位置,MPU也可能在同一裸片上有MCU。那是什么?最小的無緩存處理器可能仍然有一些寄存器和SRAM。RTL編碼的定序器真的不同于ROM執(zhí)行的通用處理器嗎?顯然,MCU和MPU的區(qū)別是隨意的,這意味著這個界限不清楚,甚至可以隨意。當(dāng)我想到MPU時,我想到的是控制通用計算機(jī)的設(shè)備,如臺式機(jī)、服務(wù)器、平板電腦等。
根據(jù)維基百科的解釋,MCU是單個金屬氧化物半導(dǎo)體集成電路芯片上的小型計算機(jī),MPU是一種計算機(jī)處理器,它結(jié)合了MOSFET結(jié)構(gòu)中單個或多個集成電路中央處理單元的功能。
如果深入研究MPU具有CPU功能,那么它是一個計算機(jī)處理器,而MCU是一個更完整的計算機(jī),這意味著MCU包含MPU,這與常識相反。擁有多個處理器核心的16個服務(wù)器處理器不再是MPU嗎?這是一個多核異構(gòu)的SOC嗎?
例如,一部手機(jī)可能包括多個應(yīng)用程序處理核心,多個DSP用于音頻、視頻和圖像處理,一個或兩個GPU用于屏幕上的圖像,以及一個只用于娛樂目的的神經(jīng)網(wǎng)絡(luò)處理單元——MCU。從我的角度來看,這個行業(yè)應(yīng)該放棄這些過時的術(shù)語,使用更準(zhǔn)確、更有描述性的術(shù)語。GrantMartin繼續(xù)說。
從系統(tǒng)軟件的角度來看,MCU有望適用于直接解釋和控制硬件傳感器和執(zhí)行器的應(yīng)用。這種訪問通常涉及一致可靠的指令時序,這與通用MPU的需求相矛盾。通用MPU旨在優(yōu)化吞吐量,而MCU通常優(yōu)化延遲。因此,如果需要處理大型數(shù)據(jù)庫,MPU更合適。如果需要精細(xì)的機(jī)電控制,MCU更合適。
Jeffhancock還表示:外部存儲器和緩存肯定會改變MCU的標(biāo)準(zhǔn),但還有很長的路要走,把MCU等同于MPU。特別是并不是所有MCU中的處理單元都專門使用外部存儲器或隔離子系統(tǒng)來構(gòu)建系統(tǒng),允許關(guān)鍵工作負(fù)載和非關(guān)鍵應(yīng)用程序級系統(tǒng)并行繼續(xù)。
從軟件工程師的角度來看,這是一個有趣的挑戰(zhàn)。在不連續(xù)的地方可能有兩個內(nèi)存區(qū)域。雖然集成內(nèi)存很小,但速度更快,所以最好留下對速度要求很高的代碼,比如實時操作系統(tǒng)。這意味著開發(fā)工具必須足夠靈活,以正確地將代碼映射到存儲器上,而RTOS必須足夠小,以適合電影上的存儲器。西門子業(yè)務(wù)部的嵌入式軟件技術(shù)專家Walls補(bǔ)充說。
過去,MCU與嵌入式系統(tǒng)有關(guān)。在嵌入式系統(tǒng)中,低成本和低功耗的要求比性能更重要。然而,隨著移動計算和物聯(lián)網(wǎng)邊緣計算的出現(xiàn),許多嵌入式系統(tǒng)現(xiàn)在需要復(fù)雜的處理,從而產(chǎn)生了更像MPU的MCU產(chǎn)品,為具有外部存儲器和高速緩存的設(shè)備提供了更高的性能和可配置性。在這種情況下,術(shù)語MCU和MPU之間的區(qū)別僅取決于CPU系統(tǒng)是否集成。
Arm的低功耗物聯(lián)網(wǎng)業(yè)務(wù)高級總監(jiān)Thomasensergueix也認(rèn)為,近年來,MCU和MPU之間的界限已經(jīng)模糊。MCU和MPU的主要區(qū)別之一是軟件和開發(fā)。MPU將支持豐富的OS,如Linux和相關(guān)的軟件堆棧,而MCU通常專注于裸機(jī)和RTOS。在決定哪個硬件平臺、MCU或MPU最有效之前,軟件開發(fā)人員將決定哪個軟件環(huán)境和生態(tài)系統(tǒng)最適合他們的應(yīng)用程序。
MCU和MPU之間的共同點!隨著MCU已經(jīng)過渡到32位,我們也看到了性能的急劇提高,這有助于縮小MCU和MPU之間的差距。例如,許多基于Armcortex-M7的MCU可以提供100多個DhrystoneMIPS,或者在CoreMark中提供2000多個點。這些設(shè)備中的許多設(shè)備也有非常大的內(nèi)置存儲器,或者提供快速接口來連接外部存儲器。這確保了性能和內(nèi)存不再是MCU的瓶頸,并使其更接近低端MPU。