gem5  v20.1.0.0
Classes | Namespaces
dictionary_compressor.hh File Reference
#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
 

Detailed Description

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.


Generated on Wed Sep 30 2020 14:02:19 for gem5 by doxygen 1.8.17