diff options
author | Mrinmoy Ghosh <mrinmoy.ghosh@arm.com> | 2012-02-12 16:07:38 -0600 |
---|---|---|
committer | Mrinmoy Ghosh <mrinmoy.ghosh@arm.com> | 2012-02-12 16:07:38 -0600 |
commit | 7e104a1af235823e3d641a972ea920937f7ec67d (patch) | |
tree | d109d98f09652ed11b08dfe0d93a531b28d14df7 /src/mem/cache/prefetch/base.cc | |
parent | b7cf64398f16e93f118060bd49313f1d37f0e324 (diff) | |
download | gem5-7e104a1af235823e3d641a972ea920937f7ec67d.tar.xz |
prefetcher: Make prefetcher a sim object instead of it being a parameter on cache
Diffstat (limited to 'src/mem/cache/prefetch/base.cc')
-rw-r--r-- | src/mem/cache/prefetch/base.cc | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/src/mem/cache/prefetch/base.cc b/src/mem/cache/prefetch/base.cc index 0f9290186..834787db6 100644 --- a/src/mem/cache/prefetch/base.cc +++ b/src/mem/cache/prefetch/base.cc @@ -43,10 +43,10 @@ #include "mem/cache/base.hh" #include "mem/request.hh" -BasePrefetcher::BasePrefetcher(const BaseCacheParams *p) - : size(p->prefetcher_size), pageStop(!p->prefetch_past_page), - serialSquash(p->prefetch_serial_squash), - onlyData(p->prefetch_data_accesses_only) +BasePrefetcher::BasePrefetcher(const Params *p) + : SimObject(p), size(p->size), latency(p->latency), degree(p->degree), + useContextId(p->use_cpu_id), pageStop(!p->cross_pages), + serialSquash(p->serial_squash), onlyData(p->data_accesses_only) { } @@ -55,54 +55,53 @@ BasePrefetcher::setCache(BaseCache *_cache) { cache = _cache; blkSize = cache->getBlockSize(); - _name = cache->name() + "-pf"; } void -BasePrefetcher::regStats(const std::string &name) +BasePrefetcher::regStats() { pfIdentified - .name(name + ".prefetcher.num_hwpf_identified") + .name(name() + ".prefetcher.num_hwpf_identified") .desc("number of hwpf identified") ; pfMSHRHit - .name(name + ".prefetcher.num_hwpf_already_in_mshr") + .name(name() + ".prefetcher.num_hwpf_already_in_mshr") .desc("number of hwpf that were already in mshr") ; pfCacheHit - .name(name + ".prefetcher.num_hwpf_already_in_cache") + .name(name() + ".prefetcher.num_hwpf_already_in_cache") .desc("number of hwpf that were already in the cache") ; pfBufferHit - .name(name + ".prefetcher.num_hwpf_already_in_prefetcher") + .name(name() + ".prefetcher.num_hwpf_already_in_prefetcher") .desc("number of hwpf that were already in the prefetch queue") ; pfRemovedFull - .name(name + ".prefetcher.num_hwpf_evicted") + .name(name() + ".prefetcher.num_hwpf_evicted") .desc("number of hwpf removed due to no buffer left") ; pfRemovedMSHR - .name(name + ".prefetcher.num_hwpf_removed_MSHR_hit") + .name(name() + ".prefetcher.num_hwpf_removed_MSHR_hit") .desc("number of hwpf removed because MSHR allocated") ; pfIssued - .name(name + ".prefetcher.num_hwpf_issued") + .name(name() + ".prefetcher.num_hwpf_issued") .desc("number of hwpf issued") ; pfSpanPage - .name(name + ".prefetcher.num_hwpf_span_page") + .name(name() + ".prefetcher.num_hwpf_span_page") .desc("number of hwpf spanning a virtual page") ; pfSquashed - .name(name + ".prefetcher.num_hwpf_squashed_from_miss") + .name(name() + ".prefetcher.num_hwpf_squashed_from_miss") .desc("number of hwpf that got squashed due to a miss " "aborting calculation time") ; @@ -276,3 +275,5 @@ BasePrefetcher::samePage(Addr a, Addr b) { return roundDown(a, TheISA::VMPageSize) == roundDown(b, TheISA::VMPageSize); } + + |