DSP是什么
Digital Signal Processing 數字信號處理
作為一個(gè)案例研究,我們來(lái)考慮數字領(lǐng)域里最通常的功能:濾波。簡(jiǎn)單地說(shuō),濾波就是對信號進(jìn)行處理,以改善其特性。例如,濾波可以從信號里清除噪聲或靜電干擾,從而改善其信噪比。為什么要用微處理器,而不是模擬器件來(lái)對信號做濾波呢?我們來(lái)看看其優(yōu)越性:
模擬濾波器(或者更一般地說(shuō),模擬電路)的性能要取決于溫度等環(huán)境因素。而數字濾波器則基本上不受環(huán)境的影響。
數字濾波易于在非常小的寬容度內進(jìn)行復制,因為其性能并不取決于性能已偏離正常值的器件的組合。
一個(gè)模擬濾波器一旦制造出來(lái),其特性(例如通帶頻率范圍)是不容易改變的。使用微處理器來(lái)實(shí)現數字濾波器,就可以通過(guò)對其重新編程來(lái)改變?yōu)V波的特性。
信號處理方式的比較
比較因素 模擬方式 數字方式
修改設計的靈活性 修改硬件設計,或調整硬件參數 改變軟件設置
精度 元器件精度 A/D的位數和計算機字長(cháng),算法
可靠性和可重復性 受環(huán)境溫度、濕度、噪聲、 不受這些因素的影響
電磁場(chǎng)等的干擾和影響大
大規模集成 盡管已有一些模擬集成電路,但品 DSP器件體積小、功能強、功耗小、
種較少、集成度不高、價(jià)格較高 一致性好、使用方便、性能/價(jià)格比高
實(shí)時(shí)性 除開(kāi)電路引入的延時(shí)外,處理是實(shí)時(shí)的 由計算機的處理速度決定
高頻信號的處理 可以處理包括微波毫米波乃至光波信號 按照奈準則的要求,受S/H、A/D和處
理速度的限制
Digital Signal Processor 數字信號處理器
微處理器(Microprocessor)的分類(lèi)
1,通用處理器(GPP)
采用馮.諾依曼結構,程序和數據的存儲空間合二而一
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 復雜指令計算機, RISC 精簡(jiǎn)指令計算機
采取各種方法提高計算速度,提高時(shí)鐘頻率,高速總線(xiàn),多級Cashe,協(xié)處理器等
2,Single Chip Computer/ Micro Controller Unit(MCU)
除開(kāi)通用CPU所具有的ALU和CU,還有存儲器(RAM/ROM)寄存器,時(shí)鐘,計數器,定時(shí)器,串/并口,有的還有A/D,D/A
INTEL MCS/48/51/96(98)
MOTOROLA HCS05/011
3,DSP
采用哈佛結構,程序和數據分開(kāi)存儲
采用一系列措施保證數字信號的處理速度,如對FFT的專(zhuān)門(mén)優(yōu)化
MCU與DSP的簡(jiǎn)單比較
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í)例,比如有限沖擊響應濾波器(FIR)。用數學(xué)語(yǔ)言來(lái)說(shuō),FIR濾波器是做一系列的點(diǎn)積。取一個(gè)輸入量和一個(gè)序數向量,在系數和輸入樣本的滑動(dòng)窗口間作乘法,然后將所有的乘積加起來(lái),形成一個(gè)輸出樣本。
類(lèi)似的運算在數字信號處理過(guò)程中大量地重復發(fā)生,使得為此設計的器件必須提供專(zhuān)門(mén)的支持,促成了了DSP器件與通用處理器(GPP)的分流:
1 對密集的乘法運算的支持
GPP不是設計來(lái)做密集乘法任務(wù)的,即使是一些現代的GPP,也要求多個(gè)指令周期來(lái)做一次乘法。而DSP處理器使用專(zhuān)門(mén)的硬件來(lái)實(shí)現單周期乘法。DSP處理器還增加了累加器寄存器來(lái)處理多個(gè)乘積的和。累加器寄存器通常比其他寄存器寬,增加稱(chēng)為結果bits的額外bits來(lái)避免溢出。
同時(shí),為了充分體現專(zhuān)門(mén)的乘法-累加硬件的好處,幾乎所有的DSP的指令集都包含有顯式的MAC指令。
2 存儲器結構
傳統上,GPP使用馮.諾依曼存儲器結構。這種結構中,只有一個(gè)存儲器空間通過(guò)一組總線(xiàn)(一個(gè)地址總線(xiàn)和一個(gè)數據總線(xiàn))連接到處理器核。通常,做一次乘法會(huì )發(fā)生4次存儲器訪(fǎng)問(wèn),用掉至少四個(gè)指令周期。
大多數DSP采用了哈佛結構,將存儲器空間劃分成兩個(gè),分別存儲程序和數據。它們有兩組總線(xiàn)連接到處理器核,允許同時(shí)對它們進(jìn)行訪(fǎng)問(wèn)。這種安排將處理器存貯器的帶寬加倍,更重要的是同時(shí)為處理器核提供數據與指令。在這種布局下,DSP得以實(shí)現單周期的MAC指令。
還有一個(gè)問(wèn)題,即現在典型的高性能GPP實(shí)際上已包含兩個(gè)片內高速緩存,一個(gè)是數據,一個(gè)是指令,它們直接連接到處理器核,以加快運行時(shí)的訪(fǎng)問(wèn)速度。從物理上說(shuō),這種片內的雙存儲器和總線(xiàn)的結構幾乎與哈佛結構的一樣了。然而從邏輯上說(shuō),兩者還是有重要的區別。
GPP使用控制邏輯來(lái)決定哪些數據和指令字存儲在片內的高速緩存里,其程序員并不加以指定(也可能根本不知道)。與此相反,DSP使用多個(gè)片內存儲器和多組總線(xiàn)來(lái)保證每個(gè)指令周期內存儲器的多次訪(fǎng)問(wèn)。在使用DSP時(shí),程序員要明確地控制哪些數據和指令要存儲在片內存儲器中。程序員在寫(xiě)程序時(shí),必須保證處理器能夠有效地使用其雙總線(xiàn)。
此外,DSP處理器幾乎都不具備數據高速緩存。這是因為DSP的典型數據是數據流。也就是說(shuō),DSP處理器對每個(gè)數據樣本做計算后,就丟棄了,幾乎不再重復使用。
3 零開(kāi)銷(xiāo)循環(huán)
如果了解到DSP算法的一個(gè)共同的特點(diǎn),即大多數的處理時(shí)間是花在執行較小的循環(huán)上,也就容易理解,為什么大多數的DSP都有專(zhuān)門(mén)的硬件,用于零開(kāi)銷(xiāo)循環(huán)。所謂零開(kāi)銷(xiāo)循環(huán)是指處理器在執行循環(huán)時(shí),不用花時(shí)間去檢查循環(huán)計數器的值、條件轉移到循環(huán)的頂部、將循環(huán)計數器減1。
與此相反,GPP的循環(huán)使用軟件來(lái)實(shí)現。某些高性能的GPP使用轉移預報硬件,幾乎達到與硬件支持的零開(kāi)銷(xiāo)循環(huán)同樣的效果。
4 定點(diǎn)計算
大多數DSP使用定點(diǎn)計算,而不是使用浮點(diǎn)。雖然DSP的應用必須十分注意數字的精確,用浮點(diǎn)來(lái)做應該容易的多,但是對DSP來(lái)說(shuō),廉價(jià)也是非常重要的。定點(diǎn)機器比起相應的浮點(diǎn)機器來(lái)要便宜(而且更快)。為了不使用浮點(diǎn)機器而又保證數字的準確,DSP處理器在指令集和硬件方面都支持飽和計算、舍入和移位。
5 專(zhuān)門(mén)的尋址方式
DSP處理器往往都支持專(zhuān)門(mén)的尋址模式,它們對通常的信號處理操作和算法是很有用的。例如,模塊(循環(huán))尋址(對實(shí)現數字濾波器延時(shí)線(xiàn)很有用)、位倒序尋址(對FFT很有用)。這些非常專(zhuān)門(mén)的尋址模式在GPP中是不常使用的,只有用軟件來(lái)實(shí)現。
6 執行時(shí)間的預測
大多數的DSP應用(如蜂窩電話(huà)和調制解調器)都是嚴格的實(shí)時(shí)應用,所有的處理必須在指定的時(shí)間內完成。這就要求程序員準確地確定每個(gè)樣本需要多少處理時(shí)間,或者,至少要知道,在最壞的情況下,需要多少時(shí)間。
如果打算用低成本的GPP去完成實(shí)時(shí)信號處理的任務(wù),執行時(shí)間的預測大概不會(huì )成為什么問(wèn)題,應為低成本GPP具有相對直接的結構,比較容易預測執行時(shí)間。然而,大多數實(shí)時(shí)DSP應用所要求的處理能力是低成本GPP所不能提供的。
這時(shí)候,DSP對高性能GPP的優(yōu)勢在于,即便是使用了高速緩存的DSP,哪些指令會(huì )放進(jìn)去也是由程序員(而不是處理器)來(lái)決定的,因此很容易判斷指令是從高速緩存還是從存儲器中讀取。DSP一般不使用動(dòng)態(tài)特性,如轉移預測和推理執行等。因此,由一段給定的代碼來(lái)預測所要求的執行時(shí)間是完全直截了當的。從而使程序員得以確定芯片的性能限制。
7 定點(diǎn)DSP指令集
定點(diǎn)DSP指令集是按兩個(gè)目標來(lái)設計的:
評論