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

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1第二章数据表示与指令系统1.数据结构和机器的数据表示之间是什么关系?确定和引入数据表示的基本原则是什么?答:数据表示是能由硬件直接识别和引用的数据类型。数据结构反映各种数据元素或信息单元之间的结构关系。数据结构要通过软件映象变换成机器所具有的各种数据表示实现,所以数据表示是数据结构的组成元素。不同的数据表示可为数据结构的实现提供不同的支持,表现在实现效率和方便性不同。数据表示和数据结构是软件、硬件的交界面。除基本数据表示不可少外,高级数据表示的引入遵循以下原则:(1)看系统的效率有否提高,是否养活了实现时间和存储空间。(2)看引入这种数据表示后,其通用性和利用率是否高。2.标志符数据表示与描述符数据表示有何区别?描述符数据表示与向量数据表示对向量数据结构所提供的支持有什么不同?答:标志符数据表示与描述符数据表示的差别是标志符与每个数据相连,合存于同一存储单元,描述单个数据的类型特性;描述符是与数据分开存放,用于描述向量、数组等成块数据的特征。描述符数据表示为向量、数组的的实现提供了支持,有利于简化高级语言程序编译中的代码生成,可以比变址法更快地形成数据元素的地址。但描述符数据表示并不支持向量、数组数据结构的高效实现。而在有向量、数组数据表示的向量处理机上,硬件上设置有丰富的赂量或阵列运算指令,配有流水或阵列方式处理的高速运算器,不仅能快速形成向量、数组的元素地址,更重要的是便于实现把向量各元素成块预取到中央处理机,用一条向量、数组指令流水或同时对整个向量、数组高速处理.如让硬件越界判断与元素运算并行。这些比起用与向量、阵列无关的机器语言和数据表示串行实现要高效的多。3.堆栈型机器与通用寄存器型机器的主要区别是什么?堆栈型机器系统结构为程序调用哪些操作提供了支持?答:通用寄存器型机器对堆栈数据结构实现的支持是较差的。表现在:(1)堆栈操作的指令少,功能单一;(2)堆栈在存储器内,访问堆栈速度低;(3)堆栈通常只用于保存于程序调用时的返回地址,少量用堆栈实现程序间的参数传递。而堆栈型机器则不同,表现在:(1)有高速寄存器组成的硬件堆栈,并与主存中堆栈区在逻辑上组成整体,使堆栈的访问速度是寄存器的,容量是主存的;(2)丰富的堆栈指令可对堆栈中的数据进行各种运算和处理;(3)有力地支持高级语言的编译;(4)有力地支持子程序的嵌套和递归调用。堆栈型机器系统结构有力地支持子程序的嵌套和递归调用。在程序调用时将返回地址、条件码、关键寄存器的内容等全部压入堆栈,待子程序返回时,再从堆栈中弹出。4.设某机阶值6位、尾数48位,阶符和数符不在其内,当尾数分别以2、8、16为基时,在非负阶、正尾数、规格化数情况下,求出其最小阶、最大阶、阶的个数、最小尾数值、最大尾数值、可表示的最小值和最大值及可表示的规格化数的总个数。解:依题意知:p=6m=48rm=2,8,16,m'=m/log2(rm),列下表:p=6,m=48,rm=2(m'=48)p=6,m=48,rm=8(m'=16)p=6,m=48,rm=16(m'=12)最小阶(非000负阶,最小为0)最大阶(2^p-1)2^6-12^6-12^6-1最小尾数值(rm^(-1))1/21/81/16最大尾数值(1-rm^(-m'))1-2^(-48)1-8^(-16),即(1-2^(-48))1-16^(-12),即(1-2^(-48))可表示的最小值1/21/81/16可表示的最大值2^63*(1-2^(-48))8^63*(1-8^(-16))16^63*(1-16^(-12))阶的个数(2^p)2^62^62^6可表示的尾数的个数2^48*(2-1)/28^16*(8-1)/816^12*(16-1)/16可表示的规格化数的个数2^6*2^48*(2-1)/22^6*8^16*(8-1)/82^6*16^12*(16-1)/16note:可表示的最小值=rm^(最小阶)*最小尾数值=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。5.(1)浮点数系统使用的阶基rp=2,阶值位数p=2,尾数基值rm=10,以rm为基的尾数位数m''=1,按照使用的倍数来说,等价于m=4,试计算在非负阶、正尾数、规格化情况下的最小尾数值、最大尾数值、最大阶值、可表示的最小值和最大值及可表示数的个数。(2)对于rp=2,p=2,rm=4,m'=2,重复以上计算。解:依题意列下表:p=2,rm=10,m'=1p=2,rm=4,m'=2最小尾数值10^-1=0.14^-1=0.25最大尾数值1-10^-1=0.91-4^-2=15/16最大阶值2p^-1=33可表示的最小值0.10.25可表示的最大值10^3*0.9=9004^3*15/16=60可表示数的个数3648题中“按照使用的倍数来说,等价于m=4,”这个m=4,因为2^3102^4,等价为实际要4个二进制位,表示RM=10为基的一位6.由4位数(其中最低位为下溢附加位)经ROM查表舍入法,下溢处理成3位结果,设计使下溢处理平均误差接近于零的ROM表,列出ROM编码表2地址与内容的对应关系。解:ROM编码表地址与内容的对应关系地址0000000100100011010001010110011110001001101010111100110111101111内容0000010010100100110111001001011011101101111111117.变址寻址和基址寻址各适用于何种场合?设计一种只用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位都可作为操作码的编码)还有1*2^3=8(这是12位编码中最后三位的)若只要求254种,则可以有(256-254)*2^3=16条10.某机指令字长16位。设有单地址指令和双地址指令两类。若每个地址字段为6位.且双地址指令有X条。问单地址指令最多可以有多少条?答:单地址指令最多为(16-X)×2^6P.S.双地址指令最多是2^(16-6-6)=2^4=16条,现双地址指令有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使用频度PiHuffman编码扩展操作码编码I1I2I3I4I5I6I730%24%20%7%7%6%3%10000111001101111011110000110110001100111010110113I8I92%1%1111101111111110011101西个马pili2.612.78(3)8个。(4)两种指令格式如下图所示:2位3位3位OPR1R2操作码寄存器1寄存器25位3位3位5位OPR1Xd操作码寄存器1变址寄存器相对位移主存逻辑地址(5)访存操作数地址寻址的最大相对位移量为32个字节。13.设计RISC机器的一般原则及可采用的基本技术有那些?答:一般原则:(1)确定指令系统时,只选择使用频度很高的指令及少量有效支持操作系统,高级语言及其它功能的指令;(2)减少寻址方式种类,一般不超过两种;(3)让所有指令在一个机器周期内完成;(4)扩大通用寄存器个数,一般不少于32个,尽量减少访存次数;(5)大多数指令用硬联实现,少数用微程序实现;(6)优化编译程序,简单有效地支持高级语言实现。基本技术:(1)按RISC一般原则设计,即确定指令系统时,选最常用基本指令,附以少数对操作系统等支持最有用的指令,使指令精简。编码规整,寻址方式种类减少到1、2种。(2)逻辑实现用硬联和微程序相结合。即大多数简单指令用硬联方式实现,功能复杂的指令用微程序实现。(3)用重叠寄存器窗口。即:为了减少访存,减化寻址方式和指令格式,简单有效地支持高级语言中的过程调用,在RISC机器中设有大量寄存嚣,井让各过程的寄存器窗口部分重叠。(4)用流水和延迟转移实现指令,即可让本条指令执行与下条指令预取在时间上重叠。另外,将转移指令

1 / 23
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功