Announcements - Computer Sciencedept.cs.williams.edu/~tom/courses/237/notes/Lect35.pdfPipelining REG...
Transcript of Announcements - Computer Sciencedept.cs.williams.edu/~tom/courses/237/notes/Lect35.pdfPipelining REG...
![Page 1: Announcements - Computer Sciencedept.cs.williams.edu/~tom/courses/237/notes/Lect35.pdfPipelining REG WRITE l c PC en0 0000 002c c in c out Mem To Reg ALU Src IMM MemToRegE CLK rt RegWriteM](https://reader034.fdocuments.net/reader034/viewer/2022051918/600abdcc21b70c67302de533/html5/thumbnails/1.jpg)
AnnouncementsFinal projects due 11pm, Thursday
![Page 2: Announcements - Computer Sciencedept.cs.williams.edu/~tom/courses/237/notes/Lect35.pdfPipelining REG WRITE l c PC en0 0000 002c c in c out Mem To Reg ALU Src IMM MemToRegE CLK rt RegWriteM](https://reader034.fdocuments.net/reader034/viewer/2022051918/600abdcc21b70c67302de533/html5/thumbnails/2.jpg)
0
15
30
45
60
0 10 20 30 40
Chart 1
![Page 3: Announcements - Computer Sciencedept.cs.williams.edu/~tom/courses/237/notes/Lect35.pdfPipelining REG WRITE l c PC en0 0000 002c c in c out Mem To Reg ALU Src IMM MemToRegE CLK rt RegWriteM](https://reader034.fdocuments.net/reader034/viewer/2022051918/600abdcc21b70c67302de533/html5/thumbnails/3.jpg)
0
15
30
45
60
0 10 20 30 40
Chart 1
![Page 4: Announcements - Computer Sciencedept.cs.williams.edu/~tom/courses/237/notes/Lect35.pdfPipelining REG WRITE l c PC en0 0000 002c c in c out Mem To Reg ALU Src IMM MemToRegE CLK rt RegWriteM](https://reader034.fdocuments.net/reader034/viewer/2022051918/600abdcc21b70c67302de533/html5/thumbnails/4.jpg)
0
15
30
45
60
0 10 20 30 40
Chart 1
![Page 5: Announcements - Computer Sciencedept.cs.williams.edu/~tom/courses/237/notes/Lect35.pdfPipelining REG WRITE l c PC en0 0000 002c c in c out Mem To Reg ALU Src IMM MemToRegE CLK rt RegWriteM](https://reader034.fdocuments.net/reader034/viewer/2022051918/600abdcc21b70c67302de533/html5/thumbnails/5.jpg)
![Page 6: Announcements - Computer Sciencedept.cs.williams.edu/~tom/courses/237/notes/Lect35.pdfPipelining REG WRITE l c PC en0 0000 002c c in c out Mem To Reg ALU Src IMM MemToRegE CLK rt RegWriteM](https://reader034.fdocuments.net/reader034/viewer/2022051918/600abdcc21b70c67302de533/html5/thumbnails/6.jpg)
![Page 7: Announcements - Computer Sciencedept.cs.williams.edu/~tom/courses/237/notes/Lect35.pdfPipelining REG WRITE l c PC en0 0000 002c c in c out Mem To Reg ALU Src IMM MemToRegE CLK rt RegWriteM](https://reader034.fdocuments.net/reader034/viewer/2022051918/600abdcc21b70c67302de533/html5/thumbnails/7.jpg)
Copyright © 2007 Elsevier 7-<>
Pipelined Processor
Same control unit as single-cycle processor
Signal preserved for pipeline stage where used
![Page 8: Announcements - Computer Sciencedept.cs.williams.edu/~tom/courses/237/notes/Lect35.pdfPipelining REG WRITE l c PC en0 0000 002c c in c out Mem To Reg ALU Src IMM MemToRegE CLK rt RegWriteM](https://reader034.fdocuments.net/reader034/viewer/2022051918/600abdcc21b70c67302de533/html5/thumbnails/8.jpg)
PipeliningREG WRITE
Cont
rol
Logi
c
PC
0en0000002c
c inc out
Mem To Reg
ALU Src
Mem To Reg
IMM
MemToRegE
CLK
rt
RegWriteM
MemToRegE
OP Code
rd
HAZARD UNIT
RESET0
brancheq
RegWriteM
MemWriteMemWrite
=
00000004
02
CLK
brancheq
CLK
ALU Control
REG WRITE
CLK
datamemory
D
ADRQ
WE
MemWrite
FUNCT
ALU Src
CLK
0MUX
0MUX
c inc out
0MUX
do
ed
ic
etns
instructionmemory
CLK
RST
ALU
RSTRegWriteE
0MUX
CLK
0MUX
CLK
Mem To Reg
REG WRITE
RegWriteE
registerbank
A1A2
A3WD
RD1
RD2
WE
RST
CLK
Reg Dst
MemToRegM
rs
ALU Control
Reg Dst
branch
MemToRegM
0MUX
0MUX
0MUX
![Page 9: Announcements - Computer Sciencedept.cs.williams.edu/~tom/courses/237/notes/Lect35.pdfPipelining REG WRITE l c PC en0 0000 002c c in c out Mem To Reg ALU Src IMM MemToRegE CLK rt RegWriteM](https://reader034.fdocuments.net/reader034/viewer/2022051918/600abdcc21b70c67302de533/html5/thumbnails/9.jpg)
Copyright © 2007 Elsevier 7-<>
Single-Cycle vs. Pipelined Performance
![Page 10: Announcements - Computer Sciencedept.cs.williams.edu/~tom/courses/237/notes/Lect35.pdfPipelining REG WRITE l c PC en0 0000 002c c in c out Mem To Reg ALU Src IMM MemToRegE CLK rt RegWriteM](https://reader034.fdocuments.net/reader034/viewer/2022051918/600abdcc21b70c67302de533/html5/thumbnails/10.jpg)
Copyright © 2007 Elsevier 7-<>
Pipelining Abstraction
![Page 11: Announcements - Computer Sciencedept.cs.williams.edu/~tom/courses/237/notes/Lect35.pdfPipelining REG WRITE l c PC en0 0000 002c c in c out Mem To Reg ALU Src IMM MemToRegE CLK rt RegWriteM](https://reader034.fdocuments.net/reader034/viewer/2022051918/600abdcc21b70c67302de533/html5/thumbnails/11.jpg)
STAGE DSTAGE F STAGE E STAGE M
STAGE W
REG WRITE
Cont
rol
Logi
c
PC
0en00000010
c inc out
Mem To Reg
ALU Src
Mem To Reg
IMM
MemToRegE
CLK
rt
RegWriteM
MemToRegE
OP Code
rd
HAZARD UNIT
RESET0
brancheq
RegWriteM
MemWriteMemWrite
=
00000004
02
CLK
brancheq
CLK
ALU Control
REG WRITE
datamemory
D
ADRQ
WE
MemWrite
FUNCT
ALU Src
CLK
0MUX
0MUX
CLK
c inc out
0MUX
do
ed
ic
etns
instructionmemory
CLK
RST
ALU
RSTRegWriteE
0MUX
CLK
0MUX
CLK
Mem To Reg
REG WRITE
RegWriteE
registerbank
A1A2
A3WD
RD1
RD2
WE
RST
CLK
Reg Dst
MemToRegM
rs
ALU Control
Reg Dst
branch
MemToRegM
0MUX
0MUX
0MUX
lw $s2,40($0)add $s3, $t1, $t2
sub $s4, $s1, $s5and $s5, $t5, $t6
sw $s6, 20($s1)
![Page 12: Announcements - Computer Sciencedept.cs.williams.edu/~tom/courses/237/notes/Lect35.pdfPipelining REG WRITE l c PC en0 0000 002c c in c out Mem To Reg ALU Src IMM MemToRegE CLK rt RegWriteM](https://reader034.fdocuments.net/reader034/viewer/2022051918/600abdcc21b70c67302de533/html5/thumbnails/12.jpg)
Copyright © 2007 Elsevier 7-<>
Data Hazards and Forwarding
![Page 13: Announcements - Computer Sciencedept.cs.williams.edu/~tom/courses/237/notes/Lect35.pdfPipelining REG WRITE l c PC en0 0000 002c c in c out Mem To Reg ALU Src IMM MemToRegE CLK rt RegWriteM](https://reader034.fdocuments.net/reader034/viewer/2022051918/600abdcc21b70c67302de533/html5/thumbnails/13.jpg)
STAGE DSTAGE F STAGE E STAGE M
STAGE W
add $s0, $s2, $s3 and $t0, $s0, $s1
or $t1,$s4,$s0 sub $t2, $s0, $s5
REG WRITE
Cont
rol
Logi
c
PC
0en00000010
c inc out
Mem To Reg
ALU Src
Mem To Reg
IMM
MemToRegE
CLK
rt
RegWriteM
MemToRegE
OP Code
rd
HAZARD UNIT
RESET0
brancheq
RegWriteM
MemWriteMemWrite
=
00000004
02
CLK
brancheq
CLK
ALU Control
REG WRITE
datamemory
D
ADRQ
WE
MemWrite
FUNCT
ALU Src
CLK
0MUX
0MUX
CLK
c inc out
0MUX
do
ed
ic
etns
instructionmemory
CLK
RST
ALU
RSTRegWriteE
0MUX
CLK
0MUX
CLK
Mem To Reg
REG WRITE
RegWriteE
registerbank
A1A2
A3WD
RD1
RD2
WE
RST
CLK
Reg Dst
MemToRegM
rs
ALU Control
Reg Dst
branch
MemToRegM
0MUX
0MUX
0MUX
![Page 14: Announcements - Computer Sciencedept.cs.williams.edu/~tom/courses/237/notes/Lect35.pdfPipelining REG WRITE l c PC en0 0000 002c c in c out Mem To Reg ALU Src IMM MemToRegE CLK rt RegWriteM](https://reader034.fdocuments.net/reader034/viewer/2022051918/600abdcc21b70c67302de533/html5/thumbnails/14.jpg)
Copyright © 2007 Elsevier 7-<>
Stalling
![Page 15: Announcements - Computer Sciencedept.cs.williams.edu/~tom/courses/237/notes/Lect35.pdfPipelining REG WRITE l c PC en0 0000 002c c in c out Mem To Reg ALU Src IMM MemToRegE CLK rt RegWriteM](https://reader034.fdocuments.net/reader034/viewer/2022051918/600abdcc21b70c67302de533/html5/thumbnails/15.jpg)
STAGE DSTAGE F STAGE E STAGE M
STAGE W
REG WRITE
Cont
rol
Logi
c
PC
0en00000010
c inc out
Mem To Reg
ALU Src
Mem To Reg
IMM
MemToRegE
CLK
rt
RegWriteM
MemToRegE
OP Code
rd
HAZARD UNIT
RESET0
brancheq
RegWriteM
MemWriteMemWrite
=
00000004
02
CLK
brancheq
CLK
ALU Control
REG WRITE
datamemory
D
ADRQ
WE
MemWrite
FUNCT
ALU Src
CLK
0MUX
0MUX
CLK
c inc out
0MUX
do
ed
ic
etns
instructionmemory
CLK
RST
ALU
RSTRegWriteE
0MUX
CLK
0MUX
CLK
Mem To Reg
REG WRITE
RegWriteE
registerbank
A1A2
A3WD
RD1
RD2
WE
RST
CLK
Reg Dst
MemToRegM
rs
ALU Control
Reg Dst
branch
MemToRegM
0MUX
0MUX
0MUX
lw $s0, 40($0) and $t0, $s0, $s1
or $t1,$s4,$s0 sub $t2, $s0, $s5
![Page 16: Announcements - Computer Sciencedept.cs.williams.edu/~tom/courses/237/notes/Lect35.pdfPipelining REG WRITE l c PC en0 0000 002c c in c out Mem To Reg ALU Src IMM MemToRegE CLK rt RegWriteM](https://reader034.fdocuments.net/reader034/viewer/2022051918/600abdcc21b70c67302de533/html5/thumbnails/16.jpg)
STAGE DSTAGE F STAGE E STAGE M
STAGE W
REG WRITE
Cont
rol
Logi
c
PC
0en00000010
c inc out
Mem To Reg
ALU Src
Mem To Reg
IMM
MemToRegE
CLK
rt
RegWriteM
MemToRegE
OP Code
rd
HAZARD UNIT
RESET0
brancheq
RegWriteM
MemWriteMemWrite
=
00000004
02
CLK
brancheq
CLK
ALU Control
REG WRITE
datamemory
D
ADRQ
WE
MemWrite
FUNCT
ALU Src
CLK
0MUX
0MUX
CLK
c inc out
0MUX
do
ed
ic
etns
instructionmemory
CLK
RST
ALU
RSTRegWriteE
0MUX
CLK
0MUX
CLK
Mem To Reg
REG WRITE
RegWriteE
registerbank
A1A2
A3WD
RD1
RD2
WE
RST
CLK
Reg Dst
MemToRegM
rs
ALU Control
Reg Dst
branch
MemToRegM
0MUX
0MUX
0MUX
lw $s0, 40($0) and $t0, $s0, $s1
or $t1,$s4,$s0
![Page 17: Announcements - Computer Sciencedept.cs.williams.edu/~tom/courses/237/notes/Lect35.pdfPipelining REG WRITE l c PC en0 0000 002c c in c out Mem To Reg ALU Src IMM MemToRegE CLK rt RegWriteM](https://reader034.fdocuments.net/reader034/viewer/2022051918/600abdcc21b70c67302de533/html5/thumbnails/17.jpg)
STAGE ESTAGE DSTAGE F STAGE M
STAGE W
REG WRITE
Cont
rol
Logi
c
PC
0en00000010
c inc out
Mem To Reg
ALU Src
Mem To Reg
IMM
MemToRegE
CLK
rt
RegWriteM
MemToRegE
OP Code
rd
HAZARD UNIT
RESET0
brancheq
RegWriteM
MemWriteMemWrite
=
00000004
02
CLK
brancheq
CLK
ALU Control
REG WRITE
datamemory
D
ADRQ
WE
MemWrite
FUNCT
ALU Src
CLK
0MUX
0MUX
CLK
c inc out
0MUX
do
ed
ic
etns
instructionmemory
CLK
RST
ALU
RSTRegWriteE
0MUX
CLK
0MUX
CLK
Mem To Reg
REG WRITE
RegWriteE
registerbank
A1A2
A3WD
RD1
RD2
WE
RST
CLK
Reg Dst
MemToRegM
rs
ALU Control
Reg Dst
branch
MemToRegM
0MUX
0MUX
0MUX
lw $s0, 40($0) and $t0, $s0, $s1
or $t1,$s4,$s0
![Page 18: Announcements - Computer Sciencedept.cs.williams.edu/~tom/courses/237/notes/Lect35.pdfPipelining REG WRITE l c PC en0 0000 002c c in c out Mem To Reg ALU Src IMM MemToRegE CLK rt RegWriteM](https://reader034.fdocuments.net/reader034/viewer/2022051918/600abdcc21b70c67302de533/html5/thumbnails/18.jpg)
STAGE ESTAGE DSTAGE F STAGE M
STAGE W
REG WRITE
Cont
rol
Logi
c
PC
0en00000010
c inc out
Mem To Reg
ALU Src
Mem To Reg
IMM
MemToRegE
CLK
rt
RegWriteM
MemToRegE
OP Code
rd
HAZARD UNIT
RESET0
brancheq
RegWriteM
MemWriteMemWrite
=
00000004
02
CLK
brancheq
CLK
ALU Control
REG WRITE
datamemory
D
ADRQ
WE
MemWrite
FUNCT
ALU Src
CLK
0MUX
0MUX
CLK
c inc out
0MUX
do
ed
ic
etns
instructionmemory
CLK
RST
ALU
RSTRegWriteE
0MUX
CLK
0MUX
CLK
Mem To Reg
REG WRITE
RegWriteE
registerbank
A1A2
A3WD
RD1
RD2
WE
RST
CLK
Reg Dst
MemToRegM
rs
ALU Control
Reg Dst
branch
MemToRegM
0MUX
0MUX
0MUX
rs(D) == rt(E) || rt(D) == rt(E) && MemtoReg(E)
stall =
![Page 19: Announcements - Computer Sciencedept.cs.williams.edu/~tom/courses/237/notes/Lect35.pdfPipelining REG WRITE l c PC en0 0000 002c c in c out Mem To Reg ALU Src IMM MemToRegE CLK rt RegWriteM](https://reader034.fdocuments.net/reader034/viewer/2022051918/600abdcc21b70c67302de533/html5/thumbnails/19.jpg)
STAGE ESTAGE DSTAGE F STAGE M
STAGE W
REG WRITE
Cont
rol
Logi
c
PC
0en00000010
c inc out
Mem To Reg
ALU Src
Mem To Reg
IMM
MemToRegE
CLK
rt
RegWriteM
MemToRegE
OP Code
rd
HAZARD UNIT
RESET0
brancheq
RegWriteM
MemWriteMemWrite
=
00000004
02
CLK
brancheq
CLK
ALU Control
REG WRITE
datamemory
D
ADRQ
WE
MemWrite
FUNCT
ALU Src
CLK
0MUX
0MUX
CLK
c inc out
0MUX
do
ed
ic
etns
instructionmemory
CLK
RST
ALU
RSTRegWriteE
0MUX
CLK
0MUX
CLK
Mem To Reg
REG WRITE
RegWriteE
registerbank
A1A2
A3WD
RD1
RD2
WE
RST
CLK
Reg Dst
MemToRegM
rs
ALU Control
Reg Dst
branch
MemToRegM
0MUX
0MUX
0MUX
and $t0, $s0, $s1 or $t1,$s4,$s0
sub $t2, $s0, $s5
lw $s0, 40($0)
![Page 20: Announcements - Computer Sciencedept.cs.williams.edu/~tom/courses/237/notes/Lect35.pdfPipelining REG WRITE l c PC en0 0000 002c c in c out Mem To Reg ALU Src IMM MemToRegE CLK rt RegWriteM](https://reader034.fdocuments.net/reader034/viewer/2022051918/600abdcc21b70c67302de533/html5/thumbnails/20.jpg)
STAGE ESTAGE DSTAGE F STAGE M
STAGE W
REG WRITE
Cont
rol
Logi
c
PC
0en00000010
c inc out
Mem To Reg
ALU Src
Mem To Reg
IMM
MemToRegE
CLK
rt
RegWriteM
MemToRegE
OP Code
rd
HAZARD UNIT
RESET0
brancheq
RegWriteM
MemWriteMemWrite
=
00000004
02
CLK
brancheq
CLK
ALU Control
REG WRITE
datamemory
D
ADRQ
WE
MemWrite
FUNCT
ALU Src
CLK
0MUX
0MUX
CLK
c inc out
0MUX
do
ed
ic
etns
instructionmemory
CLK
RST
ALU
RSTRegWriteE
0MUX
CLK
0MUX
CLK
Mem To Reg
REG WRITE
RegWriteE
registerbank
A1A2
A3WD
RD1
RD2
WE
RST
CLK
Reg Dst
MemToRegM
rs
ALU Control
Reg Dst
branch
MemToRegM
0MUX
0MUX
0MUX
and $t0, $s0, $s1 or $t1,$s4,$s0
sub $t2, $s0, $s5
lw $s0, 40($0)
![Page 21: Announcements - Computer Sciencedept.cs.williams.edu/~tom/courses/237/notes/Lect35.pdfPipelining REG WRITE l c PC en0 0000 002c c in c out Mem To Reg ALU Src IMM MemToRegE CLK rt RegWriteM](https://reader034.fdocuments.net/reader034/viewer/2022051918/600abdcc21b70c67302de533/html5/thumbnails/21.jpg)
STAGE ESTAGE DSTAGE F STAGE M
STAGE W
REG WRITE
Cont
rol
Logi
c
PC
0en00000010
c inc out
Mem To Reg
ALU Src
Mem To Reg
IMM
MemToRegE
CLK
rt
RegWriteM
MemToRegE
OP Code
rd
HAZARD UNIT
RESET0
brancheq
RegWriteM
MemWriteMemWrite
=
00000004
02
CLK
brancheq
CLK
ALU Control
REG WRITE
datamemory
D
ADRQ
WE
MemWrite
FUNCT
ALU Src
CLK
0MUX
0MUX
CLK
c inc out
0MUX
do
ed
ic
etns
instructionmemory
CLK
RST
ALU
RSTRegWriteE
0MUX
CLK
0MUX
CLK
Mem To Reg
REG WRITE
RegWriteE
registerbank
A1A2
A3WD
RD1
RD2
WE
RST
CLK
Reg Dst
MemToRegM
rs
ALU Control
Reg Dst
branch
MemToRegM
0MUX
0MUX
0MUX
rs(D) == rt(E) || rt(D) == rt(E) && MemtoReg(E)
stall =
![Page 22: Announcements - Computer Sciencedept.cs.williams.edu/~tom/courses/237/notes/Lect35.pdfPipelining REG WRITE l c PC en0 0000 002c c in c out Mem To Reg ALU Src IMM MemToRegE CLK rt RegWriteM](https://reader034.fdocuments.net/reader034/viewer/2022051918/600abdcc21b70c67302de533/html5/thumbnails/22.jpg)
Copyright © 2007 Elsevier 7-<>
Control Hazards
![Page 23: Announcements - Computer Sciencedept.cs.williams.edu/~tom/courses/237/notes/Lect35.pdfPipelining REG WRITE l c PC en0 0000 002c c in c out Mem To Reg ALU Src IMM MemToRegE CLK rt RegWriteM](https://reader034.fdocuments.net/reader034/viewer/2022051918/600abdcc21b70c67302de533/html5/thumbnails/23.jpg)
Copyright © 2007 Elsevier 7-<>
Control Hazards: Original Pipeline
![Page 24: Announcements - Computer Sciencedept.cs.williams.edu/~tom/courses/237/notes/Lect35.pdfPipelining REG WRITE l c PC en0 0000 002c c in c out Mem To Reg ALU Src IMM MemToRegE CLK rt RegWriteM](https://reader034.fdocuments.net/reader034/viewer/2022051918/600abdcc21b70c67302de533/html5/thumbnails/24.jpg)
Copyright © 2007 Elsevier 7-<>
Control Hazards: Early Branch Resolution
Introduced another data hazard in Decode stage
![Page 25: Announcements - Computer Sciencedept.cs.williams.edu/~tom/courses/237/notes/Lect35.pdfPipelining REG WRITE l c PC en0 0000 002c c in c out Mem To Reg ALU Src IMM MemToRegE CLK rt RegWriteM](https://reader034.fdocuments.net/reader034/viewer/2022051918/600abdcc21b70c67302de533/html5/thumbnails/25.jpg)
Copyright © 2007 Elsevier 7-<>
Control Hazards: Early Branch Resolution
Introduces another data hazard in Decode stage
![Page 26: Announcements - Computer Sciencedept.cs.williams.edu/~tom/courses/237/notes/Lect35.pdfPipelining REG WRITE l c PC en0 0000 002c c in c out Mem To Reg ALU Src IMM MemToRegE CLK rt RegWriteM](https://reader034.fdocuments.net/reader034/viewer/2022051918/600abdcc21b70c67302de533/html5/thumbnails/26.jpg)
Copyright © 2007 Elsevier 7-<>
Control Hazards: Early Branch Resolution
Introduces another data hazard in Decode stage
![Page 27: Announcements - Computer Sciencedept.cs.williams.edu/~tom/courses/237/notes/Lect35.pdfPipelining REG WRITE l c PC en0 0000 002c c in c out Mem To Reg ALU Src IMM MemToRegE CLK rt RegWriteM](https://reader034.fdocuments.net/reader034/viewer/2022051918/600abdcc21b70c67302de533/html5/thumbnails/27.jpg)
STAGE ESTAGE DSTAGE F STAGE M
STAGE W
REG WRITE
Cont
rol
Logi
c
PC
0en00000010
c inc out
Mem To Reg
ALU Src
Mem To Reg
IMM
MemToRegE
CLK
rt
RegWriteM
MemToRegE
OP Code
rd
HAZARD UNIT
RESET0
brancheq
RegWriteM
MemWriteMemWrite
=
00000004
02
CLK
brancheq
CLK
ALU Control
REG WRITE
datamemory
D
ADRQ
WE
MemWrite
FUNCT
ALU Src
CLK
0MUX
0MUX
CLK
c inc out
0MUX
do
ed
ic
etns
instructionmemory
CLK
RST
ALU
RSTRegWriteE
0MUX
CLK
0MUX
CLK
Mem To Reg
REG WRITE
RegWriteE
registerbank
A1A2
A3WD
RD1
RD2
WE
RST
CLK
Reg Dst
MemToRegM
rs
ALU Control
Reg Dst
branch
MemToRegM
0MUX
0MUX
0MUX
20 beq$t1,$t2,40
![Page 28: Announcements - Computer Sciencedept.cs.williams.edu/~tom/courses/237/notes/Lect35.pdfPipelining REG WRITE l c PC en0 0000 002c c in c out Mem To Reg ALU Src IMM MemToRegE CLK rt RegWriteM](https://reader034.fdocuments.net/reader034/viewer/2022051918/600abdcc21b70c67302de533/html5/thumbnails/28.jpg)
STAGE ESTAGE DSTAGE F STAGE M
STAGE W
REG WRITE
Cont
rol
Logi
c
PC
0en00000010
c inc out
Mem To Reg
ALU Src
Mem To Reg
IMM
MemToRegE
CLK
rt
RegWriteM
MemToRegE
OP Code
rd
HAZARD UNIT
RESET0
brancheq
RegWriteM
MemWriteMemWrite
=
00000004
02
CLK
brancheq
CLK
ALU Control
REG WRITE
datamemory
D
ADRQ
WE
MemWrite
FUNCT
ALU Src
CLK
0MUX
0MUX
CLK
c inc out
0MUX
do
ed
ic
etns
instructionmemory
CLK
RST
ALU
RSTRegWriteE
0MUX
CLK
0MUX
CLK
Mem To Reg
REG WRITE
RegWriteE
registerbank
A1A2
A3WD
RD1
RD2
WE
RST
CLK
Reg Dst
MemToRegM
rs
ALU Control
Reg Dst
branch
MemToRegM
0MUX
0MUX
0MUX
20 beq$t1,$t2,40 24 and$t0,$s0,$s1
![Page 29: Announcements - Computer Sciencedept.cs.williams.edu/~tom/courses/237/notes/Lect35.pdfPipelining REG WRITE l c PC en0 0000 002c c in c out Mem To Reg ALU Src IMM MemToRegE CLK rt RegWriteM](https://reader034.fdocuments.net/reader034/viewer/2022051918/600abdcc21b70c67302de533/html5/thumbnails/29.jpg)
STAGE ESTAGE DSTAGE F STAGE M
STAGE W
REG WRITE
Cont
rol
Logi
c
PC
0en00000010
c inc out
Mem To Reg
ALU Src
Mem To Reg
IMM
MemToRegE
CLK
rt
RegWriteM
MemToRegE
OP Code
rd
HAZARD UNIT
RESET0
brancheq
RegWriteM
MemWriteMemWrite
=
00000004
02
CLK
brancheq
CLK
ALU Control
REG WRITE
datamemory
D
ADRQ
WE
MemWrite
FUNCT
ALU Src
CLK
0MUX
0MUX
CLK
c inc out
0MUX
do
ed
ic
etns
instructionmemory
CLK
RST
ALU
RSTRegWriteE
0MUX
CLK
0MUX
CLK
Mem To Reg
REG WRITE
RegWriteE
registerbank
A1A2
A3WD
RD1
RD2
WE
RST
CLK
Reg Dst
MemToRegM
rs
ALU Control
Reg Dst
branch
MemToRegM
0MUX
0MUX
0MUX
20 beq$t1,$t2,40 24 and$t0,$s0,$s1
64 slt $t3, $s2, $s3
![Page 30: Announcements - Computer Sciencedept.cs.williams.edu/~tom/courses/237/notes/Lect35.pdfPipelining REG WRITE l c PC en0 0000 002c c in c out Mem To Reg ALU Src IMM MemToRegE CLK rt RegWriteM](https://reader034.fdocuments.net/reader034/viewer/2022051918/600abdcc21b70c67302de533/html5/thumbnails/30.jpg)
STAGE ESTAGE DSTAGE F STAGE M
STAGE W
REG WRITE
Cont
rol
Logi
c
PC
0en00000010
c inc out
Mem To Reg
ALU Src
Mem To Reg
IMM
MemToRegE
CLK
rt
RegWriteM
MemToRegE
OP Code
rd
HAZARD UNIT
RESET0
brancheq
RegWriteM
MemWriteMemWrite
=
00000004
02
CLK
brancheq
CLK
ALU Control
REG WRITE
datamemory
D
ADRQ
WE
MemWrite
FUNCT
ALU Src
CLK
0MUX
0MUX
CLK
c inc out
0MUX
do
ed
ic
etns
instructionmemory
CLK
RST
ALU
RSTRegWriteE
0MUX
CLK
0MUX
CLK
Mem To Reg
REG WRITE
RegWriteE
registerbank
A1A2
A3WD
RD1
RD2
WE
RST
CLK
Reg Dst
MemToRegM
rs
ALU Control
Reg Dst
branch
MemToRegM
0MUX
0MUX
0MUX
20 beq$t1,$t2,40
64 slt $t3, $s2, $s3
![Page 31: Announcements - Computer Sciencedept.cs.williams.edu/~tom/courses/237/notes/Lect35.pdfPipelining REG WRITE l c PC en0 0000 002c c in c out Mem To Reg ALU Src IMM MemToRegE CLK rt RegWriteM](https://reader034.fdocuments.net/reader034/viewer/2022051918/600abdcc21b70c67302de533/html5/thumbnails/31.jpg)
STAGE ESTAGE DSTAGE F STAGE M
STAGE W
REG WRITE
Cont
rol
Logi
c
PC
0en00000010
c inc out
Mem To Reg
ALU Src
Mem To Reg
IMM
MemToRegE
CLK
rt
RegWriteM
MemToRegE
OP Code
rd
HAZARD UNIT
RESET0
brancheq
RegWriteM
MemWriteMemWrite
=
00000004
02
CLK
brancheq
CLK
ALU Control
REG WRITE
datamemory
D
ADRQ
WE
MemWrite
FUNCT
ALU Src
CLK
0MUX
0MUX
CLK
c inc out
0MUX
do
ed
ic
etns
instructionmemory
CLK
RST
ALU
RSTRegWriteE
0MUX
CLK
0MUX
CLK
Mem To Reg
REG WRITE
RegWriteE
registerbank
A1A2
A3WD
RD1
RD2
WE
RST
CLK
Reg Dst
MemToRegM
rs
ALU Control
Reg Dst
branch
MemToRegM
0MUX
0MUX
0MUX
20 beq$t1,$t2,40
64 slt $t3, $s2, $s368 ...
![Page 32: Announcements - Computer Sciencedept.cs.williams.edu/~tom/courses/237/notes/Lect35.pdfPipelining REG WRITE l c PC en0 0000 002c c in c out Mem To Reg ALU Src IMM MemToRegE CLK rt RegWriteM](https://reader034.fdocuments.net/reader034/viewer/2022051918/600abdcc21b70c67302de533/html5/thumbnails/32.jpg)
Delayed Branches
Branch Prediction
Compiler Optimization
Vector/SIMD Machines
Superscalar Organization
Other Techniques
![Page 33: Announcements - Computer Sciencedept.cs.williams.edu/~tom/courses/237/notes/Lect35.pdfPipelining REG WRITE l c PC en0 0000 002c c in c out Mem To Reg ALU Src IMM MemToRegE CLK rt RegWriteM](https://reader034.fdocuments.net/reader034/viewer/2022051918/600abdcc21b70c67302de533/html5/thumbnails/33.jpg)
Copyright © 2007 Elsevier 7-<>
Superscalar
• Multiple copies of datapath execute multiple instructions at once
• Dependencies make it tricky to issue multiple instructions at once
![Page 34: Announcements - Computer Sciencedept.cs.williams.edu/~tom/courses/237/notes/Lect35.pdfPipelining REG WRITE l c PC en0 0000 002c c in c out Mem To Reg ALU Src IMM MemToRegE CLK rt RegWriteM](https://reader034.fdocuments.net/reader034/viewer/2022051918/600abdcc21b70c67302de533/html5/thumbnails/34.jpg)
Copyright © 2007 Elsevier 7-<>
Superscalar Example
lw $t0, 40($s0)
add $t1, $t0, $s1
sub $t0, $s2, $s3 Ideal IPC: 2and $t2, $s4, $t0 Actual IPC: 2or $t3, $s5, $s6
sw $s7, 80($t3)
![Page 35: Announcements - Computer Sciencedept.cs.williams.edu/~tom/courses/237/notes/Lect35.pdfPipelining REG WRITE l c PC en0 0000 002c c in c out Mem To Reg ALU Src IMM MemToRegE CLK rt RegWriteM](https://reader034.fdocuments.net/reader034/viewer/2022051918/600abdcc21b70c67302de533/html5/thumbnails/35.jpg)
Limits
1/x = ?∑x=1n ⃗ ∞
limn
![Page 36: Announcements - Computer Sciencedept.cs.williams.edu/~tom/courses/237/notes/Lect35.pdfPipelining REG WRITE l c PC en0 0000 002c c in c out Mem To Reg ALU Src IMM MemToRegE CLK rt RegWriteM](https://reader034.fdocuments.net/reader034/viewer/2022051918/600abdcc21b70c67302de533/html5/thumbnails/36.jpg)
Limitsint main( int argc, char * argv[] ) {
float total = 0, x; int low = 1; int high = 10000000;
for ( x = low; x <= high; x++ ) { total = total + 1/x; } printf( "total = %g\n", total );}
![Page 37: Announcements - Computer Sciencedept.cs.williams.edu/~tom/courses/237/notes/Lect35.pdfPipelining REG WRITE l c PC en0 0000 002c c in c out Mem To Reg ALU Src IMM MemToRegE CLK rt RegWriteM](https://reader034.fdocuments.net/reader034/viewer/2022051918/600abdcc21b70c67302de533/html5/thumbnails/37.jpg)
Limitsint main( int argc, char * argv[] ) {
float total = 0, x; int low = 1; int high = 10000000;
for ( x = high; x >= low; x-- ) { total = total + 1/x; } printf( "total = %g\n", total );}
![Page 38: Announcements - Computer Sciencedept.cs.williams.edu/~tom/courses/237/notes/Lect35.pdfPipelining REG WRITE l c PC en0 0000 002c c in c out Mem To Reg ALU Src IMM MemToRegE CLK rt RegWriteM](https://reader034.fdocuments.net/reader034/viewer/2022051918/600abdcc21b70c67302de533/html5/thumbnails/38.jpg)
Associating
(A + (B + C)) = ((A + B) + C)
![Page 39: Announcements - Computer Sciencedept.cs.williams.edu/~tom/courses/237/notes/Lect35.pdfPipelining REG WRITE l c PC en0 0000 002c c in c out Mem To Reg ALU Src IMM MemToRegE CLK rt RegWriteM](https://reader034.fdocuments.net/reader034/viewer/2022051918/600abdcc21b70c67302de533/html5/thumbnails/39.jpg)
Scientific Notation
6.022 × 1023 mol−1
2.9979 x 108 m/s
mantissa exponent