mem-cache: Create CPack compressor
authorDaniel R. Carvalho <odanrc@yahoo.com.br>
Wed, 30 May 2018 12:31:06 +0000 (14:31 +0200)
committerDaniel Carvalho <odanrc@yahoo.com.br>
Wed, 17 Jul 2019 23:06:20 +0000 (23:06 +0000)
commit28059ffcdf50871b1be573c29a656da9473287d1
tree6d552c5cff47c6421a5951fc686ea0a4e7dac140
parent4dd475c1c0db6915f811a246c9e6fce8a61a6a77
mem-cache: Create CPack compressor

Implementation of C-Pack, as described in "C-Pack: A High-
Performance Microprocessor Cache Compression Algorithm".

C-Pack uses pattern matching schemes to detect and compress
frequently appearing data patterns. As in the original paper,
it divides the input in 32-bit words, and uses 6 patterns to
match with its dictionary.

For the patterns, each letter represents a byte: Z is a null
byte, M is a dictionary match, X is a new value. The patterns
are ZZZZ, XXXX, MMMM, MMXX, ZZZX, MMMX.

Change-Id: I2efc9db2c862620dcc1155300e39be558f9017e0
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/11105
Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com>
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
src/mem/cache/compressors/Compressors.py
src/mem/cache/compressors/SConscript
src/mem/cache/compressors/cpack.cc [new file with mode: 0644]
src/mem/cache/compressors/cpack.hh [new file with mode: 0644]