图片源自 Shutterstock
事实上,可以通过多种办法区分微处理器和微掌握器,只是业界尚未对他们的区分标准达成共识。不过已经有一些人得出结论,目前两者之间的准确区分都已经不再主要了。
“近年来,MCU和MPU之间的差异变得越来越模糊。”西门子业务部门的嵌入式软件技能专家Colin Walls说,“最初,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的成分
如今的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已成过期的术语
Cadence IP集团产品行销总监Marc Greenberg对此表示:“我不知道MCU与MPU之间的差异是否存在某些官方的定义,经由大略的检索彷佛表明,裸片上存在NVM的为MCU,但各种MPU上都有NVM的某些位,MPU也可能在同一片裸片上具有MCU,那又是什么呢?最小的无缓存处理器可能仍具有一些寄存器和SRAM,用RTL编码的定序器与从ROM实行的通用途理器真的有差异吗?显然MCU和MPU之间的差异有些随意,这意味着这一界线并不明确乃至可以为所欲为。当我想到MPU时,我想到的是用于掌握通用打算机的设备,例如台式机、做事器、平板电脑等。”
Cadence高等工程师Grant Martin认为:“根据维基百科的阐明,MCU是在单个金属氧化物半导体集成电路芯片上的小型打算机,MPU是一种打算机处理器,在MOSFET构造的单个或多个集成电路上结合了中心处理单元的功能。”
“如果深入研究,MPU具有CPU的功能,因此它是打算机处理器,而MCU则是更完全的打算机,这意味着MCU内包含MPU,这与知识相反。具有多个处理器核心的16路做事器处理器是否不再是MPU?而是一种多核异构SoC?”
“例如,一部手机可能包括多个运用程序处理内核,用于音频、视频、图像处理的多个DSP,一个或两个用于在屏幕上呈现图像的GPU以及一个仅用于娱乐目的的神经网络处理单元——MCU。从我的角度来看,行业该当放弃这些过期的术语,利用更精确更具描述性的术语。”Grant Martin连续说。
西门子业务部门Mentor的高等产品经理Jeff Hancock则认为:“从系统软件的角度来看,MCU有望适用于直接阐明和掌握硬件传感器和实行器的运用。这种访问常日涉及同等且可靠的指令时序,这与通用MPU的需求相抵牾。通用MPU旨在优化吞吐量,而MCU常日会优化延迟。因此,如果是须要处理大型数据库,MPU更得当,如果是要风雅的机电掌握,那么MCU更得当。
Jeff Hancock还说:“外部存储器和缓存肯定让MCU的标准有所变革,但这间隔将MCU等同于MPU还有很长的路要走。特殊是并不是所有MCU中的所有处理单元都专门利用外部存储器,也可以利用隔离的子系统构建系统,这些子系统许可关键的事情负载和不太关键的运用程序级系统并行连续。”
“从软件工程师的角度看,这是一个有趣的寻衅,在不连续的地方可能有两个内存区域,集成式内存虽小,但速率更快,因此最好留给对速率有高哀求的代码,例如实时操作系统。这意味着开拓工具必须足够灵巧以将代码精确地映射到存储器上,而RTOS必须足够小适宜片上存储器。”西门子业务部门的嵌入式软件技能专家Walls补充到。
Tortuga Logic的高等硬件安全工程师Nicole Fern表示:“过去,MCU与嵌入式系统干系联。在嵌入式系统中,低本钱和低功耗的哀求比性能更为主要。但是随着移动打算和IoT边缘打算的涌现,许多嵌入式系统现在须要繁芜的处理,这样就产生了面向嵌入式领域看起来更像MPU的MCU产品,为带有外部存储器和高速缓存的器件供应了更高的性能和可配置性。这种情形下,术语MCU和MPU之间的差异仅取决于是否集成CPU系统。”
Arm的低功耗IoT业务高等总监Thomas Ensergueix也认为:“近年来,MCU和MPU之间的界线已经模糊。MCU和MPU之间的紧张差异之一是软件和开拓。MPU将支持丰富的OS,如Linux和干系的软件堆栈,而MCU常日将专注于裸机和RTOS。在决定哪种硬件平台、MCU或MPU最有效之前,由软件开拓职员决定哪个软件环境和生态系统最适宜他们的运用。
“随着现在MCU已经由渡到32位,我们还看到了性能的急剧提高,这有助于缩小MCU和MPU之间的差距。例如:许多基于Arm Cortex-M7的MCU可供应100多个Dhrystone MIPS,或在CoreMark中供应2,000多个点。这些设备中的许多设备还具有非常大的内置存储器,或者供应快速接口来连接外部存储器。这确保了性能和内存不再是MCU的瓶颈,并使它们更靠近低端MPU。”
小结
如今MPU与MCU之间是否有明确的界线真的主要吗?可能不主要了。由于无论我们将其称之为什么,运用程序都有附带哀求,这些哀求将决定利用哪个设备。
本文编译自https://semiengineering.com/mpu-vs-mcu/
原文作者Bryon Moyer
雷锋网雷锋网雷锋网