The design for LZ decompression kernel is shown in the following figure:
The following is a description of the LZ based decompression kernel design process:
- The overall design remains similar to the compression kernel design. Input data is read from the global memory, converted to stream and distributed across the decompression engines in a round robin fashion.
- Each decompression engine module contains multiple sub-modules processing 1 byte per clock cycle. The modules work in a pipelined fashion, therefore, the throughput of each decompression engine is 1 byte per clock cycle.
The decompression engine design also remains same for all LZ based algorithms. The only difference is the Decoding sub-module in decompression engine module, which is unique for each algorithm.