1、本科生期末试卷(一)二、简答题(每小题8分,共16分) 1 假设主存容量16M32位,Cache容量64K32位,主存与Cache之间以每块432位大小传送数据,请确定直接映射方式的有关参数,并画出内存地址格式。 2 指令和数据都用二进制代码存放在内存中,从时空观角度回答CPU如何区分读出的代码是指令还是数据。答:计算机可以从时间和空间两方面来区分指令和数据,在时间上,取指周期从内存中取出的是指令,而执行周期从内存取出或往内存中写入的是数据,在空间上,从内存中取出指令送控制器,而执行周期从内存从取的数据送运算器、往内存写入的数据也是来自于运算器三、计算题(14分)设x=-18(-15),y=+
2、26(+13),数据用补码表示,用带求补器的阵列乘法器求出乘积xy,并用十进制数乘法进行验证。解:设最高位为符号位,输入数据为:x补=10001,y补=10011, 算前求补器输出后 |x|=1111, |y|=11011111 11011111 乘积符号位运算: 0000 x0y0 = 11=0 1111 + 1111 11000011算后求补器输出为11000011,加上乘积符号0,最后得补码乘积值为011000011,利用补码与真值的换算公式,补码二进制数的真值是xy = 127+126+121+120=128+64+2+1 =+195十进制数乘法验证:xy=(-15)(-13) =+1
3、95四、证明题(12分)用定量分析方法证明多模块交叉存储器带宽大于顺序存储器带宽。解:假设(1)存储器模块字长等于数据总线宽度; (2)模块存取一个字的存储周期等于T; (3)总线传送周期为; (4)交叉存储器的交叉模块数为m.。交叉存储器为了实现流水线方式存储,即每经过时间延迟后启动下一模快,应满足 T = m, (1)交叉存储器要求其模快数m,以保证启动某模快后经过m时间后再次启动该模快时,它的上次存取操作已经完成。这样连续读取m个字所需要时间为 t1 = T + (m 1)= m+ m= (2m 1) (2)故存储器带宽为W1 = 1/t1 = 1/(2m-1) (3)而顺序方式存储器连
4、续读取m个字所需时间为 t2 = mT = m2 (4)存储器带宽为W2 = 1/t2 = 1/m2 (5)比较(3)和(5)式可知,交叉存储器带宽W1 大于顺序存储器带宽W2五、分析题(12分)图1所示的系统中,A、B、C、D四个设备构成单级中断结构,它要求CPU在执行完当前指令时转向对中断请求进行服务。现假设: TDC为查询链中每个设备的延迟时间; TA、TB、TC、TD分别为设备A、B、C、D的服务程序所需的执行时间; TS、TR分别为保存现场和恢复现场所需的时间; 主存工作周期为TM; 中断批准机构在确认一个新中断之前,先要让即将被中断的程序的一条指令执行完毕。试问:在确保请求服务的四
5、个设备都不会丢失信息的条件下,中断饱和的最小时间是多少?中断极限频率是多少?解: :假设主存工作周期为TM,执行一条指令的时间也设为TM 。则中断处理过程和各时间段如图B17.3所示。当三个设备同时发出中断请求时,依次处理设备A、B、C的时间如下: tA = 2TM + TDC + TS + TA + TR tB = 2TM + TDC + TS + TA + TRtC = 2TM + TDC + TS + TA + TRTd=2TM + TDC + TS+ta+tb+tc达到中断饱和的时间为: T = tA + tB + tC +Td 中断极限频率为:f = 1 / T 图B17.3六、设计
6、题(16分)某计算机有图2所示的功能部件,其中M为主存,指令和数据均存放在其中,MDR为主存数据寄存器,MAR为主存地址寄存器,R0R3为通用寄存器,IR为指令寄存器,PC为程序计数器(具有自动加1功能),C、D为暂存寄存器,ALU为算术逻辑单元,移位器可左移、右移、直通传送。(1)将所有功能部件连接起来,组成完整的数据通路,并用单向或双向箭头表示信息传送方向。(2)画出“ADD R1,(R2)”指令周期流程图。该指令的含义是将R1中的数与(R2)指示的主存单元中的数相加,相加的结果直通传送至R1中。(3)若另外增加一个指令存贮器,修改数据通路,画出的指令周期流程图。解:(1)各功能部件联结成如图所示数据通路: 移位器 MBR R0 IR R1 PC M R2 C ALU +1 MAR R3 D 图 B 6.4(PC) MAR(2)此指令为RS型指令,一个操作数在R1中,另一个操作数在R2为地址的内存单元中,相加结果放在R1中。 送当前指令地址到MAR MMBRIR,(PC)+ 1 取当前指令到IR, PC + 1,为取下条指令做好准备译码 (R1)C (R2)MAR MMBRD (C)+(D)R1 图 B 6.5 (说明):取R1操作数C暂存器。:送地址到MAR。:取出内存单元中的操作数D暂存器。:相加后将和数R1。