Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset...

39
1 RISC Pipeline Han Wang CS3410, Spring 2010 Computer Science Cornell University See: P&H Chapter 4.6

Transcript of Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset...

Page 1: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"

1  

RISC  Pipeline  

Han  Wang  CS3410,  Spring  2010  Computer  Science  Cornell  University  

See:  P&H  Chapter  4.6  

Page 2: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"

2  

Homework  2    

0  1    2  3  4  5  6  7  8    9  

Page 3: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"

3  

Announcements  -­‐  Homework  2  due  tomorrow  midnight  -­‐  Programming  Assignment  1  release  tomorrow  -­‐  Pipelined  MIPS  processor  (topic  of  today)  -­‐  Subset  of  MIPS  ISA  

-­‐  Feedback  -­‐  We  want  to  hear  from  you!  -­‐  Content?    

Page 4: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"

4  

Absolute  Jump  

tgt  

+4  

||  

Data  Mem  

addr  

ext  

5   5   5  

Reg.  File  

PC  

Prog.  Mem   ALU  inst  

control  

imm  

offset  

+  

=?  

cmp  

Could  have  used  ALU  for  link  add  

+4  

op   mnemonic   description  0x3   JAL    target   r31  =  PC+8  (+8  due  to  branch  delay  slot)  

PC  =  (PC+4)31..28  ||  (target  <<  2)  

Page 5: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"

5  

A  Processor  

alu  

PC  

imm  

memory  

memory  

din   dout  

addr  

target  

offset   cmp  control  

=?  

new    pc  

register  file  

inst  

extend  

+4   +4  

Review:  Single  cycle  processor  

Page 6: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"

6  

Single  Cycle  Processor  Advantages  •  Single  Cycle  per  instruc`on  make  logic  and  clock  simple  

Disadvantages  •  Since  instruc`ons  take  different  `me  to  finish,  memory  and  func`onal  unit  are  not  efficiently  u`lized.  

•  Cycle  `me  is  the  longest  delay.  – Load  instruc`on  

•  Best  possible  CPI  is  1  

Page 7: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"

7  

Pipeline  Hazards  

0h    1h    2h    3h…  

Page 8: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"

8  

Write-­‐  

Back  Memory  

Instruc`on  Fetch   Execute  

Instruc`on  Decode  

register  file  

control  

A  Processor  

alu  

imm  

memory  

din   dout  

addr  

inst  

PC  

memory  

compute  jump/branch  

targets  

new    pc  

+4  

extend  

Page 9: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"

9  

Basic  Pipeline  

Five  stage  “RISC”  load-­‐store  architecture  1. Instruc`on  fetch  (IF)  

–  get  instruc`on  from  memory,  increment  PC  2. Instruc`on  Decode  (ID)  

–  translate  opcode  into  control  signals  and  read  registers  3. Execute  (EX)  

–  perform  ALU  opera`on,    compute  jump/branch  targets  4. Memory  (MEM)  

–  access  memory  if  needed  5. Writeback  (WB)  

–  update  register  file  

 

Slides  thanks  to  Sally  McKee  &  Kavita  Bala  

Page 10: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"

10  

Pipelined  Implementa`on  

Break  instruc`ons  across  mul`ple  clock  cycles    (five,  in  this  case)  

 Design  a  separate  stage  for  the  execu`on  performed  during  each  clock  cycle  

 Add  pipeline  registers  to  isolate  signals  between  different  stages  

Page 11: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"

11  

Write-­‐  

Back  Memory  

Instruc`on  Fetch   Execute  

Instruc`on  Decode  

extend  

register  file  

control  

Pipelined  Processor  

alu  

memory  

din   dout  

addr  PC  

memory  

new  pc  

inst  

IF/ID   ID/EX   EX/MEM   MEM/WB  

imm  

B  A  

ctrl  

ctrl  

ctrl  

B  D   D  

M  

compute  jump/branch  

targets  

+4  

Page 12: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"

12  

IF  

Stage  1:  Instruc`on  Fetch    Fetch  a  new  instruc`on  every  cycle  •  Current  PC  is  index  to  instruc`on  memory  •  Increment  the  PC  at  end  of  cycle  (assume  no  branches  for  now)  

 Write  values  of  interest  to  pipeline  register  (IF/ID)  •  Instruc`on  bits  (for  later  decoding)  •  PC+4  (for  later  compu`ng  branch  targets)  

Page 13: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"

13  

IF  

PC  

instruc`on  memory  

new  pc  

inst  

addr   mc  

00  =  read  word  

1  

IF/ID  

WE    1  

Rest  of  p

ipeline  

+4  

PC+4

 

pcsel  

pcreg  pcrel  

pcabs  

Page 14: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"

14  

ID  

Stage  2:  Instruc`on  Decode    On  every  cycle:  •  Read  IF/ID  pipeline  register  to  get  instruc`on  bits  •  Decode  instruc`on,  generate  control  signals  •  Read  from  register  file  

