作业2-lab2指令集流水化实验-计算机体系结构_第1页
作业2-lab2指令集流水化实验-计算机体系结构_第2页
作业2-lab2指令集流水化实验-计算机体系结构_第3页
作业2-lab2指令集流水化实验-计算机体系结构_第4页
作业2-lab2指令集流水化实验-计算机体系结构_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Lab2指令集流水化实验报告学号:12281166姓名:崔雪莹Exercise1:WhatishexcodeforNOPorSLLRO,RO,RO00000000H.Exercise2:Bylookingatthebinarycodeoftheinstruction,discoverthefollowingfields:Rs:00100,Rt:00011,Rd00101,16-bitImm(Imm16)0010100000100000,Shiftamount00000,FunctionCode100000,WriteMemWrite0andRegWrite1forthisinstruction

2、.Whatisuseof16-bitImmediatefieldinthisinstruction?16位立即数是对branch指令来说的跳转目的地址的偏移地址,add指令没有作用。IfthesameinstructionwereaBranchinstruction,theimmediatefieldwouldhaverepresentedaBranchOffset.WhatisthepotentialTargetAddress43092立即数十进制表示为10272,目的地址为10272*4+2004=43092Exercise3:LWInstructionRs:01000,Rt00111,R

3、d32(00000),16-bitImm(Imm16)1111111100111000,Shiftamount29(11101),FunctionCode100011,WriteMemWrite0andRegWrite1forthisinstruction.WhatisuseofFunctionfiledandShiftAmountinthisinstruction?操作数表明操作为LW读操作,是指令操作的唯一标记,移位量是相对与移位指令来说移几位,在LW指令没有作用。IfthesameinstructionwereaBranchinstruction,theimmediatefieldwou

4、ldhaverepresentedaBranchOffset.WhatisthepotentialTargetAddress1204,(-200*4)+2004=1204。Exercise4:BranchTargetFoundAdress1204,IsItsameasEX.3是?BinputtoALU-200,Why?因为对于I型指令只有rs,rt和立即数,没有rd,是rs和立即数Imm运算的结果进行操作,所以B最终送ALU的是立即数而不是rt,ALUOut800,ALUOP=ADD,Why因为立即数是偏移量,所以运算器是对R8和-200求和,得到的为目的地址.LMD525252,Rdest7

5、whythis?因为没有rd,但是是取800地址的内容,回送到R7里。RegWrite1,MemWrite0,WhataretwovaluesattheinputofverylastMUXintheWBstage525252,800,Whichvalueisselected525252,why因为最终写回的是525252的值,而不是ALU运算的结果800.FinalRegisterFileValues.R7,525252,R8,1000Exercise5:SWinstructionRs:01000,Rt00111,Rd32(00000),16-bitImm(Imm16)111111110011

6、1000”Shiftamount28(11100),FunctionCode101011,WriteMemWrite1andRegWrite0forthisinstruction.WhatisuseofFunctionfiledandShiftAmountinthisinstruction?操作数表明操作为SW读操作,是指令操作的唯一标记,移位量是相对与移位指令来说移几位,在SW指令没有作用。IfthesameinstructionwereaBranchinstruction,theimmediatefieldwouldhaverepresentedaBranchOffset.Whatisth

7、epotentialTargetAddress1204,(-200*4)+2004=1204。Exercise6:BranchTargetFoundAdress1204,IsItsameasEX.3是?BinputtoALU-200,Why?因为对于I型指令只有rs,rt和立即数,没有rd,是rs和立即数Imm运算的结果进行操作,所以B最终送ALU的是立即数而不是rt,ALUOut800,ALUOP=ADD,Why因为SW是想把R7里的内容存到目的地址,立即数是偏移量,所以运算器是对R8和-200求和,得到的为目的地址.LMD7777,Rdest7whythis?因为没有rd,但是是把R7里的

8、内容存到目的地址800里。RegWrite0,MemWrite1,Why因为现在是存数,存到memory里,不是register里,所以MemWrite置1,RegWrite置7777,800,Whatisselected800,WhataretwovaluesattheinputofverylastMUXintheWBstagewhy因为写回memory地址为800(不太懂).FinalRegisterFileValues.R7,7777,R8,1000Exercise7:SignalNameValueWhyID.A22222ID正在分析SWR1,200(R2)Rs=Reg2=22222ID

