新聞中心

DSP是什么

——
作者: 時(shí)間:2007-11-26 來源:軟硬件結(jié)合技術(shù)網(wǎng) 收藏

Digital Signal Processing 數(shù)字信號處理

 
 
 作為一個(gè)案例研究,我們來考慮數(shù)字領(lǐng)域里最通常的功能:濾波。簡單地說,濾波就是對信號進(jìn)行處理,以改善其特性。例如,濾波可以從信號里清除噪聲或靜電干擾,從而改善其信噪比。為什么要用微處理器,而不是模擬器件來對信號做濾波呢?我們來看看其優(yōu)越性: 

模擬濾波器(或者更一般地說,模擬電路)的性能要取決于溫度等環(huán)境因素。而數(shù)字濾波器則基本上不受環(huán)境的影響。 
數(shù)字濾波易于在非常小的寬容度內(nèi)進(jìn)行復(fù)制,因?yàn)槠湫阅懿⒉蝗Q于性能已偏離正常值的器件的組合。 
一個(gè)模擬濾波器一旦制造出來,其特性(例如通帶頻率范圍)是不容易改變的。使用微處理器來實(shí)現(xiàn)數(shù)字濾波器,就可以通過對其重新編程來改變?yōu)V波的特性。

  
                               信號處理方式的比較
 
比較因素          模擬方式                             數(shù)字方式
 
修改設(shè)計(jì)的靈活性  修改硬件設(shè)計(jì),或調(diào)整硬件參數(shù)         改變軟件設(shè)置
 
精度              元器件精度                           A/D的位數(shù)和計(jì)算機(jī)字長,算法
 
可靠性和可重復(fù)性  受環(huán)境溫度、濕度、噪聲、             不受這些因素的影響

                  電磁場等的干擾和影響大 
  
 
大規(guī)模集成      盡管已有一些模擬集成電路,但品        器件體積小、功能強(qiáng)、功耗小、

                種較少、集成度不高、價(jià)格較高         一致性好、使用方便、性能/價(jià)格比高 
   
 
實(shí)時(shí)性          除開電路引入的延時(shí)外,處理是實(shí)時(shí)的    由計(jì)算機(jī)的處理速度決定
 
高頻信號的處理  可以處理包括微波毫米波乃至光波信號    按照奈準(zhǔn)則的要求,受S/H、A/D和處

                                                      理速度的限制
 

 
 
Digital Signal Processor 數(shù)字信號處理器

 
 
  

微處理器(Microprocessor)的分類 
  
1,通用處理器(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ù)雜指令計(jì)算機(jī), RISC 精簡指令計(jì)算機(jī) 
采取各種方法提高計(jì)算速度,提高時(shí)鐘頻率,高速總線,多級Cashe,協(xié)處理器等 
 
2,Single Chip Computer/ Micro Controller Unit(MCU)
 
除開通用CPU所具有的ALU和CU,還有存儲器(RAM/ROM)寄存器,時(shí)鐘,計(jì)數(shù)器,定時(shí)器,串/并口,有的還有A/D,D/A 
INTEL MCS/48/51/96(98) 
MOTOROLA HCS05/011 
 
3,
 
采用哈佛結(jié)構(gòu),程序和數(shù)據(jù)分開存儲 
采用一系列措施保證數(shù)字信號的處理速度,如對FFT的專門優(yōu)化 
 

 

                                MCU與的簡單比較
 
 
                            MCU                            DSP 
  
                    低檔            高檔            低檔         高檔
 
指令周期(ns)         600            40               50            5
 
乘加時(shí)間(ns)         1900           80               50            5
 
US$/MIPS             1.5            0.5             0.15          0.1
 

 
 
DSP處理器與通用處理器的比較

 
 
 考慮一個(gè)數(shù)字信號處理的實(shí)例,比如有限沖擊響應(yīng)濾波器(FIR)。用數(shù)學(xué)語言來說,F(xiàn)IR濾波器是做一系列的點(diǎn)積。取一個(gè)輸入量和一個(gè)序數(shù)向量,在系數(shù)和輸入樣本的滑動窗口間作乘法,然后將所有的乘積加起來,形成一個(gè)輸出樣本。

類似的運(yùn)算在數(shù)字信號處理過程中大量地重復(fù)發(fā)生,使得為此設(shè)計(jì)的器件必須提供專門的支持,促成了了DSP器件與通用處理器(GPP)的分流:

1 對密集的乘法運(yùn)算的支持

GPP不是設(shè)計(jì)來做密集乘法任務(wù)的,即使是一些現(xiàn)代的GPP,也要求多個(gè)指令周期來做一次乘法。而DSP處理器使用專門的硬件來實(shí)現(xiàn)單周期乘法。DSP處理器還增加了累加器寄存器來處理多個(gè)乘積的和。累加器寄存器通常比其他寄存器寬,增加稱為結(jié)果bits的額外bits來避免溢出。
同時(shí),為了充分體現(xiàn)專門的乘法-累加硬件的好處,幾乎所有的DSP的指令集都包含有顯式的MAC指令。

2 存儲器結(jié)構(gòu)

傳統(tǒng)上,GPP使用馮.諾依曼存儲器結(jié)構(gòu)。這種結(jié)構(gòu)中,只有一個(gè)存儲器空間通過一組總線(一個(gè)地址總線和一個(gè)數(shù)據(jù)總線)連接到處理器核。通常,做一次乘法會發(fā)生4次存儲器訪問,用掉至少四個(gè)指令周期。

