- UID
- 523946
- 性别
- 男
|
通用CPU与DSP的主要区别
从表面上来看_span>DSP与标准微处理器有许多共同的地方:一个以ALU为核心的处理器、地址和数据总线?span>RAM?span>ROM以及I/O端口,从广义上讲_DSP、微处理器和微控制器(单片机)等都属于处理器,可以说DSP是一秿span>CPU。但DSP和一般的CPU又不同:
首先是体系结构:CPU昿strong>冿span>.诺伊替/span>结构的,耿span>DSP朿span style="COLOR: red">分开的代码和数据总线卿span>?/span>哈佛结构?/span>,这样在同一个时钟周期内可以进行多次存储器访闿span>—?/span>这是因为数据总线也往往有好几组。有了这种体系结构,DSP就可以在单个时钟周期内取出一条指令和一个或者两个(或者更多)的操作数?span>
标准化和通用性:CPU的标准化和通用性做得很好,支持操作系统,所以以CPU为核心的系统方便人机交互以及和标准接口设备通信,非常方便而且不需要硬仿开发了;但这也使得CPU外设接口电路比较复杂_span>DSP主要还是用来开发嵌入式的信号处理系统了,不强调人机交互,一般不需要很多通信接口,因此结构也辿为简单,便于开发?strong>如果只是着眼于嵌入式应用的话,嵌入弿span>CPU咿span>DSP的区别应该只在于一个偏重控制一个偏重运算了?/strong>
流水线结构:大多敿span>DSP都拥有流水结构,即每条指令都由片内多个功能单元分别完成取指、译码、取数、执行等步骤,这样可以大大提高系统的执行效率。但流水线的采用也增加了软件设计的难度,要求设计者在程序设计中考虑流水的需要?/p>
快速乘法器:信号处理算法往往大量用到乘加_span>multiply-accumulate_strong>MAC)运算?span>DSP有专用的硬件乘法器,它可以在一个时钟周期内完成MAC运算。硬件乘法器占用亿span>DSP芯片面积的很大一部分。(与之相反,通用CPU采用一种较慢的、迭代的乘法技术,它可以在多个时钟周期内完成一次乘法运算,但是占用了较少了硅片资源)?/p>
地址发生器:DSP有专用的硬件地址发生单元,这样它可以支持许多信号处理算法所要求的特定数据地址模式。这包括前(后)增(减)、环状数据缓冲的模地址以及FFT的比特倒置地址。地址发生器单元与丿span>ALU和乘法器并行工作,这就进一步增加了DSP可以在一个时钟周期内可以完成的工作量?/p>
硬件辅助循环:信号处理算法常常需要执行紧密的指令循环。对硬件辅助循环的支持,可以访span>DSP高效的循环执行代码块而无需让流水线停转或者让软件来测试循环终止条件?/p>
(上面三条能大大提升DSP的处理速度_/p> 低功耗:DSP的功耗较小,通常圿span>0.5W刿span>4W,采用低功耗的DSP甚至只有0.05W,可用电池供电,很适合嵌入式系统;耿span>CPU的功耗通常圿span>20W以上 |
|