2009年全国硕士研究生计算机学科入学统一考试计算机组成原理试题分析一、选择题(每个题2分)11.冯·诺依曼计算机中指令和数据均以二进制形式存放在存储器中,CPU区分它们的依据是A.指令操作码的译码结果B.指令和数据的寻址方式C.指令周期的不同阶段D.指令和数据所在的存储单元[答案]C[解析]1、指令执行步骤,在取指期间取来的是指令,读数据期间读来的是数据;2、指令和数据性质上的区别,虽然二者都用二进制表示,但属于完全不同性质的信息,数据是计算机加工处理的“原材料”,指令是告知计算机运行功能和执行步骤的命令类信息。12.一个C语言程序在一台32位机器上运行。程序中定义了三个变量x、y和z,其中x和z为int型,y为short型。当x=127,y=-9时,执行赋值语句z=x+y后,x、y和z的值分别是A.x=0000007FH,y=FFF9H,z=00000076HB.x=0000007FH,y=FFF9H,z=FFFF0076HC.x=0000007FH,y=FFF7H,z=FFFF0076HD.x=0000007FH,y=FFF7H,z=00000076H[答案]D[解析]1、十进制整数到二进制的转换,数据的补码表示;2、补码加法运算,2两个不同位数的补码数相加时需要进行符号扩展;X=127,[X]补=0000007FH(32位整数),运算后其值不变Y=-9,[Y]补=FFF7H(16位整数),运算后其值不变[Z]补=[X补+Y补]=0000007FH+FFFFFFF7H=00000076H3、解题技巧,也可先求出127+(-9)=118,再变成补码后去与可供选择的答案对比。13.浮点数加、减运算过程一般包括对阶、尾数运算、规格化、舍入和判溢出等步骤。设浮点数的阶码和尾数均采用补码表示,且位数分别为5位和7位(均含2位符号位)。若有两个数X=2729/32,Y=255/8,则用浮点加法计算X+Y的最终结果是A.001111100010B.001110100010C.010000010001D.发生溢出[答案]D[解析]1、十进制小数到二进制的转换,小数与整数的补码表示;2、浮点数的阶码(整数)、尾数(尾数)的表示,规格化的概念;3、浮点数的加法运算与结果溢出检查;[X]浮=001110011101,[Y]浮=001010010100=001110000101X和Y的尾数相加的0100010,应规格化,成为0010001,阶码要加1,将变成8,但阶码的数值位用3位补码表示,不能表示正8,表明运算结果是溢出了。4、解题技巧A)也可先把25×5/8变成27×5/8/4=27×5/32,再计算29/32+5/32=34/32=2×17/32,表明需要阶码加1,将变成8,已经不能表示,是溢出。B)千万不要变分数为小数之后再转换成二进制,分母是2的整数幂时只需转换其分子部分,这对于解这个题实在是太重要了。14.某计算机的Cache共有16块,采用2路组相联映射方式(即每组2块)。每个主存块大小为32字节,按字节编址。主存129号单元所在主存块应装入到的Cache组号是A.0B.2C.4D.6[答案]C[解析]1、Cache与主存之间的地址映射关系;2、三种Cache的组织方式(其实本题未测试这一点,是直接映射还是两路组相联与答案不相关);129MOD32=4余1,所以答案为C,注意Cache的组号从0开始编码。3、注:本题设映射关系为:i=jmodv(其中i为cache的组号,j为主存的块号),m=v×k(m为cache中的块数,v为cache中的组数,k为每组包含的块数)。则答案为C。假如设映射关系为:i=[j/2^t]mod2^g,(其中i为cache的组号,j为主存的块号,2^t为组内的块数,2^g为cache分的组数)。则答案为B。15.某计算机主存容量为64KB,其中ROM区为4KB,其余为RAM区,按字节编址。现要用2K×8位的ROM芯片和4K×4位的RAM芯片来设计该存储器,则需要上述规格的ROM芯片数和RAM芯片数分别是A.1、15B.2、15C.1、30D.2、30[答案]D[解析]1、一个字节Byte由8个二进制位bit组成;2、存储器的字位扩展技术,选用已有芯片构建存储器;计算:4KB的ROM要用2K×8位的器件2片;60KB的RAM要用4K×4位的芯片数量是(60K×8)/(4K×4)=30;16.某机器字长16位,主存按字节编址,转移指令采用相对寻址,由两个字节组成,第一字节为操作码字段,第二字节为相对位移量字段。假定取指令时,每取一个字节PC自动加1。若某转移指令所在主存地址为2000H,相对位移量字段的内容为06H,则该转移指令成功转移后的目标地址是A.2006HB.2007HC.2008HD.2009H[答案]C[解析]1、指令的寻址方式,相对寻址的执行过程2、指令的执行步骤与每一步的操作功能;计算机按字节寻址,相对转移指令在2000H单元,则取出这条指令后PC的值应为2002H,因为取指的同时将执行PC增量操作(此处增量值为2,而不是1),相对位移量的值是6,故转移目标地址应为2008H。17.下列关于RISC的叙述中,错误..的是A.RISC普遍采用微程序控制器B.RISC大多数指令在一个时钟周期内完成C.RISC的内部通用寄存器数量相对CISC多D.RISC的指令数、寻址方式和指令格式种类相对CISC少[答案]A[解析]1、相对于CISC计算机,RISC计算机的特点表现在哪些方面;2、组合逻辑控制器和微程序控制器的组成与性能的同异之处;18.某计算机的指令流水线由四个功能段组成,指令流经各功能段的时间(忽略各功能段之间的缓存时间)分别为90ns、80ns、70ns和60ns,则该计算机的CPU时钟周期至少是A.90nsB.80nsC.70nsD.60ns[答案]A[解析]1、如何确定每个流水步的时间长度,时钟周期应以最长的执行时间为准,否则用时长的流水段的功能将不能正确完成。19.相对于微程序控制器,硬布线控制器的特点是A.指令执行速度慢,指令功能的修改和扩展容易B.指令执行速度慢,指令功能的修改和扩展难C.指令执行速度快,指令功能的修改和扩展容易D.指令执行速度快,指令功能的修改和扩展难[答案]D[解析]1、组合逻辑控制器和微程序控制器的组成与性能的同异之处。20.假设某系统总线在一个总线周期中并行传输4字节信息,一个总线周期占用2个时钟周期,总线时钟频率为10MHz,则总线带宽是A.10MB/sB.20MB/sC.40MB/sD.80MB/s[答案]B。[解析]1、总线的带宽等于总线周期的频率×每个总线周期传送的信息数量。按题意,(10×106/2)×4=20×106(MB/s)。21.假设某计算机的存储系统由Cache和主存组成。某程序执行过程中访存1000次,其中访问Cache缺失(未命中)50次,则Cache的命中率是A.5%B.9.5%C.50%D.95%[答案]D[解析]1、Cache与主存之间的地址映射关系。2、三种Cache的组织方式(其实本题未测试这一点,是直接映射还是两路组相联与答案不相关);3、Cache的命中率。计算:命中率为(1000-50)/1000=95%22.下列选项中,能引起外部中断的事件是A.键盘输入B.除数为0C.浮点运算下溢D.访存缺页[答案]A[解析]1、中断的分类。能引起外部中断的只能是输入设备键盘。二.综合应用题43.(8分)某计算机的CPU主频为500MHz,CPI为5(即执行每条指令平均需5个时钟周期)。假定某外设的数据传输率为0.5MB/s,采用中断方式与主机进行数据传送,以32位为传输单位,对应的中断服务程序包含18条指令,中断服务的其他开销相当于2条指令的执行时间。请回答下列问题,要求给出计算过程。(1)在中断方式下,CPU用于该外设I/O的时间占整个CPU时间的百分比是多少?(2)当该外设的数据传输率达到5MB/s时,改用DMA方式传送数据。假定每次DMA传送块大小为5000B,且DMA预处理和后处理的总开销为500个时钟周期,则CPU用于该外设I/O的时间占整个CPU时间的百分比是多少?(假设DMA与CPU之间没有访存冲突)[答案](1)中断方式下,CPU每次用于数据传送的时钟周期数:518+52=100为达到外设0.5MB/s的数据传输率,外设每秒申请的中断次数:0.5MB/4B=1250001秒钟内用于中断的开销:100125000=12500000=12.5M个时钟周期CPU用于外设I/O的时间占整个CPU时间的百分比:12.5M/500M=2.5%(2)外设数据传输率提高到5MB/s时,1秒钟内需产生的DMA次数:5MB/5000B=1000CPU用于DMA处理的总开销:1000500=500000=0.5M个时钟周期CPU用于外设I/O的时间占整个CPU时间的百分比:0.5M/500M=0.1%[解析]在答案中已加入分析。44.(13分)某计算机字长16位,采用16位定长指令字结构,部分数据通路结构如下图所示(见下页),图中所有控制信号为1时表示有效、为0时表示无效,例如控制信号MDRinE为1表示允许数据从DB打入MDR,MDRin为1表示允许数据从内总线打入MDR。假设MAR的输出一直处于使能状态。加法指令“ADD(R1),R0”的功能为(R0)+((R1))(R1),即将R0中的数据与R1的内容所指主存单元的数据相加,并将结果送入R1的内容所指主存单元中保存。MemRMemWDataAddr存储器(M)CBDBABMARinMDRinEMDRoutR0R0inR1inR0outR1outR1AAinAddALUACACoutPCoutPCPC+1IRIRin至指令译码部件控制信号图例Xout三态门及其控制信号Xin寄存器输入控制信号MDRoutEMDRinPCinMARMDRACin内总线下表给出了上述指令取指和译码阶段每个节拍(时钟周期)的功能和有效控制信号,请按表中描述方式用表格..列出指令执行阶段......每个节拍的功能和有效控制信号。时钟功能有效控制信号C1MAR←(PC)PCout,MARinC2MDR←M(MAR)PC←(PC)+1MemR,MDRinEPC+1C3IR←(MDR)MDRout,IRinC4指令译码无[答案]参考答案一:时钟功能有效控制信号C5MAR←(R1)R1out,MARinC6MDR←M(MAR)A←(R0)MemR,MDRinER0out,AinC7AC←(MDR)+(A)MDRout,Add,ACinC8MDR←(AC)ACout,MDRinC9M(MAR)←(MDR)MDRoutE,MemW“A←(R0)”也可在C7:“AC←(MDR)+(A)”之前单列的一个时钟周期内执行。参考答案二:时钟功能有效控制信号C5MAR←(R1)R1out,MARinC6MDR←M(MAR)MemR,MDRinEC7A←(MDR)MDRout,AinC8AC←(A)+(R0)R0out,Add,ACinC9MDR←(AC)ACout,MDRinC10M(MAR)←(MDR)MDRoutE,MemW[解析]一条指令的执行过程通常由取指、译码和执行3个步骤完成,本题中取指用3个节拍、译码用1个节拍,执行加法运算并把结果写入主存如何完成呢?包括划分执行步骤、确定完成的功能、要提供的控制信号,这是本题的要测试的内容。为回答这个问题,首先需要看清图中给出的部件组成情况和信息传送的路径。要完成的功能是(R0)+((R1))→(R1),从图中看到:(1)R0、R1都有送自己内容到内总线的路径,控制信号分别是R0in和R1in;(2)ALU加运算,2个数据由工作寄存器A和内总线提供,控制信号是Add;累加器AC只接收内总线的内容,控制信号是Ain;结果需存AC,控制信号是ACin;AC的内容可送内总线,控制信号是ACout;(3)PC可接收内总线的内容,还可增1,控制信号是PCin和