吉林大学计算机系统结构题库第三章

吉林大学计算机系统结构题库第三章
吉林大学计算机系统结构题库第三章

第三章流水线技术

知识点汇总

先行控制、流水线、单功能流水线、多功能流水线、静态流水线、动态流水线、部件级流水线、处理机级流水线、处理机间流水线、线性流水线、非线性流水线、顺序流水线、乱序流水线、时空图、流水线性能评价(吞吐率、加速比、效率)、解决流水线瓶颈问题方法、相关(数据相关、名相关、控制相关)、换名技术、流水线冲突(结构冲突、数据冲突、控制冲突)、流水线互锁机制、定向技术、指令调度、预测分支失败、预测分支成功、延迟分支(从前调度、从失败处调度、从成功处调度)、流水寄存器、3种向量处理方式(横向、纵向、纵横)、链接技术。

简答题

1.流水技术有哪些特点?(答出4个即可)(知识点:流水线)

答:1.将处理过程分解为若干子过程,由专门的功能部件来实现,2各段的时间尽可能相等,3各部件间都有一个缓冲寄存器,4适用于大量重复的时序过程,5需要通过时间和排空时间。

2.什么是静态流水线?什么是动态流水线?(知识点:静态流水线、动态流水线)

答:同一时间段内,多功能流水线中的各段只能按同一种功能的连接方式工作;同一时间段内,多功能流水线中的各段可以按照不同的方式连接同时执行多种功能。

3.什么是单功能流水线?什么是多功能流水线?(知识点:单功能流水线、多功能流水线)

答:只能完成一种固定功能的流水线。流水线的各段可以进行不同的连接,以实现不同的功能。

4.什么是线性流水线?什么是非线性流水线?(知识点:线性流水线、非线性流水线)

答:流水线的各段串行连接,没有反馈回路。流水线中除了有串行的连接外,还有反馈回路。

5.列举3种相关。(知识点:相关)

答:数据相关,名相关,控制相关。

6.流水线中有哪三种冲突?各是什么原因造成的?(知识点:流水线冲突)

答:结构冲突,硬件资源满足不了指令重叠执行的要求;数据冲突,指令在流水线中重叠执行时需要用到前面指令的执行结果;控制冲突,流水线遇到分支指令和其他会改变PC值的指令。

7.选择至少2种解决流水线结构冲突的方法简述。(知识点:结构冲突)

答:流水线停顿一个时钟周期,推迟后面的指令操作。设置相互独立的指令存储器和数据存储器。

8.选择至少2种解决流水线数据冲突的方法简述。(知识点:数据冲突)

答:定向技术,将计算结果从其产生的地方直接送到其他指令需要的地方。通过编译时让编译器重新组织指令顺序来消除冲突。

9.选择至少2种解决流水线控制冲突的静态方法简述。(知识点:控制冲突)

答:预测分支失败,预测分支成功,延迟分支。

10.简述流水寄存器的作用。(知识点:流水寄存器)

答:将各段的工作隔开使得相互不会干扰,保存相应各段的处理结果,向后传到后面将要用到的数据或者控制信息。

11.简述分支延迟槽的主要思想。(知识点:延迟分支)

答:编译器每当遇到分支指令,就在其后连续生成k个空指令位,称为延迟槽,并根据不同的调度规则将原始代码中分支指令附近的指令放进延迟槽中,如果延迟槽没有填满,剩余部分用nop指令填充,即气泡。延迟槽中的指令同分支指令都看做普通的指令顺序流水,无论分支指令成功与否,都先按顺序执行延迟槽中的指令。延迟槽中的指令“掩盖”了流水线原来必须插入的暂停周期,减少了分支指令带来的延迟。

12.简述分支延迟槽的三种调度策略。(知识点:延迟分支)

答:从前调度:从分支指令之前找一条独立的指令移动到延迟槽中。

从目标处调度:把分支成功的目标地址指令复制到延迟槽中,并把分支目标地址改成分支后继地址。永远猜测分支是成功的,如果猜错,则丢弃延迟槽中指令的结果。

