Core Concepts
LZ4圧縮アルゴリズムの並列実装における2つの主要な課題を解決し、スループットを大幅に向上させる新しい手法を提案する。
Abstract
本論文では、Lempel-Ziv 4 (LZ4)圧縮アルゴリズムのハードウェア実装における2つの主要な課題を明らかにし、それらに対する解決策を提案している。
- 単一カーネルの設計では、理論的な並列性が十分に発揮されていない。
- フィードバックループの存在により、クロック周波数の上限が制限されている。
提案手法では、以下の2つの対策を講じている:
- 各並列化ウィンドウを1つのマッチに制限することで、実際の並列性を理論的な並列性と一致させる。
- 最大マッチ長を制限することで、アーキテクチャ内のフィードバックループを排除し、周波数を大幅に向上させる。
これらの手法を組み合わせた結果、提案アーキテクチャはFPGAで最大16.10 Gb/sのスループットを達成し、従来の最高スループットに比べて2.648倍の向上を示した。一方で、圧縮率は公式ソフトウェア実装に比べて4.93%から11.68%の範囲で低下する。
Stats
LZ4圧縮アーキテクチャの並列化ウィンドウサイズを8バイトに設定した場合、圧縮率は64エントリのハッシュテーブルで1.266、8192エントリのハッシュテーブルで1.805となる。
最大マッチ長を36バイトに制限した場合、圧縮率は64エントリのハッシュテーブルで1.214、8192エントリのハッシュテーブルで1.685となる。
Quotes
"LZ4は、圧縮速度が優れているため、他のLZアルゴリズムに比べて有利である。"
"現在の並列アーキテクチャでは、拡張マッチ段階での並列性が低下し、全体的なスループットが制限されている。"
"最大マッチ長を制限することで、アーキテクチャがフィードフォワード型になり、パイプラインを挿入してクロック周波数を向上させることができる。"