微控制器(MCU)深入人们应用生活,几乎大小设备都看得到 MCU 踪影,在 MCU 导入 DSP 数位讯号处理器、FPU 浮点运算单元功能后,MCU 更大幅扩展元件可适用范围,这几年来,在众多 MCU 大厂纷纷针对旗下商品推出多样整合方案,不管是产品策略还是市场区隔,也让 MCU 市场更加丰富多元 ...

 

MCU(Microcontroller Unit)深入生活应用是不容易质疑的趋势,尤其是 MCU 在功能优化或市场区隔目的下,进行 DSP(digital signal processor)数位讯号处理器或 FPU(Floating Point Unit)浮点运算单元功能整合,使得 MCU 的可应用场域大幅扩展。

 

MCU 整合 FPU 可以在进阶数值运算的精密度大幅提升、处理效能也能获得改善,图为 Microchip 的 32 位元 MCU 产品。Microchip


 

针对 IoT 应用开发的 MCU 方案,整合 DSP 可优化感测器数据撷取品质与提升信号处理效能。Renesas

 

更多
如果以 FPU 或 DSP 导入目的,一般在 MCU 中追加 FPU、DSP 整合架构,主要目的还是在考量成本下的设计方向,尤其在早期半导体元件,SOC(System on Chip)系统单晶片与 MCU 存在一段价格差距,如果仅需要 SDP 或 FPU 进行运算加速,又不想选用高单价 SOC,这时整合 DSP 或 FPU 硬体加速单元的 MCU 产品、不仅可以更好的提供运行效能,同时又能在成本控制上表现更加优异。


MCU 整合晶片封装成本骤降  增加 MCU 功能扩充应用空间

以早期的 SOC 产品来看,搭载 DSP 与 FPU 硬体加速器是 SOC 产品的重要特性,其中 DSP 与 FPU 的应用方向主要以音讯、影像等处理加速运算为主,而在制程技术持续优化,SOC 的成本逐步与 MCU 拉近,MCU 在 32 位元甚至 64 位元架构下,也开始有结合 DSP 或是 FPU 硬体加速单元的解决方案。

 

先看看 MCU 加上硬体加速单元的优点,在 MCU 追加 FPU 导入,最直接的效益是早期利用 MCU 处理类似 FPU 运算内容,会因为 MCU 本身的运算架构限制,让运算结果得出时间会相对拉长,而在导入硬体加速器处理浮点运算时,因为硬体呼叫或是资料传递就能透过硬体算出数据,MCU 本身耗在浮点运算的记忆体资源可以因硬体加速整合减少至少 10%。

 

当然,从目的性来看,不管 MCU 有无整合 FPU 硬体加速单元,浮点运算需求使用 MCU 现有的运算能力也能得出结果,只是前提是计算过程会耗用较多运算时间与硬体资源,对于可等待、无需提供即时反应的系统自然可以不考虑整合 FPU 的 MCU 方案,但若是对系统效能、回馈反应速度要求高的整合需求,MCU 结合 FPU 的效益提升不仅仅是运算资源耗用优化、节能优势等效果,反而是加快系统回应与效能提升的效用,才是 MCU 结合 FPU 硬体加速最直接、重要的功能改进,也让 MCU 可以因应更高复杂度的整合工作。


高阶数值运算  运用硬体加速满足设计需求

在早期 MCU 元件仍以 8 位元架构为主流的应用方向,MCU 在资料处理与运算处理上,本来就有因架构的问题而有其处理限制,例如,MCU 进行小数点、分数处理运算时,因为 4 位元或是 8 位元位数有限,就必须采用有限数值进行处理,透过数值结果的限制换取处理复杂度简化与效能要求目的,而这种因为数值处理产生的误差即“截断误差”,截断误差也会因为使用 MCU 进行数据运算的限制,而令误差数值产生扩大现象。

 

而在 MCU 整合 FPU 硬体加速,在运算同类型的数据处理时,例如在 IoT 物联网或是终端感测器应用中,常有将外部类比感测数据转换成数位资料的资料撷取、处理需求,这时透过 MCU 整合的 FPU/DSP 硬体加速单元,不仅可将感测数据更快速处理完成、加快系统回应,同时,也能导入进阶运算减少数据演算的误差。

 

在实际应用中,FPU 硬体加速器本身并无法完全解决误差扩大问题,所以会有 FPU、DSP 等不同硬体加速整合架构下的应用目的考量,举例来说,透过 DSP 硬体加速器,可针对特殊数据类型更高速、可靠的运算处理输出,像是 DSP 可利用指令来进行多种运算,处理如快速快速傅立叶转换(fast Fourier transform;FFT)或有限脉冲回应(Finite impulse response;FIR)进阶运算中重要且耗资源的运算需求,甚至透过单周期的指令便能处理单一指令多重资料(Single Instruction Multiple Data;SIMD)运算需求,MCU 在进行进阶数值处理方面还可获得进阶增强效益。


