信息化的基礎(chǔ)是數(shù)字化。
數(shù)字化的核心技術(shù)之一是數(shù)字信號處理。
數(shù)字信號處理的任務(wù)在很大程度上需要由DSP器件來完成,。
DSP技術(shù)已成為人們?nèi)找骊P(guān)注的并得到迅速發(fā)展的前沿技術(shù),。
DSP是一種快速強大的微處理器,獨特之處在于它能即時處理資料,,正是這項即時能力使得DSP最適合支援無法容忍任何延遲的應(yīng)用,。舉例來說,您是否曾使用過一種不允許雙方同時說話的手機,?您必須等到對方把話說完后,,您才能接著說;如果您們兩個人同時講話,,訊號就會被切斷,,使您聽不到對方聲音。今日的數(shù)位手機則允許您以正常方式交談,,因為它采用了DSP,。 行動電話內(nèi)的DSP能以超高速度處理語音,使您能即時聽到對方的說話,,完全感受不到任何延遲,。再以相同應(yīng)用為例,早期的行動電話常會出現(xiàn)回音,,但數(shù)位行動電話卻能將回音和通話停頓的現(xiàn)象完全消除,。DSP會以聲音之類的真實世界訊號為目標,透過數(shù)學(xué)運算改變它的特性,,以便得到更佳音質(zhì),;DSP還能壓縮資料(您的聲音),消除背景雜訊,,使您的聲音能以更高速率傳送,,進而提供清徹?zé)o比的通話品質(zhì),沒有惱人的回聲,。 這是DSP用途的最簡單解釋,。要改善訊號,您需要數(shù)位訊號,,然后對它進行處理,,結(jié)果可能是更清晰的聲音、更銳利的畫面或是更快速的資料,;而這項訊號加強能力也帶來突破性的新應(yīng)用,,例如網(wǎng)路音樂和家庭寬頻都因此得以實現(xiàn)。
Digital Signal Processing 數(shù)字信號處理
作為一個案例研究,,我們來考慮數(shù)字領(lǐng)域里最通常的功能:濾波,。簡單地說,,濾波就是對信號進行處理,以改善其特性,。例如,,濾波可以從信號里清除噪聲或靜電干擾,從而改善其信噪比,。為什么要用微處理器,,而不是模擬器件來對信號做濾波呢?我們來看看其優(yōu)越性:
- 模擬濾波器(或者更一般地說,,模擬電路)的性能要取決于溫度等環(huán)境因素,。而數(shù)字濾波器則基本上不受環(huán)境的影響。
- 數(shù)字濾波易于在非常小的寬容度內(nèi)進行復(fù)制,,因為其性能并不取決于性能已偏離正常值的器件的組合,。
- 一個模擬濾波器一旦制造出來,其特性(例如通帶頻率范圍)是不容易改變的,。使用微處理器來實現(xiàn)數(shù)字濾波器,,就可以通過對其重新編程來改變?yōu)V波的特性。
信號處理方式的比較 |
比較因素 |
模擬方式 |
數(shù)字方式 |
修改設(shè)計的靈活性 |
修改硬件設(shè)計,,或調(diào)整硬件參數(shù) |
改變軟件設(shè)置 |
精度 |
元器件精度 |
A/D的位數(shù)和計算機字長,,算法 |
可靠性和可重復(fù)性 |
受環(huán)境溫度、濕度,、噪聲,、電磁場等的干擾和影響大 |
不受這些因素的影響 |
大規(guī)模集成 |
盡管已有一些模擬集成電路,但品種較少,、集成度不高、價格較高 |
DSP器件體積小,、功能強,、功耗小、一致性好,、使用方便,、性能/價格比高 |
實時性 |
除開電路引入的延時外,處理是實時的 |
由計算機的處理速度決定 |
高頻信號的處理 |
可以處理包括微波毫米波乃至光波信號 |
按照奈準則的要求,,受S/H,、A/D和處理速度的限制 |
Digital Signal Processor 數(shù)字信號處理器
微處理器(Microprocessor)的分類 |
通用處理器(GPP) |
- 采用馮.諾依曼結(jié)構(gòu),程序和數(shù)據(jù)的存儲空間合二而一
- 8-bit Apple(6502),,NEC PC-8000(Z80)
- 8086/286/386/486/Pentium/Pentium II/ Pentium III
- PowerPc 64-bit CPU(SUN Sparc,,DEC Alpha, HP)
- CISC 復(fù)雜指令計算機, RISC 精簡指令計算機
- 采取各種方法提高計算速度,提高時鐘頻率,,高速總線,,多級Cashe,,協(xié)處理器等
|
Single Chip Computer/ Micro Controller Unit(MCU) |
- 除開通用CPU所具有的ALU和CU,還有存儲器(RAM/ROM)寄存器,,時鐘,,計數(shù)器,定時器,,串/并口,,有的還有A/D,D/A
- INTEL MCS/48/51/96(98)
- MOTOROLA HCS05/011
|
DSP |
- 采用哈佛結(jié)構(gòu),,程序和數(shù)據(jù)分開存儲
- 采用一系列措施保證數(shù)字信號的處理速度,,如對FFT的專門優(yōu)化
|
MCU與DSP的簡單比較 |
|
MCU |
DSP |
|
低檔 |
高檔 |
低檔 |
高檔 |
指令周期(ns) |
600 |
40 |
50 |
5 |
乘加時間(ns) |
1900 |
80 |
50 |
5 |
US$/MIPS |
1.5 |
0.5 |
0.15 |
0.1 |
DSP處理器與通用處理器的比較
考慮一個數(shù)字信號處理的實例,比如有限沖擊響應(yīng)濾波器(FIR),。用數(shù)學(xué)語言來說,,F(xiàn)IR濾波器是做一系列的點積。取一個輸入量和一個序數(shù)向量,,在系數(shù)和輸入樣本的滑動窗口間作乘法,,然后將所有的乘積加起來,形成一個輸出樣本,。
類似的運算在數(shù)字信號處理過程中大量地重復(fù)發(fā)生,,使得為此設(shè)計的器件必須提供專門的支持,促成了了DSP器件與通用處理器(GPP)的分流:
1 對密集的乘法運算的支持
GPP不是設(shè)計來做密集乘法任務(wù)的,,即使是一些現(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)存儲器中,。程序員在寫程序時,必須保證處理器能夠有效地使用其雙總線,。
此外,,DSP處理器幾乎都不具備數(shù)據(jù)高速緩存。這是因為DSP的典型數(shù)據(jù)是數(shù)據(jù)流,。也就是說,,DSP處理器對每個數(shù)據(jù)樣本做計算后,就丟棄了,,幾乎不再重復(fù)使用。
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)移預(yù)報硬件,,幾乎達到與硬件支持的零開銷循環(huán)同樣的效果。
4 定點計算
大多數(shù)DSP使用定點計算,,而不是使用浮點,。雖然DSP的應(yīng)用必須十分注意數(shù)字的精確,用浮點來做應(yīng)該容易的多,,但是對DSP來說,,廉價也是非常重要的。定點機器比起相應(yīng)的浮點機器來要便宜(而且更快),。為了不使用浮點機器而又保證數(shù)字的準確,,DSP處理器在指令集和硬件方面都支持飽和計算、舍入和移位,。
5 專門的尋址方式
DSP處理器往往都支持專門的尋址模式,,它們對通常的信號處理操作和算法是很有用的。例如,,模塊(循環(huán))尋址(對實現(xiàn)數(shù)字濾波器延時線很有用),、位倒序?qū)ぶ罚▽FT很有用)。這些非常專門的尋址模式在GPP中是不常使用的,,只有用軟件來實現(xiàn),。
6 執(zhí)行時間的預(yù)測
大多數(shù)的DSP應(yīng)用(如蜂窩電話和調(diào)制解調(diào)器)都是嚴格的實時應(yīng)用,所有的處理必須在指定的時間內(nèi)完成,。這就要求程序員準確地確定每個樣本需要多少處理時間,,或者,至少要知道,,在最壞的情況下,,需要多少時間。
如果打算用低成本的GPP去完成實時信號處理的任務(wù),,執(zhí)行時間的預(yù)測大概不會成為什么問題,,應(yīng)為低成本GPP具有相對直接的結(jié)構(gòu),比較容易預(yù)測執(zhí)行時間,。然而,,大多數(shù)實時DSP應(yīng)用所要求的處理能力是低成本GPP所不能提供的。
這時候,,DSP對高性能GPP的優(yōu)勢在于,,即便是使用了高速緩存的DSP,哪些指令會放進去也是由程序員(而不是處理器)來決定的,,因此很容易判斷指令是從高速緩存還是從存儲器中讀取,。DSP一般不使用動態(tài)特性,,如轉(zhuǎn)移預(yù)測和推理執(zhí)行等。因此,,由一段給定的代碼來預(yù)測所要求的執(zhí)行時間是完全直截了當?shù)?。從而使程序員得以確定芯片的性能限制。
7 定點DSP指令集
定點DSP指令集是按兩個目標來設(shè)計的:
- 使處理器能夠在每個指令周期內(nèi)完成多個操作,,從而提高每個指令周期的計算效率,。
- 將存貯DSP程序的存儲器空間減到最小(由于存儲器對整個系統(tǒng)的成本影響甚大,,該問題在對成本敏感的DSP應(yīng)用中尤為重要),。
為了實現(xiàn)這些目標,DSP處理器的指令集通常都允許程序員在一個指令內(nèi)說明若干個并行的操作,。例如,,在一條指令包含了MAC操作,即同時的一個或兩個數(shù)據(jù)移動,。在典型的例子里,,一條指令就包含了計算FIR濾波器的一節(jié)所需要的所有操作。這種高效率付出的代價是,,其指令集既不直觀,,也不容易使用(與GPP的指令集相比)。
GPP的程序通常并不在意處理器的指令集是否容易使用,,因為他們一般使用象C或C++等高級語言,。而對于DSP的程序員來說,不幸的是主要的DSP應(yīng)用程序都是用匯編語言寫的(至少部分是匯編語言優(yōu)化的),。這里有兩個理由:首先,,大多數(shù)廣泛使用的高級語言,例如C,,并不適合于描述典型的DSP算法,。其次,DSP結(jié)構(gòu)的復(fù)雜性,,如多存儲器空間,、多總線、不規(guī)則的指令集,、高度專門化的硬件等,,使得難于為其編寫高效率的編譯器。
即便用編譯器將C源代碼編譯成為DSP的匯編代碼,,優(yōu)化的任務(wù)仍然很重。典型的DSP應(yīng)用都具有大量計算的要求,,并有嚴格的開銷限制,,使得程序的優(yōu)化必不可少(至少是對程序的最關(guān)鍵部分),。因此,考慮選用DSP的一個關(guān)鍵因素是,,是否存在足夠的能夠較好地適應(yīng)DSP處理器指令集的程序員,。
8 開發(fā)工具的要求
因為DSP應(yīng)用要求高度優(yōu)化的代碼,大多數(shù)DSP廠商都提供一些開發(fā)工具,,以幫助程序員完成其優(yōu)化工作,。例如,大多數(shù)廠商都提供處理器的仿真工具,,以準確地仿真每個指令周期內(nèi)處理器的活動,。無論對于確保實時操作還是代碼的優(yōu)化,這些都是很有用的工具,。
GPP廠商通常并不提供這樣的工具,,主要是因為GPP程序員通常并不需要詳細到這一層的信息。GPP缺乏精確到指令周期的仿真工具,,是DSP應(yīng)用開發(fā)者所面臨的的大問題:由于幾乎不可能預(yù)測高性能GPP對于給定任務(wù)所需要的周期數(shù),,從而無法說明如何去改善代碼的性能。
|