根据主存容量4MB=222B,得主存地址字段中主存字块标记为22-7-5=10位。主存地址字段各段格式为:

(2)由于每个字块中有8个字,而且初态Cache为空,因此CPU读第0号单元时,未命中,必须访问主存,并将该字所在的块调入Cache第0组中的任一块内,但接着CPU读1~7号单元时均命中。同理,CPU读第8、16、…、88号单元时均未命中。可见CPU在连续读90字中共有12次未命中,而后7次循环读90个字全部命中(因为总共只有13个块,而Cache共有128组),命中率为:

(90×8-12)/90×8=98.3%

(3)有Cache速度提高:[6t×90×8/(t×(720-12)+6t×12)]-1=4.54

第五章 输入输出系统

5.11 简述I/O接口的功能和基本组成。

答:(1)I/O接口的功能有:选址、传送命令、传送数据和反映设备状态。

(2)I/O接口的基本组成:设备选择电路、命令寄存器和命令译码器、数据缓冲寄存器、设备状态标记触发器。

5.16 在什么条件和什么时间,CPU可以响应I/O的中断请求?

答:(1)CPU响应I/O设备提出中断请求的条件是:必须满足CPU中的允许中断触发器EINT为“1”;I/O本身有请求又未被屏蔽;经排队后又被选中。

(2)CPU响应中断的时间一定是在每条指令执行阶段的结束时刻。

5.28 CPU对DMA请求和中断请求的响应时间是否相同?为什么?

答:(1)不相同,响应中断请求是在每条指令执行周期结束的时刻,而响应DMA请求是在存取周期结束的时刻。

(2)因为中断方式是程序切换,而程序又是由指令组成,所以必须在一条指令执行完毕才能响应中断请求。而且CPU只有在每条指令执行周期的结束时刻才发出查询信号,以获取中断请求信号,此时若条件满足,便能响应中断请求。DMA请求是由DMA接口根据设备的工作状况向CPU申请占用总线,此时只要总线未被CPU占用,即可立即响应DMA请求;若总线正被CPU占用,则必须等待该存取周期结束时,CPU才交出总线的使用权。

5.31

假设某设备向CPU传送信息的最高频率是40KHz,而相应的中断处理程序执行时间为40ms,试问该外设是否可用程序中断方式与主机交换信息,为什么?

答:根据题意,该设备每隔1/40K=25ms向CPU传送一次信息,如果采用程序中断方式,需40ms(>25ms)才能处理一次数据,从而造成数据丢失,所以不能用程序中断方式与主机交换信息。

5.33 试从下面7个方面比较程序查询、程序中断和DMA三种方式的综合性能。

方式

性能

程序查询

程序中断

DMA

数据传送

依赖软件

依赖软件

依赖硬件

传送数据基本单位

并行性

CPU与I/O串行

CPU与I/O并行

传输与主程序串行

CPU与I/O并行

传输与主程序串行

主动性

CPU

设备

设备

传输速度

经济性

费用低

介于查询和DMA之间

费用高

应用对象

低速

较低

高速成批传输

6.9

当十六进制数9BH和FFH分别表示为原码、补码、反码、移码和无符号数时,所对应的十进制数各为多少(设机器数采用1位符号位)?

答:(1)9BH对应表示为原码、补码、反码、移码和无符号数时的十进制数分别为:-27、-101、-100、+27、155

(2)FFH对应表示为原码、补码、反码、移码和无符号数时的十进制数分别为:-127、-1、-0、+127、255

6.12设浮点数格式为:阶码5位(含1位阶符),尾数11位(含1位数符)。写出 所对应的机器数。要求如下:

(1)阶码和尾数均为原码。

(2)阶码和尾数均为补码。

(3)阶码为移码,尾数为补码。

答:

=0.0110011=0.110011×2-1=0.1100110000×2-0001

(1)阶码和尾数均为原码表示的浮点数为:1 0001;0 1100110000

(2)阶码和尾数均为补码表示的浮点数为:1 1111;0 1100110000

(3)阶码为移码,尾数为补码的浮点数为:0 1111;0 1100110000

6.16设机器数字长为16位,写出下列各种情况下它能表示的数的范围。设机器数采用1位符号位,答案均用十进制数表示。

(1)无符号数

(2)原码表示的定点小数

(3)补码表示的定点小数

(4)补码表示的定点整数

(5)原码表示的定点整数

(6)浮点数的格式为:阶码6位(含1位阶符),尾数10位(含1位数符)。分别写出正数和负数的表示范围。

(7)浮点数格式同(6),机器数采用补码规格化形式,分别写出其对应的正数和负数的范围。

答:(1)无符号数:0~65535

(2)原码表示的定点小数:-32767/32768~+32767/32768

