《计算机系统原理》习题及解答.doc

  1. 1、本文档共59页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

PAGE

PAGE59

习题解答

第1章计算机系统概述

教材中图1.1所示模型机(采用教材图1.2所示指令格式)的指令系统中,除了有mov(op=0000)、add(op=0001)、load(op=1110)和store(op=1111)指令外,R型指令还有减(sub,op=0010)和乘(mul,op=0011)等指令,请仿照教材图1.3给出求解表达式“z=(x-y)*y;”所对应的指令序列(包括机器代码和对应的汇编指令)以及在主存中的存放内容,并仿照教材图1.5给出每条指令的执行过程以及所包含的微操作。

参考答案:

实现z=(x-y)*y的程序在主存部分单元中的初始内容如下。

主存地址

主存单元内容

内容说明(Ii表示第i条指令)

指令的符号表示

0

11100111

I1:R[0]←M[7];op=1110:取数操作

loadr0,7#

1

00000100

I2:R[1]←R[0];op=0000:传送操作

movr1,r0

2

11100110

I3:R[0]←M[6];op=1110:取数操作

loadr0,6#

3

00100001

I4:R[0]←R[0]-R[1];op=0010:减操作

subr0,r1

4

00110001

I5:R[0]←R[0]*R[1];op=0011:乘操作

mulr0,r1

5

11111000

I6:M[8]←R[0];op=1111:存数操作

store8#,r0

6

00010001

操作数x,值为17

7

00000001

操作数y,值为1

8

00000000

结果z,初始值为0

实现z=(x-y)*y的程序中每条指令的执行过程如下。

指令阶段

I1:11100111

I2:00000100

I3:11100110

I4:00100001

I5:00110001

I6:11111000

取指令

IR←M[0000]

IR←M[0001]

IR←M[0010]

IR←M[0011]

IR←M[0100]

IR←M[0101]

指令译码

op=1110,取数

op=0000,传送

op=1110,取数

op=0010,减

op=0011,加

op=1111,存数

修改PC

PC←0000+1

PC←0001+1

PC←0010+1

PC←0011+1

PC←0100+1

PC←0101+1

取数执行

MDR←M[0111]

A←R[0]、mov

MDR←M[0110]

A←R[0]、B←R[1]、sub

A←R[0]、B←R[1]、mul

MDR←R[0]

送结果

R[0]←MDR

R[1]←F

R[0]←MDR

R[0]←F

R[0]←F

M[1000]←MDR

执行结果

R[0]=1

R[1]=1

R[0]=17

R[0]=17-1=16

R[0]=16*1=16

M[8]=16

2.若有两个基准测试程序P1和P2在机器M1和M2上运行,假定M1和M2的价格分别是5000元和8000元,下表给出了P1和P2在M1和M2上所花的时间和指令条数。

程序

M1

M2

指令条数

执行时间

指令条数

执行时间

P1

200×106

1000ms

150×106

500ms

P2

300×103

3ms

420×103

6ms

请回答下列问题:

对于P1,哪台机器的速度快?快多少?对于P2呢?

在M1上执行P1和P2的速度分别是多少MIPS?在M2上的执行速度又各是多少?从执行速度来看,对于P2,哪台机器的速度快?快多少?

假定M1和M2的时钟频率各是800MHz和1.2GHz,则在M1和M2上执行P1时的CPI各是多少?

如果某用户需要大量使用程序P1,并且该用户主要关心系统的响应时间而不是吞吐率,那么,该用户需要大批购进机器时,该选择M1还是M2?为什么?(提示:从性价比上考虑)

如果另一个用户也需要购进大批机器,但该用户使用P1和P2一样多,主要关心的也是响应时间,那么,应该选择M1还是M2?为什么?

参考答案:

如果另一个用户也需要购进大批机器,但该用户使用P1和P2一样多,主要关心的也是响应时间,那么,应该选择M1还是M2?为什么?(1)对于程序P1,M1上执行时间是M2的2倍,故M2比M1快1倍;对于程序P2,M2上的执行时间是M1的2倍,故M1比M2快1倍。

在M1上P1的速度为200M/1s=200MIPS,P2的速度为0.3M/0.003s=100MIPS;在M2上P1的速度为150M/0.5s=300MIPS,P2的速度为0.42M/0.006s=70MIPS。从执行速度来看,对于P2,因为100/70=1.43,所以M1比M2快0.43

文档评论(0)

balala11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档