2.2 数字信号处理系统架构分析
信号处理这一领域总是得益于它的理论、应用与实现信号处理系统的技术之间的紧密结合。日渐增长的应用范围和对日益增加的高级算法的需求总是与实现信号处理系统器件技术的快速发展齐头并进的。相对于模拟信号处理系统而言,数字信号处理系统具有体积小、功耗小、精度高、可靠性高、灵活性大、易于大规模集成及可进行二维与多维处理等优势。一个典型的数字信号处理系统如图2.1所示。在这种情况下,连续时间的模拟信号经过抗混迭滤波器输出带限信号,以保证A/D转换器采样频率满足采样定理的要求。A/D转换器输出的数字信号传送给DSP芯片处理并将处理结果传送给D/A转换器,以模拟形式输出。对于这一类系统,往往希望它们能够实时工作,这就意味着数字信号处理系统要以对模拟信号采样的同一速率来完成处理。显然,在这个数字系统中,DSP芯片是核心器件。随着A/D转换器工艺和技术的发展,所能提供的采样频率越来越高,这也使得数字信号处理越来越靠近前端,由常规的基带处理跨越到直接中频处理。这样就对DSP芯片的实时处理能力提出了越来越高的要求。
图2.1 一个典型的数字信号处理系统
数字信号处理系统的性能取决于3个因素:采样频率(Frequency)、架构(Architec-ture)和字长(Wordlength)。这3个因素对系统性能(如系统速度、系统带宽、系统功耗及系统资源等)起着决定性的作用。
处理单元是数字信号处理系统的核心部件。目前,主流的处理单元可分为3类:指令集处理单元、硬连线结构处理单元和可重构处理单元。
指令集处理单元的典型代表是微处理器单元(Mirco-Processor Unit,MPU)和通用或专用DSP处理器。以通用DSP处理器为例,它基于CPU架构,采用顺序的工作模式,通过软件指令的方式完成数字信号处理算法。由于它具有适用于各种数字信号处理算法实现的通用硬件架构,所以在通用性和灵活性上有很大的优势。但是,DSP处理器也有自身的不足之处:算术逻辑单元(Arith Logic Unit,ALU)数量上的缺陷导致其并行处理能力大打折扣。显然,随着采样频率的提高,每个采样周期所能完成的指令数目是递减的。另外,ALU并非独立的乘法器,而是根据算法的需要扮演着不同的角色,执行不同的功能,如乘法运算、除法运算及开方运算等。
硬连线结构处理单元的典型代表是ASIC。它是针对完成某种特定数字信号处理算法的集成电路器件,所以在性能指标、工作速度、可靠性和应用成本上优于DSP处理器。由于它的硬连线模式,导致它在功能重构及应用修正方面缺乏灵活性,且开发周期长,风险大,成本高。
可重构处理单元的典型代表是FPGA。它具有规则的可编程结构,可实现各种逻辑功能,属于硬件可编程,所以也被称为“液体硬件”。用FPGA实现数字信号处理具有如下优势。
第一,FPGA具有很强的运算能力。这是因为FPGA内部有大量的硬线MAC,同时,这些MAC在全流水模式下可高速运行。如图2.2所示,Xilinx的Virtex-4、Virtex-5和Vir-tex-6内部MAC的最高运行速度可分别达到500MHz[3]、550MHz[4]和600MHz[5]。结合FP-GA内部MAC的个数,相应的运算能力如图2.3所示。
图2.2 Virtex-4、Virtex-5 和Virtex-6内部MAC的最高运行速度
图2.3 Virtex-4、Virtex-5 和Virtex-6内部MAC的运算能力比较
第二,FPGA具有极大的灵活性。例如,可实现一个式(2.1)所确定的乘累加运算。
在FPGA内部可采用全并行、半并行和串行3种方式。这3种方式各有优势:全并行方式可提供最高的处理速度,适用于高的采样频率的场合;串行方式占用资源最少,适用于低的采样频率的场合;半并行方式实现了资源与速度的折中,如图2.4所示。
图2.4 在FPGA中实现乘累加运算的3种方式
第三,通过集成可降低系统成本。这是因为FPGA的容量越来越大。如图2.5所示,在Virtex-II时代需要一些ASIC器件作为补充,到了Virtex-4时代,这些ASIC器件所执行的功能可由FPGA完成。FPGA容量进一步增大,使得原来需要多片FPGA和多片DSP处理器完成的功能可能只需要单片FPGA和DSP处理器完成,从而减小了PCB尺寸,如图2.6所示。同时,这也有利于阵列信号处理的实现。
图2.5 从Virtex-II时代跨越到Virtex-4时代
对通用DSP处理器、ASIC和FPGA进行比较,如图2.7所示。通用DSP处理器灵活,但实时性欠佳;ASIC具有很高的性能,但灵活性欠佳;FPGA则在灵活性和高性能上取得了兼顾。
数字信号处理系统经历了单片DSP处理器、多片DSP处理器并行工作的架构模式。而目前,主流的数字信号处理系统架构采用的是FPGA+DSP处理器的模式或FPGA+DSP+ARM处理器的模式。FPGA+DSP处理器的数字信号处理系统架构如图2.8所示。FPGA在系统中扮演着预处理器或协处理器的角色。作为预处理器,FPGA对高速数据流进行处理,将处理后的低速数据流交给DSP处理器完成后续处理;作为协处理器,FPGA受DSP处理器的控制,实现不同工作模式的切换。FPGA+DSP处理器+ARM核的数字信号处理系统架构如图2.9所示。有些厂商将ARM核与DSP处理器集成于同一芯片内,从而形成如图2.10所示的架构。此外,Xilinx即将推出的EPP Zynq -7000系列FPGA内部嵌入了两个ARM核,同时其内部还有大量的MAC(最多可达760个)和BRAM(最多可达465块,每块36Kb),可提供最高可达912GMACs/s的运算能力,这对ARM核的DSP处理能力是一个强有力的补充。这样,在某些应用场合可采用FPGA+EPP的架构模式,如图2.1 1所示。
图2.6 从Virtex-4时代跨越到Virtex-5、Virtex-6时代
图2.7 通用DSP处理器、ASIC和FPGA的比较
图2.8 FPGA+DSP处理器的数字信号处理系统架构
图2.9 FPGA+DSP处理器+ARM核的数字信号处理系统架构
图2.10 ARM核与DSP处理器集成于同一芯片内的模式
图2.11 FPGA+EPP的数字信号处理系统架构
对于性能要求极高的应用,可将复杂算法划分为底层部分和顶层部分,结合DSP处理器和FPGA各自的结构和功能特点,将算法的各部分映射到不同的硬件模块上,在系统功能上实现互补。底层部分用于数据处理量大、速度要求高、但是算法结构相对比较简单的算法,适合用FPGA硬件的高度并行性实现,可同时兼顾速度及灵活性,如一定长度的FFT/IFFT、FIR滤波等算法。顶层部分处理的特点是所处理的数据量较底层部分小,但算法的控制结构复杂,适合用运算速度高、寻址方式灵活、通信机制强大的DSP处理器实现。FPGA+DSP处理器的架构是目前高性能处理系统的主流模式。这种结构非常灵活,有较强的通用性,适合模块化设计,有利于提高算法效率,缩短开发周期,并易于维护和扩展。