《计算机组成原理计算题.doc》由会员分享,可在线阅读,更多相关《计算机组成原理计算题.doc(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流计算机组成原理计算题【精品文档】第 7 页计算题:【第三章】交叉方式的片选方法,交叉方式的地址分配,交叉存取度的概念,交叉存储器的带宽的计算多模块交叉存储器采用低位地址做偏选。模块存取一个字的存储周期为T ,总线传送时间为 t ,存储器的交叉模块数为m,称 m=T / t为交叉存取度。【例5】存储器容量32字,字长64位,模块数m=4,存储周期T=200ns,数据总线宽度为64位,总线传送周期t=50ns,若连续读出4个字,顺序和交叉的带宽各为多少?信息总量q=64b*4=256b所需时间:交叉t1=T +(m-1)*t =350ns ;顺序t2=m*T
2、=800ns;带宽:交叉W1=q / t1 =730Mb / s ; 顺序W2=q / t2 =320Mb / s.【2007】1. 设阶码3位,尾数6位,按浮点运算方法(否则不计分),完成x-y运算,x=2-0110.100101, y=2-010(-0.011110)。(共9分)2. 有一个1024K16位的存储器,由256K8位的SRAM芯片构成。(9分)问: (1) 总共需要多少DRAM芯片? (3分) (2) 设计此存储体组成框图。(6分)3. 已知 x= -0.101011 , y=0.111010 ,要求:(共7分)(1) 写出变形补码x补和y补和-y补;(3分)(2) 用变形补
3、码计算x+y补和x-y补,并判断是否溢出。(4分)4.已知 x= 0.10101, y=0.11001,计算x*y补和其真值(要求有补码直接乘法的算式)。(9分)5. 设有一微指令格式字长为24位,其中下址字段8位;判别测试字段3位;其余为操作控制字段。操作控制字段采用混合编码方式,有5位分别经一个3:8译码器和一个2:4译码器输出,其它均为直接控制。问:(共5分,要求有算式)(1) 这种指微指令格式中最多可以表示多少个微命令?(2分)(2) 一条微指令最多可同时发出多少个微命令?(2分)(3) 可直接寻址的控制存储器最大单元数是多少?(1分)-答案-1 设两数均以补码表示,阶码和尾数均采用双
4、符号位,则它们的浮点表示分别为: x浮=11101,0.100101 -y浮=11110, 0.011110 1(1)求阶差并对阶 1 E=Ex-Ey=Ex补-Ey补=Ex补+-Ey补=11101 + 00 010 =11 111即E为-1,x阶码小,应使Mx右移1位,Ex加1 x浮=11 110,00.010010(1)(2)尾数求和 2 0 0. 0 1 0 0 1 0 (1)+0 0. 0 1 1 1 1 0 0 0 1 1 0 0 0 0 (1)(3)规格化 2 可见尾数运算结果的符号位与最高位不相同,不需要执行规格化处理(4)舍入处理 11 110, 00.110001。 1(5)判
5、溢出 阶码两符号位为11,无溢出。1故最后结果为x浮+y浮=11 110, 00.110001, 真值为2-2*0.110001 。 12 (1) 3 (2) 存储体组成框图如下:6CS3R/WR/WR/WR/WR/WR/WR/WD7D0D15D8256K8256K8256K8256K8256K8256K8256K8256K8A17A0R/WCS0CS0CS1CS1CS2CS2CS3CS3A18A19CS2CS1CS0R/W3 x= -0.101011 , y=0.111010(3) x补=11.010101y补=00.111010-y补=11.000110(4) x+y补=x补+y补x-y补
6、=x补+-y补11.01010111.010101 00.11101011.00011000.001111(没有溢出)10.011011(有负溢出) x+y=0.001111 x-y=-1.1101014. 解:x= 0.10101, x补=0.10101y=0.11001,y补=1.00111 (0).1 0 1 0 1 (1).0 0 1 1 1 (0) 1 0 1 0 1 (0) 1 0 1 0 1 (0) 1 0 1 0 1 0 (1)(0)(1)(0)(1) 1. 0 1 1 1 1 0 1 0 1 1 x 补*y补=1.0111101011其值x*y=-0.1000010101=-
7、(512+8+4+1)/1024=-525/1024.5. 解: (4) 由题意可知,其操作控制字段共248313位,13位的操作控制字段采用混合编码,直接表示的位数为13-3-2=8,3位译码后可表示7个微命令,2位译码后可表示3个微命令,所以该格式最多可以表示87318个微命令。 (2分)(5) 一条微指令最多可同时发出8+1+1=10个微命令(2分)(6) 因为其下址字段为8位,可直接寻址的控制存储器最大单元数是256。(1分)【2008】1 用8k*2位的RAM构成32k*8位的存储器,需要多少片,说明原因,画出组成的逻辑框图。2用变形补码计算 X-Y ,X+Y,并判别结果的正确性。设
8、:X=0.11011,Y=-0.100103 存储器容量为32字,字长64位,模块数为8,用交叉方式进行组织,存储周期为200ns,数据总线宽度为64位,总线传输周期为50ns,问该存储器的带宽是多少?4 已知某机采用微程序控制,其控制存储器容量为51248位。微程序可在控制存储器中实现转移,可控制微程序转移的条件共4个。微指令采用水平型格式,微命令采用直接控制,后继微指令地址采用断定方式,问微指令格式中三个字段分别应为多少位?5已知 x= 0.10101, y=0.11001,计算x*y补和其真值(要求有补码直接乘法的算式)-答案-1 (32k*8)/(8k*2)=4*4=16 4片为一组,
9、共需要4组。C P U2:42 X补=0011011 Y补=1101110 -Y补=0010010 X补+-Y补=0101101 溢出 X补+Y补=0001001 无溢出 X+Y = 0.010013 连续读出8个字的信息量是64位8=512位连续读出8个字所需的时间是200+750=5.510-7s交叉存储器的带宽是 512位/5.510-7s=93107位/s4 假设判别字段中每一位作为一个判别标志,那么由于有4个转移条件,故该字段为4位。由于控存容量为512单元,所以下地址字段为9位。故微命令字段字长为48-9-4=35位。 5 解:x= 0.10101, x补=0.10101y=0.1
10、1001,y补=1.00111 (0).1 0 1 0 1 (1).0 0 1 1 1 (0) 1 0 1 0 1 (0) 1 0 1 0 1 (0) 1 0 1 0 1 0 (1)(0)(1)(0)(1) (1).0 1 1 1 1 1 0 0 1 1 x 补*y补=1.0111110011其值x*y=-0.1000001101=-(512+8+4+1)/1024=-525/1024.其值x*y=-0.1000010101=-(512+8+4+1)/1024=-525/1024.【2009】1. 设有两个浮点数x=2ExSx,y=2EySy,Ex=(-10)2,Sx=(+0.1001)2,E
11、y=(+10)2,Sy=(+0.1011)2。若尾数4位,数符1位,阶码2位,阶符1位,求x+y=?并写出运算步骤及结果。(7分)2已知X=-0.01111,Y=+0.11001,求X补,-X补,Y补,-Y补,X+Y=?,X-Y=?(用变形补码计算,并说明结果是否出现溢出)。(6分)3 如下图所示的CPU逻辑框图中,有两条独立的总线和两个独立的存储器。已知指令存储器IM最大容量为16384字(字长18位),数据存储器DM最大容量是65536字(字长16位)。各寄存器均有“打入”(Rin)“送出”(Rout)控制命令,但图中未标出。(8分)(1)指出下列寄存器的位数:程序计数器PC,指令寄存器I
12、R,累加器AC0、AC1,通用寄存器R0R3,指令存储器地址寄存器IAR,,指令存储器数据存储器IDR,数据存储器地址寄存器DAR,数据存储器数据寄存器DDR。(3分)(2) 设机器指令格式为 17 13 12 0 OP X加法指令可写为“ADD X(Ri)” ,其功能是(AC0) + (Ri) + X)AC1,其中(Ri) + X)部分通过寻址方式指向数据存储器DM。现取Ri为R1。画出ADD指令的指令周期流程图,写明“数据通路”和相应的微操作控制信号。(5分)4 某计算机的主存地址空间大小为256 MB,按字节编址。指令Cache和数据Cache分离,均有8个Cache行,每个Cache行
13、大小为64 B,数据Cache采用直接映射方式。现有两个功能相同的程序A和B,其伪代码如下所示: 程序A: 程序B: int a256256; int a256256; int sum_array1() int sum_array2() int i,j,sum=0; int i,j,sum=0; for (i=0;i256;i+) for (j=0;j256;j+) for(j=0;j256;j+) for(i=0;i256;i+) sum+=aij; sum+=aij; return sum; return sum;假定int类型数据用32位补码表示,程序编译时i, j, sum均分配在寄存
14、器中,数组a按行优先方式存放,其首地址为320(十进制数)。请回答下列问题,要求说明理由或给出计算过程。(5分)(1)若不考虑用于Cache一致性维护和替换算法的控制位,则数据Cache的总容量为多少?(2分)(2)数组元素a031和a11各自所在的主存块对应的Cache行号分别是多少(Cache行号从0开始)?(2分) (3)程序A和B的数据访问命中率各是多少?哪个程序的执行时间更短?(1分)5有一个1024K16位的存储器,由512K4位的DRAM芯片构成(5分)。问: (1) 总共需要多少DRAM芯片? (2分) (2) 设计此存储体组成框图。(3分)6已知 x= 0.11101, y=
15、0.10011,计算x*y补和其真值(要求有补码直接乘法的算式)(4分)-答案-1 对阶: J=ExEY=(-10)2(+10)2=(-100)2 所以ExEY,则Sx右移4位,Ex+(100)2=(10)2=EY。SX右移四位后SX=0.00001001,经过舍入后SX=0001,经过对阶、舍入后,X=2(10)2(0.0001)2尾数求和: SX+SY0 0001(SX) + 0. 1011(SY) SX+SY=0. 1100结果为规格化数。所以: X+Y=2(10)2(SX+SY)=2(10)2(0.1100)2=(11.00)22 X原=1.01111 X补=1.10001 -X补=0
16、.01111 Y原=0.11001 Y补=0.11001 -Y补=1.00111 X补 11.10001 + Y补 00.11001 X+Y补 00.01010 X+Y=+0.01010 X补 11.10001 + -Y补 11.00111 X-Y补 10.11000因为符号位相异,所以结果发生溢出。3 pc=14位 IR=18位 AC0=AC1=16位 R0-R3=16位 IAR=14位 IDR=18位 DAR=16位 DDR=16位4 (1)主存容量256MB,按字节寻址的地址位数应为28位,数据Cache分为8行(用3位地址),每行64B(用6位地址),因此Cache中每个字块的Tag字
17、段的位数应是28-9=19位,还要使用一个有效位,二者合计为20位;因此数据Cache的总容量应为:64B8+(20/88)B = 532B。 (2)数组A031所在的主存块对应的Cache行号是: (320+314)div 64 = 6, 数组A11所在主存块对应的Cache行号: (320+2564+ 14) div 64) mod 8 = 5。 所以a031所在主存块映射到Cache第6行, a11所在主存块映射到Cache第5行。(3)编译时i, j, sum均分配在寄存器中,故数据访问命中率仅考虑数组a的情况。这个程序的特点是数组中的每一个int 类型的数据只被使用一次。数组A按行优先存放,数据Cache正好放下数组半行中的全部数据,即数据的存储顺序与使用次序有更高的吻合度,每个字块存16个int类型的数据,访问每个字块中头一个字不会命中,但接下来的15个字都会命中,访问全部字块都符合这一规律,命中率是15/16,即程序A的数据访问命中率为93.75%;程而程序B是按照数组的列执行外层循环,在内层循环过程中,将连续访问不同行的同一列的数据,不同行的同一列数据使用的是同一个Cache单元,每次都不会命中,命中率是0,程序执行特别慢。根据上述计算出的命中率,得出程序B每次取数都要访问主存,所以程序A的执行比程序B快得多。5
限制150内