数字信号处理学科与数字信号处理器
数字信号处理的算法是离散傅立叶变换(DFT),是DFT使信号在数字域和频域都实现了离散化,从而可以用通用计算机处理离散信号。而使数字信号处理从理论走向实用的是快速傅立叶变换(FFT),FFT的出现大大减少了DFT的运算量,使实时的数字信号处理成为可能、极大促进了该学科的发展。 作为数字信号理论,一般是指利用经典理论作为基础而形成的独特的信号处理理论,由此在各个应用领域如语音与图象处理、信息的压缩与编码、信号的调制与调解、信道的辨识与均衡、各种智能控制与移动通讯等都延伸出各自的理论与技术。
数字信号处理是研究用数字方法对信号进行分析、变换、滤波、检测、调制、解调以及快速算法的一门技术学科。但很多人认为:数字信号处理主要是研究有关数字滤波技术、离散变换快速算法和谱分析方法。随着数字电路与系统技术以及计算机技术的发展,数字信号处理技术也相应地得到发展,其应用领域十分广泛。
DSP算法及芯片分类
DSP是一门涉及许多学科而又广泛应用于许多领域的新兴学科。随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。DSP运算的基本类型是乘法和累加运算,对于卷积、相关、滤波和FFT基本上都是这一类运算。这样的运算可以用通用机来完成。
数据寻址范围大,结构复杂但很有规律。这就不同于一般的通用机,在通用机中对数据库的操作,具有很大的随机性,这种随机寻址方式不是信号处理器的强项。
可以看出无论是专用的DSP芯片或通用DSP芯片在结构考虑上都能适应DSP运算,而专用芯片在结构上考虑的更加化,更为合理,因而有更高的运算速度。
DSP芯片按用途或构成分类可以分为下列几种类型: 为不同算法而专门设计的专用芯片:INMOS公司的A100、A110;HARRIS公司的HPS43168; PLESSY GEC 公司的PDSP16256等。 用于做FFT: Austek公司的A41102, PLESSY GEC 公司的PDSP16150等。因而运算速度高,但是具有有限的可编程能力,灵活性差。
为某种目的应用的专门设计系统,即ASIC系统。ASIC被认为是一种为专门目的而设计的集成电路。是指应特定用户要求和特定电子系统的需要而设计、制造的集成电路。ASIC的特点是面向特定用户的需求,ASIC在批量生产时与通用集成电路相比具有体积更小、功耗更低、可靠性提高、性能提高、保密性增强、成本降低等优点。
积木式结构:它是由乘法器、存储器、控制电路等单元逻辑电路搭接而成,这种结构方式也称为硬连线逻辑电路。它是一种早期实现方法,具有成本低、速度高等特点,由于是硬连接因而没有可编程能力。
用FPGA实现DSP的各种功能,实质上这也是一种硬连接逻辑电路,但由于有现场可编程能力,允许根据需要迅速重新组合基础逻辑来满足使用要求,因而更加灵活,而且比通用DSP芯片具有更高的速度。
通用可编程DSP芯片:这是目前用得多的数字信号处理应用器件。
Soc是一种技术,用以实现从确定系统功能开始,到软/硬件划分,并完成设计的整个过程。,这是数字化应用及微电子技术迅速发展的产物,是下一代基于DSP产品的主要发展方向之一。它把一种应用系统集成在一个芯片上。其中关键器件有:低功耗的DSP芯片,用来做媒体处理;MCU用来支持应用操作系统及以控制为的应用处理;MTC是内存和流量控制器,确保处理器能高效访问外部存储区,避免产生瓶颈现象,提高整个平台的处理速度。
DSP对MCU性能上的改进
对数字信号处理器可以确切的下这样的定义:解决实时处理要求,适合DSP运算需求的单片可编程微处理器芯片。原理上说通用微机、单片机都可以用来做信号处理的硬件平台,但作为DSP实时处理要求必须满足大数据量、复杂计算、实时性强的各种运算,因而DSP芯片针对DSP算法特点做了以下几方面的改进:
运算能力上的扩充
采用专用的硬件乘法器,有足够的字长,乘法结果保留全部数值,用双字长乘法存储器,同时可以用来做双运算。
自动产生数据地址
通用处理器由ALU产生地址,在DSP中专门有地址产生单元,通过程序循环,自动产生数据地址,这一单元本身也是一个微处理器,可以通过编程产生复杂的非顺序地址。
指令时序的产生不对其他运算单元造成额外开销
指令时序是可编程的,在遇到执行程序转移和循环时,不会额外增加开销。
简单比例定标运算得到宽的动态范围
DSP处理器特点
大多数DSP采用了哈佛结构,将存储器空间划分成两个,分别存储程序和数据。它们有两组总线连接到处理器核,允许同时对它们进行访问。这种安排将处理器存贮器的带宽加倍,更重要的是同时为处理器核提供数据与指令。在这种布局下,DSP得以实现单周期的MAC指令。
数字信号处理器的内核结构进一步改善,多通道结构和单指令多重数据(SIMD)、特大指令字组(VLIM)将在新的高性能处理器中将占主导地位。
DSP处理器的着眼点是要求速度快、处理的数据量大、效率高。但是单纯提高时钟速度受到工艺等各种因素的限制,一般是缓慢的,所以必须从结构上着手。某些概念其实在二十世纪40年代已经出现:其一是改造处理器的处理方法,用多总线、多存储器体系结构;其二是提高程序和数据流的速度,采用流水线,并行处理等方法。
采用哈佛(Harvard)结构和改进的哈佛结构
通用机采用冯·诺依曼(Von Neumenn)结构,这主要考虑到成本,把指令、数据、地址的传送采用同一条总线,靠指令计数来区分三者。由于取指和存取数据是在同一存取空间通过同一总线传输,因而指令的执行只能是顺序的,不可能重叠进行,所以无法提高运算速度。
DSP处理器采用哈佛结构,哈佛结构把程序代码和数据的存储空间分开,并有各自的地址和数据总线,每个存储器独立编址,用独立的一组程序总线和数据总线进行访问。
如果程序代码存储空间与数据存储空间之间还可以进行数据交换,则称为改进的哈佛结构。这种结构可以并行进行数据操作。 改进哈佛结构还可以从程序存储区来初始化数据存储区,或把数据存储区的内容转移到程序存储区,这样可以复用存储器,降低成本,提高存储器使用效率。
多总线结构
TMS320C54X结构中有一组程序总线(PB PAB),两组读数据总线(CB CAB)、(DB DAB),和一组写数据总线(EB EAB),这样可以同时读取两组数据和存储一组数据,这种附加总线和扩充地址增加数据流量,提高寻址能力。
采用流水线操作
计算机在执行一条指令时,要通过取指、译码、取数、执行等各阶段。由于DSP哈佛结构指令的各个阶段可以重叠进行,这样对每一条指令似乎都是在一个周期内完成,可以把指令周期减到,增加数据吞吐量。
流水线操作适用于循环操作时间足够长或多个数据点反复执行同一指令的情况。这是由于,流水线启动和停止的阶段是流水线逐步被填满和出空的过程。对于性非重复计算,流水线不可能达到稳态,反而用主要时间做填满和出空操作,因而是不合适的。
硬件乘法器和高效的MAC指令
在DSP算法中,乘法累加操作是大量的运算。因而DSP芯片都有硬件乘法器,使得乘法运算做到一个周期内完成。与之配合的指令为MAC-乘法累加指令,其功能如图 4 所示,它可以在单周期内取两个操作数相乘,并将结果加载到累加器。
独立的传输总线及其控制器
处理器高速处理速度必须与高速的数据访问和传输相配合。而且为不影响CPU及其相关总线的工作,DSP的DMA单独设置了传输总线及其控制器,因此DMA可以独立工作。
为了提高DSP的实时处理能力,有时把多个DSP组成DSP处理器阵列,并行工作,此时DMA成为各处理器之间进行数据传输的主要通道。
专用的数据地址发生器
在DSP运算中,存储器的访问具有可预测性。它也是一个ALU单元,具有简单的运算能力。在通用机的CPU中,数据地址和数据处理都由同一ALU完成。另外在DSP芯片的数据地址产生中还支持间接寻址、循环寻址、倒位寻址等特殊操作,以适应DSP运算的各种寻址需求。
丰富的外设(Peripherals)
DSP处理器往往是脱机独立工作,因此为与外设接口方便,往往设置了丰富的周边接口电路。一般包含下列几种主要外设:
时钟产生器(振荡器与锁相环PLL);
定时器(Timer);
软件可编程等待状态发生器,以便使较快的片内设施与较慢的片外电路及存储器协调工作;
通用的I/O口;
多通道同步缓冲串口(McBSP)和异步串口;
主机接口(HIP)
JTAG边界扫描逻辑电路(IEEE 标准1149. 1),便于对DSP处理器做片上在线仿真和多处理器情况下的调试。
具有片内存储器
DSP芯片片内一般带有存放程序的只读存储器ROM和存放数据的随机存储器RAM,符合DSP运算简单、程序短小的特征,同时可以提高指令传输效率,减小总线接口压力。并且它不存在与外部总线竞争和访问外部存储器速度不匹配的问题。
与结构相配合的采用RISC指令集
一般DSP处理器具有高度专门化、复杂且不规则的指令集,这样单个指令字可以同时控制片内多个功能单元操作。DSP处理器指令集在设计时有两个特点:其一是限度的使用了处理器的硬件资源,因此往往是在单个指令中并行完成若干操作。其次是指令所使用的存储空间减到,为缩短指令字长,往往用状态寄存器的模式来控制处理器的操作特性。
由于传统DSP芯片指令集的高度专门化及多功能操作使它难以用语言编译,所以一般C编译效率不高。另外C语言也不适合用来描述这种多存储空间、多组总线、高度专门化结构的硬件系统。
DSP处理器性能指标
对DSP处理器缺乏一种诸如对PC机那样公正合理的性能评价体系,这是由于各DSP厂商推出的产品在结构和数据传输能力上有很大的差异,它是专门为某种目的而设计的,因而正确评价只有与特定的应用联系起来。
传统评价方法
MIPS(Millions of Instructions Per Second),一般DSP为20~100MIPS,使用超长指令字的TMS320B2XX为2400MIPS。
MOPS(Millions of Operations Per Second),每秒执行百万操作。这个指标的问题是什么是操作。通常操作包括CPU操作外,还包括地址计算、DMA访问数据传输、I/O操作等。一般说MOPS越高意味着乘积-累加和运算速度越快。
MFLOaPS(Million Floating Point Operations Per Second),这是衡量浮点DSP芯片的重要指标。例如TMS320C31在主频为40MHZ时,处理能力为40MFLOPS,TMS320C6701在指令周期为6ns时,单运算可达1GFLOPS。
MBPS(Million Bit Per Second),它是对总线和I/O口数据吞吐率的度量,也就是某个总线或I/O的带宽。例如对TMS320C6XXX、200MHZ时钟、32bit总线时,总线数据吞吐率则为800Mbyte/s或6400MBPS。
MACS(Multiply-Accumulates Per Second),例如TMS320C6XXX乘加速度达300MMACS~600MMACS。
以上传统指标虽然可以作为设计时可选的参考指标,但是有很大的局限性。例如它没有考虑存储器的使用和器件的功耗,一旦器件与外部速度较慢的存储器进行数据交换时,运行速度马上就会被降低。
另一评价指标是算法评价指标。它是利用构成大多数DSP系统的基本运算模块,规定大小适度、统一输入、输出要求,在保证功能一致性的条件下,也允许程序员针对所使用的处理进行代码的优化,评价指标是执行时间、存储器的使用和能耗等。
从上列执行时间可以看出处理器结构对其性能的影响。执行同样的256点复数FFT所需时间之比为7.8:1,因此两者用MIPS作为比较指标就有差距。其原因是C6203指令比C5416简单,因而完成同样任务需要更多的指令,另外也由于数据的独立和流水作业的影响等因素,C6203的并行性不能同时得到的发挥。并且,这种算法评估指标并没有反映出计算,提高计算意味着字长的增加或采用浮点运算,相应的存储器容量增加。
DSP处理器还有其他评估指标,各类评估指标之间都有其自身的不足,因而正确的选用器件要根据任务需要量身定做,不可一味追求某项高指标,要根据性能价格比合理选用器件。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。