为什么说MCU中导入DSP/FPU是未来的发展主流?
微控制器(MCU)深入人们应用生活,几乎大小设备都看得到MCU踪影,在MCU导入DSP数字信号处理器、FPU浮点运算单元功能后,MCU更大幅扩展元件可适用范围,这几年来,在众多MCU大厂纷纷针对旗下商品推出多样整合方案,不管是产品策略还是市场区隔,也让MCU市场更加丰富多元...
MCU(Microcontroller Unit)深入生活应用是不容易质疑的趋势,尤其是MCU在功能优化或市场区隔目的下,进行DSP(Digital Signal Processor)数字信号处理器或FPU(Floating Point Unit)浮点运算单元功能整合,使得MCU的可应用场域大幅扩展。
MCU整合FPU可以在进阶数值运算的精密度大幅提升、处理效能也能获得改善。
针对IoT应用开发的MCU方案,整合DSP可优化感测器数据撷取品质与提升信号处理效能。
如果以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硬件加速单元的目的,其实加入硬件加速单元整合而不采行外部解决方案来组构硬件加速运算需求,其最大的优点在于成本方面的极致优化,因为电子电路板可以更节省载板空间,运用单一芯片就能改善运算的整体效率,而在软件开发层面,可在整合架构下运用简单呼叫与资料传递的再处理,便能满足应用服务的数据计算产出效能要求,甚至于开发完成的成品还可运用一致性侦错分析工具,直接针对系统进行全面分析与勘误,在开发设计的效率与速度都能获得改善。