半导体行业相关从业者会经常遇到CPU、MPU、MCU和SOC这些名词,但是容易混淆,而且网上各个版本的解释都差强人意。下面我按照自己的理解,解释一下他们之间的异同。
概念:
1,CPU -- Central Processing Unit
CPU
中央处理器,它是的运算核心和控制核心,差不多所有CPU的执行原理可以分为四个阶段:提取(Fetch)、解码(Decode)、执行(Execute)和写回(Writeback)。CPU更强调“核心”位置,专注于运算和程序执行。
2,MCU -- Micro Control Unit
MCU
微控制器,即将CPU、RAM、ROM和定时器、WDT、I/O接口等集成在一片芯片上,形成芯片级的最小系统,可以加一些简单的外围器件(电阻、电容等)即可运行代码。我们平常所说的单片机就是属于这一类。
3,MPU -- Micro Processor Unit
MPU
微处理器,通常可以看做一个功能强大的cpu,通常主频较高、算力强。结构上看,一般会有MMU(存储管理单元)、FPU(浮点处理单元)、二级Cache等高级处理模块。因此有条件执行复杂多样的大型程序或系统。至于有无RAM/ROM片上存储器,并非区别MPU/MCU的关键点,MPU同样也可以有片上RAM/ROM,但是由于其强大的处理能力,出于成本考虑,片上存储空间显然不会满足需求,那么外挂存储就是一种必然,而且通常是DDR3,DDR4这种速度比较快的、适用于运算比较复杂的存储器。
4,SOC -- System on Chip
SOC
片上系统,可以认为是将mcu集成化和mpu强处理能力优点二合一形成的系统级芯片。因此,它的结构更复杂,外设更多样,可能集成特定功能模块IP、模拟或数模混合IP。
区别:
1,CPU与MCU/MPU/SOC的区别
CPU只包含运算处理核心,而MCU/MPU/SOC不仅有处理核心(CPU/DSP等),还包含外围RAM/ROM/IO等外设。
2,MCU与MPU的区别
网上一些资料认为mpu等同于功能强大的cpu,是不能直接运行代码的。
个人看法:这种观点并不恰当。我理解的MPU和MCU的区别,不在于有无片上RAM/ROM,MPU同样也可以有片上RAM/ROM,但是由于其强大的处理能力,出于成本和工艺等方面的考虑,片上存储空间显然不会满足需求,那么外挂存储就是一种必然。
所以MCU和MPU的区别就在于其运算核心的处理能力、运行主频和运行大程序、系统时是否需要外挂存储器。
3,MCU/MPU与SOC的区别
SOC可以认为是将mcu集成化和mpu强处理能力优点二合一形成的系统级芯片。功能更加全明复杂,集成更多功能,尤其是模拟模块及功能模组的混合。其功能更强、集成规模更大。
总结:
这几个概念,尤其是MCU/MPU/SOC之间的界限并不明显,随着技术的发展,重叠区间也越来越大。但如果用关键字来总结一下他们的特点就是:
CPU —— 核心 ;
MCU —— 简洁 ;
MPU —— 强大 ;
SOC —— 综合 ;