1、第三章 流水线技术知识点汇总先行控制、流水线、单功能流水线、多功能流水线、静态流水线、动态流水线、部件级流水线、处理机级流水线、处理机间流水线、线性流水线、非线性流水线、顺序流水线、乱序流水线、时空图、流水线性能评价(吞吐率、加速比、效率) 、解决流水线瓶颈问题方法、相关(数据相关、名相关、控制相关) 、换名技术、流水线冲突(结构冲突、数据冲突、控制冲突) 、流水线互锁机制、定向技术、指令调度、预测分支失败、预测分支成功、延迟分支(从前调度、从失败处调度、从成功处调度) 、流水寄存器、3 种向量处理方式(横向、纵向、纵横) 、链接技术。简答题1. 流水技术有哪些特点?(答出 4 个即可) (知
2、识点:流水线)答:1.将处理过程分解为若干子过程,由专门的功能部件来实现,2 各段的时间尽可能相等,3 各部件间都有一个缓冲寄存器,4 适用于大量重复的时序过程,5 需要通过时间和排空时间。2. 什么是静态流水线?什么是动态流水线?(知识点:静态流水线、动态流水线)答:同一时间段内,多功能流水线中的各段只能按同一种功能的连接方式工作;同一时间段内,多功能流水线中的各段可以按照不同的方式连接同时执行多种功能。3. 什么是单功能流水线?什么是多功能流水线?(知识点:单功能流水线、多功能流水线)答:只能完成一种固定功能的流水线。流水线的各段可以进行不同的连接,以实现不同的功能。4. 什么是线性流水线
3、?什么是非线性流水线?(知识点:线性流水线、非线性流水线)答:流水线的各段串行连接,没有反馈回路。流水线中除了有串行的连接外,还有反馈回路。5. 列举 3 种相关。 (知识点:相关)答:数据相关,名相关,控制相关。6. 流水线中有哪三种冲突?各是什么原因造成的?(知识点:流水线冲突)答:结构冲突,硬件资源满足不了指令重叠执行的要求;数据冲突,指令在流水线中重叠执行时需要用到前面指令的执行结果;控制冲突,流水线遇到分支指令和其他会改变 PC 值的指令。7. 选择至少 2 种解决流水线结构冲突的方法简述。 (知识点:结构冲突)答:流水线停顿一个时钟周期,推迟后面的指令操作。设置相互独立的指令存储器
4、和数据存储器。8. 选择至少 2 种解决流水线数据冲突的方法简述。 (知识点:数据冲突)答:定向技术,将计算结果从其产生的地方直接送到其他指令需要的地方。通过编译时让编译器重新组织指令顺序来消除冲突。9. 选择至少 2 种解决流水线控制冲突的静态方法简述。 (知识点:控制冲突)答:预测分支失败,预测分支成功,延迟分支。10. 简述流水寄存器的作用。 (知识点:流水寄存器)答:将各段的工作隔开使得相互不会干扰,保存相应各段的处理结果,向后传到后面将要用到的数据或者控制信息。11. 简述分支延迟槽的主要思想。 (知识点:延迟分支)答:编译器每当遇到分支指令,就在其后连续生成 k 个空指令位,称为延
5、迟槽,并根据不同的调度规则将原始代码中分支指令附近的指令放进延迟槽中,如果延迟槽没有填满,剩余部分用 nop 指令填充,即气泡。延迟槽中的指令同分支指令都看做普通的指令顺序流水,无论分支指令成功与否,都先按顺序执行延迟槽中的指令。延迟槽中的指令“掩盖”了流水线原来必须插入的暂停周期,减少了分支指令带来的延迟。12. 简述分支延迟槽的三种调度策略。 (知识点:延迟分支)答:从前调度:从分支指令之前找一条独立的指令移动到延迟槽中。从目标处调度:把分支成功的目标地址指令复制到延迟槽中,并把分支目标地址改成分支后继地址。永远猜测分支是成功的,如果猜错,则丢弃延迟槽中指令的结果。从失败处调度:把分支失败
6、的目标地址指令移动到延迟槽中。永远猜测分支是失败的。如果猜错,则丢弃延迟槽中指令的结果。选择题1 关于流水线的下列说法,错误的是:( C ) (知识点:流水线)A 流水线能够提高吞吐率;B 流水线提高了器件的利用率;C 流水线提高了单个任务的处理速度;D 消除流水线瓶颈的方法有“瓶颈段细分方法”和“ 瓶颈段重复设置方法 ”。2 寄存器换名技术可以减少如下相关带来的暂停:( A ) (知识点:换名技术)A 读后写相关;B 结构相关;C 写后读相关;D 控制相关。3 假设对于 MIPS 流水线,由取指令(IF ) 、指令译码读寄存器( ID) 、执行(EX) 、存储器访问(MEM) 、写寄存器(W
7、B)五段组成。在一个时钟周期中对同一个寄存器的读操作和写操作可以通过寄存器文件“定向”,有正常定向路径。转移指令在 EX 段计算目标地址,在 MEM 段检测分支条件。指令 SUB R4, R3, R2 和 BNEZ R4, LOOP 之间应暂停的周期数为:( B ) (知识点:数据冲突)A 3;B 2;C 1;D 0。4 流水方式是指( D ) 。 (知识点:流水线)A多部件同时执行一条指令 B多部件同时取出多条指令C多部件同时解释一条指令 D多部件同时解释多条指令5 评价流水线的性能指标是( D ) 。 (知识点:流水线性能评价)A吞吐率、流水线的加速比和 执行程序所需要的时钟周期数B吞吐率
8、、流水线的加速比和所执行的指令条数C吞吐率、流水线的加速比和 CPID吞吐率、流水线的加速比和效率6 在顺序流动的 MIPS 流水线中,可能发生的冲突有( B ) 。 (知识点:数据冲突)A 同一条指令的读操作和写操作之间的写后读冲突B 先流入的指令的写操作与后流入的指令的读操作之间的写后读冲突C 后流入的指令的写操作与先流入的指令的读操作之间的读后写冲突D 两条指令的写操作之间的写后写冲突7 在具有加、乘法双功能的静态流水线中,功能切换的时间是在( D ) 。 (知识点:多功能流水线、静态流水线)A 前一个功能的第一个任务进入流水线后B 前一个功能的第一个任务流出流水线后C 前一个功能的最后
9、一个任务进入流水线后D 前一个功能的最后一个任务流出流水线后8 非线性流水线的特征是( B ) 。 (知识点:非线性流水线)A 一次运算中使用流水线中的多个段B 一次运算中要多次使用流水线中的某些功能段C 流水线的各个功能段在不同运算中可以有不同的连接D 流水线中某些功能段在各次运算中的作用不同9 以下哪种方法不能用于解决数据冲突( A ) 。 (知识点:数据冲突)A 链接技术B 定向技术C 流水线互锁机制D 编译器指令调度10 以下哪种相关不会导致数据冲突( D ) 。 (知识点: 数据相关、名相关、数据冲突)A 数据相关B 反相关C 输出相关D 读后读相关11 与线性流水线最大吞吐率有关的
10、是(C)A 第一个功能段的执行时间B 最快那一段的执行时间C 最慢那一段的执行时间D 最后的功能段的执行时间填空题1. 相关有三种类型,即( 数据相关 ) , ( 名相关 )和( 控制相关 ) 。其中 ( )相关还包括输出相关和反相关两种。2. 流水线中的冲突主要分为以下 3 种类型:( 结构冲突 ) 、 ( 数据冲突 )和( 控制冲突 ) ,其中数据冲突又分为如下 3 类:(写后读冲突 ) 、 ( 读后写冲突 )和( 写后写冲突 ) 。 (知识点: 数据冲突)3. 衡量流水线的主要性能指标是( 吞吐率 ) 、 ( 加速比 )和( 效率 ) 。N 段不等长的流水线中,其结果的输出速度取决于处理
11、时间( 最长 )的子过程。 (知识点:流水线性能评价)4. 消除流水线的瓶颈段的方法有( 细分瓶颈段 )和( 重复设置瓶颈段 )2 种。 (知识点:解决流水线瓶颈问题方法)5. 三种通过软件(编译器)来减少分支延迟的方法为( 预测分支失败 ) 、 ( 预测分支成功 ) 、( 延迟分支 ) 。 (知识点:控制冲突)计算题1 有一个动态多功能流水线,该流水线可进行乘法和加法运算,流水线有 S1、S 2、S 3、S 4、S 5、S 6 六段,每段是等时的,S 1、S 4、S 5、 S6 连接时完成加法功能,S 1、S 2、S 3、S 6 连接时完成乘法功能。试画出计算Mi=(X i+Yi)Z i(i
12、=1,2,3, 4)的时空图,并计算实际吞吐率 TP、加速比 SP 和效率 E。 (知识点:动态流水线、多功能流水线、流水线性能评价)答:确定算法:A i=XiY i(i=1 ,2,3,4)Mi=AiZi(i=1,2,3,4)时空图如下:输入:X 1 X2 X3 X4 A1 A2 A3 A4 Y1 Y2 Y3 Y4 Z1 Z2 Z 3Z4输出:A 1 A2 A3 A4 M1 M2 M3 M4实际吞吐率:TP=nT k=811t加速比:SP=T sT k=4(44)t11t=3211效率:E=48t611t=16332 有如下的指令序列I1: LW R1, 0(R6)I2: LW R2, 4(R
13、6)I3: MUL R5, R1, R2I4: LW R3, 8(R6)I5: LW R4, 24(R6)I6: ADD R2, R3, R4I7: ADD R2, R2, R5如何进行指令调度使其执行延迟时间最短?进行指令调度所获得的加速比是多少?(注:基于 DLX 指令处理,每条指令分为 5 步:IF,ID,EX ,MEM,WB,在一个时钟周期中对同一个寄存器的读操作和写操作可以通过寄存器文件“定向”,并且有正常的定向路径) 。 (知识点:定向技术、指令调度、数据冲突)答:答案图有问题,结果没问题调度后的指令序列为 I1 ,I 2, I4 ,I 5 ,I 3 ,I 6,I 7加速比:SP=
14、13t 11t=13 11如果只有寄存器定向文件定向,那么答案应该是:调度前 17t, 调度后是 14t。该题目是既有正常定向路径,又有寄存器文件定向路径。3 若一个动态浮点乘法流水线(如下图所示) ,每个功能段的时间均为t,其乘积可直接返回输入端或暂存于相应缓存器中。请画出实现 ABCD 的时空图,并求出该流水线的吞吐率 TP、加速比 SP 和效率E。 (知识点:动态流水线、流水线性能评价)阶 加 尾数乘 规格化输入 积答:拟定算法:第一步计算 AB,CD,设 M=AB,N=CD第二步计算 ABCD,即 G=MN时空图:空间规格化 M N G尾数乘 M N G阶乘 M N G输入 A,B C
15、,D M,N 时间输出 M N G吞吐率 TP、加速比 SP 和效率 ETP=n/TK=3/7t0.43/tSP=9/71.29E=(33t)/( 37t) 42.9%4 假设一条指令的取指过程分为:取指令、分析和执行 3 段,每一段的时间分别为t、2t、3 t。在下列各种情况下,分别计算连续执行 n 条指令所需的时间。(1)顺序执行方式;(2)取指令、分析和执行重叠。 (知识点:流水线,流水线性能评价)答:(1)顺序执行方式执行 n 条指令的时间: tnttntTiiS 6)32(31(2)取指令、分析和执行重叠执行 n 条指令的时间: tntttTiiS3)1(6)3,2max(315 带
16、双输入端的加、乘双功能静态流水线有 1、2、3、4 四个功能部件,延时分别为t ,t,2t,t, “加”由 124 组成, “乘”由 1 3 4 组成,输出可直接返回输入或锁存,现执行41)(i iiicba(1)画出此流水线时空图,标出流水线输入端数据变化情况。(2)计算运算全 shi 部完成所需时间及在此期间流水线的效率。(3)将瓶颈子部件再细分,画出解此题的时空图。(4)求出按(3)解此题所需时间及在此期间流水线的效率。(知识点:多功能流水线、静态流水线、流水线性能评价)答:(1)流水线时空图如下图:(2)全部完的时间是 23 t。效率 92374(3)流水线时空图如下所示。(4)所需时
17、间为 20 t。效率 1037256 有一条静态多功能流水线由 5 段组成,加法用 1、3、4、5 段,乘法用 1、2、5 段,第 3 段的时间为2t,其余各段的时间均为t ,而且流水线的输出可以直接返回输入端或暂存于相应的流水寄存器中。现要在该流水线上计算 ,画出其时空图,并计算其吞吐率、加速比和效率。 (知识点:多功能流水线、静态流水线、流水线性能评价) 1 2 3 4 5 乘 法 加 法 t t 2 t t t )(41iiBA答:首先,应选择适合于流水线工作的算法。对于本题,应先计算 A1B 1、A 2B 2、A 3B 3 和A4B 4;再计算(A 1B 1) (A2B 2)和(A 3
18、B 3) (A4B 4);然后求总的结果。其次,画出完成该计算的时空图,如图所示,图中阴影部分表示该段在工作。由图可见,它在 18 个t 时间中,给出了 7 个结果。所以吞吐率为:tTP81如果不用流水线,由于一次求积需 3t,一次求和需 5t,则产生上述 7 个结果共需(45+33 )t =29t。所以加速比为:该流水线的效率可由阴影区的面积和 5 个段总时空区的面积的比值求得:7 一多功能 8 段动态流水线,实现乘法经过:1-2-3-4-5-6-7-8 功能段;实现加法经过 1-2-3-4-5-8. 每一功能段的延迟时间都为 t,流水线的输出可以直接返回输入端或暂存于相应的流水寄存器中,计
19、算向量点积和:Z=AB+CD+EF+GH。(1)画出时空图;(2)计算吞吐率、加速比和效率;(3)分析该流水线的效率不高的原因。(知识点:多功能流水线、动态流水线、流水线性能评价)答:(1)时空图:时 间 段 1 2 3 4 5 0 2 3 4 5 6 7 8 9 10 12 3 14 5 16 输入 A1B 2 3 AB4 A C D AB CD ABA CD ABCD =A1 B 2C3 D=4 BCD 7 18 61.892tS23.014E(2)从流水线的时空图中看到,用 23 个时钟周期完成了 7 个运算。当每一功能段的延迟时间都为 t时,有 Tk=23t,n=7。流水线的吞吐率 T
20、P 为:TP=n/Tk=7/ (23t)0.304/t如果采用顺序方式,完成一次加法要用 6t,完成一次乘法要用 8t,全部运算要用:T0 =46t+38t=48t则加速比: S=T0/Tk=48t/(23t) 2. 087整个流水线共有 8 段,流水线效率为: E=T0/(kTk)=48t/(823t) 0.261(3)主要原因多功能流水线在做某一种运算时,总有一些段是空闲的。静态流水线在进行功能切换时,要等前一种运算全部流出流水线后才能进行后面的运算。运算之间存在关联,后面有些运算要用到前面运算的结果。流水线的工作过程有建立与排空部分。8 有一指令流水线如下所示问: (1)求连续输入 15
21、 条指令,该流水线的实际吞吐率和效率,并画出流水线时空图。(2)该流水线的瓶颈在哪几段?请任选一种措施消除瓶颈,且对于你所给出的改进的流水线,连续输入 15 条指令时,其实际吞吐率和效率各是多少? (知识点:流水线性能评价、解决流水线瓶颈问题方法)答:(1)流水线时空图如图所示120ns340ns480ns220ns入 出1280(ns)80144t)tTmaxm1ipieln )(ns2563)(ns25TP 11piel %8.4804E (2)瓶颈在 3、4 段。方案一:采用细分瓶颈段法,变成八级流水线40(ns)20182t1)(ntTmaxmipieln )(ns83)(ns45TP 11piel %.60812E方案二: 重复设置部件1 23-13-24-14-24-34-4计算结果与方案一相同。1 2 3 4 1280ns 时 间 段 1 2 3_1 3_2 4_1 4_4入 出20ns 20ns 20ns 20ns 20ns 20ns