CPU、MPU、MCU和SOC还傻傻分不清楚 看这篇文章就够了

💡 原文中文,约1600字,阅读约需4分钟。
📝

内容提要

在嵌入式开发中,常见的专业术语有CPU、MPU、MCU和SoC。CPU是计算机的运算控制核心,通常使用微处理器或微控制器。MPU是功能强大的CPU,如ARM的Cortex-A芯片。MCU是集成了CPU、RAM和ROM的微控制器,如51、STC、Cortex-M芯片。SoC是片上系统,集成了MCU和MPU的优点,可运行操作系统。SOPC是可编程片上系统,可更改硬件配置。在嵌入式开发中,常接触MCU和SoC,了解这些概念是必要的。

🔎

延伸解读

从“能否直接跑代码”区分MCU与MPU

文章指出,MCU内部集成了CPU、RAM和ROM,添加简单器件构成最小系统即可运行代码;而MPU如Cortex-A系列本质是增强版CPU,必须外接RAM和ROM才能运行程序。这一差异直接影响硬件设计复杂度:选MCU可降低外围存储需求,选MPU则需配套存储与更复杂的系统设计。

SoC是系统级芯片,定位介于MCU与MPU之间

文章将MCU称为芯片级芯片,SoC称为系统级芯片。SoC既内置RAM和ROM,又具备MPU的强大性能,可存放并运行操作系统,且以Linux为主。这意味着在需要运行完整OS的嵌入式场景中,SoC比单纯MPU更集成,比MCU性能更高,选型时需权衡集成度与系统复杂度。

SOPC的核心差异在于硬件可配置

文章用单片机举例:单片机硬件配置固化,只能通过软件选择串口或AD等功能;而SOPC可修改硬件配置,使其成为MCU或SoC。这提示读者,SOPC的灵活性来自硬件层面的可重构,适合需要定制硬件功能的场景,但文章也指出其出现频率不如其他概念高。

❓

Q&A

CPU、MPU、MCU和SoC这几个嵌入式术语分别是什么意思?

CPU是中央处理器,是计算机的运算控制核心;MPU是微处理器,通常指功能强大的CPU,如ARM Cortex-A系列;MCU是微控制器,集成了CPU、RAM、ROM等,可直接运行代码;SoC是片上系统,集成了MCU和MPU的优点,可运行操作系统。

MPU和MCU有什么区别?

MPU是微处理器,功能强大,通常用作计算机和高端系统的核心CPU,但本身不集成RAM和ROM,不能直接运行代码;MCU是微控制器,内部集成了CPU、RAM和ROM,可直接运行代码,功耗和成本较低,适合嵌入式应用。

为什么ARM Cortex-A芯片不能直接运行代码?

因为ARM Cortex-A系列属于MPU(微处理器),本质上只是增强版的CPU,内部没有集成RAM和ROM,必须外接相应的RAM和ROM才能运行代码。

SoC和MCU有什么不同?

MCU是芯片级的芯片,集成了CPU、RAM、ROM等,但处理能力有限;SoC是系统级的芯片,集成了MCU和MPU的优点,既内置RAM和ROM,又像MPU一样强大,可以运行操作系统(如Linux)。

SOPC是什么?它和普通SoC有什么区别?

SOPC是可编程片上系统,与普通SoC最明显的区别在于可以更改硬件配置,即自己构造芯片。普通SoC的硬件配置是固定的,只能修改软件;而SOPC可以修改硬件配置使其成为MCU或SoC等不同类型的芯片。

嵌入式开发中经常接触的是哪类芯片?

在嵌入式开发中,接触频率较高的一般是MCU和SoC。MCU方面STM32几乎成为代名词,SoC方面则以Cortex-A系列为主。

🏷️

标签

➡️

继续阅读