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.
Similar content being viewed by others
References
ARM (2003) ARM7TDMI Technical Reference Manual. Advanced RISC Machines Ltd., 2003
ARM (1995) An Introduction to Thumb. Advanced RISC Machines Ltd., March 1995
Bell T, Cleary J, Witten I (1990) Text compression. Prentice Hall
Debray S, Evans W (2002) Profile-guided code compression. In: Proceedings of the 2002 ACM SIGPLAN conference on programming language design and implementation, 2002
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
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
Fano RM (1961) Transmission of information. MIT Press, Cambridge
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
IBM (1998) CodePack PowerPC Code Compression Utility User’s Manually Version 3.0. 1998
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
Kissell K (1997) MIPS16: High-density MIPS for the embedded market. Silicon graphics MIPS group
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
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
Author information
Authors and Affiliations
Corresponding author
Rights 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
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11227-006-0021-4