【導讀】如果將這三者結(jié)合起來,即由DSP結(jié)合采樣電路采集并處理信號,由ARM處理器作為平臺,運行Linux操作系統(tǒng),將經(jīng)過DSP運算的結(jié)果發(fā)送給用戶程序進行進一步處理,然后提供給圖形化友好的人機交互環(huán)境完成數(shù)據(jù)分析和網(wǎng)絡傳輸?shù)裙δ埽蜁畲笙薅鹊陌l(fā)揮三者所長。
DSP
DSP(digital singnal processor)是一種獨特的微處理器,有自己的完整指令系統(tǒng),是以數(shù)字信號來處理大量信息的器件。一個數(shù)字信號處理器在一塊不大的芯片內(nèi)包括有控制單元、運算單元、各種寄存器以及一定數(shù)量的存儲單元等等,在其外圍還可以連接若干存儲器,并可以與一定數(shù)量的外部設備互相通信,有軟、硬件的全面功能,本身就是一個微型計算機。
DSP采用的是哈佛設計,即數(shù)據(jù)總線和地址總線分開,使程序和數(shù)據(jù)分別存儲在兩個分開的空間,允許取指令和執(zhí)行指令完全重疊。也就是說在執(zhí)行上一條指令的同時就可取出下一條指令,并進行譯碼,這大大的提高了微處理器的速度。另外還允許在程序空間和數(shù)據(jù)空間之間進行傳輸,因為增加了器件的靈活性。
其工作原理是接收模擬信號,轉(zhuǎn)換為0或1的數(shù)字信號,再對數(shù)字信號進行修改、刪除、強化,并在其他系統(tǒng)芯片中把數(shù)字數(shù)據(jù)解譯回模擬數(shù)據(jù)或?qū)嶋H環(huán)境格式。它不僅具有可編程性,而且其實時運行速度可達每秒數(shù)以千萬條復雜指令程序,源源超過通用微處理器,是數(shù)字化電子世界中日益重要的電腦芯片。它的強大數(shù)據(jù)處理能力和高運行速度,是最值得稱道的兩大特色。
DSP芯片,由于它運算能力很強,速度很快,體積很小,而且采用軟件編程具有高度的靈活性,因此為從事各種復雜的應用提供了一條有效途徑。其主要應用是實時快速地實現(xiàn)各種數(shù)字信號處理算法。根據(jù)數(shù)字信號處理的要求,DSP芯片一般具有如下主要特點:
(1) 在一個指令周期內(nèi)可完成一次乘法和一次加法;
(2) 程序和數(shù)據(jù)空間分開,可以同時訪問指令和數(shù)據(jù);
(3) 片內(nèi)具有快速RAM,通??赏ㄟ^獨立的數(shù)據(jù)總線在兩塊中同時訪問;
(4) 具有低開銷或無開銷循環(huán)及跳轉(zhuǎn)的硬件支持;
(5) 快速的中斷處理和硬件I/O支持;
(6) 具有在單周期內(nèi)操作的多個硬件地址產(chǎn)生器;
(7) 可以并行執(zhí)行多個操作;
(8) 支持流水線操作,使取指、譯碼和執(zhí)行等操作可以重疊執(zhí)行。
當然,與通用微處理器相比,DSP芯片的其他通用功能相對較弱些。
DSP優(yōu)勢在于其有獨特乘法器,一個指令就可以完成乘加運算,但GPP(通用處理器)處理一般是用加法代替乘法,要n多cpu周期,盡管cpu主頻很快,但還是要相當時間,這一點現(xiàn)在的GPP已經(jīng)基本上可以做到內(nèi)部單周期運算乘加指令了。
數(shù)字信號處理是一種通過使用數(shù)學技巧執(zhí)行轉(zhuǎn)換或提取信息,來處理現(xiàn)實信號的方法,這些信號由數(shù)字序列表示。在過去的二十多年時間里,數(shù)字信號處理已經(jīng)在通信等領域得到極為廣泛的應用。
ARM
ARM ( Advanced RISC Machines ),既可以認為是一個公司的名字,也可以認為是對一類微處理器的通稱,還可以認為是一種技術(shù)的名字。1991 年 ARM 公司成立于英國劍橋,主要出售芯片設計技術(shù)的授權(quán)。目前,采用 ARM技術(shù)知識產(chǎn)權(quán)( IP )核的微處理器,即我們通常所說的 ARM 微處理器,已遍及工業(yè)控制、消費類電子產(chǎn)品、通信系統(tǒng)、網(wǎng)絡系統(tǒng)、無線系統(tǒng)等各類產(chǎn)品市場,基于 ARM 技術(shù)的微處理器應用約占據(jù)了32 位 RISC 微處理器75%以上的市場份額, ARM 技術(shù)正在逐步滲入到我們生活的各個方面。 ARM 公司是專門從事基于 RISC 技術(shù)芯片設計開發(fā)的公司,作為知識產(chǎn)權(quán)供應商,本身不直接從事芯片生產(chǎn),而是轉(zhuǎn)讓設計許可由合作公司生產(chǎn)各具特色的芯片,世界各大半導體生產(chǎn)商從ARM公司購買其設計的 ARM 微處理器核,根據(jù)各自不同的應用領域,加入適當?shù)耐鈬娐?,從而形成自己?ARM 微處理器芯片進入市場。目前,全世界有幾十家大的半導體公司都使用 ARM 公司的授權(quán),因此既使得 ARM 技術(shù)獲得更多的第三方工具、制造、軟件的支持,又使整個系統(tǒng)成本降低,使產(chǎn)品更容易進入市場被消費者所接受,更具有競爭力。
ARM最大的優(yōu)勢在于速度快、低功耗、芯片集成度高,多數(shù)ARM芯片都可以算作SOC,基本上外圍加上電源和驅(qū)動接口就可以做成一個小系統(tǒng)了。
基于ARM核心處理器的嵌入式系統(tǒng)以其自身資源豐富、功耗低、價格低廉、支持廠商眾多的緣故,越來越多地應用在各種需要復雜控制和通信功能的嵌入式系統(tǒng)中。
ARM與DSP的比較
區(qū)別:
由于兩大處理器在各自領域的飛速發(fā)展,如今兩者中的高端或比較先進的系列產(chǎn)品中,都在彌補自身缺點、且擴大自身優(yōu)勢,從而使得兩者之間的一些明顯不同已不再那么明顯了,甚至出現(xiàn)兩者部分結(jié)合的趨勢(如ARM的AMBA總線,可以把DSP或其他處理器集成在一塊芯片中;又如DSP中的兩個系列OMAP和達芬奇系列,就是直接針對兩者的廣泛應用而將兩者結(jié)合在一起,從而最大發(fā)揮各自優(yōu)勢),另外,兩者各自不同系列的產(chǎn)品側(cè)重點也不盡相同,所以這里討論的是一些傳統(tǒng)意義上比較。
總的來說主要區(qū)別有:
ARM具有比較強的事務管理功能,可以用來跑界面以及應用程序等,其優(yōu)勢主要體現(xiàn)在控制方面,它的速度和數(shù)據(jù)處理能力一般,但是外圍接口比較豐富,標準化和通用性做的很好,而且在功耗等方面做得也比較好,所以適合用在一些消費電子品方面;
而DSP主要是用來計算的,比如進行加密解密、調(diào)制解調(diào)等,優(yōu)勢是強大的數(shù)據(jù)處理能力和較高的運行速度。由于其在控制算法等方面很擅長,所以適合用在對控制要求比較高的場合,比如軍用導航、電機伺服驅(qū)動等方面。
如果只是著眼于嵌入式應用的話,嵌入式CPU和DSP的區(qū)別應該只在于一個偏重控制一個偏重運算了。
另外:
內(nèi)核源碼開放的Linux與ARM體系處理器相結(jié)合,可以發(fā)揮Linux系統(tǒng)支持各種協(xié)議及存在多進程調(diào)度機制的優(yōu)點,從而使開發(fā)周期縮短,擴展性增強。
詳細來說:
DSP的優(yōu)勢主要是速度,它可以在一個指令周期中同時完成一次乘法和一次加法,這非常適合快速傅立葉變換的需求。DSP有專門的指令集,主要是專門針對通訊和多媒體處理的;而ARM使用的是RISC指令集(當然ARM的E系列也支持DSP指令集)是通用處理用的。
存儲器架構(gòu)和指令集特點不一樣
單片機為了存儲器管理的方便(便于支持操作系統(tǒng)),一般采用指令、數(shù)據(jù)空間統(tǒng)一編碼的馮·諾依曼結(jié)構(gòu)。 DSP為了提高數(shù)據(jù)吞吐的速度,基本上都是指令、數(shù)據(jù)空間獨立的哈佛結(jié)構(gòu)。
單片機對于數(shù)字計算方面的指令少得多,DSP為了進行快速的數(shù)字計算,提高常用的信號處理算法的效率,加入了很多指令,比如單周期乘加指令、逆序加減指令(FFT時特別有用,不是ARM的那種逆序),塊重復指令(減少跳轉(zhuǎn)延時)等等,甚至將很多常用的由幾個操作組成的一個序列專門設計一個指令可以一周期完成(比如一指令作一個乘法,把結(jié)果累加,同時將操作數(shù)地址逆序加1),極大的提高了信號處理的速度。由于數(shù)字處理的讀數(shù)、回寫量非常大,為了提高速度,采用指令、數(shù)據(jù)空間分開的方式,以兩條總線來分別訪問兩個空間,同時,一般在DSP內(nèi)部有高速RAM,數(shù)據(jù)和程序要先加載到高速片內(nèi)ram中才能運行。DSP為提高數(shù)字計算效率,犧牲了存儲器管理的方便性,對多任務的支持要差的多,所以DSP不適合于作多任務控制作用。
1.對密集的乘法運算的支持
GPP不是設計來做密集乘法任務的,即使是一些現(xiàn)代的GPP,也要求多個指令周期來做一次乘法。而DSP處理器使用專門的硬件來實現(xiàn)單周期乘法。DSP處理器還增加了累加器寄存器來處理多個乘積的和。累加器寄存器通常比其他寄存器寬,增加稱為結(jié)果bits的額外bits來避免溢出。同時,為了充分體現(xiàn)專門的乘法-累加硬件的好處,幾乎所有的DSP的指令集都包含有顯式的MAC指令。
2.存儲器結(jié)構(gòu)
傳統(tǒng)上,GPP使用馮.諾依曼存儲器結(jié)構(gòu)。這種結(jié)構(gòu)中,只有一個存儲器空間通過一組總線(一個地址總線和一個數(shù)據(jù)總線)連接到處理器核。通常,做一次乘法會發(fā)生4次存儲器訪問,用掉至少四個指令周期。
大多數(shù)DSP采用了哈佛結(jié)構(gòu),將存儲器空間劃分成兩個,分別存儲程序和數(shù)據(jù)。它們有兩組總線連接到處理器核,允許同時對它們進行訪問。這種安排將處理器存貯器的帶寬加倍,更重要的是同時為處理器核提供數(shù)據(jù)與指令。在這種布局下,DSP得以實現(xiàn)單周期的MAC指令。
還有一個問題,即現(xiàn)在典型的高性能GPP實際上已包含兩個片內(nèi)高速緩存,一個是數(shù)據(jù),一個是指令,它們直接連接到處理器核,以加快運行時的訪問速度。從物理上說,這種片內(nèi)的雙存儲器和總線的結(jié)構(gòu)幾乎與哈佛結(jié)構(gòu)的一樣了。然而從邏輯上說,兩者還是有重要的區(qū)別。
GPP使用控制邏輯來決定哪些數(shù)據(jù)和指令字存儲在片內(nèi)的高速緩存里,其程序員并不加以指定(也可能根本不知道)。與此相反,DSP使用多個片內(nèi)存儲器和多組總線來保證每個指令周期內(nèi)存儲器的多次訪問。在使用DSP時,程序員要明確地控制哪些數(shù)據(jù)和指令要存儲在片內(nèi)存儲器中(CMD文件的編寫)。程序員在寫程序時,必須保證處理器能夠有效地使用其雙總線。
此外,DSP處理器幾乎都不具備數(shù)據(jù)高速緩存。這是因為DSP的典型數(shù)據(jù)是數(shù)據(jù)流。也就是說,DSP處理器對每個數(shù)據(jù)樣本做計算后,就丟棄了,幾乎不再重復使用。
3 零開銷循環(huán)
如果了解到DSP算法的一個共同的特點,即大多數(shù)的處理時間是花在執(zhí)行較小的循環(huán)上,也就容易理解,為什么大多數(shù)的DSP都有專門的硬件,用于零開銷循環(huán)。所謂零開銷循環(huán)是指處理器在執(zhí)行循環(huán)時,不用花時間去檢查循環(huán)計數(shù)器的值、條件轉(zhuǎn)移到循環(huán)的頂部、將循環(huán)計數(shù)器減1(逆序加減指令)。
與此相反,GPP的循環(huán)使用軟件來實現(xiàn)。某些高性能的GPP使用轉(zhuǎn)移預報硬件,幾乎達到與硬件支持的零開銷循環(huán)同樣的效果。
4 定點計算
大多數(shù)DSP使用定點計算,而不是使用浮點。雖然DSP的應用必須十分注意數(shù)字的精確,用浮點來做應該容易的多,但是對DSP來說,廉價也是非常重要的。定點機器比起相應的浮點機器來要便宜(而且更快)。為了不使用浮點機器而又保證數(shù)字的準確,DSP處理器在指令集和硬件方面都支持飽和計算、舍入和移位。
發(fā)展趨勢
DSP是否將作為手機的心臟生存下去,目前的爭論非常激烈。今天的手機生產(chǎn)采用的是雙核方式:DSP芯片處理通信,如調(diào)制解調(diào)器功能和語音處理等;一塊通用處理器(通常是ARM設計的RISC處理器)負責處理手機上運行的各種程序,如用戶界面和控制協(xié)議堆棧等。隨這兩種處理器的功能日益強大,或許它們中的一方將會接管另一方目前執(zhí)行的功能。但問題在于:是ARM取代DSP,還是DSP擠掉ARM?
如果將這三者結(jié)合起來,即由DSP結(jié)合采樣電路采集并處理信號,由ARM處理器作為平臺,運行Linux操作系統(tǒng),將經(jīng)過DSP運算的結(jié)果發(fā)送給用戶程序進行進一步處理,然后提供給圖形化友好的人機交互環(huán)境完成數(shù)據(jù)分析和網(wǎng)絡傳輸?shù)裙δ?,就會最大限度的發(fā)揮三者所長。
推薦閱讀: