Skip to main content
Log in

Code size reduction by compressing repeated instruction sequences

  • Published:
The Journal of Supercomputing Aims and scope Submit manuscript

Abstract

This paper presents an efficient technique for code compression. In our work, a sequence of instructions that occurs repeatedly in an application will be compressed to reduce its code size. During compression, each instruction is first divided into the operation part and the register part, and then only the operation part is compressed. The compression information is stored in the instruction table, the register bank, and the index table. For reducing the run-time overhead, we propose an instruction prefetching mechanism to speed the decompression. Our work is performed with SPEC 2000, DSPstone, Mediabench, and MPEG4 benchmarks on the basis of the ARM instruction set. It is proved to be quite effective for media and other applications. The experimental results show that our work can achieve a code size reduction of 33% on average and a low overhead in the process of decompression at run time for these benchmarks.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. ARM (2003) ARM7TDMI Technical Reference Manual. Advanced RISC Machines Ltd., 2003

  2. ARM (1995) An Introduction to Thumb. Advanced RISC Machines Ltd., March 1995

  3. Bell T, Cleary J, Witten I (1990) Text compression. Prentice Hall

  4. Debray S, Evans W (2002) Profile-guided code compression. In: Proceedings of the 2002 ACM SIGPLAN conference on programming language design and implementation, 2002

  5. Ernst J, Evans W, Fraser CW, Luco S, Proebsting TA (1997) Code compression. In: Proceedings of the 1997 ACM SIGPLAN conference on programming language design and implementation, 1997

  6. Evans WS, Fraser CW (2001) Bytecode compression via profiled grammar rewriting. In: Proceedings of the 2001 international conference on programming language design and implementation, 2001

  7. Fano RM (1961) Transmission of information. MIT Press, Cambridge

    Google Scholar 

  8. Fraser W, Proebsting TA (1995) Custom instruction sets for code compression. Unpublished. Available at http://www.cs.arizona.edu/people/todd/papers/pldi2.ps, Oct 1995

  9. IBM (1998) CodePack PowerPC Code Compression Utility User’s Manually Version 3.0. 1998

  10. Keith D (1999) Cooper and nathaniel mcintosh. enhanced code compression for embedded risc processors. In: Proceedings of the 1999 international conference on programming language design and implementation, 1999

  11. Kissell K (1997) MIPS16: High-density MIPS for the embedded market. Silicon graphics MIPS group

  12. Lefurgy C, Bird P, Chen I-C, Mudge T (1997) Improving code density using compression techniques. In: Proceedings of the 30th annual international symposium on microarchitecture, December 1997

  13. Liao S, Devadas S, Keutzer K (1995) Code density optimization for embedded DSP processors using data compression techniques. In: Proceedings of the 15th conference on advanced research in VLSI, March 1995

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Shao-Yang Wang.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Wang, SY., Chang, RG. Code size reduction by compressing repeated instruction sequences. J Supercomput 40, 319–331 (2007). https://doi.org/10.1007/s11227-006-0021-4

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11227-006-0021-4

Keywords

Navigation