lecture 4.5 pipelines – control hazards topics control hazards branch prediction misprediction...

20
Lecture 4.5 Pipelines – Control Hazards Topics Topics Control Hazards Branch Prediction Misprediction stalls Readings: Appendix C Readings: Appendix C September 2, 2015 CSCE 513 Computer Architecture

Upload: chloe-dennis

Post on 08-Jan-2018

224 views

Category:

Documents


0 download

DESCRIPTION

– 3 – CSCE 513 Fall 2015 Review A simple Implementation of MIPS Pipeline pages C-31 through C-33 5 Stages – specify the register transfers in each stage 1.Instruction Fetch (IF or F) 2.Instruction decode/register fetch (ID or D) 3.Execute 4.Memory 5.Write Back – store results into the register indicated (r d or r t )

TRANSCRIPT

Page 1: Lecture 4.5 Pipelines – Control Hazards Topics Control Hazards Branch Prediction Misprediction stalls Readings: Appendix C September 2, 2015 CSCE 513 Computer

Lecture 4.5Pipelines – Control Hazards

Topics Topics Control Hazards Branch Prediction Misprediction stalls

Readings: Appendix CReadings: Appendix C

September 2, 2015

CSCE 513 Computer Architecture

Page 2: Lecture 4.5 Pipelines – Control Hazards Topics Control Hazards Branch Prediction Misprediction stalls Readings: Appendix C September 2, 2015 CSCE 513 Computer

– 2 – CSCE 513 Fall 2015

OverviewLast TimeLast Time

Review of Single cycle design 5 stage Pipeline Lecture 3 slides 1-20

NewNew Slides 20-51 of Lecture 3 IEEE 754 Floating Point Normal Pipeline Operations – the Ideal World Hazards Data Hazards: RAW, WAR, WAW, forwarding, load-use Control hazards Performance with Stalls

ReferencesReferences Appendix C

Page 3: Lecture 4.5 Pipelines – Control Hazards Topics Control Hazards Branch Prediction Misprediction stalls Readings: Appendix C September 2, 2015 CSCE 513 Computer

– 3 – CSCE 513 Fall 2015

Review A simple Implementation of MIPS Pipeline pages C-31 through C-33

5 Stages – specify the register transfers in each stage5 Stages – specify the register transfers in each stage

1.1. Instruction Fetch (IF or F)Instruction Fetch (IF or F)

2.2. Instruction decode/register fetch (ID or D)Instruction decode/register fetch (ID or D)

3.3. ExecuteExecute

4.4. MemoryMemory

5.5. Write Back – store results into the register indicated Write Back – store results into the register indicated (r(rdd or r or rtt))

Page 4: Lecture 4.5 Pipelines – Control Hazards Topics Control Hazards Branch Prediction Misprediction stalls Readings: Appendix C September 2, 2015 CSCE 513 Computer

– 4 – CSCE 513 Fall 2015

Load-Use Hazard Must stall even with Full Forwarding

Page 5: Lecture 4.5 Pipelines – Control Hazards Topics Control Hazards Branch Prediction Misprediction stalls Readings: Appendix C September 2, 2015 CSCE 513 Computer

– 5 – CSCE 513 Fall 2015

Control Hazards – basics review

Loop:Loop:

800 LD F2, 0(R1) -- top of loop800 LD F2, 0(R1) -- top of loop

……..

10001000 BNEZBNEZ R1, loopR1, loop

1004 LD F4, 0(R3)1004 LD F4, 0(R3)

1008 DADDIU R3, R3, #41008 DADDIU R3, R3, #4

100C SD F2, #-4(R3)100C SD F2, #-4(R3)

10101010 ……

Branch prediction – guess which way to goBranch prediction – guess which way to go

Page 6: Lecture 4.5 Pipelines – Control Hazards Topics Control Hazards Branch Prediction Misprediction stalls Readings: Appendix C September 2, 2015 CSCE 513 Computer

– 6 – CSCE 513 Fall 2015

Branches predicted not taken correctly BNEZ R1, loopBNEZ R1, loop And when you get to the execute R1 != 0And when you get to the execute R1 != 0 Predict Branch not taken and it’s not takenPredict Branch not taken and it’s not taken

No stalls what a wonderful world!No stalls what a wonderful world!

Page 7: Lecture 4.5 Pipelines – Control Hazards Topics Control Hazards Branch Prediction Misprediction stalls Readings: Appendix C September 2, 2015 CSCE 513 Computer

– 7 – CSCE 513 Fall 2015

Figure C-22 revisited Branch target and Branch taken Branch target and Branch taken

What are they? When are they calculated? Where are they used from?