(3)补码表示的定点小数:-1~+32767/32768

(4)原码表示的定点整数:-32767~+32767

(5)补码表示的定点整数:-32768~+32767

(6)浮点数(负数):-231×(1-2-9)~

-2-31×2-9

浮点数(正数):2-31×2-9~231×(1-2-9)

(7)补码表示的浮点规格化负数:-231~

-2-32×(2-1+2-9)

补码表示的浮点规格化正数:2-32×2-1~231×(1-2-9)

6.17设机器数字长为8位(含1位符号位),对下列各机器数进行算术左移一位、两位,算术右移一位、两位,讨论结果是否正确。

(1)[x]原=0.0011010,算术左移一位:0.0110100,两位:0.1101000;算术右移一位:0.0001101,两位:0.0000110(低位丢1,影响精度)

(2)[x]原=1.1101000,算术左移一位:1.1010000(高位丢1,结果出错),两位:1.0100000(高位丢1,结果出错);算术右移一位:1.1110100,两位:1.1111010

(3)[x]原=1.0011001,算术左移一位:1.0110010,两位:1.1100100;算术右移一位:1.1001100(低位丢1,影响精度),两位:1.1100110

(4)[x]补=0.1010100,算术左移一位:0.0101000(高位丢1,结果出错),两位:0.1010000;算术右移一位:0.0101010,两位:0.0010101

(5)[x]补=1.1101000,算术左移一位:1.1010000,两位:1.0100000;算术右移一位:1.1110100,两位:1.1111010

(6)[x]补=1.0011001,算术左移一位:1.0110010(高位丢0,结果出错),两位:1.1100100(高位丢0,结果出错);算术右移一位:1.1001100(低位丢1,影响精度),两位:1.1100110

(7)[x]反=1.0101111,算术左移一位:1.1011111(高位丢0,结果出错),两位:1.0111111;算术右移一位:1.1010111,两位:1.1101011

(8)[x]反=1.1101000,算术左移一位:1.1010001,两位:1.0100011;算术右移一位:1.1110100(低位丢0,影响精度),两位:1.1111010(低位丢0,影响精度)

(9)[x]反=1.0011001,算术左移一位:1.0110011(高位丢0,结果出错),两位:1.1100111(高位丢0,结果出错);算术右移一位:1.1001100,两位:1.1100110(低位丢0,影响精度)

6.19设机器数字长为8位(含1位符号位),用补码运算规则计算下列各题。

(1)A= ,B= - ,求A+B。

(2)A= ,B= - ,求A-B。

答:(1)A= =0.001001,B= - =

-0.01101,[A]补=0.0010010,[B]补=1.1001100,

[A+B] 补=0.0010010+1.1001100=1.1011110,A+B=

-0.0100010= -

(2)A= =0.10011,B= - = -0.0010001

[A]补=0.1001100,[B]补=1.1101111,[-B]补=0.0010001

[A-B] 补=0.1001100+0.0010001=0.1011101,A-B=

0.1011101=

6.20用原码一位乘、两位乘和补码一位乘计算x×y。

(2)x= -0.010111,y= -0.010101

(4)x=0.11011,y= -0.11101

答:(2)x= -0.010111,y=

-0.010101,x*=0.010111,y*=0.010101

① 原码一位乘

部分积

乘数

说明

0.000000

0.010111

010101

部分积初态Z0=0

+X*

0.010111

0.001011

0.000000

101010

部分积和乘数右移1位

+0

0.001011

0.000101

0.010111

110101

部分积和乘数右移1位

+X*

0.011100

0.001110

0.000111

0.010111

011010

001101

部分积和乘数右移1位

+0,直接右移

+ X*

0.011110

0.001111

0.000111

000110

100011

部分积和乘数右移1位

+0,直接右移1位,乘法结束

∵XSÅYS=1Å1=0,∴[X×Y]原=0.000111100011,X×Y=

0.000111100011

原码两位乘:[X*]补=0.010111,[-X*]补=1.101001,[2X*]补=0.101110

部分积

乘数

标志位Cj

说明

000.000000

000.010111

010101

0

部分积初态Z0=0,Cj=0

+X*,Cj=0

000.010111

000.000101

000.010111

110101

0

部分积和乘数算术右移2位

+ X*,Cj=0

000.011100

000.000111

000.010111

001101

0

部分积和乘数算术右移2位

+X*,Cj=0

000.011110

0000.000111

100011

0

部分积和乘数算术右移2位

∵XSÅYS=1Å1=0,∴[X×Y]原=0.000111100011,X×Y=

0.000111100011

补码一位乘:[X]补=1.101001,[-X]补=0.010111,[Y]补=1.101011

部分积

乘数

附加位

说明

