mem-cache: Make compression size threshold a percentage
By changing the parameter into a percentage, changing the block size will automatically reconfigure the size threshold. Also, change the default percentage to 50% to avoid storing blocks unlikely to co-allocate in compressed format. Change-Id: I1458f19db39becc2d40c00269132fea01770016f Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br> Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/33385 Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com> Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
committed by
Daniel Carvalho
parent
bc92a06cf5
commit
605a0917bb
6
src/mem/cache/compressors/Compressors.py
vendored
6
src/mem/cache/compressors/Compressors.py
vendored
@@ -37,9 +37,9 @@ class BaseCacheCompressor(SimObject):
|
||||
block_size = Param.Int(Parent.cache_line_size, "Block size in bytes")
|
||||
chunk_size_bits = Param.Unsigned(32,
|
||||
"Size of a parsing data chunk (in bits)")
|
||||
size_threshold = Param.Unsigned(Parent.cache_line_size, "Minimum size, "
|
||||
"in bytes, in which a block must be compressed to. Otherwise it is "
|
||||
"stored in its uncompressed state")
|
||||
size_threshold_percentage = Param.Percent(50,
|
||||
"Minimum percentage of the block size, a compressed block must "
|
||||
"achieve to be stored in compressed format")
|
||||
|
||||
class BaseDictionaryCompressor(BaseCacheCompressor):
|
||||
type = 'BaseDictionaryCompressor'
|
||||
|
||||
2
src/mem/cache/compressors/base.cc
vendored
2
src/mem/cache/compressors/base.cc
vendored
@@ -77,7 +77,7 @@ Base::CompressionData::getSize() const
|
||||
|
||||
Base::Base(const Params *p)
|
||||
: SimObject(p), blkSize(p->block_size), chunkSizeBits(p->chunk_size_bits),
|
||||
sizeThreshold(p->size_threshold),
|
||||
sizeThreshold((blkSize * p->size_threshold_percentage) / 100),
|
||||
stats(*this)
|
||||
{
|
||||
fatal_if(64 % chunkSizeBits,
|
||||
|
||||
Reference in New Issue
Block a user