gem5 v24.0.0.0
|
Definition of a dictionary based cache compressor. More...
#include <array>
#include <cstdint>
#include <map>
#include <memory>
#include <string>
#include <type_traits>
#include <vector>
#include "base/bitfield.hh"
#include "base/statistics.hh"
#include "base/types.hh"
#include "mem/cache/compressors/base.hh"
Go to the source code of this file.
Classes | |
class | gem5::compression::BaseDictionaryCompressor |
struct | gem5::compression::BaseDictionaryCompressor::DictionaryStats |
class | gem5::compression::DictionaryCompressor< T > |
A template version of the dictionary compressor that allows to choose the dictionary size. More... | |
struct | gem5::compression::DictionaryCompressor< T >::Factory< Head, Tail > |
Create a factory to determine if input matches a pattern. More... | |
struct | gem5::compression::DictionaryCompressor< T >::Factory< Head > |
Specialization to end the recursion. More... | |
class | gem5::compression::DictionaryCompressor< T >::Pattern |
The compressed data is composed of multiple pattern entries. More... | |
class | gem5::compression::DictionaryCompressor< T >::CompData |
class | gem5::compression::DictionaryCompressor< T >::UncompressedPattern |
A pattern containing the original uncompressed data. More... | |
class | gem5::compression::DictionaryCompressor< T >::MaskedPattern< mask > |
A pattern that compares masked values against dictionary entries. More... | |
class | gem5::compression::DictionaryCompressor< T >::MaskedValuePattern< value, mask > |
A pattern that compares masked values to a masked portion of a fixed value. More... | |
class | gem5::compression::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 | gem5::compression::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 | gem5::compression::DictionaryCompressor< T >::DeltaPattern< DeltaSizeBits > |
A pattern that checks whether the difference of the value and the dictionary entries' is below a certain threshold. More... | |
class | gem5::compression::DictionaryCompressor< T >::SignExtendedPattern< N > |
A pattern that checks whether the value is an N bits sign-extended value, that is, all the MSB starting from the Nth are equal to the (N-1)th bit. More... | |
Namespaces | |
namespace | gem5 |
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved. | |
namespace | gem5::compression |
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.