27
ILP: Advanced HW CSCE430/830 Instruction-level parallelism: Advanced HW Approaches CSCE430/830 Computer Architecture Lecturer: Prof. Hong Jiang Fall, 2006

ILP: Advanced HWCSCE430/830 Instruction-level parallelism: Advanced HW Approaches CSCE430/830 Computer Architecture Lecturer: Prof. Hong Jiang Fall, 2006

Embed Size (px)

Citation preview

Page 1: ILP: Advanced HWCSCE430/830 Instruction-level parallelism: Advanced HW Approaches CSCE430/830 Computer Architecture Lecturer: Prof. Hong Jiang Fall, 2006

ILP: Advanced HWCSCE430/830

Instruction-level parallelism: Advanced HW Approaches

CSCE430/830 Computer Architecture

Lecturer: Prof. Hong Jiang

Fall, 2006

Page 2: ILP: Advanced HWCSCE430/830 Instruction-level parallelism: Advanced HW Approaches CSCE430/830 Computer Architecture Lecturer: Prof. Hong Jiang Fall, 2006

ILP: Advanced HWCSCE430/830

ILP: Advanced HW Approaches• Dynamic Hardware Branch PredictionDynamic Hardware Branch Prediction: control

dependences rapidly become the limiting factor as the amount of ILP to be exploited increases, which is particularly true when multiple instructions are to be issued per cycle.– Basic Branch Prediction and Branch-Prediction BuffersBasic Branch Prediction and Branch-Prediction Buffers

» A small memory indexed by the lower portion of the address of the branch instruction, containing a bit that says whether the branch was recently taken or not – simple, and useful only when the branch delay is longer than the time to calculate the target address

» The prediction bit is inverted each time there is a wrong prediction – an accuracy problem (mispredict twice); a remedy: 2-bit predictor, a special case of n-bit predictor (saturating counter), which performs well (accuracy:99-82%)

Not taken

Taken

Not takenNot taken

Not taken

Taken

Taken

Taken

Predict taken Predict taken

Predict not taken Predict not taken

11

01

10

00

Page 3: ILP: Advanced HWCSCE430/830 Instruction-level parallelism: Advanced HW Approaches CSCE430/830 Computer Architecture Lecturer: Prof. Hong Jiang Fall, 2006

ILP: Advanced HWCSCE430/830

ILP: Advanced HW Approaches

• Dynamic Hardware Branch PredictionDynamic Hardware Branch Prediction: – Correlating Branch PredictorsCorrelating Branch Predictors

» The behavior of branch b3 is correlated with the behavior of branches b1 and b2 (b1 & b2 both not taken b3 will be taken); A predictor that uses only the behavior of a single branch to predict the outcome of that branch can never capture this behavior.

» Branch predictors that use the behavior of other branches to make prediction are called correlating predictorscorrelating predictors or two-level two-level predictorspredictors.

If (aa==2)

aa=0;

If (bb==2)

bb=0;

