From c52190a695dc1928713e5bbda85cd17867c7e465 Mon Sep 17 00:00:00 2001 From: Andreas Sandberg Date: Sun, 9 Feb 2014 20:49:28 +0100 Subject: 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 | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/cpu/simple/BaseSimpleCPU.py') diff --git a/src/cpu/simple/BaseSimpleCPU.py b/src/cpu/simple/BaseSimpleCPU.py index a4ae7e34b..243a09269 100644 --- a/src/cpu/simple/BaseSimpleCPU.py +++ b/src/cpu/simple/BaseSimpleCPU.py @@ -30,6 +30,7 @@ from m5.defines import buildEnv from m5.params import * from BaseCPU import BaseCPU from DummyChecker import DummyChecker +from BranchPredictor import BranchPredictor class BaseSimpleCPU(BaseCPU): type = 'BaseSimpleCPU' @@ -46,3 +47,5 @@ class BaseSimpleCPU(BaseCPU): else: print "ERROR: Checker only supported under ARM ISA!" exit(1) + + branchPred = Param.BranchPredictor(NULL, "Branch Predictor") -- cgit v1.2.3