ABPS - Advanced Branch Prediction Simulator


Published on

ABPS - is an interactive graphical trace-driven simulator for teaching branch prediction. With ABPS simulator we identify unbiased branches and may run a plenty of branch predictors, from classical two-level up to neural state-of-the art, varying the most important parameters and illustrating simulations’ results. Also important, ABPS permits the migration of some mature actual scientific problems to students’ understanding level.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

ABPS - Advanced Branch Prediction Simulator

  1. 1. ABPS – Advanced Branch Prediction Simulator http://sourceforge.net/projects/abps Ciprian V. RADU, Horia CALBOREAN, Adrian CRAPCIU Lucian VINŢAN, Adrian FLOREA 27/04/11
  2. 2. Branch prediction – a major problem <ul><li>Without performing branch prediction, it won’t be possible to aggressively exploit instruction level parallelism; </li></ul><ul><li>Both architectural and technological complexity of current processors emphasizes the negative impact on performance and power consumption due to every miss predicted branch. </li></ul>27/04/11
  3. 3. What is ABPS? <ul><li>A trace-driven simulator that allows you to study (in an interactive and easy manner) the problem of branch prediction; </li></ul><ul><li>A detector of difficult-to-predict branches; </li></ul><ul><li>A predictor of branches; </li></ul><ul><li>An interactive tool; </li></ul><ul><li>An easy to use and highly configurable simulator; </li></ul><ul><li>An OS independent platform. </li></ul>27/04/11
  4. 4. Why do we need ABPS? <ul><li>Lack of simulators dedicated to branch prediction used in didactical purposes despite of plenty used in research goals; </li></ul><ul><li>Most existing simulators (from research) are difficult to use and don’t provide a GUI; </li></ul><ul><li>Studying processors performance requires simulators; </li></ul><ul><li>ABPS permits the migration of some mature actual scientific problems to students’ understanding level. </li></ul>27/04/11
  5. 5. A trace driven B ranch P rediction S imulator <ul><li>ABPS currently uses two kind of integer benchmarks for simulation purposes: </li></ul><ul><li>8 Stanford benchmarks - very helpful for didactic purposes (Hennessy); </li></ul><ul><li>17 SPEC 2000 benchmarks (more complex, 1.000.000 dynamic branches). </li></ul>27/04/11
  6. 6. ABPS is a Detector <ul><li>All present branch prediction techniques are limited in their accuracy. </li></ul><ul><li>An important limitation cause is given by the used prediction contexts ( global and local histories, path information ). </li></ul><ul><li>Some branches are unbiased and non-deterministically shuffled , thus unpredictable . </li></ul><ul><li>The percentages of these branches represents a fundamental prediction limitation . </li></ul>27/04/11
  7. 7. ABPS is a Detector (cont.) <ul><li>Detecting difficult to predict branches can be easily done with ABPS, in a highly configurable manner; </li></ul><ul><li>ABPS includes several detection schemes, based on: </li></ul><ul><ul><li>Local history ( HrL ); </li></ul></ul><ul><ul><li>Global history ( HrG ); </li></ul></ul><ul><ul><li>HrL + HrG; </li></ul></ul><ul><ul><li>HrG + Path; </li></ul></ul><ul><ul><li>HrL + HrG + Path . </li></ul></ul>27/04/11
  8. 8. ABPS is a Predictor <ul><li>Or, more exactly: a collection of predictors, fully configurable; </li></ul><ul><li>ABPS integrates two level predictors and state of the art (neural) predictors; </li></ul><ul><li>Simulation over different benchmarks, using multiple prediction schemes, allows an easy to perform comparison between different predictors. </li></ul>27/04/11
  9. 9. ABPS is a Predictor (Cont.) <ul><li>Two level predictors: </li></ul><ul><ul><li>GAg </li></ul></ul><ul><ul><li>GShare </li></ul></ul><ul><ul><li>PAg </li></ul></ul><ul><ul><li>PAp </li></ul></ul><ul><li>Neural Predictors: </li></ul><ul><ul><li>Simple perceptron </li></ul></ul><ul><ul><li>Fast Path-based perceptron </li></ul></ul>27/04/11
  10. 10. ABPS is a Detector & Predictor <ul><li>The two major core elements of ABPS are linked : a predictor should benefit from the results provided by a detector; </li></ul><ul><li>One can use detection results and try a prediction over unbiased branches only; </li></ul><ul><li>Thus, we can observe how a predictor is able to manage unbiased branches; </li></ul><ul><li>With ABPS you have a lot of simulation possibilities. </li></ul>27/04/11
  11. 11. What ABPS has to offer? <ul><li>In a simple way of speaking… A LOT; </li></ul><ul><li>ABPS was designed to be flexible. Thus, a lot of results can be obtained; </li></ul><ul><li>ABPS GUI uses 25% of space for inputs and 75% for displaying simulation results. </li></ul><ul><li>Please think of ABPS more like a black box, with a lot of inputs, a lot of outputs, although EASY TO USE. </li></ul>27/04/11
  12. 12. ABPS gives you what you need: results <ul><li>ABPS offers results for both detection and prediction processes; </li></ul><ul><li>Metrics: </li></ul><ul><ul><li>Prediction accuracy; </li></ul></ul><ul><ul><li>Table usage degree; </li></ul></ul><ul><ul><li>Confidence; </li></ul></ul><ul><ul><li>Saturation degree; </li></ul></ul>27/04/11
  13. 13. ABPS gives you what you need: results (cont.) <ul><li>Currently, ABPS gives you results in two distinct ways: </li></ul><ul><ul><li>Text mode; </li></ul></ul><ul><ul><li>Chart mode. </li></ul></ul><ul><ul><li>Using charts, ABPS gives you the opportunity: </li></ul></ul><ul><ul><li>to better interpret simulation results; </li></ul></ul><ul><ul><li>to notice tendencies (outputs = f(inputs)); </li></ul></ul><ul><ul><li>to observe limits. </li></ul></ul><ul><ul><li>Results can be saved for further investigation </li></ul></ul>27/04/11
  14. 14. How does ABPS look like 27/04/11
  15. 15. ABPS is software for hardware <ul><li>The architecture of ABPS tries to follow the architecture of a processor: </li></ul><ul><ul><li>Objects for registers; </li></ul></ul><ul><ul><li>Data structures that emulate branch predictors; </li></ul></ul><ul><ul><li>Use of OOP concepts for detection and prediction problems. </li></ul></ul><ul><li>ABPS uses an analytical model to determine the impact of unbiased branches and branch miss-predictions on global processing performance. </li></ul>27/04/11
  16. 16. ABPS architecture – a user view 27/04/11
  17. 17. ABPS architecture – main view 27/04/11
  18. 18. ABPS architecture – process flow 27/04/11
  19. 19. ABPS architecture – detection process 27/04/11
  20. 20. ABPS architecture – detector core 27/04/11
  21. 21. ABPS architecture – predictor core 27/04/11
  22. 22. And that’s not all… (further work) <ul><li>Main goal of ABPS is to become a framework for branch prediction simulation </li></ul><ul><li>ABPS will: </li></ul><ul><ul><li>be a distributed software application; </li></ul></ul><ul><ul><li>include a way to persist results (DBMS or file system); </li></ul></ul><ul><ul><li>allow you to import and export simulation data; </li></ul></ul><ul><ul><li>be integrated in a more complex hardware architecture which includes: cache, out-of-order execution mechanism, power consumption. </li></ul></ul>27/04/11
  23. 23. ABPS – submitted for EuroSim2007, Ljubljana, Slovenia <ul><li>You can reach us any time -> http://sourceforge.net/projects/abps </li></ul><ul><li>THANK YOU for your time! </li></ul><ul><li>Requirements: </li></ul><ul><ul><li>JRE 1.5; </li></ul></ul><ul><ul><li>1 GHz CPU; </li></ul></ul><ul><ul><li>256 MB RAM; </li></ul></ul><ul><ul><li>1024x768 minimum screen resolution . </li></ul></ul>27/04/11