cpu: simple: Add support for using branch predictors
authorAndreas Sandberg <andreas@sandberg.pp.se>
Sun, 9 Feb 2014 19:49:28 +0000 (20:49 +0100)
committerAndreas Sandberg <andreas@sandberg.pp.se>
Sun, 9 Feb 2014 19:49:28 +0000 (20:49 +0100)
commitc52190a695dc1928713e5bbda85cd17867c7e465
tree8e9e03fdd3b1cf367f4fa9e28eaf8458947cfcf7
parenteb73a14fe29ff4940a206a9961e30c2376412951
cpu: simple: Add support for using branch predictors

This changesets adds branch predictor support to the
BaseSimpleCPU. The simple CPUs normally don't need a branch predictor,
however, there are at least two cases where it can be desirable:

  1) A simple CPU can be used to warm the branch predictor of an O3
     CPU before switching to the slower O3 model.

  2) The simple CPU can be used as a quick way of evaluating/debugging
     new branch predictors since it exposes branch predictor
     statistics.

Limitations:
  * Since the simple CPU doesn't speculate, only one instruction will
    be active in the branch predictor at a time (i.e., the branch
    predictor will never see speculative branches).

  * The outcome of a branch prediction does not affect the performance
    of the simple CPU.
src/cpu/simple/BaseSimpleCPU.py
src/cpu/simple/base.cc
src/cpu/simple/base.hh