回顧MCU(微控制器)的發(fā)展歷程,從傳統(tǒng)的8位元架構一路發(fā)展至今,已經進入到可以采用FPU(浮點運算單元)與DSP(數(shù)位訊號處理器)等功能。之所以會有如此的進化,主因來自于從類比端擷取資料后,轉換成數(shù)位化,將“連續(xù)型”資料轉為“離散型”資料”以利于處理器進行運算。
然而,傳統(tǒng)的8位元架構,在資料處理上,仍然有其極限存在,TI(德州儀器)亞洲區(qū)市場開發(fā)經理陳俊宏表示,傳統(tǒng)的定點運算MCU在進行所謂的分數(shù)或是小數(shù)點計算,因為MCU本身的位元數(shù)有限,在面臨無法除盡而形成無窮數(shù)值(如1/3或是3/7等)的計算上,就必須有所取舍,在位元數(shù)有限而采取的有限數(shù)值,勢必與現(xiàn)實計算上而形成的數(shù)值產生一定的誤差,這種情形我們稱為:截斷誤差。在這種情況下,若要利用傳統(tǒng)MCU的處理器核心來處理分數(shù)運算,只會造成截斷誤差的不斷擴大。為了有效處理截斷誤差不斷擴大的問題,便有了FPU的出現(xiàn)。
陳俊宏談到,F(xiàn)PU并不能完全解決截斷誤差不斷擴大的現(xiàn)象,精確地說,只能將該現(xiàn)象盡可能地減少。陳俊宏進一步指出,從TI的角度來看,DSP要處理運算種類相當多種,所以需要更多的工具來處理不同需求,延續(xù)TI的C2000架構,TI進一步推出了如TMU與VMU硬體加速單元,前者專職于三角函數(shù)運算(偏重馬達應用),后者則負責復數(shù)運算(對應通訊與軟體定義無線電),既有的FPU就負責分數(shù)與小數(shù)點的運算工作,透過分工合作的方式,來因應客戶不同的運算工作需求。他更舉例,就算是馬達所需要的運算工作,因應不同的馬達類型,TI也能給予不同的DSP架構來對應。
當然,陳俊宏也同意,利用定點運算的MCU來處理FPU要處理的工作,也并非不行,但就是需要耗費大量的記憶體資源與長時間的等待,來取得所要的運算結果,F(xiàn)PU的存在,就是要避免這樣的情況出現(xiàn)。