diff options
author | Ali Saidi <Ali.Saidi@ARM.com> | 2011-08-19 15:08:07 -0500 |
---|---|---|
committer | Ali Saidi <Ali.Saidi@ARM.com> | 2011-08-19 15:08:07 -0500 |
commit | b6203360ef684a8dc32981221336f5d216ce2668 (patch) | |
tree | e4c8e7b374b2685f19016b0f3e79633a858ef8d2 /src/cpu/o3/mem_dep_unit_impl.hh | |
parent | 5f425b8bd1ac70b61fc57b7ec44c52cd7d8de9fb (diff) | |
download | gem5-b6203360ef684a8dc32981221336f5d216ce2668.tar.xz |
LSQ: Set store predictor to periodically clear itself as recommended in the storesets paper.
This patch improves performance by as much as 10% on some spec benchmarks.
Diffstat (limited to 'src/cpu/o3/mem_dep_unit_impl.hh')
-rw-r--r-- | src/cpu/o3/mem_dep_unit_impl.hh | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/cpu/o3/mem_dep_unit_impl.hh b/src/cpu/o3/mem_dep_unit_impl.hh index 0208a622e..d30dcbd3d 100644 --- a/src/cpu/o3/mem_dep_unit_impl.hh +++ b/src/cpu/o3/mem_dep_unit_impl.hh @@ -45,8 +45,10 @@ MemDepUnit<MemDepPred, Impl>::MemDepUnit() template <class MemDepPred, class Impl> MemDepUnit<MemDepPred, Impl>::MemDepUnit(DerivO3CPUParams *params) : _name(params->name + ".memdepunit"), - depPred(params->SSITSize, params->LFSTSize), loadBarrier(false), - loadBarrierSN(0), storeBarrier(false), storeBarrierSN(0), iqPtr(NULL) + depPred(params->store_set_clear_period, params->SSITSize, + params->LFSTSize), + loadBarrier(false), loadBarrierSN(0), storeBarrier(false), + storeBarrierSN(0), iqPtr(NULL) { DPRINTF(MemDepUnit, "Creating MemDepUnit object.\n"); } @@ -85,7 +87,8 @@ MemDepUnit<MemDepPred, Impl>::init(DerivO3CPUParams *params, ThreadID tid) _name = csprintf("%s.memDep%d", params->name, tid); id = tid; - depPred.init(params->SSITSize, params->LFSTSize); + depPred.init(params->store_set_clear_period, params->SSITSize, + params->LFSTSize); } template <class MemDepPred, class Impl> |