考虑一个数字信号处理的实例,比方有限冲击呼应滤波器(FIR)。用数学言语来说,FIR滤波器是做一系列的点积。取一个输入量和一个序数向量,在系数和输入样本的滑动窗口间作乘法,然后将一切的乘积加起来,构成一个输出样本。
相似的运算在数字信号处理进程中很多地重复产生,使得为此规划的器材有必要供给专门的支撑,促进了了DSP器材与通用处理器(GPP)的分流:
1 对密布的乘法运算的支撑
GPP不是规划来做密布乘法使命的,即使是一些现代的GPP,也要求多个指令周期来做一次乘法。而DSP处理器运用专门的硬件来完结单周期乘法。DSP处理器还添加了累加器寄存器来处理多个乘积的和。累加器寄存器一般比其他寄存器宽,添加称为成果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处理器在指令集和硬件方面都支撑饱满核算、舍入和移位。
从表面上来看,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以上。