计算机系统结构 CA部分习题参考答案2006.docx
计算机系统结构前四章习题参考答案第二章习题:教材pp91-93:第2、6、9、12、15、20题笫2题:数据结构和数据表示是软件和硬件之间的交界面。数据表示是数据结构的组成元素,数据结构要通过软件映像变换成机器所具有的各种数据表示来实现。不同的数据表示可为数据结构的实现提供不同的支持,但在实现效率和方便性上有所不同。确定和引入数据表示的基本原则是:1)系统效率有无提高?包括实现的时间(主要看主存和处理机之间传送的信息量)和存储空间有无减少;2)引入这种数据表示的通用性和利用率如何。第6题:阶码6位,即阶码部分除去阶符外剩下的阶码值部分p=6位;尾数48位,即尾数的二进制位位数m=48位。当尾数基值为R时,尾数每一个灯进制数位需用1。段门个二进位表示。尾数基值为rn的尾数位数m,=mlog2rjo对于rgl为2、8、16时,11f分别为48、16、12位。本题的计算结果如下表所示:非负阶、正尾数、规格化尾基,."=6位,m=48位)2(m,=48)8(m,=16)16(m,=12)最小阶值0000最大阶值2,一1636363阶的个数2,646464尾数最小值端1/21/81/16尾数最大值I-Tl-2-*1-8,1-1612最小值匚I1/21/81/16最大值/7(l-r.-)2”(1-28u(l-8,)16*3(1-16,2)数的总个数2,Yw2m7×2s,15×2so第9题:变址寻址适合在标量计算机中,通过循环程序修改变址值来对向量或数组等数据结构中的元素进行访问和处理。基址寻址主要用于程序的逻辑地址空间到物理地址空间进行变换场合,以支持动态重定位技术的使用。第二问中陞含着指令中为寻找该操作数的地址码只有六位,用来表示这64个地址中的某一个。设计方法一:采用隐含寻址。程序执行过程中,每当要访问存储器时,可以经硬件加法器将陞含寄存器的基址值与指令中给出的6位相对位移量相加来形成其访问单元的物理地址。设计方法二:基点地址采用程序计数器PC,通过无条件转移指令来修改PC的内容,实现在一个大的地址空间中的访问(PC自相对寻址)。即:通过将PC的内容和指令中所提供的6位相对位移量相加来形成主存单元的物理地址。第12«:分析:等长操作码的意思是不管其指令的频度如何,都用同样长度的二进制码位数来对指令操作码编码。当指令条数为n时,等长操作码的二进制码位数应当是1OgHUffnIan编码是用HUffInan算法构造出HUffnIan树来得到的,它的平均码长可用WPi4计算出来。i=只有两种码长的扩展操作码编码,需要对指令使用频度进行大小分类。高频的指令放在同一类中,对其用短的操作码编码;低频指令放在另一类中,用长操作码编码。每一类都用等长操作码编码。另外,为了能唯一解码和立即解码,在短操作码中要使用某些码作为扩展成长操作码的扩展标志码。使平均码长尽可能短,来定好长,短码的码长组配关系。从而,再用来*=1求得平均码长。解答:14条指令的等长操作码的平均码长是logzM,即4位。HUffInan编码可先用HUffman算法构造出HUffman树。本题HUffman树如下图所示。(砸)(6<v)采用两种码长的扩展操作码,可根据14条指令所给的使用频度分成两类。使用频度较高的6种指令用3位操作码编码表示。如:用000101分别表示使用频度为0.15,0.15,0.14,0.13,0.12,0.11的指令的操作码。留下110和Ill两个3位码作为长码的扩展标志,扩展出2位码。从而用5位码就可以各扩展出4条使用频度较低的指令。这样,共有8条使用频度较低的指令符合题目的要求。第15题:本题依据于扩展码中的短码不能是长码前缀的概念来答。依题意,双地址指令格式为:4位6位6位操作码地址码1地址码216位其操作码占了4位,这样,共有16种短操作码。现双地址指令有X条,已占用了4位操作码中16种组合中的X个码点,所以剩下(16x)个码点可用作扩展标志。单地址指令的格式为:10位6位扩展操作码地址码1因此,(16x)个扩展标志中的每一个码均可扩展出6位操作码来,所以,单地址指令最多可以有(16x)*26笫20题:仅根据9条指令给出的使用频度,不考虑其他要求,设计全HUfflnan操作码,只需对此9条指令的频度,用HUffnlarI算法,构造HUffman树,就可以得到HUfflnan操作码的编码。其平均码长可由公式求得。考虑题目的全部要求,设计优化实用的操作码和指令字格式,只要先将两种指令字的格式及其各字段的位数定下来,其他小题就可解答了。依题意容易得出,短指令字只能是8位,长指令字只能是16位。指令按双操作数格式编排,短指令为寄存器一寄存器型,可得到短指令操作码寄存器号寄存器号长指令为寄存器一主存型,主存地址应能变址寻址,就可得出长指令格式为:操作码寄存器号变址寄存器号相对位移一般计算机中,变址寄存器用的是通用寄存器中某一个。所以,变址寄存器号字段的位数与寄存器号字段的位数相同。依题意,指令用扩展操作码编码,并限制只能有两种操作码的码长。据HUffInan压缩的概念,让使用频度高的指令用短操作码表示,使用频度低的指令用长操作码表示。这样,从指令使用频度分布来看,使用频度相对较高的指令只有ADD30%,SUB24,C1.A20%3条,余下6条指令的频度相对较低。因此,短操作码直取2位长,它有4各编码,除了3个码用于表示这3条高频指令外,还可提供一个长操作码的扩展标志。所以,短指令用于寻址两个操作数的寄存器号的时候就都用3位码编码。要想表示余下的6条频度低的指令,就需要用扩展标准再扩展出3位操作码来,从而使操作码为5位。这样,主存逻辑地址中的相对位移地址字段就剩了5位。如果相对位移量用补码表示,可表示相对于变址寄存器给出的变址值为-16到+15个字节的范围,就是说,相对位移可表示的地址变化范围有32个字节。(1)Huffman树的形式如下图所示:由图可得Huffman编码为:ADD30%01SUB24%11C1.A20%10JOM6%0001STO7%0011JMP7%0010SHR2%000001CI1.3%00001STP1%000000因此,操作码的平均码长为:2.61位(2)采用25扩展的操作码编码为:ADD30%00SUB24%01C1.A20%10JOM6%11000STO7%11001JMP7%11010SHR2%IlOllCI1.3%IllOOSTP1%IllOl这样,平均码长为2.78位(3)该机允许使用的可编址的通用寄存器个数为8个。(4)短指令格式为:2位3位3位OPRlR2操作码寄存器1寄存器2长指令格式为:5位3位3位5位OPRlXd操作码寄存器1变址寄存器相对位移(5)访主存操作数地址的最大相对位移量为32个字节。第三章习题:教材ppll7T18:第2、4、5、8、9、10题笫2题:随着计算机系统的不断发展和应用领域的进一步扩大,要求输入输出的数据量在迅速增大,对数据传送的速度要求在明显增长,输入输出设备的种类和数量也在日益增多。因而,输入输出系统结构设计的好坏会直接影响到计算机系统的性能,不仅会影响到输入输出的速度和各个用户从程序输入到运算结果输出所需的时间长短,也会影响到CPU和主存的利用率。此外,还会影响到整个I/O系统的兼容能力,可扩展能力,综合处理能力和性能价格比等。第4题:分析:据本题所给出的各级中断处理程序对中断屏蔽位设置的状况,很容易得出其中断处理(完)的次序应当是1->3>4->2。因为正处理1级的中断处理程序时,现行程序状态字中的中断级屏蔽位为OoO0,在其执行期间,任何新的同级和低级的中断请求都不可能进入中断响应排队起进行排队,所以,1级中断处理程序一定会先处理完。当执行3级中断服务程序时,由于现行程序状态字中的中断级屏蔽位为1000,即对1级中断请求是“开放”的,而对其它各级中断请求则处于“屏蔽”状态,所以,只要此时发生1级中断请求,它就能进入中断响应排队器去排队。从而在中断请求排队的微操作发出时,就可打断3级中断服务程序的执行,交换程序状态字,转去执行1级中断处理程序,使之被优先处理完。而在执行3级中断服务程序时,由于现行程序状态字对2,3,4级的中断请求处于被“屏蔽”的状态,所以,它们都不能打断正在执行的3级中断处理程序。其他情况可依次类推。(1)当中断响应优先次序为:1->2->3->4时,中断处理的次序为:l->3->4->2o(2)由题目所给出的条件,其CPU运行程序的过程示意图如下图所示。图中,粗短线部分代表进行交换程序状态字的时间,为1个单位时间。中断处理程序中断请求用户程序1234第5题:中断级屏蔽位“1”对应于屏蔽,“0”对应于开放。正在处理某级中断服务程序时,与其同级的新的中断请求是不能被响应的,应当予以屏蔽,因为用样优先级,则先来的应该先得到响应并被处理。根据所要求的中断处理的次序,各级中断处理程序现行状态字中各中断屏蔽位的状态很容易被设置出来。(1)各级中断处理程序中的中断级屏蔽位的设置,如下表所示。中断处理程序级别中断级屏蔽位12345111111201100300100401111501101(2)由已知条件可得程序运行过程示意图如下图所示。图中,粗短线表示交换程序状态字的时间。中断处理程序中断请求用户程序j_2_2_1.2.笫8题:(1)字节多路通道选择好一台设备后,设备与通道只传送一个字节就释放总线。某台设备要想传送n个字节,需要经n次申请使用通道总线才行。数组多路通道选择好一台设备后,连续传送完固定K个字节的成组数据后,才释放总线,通道再选择下一台设备继续传送K个字节。选择通道每选择一台设备,就让其独占通道,直到它把数据传送完毕,因此,每台设备只需申请一次就可传送任意多字节。(2)根据第一个问题,挂低速设备的通道应该按字节多路通道方式工作。字节多路通道的通道极限流量是:max,=l(s+Td)各设备启动后,若想不丢失设备信息,通道极限流量应大于等于设备对通道要求的流量,即应满足:fma,byle>=fbyle在字节多路通道上,设备对通道要求的流量应是所挂全部设备的速率之和。若所挂设备台数为m,设备速度fi实际就是设备发出字节传送请求的间隔时间的倒数,m台相同速率的设备其速率之和为m*fi,这样,为不丢失信息,应满足:1/(4+)>=m*/.于是可求得在字节多路通道上能挂的设备台数In应满足:m<=1(G+")*对于第二个问题,AF是高速设备,一次通讯传送字节数不少于1024个字节,意味此通道为选择通道。如果通道上有n台设备,则选择通道的极限流量为:fmax.selecl=11/(Ts+11Td)=1/(7n+)由于选择通道上,设