三班1.主存储器一般是由(D)组成A.ROMB.FLASHC.EPROMD.DRAM2.价格、容量、速度是评价存储体系性能的三个主要方面,速度最快的存储器是(C)。A.硬盘B.光盘C.主存D.USBFLASHDRAM速度是最快的,所以选主存3.代码序列1共执行5条指令,一条需要4个周期,2条需要2个周期,2条需要1个周期,求该CPU的时钟周期数()A。10B。20C。15D。25CPU时钟周期数=程序指令数*每条指令的平均时钟周期数平均时钟周期数=(1*4+2*2+2*1)/5=22*5=10选择A4.指令addi$s1,$s2,15所属的的指令类型及含义为()A:R型指令,$s1=$s2+15B:I型指令,$s2=$s1+15C:R型指令,$s1=$s2+15D:I型指令,$s2=$s1+15答案B解析:此题为简单题,主要考察一下基本指令类型以及同学们的细心程度。5.下面的图表代表的是哪条MIPS指令?oprsrtrdshamtfunct08917032A.add$s1,$t0,$t1B.sub$s1,$t0,$t1C.add$t1,$s0,$s1D.sub$t1,$s0,$s1答案:A解析看教材55~58页6.假设基址寄存器R的内容1000H,指令中的形式地址为2000H:地址1000H中的内容为2000H,地址2000H中的内容为3000H,地址3000H中的内容为4000H,则基址寻址方式下访问到的操作数是()A、1000HB、2000HC、3000HD、4000H答案:D解析:基址寻址的地址是指令中基址寄存器和形式地址的和7.下面是用IEEE754的单精度表示的二进制数,将它化成十进制浮点数正确的是()。11000001110100000000000000000000A、-26B、-17C、1D、-1答案:A1100000111010000000000000000符号位为1,表示为负数;指数域为10000011,化为十进制为131;尾数域的值为0.101,使用基本公式计算:-1*(1.101*2^4)=11010=-26(10)。8.-0.25和0.3125的乘积是下列的().A-1.010X2^-4B-1.011X2^-4C-1.101X2^-4D-1.100X2^-4答案是:A解析:1.将不带偏阶的指数相加:-2+(-2)=-4或者,使用带偏阶的表达:(-2+127)+(-2+127)-127=(-2-2)+(127+127-127)=-4+127=1232.将有效数相乘:1.000X1.010—————0000100000001000—————1010000乘积是1.010000X2^-4,但是我们要保留4位,所以答案是1.010X2^-43.检查是否规格化:乘积已经规格化,并且127≥-4≥-126,所以没有上溢和下溢(使用带偏阶的表达,254≥123≥1,所以指数域可以表达)4.对值舍入没有使其发生变化:1.010X2^-45.因为初始的源操作数符号相异,所以积的符号为负。因此,积为-1.010X2^-4为了检查结果,将其转化为十进制:-1.010X2^-4=-0.0001010=-0.000101=-0.078125正好等于-0.25和0.3125的乘积。9.当执行A+B操作的时候,(A,B都是正数)以下哪种情况会发生溢出A.结果小于0B结果等于0C结果大于0D结果不存在答案A因为两个正数想加的时候,只有出现负数结果的时候才是溢出10.下面哪一个不是MIPS流水线的一步(B)AIFBTHENCIDDWB11.下面哪一种不是冒险(D)A结构冒险B数据冒险C控制冒险D操作冒险12.Cache容量为64块,采用组相联方式映像,字块大小为128个字,每4块为一组。若主存容量为4096块,且以字编址,则主存区号应为()位。A.5B.6C.7D.8参考答案B解析:Cache主要用于解决CPU处理器与主存之间存取速度不匹配问题。由于主存容量为212=4096块,而每块为27=128个字,因此,以字编址的主存总容量为4096×128=212×27=219=29×210=512K字,故主存地址应为19位。Cache采用组相联方式映像,其主存地址应分为区号、组号、组内块号和块内地址号等4个部分。依题意可知,块内地址号应为7位,用以表示27=128个字;每22=4块为一组,则组内块号用2位表示。Cache容量为64块,每4块为一组,共分为64/4=16=24组,故组号需要用4位地址表示。最后,主存地址19位中所剩余的即为区号,应为19-4-2-7=6位。13.动态存储器DRAM的刷新原则是(D)。A.各DRAM芯片轮流刷新B.各DRAM芯片同时刷新,片内逐位刷新C.各DRAM芯片同时刷新,片内逐字刷新D.各DRAM芯片同时刷新,片内逐行刷新14.在程序的执行过程中,Cache与主存的地址映射是由__C____。A.操作系统来管理的;B.程序员调度的;C.由硬件自动完成的;D.用户软件完成。15.如果你是编写编译器的程序员,你认为编译器是()程序。A并发B顺序C串行D并行答案:B因为编译的主要过程包含分析,代码生成和优化等。课本第341页,图6-1上面一段文字有说明二、简答题一、一个彩色显示器中的每个像素由三种基色(红、绿、蓝)构成,每种基色用8位表示,分辨率为1280x1024像素。a.为了保存一帧图像最少需要多大的缓存(以字节计算)?b.在100Mbit/s的网络上传输一帧图像最少需要多长时间?参考答案:二、将如下c语言代码翻译成mips语言。f=(a+b)-(x-y)参考答案:add$t0,a,b#临时变量$t0=a+bsub$t1,x,y#临时变量$t1=x-ysubf,$t0,$t1#f=$t0-$t1三、(1)请将0.375变换为IEEE754标准的单精度浮点数并以此说明IEEE754标准的单精度浮点数的组成部分(标注出各组成名称及位数)(2)说明什么是上溢;什么是下溢?参考答案:(1)00111110110000000000000000000000符号位阶码尾数(2)上溢:在浮点表示法中指数太大而不能在指数域表示。下溢:在浮点表示法中指数太小而不能在指数域表示。四、(1)请简述数据冒险的条件(假设没做旁路或阻塞处理).(2)请简述旁路和阻塞的消除数据冒险机制.参考答案:(1)(EX/MEM.RegisterRd=ID/EX.RegisterRs,EX/MEM.RegisterRd=ID/EX.RegisterRt,MEM/WB.RegisterRd=ID/EX.RegisterRs,MEM/WB.RegisterRd=ID/EX.RegisterRt).(答出括号内内容(不一定需要4个都在,但两个大类要都有)或类似以下叙述均可)一个操作试图使用之前指令尚未写入寄存器堆的数据时,就会发生数据冒险(或是需要等待之前指令完成其数据读写操作)。(2)旁路是通过将该指令需要的之前指令的数据直接从之前指令的流水线寄存器中读取并输入到该指令对应的ALU输入端来实现的,阻塞则是在一个装载指令和紧随它并且需要它的结果的指令间插入一个空指令,使下一个指令的取数操作被延迟来实现的(消除这两个指令的相关性在时间上是回溯的这一问题(括号内内容不确定是不是必须要写上))。五、比较DRAM与SRAM的异同。参考答案:相同点:动态随机存储器(DRAM)与静态随机存储器(SRAM)都是存放二进制数据的物理器件,读/写方式大致相同,都属于随机存储器,即在程序的执行过程中即可读出又可写入信息;它们都属于一会发行存储器,断电后信息将丢失。不同点:SRAM由双稳态触发器存储信息,只要电源不掉电,信息就不丢失;DRAM靠电容存储点和原理存储信息,即使电源不掉电,由于电容要放电,信息也会丢失,需要定期刷新。另外DRAM成本较低,存取速度较慢,因此一般用大容量存储器。SRAM成本较高,存取速度较快,一般用于小容量存储器。六、解释SIMD(单指令流多数据流)的优点。参考答案:1.所有并行执行单元都是同步的,它们都对源自同一PC的同一指令做出反应。2.降低指令宽度和空间。三、大题一、现给定一个程序,如果采用编译程序A,则动态指令数为2.0*10^9,执行时间为2.5s;若采用编译程序B,则动态指令数为1.5*10^9,执行时间为1.5s。(1)在给定处理器时钟周期为1ns,找出每个程序的平均CPI。(2)假设编译程序是在两个不同处理器上运行的。如果这两个程序的执行时间相同,求运行编译程序B的处理器始终相对运行编译程序A的时钟周期快多少?(3)假设开发一种新的编译程序,只用了5.0*10^8条指令,平均CPI为1,。求这种新的编译程序相对于原先编译程序A和B的加速比。参考答案:(1)程序A:时钟周期数=执行时间/时钟周期=2.5/(1*10^-9)=2.5*10^9,CPI=时钟周期数/指令数=(2.5*10^9)/(2.0*10^9)=1.25.程序B:同理可得CPI=1.0.(2)一个程序的CPU执行时间=一个程序的CPU时钟周期数*时钟周期时间,即2.0*10^9*1.25*Ta=1.5*10^9*1*Tb,则Ta/Tb=5/3.即运行编译程序B的处理器比运行编译程序A的处理器快2/3.(3)一个程序的CPU执行时间=指令数*CPI*时钟周期,t=5.0*10^8*1*1=0.5s,即相对A的加速比为2.5/10.5=5/1,相对B的加速比为1.5/0.5=3/1.二、A:00000001000010110101000000100000B:00001010101100110010110101110010假设寄存器$t0到$t7的寄存器号为8~15,所存初始数据大小为各自寄存器号的2倍,$s0~$s7的寄存器号为16~23,所存初始数据为各自寄存器号。1.若A是add指令,则A中的目的寄存器名是什么、执行该指令后其中所存数据是什么?(2分)2.若B是跳转指令,PC为10010011101100011000001011011111,则跳转到的地址为什么?(2分)3.以B为掩码,对A进行XOR的结果(写成十六进制)。(2分)4.若A在$s0中,读立即数61,lui$s0,61后$s0中的结果(写成十六进制)。(2分)参考答案:(1)$t238(2)10011010110011001011010111001000(3)0bb89d52(4)003d5020三、设A,B是两个10进制数,其中A=-5.625,B=2.5,请将A,B表示成IEEE754的32位标准短实数格式,并计算A+B的结果,要求写出计算步骤。参考答案:1)将A,B表示为IEEE754形式(2分):A11000000101101000000000000000000B010000000111000000000000000000002)计算A+B的值(3分):1.求阶差,对阶(对大阶):大阶为10000001;2.尾数求和:(-1.01101)+(+0.1111)=-0.01111;3.规格化:尾数为0.01111000000000000000000,左移两位,写为1.11100000000000000000000。由于尾数左移,为了保证数值不变,所以阶码10000001减2,写为01111111;4.溢出判断:无溢出;5.舍入:无舍入;6.结果:A+B=10111111111100000000000000000000。四、(10分)给出如下指令:62lw$s0,6($s3)31add$s0,$s1,$s243or$s6,$s5,$s759beq$s6,$s4,52(1)假设分支地址计算只能在EX级,请调度代码并画出调度后的流水线,标明旁路。(2分)(2)实际上由于缩短分支延迟,使得beq指令在哪一级可以得出分支结果(1分)?在IF\ID级流水线寄存器可以得到计算是否分支的哪些信息?(2分)指令地址59后的指令如下,假设预测分支发生,画出流水线(不需标明旁路)。(2分)66add$s8,$s