39#ifndef __MEM_CACHE_COMPRESSORS_FPCD_HH__
40#define __MEM_CACHE_COMPRESSORS_FPCD_HH__
122 static std::map<PatternNumber, std::string> pattern_names = {
138 std::unique_ptr<Pattern>
140 const int match_location)
const override
142 return PatternFactory::getPattern(bytes, dict_bytes, match_location);
158 match_location, bytes, true)
167 : MaskedValuePattern<0xFFFFFFFF, 0xFFFFFFFF>(
FFFF, 0x1,
174 :
public LocatedMaskedPattern<0xFFFFFFFF, previousIndex>
178 const int match_location)
186 :
public LocatedMaskedPattern<0xFFFFFFFF, penultimateIndex>
190 const int match_location)
202 match_location, bytes, true)
212 match_location, bytes, true)
222 match_location, bytes, true)
228 :
public LocatedMaskedPattern<0xFFFFFF00, previousIndex>
232 const int match_location)
240 :
public LocatedMaskedPattern<0xFFFFFF00, penultimateIndex>
244 const int match_location)
256 match_location, bytes, true)
266 match_location, bytes, true)
275 : MaskedValuePattern<0xFFFFFFFF, 0xFFFF0000>(
FFXX, 0xB,
286 match_location, bytes, true)
292 :
public LocatedMaskedPattern<0xFFFF0000, previousIndex>
296 const int match_location)
304 :
public LocatedMaskedPattern<0xFFFF0000, penultimateIndex>
308 const int match_location)
Defines global host-dependent types: Counter, Tick, and (indirectly) {int,uint}{8,...
A template version of the dictionary compressor that allows to choose the dictionary size.
std::array< uint8_t, sizeof(T)> DictionaryEntry
Convenience typedef for a dictionary entry.
PatternFFFF(const DictionaryEntry bytes, const int match_location)
PatternFFXX(const DictionaryEntry bytes, const int match_location)
PatternMMMMPenultimate(const DictionaryEntry bytes, const int match_location)
PatternMMMMPrevious(const DictionaryEntry bytes, const int match_location)
PatternMMMXPenultimate(const DictionaryEntry bytes, const int match_location)
PatternMMMXPrevious(const DictionaryEntry bytes, const int match_location)
PatternMMXXPenultimate(const DictionaryEntry bytes, const int match_location)
PatternMMXXPrevious(const DictionaryEntry bytes, const int match_location)
PatternRRRR(const DictionaryEntry bytes, const int match_location)
PatternXXXX(const DictionaryEntry bytes, const int match_location)
PatternXXZZ(const DictionaryEntry bytes, const int match_location)
PatternXZZZ(const DictionaryEntry bytes, const int match_location)
PatternZXZX(const DictionaryEntry bytes, const int match_location)
PatternZZXX(const DictionaryEntry bytes, const int match_location)
PatternZZZX(const DictionaryEntry bytes, const int match_location)
PatternZZZZ(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.
static constexpr int penultimateIndex
Index of the penultimate dictionary entry.
static constexpr int prefixSize
Number of bits in a FPCD pattern prefix.
DictionaryCompressor< uint32_t >::DictionaryEntry DictionaryEntry
Factory< PatternZZZZ, PatternFFFF, PatternMMMMPrevious, PatternMMMMPenultimate, PatternZZZX, PatternXZZZ, PatternRRRR, PatternMMMXPrevious, PatternMMMXPenultimate, PatternZZXX, PatternZXZX, PatternFFXX, PatternXXZZ, PatternMMXXPrevious, PatternMMXXPenultimate, PatternXXXX > PatternFactory
Convenience factory declaration.
static constexpr int previousIndex
Index of the previous dictionary entry.
std::unique_ptr< Pattern > getPattern(const DictionaryEntry &bytes, const DictionaryEntry &dict_bytes, const int match_location) const override
PatternNumber
The patterns proposed in the paper.
void addToDictionary(DictionaryEntry data) override
Definition of a dictionary based cache compressor.
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.