计算机系统结构_第二章练习题 答案
一、单项选择题
在下面各题的4个备选答案中,只有一个答案是正确的,请把正确答案的标号(A~D)填入题后面的括号中。
1.数据表示的含义是( B )。
A. 表示数据所采用的数制和码制 B. 硬件能够直接识别的数据类型 C. 数据类型
D. 浮点数的表示方式
2.浮点数表示的尾数的基rm=8,尾数长度p=2,可以表示的规格化最小正尾数的值是( C )。 A.0.5 B.0.25 C.0.125 D.0.015625
3.浮点数表示的尾数的基rm=16,尾数长度p=2,可以表示的规格化最大正尾数的值是( D )。
1A. 2
2C.
B.
15 16
1 256 D.
255 2564.多维数组的自定义数据表示通常采用( B )。
A. 浮点数表示 B. 带数据描述符的数据表示 C. 带标志符的数据表示
D. 带标志符和数据描述符的数据表示 5.不需要编址的数据存储空间是( C )。
A. CPU中通用寄存器 B. 主存储器 C. 堆栈
D. I/O接口中的寄存器
6.平均码长最短的编码是( D )。
A. 定长码 B. 扩展码 C. 需要根据编码使用的频度计算平均码长后确定 D. Huffman编码
7.下述4种编码中,不是2-4扩展编码的是( D )。 A. 1/12
B. 2/8 C. 3/4 D. 4/8
8. 2-4扩展编码最多可以得到的码点数是( D )。
A. 6
B. 9
C. 10
D. 13 00,01*4,10*4,11*4
9.RISC执行程序的速度比CIRC要快的原因是( C )。
A. RISC的指令系统的指令数比较少 B. 程序在RISC上编译生成的目标程序比较短 C. RISC的指令平均周期数比较少
D. RISC只允许Load指令和Store指令访问存储器
10. RISC采用交叉寄存器窗口技术,从而大大减少了( B )。
A. 绝大多数指令的执行时间 B. 程序调用引起的访问存储器的次数 C. 目标程序的指令条数
D. CPU访问存储器的访问周期 二、填空题
1. 设计一种浮点数据表示方式需要确定的6个参数分别是:(尾数的基rm的值),
(尾数的值m的数制和码制), (尾数长度p),(阶码的基re的值),(阶码的值e的数制和码制), (阶码长度q)。
2.浮点数的表数范围是指(用有限的q位阶码和 p位尾数能够表示的浮点数的数值大小的范围)。
3. 可表示浮点数的正数区间:
规格化浮点数的最大正数值由尾数的(最大正数值)与阶码(最大正数值)组合而成; 规格化浮点数的最小正数值由尾数的(最小正数值)与阶码(最小负数值)组合而成。 规格化浮点数的最大负数值由尾数的(最大负数值)与阶码(最小负数值)组合而成; 规格化浮点数的最小负数值由尾数的(最小负数值)与阶码(最大正数值)组合而成。
4.若浮点数尾数的长度为p位,尾数的基为rm,那么,尾数的rm进制数的位数是(
p)。
log2rm5.若浮点数尾数的长度为p位,尾数的基为rm,那么,可以表示的规格化浮点数的表数精度是(
1(p1)rm )。 2
三、判断题
判断下列各题的叙述是否正确,正确的叙述在括号内打“”;错误的叙述在括号内打“”;并简述错误的理由。
1.指令系统和数据表示都是计算机系统的主要软件硬件分界面。 ( )
2.浮点数表示可以表示实数范围内的所有实数。 ( x )
浮点数表示的实数在实数轴上是不连续的,因此它只能表示有限的实数
3.带标志符的数据表示增大了数据字的字长,从而会增大目标程序在这种机器上运行时占用的存储空间。 ( X )
数据的总存储量虽然加大了,但由于简化了指令系统,指令只需指出操作种类,不需指出数据类型等,每条指令的字长可以缩短。只要设计合理,整个程序(包括指令和数据)的总存储量反而有可能减少,即使增加也不会增加得太多。
机器采用带标志符的数据表示使数据字增长,但是会使指令字缩短。一般程序中的指令字要多于访问的数据字,因此,目标程序运行时占用的存储空间会减少。 4.带标志符的数据表示简化了指令系统,加快了指令的执行速度。( X )
带标志符的数据表示简化了指令系统,但降低了指令的执行速度。P69
指令执行时需要对数据字2逐个进行识别,判断是否与指令规定的操作相容,因此,指令执行更费时了
5.在引入带标志符的数据表示的机器中,数据的“标志符”对高级语言程序员是透明的。( ) P66
6.因为寄存器的位数大于主存储器单元的位数,所以,在把存储空间组织为2个地址空间的组织方式中,把CPU通用寄存器和I/O接口寄存器“编址”为1个地址空间,主存单独编址为另一个存储空间。 ( X )
由于寄存器的存储容量比主存储器要小得多,所以,寄存器所要求的地址长度更短。在把存储空间组织为2个地址空间的组织方式中,把主存储器与输入输出设备统一编址为1个地址空间,而把通用寄存器独立编址为另一个存储空间。
在2个地址空间的组织方式中,CPU通用寄存器“单独编址”为1个地址空间,主存和I/O接口寄存器“统一编址”为另一个地址空间。
7.对给定的频度分布{pi},由哈夫曼算法生成的哈夫曼树的结构是唯一的,因此,得出哈夫曼编码的“平均码长”是唯一的。( X )
对给定的频度分布{pi},哈夫曼树的结构并不是唯一的,但平均码长是唯一的。 由哈夫曼算法生成的哈夫曼树时,如果当前的频度集合有2个以上的结点可供选择,则不同的选择会生成结构不同的哈夫曼树,由此得出的哈夫曼编码也不同,但“平均码长”是相同的。
8.扩展编码要求所有的“短码”都不能是“长码”的前缀,否则会产生解码不唯一的问题。( )
9.2-4扩展编码和2/4扩展编码是同一种扩展编码的2种表示。( X ) 2-4扩展编码要求短码为两位长度,长码为四位长度,不限定短码和长码分别有多少种。 2/4扩展编码只是要求短码有两种,长码有四种,但并不限定短码和长码的长度。
2-4扩展编码是“码长”的表示方式,2/4扩展编码是“码点”的表示方式,它们一般表示的“扩展码”不相同。
10.由于RISC简化了指令系统,因此,RISC上的目标程序比CISC上的目标程序短一些,程序运行的时间就会少一些。( X )
CISC通过使用硬件加快使用频度高的指令的执行,并用一条新的指令代替那些使用频度高的指令串,简化了目标程序的代码。因此CISC上的目标程序比RISC上的目标程序短一些。
RISC简化了指令系统,通过一系列技术使得程序运行时间比CISC的少一些。
RISC上的目标程序一般会比CISC上的目标程序长一些,但是,RISC的指令平均周期数
CPI比CISC的CPI要小得多,因此,RISC上的目标程序运行的时间会少一些。
四、应用题 1.一个处理机有I1~I10共10条指令,经过统计,各指令在程序中的使用频度分别为:p1=0.25,p2=0.20,p3=0.15,p4=0.10,p5=0.08,p6=0.08,p7=0.05,p8=0.04,p9=0.03,p10=0.02。 (1)计算这10条指令的操作码编码的最短“平均码长”。
(2)写出这10条指令的操作码的哈夫曼编码,并计算编码的“平均码长”和信息冗余量。 (3)采用3/7扩展编码和2/8扩展编码写这10条指令的操作码,并分别计算“平均码长”和信息冗余量。问哪一种扩展编码比较好?并说明其理由。 解:(1)平均码长最短的编码是Huffman编码:P92 最短平均码长为:H=
0.25*2+0.2*2.32+0.15*2.73+0.1*3.32+0.08*3.64+0.08*3.64+0.05*4.32+0.04*4.64+0.03*5.05+0.02*5.64=2.96 (2))根据给出的使用频度,在应用哈夫曼算法构造哈夫曼树的过程中,选择2个频度最小的结点合并时,有2个以上的结点可供合并,因此,可生成结构不同的哈夫曼树。 给出2棵哈夫曼树,分别如图A和图B所示:
可见,哈夫曼编码不是唯一的。
计算2种哈夫曼编码的“平均码长”分别为:
LapiLai0.2520.2020.1530.1030.084i1100.0840.0550.0450.0350.0252.99(位) LbpiLbi0.2520.2020.1530.1030.084i1100.0840.0540.0450.0360.0262.99(位)可见,尽管哈夫曼编码不是唯一的,但平均码长却是唯一的。 2种哈夫曼编码的信息冗余量分别为:
H2.96Ra1100%1100%1.0%L2.99a
H2.96Rb1100%1100%1.0%L2.99b显然,应当有:Ra=Rb。
(3)采用3/7扩展编码和2/8扩展编码写这10条指令的操作码,并分别计算“平均码长”和信息冗余量。
采用在2-5不等长扩展: 3/7扩展编码: 00 01 10 11000 11001 。。。 11110
平均码长:(0.25+0.20+0.15)*2+(0.1+0.08+0.08+0.05+0.04+0.03+0.02)*5=3.2 信息冗余量:1-2.96/3.2=7.5% 2/8扩展编码: 00 01 1000 1000 。。。 10111
平均码长:(0.25+0.20)*2+(0.15+0.1+0.08+0.08+0.05+0.04+0.03+0.02)*4=3.1 信息冗余量:1-2.96/3.1=4.5%
通过比较2/8扩展码比较好,因为它的信息冗余量比3/7的小
因篇幅问题不能全部显示,请点此查看更多更全内容