数字信号处理方法与实现
贺知明 副教授
电子科技大学
四川 ?成都
并行 DSP技术
? 实时信号处理
? 并行处理技术的必要性、现状及发展
? 并行处理技术的分类
? 加速比与并行效率
? 并行处理模块介绍
? 并行算法研究
实时信号处理
? 实时信号处理技术的基本特征,就是对处
理完成的时间作出限制。
? 最大处理时间 是由输入样本间隔(数据吞
吐率、采样率表征)、可以使用的缓冲区
(存储能力)或是否要求即时的结果(时
域或频域)所决定。
实时处理概念
定义一个有 I个离散时间信号的集合 xi,
0≤i≤I-1。通常情况下,数字信号处理的目
的是将输入信号 xi(n) 变换或映射为输出信
号 yj(m), 0≤j≤J-1,yj具有我们更需要的
形式。这一映射过程可图示为
实时处理概念
DSP
yj(m)=Tj[xi(n)]
x0(n)
x1(n)
xi(n)
y0(m)
yj(m)
将信号 xi(n)映射到
yj(m)的变换
实时处理概念
变换 Tj 的下标 j 决定了所选择的输出信
号 yj 。一般情况下,每个输出样本取决于输
入信号 xi (n) 中的每个样本,其中 0≤i≤I-1,
-∞≤n ≤∞。实际应用中,yj (m)仅仅取决
于有限个 xi (n),如图
实时处理概念
输入与输出的时序关系( Tc < LTx)
Ty
y(m)
T(x(n),
n=L,L+1,……,2L-l)
x(n)
T(x(n),
n=0,1,……,L-l)
n
m
Tc Tc Tc
y(0) y(1) y(2)
实时处理概念
可以看出,输出 y (0) 取决于 L 个输入样值
x (n),n=0,1,…… L-1,其范围从 t = 0 到
t = (L-1 )Tx 。这样的输入信号集,称做长
度为 L 的帧。 Tx是输入信号的间隔,Ty是
输出信号的周期,且 Ty=LTx 。 Tc是将一帧
内的所有数据进行 Tj 变换需要的计算时间。
有两种情况,
情况 1,
? 如果 Tc 小于帧的持续时间,也就是 Tc < LTx,
则对输入 x(0),x(1)…… x(L-1)的处理,就
可以在影响下一个输出 y(1) 的最后一个输
入样值到达之前完成。因此,第二帧的运
算 T [x(L),x(L+1)…… x(2L-1)] 可以在采样
样本 x(2L-1) 到达的时候立即开始。此时,
输出就总能跟上输入 。
情况 2,
? 如果 Tc > LTx,即对输入信号 x(0),
x(1)…… x(L-1)进行运算的时间大于帧长
LTx 。前一帧的计算,要在下一帧的最后一
个输入样值到达以后才能完成,输出会越
来越落后于输入 (如下图)。这样的系统
不能完整地实时处理全过程,因为来不及
处理的输入信号会不断地积压。
输入与输出的时序关系( Tc > LTx)
y(m)
T(x(n),
n=L,L+1,……,2L-l)
x(n)
T(x(n),
n=0,1,……,L-l)
n
Tc Tc
y(0) y(1)
实时处理概念
对于实时处理来说,处理时间的门限 Tc = LTx
是最重要的参数。满足 Tc < LTx的系统,可以称
为 实时 运行的;而 Tc > LTx 的系统,则称为 非实
时 的。
由此,可给出 实时的定义 如下,如果在使用
变换 Tj计算得到每个输出样本 yj (m) 的时候,完
成计算量所需要的时间不超过对输出 yj (m) 有影
响的所有 xi (n) 的持续时间,则该处理就称为是
实时的。
实时处理概念
简而言之,是否能够实时处理取决于,
? 输入信号采样的间隔时间(采样率)
? 变换 Tj 的复杂度(运算量)
? 完成 Tj [xi (n)] 的处理速度
并行处理技术的必要性、现状及发展
? 并行处理技术的必要性
? 并行处理技术的现状
? 并行处理技术的发展
并行处理技术的必要性
尽管超大规模集成电路 ( VLSI) 技术已
经产生了峰值运算能力达 10亿次 /秒以上的
DSP,但相对于越来越高要求的几百亿、上
千亿次运算来说仍显不足。而且,VLSI 技
术的发展已经受到其开关速度极限的限制,
进一步提高 DSP 主频的难度及相应的成本
越来越大,单处理器性能的提高空间受到
限制 。为此,DSP 的发展中融入了并行处
理技术 。
并行处理技术的现状
? 片内并行技术
? 片间并行技术
片内并行技术
? TI 公司 TMS320C6X,进一步发展了超长指令字
( VLIW) 和多流水线技术,在每条长达 256bit
( 8× 32bit) 的指令字中规定了多条流水线、多
个处理单元的并行操作,分别控制 8个运算单元
(其中 6个是浮点型)的运算操作;
? ADI 公司的 ADSP-2116X SHARC DSP 属于一种单
指令多数据流 ( SIMD) 的并行处理结构,内部由
两个相同的处理单元组成。
ADSP21160 SHARC DSP 的高并行性
ADSP21160 SHARC DSP 的高并行
性由以下两个结构特点决定,
? 在一个周期内可完成多条指令
? 单指令多数据流 ( SIMD) 机制
并行结构特点 1
ADSP21160 SHARC DSP 最多可以在一
个指令周期内完成一个乘法、一个双加
减和两个读 /写操作。
并行结构特点 2
在其内核中,有两套完全独立的运算单元 ( X、
Y),每个运算单元包括,ALU、乘法器、
SHIFTER,DATA REGISTER FILE 及一些辅助
设备。当两个计算单元执行同一条指令时,它
们的操作数及使用的寄存器是不同的,这就是
所谓的单指令多数据流 ( SIMD) 。
同时,ADSP21160 SHARC DSP 采用 SIMD 与
单指令单数据流( SISD)可选机制,由
MODE1 寄存器的 PEYEN 位选择。
ADSP21160 SHARC DSP 的 SIMD 结构
应用实例
以频域数字脉压的核心算法 —— FFT 算
法为例,对 ADSP21160 SHARC DSP 的并行
结构特点及处理能力进行讨论。
应用实例
由频域脉压理论可知,频域数字脉压过程是由
FFT,加权(复数乘),IFFT,求模组成,其主要
开销在 FFT 和 IFFT 。因此,脉压算法的核心程序研
究就集中在对 FFT 和 IFFT 的研究上。而 IFFT 算法可
以由 FFT 算法实现,只需要对序列做简单的处理,
即,IFFT (x) = {FFT (x*)}*/N。因此做 FFT 和 IFFT
就相当于做两次 FFT 。
基 -2、基 -4 FFT 算法有成熟的蝶形运算理论。这
里不对它们进行详细推导,只研究基于 ADSP21160
SHARC DSP 芯片的并行算法实现和优化。
应用实例
由于蝶形单元构成了最基本、最内层的循环
体,对它最大程度的优化和提高并行性是在软
件上提高处理速度的根本方法。可基于以下三
点因素考虑其优化,
? 合理利用 ADSP21160 SHARC DSP 芯片 SIMD 的
特性,是提高系统处理能力的有效途径。
? 蝶形系数在算法中相乘的次序对算法核心模块
的优化起了关键性作用。
? 充分利用 ADSP21160 SHARC DSP 的指令特点,
即最多可以在一个指令周期内实现数据单乘 /双
加减 /双存取。
应用实例
实现 复数基 -2 FFT 算法蝶形单元包括:
4个实数加,4个实数减和 8个实数乘,其中
包含 3个双加减,根据 ADSP21160 SHARC
DSP 的指令特点:最多可以在一个指令周
期实现乘 /双加减 /双存取,该蝶形单元最终
可优化至 8个指令周期来完成。
应用实例
实现 复数基 -4 FFT 算法蝶形单元则复杂
的多,它包括,11个实数加,11个实数减和
12个实数乘,其中包含 8个双加减,该蝶形
单元最终可优化至 12个指令周期来完成。
应用实例
由于 ADSP21160 SHARC DSP 的运算都
依赖寄存器 R0~R15,对它们的合理使用
是设计与优化的重要方面。由蝶形单元循
环体向外,第二层循环体由组 ( GROUP)
构成,由于每一组具有相同的结构和旋转
因子分布,即具有天然的并行结构,因此
非常有利于 SIMD 的使用。只需要将旋转
因子的顺序生成为适合使用 SIMD 的顺序
即可。
片间并行技术
片间并行(或称片外并行)则是 DSP 并行
技术发展的主流方向,因为这种并行可以
相对不受限制地扩大并行规模。以 ADSP-
21160 SHARC DSP 为代表的并行 DSP 提供
了 6个高速链路口( Link Ports),易于多片
组成高效的并行处理系统。
并行处理技术的分类
? 按数据流和指令特征分类
? 按处理单元间的连接方式分类
? 按并行方式分类
? 按并行任务大小分类
? 按任务并行化的层次分类
按数据流和指令特征分类
? SIMD(单指令多数据流)
? MISD (多指令单数据流)
? MIMD (多指令多数据流)
按处理单元间的连接方式分类
? 松耦合的分布式并行处理机
线型、星型、树型、网型、超立方体结构等
? 紧耦合的共享总线并行处理机
按并行方式分类
? 流水线处理机
? 阵列处理机
脉动阵、波前阵等
按并行任务大小分类
? 粗粒度并行
? 细粒度并行
按任务并行化的层次分类
? 指令内并行(片内范畴,如 VLIW)
? 指令间并行(对应前述的细粒度并行)
? 任务级并行(对应前述的粗粒度并行)
加速比与并行效率
加速比与并行效率 是一个并行系统的重
要的性能指标,它们取决于组成并行系统
的三个基本要素,并行处理单元 (即 DSP
芯片本身),并行系统网络结构, 任务分
解方法和并行算法,三者紧密联系,互相
依赖。
并行处理单元
并行处理单元是并行系统的核心,高性
能的处理单元可以提高系统性能、减少系
统体积和功耗、降低结构复杂性等,高效
的并行系统多采用高性能的通用并行 DSP。
并行系统网络结构
并行网络为各处理单元提供数据交换
的通道,不同的处理系统规模,不同的
并行网络结构可以使系统达到不同的加
速比与并行效率。
分布式并行网络结构
分布式并行网络结构的每一个处理单元
都有自己可以直接访问的内存(称为局部
存储器),更适用于大规模并行系统。
共享总线式并行网络结构
共享总线式并行网络结构有一个各处理
单元均能访问的系统内存,各处理单元之
间通过修改共享内存中的共享变量交换信
息,由于当多处理单元需要同时访问共享
内存时,会产生内存争用现象而严重影响
效率,故仅在小规模的并行系统中得到较
好的应用。
分布式共享存储并行网络结构
分布式共享存储并行网络结构综合上述两种网
络结构特点,每个处理单元都有自己可直接访问
的局部内存,这些局部内存允许别的处理单元访
问,由硬件支持实现了单一的地址空间,同时,
多处理机亦可通过直接访问公用的存储单元隐含
地实现数据通信(即共享方式)。
这种 物理上的分布式存储, 逻辑上的共享内存
可保留分布式结构可扩展性好的优点,同时还具
备了共享总线结构编程方便、数据传输简单等特
点,是当今并行处理技术发展的重要方向。
任务分解方法和并行算法
任务分配和并行算法的好坏直接影响并行系统的
性能。并行算法的目的是尽可能减少时间复杂性,
即尽量使每个时刻可独立执行的计算任务增加,使
整个算法的计算步数尽量减少,或者说,通过增加
每个步骤的算法复杂性来减少整体的时间复杂性,
适当增加空间复杂性来减少时间复杂性 。
由于通用 DSP 的使用,系统设计的重点已转移
到软件编程上。对于并行处理系统而言,并行算法
的研究有利于提高系统的并行效率,从而设计出高
性能的并行系统。
加速比的定义
可定义 P个处理器的加速比为
其中,T1为单片处理器处理所用时间,
TPar 为 P个处理器处理同一任务所用时间。
P a r
P T
TS 1?
加速比的定义
将一个处理任务分成只能串行执行的部分和可
由 P个同样的处理单元并行执行的部分,假设只能
串行执行的运算量所占总运算量的百分比为 s,其
余的运算量是可以由 P个处理器并行完成的,所占
百分比为 1- s,如果忽略通信和同步等由并行引
起的开销,加速比应为
sP s
S P
??
? 1 1 s1≤
上式通常称为 Amdahl 定律,它给出了 Sp 的上限值。
并行效率的定义
并行效率是并行系统的另一个重要指标,它定
义为
( 0 <EP < 1)
可以看出,并行效率与加速比是密切相关的,
加速比越接近于 P,则并行效率越接近于 1。
影响系统并行效率的因素是多方面的,一个处
理任务不可能所有步骤均可完全并行,处理器之
间的通信与同步都不可避免时间开销,并且任务
分配的不均衡等都会导致系统并行效率的降低。
P
SE P
P ?
并行处理模块介绍
基于通用芯片 ADSP21160 SHARC DSP,
BittWare公司开发了多种不同规模的并行处
理模块。这里着重介绍 4片 ADSP21160
SHARC DSP 芯片构成的基于 PCI 总线的并行
处理单元 HHPC( Hammer-head PCI )。
HHPC并行处理模块的结构框图
HHPC并行处理模块的结构特点( 1)
? 四片 80MHz ADSP21160M 构成并行处理系统;
? 64bit,66MHz PCI 接口,可以 PC 机作为主机;
? 最大可配置 512M SDRAM 共享外部存贮器;
? 两个 PMC 接口,其中一个具有扩展的 PMC+,支
持 BittWare公司的 PMC+ I/O 模块;
? 四个 80MB/s 高速链路口( Link Ports);
HHPC并行处理模块的结构特点( 2)
? 四个的外部串口( RS-232),一条外部串行
总线;
? BittWare 公司开发的 SHARCFIN ASIC 芯片,
集成了丰富的控制逻辑,提供了 4片
ADSP21160 SHARC DSP 面向 PCI 总线、
SDRAM,UART、串口、闪存( Flash)以及
一条通用扩展总线的接口,同时,它还提供
一套 DMA 功能和中断选择以支持最小处理器
耗时的高速实时数据传输。
? 2MB Flash RAM,具有脱离主机独立工作的
能力。
HHPC通用并行处理板的实物照片
小结
可以看出,HHPC实际上就是一个 分布式
共享存储多处理机,即系统中的每一个处理
器都有自己可直接访问的局部内存,这些片
内存储器也允许别的处理器通过片间总线或
高速链路接口( Link Ports)来访问;另外,
多处理机还共享公用的存储单元。
小结
具体地,4片 ADSP21160 SHARC DSP 均
可以通过共享总线访问其它处理器中的 IOP
寄存器和片内存储器。在每片 ADSP21160
SHARC DSP 的地址空间中,为各片处理器
的内存开辟了统一的所谓 多处理器内存映
射空间 ( MMS,Multiprocessor Memory
Space),以及一个公共区域,称之为 广播
空间 ( Broadcast Space),对广播空间进
行写入操作,将对所有 DSP的相应片内地址
写入同样的内容。
小结
一般情况下,片内存储器的访问速度是
很快的,而片间存储器及共享存储器的访
问速度,由于通信接口的限制,通常会较
低。为了解决这一问题,一方面,可以借
助了 ADSP21160 SHARC DSP 芯片特有的
80MB/s 高速链路接口,另一方面,通过并
行算法设计和软件编程,尽量使用片内存
储器,而减少非本地存储单元的访问 。此
外,系统还提供了丰富的通信端口,从而
可以使数据传输变得极为方便和多样化。
小结
由于该系统采用具有强大的 DSP 处理功
能的 ADSP21160 SHARC DSP,特别是其特
有的支持多处理器的功能,使整个系统的
运算速度和并行效率能够充分发挥出来,
并且系统还提供了大规模的存储空间和方
便的调试环境,完全能够满足实际应用的
需要。
自行研制的基于 4片 ADSP21160的并行处理板
并行算法研究
由于通用 DSP 的使用,系统设计的重
点已转移到软件编程上。对于并行处理
系统而言,并行算法的研究有利于提高
系统的并行效率,从而设计出高性能的
并行处理系统。
下面以一个频域数字脉冲压缩的具体
实例说明,如何在 HHPC 硬件平台上,通
过不同并行算法的运用,来最大程度地
提高系统的处理性能。
并行算法分析
在频域数字脉压过程中,核心是 FFT 和
IFFT 并行算法的实现。为减小编程的复杂
性,FFT 采用基 -2频域抽取法,即采样数据
正序输入,逆序输出;匹配滤波器和加权
系数可事先算好保存在系统存储器中;
IFFT 采用基 -2时域抽取法,把加权后的逆
序数据直接输入,输出正序数据,再经过
求模后输出。这样可以最大程度地减少数
据读取、转换和存储的时间。
算法 1
由 4片 ADSP-21160 SHARC DSP 对全程
回波数据并行处理。
1 2 3
基 -2 FFT频域抽取并行算法分解
可以看出,用 4片 DSP 共同完成一个 FFT
运算时,需要把所有数据读入到每片 DSP 的
内部存储器中,而且在蝶形运算的前两步,
必须进行 数据交换,从第三步开始,每片
DSP 独立进行运算。与 FFT 运算相反,在
IFFT 中,仅最后两步的蝶形运算各 DSP 之间
需要数据交换。
当处理数据长度等于或接近 2的整数次幂
时,对全程数据进行并行处理的效率比较
高,主要的时间开销是每个 DSP 都必须把
全程数据读入本地存储器, 以及进行 FFT 和
IFFT 时各个 DSP 之间需要数据传输 ;当数
据长度与 2的整数次幂相差较大时,需要大
量添零,这会导致并行效率的急剧下降。
算法 2
为避免因添零而大量增加数据冗余,对
回波数据可采用每段 L点、重叠 M 点的分段
脉压( 分段卷积 )算法。
对每段数据的处理选用算法一,即用 4片
DSP并行处理,完成 L点复数的脉压运算。
各段数据的处理顺序进行,每段处理过的
数据去掉前面的 M个点后进行合成,得到全
程脉压输出。
此种方案适合于处理任意长度的数据,避
免了因大量添零而增加额外的运算量。重叠数
据长度必须满足 M >fs × τ,数据分段长度 L
可根据 M 来选定,以达到最大的并行效率。
影响并行效率的主要原因是数据段之间的
重叠,以及各个 DSP 之间的数据传输。当数据
长度接近 2的整数次幂时,并行效率要比算法
一低;当数据长度与 2的整数次幂相差较大时,
并行效率要比算法一高。
算法 3
采用与算法二相同的分段处理方法,
但每片 DSP 单独处理 L点数据的脉压,
4片 ADSP21160 SHARC DSP 采用流水
方式工作。其 片间流水 工作时序如下
图所示。
其中,Tr 为单片 DSP 读取 L-M点数据的时间,Tp
为单片 DSP 进行 L点数据脉压处理的时间。与算法
二类似,算法三也适合处理长度与 2 的整数次幂
相差较大的数据。 不同之处是在做 FFT 和 IFFT 时,
各个 DSP 只读取需要处理的数据段,而不需要读
取全部数据,这样从共享存储器中读取到各片内
存储器的时间减少 1/4,同时各 DSP 之间不需要进
行数据传输,因而可以进一步提高并行效率,并
可降低程序复杂度 。
算法 4
? 片间流水和片间并行相结合 。如果全程数据
N 满足如下关系
则前面 4× M1段数据采用片间流水方法(算
法三)处理,剩余的 M2段数据则采用片间
并行的方法(算法一、二)处理。这种流水
与并行相结合的算法,能够最大程度地提高
系统的并行效率。其工作时序如图示。
214 MMML N ????
11 ?M 40 2 ?? M
片间流水、片间并行相结合工作时序图
其中,Tp4 为四片 DSP 并行处理剩余点数据的时
间。
小结
在实际应用过程中,应根据需要,针对
不同任务的参数要求,如处理的数据量、
实时处理时间等,结合硬件平台结构,来
选择并行效率最高的算法。例如,对于不
同的雷达脉冲宽度,可能需要选择不同的 M
值和 L值,此时不同的并行算法其对应的并
行效率也不同。
实例分析
在某雷达脉冲压缩处理系统中,信号带宽
B=5MHz,采用 I,Q 两通道模式,采样率
fs=6.6MHz, 最大脉冲宽度 τmax = 42μs,对
应 脉冲重复周期 PRT= 3.4ms,则 采样数据长
度为 PRT× fs=22K 点。因此要对回波信号进
行实时脉压处理,就 必须确保 22K点数据脉压
处理时间小于 3.4ms。由于要完成 22K点的全
程脉压处理,必须最少进行 32K( 要求 2的幂 )
点的频域处理,要作大量的填零操作,运算冗
余太大。因此,不能采用算法一,而只能通过
重叠滑窗(分段脉压)的方法分段进行。
实例分析
具体实现时,在 DSP 系统处理能力许可
的情况下,为了简化控制,可选择最大雷
达脉冲宽度与系统采样率的乘积作为所需
的重叠数据长度,即 M =τ max× fs≈280。
数据分段长度 L 分别取 1024和 2048,
重叠数据长度 M =280时,HHPC 并行模块
作频域数字脉压处理的时间及并行效率的
比较如下表所示。
不同算法脉压处理时间和并行效率比较
L
算法一 算法二 算法三 算法四
T(ms) Eff T(ms) Eff T(ms) Eff T(ms) Eff
1024 — — 4.22 47% 2.85 79% 3.17 66%
2048 — — 3.94 51% 3.61 56% 3.02 69%
可以看出,在上述约束条件下,只有采用算法三
( L=1024) 和算法四时,能够满足脉压系统实时处理
的要求 ( T<3.4ms) 。此时,采用算法三 ( L=1024)
的并行效率最高,接近 80%。 此外,如果采用算法一
进行全程脉压时,处理时间 T=4ms>3.4ms,亦不能满
足实时处理要求。
结论
综上所述,根据以上分析,结合实际情
况,在频域数字脉压系统方案确定时,拟
采取算法三的分段重叠处理方法,即每片
ADSP21160 SHARC DSP 单独处理 1024点
数据的脉压,4片流水方式工作,并取 280
点的固定重叠。
基于 TigerSHARC DSP
的最新并行处理模块
基于 TigerSHARC DSP 的并行处理模块
采用了与 HHPC 模块基本一致的结构,只是
由于核心芯片性能的提升,使整个并行处
理模块的处理能力有了更大提高。在未来
更高要求的雷达实时信号处理系统的设计
中,可以考虑采用这里介绍的 TigerSHARC
DSP 搭建更高处理性能的通用并行平台。
TSPC模块的结构框图