00.000000

00.010111

1101011

0

部分积初态Z0=0

+[-X]补

00.010111

00.001011

00.000101

11.101001

1110101

1111010

1

1

部分积和乘数算术右移1位

+0,直接算术右移1位

+[X]补

11.101110

11.110111

00.010111

0111101

0

部分积和乘数算术右移1位

+[-X]补

00.001110

00.000111

11.101001

0011110

1

部分积和乘数算术右移1位

+[X]补

11.110000

11.111000

00.000111

0001111

0

部分积和乘数算术右移1位

+[-X]补

00.001111

00.000111

1000111

1

部分积和乘数算术右移1位

加0,最后1步不移位,乘法结束

[X×Y]补=0.000111100011,∴X×Y=

0.000111100011

(4)x=0.11011,y= -0.11101,,x*=0.11011,y*=0.11101

① 原码一位乘

部分积

乘数

说明

0.00000

0.11011

11101

部分积初态Z0=0

+X*

0.11011

0.01101

11110

右移1位

0.00110

0.11011

11111

+0,右移1位

+X*

1.00001

0.10000

0.11011

11111

右移1位

+X*

1.01011

0.10101

0.11011

11111

右移1位

+X*

1.10000

0.11000

01111

右移1位,乘法结束

∵XSÅYS=0Å1=1,∴[X×Y]原=1.1100001111,X×Y=

-0.1100001111

原码两位乘:[X*]补=0.11011,[-X*]补=1.00101,[2X*]补=1.10110

部分积

乘数

标志位Cj

说明

000.00000

000.11011

011101

0

部分积初态Z0=0,Cj=0

+X*,Cj=0

000.11011

000.00110

111.00101

110111

0

右移2位

[-X*]补,Cj=1

111.01011

111.11010

001.10110

111101

1

右移2位

+2X*,Cj=0

001.10000

000.11000

011110

0

右移1位,乘法结束

∵XSÅYS=0Å1=1,∴[X×Y]原=1.1100001111,X×Y=

-0.1100001111

补码一位乘:[X]补=0.11011,[-X]补=1.00101,[Y]补=1.00011

部分积

乘数

附加位

说明

00.00000

11.00101

100011

0

部分积初态Z0=0

+[-X]补

11.00101

11.10010

11.11001

00.11011

110001

011000

1

1

右移1位

+0,直接右移1位

+[X]补

00.10100

00.01010

001100

0

右移1位

00.00101

000110

0

+0,直接右移1位

00.00010

11.00101

100011

0

+0,直接右移1位

+[-X]补

11.00111

10001

最后一步不移位

∵[X×Y]补=11.0011110001,∴X×Y= -0.1100001111

6.21用原码加减交替法和补码加减交替法计算x÷y。

(1)x= 0.100111,y= 0.101011

答:(1)原码加减交替法:X*= 0.100111,Y*=

0.101011,[X*]补=00.100111,[Y*]补=00.101011,[-Y*]补=11.010101

被除数(余数)

说明

00.100111

11.010101

0.000000

+[-Y*]补

11.111100

11.111000

00.101011

0

0

余数为负,上商0

左移1位

+[Y*]补

00.100011

01.000110

11.010101

01

01

余数为正,上商1

左移1位

+[-Y*]补

00.011011

00.110110

11.010101

011

011

余数为正,上商1

左移1位

+[-Y*]补

00.001011

00.010110

11.010101

0111

0111

余数为正,上商1

左移1位

+[-Y*]补

11.101011

11.010110

00.101011

01110

01110

余数为负,上商0

左移1位

+[Y*]补

00.000001

00.000010

11.010101

011101

011101

余数为正,上商1

左移1位

+[-Y*]补

11.010111

00.101011

0111010

余数为负,上商0

恢复正余数,+[Y*]补

00.000010

除法结束

∵XSÅYS=0Å0=0,[X÷Y]原=0.111010,∴X÷Y=0.111010,余数R=0.000010×2-6

(2)补码加减交替法:

[X]补=00.100111,[Y]补=00.101011,[-Y]补=11.010101

被除数(余数)

说明

00.100111

11.010101

0.000000

同号,+[-Y]补

11.111100

11.111000

00.101011

0

0

余数与除数异号,上商0

左移1位

+[Y]补

00.100011

01.000110

11.010101

01

01

余数与除数同号,上商1

左移1位

+[-Y]补

00.011011

00.110110

11.010101

011

011

余数与除数同号,上商1

左移1位

+[-Y]补

00.001011

00.010110

11.010101

0111

0111

余数与除数同号,上商1

左移1位

+[-Y]补

11.101011

11.010110

00.101011

01110

01110

余数与除数异号,上商0

左移1位

+[Y]补