大多數(shù)DSP采用了哈佛結(jié)構(gòu),將存儲器空間劃分成兩個(gè),分別存儲程序和數(shù)據(jù)。它們有兩組總線連接到處理器核,允許同時(shí)對它們進(jìn)行訪問。這種安排將處理器存貯器的帶寬加倍,更重要的是同時(shí)為處理器核提供數(shù)據(jù)與指令。在這種布局下,DSP得以實(shí)現(xiàn)單周期的MAC指令。

還有一個(gè)問題,即現(xiàn)在典型的高性能GPP實(shí)際上已包含兩個(gè)片內(nèi)高速緩存,一個(gè)是數(shù)據(jù),一個(gè)是指令,它們直接連接到處理器核,以加快運(yùn)行時(shí)的訪問速度。從物理上說,這種片內(nèi)的雙存儲器和總線的結(jié)構(gòu)幾乎與哈佛結(jié)構(gòu)的一樣了。然而從邏輯上說,兩者還是有重要的區(qū)別。

GPP使用控制邏輯來決定哪些數(shù)據(jù)和指令字存儲在片內(nèi)的高速緩存里,其程序員并不加以指定(也可能根本不知道)。與此相反,DSP使用多個(gè)片內(nèi)存儲器和多組總線來保證每個(gè)指令周期內(nèi)存儲器的多次訪問。在使用DSP時(shí),程序員要明確地控制哪些數(shù)據(jù)和指令要存儲在片內(nèi)存儲器中。程序員在寫程序時(shí),必須保證處理器能夠有效地使用其雙總線。

此外,DSP處理器幾乎都不具備數(shù)據(jù)高速緩存。這是因?yàn)镈SP的典型數(shù)據(jù)是數(shù)據(jù)流。也就是說,DSP處理器對每個(gè)數(shù)據(jù)樣本做計(jì)算后,就丟棄了,幾乎不再重復(fù)使用。

3 零開銷循環(huán)

如果了解到DSP算法的一個(gè)共同的特點(diǎn),即大多數(shù)的處理時(shí)間是花在執(zhí)行較小的循環(huán)上,也就容易理解,為什么大多數(shù)的DSP都有專門的硬件,用于零開銷循環(huán)。所謂零開銷循環(huán)是指處理器在執(zhí)行循環(huán)時(shí),不用花時(shí)間去檢查循環(huán)計(jì)數(shù)器的值、條件轉(zhuǎn)移到循環(huán)的頂部、將循環(huán)計(jì)數(shù)器減1。

與此相反,GPP的循環(huán)使用軟件來實(shí)現(xiàn)。某些高性能的GPP使用轉(zhuǎn)移預(yù)報(bào)硬件,幾乎達(dá)到與硬件支持的零開銷循環(huán)同樣的效果。

4 定點(diǎn)計(jì)算

大多數(shù)DSP使用定點(diǎn)計(jì)算,而不是使用浮點(diǎn)。雖然DSP的應(yīng)用必須十分注意數(shù)字的精確,用浮點(diǎn)來做應(yīng)該容易的多,但是對DSP來說,廉價(jià)也是非常重要的。定點(diǎn)機(jī)器比起相應(yīng)的浮點(diǎn)機(jī)器來要便宜(而且更快)。為了不使用浮點(diǎn)機(jī)器而又保證數(shù)字的準(zhǔn)確,DSP處理器在指令集和硬件方面都支持飽和計(jì)算、舍入和移位。

5 專門的尋址方式

DSP處理器往往都支持專門的尋址模式,它們對通常的信號處理操作和算法是很有用的。例如,模塊(循環(huán))尋址(對實(shí)現(xiàn)數(shù)字濾波器延時(shí)線很有用)、位倒序?qū)ぶ罚▽FT很有用)。這些非常專門的尋址模式在GPP中是不常使用的,只有用軟件來實(shí)現(xiàn)。

6 執(zhí)行時(shí)間的預(yù)測

大多數(shù)的DSP應(yīng)用(如蜂窩電話和調(diào)制解調(diào)器)都是嚴(yán)格的實(shí)時(shí)應(yīng)用,所有的處理必須在指定的時(shí)間內(nèi)完成。這就要求程序員準(zhǔn)確地確定每個(gè)樣本需要多少處理時(shí)間,或者,至少要知道,在最壞的情況下,需要多少時(shí)間。

如果打算用低成本的GPP去完成實(shí)時(shí)信號處理的任務(wù),執(zhí)行時(shí)間的預(yù)測大概不會成為什么問題,應(yīng)為低成本GPP具有相對直接的結(jié)構(gòu),比較容易預(yù)測執(zhí)行時(shí)間。然而,大多數(shù)實(shí)時(shí)DSP應(yīng)用所要求的處理能力是低成本GPP所不能提供的。

這時(shí)候,DSP對高性能GPP的優(yōu)勢在于,即便是使用了高速緩存的DSP,哪些指令會放進(jìn)去也是由程序員(而不是處理器)來決定的,因此很容易判斷指令是從高速緩存還是從存儲器中讀取。DSP一般不使用動態(tài)特性,如轉(zhuǎn)移預(yù)測和推理執(zhí)行等。因此,由一段給定的代碼來預(yù)測所要求的執(zhí)行時(shí)間是完全直截了當(dāng)?shù)?。從而使程序員得以確定芯片的性能限制。

7 定點(diǎn)DSP指令集

定點(diǎn)DSP指令集是按兩個(gè)目標(biāo)來設(shè)計(jì)的:

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