简介
流水线,亦称管线,是现代计算机处理器中必不可少的部分,是指将计算机指令处理过程拆分为多个步骤,并通过多个硬件处理单元并行执行来加快指令执行速度。其具体执行过程类似工厂中的流水线,并因此得名。流水线技术是一种非常经济,对提高处理机的运算速度非常有效的技术。采用流水线技术只需要增加少量硬件就能够把处理机的运算速度提高几倍,它是许多处理机中普遍采用的一种并行处理技术。流水线功能繁杂,种类也非常多;如果按照处理级别来分类,流水线可以有操作部件级、指令级和处理机级。流水线运算属于操作部件级。流水线运算是指运算器中的操作部件,如浮点加法器、浮点乘法器等可以采用流水线。
分类按完成的功能分类单功能流水线:只完成一种如乘法或浮点运算等,多用于数字信号处理器(DSP),各处理器可并行完成各自的功能,加快整机处理速度。
多功能流水线:在不同情况下可完成不同功能
按连接的方式分类静态流水线(Static Pipelining)是指在同一段时间内,多功能流水线中的各个功能段只能按照一种固定的方式连接,实现一种固定的功能。只有当按照这种连接方式工作的所有任务都流出流水线之后,多功能流水线才能重新进行连接,以实现其它功能。
动态流水线(Dynamic Pipelining)是指在同一段时间内,多功能流水线中的各段可以按照不同的方式连接,同时执行多种功能。当然,同时实现多种连接发生是有条件的,即流水线中的各个功能部件之间不能发生冲突。
按处理的数据类型分类标量流水线:一般数据
向量流水线:矢量数据。X+Y=Z每一个代表一维数据。
流水线结构上分类线性流水线:指各功能模块顺序串行连接,无反馈回路,如前面介绍的。
非线性流水线:带有反馈回路的流水线。
性能指标衡量一种流水运算线处理方式的性能高低的书面数据主要由吞吐率、效率和加速比这三个参数来决定。
吞吐率指的是计算机中的流水线在特定的时间内可以处理的任务或输出数据的结果的数量。流水线的吞吐率可以进一步分为最大吞吐率和实际吞吐率。它们主要和流水段的处理时间、缓存寄存器的延迟时间有关,流水段的处理时间越长,缓存寄存器的延迟时间越大,那么,这条流水线的吞吐量就越小。因为,在线性流水线中,最大吞吐率Tpmax=流水线时钟周期△T/1=max(T1,...Ti,..Tm)+T1/1,而其中,m是流水线的段数,i是特定过程段执行时间。如果,一条流水线的段数越多,过程执行时间越长,那么,这条流水线的理论吞吐率就越小。
由此,要对于流水线的瓶颈部分的处理主要在于减少流水段的处理时间。实现的方法一般有两种:
1、把瓶颈部分的流水线分拆,以便任务可以充分流水处理。流水段的处理时间过长,一般是由于任务堵塞造成的,而任务的堵塞会导致流水线不能在同一个时钟周期内启动另一个操作,可以把流水段划分,在各小流水段中间设置缓存寄存器,缓冲上一个流水段的任务,使流水线充分流水。假如X流水段的处理时间为3T,可以把X流水段再细分成3小段,这样,每小段的功能相同,但是处理时间已经变成3T/3=T了。
2、在瓶颈部分设置多条相同流水段,并行处理。对付流水段的处理时间过长,还有另外一种方法,那就是把瓶颈流水段用多个相同的并联流水段代替,在前面设一个分派单元来对各条流水段的任务进行分派。仍然假设瓶颈流水段的处理时间是△3T,那么经过3条并联流水段的同时处理,实际需要的时间只是△T。这样,就达到了缩短流水段处理时间,但这种方法比较少以采用,因为要3段相同的流水段并联,成本较高,而且,分派单元会比较麻烦处理。
加速比是指某一流水线如果采用串行模式之后所用的时间T0和采用流水线模式后所用时间T的比值,数值越大,说明这条流水线的工作安排方式越好。
效率使用效率:指流水线中,各个部件的利用率。由于流水线在开始工作时存在建立时间;在结束时存在排空时间,各个部件不可能一直在工作,总有某个部件在某一个时间处于闲置状态。用处于工作状态的部件和总部件的比值来说明这条流水线的工作效率。2
影响因素流水线处理方式是一种时间重叠并行处理的处理技术,具体地说,就是流水线可以在同一个时间启动2个或以上的操作,借此来提高性能。为了实现这一点,流水线必须要时时保存畅通,让任务充分流水,但在实际中,会出现2种情况使流水线停顿下来或不能启动:
1、多个任务在同一时间周期内争用同一个流水段。
2、数据依赖。比如,A运算必须得到B运算的结果,但是,B运算还没有开始,A运算动作就必须等待,直到B运算完成,两次运算不能同时执行。
解决方案:
第一种情况,增加运算部件的数量来使他们不必争用同一个部件;
第二种情况,用指令调度的方法重新安排指令或运算的顺序。3
数据库中的流水线运算流水线运算流水线计算方法是指将表达式中多个关系运算组合成一个操作流水线来实现,即将一个运算的结果作为输入直接传送到下一个运算。例如:
Πcustomer-name(σbalance