00.000001

00.000010

011101

0111010

余数与除数同号,上商1

左移1位,末位恒置“1”

∵XSÅYS=0Å0=0,[X÷Y]补=0.111011,∴X÷Y=0.111011,余数R=0.000010×2-6

6.22设机器数字长为16位(含1位符号位),若一次移位需1µs,一次加法需1µs,试问原码一位乘、补码一位乘、原码加减交替法和补码加减交替法最多各需多少时间?

答:(1)原码一位乘加15次,移位15次,共30µs。

(2)原码两位乘加8次,移位8次(最后一次移一位),共16µs。

(3)补码一位乘加16次,移位15次,共31µs。

(4)原码加减交替法加16次,移位15次,共31µs。

(5)补码加减交替法(采用末位恒置“1”法)加15次,移位15次,共30µs。

6.27假设阶码取3位,尾数取6位(均不包括符号位),计算下列各题。

(1) [25× ]+[ 24×(- )]

答:X=25× =25×0.1011,Y=24×(-

)=24×(-0.1001)

假设两数在计算机中以补码表示,并采用双符号位,可表示为

X:00

101 00 101100

Y:00

100 11 011100

运算步骤为:

(1)对阶

[ΔE]补=[EX]补+[-EY]补=00,101+11,100=00,001,即ΔE

=1,Y的阶码小,应使MY右移1位,EY加1,得 [Y]浮=00 101 11 101110(0)

(2)尾数求和

00.101100+11.101110(0)=00.011010(0)

(3)规格化处理

结果的符号位00与最高数值位0相同,需左归。尾数左移一位,阶码减1,得

[X+Y]浮=00

100 00.110100

(4)舍入处理

采用0舍1入法处理得尾数为00.110100

(5)判溢出

阶码符号位为00,不溢出,故得最终结果为:

[X+Y]浮=00

100 00.110100=24×

7.6

某指令系统字长为16位,地址码取4位,试提出一种方案,使该指令系统有8条三地址指令、16条二地址指令、100条一地址指令。

答:固定操作码为4位。

8条三地址指令操作码为:0000~0111(剩下1000~1111共8个扩展窗口)

16条二地址指令操作码为:1000 0000~1000 1111

(剩下1001 0000~1111 1111共112个扩展窗口)

100条一地址指令操作码为:10010000 0000~10010000 1111

10010001 0000~10010001 1111

10010010 0000~10010010 1111

10010011 0000~10010011 1111

10010100 0000~10010100 1111

10010101 0000~10010101 1111

10010110 0000~10010110 0011

7.7

设指令字长为16位,采用扩展操作码技术,每个操作数的地址为6位。如果定义了13条二地址指令,试问还可安排多少条一地址指令?

答:指令字长为16位,每个操作数的地址为6位,固定操作码为4位,最多可定义16条二地址指令。现共定义了13条二地址指令,故剩下3个扩展窗口,最多可安排一地址指令条数为:

3×26=192条

7.8

某机指令字长16位,每个操作数的地址码为6位,设操作码长度固定,指令分为零地址、一地址和二地址三种格式。若零地址指令有M种,一地址指令有N种,则二地址指令最多有几种?若操作码位数可变,则二地址指令最多允许有几种?

答:(1)若操作码长度固定,则操作码位数为4位,故二地址指令条数为:16-M-N

(2)若操作码位数可变,假设二地址指令有X种,则:

M=[(16-X)×26-N]×26

∴X=16-N×2-6-M×2-12

7.12 画出“SUB

@R1”指令对操作数的寻址及减法过程的流程图。设被减数和结果存于ACC中,@表示间接寻址,R1寄存器的内容为2074H。

答:流程图如下所示

7.14

设相对寻址的转移指令占两个字节,第一字节是操作码,第二字节是相对位移量(用补码表示),假设当前转移指令第一字节所在地址为2000H,且CPU每取出一个字节便自动完成(PC)+1→PC的操作。试问当执行“JMP

* +8”和“JMP * -9”指令时,转移指令第二字节的内容各为多少?

答:(1)根据汇编语言指令JMP *

+8,即要求转移后的目标地址为2000H+08H=2008H,但因为CPU取出该指令后PC值已修改为2002H,故转移指令第二字节的内容应为+6(十进制),写成补码为06H。

(2)同理,执行“JMP * -9”指令时,要求转移指令第二字节的内容应为-11(十进制),写成补码为:F5H

7.16某机主存容量为4M×16位,且存储字长等于指令字长,若该机指令系统可完成108种操作。操作码位数固定,且具有直接、间接、变址、基址、相对、立即六种寻址方式,试回答以下问题。

(1)画出一地址指令格式并指出各字段的作用;

(2)该指令直接寻址的最大范围;

