Multi-profile based code compression

Code compression has been shown to be an effective technique to reduce code size in memory constrained embedded systems. It has also been used as a way to increase cache hit ratio, thus reducing power consumption and improving performance. This paper proposes an approach to mix static/dynamic instruction profiling in dictionary construction, so as to best exploit trade-offs in compression ratio/performance. Compressed instructions are stored as variable-size indices into fixed-size codewords, eliminating compressed code misalignments. Experimental results, using the Leon (SPARCv8) processor and a program mix from MiBench and Mediabench, show that our approach halves the number of cache accesses and power consumption while produces compression ratios as low as 56%.

[1]  Miodrag Potkonjak,et al.  MediaBench: a tool for evaluating and synthesizing multimedia and communications systems , 1997, Proceedings of 30th Annual International Symposium on Microarchitecture.

[2]  David Seal,et al.  ARM Architecture Reference Manual , 2001 .

[3]  Rodolfo Azevedo,et al.  Expression-tree-based algorithms for code compression on embedded RISC architectures , 2000, IEEE Trans. Very Large Scale Integr. Syst..

[4]  Luca Benini,et al.  Cached-code compression for energy minimization in embedded processors , 2001, ISLPED '01.

[5]  Wayne H. Wolf,et al.  SAMC: a code compression algorithm for embedded processors , 1999, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[6]  Jörg Henkel,et al.  Design of an one-cycle decompression hardware for performance increase in embedded systems , 2002, DAC '02.

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

[8]  Richard A. Brunner VAX architecture reference manual (2nd ed.) , 1991 .

[9]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

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

[11]  Rodolfo Azevedo,et al.  Mixed static/dynamic profiling for dictionary based code compression , 2003, Proceedings. 2003 International Symposium on System-on-Chip (IEEE Cat. No.03EX748).

[12]  David A. Patterson,et al.  Computer architecture (2nd ed.): a quantitative approach , 1996 .

[13]  Norman P. Jouppi,et al.  CACTI: an enhanced cache access and cycle time model , 1996, IEEE J. Solid State Circuits.

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

[15]  Trevor Mudge,et al.  MiBench: A free, commercially representative embedded benchmark suite , 2001 .