考慮一個數字訊號處理的例項,比如有限衝擊響應濾波器(fir)。用數學語言來說,fir濾波器是做一系列的點積。取一個輸入量和一個序數向量,在係數和輸入樣本的滑動視窗間作乘法,然後將所有的乘積加起來,形成一個輸出樣本。
類似的運算在數字訊號處理過程中大量地重**生,使得為此設計的器件必須提供專門的支援,促成了了dsp器件與通用處理器(gpp)的分流:
1 對密集的乘法運算的支援
gpp不是設計來做密集乘法任務的,即使是一些現代的gpp,也要求多個指令週期來做一次乘法。而dsp處理器使用專門的硬體來實現單週期乘法。dsp處理器還增加了累加器暫存器來處理多個乘積的和。累加器暫存器通常比其他暫存器寬,增加稱為結果bits的額外bits來避免溢位。同時,為了充分體現專門的乘法-累加硬體的好處,幾乎所有的dsp的指令集都包含有顯式的mac指令。
2 儲存器結構
傳統上,gpp使用馮.諾依曼儲存器結構。這種結構中,只有一個儲存器空間通過一組匯流排(一個地址匯流排和一個資料匯流排)連線到處理器核。通常,做一次乘法會發生4次儲存器訪問,用掉至少四個指令週期。
大多數dsp採用了哈佛結構,將儲存器空間劃分成兩個,分別儲存程式和資料。它們有兩組匯流排連線到處理器核,允許同時對它們進行訪問。這種安排將處理器存貯器的頻寬加倍,更重要的是同時為處理器核提供資料與指令。在這種佈局下,dsp得以實現單週期的mac指令。
還有一個問題,即現在典型的高效能gpp實際上已包含兩個片內快取記憶體,一個是資料,一個是指令,它們直接連線到處理器核,以加快執行時的訪問速度。從物理上說,這種片內的雙儲存器和匯流排的結構幾乎與哈佛結構的一樣了。然而從邏輯上說,兩者還是有重要的區別。
gpp使用控制邏輯來決定哪些資料和指令字儲存在片內的快取記憶體裡,其程式設計師並不加以指定(也可能根本不知道)。與此相反,dsp使用多個片記憶體儲器和多組匯流排來保證每個指令週期記憶體儲器的多次訪問。在使用dsp時,程式設計師要明確地控制哪些資料和指令要儲存在片記憶體儲器中。程式設計師在寫程式時,必須保證處理器能夠有效地使用其雙匯流排。
此外,dsp處理器幾乎都不具備資料快取記憶體。這是因為dsp的典型資料是資料流。也就是說,dsp處理器對每個資料樣本做計算後,就丟棄了,幾乎不再重複使用。
3 零開銷迴圈
如果瞭解到dsp演算法的一個共同的特點,即大多數的處理時間是花在執行較小的迴圈上,也就容易理解,為什麼大多數的dsp都有專門的硬體,用於零開銷迴圈。所謂零開銷迴圈是指處理器在執行迴圈時,不用花時間去檢查迴圈計數器的值、條件轉移到迴圈的頂部、將迴圈計數器減1。
與此相反,gpp的迴圈使用軟體來實現。某些高效能的gpp使用轉移預報硬體,幾乎達到與硬體支援的零開銷迴圈同樣的效果。
4 定點計算
大多數dsp使用定點計算,而不是使用浮點。雖然dsp的應用必須十分注意數字的精確,用浮點來做應該容易的多,但是對dsp來說,廉價也是非常重要的。定點機器比起相應的浮點機器來要便宜(而且更快)。為了不使用浮點機器而又保證數字的準確,dsp處理器在指令集和硬體方面都支援飽和計算、舍入和移位。
DSP與CPU的區別
從表面上來看,dsp與標準微處理器有許多共同的地方 一個以alu為核心的處理器 地址和資料匯流排 ram rom以及i o埠,從廣義上講,dsp 微處理器和微控制器 微控制器 等都屬於處理器,可以說dsp是一種cpu。但dsp和一般的cpu又不同 首先是體系結構 cpu是馮.諾伊曼結構的,而dsp有...
ISP與DSP的區別
isp 是image signal processor 的簡稱,也就是影象訊號處理器。而dsp是digital signal processor 的縮寫,也就是數字訊號處理器。isp一般用來處理image sensor 影象感測器 的輸出資料,如做aec 自動 控制 agc 自動增益控制 awb 自...
FPGA與DSP的區別(粗略整理)
fpga a.片內有大量的邏輯閘和觸發器,多為查詢表結構,實現工藝多為sram b.可以通過硬體描述語言進行快速設計和改進,能夠重複程式設計 c.掉電後一般會丟失原有邏輯配置 時序難規劃 不能處理多事件 不適合條件操作 dsp a.採用資料和程式分離的哈佛結構和改進的哈佛結構,即資料匯流排和地址匯流...