(3)一次间接寻址和多次间接寻址的寻址范围;

(4)立即数的范围(十进制表示)

(5)相对寻址的位移量(十进制表示)

(6)上述六种寻址方式的指令中哪一种执行时间最短,哪一种最长,为什么?哪一种便于程序浮动,哪一种最适合处理数组问题?

(7)如何修改指令格式,使指令的寻址范围可扩大到4M?

(8)为使一条转移指令能转移到主存的任一位置,可采取什么措施?简要说明之。

答:(1)一地址指令格式为:

OP M A

其中OP为操作码字段,共7位,可完成108种操作;

M为寻址方式特征位,共3位,可反映6种寻址方式; A形式地址,共16-7-3-6位。

(2)直接寻址的最大范围为:26=64

(3)由于存储字长为16位,故一次间址的寻址范围为216。若多次间址,需用存储字的最高位来区别是否继续间接寻址,故寻址范围为215。

(4)立即数的范围是-32~+31(有符号数)或0~63(无符号数)

(5)相对寻址的位移量为-32~+31

(6)上述六种寻址方式中,因立即数由指令直接给出,故立即寻址的指令执行时间最短。间接寻址在指令的执行阶段要多次访存,故执行时间最长。

OP M A1

A2

(7)若指令的格式改为双字指令,即

其中OP 7位,M 3位,A1 6位,A2

16位,即指令的地址码字段共16+6=22位,则指令的直接寻址范围可扩大到4M。

(8)为使一条转移指令能转移到主存的任一位置,寻址范围需达到4M,除了采用(7)所示的格式外,还可配置22位的基址寄存器或22位的变址寄存器,使EA=(BR)+A或EA=(IX)

+A,便可访问4M存储空间。还可以通过16位的基址寄存器左移6位再和形式地址相加,也可达到同样的效果。

7.18设某机器共能完成78种操作,若指令字长16位,试问一地址格式的指令地址码可取几位?若想使指令的寻址范围扩大到216,可采用什么办法?举出三种以上不同的例子加以说明。

答:根据78种操作,可求出操作码位数为7位,则单地址格式的指令地址码占16-7=

9位。直接寻址范围为29=512。若想使指令的寻址范围扩大到216,可采用以下三种寻址方法:

(1)若指令字长等于存储字长均为16位,则采用间接寻址可使寻址范围扩大到216,因为间址时(设非多次间址)从存储单元中取出的有效地址为16位。

(2)采用变址寻址,并设变址寄存器RX为16位,则有效地址EA=(RX)+A(形式地址),即可使寻址范围扩大到216。

(3)采用基址寻址,并设基址寄存器RB为16位,则有效地址EA=(RB)+A(形式地址),即可使寻址范围扩大到216。

7.19

CPU内有32个32位的通用寄存器,设计一种能容纳64种操作的指令系统。假设指令字长等于机器字长,试回答以下问题。

(1)如果主存可直接或间接寻址,采用寄存器-存储器型指令,能直接寻址的最大存储空间是多少?画出指令格式并说明各字段的含义。

(2)在满足(1)的前提下,如果采用通用寄存器作基址寄存器,则上述寄存器-存储器型指令的指令格式有何特点?画出指令格式并指出这类指令可访问多大的存储空间?

答:(1)根据题意指令格式如下:

OP I R A

其中OP占6位,为操作码,可容纳64种操作;I占1位,为直接/间接寻址方式(I=1为间址,I=0为直接寻址);R占5位,为32个通用寄存器编号;A占20位,为形式地址。

这种指令格式能直接寻址的存储空间为220=1M。

(2)根据题意,保留(1)格式的OP,I,R字段,增加B字段,用以指出哪个寄存器为基址寄存器。此时基址寻址的特征隐含在OP中。其指令格式如下:

OP I R B A

其中OP占6位,为操作码,对应64种操作;I占1位,为直接/间接寻址方式(I=1为间址,I=0为直接寻址);R占5位,为32个通用寄存器编号;B占5位,为基址寄存器编号;A占15位,为形式地址。

因为通用寄存器32位,用它作基址寄存器后,有效地址EA等于基址寄存器内容加上形式地址,可得32位得有效地址,故寻址范围可达232=4G。

第八章

CPU的结构和功能

8.2什么是指令周期?指令周期是否有一个固定值?为什么?

答:指令周期是CPU每取出并执行一条指令所需的全部时间,也即CPU完成一条指令的时间。由于各种指令操作功能不同,因此各种指令的指令周期是不同的,指令周期的长短主要和指令在执行阶段的访存次数和执行阶段所需要完成的操作有关。

8.8 什么是指令流水?画出指令二级流水和四级流水的示意图,它们中的哪个更能提高处理器速度,为什么?

