回顾MCU(微控制器)的发展历程,从传统的8位元架构一路发展至今,已经进入到可以采用FPU(浮点运算单元)与DSP(数位讯号处理器)等功能。之所以会有如此的进化,主因来自于从类比端撷取资料后,转换成数位化,将「连续型」资料转为「离散型」资料」以利于处理器进行运算。
|
TI亚洲区市场开发经理陈俊宏(资料照片) |
然而,传统的8位元架构,在资料处理上,仍然有其极限存在,TI(德州仪器)亚洲区市场开发经理陈俊宏表示,传统的定点运算MCU在进行所谓的分数或是小数点计算,因为MCU本身的位元数有限,在面临无法除尽而形成无穷数值(如1/3或是3/7等)的计算上,就必须有所取舍,在位元数有限而采取的有限数值,势必与现实计算上而形成的数值产生一定的误差,这种情形我们称为:截断误差。在这种情况下,若要利用传统MCU的处理器核心来处理分数运算,只会造成截断误差的不断扩大。为了有效处理截断误差不断扩大的问题,便有了FPU的出现。
陈俊宏谈到,FPU并不能完全解决截断误差不断扩大的现象,精确地说,只能将该现象尽可能地减少。陈俊宏进一步指出,从TI的角度来看,DSP要处理运算种类相当多种,所以需要更多的工具来处理不同需求,延续TI的C2000架构,TI进一步推出了如TMU与VMU硬体加速单元,前者专职于三角函数运算(偏重马达应用),后者则负责复数运算(对应通讯与软体定义无线电),既有的FPU就负责分数与小数点的运算工作,透过分工合作的方式,来因应客户不同的运算工作需求。他更举例,就算是马达所需要的运算工作,因应不同的马达类型,TI也能给予不同的DSP架构来对应。
当然,陈俊宏也同意,利用定点运算的MCU来处理FPU要处理的工作,也并非不行,但就是需要耗费大量的记忆体资源与长时间的等待,来取得所要的运算结果,FPU的存在,就是要避免这样的情况出现。