Page 8: Lecture 4.5 Pipelines – Control Hazards Topics Control Hazards Branch Prediction Misprediction stalls Readings: Appendix C September 2, 2015 CSCE 513 Computer

– 8 – CSCE 513 Fall 2015

Branches predicted correctly and not Assuming Improved hardware

BNEZ R1, loopBNEZ R1, loop Predict Branch not taken and Woops! it’s takenPredict Branch not taken and Woops! it’s taken

The condition turns out we should take the branch i+1, i+2, i+3 were wrong Turn into “NOPs” ( No Operations, instruction that does nothing) When does the pipeline find out

Instr 1 2 3 4 5 6 7 8 9BNEZ F D E M Wi+1 F D E M Wi+2 F D E M Wi+3 F D E M WBranch target

F D E M W

Page 9: Lecture 4.5 Pipelines – Control Hazards Topics Control Hazards Branch Prediction Misprediction stalls Readings: Appendix C September 2, 2015 CSCE 513 Computer

– 9 – CSCE 513 Fall 2015

Delays for Mis-predicted Branches Figure C-22 revisited yet againFigure C-22 revisited yet again

Page 10: Lecture 4.5 Pipelines – Control Hazards Topics Control Hazards Branch Prediction Misprediction stalls Readings: Appendix C September 2, 2015 CSCE 513 Computer

– 10 – CSCE 513 Fall 2015

Figure C.28 Avoiding some Branch Stalls

Copyright © 2011, Elsevier Inc. All rights Reserved.

Page 11: Lecture 4.5 Pipelines – Control Hazards Topics Control Hazards Branch Prediction Misprediction stalls Readings: Appendix C September 2, 2015 CSCE 513 Computer

– 11 – CSCE 513 Fall 2015

Branches predicted correctly and not Assuming Improved hardware Fig C-12

BNEZ R1, loopBNEZ R1, loop Predict Branch not taken and it’s not takenPredict Branch not taken and it’s not taken

Predict Branch not taken and Woops! it’s takenPredict Branch not taken and Woops! it’s taken The condition turns out we should take the branch

Page 12: Lecture 4.5 Pipelines – Control Hazards Topics Control Hazards Branch Prediction Misprediction stalls Readings: Appendix C September 2, 2015 CSCE 513 Computer

– 12 – CSCE 513 Fall 2015Copyright © 2011, Elsevier Inc. All rights Reserved.

Figure C.28 The stall from branch hazards can be reduced by moving the zero test and branch-target calculation into the ID phase of the pipeline. Notice that we have made two important changes, each of which

removes 1 cycle from the 3-cycle stall for branches. The first change is to move both the branch-target address calculation and the branch condition decision to the ID cycle. The second change is to write the PC of

the instruction in the IF phase, using either the branch-target address computed during ID or the incremented PC computed during IF. In comparison, Figure C.22 obtained the branch-target address from the

EX/MEM register and wrote the result during the MEM clock cycle. As mentioned in Figure C.22, the PC can be thought of as a pipeline register (e.g., as part of ID/IF), which is written with the address of the next

instruction at the end of each IF cycle.

Returns; Unconditional branches

Page 13: Lecture 4.5 Pipelines – Control Hazards Topics Control Hazards Branch Prediction Misprediction stalls Readings: Appendix C September 2, 2015 CSCE 513 Computer

– 13 – CSCE 513 Fall 2015Copyright © 2011, Elsevier Inc. All rights Reserved.

Figure C.14 Scheduling the branch delay slot. The top box in each pair shows the code before scheduling; the bottom box shows the scheduled code. In (a), the delay slot is scheduled with an independent instruction

from before the branch. This is the best choice. Strategies (b) and (c) are used when (a) is not possible. In the code sequences for (b) and (c), the use of R1 in the branch condition prevents the DADD instruction

(whose destination is R1) from being moved after the branch. In (b), the branch delay slot is scheduled from the target of the branch; usually the target instruction will need to be copied because it can be reached by

another path. Strategy (b) is preferred when the branch is taken with high probability, such as a loop branch. Finally, the branch may be scheduled from the not-taken fall-through as in (c). To make this optimization

legal for (b) or (c), it must be OK to execute the moved instruction when the branch goes in the unexpected direction. By OK we mean that the work is wasted, but the program will still execute correctly. This is the

case, for example, in (c) if R7 were an unused temporary register when the branch goes in the unexpected direction.

Branch Delay slotsDumb hardware; smart compiler - scheduling

Page 14: Lecture 4.5 Pipelines – Control Hazards Topics Control Hazards Branch Prediction Misprediction stalls Readings: Appendix C September 2, 2015 CSCE 513 Computer

– 14 – CSCE 513 Fall 2015Copyright © 2011, Elsevier Inc. All rights Reserved.