If (aa!=bb){Assign aa and bb to registers R1 and R2

DSUBUI R3,R1,#2

BNEZ R3,L1 ;branch b1 (aa!=2)

DADD R1,R0,R0 ;aa=0

L1: DSUBUI R3,R2,#2

BNEZ R3,L2 ;branch b2 (bb!=2)

DADD R2,R0,R0 ;bb=0

L2: DSUBUI R3,R1,R2 ;R3=aa-bb

BEQZ R3,L3 ;branch b3 (aa==bb)

Page 4: ILP: Advanced HWCSCE430/830 Instruction-level parallelism: Advanced HW Approaches CSCE430/830 Computer Architecture Lecturer: Prof. Hong Jiang Fall, 2006

ILP: Advanced HWCSCE430/830

ILP: Advanced HW Approaches

• Dynamic Hardware Branch PredictionDynamic Hardware Branch Prediction:

If (d==0)

d=1;

If (d==1)

Assign d to register R1

BNEZ R1,L1 ;branch b1 (d!=0)

DADDIU R1,R0,#1 ;d==0, so d=1

L1: DADDIU R3,R1, # -1

BNEZ R3,L2 ;branch b2 (d!=1)

L2:

Initial value of d d==0? b1 Value of d before b2 d==1? b2

0 Yes Not takenNot taken 1 Yes Not takenNot taken

1 No Taken 1 Yes Not taken

2 No Taken 2 No Taken

Behavior of a 1-bit Standard Predictor Initialized to Not TakenBehavior of a 1-bit Standard Predictor Initialized to Not Taken

d=? b1 prediction b1 action New b1 prediction b2 prediction b2 action New b2 prediction

2 NT T T NT T T

0

2

0

Page 5: ILP: Advanced HWCSCE430/830 Instruction-level parallelism: Advanced HW Approaches CSCE430/830 Computer Architecture Lecturer: Prof. Hong Jiang Fall, 2006

ILP: Advanced HWCSCE430/830

ILP: Advanced HW Approaches

• Dynamic Hardware Branch PredictionDynamic Hardware Branch Prediction:

If (d==0)

d=1;

If (d==1)

Assign d to register R1

BNEZ R1,L1 ;branch b1 (d!=0)

DADDIU R1,R0,#1 ;d==0, so d=1

L1: DADDIU R3,R1, # -1

BNEZ R3,L2 ;branch b2 (d!=1)

L2:

Initial value of d d==0? b1 Value of d before b2 d==1? b2

0 Yes Not takenNot taken 1 Yes Not takenNot taken

1 No Taken 1 Yes Not taken

2 No Taken 2 No Taken

Behavior of a 1-bit Standard Predictor Initialized to Not TakenBehavior of a 1-bit Standard Predictor Initialized to Not Taken

d=? b1 prediction b1 action New b1 prediction b2 prediction b2 action New b2 prediction

2 NT T T NT T T

0 T NT NT T NT NT

2

0

Page 6: ILP: Advanced HWCSCE430/830 Instruction-level parallelism: Advanced HW Approaches CSCE430/830 Computer Architecture Lecturer: Prof. Hong Jiang Fall, 2006

ILP: Advanced HWCSCE430/830

ILP: Advanced HW Approaches

• Dynamic Hardware Branch PredictionDynamic Hardware Branch Prediction:

If (d==0)

d=1;

If (d==1)

Assign d to register R1

BNEZ R1,L1 ;branch b1 (d!=0)

DADDIU R1,R0,#1 ;d==0, so d=1

L1: DADDIU R3,R1, # -1

BNEZ R3,L2 ;branch b2 (d!=1)

L2:

Initial value of d d==0? b1 Value of d before b2 d==1? b2

0 Yes Not takenNot taken 1 Yes Not takenNot taken

1 No Taken 1 Yes Not taken

2 No Taken 2 No Taken

Behavior of a 1-bit Standard Predictor Initialized to Not TakenBehavior of a 1-bit Standard Predictor Initialized to Not Taken

d=? b1 prediction b1 action New b1 prediction b2 prediction b2 action New b2 prediction

2 NT T T NT T T

0 T NT NT T NT NT

2 NT T T NT T T

0

Page 7: ILP: Advanced HWCSCE430/830 Instruction-level parallelism: Advanced HW Approaches CSCE430/830 Computer Architecture Lecturer: Prof. Hong Jiang Fall, 2006

ILP: Advanced HWCSCE430/830

ILP: Advanced HW Approaches

• Dynamic Hardware Branch PredictionDynamic Hardware Branch Prediction:

If (d==0)

d=1;

If (d==1)

Assign d to register R1

BNEZ R1,L1 ;branch b1 (d!=0)

DADDIU R1,R0,#1 ;d==0, so d=1

L1: DADDIU R3,R1, # -1

BNEZ R3,L2 ;branch b2 (d!=1)

L2:

Initial value of d d==0? b1 Value of d before b2 d==1? b2

0 Yes Not takenNot taken 1 Yes Not takenNot taken

1 No Taken 1 Yes Not taken

2 No Taken 2 No Taken

Behavior of a 1-bit Standard Predictor Initialized to Not Taken (100% wrong prediction)Behavior of a 1-bit Standard Predictor Initialized to Not Taken (100% wrong prediction)

d=? b1 prediction b1 action New b1 prediction b2 prediction b2 action New b2 prediction

2 NT T T NT T T

0 T NT NT T NT NT

2 NT T T NT T T

0 T NT NT T NT NT

Page 8: ILP: Advanced HWCSCE430/830 Instruction-level parallelism: Advanced HW Approaches CSCE430/830 Computer Architecture Lecturer: Prof. Hong Jiang Fall, 2006

ILP: Advanced HWCSCE430/830

ILP: Advanced HW Approaches• Dynamic Hardware Branch PredictionDynamic Hardware Branch Prediction:

– Correlating Branch PredictorsCorrelating Branch Predictors

» The standard predictor mispredicted allall branches!

The 2 Prediction bits (p1/p2) Prediction if last branch not taken (p1) Prediction if last branch taken (p2)

NT/NT NT NT

NT/T NT T

T/NT T NT

T/T T T

The Action of the 1-bit Predictor with 1-bit correlation, Initialized to Not Taken/Not TakenThe Action of the 1-bit Predictor with 1-bit correlation, Initialized to Not Taken/Not Taken

d=? b1 prediction b1 action New b1 prediction b2 prediction b2 action New b2 prediction

2 NT/NT T

0

2

0

Initial value of d d==0? b1 Value of d before b2 d==1? b2

0 Yes Not takenNot taken 1 Yes Not takenNot taken

1 No Taken 1 Yes Not taken

2 No Taken 2 No Taken

Page 9: ILP: Advanced HWCSCE430/830 Instruction-level parallelism: Advanced HW Approaches CSCE430/830 Computer Architecture Lecturer: Prof. Hong Jiang Fall, 2006

ILP: Advanced HWCSCE430/830

ILP: Advanced HW Approaches• Dynamic Hardware Branch PredictionDynamic Hardware Branch Prediction:

– Correlating Branch PredictorsCorrelating Branch Predictors

» The standard predictor mispredicted allall branches!

The 2 Prediction bits (p1/p2) Prediction if last branch not taken (p1) Prediction if last branch taken (p2)

NT/NT NT NT

NT/T NT T

T/NT T NT

T/T T T

The Action of the 1-bit Predictor with 1-bit correlation, Initialized to Not Taken/Not TakenThe Action of the 1-bit Predictor with 1-bit correlation, Initialized to Not Taken/Not Taken

d=? b1 prediction b1 action New b1 prediction b2 prediction b2 action New b2 prediction

2 NT/NT T T/NT

0

2

0

Initial value of d

d==0? b1 Value of d before b2 d==1? b2

0 Yes Not takenNot taken 1 Yes Not takenNot taken

1 No Taken 1 Yes Not taken

2 No Taken 2 No Taken

Page 10: ILP: Advanced HWCSCE430/830 Instruction-level parallelism: Advanced HW Approaches CSCE430/830 Computer Architecture Lecturer: Prof. Hong Jiang Fall, 2006

ILP: Advanced HWCSCE430/830

ILP: Advanced HW Approaches

The 2 Prediction bits (p1/p2) Prediction if last branch not taken (p1) Prediction if last branch taken (p2)

NT/NT NT NT

NT/T NT T

T/NT T NT

T/T T T

The Action of the 1-bit Predictor with 1-bit correlation, Initialized to Not Taken/Not TakenThe Action of the 1-bit Predictor with 1-bit correlation, Initialized to Not Taken/Not Taken

d=? b1 prediction b1 action New b1 prediction b2 prediction b2 action New b2 prediction

2 NT/NT T T/NT NT/NT T

0

2

0

• Dynamic Hardware Branch PredictionDynamic Hardware Branch Prediction: – Correlating Branch PredictorsCorrelating Branch Predictors

» The standard predictor mispredicted allall branches!

Initial value of d

d==0? b1 Value of d before b2 d==1? b2

0 Yes Not takenNot taken 1 Yes Not takenNot taken

1 No Taken 1 Yes Not taken

2 No Taken 2 No Taken

Page 11: ILP: Advanced HWCSCE430/830 Instruction-level parallelism: Advanced HW Approaches CSCE430/830 Computer Architecture Lecturer: Prof. Hong Jiang Fall, 2006

ILP: Advanced HWCSCE430/830

ILP: Advanced HW Approaches

The 2 Prediction bits (p1/p2) Prediction if last branch not taken (p1) Prediction if last branch taken (p2)

NT/NT NT NT

NT/T NT T

T/NT T NT

T/T T T

The Action of the 1-bit Predictor with 1-bit correlation, Initialized to Not Taken/Not TakenThe Action of the 1-bit Predictor with 1-bit correlation, Initialized to Not Taken/Not Taken

d=? b1 prediction b1 action New b1 prediction b2 prediction b2 action New b2 prediction

2 NT/NT T T/NT NT/NT T NT/T

0

2

0

• Dynamic Hardware Branch PredictionDynamic Hardware Branch Prediction: – Correlating Branch PredictorsCorrelating Branch Predictors

» The standard predictor mispredicted allall branches!

Initial value of d

d==0? b1 Value of d before b2 d==1? b2

0 Yes Not takenNot taken 1 Yes Not takenNot taken

1 No Taken 1 Yes Not taken

2 No Taken 2 No Taken

Page 12: ILP: Advanced HWCSCE430/830 Instruction-level parallelism: Advanced HW Approaches CSCE430/830 Computer Architecture Lecturer: Prof. Hong Jiang Fall, 2006

ILP: Advanced HWCSCE430/830

ILP: Advanced HW Approaches

The 2 Prediction bits (p1/p2) Prediction if last branch not taken (p1) Prediction if last branch taken (p2)

NT/NT NT NT

NT/T NT T

T/NT T NT

T/T T T

The Action of the 1-bit Predictor with 1-bit correlation, Initialized to Not Taken/Not TakenThe Action of the 1-bit Predictor with 1-bit correlation, Initialized to Not Taken/Not Taken

d=? b1 prediction b1 action New b1 prediction b2 prediction b2 action New b2 prediction

2 NT/NT T T/NT NT/NT T NT/T

0 T/NT NT/T

2

0

• Dynamic Hardware Branch PredictionDynamic Hardware Branch Prediction: – Correlating Branch PredictorsCorrelating Branch Predictors

» The standard predictor mispredicted allall branches!

Initial value of d

d==0? b1 Value of d before b2 d==1? b2

0 Yes Not takenNot taken 1 Yes Not takenNot taken

1 No Taken 1 Yes Not taken

2 No Taken 2 No Taken

Page 13: ILP: Advanced HWCSCE430/830 Instruction-level parallelism: Advanced HW Approaches CSCE430/830 Computer Architecture Lecturer: Prof. Hong Jiang Fall, 2006

ILP: Advanced HWCSCE430/830

ILP: Advanced HW Approaches

The 2 Prediction bits (p1/p2) Prediction if last branch not taken (p1) Prediction if last branch taken (p2)

NT/NT NT NT

NT/T NT T

T/NT T NT

T/T T T

The Action of the 1-bit Predictor with 1-bit correlation, Initialized to Not Taken/Not TakenThe Action of the 1-bit Predictor with 1-bit correlation, Initialized to Not Taken/Not Taken

d=? b1 prediction b1 action New b1 prediction b2 prediction b2 action New b2 prediction

2 NT/NT T T/NT NT/NT T NT/T

0 T/NT NT T/NT NT/T NT NT/T

2

0

• Dynamic Hardware Branch PredictionDynamic Hardware Branch Prediction: – Correlating Branch PredictorsCorrelating Branch Predictors

» The standard predictor mispredicted allall branches!

Initial value of d

d==0? b1 Value of d before b2 d==1? b2

0 Yes Not takenNot taken 1 Yes Not takenNot taken

1 No Taken 1 Yes Not taken

2 No Taken 2 No Taken

Page 14: ILP: Advanced HWCSCE430/830 Instruction-level parallelism: Advanced HW Approaches CSCE430/830 Computer Architecture Lecturer: Prof. Hong Jiang Fall, 2006

ILP: Advanced HWCSCE430/830

ILP: Advanced HW Approaches

The 2 Prediction bits (p1/p2) Prediction if last branch not taken (p1) Prediction if last branch taken (p2)

NT/NT NT NT

NT/T NT T

T/NT T NT

T/T T T

The Action of the 1-bit Predictor with 1-bit correlation, Initialized to Not Taken/Not TakenThe Action of the 1-bit Predictor with 1-bit correlation, Initialized to Not Taken/Not Taken

d=? b1 prediction b1 action New b1 prediction b2 prediction b2 action New b2 prediction

2 NT/NT T T/NT NT/NT T NT/T

0 T/NT NT T/NT NT/T NT NT/T

2 T/NT T T/NT NT/T T NT/T

0

• Dynamic Hardware Branch PredictionDynamic Hardware Branch Prediction: – Correlating Branch PredictorsCorrelating Branch Predictors

» The standard predictor mispredicted allall branches!

Initial value of d

d==0? b1 Value of d before b2 d==1? b2

0 Yes Not takenNot taken 1 Yes Not takenNot taken

1 No Taken 1 Yes Not taken

2 No Taken 2 No Taken

Page 15: ILP: Advanced HWCSCE430/830 Instruction-level parallelism: Advanced HW Approaches CSCE430/830 Computer Architecture Lecturer: Prof. Hong Jiang Fall, 2006

ILP: Advanced HWCSCE430/830

ILP: Advanced HW Approaches

The 2 Prediction bits (p1/p2) Prediction if last branch not taken (p1) Prediction if last branch taken (p2)

NT/NT NT NT

NT/T NT T

T/NT T NT

T/T T T

The Action of the 1-bit Predictor with 1-bit correlation, Initialized to Not Taken/Not TakenThe Action of the 1-bit Predictor with 1-bit correlation, Initialized to Not Taken/Not Taken

d=? b1 prediction b1 action New b1 prediction b2 prediction b2 action New b2 prediction

2 NT/NT T T/NT NT/NT T NT/T

0 T/NT NT T/NT NT/T NT NT/T

2 T/NT T T/NT NT/T T NT/T

0 T/NT NT T/NT NT/T NT NT/T

• Dynamic Hardware Branch PredictionDynamic Hardware Branch Prediction: – Correlating Branch PredictorsCorrelating Branch Predictors

» The standard predictor mispredicted allall branches!

Initial value of d

d==0? b1 Value of d before b2 d==1? b2

0 Yes Not takenNot taken 1 Yes Not takenNot taken

1 No Taken 1 Yes Not taken

2 No Taken 2 No Taken

Page 16: ILP: Advanced HWCSCE430/830 Instruction-level parallelism: Advanced HW Approaches CSCE430/830 Computer Architecture Lecturer: Prof. Hong Jiang Fall, 2006

ILP: Advanced HWCSCE430/830

ILP: Advanced HW Approaches• Dynamic Hardware Branch PredictionDynamic Hardware Branch Prediction:

– Correlating Branch PredictorsCorrelating Branch Predictors

» With the 1-bit correlation predictor, also called a (1,1) predictor(1,1) predictor, the only misprediction is on the first iteration!

» In general case an (m,n) predictor uses the behavior of the last m branches to choose from 2m branch predictors, each of which is an n-bit predictor for a single branch.

xx predictionxx

2-bit per-branch predictors

4

Lower-bits of Branch address

2-bit global branch history (shift register)

»The number of bits in an (m,n) predictor is:

2m*n *(number of prediction entries selected by the branch address)

Page 17: ILP: Advanced HWCSCE430/830 Instruction-level parallelism: Advanced HW Approaches CSCE430/830 Computer Architecture Lecturer: Prof. Hong Jiang Fall, 2006

ILP: Advanced HWCSCE430/830

ILP: Advanced HW Approaches

• Dynamic Hardware Branch PredictionDynamic Hardware Branch Prediction: – Performance of Correlating Branch PredictorsPerformance of Correlating Branch Predictors

Page 18: ILP: Advanced HWCSCE430/830 Instruction-level parallelism: Advanced HW Approaches CSCE430/830 Computer Architecture Lecturer: Prof. Hong Jiang Fall, 2006

ILP: Advanced HWCSCE430/830

ILP: Advanced HW Approaches

• Dynamic Hardware Branch PredictionDynamic Hardware Branch Prediction: – Tournament Predictors: Adaptively Combining Local and Tournament Predictors: Adaptively Combining Local and

Global PredictorsGlobal Predictors» Takes the insight that adding global information to local

predictors helps improve performance to the next level, by• Using multiple predictors, usually one based on global information

and one based on local information, and

• Combining them with a selector

» Better accuracy at medium sizes (8K bits – 32K bits) and more effective use of very large numbers of prediction bits: the right predictor for the right branch

» Existing tournament predictors use a 2-bit saturating counter per branch to choose among two different predictors:

State Transition Diagram

0/11/01/0

1/0

Use predictor 1 Use predictor 2

Use predictor 1 Use predictor 2

0/1 0/1

0/0, 0/1,1/10/0, 1/0,1/1

0/0, 1/10/0, 1/1

The counter is incremented whenever the “predicted” predictor is correct and the other predictor is incorrect, and it is decremented in the reverse situation

Page 19: ILP: Advanced HWCSCE430/830 Instruction-level parallelism: Advanced HW Approaches CSCE430/830 Computer Architecture Lecturer: Prof. Hong Jiang Fall, 2006

ILP: Advanced HWCSCE430/830

ILP: Advanced HW Approaches

• Dynamic Hardware Branch PredictionDynamic Hardware Branch Prediction: – Performance of Tournament Predictors:Performance of Tournament Predictors:Prediction due to local predictor Misprediction rate of 3 different

predictors

Page 20: ILP: Advanced HWCSCE430/830 Instruction-level parallelism: Advanced HW Approaches CSCE430/830 Computer Architecture Lecturer: Prof. Hong Jiang Fall, 2006

ILP: Advanced HWCSCE430/830

Instruction-Level Parallelism

• Dynamic Hardware Branch PredictionDynamic Hardware Branch Prediction: – The Alpha 21264 Branch Predictor:The Alpha 21264 Branch Predictor:

» 4K 2-bit saturating counters indexed by the local branch address to choose from among:• A Global Predictor that has

– 4K entries that are indexed by the history of the last 12 branches;

– Each entry is a standard 2-bit predictor• A Local Predictor that consists of a two-level predictor

– At the top level is a local history table consisting of 1024 10-bit entries, with each entry corresponding to the most recent 10 branch outcomes for the entry;

– At the bottom level is a table of 1K entries, indexed by the 10-bit entry of the top level, consisting of 3-bit saturating counters which provide the local prediction

» It uses a total of 29K bits for branch prediction, resulting in very high accuracy: 1 misprediction in 1000 for SPECfp95 and 11.5 in 1000 for SPECint95

Page 21: ILP: Advanced HWCSCE430/830 Instruction-level parallelism: Advanced HW Approaches CSCE430/830 Computer Architecture Lecturer: Prof. Hong Jiang Fall, 2006

ILP: Advanced HWCSCE430/830

ILP: Advanced HW Approaches

• High-Performance Instruction DeliveryHigh-Performance Instruction Delivery: – Branch-Target BuffersBranch-Target Buffers

» Branch-prediction cacheBranch-prediction cache that stores the predicted address for the next instruction after a branch:• Predicting the next instruction address before decoding the

current instruction!

• Accessing the target buffer during the IF stage using the instruction address of the fetched instruction (a possible branch) to index the buffer. PC of instruction to fetch

Predicted PCLook up

Number of entries in branch-target buffer

=No: instruction is not predicted to be branch; proceed normally

Yes: then instruction is a taken branch and predicted PC should be used as the next PC

Branch predicted taken or untaken

Page 22: ILP: Advanced HWCSCE430/830 Instruction-level parallelism: Advanced HW Approaches CSCE430/830 Computer Architecture Lecturer: Prof. Hong Jiang Fall, 2006

ILP: Advanced HWCSCE430/830

ILP: Advanced HW Approaches

• Handling branch-target buffers:

• Integrated Instruction Fetch Units: to meet the demands of multiple-issue processors, recent designs have used an integrated instruction fetch unit that integrates several functions:– Integrated branch predictionIntegrated branch prediction – the

branch predictor becomes part of the instruction fetch unit and is constantly predicting branches, so as to drive the fetch pipeline

– Instruction prefetchInstruction prefetch – to deliver multiple instructions per clock, the instruction fetch unit will likely need to fetch ahead, autonomously managing the prefetching of instructions and integrating it with branch prediction

– Instruction memory access and buffering – encapsulates the complexity of fetching multiple instructions per clock, trying to hide the cost of crossing cache blocks, and provides buffering, acting as an on-demand unit to provide instructions to the issue stage as needed and in the quantity needed

Send PC to memory and branch-target buffer

Entry found in branch-target buffer?

Is instruction

a taken branch?

Taken branch?

Send out predicted

PC

Enter branch instruction address and next PC into

branch-target buffer (2 cycle

penalty)

Mispredicted branch, kill

fetched instruction; restart

fetch at other target; delete entry from target buffer (2 cycle penalty)

Branch correctly

predicted; continue

execution with no stalls (0

cycle penalty)

Normal instruction execution (0 cycle penalty)

No Yes

No

No

Yes

Yes

IF

ID

EX

Page 23: ILP: Advanced HWCSCE430/830 Instruction-level parallelism: Advanced HW Approaches CSCE430/830 Computer Architecture Lecturer: Prof. Hong Jiang Fall, 2006

ILP: Advanced HWCSCE430/830

ILP: Advanced HW Approaches

• Taking Advantage of More ILP with Multiple Issue– Superscalar: Superscalar: issue varying numbers of instructions per cycle that are

either statically scheduled (using compiler techniques, thus in-order execution) or dynamically scheduled (using techniques based on Tomasulo’s algorithm, thus out-order execution);

– VLIW (very long instruction word): VLIW (very long instruction word): issue a fixed number of instructions formatted either as one large instruction or as a fixed instruction packet with the parallelism among instructions explicitly indicated by the instruction (hence, they are also known as EPIC, EPIC, explicitly parallel instruction computers). VLIW and EPIC processors are inherently statically scheduled by the compiler.

Common Name

Issue Structure

Hazard Detection

Scheduling Distinguishing Characteristics

Examples

Superscalar (static)

Dynamic (IS packet <= 8)

Hardware Static In-order execution Sun UltraSPARC II/III

Superscalar (dynamic)

Dynamic (split&piped)

Hardware Dynamic Some out-of-order execution

IBM Power2

Superscalar (speculative)

Dynamic Hardware Dynamic with speculation

Out-of-order execution with speculation

Pentium III/4, MIPS R 10K, Alpha 21264, HP PA 8500, IBM RS64III

VLIW/LIW Static Software Static No hazards between issue packets

Trimedia, i860

EPIC Mostly static Mostly software

Mostly static Explicit dependences marked by compiler

Itanium

Page 24: ILP: Advanced HWCSCE430/830 Instruction-level parallelism: Advanced HW Approaches CSCE430/830 Computer Architecture Lecturer: Prof. Hong Jiang Fall, 2006

ILP: Advanced HWCSCE430/830

ILP: Advanced HW Approaches• Taking Advantage of More ILP with Multiple Issue

– Multiple Instruction Issue with Dynamic Scheduling: Multiple Instruction Issue with Dynamic Scheduling: dual-issue with Tomasulo’s

Iteration No. Instructions Issues at Executes Mem Access Write CDB Comments

1 L.D F0,0(R1) 1 2 3 4 First issue

1 ADD.D F4,F0,F2 1 5 8 Wait for L.D

1 S.D F4,0(R1) 2 3 9 Wait for ADD.D

1 DADDIU R1,R1,#-8 2 4 5 Wait for ALU

1 BNE R1,R2,Loop 3 6 Wait for DADDIU

2 L.D F0,0(R1) 4 7 8 9 Wait for BNE complete

2 ADD.D F4,F0,F2 4 10 13 Wait for L.D

2 S.D F4,0(R1) 5 8 14 Wait for ADD.D

2 DADDIU R1,R1,#-8 5 9 10 Wait for ALU

2 BNE R1,R2,Loop 6 11 Wait for DADDIU

3 L.D F0,0(R1) 7 12 13 14 Wait for BNE complete

3 ADD.D F4,F0,F2 7 15 18 Wait for L.D

3 S.D F4,0(R1) 8 13 19 Wait for ADD.D

3 DADDIU R1,R1,#-8 8 14 15 Wait for ALU

3 BNE R1,R2,Loop 9 16 Wait for DADDIU

Page 25: ILP: Advanced HWCSCE430/830 Instruction-level parallelism: Advanced HW Approaches CSCE430/830 Computer Architecture Lecturer: Prof. Hong Jiang Fall, 2006

ILP: Advanced HWCSCE430/830

ILP: Advanced HW Approaches

• Taking Advantage of More ILP with Multiple Issue: resource usage

Clock number Integer ALU FP ALU Data cache CDB Comments

2 1/L.D

3 1/S.D 1/L.D

4 1/DAADIU 1/L.D

5 1/ADD.D 1/DADDIU

6

7 2/L.D

8 2/S.D 2/L.D 1/ADD.D

9 2/DADDIU 1/S.D 2/L.D

10 2/ADD.D 2/DADDIU

11

12 3/L.D

13 3/S.D 3/L.D 2/ADD.D

14 3/DADDIU 2/S.D 3/L.D

15 3/ADD.D 3/DADDIU

16

17

18 3/ADD.D

19 3/S.D

20

Page 26: ILP: Advanced HWCSCE430/830 Instruction-level parallelism: Advanced HW Approaches CSCE430/830 Computer Architecture Lecturer: Prof. Hong Jiang Fall, 2006

ILP: Advanced HWCSCE430/830

ILP: Advanced HW Approaches• Taking Advantage of More ILP with Multiple Issue

– Multiple Instruction Issue with Dynamic Scheduling: Multiple Instruction Issue with Dynamic Scheduling: + an adder and a CBD

Iteration No. Instructions Issues at Executes Mem Access Write CDB Comments

1 L.D F0,0(R1) 1 2 3 4 First issue

1 ADD.D F4,F0,F2 1 5 8 Wait for L.D

1 S.D F4,0(R1) 2 3 9 Wait for ADD.D

1 DADDIU R1,R1,#-8 2 3 4 Executes earlier

1 BNE R1,R2,Loop 3 5 Wait for DADDIU

2 L.D F0,0(R1) 4 6 7 8 Wait for BNE complete

2 ADD.D F4,F0,F2 4 9 12 Wait for L.D

2 S.D F4,0(R1) 5 7 13 Wait for ADD.D

2 DADDIU R1,R1,#-8 5 6 10 Executes earlier

2 BNE R1,R2,Loop 6 8 Wait for DADDIU

3 L.D F0,0(R1) 7 9 10 11 Wait for BNE complete

3 ADD.D F4,F0,F2 7 12 15 Wait for L.D

3 S.D F4,0(R1) 8 10 16 Wait for ADD.D

3 DADDIU R1,R1,#-8 8 9 10 Executes earlier

3 BNE R1,R2,Loop 9 11 Wait for DADDIU

Page 27: ILP: Advanced HWCSCE430/830 Instruction-level parallelism: Advanced HW Approaches CSCE430/830 Computer Architecture Lecturer: Prof. Hong Jiang Fall, 2006

ILP: Advanced HWCSCE430/830

ILP: Advanced HW Approaches

• Taking Advantage of More ILP with Multiple Issue: more resource

Clock number Integer ALU Address adder FP ALU Data cache CDB#1 CDB#2

2 1/L.D

3 1/DAADIU 1/S.D 1/L.D

4 1/L.D 1/DADDIU

5 1/ADD.D

6 2/DADDIU 2/L.D

7 2/S.D 2/L.D 2/DADDIU

8 1/ADD.D 2/L.D

9 3/DADDIU 3/L.D 2/ADD.D 1/S.D

10 3/S.D 3/L.D 3/DADDIU

11 3/L.D

12 3/ADD.D 2/ADD.D

13 2/S.D

14

15 3/DADDIU

16 3/S.D