Selective Code Compression Scheme for Embedded Systems

The extensive usage of embedded systems involves running complex applications that require tightly limited resources such as memory and storage. One efficient way to satisfy the resource requirements is to reduce the code size through code compression. Our work describes a software-based code compression scheme that reduces the storage space of a program, which in turn induces a reduction of access time to off-chip memory in SoC (System-on-a-chip) embedded architectures. To select those sections of code that are most advantageous for compression, our scheme utilizes profiling information to evaluate and trade off storage space reduction for future run-time overhead. During run-time, the compressed parts are decompressed as necessary into a run-time buffer for execution. Experimental results on the SPEC CPU2000 and MediaBench suites show reduction in code size averaging 18.5%, along with reasonable memory consumption overhead averaging 3.8%, and a reasonable run-time overhead averaging 7.8%.

[1]  Wayne H. Wolf,et al.  Code compression for embedded systems , 1998, Proceedings 1998 Design and Automation Conference. 35th DAC. (Cat. No.98CH36175).

[2]  Trevor N. Mudge,et al.  Improving code density using compression techniques , 1997, Proceedings of 30th Annual International Symposium on Microarchitecture.

[3]  Ross N. Williams,et al.  An extremely fast Ziv-Lempel data compression algorithm , 1991, [1991] Proceedings. Data Compression Conference.

[4]  Saumya K. Debray,et al.  Profile-guided code compression , 2002, PLDI '02.

[5]  Andrew Wolfe,et al.  Executing compressed programs on an embedded RISC architecture , 1992, MICRO 1992.

[6]  Andrew Wolfe,et al.  A fast asynchronous Huffman decoder for compressed-code embedded processors , 1998, Proceedings Fourth International Symposium on Advanced Research in Asynchronous Circuits and Systems.

[7]  Jörg Henkel,et al.  Arithmetic coding for low power embedded system design , 2000, Proceedings DCC 2000. Data Compression Conference.

[8]  Takao Onoye,et al.  An object code compression approach to embedded processors , 1997, Proceedings of 1997 International Symposium on Low Power Electronics and Design.

[9]  Wayne Lyons Meeting the embedded design needs of automotive applications [RISC instruction set architecture] , 2005, Design, Automation and Test in Europe.

[10]  Yuan Xie,et al.  Profile-Driven Selective Code Compression , 2003, DATE.

[11]  Wayne H. Wolf,et al.  Random access decompression using binary arithmetic coding , 1999, Proceedings DCC'99 Data Compression Conference (Cat. No. PR00096).

[12]  Luca Benini,et al.  Selective instruction compression for memory energy reduction in embedded systems , 1999, Proceedings. 1999 International Symposium on Low Power Electronics and Design (Cat. No.99TH8477).

[13]  M. Kozuch,et al.  Compression of embedded system programs , 1994, Proceedings 1994 IEEE International Conference on Computer Design: VLSI in Computers and Processors.

[14]  Yuan Xie,et al.  Profile-driven selective code compression [embedded systems] , 2003, 2003 Design, Automation and Test in Europe Conference and Exhibition.

[15]  Ian H. Witten,et al.  Text Compression , 1990, 125 Problems in Text Algorithms.

[16]  Trevor N. Mudge,et al.  Reducing code size with run-time decompression , 2000, Proceedings Sixth International Symposium on High-Performance Computer Architecture. HPCA-6 (Cat. No.PR00550).

[17]  Darko Kirovski,et al.  Procedure Based Program Compression , 2004, International Journal of Parallel Programming.

[18]  Luca Benini,et al.  Energy-aware design of embedded memories: A survey of technologies, architectures, and optimization techniques , 2003, TECS.

[19]  Jörg Henkel,et al.  Code compression for low power embedded system design , 2000, Proceedings 37th Design Automation Conference.

[20]  Shlomit S. Pinter,et al.  Profile-driven compression scheme for embedded systems , 2006, CF '06.

[21]  Bruce R. Childers,et al.  Compact binaries with code compression in a software dynamic translator , 2004, Proceedings Design, Automation and Test in Europe Conference and Exhibition.

[22]  Kurt Keutzer,et al.  Code density optimization for embedded DSP processors using data compression techniques , 1995, Proceedings Sixteenth Conference on Advanced Research in VLSI.