当前位置:世界数码科技网 >> 热门转载 >> 文章正文

消失的单片机和微处理器的界限

发布于:2020-12-07 被浏览:3488次

MPU与MCU之间是否有明确的界限真的重要吗?

作者| Una

曾经,微处理器(MPU)和微控制器(MCU)是两种完全不同的设备。微控制器完成与“控制”相关的任务,并根据外部信号刺激做出响应。微处理器主要执行处理功能,对数据处理和计算能力要求较高。然而,由于内存架构的变化,它们之间的边界变得模糊。

事实上,微处理器和微控制器可以有多种区分方式,但业界尚未就其区分标准达成共识。然而,有些人得出结论,这两者之间的确切区别目前不再重要。

"近年来,单片机和微处理器的区别越来越模糊."西门子业务部门的嵌入式软件技术专家科林沃尔斯说,“最初,MCU在一个芯片上集成了CPU、内存和外围设备,如今大多数MCU依然如此,但因为MCU具有足够强大的功能来支持更复杂的应用程序,附加外部存储器的MCU也变得常见。”

计算芯片的两个市场

曾经有一段时间,计算机芯片被分成两个不同的市场,大部分芯片设备主要针对主流计算,性能是最主要的考虑因素,这些单片微型计算机被称之为“微处理器”,为个人计算机和更大的系统提供动力。

如今,我们可以在各种类型的笔记本电脑、台式机和服务器上看到它们。值得注意的是,它们是通用引擎,旨在运行任何数量的事先未知的程序。主存是DRAM,非易失性存储是硬盘或者固态硬盘。

在不太主流的嵌入式计算领域,需要中等的计算能力和特殊的用途。设计的程序可以在固件中运行,这样整个系统(包括程序和所有系统)就可以在装运前得到验证。内存需求会更有限。用来存储代码的SRAM和非易失性存储器可以和CPU集成在同一个芯片上。关键是实时响应通常很重要。

嵌入式计算机也倾向于在有特殊I/O要求的环境中使用,有些可能是驱动电机,有些可能是处理声音或读取传感器。把特殊的外设接口硬件和CPU、内存集成在同一个芯片上是非常有效的,会产生各种不同特性的芯片。

总的来说,CPU与SRAM、非易失性存储器和专用外设集成在一起的被称之为“微控制器”。

到现在微处理器已经发展到64位,而微控制器还是8位以上,只是中间发生了一些变化,使得两者的区别更加模糊。

集成式闪存是MCU的重要特征,不过这类闪存尚未在拥有最先进节点的微控制器上使用,因此许多以微控制器形式销售的设备都使用外部闪存而不是嵌入式闪存,此外还使用外部DRAM。

实际上,一个叫做“阴影”的过程可以从外部闪存中获取代码,将其复制到动态随机存取存储器中,然后从其中执行代码。为了提高性能,还可以包括缓存。这使得CPU/内存子系统与MPU几乎无法区分。

所以现在单片机就是MPU?已经没有区别了吗?

当下可区分MCU与MPU的因素

如今的MCU和MPU十分相似,但依然在很多方面有一些细微的区别,这包括CPU功能、位数、操作系统、时序要求、核心数量等方面。

在CPU功能上,如果CPU有复杂的流水线、预测执行等超标量功能,可以看作是MPU,但是变换的确切位置没有明确定义。

8位设备更容易被认为是MCU,64位设备更容易被认为是MPU。但最早的MPU是4位,与其说是决定性特征,不如说更像是历史问题。

也可以根据一台电脑可以运行的操作系统来分类。如果运行Linux,可以叫MPU。如果只允许一个小的实时操作系统,甚至只运行裸机,那就可以叫MCU了,给能运行Linux的设备留了很多中间地带。在时序上,单片机通常用于要求硬实时或软实时响应的应用,而微处理器不能用于此目的。

一般多核处理器也算MPU,尤其是核相同,管理对称的时候。但专用设备可能有多个处理器,一些专用于数字信号等特定任务的处理器也会被视为MCU,因此以内核数量来判断是MPU还是MCU并不是一个准确的依据。

从使用目的来看,可以认为通用设备是MPU,单用设备是MCU,但实际上只和设备的使用方式有关。如果使用任何设备都没有明确的使用目的,那当时怎么叫呢?

一般全功能MPU没有专门的外围设备,很大程度上是因为它们是通用的,而不是特定的应用。所以你可能会想,只要有这样的外围设备,就是MCU,但事实并非如此,外围设备少不代表就是MPU。

从以上分析来看,每个特征因素都有缺陷,结果不尽人意。行业专家怎么看?