Figure C.17 Misprediction rate on SPEC92 for a profile-based predictor varies widely but is generally better for the floating-point programs, which have an average misprediction rate of 9% with a standard deviation

of 4%, than for the integer programs, which have an average misprediction rate of 15% with a standard deviation of 5%. The actual performance depends on both the prediction accuracy and the branch frequency,

which vary from 3% to 24%.

Page 15: Lecture 4.5 Pipelines – Control Hazards Topics Control Hazards Branch Prediction Misprediction stalls Readings: Appendix C September 2, 2015 CSCE 513 Computer

– 15 – CSCE 513 Fall 2015Copyright © 2011, Elsevier Inc. All rights Reserved.

Figure C.19 Prediction accuracy of a 4096-entry 2-bit prediction buffer for the SPEC89 benchmarks. The misprediction rate for the integer benchmarks (gcc, espresso, eqntott, and li) is substantially higher (average of

11%) than that for the floating-point programs (average of 4%). Omitting the floating-point kernels (nasa7, matrix300, and tomcatv) still yields a higher accuracy for the FP benchmarks than for the integer

benchmarks. These data, as well as the rest of the data in this section, are taken from a branch-prediction study done using the IBM Power architecture and optimized code for that system. See Pan, So, and Rameh

[1992]. Although these data are for an older version of a subset of the SPEC benchmarks, the newer benchmarks are larger and would show slightly worse behavior, especially for the integer benchmarks.

Page 16: Lecture 4.5 Pipelines – Control Hazards Topics Control Hazards Branch Prediction Misprediction stalls Readings: Appendix C September 2, 2015 CSCE 513 Computer

– 16 – CSCE 513 Fall 2015Copyright © 2011, Elsevier Inc. All rights Reserved.

Figure C.18 The states in a 2-bit prediction scheme. By using 2 bits rather than 1, a branch that strongly favors taken or not taken—as many branches do—will be mispredicted less often than with a 1-bit predictor.

The 2 bits are used to encode the four states in the system. The 2-bit scheme is actually a specialization of a more general scheme that has an n-bit saturating counter for each entry in the prediction buffer. With an n-

bit counter, the counter can take on values between 0 and 2n – 1: When the counter is greater than or equal to one-half of its maximum value (2n – 1), the branch is predicted as taken; otherwise, it is predicted as

untaken. Studies of n-bit predictors have shown that the 2-bit predictors do almost as well, thus most systems rely on 2-bit branch predictors rather than the more general n-bit predictors.

Page 17: Lecture 4.5 Pipelines – Control Hazards Topics Control Hazards Branch Prediction Misprediction stalls Readings: Appendix C September 2, 2015 CSCE 513 Computer

– 17 – CSCE 513 Fall 2015

2-bit Saturating Branch predictor

Consider a loopConsider a loop

i = 0i = 0

Loop:Loop:

……

i = i + 4i = i + 4

if i < 400 go to loopif i < 400 go to loop

Branch Prediction traceBranch Prediction trace What state do we start in?What state do we start in? Assume something say SNTAssume something say SNT

https://en.wikipedia.org/wiki/Branch_predictor

i State Pred Actual Next State

0 SNT NT Taken WNT

1 WNT NT Taken WT

2 WT T Taken ST

3 ST T Taken ST

Page 18: Lecture 4.5 Pipelines – Control Hazards Topics Control Hazards Branch Prediction Misprediction stalls Readings: Appendix C September 2, 2015 CSCE 513 Computer

– 18 – CSCE 513 Fall 2015

Dynamic Scheduling

Page 19: Lecture 4.5 Pipelines – Control Hazards Topics Control Hazards Branch Prediction Misprediction stalls Readings: Appendix C September 2, 2015 CSCE 513 Computer

– 19 – CSCE 513 Fall 2015

Page 20: Lecture 4.5 Pipelines – Control Hazards Topics Control Hazards Branch Prediction Misprediction stalls Readings: Appendix C September 2, 2015 CSCE 513 Computer

– 20 – CSCE 513 Fall 2015

Why it is really that this easy! interrupts, fault, and exceptionThe terms interrupt, fault, and exception are used, although The terms interrupt, fault, and exception are used, although

not in a consistent fashion. We use the term exception not in a consistent fashion. We use the term exception to cover all these mechanisms, including the following: to cover all these mechanisms, including the following: I/ O device request Invoking an operating system service from a

user program Tracing instruction execution Breakpoint (programmer-requested interrupt) Integer arithmetic overflow FP arithmetic anomaly Page fault (not in main memory) Misaligned memory accesses (if alignment is required) Memory protection violation Using an undefined or unimplemented instruction Hardware malfunctions Power failure