文档视界 最新最全的文档下载
当前位置:文档视界 › 计算机系统结构 第二章(习题解答)

计算机系统结构 第二章(习题解答)

计算机系统结构 第二章(习题解答)
计算机系统结构 第二章(习题解答)

1. 数据类型、数据表示和数据结构之间是什么关系在设计一个计算机系统时,

确定数据表示的原则主要有哪几个 答:

2. 假设有A 和B 两种不同类型的处理机,A 处理机中的数据不带标志位,其

指令字长和数据字长均为32位。B 处理机的数据带有标志位,每个数据的字长增加至36位,其中有4位是标志符,它的指令条数由最多256条减少至不到64条。如果每执行一条指令平均要访问两个操作数,每个存放在存储器中的操作数平均要被访问8次。对于一个由1000条指令组成的程序,分别计算这个程序在A 处理机和B 处理机中所占用的存储空间大小(包括指令和数据),从中得到什么启发 答:

我们可以计算出数据的总数量:

∵ 程序有1000条指令组成,且每条指令平均要访问两个操作数 ∴ 程序访问的数据总数为:1000×2=2000个 ∵ 每个数据平均访问8次

∴ 程序访问的不同数据个数为:2000÷8=250

对于A 处理机,所用的存储空间的大小为:

bit 4000032250321000Mem Mem Mem data n instructio A =?+?=+=

对于B 处理机,指令字长由32位变为了30位(条数由256减少到64),这样,所用的存储空间的大小为:

bit 3900036250301000Mem Mem Mem data n instructio B =?+?=+=

由此我们可以看出,由于数据的平均访问次数要大于指令,所以,采用带标志符的数据表示不会增加总的存储空间大小。

3. 对于一个字长为64位的存储器,访问这个存储器的地址按字节编址。假设

存放在这个存储器中的数据中有20%是独立的字节数据(指与这个字节数据相邻的不是一个字节数据),有30%是独立的16位数据,有20%是独立

的32位数据,另外30%是独立的64位数据;并且规定只能从一个存储字的起始位置开始存放数据。

⑴计算这种存储器的存储空间利用率。

⑵给出提高存储空间利用率的方法,画出新方法的逻辑框图,并计算这种方法

的存储空间利用率。

答:

由于全是独立数据,有20%浪费56位(7/8);30%浪费48位(6/8);20%浪费32位(4/8);30%浪费0位(0/8)。

总共浪费:×7/8+×6/8+×4/8+×0/8=

即:存储器的存储空间利用率为50%,浪费率为50%。

方案为:数据从地址整数倍位置开始存储,即,双字地址000结尾,单字地址00结尾,半字地址0结尾,字节地址结尾任意。

可能出现的各种情况如下:

2-4半字单字*2/7*6B/8B

2-8半字

*3/7*2B/8B

双字

4-1-2单字字节半字*2/8*3/8*7B/8B

4-1-4单字字节

*2/8*2/8*5B/8B 单字

4-1-8单字字节

*2/8*3/8*5B/8B 双字

4-2-1单字半字字节*3/8*2/7*7B/8B 4-2-4单字半字

*3/8*2/7*6B/8B 单字

4-2-8单字半字

*3/8*3/7*6B/8B 双字

4-8单字

*3/8*4B/8B 双字

8双字*8B/8B

合计

4. 一个处理机共有10条指令,各指令在程序中出现的概率如下表:

(1) 采用最优Huffman编码法(信息熵)计算这10条指令的操作码最短平均长

度。

(2) 采用Huffman编码法编写这10条指令的操作码,并计算操作码的平均长度,

计算与最优Huffman编码法(信息熵)相比的操作码信息冗余量。将得到的操作码编码和计算的结果填入上面的表中。

(3) 采用2/8扩展编码法编写这10条指令的操作码,并计算操作码的平均长度,

计算与最优Huffman编码法相比的操作码信息冗余量。把得到的操作码编

码和计算的结果填入上面的表中。

(4) 采用3/7扩展编码法编写这10条指令的操作码,并计算操作码的平均长度,

计算与最优Huffman 编码法相比的操作码信息冗余量。把得到的操作码编码和计算的结果填入上面的表中。 答:

采用最优Huffman 编码法(信息熵)的操作码最短平均长度为:

957.2log p H n

1

i p 2i i

≈?-=∑=

5. 一台模型机共有7条指令,各指令的使用频度分别是35%、25%、20%、

10%、5%、3%、2%,有8个通用数据寄存器,2个变址寄存器。

(1) 要求操作码的平均长度最短,请设计操作码的编码,并计算所设计操作码

的平均长度。

(2) 设计8位字长的寄存器-寄存器型指令3条,16位字长的寄存器-存储器

型变址寻址方式指令4条,变址范围不小于正、负127。请设计指令格式,并给出各字段的长度和操作码的编码。

答:

要使得到的操作码长度最短,应采用Huffman编码,Huffman树构造如下:

由此可以得到7条指令的编码分别如下:

这样,Huffman编码法得到的操作码的平均长度为:

l = 2×++ + 3× + 4 × + 5× +

= +++ =

设计8位字长的寄存器-寄存器型指令如下:

因为只有8个通用寄存器,所以寄存器地址需3位,操作码只有两位,设计格式如下:

2 3 3

三条指令的操作码分别为00、01、10。

设计16位字长的寄存器-存储器型变址寻址方式指令如下:

4 3 1 8

四条指令的操作码分别为1100、1101、1110、1111。

6. 某处理机的指令字长为16位,有双地址指令、单地址指令和零地址指令三

类,并假设每个地址字段的长度均为6位。

(1) 如果双地址指令有15条,单地址指令和零地址指令的条数基本相同,问单

地址指令和零地址指令各有多少条并且为这三类指令分配操作码。

(2) 如果要求三类指令的比例大致为1:9:9,问双地址指令、单地址指令和零

地址指令各有多少条并且为这三类指令分配操作码。

答:

双地址指令格式为:

4 6 6

单地址指令格式为:

10 6

零地址指令格式为:

16

双地址指令15条,需要4位操作码来区分;单地址指令可以使用10-4=6位操作码来区分;零地址指令可以使用16-10=6位操作码来区分。这样,各类型指令的条数为:

双地址指令15条,操作码为:0000~1110; 单地址指令26-1=63条,操作码为:

1111 000000~1111 111110

零地址指令26=64条,操作码为:

1111 111111 000000~1111 111111 111111

假设双地址指令x 条,则单地址、零地址分别为9x 条:

x 92]x 92)x 2[(664=*-*-

解之即得:x =14

∴ 双地址指令14条,操作码为:0000~1101;留出两个编码用于扩展。

单地址指令(26-1)×2 = 126条,操作码为:

1110 000000~1110 111110,1111 000000~1111 111110

零地址指令126条,操作码为:

1110 111111 000000~1110 111111 111110,1111 111111 000000~1111 111111

111110

相关文档