从失败处调度:把分支失败的目标地址指令移动到延迟槽中。永远猜测分支是失败的。如果猜错,则丢弃延迟槽中指令的结果。

选择题

1.关于流水线的下列说法,错误的是:( C )(知识点:流水线)

A.流水线能够提高吞吐率;

B.流水线提高了器件的利用率;

C.流水线提高了单个任务的处理速度;

D.消除流水线瓶颈的方法有“瓶颈段细分方法”和“瓶颈段重复设置方法”。

2.寄存器换名技术可以减少如下相关带来的暂停:( A )(知识点:换名技术)A.读后写相关;

B.结构相关;

C.写后读相关;

D.控制相关。

3.假设对于MIPS流水线,由取指令(IF)、指令译码读寄存器(ID)、执行(EX)、存储器访问(MEM)、写寄存器(WB)五段组成。在一个时钟周期中对同一个寄存器的读操作和写操作可以通过寄存器文件“定向”,有正常定向路径。转移指令在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.吞吐率、流水线的加速比和所执行的指令条数

C.吞吐率、流水线的加速比和CPI

D.吞吐率、流水线的加速比和效率

6.在顺序流动的MIPS流水线中,可能发生的冲突有( B )。(知识点:数据冲突)A.同一条指令的读操作和写操作之间的写后读冲突

B.先流入的指令的写操作与后流入的指令的读操作之间的写后读冲突

C.后流入的指令的写操作与先流入的指令的读操作之间的读后写冲突

D.两条指令的写操作之间的写后写冲突

7.在具有加、乘法双功能的静态流水线中,功能切换的时间是在( D )。(知识点:多功能流水线、静态流水线)

A.前一个功能的第一个任务进入流水线后

B.前一个功能的第一个任务流出流水线后

C.前一个功能的最后一个任务进入流水线后

D.前一个功能的最后一个任务流出流水线后

8.非线性流水线的特征是( B )。(知识点:非线性流水线)

A.一次运算中使用流水线中的多个段

B.一次运算中要多次使用流水线中的某些功能段

C.流水线的各个功能段在不同运算中可以有不同的连接

D.流水线中某些功能段在各次运算中的作用不同

9.以下哪种方法不能用于解决数据冲突( A )。(知识点:数据冲突)

A.链接技术

B.定向技术

C.流水线互锁机制

D.编译器指令调度

10.以下哪种相关不会导致数据冲突( D )。(知识点:数据相关、名相关、数据冲突)A.数据相关

B.反相关

C.输出相关

D.读后读相关

11.与线性流水线最大吞吐率有关的是(C)

A.第一个功能段的执行时间

B.最快那一段的执行时间

C.最慢那一段的执行时间

D.最后的功能段的执行时间

填空题

1.相关有三种类型,即(数据相关),(名相关)和(控制相关)。其中()相关

还包括输出相关和反相关两种。

2.流水线中的冲突主要分为以下3种类型:(结构冲突)、(数据冲突)和(控制冲突),其中

数据冲突又分为如下3类:(写后读冲突)、(读后写冲突)和(写后写冲突)。(知识点:数据冲突)

3.衡量流水线的主要性能指标是(吞吐率)、(加速比)和(效率)。N段不等长的

流水线中,其结果的输出速度取决于处理时间(最长)的子过程。(知识点:流水线性能评价)4.消除流水线的瓶颈段的方法有(细分瓶颈段)和(重复设置瓶颈段)2种。(知识点:

解决流水线瓶颈问题方法)

5.三种通过软件(编译器)来减少分支延迟的方法为(预测分支失败)、(预测分支成功)、

(延迟分支)。(知识点:控制冲突)

计算题

1.有一个动态多功能流水线,该流水线可进行乘法和加法运算,流水线有S1、S2、S3、S4、S5、S6六段,每段是等时的,S1、S4、S5、S6连接时完成加法功能,S1、S2、S3、S6连接时完成乘法功能。试画出计算M i=(X i+Y i)Z i(i=1,2,3,4)的时空图,并计算实际吞吐率TP、加速比SP和效率E。(知识点:动态流水线、多功能流水线、流水线性能评价)

答:确定算法:A i=X i+Y i(i=1,2,3,4)

