一种高速并行信号处理系统设计
2014-03-05李吉锋毛晓丹董博宇张伟峰刘志哲
李吉锋+毛晓丹+董博宇+张伟峰+刘志哲+王平
摘 要: 现代嵌入式系统的广泛应用对信号处理运算量以及实时性都提出了更高的要求,通过多处理器构建并行处理体系结构已经成为了解决这一问题的必然趋势。在研究并行处理体系结构的基础上,设计并实现了一种基于多DSP+FPGA的高速并行信号处理系统,该系统具有集成度高、运算能力强、通用性好、可扩展性好等特点,满足大规模实时信号处理的实际应用需求。
关键词: 信号处理; 高速; 并行; DSP; FPGA
中图分类号: TN911.7?34 文献标识码: A 文章编号: 1004?373X(2014)03?0076?04
Design of a high?speed parallel signal processing system
LI Ji?feng1, MAO Xiao?dan2, DONG Bo?yu1, ZHANG Wei?feng1, LIU Zhi?zhe1, WANG Ping1
(1. Institute No. 25 of the Second Academy, China Aerospace Science & Industry Corp., Beijing 100854, China;
2. Institute No. 706 of the Second Academy, China Aerospace Science & Industry Corp., Beijing 100142, China)
Abstract: With widely using of embedded system, the requirements of large quantity and real?time processing are more and more serious. It has been inevitable tendency that building a parallel processing system structure with multi?processor. Based on the research of parallel processing system structure, a high?speed parallel signal processing system based on multi?DSP+FPGA is designed and implemented. The system has the characteristics of high?integration, powerful processing capability, good generality and scalability, that can meet the practical application requirement of large?scale real?time signal processing.
Keywords: signal processing; high?speed; parallel; DSP; FPGA
0 引 言
随着信息技术的飞速发展,现代嵌入式系统应用越来越广泛,需求也越来越高,主要体现在信号处理运算量急剧增加,实时性要求不断提高,其典型的应用领域包括数字化医疗、图像处理以及军事应用等等[1]。数字信号处理器(DSP)和可编程逻辑门阵列(FPGA)作为信号处理的核心部件,自面世以来,处理能力不断增强,尤其是VLSI 技术的发展使DSP 和FPGA芯片的性能有了很大的提高,但是面对信号处理实际需求的不断提高,以单DSP或FPGA为核心的单处理器系统仍然难以满足实际需求,因此,通过多处理器构建并行处理体系结构已经成为了解决这一问题的必然趋势。
本文设计并实现了一种基于多DSP+FPGA的高速并行信号处理系统,该系统具有集成度高、运算能力强、结构灵活、可扩展性好等特点,可以广泛应用于宽带数字通信、软件无线电、雷达成像信号处理等领域。
1 并行处理体系结构介绍
并行处理系统将多个处理单元以一定的拓扑结构连结在一起,通过一定的方法可以将一个任务分成若干个子任务,分别由各处理单元完成,其目的是采用多个处理单元同时对同一任务进行处理而减少整个任务的执行时间,如何能以最短的时间完成任务是并行处理系统设计者最关心的问题[2]。
决定并行处理系统性能的三个要素是:处理单元、并行处理拓扑结构、并行处理任务分配[2]。在系统设计阶段选择合适的处理器是基础,而制定合理的并行拓扑结构,又是充分合理利用系统资源的关键。
并行处理系统各处理单元之间的拓扑结构大致可分为两类:一种是共享总线或共享存储器系统,一般称之为紧耦合式并行系统[3];另一种是各处理单元有各自独立的数据存储器而通过通信口相连的分布式并行系统,一般称之为松耦合式并行系统[3]。
共享总线系统使多个处理单元共同使用一套数据总线,比较典型的应用是基于大型工业标准,如VME、CPCI、PCIE标准等,这种结构的优点是简单,当处理器数目较少(一般少于6个)时,可以获得较高的并行处理性能,但当处理单元个数较多时,共享总线可能会造成频繁的总线等待甚至冲突,引起各处理单元等待总线令牌的时间大大增加,不利于并行处理效率的提高。
松耦合式并行系统由于不依赖特定的总线或者共享存储器,因而较为灵活,其各处理单元的连结方式很多,一般有线形、树形、星形、网孔形、超立方体结构等,各种连结方式有各自的特点,其应用场合也不一样,比较典型的应用有基于链路口(LINK)的多处理器并行系统、基于同步串口(SPORT)的多处理器并行系统、基于HPI/IDMA的多处理器并行系统、基于数据交换的多处理器并行系统等[4]。
2 多DSP+FPGA并行处理系统设计
2.1 系统原理框图
本设计以DSP和FPGA为核心处理单元,结合上述两种并行处理体系结构的特点,构建了高速实时并行处理系统,系统硬件组成原理框图如图1所示。
图1 系统组成原理框图
由图1可以看出,该并行处理系统由两个独立的并行处理通道构成,分别命名为A通道和B通道,两个通道对称分布,原理图完全一样,实现并行处理。
该并行处理系统在方案构建过程中,充分考虑DSP和FPGA在信号处理领域的特点,DSP处理灵活性强,FPGA规模大、处理并行度高,所以该系统综合了二者的优势,采用DSP+FPGA构成核心处理单元的工作模式,每个处理通道由两片DSP和一片FPGA组成,整个并行处理系统由四片DSP和两片FPGA组成,两个处理通道之间通过FPGA的高速串行总线接口RocketIO实现互连,实现高速数据交换,整个并行处理系统通过RocketIO接口、LVDS接口以及若干独立IO管脚实现与外部的互连。
2.2 核心处理器选型
2.2.1 DSP选型
本系统选择的DSP是TI公司的TMS320C6713B,它是一款性能非常优良的单核32位浮点DSP芯片,采用0.13 μm CMOS工艺,3.3 V的IO电压,1.2 V的内核电压,非常有利于芯片功耗的降低;它采用超长指令字(VLIW)结构的TMS320C67x DSP核,最高时钟频率可达300 MHz,专门的ALUs和浮点乘法器可提供高效率的浮点运算处理,每个时钟周期可以并行执行8条32位指令,每秒最大的处理能力为2 400 MIPS或者1 800 MFLOPS(单精度);增强型直接存储器访问(EDMA)控制器提供高效的数据传输能力,可控制16个独立通道完成不受CPU干预的数据传输;它采用两级缓冲(Cache)机制,第一级Cache中程序和数据空间各有4 KB,第二级Cache中提供总计256 KB的程序和数据空间;32 b的EMIF接口支持与SDRAM、SBSRAM、SRAM、FLASH等的无缝接口,片外最大可寻址空间达512 MB;其具有丰富的外设接口包括16 b HPI接口、MCASP接口、MCBSP接口、I2C接口、SPI接口等[5]。
2.2.2 FPGA选型
本系统选择的FPGA是Xilinx公司Virtex?5系列产品V5SX240T,Virtex?5系列FPGA是Xilinx公司于2009年新推出的高性能信号处理器,它采用65 nm Cooper CMOS工艺,内核电压仅为1.0 V,其中SXT系列FPGA由于其丰富的存储器和乘法器(DSP48E)资源而非常适用于高性能数字信号处理领域,V5SX240T是其中性能最强的一款,具有如下特点[6]:片内工作时钟可达500 MHz;37 440个Slices资源;516个36 Kb block RAM/FIFOs资源,可灵活配置为18 b、36 b、72 b宽度的RAM/FIFOs;1 056个高性能DSP48E乘法器资源:可实现25×18的复数乘法;24个高速串行总线接口RocketIO GTP:最高接口速率可达3.75 Gb/s;6个高性能时钟管理模块(CMT):每个CMT包含两个DCM和一个PLL;丰富的IO资源:为用户提供960个可灵活配置的通用IO管脚;丰富的外设资源:提供PCIE接口以及以太网接口。
2.3 并行处理通道设计
2.3.1 存储器容量扩展
在高速并行处理系统中,为了达到实时性要求,海量数据的吞吐是必不可少的,为了增强该并行处理系统的实时处理能力,对每个并行处理通道均进行了存储资源的扩展。
FPGA除了上电引导配置PROM外,还外接了2片16 B位宽的DDRII存储器MT47H64M16HR,两片存储器可独立使用,也可以拼合作为32 b宽度并行使用,总存储容量为2 Gb,接口工作时钟可达266 MHz,其总线带宽最高可达:533 MHz×32 B=16.65 Gb。另外,FPGA还外接了1片32 B位宽的同步静态存储器,存储容量为128 Mb。
DSP除了上电引导程序FLASH外,还外接了2片16 b位宽的SDRAM存储器MT48LC32M16A2T,两片存储器总存储容量为1 Gb,接口工作时钟可达133 MHz,其总线带宽最高可达:133 MHz×32 b=4.15 Gb。另外,为了增强两片DSP之间的数据交换能力,其间还设计了一片双端口存储器IDT70T3509M,容量为128 Mb,接口工作时钟可达133 MHz。
通过以上存储资源的扩展,极大缓解了海量数据处理过程中FPGA和DSP片内存储资源的压力,有效增强了该并行处理系统的实时处理能力。
2.3.2 DSP乒乓操作
根据本系统中DSP和FPGA器件的特点,在实际处理过程中,可以进行处理功能的划分,TMS320C6713B负责完成浮点运算处理,达到尽可能保留处理过程中数据精度的目的,V5SX240T负责完成定点运算处理,充分利用FPGA可重构的优势,提高运算效率。
从处理器综合性能来看,由于V5SX240T相比于TMS320C6713B的处理能力来说更为强大,为了不使TMS320C6713B的处理能力成为系统的瓶颈,可以通过扩展TMS320C6713B的处理能力来解决这一问题,本系统的每个处理通道中,均采用两片TMS320C6713B实现并行处理,实现了整个数据处理链路性能的均衡,最大限度发挥了系统并行处理能力。
在每个并行处理通道中,两片TMS320C6713B并行完成浮点运算处理,然后交替地向V5SX240T传送处理结果,V5SX240T根据收到的数据继续进行后续的处理运算。假设运算过程中两片TMS320C6713B的处理周期均为PRT,则V5SX240T的处理周期为TMS320C6713B的一半,即PRT1=PRT/2,详细的并行处理时序图如图2所示。
2.4 接口设计
2.4.1 RocketIO接口
RocketIO是Xilinx FPGA内嵌的可编程高速串行收发器,在使用时不占用FPGA其他逻辑与片上存储资源,在Virtex?5 SXT系列FPGA中称作GTP,其内建的CDR电路、8B/10B编解码电路以及CML信号模式使其线速率最高可达10 Gb/s以上。一个完整的GTP收发器主要包括PMA和PCS两个子层,每两个GTP共用一个PLL,组成一个GTP_Dual[7],其结构框图如图3所示。
图2 DSP和FPGA并行处理时序图
图3 GTP_DUAL Tile结构框图
RocketIO收发器具有如下特征:具有可配置终端、电压摆幅与耦合的电流模逻辑串行驱动或缓冲器;可编程发送预加重和接收均衡,以实现最优信号完整性;最多支持24个通道的绑定(多通道同步工作)应用,总线带宽可达90 Gb;传输速率在100~500 Mb/s区间时具有可选的5倍过采样功能;可选的嵌入式PCS功能,例如8 B/10 B编码、逗号对齐、通道绑定以及时钟校正;最小化的确定性数据通道延迟。
从应用上讲,RocketIO处于数据传输协议的物理层,用以实现最基本的数据通信环境。其主要功能可以概括为:将输入的并行数据经过编码,转化为高速的差分串行信号。目前已为RocketIO推出了多种协议标准,如Aurora、Serial RapidIO、PCIExpress等,其中Aurora是Xilinx公司为RocketIO开发的链路层协议[8],另外,用户也可根据应用需求自定义协议。
在本并行处理系统的物理连接方式上,A通道和B通道之间采用8组GTP互连,其总线带宽可达30 Gb,A通道和B通道分别通过8组GTP实现与外界的互联,设计过程中,采用专用接插件,其总线带宽同样可达30 Gb。在应用通信协议设计上,除了物理上RocketIO接口连接测试验证满足要求之外,还针对实际应用建立了自定义协议,提高了该并行系统接口传输的灵活性。
2.4.2 HPI接口
HPI接口[9]是TMS320C6000提供的一个16/32 b宽度的并行端口,主机(上位机)可以通过它直接访问CPU的存储空间,HPI与CPU存储空间的互联是通过DMA控制器实现的。
TMS320C6713B的HPI接口信号与其他功能模块信号是复用的,在设计过程中,通过对HPI_EN管脚进行上拉处理,使能HPI接口,该接口信号包括:数据信号HD[15:0]、中断信号HINT、控制信号HCS、HR/W、HCNTL等,主机按照如下时序完成对HPI的访问:初始化HPIC寄存器;初始化HPIA寄存器;从HPID寄存器读取/写入数据,由于HPI口数据宽度为16 b,因此对于一个32 b数据需要进行两次halfword的存取。
本并行处理系统设计过程中,HPI接口具有两种工作模式:HPI boot模式和HPI数据传输模式。由于HPI接口所有信号均接入FPGA(XC3S1400A)中,因此可以灵活配置HD[4:3]的上拉/下拉状态,当配置HD[4:3]=00时,即TMS320C6713B工作在HPI boot模式下,此时,外部将程序数据传输至XC3S1400A内部,然后由XC3S1400A产生HPI写时序,将程序数据写入TMS320C6713B片内程序存储区,最后发送HPI中断,实现DSP程序的bootload。当TMS320C6713B工作在HPI数据传输模式时,可以完全自主地产生HPI接口时序信号实现读写操作,通过FPGA产生HPI时序实现了对该HPI接口速率的灵活配置,为实际应用提供了方便。
2.4.3 LVDS接口
LVDS接口又称RS644总线接口[10],即低电压差分信号接口,这种技术的核心是采用极低的电压摆幅高速差动传输数据,具有低功耗、低误码率、低串扰和低辐射等特点,LVDS采用平衡电缆传输,速率可达几百Mbps,LVDS在对信号完整性、低抖动及共模特性要求较高的系统中得到了越来越广泛的应用。
本并行处理系统充分运用Xilinx公司FPGA在IO端口集成的LVDS收发器,即差分输入缓冲模块IBUFDS和差分输出缓冲模块OBUFDS,对FPGA的IO端口进行配置,将LVDS驱动器映射到IO 端口上。本系统中共计提供了22对LVDS信号,用户可根据实际需要进行灵活定义和配置。
2.4.4 其他接口信号
本并行处理系统的XC3S1400A还提供了若干独立IO接口信号,用户可以根据实际需要进行配置使用,例如可以用作硬件中断信号,或者是板间需要同步处理的脉冲信号等。
3 应用验证
由于本并行处理系统具有通用化、可扩展、可重构的特点,因此可根据不同的应用需求,通过增减并行处理通道来改变处理能力,达到适应不同算法需求的目的。下面以基于该并行处理平台构建的某算法评估系统来验证系统的实际处理能力,该评估系统原理框图如图4所示。
图4 某算法评估系统原理框图
在图4中,外部输入的四路模拟信号经过A/D采样之后,送入FPGA进行预处理,FPGA处理之后的数据按照处理节拍分时发送至A、B、C、D四个处理通道,实现四个处理通道并行运算,运算完成之后,四个处理通道将处理结果回传至预处理FPGA,进行最后的融合数据,整个处理过程中,DSP通过外部通信接口实现与外部的接口通信,并与预处理FPGA进行数据交互。
本算法评估系统采用多通道并行处理思路,实现算法的评估,根据实际不同算法不同的运算量需求,本系统可以灵活增减处理通道,达到系统性能的最优化。
4 结 论
本文在研究现代嵌入式系统两种典型的并行处理体系结构的基础上,设计并实现了一种基于多DSP+FPGA的高速并行处理系统架构,该系统兼顾DSP和FPGA的性能优势,采用二者协同处理,满足高速实时信号处理的应用需求,该并行处理系统采用通用化、标准化设计思路,具有集成度高、运算能力强、结构灵活、可扩展性好等特点,以此为基础构建的某算法评估系统,经过实际验证,处理性能良好,为信号处理领域大规模通用硬件电路设计提供了有力参考与借鉴。
参考文献
[1] 潘昉晟,赵峰.基于FPGA和多DSP的并行信号处理系统的实现[J].计算机工程,2006,32(23):247?249.
[2] 廖晓群,蔺丽华.DSP并行处理系统设计中的几个关键问题[J].西安科技学院学报,2001,21(3):227?230.
[3] 郭宇,葛临东.多DSP并行处理板设计及其在软件无线电中的应用[J].信息工程大学学报,2007,8(2):198?201.
[4] 杜金榜,钟小鹏.多DSP并行处理系统的设计与开发[J].计算机测量与控制,2006,14(5):658?661.
[5] Texas Instruments. TMS320C6713 Floating?point digital signal processor: complete datasheet [M]. USA: Texas Instruments, 2001.
[6] Xilinx. Application note: Virtex?5 platform FPGA handbook [M]. USA: Xilinx, 2009.
[7] 陈长林,邱兆坤.RocketIO及其在高速数据传输中的应用[J].技术纵横,2010(11):25?28.
[8] 武荣伟,苏涛. RocketIO在高速数据通信中的应用[J].通信技术,2010,43(11):9?11.
[9] 任丽香,马淑芬.TMS320C6000系列DSPs的原理与应用[M].北京:电子工业出版社,2000.
[10] 陈莹,高双成.基于FPGA的LVDS接口应用[J].电子科技,2012,25(1):8?12.