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

更新时间:2023-11-25 04:01:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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

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

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

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

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

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

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

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

MemA?Meminstruction?Memdata?1000?32?250?32?40000bit

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

MemB?Meminstruction?Memdata?1000?30?250?36?39000bit

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

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)。

总共浪费:0.2×7/8+0.3×6/8+0.2×4/8+0.3×0/8=0.5 即:存储器的存储空间利用率为50%,浪费率为50%。 ⑵

方案为:数据从地址整数倍位置开始存储,即,双字地址000结尾,单字地址

00结尾,半字地址0结尾,字节地址结尾任意。

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

组合 1-2-1-2 字节 1-2-1-4 1-2-1-8 字节 字节 单字 字节 字节 单字 半字 半字 半字 字节 字节 字节 双字 单字 双字 半字 半字 半字 半字 双字 半字 半字 半字 半字 字节 双字 单字 存储空间分配 半字 半字 字节 字节 字节 双字 单字 字节 字节 字节 半字 利用率 0.2*3/8*2/7*3/8*6B/8B 0.2*3/8*2/7*2/8*4B/8B 0.2*3/8*2/7*3/8*4B/8B 0.2*3/8*2/7*7B/8B 0.2*3/8*3/7*3B/8B 0.2*2/8*5B/8B 0.2*3/8*1B/8B 0.3*2/7*3/8*2/7*6B/8B 0.3*2/7*3/8*2/7*5B/8B 0.3*2/7*3/8*3/7*5B/8B 0.3*2/7*2/8*7B/8B 0.3*2/7*3/8*3B/8B 0.006 0.0028 0.004 0.01875 0.1205 0.03125 0.009375 0.0069 0.0057 0.0086 0.01875 0.0121 1-2-4 字节 1-2-8 1-4 1-8 2-1-2-1 2-1-2-4 2-1-2-8 2-1-4 2-1-8 2-4 2-8 4-1-2 4-1-4 4-1-8 4-2-1 4-2-4 4-2-8 4-8 8 半字 半字 单字 单字 单字 单字 单字 单字 单字 单字 双字 字节 字节 字节 双字 半字 半字 半字 双字 双字 双字 单字 半字 字节 0.3*2/7*6B/8B 0.3*3/7*2B/8B 0.2*2/8*3/8*7B/8B 0.2*2/8*2/8*5B/8B 0.2*2/8*3/8*5B/8B 0.2*3/8*2/7*7B/8B 0.2*3/8*2/7*6B/8B 0.2*3/8*3/7*6B/8B 0.2*3/8*4B/8B 0.3*8B/8B 0.0643 0.0321 0.0164 0.0078 0.0117 0.01875 0.0161 0.0241 0.05625 0.3 0.7922 单字 合 计

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

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

度。

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

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

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

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

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

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

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

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

nH???pi?logi?1pi2?2.957

0.02 1 0.03 0 1 0.09 0.04 0.05 1 0.08 0 0.08 0.1 0.15 0.20 0.25 0.05 0.13 1 0.23 0 1 0 0.17 1 0.32 0 1 0.43 0 0 1 0.57 1 0 1.0

0 指令序号 出现的概率 Huffman编码法 2/8扩展编码法 3/7扩展编码法 I1 0.25 00 00 00 I2 0.20 10 01 01 I3 0.15 010 1000 10 I4 0.10 110 1001 11000 I5 0.08 0110 1010 11001 I6 0.08 1110 1011 11010 I7 0.05 1111 1100 11011 I8 0.04 01110 1101 11100 I9 0.03 011110 1110 11101 I10 0.02 011111 1111 11110 操作码的平均长度 2.99 3.1 3.2 操作码的信息冗余量 1.1% 4.6% 7.6%

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

10%、5%、3%、2%,有8个通用数据寄存器,2个变址寄存器。 (1) 要求操作码的平均长度最短,请设计操作码的编码,并计算所设计操作码

的平均长度。

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

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

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

0.35 0 0.6 0 0.1 0 0.2 0 0.4 0 1.0 1 1 1 0.25 1 0.2 0.1 0.05 0.03 0 0.05 1 0.02 1 由此可以得到7条指令的编码分别如下:

指令号 1 2 3 4 5 6 7 出现的频率 35% 25% 20% 10% 5% 3% 2% 编码 00 01 10 110 1110 11110 11111

本文来源:https://www.bwwdw.com/article/e70t.html

Top