M i=A i×Z i(i=1,2,3,4)

时空图如下:

输入:X1 X2 X3 X4 A1 A2 A3 A4 Y1 Y2 Y3 Y4 Z1 Z2 Z 3Z4

输出:A1 A2 A3 A4 M1 M2 M3 M4

实际吞吐率:TP=n/T k=8/11Δt

加速比:SP=T s/T k=4×(4+4)Δt/11Δt=32/11

效率:E=4×8Δt/6×11Δt=16/33

2.有如下的指令序列

I1: LW R1, 0(R6)

I2: LW R2, 4(R6)

I3: MUL R5, R1, R2

I4: LW R3, 8(R6)

I5: LW R4, 24(R6)

I6: ADD R2, R3, R4

I7: ADD R2, R2, R5

如何进行指令调度使其执行延迟时间最短?进行指令调度所获得的加速比是多少?(注:基于DLX指令处理,每条指令分为5步:IF,ID,EX,MEM,WB,在一个时钟周期中对同一个寄存器的读操作和写操作可以通过寄存器文件“定向”,并且有正常的定向路径)。(知识点:定向技术、指令调度、数据冲突)

答:答案图有问题,结果没问题

调度后的指令序列为I1,I2, I4,I5,I3,I6,I7

加速比:SP=13Δt/11Δt=13/11

如果只有寄存器定向文件定向,那么答案应该是:调度前17Δt,调度后是14Δt。

该题目是既有正常定向路径,又有寄存器文件定向路径。

3.若一个动态浮点乘法流水线(如下图所示),每个功能段的时间均为t,其乘积可直接返回输入端或

暂存于相应缓存器中。请画出实现A

B C D 的时空图,并求出该流水线的吞吐率TP 、加速比SP 和效率E 。(知识点:动态流水线、流水线性能评价)

答:拟定算法:第一步计算 A B ,C D ,设M=A B ,N=C D

第二步计算 A B C D ,即G=M N 时空图:

空间

规格化 M N G 尾数乘 M N G 阶乘

M

N

G

输入 A,B C,D M,N 时间 输出 M N G

吞吐率TP 、加速比SP 和效率E TP=n/T K =3/7t 0.43/t SP=9/7 1.29

E=(33t)/( 37t) 42.9%

4. 假设一条指令的取指过程分为:取指令、分析和执行3段,每一段的时间分别为t 、2t 、3t 。在

下列各种情况下,分别计算连续执行n 条指令所需的时间。 (1)顺序执行方式;

(2)取指令、分析和执行重叠。(知识点:流水线,流水线性能评价)

答:(1)顺序执行方式 执行n 条指令的时间:

t n t t t n t n T i i S ?=?+?+??=??=∑=6)32(3

1

(2)取指令、分析和执行重叠 执行n 条指令的时间:

t

t n t n t t t t n t T i i S ?+?=?-+?=???-+?=∑=333)1(6)