MCU和MPU已成过时的术语

Cadence IP集团产品营销总监马克格林伯格(Marc Greenberg)表示:“我不知道MCU和MPU之间的区别是否有官方定义。简单搜索了一下,好像是MCU在管芯上存在NVM,但是各种MPU都有NVM的一些位,MPU也可能在同一个管芯上有MCU。那是什么?最小的无缓存处理器可能仍然有一些寄存器和静态随机存取存储器。用RTL编码的定序器和从rom执行的通用处理器真的有区别吗?很明显,MCU和MPU的区别有些随意,也就是说界限不清,甚至是任意的。一想到MPU,我就想到用来控制通用电脑的设备,比如台式机、服务器、平板等。”

Cadence的高级工程师Grant Martin说:“根据维基百科,MCU是单个金属氧化物半导体集成电路芯片上的小型计算机,MPU是计算机处理器,将中央处理器在一个或多个集成电路上的功能与MOSFET结构结合在一起。”

“如果深入研究的话,MPU具有CPU的功能,所以是计算机处理器,而MCU是比较完整的计算机,也就是说MCU包含MPU,这是违背常识的。多处理器核的16路服务器处理器不再是MPU了吗?但是多核异构SoC?”

「举例来说,一部移动电话可能包括多个应用处理核心、多个用于音频、视频和图像处理的数字信号处理器、一个或两个用于在屏幕上显示图像的图形处理器,以及一个只作娱乐用途的神经网络处理单元——MCU。从我的角度来看,行业应该放弃这些过时的术语,使用更精确更具描述性的术语。”Grant Martin继续说。

西门子业务部门Mentor的高级产品经理杰夫汉考克(Jeff Hancock)表示:“从系统软件的角度来看,MCU有望适合直接解释和控制硬件传感器和执行器。这种访问通常涉及到一致可靠的指令定时,与一般MPU的要求相矛盾。一般MPU是为了优化吞吐量而设计的,而MCU通常是为了优化延迟。所以MPU更适合处理大型数据库,MCU更适合精细机电控制。

杰夫汉考克也说过,“外存和缓存肯定会改变单片机的标准,但单片机相当于MPU还有很长的路要走。特别是,并非所有微处理器中的所有处理单元都专门使用外部存储器,隔离的子系统可以用来构建允许关键工作负载和不太关键的应用级系统并行继续运行的系统。”

“从软件工程师的角度来看,这是一个有趣的挑战。一个不连续的地方可能有两个存储区。集成内存虽然小,但是比较快,最好留给需要高速的代码,比如实时操作系统。这意味着开发工具必须足够灵活,能够将代码正确映射到内存,RTOS必须足够小,能够容纳片内内存。”西门子业务部门的嵌入式软件技术专家Walls补充道。

托尔图加逻辑公司的高级硬件安全工程师尼科尔弗恩说:“过去,微控制器与嵌入式系统联系在一起。在嵌入式系统中,低成本、低功耗比性能更重要。但是随着移动计算和物联网边缘计算的出现,现在很多嵌入式系统都需要复杂的处理,这就导致了在嵌入式领域,MCU产品看起来更像MPU,为带外接内存和缓存的设备提供了更高的性能和可配置性。在这种情况下,术语MCU和MPU的区别只取决于CPU系统是否集成。”

Arm低功耗物联网业务高级总监托马斯恩瑟古埃(Thomas Ensergueix)也表示:“近年来,单片机和微处理器之间的界限已经模糊。单片机和MPU的一个主要区别就是软件和开发。微处理器将支持丰富的操作系统,如Linux和相关的软件堆栈,而微控制器通常侧重于裸机和RTOS。在决定哪个硬件平台,MCU还是MPU最有效之前,由软件开发人员决定哪个软件环境和生态系统最适合他们的应用。

随着现在MCU已经过渡到32位,我们还看到了性能的急剧提高,这有助于缩小MCU和MPU之间的差距。:比如很多基于Arm Cortex-M7的单片机可以提供100多个Dhrystone MIPS或者CoreMark的2000多个点。这些设备中的许多还具有非常大的内置存储器或提供快速接口来连接外部存储器。这样就保证了性能和内存不再是MCU的瓶颈,更接近低端MPU。”

小结

MPU和单片机之间有明确的界限真的很重要吗?也许没关系。因为不管我们怎么称呼它,应用程序都有附带的要求,这些要求将决定使用哪种设备。

这篇文章是由https://semiengineering.com/mpu-vs-mcu/编辑的

原作者布瑞恩莫耶

封面摄影师

标签: 设备 多个 存储器
最新文章
猜你喜欢
本类推荐
TOP 10