嵌入式隨筆1一文搞懂CPU、MCU、MPU、SOC、SOPC、MMU、CACHE的區別與聯繫

 

CPU(Central Processing Unit):中央處理器,是計算機系統的運算和控制核心,是信息處理、程序運行的最終執行單元。CPU由運算器、控制器和寄存器及實現它們之間聯繫的數據、控制及狀態的總線構成。CPU一般的工作流程包括四個步驟:提取(Fetch)、解碼(Decode)、執行(Execute)和寫回(Writeback)。CPU從存儲器或高速緩衝存儲器中取出指令,放入指令寄存器,並對指令譯碼,並執行指令。所謂的計算機的可編程性主要是指對CPU的編程。

 

MCU(Micro Control Unit): 微控制器,是指隨着大規模集成電路的出現及其發展,將計算機的CPU、RAM、ROM、定時計數器和多種I/O接口集成在一片芯片上,形成芯片級的芯片。常見的典型MCU包括51,AVR、Cortex-M這些芯片,內部除了CPU外還有RAM、ROM,可以直接加簡單的外圍器件(電阻,電容)就可以運行代碼了。

 

MPU(Micro Processor Unit):微處理器(不是微控制器),通常代表一個功能強大的CPU(暫且理解爲增強版的CPU吧),但不是爲任何已有的特定計算目的而設計的芯片。Intel X86、ARM中的一些Cortex-A芯片如飛思卡爾i.MX6、全志A20、TI AM335X等都屬於MPU。

 

SoC(system on chip):系統級芯片,也稱爲片上系統,意指它是一個產品,是一個有專有目標的集成電路,其中包含完整系統並嵌入軟件的全部內容。而SOC是系統級的芯片,它既MCU(51,avr)那樣有內置RAM、ROM同時又像MPU那樣強大,不單單是放簡單的代碼,可以放系統級的代碼,也就是說可以運行操作系統

 

SoPC(System On a Programmable Chip):可編程片上系統,上面4點的硬件配置是固化的,就是說51單片機就是51單片機,不能變爲avr,而avr就是avr,不是51單片機,他們的硬件是一次性掩膜成型的,能改的就是軟件配置,通俗說就是改代碼,本來是跑流水燈的,改下代碼,變成數碼管。而SOPC則是硬件配置,軟件配置都可以修改;可以自己構建硬件,這顆芯片稱爲“白片”,什麼芯片都不是,把硬件配置信息下載進去了,他就是相應的芯片了,可以讓他變成51,也可以是avr,甚至arm,同時SOPC是在SOC基礎上來的,所以他也是系統級的芯片,所以記得當把他變成arm時還得加外圍ROM,RAM之類的,不然就是MPU了。

 

CACHE():高速緩衝存儲器,其作用是爲了更好的利用局部性原理,減少CPU訪問內存的次數。簡單地說,CPU正在訪問的指令和數據,其可能會被以後多次訪問到,或者是該指令和數據附近的內存區域,也可能會被多次訪問。因此,第一次訪問這一塊區域時,將其複製到cache中,以後訪問該區域的指令或者數據時,就不用再從內存中取出。

 

MMU(Memory Management Unit):內存管理單元,它是中央處理器(CPU)中用來管理虛擬存儲器、物理存儲器的控制線路,同時也負責虛擬地址映射爲物理地址,以及提供硬件機制的內存訪問授權,多用戶多進程操作系統。

 

TIPS:

CPU與MCU區別:CPU指代的是運算單元;

 

MCU與MPU區別:典型的MCU通常使用片內flash存儲器來存儲和執行程序代碼。而MPU沒有存儲空間的限制,MPU使用外部存儲器提供程序和數據空間。程序一般放在非易失性存儲器如NAND或者串行Flash內,啓動時,程序載入到外部DRAM中,然後開始執行。

 

SOC可以簡單看成MCU與MPU的結合版,但是實際情況往往很複雜,比如某些MPU內部也包含ROM和RAM,可以實現啓動階段的一部分功能(系統啓動過程,參見前文《不同嵌入式系統的啓動過程分析》);

 

CACHE分爲一級緩存、二級緩存、三級緩存,緩存級別越低,速度越快,當然價格也更高。

 

通常情況下,有沒有MMU可以看做區別SOC和MCU的特徵,沒有MMU一般就是MCU,包含MMU的是SOC。

 

最後,區分這些概念並沒有什麼亂用,只是爲了輔助理解不同型號的芯片工作流程。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章