(自考02325李学干版)计算机系统结构课后习题 联系客服

发布时间 : 星期二 文章(自考02325李学干版)计算机系统结构课后习题更新完毕开始阅读1a42c41b48d7c1c708a145a6

第二章 数据表示与指令系统 负阶,最小为0) 最大阶(2^p-1) 最小尾数值(rm^(-1)) 最大尾数值(1-rm^(-m')) 可表示的最小值 可表示的最大值 阶的个数(2^p) 可表示的尾数的个数 可表示的规格化数的个数 note:

可表示的最小值=rm^(最小阶)*最小尾数值

2^6*2^48*(2-1)/2 2^6*8^16*(8-1)/8 2^6*16^12*(16-1)/16 2^48*(2-1)/2 8^16*(8-1)/8 16^12*(16-1)/16 2^6 2^6 2^6 2^63*(1-2^(-48)) 8^63*(1-8^(-16)) 16^63*(1-16^(-12)) 1/2 1/8 1/16 1-2^(-48) 1-8^(-16),即(1-2^(-48)) 1-16^(-12),即(1-2^(-48)) 1/2 1/8 1/16 2^6-1 2^6-1 2^6-1 1.数据结构和机器的数据表示之间是什么关系?确定和引入数据表示的基本原则是什么?

答: 数据表示是能由硬件直接识别和引用的数据类型。数据结构反映各种数据元素或信息单元之间的结构关系。

数据结构要通过软件映象变换成机器所具有的各种数据表示实现,所以数据表示是数据结构的组成元素。不同的数据表示可为数据结构的实现提供不同的支持,表现在实现效率和方便性不同。数据表示和数据结构是软件、硬件的交界面。

除基本数据表示不可少外,高级数据表示的引入遵循以下原则: (1)看系统的效率有否提高,是否养活了实现时间和存储空间。 (2)看引入这种数据表示后,其通用性和利用率是否高。 2.标志符数据表示与描述符数据表示有何区别?描述符数据表示与向量数据表示对向量数据结构所提供的支持有什么不同?

答: 标志符数据表示与描述符数据表示的差别是标志符与每个数据相连,合存于同一存储单元,描述单个数据的类型特性;描述符是与数据分开存放,用于描述向量、数组等成块数据的特征。

描述符数据表示为向量、数组的的实现提供了支持,有利于简化高级语言程序编译中的代码生成,可以比变址法更快地形成数据元素的地址。但描述符数据表示并不支持向量、数组数据结构的高效实现。而在有向量、数组数据表示的向量处理机上,硬件上设置有丰富的赂量或阵列运算指令,配有流水或阵列方式处理的高速运算器,不仅能快速形成向量、数组的元素地

=rm^0*rm^(-1)=rm^(-1);

可表示的最大值=rm^(最大阶)*最大尾数值

址,更重要的是便于实现把向量各元素成块预取到中央处理机,用一条向量、数组指令流水或同时对整个向量、数组高速处理.如让硬件越界判断与元素

=rm^(2^p-1)*(1-rm^(-m'));

可表示的尾数的个数=rm^m'*(rm-1)/rm;

运算并行。这些比起用与向量、阵列无关的机器语言和数据表示串行实现要

可表示的规格化数的个数=阶的个数*尾数的个数

高效的多。

=2^p*rm^m'*(rm-1)/rm。

3.堆栈型机器与通用寄存器型机器的主要区别是什么?堆栈型机器系统结构为程序调用哪些操作提供了支持?

5.(1)浮点数系统使用的阶基rp=2,阶值位数p=2,尾数基值rm=10,以

答: 通用寄存器型机器对堆栈数据结构实现的支持是较差的。表现在:

rm为基的尾数位数m''=1,按照使用的倍数来说,等价于m=4, 试计算在

(1)堆栈操作的指令少,功能单一;(2)堆栈在存储器内,访问堆栈速度低;(3)堆栈通常只用于保存于程序调用时的返回地址,少量用堆栈实现程序间的参数传递。

而堆栈型机器则不同,表现在:(1)有高速寄存器组成的硬件堆栈,并与主存中堆栈区在逻辑上组成整体,使堆栈的访问速度是寄存器的,容量是主存的;(2)丰富的堆栈指令可对堆栈中的数据进行各种运算和处理;(3)有力地支持高级语言的编译;(4)有力地支持子程序的嵌套和递归调用。 堆栈型机器系统结构有力地支持子程序的嵌套和递归调用。在程序调用时将返回地址、条件码、关键寄存器的内容等全部压入堆栈,待子程序返回时,再从堆栈中弹出。

4.设某机阶值6位、尾数48位,阶符和数符不在其内,当尾数分别以2、8、16为基时,在非负阶、正尾数、规格化数情况下,求出其最小阶、最大阶、阶的个数、最小尾数值、最大尾数值、可表示的最小值和最大值及可表示的规格化数的总个数。

解: 依题意知:p=6 m=48 rm=2, 8, 16,m'=m/log2(rm),列下表:

最小阶(非 最小尾数值 最大尾数值 最大阶值 可表示的最小值 可表示的最大值 可表示数的个数 p=2,rm=10,m'=1 10^-1=0.1 1-10^-1=0.9 2p^-1=3 0.1 10^3*0.9=900 36 p=2,rm=4,m'=2 4^-1=0.25 1-4^-2=15/16 3 0.25 4^3*15/16=60 48 非负阶、正尾数、规格化情况下的最小尾数值、最大尾数值、最大阶值、可表示的最小值和最大值及可表示数的个数。 (2)对于rp=2,p=2,rm=4,m'=2,重复以上计算。 解: 依题意列下表:

题中“按照使用的倍数来说,等价于m=4,” 这个m=4,因为2^3<10<2^4,等价为实际要4个二进制位,表示RM=10为基的一位

6.由4位数(其中最低位为下溢附加位)经ROM查表舍入法,下溢处理成p=6,m=48,rm=2(m'=48) p=6,m=48,rm=8(m'=16) p=6,m=48,rm=16(m'=12) 0 0 0 3位结果,设计使下溢处理平均误差接近于零的ROM表,列出ROM编码表

1

地址与内容的对应关系。 都可作为操作码的编码)还有1*2^3=8 (这是12位编码中最后三位的)若只要求254种,则可以有(256-254)*2^3=16条

10.某机指令字长16位。设有单地址指令和双地址指令两类。若每个地址

解: ROM编码表地址与内容的对应关系

地址 内0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 字段为6位.且双地址指令有X条。问单地址指令最多可以有多少条?

答: 单地址指令最多为(16-X)×2^6

P.S.双地址指令最多是2^(16-6-6)=2^4=16条, 现双地址指令000 001 001 010 010 011 011 100 100 101 101 110 110 111 111 111 容

7.变址寻址和基址寻址各适用于何种场合?设计一种只用6位地址码就可指向一个大地址空间中任意64个地址之一的寻址机构。

答: 基址寻址是对逻辑地址空间到物理地址空间变换的支持,以利于实现程序的动态再定位。变址寻址是对数组等数据块运算的支持,以利于循环。将大地址空间64个地址分块,用基址寄存器指出程序所在块号,用指令中6位地址码表示该块内64 个地址之一,这样基址和变址相结合可访问大地址任意64个地址之一。比如地址空间很大,为0-1023,只用6位地址码就可以指向这1024个地址中的任意64个。

剖析: 比如地址空间很大,1024,就是分成16个块,块号放在寄存器中,块内地址放在地址位中,寄存器内容和地址位结合,就能达到要求了。 8.经统计,某机器

14条指令的使用频度分别为:

0.01,0.15,0.12,0.03,0.02,0.04,0.02,0.04,0.01,0.13,0.15,0.14,0.11,0.03。分别求出用等长码、Huffman码、只有两种码长的扩展操作码3种编码方式的操作码平均码长。

解: 等长操作码的平均码长=4位;Huffman编码的平均码长=3.38位;只有两种码长的扩展操作码的平均码长=3.4位。

9.若某机要求:三地址指令4条,单地址指令255条,零地址指令16条。设指令字长为12位.每个地址码长为3位。问能否以扩展操作码为其编码?如果其中单地址指令为254条呢?说明其理由。 答: ①不能用扩展码为其编码。

∵指令字长12位,每个地址码占3位;

∴三地址指令最多是2^(12-3-3-3)=8条, 现三地址指令需4条, ∴可有4条编码作为扩展码,

∴单地址指令最多为4×2^3×2^3=2^8=256条, 现要求单地址指令255条,∴可有一条编码作扩展码 ∴零地址指令最多为1×2^3=8条 不满足题目要求

∴不可能以扩展码为其编码。

②若单地址指令254条,可以用扩展码为其编码。 ∵依据①中推导,单地址指令中可用2条编码作为扩展码 ∴零地址指令为2×2^3=16条,满足题目要求 note:

三地址指令格式: 操作码 地址码 地址码 地址码 3位 3位 3位 3位 单地址指令格式: 操作码 地址码 9位 3位

所以前面9位由于三地址指令用了最前面3位,还有中间6位可作为编码(也就是总共可以有9位作为单地址指令的指令操作码的编码)。减去3地址指令的4条,有4*2^6=256条,但由于韪目要求要有255条,所以剩下一个编码,已经用了9位的全部编码,最后零地址指令(全部12位

有X条, ∴可有(16-X)条编码作为扩展码, ∴单地址指令最多为(16-X)×2^6=256条

11.何谓指令格式的优化?简要列举包括操作码和地址码两部分的指令格式优化可采用的各种途径和思路。

答: 指令格式的优化指如何用最短位数表示指令的操作信息和地址信息,使程序中指令的平均字长最短。 ①操作码的优化

采用Huffman编码和扩展操作码编码。 ②对地址码的优化: 采用多种寻址方式;

采用0、1、2、3等多种地址制;

在同种地址制内再采用多种地址形式,如寄存器-寄存器型、寄存器-主存型、主存-主存型等;

在维持指令字在存储器内按整数边界存储的前提下,使用多种不同的指令字长度。

12.某模型机9条指令使用频率为:

ADD(加) 30% SUB(减) 24% JOM(按负转移) 6% STO(存) 7% JMP(转移) 7% SHR(右移) 2% CIL(循环) 3% CLA(清加) 20% STP(停机) 1%

要求有两种指令字长,都按双操作数指令格式编排,采用扩展操作码,并限制只能有两种操作码码长。设该机有若干通用寄存器,主存为16位宽,按字节编址,采用按整数边界存储。任何指令都在一个主存周期中取得,短指令为寄存器-寄存器型,长指令为寄存器-主存型,主存地址应能变址寻址。

(1)仅根据使用频率,不考虑其它要求,设计出全Huffman操作码,计算其平均码长;

(2)考虑题目全部要求,设计优化实用的操作形式,并计算其操作码的平均码长;

(3)该机允许使用多少可编址的通用寄存器? (4)画出该机两种指令字格式,标出各字段之位数;

(5)指出访存操作数地址寻址的最大相对位移量为多少个字节? 解:

第(1)和(2)中Huffman和扩展操作码的编码及平均码长如下表:

指令Ii 使用频度Pi Huffman编码 扩展操作码编码 I1 30% 10 00 I2 24% 00 01 I3 20% 01 10 I4 7% 1100 11000 I5 7% 1101 11001 I6 6% 1110 11010 I7 3% 11110 11011 2

I8 2% 111110 11100 I9 1% 111111 11101 西个马pili 2.61 2.78

(3)8个。

(4)两种指令格式如下图所示:

2位 3位 3位 OP R1 R2 操作码 寄存器1 寄存器2

5位 3位 3位 5位 OP R1 X d

操作码 寄存器1 变址寄存器 相对位移 主存逻辑地址

(5)访存操作数地址寻址的最大相对位移量为32个字节。

13.设计RISC机器的一般原则及可采用的基本技术有那些? 答: 一般原则:

(1)确定指令系统时,只选择使用频度很高的指令及少量有效支持操作系统,高级语言及其它功能的指令;

(2)减少寻址方式种类,一般不超过两种; (3)让所有指令在一个机器周期内完成;

(4)扩大通用寄存器个数,一般不少于32个,尽量减少访存次数; (5)大多数指令用硬联实现,少数用微程序实现; (6)优化编译程序,简单有效地支持高级语言实现。 基本技术:

(1)按RISC一般原则设计,即确定指令系统时,选最常用基本指令,附以少数对操作系统等支持最有用的指令,使指令精简。编码规整,寻址方式种类减少到1、2种。

(2)逻辑实现用硬联和微程序相结合。即大多数简单指令用硬联方式实现,功能复杂的指令用微程序实现。

(3)用重叠寄存器窗口。即:为了减少访存,减化寻址方式和指令格式,简单有效地支持高级语言中的过程调用,在RISC机器中设有大量寄存嚣,井让各过程的寄存器窗口部分重叠。

(4)用流水和延迟转移实现指令,即可让本条指令执行与下条指令预取在时间上重叠。另外,将转移指令与其前面的一条指令对换位置,让成功转移总是在紧跟的指令执行之后发生,使预取指令不作废,节省一个机器周期。

(5)优化设计编译系统。即尽力优化寄存器分配,减少访存次数。不仅要利用常规手段优化编译,还可调整指令执行顺序,以尽量减少机器周期等。

14.简要比较CISC机器和RISC机器各自的结构特点,它们分别存在哪些不足和问题?为什么说今后的发展应是CISC和RISC的结合? 答: CISC结构特点:机器指令系统庞大复杂。

RISC结构特点:机器指令系统简单,规模小,复杂度低。 CISC的问题:

(1)指令系统庞大,一般200条以上; (2)指令操作繁杂,执行速度很低;

(3)难以优化生成高效机器语言程序,编译也太长,太复杂; (4)由于指令系统庞大,指令的使用频度不高,降低系统性能价格比,增加设计人员负担。 RISC的问题;

(1)由于指令少,在原CISC上一条指令完成的功能现在需多条RISC指令才能完成,加重汇编语言程序设计负担,增加了机器语言程序长度,加大指令信息流量。

(2)对浮点运算和虚拟存储支持不很强。 (3)RISC编译程序比CISC难写。

由于RISC和CISC各有优缺点,在设计时,应向着两者结合,取长补短方向发展。

第三章 总线、中断与输入输出系统

1.简要举出集中式串行链接,定时查询和独立请求3种总线控制方式的优缺点。同时分析硬件产生故障时通讯的可靠性。 答:

控制

优点

缺点

方式

(1)对“总线可用”线及其有关电路失效敏感。

串(1)选择算法简单。

(2)灵活性差,如果高优先级的部件频繁

行(2)控制线数少,只需要要求使用总线,离总线控制器远的部件链3根,且不取决于部件就难以获得总线使用权。 数量。

(3)“总线可用”信号顺序脉动地通过各接

(3)可扩充性好。 个部件,总线的分配速度慢。 (4)受总线长度的限制,增减和移动部件受限制。

定(1)灵活性强,部件的优先次序由程序控制。 (1)总线的分配速度不能很高。 时查(2)可靠性高,不会因某(2)控制较为复杂。

个部件失效而影响其它(3)控制线数多,需要2+log2N根。 询

部件使用总线。

(4)可扩充性差。

独(1)灵活性强,部件的优先次序由程序控制。

立(1)控制较为复杂。

请(2)能方便地隔离失效(2)控制线数多,要控制N个设备,需要部件的请求。

有2N+1根控制线。

(3)总线的分配速度快。

2.设中断级屏蔽位“1”对应于开放,“0”对应于屏蔽,各级中断处理程序的中断级屏蔽位设置如下:

3

中断级屏蔽位

中断处理程序级别

1级 2级 3级 4级

第1级 第2级 第3级 第4级

0 1 1 1

0 0 0 0

0 1 0 1

0

2、4中断同时出

0 0 0

现,进行排队器。 首先响应第2

(1)当中断响应优先次序为1→2→3→4时,其中断处理次序是什么?

(2)如果所有的中断处理都各需3个单位时间,中断响应和中断返回时间相对中断处理时间少得多。当机器正在运行用户程序时,同时发生第2,3级中断请求,过两个单位时间,又同时发生第1,4级中断请求,试画出程序运行过程示意图。 答:

(1)当中断响应优先次序为1→2→3→4时,其中断处理次序为1→3→4→2。 (2)

3.若机器共有5级中断,中断响应优先次序为1→2→3→4→5,要求其实际的中断处理次求序1→4→5→2→3。

(1)设计各级中断处理程序的中断级屏蔽位(令“1”对应于开放,“0”对应于屏蔽);

(2)若在运行用户程序时,同时出现第4,2级中断请求,而在处理第2级中断未完成时,又同时出现第1,3,5级中断请求,请画出此程序运行过程示意图。

答: (1)中断级屏蔽位设置如下图:

中断级屏蔽位 中断处理程序级别 1级 2级 3级 4级 5级 第1级 1 1 1 1 1 第2级 0 1 1 0 0 第3级 0 0 1 0 0 第4级 0 1 1 1 1 第5级 0 1 1 0 1 (2)中断过程示意图:如图

级中断请求,屏蔽字为01100,表明其对第4级中断请求开放,所以转去响应第4级中断请求并进行处理。 响应4,中断4运行结束,回2。 1、3、5进入排队器。

第2级中断请求的处理请求被中断,转去响应第1级中断请求并进行处理。 响应第5级中断请求并进行处理。

继续响应并处理第2级中断处理请求,结束后返回用户程序。 最后处理第3级中断请求。

4.简述字节多路,数组多路和选择通道的数据传送方式。

答: 字节多路通道适用于连接大量的像光电机等字符类低速设备。这些设备传送一个字符(字节)的时间很短,但字符(字节)间的等待时间很长。通道“数据宽度”为单字节,以字节交叉方式轮流为多台设备服务,使效率提高。字节多路通道可有多个子通道,同时执行多个通道程序。 数组多路通道适合于连接多台象磁盘等高速设备。这些设备的传送速率很高,但传送开始前的寻址辅助操作时间很长。通道“数据宽度”为定长块,多台设备以成组交叉方式工作,以充分利用并尽可能重叠各台高速设备的辅助操作时间。传送完K个字节数据,就重新选择下个设备。数组多路通

道可有多个子通道,同时执行多个通道程序。

选择通道适合于连接象磁盘等优先级高的高速设备,让它独占通道,只能执行一道通道程序。通道“数据宽度”为可变长块,一次将N个字节全部传送完,在数据传送期只选择一次设备。

5.如果通道在数据传送期中,选择设备需9.8μs,传送一个字节数据需0.2μs。某低速设备每隔500μs发出一个字节数据传送请求,问至多可接几台这种低速设备?对于如下A~F6种高速设备,一次通讯传送的字节数不少于1024个字节,问哪些设备可以挂在此通道上?哪些则不能?其中A—F设备每发出一个字节数据传送请求的时间间隔分别为(单位为μs): 表3-5

设备 A B C D E F 发申请间隔(μs) 0.2 0.25 0.5 0.19 0.4 0.21

答: (1)至多可连接50台低速的外设。 剖析:

根据题意可知:低速设备应挂接在字节多路通道上,字节多路通道的通道极限流量为:

fmax.byte=1/(TS+TD)>=fbyte

4