答:指令流水就是改变各条指令按顺序串行执行的规则,使机器在执行上一条指令的同时,取出下一条指令。其示意图分别如下:

把指令周期划分得更细,使更多的指令在同一时间内执行,更能提高处理器速度,故四级流水比二级流水的处理速度高。

8.11今有四级流水线,分别完成取指(IF)、译码并取数(ID)、执行(EX)、写结果(WR)四个步骤。假设完成各步操作的时间依次为100ns、100ns、70ns、50ns。

(1)流水线的时钟周期应取何值?

(2)若相邻的指令发生数据相关,那么第二条指令安排推迟多少时间才能不发生错误?

(3)若相邻两指令发生数据相关,而不推迟第二条指令的执行,可采取什么措施?

答:(1)流水线的时钟周期应取100ns。

(2)若相邻的指令发生数据相关,需使第二条指令暂停执行,直到前面指令产生结果后,再执行第二条指令,因此至少要延迟两个时钟周期。

(3)若想不推迟第二条指令执行,在硬件技术上可采取旁路技术,即设置直接传送数据的通路。

8.25某机有五个中断源L0、L1、L2、L3、L4,按中断响应的优先次序由高向低排序为L0→L1→L2→L3→L4,现要求中断处理次序改为L1→L4→L2→L0→L3,写出各中断源的屏蔽字。

中断源

屏蔽字

L0 L1 L2 L3 L4

L0

1

0

0

1

0

L1

1

1

1

1

1

L2

1

0

1

1

0

L3

0

0

0

1

0

L4

1

0

1

1

1

第九章

控制单元的功能

9.1设CPU内有这些部件:PC、IR、MAR、MDR、AC、CU。

(1)写出取指周期的全部微操作。

(2)写出减法指令“SUB X”、取数指令“LDA X”、存数指令“STA

X”(X均为主存地址)在执行阶段所需的全部微操作。

(3)当上述指令为间接寻址时,写出执行这些指令所需的全部微操作。

(4)写出无条件转移指令“JMP Y”和结果溢出则转指令“BAO,Y”在执行阶段所需的全部微操作。

答:参考P382例9.1。

9.3什么是指令周期、机器周期和时钟周期?三者有何关系?

答:指令周期是CPU每取出并执行一条指令所需的全部时间,也即CPU完成一条指令的时间。机器周期是所有指令执行过程中的一个基准时间,通常以存取周期作为机器周期。时钟周期是机器主频的倒数,也可称为节拍,它是控制计算机操作的最小单位时间。

一个指令周期包含若干个机器周期,一个机器周期又包含若干个时钟周期,每个指令周期内的机器周期数可以不等,每个机器周期的时钟周期数也可以不等。

9.4能不能说CPU的主频越快,计算机的运行速度就越快?为什么?

答:不能说CPU的主频越快,计算机的运行速度就越快。因为机器的速度不仅与主频有关,还与机器周期中所含的时钟周期数以及指令周期中所含的机器周期数有关。同样主频的机器,由于机器周期所含时钟周期数不同,机器的速度也不同。机器周期中所含时钟周期数少的机器,速度更快。

此外,机器的速度还和其他很多因素有关,如主存的速度、机器是否配有Cache、总线的数据传输率、硬盘的速度以及机器是否采用流水技术等。

9.5设机器A的主频为8MHz,机器周期含4个时钟周期,且该机的平均指令执行速度是0.4MIPS,试求该机的平均指令周期和机器周期。每个指令周期包含几个机器周期?如果机器B的主频为12MHhz,且机器周期也包含4个时钟周期,试问B机的平均指令执行速度为多少MIPS?

答:根据机器A的主频为8MHz,得时钟周期为1/8MHz=0.125ms

(1)机器周期=0.125ms×4=0.5ms

(2)平均指令执行时间是1/0.4MIPS=2.5ms

(3)每个指令周期含2.5/0.5=5个机器周期

(4)B机的平均指令执行速度为0.4×12/8=0.6MIPS

9.6设某计算机的CPU主频为8MHz,每个机器周期平均含2个时钟周期,每条指令平均有4个机器周期,试问该计算机的平均指令执行速度为多少MIPS?若CPU主频不变,但每个机器周期平均含4个时钟周期,每条指令平均有4个机器周期,则该机的平均指令执行速度又是多少MIPS?由此可得出什么结论?

答:根据主频为8MHz,得时钟周期为1/8MHz=0.125ms,机器周期为0.125ms×2=0.25ms,指令周期为0.25ms×4=1ms。

(1)平均指令执行速度为1/1=1MIPS

(2)若CPU主频不变,机器周期含4个个时钟周期,每条指令平均有4个机器周期,则指令周期为0.125ms×4×4=2ms,故平均指令执行速度为1/2=0.5MIPS。

