ABPS - Advanced Branch Prediction Simulator

Uploaded 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 …

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.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    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

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide


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