9、.B11111Rt=Reg1=11111ALUOUTinEXE9000EXE正在执行SLTIR9,R10,-1000运算结果为10000-1000=9000ALUOUTinMEM88988MEM正在进行LWR7,100(R8)运算结果为100+88888=88988ALUOUTINWB122221WB正在与回ADDR4,R5,R6结果为55555+66666=122221RDESTinID0ID正在分析SWR1,200(R2)没有涉及到RdRDESTinEXE9EXE正在执行SLTIR9,R10,-1000R9作为Rt,在选择时被选为RdRDESTinMEM7同理,R7被选为RdRDESTin

10、WB4对于ADDR4,R5,R6R4为RdLMDinMEM77777从memory地址88988读到的数据为77777LMDinWB999上一个NOP的LMD为999没有被选择FinalValuesofRegisterFileR1=11111,R2=22222,R3=0,R4=122221,R5=55555,R6=66666,R7=77777,R8=88888,R9=0,R10=10000,R11=-1000,R12=12000,R13=13000NliifedlPiidlkl同NTfikuMJiDPa.R5.Pt11-TH111R2-22222R4-122221R5-55565RWe&SCR

11、7-?77?眄抽硼眄驹硼RW-lOOOQRiIliiRl.Rlln-Npc-NGIHu匚TIn-NILE:疋口MIPSRegistersJanOSEwrt339LMDAJLUnulMEMDR一11ZZS211U1JU_Ud2ftM:NOPZCG4阪尸30H:NOP2002rjcip20:NOP;D40NOPZD+4MQF32049NOPZOK阪尸3C6GNOP2DBQryciR2iNOP2DE3N0F2072NOF;U7GNOP2DSawapLWiNOP2DS8凶口尸2C62NOP2D3SryciR21W:NOP21CM:NOP21DE::NQP2112:NOP2116:NOP2120NOP2

12、12R1tR19R20R21R22ROiBah/vsszero.Checked8siist日sareihoseihai日8Inlllalltecusedilnthecurrentprogram.Clickonaregistertoassignavalue.This卜时te口r$Mspshows-allEurn口ryreFeren匚玉/addc匚tuallyused(readorwrrittento)inthe口o口rm.Allotherrn&rnoiyiccetioriassumerandomvali_i&inarealbutforpads口口icalreasonsIhaysassumedth

13、emtohave999.Exercise8:ExpectedValuesofRegisterFileADDR1,R2,R3R2=22222,R3=33333,所以R1=55555SUBR5,R6,R1R6=66666,R1=55555,所以R5=11111ADDR4,R1,R5R1=55555,R5=11111,所以R4=66666SWR1,200(R4)R4=66666,所以memory地址为66866值为55555LWR4,100(R1)R1=55555,令55655地址内容为77777,所以R4=77777综上,R1=55555,R2=22222,R3=33333,R4=77777,R5

14、=11111,R6=66666ActualValuesofRegisterFile实际上,R1=55555,R2=22222,R3=33333,R4=77777,R5=55555,R6=66666Reasonondifference发现期望值与实际实验的值不一样,我仔细观察指令的流水化过程,比如ADDR1,R2,R3R2=22222,R3=33333,所以R1=55555SUBR5,R6,R1R6=66666,R1=55555,所以R5=11111这是我期望的结果和过程,但实际上第一条指令走到WB阶段,R1值55555还没写回时,第二条指令已经取到了原始的没有写回R1的值11111,计算得到的

15、R5为55555,当第一条指令写回后第二条指令走到了WB,结果没改变,造成错误,同理,接下来的计算类似,只是因为赋值特殊,所以看不出来变化,实际实现机制不一样的。所以上述结果出现错误。Exercise9:InstructionClockCycle123456789101112ADDR1,R2,R3IFIDEXEMEMWBNOPIFIDEXEMEMWBNOPIFIDEXEMEMWBSUBR5,R6,R1IFIDEXEMEMWBExercise10:InstructionClockCycleADDR1,R2,R3SUBR5,R6,R1ADDR4,R1,R5SWR1,200(R4)LWR4,100(R1)1011121314151617IFIDEXEMEMWBIFIDIDIDEXEMEMWBIFIFIFIDIDIDEXEMEMWBIFIFIFIDIDIDEXEMEMWBIFIFIFIDIDIDEXEMEMWB这次实验是关于指令流水化的内容,课上关于流水化只讲解了一些概念,并没有一个相对直观的感受,实验使用软件模拟化直观的看出指令的流水,印象十分深刻。实验过程中,我发现流水化的一些疑问,比如说上一条指令的结果是下一条指令的源,这样在流水化过程中就会出现错误,这个问题在,可以直观的看到,并且通过引入了,很好的实

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论