MCU與MPU的基本區別


MCU與MPU的基本區別

題記:一般來說,mpu的價格是mcu的數倍。

參考資料:

  1. http://www.elecfans.com/d/1564656.html
  2. https://zhuanlan.zhihu.com/p/106860696

1.前言

曾經 微控制器(MCU)與微處理器(MPU)是截然不同的兩種器件,微控制器完成“控制”相關的任務,根據外界信號刺激產生反應,微處理器主要執行處理功能,對數據處理和計算能力的要求較高。

但如今由於內存架構的變化,兩者之間的界限正在變得模糊。像大家熟悉的ST、NXP都推出了MPU,通過對比大家也能發現MCU和MPU之間有很多共性。

事實上,可以通過多種方式區分微處理器和微控制器,只是業界尚未對他們的區分標准達成共識。不過目前兩者之間的准確區分都已經不再重要了。

近年來,MCU和MPU之間的區別變得越來越模糊。最初,MCU在一個芯片上集成了CPU、內存和外圍設備,如今大多數MCU依然如此,但因為MCU具有足夠強大的功能來支持更復雜的應用程序,附加外部存儲器的MCU也變得常見。

2.各種觀點

西門子業務部門Mentor的高級產品經理Jeff Hancock認為:“從系統軟件的角度來看,MCU有望適用於直接解釋和控制硬件傳感器和執行器的應用。這種訪問通常涉及一致且可靠的指令時序,這與通用MPU的需求相矛盾。通用MPU旨在優化吞吐量,而MCU通常會優化延遲。因此,如果是需要處理大型數據庫,MPU更合適,如果是要精細的機電控制,那么MCU更合適。

Jeff Hancock還說:“外部存儲器和緩存肯定讓MCU的標准有所變化,但這距離將MCU等同於MPU還有很長的路要走。特別是並不是所有MCU中的所有處理單元都專門使用外部存儲器,也可以使用隔離的子系統構建系統,這些子系統允許關鍵的工作負載和不太關鍵的應用程序級系統並行繼續。”

“從軟件工程師的角度看,這是一個有趣的挑戰,在不連續的地方可能有兩個內存區域,集成式內存雖小,但速度更快,因此最好留給對速度有高要求的代碼,例如實時操作系統。這意味着開發工具必須足夠靈活以將代碼正確地映射到存儲器上,而RTOS必須足夠小適合片上存儲器。”西門子業務部門的嵌入式軟件技術專家Walls補充到。

Tortuga Logic的高級硬件安全工程師Nicole Fern表示:“過去,MCU與嵌入式系統相關聯。在嵌入式系統中,低成本和低功耗的要求比性能更為重要。但是隨着移動計算和IoT邊緣計算的出現,許多嵌入式系統現在需要復雜的處理,這樣就產生了面向嵌入式領域看起來更像MPU的MCU產品,為帶有外部存儲器和高速緩存的器件提供了更高的性能和可配置性。這種情況下,術語MCU和MPU之間的差異僅取決於是否集成CPU系統。”

Arm的低功耗IoT業務高級總監Thomas Ensergueix也認為:近年來,MCU和MPU之間的界限已經模糊。MCU和MPU之間的主要區別之一是軟件和開發。MPU將支持豐富的OS,如Linux和相關的軟件堆棧,而MCU通常將專注於裸機和RTOS。在決定哪種硬件平台、MCU或MPU最有效之前,由軟件開發人員決定哪個軟件環境和生態系統最適合他們的應用。

隨着現在MCU已經過渡到32位,我們還看到了性能的急劇提高,這有助於縮小MCU和MPU之間的差距。例如:許多基於Arm Cortex-M7的MCU可提供100多個Dhrystone MIPS,或在CoreMark中提供2,000多個點。這些設備中的許多設備還具有非常大的內置存儲器,或者提供快速接口來連接外部存儲器。這確保了性能和內存不再是MCU的瓶頸,並使它們更接近低端MPU。

3. 進一步理解

MPU的全稱叫Micro Processor Unit,MCU的全稱是Mirco Controller Unit。首先這兩個詞都有一個Micro開頭,其實這就表明了這是計算/控制單元小型化后出現的技術。

