CPU、MPU、MCU和SOC還傻傻分不清楚 看這篇文章就夠了

在嵌入式開發中,我們會經常看到或接觸一些專業術語,例如CPU

、MPU、MCU和SOC等,並且這些專業術語出現的頻率也是非常之高,在面試中也常常會作為提問的知識點,下面我們就來看一下他們之間的特點和區別。

CPU

CPU是Central Processing Unit的縮寫計算機的運算控制核心就是CPU。CPU是由運算器、控制器和寄存器及相應的總線構成。眾所周知的三級流水線:取址、譯碼、執行的對象就是CPU,CPU從存儲器或高速緩衝存儲器中取出指令,放入指令寄存器,並對指令譯碼,然後執行指令。而計算機的可編程性其實就是指對CPU的編程。


CPU、MPU、MCU和SOC還傻傻分不清楚 看這篇文章就夠了


MPU

MPU是Micro Processor Unit的縮寫,指微處理器(這裡要注意不是微控制器,很多人會把微處理器和微控制器混淆),微處理器通常代表功能強大的CPU(可理解為增強型的CPU),這種芯片往往是計算機和高端系統的核心CPU。例如嵌入式開發者最熟悉的ARM的Cortex-A芯片,他們都屬於MPU。


MCU

MCU是Micro Control Unit的縮寫,指微控制器。隨著大規模集成電路的出現及發展,把計算機的CPU、RAM、ROM、定時器和輸入輸出I/O引腳集成在一個芯片上,比如51,STC、Cortex-M這些芯片,它們的內部除了CPU外還包含了RAM和ROM,可直接添加簡單的器件(電阻,電容)等構成最小系統就可以運行代碼了。而像ARM(Cortex-A系列)直接放代碼是運行不了的,因為它本質上只是增強版的CPU,必須添加相應的RAM和ROM。


CPU、MPU、MCU和SOC還傻傻分不清楚 看這篇文章就夠了


SOC

SOC是System on Chip的縮寫,指的是片上系統。可以這樣對比來看:MCU只是芯片級的芯片,而SOC是系統級的芯片,它集成了MCU和MPU的優點,即擁有內置RAM和ROM的同時又像MPU那樣強大,它可以存放並運行系統級別的代碼,也就是說可以運行操作系統(以Linux OS為主)


CPU、MPU、MCU和SOC還傻傻分不清楚 看這篇文章就夠了


另外,SOPC也是一個值得了解的概念,與上述幾項概念相比,SOPC的出現頻率並不是那麼高,但這並不影響它的重要性。SOPC是System On a Programmable Chip的縮寫,即 可編程片上系統,SOPC與MCU、MPU、SOC最明顯的區別在於:可更改硬件配置,也就是說自己構造芯片。

舉個例子說明便於理解,單片機的硬件配置是固化好了的, 我們能夠編程修改的就是軟件配置,本來是串口通信功能,通過修改代碼變成AD採樣功能,也就是說硬件配置是固定了的,我們只能通過修改軟件來選擇其中的一項或多項功能;而SOPC可以修改硬件配置信息使其成為相應的芯片,可以是MCU,也可以是SOC。


結語

在嵌入式開發中,接觸頻率較多的一般是MCU和SOC,而現在STM32也幾乎成為了MCU的代名詞,SOC目前則以Cortex-A系列為主,開發難度也有所差異,對於嵌入式從業者來說,弄清楚這些專業概念是必備的。


分享到:


相關文章: