随着AI和IoT的发展与融合,微处理器(MCU)的设计也更加复杂,逐渐从传统单一功能的微控制器转向集成更多功能特性、计算性能更强的系统级芯片(SoC)。ASPENCORE《电子工程专辑》分析师团队识别出如下六个MCU设计的发展方向。
随着AI和IoT的发展与融合,微处理器(MCU)的设计也更加复杂,逐渐从传统单一功能的微控制器转向集成更多功能特性、计算性能更强的系统级芯片(SoC)。ASPENCORE《电子工程专辑》分析师团队识别出如下六个MCU设计的发展方向。
1. 更加智能(AI)
2. 更强性能(Performance)
3. 更低功耗(Power)
4. 更加安全(Security)
5. 无线连接(Wireless)
6. 更小尺寸(Area)
未来MCU设计的六个方向
随着AI和IoT的发展与融合,微处理器(MCU)的设计也更加复杂,逐渐从传统单一功能的微控制器转向集成更多功能特性、计算性能更强的系统级芯片(SoC)。ASPENCORE《电子工程专辑》分析师团队识别出如下六个MCU设计的发展方向。
1. 更加智能(AI)
2. 更强性能(Performance)
3. 更低功耗(Power)
4. 更加安全(Security)
5. 无线连接(Wireless)
MCU更加智能(AI)
自2017年开始,MCU厂商尝试在MCU中添加AI功能。例如,ST的Project Orlando项目作为实验性质的MCU超低功耗AI加速器单元,瑞萨在2018年发布了针对MCU的可编程可重构协处理器DRP。经过三年的发展,在MCU中加入AI加速器正在变得越来越主流。在需要AI相关算力的应用场景,使用专用AI加速器往往比提升处理器性能更为有效。
2020年10月,Arm发布Ethos-U65 microNPU神经处理单元,这种微型NPU是一个非常小的NPU,只针对尺寸受限的嵌入式系统和物联网设备。Ethos-U65是Arm早前发布的Ethos-U55的升级,NXP选择Ethos-U55 microNPU作为Cortex-M系统。Ethos-U55是专为微控制器设计的,与Cortex-M处理器以及MCU中的系统SRAM和flash协同工作,可以提供MCU所需的性能和效率组合。但Ethos-U55不适合在基于Cortex-A的应用处理器上运行复杂的ML应用程序。
通过NXP与Arm的技术合作,Ethos-U55的性能得到大幅提升,不仅将最大原始MAC(乘法和累加)性能提高一倍,达到1TOPS(1GHz工作频率下512次并行乘法累加操作),而且还能够正确调整系统总线的尺寸,以便将数据输入和输出到microNPU。但这还不够,MCU通常是基于SRAM和闪存的混合使用,但基于Cortex-A的应用处理器通常都有DRAM。DRAM提供了更高的数据速率和容量,但代价是延迟更长。microNPU需要更新设计来适应这种延迟,由此便诞生了Ethos-U65。
与Ethos-U55一样,Ethos-U65 microNPU可以与NXP的i.MX家族中已有的Cortex-M内核和片上SRAM协同工作。它继承了Ethos-U55的所有MCU级能效,与传统NPU相比,Cortex-M和Ethos-U的结合提高了面积和功率效率,从而能够开发出经济高效、高性能的边缘计算AI芯片。
从应用的角度来看,AI加速器搭配MCU渐成主流的主要原因是需要AI的应用场景越来越普遍。从具体的算法和模型来看,正在集中到少数几个模型,例如机器视觉(人脸识别,物体识别)和语音唤醒词中需要的卷积神经网络,以及在一些较为先进的语音识别中需要的循环神经网络(RNN)。三年前,AI算法和应用生态前景还不够明确,因此出现了走专用化(AI加速器)还是通用化(加强处理器性能以及可编程协处理器)两条道路的两难选择。而在应用和相关算法都已经很集中的今天,AI加速器已经成为较为明确的选择了。一方面,使用专用化的AI加速器可以提供最佳的能效比,另一方面在芯片设计门槛上也并不是太高。事实上,更考验设计能力的反而是编译器和相关的软件/模型优化。
ARM在短时间内连续发布两代针对MCU的microNPU,一方面说明MCU市场对于AI和AI加速器确实有很强的需求,另一方面我们也看到MCU和MPU甚至CPU之间的性能差距正在缩小,这将为未来智能MCU生态带来新的变化。
MCU更高性能(Performance)
不断提升计算和处理性能是MCU设计工程师和开发商的不懈追求。以前我们都是跟随Arm的开发脚步来同步增强MCU芯片性能,但最近几年出现了与之匹敌的RISC-V。我们在此分别梳理一下这两个MCU微处理器内核的性能提升线路图。
ARM Cortex分为3个系列,分别针对嵌入式(Microcontroller)、实时(Real-Time)和应用(Application)3个应用领域,对应的内核是Cortex-M、Cortex-R和Cortex-A 系列。ARM Cortex-M处理器是一系列可向上兼容的高能效、易于使用的处理器内核,旨在帮助开发人员满足将来的嵌入式应用需求,比如以更低的成本提供更多功能、不断增加连接、改善代码重用和提高能效。Cortex-M系列针对成本和功耗敏感的MCU和终端应用(如智能测量、人机接口设备、汽车和工业控制系统、大型家用电器、消费性产品和医疗器械)的混合信号设备进行了优化。
Cortex-M系列基于ARMv7-M架构(用于Cortex-M3和Cortex-M4),而较低的Cortex-M0+基于ARMv6-M架构。首款Cortex-M处理器于2004年发布,当一些主流MCU供应商选择这款内核开始量产MCU芯片后,Cortex-M处理器迅速受到市场青睐。可以说,Cortex-M之于32位MCU就如同8051之于8位MCU,迅速成为业界标准微处理器内核,各家MCU供应商基于该内核进行自己的开发,在市场中提供差异化产品。例如,Cortex-M系列能够实现在FPGA中作为软核使用,但更常见的用法是作为集成存储器、时钟和外设的MCU。
对于成本特别敏感的应用或者正在从8位迁移到32位的应用而言,Cortex-M系列的最低端产品可能是最佳选择。虽然Cortex-M0+的性能仅为0.95 DMIPS/MHz,比Cortex-M3和Cortex-M4的性能低一些,但仍可与同系列其他高端产品兼容。Cortex-M0+采用Thumb-2指令集的子集,而且这些指令大都是16位操作数(虽然所有数据运行都是32位的),这使得它们能够很好的适应Cortex-M0+所提供的2级流水线服务。通过减少分支映射,系统就能节约整体功耗,而且在大多数情况下,流水线将保留接下来的四个指令。Cortex-M0+还具有专用的总线用于单周期GPIO,这意味着设计师能够利用位控制的GPIO实现确定接口(就像8位MCU那样),但却以32位内核的性能来处理数据。
Cortex-M0+另外一个重要的特点是增加了微型跟踪缓冲器(MTB)。该外设可使设计人员在调试过程中使用一些片上RAM来存储程序分支。这些分支随后能够回传到集成开发环境中,而且可以重建程序流程。这一功能提供了一种初步的指令跟踪能力,这对于不具备扩展跟踪宏单元(ETM)功能的Cortex-M3和Cortex-M4来说比较有意义。从Cortex-M0+中提取的调试信息等级显著高于8位MCU,这就意味着那些难以解决的调试问题变得更加容易解决。
Cortex-M3和Cortex-M4是非常相似的内核,二者都具有1.25 DMIPS/MHz的性能,配有3级流水线、多重32位总线接口、时钟速率可高达200MHz,并配有非常高效的调试选项。二者最大的不同是,Cortex-M4的内核性能针对的是DSP。Cortex-M3和Cortex-M4具有相同的架构和指令集(Thumb-2)。
然而,Cortex-M4增加了一系列特别针对处理DSP算法而优化的饱和运算和SIMD指令。以每0.5秒运行一次的512点FFT为例,如果分别在同类量产的Cortex-M3 MCU和Cortex-M4 MCU上运行,完成同样的工作,Cortex-M3所需功耗约是Cortex-M4所需功耗的三倍。此外,也有在Cortex-M4上实现单精度浮点单元(FPU)的选项。
如果应用涉及到浮点计算,那在Cortex-M4上完成比在Cortex-M3上完成要快得多。也就是说,对于不使用Cortex-M4上DSP或FPU功能的应用而言,其性能和功耗与Cortex-M3相同。如果使用DSP功能,那就选择Cortex-M4。否则就选择Cortex-M3完成工作