mem-cache: Isolate compression bit
The compression bit does not belong with the coherence bits. Change-Id: I6e9f201a9961b8c6051ba599f051a444d585f0e4 Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br> Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/35700 Reviewed-by: Jason Lowe-Power <power.jg@gmail.com> 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
98d1020416
commit
28d8594435
6
src/mem/cache/cache_blk.hh
vendored
6
src/mem/cache/cache_blk.hh
vendored
@@ -69,14 +69,12 @@ enum CacheBlkStatusBits : unsigned {
|
||||
BlkReadable = 0x04,
|
||||
/** dirty (modified) */
|
||||
BlkDirty = 0x08,
|
||||
/** block holds compressed data */
|
||||
BlkCompressed = 0x80
|
||||
};
|
||||
|
||||
/**
|
||||
* A Basic Cache block.
|
||||
* Contains information regarding its coherence, prefetching and compression
|
||||
* status, as well as a pointer to its data.
|
||||
* Contains information regarding its coherence, prefetching status, as
|
||||
* well as a pointer to its data.
|
||||
*/
|
||||
class CacheBlk : public TaggedEntry
|
||||
{
|
||||
|
||||
15
src/mem/cache/tags/super_blk.cc
vendored
15
src/mem/cache/tags/super_blk.cc
vendored
@@ -37,26 +37,26 @@
|
||||
#include "base/logging.hh"
|
||||
|
||||
CompressionBlk::CompressionBlk()
|
||||
: SectorSubBlk(), _size(0), _decompressionLatency(0)
|
||||
: SectorSubBlk(), _size(0), _decompressionLatency(0), _compressed(false)
|
||||
{
|
||||
}
|
||||
|
||||
bool
|
||||
CompressionBlk::isCompressed() const
|
||||
{
|
||||
return (status & BlkCompressed) != 0;
|
||||
return _compressed;
|
||||
}
|
||||
|
||||
void
|
||||
CompressionBlk::setCompressed()
|
||||
{
|
||||
status |= BlkCompressed;
|
||||
_compressed = true;
|
||||
}
|
||||
|
||||
void
|
||||
CompressionBlk::setUncompressed()
|
||||
{
|
||||
status &= ~BlkCompressed;
|
||||
_compressed = false;
|
||||
}
|
||||
|
||||
std::size_t
|
||||
@@ -83,6 +83,13 @@ CompressionBlk::setDecompressionLatency(const Cycles lat)
|
||||
_decompressionLatency = lat;
|
||||
}
|
||||
|
||||
void
|
||||
CompressionBlk::invalidate()
|
||||
{
|
||||
SectorSubBlk::invalidate();
|
||||
setUncompressed();
|
||||
}
|
||||
|
||||
std::string
|
||||
CompressionBlk::print() const
|
||||
{
|
||||
|
||||
5
src/mem/cache/tags/super_blk.hh
vendored
5
src/mem/cache/tags/super_blk.hh
vendored
@@ -59,6 +59,9 @@ class CompressionBlk : public SectorSubBlk
|
||||
*/
|
||||
Cycles _decompressionLatency;
|
||||
|
||||
/** Compression bit. */
|
||||
bool _compressed;
|
||||
|
||||
public:
|
||||
CompressionBlk();
|
||||
CompressionBlk(const CompressionBlk&) = delete;
|
||||
@@ -110,6 +113,8 @@ class CompressionBlk : public SectorSubBlk
|
||||
*/
|
||||
void setDecompressionLatency(const Cycles lat);
|
||||
|
||||
void invalidate() override;
|
||||
|
||||
/**
|
||||
* Pretty-print sector offset and other CacheBlk information.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user