From a39af1f0ac6d324b4c206d4db18c39ea557bb931 Mon Sep 17 00:00:00 2001 From: "Daniel R. Carvalho" Date: Tue, 19 Jun 2018 17:08:35 +0200 Subject: mem-cache: Add compression and decompression calls Add a compressor to the base cache class and compress within block allocation and decompress on writebacks. This change does not implement data expansion (fat writes) yet, nor it adds the compression latency to the block write time. Change-Id: Ie36db65f7487c9b05ec4aedebc2c7651b4cb4821 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/11410 Tested-by: kokoro Reviewed-by: Nikos Nikoleris Maintainer: Nikos Nikoleris --- src/mem/cache/Cache.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/mem/cache/Cache.py') diff --git a/src/mem/cache/Cache.py b/src/mem/cache/Cache.py index b2f478472..7a28136b5 100644 --- a/src/mem/cache/Cache.py +++ b/src/mem/cache/Cache.py @@ -44,11 +44,11 @@ from m5.proxy import * from m5.SimObject import SimObject from m5.objects.ClockedObject import ClockedObject +from m5.objects.Compressors import BaseCacheCompressor from m5.objects.Prefetcher import BasePrefetcher from m5.objects.ReplacementPolicies import * from m5.objects.Tags import * - # Enum for cache clusivity, currently mostly inclusive or mostly # exclusive. class Clusivity(Enum): vals = ['mostly_incl', 'mostly_excl'] @@ -105,6 +105,8 @@ class BaseCache(ClockedObject): replacement_policy = Param.BaseReplacementPolicy(LRURP(), "Replacement policy") + compressor = Param.BaseCacheCompressor(NULL, "Cache compressor.") + sequential_access = Param.Bool(False, "Whether to access tags and data sequentially") -- cgit v1.2.3