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 条指令。
5 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以下。
6 DSP系统的特点
数字信号处理系统是以数字信号处理为基础,因此具有数字处理的全部特点:
(1) 接口方便。DSP系统与其它以现代数字技术为基础的系统或设备都是相互兼容,这样的系统接口以实现某种功能要比模拟系统与这些系统接口要容易的多。
(2) 编程方便。DSP系统种的可编程DSP芯片可使设计人员在开发过程中灵活方便地对软件进行修改和升级。
(3) 稳定性好。DSP系统以数字处理为基础,受环境温度以及噪声的影响较小,可靠性高。
(4) 精度高。16位数字系统可以达到的精度。
(5) 可重复性好。模拟系统的性能受元器件参数性能变化比较大,而数字系统基本上不受影响,因此数字系统便于测试,调试和大规模生产。
(6) 集成方便。DSP系统中的数字部件有高度的规范性,便于大规模集成。
7 DSP芯片的应用
自从DSP芯片诞生以来,DSP芯片得到了飞速的发展。DSP芯片高速发展,一方面得益于集成电路的发展,另一方面也得益于巨大的市场。在短短的十多年时间,DSP芯片已经在信号处理、通信、雷达等许多领域得到广泛的应用。目前,DSP芯片的价格也越来越低,性能价格比日益提高,具有巨大的应用潜力。DSP芯片的应用主要有:
(1) 信号处理--如,数字滤波、自适应滤波、快速傅里叶变换、相关运算、频谱分析、卷积等。
(2) 通信--如,调制解调器、自适应均衡、数据加密、数据压缩、回坡抵消、多路复用、传真、扩频通信、纠错编码、波形产生等。
(3) 语音--如语音编码、语音合成、语音识别、语音增强、说话人辨认、说话人确认、语音邮件、语音储存等。
(4) 图像/图形--如二维和三维图形处理、图像压缩与传输、图像增强、动画、机器人视觉等。
(5) 军事--如保密通信、雷达处理、声纳处理、导航等。
(6) 仪器仪表--如频谱分析、函数发生、锁相环、地震处理等。
(7) 自动控制--如引擎控制、深空、自动驾驶、机器人控制、磁盘控制。
(8) 医疗--如助听、超声设备、诊断工具、病人监护等。
(9) 家用电器--如高保真音响、音乐合成、音调控制、玩具与游戏、数字电话/电视等
DSP芯片开发和产品应用
一、DSP程序开发
为了使DSP有效运行、必须要用能充分考虑DSP内部并行性的汇编语言进行编制DSP程序。前面提到,美国TI公司的DSP推销员说DSP编程容易,实际上他是指DSP的汇编语言相对于计算机的汇编语言而言,比较容易一些,因为没有像计算机汇编语言那样复杂。但是,对于习惯用高级语言编程的用户,利用DSP汇编语言编程还是有困难的。因为,汇编语言是面向机器的程序设计语言,它是一种把机器语言(机器指令码)符号化的低级程序设计语言。使用计算机汇编语言的用户一定要熟悉机器硬件结构和指令系统;使用DSP汇编语言的用户一定要熟悉DSP芯片内部结构和指令系统,这对于DSP用户来说也实非容易的事情。
从发展DSP应用角度观察,应该有相当规模的DSP开发应用队伍,这个队伍的成员应该掌握使用汇编语言AssemblyLanguage编程基本功,才能开发出高效率的DSP应用程序。特别是在利用多个DSP芯片开展并行处理应用时,具有这种编程基本功底是绝对必要的。甚至,在某些专业应用领域,诸如,日本简易便携电话PHS、磁盘驱动器里的控制系统等,可能仅有一块DSP芯片,供编程的空间很小,需要用DSP指令编写高效率精干的小程序。因为,利用汇编语言编制应用程序,DSP还需要一种汇编程序Assembler通过代真把源程序中各个符号转换成DSP可执行的指令代码。Assembler也要占用DSP的有限存储空间。前文提及的正确理解DSP,实际上也包括这一层含义。也就是说,不对DSP的性能和结构有透澈地了解,很难推广DSP应用。
从DSP编程角度观察,需要重视以下两点:首先,DSP处理任务的执行时间要给予重视,其次,C语言及其编译程序Compiler支持工具也很重要。这是日本武藏工业大学的学者曾祢元隆等研究DSP应用的重要心得体会,对于推广DSP应用具有重要意义。
[此贴子已经被作者于2004-6-2 14:08:16编辑过] |