第05章流水线课后习题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第5章课后习题

1.填空题

(1) 衡量流水线性能的主要指标有

(2) 指令乱序流动可能造成

(3) 解决数据相关主要有

(4) 超标量处理机开发的是

行性。

(1). 吞吐率、加速比、效率

(2). 先写后读、先读后写、写写

(3). 推后分析、设置专用路径

(4). 空间、时间

2.假设一条指令的执行过程分为"取指令"、"分析"和"执行"三段,每一段的时间分别为△t、2△t和3△t。在下列各种情况下,分别写出连续执行n条指令所需要的时间表达式。

(1) 顺序执行方式。

(2) 仅"取指令"和"执行"重叠。

(3) "取指令"、"分析"和"执行"重叠。

第2题

(1) 顺序执行时每条指令用时=△t+2△t+3△t=6△t,

因此n条指令所需要的时间=6n*△t

(2) 第一条指令完成需要时间=△t+2△t+3△t=6△t,根据题义,下一条指令的"取指令"与上一条指令"执行"的最后一个△t重叠。因此,自从第一条指令完成后,每隔4△t完成一条指令。所以余下的n-1条指令用时(n-1)*4△t.

所以,n条指令所需要的时间=6△t+(n-1)*4△t=2(2n+1)△t。

(3) 第一条指令完成需要时间=△t+2△t+3△t=6△t,由于一条指令的"取指令"和"分析"阶段和下一条指令的"执行"阶段重叠,因此,此后每3△t 完成一条指令,余下的n-1条指令用时(n-1)*3△t.

因此n条指令所需要的时间=6△t+(n-1)*3△t=3(n+1)△t

3.用一条5个功能段的浮点加法器流水线计算F=。每个功能段的延迟时间均相等,流水线的输出端与输入端之间有直接数据通路,而且设置有足够的缓冲寄存器。要求用尽可能短的时间完成计算,画出流水线时空图,计算流水线的实际吞吐率、加速比和效率。

第3题

假设每个功能段的延迟时间为△t。

F==[(A1+1A2)+6(A3+2A4)+8(A5+3A6)]+9[(A7+4A8)+7(A9+5A10)]

由上面的时空图可以看出,在20△t时间内共完成9个加法操作。因此:

吞吐率为:TP= 9/20=0.45

加速比为:Sp= 9*5/20=2.5

效率为:E= 45/(20*5)=45%

4.设有一个15000条指令的程序在一台时钟速率为25MHz的线性流水线处理机上执行。假设该指令流水线有5段,并且每个时钟周期发射一条指令。忽略由于转移指令和无序执行造成的损失。

(1) 用该流水线执行这一程序,并用流过延迟与其相等的一个等效非流水线处理机执行同一程序,将两者加以比较,并计算其加速比。

(2) 该流水线处理机的效率是多少?

(3) 计算该流水线的吞吐率。

第4题

(1) 等效的非流水处理机执行一条指令需要的时间是5个时钟周期。依照加速比定义,

(2) 效率E为

(3) 吞吐率TP为

5.设有5段流水线处理机的预约表如下:

(1) 列出禁止等待时间和冲突向量集。

(2) 画出状态转换图,说明不引起流水线冲突的所有可能的启动序列(循环)。

(3) 根据状态图列出所有简单循环。

(4) 从简单循环中找出迫切循环。

(5) 此流水线的最小平均等待时间(MAL)是多少?

(6) 使用此流水线时,列出可允许的最小恒定循环。

(7) 该流水线的最大吞吐率是多少?

(8) 如果使用最小恒定循环,则吞吐率是多少?

1 2 3 4 5 6

S1 X X

S2 X X

S3 X

S4 X

S5 X X 第5题

(1) 禁止等待时间是:3,4,5。冲突向量为(11100)。

(2) 状态转换图如下所示:

(3) 简单循环如下:(1,1,6),(2,6),(6),(1,6)

(4) 迫切(最小启动)循环为(1,1,6)

(5) 最小平均等待时间MAL为

(6) 最小恒定循环为(6)。

(7) 设该流水线的时钟周期为τ,则该流水线的最大吞吐率TP MAX为

(8) 使用最小恒定循环时,设该流水线的时钟周期为τ,该流水线的吞吐率为

6.下列汇编代码在一台3段流水线处理机上执行,每一段都有冒险(相关)检测和分解。这三段是取指令、取操作数(根据要求取一个或者多个)和执行(包括写回操作)。试说明在代码执行中所有可能的相关情况。

Inc R0/R0←(R0)+1/

Mul ACC,R0/ACC←(ACC)×(R0)/

Store R1,ACC/R1←(ACC)/

Add ACC,R0/ACC←(ACC)+(R0)/

Store M,ACC /M←(ACC)/

第6题

我们首先给上面的指令序列编号如下:

I1:Inc R0 /R0←(R0)+1/

I2:Mul ACC,R0 /ACC←(ACC)×(R0)/

I3:Store R1,ACC /R1←(ACC)/

I4:Add ACC,R0 /ACC←(ACC)+(R0)/

I5:Store M,ACC/M←(ACC)/

我们使用IF、OF和EX来分别代表流水线的取指令、取操作数和执行三段。下面的图表显示了执行的序列:

图中的箭头方向是同一条指令在流水线中的流动方向,从图中我们可以看出:

在t3时刻:O(I1)∩ I(I2)= {R0} ,会发生RAW相关;

在t4时刻:O(I2)∩ I(I3)= {Acc} ,会发生RAW相关;

在t6时刻:O(I4)∩ I(I5)= {Acc} ,会发生RAW相关。

其中我们用O(I1)表示指令I1的输出寄存器(如R0表示寄存器,而Acc表示表示累加器),I(I2)表示指令I2的输入寄存器。

下面的调度方法能够避免相关的发生:

其中,Stall表示流水线停顿,通过这种方法,可以避免相关的发生。

7.设有4段流水线处理机如下,此流水线的总求值时间为6个时钟周期,所有相继段必须在每个时钟周期之后才能使用。

(1) 列出这一流水线的4行六列预约表。

(2) 列出任务启动之间的禁止等待时间集。

相关文档
最新文档