cache: Make caches sharing aware and add occupancy stats.
authorLisa Hsu <Lisa.Hsu@amd.com>
Tue, 23 Feb 2010 17:34:22 +0000 (09:34 -0800)
committerLisa Hsu <Lisa.Hsu@amd.com>
Tue, 23 Feb 2010 17:34:22 +0000 (09:34 -0800)
commit1d3228481f3c5f9a4ad041cd21d57139f5f8f331
tree7006a0d99e1f278df5ff88b70c4940230fe9e768
parentbe4cf50c5a6a5761f6474fb9f85a9c241101f3ce
cache: Make caches sharing aware and add occupancy stats.
On the config end, if a shared L2 is created for the system, it is
parameterized to have n sharers as defined by option.num_cpus. In addition to
making the cache sharing aware so that discriminating tag policies can make use
of context_ids to make decisions, I added an occupancy AverageStat and an occ %
stat to each cache so that you could know which contexts are occupying how much
cache on average, both in terms of blocks and percentage. Note that since
devices have context_id -1, having an array of occ stats that correspond to
each context_id will break here, so in FS mode I add an extra bucket for device
blocks. This bucket is explicitly not added in SE mode in order to not only
avoid ugliness in the stats.txt file, but to avoid broken stats (some formulas
break when a bucket is 0).
20 files changed:
configs/example/se.py
src/mem/cache/BaseCache.py
src/mem/cache/base.cc
src/mem/cache/base.hh
src/mem/cache/blk.hh
src/mem/cache/cache_impl.hh
src/mem/cache/tags/base.cc
src/mem/cache/tags/base.hh
src/mem/cache/tags/fa_lru.cc
src/mem/cache/tags/fa_lru.hh
src/mem/cache/tags/iic.cc
src/mem/cache/tags/iic.hh
src/mem/cache/tags/lru.cc
tests/configs/memtest.py
tests/configs/o3-timing-mp.py
tests/configs/simple-atomic-mp.py
tests/configs/simple-timing-mp.py
tests/configs/tsunami-o3-dual.py
tests/configs/tsunami-simple-atomic-dual.py
tests/configs/tsunami-simple-timing-dual.py