DSP+FPU给MCU架构设计带来的新思路
扫描二维码
随时随地手机看文章
自从MCU(微控制器)导入了DSP(数字信号处理器)与FPU(Floating Point Unit;浮点运算单元)功能后,MCU可以拓展的应用范围便大幅增加,这几年来,诸多MCU大厂都纷纷导入,使得MCU市场战局变得更加诡谲多变。各家大厂就MCU的产品策略也不尽相同。
然而,尽管应用面大幅增加,但DSP与FPU在功能上要如何区分?彼此的关系是什么?这在ARM推出了Cortex-M4后,这类的议题才开始渐渐被市场所重视。
DSP、FPU不再高不可攀
瑞萨电子营业行销事业部第一营业行销部副理黎柏均表示,其实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才能设计出高效的系统。[!--empirenews.page--]
图4 : DSP加上FPU,对于近年来相当火热的感测器融合技术有相当大的发挥空间。(Source:意法半导体)
黎柏均指出,导入FPU的另一个好处在于,可以利用FPU的运算能力,以数字方式进行滤波,以进一步提升SNR值,所以像是工业电表、量测与生理讯号等,都是十分适合的终端应用。黎柏均强调,过去的确在讯号链上,的确有用放大器与滤波器等类比元件来处理杂讯的问题,但这种作法,多少还是会有失真的问题存在,因此采用数字滤波的方式,亦不失为一种作法,此外还有可能可以省去一些不必要的系统成本。
然而,黎柏均也透露,让MCU搭载FPU之后,系统业者为了能提升整体系统的效能或是解析度,在ADC的采用上,可能就会更加大胆,一口气进入16位元甚至是24位元的规格,原因在于这类ADC所面临的杂讯现象会更加严重,透过FPU来处理,不失为一种作法。
FPU仍有局限?TI提供其他硬体加速单元
不过,如同陈俊宏所提到的,如果DSP要处理的工作十分多元,意味着需要更多元的工具来加以因应,单靠FPU这样的硬体加速单元仍有不足之处。
陈俊宏透露,延续TI的C2000架构,TI进一步推出了如TMU与VMU硬体加速单元,前者专职于三角函数运算(偏重马达应用),后者则负责复数运算(对应通讯与软体定义无线电),既有的FPU就负责分数与小数点的运算工作,透过分工合作的方式,来因应客户不同的运算工作需求。他更举例,就算是马达所需要的运算工作,因应不同的马达类型,TI也能给予不同的DSP架构来对应。
架构异曲同工MCU仍有市场区隔
就Cortex-M4 MCU而言,ST所提供的产品线相当广泛,核心时脉从最低的72MHz到最高的180MHz,中间亦有84MHz、100MHz、168MHz的版本,这些不同核心时脉的产品,自然也对应到不同应用。STMF3(核心时脉为72MHz)系列,就是要因应既有的Cortex-M3的升级而推出的版本,其他如 STMF401(核心时脉为84MHz)与STMF411(核心时脉为100MHz),是为了因应穿戴式与高C/P应用为主。而ST的STMF479,其核心时脉高达180MHz,也搭载绘图引擎,专攻人机介面应用。
不过,撇除应用面不谈,英飞凌在尚未导入Cortex-M4前,就已有FPU(浮点运算单元)与DSP(数字信号处理器)的MCU产品线:TriCore系列。该系列产品线,早在1999年就已经面世。
英飞凌电源管理与多元电子事业处亚太区市场部资深经理黄志鸿表示,当初英飞凌设计TriCode,本身就具备了DSP与FPU的功能,就应用面而言,就聚焦在汽车领域。而谈到先前就引进Cortex-M4的原由,黄志鸿也直言,所锁定的应用就是工业自动化领域,再加上ARM架构在全球市场中,本来就有其普遍性,并进一步取得过去由传统的DSP业者所垄断的市场。Cortex-M4在先天上,本身就具备即时性的特性,像是近期英飞凌所聚焦的工业乙太网路与工业标准SIL3、SIL4等,都十分适合。
图5 : 乙太网路进入工业领域后,成了重要的网路通讯技术,由于有其普遍性与开放性,采用开放的处理器核心来提供MCU方案,也是合理的选择。(Source:www.datacenterdynamics.com)
所以英飞凌的产品区隔相当明显,拥有FPU与DSP的MCU产品线,延续TriCode架构,进而一脉相承的AURIX,聚焦车用应用,取得ARM授权的Cortex-M4,就扛下工业自动化市场的责任。当然,英飞凌对于Cortex-M4也还有其他的期待,像是数字电源与马达控制领域,英飞凌也开始尝试利用Cortex-M4 MCU打入其应用。他也不讳言,DSP也的确存在相当长的一段时间,产业界有不少工程师对于DSP本来就有相当高的熟悉度,MCU约莫是在三年前左右,才开始导入DSP功能。
图6 : 车用电子产业的特性相对较为封闭,尽管在车用处理器可以看到ARM有明显的市占率表现,但在MCU方面,还是由各大车用半导体所提供的自主架构居多, ARM的能见度相对较低。(Source:www.teijinaramid.com)
而黄志鸿也强调,Cortex-M4还是有其局限性在,像是视讯系统的设计,还是要透过DSP来处理会较为适当。像是高速铁路或是风力发电系统等应用,普遍来看还是传统的DSP业者主导。但如果是电动机车、一般风扇、家电与智慧家庭等,就有FPU功能的MCU的发挥空间。
谈到数字电源,同样也有类似的情况,黄志鸿表示,从功率大小来区分,从500瓦以上的系统设计,如伺服器或是电信设备的AC/DC电源,市场上还是以传统DSP架构为主,但也的确有不少拥有Cortex-M4 MCU的业者对于该市场,有相当高的兴趣。
图7 : 数字电源在电源设计领域渐渐成为主流,市场也开始有了用MCU来进行数字电源设计。(摄影:姚嘉洋)
MCU多元架构并陈定位仍有不同
徐达勇表示,将DSP与FPU加以整合,无需外挂的好处在于,系统工程师可以用同一套的侦错与编译器等工具,进行系统开发,简单说,简化开发环境对于系统开发而言,可以提升不少效率。在过去,采用DSP设计,会有些设计方法必须动用组合语言的作法才能完成,但是,MCU的开发,最终还是要回归到C语言的撰写。若把DSP导入与MCU一同合作,ARM在作法上,就是统一采用C语言的方式,来统一DSP、FPU的撰写方式,解决了过去组合语言所造成的困扰。然而,陈俊宏也强调,事实上组合语言是更为细腻的程式语法,对于工作执行上能更有效率,TI近年来也不断努力,让C语言与组合语言两者之间的差异缩小,以让使用者能有更多的选择。[!--empirenews.page--]
徐达勇也同意,目前MCU市场除了ARM架构外,的确也存在其他不同的架构,让DSP与FPU形成多元共存的局面。他也坦言,在架构上,各家其实并没有太大的差异,唯一能形成区别的,大概就是在效能与开发工具能分出高低而已。
而近年来,如英飞凌与瑞萨科技等,先后导入Cortex-M4核心,也使得MCU战场显得更诡谲多变。徐达勇强调,近年来产业界不断地在谈物联网,这意味着需要用更为开放的架构来因应物联网的设计需求,而这必须透过完整的生态系统才能作到,毕竟可能还会有第三方演算法设计或是设计工具业者,能够提供比 MCU业者更具竞争力的开发工??具也不一定,此时就会让客户有了更多不同的选择。他不讳言,有些较为封闭特性的应用,或许采用其他架构的MCU来进行设计,也许就能满足客户的需求。
图8 : 谈到物联网,ARM所形塑的生态系统相当完整,各大一线的MCU业者几乎都向ARM靠拢,形成鱼帮水,水帮鱼的情景。