Write  values  of  interest  to  pipeline  register  (ID/EX)  •  Control  informa`on,  Rd  index,  immediates,  offsets,  …  •  Contents  of  Ra,  Rb  •  PC+4  (for  compu`ng  branch  targets  later)  

Page 15: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"

15  

ID  

ctrl  

ID/EX  

Rest  of  p

ipeline  

PC+4

 

inst  

IF/ID  

PC+4

 

Stage  1:  Instruc`on

 Fetch  

register  file  

WE  Rd  

Ra   Rb  

D  B  

A  

B  A  

extend   imm  decode  

result  

dest  

Page 16: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"

16  

EX  

Stage  3:  Execute    On  every  cycle:  •  Read  ID/EX  pipeline  register  to  get  values  and  control  bits  •  Perform  ALU  opera`on  •  Compute  targets  (PC+4+offset,  etc.)  in  case  this  is  a  branch  •  Decide  if  jump/branch  should  be  taken  

Write  values  of  interest  to  pipeline  register  (EX/MEM)  •  Control  informa`on,  Rd  index,  …  •  Result  of  ALU  opera`on  •  Value  in  case  this  is  a  memory  store  instruc`on  

Page 17: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"

17  

Stage  2:  Instruc`on

 Decod

e  

pcrel  

pcabs  

EX  

ctrl  

EX/MEM  

Rest  of  p

ipeline  

B  D  

ctrl  

ID/EX  

PC+4

 B  

A  

alu  

+  

||  

branch?  

imm  

pcsel  

pcreg  

Page 18: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"

18  

MEM  

Stage  4:  Memory    On  every  cycle:  •  Read  EX/MEM  pipeline  register  to  get  values  and  control  bits  •  Perform  memory  load/store  if  needed  

–  address  is  ALU  result  

 Write  values  of  interest  to  pipeline  register  (MEM/WB)  •  Control  informa`on,  Rd  index,  …  •  Result  of  memory  opera`on  •  Pass  result  of  ALU  opera`on  

Page 19: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"

19  

MEM  

ctrl  

MEM/WB  

Rest  of  p

ipeline  

Stage  3:  Execute  

M  

D  

ctrl  

EX/MEM  

B  D  

memory  

din   dout  addr  

mc  

Page 20: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"

20  

WB  

Stage  5:  Write-­‐back    On  every  cycle:  •  Read  MEM/WB  pipeline  register  to  get  values  and  control  bits  •  Select  value  and  write  to  register  file    

Page 21: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"

21  

WB  

Stage  4:  M

emory  

ctrl  

MEM/WB  

M  

D  result  

dest  

Page 22: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"

22  IF/ID  

+4  

ID/EX   EX/MEM   MEM/WB  

mem  

din   dout  

addr  inst  

PC+4

 

OP  

B  A  

Rd  

B  D  

M  

D  

PC+4

 im

m  

OP  

Rd  

OP  

Rd  PC  

inst  mem  

Rd  

Ra   Rb  

D  B  

A  

Page 23: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"

23  

Example  

 add    r3,  r1,  r2;    nand    r6,  r4,  r5;    lw    r4,  20(r2);    add    r5,  r2,  r5;    sw    r7,  12(r3);    

Page 24: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"

24  

0:add  1:nand  2:lw  3:add  4:sw    

r0  r1  r2  r3  r4  r5  r6  r7  

0  36  9  12  18  7  41  22  

IF/ID  

+4  

ID/EX   EX/MEM   MEM/WB  

mem  

din   dout  

addr  inst  

PC+4

 

OP  

B  A  

Rd  

B  D  

M  

D  

PC+4

 im

m  

OP  

Rd  

OP  

Rd  PC  

inst  mem  

77  

add  r3,  r1,  r2  nand  r6,  r4,  r5    add  r3,  r1,  r2  lw  r4,  20(r2)    nand  r6,  r4,  r5    add  r3,  r1,  r2  add  r5,  r2,  r5    lw  r4,  20(r2)    nand  r6,  r4,  r5    add  r3,  r1,  r2  sw  r7,  12(r3)    add  r5,  r2,  r5    lw  r4,  20(r2)    nand  r6,  r4,  r5    add  r3,  r1,  r2    sw  r7,  12(r3)    add  r5,  r2,  r5    lw  r4,  20(r2)    nand  r6,  r4,  r5      sw  r7,  12(r3)    add  r5,  r2,  r5    lw  r4,  20(r2)        sw  r7,  12(r3)    add  r5,  r2,  r5            sw  r7,  12(r3)              

Rd  

Ra   Rb  

D  B  

A  

Page 25: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"

25  

Time  Graphs  

1   2   3   4   5   6   7   8   9  

add  

nand  

lw  

add  

sw  

Clock  cycle  

Latency:  Throughput:  Concurrency:  

CPI  =  

IF   ID   EX   MEM   WB  

IF   ID   EX   MEM   WB  

IF   ID   EX   MEM   WB  

IF   ID   EX   MEM   WB  

IF   ID   EX   MEM   WB  

Page 26: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"

26  

Pipelining  Recap  

Powerful  technique  for  masking  latencies  •  Logically,  instruc`ons  execute  one  at  a  `me  •  Physically,  instruc`ons  execute  in  parallel  

