關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > DSP與普通MCU的區別

        DSP與普通MCU的區別

        ——
        作者: 時間:2007-10-31 來源:嵌入式在線論壇 收藏

          考慮一個的實例,比如有限沖擊響應濾波器(FIR)。用數學語言來說,FIR濾波器是做一系列的點積。取一個輸入量和一個序數向量,在系數和輸入樣本的滑動窗口間作乘法,然后將所有的乘積加起來,形成一個輸出樣本。

          類似的運算在過程中大量地重復發生,使得為此設計的器件必須提供專門的支持,促成了了器件與通用處理器(GPP)的分流:

          1 對密集的乘法運算的支持

          GPP不是設計來做密集乘法任務的,即使是一些現代的GPP,也要求多個指令周期來做一次乘法。而處理器使用專門的硬件來實現單周期乘法。處理器還增加了累加器寄存器來處理多個乘積的和。累加器寄存器通常比其他寄存器寬,增加稱為結果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處理器在指令集和硬件方面都支持飽和計算、舍入和移位。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 商城县| 德阳市| 陆川县| 达孜县| 淮北市| 辛集市| 汉寿县| 托克逊县| 泽库县| 舟山市| 阜新市| 兴国县| 南溪县| 泸水县| 江孜县| 盐边县| 卢氏县| 贞丰县| 双流县| 威海市| 长子县| 紫阳县| 墨脱县| 登封市| 唐海县| 万山特区| 辰溪县| 海兴县| 麻城市| 通化市| 延川县| 上栗县| 崇州市| 阿合奇县| 商河县| 卢氏县| 宕昌县| 健康| 张家川| 吉林省| 望奎县|