3,2,max()1(3

1

5. 带双输入端的加、乘双功能静态流水线有1、2、3、4四个功能部件,延时分别为△t,△t,

2△t,△t,“加”由1→2→4组成,“乘”由1→ 3→ 4组成,输出可直接返回输入或锁存,现执行

阶 加

尾数乘

规格化

输入

[]∑=?+4

1

)(i i

i

i

c b a

(1)画出此流水线时空图,标出流水线输入端数据变化情况。 (2)计算运算全shi 部完成所需时间及在此期间流水线的效率。 (3)将瓶颈子部件再细分,画出解此题的时空图。

(4)求出按(3)解此题所需时间及在此期间流水线的效率。 (知识点:多功能流水线、静态流水线、流水线性能评价)

答:(1)流水线时空图如下图:

(2)全部完的时间是23?t 。 效率 92

3723437=

???=

t t η

(3)流水线时空图如下所示。

(4)所需时间为20?t 。 效率 100

3720537=

???=

t t η

6. 有一条静态多功能流水线由5段组成,加法用1、3、4、5段,乘法用1、2、5段,第3段的时间为2△t,

其余各段的时间均为△t,而且流水线的输出可以直接返回输入端或暂存于相应的流水寄存器中。现要

在该流水线上计算 ,画出其时空图,并计算其吞吐率、加速比和效率。(知识点:多功能流水线、静态流水线、流水线性能评价)

)(4

1

i i i B A +∏=

答:首先,应选择适合于流水线工作的算法。对于本题,应先计算A 1+B 1、A 2+B 2、A 3+B 3和A 4+B 4;再计算(A 1+B 1) ×(A 2+B 2)和(A 3+B 3) ×(A 4+B 4);然后求总的结果。

其次,画出完成该计算的时空图,如图所示,图中阴影部分表示该段在工作。

由图可见,它在18个△t 时间中,给出了7个结果。所以吞吐率为:

t

TP ?=

817

如果不用流水线,由于一次求积需3△t,一次求和需5△t,则产生上述7个结果共需(4×5+3×3)△t =29△t。所以加速比为:

该流水线的效率可由阴影区的面积和5个段总时空区的面积的比值求得:

7. 一多功能8段动态流水线,实现乘法经过:1-2-3-4-5-6-7-8功能段;实现加法经过1-2-3-4-5-8. 每

一功能段的延迟时间都为Δt,流水线的输出可以直接返回输入端或暂存于相应的流水寄存器中,计算向量点积和:Z=AB+CD+EF+GH 。 (1)画出时空图;

(2)计算吞吐率、加速比和效率; (3)分析该流水线的效率不高的原因。

(知识点:多功能流水线、动态流水线、流水线性能评价) 答:(1)时空图:

乘法

加法

时间

输 入

A 1

B 1 A 2 B 2 A 3 B 3 A 4 B 4

A B C

D

A ×

B

C ×D

61

.18192=??=t

t

S 223.018

53354=??+?=E

(2)从流水线的时空图中看到,用23个时钟周期完成了7个运算。当每一功能段的延迟时间都为Δt 时,有Tk=23Δt,n=7。

流水线的吞吐率TP 为:TP=n/Tk=7/ (23Δt)≈0.304/Δt

如果采用顺序方式,完成一次加法要用6Δt,完成一次乘法要用8Δt,全部运算要用: T0 =4×6Δt+3×8Δt=48Δt

则加速比: S=T0/Tk=48Δt/(23Δt) ≈ 2. 087

整个流水线共有8段,流水线效率为: E=T0/(k×Tk)=48Δt/(8×23Δt) ≈ 0.261 (3)主要原因

①多功能流水线在做某一种运算时,总有一些段是空闲的。

②静态流水线在进行功能切换时,要等前一种运算全部流出流水线后才能进行后面的运算。 ③运算之间存在关联,后面有些运算要用到前面运算的结果。 ④流水线的工作过程有建立与排空部分。

8. 有一指令流水线如下所示

问: (1)求连续输入15条指令,该流水线的实际吞吐率和效率,并画出流水线时空图。

(2)该流水线的瓶颈在哪几段?请任选一种措施消除瓶颈,且对于你所给出的改进的流水线,连续输入15条指令时,其实际吞吐率和效率各是多少?

(知识点:流水线性能评价、解决流水线瓶颈问题方法)

答:(1)流水线时空图如图所示

1

20ns 3 40ns

4 80ns

2 20ns 入

1280(ns)801480)4020(20t )1n (t

T max

m

1

i i

pipeline =?++++=?-+?=

∑= )(ns 256

3

)(ns 1280

15

T n

TP 11pipeline

--===

%88.464

128015

)80402020(E ≈??+++=

(2)瓶颈在3、4段。方案一:采用细分瓶颈段法,变成八级流水线

440(ns)2014820t 1)(n t

T max

m

1

i i

pipeline =?+?=?-+?=

∑=

)(ns 88

3

)(ns 440

15

T n

TP 11pipeline

--===

%18.68440

815

820E ≈???=

方案二: 重复设置部件

段20ns

20ns

20ns

20ns

20ns

20ns

计算结果与方案一相同。

以上两种方案任意一种给分。

如有侵权请联系告知删除,感谢你们的配合!如有侵权请联系告知删除,感谢你们的配合!

相关主题
相关文档
最新文档