@inproceedings{994ce1fc01304885bbdce6874103dbe1,
title = "Refine and recycle: A method to increase decompression parallelism",
abstract = "Rapid increases in storage bandwidth, combined with a desire for operating on large datasets interactively, drives the need for improvements in high-bandwidth decompression. Existing designs either process only one token per cycle or process multiple tokens per cycle with low area efficiency and/or low clock frequency. We propose two techniques to achieve high single-decoder throughput at improved efficiency by keeping only a single copy of the history data across multiple BRAMs and operating on each BRAM independently. A first stage efficiently refines the tokens into commands that operate on a single BRAM and steers the commands to the appropriate one. In the second stage, a relaxed execution model is used where each BRAM command executes immediately and those with invalid data are recycled to avoid stalls caused by the read-after-write dependency. We apply these techniques to Snappy decompression and implement a Snappy decompression accelerator on a CAPI2-attached FPGA platform equipped with a Xilinx VU3P FPGA. Experimental results show that our proposed method achieves up to 7.2 GB/s output throughput per decompressor, with each decompressor using 14.2% of the logic and 7% of the BRAM resources of the device. Therefore, a single decompressor can easily keep pace with an NVMe device (PCIe Gen3 x4) on a small FPGA, while a larger device, integrated on a host bridge adapter and instantiating multiple decompressors, can keep pace with the full OpenCAPI 3.0 bandwidth of 25 GB/s.",
keywords = "Acceleration, Decompression, FPGA, Snappy, decompression",
author = "Jian Fang and Jianyu Chen and Jinho Lee and Zaid Al-Ars and Hofstee, {H. Peter}",
year = "2019",
doi = "10.1109/ASAP.2019.00017",
language = "English",
isbn = "978-1-7281-1602-0",
series = "2019 IEEE 30TH INTERNATIONAL CONFERENCE ON APPLICATION-SPECIFIC SYSTEMS, ARCHITECTURES AND PROCESSORS (ASAP 2019)",
publisher = "IEEE",
pages = "272--280",
booktitle = "2019 IEEE 30th International Conference on Application-specific Systems, Architectures and Processors (ASAP)",
address = "United States",
note = "30th IEEE International Conference on Application-Specific Systems, Architectures and Processors, ASAP 2019 ; Conference date: 15-07-2019 Through 17-07-2019",
}