近年來,許多廠商開始推出兼具MCU和MPU性能的MCU產(chǎn)品,MPU和MCU已經(jīng)開始“有機融合”,既保留傳統(tǒng)MCU的實時性和控制力,又在性能上達到了MPU級別,讓用戶在開發(fā)一些特定應用方案時,不需要在實時控制和性能上做妥協(xié)。
MCU指的是微控制器,MPU指的是微處理器。
MCU集合了FLASH、RAM和一些外圍器件。MPU的FLASH和RAM則需要設計者自行搭建,當然MCU也可以外擴。MPU的電路設計相對MCU較為復雜。
MCU一般使用片內(nèi)FLASH來存儲和執(zhí)行程序代碼,MPU將代碼存儲在外部FLASH中,上電后將代碼搬運至RAM中運行。因此MCU的啟動速度更快。MCU雖然也可以將代碼運行在RAM中,但是內(nèi)部RAM容量小,使用外部擴展RAM的話速度相對內(nèi)部也較慢。MPU的主頻相對較高,外接的內(nèi)存也一般是DDR3,DDR4這種速度比較快的,適用于運算比較復雜的。
MCU不具備內(nèi)存管理單元(MMU),不能運行Linux這種操作系統(tǒng),只能運行小型操作系統(tǒng),因此無法運行多進程這種程序。小型操作系統(tǒng)的RTOS多任務類似于多線程。
MCU相對MPU具有更強的實時性。
MCU相對MPU具有更低的功耗。雖然MPU也有低功耗模式,但不會像MCU那么低。
至于如何選擇,是使用MCU還是MPU需要從性能要求,體積重量要求、預算成本等多方面綜合考慮。一般地,MCU偏向于低成本低功耗,MPU趨向于高性能。目前的MCU和MPU的界限在逐漸模糊,MCU的主頻也在不斷提高,外設不斷增加。在遠程控制,消費電子或?qū)崟r要求高的場合使用MCU的多一些,在有大量計算,高速互聯(lián),或是圖形交互要求高的地方使用MPU多一些。根據(jù)要求也可以使用MCU和MPU配合,現(xiàn)在好多芯片是同時具有MCU和MPU的多核,更方便設計者使用。
MCU和MPU消失的界限
事實上,關于MCU和MPU的爭論已經(jīng)有很多年了。
傳統(tǒng)來說,MPU更多采用Arm Cortex-A系列核心,具備豐富的外設接口,MCU則大多采用Arm Cortex-M系列核心,也比MPU更便宜,更容易安裝和使用。
更簡單粗暴地劃分二者的方式是運行Linux就是MPU,基于實時操作系統(tǒng)(RTOS)就是MCU。MCU的目的是永遠運行一個相當簡單的控制循環(huán),或者直到它中斷或停止。
隨著技術和應用的發(fā)展,MCU現(xiàn)在可以做很多事情,包括更復雜的外圍設備,現(xiàn)在一些MCU帶有用于更復雜外設的簡單軟件驅(qū)動程序,此時和MPU界限便開始模糊。
當下,MCU和MPU十分相似,現(xiàn)在主流劃分方式主要包括兩種:一種是通過細微的參數(shù)差別,即CPU功能、位數(shù)、操作系統(tǒng)、時序要求、核心數(shù)量等方面劃分;另一種是按照應用劃分,MPU注重通過較為強大的運算/處理能力,執(zhí)行復雜多樣的大型程序,外掛大容量的存儲器,MCU則通常運行較為單一的任務,執(zhí)行對于硬件設備的管理/控制功能,通常以單片集成的方式在單個芯片內(nèi)部集成小容量的存儲器實現(xiàn)系統(tǒng)的“單片化”。
不過,依然有技術人員提出,MCU和MPU已經(jīng)是過時的術語了,不僅性能上急劇提高,隨著3D封裝、Chiplet技術的進步,很多過去MPU才有的功能已經(jīng)放到MCU。
業(yè)界則喜歡用“跨界”這樣的詞語來解釋這種趨勢和潮流,并不斷推出跨界產(chǎn)品。
越來越像MPU的那些MCU
所謂跨界,就是把MPU才擁有的一些特性或硬件,放到MCU上,如MPU在攝像頭輸入、顯示輸出、USB等方面豐富的外設資源塞入MCU之中。
這樣,又可以擁有MCU的低功耗、低成本、簡單,又能夠?qū)崿F(xiàn)以往MPU才能做的應用。從各個芯片公司的動作來看,跨界MCU是布局的重點。
ST:開始越級計劃
從2007年到2018年,ST(意法半導體)花了12年時間,將 “STM32 = 32位MCU = ARM Cortex MCU” 深植于大眾之心。2019年,STM32從MCU跨界到MPU,推出第一顆MPU。
蝴蝶扇動翅膀,便可讓彼岸刮起暴風雨。STM32這只“蝴蝶”不僅掀起了MCU的風暴,還走進了工程師和千家萬戶?,F(xiàn)在,它也開始把MCU和MPU融合在一起。
2024年3月14日,ST發(fā)布一款新的集MPU和MCU兩者之長的高性能產(chǎn)品——STM32H7Rx和STM32H7Sx,并計劃在2024年4月開始量產(chǎn)。
STM32H7系列本身采用600MHz運行頻率的Cortex-M7內(nèi)核,性能非常強勁。ST將現(xiàn)有產(chǎn)品再細分為兩個產(chǎn)品線:STM32H7R3/S3通用MCU和圖形處理能力增強的STM32H7R7/S7。
之所以說是跨界,是因為兩款MCU集成專用圖形處理器和快速存儲接口,這種硬件配置多數(shù)都放在MPU上。
STM32H7Rx和STM32H7Sx在安全功能上也非常強大,涵蓋防止物理攻擊、存儲器保護、在運行時保護應用程序的代碼隔離保護功能。此外,STM32H7S產(chǎn)品還增加了更多的強化的安全功能,集成了不可變的信任根、調(diào)試驗證,以及硬件加密加速器。
新產(chǎn)品能夠?qū)崿F(xiàn)往往需要用MPU才能跑起來應用,設備廠商可以更快、更經(jīng)濟地開發(fā)智能家電、智能樓宇控制器、工業(yè)自動化和個人醫(yī)療設備,滿足終端市場用戶日益增長的需求。具體用例包括增加更豐富多彩的圖形用戶界面,同時執(zhí)行多個不同的功能。
曾有一段時間,微處理器(MPU)與微控制器(MCU)是截然不同的兩種設備,微控制器完成“控制”相關的任務,根據(jù)外界信號刺激產(chǎn)生反應,微處理器主要執(zhí)行處理功能,對數(shù)據(jù)處理和計算能力的要求較高。但如今由于內(nèi)存架構的變化,兩者之間的界限正在變得模糊。
事實上,可以通過多種方式區(qū)分微處理器和微控制器,只是業(yè)界尚未對他們的區(qū)分標準達成共識。不過已經(jīng)有一些人得出結論,目前兩者之間的準確區(qū)分都已經(jīng)不再重要了。
“近年來,MCU和MPU之間的區(qū)別變得越來越模糊?!蔽鏖T子業(yè)務部門的嵌入式軟件技術專家Colin Walls說,“最初,MCU在一個芯片上集成了CPU、內(nèi)存和外圍設備,如今大多數(shù)MCU依然如此,但因為MCU具有足夠強大的功能來支持更復雜的應用程序,附加外部存儲器的MCU也變得常見?!?
計算芯片的兩個市場
曾經(jīng)有一段時間,計算芯片分為兩個截然不同的市場,大部分芯片設備主要針對主流計算,性能是最主要的考慮因素,這些單片微型計算機被稱之為“微處理器”,為個人計算機和更大的系統(tǒng)提供動力。
如今我們可以在各種類型的筆記本電腦、臺式機和服務器中看到它們,值得注意的是,它們是通用引擎,旨在運行事先未知的任何數(shù)量的程序,主內(nèi)存是DRAM,非易失性存儲是硬盤驅(qū)動器或固態(tài)硬盤。
在不那么主流的嵌入式計算世界里,需要適度計算能力和專門用途,設計好的程序可能在固件中運行,以便讓整個系統(tǒng)(包括程序和所有系統(tǒng))在出貨之前得以驗證,內(nèi)存需求將受到更多限制,可以將用于存儲代碼的SRAM和非易失性內(nèi)存與CPU集成到同一塊芯片上,關鍵一點,實時響應通常很重要。
嵌入式計算機也傾向于在有特殊I/O需求的環(huán)境中使用,一些可能是在驅(qū)動電動機,另一些可能是在處理聲音或讀取傳感器。將專用外圍設備接口硬件集成到同CPU和內(nèi)存相同的芯片上十分有效,這會產(chǎn)生具有不同特性的各種芯片。
總的來說,CPU與SRAM、非易失性存儲器和專用外設集成在一起的被稱之為“微控制器”。
集成式閃存是MCU的重要特征,不過這類閃存尚未在擁有最先進節(jié)點的微控制器上使用,因此許多以微控制器形式銷售的設備都使用外部閃存而不是嵌入式閃存,此外還使用外部DRAM。
實際上,一個稱之為“shadowing”的過程可以從外部閃存中獲取代碼,并將其復制到DRAM中,然后從中執(zhí)行代碼,而且為了提高性能,緩存也可以包括在內(nèi)。這使得CPU/內(nèi)存子系統(tǒng)與MPU幾乎沒有區(qū)別。
那么現(xiàn)在的MCU就是MPU嗎?不再有區(qū)別了嗎?
當下可區(qū)分MCU與MPU的因素
如今的MCU和MPU十分相似,但依然在很多方面有一些細微的區(qū)別,這包括CPU功能、位數(shù)、操作系統(tǒng)、時序要求、核心數(shù)量等方面。
在CPU功能方面,如果CPU具有復雜的流水線,具有預測執(zhí)行和其他超標量功能,則可以將其視為MPU,但是轉變的確切位置并沒有明確界定。
在位數(shù)上,8位設備更有可能被視為MCU,64位設備很可能被視為MPU。不過最早的卻是MPU是4位,這更像是歷史問題,而不是決定性的特征。
也可以根據(jù)計算機可運行的操作系統(tǒng)進行分類,如果它運行Linux,則可以將其稱為MPU。如果它僅允許較小的實時操作系統(tǒng),甚至只運行裸機,則可以將其稱為MCU,這為能夠運行的Linux的設備留出了許多中間地帶。在時序方面,MCU通常用于需要硬或軟實時響應的應用程序,MPU通常不能用于這一目的。
一般也將多核處理器視為MPU,尤其是在內(nèi)核相同且管理對稱的情況下。不過專用設備可能具有多個處理器,有些專用于諸如數(shù)字信號之類特定任務的處理器也會被認為是MCU,因此通過核心數(shù)目判斷是MPU還是MCU并不是一個準確的依據(jù)。
從使用目的來看,可以認為通用設備是MPU,單用途設備是MCU,但這實際上只關乎設備的使用方式,如果在不明確使用目的的情況下使用任何設備,那時候如何稱呼這一設備呢?
通常全功能MPU不會具有專用外圍設備,這在很大程度上是因為它們是通用的,而不是面向特定應用,因此你可能會認為只要有這樣的外圍設備,就是MCU,但是事實并非如此,缺少外圍設備也并不意味著就是MPU。
從上面的分析來看,每個特征因素都會存在缺陷,結果無法令人滿意,那么行業(yè)專家又是怎么認為的呢?
MCU和MPU已成過時的術語
Cadence IP集團產(chǎn)品行銷總監(jiān)Marc Greenberg對此表示:“我不知道MCU與MPU之間的區(qū)別是否存在某些官方的定義,經(jīng)過簡單的檢索似乎表明,裸片上存在NVM的為MCU,但各種MPU上都有NVM的某些位,MPU也可能在同一片裸片上具有MCU,那又是什么呢?最小的無緩存處理器可能仍具有一些寄存器和SRAM,用RTL編碼的定序器與從ROM執(zhí)行的通用處理器真的有區(qū)別嗎?顯然MCU和MPU之間的區(qū)別有些隨意,這意味著這一界限并不明確甚至可以隨心所欲。當我想到MPU時,我想到的是用于控制通用計算機的設備,例如臺式機、服務器、平板電腦等?!?
Cadence高級工程師Grant Martin認為:“根據(jù)維基百科的解釋,MCU是在單個金屬氧化物半導體集成電路芯片上的小型計算機,MPU是一種計算機處理器,在MOSFET結構的單個或多個集成電路上結合了中央處理單元的功能?!?
“如果深入研究,MPU具有CPU的功能,因此它是計算機處理器,而MCU則是更完整的計算機,這意味著MCU內(nèi)包含MPU,這與常識相反。具有多個處理器核心的16路服務器處理器是否不再是MPU?而是一種多核異構SoC?”
“例如,一部手機可能包括多個應用程序處理內(nèi)核,用于音頻、視頻、圖像處理的多個DSP,一個或兩個用于在屏幕上呈現(xiàn)圖像的GPU以及一個僅用于娛樂目的的神經(jīng)網(wǎng)絡處理單元——MCU。從我的角度來看,行業(yè)應該放棄這些過時的術語,使用更精確更具描述性的術語?!盙rant Martin繼續(xù)說。
西門子業(yè)務部門Mentor的高級產(chǎn)品經(jīng)理Jeff Hancock則認為:“從系統(tǒng)軟件的角度來看,MCU有望適用于直接解釋和控制硬件傳感器和執(zhí)行器的應用。這種訪問通常涉及一致且可靠的指令時序,這與通用MPU的需求相矛盾。通用MPU旨在優(yōu)化吞吐量,而MCU通常會優(yōu)化延遲。因此,如果是需要處理大型數(shù)據(jù)庫,MPU更合適,如果是要精細的機電控制,那么MCU更合適。
Jeff Hancock還說:“外部存儲器和緩存肯定讓MCU的標準有所變化,但這距離將MCU等同于MPU還有很長的路要走。特別是并不是所有MCU中的所有處理單元都專門使用外部存儲器,也可以使用隔離的子系統(tǒng)構建系統(tǒng),這些子系統(tǒng)允許關鍵的工作負載和不太關鍵的應用程序級系統(tǒng)并行繼續(xù)?!?
“從軟件工程師的角度看,這是一個有趣的挑戰(zhàn),在不連續(xù)的地方可能有兩個內(nèi)存區(qū)域,集成式內(nèi)存雖小,但速度更快,因此最好留給對速度有高要求的代碼,例如實時操作系統(tǒng)。這意味著開發(fā)工具必須足夠靈活以將代碼正確地映射到存儲器上,而RTOS必須足夠小適合片上存儲器。”西門子業(yè)務部門的嵌入式軟件技術專家Walls補充到。
Tortuga Logic的高級硬件安全工程師Nicole Fern表示:“過去,MCU與嵌入式系統(tǒng)相關聯(lián)。在嵌入式系統(tǒng)中,低成本和低功耗的要求比性能更為重要。但是隨著移動計算和IoT邊緣計算的出現(xiàn),許多嵌入式系統(tǒng)現(xiàn)在需要復雜的處理,這樣就產(chǎn)生了面向嵌入式領域看起來更像MPU的MCU產(chǎn)品,為帶有外部存儲器和高速緩存的器件提供了更高的性能和可配置性。這種情況下,術語MCU和MPU之間的差異僅取決于是否集成CPU系統(tǒng)?!?
Arm的低功耗IoT業(yè)務高級總監(jiān)Thomas Ensergueix也認為:“近年來,MCU和MPU之間的界限已經(jīng)模糊。MCU和MPU之間的主要區(qū)別之一是軟件和開發(fā)。MPU將支持豐富的OS,如Linux和相關的軟件堆棧,而MCU通常將專注于裸機和RTOS。在決定哪種硬件平臺、MCU或MPU最有效之前,由軟件開發(fā)人員決定哪個軟件環(huán)境和生態(tài)系統(tǒng)最適合他們的應用。
“隨著現(xiàn)在MCU已經(jīng)過渡到32位,我們還看到了性能的急劇提高,這有助于縮小MCU和MPU之間的差距。例如:許多基于Arm Cortex-M7的MCU可提供100多個Dhrystone MIPS,或在CoreMark中提供2,000多個點。這些設備中的許多設備還具有非常大的內(nèi)置存儲器,或者提供快速接口來連接外部存儲器。這確保了性能和內(nèi)存不再是MCU的瓶頸,并使它們更接近低端MPU。





