体系结构课件chapter52章节
1,§5.2 流水方式,基本概念 流水线处理机的主要性能 流水机器的相关处理和控制机构,2,并行处理机的发展之一:流水线处理机,空间并行性 设置多个独立的操作部件 多操作部件处理机 超标量处理机 时间并行性 采用流水线技术。 不增加或只增加少量硬件就能使运算速度提高几倍 流水线处理机 超流水线处理机,3,§5.2 .1基本概念,流水是重叠的延伸。 一次重叠:只是把一条指令的解释分解为两个子过程; 流水? 分解为更多的子过程。 时空图表示。,流水线的表示方法,连接图 时空图 预约表,5,6,说明,流水线的每一个阶段称为流水步、流水步骤、流水段、流水线阶段、流水功能段、功能段、流水级、流水节拍等。 在每一个流水段的末尾或开头必须设置一个寄存器,称为流水寄存器、流水锁存器等。会增加指令的执行时间。 为了简化,在一般流水线中不画出流水锁存器 锁存器:平滑不同子部件之间的执行时间差。,7,说明,流水线经过装入、充满、排空三个阶段 流水的最大吞吐率:当流水线正常满负荷流动时的吞吐率。 吞吐率:单位时间内机器所能处理的指令条数 或机器所能输出的结果数。 流水的最大吞吐率取决于子过程所经过的时间t,8,一个浮点加法器流水线的时空图,由求阶差、对阶、尾数加和规格化4个流水段组成,9,流水线的特点,只有连续提供同类任务才能充分发挥流水线的效率 对于指令流水线:要尽量减少因条件分支造成的“断流” 对于操作部件:主要通过编译技术,尽量提供连续的同类操作 在流水线的每一个流水线段中都要设置一个流水锁存器 时间开销:流水线的执行时间加长 是流水线中需要增加的主要硬件之一 各流水段的时间应尽量相等 流水线处理机的基本时钟周期等于时间最长的流水段的时间长度 流水线需要有装入时间、充满时间和排空时间 在理想情况下,当流水线充满后,每隔t时间将会有一个结果流出流水线。,10,2 流水线的分类,从不同角度,有不同的分类 依据向下扩展和向上扩展思路,可分类出在计算机系统不同等级上使用的流水线 向下扩展:子过程细分 向上扩展:多个处理机之间进行流水,11,按流水处理的级别 部件级流水(操作流水线),构成部件内的各个子部件之间的流水。如浮点加法器流水线,12,处理机级流水,构成处理机的各个部件之间的流水。 指令流水线 (Instruction Pipelining) 例如:在采用先行控制器的处理机中,各功能部件之间的流水线,13,系统级流水:构成计算机系统的多个处理机之间的流水。宏流水线 (Macro Pipelining) 每个处理机对同一个数据流专门完成其中的一个任务。,14,按具有的功能多少分类: 单功能流水线:只能完成一种固定功能的流水线 Cray-1计算机中有12条; YH-1计算机有18条; Pentium有一条5段的定点和一条8段的浮点流水线; Pentium有三条指令流水线,其中两条定点指令流水线,一条浮点指令流水线。 多功能流水线:流水线的各段通过不同连接实现不同功能 Texas公司的ASC计算机中的8段流水线,能够实现:定点加减法、定点乘法、浮点加法、浮点乘法、逻辑运算、移位操作、数据转换、向量运算等。,15,16,按多功能流水线的各段能否同时用于多种不同功能联接流水分类: 静态流水线:同一段时间内,多功能流水线中的各个功能段只能按照一种固定的方式连接,实现一种固定的功能。 只有连续出现同一种运算时,流水线的效率才能得到充分的发挥。 动态流水线:在同一段时间内,多功能流水线中的各段可以按照不同的方式连接,同时执行多种功能。,17,18,19,按机器所具有的数据表示分类: 标量流水处理机:没有向量数据,只能用标量循环方式来对向量、数组进行处理。 Amdahl 470V/6 IBM 360/91 向量流水处理机:设置有向量指令和向量运算硬件,能对向量、数组中的各个元素流水地处理。 CRAY-1,20,按流水线中各功能段之间是否有反馈回路分类: 线性流水线(Linear Pipelining):每个流水段都流过一次,且仅流过一次 非线性流水线(Nonlinear Pipelining):在流水线的某些流水段之间有反馈回路或前馈回路,21,§5.2 .2流水线处理机的主要性能,通过时空图分析 吞吐率(TP, Throughput Rate) 加速比(Speed Ratio) 效率(Efficiency),22,1吞吐率(TP, Throughput Rate),是流水线单位时间里能流出的任务数或结果数。,23,24,25,吞吐率(续),解决瓶颈子过程的办法 瓶颈段细分,细分,27,瓶颈段并联,28,并联,29,吞吐率(续),说明:,30,2加速比(Speed Ratio),指流水线的速度与等效的非流水线顺序串行方式的速度之比。,31,加速比(续),32,加速比(续),n任务 个数,加速比,10,2,4,6,8,1,1,2,4,8,16,32,64,128,33,3效率(Efficiency),是指流水线中的设备实际使用时间占整个运行时间之比,也称流水线设备的时间利用率。,34,效率(续),35,效率(续),36,4举例1,用一条4段浮点加法器流水线求8个浮点数的和: ZABCDEFGH 解:Z = (A+B) + (C+D) + (E+F) + (G+H),?,37,7个浮点加法共用了15个时钟周期。 流水线的吞吐率为: 流水线的加速比为: 流水线的效率为,39,举例2,设有两个向量A和B,各有4个元素,要在如图所示的静态双功能流水线上,计算向量点积AB,其中1-2-3-5组成加法流水线,1-4-5组成乘法流水线,又设每个流水线所经过的时间均为Dt,而且流水线的输出结果可以直接返回到输入或存于相应的缓冲寄存器中,其延迟时间和功能切换所需的时间都可以忽略不计。,加法流水线,乘法流水线,40,A*B=a1b1+ a2b2+ a3b3+ a4b4,空间,时间,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,a1 a2 a3 a4 a1b1 a3b3 a1b1+a2b2 b1 b2 b3 b4 a2b2 a4b4 a3b3+a4b4 a1b1 a3b3 a1b1+a2b2 a2b2 a4b4 a3b3+a4b4 a1b1+a2b2 +a3b3+a4b4,输入,输 出,静态多功能流水线,1,2,3,4,5,41,实际吞吐率TP=7/15 Dt 加速比Sp=24Dt/(15Dt)=1.6 效率=(3*4Dt+4*3Dt)/(5*15Dt) =0.32=32%,42,A*B=a1b1+ a2b2+ a3b3+ a4b4,动态多功能流水线?,42,a1 a2 a3 a4 a1b1 a3b3 a1b1+a2b2 b1 b2 b3 b4 a2b2 a4b4 a3b3+a4b4 a1b1 a3b3 a1b1+a2b2 a2b2 a4b4 a3b3+a4b4 a1b1+a2b2 +a3b3+a4b4,输入,输 出,43,实际吞吐率TP=7/14 Dt 加速比Sp=24Dt/(14Dt)=1.714 效率=(3*4Dt+4*3Dt)/(5*14Dt) =0.343=34.3%,举例3:书中P190 第6题,有一个双输入端的加-乘双功能静态流水线,由经过时间分别为Dt、2Dt、2Dt、Dt的1、2、3、4四个子过程构成,加法时按1-2-4连接,乘法时按1-3-4连接。流水线输出设有缓冲器,也可将数据直接回授到流水线输入端。现要执行 A*(B+C*(D+E*F)+G*H 的运算,请对运算顺序进行交换,画出能获得尽可能高的吞吐率的流水时空图;标出流水线入、出端的操作数变化情况;求出完成全部运算所需时间及此期间整个流水线的效率。如对流水线瓶颈子过程细分,最少需多少时间完成全部运算?若子过程3已无法再细分,只能采用并联方法改进,问流水线的效率为多少?,A*B + A*C*D + A*C*E*F + G*H,2Dt,空间,时间,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,2Dt,效率=(6*4Dt+3*4Dt)/(4*24Dt) =3/8,1,2,3,4,时间,空间,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,效率=(6*4Dt+3*4Dt)/(6*18Dt) =1/3,对流水线瓶颈子过程细分,1,2-1,3-1,4,3-2,2-2,效率=(6*4Dt+3*4Dt)/(6*18Dt) =1/3,并联方法改进,1,2,3,4,3,2,流水线最佳段数的选择,假设在非流水线的机器上采用顺序执行方式完成一个任务所需要的时间为t,那么在同等速度的有k段流水线的机器上执行一个任务需要的时间为:t/k+d,其中d为锁存器的延迟时间。 流水线的最大吞吐率: 流水线的总价格: a为所有功能段本身的总价格,b为每个锁存器的价格。,流水线最佳段数的选择,流水线的性能价格比 对k求导,求极值: 一般处理机的流水线段数在2-10之间。,50,§5.2.3流水机器的相关处理和控制机构,流水线只有连续不断地流动,不出现断流,才能获得高效率。如果处理不当,就会使流水效率显著下降。 除目标程序和存储系统外,有相关和中断 相关(correlation):指在一段程序的相近指令之间有某种关系,这种关系可能影响指令的重叠执行。 数据相关:局部相关 控制相关:全局相关,51,1 局部性相关的处理 2 全局性相关的处理-转移相关 3 流水机器的中断处理 4 流水线调度-非线性流水线,52,局部相关与全局相关,如果程序内有一个两路的条件分支操作指令,它把程序分为三个部分B0、B1和B2,在每一个部分内部不再有分支操作指令 在同一个基本块内部的相关成为局部相关(Local Correlation) 对程序执行的过程的影响相对较小,仅影响到相关指令前后的一条或几条指令的执行 在基本块之间相关成为全局相关(Global Correlation) 影响到整个程序的执行方向,53,1 局部性相关的处理,局部性相关(数据相关):在执行本条指令的过程中,如果用到的指令、操作数、变址偏移量等正好是前面指令的执行结果,则必须等待前面的指令执行完成,并把结果写到主存或通用寄存器中之后,本条指令才能执行。 指令相关 主存操作数相关 通用寄存器相关 变址相关 原因:在机器同时解释多条指令之间出现了对同一主存单元或寄存器要求“先写后读”而产生的。 解决: 推后后续指令对相关单元的读,直至在先的指令写入完成 设置相关直接通路,将运算结果经相关直接通路直接送入所需部件,54,(1)指令相关,第k+1条指令本身的内容取决于第k条指令的执行结果。 解决:程序中不允许修改指令。为不失灵活性,某些机器增加 “执行” 指令,即指令相关转为数相关。,55,(2)主存操作数相关,当前面指令的执行结果写到主存储器,后续指令所读取的操作数也取自主存储器同一单元。 解决:推后处理法,推后后续指令对相关单元的读,直至在先的指令写入完成 实现方法:设置读、写申请的优先级别,56,(3)通用寄存器相关,在寄存器-寄存器型 和 寄存器-存储器型指令的执行过程中有可能发生通用寄存器数据相关。 解决 推后处理 设置专用相关数据通路,将运算结果经相关直接通路直接送入所需部