summaryrefslogtreecommitdiff
path: root/cpu/ozone
diff options
context:
space:
mode:
authorKevin Lim <ktlim@umich.edu>2006-05-25 17:01:48 -0400
committerKevin Lim <ktlim@umich.edu>2006-05-25 17:01:48 -0400
commit248bd2bb62861c8d77de4c8cfab6c6392bd85049 (patch)
treec1a290ab284bd45fa6d8062c250c9cbcada6ad0b /cpu/ozone
parent02aa549c9b1fd81be4bb1408cb97b92dc126e360 (diff)
downloadgem5-248bd2bb62861c8d77de4c8cfab6c6392bd85049.tar.xz
Various branch predictor fixes/cleanup. It works more correctly now and supports both local and tournament predictors.
cpu/o3/2bit_local_pred.cc: Branch predictor cleanup/fixup. Rename this to LocalBP. cpu/o3/2bit_local_pred.hh: Rename to LocalBP, update to support changes to BPredUnit, include comments. cpu/o3/alpha_cpu_builder.cc: Support extra parameters to the branch predictor. Now it takes in a parameter to tell it which branch predictor it is using, the local or the tournament predictor. cpu/o3/alpha_params.hh: Add in extra parameter for the branch predictor type. cpu/o3/bpred_unit.cc: Branch predictor fixup/cleanup. Rename it to BPredUnit. cpu/o3/bpred_unit.hh: Branch predictor fixup/cleanup. Now supports both the local and tournament predictors, and stores the branch predictor update state. cpu/o3/bpred_unit_impl.hh: Branch predictor overhaul. Now supports both the local and tournament predictors. cpu/o3/cpu_policy.hh: cpu/ozone/ozone_impl.hh: cpu/ozone/simple_impl.hh: Reflect the class name change. cpu/o3/decode_impl.hh: Be sure to set the predicted target as well so we don't squash twice. cpu/o3/tournament_pred.cc: cpu/o3/tournament_pred.hh: Fixes to the tournament predictor. cpu/ozone/simple_params.hh: Include parameter for the branch predictor type. python/m5/objects/AlphaFullCPU.py: python/m5/objects/OzoneCPU.py: Include the parameter for the branch predictor type. --HG-- extra : convert_revision : 34afebb3b40b47accb12558e439ee4cb03df5e64
Diffstat (limited to 'cpu/ozone')
-rw-r--r--cpu/ozone/ozone_impl.hh2
-rw-r--r--cpu/ozone/simple_impl.hh2
-rw-r--r--cpu/ozone/simple_params.hh30
3 files changed, 30 insertions, 4 deletions
diff --git a/cpu/ozone/ozone_impl.hh b/cpu/ozone/ozone_impl.hh
index 1f543ec6e..9dc50c1fb 100644
--- a/cpu/ozone/ozone_impl.hh
+++ b/cpu/ozone/ozone_impl.hh
@@ -54,7 +54,7 @@ struct OzoneImpl {
// Would like to put these into their own area.
// typedef NullPredictor BranchPred;
- typedef TwobitBPredUnit<OzoneImpl> BranchPred;
+ typedef BPredUnit<OzoneImpl> BranchPred;
typedef FrontEnd<OzoneImpl> FrontEnd;
// Will need IQ, LSQ eventually
typedef LWBackEnd<OzoneImpl> BackEnd;
diff --git a/cpu/ozone/simple_impl.hh b/cpu/ozone/simple_impl.hh
index 961bf2ea9..26845271a 100644
--- a/cpu/ozone/simple_impl.hh
+++ b/cpu/ozone/simple_impl.hh
@@ -51,7 +51,7 @@ struct SimpleImpl {
// Would like to put these into their own area.
// typedef NullPredictor BranchPred;
- typedef TwobitBPredUnit<SimpleImpl> BranchPred;
+ typedef BPredUnit<SimpleImpl> BranchPred;
typedef FrontEnd<SimpleImpl> FrontEnd;
// Will need IQ, LSQ eventually
typedef InorderBackEnd<SimpleImpl> BackEnd;
diff --git a/cpu/ozone/simple_params.hh b/cpu/ozone/simple_params.hh
index 647da1781..7b5c6f67b 100644
--- a/cpu/ozone/simple_params.hh
+++ b/cpu/ozone/simple_params.hh
@@ -1,4 +1,30 @@
-
+/*
+ * Copyright (c) 2006 The Regents of The University of Michigan
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met: redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer;
+ * redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution;
+ * neither the name of the copyright holders nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef __CPU_OZONE_SIMPLE_PARAMS_HH__
#define __CPU_OZONE_SIMPLE_PARAMS_HH__
@@ -29,7 +55,6 @@ class SimpleParams : public BaseCPU::Params
AlphaITB *itb; AlphaDTB *dtb;
#else
std::vector<Process *> workload;
-// Process *process;
#endif // FULL_SYSTEM
//Page Table
@@ -103,6 +128,7 @@ class SimpleParams : public BaseCPU::Params
//
// Branch predictor (BP & BTB)
//
+ std::string predType;
unsigned localPredictorSize;
unsigned localCtrBits;
unsigned localHistoryTableSize;