由於主要完成“控制”相關的任務,所以被稱為Controller。也就是根據外界的信號(刺激),產生一些響應,做一點簡單的人機界面。對於這種需求,通過不需要芯片主頻太高。早期8051系列主頻不過10幾MHz,還是12個周期執行一條指令。經過多年的“魔改”也最終達到了100MHz。其次就是處理能力不用太強,8位的MCU長期是微控制器的主流。后來16位的MCU逐步開始占領市場。而隨着ARM的32位MCU的出現,采用ARM的M系列的MCU也開始逐步擴大市場。以ST、NXP公司的產品為主要代表。但是這些ARM系列MCU的主頻一般也是在幾十MHz到100多MHz的量級。其次由於執行的“控制相關”任務,通常不需要支持復雜的圖形界面和處理能力。在MCU上完成的任務大多數是一些簡單的刺激-響應式的任務,而且任務類型單一,任務執行過程簡單。在這種情況下一般不需要MCU去執行功能復雜、運算量大的程序,而通常不需要運行大型操作系統來支持復雜的多任務管理。這就造成了MCU一般對於存儲器的容量要求比較低

而Processor,顧名思義是處理器。處理器就是能夠執行“處理”功能的器件。其實具備Processor這個單詞的器件不少。比如CPU就被稱為“中央處理器”,那既然有“中央”就應該有“外圍”。GPU在經典的桌面計算機中就是一個典型的“外圍”處理器,主要負責圖形圖像處理,由於圖形圖像顯示。當然,今天由於AI的崛起,GPU變身成為了人工智能的訓練神器。帶“P”的還有DSP,數字信號處理器,一種專門為了數字信號處理而生的“領域專用處理器”。所以這些帶P的處理器,都是要具備“處理”能力的。“處理”什么?自然是處理數據/信息了。也就是說處理器本身都需要較為強大的數據處理/計算能力。 以GPU為例,正是由於它強大的並行浮點運算能力才能支持高速的圖像處理,使音視頻播放、多媒體技術成為可能。同樣由於這樣的處理能力使之在AI時代來臨之時發揮巨大作用。

以上對於處理器說了這么多,核心意思就是一個。處理器一定要處理/運算能力強,能夠執行比較復雜的任務。而微處理器,其實就是微型化/集成化了的處理器。准確的說是微型化/集成化的“中央處理器”。這就是把傳統的CPU之外集成了原屬於“芯片組”的各類接口和部分“外設”而形成的。 MPU從一開始就定位了具有相當的處理和運算能力,一幫需要運行較大型的操作系統來實現復雜的任務處理。因此這就決定了MPU應該具備比較高的主頻,和較為強大的運算能力。MPU很早就演進到了32位處理器,現在更是開始大力普及64位。現在MPU領導具有絕對影響力的Arm公司一開始就定位要做32位。同時MPU也一直追求實現較高的主頻。早期經典的Arm 9系列MPU頻率就在200MHz-400MHz。現在手機上使用的高端MPU更是到達了3GHz,和主流的桌面處理器是一個級別了。 和通用的桌面處理器一樣,MPU現在也普遍“多核化”。

為了支撐MPU強大的算力,使得“物盡其用”。必然要求在MPU上運行比較復雜的、運算量大的程序和任務,通常需要有大容量的存儲器來配合支撐。而大容量的存儲器難以被集成到以邏輯功能為主的MPU內部,因此MPU現在要運行起來通常需要“外掛”大容量的存儲器。主要是大容量的DDR存儲器和FLASH。在手機領域前者被稱為“運存”而后者被稱為“內存”。為了支撐運行復雜操作系統和大型程序,往往還需要MPU中集成高性能的存儲控制器、存儲管理單元(MMU)等一整套復雜的存儲機制和硬件。

所以從形態上看,MPU由於需要運行對處理能力要求復雜大程序,一般都需要外掛存儲器才能運行起來。而MCU往往只是執行刺激-響應式的過程控制和輔助,功能比較單一,僅僅需要使用片上集成的小存儲器即可。這是區別MPU和MCU的重要表象,但不是核心原因。

總結一下,MPU和MCU的區別本質上是因為應用定位不同,為了滿足不同的應用場景而按不同方式優化出來的兩類器件。MPU注重通過較為強大的運算/處理能力,執行復雜多樣的大型程序,通常需要外掛大容量的存儲器。而MCU通常運行較為單一的任務,執行對於硬件設備的管理/控制功能。通常不需要很強的運算/處理能力,因此也不需要有大容量的存儲器來支撐運行大程序。通常以單片集成的方式在單個芯片內部集成小容量的存儲器實現系統的“單片化”。

但需要指出的是,隨着技術的不斷演進。以上的產品形態也會發生一系列的變化和衍生。現在NXP已經開始推出主頻在1GHz,帶強大運算能力的MCU。而隨着3D封裝、Chiplet技術的進步,把大容量存儲器以先進封裝的方式實現“單片集成”也正在實現。所以這種技術名詞最終還是應該從他們出現的原因去理解,而不應該簡單的從一些形態、架構去解釋。更不應該機械的搞一些沒有什么意義的“定義”,還讓學生在考試的時候去回答。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM