Searched refs:BaseCacheCompressor (Results 1 - 9 of 9) sorted by relevance
/gem5/src/mem/cache/compressors/ |
H A D | Compressors.py | 33 class BaseCacheCompressor(SimObject): class in inherits:SimObject 34 type = 'BaseCacheCompressor' 40 class BDI(BaseCacheCompressor): 49 class CPack(BaseCacheCompressor):
|
H A D | base.cc | 43 #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 D | base.hh | 54 class BaseCacheCompressor : public SimObject { class in inherits:SimObject 110 BaseCacheCompressor(const Params *p); 115 virtual ~BaseCacheCompressor() {}; 159 class BaseCacheCompressor::CompressionData {
|
H A D | bdi.hh | 53 class BDI : public BaseCacheCompressor 145 std::unique_ptr<BaseCacheCompressor::CompressionData> compress( 155 void decompress(const BaseCacheCompressor::CompressionData* comp_data,
|
H A D | cpack.cc | 53 : BaseCacheCompressor(p), dictionarySize(2*blkSize/8) 110 std::unique_ptr<BaseCacheCompressor::CompressionData> 207 BaseCacheCompressor::regStats();
|
H A D | bdi.cc | 296 : 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 D | cpack.hh | 58 class CPack : public BaseCacheCompressor 182 std::unique_ptr<BaseCacheCompressor::CompressionData> compress(
|
/gem5/src/mem/cache/ |
H A D | Cache.py | 47 from m5.objects.Compressors import BaseCacheCompressor 108 compressor = Param.BaseCacheCompressor(NULL, "Cache compressor.")
|
H A D | base.hh | 327 BaseCacheCompressor* compressor;
|
Completed in 17 milliseconds