Hardware Decompression Techniques for FPGA-Based Embedded Systems

In this work, we present hardware decompression accelerators for widening the bottleneck between slow nonvolatile memories on the one side and high-speed FPGA configuration interfaces and fast softcore CPUs on the other side. We discuss different compression algorithms suitable for a hardware accelerated decompression on FPGAs as well as on CPLDs. The algorithms will be investigated with respect to the achievable compression ratio, throughput, and hardware overhead. This leads to various decompressor implementations with one capable to decompress at high data rates of up to 400 megabytes per second under optimal conditions while only requiring slightly more than a hundred lookup tables. We will evaluate how these decompressors perform on configuration bitstreams for different FPGAs as well as for softcore CPU binaries.

[1]  Jürgen Teich,et al.  Bitstream Decompression for High Speed FPGA Configuration from Slow Memories , 2007, 2007 International Conference on Field-Programmable Technology.

[2]  I. Xilinx,et al.  Virtex-II Platform FPGA User Guide , 2002 .

[3]  Jürgen Teich,et al.  Platform-independent methodology for partial reconfiguration , 2004, CF '04.

[4]  Scott Hauck,et al.  Runlength compression techniques for FPGA configurations , 1999, Seventh Annual IEEE Symposium on Field-Programmable Custom Computing Machines (Cat. No.PR00375).

[5]  Zhiyuan Li,et al.  Configuration Compression for Virtex FPGAs , 2001, The 9th Annual IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM'01).

[6]  Tulika Mitra,et al.  Configuration bitstream compression for dynamically reconfigurable FPGAs , 2004, IEEE/ACM International Conference on Computer Aided Design, 2004. ICCAD-2004..

[7]  Jürgen Teich,et al.  The Erlangen slot machine: increasing flexibility in FPGA-based reconfigurable platforms , 2005, Proceedings. 2005 IEEE International Conference on Field-Programmable Technology, 2005..

[8]  David Salomon,et al.  Data Compression , 2000, Springer Berlin Heidelberg.

[9]  Jürgen Becker,et al.  Realtime configuration code decompression for dynamic FPGA self reconfiguration: evaluation and implementation , 2005, Int. J. Embed. Syst..

[10]  Abraham Lempel,et al.  A universal algorithm for sequential data compression , 1977, IEEE Trans. Inf. Theory.

[11]  James A. Storer,et al.  Data compression via textual substitution , 1982, JACM.

[12]  David Salomon,et al.  Data Compression: The Complete Reference , 2006 .

[13]  Viktor K. Prasanna,et al.  Configuration compression for FPGA-based embedded systems , 2005, IEEE Trans. Very Large Scale Integr. Syst..

[14]  Zhiyuan Li,et al.  Don't Care discovery for FPGA configuration compression , 1999, FPGA '99.

[15]  Jürgen Teich,et al.  Searching RC5-Keys with Distributed Reconfigurable Computing , 2006, ERSA.

[16]  Jürgen Teich,et al.  Real-Time Configuration Code Decompression for Dynamic FPGA Self-Reconfiguration , 2004, IEEE International Parallel and Distributed Processing Symposium.

[17]  Viktor K. Prasanna,et al.  Configuration compression for FPGA-based embedded systems , 2001, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[18]  David A. Huffman,et al.  A method for the construction of minimum-redundancy codes , 1952, Proceedings of the IRE.

[19]  J. Becker,et al.  Real-time configuration code decompression for dynamic FPGA self-reconfiguration , 2004, 18th International Parallel and Distributed Processing Symposium, 2004. Proceedings..