计算机组织结构 第三章重要练习题详解

考查:线性流水线和时空图

题目1: 有一指令流水线如下所示
在这里插入图片描述
(1) 求连续输入10条指令,该流水线的实际吞吐率和效率;
(2) 该流水线的“瓶颈”在哪一段?请采取两种不同的措施消除此“瓶颈”。对于你所给出的 两种新的流水线,连续输入10条指令时,其实际吞吐率和效率各是多少?

解:
(1)线性流水线解题,先画出时空图
在这里插入图片描述
T P = 10 200 ∗ 10 + 50 ∗ 4 = 1 220 TP=\frac{10}{200*10+50*4}=\frac{1}{220} TP=20010+50410=2201

E = 200 ∗ 10 + 100 ∗ 10 + 50 ∗ 20 2200 ∗ 4 = 4000 8800 = 5 11 E=\frac{200*10+100*10+50*20}{2200*4}=\frac{4000}{8800}=\frac{5}{11} E=2200420010+10010+5020=88004000=115

(2)瓶颈在S3和S4,
方法一:
把S3和S4分开拆为几步。
在这里插入图片描述

方法二:
在这里插入图片描述
由时空图可知,两者的实际吞吐率和效率一致的。

T P = 10 17 ∗ 50 = 1 85 TP=\frac{10}{17*50}=\frac{1}{85} TP=175010=851

E = 1 17 E=\frac{1}{17} E=171

考查:非线性流水线和流水线调度问题

题目2: 在一个5 段流水线处理机上,各段执行时间均为Δt,需经9Δt 才能完成一个任务,其预约表如表3.8所示:
在这里插入图片描述
(1) 画出流水线任务调度的状态转移图。
(2) 求流水线的最优调度策略和最大吞吐率。 
(3) 按最优调度策略连续输入6 个任务,求流水线的实际吞吐率是多少。

解:
(1)我们解题的逻辑是:
预约表 → \rightarrow 禁止表 → \rightarrow 初始冲突标量 → \rightarrow 所有冲突变量 → \rightarrow 状态机

S 1 S_1 S1: 8
S 2 S_2 S2: 1
S 3 S_3 S3: 3,4
S 4 S_4 S4: 1

先写出禁止表: F = { 8 , 4 , 3 , 1 } F=\{8,4,3,1\} F={8,4,3,1}

然后二进制位元化得到初始冲突变量: C 0 = 10001101 C_0=10001101 C0=10001101
根据 n e w C 0 = s h r j ∨ C 0 newC_0=shr^j\lor C_0 newC0=shrjC0 计算出所有的冲突变量

第一轮
F 1 = { 7 , 6 , 5 , 2 } F_1=\{7,6,5,2\} F1={7,6,5,2}

J = 2 → C 1 A = 10101111 J=2 \rightarrow C_{1A}=10101111 J=2C1A=10101111
J = 5 → C 1 = 10001101 = C 0 J=5 \rightarrow C_1=10001101=C_0 J=5C1=10001101=C0
J = 6 → C 1 B = 10001111 J=6 \rightarrow C_{1B}=10001111 J=6C1B=10001111
J = 7 → C 1 = 10001101 = C 0 J=7 \rightarrow C_1=10001101=C_0 J=7C1=10001101=C0

第二轮
(1) C 1 A = 10101111 C_{1A}=10101111 C1A=10101111

F 2 = { 7 , 5 } F_2=\{7,5\} F2={7,5}
J = 7 → C 2 = 10001101 = C 0 J=7 \rightarrow C_{2}=10001101=C_{0} J=7C2=10001101=C0
J = 5 → C 2 = 10001101 = C 0 J=5 \rightarrow C_{2}=10001101=C_{0} J=5C2=10001101=C0

(2) C 1 B = 10001111 C_{1B}=10001111 C1B=10001111

F 2 = { 7 , 6 , 5 } F_2=\{7,6,5\} F2={7,6,5}
J = 7 → C 2 = 10001101 = C 0 J=7 \rightarrow C_{2}=10001101=C_{0} J=7C2=10001101=C0
J = 6 → C 2 = 10001111 = C 1 B J=6 \rightarrow C_{2}=10001111=C_{1B} J=6C2=10001111=C1B
J = 5 → C 2 = 10001101 = C 0 J=5 \rightarrow C_{2}=10001101=C_{0} J=5C2=10001101=C0

画出状态机:
在这里插入图片描述
(2)先找出所有的调度策略:(先写一个的,再写两个的,再写三个的,有条理的写)
枚举出所有的量:2,5,6,7

(5) AVG=5
(7) AVG=7
(2,5) AVG=3.5
(2,7) AVG=4.5
(6,5) AVG=5.5
(6,7) AVG=6.5
(6,6,7) AVG=9.5
(6,6,5) AVG=8.5

最小是(2,5),所以最优策略是(2,5)

因为最小的延迟是3.5
最大吞吐率 T P m a x = 1 3.5 Δ t TP_{max}=\frac{1}{3.5 \Delta t} TPmax=3.5Δt1

(3)
按最优调度策略画出时空图,才能计算各种性能标准:
在这里插入图片描述
总共需要到25个 Δ t \Delta t Δt T P = 6 25 Δ t TP=\frac{6}{25\Delta t} TP=25Δt6(实际吞吐率就是算完成每个任务所消耗的单位时间)

  • 8
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值