在嵌入式开发中,我们经常会遇到一些专业术语,例如 CPU、MPU、MCU 和 SoC 等。这些专业术语在嵌入式开发领域中非常常见,也经常作为面试中的知识点进行提问。下面我们将详细介绍它们之间的特点和区别。
CPU
CPU 是 Central Processing Unit 的缩写,计算机的运算控制核心就是 CPU。CPU 由运算器、控制器、寄存器及相应的总线构成。一个众所周知的三级流水线:取址、译码、执行的对象就是 CPU。CPU 从存储器或高速缓存存储器中取出指令,将其放入指令寄存器,并对指令进行译码,然后执行指令。计算机的可编程性实际上就是指对 CPU 进行编程。
在嵌入式开发中,通常会使用微处理器或微控制器作为 CPU。微处理器主要在个人计算机和服务器等领域使用,具备较高的处理能力和通用性。而微控制器主要用于嵌入式系统,具备较低的功耗和成本,集成了更多的外设和接口,以满足特定的嵌入式应用需求。
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。
SOC
SOC是System on Chip的缩写,指的是片上系统。可以这样对比来看:MCU只是芯片级的芯片,而SOC是系统级的芯片,它集成了MCU和MPU的优点,即拥有内置RAM和ROM的同时又像MPU那样强大,它可以存放并运行系统级别的代码,也就是说可以运行操作系统(以Linux OS为主)
另外,SOPC也是一个值得了解的概念,与上述几项概念相比,SOPC的出现频率并不是那么高,但这并不影响它的重要性。SOPC是System On a Programmable Chip的缩写,即 可编程片上系统,SOPC与MCU、MPU、SOC最明显的区别在于:可更改硬件配置,也就是说自己构造芯片。
举个例子说明便于理解,单片机的硬件配置是固化好了的, 我们能够编程修改的就是软件配置,本来是串口通信功能,通过修改代码变成AD采样功能,也就是说硬件配置是固定了的,我们只能通过修改软件来选择其中的一项或多项功能;而SOPC可以修改硬件配置信息使其成为相应的芯片,可以是MCU,也可以是SOC。
结语
在嵌入式开发中,接触频率较多的一般是MCU和SOC,而现在STM32也几乎成为了MCU的代名词,SOC目前则以Cortex-A系列为主,开发难度也有所差异,对于嵌入式从业者来说,弄清楚这些专业概念是必备的。
以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !