计算机系统结构教程课后答案.docx

上传人:b****3 文档编号:3132087 上传时间:2022-11-17 格式:DOCX 页数:23 大小:352.77KB
下载 相关 举报
计算机系统结构教程课后答案.docx_第1页
第1页 / 共23页
计算机系统结构教程课后答案.docx_第2页
第2页 / 共23页
计算机系统结构教程课后答案.docx_第3页
第3页 / 共23页
计算机系统结构教程课后答案.docx_第4页
第4页 / 共23页
计算机系统结构教程课后答案.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

计算机系统结构教程课后答案.docx

《计算机系统结构教程课后答案.docx》由会员分享,可在线阅读,更多相关《计算机系统结构教程课后答案.docx(23页珍藏版)》请在冰豆网上搜索。

计算机系统结构教程课后答案.docx

计算机系统结构教程课后答案

1.7

某台主频为400MHz的计算机执行标准测试程序,程序中指令类型、执行数量和平均时钟周期数如下:

指令类型指令执行数量平均时钟周期数

整数450001

数据传送750002

浮点80004

分支15002

求该计算机的有效CPI、MIPS和程序执行时间。

解:

(1)CPI=(45000×1+75000×2+8000×4+1500×2)/129500=1.776

(2)MIPS速率=f/CPI=400/1.776=225.225MIPS

(3)程序执行时间=(45000×1+75000×2+8000×4+1

500×2)/400=575s

 

1.9将计算机系统中某一功能的处理速度加快10倍,但该功能的处理时间仅为整个系统运行时间的40%,则采用此增强功能方法后,能使整个系统的性能提高多少?

解:

由题可知:

可改进比例Fe=40%=0.4部件加速比Se=10

根据

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×30%+1.25×(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

5

CIL

0.02

111110

6

SHR

0.01

1111110

7

STP

0.01

1111111

7

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

S3

S4

第2个任务

S1

S2

stall

S3

S3

S4

第3个任务

S1

S2

stall

stall

S3

S3

S4

第4个任务

S1

S2

stall

stall

stall

S3

S3

S4

(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,而且流水线的输出可以直接返回输入端或暂存于相应的流水寄存器中。

若在该流水线上计算:

试计算其吞吐率、加速比和效率。

 

由图可见,它在18个△t时间中,给出了7个结果。

所以吞吐率为:

如果不用流水线,由于一次求积需4△t,一次求和需4△t,则产生上述7个结果共需(4×4+3×4)△t=28△t。

所以加速比为:

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

 

4.5在CRAY-1机器上,按照链接方式执行下述4条向量指令(括号中给出了相应功能部件的执行时间),如果向量寄存器和功能部件之间的数据传送需要1拍,试求此链接流水线的通过时间是多少拍?

如果向量长度为64,则需多少拍才能得到全部结果?

V0←存储器(从存储器中取数:

7拍)

V2←V0+V1(向量加:

3拍)

V3←V2

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1