CPU 與 DSP 的區別

從表面上來看,DSP與標準微處理器有許多共同的地方:一個以ALU爲核心的處理器、地址和數據總線、RAM、ROM以及I/O端口,從廣義上講,DSP、微處理器和微控制器(單片機)等都屬於處理器,可以說DSP是一種CPU。但DSP和一般的CPU又不同:


首先是體系結構:CPU是馮.諾伊曼結構的,而DSP有分開的代碼和數據總線即“哈佛結構”,這樣在同一個時鐘週期內可以進行多次存儲器訪問——這是因爲數據總線也往往有好幾組。有了這種體系結構,DSP就可以在單個時鐘週期內取出一條指令和一個或者兩個(或者更多)的操作數。


標準化和通用性:CPU的標準化和通用性做得很好,支持操作系統,所以以CPU爲核心的系統方便人機交互以及和標準接口設備通信,非常方便而且不需要硬件開發了;但這也使得CPU外設接口電路比較複雜,DSP主要還是用來開發嵌入式信號處理系統了,不強調人機交互,一般不需要很多通信接口,因此結構也較爲簡單,便於開發。如果只是着眼於嵌入式應用的話,嵌入式CPU和DSP的區別應該只在於一個偏重控制一個偏重運算了。


流水線結構:大多數DSP都擁有流水結構,即每條指令都由片內多個功能單元分別完成取指、譯碼、取數、執行等步驟,這樣可以大大提高系統的執行效率。但流水線的採用也增加了軟件設計的難度,要求設計者在程序設計中考慮流水的需要。


快速乘法器:信號處理算法往往大量用到乘加(multiply-accumulate,MAC)運算。DSP有專用的硬件乘法器,它可以在一個時鐘週期內完成MAC運算。硬件乘法器佔用了DSP芯片面積的很大一部分。(與之相反,通用CPU採用一種較慢的、迭代的乘法技術,它可以在多個時鐘週期內完成一次乘法運算,但是佔用了較少了硅片資源)。


地址發生器:DSP有專用的硬件地址發生單元,這樣它可以支持許多信號處理算法所要求的特定數據地址模式。這包括前(後)增(減)、環狀數據緩衝的模地址以及FFT的比特倒置地址。地址發生器單元與主ALU和乘法器並行工作,這就進一步增加了DSP可以在一個時鐘週期內可以完成的工作量。


硬件輔助循環:信號處理算法常常需要執行緊密的指令循環。對硬件輔助循環的支持,可以讓DSP高效的循環執行代碼塊而無需讓流水線停轉或者讓軟件來測試循環終止條件。


低功耗:DSP的功耗較小,通常在0.5W到4W,採用低功耗的DSP甚至只有0.05W,可用電池供電,很適合嵌入式系統;而CPU的功耗通常在20W以上

發佈了22 篇原創文章 · 獲贊 7 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章