DSP+FPU給MCU架構設計帶來的新思路
自從MCU(微控制器)導入了DSP(數(shù)字信號處理器)與FPU(Floating Point Unit;浮點運算單元)功能后,MCU可以拓展的應用范圍便大幅增加,這幾年來,諸多MCU大廠都紛紛導入,使得MCU市場戰(zhàn)局變得更加詭譎多變。各家大廠就MCU的產(chǎn)品策略也不盡相同。
本文引用地址:http://www.ex-cimer.com/article/201609/303346.htm然而,盡管應用面大幅增加,但DSP與FPU在功能上要如何區(qū)分?彼此的關系是什么?這在ARM推出了Cortex-M4后,這類的議題才開始漸漸被市場所重視。
瑞薩電子營業(yè)行銷事業(yè)部第一營業(yè)行銷部副理黎柏均表示,其實FPU的導入,還是要考量成本的問題,若不需要,其實采用定點運算的MCU來因應系統(tǒng)需求即可。一般來說,SOC(系統(tǒng)單芯片)才會有所謂的DSP與FPU這類硬體加速器,其主要的功能大多負責影像或是音訊處理的工作,但隨著制程的進步,MCU在32位元架構也日趨成熟,所以MCU就開始能沿用SOC的部份功能,并進一步拓展MCU的應用范圍。黎柏均更直言,在早期,SOC與MCU之間有不小的價格差距。
圖1 : SOC本身就具備一定的DSP與FPU的功能,價格上也比MCU來得昂貴。(攝影:姚嘉洋)
不過,黎柏均認為,在現(xiàn)有市場所存在的MCU產(chǎn)品,即便主要供應商都能提供FPU的功能,但事實上,各家大廠的產(chǎn)品之間并沒有什么距離,關鍵最多就是在程式的執(zhí)行效率上,能否形成差異。在過去,若要由定點運算架構的MCU來處理FPU的工作,會多出不少時間出來,而且也需要大量的記憶體資源,但有了 FPU的導入后,其目標程式碼就能夠縮小,記憶體容量也能減少10%。換言之,若沒有時間上的考量,MCU是否要導入FPU,嚴格來看,并沒有太大的差別存在。TI(德州儀器)亞洲區(qū)市場開發(fā)經(jīng)理陳俊宏也同意,利用定點運算的MCU來處理FPU要處理的工作,也并非不行,但就是需要耗費大量的記憶體資源與長時間的等待,來取得所要的運算結果,F(xiàn)PU的存在,就是要避免這樣的情況出現(xiàn)。
不論是從ARM或是TI,這些大廠對于DSP與FPU的看法,
仍然有一些差異存在,但也因此,讓MCU市場形成了多元并陳的景象。
在過去,傳統(tǒng)的8位元架構,在資料處理上仍然有其極限存在,陳俊宏指出,傳統(tǒng)的定點運算MCU在進行所謂的分數(shù)或是小數(shù)點計算,因為MCU本身的位元數(shù)有限,在面臨無法除盡而形成無窮數(shù)值(如1/3或是3/7等)的計算上,就必須有所取舍,在位元數(shù)有限而采取的有限數(shù)值,勢必與現(xiàn)實計算上而形成的數(shù)值產(chǎn)生一定的誤差,這種情形我們稱為:截斷誤差。在這種情況下,若要利用傳統(tǒng)MCU的處理器核心來處理分數(shù)運算,只會造成截斷誤差的不斷擴大。為了有效處理截斷誤差不斷擴大的問題,便有了FPU的出現(xiàn)。
回顧MCU的發(fā)展歷程,從傳統(tǒng)的8位元架構一路發(fā)展至今,已經(jīng)進入到可以采用FPU與DSP等功能。之所以會有如此的進化,主因來自于從類比端擷取資料后,轉換成數(shù)字化,將「連續(xù)型」資料轉為「離散型」資料」以利于處理器進行運算。
圖2 : MCU的世界中,截斷誤差一直存在著,若要考量到高精度,如何減少截斷誤差的現(xiàn)象,就成了大家努力的方向之一。(Source:www.youtube.com)
陳俊宏談到,F(xiàn)PU并不能完全解決截斷誤差不斷擴大的現(xiàn)象,精確地說,只能將該現(xiàn)象盡可能地減少。陳俊宏進一步指出,從TI的角度來看,DSP要處理運算種類相當多種,所以需要更多的工具來處理不同需求。
延續(xù)陳俊宏的論述,Imagination MIPS業(yè)務開發(fā)資深經(jīng)理Ian Anderton也指出,DSP可利用乘法/累加(MAC)指令、飽和、舍入和位元操作來執(zhí)行多種數(shù)學運算─ 這些都是快速傅立葉轉換(FFT)和有限脈沖響應(FIR)等高效過濾器開發(fā)所需的基本功能。DSP同時也能支援并執(zhí)行多種應用中所使用的8、16和32 位元整數(shù)與分數(shù)資料長度。透過單周期MAC指令、SIMD(單一指令多重資料)和特殊的位元操作,DSP效能還可獲得進一步的增強。
FPU與DSP的相輔相成
ST(意法半導體)資深產(chǎn)品行銷經(jīng)理楊正廉則是談到,針對訊號處理、數(shù)值運算與對應到各種應用的演算法,DSP與FPU某程度上,是相輔相成的角色,很難被加以拆分。當然,他也表示,ARM所推出的Cortex-M4核心,也有僅搭載DSP而沒有FPU的版本,但若要讓客戶能發(fā)揮更多的創(chuàng)意,那么就架構上就一次到位,也能省去不少不必要的麻煩。
圖3 : 某程度上,一次提供到位的硬體資源,工程師可以發(fā)揮更多的創(chuàng)意與想法。(Source:www.access2knowledge.org)
呼應楊正廉的說法,ARM臺灣應用工程經(jīng)理徐達勇指出,從應用面來說,楊正廉的看法并沒有問題。當然,F(xiàn)PU與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也從應用面出發(fā),并以感測器融合(Sensor Fusion)為例,感測器融合是指把多個感測器結合在單一系統(tǒng)中共同運作。它需要高階的訊號處理功能,才能把訊號從嘈雜的環(huán)境中區(qū)隔出來。感測器融合可提供即時校正與調整控制,這是一種有限時間(time-limited)的應用,僅能透過利用DSP和FPU的協(xié)同處理功能來實現(xiàn)高效、高精密度的計算。此外,包括加速器、陀螺儀、壓力/溫度/觸控等各種感測器,以及其他擁有個別控制/管理演算法的感測器也增加了更多的挑戰(zhàn),必須采用DSP/FPU才能設計出高效的系統(tǒng)。
評論