mem-cache: Split Tags for indexing policies
authorDaniel R. Carvalho <odanrc@yahoo.com.br>
Fri, 9 Mar 2018 14:16:41 +0000 (15:16 +0100)
committerDaniel Carvalho <odanrc@yahoo.com.br>
Wed, 10 Oct 2018 18:17:42 +0000 (18:17 +0000)
commitf32882d4fc78af3747f81375dfd1ec3e37596c2b
tree19695aa226b552751fbb672efb95ee6e75819073
parent8f58d9fb87c521674f11c78b8939e5ffdf851d39
mem-cache: Split Tags for indexing policies

Split indexing functionality from tags, so that code duplication
is reduced when adding new classes that use different indexing
policies, such as set associative, skewed associative or other
hash-based policies.

An indexing policy defines the mapping between an address' set
and its physical location. For example, a conventional set assoc
cache maps an address to all ways in a set using an immutable
function, that is, a set x is always mapped to set x. However,
skewed assoc caches map an address to a different set for each way,
using a skewing function.

FALRU has been left unmodified as it is a specialization with its
own complexity.

Change-Id: I0838b41663f21eba0aeab7aeb7839e3703ca3324
Reviewed-on: https://gem5-review.googlesource.com/c/8885
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>
18 files changed:
src/mem/cache/tags/SConscript
src/mem/cache/tags/Tags.py
src/mem/cache/tags/base.cc
src/mem/cache/tags/base.hh
src/mem/cache/tags/base_set_assoc.cc
src/mem/cache/tags/base_set_assoc.hh
src/mem/cache/tags/indexing_policies/IndexingPolicies.py [new file with mode: 0644]
src/mem/cache/tags/indexing_policies/SConscript [new file with mode: 0644]
src/mem/cache/tags/indexing_policies/base.cc [new file with mode: 0644]
src/mem/cache/tags/indexing_policies/base.hh [new file with mode: 0644]
src/mem/cache/tags/indexing_policies/set_associative.cc [new file with mode: 0644]
src/mem/cache/tags/indexing_policies/set_associative.hh [new file with mode: 0644]
src/mem/cache/tags/indexing_policies/skewed_associative.cc [new file with mode: 0644]
src/mem/cache/tags/indexing_policies/skewed_associative.hh [new file with mode: 0644]
src/mem/cache/tags/sector_tags.cc
src/mem/cache/tags/sector_tags.hh
src/mem/cache/tags/skewed_assoc.cc [deleted file]
src/mem/cache/tags/skewed_assoc.hh [deleted file]