1 / 23

T OR A AMODT (aamodt@eecg.utoronto Andreas Moshovos Paul Chow

The Predictability of Computations that Produce Unpredictable Outcomes. T OR A AMODT (aamodt@eecg.utoronto.ca Andreas Moshovos Paul Chow Electrical and Computer Engineering University of Toronto Canada. Outcome-Based Prediction. History of Outcomes leading up to Branch “X”:

preston
Download Presentation

T OR A AMODT (aamodt@eecg.utoronto Andreas Moshovos Paul Chow

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. The Predictability of Computations that Produce Unpredictable Outcomes TOR AAMODT (aamodt@eecg.utoronto.ca Andreas Moshovos Paul Chow Electrical and Computer Engineering University of Toronto Canada

  2. Outcome-Based Prediction History of Outcomes leading up to Branch “X”: TNTTNTT ...NTN... TNTTNTT History Next time we encounter X after “TNTTNT” we can predict “T” Outcome of Branch X Why this works: Locality in the outcome stream The Predictability of Computations that Produce Unpredictable Outcomes

  3. Problem • Unpredictable Branches THE Problem. • No Outcome-Locality The Predictability of Computations that Produce Unpredictable Outcomes

  4. Operation-Based Prediction • Find locality in the computations that produce the outcome add ld slt bne The Predictability of Computations that Produce Unpredictable Outcomes

  5. This Work • First work that looks at the fundamental program behaviour that would facilitate operation-based prediction. • Related work… • Characterization of slices • Prefetching loads / pre-execution of branches The Predictability of Computations that Produce Unpredictable Outcomes

  6. Ideally... • Slice (i.e., slice trace) will always be the same. • Slice will contain very few operations spanning large portion of original program. • Easy (fast) to pre-compute. The Predictability of Computations that Produce Unpredictable Outcomes

  7. Terminology • Lead : earliest instruction in slice • Target : branch we want to precompute add ld slt bne The Predictability of Computations that Produce Unpredictable Outcomes

  8. What Should a Slice be? FETCH ... COMMIT • Commited Instructions • 32, 64, 128, or 256 window • Ignore Control Flow • retain side-effect of JAL on $r31 • Memory Dependence • follow resolved load-store dependence: M • Restrict # Instructions • R = max 1/4, U = “no restriction” older The Predictability of Computations that Produce Unpredictable Outcomes

  9. Methodology • 12 programs from SPEC2000 • Baseline Outcome Prediction Hardware • 64K Gshare + 64K bimodal w/ 64K selector • 64 entry RAS • sim-outorder (SimpleScalar 3.0): • 8-way, 128 entry RUU, 64 entry-fetch buffer • 64K dual LI, 256K unified L2 • 64 entry LSQ • Perfect Memory Disambiguation The Predictability of Computations that Produce Unpredictable Outcomes

  10. Measuring Slice Locality • locality(1) = Probability same slice was seen last time. High value of locality(1) indicates that last-operation based slice prediction would work well. • locality(N) = Probability same slice seen in last N unique slices. The Predictability of Computations that Produce Unpredictable Outcomes

  11. Measuring Slice Locality • Save the FOUR unique, most recent slice traces per static branch (only on misprediction). • Each time a mispredicted branch is encountered check whether the slice trace was the most recent, 2nd most recent, etc... The Predictability of Computations that Produce Unpredictable Outcomes

  12. Measuring Slice Locality • All results are weighted averages. • Result for each static branch weighted proportionally to the number of times the operation-based predictor mispredicted it. • Characteristics of branches that cause most mispredictions emphasized. The Predictability of Computations that Produce Unpredictable Outcomes

  13. Unrestricted Slices : 32UM Better Locality gcc equake ammp bzip Saving ONE slice captures most of locality. The Predictability of Computations that Produce Unpredictable Outcomes

  14. Restricted vs. Unrestricted Better Locality 32UM 32RM gcc equake ammp bzip Most slices have few instructions. The Predictability of Computations that Produce Unpredictable Outcomes

  15. Effect of Memory Dependence Better Locality 64R 64RM gcc equake ammp bzip Tracking Dependence Does Not Affect Locality Much. The Predictability of Computations that Produce Unpredictable Outcomes

  16. Window Size Better Locality 32RM 64RM 128RM 256RM gcc equake ammp bzip Locality good even for large windows. The Predictability of Computations that Produce Unpredictable Outcomes

  17. Effect of Selection Context 128RM Better Locality On Mispredict Always gcc equake ammp bzip Focusing on Mispredictions Improves Locality. The Predictability of Computations that Produce Unpredictable Outcomes

  18. Idealized Predictor Lead PC • Spawn and execute instantaneously when lead operation is encountered. • Store up to 4 slice traces per lead operation The Predictability of Computations that Produce Unpredictable Outcomes

  19. Idealized Predictor • Match operations & register dependencies as instructions are fetched. • After matching there is usually only one prediction per target, if any (>80% of time)... • Tie-breaker #1: longest lead-target distance. • Tie-breaker #2: most recently detected slice. The Predictability of Computations that Produce Unpredictable Outcomes

  20. Correcting Mispredictions 32RM 64RM 128RM gcc equake ammp bzip High Coverage of Mispredicted Branches The Predictability of Computations that Produce Unpredictable Outcomes

  21. Interaction with Outcome-Based Predictor 32RM 64RM 128RM gcc equake ammp bzip Very Little Destructive Interference The Predictability of Computations that Produce Unpredictable Outcomes

  22. Summary • Slice-locality for mispredicted branches • average of 70% for restricted slices on a 64 entry window following load-store dependencies (12 SPEC2000 benchmarks). • Accuracy of idealized predictor • 74% of mispredicted branches eliminated The Predictability of Computations that Produce Unpredictable Outcomes

  23. Conclusion • First work that looks at the fundamental program behaviour, slice-locality, that would facilitate predicting slice traces to pre-execute outcomes. • SPEC2000 benchmarks show very high slice-locality for mispredicted branches. The Predictability of Computations that Produce Unpredictable Outcomes

More Related