gem5
v20.1.0.0
|
#include <array>
#include <cstdint>
#include <map>
#include <memory>
#include <string>
#include <type_traits>
#include <vector>
#include "base/statistics.hh"
#include "base/types.hh"
#include "mem/cache/compressors/base.hh"
Go to the source code of this file.
Classes | |
class | Compressor::BaseDictionaryCompressor |
struct | Compressor::BaseDictionaryCompressor::DictionaryStats |
class | Compressor::DictionaryCompressor< T > |
A template version of the dictionary compressor that allows to choose the dictionary size. More... | |
class | Compressor::DictionaryCompressor< T >::MaskedPattern< mask > |
A pattern that compares masked values against dictionary entries. More... | |
class | Compressor::DictionaryCompressor< T >::MaskedValuePattern< value, mask > |
A pattern that compares masked values to a masked portion of a fixed value. More... | |
class | Compressor::DictionaryCompressor< T >::LocatedMaskedPattern< mask, location > |
A pattern that narrows the MaskedPattern by allowing a only single possible dictionary entry to be matched against. More... | |
class | Compressor::DictionaryCompressor< T >::RepeatedValuePattern< RepT > |
A pattern that checks if dictionary entry sized values are solely composed of multiple copies of a single value. More... | |
class | Compressor::DictionaryCompressor< T >::DeltaPattern< DeltaSizeBits > |
A pattern that checks whether the difference of the value and the dictionary entries' is below a certain threshold. More... | |
struct | Compressor::DictionaryCompressor< T >::Factory< Head, Tail > |
Create a factory to determine if input matches a pattern. More... | |
struct | Compressor::DictionaryCompressor< T >::Factory< Head > |
Specialization to end the recursion. More... | |
class | Compressor::DictionaryCompressor< T >::Pattern |
The compressed data is composed of multiple pattern entries. More... | |
class | Compressor::DictionaryCompressor< T >::CompData |
class | Compressor::DictionaryCompressor< T >::UncompressedPattern |
A pattern containing the original uncompressed data. More... | |
class | Compressor::DictionaryCompressor< T >::MaskedPattern< mask > |
A pattern that compares masked values against dictionary entries. More... | |
class | Compressor::DictionaryCompressor< T >::MaskedValuePattern< value, mask > |
A pattern that compares masked values to a masked portion of a fixed value. More... | |
class | Compressor::DictionaryCompressor< T >::LocatedMaskedPattern< mask, location > |
A pattern that narrows the MaskedPattern by allowing a only single possible dictionary entry to be matched against. More... | |
class | Compressor::DictionaryCompressor< T >::RepeatedValuePattern< RepT > |
A pattern that checks if dictionary entry sized values are solely composed of multiple copies of a single value. More... | |
class | Compressor::DictionaryCompressor< T >::DeltaPattern< DeltaSizeBits > |
A pattern that checks whether the difference of the value and the dictionary entries' is below a certain threshold. More... | |
Namespaces | |
Compressor | |
Definition of a dictionary based cache compressor. Each entry is compared against a dictionary to search for matches.
The dictionary is composed of 32-bit entries, and the comparison is done byte per byte.
The patterns are implemented as individual classes that have a checking function isPattern(), to determine if the data fits the pattern, and a decompress() function, which decompresses the contents of a pattern. Every new pattern must inherit from the Pattern class and be added to the patternFactory.
Definition in file dictionary_compressor.hh.