DSP+FPU給MCU架構(gòu)設(shè)計(jì)帶來的新思路
掃描二維碼
隨時隨地手機(jī)看文章
自從MCU(微控制器)導(dǎo)入了DSP(數(shù)字信號處理器)與FPU(Floating Point Unit;浮點(diǎn)運(yùn)算單元)功能后,MCU可以拓展的應(yīng)用范圍便大幅增加,這幾年來,諸多MCU大廠都紛紛導(dǎo)入,使得MCU市場戰(zhàn)局變得更加詭譎多變。各家大廠就MCU的產(chǎn)品策略也不盡相同。
然而,盡管應(yīng)用面大幅增加,但DSP與FPU在功能上要如何區(qū)分?彼此的關(guān)系是什么?這在ARM推出了Cortex-M4后,這類的議題才開始漸漸被市場所重視。
DSP、FPU不再高不可攀
瑞薩電子營業(yè)行銷事業(yè)部第一營業(yè)行銷部副理黎柏均表示,其實(shí)FPU的導(dǎo)入,還是要考量成本的問題,若不需要,其實(shí)采用定點(diǎn)運(yùn)算的MCU來因應(yīng)系統(tǒng)需求即可。一般來說,SOC(系統(tǒng)單芯片)才會有所謂的DSP與FPU這類硬體加速器,其主要的功能大多負(fù)責(zé)影像或是音訊處理的工作,但隨著制程的進(jìn)步,MCU在32位元架構(gòu)也日趨成熟,所以MCU就開始能沿用SOC的部份功能,并進(jìn)一步拓展MCU的應(yīng)用范圍。黎柏均更直言,在早期,SOC與MCU之間有不小的價格差距。
圖1 : SOC本身就具備一定的DSP與FPU的功能,價格上也比MCU來得昂貴。(攝影:姚嘉洋)
不過,黎柏均認(rèn)為,在現(xiàn)有市場所存在的MCU產(chǎn)品,即便主要供應(yīng)商都能提供FPU的功能,但事實(shí)上,各家大廠的產(chǎn)品之間并沒有什么距離,關(guān)鍵最多就是在程式的執(zhí)行效率上,能否形成差異。在過去,若要由定點(diǎn)運(yùn)算架構(gòu)的MCU來處理FPU的工作,會多出不少時間出來,而且也需要大量的記憶體資源,但有了 FPU的導(dǎo)入后,其目標(biāo)程式碼就能夠縮小,記憶體容量也能減少10%。換言之,若沒有時間上的考量,MCU是否要導(dǎo)入FPU,嚴(yán)格來看,并沒有太大的差別存在。TI(德州儀器)亞洲區(qū)市場開發(fā)經(jīng)理陳俊宏也同意,利用定點(diǎn)運(yùn)算的MCU來處理FPU要處理的工作,也并非不行,但就是需要耗費(fèi)大量的記憶體資源與長時間的等待,來取得所要的運(yùn)算結(jié)果,F(xiàn)PU的存在,就是要避免這樣的情況出現(xiàn)。
不論是從ARM或是TI,這些大廠對于DSP與FPU的看法,
仍然有一些差異存在,但也因此,讓MCU市場形成了多元并陳的景象。
在過去,傳統(tǒng)的8位元架構(gòu),在資料處理上仍然有其極限存在,陳俊宏指出,傳統(tǒng)的定點(diǎn)運(yùn)算MCU在進(jìn)行所謂的分?jǐn)?shù)或是小數(shù)點(diǎn)計(jì)算,因?yàn)镸CU本身的位元數(shù)有限,在面臨無法除盡而形成無窮數(shù)值(如1/3或是3/7等)的計(jì)算上,就必須有所取舍,在位元數(shù)有限而采取的有限數(shù)值,勢必與現(xiàn)實(shí)計(jì)算上而形成的數(shù)值產(chǎn)生一定的誤差,這種情形我們稱為:截?cái)嗾`差。在這種情況下,若要利用傳統(tǒng)MCU的處理器核心來處理分?jǐn)?shù)運(yùn)算,只會造成截?cái)嗾`差的不斷擴(kuò)大。為了有效處理截?cái)嗾`差不斷擴(kuò)大的問題,便有了FPU的出現(xiàn)。
回顧MCU的發(fā)展歷程,從傳統(tǒng)的8位元架構(gòu)一路發(fā)展至今,已經(jīng)進(jìn)入到可以采用FPU與DSP等功能。之所以會有如此的進(jìn)化,主因來自于從類比端擷取資料后,轉(zhuǎn)換成數(shù)字化,將「連續(xù)型」資料轉(zhuǎn)為「離散型」資料」以利于處理器進(jìn)行運(yùn)算。
圖2 : MCU的世界中,截?cái)嗾`差一直存在著,若要考量到高精度,如何減少截?cái)嗾`差的現(xiàn)象,就成了大家努力的方向之一。(Source:www.youtube.com)
陳俊宏談到,F(xiàn)PU并不能完全解決截?cái)嗾`差不斷擴(kuò)大的現(xiàn)象,精確地說,只能將該現(xiàn)象盡可能地減少。陳俊宏進(jìn)一步指出,從TI的角度來看,DSP要處理運(yùn)算種類相當(dāng)多種,所以需要更多的工具來處理不同需求。
延續(xù)陳俊宏的論述,Imagination MIPS業(yè)務(wù)開發(fā)資深經(jīng)理Ian Anderton也指出,DSP可利用乘法/累加(MAC)指令、飽和、舍入和位元操作來執(zhí)行多種數(shù)學(xué)運(yùn)算─ 這些都是快速傅立葉轉(zhuǎn)換(FFT)和有限脈沖響應(yīng)(FIR)等高效過濾器開發(fā)所需的基本功能。DSP同時也能支援并執(zhí)行多種應(yīng)用中所使用的8、16和32 位元整數(shù)與分?jǐn)?shù)資料長度。透過單周期MAC指令、SIMD(單一指令多重資料)和特殊的位元操作,DSP效能還可獲得進(jìn)一步的增強(qiáng)。
FPU與DSP的相輔相成
ST(意法半導(dǎo)體)資深產(chǎn)品行銷經(jīng)理?xiàng)钫畡t是談到,針對訊號處理、數(shù)值運(yùn)算與對應(yīng)到各種應(yīng)用的演算法,DSP與FPU某程度上,是相輔相成的角色,很難被加以拆分。當(dāng)然,他也表示,ARM所推出的Cortex-M4核心,也有僅搭載DSP而沒有FPU的版本,但若要讓客戶能發(fā)揮更多的創(chuàng)意,那么就架構(gòu)上就一次到位,也能省去不少不必要的麻煩。
圖3 : 某程度上,一次提供到位的硬體資源,工程師可以發(fā)揮更多的創(chuàng)意與想法。(Source:www.access2knowledge.org)
呼應(yīng)楊正廉的說法,ARM臺灣應(yīng)用工程經(jīng)理徐達(dá)勇指出,從應(yīng)用面來說,楊正廉的看法并沒有問題。當(dāng)然,F(xiàn)PU與DSP各自也有其定位。徐達(dá)勇舉例:0.8+0.5=1.3,這種運(yùn)算工作就是由FPU來負(fù)責(zé),但是如果要同時計(jì)算:「0.8+0.5=?與1.3+0.9=?」的話,就必須借重DSP 的運(yùn)算功能,所以FPU與DSP的密不可分,的確有其道理。楊正廉表示,廣義來看,讓MCU具備DSP與FPU功能,主要的目的在于能讓MCU的客戶群能夠享受到DSP與FPU帶來的功能與便利性,而過往采用DSP架構(gòu)的客戶群,也能有機(jī)會轉(zhuǎn)移到MCU平臺。
Ian Anderton也從應(yīng)用面出發(fā),并以感測器融合(Sensor Fusion)為例,感測器融合是指把多個感測器結(jié)合在單一系統(tǒng)中共同運(yùn)作。它需要高階的訊號處理功能,才能把訊號從嘈雜的環(huán)境中區(qū)隔出來。感測器融合可提供即時校正與調(diào)整控制,這是一種有限時間(time-limited)的應(yīng)用,僅能透過利用DSP和FPU的協(xié)同處理功能來實(shí)現(xiàn)高效、高精密度的計(jì)算。此外,包括加速器、陀螺儀、壓力/溫度/觸控等各種感測器,以及其他擁有個別控制/管理演算法的感測器也增加了更多的挑戰(zhàn),必須采用DSP/FPU才能設(shè)計(jì)出高效的系統(tǒng)。[!--empirenews.page--]
圖4 : DSP加上FPU,對于近年來相當(dāng)火熱的感測器融合技術(shù)有相當(dāng)大的發(fā)揮空間。(Source:意法半導(dǎo)體)
黎柏均指出,導(dǎo)入FPU的另一個好處在于,可以利用FPU的運(yùn)算能力,以數(shù)字方式進(jìn)行濾波,以進(jìn)一步提升SNR值,所以像是工業(yè)電表、量測與生理訊號等,都是十分適合的終端應(yīng)用。黎柏均強(qiáng)調(diào),過去的確在訊號鏈上,的確有用放大器與濾波器等類比元件來處理雜訊的問題,但這種作法,多少還是會有失真的問題存在,因此采用數(shù)字濾波的方式,亦不失為一種作法,此外還有可能可以省去一些不必要的系統(tǒng)成本。
然而,黎柏均也透露,讓MCU搭載FPU之后,系統(tǒng)業(yè)者為了能提升整體系統(tǒng)的效能或是解析度,在ADC的采用上,可能就會更加大膽,一口氣進(jìn)入16位元甚至是24位元的規(guī)格,原因在于這類ADC所面臨的雜訊現(xiàn)象會更加嚴(yán)重,透過FPU來處理,不失為一種作法。
FPU仍有局限?TI提供其他硬體加速單元
不過,如同陳俊宏所提到的,如果DSP要處理的工作十分多元,意味著需要更多元的工具來加以因應(yīng),單靠FPU這樣的硬體加速單元仍有不足之處。
陳俊宏透露,延續(xù)TI的C2000架構(gòu),TI進(jìn)一步推出了如TMU與VMU硬體加速單元,前者專職于三角函數(shù)運(yùn)算(偏重馬達(dá)應(yīng)用),后者則負(fù)責(zé)復(fù)數(shù)運(yùn)算(對應(yīng)通訊與軟體定義無線電),既有的FPU就負(fù)責(zé)分?jǐn)?shù)與小數(shù)點(diǎn)的運(yùn)算工作,透過分工合作的方式,來因應(yīng)客戶不同的運(yùn)算工作需求。他更舉例,就算是馬達(dá)所需要的運(yùn)算工作,因應(yīng)不同的馬達(dá)類型,TI也能給予不同的DSP架構(gòu)來對應(yīng)。
架構(gòu)異曲同工MCU仍有市場區(qū)隔
就Cortex-M4 MCU而言,ST所提供的產(chǎn)品線相當(dāng)廣泛,核心時脈從最低的72MHz到最高的180MHz,中間亦有84MHz、100MHz、168MHz的版本,這些不同核心時脈的產(chǎn)品,自然也對應(yīng)到不同應(yīng)用。STMF3(核心時脈為72MHz)系列,就是要因應(yīng)既有的Cortex-M3的升級而推出的版本,其他如 STMF401(核心時脈為84MHz)與STMF411(核心時脈為100MHz),是為了因應(yīng)穿戴式與高C/P應(yīng)用為主。而ST的STMF479,其核心時脈高達(dá)180MHz,也搭載繪圖引擎,專攻人機(jī)介面應(yīng)用。
不過,撇除應(yīng)用面不談,英飛凌在尚未導(dǎo)入Cortex-M4前,就已有FPU(浮點(diǎn)運(yùn)算單元)與DSP(數(shù)字信號處理器)的MCU產(chǎn)品線:TriCore系列。該系列產(chǎn)品線,早在1999年就已經(jīng)面世。
英飛凌電源管理與多元電子事業(yè)處亞太區(qū)市場部資深經(jīng)理黃志鴻表示,當(dāng)初英飛凌設(shè)計(jì)TriCode,本身就具備了DSP與FPU的功能,就應(yīng)用面而言,就聚焦在汽車領(lǐng)域。而談到先前就引進(jìn)Cortex-M4的原由,黃志鴻也直言,所鎖定的應(yīng)用就是工業(yè)自動化領(lǐng)域,再加上ARM架構(gòu)在全球市場中,本來就有其普遍性,并進(jìn)一步取得過去由傳統(tǒng)的DSP業(yè)者所壟斷的市場。Cortex-M4在先天上,本身就具備即時性的特性,像是近期英飛凌所聚焦的工業(yè)乙太網(wǎng)路與工業(yè)標(biāo)準(zhǔn)SIL3、SIL4等,都十分適合。
圖5 : 乙太網(wǎng)路進(jìn)入工業(yè)領(lǐng)域后,成了重要的網(wǎng)路通訊技術(shù),由于有其普遍性與開放性,采用開放的處理器核心來提供MCU方案,也是合理的選擇。(Source:www.datacenterdynamics.com)
所以英飛凌的產(chǎn)品區(qū)隔相當(dāng)明顯,擁有FPU與DSP的MCU產(chǎn)品線,延續(xù)TriCode架構(gòu),進(jìn)而一脈相承的AURIX,聚焦車用應(yīng)用,取得ARM授權(quán)的Cortex-M4,就扛下工業(yè)自動化市場的責(zé)任。當(dāng)然,英飛凌對于Cortex-M4也還有其他的期待,像是數(shù)字電源與馬達(dá)控制領(lǐng)域,英飛凌也開始嘗試?yán)肅ortex-M4 MCU打入其應(yīng)用。他也不諱言,DSP也的確存在相當(dāng)長的一段時間,產(chǎn)業(yè)界有不少工程師對于DSP本來就有相當(dāng)高的熟悉度,MCU約莫是在三年前左右,才開始導(dǎo)入DSP功能。
圖6 : 車用電子產(chǎn)業(yè)的特性相對較為封閉,盡管在車用處理器可以看到ARM有明顯的市占率表現(xiàn),但在MCU方面,還是由各大車用半導(dǎo)體所提供的自主架構(gòu)居多, ARM的能見度相對較低。(Source:www.teijinaramid.com)
而黃志鴻也強(qiáng)調(diào),Cortex-M4還是有其局限性在,像是視訊系統(tǒng)的設(shè)計(jì),還是要透過DSP來處理會較為適當(dāng)。像是高速鐵路或是風(fēng)力發(fā)電系統(tǒng)等應(yīng)用,普遍來看還是傳統(tǒng)的DSP業(yè)者主導(dǎo)。但如果是電動機(jī)車、一般風(fēng)扇、家電與智慧家庭等,就有FPU功能的MCU的發(fā)揮空間。
談到數(shù)字電源,同樣也有類似的情況,黃志鴻表示,從功率大小來區(qū)分,從500瓦以上的系統(tǒng)設(shè)計(jì),如伺服器或是電信設(shè)備的AC/DC電源,市場上還是以傳統(tǒng)DSP架構(gòu)為主,但也的確有不少擁有Cortex-M4 MCU的業(yè)者對于該市場,有相當(dāng)高的興趣。
圖7 : 數(shù)字電源在電源設(shè)計(jì)領(lǐng)域漸漸成為主流,市場也開始有了用MCU來進(jìn)行數(shù)字電源設(shè)計(jì)。(攝影:姚嘉洋)
MCU多元架構(gòu)并陳定位仍有不同
徐達(dá)勇表示,將DSP與FPU加以整合,無需外掛的好處在于,系統(tǒng)工程師可以用同一套的偵錯與編譯器等工具,進(jìn)行系統(tǒng)開發(fā),簡單說,簡化開發(fā)環(huán)境對于系統(tǒng)開發(fā)而言,可以提升不少效率。在過去,采用DSP設(shè)計(jì),會有些設(shè)計(jì)方法必須動用組合語言的作法才能完成,但是,MCU的開發(fā),最終還是要回歸到C語言的撰寫。若把DSP導(dǎo)入與MCU一同合作,ARM在作法上,就是統(tǒng)一采用C語言的方式,來統(tǒng)一DSP、FPU的撰寫方式,解決了過去組合語言所造成的困擾。然而,陳俊宏也強(qiáng)調(diào),事實(shí)上組合語言是更為細(xì)膩的程式語法,對于工作執(zhí)行上能更有效率,TI近年來也不斷努力,讓C語言與組合語言兩者之間的差異縮小,以讓使用者能有更多的選擇。[!--empirenews.page--]
徐達(dá)勇也同意,目前MCU市場除了ARM架構(gòu)外,的確也存在其他不同的架構(gòu),讓DSP與FPU形成多元共存的局面。他也坦言,在架構(gòu)上,各家其實(shí)并沒有太大的差異,唯一能形成區(qū)別的,大概就是在效能與開發(fā)工具能分出高低而已。
而近年來,如英飛凌與瑞薩科技等,先后導(dǎo)入Cortex-M4核心,也使得MCU戰(zhàn)場顯得更詭譎多變。徐達(dá)勇強(qiáng)調(diào),近年來產(chǎn)業(yè)界不斷地在談物聯(lián)網(wǎng),這意味著需要用更為開放的架構(gòu)來因應(yīng)物聯(lián)網(wǎng)的設(shè)計(jì)需求,而這必須透過完整的生態(tài)系統(tǒng)才能作到,畢竟可能還會有第三方演算法設(shè)計(jì)或是設(shè)計(jì)工具業(yè)者,能夠提供比 MCU業(yè)者更具競爭力的開發(fā)工??具也不一定,此時就會讓客戶有了更多不同的選擇。他不諱言,有些較為封閉特性的應(yīng)用,或許采用其他架構(gòu)的MCU來進(jìn)行設(shè)計(jì),也許就能滿足客戶的需求。
圖8 : 談到物聯(lián)網(wǎng),ARM所形塑的生態(tài)系統(tǒng)相當(dāng)完整,各大一線的MCU業(yè)者幾乎都向ARM靠攏,形成魚幫水,水幫魚的情景。