CS 352H: Computer Systems Architecture: Topic 10: Instruction Level Parallelism (ILP) October 6 - 8, 2009
CS 352H: Computer Systems Architecture: Topic 10: Instruction Level Parallelism (ILP) October 6 - 8, 2009
October 6 - 8, 2009
University of Texas at Austin CS352H - Computer Systems Architecture Fall 2009 Don Fussell
Instruction-Level Parallelism (ILP)
University of Texas at Austin CS352H - Computer Systems Architecture Fall 2009 Don Fussell 2
Multiple Issue
University of Texas at Austin CS352H - Computer Systems Architecture Fall 2009 Don Fussell 3
Speculation
University of Texas at Austin CS352H - Computer Systems Architecture Fall 2009 Don Fussell 4
Compiler/Hardware Speculation
University of Texas at Austin CS352H - Computer Systems Architecture Fall 2009 Don Fussell 5
Speculation and Exceptions
University of Texas at Austin CS352H - Computer Systems Architecture Fall 2009 Don Fussell 6
Static Multiple Issue
University of Texas at Austin CS352H - Computer Systems Architecture Fall 2009 Don Fussell 7
Scheduling Static Multiple Issue
University of Texas at Austin CS352H - Computer Systems Architecture Fall 2009 Don Fussell 8
MIPS with Static Dual Issue
Two-issue packets
One ALU/branch instruction
One load/store instruction
64-bit aligned
ALU/branch, then load/store
Pad an unused instruction with nop
University of Texas at Austin CS352H - Computer Systems Architecture Fall 2009 Don Fussell 10
Hazards in the Dual-Issue MIPS
University of Texas at Austin CS352H - Computer Systems Architecture Fall 2009 Don Fussell 11
Scheduling Example
University of Texas at Austin CS352H - Computer Systems Architecture Fall 2009 Don Fussell 12
Loop Unrolling
University of Texas at Austin CS352H - Computer Systems Architecture Fall 2009 Don Fussell 13
Loop Unrolling Example
University of Texas at Austin CS352H - Computer Systems Architecture Fall 2009 Don Fussell 14
Dynamic Multiple Issue
“Superscalar” processors
CPU decides whether to issue 0, 1, 2, … each cycle
Avoiding structural and data hazards
Avoids the need for compiler scheduling
Though it may still help
Code semantics ensured by the CPU
University of Texas at Austin CS352H - Computer Systems Architecture Fall 2009 Don Fussell 15
Dynamic Pipeline Scheduling
University of Texas at Austin CS352H - Computer Systems Architecture Fall 2009 Don Fussell 16
Dynamically Scheduled CPU
Preserves
dependencies
Hold pending
operands
University of Texas at Austin CS352H - Computer Systems Architecture Fall 2009 Don Fussell 18
Speculation
University of Texas at Austin CS352H - Computer Systems Architecture Fall 2009 Don Fussell 19
Why Do Dynamic Scheduling?
University of Texas at Austin CS352H - Computer Systems Architecture Fall 2009 Don Fussell 20
Does Multiple Issue Work?
University of Texas at Austin CS352H - Computer Systems Architecture Fall 2009 Don Fussell 21
Power Efficiency
72 physical
registers
University of Texas at Austin CS352H - Computer Systems Architecture Fall 2009 Don Fussell 23
The Opteron X4 Pipeline Flow
FP is 5 stages longer
Up to 106 RISC-ops in progress
Bottlenecks
Complex instructions with long dependencies
Branch mispredictions
Memory access delays
University of Texas at Austin CS352H - Computer Systems Architecture Fall 2009 Don Fussell 24
Concluding Remarks
University of Texas at Austin CS352H - Computer Systems Architecture Fall 2009 Don Fussell 25