计算机系统结构教程课后答案Word文档格式.docx
《计算机系统结构教程课后答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《计算机系统结构教程课后答案Word文档格式.docx(23页珍藏版)》请在冰豆网上搜索。
![计算机系统结构教程课后答案Word文档格式.docx](https://file1.bdocx.com/fileroot1/2022-11/17/4385b60f-d119-4b83-b5e2-87aad598c717/4385b60f-d119-4b83-b5e2-87aad598c7171.gif)
根据
1.10计算机系统中有三个部件可以改进,这三个部件的部件加速比为:
部件加速比1=30;
部件加速比2=20;
部件加速比3=10
(1)如果部件1和部件2的可改进比例均为30%,那么当部件3的可改进比例为多少时,系统加速比才可以达到10?
(2)如果三个部件的可改进比例分别为30%、30%和20%,三个部件同时改进,那么系统中不可加速部分的执行时间在总执行时间中占的比例是多少?
(1)在多个部件可改进情况下,Amdahl定理的扩展:
已知S1=30,S2=20,S3=10,Sn=10,F1=0.3,F2=0.3,得:
得F3=0.36,即部件3的可改进比例为36%。
(2)设系统改进前的执行时间为T,则3个部件改进前的执行时间为:
(0.3+0.3+0.2)T=0.8T,不可改进部分的执行时间为
=0.2T。
已知3个部件改进后的加速比分别为S1=30,S2=20,S3=10,因此3个部件改进后的执行时间为:
改进后整个系统的执行时间为:
Tn=
=0.045T+0.2T=0.245T
那么系统中不可改进部分的执行时间在总执行时间中占的比例是:
0.2/0.245=81.6%
1.11假设浮点数指令FP指令的比例为30%,其中浮点数平方根FPSQR占全部指令的比例为4%,FP操作的CPI为5,FPSQR操作的CPI为20,其他指令的平均CPI为1.25。
改进前:
CPI=5×
30%+1.25×
(1-30%)=2.375
设除FPSQR外其余指令的平均CPI为X
则2.375=20×
4%+(1-4%)X,解出X=1.640625
方案1:
CPI1=3×
4%+1.640625×
(1-4%)=1.695
方案2:
CPI2=3×
(1-30%)=1.775
2.11
指令
频度pi
操作码使用哈夫曼编码
操作码长度li
ADD
0.43
0
1
CLA
0.22
10
2
SUB
0.13
110
3
JMP
0.07
11100
5
JOM
0.06
11101
5
STO
0.05
11110
CIL
0.02
111110
6
SHR
0.01
1111110
7
STP
1111111
L=
=0.43x1+0.22x2+0.13x3+0.07x5+0.06x5+0.05x5+0.02x6+0.01x7+0.01x7
=2.42
2.12.
二地址指令的结构是(4位操作码OP),(6位地址码A1),(6位地址码A2)。
一地址指令的结构是(10位操作码OP),(6位地址码A)。
二地址指令,最多共16条二地址指令。
每少一条二地址指令,则多26条一地址指令,
所以一地址指令最多有(16-A)*26条
3.5在一台单流水线多操作部件的处理机上执行下面的程序,每条指令的取指令、指令译码需要一个时钟周期,MOVE、ADD和MUL操作分别需要2个、3个和4个时钟周期,每个操作都在第一个时钟周期从通用寄存器中读操作数,在最后一个时钟周期把运算结果写到通用寄存器中。
k:
MOVER1,R0;
R1←(R0)
k+1:
MULR0,R2,R1;
R0←(R2)×
(R1)
k+2:
ADDR0,R2,R3;
R0←(R2)+(R3)
画出指令执行过程的流水线时空图,并计算完成这3条指令共需要多少个时钟周期?
在程序实际执行过程中,二种数据相关会引起流水线停顿。
一是“先写后读”相关,k指令对R1的写在程序执行开始后的第四个时钟;
k+1指令对R1的读对指令本身是第三个时钟,但k+1指令比k指令晚一个时钟进入流水线,则在程序执行开始后的第四个时钟要读R1。
不能在同一时钟周期内读写同一寄存器,因此k+1指令应推迟一个时钟进入流水线,产生了流水线停顿。
二是“写—写”相关,k+1指令对R0的写对指令本身是第六个时钟,而要求该指令进入流水线应在程序执行开始后的第三个时钟,所以对R0的写是在程序执行开始后的第八个时钟。
k+2指令对R0的写对指令本身是第五个时钟,而k+2指令比k+1指令晚一个时钟进入流水线,则在程序执行开始后的第四个时钟,所以对R0的写是在程序执行开始后的第八个时钟。
不能在同一时钟周期内写写同一寄存器,因此k+2指令应推迟一个时钟进入流水线,产生了流水线停顿。
另外,可分析“先读后写”相关不会产生流水线的停顿。
该指令流水线由六个功能段取指、译码、取数、运一、运二和存数等组成,则程序指令执行过程的流水线时空图如下图所示。
若3条指令顺序流动,共需要9个时钟周期。
空间
存数K存数K+1存数K+2存数
运二K+1运二
运一K+1运一K+2运一
取数K取数K+1取数K+2取数
译码K译码K+1译码K+2译码
取指K取指K+1取指K+2取指时间
0123456789
3.6有一指令流水线如下所示
(1)求连续输入10条指令,该流水线的实际吞吐率和效率;
(2)该流水线的“瓶颈”在哪一段?
请采取两种不同的措施消除此“瓶颈”。
对于你所给出的两种新的流水线,连续输入10条指令时,其实际吞吐率和效率各是多少?
(1)
(2)瓶颈在3、4段。
⏹变成八级流水线(细分)
⏹重复设置部件
3.7有一个流水线由4段组成,其中每当流经第3段时,总要在该段循环一次,然后才能流到第4段。
如果每段经过一次所需要的时间都是
,问:
(1)当在流水线的输入端连续地每
时间输入任务时,该流水线会发生什么情况?
(2)此流水线的最大吞吐率为多少?
如果每
输入一个任务,连续处理10个任务时的实际吞吐率和效率是多少?
(3)当每段时间不变时,如何提高该流水线的吞吐率?
仍连续处理10个任务时,其吞吐率提高多少?
(1)会发生流水线阻塞情况。
第1个任务
S1
S2
S3
S4
第2个任务
stall
第3个任务
第4个任务
(2)
(3)重复设置部件
吞吐率提高倍数=
=1.64
3.8有一条静态多功能流水线由5段组成,加法用1、3、4、5段,乘法用1、2、5段,第3段的时间为2△t,其余各段的时间均为△t,而且流水线的输出可以直接返回输入端或暂存于相应的流水寄存器中。
现要在该流水线上计算,画出其时空图,并计算其吞吐率、加速比和效率。
首先,应选择适合于流水线工作的算法。
对于本题,应先计算A1+B1、A2+B2、A3+B3和A4+B4;
再计算(A1+B1)×
(A2+B2)和(A3+B3)×
(A4+B4);
然后求总的结果。
其次,画出完成该计算的时空图,如图所示,图中阴影部分表示该段在工作。
由图可见,它在18个△t时间中,给出了7个结果。
所以吞吐率为:
如果不用流水线,由于一次求积需3△t,一次求和需5△t,则产生上述7个结果共需(4×
5+3×
3)△t=29△t。
所以加速比为:
该流水线的效率可由阴影区的面积和5个段总时空区的面积的比值求得:
3.8有一条动态多功能流水线由5段组成,加法用1、3、4、5段,乘法用1、2、5段,第2段的时间为2△t,其余各段时间均为△t,而且流水线的输出可以直接返回输入端或暂存于相应的流水寄存器中。
若在该流水线上计算:
试计算其吞吐率、加速比和效率。
解
如果不用流水线,由于一次求积需4△t,一次求和需4△t,则产生上述7个结果共需(4×
4+3×
4)△t=28△t。
4.5在CRAY-1机器上,按照链接方式执行下述4条向量指令(括号中给出了相应功能部件的执行时间),如果向量寄存器和功能部件之间的数据传送需要1拍,试求此链接流水线的通过时间是多少拍?
如果向量长度为64,则需多少拍才能得到全部结果?
V0←存储器(从存储器中取数:
7拍)
V2←V0+V1(向量加:
3拍)
V3←V2<
A3(按(A3)左移:
4拍)
V5←V3∧V4(向量逻辑乘:
2拍)
通过时间就是每条向量指令的第一个操作数执行完毕需要的时间,也就是各功能流水线由空到满的时间,在流水线充满之后,向量中后继操作数继续以流水方式执行,直到整组向量执行完毕。
T通过=(1+7+1)+(1+3+1)+(1+4+1)+(1+2+1)=24(拍)
T总共=T通过+(64-1)=24+63=87拍
4.6T通过=(1+7+1)+(1+3+1)+(1+5+1)+(1+2+1)+(1+7+1)=34(拍)
T总共=T通过+(64-1)=63+34=97拍
4.7某机有16个向量寄存器,其中V0~V5中分别放有向量A、B、C、D、E、F,向量长度均为8,向量各元素均为浮点数;
处理部件采用二个单功能流水线,加法功能部件时间为2拍,乘法功能部件时间为3拍。
用类似Cray
1的链接技术,先计算(A+B)*C,在流水线不停流的情况下,接着计算(D+E)*F。
解答:
(1)
(A+B)*C
可用以下2条指令完成:
V0←A+B
V1←V0*C
流水线流过时间为(1+2+1)
+
(1+3+1)
=
9拍
(2)
实际吞吐率为
=26.7MFLOPS
4.8
分段开采
LVV1,Rb;
取向量B
MULTVSV2,V1,Fs;
向量和标量相乘
SVRa,V2;
存向量
三条指令三个编队
T200=4x(15+Tstart)+200x3
=660+(4xTstart)
Tstart=12+7+12=31
T200=660+4