數(shù)字信號處理器(digital signal processor, 簡寫 DSP)是一種專用于(通常為實時的)數(shù)字信號處理的微處理器。
DSP-Grafikchip
數(shù)字信號處理器的特點
分開的程序存儲器和數(shù)據(jù)存儲器(哈佛結(jié)構(gòu))。
用于單指令流多數(shù)據(jù)流(SIMD)作業(yè)的特殊指令集。
可進行并行處理,但不支援多任務(wù)。
用于宿主環(huán)境時可作為直接存儲器訪問(DMA )設(shè)備運作.
從模數(shù)轉(zhuǎn)換器(ADC)獲得數(shù)據(jù),最終輸出的是由數(shù)模轉(zhuǎn)換器(DAC)轉(zhuǎn)換為模擬信號的數(shù)據(jù)。
數(shù)字信號的處理
數(shù)字信號的處理可由通用微處理器完成。可能的優(yōu)化為:
數(shù)據(jù)運算指令
使用飽和算法,在這種方式中,會產(chǎn)生溢出的運算將累積至寄存器可容納的最大(或最?。┲担皇前喘h(huán)繞方式(環(huán)繞方式是很多通用CPU采取的方式。在環(huán)繞方式中,寄存器的數(shù)值到達最大值后再加一則會繞回到最小值;而使用飽和算法時則不會發(fā)生這種環(huán)繞,運算結(jié)果仍將保持為最大值)。有些情況下可使用不同的粘滯位運算模式。
使用乘積累加(MAC)運算,這會提高各種矩陣運算的效率(例如卷積運算、點積運算、乃至矩陣多項式的求值運算;參看Horner scheme和積和熔加運算)。由于在許多DSP中都必然地使用了單周期的MAC部件,因此也自然沿襲了下面所述的許多性質(zhì)(尤其是哈佛結(jié)構(gòu)和指令流水線(Instruction Streamline))。
在使用同余尋址方式操作循環(huán)緩沖器、以及在使用逆位序?qū)ぶ纺J教幚砜焖俑盗⑷~變換交叉參照時,都可使用專門的指令實現(xiàn)。
程序流程
使用深層流水線技術(shù),這種情況下,因錯誤的預(yù)測產(chǎn)生的跳轉(zhuǎn)會造成更大的(效率)成本。
使用通過動態(tài)表或硬編碼的零開銷循環(huán)實現(xiàn)的分支預(yù)測。為減少執(zhí)行高頻度的內(nèi)層循環(huán)時跳轉(zhuǎn)造成的(效率)影響,有些處理器提供了這個特性。該技術(shù)包括兩種類型的操作:單指令的重復(fù)操作和多指令的循環(huán)操作。
預(yù)取指令使用指令流水線方式。
流水線作業(yè)方式可減少總體的處理時間,增加系統(tǒng)的產(chǎn)出效率。
流水線可以分為若干層級。
歷史
1978年,Intel 發(fā)布了一種“模擬信號處理器”——2920處理器。它包含一組帶有一個內(nèi)部信號處理器的片上ADC/DAC,但由于它不含硬件乘法器,因此在市場上銷售并不成功. 1979年,AMI 發(fā)布了 S2811處理器,它被設(shè)計成微處理器的周邊裝置,必須由主處理器初始化后才能工作。 S2811 在市場上也不成功.
1979年,貝爾實驗室發(fā)表了第一款單芯片 DSP,即 Mac 4 型微處理器。繼而于1980年的IEEE國際固態(tài)電路會議上出現(xiàn)了第一批獨立、完整的DSP,它們是NEC的μPD7720處理器和AT&T的DSP1處理器。這兩種處理器都是在公共交換電話網(wǎng)(PSTN)的遠程通信研究中受到了啟發(fā)而產(chǎn)生的。
還有一種早期的DSP,Altamira DX-1,它使用一組帶有延遲轉(zhuǎn)移和轉(zhuǎn)移預(yù)測機制的四整數(shù)組流水線。
事實證明,1983年得克薩斯儀器公司生產(chǎn)的的第一款DSP,TMS32010,是一個更大的成功,時至今日德州儀器已成為通用DSP市場的龍頭,并提供有HPI(Host-Post Interface),由外部CPU直接訪問。另一款成功的設(shè)計是摩托羅拉的56000。
通用CPU中有些技術(shù)是受到帶有擴展模塊的DSP的影響而出現(xiàn)的,例如Intel的IA-32架構(gòu)指令集(ISA)中的MMX擴展。
大部分DSP使用的是定點算法,這是因為在信號處理的一般實際應(yīng)用中不需要使用浮點運算比定點運算多提供的那部分額外的精度范圍,而使用定點算法犧牲了不需要的精度,卻大大提高了速度。另一方面,浮點DSP則常用在科學計算和某些需要高精度的應(yīng)用中。
DSP芯片通常采用專用集成電路設(shè)計,然而亦可使用現(xiàn)場可編程門陣列(FPGA)芯片來實現(xiàn)DSP的功能,F(xiàn)PGA的I/O帶寬比DSP帶寬大十多倍。
內(nèi)容來自百科網(wǎng)