中文 英语

MPU Vs. MCU

定义模糊不清,但争论仍在继续。

受欢迎程度

曾几何时,微处理器和微控制器是截然不同的设备。你面对的是哪一个从来都不是问题。但在现代设备中,内存结构的变化混淆了这种区别。

有很多方法微处理器而且微控制器可能是微分的。但是,对于应该如何实现这一点,并没有普遍的共识,一些人——尽管肯定不是所有人——已经得出结论,任何区别可能都不再那么重要了。

“近年来,MCU和MPU之间的区别变得越来越模糊,”西门子业务部门Mentor的嵌入式软件技术专家Colin Walls说。“最初,MCU将CPU、内存和外围设备集成在一块芯片上。如今,尽管这种情况仍然存在,但附加额外的外部存储器是非常常见的,因为mcu足够强大,可以支持更复杂的应用程序。”

两个市场的故事
曾几何时,计算芯片瞄准了两个截然不同的市场。在更明显的方面,设备针对的是主流计算,其中性能是首要考虑因素。这些被称为“微处理器”的单芯片计算机为个人电脑和更大的系统提供动力。

今天,我们在各种类型的笔记本电脑、台式机和服务器上都能看到它们。关键是它们是通用引擎,旨在运行任何数量的未知程序。主内存是DRAM,非易失性存储是硬盘驱动器(或SSD)。

在不太引人注目的一面是嵌入式计算世界。在这里,需要具有特定用途的适度计算能力。预期的程序可能会在固件中实现,这样整个系统-程序和所有-都可以在发货前进行验证。内存需求非常有限,用于代码存储的SRAM和非易失性内存可以集成到与CPU相同的芯片上。关键的是,实时响应通常很重要。

这个市场也倾向于用于具有非常特定的I/O需求的环境。有些人可能在驾驶马达。其他可能是处理声音或读取传感器。将专用的外围接口硬件集成到与CPU和内存相同的芯片上变得非常有用。这导致了各种不同特性的芯片。但总的来说,集成了SRAM、非易失性存储器和专用外设的cpu被称为“微控制器”。

微处理器已经飙升到64位,而8位微控制器仍然很多。但在中间,发生了一些变化,使区别变得不那么明显。

虽然闪存的集成不是唯一的决定因素,但它是微控制器的一个重要特征。但是在最先进的微控制器节点上还没有闪存,所以许多作为微控制器销售的设备都使用闪存外置闪存而不是嵌入式闪存。他们也可能使用外部DRAM。

事实上,一个叫做“阴影”的过程从外部闪存中获取代码并将其复制到DRAM中,然后从DRAM中执行代码。为了提高性能,可能会包含缓存。这使得CPU/内存子系统与微处理器几乎没有区别。那么它现在是微处理器了吗?难道不再有有意义的区别了吗?


图1:顶部是微处理器系统的典型简化图像。DRAM和硬盘驱动器是芯片外部的。底部左边是一个较旧的微控制器,右边是一个较新的微控制器,看起来与微处理器没有太大区别。资料来源:Bryon Moyer/Semiconductor Engineering

可能的区分因素包括:

  • CPU能力:如果CPU有一个复杂的管道,具有推测执行和其他超标量能力,那么它就有资格成为微处理器。然而,这种转变究竟发生在哪里还没有很好的定义。
  • 更多的位: 8位设备更可能被认为是微控制器,而64位设备更可能被认为是微处理器。但话说回来,第一个微处理器是4位的,所以这更像是一个历史问题,而不是一个定义特征。
  • 操作系统我们可以根据机器可以运行的操作系统的类型来分类。如果它运行Linux,那么你可以称它为微处理器。如果它只能运行更小的实时操作系统,甚至是裸机,那么你可以称它为微控制器。这为可能运行Linux的设备留下了许多中间地带。
  • 时间要求微控制器通常(虽然不完全)用于需要硬实时或软实时响应的应用程序。微处理器通常不能用于此目的。
  • 多核一个多核处理器更可能被认为是一个微处理器,特别是如果核心是相同的并且是对称管理的。但专门的设备可能有多个处理器,其中一些专用于特定的任务,如数字信号处理。它们可能被认为是微控制器,但真的是吗?此外,一个设备并不一定是多核的微处理器,所以这真的不是一个好的决定因素。
  • 目的你可以说通用设备是微处理器,而单一用途设备是微控制器。但这都是关于如何使用这个设备。有两种方式都可以使用的设备。在不知道如何使用的情况下,你会给这个设备起什么名字呢?
  • 外围设备:这使得专用外设成为可能的区别。完全的微处理器可能不会有这些外围电路,很大程度上是因为它们是用于通用用途的,而不是绑定到特定的应用程序上。所以你可能会说,如果它有这样的外围设备,它就是一个微控制器。但事实并非如此:缺少外设并不意味着它是微处理器。

每一个明显的特征都失败了,或者充其量不能令人满意。那么这给我们留下了什么?我们询问了许多人的意见,没有达成任何共识。以下是他们的一些想法。

