《嵌入式 - 嵌入式大杂烩》一文搞懂CPUMPUMCUSOC的联系与区别

Posted Bruceoxl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《嵌入式 - 嵌入式大杂烩》一文搞懂CPUMPUMCUSOC的联系与区别相关的知识,希望对你有一定的参考价值。

1 CPU

CPU(Central Processing Unit),是一台计算机的运算核心和控制核心。CPU由运算器、控制器和寄存器及实现它们之间联系的数据、控制及状态的总线构成。主要功能是解释计算机指令以及处理计算机软件中的数据。计算机的可编程性主要是指对中央处理器的编程。

1970年代以前,中央处理器由多个独立单元构成,后来发展出由集成电路制造的中央处理器,这些高度收缩的组件就是所谓的微处理器,其中分出的中央处理器最为复杂的电路可以做成单一微小功能强大的单元,也就是所谓的核心。

在这里插入图片描述

差不多所有的CPU的运作原理可分为四个阶段:提取(Fetch)、解码(Decode)、执行(Execute)和写回(Writeback)。 CPU从存储器或高速缓冲存储器中取出指令,放入指令寄存器,并对指令译码,并执行指令。所谓的计算机的可编程性主要是指对CPU的编程。


2 MPU

MPU (Micro Processor Unit),叫微处理器**,是可编程特殊集成电路。MPU只是一个处理器,需要搭配内存等非常多的其他外设才可以构成一个系统。MCU内部有处理器、内存、Flash及其他模块,仅仅需要搭配少量外设就可以构成一个系统。

在上世纪80年代非常流行,那时的微型计算机、游戏机都是使用MPU。比如Motorola公司的68000芯片就是一款主流的微处理器(MPU)。下图是一款Alpha Micro AM-1000系列的微型计算机电路板,电路板右侧中间最大的芯片就是MPU 68000。
在这里插入图片描述

后来MPU逐渐式微,可以认为MPU发现到现在只剩下了intel、AMD公司x86系列CPU。这类CPU也越来越复杂,称之为“微处理器”似乎不恰当了。在个人电脑领域,可以看到类似下图的主板。主板上插上CPU、内存条、声卡等等就构成了一台计算机。整个主板体积庞大、制造复杂。

在这里插入图片描述



3 MCU

MCU(Micro Control Unit),叫微控制器,是指随着大规模集成电路的出现及其发展,把中央处理器、存储器、定时/计数器(timer/counter)、各种输入输出接口等都集成在一块集成电路芯片上的微型计算机,形成芯片级的芯片。与应用在个人电脑中的通用型微处理器相比,它更强调自供应(不用外接硬件)和节约成本。它的最大优点是体积小,可放在仪表内部,但存储量小,输入输出接口简单,功能较低。

MCU的发展经历过8位8051单片机、16位AVR单片机、32位STM单片机。

MCU内部集成了处理器和各类模块,比如USB控制器、UART控制器、内存、Flash等等。只需要外接少量的器件,就可以搭建一个电子系统。

在这里插入图片描述



4 SoC

单片系统或片上系统(英语:System on a Chip,缩写:SoC)是一个将电脑或其他电子系统集成到单一芯片的集成电路。单片系统可以处理数字信号、模拟信号、混合信号甚至更高频率的信号。单片系统常常应用在嵌入式系统中。单片系统的集成规模很大,一般达到几百万门到几千万门。

SoC 可以基于 MCU 或 MPU,并将提供执行某些类型的应用程序所需的一切。例如,对于图像处理,SoC 可能具有 MPU、数字信号处理器 (DSP) 和/或图形处理单元 (GPU) 的组合,用于执行快速算法计算,以及用于驱动显示器和 HDMI 或其他音频/视频输入/输出技术。SoC 可在单个微型 IC 上实现整个芯片系统。

在这里插入图片描述



5 MPU与MCU的区别

微控制器 (MCU) 往往比微处理器 (MPU) 更便宜、设置更简单、操作更简单。MCU 可以被视为单芯片计算机,集成了ROM、RAM等在芯片内部,而 MPU 则具有支持各种功能(如内存、接口和 I/O)的外围芯片,可任意更换不同厂商的同种类型外设。微控制器和微处理器之间的一个重要区别是微处理器通常会运行操作系统。操作系统允许多个进程通过多个线程同时运行。需要驱动程序来支持外围设备。

MCU将运行“裸机接口”,这意味着没有操作系统。没有操作系统,MCU一次只能运行一个控制回路。从软件的角度来看,这意味着单个线程在微控制器的处理器或中央处理单元 (CPU) 上运行。

MCU 仅具有与外部世界交互的基本选项。MCU 可能有 I2C、SPI、UART(串行),有时还有低级 USB 连接。这些基本接口通常仅用于对 MCU 进行编程。MCU 的目的是永远运行一个相当简单的控制循环,或者直到它中断或以其他方式停止。MCU 往往比 MPU 便宜。MCU并非不可能进行无线通信,但请记住,MCU一次只能运行一个线程。要得到服务,任何其他输入或进程都必须等待单线程或控制循环先完成它正在执行的操作。除了 I2C、SPI 或 UART 等基础接口外,微处理器往往还有许多接口。MPU 也可能有更复杂的接口,如以太网、蓝牙、WiFi、闪存等。

越来越难判断一个设备是 MCU 还是 MPU,因为如今 MCU 可以做很多事情,包括更复杂的外围设备。MCU 和 MPU 之间的区别变得不那么明显,因为现在一些 MCU 带有用于更复杂外设的简单软件驱动程序,并且可以找到更多具有片上集成外设的 MPU。

最后,送上一张芯片的思维导图。
在这里插入图片描述




欢迎访问我的网站:

BruceOu的哔哩哔哩
BruceOu的主页
BruceOu的博客
BruceOu的CSDN博客
BruceOu的简书

接收更多精彩文章及资源推送,请订阅我的微信公众号:

在这里插入图片描述

以上是关于《嵌入式 - 嵌入式大杂烩》一文搞懂CPUMPUMCUSOC的联系与区别的主要内容,如果未能解决你的问题,请参考以下文章

嵌入式&单片机一文带你搞懂电机驱动模块

嵌入式数据库sqlite3进阶篇-如何用C语言操作sqlite3,一文搞懂

一文搞懂 USB 设备端驱动框架

《嵌入式 - 嵌入式大杂烩》基于VS Code开发嵌入式

嵌入式大杂烩周记 | 第 2 期

嵌入式大杂烩周记 | 第 4 期