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