DSP技術(shù),在某些人看來,或者已經(jīng)面臨著英雄遲暮的感覺,就我們當(dāng)前所知道的。Freesacle、ADI、NXP早就停掉了新技術(shù)發(fā)展,而當(dāng)前從大的方面說只剩下TI一家扛著Digital Signal Processor的大旗。
在很多人看來,這十年來,ARM和Intel的發(fā)展幅度已經(jīng)遠遠超過了DSP。尤其是在ARM,其A9雙核、A15四核在嵌入式市場已經(jīng)以摧枯拉朽之勢占領(lǐng)了主導(dǎo)地位,但我們不能否認(rèn),在工業(yè)領(lǐng)域,DSP的應(yīng)用還是占有很重要的位置。而在Intel,自Silvermont推出以后,低功耗的X86又稱為一股強勁勢力。有人就會覺得ARM和Intel在未來的某個日子能夠取代DSP。
關(guān)于這個問題,電子工程師陳俊直給出了一個這樣的看法:
他認(rèn)為,對于DSP,有兩個解釋,第一個Digital Signal Processing,是數(shù)字信號處理,是門學(xué)科技術(shù),簡單的說是講現(xiàn)實世界中的模擬信號量轉(zhuǎn)換為數(shù)字信號量然后進行分析、離散變換、調(diào)制解調(diào)等等方面的數(shù)字運算。其有別于簡單的加減乘數(shù)等四則運算;
第二個解釋就是Digital Signal Processor,數(shù)字信號處理器,簡單的說就是嵌入了可以快速處理數(shù)字信號分析、離散變換、調(diào)制解調(diào)等方面的一種特殊的微處理器。
從解釋上可以看出,DSP芯片就是一顆加入了數(shù)字信號處理功能的微處理器芯片。
那么ARM、和Intel的芯片也是微處理器芯片,大家其實工作都是進行運算,那么不帶數(shù)字信號處理功能的微處理器和帶該功能的處理器有什么區(qū)別呢?
DSP處理器有一個指標(biāo),就是“乘法和累加運算”,就是一個32位數(shù)乘上另一個32位數(shù)其積再加一個32位數(shù),這個運算過程要在一兩個指令周期內(nèi)完成。換了ARM和Intel的微處理器,是不可能在一兩個指令周期完成的,它們乘法就要跑好幾個指令周期了。而DSP芯片自帶了一個MAC模塊,主頻相同情況下,可以比ARM和INTEL快N倍的計算出來。類似的還有快速傅里葉變換功能,這種數(shù)學(xué)運算在沒有DSP功能的芯片中,往往要算好長時間才能出結(jié)果。
那么你會說了,那我ARM和Intel的芯片業(yè)嵌入這種模塊就行了啊。是的,可以嵌。但是,一旦嵌入這種芯片,那么ARM芯片也可以叫做DSP芯片了。
所以,DSP只是一種技術(shù),一種嵌了該技術(shù)的芯片,誰都可以生產(chǎn)。其實有些ARM芯片內(nèi)部就嵌入了DSP功能,比如很多高通的一系列用于手機上的ARM主控芯片就自帶DSP功能。
而Intel自身發(fā)展是做計算領(lǐng)域的主控,在工業(yè)航天醫(yī)療等嵌入式領(lǐng)域才用得多的數(shù)字信號處理他們并不怎么涉及,所以他們的東西基本不會嵌入DSP模塊。
Microchip為了避免和TI的C2000系列DSP直接競爭,他們把旗下的dsPIC系列DSP芯片叫做DSC,其實還是DSP芯片,而且他們一直在推出下新品。還有,飛思卡爾、ADI、NXP他們還都有生產(chǎn)DSP,只是他們爭不過TI的專用DSP。主要一點還是發(fā)現(xiàn)爭不過FPGA芯片。
這里又引出了FPGA這個技術(shù),說到這個,或許才真的是DSP的真正敵人。目前做FPGA芯片的大廠有Altera、Xilinx等。他們不屬于Intel公司,也不生產(chǎn)ARM芯片,他們只專注于FPGA芯片。
我們知道,微處理器芯片其實是一堆數(shù)字電路大規(guī)模超高密度集成在芯片中,其最小單元其實就是晶體管,晶體管集成一個個門電路。門電路通過一系列排列組合形成了芯片內(nèi)部CPU、存儲單元。這都是出廠前固化好的。
那我能否修改一下CPU 模塊的某個門電路,讓它有別的用途呢?已經(jīng)出廠就固化的沒法改,但現(xiàn)在有了FPGA,你可以用程序編一個你自己發(fā)明的CPU內(nèi)核出來,嵌到FPGA芯片中去,那么你想加入DSP有的MAC模塊等都可以,如果你覺得一個CPU內(nèi)核不過癮,還可以再加一個內(nèi)核進去(前提是FPGA芯片容量和資源夠大,當(dāng)然這芯片就貴了)。
所以,現(xiàn)在飛思卡爾、ADI等看到FPGA芯片如此強勢,工業(yè)級的DSP成本又高,賣的價格跟FPGA差不多,價格比FPGA低點但又爭不過TI的DSP市場。所以沒辦法,只好慢慢退出了?,F(xiàn)在TI也是靠以前的老客戶死扛著。萬一哪天,高端的FPGA降到跟他們差不多的價格,他們也要退出了。
當(dāng)然FPGA的缺點除了自身成本高以外,如果要嵌入ARM、DSP核的話,這些核也更是要花錢的。同時就是FPGA的HDL開發(fā)難度要遠大于DSP的C,特別是在典型的圖像處理算法上,這也在一定程度上限制了FPGA的發(fā)展。雖然現(xiàn)在Xilinx的Vivado支持high level synthesis,把C轉(zhuǎn)成HDL,但是,這也是一個很困難的問題。這也不是一個明智的選擇。
在某些工程師看來,作為一個帶有專用計算單元的處理器。DSP是為了滿足專用市場做的一種帶許多數(shù)學(xué)計算功能的處理器。比如哈弗結(jié)構(gòu),比如帶SIMD、VLIW技術(shù)的計算單元,曾經(jīng)讓DSP在專用市場領(lǐng)先很多。而TI DSP的優(yōu)勢就是低功耗、高運算性能、成熟穩(wěn)定,再加上明顯的價格優(yōu)勢。
從架構(gòu)來說,TI固守的哈弗結(jié)構(gòu)近十年沒大的改動,而arm、intel推陳出新的速度還是有目共睹的??磧蓚€小例子,intel的分支預(yù)測領(lǐng)先TI家很多;再比如TI的二級緩存、片內(nèi)片外還需要用戶來管理,cache miss penalty也相當(dāng)高,而intel高超的緩存技術(shù)讓你基本感覺不到片內(nèi)片外的區(qū)別。
再看運算單元,現(xiàn)在arm有neon,intel有sse、avx、亂序執(zhí)行,還有專用圖像計算的gpp;再加上FPGA。這些產(chǎn)品計算單元都已經(jīng)很強悍了,所以說DSP的數(shù)學(xué)計算性能已經(jīng)不能算是領(lǐng)先了。比如DSP里兩個4字節(jié)整型做乘加運算,TI的C674x需要4個時鐘周期,intel的sse3處理16個字節(jié)的乘加運算也只需要4個周期;
而在復(fù)雜算法領(lǐng)域,比如圖像處理、模式識別,DSP是真的不夠用了,跑個boosting都吃力的要死,壓縮感知算法也就預(yù)研預(yù)研,最終絕大部分還是跑在intel、amd平臺。
簡單算法,可選的處理器太多,所以最重要的就是價格。我看好arm,而fpga沒有價格優(yōu)勢。當(dāng)然現(xiàn)在c2000現(xiàn)在還是有很多擁躉的,但是已經(jīng)被別的處理器吃掉不少市場了。
以上是以計算性能為核心介紹的,沒有涉及到功耗。而在同樣的計算量,耗時相近的情況下,DSP的功耗控制是最優(yōu)秀的,ARM、atom都不如DSP功耗低(asic可能也很好,但是不算通用處理器)。這也是為什么在嵌入式復(fù)雜算法市場,還是DSP為主流。
而就陳工看來,DSP的計算優(yōu)勢并不在于普通四則運算上。就拿快速傅里葉變換FFT來說,同頻率下,其他任何不帶DSP內(nèi)核的微處理器的FFT都要遜色于DSP。我們做DSP或者嵌入式其他的算法,都是根據(jù)《自動控制原理》或者《信號系統(tǒng)》,而不是根據(jù)《數(shù)據(jù)結(jié)構(gòu)》。[!--empirenews.page--]
他認(rèn)為DSP做boosting不是一個明智的選擇,DSP對頻域方面的運算能力可以設(shè)計一個實時聲音過濾器(將嘈雜環(huán)境中的聲音全部通過麥克風(fēng)傳到AD電路上,后通過DSP運算,把其中某個人的聲音摘出來,并通過喇叭實時放出來某人的聲音。這樣的數(shù)字濾波器可以做到比手機還小)。在TI DSP最大供貨的工業(yè)控制、航天領(lǐng)域,多數(shù)的DSP應(yīng)用上跟計算機算法技術(shù)沒啥關(guān)系。
而說到DSP的低功耗,當(dāng)然DSP做濾波、音頻處理等方面的時候,沒用到DSP功能把(只是把它們當(dāng)一個單片機那樣來使用),這樣功耗是很低的。但如果用DSP做SPWM或數(shù)字濾波器什么的時候,功耗就大起來。具體對比數(shù)值我已經(jīng)忘了,以前做礦用電機控制的時候?qū)Ρ冗^用ARM控制的功耗。(但好像Microchip的DSP芯片在做濾波時候功耗更低)。
其實,16bit/32bit的DSP芯片(或是其他32位MCU/ARM嵌入DSP功能的芯片)在長期發(fā)展中一直和各種單片機、ARM、PowerPC、X86等共存,并且不僅僅是TI,其他很多廠家都專門生產(chǎn)或者嵌入DSP模塊(比如Microchip的dsPIC系列DSP芯片,就一直不斷出新品)。這就說明DSP擁有著其他各種架構(gòu)處理器都不擁有的信號處理能力。
綜合看下來,FPGA才是未來的大殺器,大家怎么看待?當(dāng)然,整個討論只是一家之言,希望大家能夠理性看待整個討論。