Anda di halaman 1dari 5

CSC612M November 24, 2016

Problem Set #6 Answer Key Prof. RLUy


I. MIPS pipeline execution tracing: Shown below is a snapshot of the memory and some registers. Show the
contents of the internal pipeline registers after every cycle for all the instructions. The first cycle is already
shown below. Assume: PC = 0000000000000000 and COND= 0
100F 55
100E 44
100D 33
100C 22
100B 11
100A EF
1009 CD
1008 AB
1007 89
1006 67
1005 45
1004 23
1003 01
1002 EF
1001 CD
1000 AB

R1 : 0000 0000 0000 0002 R2 0000 0000 0000 0008 R3 0000 0000 0000 0004 R4 0000 0000 0000 0005
R5 : 0000 0000 0000 0008 R6 0000 0000 0000 0001 R7 0000 0000 0000 0000 R8 0000 0000 0000 0004

Instruction Opcode (Hex) IR0..5 IR6..10 IR11..15 IR16.31


LD R1, 1000(R2) DC411000 110111 00010 00001 0001 0000 0000 0000
DADDU R5, R6, R8 00C8282D 000000 00110 01000 00101 00000 101101
XOR R7, R3, R4 00643826 000000 00011 00100 00111 00000 100110

Cycle 1
IF IF/ID.IR = DC411000
IF/ID.NPC = 0000 0000 0000 0004
PC = 0000 0000 0000 0004

ID ID/EX.A =
ID/EX.B =
ID/EX.IR =
ID/EX.IMM =
ID/EX.NPC=

EX EX/MEM.IR =
EX/MEM.ALUOutput =
EX/MEM.B =
EX/MEM.COND =

MEM MEM/WB.LMD =
Range of memory locations
affected =
MEM/WB.IR =
MEM/WB.ALUOUTPUT =

PROBLEM SET : MIP64 Pipeline Execution (No Hazard)


WB REGS[MEM/WB.IR11..15] =
REGS[MEM/WB.IR16..20] =

Cycle 2
IF IF/ID.IR = 00C8 282D
IF/ID.NPC = 0000 0000 0000 0008
PC = 0000 0000 0000 0008

ID ID/EX.A = 0000 0000 0000 0008


ID/EX.B = 0000 0000 0000 0002
ID/EX.IR = DC411000
ID/EX.IMM = 0000 0000 0000 1000
ID/EX.NPC= 0000 0000 0000 0004

EX EX/MEM.IR =
EX/MEM.ALUOutput =
EX/MEM.B =
EX/MEM.COND =

MEM MEM/WB.LMD =
Range of memory locations
affected =
MEM/WB.IR =
MEM/WB.ALUOUTPUT =

WB REGS[MEM/WB.IR11..15] =
REGS[MEM/WB.IR16..20] =

Cycle 3
IF IF/ID.IR = 0064 3826
IF/ID.NPC = 0000 0000 0000 000C
PC = 0000 0000 0000 000C

ID ID/EX.A = 0000 0000 0000 0001


ID/EX.B = 0000 0000 0000 0004
ID/EX.IR = 00C8 282D
ID/EX.IMM = 0000 0000 0000 282D
ID/EX.NPC= 0000 0000 0000 0008

EX EX/MEM.IR = DC411000
EX/MEM.ALUOutput = 0000 0000 0000 1008
EX/MEM.B = 0000 0000 0000 0002
EX/MEM.COND = 0

PROBLEM SET : MIP64 Pipeline Execution (No Hazard)


MEM MEM/WB.LMD =
Range of memory locations
affected =
MEM/WB.IR =
MEM/WB.ALUOUTPUT =

WB REGS[MEM/WB.IR11..15] =
REGS[MEM/WB.IR16..20] =

Cycle 4
IF IF/ID.IR =
IF/ID.NPC =
PC =

ID ID/EX.A = 0000 0000 0000 0004


ID/EX.B = 0000 0000 0000 0005
ID/EX.IR = 0064 3826
ID/EX.IMM = 0000 0000 0000 3826
ID/EX.NPC= 0000 0000 0000 000C

EX EX/MEM.IR = 00C8 282D


EX/MEM.ALUOutput = 0000 0000 0000 0005
EX/MEM.B = 0000 0000 0000 0004
EX/MEM.COND = 0

MEM MEM/WB.LMD = 5544 3322 11EF CDAB


Range of memory locations
affected = N/A
MEM/WB.IR = DC411000
MEM/WB.ALUOUTPUT = 0000 0000 0000 1008

WB REGS[MEM/WB.IR11..15] =
REGS[MEM/WB.IR16..20] =

Cycle 5
IF IF/ID.IR =
IF/ID.NPC =
PC =

ID ID/EX.A =
ID/EX.B =
ID/EX.IR =
ID/EX.IMM =
ID/EX.NPC=

PROBLEM SET : MIP64 Pipeline Execution (No Hazard)


EX EX/MEM.IR = 0064 3826
EX/MEM.ALUOutput = 0000 0000 0000 0001
EX/MEM.B = 0000 0000 0000 0005
EX/MEM.COND = 0

MEM MEM/WB.LMD = --
Range of memory locations
affected = N/A
MEM/WB.IR = 00C8 282D
MEM/WB.ALUOUTPUT = 0000 0000 0000 0005

WB REGS[MEM/WB.IR11..15] = 5544 3322 11EF CDAB


REGS[MEM/WB.IR16..20] =

Cycle 6
IF IF/ID.IR =
IF/ID.NPC =
PC =

ID ID/EX.A =
ID/EX.B =
ID/EX.IR =
ID/EX.IMM =
ID/EX.NPC=

EX EX/MEM.IR =
EX/MEM.ALUOutput =
EX/MEM.B =
EX/MEM.COND =

MEM MEM/WB.LMD = --
Range of memory locations
affected = N/A
MEM/WB.IR = 0064 3826
MEM/WB.ALUOUTPUT = 0000 0000 0000 0001

WB REGS[MEM/WB.IR11..15] =
REGS[MEM/WB.IR16..20] = 0000 0000 0000 0005

Cycle 7
IF IF/ID.IR =
IF/ID.NPC =
PC =

ID ID/EX.A =

PROBLEM SET : MIP64 Pipeline Execution (No Hazard)


ID/EX.B =
ID/EX.IR =
ID/EX.IMM =
ID/EX.NPC=

EX EX/MEM.IR =
EX/MEM.ALUOutput =
EX/MEM.B =
EX/MEM.COND =

MEM MEM/WB.LMD =
Range of memory locations
affected =
MEM/WB.IR =
MEM/WB.ALUOUTPUT =

WB REGS[MEM/WB.IR11..15] =
REGS[MEM/WB.IR16..20] = 0000 0000 0000 0001

PROBLEM SET : MIP64 Pipeline Execution (No Hazard)

Anda mungkin juga menyukai