mem-cache: Allow moving data contractions
authorDaniel R. Carvalho <odanrc@yahoo.com.br>
Mon, 17 Jun 2019 15:41:09 +0000 (17:41 +0200)
committerDaniel Carvalho <odanrc@yahoo.com.br>
Thu, 12 Nov 2020 21:46:43 +0000 (21:46 +0000)
commitf6d2db4b93a93a0fb1f1c980b42f6cfa94e6e216
treeb54cfaa87a1a6c8309823e150da8dbd76bfe8a2c
parenta2b7f9544c3a9c9fbd251bb527e6e4e97ab68760
mem-cache: Allow moving data contractions

Data contractions happen when a block passes from a less compressed
(e.g., uncompressed) to a more compressed (e.g., compressed) state.

Some compaction methods enforce that a block can only be allocated
in a location matches an exact compression factor, thus on data
contractions such blocks must be moved to another location, or
they must be padded to fake a bigger size.

For compaction methods that do not have that limitation, performance
can be improved if the contracted block is moved to co-allocate with
another existing entry, since it frees up an entry.

Change-Id: I302bc561b897f9d3ce1426331fe4b5c2df76f4b5
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/36578
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
src/mem/cache/Cache.py
src/mem/cache/base.cc
src/mem/cache/base.hh