DSP+FPU给MCU架构设计带来的新思路
自从MCU(微控制器)导入了DSP(数字信号处理器)与FPU(Floating Point Unit;浮点运算单元)功能后,MCU可以拓展的应用范围便大幅增加,这几年来,诸多MCU大厂都纷纷导入,使得MCU市场战局变得更加诡谲多变。各家大厂就MCU的产品策略也不尽相同。
本文引用地址:http://www.amcfsurvey.com/article/201609/303346.htm然而,尽管应用面大幅增加,但DSP与FPU在功能上要如何区分?彼此的关系是什么?这在ARM推出了Cortex-M4后,这类的议题才开始渐渐被市场所重视。
瑞萨电子营业行销事业部第一营业行销部副理黎柏均表示,其实FPU的导入,还是要考量成本的问题,若不需要,其实采用定点运算的MCU来因应系统需求即可。一般来说,SOC(系统单芯片)才会有所谓的DSP与FPU这类硬体加速器,其主要的功能大多负责影像或是音讯处理的工作,但随着制程的进步,MCU在32位元架构也日趋成熟,所以MCU就开始能沿用SOC的部份功能,并进一步拓展MCU的应用范围。黎柏均更直言,在早期,SOC与MCU之间有不小的价格差距。
图1 : SOC本身就具备一定的DSP与FPU的功能,价格上也比MCU来得昂贵。(摄影:姚嘉洋)
不过,黎柏均认为,在现有市场所存在的MCU产品,即便主要供应商都能提供FPU的功能,但事实上,各家大厂的产品之间并没有什么距离,关键最多就是在程式的执行效率上,能否形成差异。在过去,若要由定点运算架构的MCU来处理FPU的工作,会多出不少时间出来,而且也需要大量的记忆体资源,但有了 FPU的导入后,其目标程式码就能够缩小,记忆体容量也能减少10%。换言之,若没有时间上的考量,MCU是否要导入FPU,严格来看,并没有太大的差别存在。TI(德州仪器)亚洲区市场开发经理陈俊宏也同意,利用定点运算的MCU来处理FPU要处理的工作,也并非不行,但就是需要耗费大量的记忆体资源与长时间的等待,来取得所要的运算结果,FPU的存在,就是要避免这样的情况出现。
不论是从ARM或是TI,这些大厂对于DSP与FPU的看法,
仍然有一些差异存在,但也因此,让MCU市场形成了多元并陈的景象。
在过去,传统的8位元架构,在资料处理上仍然有其极限存在,陈俊宏指出,传统的定点运算MCU在进行所谓的分数或是小数点计算,因为MCU本身的位元数有限,在面临无法除尽而形成无穷数值(如1/3或是3/7等)的计算上,就必须有所取舍,在位元数有限而采取的有限数值,势必与现实计算上而形成的数值产生一定的误差,这种情形我们称为:截断误差。在这种情况下,若要利用传统MCU的处理器核心来处理分数运算,只会造成截断误差的不断扩大。为了有效处理截断误差不断扩大的问题,便有了FPU的出现。
回顾MCU的发展历程,从传统的8位元架构一路发展至今,已经进入到可以采用FPU与DSP等功能。之所以会有如此的进化,主因来自于从类比端撷取资料后,转换成数字化,将「连续型」资料转为「离散型」资料」以利于处理器进行运算。
图2 : MCU的世界中,截断误差一直存在着,若要考量到高精度,如何减少截断误差的现象,就成了大家努力的方向之一。(Source:www.youtube.com)
陈俊宏谈到,FPU并不能完全解决截断误差不断扩大的现象,精确地说,只能将该现象尽可能地减少。陈俊宏进一步指出,从TI的角度来看,DSP要处理运算种类相当多种,所以需要更多的工具来处理不同需求。
延续陈俊宏的论述,Imagination MIPS业务开发资深经理Ian Anderton也指出,DSP可利用乘法/累加(MAC)指令、饱和、舍入和位元操作来执行多种数学运算─ 这些都是快速傅立叶转换(FFT)和有限脉冲响应(FIR)等高效过滤器开发所需的基本功能。DSP同时也能支援并执行多种应用中所使用的8、16和32 位元整数与分数资料长度。透过单周期MAC指令、SIMD(单一指令多重资料)和特殊的位元操作,DSP效能还可获得进一步的增强。
FPU与DSP的相辅相成
ST(意法半导体)资深产品行销经理杨正廉则是谈到,针对讯号处理、数值运算与对应到各种应用的演算法,DSP与FPU某程度上,是相辅相成的角色,很难被加以拆分。当然,他也表示,ARM所推出的Cortex-M4核心,也有仅搭载DSP而没有FPU的版本,但若要让客户能发挥更多的创意,那么就架构上就一次到位,也能省去不少不必要的麻烦。
图3 : 某程度上,一次提供到位的硬体资源,工程师可以发挥更多的创意与想法。(Source:www.access2knowledge.org)
呼应杨正廉的说法,ARM台湾应用工程经理徐达勇指出,从应用面来说,杨正廉的看法并没有问题。当然,FPU与DSP各自也有其定位。徐达勇举例:0.8+0.5=1.3,这种运算工作就是由FPU来负责,但是如果要同时计算:「0.8+0.5=?与1.3+0.9=?」的话,就必须借重DSP 的运算功能,所以FPU与DSP的密不可分,的确有其道理。杨正廉表示,广义来看,让MCU具备DSP与FPU功能,主要的目的在于能让MCU的客户群能够享受到DSP与FPU带来的功能与便利性,而过往采用DSP架构的客户群,也能有机会转移到MCU平台。
Ian Anderton也从应用面出发,并以感测器融合(Sensor Fusion)为例,感测器融合是指把多个感测器结合在单一系统中共同运作。它需要高阶的讯号处理功能,才能把讯号从嘈杂的环境中区隔出来。感测器融合可提供即时校正与调整控制,这是一种有限时间(time-limited)的应用,仅能透过利用DSP和FPU的协同处理功能来实现高效、高精密度的计算。此外,包括加速器、陀螺仪、压力/温度/触控等各种感测器,以及其他拥有个别控制/管理演算法的感测器也增加了更多的挑战,必须采用DSP/FPU才能设计出高效的系统。
评论