SoPC与MCU、MPU、SoC的区别

处理器/DSP

872人已加入

描述

1. 概念

CPU(Central Processing Unit)CPU(Central Processing Unit),是一台计算机的运算核心和控制核心。CPU由运算器、控制器和寄存器及实现它们之间联系的数据、控制及状态的总线构成。众所周知的三级流水线:取址、译码、执行的对象就是CPU,差不多所有的CPU的运作原理可分为四个阶段:提取(Fetch)、解码(Decode)、执行(Execute)和写回(Writeback)。

CPU从存储器或高速缓冲存储器中取出指令,放入指令寄存器,并对指令译码,并执行指令。所谓的计算机的可编程性主要是指对CPU的编程。MPU (Micro Processor Unit)MPU (Micro Processor Unit),叫微处理器(不是微控制器MCU,很多人会把微处理器和微控制器混淆),通常代表一个功能强大的CPU(暂且理解为增强版的CPU吧),但不是为任何已有的特定计算目的而设计的芯片。这种芯片往往是个人计算机和高端工作站的核心CPU。例如Intel 的X86,ARM的一些Cortex-A芯片如飞思卡尔i.MX6、全志A20、TI AM335X等都属于MPU。

MCU(Micro Control Unit)MCU(Micro Control Unit):叫微控制器,其实就是我们平常说的单片机。是指随着大规模集成电路的出现及其发展,将计算机的CPU、RAM、ROM、定时计数器和多种I/O接口集成在一片芯片上,形成芯片级的芯片,比如51、STC、AVR、Cortex-M这些芯片,内部除了CPU外还有RAM、ROM,也就是在一块芯片中集成了整个计算机系统,可以直接加简单的外围器件(电阻,电容)就可以运行代码了。

它本质上仍是一个完整的单片机,有处理器,有各种接口,所有的开发都是基于已经存在的系统架构,应用者要做的就是开发软件程序和加外部设备。而像ARM(Cortex-A系列)直接放代码是运行不了的,因为它本质上只是增强版的CPU,必须添加相应的RAM和ROM。

SoC(System on Chip)SoC,System on Chip,是指片上系统。一个能够实现一定功能的电路系统由多个模块构成, 如处理器、接口、存储器、模数转换器等等。这些功能模块可以由分立的器件来实现,然后在印刷电路板(PCB)上组合起来, 最终形成片上系统。

MCU只是芯片级的芯片,而SoC是系统级的芯片,它既MCU那样有内置RAM、ROM同时又像MPU那样强大,不单单是放简单的代码,可以放系统级的代码,也就是说可以运行操作系统(以Linux OS为主)(将就认为是MCU集成化与MPU强处理力各优点二合一)。Soc集成了很多个MCU的功能,以前的由多个MCU协同干的事情被集成了,MCU没有了,取而代之的是对外的IO引脚,连接IO引脚就可以实现交互,完成以前MCU的功能。 因此,使用Soc集成化程度更高、体积更小、压缩成本。

MPU

SoPC(System On a Programmable Chip)SOPC,英文是System 0n Programmable Chip,它是一种SOC(System 0n Chip)的解决方案。是由Altera公司提出的,使用可编程逻辑器件(FPGA)构造片上系统。SOPC是SOC的一种解决方案,也属于SOC的一种,这种解决方案的优点是:灵活性高,可扩展性强,开发周期短,不需要掩膜和流片。缺点是:单片成本高。SoPC与MCU、MPU、SoC最明显的区别在于:可更改硬件配置,也就是说自己构造芯片。

2. 区别

2.1 MCU和MPU的区别

MCU和MPU都是CPU发展出来的分枝之一。

MCU集成了片上外围器件,可以直接加简单的外围器件(电阻,电容)就可以运行代码了。它本质上仍是一个完整的单片机,有处理器,有各种接口,所有的开发都是基于已经存在的系统架构,应用者要做的就是开发软件程序和加外部设备。

MPU不带外围器件(例如存储器阵列),是高度集成的通用结构的处理器,是去除了集成外设的MCU。MCU如ARM的Cortex-A系列,直接放代码是运行不了的,因为它本质上只是增强版的CPU,必须添加相应的RAM和ROM。

MPU

2.2 CPU与SoC的区别

SoC可以认为是将MCU集成化与MPU强处理力各优点二合一,其中MCU是CPU集成了各类外设,MPU是增强版的CPU。

MPU

可以从下图中直观地看出CPU与SoC的区别。

MPU

目前芯片的发展方向是从CPU到SoC,现在已经没有纯粹的CPU了,都是SoC。ARM出卖的内核其实就是CPU(当然还需要总线),各种外设是半导体厂商自己添加的。

2.3 SoPC与MCU、MPU、SoC的区别

SoPC与MCU、MPU、SoC最明显的区别在于:可更改硬件配置,也就是说自己构造芯片。举个例子说明便于理解,单片机的硬件配置是固化好了的, 我们能够编程修改的就是软件配置,本来是串口通信功能,通过修改代码变成AD采样功能,也就是说硬件配置是固定了的,我们只能通过修改软件来选择其中的一项或多项功能;而SoPC可以修改硬件配置信息使其成为相应的芯片,可以是MCU,也可以是SoC。

编辑:黄飞

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分