Marc Greenberg是Cadence的IP团队产品营销总监“我不知道微控制器和微处理器之间的区别是否有某种‘官方’工程定义。快速搜索似乎揭示了NVM在模具上的存在使其成为一个MCU,但在各种微处理器上都有NVM。微处理器可能在同一个芯片上也有mcu,那是什么呢?最小的无缓存处理器可能仍然有一些寄存器和SRAM。用RTL编码的排序器与从ROM执行的通用处理器真的有什么不同吗?所以微控制器和微处理器之间的区别有点随意,这意味着它可以是你想要的任何东西。当我想到微处理器时,我想到的是控制通用机器(如台式机、服务器、平板电脑等)的大型处理器,以及作为无头或具有较小特定用途ui的嵌入式设备核心的微控制器。”

格兰特·马丁,Cadence公司的杰出工程师:”来自维基百科,每个人都有一句话。微控制器是在单一金属氧化物半导体集成电路芯片上的小型计算机。微处理器是一种计算机处理器,它在一个(或多个)MOSFET结构的集成电路(IC)上集成了中央处理单元的功能。这两种说法都没什么用,但却指出了试图区分它们的任意性。如果你深入一点,微处理器有CPU的功能,所以它是“计算机处理器”,而微控制器是一个更完整的“计算机”,这意味着微控制器包括微处理器,这与惯例相反。但是,拥有多个处理器“核心”的16路服务器处理器还算微处理器吗?一个多路异构SoC,例如,一个手机-可能包括多个应用程序处理核心,多个用于音频、视频、图像处理的dsp,一个或两个用于在屏幕上渲染图像的GPU,以及一个神经网络处理单元,只是为了好玩-一个“微控制器”?在我看来,是时候让这个行业放弃这些有点过时的术语了,取而代之的是使用更精确、更冗长、更具描述性的术语(我称之为“无聊精确”)。”

西门子公司Mentor的高级产品经理Jeff Hancock说:“从系统软件的角度来看,微控制器有望适用于直接解释和控制硬件传感器和执行器的应用程序。这样的访问通常涉及一致和可靠的指令定时,这与通用微处理器的需要是不一致的。通用微处理器的目标是优化吞吐量,而微控制器通常优化延迟。因此,如果您需要一个大型数据库,微处理器可能是合适的。如果你想要精细的电机控制,一个微控制器是适合你的。外部存储器和缓存当然可以破坏微控制器的决定论,但这距离宣布它等同于微处理器还有很长的路要走。特别地,外部存储器的存在并不要求MCU中的所有处理单元都独占使用外部存储器,甚至根本不需要使用外部存储器。系统可以由独立的子系统构建,允许关键工作负载与使用更大外部内存和缓存的不那么关键的应用程序级系统并行进行。”

导师的墙从软件工程师的角度来看,这是一个有趣的挑战。在不连续的地址上可能有两个内存区域。板载内存虽小,但速度更快,因此最好是为那些得益于最佳速度的代码保留,比如实时操作系统。这有两个含义:开发工具必须足够灵活,才能将代码正确地映射到内存上,RTOS必须足够小(通常非常可扩展),以适应片上内存。”

Tortuga Logic高级硬件安全工程师Nicole Fern:“微控制器在历史上一直与嵌入式系统相关联,其中低成本和低功耗的要求比性能更重要。但随着移动计算和物联网边缘计算的出现,现在许多嵌入式系统都需要复杂的处理。这导致MCU产品看起来更像mpu,具有外部内存和缓存选项,提供更高的性能和可配置性,但针对嵌入式空间进行营销。在这些情况下,MPU和MCU之间的区别可能只取决于CPU被集成到的系统谱系。”

Thomas Ensergueix, Arm低功耗物联网业务高级总监“近年来,微控制器和微处理器之间的界限越来越模糊。微处理器和微处理器的一个关键区别是软件和开发。MPU将支持丰富的操作系统,如Linux和相关的软件堆栈,而传统的MCU将专注于裸金属和rtos。在决定哪个硬件平台、MCU或MPU工作得最好之前,软件开发人员应该决定哪个软件环境和生态系统最适合他们的应用程序。随着现代mcu已经过渡到32位,我们也看到了性能的急剧提高,这有助于缩小mcu和mpu之间的差距。例如,许多基于Arm Cortex-M7的mcu提供超过100个Dhrystone MIPS,或超过2000个CoreMark点。许多这样的设备也有一个非常大的内置存储器或提供一个快速接口来连接外部存储器。这确保了性能和内存不再是mcu的瓶颈,并使其更接近低端mpu。

结论
所以最后,我们是否确定了区别真的重要吗?可能不会。应用程序带有需求,而正是这些需求决定了使用哪种设备——不管我们如何称呼它。

相关的
漫威宇宙的困境
微控制器供应商正在打破束缚他们多年的框框。新的内存类型和RISC-V会带来下一轮的变化吗?
与记忆的关系越来越复杂
改变与内存相关的编程范式的压力越来越大,但到目前为止,经济上的理由阻碍了进展。
单片机知识中心
MPU知识中心



1评论

米歇尔·吉莱 说:

对我来说,区别是简单而明确的:MCU没有MMU,所以没有虚拟内存寻址;一个MPU确实有一个MMU,因此是虚拟内存寻址。

留下回复


(注:此名称将公开显示)

Baidu