Searched refs:BaseCacheCompressor (Results 1 - 9 of 9) sorted by relevance

/gem5/src/mem/cache/compressors/
H A DCompressors.py33 class BaseCacheCompressor(SimObject): class in inherits:SimObject
34 type = 'BaseCacheCompressor'
40 class BDI(BaseCacheCompressor):
49 class CPack(BaseCacheCompressor):
H A Dbase.cc43 #include "params/BaseCacheCompressor.hh"
48 BaseCacheCompressor::CompressionData::CompressionData()
53 BaseCacheCompressor::CompressionData::~CompressionData()
58 BaseCacheCompressor::CompressionData::setSizeBits(std::size_t size)
64 BaseCacheCompressor::CompressionData::getSizeBits() const
70 BaseCacheCompressor::CompressionData::getSize() const
75 BaseCacheCompressor::BaseCacheCompressor(const Params *p) function in class:BaseCacheCompressor
81 BaseCacheCompressor::compress(const uint64_t* data, Cycles& comp_lat,
114 BaseCacheCompressor
[all...]
H A Dbase.hh54 class BaseCacheCompressor : public SimObject { class in inherits:SimObject
110 BaseCacheCompressor(const Params *p);
115 virtual ~BaseCacheCompressor() {};
159 class BaseCacheCompressor::CompressionData {
H A Dbdi.hh53 class BDI : public BaseCacheCompressor
145 std::unique_ptr<BaseCacheCompressor::CompressionData> compress(
155 void decompress(const BaseCacheCompressor::CompressionData* comp_data,
H A Dcpack.cc53 : BaseCacheCompressor(p), dictionarySize(2*blkSize/8)
110 std::unique_ptr<BaseCacheCompressor::CompressionData>
207 BaseCacheCompressor::regStats();
H A Dbdi.cc296 : BaseCacheCompressor(p), useMoreCompressors(p->use_more_compressors),
337 BDI::decompress(const BaseCacheCompressor::CompressionData* comp_data,
345 std::unique_ptr<BaseCacheCompressor::CompressionData>
459 BaseCacheCompressor::regStats();
281 assert(delta_index < deltas.size()); const TD delta = deltas[delta_index]; const int base_index = bitMask[delta_index]; assert(base_index < bases.size()); const TB base = bases[base_index]; value <<= base_size_bits; value |= static_cast<uint64_t>((base + delta) & mask); } return value; } BDI::BDI(const Params *p) : BaseCacheCompressor(p), useMoreCompressors(p->use_more_compressors), qwordsPerCacheLine(blkSize/BYTES_PER_QWORD) { static_assert(sizeof(ENCODING_NAMES)/sizeof(char*) == NUM_ENCODINGS, �); } bool BDI::isZeroPackable(const uint64_t* data) const { return std::all_of(data, data + qwordsPerCacheLine, [](const uint64_t entry){ return entry == 0; }); } bool BDI::isSameValuePackable(const uint64_t* data) const { const uint64_t rep_value = data[0]; return std::all_of(data, data + qwordsPerCacheLine, [rep_value](const uint64_t entry) {return entry == rep_value;}); } template <class TB, class TD> std::unique_ptr<BDI::BDICompData> BDI::tryCompress(const uint64_t* data, const uint8_t encoding) const { auto temp_data = std::unique_ptr<BDICompDataBaseDelta<TB, TD>>( new BDICompDataBaseDelta<TB, TD>(encoding, blkSize)); if (temp_data->compress(data, blkSize)) { return std::move(temp_data); } else { return std::unique_ptr<BDICompData>{}; } } void BDI::decompress(const BaseCacheCompressor::CompressionData* comp_data, uint64_t* data) { for (std::size_t i = 0; i < qwordsPerCacheLine; i++) data[i] = static_cast<const BDICompData*>(comp_data)->access(i); } std::unique_ptr<BaseCacheCompressor::CompressionData> BDI::compress(const uint64_t* data, Cycles& comp_lat, Cycles& decomp_lat) { std::unique_ptr<BDICompData> bdi_data; if (isZeroPackable(data)) { bdi_data = std::unique_ptr<BDICompData>(new BDICompDataZeros()); comp_lat = Cycles(qwordsPerCacheLine); } else if (isSameValuePackable(data)) { bdi_data = std::unique_ptr<BDICompData>(new BDICompDataRep(data[0])); comp_lat = Cycles(qwordsPerCacheLine); } else { bdi_data = std::unique_ptr<BDICompData>( new BDICompDataUncompressed(data, blkSize)); int base_delta_ratio = 2; for (int ratio = 8; ratio >= base_delta_ratio; ratio/=2) { for (int base_size = 8; base_size >= ratio; base_size/=2) argument
H A Dcpack.hh58 class CPack : public BaseCacheCompressor
182 std::unique_ptr<BaseCacheCompressor::CompressionData> compress(
/gem5/src/mem/cache/
H A DCache.py47 from m5.objects.Compressors import BaseCacheCompressor
108 compressor = Param.BaseCacheCompressor(NULL, "Cache compressor.")
H A Dbase.hh327 BaseCacheCompressor* compressor;

Completed in 19 milliseconds