<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

DSP與普通MCU的區別

——
作者: 時(shí)間:2007-10-24 來(lái)源:嵌入式在線(xiàn)論壇 收藏
考慮一個(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)的支持,促成了了器件與通用處理器(GPP)的分流:

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

GPP不是設計來(lái)做密集乘法任務(wù)的,即使是一些現代的GPP,也要求多個(gè)指令周期來(lái)做一次乘法。而處理器使用專(zhuān)門(mén)的硬件來(lái)實(shí)現單周期乘法。處理器還增加了累加器寄存器來(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處理器在指令集和硬件方面都支持飽和計算、舍入和移位。


關(guān)鍵詞: DSP MCU MCU和嵌入式微處理器

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>