DSP與普通MCU的區別是什麼

2021-03-04 05:20:25 字數 3134 閱讀 5947

考慮乙個數字訊號處理的例項,比如有限衝擊響應濾波器(fir)。用數學語言來說,fi

r濾波器是做一系列的點積。取乙個輸入量和乙個序數向量,在係數和輸入樣本的滑動窗

口間作乘法,然後將所有的乘積加起來,形成乙個輸出樣本。

類似的運算在數字訊號處理過程中大量地重**生,使得為此設計的器件必須提供專門

的支援,促成了了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處理器在指令集和硬體方面都支援飽和計算、捨入和移位。

5 專門的定址方式

dsp處理器往往都支援專門的定址模式,它們對通常的訊號處理操作和演算法是很有用的。

例如,模組(迴圈)定址(對實現數字濾波器延時線很有用)、位倒序定址(對fft很有用)。這些非常專門的定址模式在gpp中是不常使用的,只有用軟體來實現。

6 執行時間的**大多數的dsp應用(如蜂窩**和數據機)都是嚴格的實時應用,所有的處理必須在指定的時間內完成。這就要求程式設計師準確地確定每個樣本需要多少處理時間,或者,至少要知道,在最壞的情況下,需要多少時間。

如果打算用低成本的gpp去完成實時訊號處理的任務,執行時間的**大概不會成為什麼問題,應為低成本gpp具有相對直接的結構,比較容易**執行時間。然而,大多數實時

dsp應用所要求的處理能力是低成本gpp所不能提供的。

這時候,dsp對高效能gpp的優勢在於,即便是使用了快取記憶體的dsp,哪些指令會放進去也是由程式設計師(而不是處理器)來決定的,因此很容易判斷指令是從快取記憶體還是從儲存器中讀取。dsp一般不使用動態特性,如轉移**和推理執行等。因此,由一段給定的**來**所要求的執行時間是完全直截了當的。

從而使程式設計師得以確定晶元的效能限制。

7 定點dsp指令集定點dsp指令集是按兩個目標來設計的:

使處理器能夠在每個指令週期內完成多個操作,從而提高每個指令週期的計算效率。

將存貯dsp程式的儲存器空間減到最小(由於儲存器對整個系統的成本影響甚大,該問題在對成本敏感的dsp應用中尤為重要)。

為了實現這些目標,dsp處理器的指令集通常都允許程式設計師在乙個指令內說明若干個並行的操作。例如,在一條指令包含了mac操作,即同時的乙個或兩個資料移動。在典型的例子裡,一條指令就包含了計算fir濾波器的一節所需要的所有操作。

這種高效率付出的代價是,其指令集既不直觀,也不容易使用(與gpp的指令集相比)。

gpp的程式通常並不在意處理器的指令集是否容易使用,因為他們一

一般使用象c或c++等高階語言。而對於dsp的程式設計師來說,不幸的是主要的dsp應用程式都是用組合語言寫的(

至少部分是組合語言優化的)。這裡有兩個理由:首先,大多數廣泛使用的高階語言,

例如c,並不適合於描述典型的dsp演算法。其次,dsp結構的複雜性,如多儲存器空間、多匯流排、不規則的指令集、高度專門化的硬體等,使得難於為其編寫高效率的編譯器。

即便用編譯器將c源**編譯成為dsp的彙編**,優化的任務仍然很重。典型的dsp應用都具有大量計算的要求,並有嚴格的開銷限制,使得程式的優化必不可少(至少是對程式的最關鍵部分)。因此,考慮選用dsp的乙個關鍵因素是,是否存在足夠的能夠較好地適應dsp處理器指令集的程式設計師。

8 開發工具的要求因為dsp應用要求高度優化的**,大多數dsp廠商都提供一些開發工具,以幫助程式設計師完成其優化工作。例如,大多數廠商都提供處理器的**工具,以準確地**每個指令週期內處理器的活動。無論對於確保實時操作還是**的優化,這些都是很有用的工具

。gpp廠商通常並不提供這樣的工具,主要是因為gpp程式設計師通常並不需要詳細到這一層的資訊。gpp缺乏精確到指令週期的**工具,是dsp應用開發者所面臨的的大問題:

由於幾乎不可能**高效能gpp對於給定任務所需要的週期數,從而無法說明如何去改善**的效能。

合資與合作的區別是什麼

二者的主要區別有以下幾個方面 一 組織形式不同。合資企業的組織形式為有限責任公司,具有中國法人資格。而合作企業的組織形式則分為兩種 符合法人條件依法取得中國法人資格的合作企業 稱法人合作企業 採取的是有限責任公司的組織形式 不具備法人條件的合作企業 稱非法人合作企業 採取的是無限責任的形式。二 出資...

塗料與油漆的區別是什麼

在我國一般認為塗料是水性的漆,是用來刷建築物表面的,油漆是用來刷木器金屬用的.其實這是一種錯誤的認識.塗料包含了油漆,它可以分為水性漆和油性漆.隨著石油化學工業的發展,化工產品的層出不窮,現代塗料已經脫離了用油性塗料的傳統,越來越多的塗料產品經過化工合成裝置,塗料種類,適用場合也越來越廣.因此他們之...

OEMODMOXM是什麼意思?區別是什麼

odm origin disign manufacturing 原始設計製造商 obm origin brand manufacturing 原始品牌製造商 oem original equipment manufacture 其基本含義是 按原公司 品牌公司 委託合同進行產品開發和製造,用原公司商...