–  Instruc`on  level  parallelism  

 Abstrac`on  promotes  decoupling  •  Interface  (ISA)  vs.  implementa`on  (Pipeline)  

Page 27: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"

27  

The  end  

Page 28: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"

28  

Sample  Code  (Simple)  

Assume  eight-­‐register  machine  Run  the  following  code  on  a  pipelined  datapath        add    3      1        2      ;    reg  3  =  reg  1  +  reg  2        nand        6      4        5      ;    reg  6  =  ~(reg  4  &  reg  5)        lw    4      20  (2)    ;    reg  4  =    Mem[reg2+20]        add    5      2        5      ;    reg  5  =  reg  2  +  reg  5        sw          7        12(3)      ;    Mem[reg3+12]  =  reg  7  

 

Slides  thanks  to  Sally  McKee  

Page 29: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"

29  

PC   Inst  mem  

Register  file  

     

M  U  X  A  

L  U  

M  U  X  

1  

Data  mem  

+  

M  U  X  

M  U  X  

Bits  0-­‐2  Bits  15-­‐17  

op  

dest  

offset  

valB  

valA  

PC+1  PC+1  target  

ALU  result  

op  

dest  

valB  

op  

dest  

ALU  result  

mdata  

instrucJon  

               

   

   

0  

   

R2  

R3  

R4  

R5  

R1  

R6  

R0  

R7  

regA  regB  

Bits  21-­‐23  

data  

dest  

IF/ID   ID/EX   EX/MEM   MEM/WB  

Page 30: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"

30  

data  

dest  

IF/ID   ID/EX   EX/MEM   MEM/WB  

Page 31: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"

31  

PC   Inst  mem  

Register  file  

     

M  U  X  A  

L  U  

M  U  X  

1  

Data  mem  

+  

M  U  X  

M  U  X  

Bits  0-­‐2  Bits  15-­‐17  

nop  

0  

0  

0  

0  

0  1  0  

0  

nop  

0  

0  

nop  

0  

0  

0  

0  

add    3  1    2  

9  12  18  7  

36  

41  

0  

22  

R2  

R3  

R4  

R5  

R1  

R6  

R0  

R7  

Bits  21-­‐23  

data  

dest  

Fetch:      add  3  1  2  

add  3  1  2  

Time:  1   IF/ID   ID/EX   EX/MEM   MEM/WB  

Page 32: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"

32  

PC   Inst  mem  

Register  file  

     

M  U  X  A  

L  U  

M  U  X  

1  

Data  mem  

+  

M  U  X  

M  U  X  

Bits  0-­‐2  Bits  15-­‐17  

add  

3  

3  

9  

36  

1  2  0  

0  

nop  

0  

0  

nop  

0  

0  

0  

0  nand    6  4    5  

9  12  18  7  

36  

41  

0  

22  

R2  

R3  

R4  

R5  

R1  

R6  

R0  

R7  

1  2  

Bits  21-­‐23  

data  

dest  

Fetch:      nand  6  4  5  

nand  6  4  5                                              add  3  1  2  

Time:  2   IF/ID   ID/EX   EX/MEM   MEM/WB  

Page 33: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"

33  

PC   Inst  mem  

Register  file  

     

M  U  X  A  

L  U  

M  U  X  

1  

Data  mem  

+  

M  U  X  

M  U  X  

Bits  0-­‐2  Bits  15-­‐17  

nand  

6  

6  

7  

18  

2  3  4  

45  

add  

3  

9  

nop  

0  

0  

0  

0  lw    4    20(2)  

9  12  18  7  

36  

41  

0  

22  

R2  

R3  

R4  

R5  

R1  

R6  

R0  

R7  

4  5  

Bits  21-­‐23  

data  

dest  

Fetch:      lw  4  20(2)  

lw  4  20(2)                                                  nand  6  4  5                                        add  3  1  2  

Time:  3  

36  

9  

3  

IF/ID   ID/EX   EX/MEM   MEM/WB  

Page 34: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"

34  

PC   Inst  mem  

Register  file  

     

M  U  X  A  

L  U  

M  U  X  

1  

Data  mem  

+  

M  U  X  

M  U  X  

Bits  0-­‐2  Bits  15-­‐17  

lw  

4  

20  

18  

9  

3  4  8  

-­‐3  

nand  

6  

7  

add  

3  

45  

0  

0  

add    5  2    5    

9  12  18  7  

36  

41  

0  

22  

R2  

R3  

R4  

R5  

R1  

R6  

R0  

R7  

2  4  

Bits  21-­‐23  

data  

dest  

Fetch:      add  5  2  5  

add  5  2  5                                                          lw  4  20(2)                                            nand  6  4  5                                        add  3  1  2  

Time:  4  

18  

7  

6  

45  

3  

IF/ID   ID/EX   EX/MEM   MEM/WB  

Page 35: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"

35  

PC   Inst  mem  

Register  file  

     

M  U  X  A  

L  U  

M  U  X  

1  

Data  mem  

+  

M  U  X  

M  U  X  

Bits  0-­‐2  Bits  15-­‐17  

add  

5  

5  

7  

9  

4  5  23  

29  

lw  

4  

18  

nand  

6  

-­‐3  

0  

0  sw    7  12(3)  

9  45  18  7  

36  

41  

0  

22  

R2  

R3  

R4  

R5  

R1  

R6  

R0  

R7  

2  5  

Bits  21-­‐23  

data  

dest  

Fetch:      sw  7    12(3)  

sw  7  12(3)                                                    add  5  2  5                                            lw  4  20  (2)                                  nand  6  4  5                          add      3  1  2  

Time:  5  

9  

20  

4  

-­‐3  

6  

45  

3  

IF/ID   ID/EX   EX/MEM   MEM/WB  

Page 36: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"

36  

PC   Inst  mem  

Register  file  

     

M  U  X  A  

L  U  

M  U  X  

1  

Data  mem  

+  

M  U  X  

M  U  X  

Bits  0-­‐2  Bits  15-­‐17  

sw  

7  

12  

22  

45  

5      9  

16  

add  

5  

7  

lw  

4  

29  

99  

0  9  45  18  7  

36  

-­‐3  

0  

22  

R2  

R3  

R4  

R5  

R1  

R6  

R0  

R7  

3  7  

Bits  21-­‐23  

data  

dest  

No  more  instrucJons  

                                                                               sw  7  12(3)                                                add  5  2  5                                        lw  4  20(2)                            nand    6  4  5  

Time:  6  

9  

7  

5  

29  

4  

-­‐3  

6  

IF/ID   ID/EX   EX/MEM   MEM/WB  

Page 37: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"

37  

PC   Inst  mem  

Register  file  

     

M  U  X  A  

L  U  

M  U  X  

1  

Data  mem  

+  

M  U  X  

M  U  X  

Bits  0-­‐2  Bits  15-­‐17  

   

   

   

   

   

       15  

57  

sw  

7  

22  

add  

5  

16  

0  

0  9  45  99  7  

36  

-­‐3  

0  

22  

R2  

R3  

R4  

R5  

R1  

R6  

R0  

R7  

       

Bits  21-­‐23  

data  

dest  

No  more  instrucJons  

               nop                                                                  nop                                                        sw  7  12(3)                                        add  5  2  5                            lw  4  20(2)  

Time:  7  

45  

7  

12  

16  

5  

99  

4  

IF/ID   ID/EX   EX/MEM   MEM/WB  

Page 38: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"

38  

PC   Inst  mem  

Register  file  

     

M  U  X  A  

L  U  

M  U  X  

1  

Data  mem  

+  

M  U  X  

M  U  X  

Bits  0-­‐2  Bits  15-­‐17  

   

   

   

   

   

           

   

   

   

   

sw  

7  

57  

0  

   9  45  99  16  

36  

-­‐3  

0  

22  

R2  

R3  

R4  

R5  

R1  

R6  

R0  

R7  

       

Bits  21-­‐23  

data  

dest  

No  more  instrucJons  

             nop                                                                      nop                                                              nop                                                  sw  7  12(3)                              add    5  2  5  

Time:  8  

22  57  

22  

16  

5  

Slides  thanks  to  Sally  McKee  

IF/ID   ID/EX   EX/MEM   MEM/WB  

Page 39: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"

39  

PC   Inst  mem  

Register  file  

     

M  U  X  A  

L  U  

M  U  X  

1  

Data  mem  

+  

M  U  X  

M  U  X  

Bits  0-­‐2  Bits  15-­‐17  

   

   

   

   

   

           

   

   

   

   

   

   

   

   

   9  45  99  16  

36  

-­‐3  

0  

22  

R2  

R3  

R4  

R5  

R1  

R6  

R0  

R7  

       

Bits  21-­‐23  

data  

dest  

No  more  instrucJons  

             nop                                                                nop                                                                    nop                                                                    nop                                sw  7  12(3)  

Time:  9   IF/ID   ID/EX   EX/MEM   MEM/WB