考虑一个数字信号处理的实例,比如有限冲击响应滤波器(FIR)。用数学语言来说
,FIR滤波器是做一系列的点积。取一个输入量和一个序数向量,在系数和输入样本
的滑动窗口间作乘法,然后将所有的乘积加起来,形成一个输出样本。
类似的运算在数字信号处理过程中大量地重复发生,使得为此设计的器件必须提供
专门的支持,促成了了DSP器件与通用处理器(GPP)的分流:
1 对密集的乘法运算的支持
GPP不是设计来做密集乘法任务的,即使是一些现代的GPP,也要求多个指令周期来
做一次乘法。而DSP处理器使用专门的硬件来实现单周期乘法。DSP处理器还增加了
累加器寄存器来处理多个乘积的和。累加器寄存器通常比其他寄存器宽,增加称为
结果bits的额外bits来避免溢出。
同时,为了充分体现专门的乘法-累加硬件的好处,几乎所有的DSP的指令集都包含
有显式的MAC指令。
2 存储器结构
传统上,GPP使用冯.诺依曼存储器结构。这种结构中,只有一个存储器空间通过一
组总线(一个地址总线和一个数据总线)连接到处理器核。通常,做一次乘法会发
生4次存储器访问,用掉至少四个指令周期。
大多数DSP采用了哈佛结构,将存储器空间划分成两个,分别存储程序和