计算题:【第三章】交叉方式的片选方法,交叉方式的地址分配,交叉存取度的概念,交叉存储器的带宽的计算多模块交叉存储器采用低位地址做偏选。模块存取一个字的存储周期为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=800ns;带宽:交叉W1=q/t1=730Mb/s;顺序W2=q/t2=320Mb/s.【2007】1.设阶码3位,尾数6位,按浮点运算方法(否则不计分),完成x-y运算,x=2-011×0.100101,y=2-010×(-0.011110)。(共9分)2.有一个1024K×16位的存储器,由256K×8位的SRAM芯片构成。(9分)问:(1)总共需要多少DRAM芯片?(3分)(2)设计此存储体组成框图。(6分)3.已知x=-0.101011,y=0.111010,要求:(共7分)(1)写出变形补码[x]补和[y]补和[-y]补;(3分)(2)用变形补码计算[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.设两数均以补码表示,阶码和尾数均采用双符号位,则它们的浮点表示分别为:[x]浮=11101,0.100101[-y]浮=11110,0.0111101’(1)求阶差并对阶1’ΔE=Ex-Ey=[Ex]补-[Ey]补=[Ex]补+[-Ey]补=11101+00010=11111即ΔE为-1,x阶码小,应使Mx右移1位,Ex加1[x]浮=11110,00.010010(1)(2)尾数求和2’00.010010(1)+00.01111000110000(1)(3)规格化2’可见尾数运算结果的符号位与最高位不相同,不需要执行规格化处理(4)舍入处理11110,00.110001。1’(5)判溢出阶码两符号位为11,无溢出。1’故最后结果为[x]浮+[y]浮=11110,00.110001,真值为2-2*0.110001。1’2.(1)1024*164*28256*8KK3’(2)存储体组成框图如下:6’3.x=-0.101011,y=0.111010(3)[x]补=11.010101[y]补=00.111010[-y]补=11.000110(4)[x+y]补=[x]补+[y]补[x-y]补=[x]补+[-y]补11.01010111.01010100.11101011.00011000.001111(没有溢出)10.011011(有负溢出)x+y=0.001111x-y=-1.1101014.解:x=0.10101,[x]补=0.10101y=–0.11001,[y]补=1.00111(0).10101(1).00111(0)10101(0)10101(0)101010(1)(0)(1)(0)(1)1.0111101011[x]补*[y]补=1.0111101011其值x*y=-0.1000010101=-(512+8+4+1)/1024=-525/1024.5.解:(4)由题意可知,其操作控制字段共24-8-3=13位,13位的操作控制字段采用混合编码,直接表示的位数为13-3-2=8,3位译码后可表示7个微命令,2位译码后可表示3个微命令,所以该格式最多可以表示8+7+3=18个微命令。(2分)(5)一条微指令最多可同时发出8+1+1=10个微命令(2分)(6)因为其下址字段为8位,可直接寻址的控制存储器最大单元数是256。(1分)【2008】1用8k*2位的RAM构成32k*8位的存储器,需要多少片,说明原因,画出组成的逻辑框图。2用变形补码计算X-Y,X+Y,并判别结果的正确性。设:X=0.11011,Y=-0.10010CS3↑↑R/WR/WR/WR/WR/W↑↑R/WR/WD7~D0D15~D8256K×8256K×8256K×8256K×8256K×8256K×8256K×8256K×8A17~A0↑↑↑↑↑↑↑↑↑↑↑↑R/WCS0CS0CS1CS1CS2CS2CS3CS3A18A19CS2CS1CS0R/W3存储器容量为32字,字长64位,模块数为8,用交叉方式进行组织,存储周期为200ns,数据总线宽度为64位,总线传输周期为50ns,问该存储器的带宽是多少?4已知某机采用微程序控制,其控制存储器容量为512×48位。微程序可在控制存储器中实现转移,可控制微程序转移的条件共4个。微指令采用水平型格式,微命令采用直接控制,后继微指令地址采用断定方式,问微指令格式中三个字段分别应为多少位?5已知x=0.10101,y=–0.11001,计算[x*y]补和其真值(要求有补码直接乘法的算式)-------------------------------答案-------------------------------------1(32k*8)/(8k*2)=4*4=164片为一组,共需要4组。2[X]补=0011011[Y]补=1101110[-Y]补=0010010[X]补+[-Y]补=0101101溢出[X]补+[Y]补=0001001无溢出X+Y=0.010013连续读出8个字的信息量是64位×8=512位连续读出8个字所需的时间是200+7×50=5.5×10-7s交叉存储器的带宽是512位/5.5×10-7s=93×107位/s4假设判别字段中每一位作为一个判别标志,那么由于有4个转移条件,故该字段为4位。由于控存容量为512单元,所以下地址字段为9位。故微命令字段字长为48-9-4=35位。5解:x=0.10101,[x]补=0.10101y=–0.11001,[y]补=1.00111(0).10101CPU2:4(1).00111(0)10101(0)10101(0)101010(1)(0)(1)(0)(1)(1).0111110011[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=2Ex×Sx,y=2Ey×Sy,Ex=(-10)2,Sx=(+0.1001)2,Ey=(+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,指令寄存器IR,累加器AC0、AC1,通用寄存器R0~R3,指令存储器地址寄存器IAR,,指令存储器数据存储器IDR,数据存储器地址寄存器DAR,数据存储器数据寄存器DDR。(3分)(2)设机器指令格式为1713120OPX加法指令可写为“ADDX(Ri)”,其功能是(AC0)+((Ri)+X)→AC1,其中((Ri)+X)部分通过寻址方式指向数据存储器DM。现取Ri为R1。画出ADD指令的指令周期流程图,写明“数据通路”和相应的微操作控制信号。(5分)4某计算机的主存地址空间大小为256MB,按字节编址。指令Cache和数据Cache分离,均有8个Cache行,每个Cache行大小为64B,数据Cache采用直接映射方式。现有两个功能相同的程序A和B,其伪代码如下所示:程序A:程序B:inta[256][256];inta[256][256];……intsum_array1()intsum_array2(){{inti,j,sum=0;inti,j,sum=0;for(i=0;i256;i++)for(j=0;j256;j++)for(j=0;j256;j++)for(i=0;i256;i++)sum+=a[i][j];sum+=a[i][j];returnsum;returnsum;}}假定int类型数据用32位补码表示,程序编译时i,j,sum均分配在寄存器中,数组a按行优先方式存放,其首地址为320(十进制数)。请回答下列问题,要求说明理由或给出计算过程。(5分)(1)若不考虑用于Cache一致性维护和替换算法的控制位,则数据Cache的总容量为多少?(2分)(2)数组元素a[0][31]和a[1][1]各自所在的主存块对应的Cache行号分别是多少(Cache行号从0开始)?(2分)(3)程序A和B的数据访问命中率各是多少?哪个程序的执行时间更短?(1分)5有一个1024K×16位的存储器,由512K×4位的DRAM芯片构成(5分)。问:(1)总共需要多少DRAM芯片?(2分)(2)设计此存储体组成框图。(3分)6已知x=0.11101,y=–0.10011,计算[x*y]补和其真值(要求有补码直接乘法的算式)(4分)-----------------------答案--------------------------1对阶:△J=Ex-EY=(-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.01111[Y]原=0.11001[Y]补=0.11001[-Y]补=1.00111[X]补11.10001+[Y]补00.11001[X+Y]补00.01010X+Y=+0.01010[X]补11.10001+[-Y]补11.00111[X-Y]补10.11000因为符号位相异,所以结果发生溢出。3pc=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字段的位数应是28-9=19位,还要使用一个有效位,二者合计为20位;因此数据Cache的总容量应为:64B×8+(20/8×8)B=532B。(2)数组A[0][31]所在的主存块对应的Cache行号是:(320+31×4)div64=6,数组A[1][1]所在主存块对应的Cache行号:((320+256×4+1×4)div64)m