1 / 1

independent work in between

Control-Flow Decoupling Rami Sheikh, James Tuck, Eric Rotenberg North Carolina State University. branch-slice. branch-slice. branch-slice Push_BQ. branch. branch. Branch_on_BQ. control- dependent region. control- dependent region. control- dependent region. Motivation.

javan
Download Presentation

independent work in between

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. Control-Flow Decoupling Rami Sheikh, James Tuck, Eric RotenbergNorth Carolina State University branch-slice branch-slice branch-slice Push_BQ branch branch Branch_on_BQ control- dependent region control- dependent region control- dependent region Motivation • Single-thread performance is important for single- and multi-threaded applications. • Per-core energy consumption is at a premium. • Better branch handling is a BIG win: improves performance, reduces energy and enables memory latency tolerance. Execution Scenarios Common Case Uncommon Case 65% BQ hit BQ miss 67% 69% ………... ………….… • slice IF EX IF EX • slice 68% 67% Energy Reduction IF IF branch branch 65% Speculate or Stall 63% • Other interesting aspects of CFD: • Supports partially separable branches • Supports nested branches through multi-level decoupling • Overheads can be significantly reduced through value communication (called CFD+ in the paper) Sandy Bridge Nehalem Haswell Conroe Future Generations CFD Compiler Implementation in GCC Interesting Observation • A third of mispredictions come from separable branches: • The branch has a large CD region (if-conversion not profitable). • The branch does not depend on its own CD instructions via a loop-carried data dependence. Results Applying CFD manually: Control-Flow Decoupling (CFD) branch-slice • Key idea: separate the loop into two loops: • The first contains only the branch’s predicate computation. • The second contains the branch and its control-dependent instructions. branch control- dependent region BQ BQ drives fetch Applying CFD automatically (compiler): Conclusion CFD Loops • A third of mispredictions come from separable branches. • CFD is a software/hardware collabor-ationfor exploiting separability with low complexity and high efficacy. • CFD is comparable to if-conversion in terms of number of static branches and MPKI contribution. Original Loop Original CFD Problem #1 No fetch separation: need branch prediction • CFD provides: • Fetch separation • Mechanism to comm. predicates to Fetch Unit …..…..…. …..…..…. IF IF EX EX • slice • slice …..…..…. …..…..…. IF EX branch IF EX • slice …..…..…. IF EX • slice …..… BQ IF EX • slice Problem #2 No mechanism to comm. predicates to Fetch Unit …..…..…. IF EX branch • independent work in between …….…. …..…..…. IF EX branch …..… IF EX …..…..…. branch IF EX branch

More Related