客户留言
  行业动态
 
 
 
  news  

行业动态--选择用于实时信号处理的DSP  
     
  选择用于实时信号处理的DSP
  此文章源自《电子工程专辑》网站
   
 

选择适合系统需要的DSP是设计师作出的首要决定,因为这种选择最终会影响工程的成功或失败。

Rodger H. Hosking
副总裁
Pentek公司
每个DSP和数据采集系统的要求都有自身独特的关于交货、价格、封装和性能目标的组合。这些因素必须经过慎重权衡以获得最优化的结构和设计方法。

外部总线非常重要,因为它要向DSP提供两个重要的资源:程序代码和数据。根据不同的处理器和应用环境,这两个资源中总有一个或两个都会成为设计中的瓶颈因素,因此它们比器件本身固有的计算速度更重要。

请注意‘C40是唯一具有两条独立的32位总线的器件,这两条总线可以在同一周期内并行工作(表1)。当程序代码不能安装在内部程序存储器时这一点就显得非常重要;一条总线用来进行外部程序存储器的读取,另外一条则用来进行外部数据的读取。

48位SHARC总线支持在一个周期内读取48位指令字,而在32位总线上则需要读取两次。

值得注意的是‘C6201地址总线被限制为24位,它更适合于嵌入式专用DSP,而不是附带许多不同类型外围设备的常用器件。对于标准的卡盒式板级DSP产品,底板总线常常会对地址空间提出大量要求。

SHARC提供三种容量的内部存储器:512KB,256KB和128KB,它可以任意存放48位程序代码、32位数据或16位数据(表2)。在内部该存储器被分成二个相等的存储块。为了能够同时传送程序和数据,可以允许对这些块进行并行存取。

SHARC同时还具有一个32字的程序缓冲器。当指令从该缓冲器执行时,就不再需要通过相关的内部总线从任意两个存储块中读取数据。在这种情况下,内部存储块和总线都是空闲的,这样就允许在一个25ns周期内完成二个操作数和一条指令的读取工作。

C40内部RAM提供两个块,每个块都是按1K ×32位安排的。数据和程序可以在这两个块中自由地分配。除了这些资源外,C40还提供一个具备灵活缓冲控制功能的容量为128字的指令缓冲器。

C6201采用了一个能够并行执行8条32位指令的VLIW CPU。其内部程序存储器结构是2K ×256位,可以在每个时钟周期或5ns内执行一次VLIW。与其它VLIW指令器件的格式不同,C6201支持指令包功能(instruction packing),因此可以更有效地利用内部程序存储区。C6201还具有根据指令进行条件执行的功能。

值得一提的是‘C6201难以置信的执行速度,如果没有把程序代码存储在内部程序存储器中,那么它将在外部32位总线上花费8个指令读取周期来形成单个256位的VLIW指令。该条外部总线同时由所有的外部数据读取过程共享。

C6201另一个特点是程序缓冲控制器。它对整个64KB程序存储空间操作,而不象C40和SHARC那样只对其中的一些字操作。通过在第一次访问外部存储器期间激活缓冲器可以把大量关键的程序代码装载进缓冲器中,这样可以大量减少访问外部存储器的工作。

对于所有的DSP来说直接存储器访问(DMA)控制器是一个非常重要的硬件资源。该器件可以完成所有重要数据的移动任务,因此可以戏剧性地减少CPU的处理负载。

C40提供6个相同的易于使用的DMA通道。每个通道都可以在CPU可访问的两个存储器资源间移动数据。这些资源包括六个串口、内部存储器和两条外部存储器总线。DMA通道可以相互链接,并可通过硬件中断或软件命令来初始化这些通道。

SHARC中的十个DMA通道要比C40通道更专用,它们专门用于特定的硬件资源。其中二个DMA通道专用于链接端口、外部存储器和串行端口。剩下的四个中有两个可以配置成链接端口或串行通道,最后两个通道则用成外部存储器端口或链接端口。所有通道都支持链形连接和中断控制。

C6201的四个通道是相同的,它们能够在内部数据存储器、内部程序存储器和内部外围设备(如串行接口、外部存储器以及器件)之间来回传输数据。第五个DMA通道专用于16位的主机端口,它允许访问内部存储块。

C6201的DMA通道还具有以下一些特点:支持8位、16位和32位传输,全双工模式传输,还支持用于电信业务的帧传输和处理器间通信。

在处理器间有效地移动数据对于许多应用来说是非常重要的,特别是当主处理任务必须在多个处理器之间分担时。处理这种分担有二种常用的方法,第一种是面向数据流的管道方法,它采用过程中应用的相关算法来从每个DSP移进或移出数据。

第二种方法是采用所有DSP都能访问的共享存储器资源。这种共享模型的性能通常会受到一些限制,因为同时只能有一个处理器能够使用共享的存储器。

C40和SHARC都具有六个用于处理器间通信的通道,它们能够支持标准多处理器配置下许多不同级别中专用的高速链接,并支持二维和三维矩阵。

