DSP

DSP是什么?

2019-07-13 09:32发布


DSP是什么?



     DSP芯片概念   DSP芯片也称数字信号处理器,是一种具有特殊结构的微处理器。DSP芯片的内部采用程序和数据分开的哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,提供特殊的DSP 指令,可以用来快速地实现各种数字信号处理算法。 根据数字信号处理的要求,DSP芯片一般具有如下的一些主要特点: (1) 在一个指令周期内可完成一次乘法和一次加法。 (2) 程序和数据空间分开,可以同时访问指令和数据。 (3) 片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问。 (4) 具有低开销或无开销循环及跳转的硬件支持。 (5) 快速的中断处理和硬件I/O支持。 (6) 具有在单周期内操作的多个硬件地址产生器。 (7) 可以并行执行多个操作。 (8) 支持流水线操作,使取指、译码和执行等操作可以重叠执行。 与通用微处理器相比,DSP芯片的其他通用功能相对较弱些。 
      DSP芯片的发展   世界上第一个单片DSP芯片是1978年AMI公司宣布的S2811,1979年美国Iintel公司发布的商用可编程期间2920是DSP芯片的一个主要里程碑。这两种芯片内部都没有现代DSP芯片所必须的单周期芯片。 1980年。日本NEC公司推出的μPD7720是第一个具有乘法器的商用DSP 芯片。第一个采用CMOS工艺生产浮点DSP芯片的是日本的Hitachi 公司,它于1982年推出了浮点DSP芯片。1983年,日本的Fujitsu公司推出的MB8764,其指令周期为120ns ,且具有双内部总线,从而处理的吞吐量发生了一个大的飞跃。而第一个高性能的浮点DSP芯片应是AT&T公司于1984年推出的DSP32。 在这么多的DSP芯片种类中,最成功的是美国德克萨斯仪器公司(Texas Instruments,简称TI)的一系列产品。TI公司灾982年成功推出启迪一代DSP芯片TMS32010及其系列产品TMS32011、TMS32C10/C14/C15/C16/C17等,之后相继推出了第二代DSP芯片TMS32020、TMS320C25/C26/C28,第三代DSP芯片TMS32C30/C31/C32,第四代DSP芯片TMS32C40/C44,第五代DSP芯片TMS32C50/C51/C52/C53以及集多个DSP于一体的高性能DSP芯片TMS32C80/C82等。 自1980年以来,DSP芯片得到了突飞猛进的发展,DSP芯片的应用越来越广泛。从运算速度来看,MAC(一次乘法和一次加法)时间已经从80年代初的400ns(如TMS32010)降低到40ns(如TMS32C40),处理能力提高了10多倍。DSP芯片内部关键的乘法器部件从1980年的占模区的40左右下降到5以下,片内RAM增加一个数量级以上。从制造工艺来看,1980年采用4μ的N沟道MOS工艺,而现在则普遍采用亚微米CMOS工艺。DSP芯片的引脚数量从1980年的最多64个增加到现在的200个以上,引脚数量的增加,意味着结构灵活性的增加。此外,DSP芯片的发展,是DSP系统的成本、体积、重量和功耗都有很大程度的下降。 
     DSP芯片的分类   DSP芯片可以按照以下的三种方式进行分类。 1. 按基础特性分 这是根据DSP芯片的工作时钟和指令类型来分类的。如果DSP芯片在某时钟频率范围内的任何频率上能正常工作,除计算速度有变化外,没有性能的下降,这类DSP芯片一般称之为静态DSP芯片。 如果有两种或两种以上的DSP芯片,它们的指令集和相应的机器代码机管脚结构相互兼容,则这类DSP芯片称之为一致性的DSP芯片。 2. 按数据格式分 这是根据DSP芯片工作的数据格式来分类的。数据以定点格式工作的DSP芯片称之为定点DSP芯片。以浮点格式工作的称为DSP芯片。不同的浮点DSP芯片所采用的浮点格式不完全一样,有的DSP芯片采用自定义的浮点格式,有的DSP芯片则采用IEEE的标准浮点格式。 3. 按用途分 按照DSP芯片的用途来分,可分为通用DSP芯片和专用型的DSP芯片通用DSP芯片适合普通的DSP应用,如TI公司的一系列DSP芯片。专用型DSP芯片市为特定的DSP运算而设计,更适合特殊的运算,如数字滤波,卷积和FFT等。 
      4 DSP芯片的选择   设计DSP应用系统,选择DSP芯片时非常重要的一个环节。只有选定了DSP芯片才能进一步设计外围电路集系统的其它电路。总的来说,DSP芯片的选择应根据实际的应用系统需要而确定。一般来说,选择DSP芯片时考虑如下诸多因素。 1. DSP芯片的运算速度。运算速度是DSP芯片的一个最重要的性能指标,也是选择DSP芯片时所需要考虑的一个主要因素。DSP芯片的运算速度可以用以下几种性能指标来衡量: (1) 指令周期。就是执行一条指令所需要的时间,通常以ns为单位。 (2) MAC时间。即一次乘法加上一次加法的时间。 (3) FFT执行时间。即运行一个N点FFT程序所需的时间。 (4) MIPS。即每秒执行百万条指令。 (5) MOPS。即每秒执行百万次操作。 (6) MFLOPS。即每秒执行百万次浮点操作。 (7) BOPS。即每秒执行十亿次操作。 2. DSP芯片的价格。根据一个价格实际的应用情况,确定一个价格适中的DSP芯片。 3. DSP芯片的硬件资源。 4. DSP芯片的运算速度。 5. DSP芯片的开发工具。 6. DSP 芯片的功耗。 7. 其它的因素,如封装的形式、质量标准、生命周期等。 DSP应用系统的运算量是确定选用处理能力多大的DSP芯片的基础。那么如何确定DSP系统的运算量以选择DSP芯片呢? 1. 按样点处理 按样点处理就是DSP算法对每一个输入样点循环一次。例如;一个采用LMS算法的256抽头德的自适应FIR滤波器,假定每个抽头的计算需要3个MAC周期,则256抽头计算需要256*3=768个MAC周期。如果采样频率为8KHz,即样点之间的间隔为125μs的时间,DSP芯片的MAC周期为200μs,则768个周期需要153.6μs的时间,显然无法实时处理,需要选用速度更快的芯片。 2. 按帧处理 有些数字信号处理算法不是每个输入样点循环一次,而是每隔一定的时间间隔(通常称为帧)循环一次。所以选择DSP芯片应该比较一帧内DSP芯片的处理能力和DSP算法的运算量。假设DSP芯片的指令周期为P(ns),一帧的时间为⊿τ(ns),则该DSP芯片在一帧内所提供的最大运算量为⊿τ/ P 条指令。 
      DSP芯片的基本结构   DSP芯片的基本结构包括: (1)哈佛结构; (2)流水线操作; (3)专用的硬件乘法器; (4)特殊的DSP指令; (5)快速的指令周期。 哈佛结构 哈佛结构的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编址,独立访问。与两个存储器相对应的是系统中设置了程序总线和数据总线,从而使数据的吞吐率提高了一倍。由于程序和存储器在两个分开的空间中,因此取指和执行能完全重叠。 流水线与哈佛结构相关,DSP芯片广泛采用流水线以减少指令执行的时间,从而增强了处理器的处理能力。处理器可以并行处理二到四条指令,每条指令处于流水线的不同阶段。入图示出一个三级流水线操作的例子。 CLLOUT1 取指 N N-1 N-2 译码 N-1 N N-2 执行 N-2 N-1 N 图4-1 三级流水线操作 专用的硬件乘法器 乘法速度越快,DSP处理器的性能越高。由于具有专用的应用乘法器,乘法可在一个指令周期内完成。 特殊的DSP指令DSP芯片是采用特殊的指令。 快速的指令周期哈佛结构、流水线操作、专用的硬件乘法器、特殊的DSP指令再加上集成电路的优化设计可使DSP芯片的指令周期在200ns以下。 
      DSP系统的特点  数字信号处理系统是以数字信号处理为基础,因此具有数字处理的全部特点: (1) 接口方便。DSP系统与其它以现代数字技术为基础的系统或设备都是相互兼容,这样的系统接口以实现某种功能要比模拟系统与这些系统接口要容易的多。 (2) 编程方便。DSP系统种的可编程DSP芯片可使设计人员在开发过程中灵活方便地对软件进行修改和升级。 (3) 稳定性好。DSP系统以数字处理为基础,受环境温度以及噪声的影响较小,可靠性高。 (4) 精度高。16位数字系统可以达到的精度。 (5) 可重复性好。模拟系统的性能受元器件参数性能变化比较大,而数字系统基本上不受影响,因此数字系统便于测试,调试和大规模生产。 (6) 集成方便。DSP系统中的数字部件有高度的规范性,便于大规模集成。 
      DSP芯片的应用  自从DSP芯片诞生以来,DSP芯片得到了飞速的发展。DSP芯片高速发展,一方面得益于集成电路的发展,另一方面也得益于巨大的市场。在短短的十多年时间,DSP芯片已经在信号处理、通信、雷达等许多领域得到广泛的应用。目前,DSP芯片的价格也越来越低,性能价格比日益提高,具有巨大的应用潜力。 DSP芯片的应用主要有: (1) 信号处理--如,数字滤波、自适应滤波、快速傅里叶变换、相关运算、频谱分析、卷积等。 (2) 通信--如,调制解调器、自适应均衡、数据加密、数据压缩、回坡抵消、多路复用、传真、扩频通信、纠错编码、波形产生等。 (3) 语音--如语音编码、语音合成、语音识别、语音增强、说话人辨认、说话人确认、语音邮件、语音储存等。 (4) 图像/图形--如二维和三维图形处理、图像压缩与传输、图像增强、动画、机器人视觉等。 (5) 军事--如保密通信、雷达处理、声纳处理、导航等。 (6) 仪器仪表--如频谱分析、函数发生、锁相环、地震处理等。 (7) 自动控制--如引擎控制、深空、自动驾驶、机器人控制、磁盘控制。 (8) 医疗--如助听、超声设备、诊断工具、病人监护等。 (9) 家用电器--如高保真音响、音乐合成、音调控制、玩具与游戏、数字电话/电视等 Digital Signal Processing 数字信号处理 作为一个案例研究,我们来考虑数字领域里最通常的功能:滤波。简单地说,滤波就是对信号进行处理,以改善其特性。例如,滤波可以从信号里清除噪声或静电干扰,从而改善其信噪比。为什么要用微处理器,而不是模拟器件来对信号做滤波呢? 我们来看看其优越性: 模拟滤波器(或者更一般地说,模拟电路)的性能要取决于温度等环境因素。一个模拟滤波器一旦制造出来,其特性(例如通带频率范围)是不容易改变的。使用微处理器来实现 数字滤波器,就可以通过对其重新编程来改变滤波的特性。 数字滤波器则基本上不受环境的影响。数字滤波易于在非常小的宽容度内进行复制,因为其性能并不取决于性能已偏离正常值的器件的组合。 信号处理方式的比较 比较因素 模拟方式 数字方式 修改设计的灵活性 修改硬件设计,或调整硬件参数 改变软件设置 精度 元器件精度 A/D的位数和计算机字长,算法 可靠性和可重复性 受环境温度、湿度、噪声、电磁场等的干扰和影响大 不受这些因素的影响 大规模集成 尽管已有一些模拟集成电路,但品种较少、集成度不高、价格较高 DSP器件体积小、功能强、功耗小、一致性好、使用方便、性能/价格比高 实时性 除开电路引入的延时外,处理是实时的 由计算机的处理速度决定 高频信号的处理 可以处理包括微波毫米波乃至光波信号 按照奈准则的要求,受S/H、A/D和处理速度的限制 Digital Signal Processor 数字信号处理器 微处理器(Microprocessor)的分类 通用处理器(GPP) · 采用冯.诺依曼结构,程序和数据的存储空间合二而一 · 8-bit Apple(6502),NEC PC-8000(Z80) · 8086/286/386/486/Pentium/Pentium II/ Pentium III · PowerPc 64-bit CPU(SUN Sparc,DEC Alpha, HP) · CISC 复杂指令计算机, RISC 精简指令计算机 · 采取各种方法提高计算速度,提高时钟频率,高速总线,多级Cashe,协处理器等 Single Chip Computer/ Micro Controller Unit(MCU) · 除开通用CPU所具有的ALU和CU,还有存储器(RAM/ROM)寄存器,时钟,计数器,定时器,串/并口,有的还有A/D,D/A · INTEL MCS/48/51/96(98) · MOTOROLA HCS05/011 DSP · 采用哈佛结构,程序和数据分开存储 · 采用一系列措施保证数字信号的处理速度,如对FFT的专门优化 MCU与DSP的简单比较 MCU DSP 低档 高档 低档 高档 指令周期(ns) 600 40 50 5 乘加时间(ns) 1900 80 50 5 US$/MIPS 1.5 0.5 0.15 0.1 DSP处理器与通用处理器的比较 考虑一个数字信号处理的实例,比如有限冲击响应滤波器(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使用定点计算,而不是使用浮点。虽然