ARM 和 Intel 誰能代替 DSP?
DSP早已是英雄遲暮,freesacle、ADI、NXP早就停掉了新技術發展,只剩下TI一家撐著Digital Signal Processor的大旗,其實近十年來的發展幅度已經遠遠落後於arm和intel。凡是能做到硬體完成的處理,arm和intel都做的差不多了,DSP現在引以為傲的只剩下嵌入式計算了。
目前看來雙核A9、四核A15在嵌入式市場已經佔據了主導地位,佔領DSP的嵌入式計算似乎也是摧枯拉朽、順理成章的事情。但是直到現在為止,工業領域內的DSP應用依舊方興未艾。arm在攻城略地,但是仍未真正戰勝DSP。嵌入式市場是intel新領導人眼中的藍海,silvermont的推出也讓人眼前一亮:半導體老大就是厲害,這次可以輕鬆秒掉四核A15了,再過幾年就可以攻擊超低功耗的ARM了!但是,intel真的會一帆風順么?這才剛開頭。就個人工作而言,我希望是由intel來終結掉高端應用的DSP、arm完全取代低端應用的DSP。
我不知道你這段話是自己理解的還是哪裡抄來的。首先這個題目就很可笑,說明你根本不理解什麼叫做DSP。
DSP有兩個解釋,第一個Digital Signal Processing,是數字信號處理,是門學科技術,簡單的說是講現實世界中的模擬信號量轉換為數字信號量然後進行分析、離散變換、調製解調等等方面的數字運算。其有別於簡單的加減乘數等四則運算;第二個解釋就是Digital Signal Processor,數字信號處理器,簡單的說就是嵌入了可以快速處理數字信號分析、離散變換、調製解調等方面的一種特殊的微處理器。
所以,從解釋上可以看出,DP晶元就是一顆加入了數字信號處理功能的微處理器晶元。那麼ARM、和Intel的晶元也是微處理器晶元。大家其實工作都是進行運算,那麼不帶數字信號處理功能的微處理器和帶該功能的處理器有什麼區別呢?DSP處理器有一個指標,就是「乘法和累加運算」,就是一個32位數乘上另一個32位數其積再加一個32位數,這個運算過程要在一兩個指令周期內完成。換了ARM和INTER的微處理器,是不可能在一兩個指令周期完成的,它們乘法就要跑好幾個指令周期了。而DSP晶元自帶了一個MAC模塊,主頻相同情況下,可以比ARM和INTEL快N倍的計算出來。類似的還有快速傅里葉變換功能,這種數學運算在沒有DSP功能的晶元中,往往要算好長時間才能出結果。
DSP的快速傅里葉變換比普通離散傅里葉變換計算速度要快100~10000倍。如果讓處理器位數相同、工作在相同時鐘周期、且流水結構相近的DSP和ARM同時對一個聲音函數進行時域轉頻域運算,ARM跑到宕機了也不一定能追上DSP。那麼你會說了,那我ARM和intel的晶元業嵌入這種模塊就行了啊。是的,可以嵌。但是,一旦嵌入這種晶元,那麼ARM晶元也可以叫做DSP晶元了(根據我前一段第一句說的)。所以,DSP只是一種技術,一種嵌了該技術的晶元,誰都可以生產。其實有些ARM晶元內部就嵌入了DSP功能,比如很多高通的一系列用於手機上的ARM主控晶元就自帶DSP功能。而Intel自身發展是做計算領域的主控,在工業航天醫療等嵌入式領域才用得多的數字信號處理他們並不怎麼涉及,所以他們的東西基本不會嵌入DSP模塊。而Microchip為了避免和TI的C2000系列DSP直接競爭,他們把旗下的dsPIC系列DSP晶元叫做DSC,其實還是DSP晶元,而且他們一直在推出下新品。還有,飛思卡爾、ADI、NXP他們還都有生產DSP,只是他們爭不過TI的專用DSP。主要一點還是發現爭不過FPGA晶元。這裡說DSP晶元真正的敵人是誰:FPGA晶元。做FPGA晶元的大廠有Altera、Xilinx等。他們不屬於INTEL公司,也不生產ARM晶元,他們只專註於FPGA晶元。我們知道,微處理器晶元其實是一堆數字電路大規模超高密度集成在晶元中,其最小單元其實就是晶體管。晶體管集成一個個門電路。門電路通過一系列排列組合形成了晶元內部CPU、存儲單元。。。這都是出廠前固化好的。那我能否修改一下CPU 模塊的某個門電路,讓它有別的用途呢?已經出廠就固化的沒法改,但現在有了FPGA,你可以用程序編一個你自己發明的CPU內核出來,嵌到FPGA晶元中去,那麼你想加入DSP有的MAC模塊等都可以,如果你覺得一個CPU內核不過癮,還可以再加一個內核進去(前提是FPGA晶元容量和資源夠大,當然這晶元就貴了)。所以,現在飛思卡爾、ADI等看到FPGA晶元如此強勢,工業級的DSP成本又高,賣的價格跟FPGA差不多,價格比FPGA低點但又爭不過TI的DSP市場。所以沒辦法,只好慢慢退出了。現在TI也是靠以前的老客戶死扛著。萬一哪天,高端的FPGA降到跟他們差不多的價格,他們也要退出了——現在幾千元一顆的FPGA晶元都有,我見過有人那它嵌了兩個ARM內核一個DSP(不是雙核,而是等於兩個ARM晶元),看看這裡你就有印象了www.elecfans.com/xinpian/ic/20120817284784.html啰啰嗦嗦手打了半個多小時,不喜勿噴。本人ARM、DSP、PIC單片機開發過一段時間,FPGA尚在學習中如有紕漏,敬請同行們指教——一個混了五年的小電工。談談個人的理解:
(一)飛思卡爾ADI為什麼「放棄」DSP?
我覺得,飛思卡爾,ADI等不研發DSP因為無法和TI抗衡,投入大回報少的事情,作為一個商業公司不得不慎重考慮一下是否要發展,畢竟賠本買賣沒幾個人願做。(二)別忽視DSP的軟實力!
DSP幾乎涵蓋控制、音視頻圖像處理,模式識別這些領域,硬體優勢是一方面,德儀還提供豐富的性能極高的演算法,演算法之多,你或許難以相信,尤其是視頻和音頻的處理,每年大批的研發費用流向演算法的研究,當然了,演算法的使用需要支付很高的費用。這也歸功於DSP是支持C和彙編的,也歸功於它良好的編譯器。這樣,德儀這麼做也給DSP貼了一個標籤,DSP廣泛適用於運算的各個領域,涵蓋控制領域,數字視頻,數字圖像,音頻,人工智慧的處理,DSP具備廣普性。我相信,這方面多多少少為DSP的地位提供了一份穩定的保障。(三)FPGA軟之殤。
賽思靈等的FPGA,性能足,並行處理機制,彷彿威脅到了DSP的地位,但是它有個與生俱來的弊端----HDL和Ver語言靈活性比C差很多,高端複雜演算法「有力無心」,即便硬生生的開發出相關演算法,開發成本之高,投入人力物力不可想像,且可以移植性很差。FPGA這些公司垂涎DSP的位置已久,可令他們頭疼的正是各個領域演算法研發的不完整,站在DSP的位置去看FPGA,它們真的有好遠好遠的路要走,如何解決HDL的不靈活;如何編出形形色色的結合工程領域的數學演算法;如何優化;如何豐富演算法庫;如何解決移植問題;如何將運算和並行機制完美結合;運算效率如何超越DSP;就算加個假設,FPGA想出了極佳的解決演算法靈活性的方案,但需要多久去豐富各個領域的演算法庫,豐富之後,效率如何,用戶體驗如何,用戶基數多嗎,投入的這些能賺回來嗎。DSP從誕生開始走到今天並不容易,需要時間的積累,沉澱,需要無數人拿捏市場方向,去賭,去思考,常用的演算法,已經經過無數人的實踐,優化反饋,再優化,再反饋,這些過程FPGA不需要走一遍嗎?也難道DSP在這期間就不發展了,坐在那裡等著FPGA攆上再一起比較發展?當然不可能,DSP也再不斷的發展。所以,DSP硬體上有一定的優勢,軟實力也是有的。(四)DSP輔助地位
英特爾的I7處理器具備核顯功能,可市面上的電腦往往都加獨立顯卡,英特爾完全可以增強核顯功能取代獨立顯卡,可這樣做不但增加了CPU的功耗,也增加了CPU的成本,一些人用的到,一些人用不到,用不到的人無疑是浪費,用得到的人也是偶爾用到,不用的時候也是浪費,而且人們喜歡對重要的問題專業化處理,打遊戲,視頻渲染,需要時獨立顯卡大展身手,平時不用這些顯卡時就處於休眠狀態。我覺得德儀對待DSP的態度也是同樣,至關重要的問題就用專業的設備來解決,我們也只是需要特定的時機才需要超強度的運算。所以DSP的定位就應該處於類似於獨立顯卡的地位,一手好的輔助。(五)DSP怎麼定位,怎麼發展?
TI自08年起,不再對於純DSP進行研發創新,而DSP常常作為協處理器出現在高端專用處理器中,著名的達芬奇平台ARM+DSP架構,還有TI的部分Sitara ARM 都集成TI的C6000系列DSP,例如,AM5728,2個Cortex-A15核,2個C66X的DSP,專業處理視頻音頻的,好,你在這裡說,A15核這麼厲害,會取代DSP,可是事實告訴我們並不是,TI將它倆「強強聯合」形成了一個新的東西,這不是取代關係,而是合作。我理解,TI一直在給DSP進行重新定位,這種發展趨勢並不是獨立出來並強大之,TI早就嗅到形單影隻的DSP並不具備競爭力,好比一個強大的靈魂需要一個強大的身體軀殼,DSP不能像是ARM,FPGA一樣是一個獨立的處理器,而更多的應該說是DSP能力,功能,是一個被集成的核。(六)FPGA的優勢在哪裡
FPGA的雛形源於所有數字晶元的根基----無數門電路的組合。我諮詢過做晶元的童鞋,就算當前的ARM和DSP INTEL的處理器,除了集成模擬那塊的功能,數字部分都是先做邏輯設計出一塊「母晶元「,然後一層一層的往上架設外設,介面等等,直到我們可以編程,編譯拷貝指令,而FPGA省去了此過程,相當於去編程操控這個「母晶元」,在設計邏輯階段完成對項目的設計,有點兒創造晶元功能的味道。ARM,DSP有自己的開發框架,而FPGA卻不受限制,也就是說,一塊FPGA可以打破市面上ARM,DSP瓶頸的限制。比如做一個要求十分高的視頻解碼,這個市面上的DSP就算2.0GHz的速率也無法滿足實時性,這時或許一個幾百MHz的FPGA就可以解決,邏輯的並行處理機制,我可以無限拓展並行的寬度,當然資源消耗相當嚴重,但話說回來,無論怎樣,這個世界存在可以幫你解決問題的東西了,不是嗎,即便他很昂貴。最新Intel雲計算有意向選擇FPGA作為一個運算協處理器,這是對FPGA的肯定。看趨勢,FPGA也不得不擔任高端領域運算光榮使命,但這並不代表DSP沒落,為什麼,對於那些普適性,DSP可以處理的很好的演算法,實時性又可以滿足,DSP的協議介面做的這麼完善,我為什麼要選擇FPGA呢?? 總之,各有定位,各有千秋。(七)個人感想
作為一個嵌入式工程師,我們要希望手裡幹活和解決問題的工具越來越鋒利,越來越好用,效率越來越高,而不是幸災樂禍一個產業的滅亡,更應該秉承的態度就是「冷眼旁觀」,我們無法左右一個信息產物的發展方向,信息產物有其客觀規律,同樣他們的命運也握在巨頭公司的大鱷手裡,可能他們一個決策失敗,就導致整個產物的滅亡;也可能他們拿捏好方向,使這些東西蒸蒸日上,事情無絕對。FPGA好用,我們就去用FPGA,DSP好用我們就去用DSP。不能說,一個工具用順手了,就不去嘗試其他的工具。也不能說,工具更先進了,我們還墨守成規還用自己的「老一套」,時代是再發展,科學也再進步。慈禧第一次看見火車行駛進來,嚇得面色蒼白,這在現代覺得她愚蠢和好笑,可在那個時代呢?看看下面的列表,讓TI DSP顫抖吧。。。64位MAC指令ARM A57就有,SMADDL: Multiply accumulate long,3週期完成,主頻2GHz四核;TI,呵呵,是32位MAC吧,有多少級流水線?大家應該刷新一下大腦了;Intel更是神一樣的存在,參見Xeon Phihttp://infocenter.arm.com/help/topic/com.arm.doc.uan0015a/cortex_a57_software_optimisation_guide_external.pdfFMA instruction set
DSP怎麼會被ARM和INTEL取代?嗎意思?估計哪天ARM倒閉了,DSP還會存在吧?DSP首先是一種技術,數字信號處理,涉及到複雜的運算,比如傅里葉變換,而FFT的運算量很大(解算正交中的乘法),又有實時性要求,比如通信、視頻會議、網路監控等,處理數據這些數據?通用CPU領域裡的INTEL和嵌入式MCU發展而來的ARM,當然也可以來處理這些數據,比如通過軟體演算法實現,成為DSP軟核,但是,效率和實時性就會差很多。他們沒有專門對付實時數字信號的硬體乘法器(GPCPU而言,乘法是通過加法器來做的),也沒有先天就能提升取指速度的哈佛結構(指令與數據存儲分開)。所以,DSP就是專門用來滿足這個需求的,去掉了ARM和X86處理器的大而全的功能。可以這樣理解,從硬體上說,DSP是一種專用處理單元,有其不可缺失的應用領域,無論它以IP核的形式集成到SOC中,還是以單晶元形式在電路板上,都不會因為某個公司的消亡而被取代而消失。
不存在誰代替誰的問題。
技術每天都在進步。
乘法器是DSP的殺手鐧
嵌入式計算?ZYNQ7000這類器件恐怕要淘汰很多DSP。兩顆ARM核加相當充裕的可編程邏輯資源,而且白菜價,DSP面臨性能功耗價格靈活性全線潰敗的境地。談到開發難度,人家直接帶著LINUX、HLS和MPSOC上場,真不見得比寫並行彙編更難。
其實,之所以大家會有這幾類器件相互替換的想法是因為科技的迅速發展,使得原本各自在擅長的領域工作的晶元也開始兼容一些相近晶元的功能。所以看起來各個晶元似乎是完全可替代了。但你沒考慮執行效率,速度,還有功耗等問題。這幾類晶元在原本自己主導的方面是無可替代的。
DSP是專門加速數字信號處理的(語音和圖像),有專用的指令集和流水操作結構,和ARM/X86的完全結構不同,目前不能被這兩個取代
dsp是原越來越尷尬了。只是因為慣性現在還有很多應用
DSP強就強在矢量運算和一些可定製的指令。但是現在處理器開發成本越來越高(設計、驗證、流片,更為麻煩的是還需要配套的編譯器和手寫彙編)且不少地方dsp的矢量運算部件利用率並不是很高,現在確實有一種思路在考慮使用通用處理器(ARM或者x86)+加速器解決一些特定領域的問題。不過當下大多數還在使用dsp,因為畢竟使用定製化的硬體是效率最高功耗最低的解決方案,但是不夠通用性,這確實是個矛盾。
DSP並行計算能力還是挺厲害的
仔細比較下ARM、x86跟DSP的CPU的指令集就知道了,一定程度上ARM跟x86可以互相替換,而DSP是替換不了了。
樓主自然是指DSP片和ARM,FPGA的相互替代進程,我是搞音頻處理的,自從建好了FPGA處理團隊以後,覺得以前在ADI,TI的DSP上花的功夫都白費了。看好Intel在FPGA上的硬浮點DSP。
CEVA和Tensilica能把ARM打得滿地找牙,查查Holelens的HPU是用什麼做得。
DSP怎麼會被ARM取代呢?題主是不太了解生態吧。DSP各大家silicon都有,或者自己的DSP,或者第三方的DSP IP核。沒看到DSP IP領域內的Cadence(Tensilica)和CEVA都很滋潤么?
dsp實時信號處理方面比較好吧,而x86,arm在實時方面優勢不太好,因為通用cpu指令序列和數據序列處理速度不確定那實時性很難保證,可能需要一些特殊數學技巧那確保實時性。。
DSP屬於專業領域,與CPU還是有顯著區別。FPGA當然計算速度最快,但成本高昂,開發周期也長,同時功耗限制了FPGA的大部分應用,所以目前大部分應用於成本不敏感的領域。
聯繫題主去了解一下CEVA
贊同題主最後說的
希望是intel替代高端dsp,畢竟矢量運算和科學計算lapack太強大,信號處理上fftw也足夠快,隨著intel指令集不斷的更新,這些運算並行性會更快更強,intel唯一要做的是功耗還是功耗。目前intel的多核從功率上說,甚至無法跟多片組陣的6678的功耗相比。所以還是要解決功耗。看了不斷有人來解釋dsp二義性,實在覺得拉低dsp認知。。。x86和dsp架構上都做過信號處理,做過科學計算,知道eigen,知道TI原廠庫對矩陣矢量複數的支持的簡陋,再回答題主問題不遲在通信系統中dsp因為在乘法器傅立葉變換中的較快速度目前還是用的比較廣泛的
Altera 和xilinx
推薦閱讀: