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
158 match_location, bytes, true)
178 const int match_location)
190 const int match_location)
202 match_location, bytes, true)
212 match_location, bytes, true)
222 match_location, bytes, true)
232 const int match_location)
244 const int match_location)
256 match_location, bytes, true)
266 match_location, bytes, true)
286 match_location, bytes, true)
296 const int match_location)
308 const int match_location)
Defines global host-dependent types: Counter, Tick, and (indirectly) {int,uint}{8,...
LocatedMaskedPattern(const int number, const uint64_t code, const uint64_t metadata_length, const int match_location, const DictionaryEntry bytes, const bool allocate=true)
MaskedValuePattern(const int number, const uint64_t code, const uint64_t metadata_length, const int match_location, const DictionaryEntry bytes, const bool allocate=false)
RepeatedValuePattern(const int number, const uint64_t code, const uint64_t metadata_length, const int match_location, const DictionaryEntry bytes, const bool allocate=true)
UncompressedPattern(const int number, const uint64_t code, const uint64_t metadata_length, const int match_location, const DictionaryEntry bytes)
std::array< uint8_t, sizeof(T)> DictionaryEntry
Convenience typedef for a dictionary entry.
DictionaryCompressor(const Params &p)
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 Arm Limited All rights reserved.
static std::unique_ptr< Pattern > getPattern(const DictionaryEntry &bytes, const DictionaryEntry &dict_bytes, const int match_location)