由于这些链接使用各自专用的数据通道并且独立于任何外部总线活动,因此使用它们的最大好处就是能够对其进行并行操作。第二个好处是能够指配DMA通道以后台任务形式来自动处理数据移动,因而可以让DSP中的CPU有更多的时间来处理其它更重要的任务。

有两个候选处理器用作两个串口:SHARC和C6201。C6201被用作通用的串行控制器,因为它的I/O口已经得到了优化,非常适于处理串行通信任务。内部逻辑电路支持可配置的大小从8位到32位的串行字,并且一帧中的TDM通道最多达128个。成帧逻辑电路与DMA控制器一起工作,用以管理串口和可配置存储块之间的数据传输。SHARC也具有二个串口。

定点DSP的市场明显优于浮点DSP器件,就销售数量和销售额比例来说,至少达10比1。其中的原因是比较好理解的。

定点器件与浮点器件相比,价格更低、功耗更少并且硅片面积更小。在大批量应用场合,所有这些因素都会影响人们的决定。最终产品的成本是选择的最重要因素。工程技术开发的工作量是非常大的,但人们可以通过产品上批量来分摊成本。

浮点器件对软件的要求不高,因为它们能够处理大量具有数字值的变量并仍可提供相当高精度的计算结果。这样就可以大大减少软件开发工作,以便让软件工程师发挥高级语言的作用。

定点处理器在换算时要求小心避免计算过程的上溢和下溢。人们必须尽可能地保持动态信号范围,因为整个信号通道的保真度取决于流程中最差刻度点的可用范围。

如果能有足够的时间,并得到充分的测试和优化,那么定点处理器就能在许多应用中很好地工作。一些应用本身有大量定点处理,如图像和视频处理。这种情况下信号的动态范围可以很好地用明确刻度定义出来,此时浮点性能带来的好处并不多。

浮点器件非常适用于政府和国防部承包人,它们需要及时产生数量相对少但复杂的高性能系统,并控制在预算之内。这时开发和集成成本占了销售价格的绝大部分,而浮点DSP则有助于控制这些成本。

同时系统很有可能在生命期(也许有10到15年)内的某一刻需要维修和升级。与用高级语言(如C语言)调试浮点器件相比,升级手工优化的定点汇编代码要花费更高的代价,并且后果不可预测。

上述DSP器件中,‘C40和SHARC提供的是浮点性能,而‘C6201则是定点器件。

如前所述,严格的算法有时会左右DSP的选择。这个因素的重要性明显要取决于DSP处理给定算法所花时间的百分比。如果DSP专门处理嵌入式应用(表三)中一个或二个有限的任务时,基准是很重要的。比如,一个有源噪声去除器件中的DSP(其用途包括喷气式飞机)可能要花费几乎所有的时间来执行自适应滤波算法。另一方面,台式计算机中用于电脑电话的PCI卡上的DSP也许正在控制一个ADC和DAC,执行声调解码和产生,处理解调和滤波算法,修改工作窗口和响应键盘命令,所有信号的频率都是不可预知的。

相比其它两种处理器,‘C6201还有一个很不错的性能。2.5ns FIR抽头时间反映每个时钟周期有二个MAC(乘法累加器)周期,能够充分利用CPU的双运算部件。

C40优化了德州仪器公司的ANSI C编译器,包括汇编、链接和运行时间库包装,可以最大限度地利用C40器件性能。同时还有一个仿真器。这些工具很多年以前就有了,因此经过长时间使用和完善变得非常可靠。设计人员可以针对具体目标调整优化级别,以便设计出更高密度和效率的代码。

SHARC的支持者是模拟器件(AD)公司优化的ANSI C编译器、汇编器、链接器和用于DSP及数学函数的C运行时间库。还包括完成向量、矩阵和阵列处理任务的数字化C扩展部分。同时也有全部指令的仿真器。需要注意的是这些SHARC工具仍处于完善阶段。

C6201的软件工具是最新的,并且也是最复杂的。采用C6201取得成功的关键要素是尽可能地在每个5ns指令周期内利用八个并行操作。

既然大多数编程者写的是连续和或线性的程序,C6201优化编译器的主要功能之一就是推进代码的并行化。它分析连续操作的数据依赖性,并考虑每步操作的等待时间,以期在同一周期内执行尽可能多的指令。

当处理多个数据流时,C6201编译器常常能够优化代码来并行计算最多八个数据流。这种处理形式常见于电话应用中,C6201的串行I/O结构正是用于处理这种情况的。

前面提及的DSP器件中,C6201是唯一可以提供多种优化模式汇编器的器件。其中一个很有用的特点是允许使用虚拟寄存器管理。这时通过使用寄存器的符号名,汇编器可以分配实际的硬件寄存器来优化代码包(code packing)。

每个应用都会有相应的侧重点要求,因此需要详细考虑每个DSP器件的优点和缺点。在设计过程中越早考虑这些因素,并在工作中选择正确的DSP,那么就有很大的把握取得价格、性能和交货方面的成功。

如欲了解更多信息,请联系作者Rodger H. Hosking:
Fax: 201-818-5904; Net: www.pentek.com