MCU MPU之间的共同点,曾经是两个完全不同的设备。微控制器完成与控制相关的任务,并根据外部信号刺激进行反应。微处理器主要执行处理功能,对数据处理和计算能力要求较高。
但现在,由于内存架构的变化,两者之间的界限正变得模糊。例如,熟悉的ST和NXP已经推出了MPU,通过比较你也可以发现MCU和MPU之间有很多共同点。
事实上,微处理器和微控制器可以通过多种方式区分,但该行业尚未就其区分标准达成共识。但两者之间的准确区分已不再重要。
近年来,MCU和MPU之间的区别变得越来越模糊。最初,MCU将CPU、内存和外围设备集成到芯片中,现在大多数MCU仍然如此,但由于MCU有足够强大的功能来支持更复杂的应用程序,附加外部存储器的MCU也变得很常见。
计算芯片的两个市场
计算芯片的两个市场已经有一段时间了。计算芯片分为两个完全不同的市场。大多数芯片设备主要针对主流计算,性能是主要考虑因素。这些单片微型计算机被称为微处理器,为个人计算机和更大的系统提供动力。
如今,我们可以在各种类型的笔记本电脑、台式电脑和服务器中看到它们。值得注意的是,它们是通用引擎,旨在运行任何未知数量的程序。主内存为DRAM,非易失性存储为硬盘驱动器或固态硬盘。
在不那么主流的嵌入式计算世界中,需要适度的计算能力和特殊用途。设计好的程序可以在固件中运行,以便在发货前验证整个系统(包括程序和所有系统)。内存需求将受到更多的限制存储代码的SRAM和非易失性内存可以与CPU集成到同一芯片中。关键是实时响应通常非常重要。
嵌入式计算机也倾向于在有特殊I/O需求的环境中使用,有的可能驱动电机,有的可能处理声音或读取传感器。将专用外围设备接口硬件集成到与CPU和内存相同的芯片中是非常有效的,这将产生不同特性的各种芯片。
一般来说,CPU与SRAM、非易失性存储器和专用外设集成在一起,称为微控制器。
到目前为止,微处理器已经发展到64位,而微控制器仍然是8位居多,但中间发生了一些变化,使两者的区别更加模糊。
集成闪存是MCU的一个重要特征,但这种闪存没有用于最先进节点的微控制器上,所以许多以微控制器形式销售的设备使用外部闪存而不是嵌入式闪存,并使用外部DRAM。
事实上,一个叫做shadowing的过程可以从外部闪存中获取代码,并将其复制到DRAM中,然后执行代码,为了提高性能,还可以包括缓存。这使得CPU/内存子系统与MPU几乎没有区别。
区分MCU和MPU的因素
如今,MCU与MPU非常相似,但在许多方面仍存在一些细微的差异,包括CPU功能、位数、操作系统、时序要求、核心数量等。
在CPU功能方面,如果CPU具有复杂的装配线、预测执行和其他超标功能,则可视为MPU,但转换的确切位置尚未明确界定。
在位数上,8位设备更有可能被视为MCU,64位设备更有可能被视为MPU。但最早的是MPU是4位,这更像是历史问题,而不是决定性的特征。
也可以根据计算机可操作的操作系统进行分类。如果它运行Linux,它可以被称为MPU。如果它只允许较小的实时操作系统,甚至只运行裸机,它可以被称为MCU,这为可操作Linux的设备留下了许多中间区域。在时间顺序方面,MCU通常用于需要硬或软实时响应的应用程序,MPU通常不用于此目的。
一般来说,多核处理器也被视为MPU,特别是在核心相同和管理对称的情况下。然而,专用设备可能有多个处理器,一些专门用于数字信号等特定任务的处理器也被视为MCU,因此通过核心数量判断MPU或MCU并不是准确的基础。
从使用目的来看,可以认为通用设备是MPU,单用途设备是MCU,但这实际上只关系到设备的使用方式。如果在不明确使用目的的情况下使用任何设备,当时如何称之为设备?
通常,全功能MPU没有特殊的外围设备,这在很大程度上是因为它们是通用的,而不是针对特定的应用程序,所以你可能会认为只要有这样的外围设备,MCU,但事实并非如此,缺乏外围设备并不意味着MPU。
从以上分析来看,每个特征因素都会有缺陷,结果不尽如人意,那么行业专家怎么看呢?
MCU和MPU已成为过时的术语
CadenceIP集团产品营销总监Marcgrenberg表示:我不知道MCU和MPU的区别是否有一些官方的定义。经过简单的检索,似乎表明MCU存在于裸片上,但各种MPU上都有一些NVM位置,MPU也可能在同一裸片上有MCU。那是什么?最小的无缓存处理器可能仍然有一些寄存器和SRAM。RTL编码的定序器真的不同于ROM执行的通用处理器吗?显然,MCU和MPU的区别是随意的,这意味着这个界限不清楚,甚至可以随意。当我想到MPU时,我想到的是控制通用计算机的设备,如台式机、服务器、平板电脑等。
根据维基百科的解释,MCU是单个金属氧化物半导体集成电路芯片上的小型计算机,MPU是一种计算机处理器,它结合了MOSFET结构中单个或多个集成电路中央处理单元的功能。
如果深入研究MPU具有CPU功能,那么它是一个计算机处理器,而MCU是一个更完整的计算机,这意味着MCU包含MPU,这与常识相反。拥有多个处理器核心的16个服务器处理器不再是MPU吗?这是一个多核异构的SOC吗?
例如,一部手机可能包括多个应用程序处理核心,多个DSP用于音频、视频和图像处理,一个或两个GPU用于屏幕上的图像,以及一个只用于娱乐目的的神经网络处理单元——MCU。从我的角度来看,这个行业应该放弃这些过时的术语,使用更准确、更有描述性的术语。GrantMartin继续说。
从系统软件的角度来看,MCU有望适用于直接解释和控制硬件传感器和执行器的应用。这种访问通常涉及一致可靠的指令时序,这与通用MPU的需求相矛盾。通用MPU旨在优化吞吐量,而MCU通常优化延迟。因此,如果需要处理大型数据库,MPU更合适。如果需要精细的机电控制,MCU更合适。
Jeffhancock还表示:外部存储器和缓存肯定会改变MCU的标准,但还有很长的路要走,把MCU等同于MPU。特别是并不是所有MCU中的处理单元都专门使用外部存储器或隔离子系统来构建系统,允许关键工作负载和非关键应用程序级系统并行继续。
从软件工程师的角度来看,这是一个有趣的挑战。在不连续的地方可能有两个内存区域。虽然集成内存很小,但速度更快,所以最好留下对速度要求很高的代码,比如实时操作系统。这意味着开发工具必须足够灵活,以正确地将代码映射到存储器上,而RTOS必须足够小,以适合电影上的存储器。西门子业务部的嵌入式软件技术专家Walls补充说。
过去,MCU与嵌入式系统有关。在嵌入式系统中,低成本和低功耗的要求比性能更重要。然而,随着移动计算和物联网边缘计算的出现,许多嵌入式系统现在需要复杂的处理,从而产生了更像MPU的MCU产品,为具有外部存储器和高速缓存的设备提供了更高的性能和可配置性。在这种情况下,术语MCU和MPU之间的区别仅取决于CPU系统是否集成。
Arm的低功耗物联网业务高级总监Thomasensergueix也认为,近年来,MCU和MPU之间的界限已经模糊。MCU和MPU的主要区别之一是软件和开发。MPU将支持丰富的OS,如Linux和相关的软件堆栈,而MCU通常专注于裸机和RTOS。在决定哪个硬件平台、MCU或MPU最有效之前,软件开发人员将决定哪个软件环境和生态系统最适合他们的应用程序。
MCU和MPU之间的共同点!随着MCU已经过渡到32位,我们也看到了性能的急剧提高,这有助于缩小MCU和MPU之间的差距。例如,许多基于Armcortex-M7的MCU可以提供100多个DhrystoneMIPS,或者在CoreMark中提供2000多个点。这些设备中的许多设备也有非常大的内置存储器,或者提供快速接口来连接外部存储器。这确保了性能和内存不再是MCU的瓶颈,并使其更接近低端MPU。