流水线与并行处理技术
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
流水线与并行处理
1. 概述
流水线技术导致了关键路径的缩短,从而可以提高时钟速度或采样速度,或者可以在同样速度下降低功耗。在并行处理中,多个输出在一个时钟周期内并行地计算。这样,有效采样速度提高到与并行级数相当的倍数。与流水线类似,并行处理也能够用来降低功耗。
考虑3阶有限冲激响应(FIR )数字滤波器:
y(n) = ax(n) + bx(n-1) + cx(n-2) (1-1)
其框图实现示意图如图1所示:
图1 一个3阶FIR 滤波器
关键路径(或者处理一个新样点所需要的最小时间)由1个乘法与2个加法器时间来限定。如果T M 是乘法所用的时间,T A 是加法操作需要的时间,T sample 是采样周期,则必须满足:
T sample ≥ T M + 2T A (1-2)
因而,采样频率(f sample )(也称为吞吐率或迭代速率),由下式给出:
f sample ≤ A M T T 21 (1-3)
流水线采用沿着数据通路引入流水线锁存器(本人理解是寄存器)的方法来减小有效关键路径(effective critical path )。并行处理提高采样频率是采用复制硬件的方法,以使几个输入能够并行的处理,而几个输出能够在同一时间产生出来。
2. FIR 数字滤波器的流水线
其流水线实现是通过引入两个附加锁存器而得到的,如图2所示:
图2 流水线FIR滤波器,其中垂直虚线代表一个前馈割集关键路径现在由T M + 2T A减小为T M + T A。在这种安排下,当左边的加法器启动当前迭代计算的同时,右边的加法器正在完成前次迭代结果的计算。
必须注意到,在一个M级流水线系统中,从输入到输出的任一路径上的延时原件数目是(M-1),它要大于在原始时序电路中同一路径上的延时元件数。虽然流水线技术减小了关键路径,但是它付出了增加迟滞(latency)的代价。迟滞实质上是流水线系统第一个输出数据的时间与原来时序系统第一个输出数据时间相比的滞后。流水线技术缺点:增加了锁存器数目和增加了系统的迟滞。
下面要点需要注意:
(1)一个架构的速度(或时钟周期)由任意两个锁存器间、或一个输入与一个锁存器间、或者一个锁存器与一个输出间、或输入与输出间路径中最长的路径限定。
(2)这个最长的路径或“关键路径”可以通过在架构中适当插入流水线锁存器来减小。
(3)流水线锁存器只能按照穿过任一图的“前馈割集(feed-forward cutset)”的方式插入。
割集:割集是一个图的边的集合,如果从图中移去这些边,图就成为不相连的了。
前馈割集:如果数据在割集的所有边上都沿前进的方向移动,这个割集就称为前馈割集。
3.并行技术
注意到并行处理与流水线技术互为对偶的这一特点是十分有趣,若一个计算能够排成流水线,它也能并行的处理。两种技术都发掘了计算中可供利用的并发性,只是方式不同。当一组互不相关的计算能够在一个流水线系统中按交替方式计算时,则它们也能够利用重复的硬件按并行处理的模式计算。
3阶FIR滤波器系统是一个单输入单输出(SISO)系统,可描述如下:
y(n) = ax(n) + bx(n-1) + cx(n-2) (3-1)
为了获得一个并行处理结构,SISO系统必须转换为MISO(多输入多输出)系统。例如,下列方程组描述一个每个时钟周期由3个输入的并行系统(即并行处理的级数L=3)。
此处k表示时钟周期。可以看出,在第k个时钟周期,有三个输入x(3k), x(3k+1), x(3k+2)被处理,同时输出中产生3个样点。并行处理系统也称为块处理系统,而每个时钟周期内处理的输入个数被称为块尺寸。由于MISO的结构,在任意一条线处插入一个锁存器会产生一个有效延时,等于L个对应于采样率的时钟周期。每个延时原件称为一个块延时(也称为L级减慢,L-slow)。例如,把信号x(3k)延迟一个时钟周期将导致信号x(3k-3)而非x(3k-1),因为x(3k-1)已经是另一条输入线的输入。3级并行FIR滤波器的框图架构如图3所示:
图3 一个块处理的例子
其细节图如图4所示:
图4 块尺寸为3的3阶FIR滤波器的并行结构处理注意,块或并行处理系统的关键路径保持不变,而且时钟周期(T clk)必须满足:
T clk≥ T M + 2T A (3-2)
但是,由于3个样点是在同一个时钟周期内而不是三个时钟周期处理的,因此迭代周期由下式确定:
T
iter = T
sample
=
L
1
T
clk
≥
3
1
(T
M
+ 2T
A
) (3-3)
重要的是要理解在并行系统中T clk
≠T sample,而在流水线系统中T clk=T sample,下图给出了一个完整的并行处理系统,它包含串-并转换器和并-串转换器:
图5 块尺寸为4的完全并行处理系统
其细节如下图所示:
现在人们会问,当能够用流水线达到同样好的效果时,为什么还要并行处理
呢?为什么要复制和使用这么多硬件呢?回答是,流水线存在一个基本的限制,就是输入/输出(I/O)的瓶颈问题。
考虑图6的芯片组:
图6 一个芯片组图
例如,若假定输出管腿、输入管腿和两个芯片之间连线的延时总和为8ns,必须大于或等于8ns。若关键路径的计算时间小于8ns,则I/O延时的那么T
clk
限制将占主导地位,该系统为通信受限的系统。这实质上意味着,流水线仅在关键路径计算时间大于通信或I/O延时边界时才可以使用,一旦达到此边界后,流水线就不能进一步提高速度了。这时,流水线必须结合并行处理才能进一步提高该架构的速度。作为一个例子,考虑图7的并行滤波器:
图7 块尺寸为3的3阶FIR滤波器的并行处理架构