User Tools

Site Tools


buzzword

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
buzzword [2015/02/04 19:23]
rachata
buzzword [2015/02/06 19:21]
albert lecture 10 words added
Line 318: Line 318:
     ​     ​
 ===== Lecture 9 (2/4 Wed.) =====  ​ ===== Lecture 9 (2/4 Wed.) =====  ​
-    ​ 
-  * Predicate combining (combine predicate for a branch instruction) 
-  * Predicated execution (control dependence becomes data dependence) 
   * Definition of basic blocks   * Definition of basic blocks
   * Control flow graph   * Control flow graph
Line 367: Line 364:
       * Two bits counter based prediction       * Two bits counter based prediction
         * One more bit for hysteresis         * One more bit for hysteresis
 +
 +===== Lecture 10 (2/6 Fri.) =====
 +  * Branch prediction accuracy
 +    * Why are they very important?
 +      * Differences between 99% accuracy and 98% accuracy
 +      * Cost of a misprediction when the pipeline is veryd eep
 +  * Global branch correlation
 +    * Some branches are correlated
 +  * Local branch correlation
 +    * Some branches can depend on the result of past branches
 +  * Pattern history table
 +    * Record global taken/not taken results. ​
 +    * Cost vs. accuracy (What to record, do you record PC? Just taken/not taken info.?)
 +  * One-level branch predictor
 +    * What information are used
 +  * Two-level branch prediction
 +    * What entries do you keep in the global history?
 +    * What entries do you keep in the local history?
 +    * How many table?
 +    * Cost when training a table
 +    * What are the purposes of each table?
 +    * Potential problems of a two-level history
 +  * GShare predictor
 +    * Global history predictor is hashed with the PC
 +    * Store both GHP and PC in one combined information
 +    * How do you use the information?​ Why does the XOR result still usable?
 +  * Warmup cost of the branch predictor
 +    * Hybrid solution? Fast warmup is used first, then switch to the slower one.
 +  * Tournament predictor (Alpha 21264)
 +  * Predicated execution - eliminate branches
 +    * What are the tradeoffs
 +    * What if the block is big (can lead to execution a lot of useless work)
 +    * Allows easier code optimization
 +      * From the compiler PoV, predicated execution combine multiple basic blocks into one bigger basic block
 +      * Reduce control dependences
 +    * Need ISA support
 +  * Wish branches
 +    * Compiler generate both predicated and non-predicated codes
 +    * HW design which one to use
 +      * Use branch prediction on an easy to predict code
 +      * Use predicated execution on a hard to predict code
 +      * Compiler can be more aggressive in optimimzing the code
 +    * What are the tradeoffs (slide# 47)
 +  * Multi-path execution
 +    * Execute both paths
 +    * Can lead to wasted work
 +    * VLIW
 +    * SuperScalar
  
buzzword.txt ยท Last modified: 2015/04/27 18:20 by rachata