FPU/DSP 不同硬体加速单元具互补作用

虽说整合 FPU 或 DSP 基本在架构与应用方向就不同,但实际上两者分别是针对数据运算、讯号处理对应至各式演算法应用,两者功能可以说是各有互补效用,比较难被独立拆分。以 ARM Cortex-M4 来看,若仅提供 DSP 硬体加速处理器反而没设置 FPU 浮点运算加速器反而会造成应用限制,因为在 Cortex-M4 应用场合如果仅有数位信号处理加速硬体支援,少了浮点运算支援,对开发需求端若碰到需要数值进阶运算加速,就会造成设计上的弹性限制,或是导致还需透过外部功能晶片支援,或利用原有的运算资源因应数值进阶计算需求,反而会因为数值处理效能限制了 Cortex-M4 的应用可能性。

 

同样的状况也发生在仅有 FPU 而没有设置 DSP 的微控制器应用方案上,对 DSP 或是 FPU 应用功能是相辅相成,独立整合对于微控制器的配置并未能产生综效,反而会成为发展路径的限制。

 

再者,从新一代 IoT 产品发展方向,透过感测器融合(Sensor Fusion)应用方向为例,若是 Sensor Fusion 概念为将多感测器整合在单一系统中协同运行,系统需要高阶数值与讯号处理能力,才可以将关键数值讯号自复杂数据中提取出来。

 

至于感测器融合可以再搭配即时的调整、控制与校正处理,由 DSP 加上 FPU 协同处理达到高精密度、高效率进行撷取数据的精密分析,尤其是现有的 Sensor Fusion 已做到陀螺仪、加速度器、温度、压力甚至触控感测都做在同一个模组中,必须透过 DSP 与 FPU 预先筛出相对精密且兼顾处理效率的讯号撷取与预处理的感测数据,提供相对高效的系统更具效率的感测数值处理机制。


DSP 数位滤波应用  可提升感测讯号撷取品质

此外,在 MCU 整合 FPU 的另一个优势在于可在系统中善用其运算特性,例如,运用数位演算法进行撷取数值的数位滤波应用,针对处理讯号进一步以基于硬体加速的数位演算法进行波形或数据再处理,形成一提升数据噪讯比(SNR)的便捷作法,数位滤波器还可利用演算机制优化提供不同程度大小的滤波效果,这在于微控制器用于感测热门的心率、血液含氧量、运动数值等生理资讯,或是数位电表、智能电表等应用,解决末端数据因为杂讯或环境噪讯影响,倒置讯号失真的数据优化回补效用,优化终端取得的讯号波形信号品质,更利于后续处理或数据使用。

 

为了优化末端应用,微控制器整合硬体加速单元也蔚为一股风潮,不只是 DSP 或是 FPU 硬体加速单元,例如就有微控制器在架构上加入了 VMU 硬体加速单元,处理因应马达应用重点的三角函数数值运算需求,或是对应无线电通讯需求整合的数据分析演算支援,与现有 FPU 浮点运算硬体加速功能区隔,采取协同分工的方式加速整体微控制器的应用效能。

 

有趣的是,针对不同的市场与运算需求定位,微控制器除在运算时脉进行差异区隔,以最实际的运算效能区分不同应用场合、市场切分外,整合不同应用所需的硬体加速单元也成为产品市场定位的重要分界,例如针对穿戴式运算应用市场的微控制器,在要求功耗、感测器融合、元器件成本方面就可仅整合 FPU、DSP 硬体加速定位市场区隔,在高阶的微控制器应用上,甚至有解决方案直接整合硬体绘图引擎,直接看准工业用人机介面终端的应用需求,另针对如车用电子、IoT 物联网等不同市场需求,也有五花八门的硬体加速单元配置组合,满足不同整合需求的应用架构。

 

另一个微控制器整合 DSP、FPU 硬体加速单元的目的,其实加入硬体加速单元整合而不采行外部解决方案来组构硬体加速运算需求,其最大的优点在于成本方面的极致优化,因为电子电路板可以更节省载板空间,运用单一晶片就能改善运算的整体效率,而在软体开发层面,可在整合架构下运用简单呼叫与资料传递的再处理,便能满足应用服务的数据计算产出效能要求,甚至于开发完成的成品还可运用一致性侦错分析工具,直接针对系统进行全面分析与勘误,在开发设计的效率与速度都能获得改善。