(3)可见机器得速度并不完全取决于主频。

9.14已知单总线结构的计算机如图9.5所示,其中M为主存,XR为变址寄存器,EAR为有效地址寄存器,LATCH为锁存器。假设指令地址已存于PC中,画出“LDA * D”(*表示相对寻址,D为相对位移量)和“SUB X,D”(X为变址寄存器XR,D为形式地址)指令的指令周期信息流程图,并列出相应的控制信号序列。

答:(1)两条指令取指周期信息流程为:

PC→Bus→MAR PCo,MARi

M(MAR)→MDR MARo,R/W=R,MDRi

MDR→Bus→IR MDRo,IRo

(PC)+1→PC +1

(2)“LDA * D”指令的执行流程为:

(PC)+Ad(IR)→EAR PCo,Ad(IR)o,+,EARi

EAR→Bus→MAR EARo,MARi

M(MAR)→MDR MARo,R/W=R,MDRi

MDR→Bus→ACC MDRo,ACCi

(3)“SUB X,D”指令的执行流程为:

(XR)+Ad(IR)→EAR XRo,Ad(IR)o,+,EARi

EAR→Bus→MAR EARo,MARi

M(MAR)→MDR MARo,R/W=R,MDRi

MDR→Bus→X MDRo,Xi

(ACC)-(X)→LATCH ACCo,Xo,Ki=

-,LATCHi

LATCH→Bus→ACC LATCHo,ACCi

第十章

控制单元的设计

10.5假设CPU在中断周期用堆栈保存程序断点,且进栈时栈指针减一,出栈时栈指针加一。试写出中断返回指令(中断服务程序的最后一条指令),在取指阶段和执行阶段所需的全部微操作命令及节拍安排。若采用微程序控制,则还需要增加哪些微操作。

答:组合逻辑设计的微操作命令:

取指:

T0:PC → MAR,1 → R

T1:M[MAR] → MDR, PC+1 → PC

T2:MDR → IR, OP[IR] → ID

执行:

T0:SP → MAR, 1 → R

T1:M[MAR] → MDR

T2:MDR → PC, SP+1 → SP

微程序设计的微操作命令:

取指微程序:

T0:PC → MAR, 1 → R

T1:Ad[CMIR] → CMAR

T2:M[MAR] → MDR, PC+1 → PC

T3:Ad[CMDR] → CMAR

T4:MDR → IR, OP[IR] → 微操作形成部件

T5:OP[IR] → CMAR

中断返回微程序:

T0:SP → MAR

T1:Ad[CMDR] → CMAR

T2:M[MAR] → MDR

T3:Ad[CMDR] → CMAR

T4:MDR → PC, SP+1 → SP

T5:Ad[CMDR] → CMAR

10.6已知带返转指令的含义如下图所示,写出机器在完成带返转指令时,取指阶段和执行阶段所需的全部微操作及节拍安排。

答:(1)取指阶段:

T0:PC → MAR,1 → R

T1:M(MAR)→ MDR, (PC)+1 → PC

T2:MDR → IR, OP(IR) → ID

(2)由图可知,带返转指令执行阶段需完成将返回地址M+1,存入指令的地址码字段K所指示的存储单元中,从K+1号单元才是子程序的真正内容,故执行阶段的微操作命令及节拍安排为:

T0:Ad(IR)→ MAR, 1 → W

T1:PC→ MDR

T2:MDR →M(MAR), Ad(IR)+1 → PC

10.15设控制存储器的容量为512×48位,微程序可在整个控存空间实现转移,而控制微程序转移的条件共有4个(采用直接控制),微指令格式如下:

转移条件 下地址

操作控制

顺序控制

试问微指令中的3个字段分别为多少位?

答:已知控制存器有512个单元,故下地址段字段应为9bit。又已知有4个测试条件,若采用直接表示法,故需4位。这样微命令字段即为48-4-9=35bit。

