Go to the documentation of this file.
33 #ifndef __MEM_CACHE_COMPRESSORS_BASE_DELTA_HH__
34 #define __MEM_CACHE_COMPRESSORS_BASE_DELTA_HH__
44 struct BaseDictionaryCompressorParams;
45 struct Base64Delta8Params;
46 struct Base64Delta16Params;
47 struct Base64Delta32Params;
48 struct Base32Delta8Params;
49 struct Base32Delta16Params;
50 struct Base16Delta8Params;
64 template <
class BaseType, std::
size_t DeltaSizeBits>
94 Factory<PatternM, PatternX>;
96 std::unique_ptr<typename DictionaryCompressor<BaseType>::Pattern>
99 const int match_location)
const override
101 return PatternFactory::getPattern(bytes, dict_bytes, match_location);
107 static std::map<int, std::string> pattern_names = {
111 return pattern_names[number];
118 std::unique_ptr<Base::CompressionData>
compress(
123 typedef BaseDictionaryCompressorParams
Params;
128 template <
class BaseType, std::
size_t DeltaSizeBits>
138 match_location, bytes)
143 template <
class BaseType, std::
size_t DeltaSizeBits>
208 #endif //__MEM_CACHE_COMPRESSORS_BASE_DELTA_HH__
Base class for all base-delta-immediate compressors.
static constexpr int DEFAULT_MAX_NUM_BASES
Base64Delta32(const Params *p)
Base64Delta16Params Params
typename DictionaryCompressor< BaseType >::template Factory< PatternM, PatternX > PatternFactory
Convenience factory declaration.
typename DictionaryCompressor< uint64_t >::DictionaryEntry DictionaryEntry
void resetDictionary() override
Clear all dictionary entries.
Base16Delta8(const Params *p)
Base64Delta16(const Params *p)
Base32Delta8Params Params
std::unique_ptr< Base::CompressionData > compress(const std::vector< Base::Chunk > &chunks, Cycles &comp_lat, Cycles &decomp_lat) override
Apply the compression process to the cache line.
BaseDelta(const Params *p)
void addToDictionary(DictionaryEntry data) override
std::unique_ptr< typename DictionaryCompressor< BaseType >::Pattern > getPattern(const DictionaryEntry &bytes, const DictionaryEntry &dict_bytes, const int match_location) const override
A template version of the dictionary compressor that allows to choose the dictionary size.
Base32Delta8(const Params *p)
Base64Delta8(const Params *p)
BaseCacheCompressorParams Params
BaseDictionaryCompressorParams Params
PatternNumber
The patterns proposed in the paper.
Base16Delta8Params Params
Base32Delta16Params Params
Overload hash function for BasicBlockRange type.
Cycles is a wrapper class for representing cycle counts, i.e.
Base64Delta32Params Params
PatternM(const DictionaryEntry bytes, const int match_location)
std::string getName(int number) const override
Get meta-name assigned to the given pattern.
uint64_t getNumPatterns() const override
Trick function to get the number of patterns.
Base32Delta16(const Params *p)
PatternX(const DictionaryEntry bytes, const int match_location)
Base64Delta8Params Params
Generated on Wed Sep 30 2020 14:02:12 for gem5 by doxygen 1.8.17