自从 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 的世界中,截断误差一直存在着,若要考量到高精度,如何减少截断误差的现象,就成了大家努力的方向之一。

 


陈俊宏谈到,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 : 某程度上,一次提供到位的硬体资源,工程师可以发挥更多的创意与想法。

 

呼应杨正廉的说法,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 才能设计出高效的系统。

 

图 4 : DSP 加上 FPU,对于近年来相当火热的感测器融合技术有相当大的发挥空间。

 

黎柏均指出,导入 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 方案,也是合理的选择。

 

所以英飞凌的产品区隔相当明显,拥有 FPU 与 DSP 的 MCU 产品线,延续 TriCode 架构,进而一脉相承的 AURIX,聚焦车用应用,取得 ARM 授权的 Cortex-M4,就扛下工业自动化市场的责任。当然,英飞凌对于 Cortex-M4 也还有其他的期待,像是数位电源与马达控制领域,英飞凌也开始尝试利用 Cortex-M4 MCU 打入其应用。他也不讳言,DSP 也的确存在相当长的一段时间,产业界有不少工程师对于 DSP 本来就有相当高的熟悉度,MCU 约莫是在三年前左右,才开始导入 DSP 功能。

 

图 6 : 车用电子产业的特性相对较为封闭,尽管在车用处理器可以看到 ARM 有明显的市占率表现,但在 MCU 方面,还是由各大车用半导体所提供的自主架构居多,ARM 的能见度相对较低。

 

而黄志鸿也强调,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 语言与组合语言两者之间的差异缩小,以让使用者能有更多的选择。

徐达勇也同意,目前 MCU 市场除了 ARM 架构外,的确也存在其他不同的架构,让 DSP 与 FPU 形成多元共存的局面。他也坦言,在架构上,各家其实并没有太大的差异,唯一能形成区别的,大概就是在效能与开发工具能分出高低而已。

而近年来,如英飞凌与瑞萨科技等,先后导入 Cortex-M4 核心,也使得 MCU 战场显得更诡谲多变。徐达勇强调,近年来产业界不断地在谈物联网,这意味着需要用更为开放的架构来因应物联网的设计需求,而这必须透过完整的生态系统才能作到,毕竟可能还会有第三方演算法设计或是设计工具业者,能够提供比 MCU 业者更具竞争力的开发工具也不一定,此时就会让客户有了更多不同的选择。他不讳言,有些较为封闭特性的应用,或许采用其他架构的 MCU 来进行设计,也许就能满足客户的需求。

 

图 8 : 谈到物联网,ARM 所形塑的生态系统相当完整,各大一线的 MCU 业者几乎都向 ARM 靠拢,形成鱼帮水,水帮鱼的情景。