diff options
author | Kevin Lim <ktlim@umich.edu> | 2006-05-25 17:01:48 -0400 |
---|---|---|
committer | Kevin Lim <ktlim@umich.edu> | 2006-05-25 17:01:48 -0400 |
commit | 248bd2bb62861c8d77de4c8cfab6c6392bd85049 (patch) | |
tree | c1a290ab284bd45fa6d8062c250c9cbcada6ad0b /cpu/ozone | |
parent | 02aa549c9b1fd81be4bb1408cb97b92dc126e360 (diff) | |
download | gem5-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.hh | 2 | ||||
-rw-r--r-- | cpu/ozone/simple_impl.hh | 2 | ||||
-rw-r--r-- | cpu/ozone/simple_params.hh | 30 |
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; |