计算机组成原理实验二八位寄存器,计算机组成原理课后参考答案相关推荐

  1. 计算机组成原理寄存器的实验原理,计算机组成原理实验报告_寄存器的原理及操作课案.docx...

    <计算机组成原理实验报告_寄存器的原理及操作课案.docx>由会员分享,提供在线免费全文阅读可下载,此文档格式为docx,更多相关<计算机组成原理实验报告_寄存器的原理及操作课案.d ...

  2. 计算机组成原理实验写入怎么,计算机组成原理实验报告_寄存器的原理及操作...

    <计算机组成原理实验报告_寄存器的原理及操作>由会员分享,可在线阅读,更多相关<计算机组成原理实验报告_寄存器的原理及操作(10页珍藏版)>请在人人文库网上搜索. 1.成绩:实 ...

  3. 计算机组成原理实验单周期处理,计算机组成原理实验实验报告-单周期cpu设计...

    计算机组成原理实验实验报告-单周期cpu设计 (16页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 计算机组成原理实验计算机组成原理实验 ...

  4. 大连理工大学计算机原理实验报告,大连理工大学计算机原理实验报告.pdf

    大连理工大学计算机原理实验报告 大连理工大学计算机原理实验报告 目 录 1 实验任务 1 2 设计方案 1 3 设计电路 3 4 设计程序 5 5 遇到的问题 2 (1)程序语法方面 2 (2 )运行 ...

  5. 深圳大学计算机图形学实验4.1,深圳大学计算机图形学大作业实验报告.doc

    深圳大学计算机图形学大作业实验报告 深 圳 大 学 实 验 报 告 实验课程名称: 计算机图形学 实验项目名称: 计算机期末综合大作业 学院: 计算机与软件 专业: 计算机科学与技术 报告人: 班级: ...

  6. 计算机大机实验报告,大学计算机一实验报告二大学算机一实验报告二大学计算机一实验报告二大学计算机一实验报告二.doc...

    大学计算机一实验报告二大学算机一实验报告二大学计算机一实验报告二大学计算机一实验报告二 广东金融学院实验报告 课程名称:大学计算机Ⅰ 实验编号 及实验名称实验二中文Word 2010 实验系 别姓 名 ...

  7. 计算机组成原理实验串行口,计算机组成原理实验2.ppt

    文档介绍: 计算机组成原理实验(二) 第六章 FD-CES实验台功能模块介绍 6.1 前言 6.6 总线缓冲模块 6.2 运算器模块 6.7 微程序控制模块 6.3 寄存器堆模块 6.8 启停和时序模 ...

  8. el-jy-ii计算机组成原理实验报告,EL-JY-II型计算机组成原理实验系统

    一.适用范围: EL-JY-II型计算机组成原理实验系统是为<计算机组成原理>课程的教学实验而研制的,涵盖了目前流行教材的主要内容,能完成主要的基本部件实验和整机模拟实验,同时也可供计算机 ...

  9. 计算机组成原理实验所用的指令,计算机组成原理实验报告-控制器及微指令系统的操作与运用...

    计算机组成原理实验报告-控制器及微指令系统的操作与运用 (13页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.9 积分 成绩:实 验 报 告课程名称 ...

  10. 计算机组成原理实验输出大小写字母,计算机组成原理实验指导书-201511修订.doc...

    计算机组成原理 实验指导书 马莉 修订 2015年11月 目 录 实验一 脱机运算器实验1 实验二 基础汇编语言程序设计3 实验三 存储器部件实验与多级中断实验10 实验四 微程序控制器实验17 附录 ...

最新文章

  1. page分页php,Page分页函数
  2. 微型小乐器 : MicroSynth 小巧而优美
  3. 使用PyTorch从零开始实现YOLO-V3目标检测算法 (三)
  4. 003_隐藏和显示效果
  5. SSH框架中配置log4j的方法
  6. Java中List的用法
  7. 微信竟然可以查出行轨迹了,预计又一波情侣要分手?
  8. python源码多平台编译_ubuntu编译python源码的坑
  9. web ua检测_UA Web挑战会议:针对初创公司的SpringIO
  10. 工作283:从字典表获取数值
  11. graph-easy使用简介
  12. 云图说 | 快速创建一个kubernetes集群
  13. 热水器是长期开着好还是要等到用的时候才开?
  14. VMware安装CentOS过程(初学linux)
  15. linux可视化界面改ip,Linux图形界面模式更改ip地址
  16. SPSS Modeler 入门(一)
  17. 程序员面试被问“你的缺点是什么”,该怎么回答?
  18. Xcode如何实现iphone真机测试
  19. windbg符号下载
  20. 书论57 陈绎曾《翰林要诀》

热门文章

  1. 动态规划之背包问题——背包三讲(01背包,完全背包,多重背包)
  2. html背景图片纵向拉伸,html网页背景图片拉伸 关于html背景图片往下拉伸问题
  3. 【UI设计】扁平化设计之流行色值
  4. Spring3第一天
  5. python爬取某人所有微博_python爬取微博用户关注和粉丝的公开基本信息
  6. java 打印 xps_使用PrintTicket打印XPS,OutputColor PagesPerSheet无效
  7. linux ls 配色方案,vim自定义配色方案,图文并茂
  8. java 抽样算法_java生成抽样随机数的多种算法
  9. 32位ubuntu 编译android源码,ubuntu 下编译android源码错误解决记录
  10. 华为新员工入职180天培训计划