| | This Article | |
| |
| |
| | Share | |
| |
| |
| | Bibliographic References | |
| |
| |
| | Add to: | |
| |
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
| |
| | Search | |
| |
| |
| | |
A Class of Code Compression Schemes for Reducing Power Consumption in Embedded Microprocessor Systems
April 2004 (vol. 53 no. 4)
pp. 467-482
Compression of executable code in embedded microprocessor systems, used in the past mainly to reduce the memory footprint of embedded software, is gaining interest for the potential reduction in memory bus traffic and power consumption. We propose three new schemes for code compression, based on the concepts of static (using the static representation of the executable) and dynamic (using program execution traces) entropy and compare them with a state-of-the-art compression scheme, IBM's CodePack. The proposed schemes are competitive with CodePack for static footprint compression and achieve superior results for bus traffic and energy reduction. Another interesting outcome of our work is that static compression is not directly related to bus traffic reduction, yet there is a trade off between static compression and dynamic compression, i.e., traffic reduction.
[1] S.A. Kee, W.A. Wulf, J.H. Aylor, R.H. Klenke, M.H. Salinas, S.I. Hong, and D.A.B. Weikle, Dynamic Access Ordering for Streamed Computations IEEE Trans. Computers, vol. 49, no. 11, pp. 1255-1271, Nov. 2000.
[2] C. Lefurgy, Efficient Execution of Compressed Programs doctoral dissertation, Univ. of Michigan, 2000.
[3] Y. Yoshida, B.-Y. Song, H. Okuhata, T. Onoye, and I. Shirakawa, An Object Code Compression Approach to Embedded Processors Proc. ACM/IEEE Int'l Symp. Low Power Electronics and Design (ISPLED-97), pp. 265-268, 1997.
[4] L. Benini, M. Macii, E. Macii, and M. Poncino, Selective Instruction Compression for Memory Energy Reduction in Embedded Systems Proc. ACM/IEEE Int'l Symp. Low Power Electronics and Design (ISPLED-99), pp. 206-211, 1999.
[5] H. Lekatsas, J. Henkel, and W. Wolf, Code Compression for Low Power Embedded System Design Proc. Design Automation Conf. (DAC-00), pp. 294-299, 2000.
[6] H. Lekatsas, J. Henkel, and W. Wolf, Arithmetic Coding for Low Power Embedded System Design Proc. Data Compression Conf., pp. 430-439, 2000.
[7] H. Lekatsas, J. Henkel, and W. Wolf, Code Compression as a Variable in Hardware/Software Co-Design Proc. Eighth Int'l Workshop Hardware/Software Codesign, pp. 120-124, 2000.
[8] T. Bell, J. Cleary, and I. Witten, Text Compression. Prentice Hall, 1990.
[9] K.-J. Lin and C.-W. Wu, A Low-Power CAM Design for LZ Data Compression IEEE Trans. Computers, vol. 49, no. 10, pp. 1139-1145, Oct. 2000.
[10] S. Segars, K. Clarke, and L. Goude, Embedded Control Problems, Thumb and the ARM7TDMI IEEE Micro, vol. 16, no. 6, pp. 22-30, 1995.
[11] K. Kissel, MIPS16: High-Density MIPS for the Embedded Market technical report, Silicon Graphics MIPS Group, 1997.
[12] R. Gonzalez, "Xtensa: A Configurable and Extensible Processor," IEEE Micro, vol. 20, no. 2, 2000, pp. 60-70; see also.
[13] S.Y. Liao, S. Devadas, and K. Keutzer, Code Density Optimization for Embedded DSP Processors Using Data Compression Techniques IEEE Trans. Computer-Aided Design, vol. 17, no. 7, pp. 601-606, 1998.
[14] H. Lekatsas and W. Wolf, Code Compression for Embedded Systems Proc. 35th Design Automation Conf., pp. 516-521, 1998.
[15] IBM, CodePack PowerPC Code Compression Utility, User's Manual Version 3.0 1998.
[16] D. Burger and T.M. Austin, The SimpleScalar Tool Set, Version 2.0 Technical Report #1342, Computer Sciences Dept., Univ. of Wisconsin, 1997.
[17] J. Ziv and A. Lempel, "A Universal Algorithm for Sequential Data Compression," IEEE Trans. Information Theory, vol. 23, no. 3, pp. 337-343, 1977.
[18] V. Phalke and B. Gopinath, Compression-Based Program Characterization for Improving Cache Memory Performance IEEE Trans. Computers, vol. 46, no. 11, pp. 1174-1186, Nov. 1997.
[19] E.E. Johnson, H. Jiheng, and M. Baqar Zaidi, Lossless Trace Compression IEEE Trans. Computers, vol. 50, no. 2, pp. 158-173, Feb. 2001.
[20] A. Wolfe and A. Channin, Executing Compressed Programs on an Embedded RISC Architecture Proc. 25th Ann. Int'l Symp. Microarchitecture (MICRO-25), pp. 81-91, 1992.
[21] H. Lekatsas and W. Wolf, Random Access Decompression Using Binary Arithmetic Coding Proc. Data Compression Conf., 1999.
[22] C. Lefurgy, P. Bird, I. Cheng, and T. Mudge, Inproving Code Density Using Compression Techniques Proc. 30th Ann. Int'l Symp. MicroArchitecture, pp. 193-203, 1997.
[23] C. Lee, M. Potkonjak, and W.H. Mangione-Smith, MediaBench: A Tool For Evaluating and Synthesizing Multimedia and Communications Systems Proc. 30th Ann. IEEE/ACM Int'l Symp. Microarchitecture, pp. 330-335, 1997.
[24] C. Lefurgy, E. Piccinini, and T. Mudge, Evaluation of a High Performance Code Compression Method Proc. 32nd Ann. Int'l Symp. Microarchitecture (MICRO-32), pp. 93-102, 1999.
[25] S.J.E. Wilton and N.P. Jouppi, Cacti: An Enhanced Cache Access and Cycle Time Model IEEE J. Solid-State Circuits, vol. 31, no. 5, pp. 677-688, May. 1996.
Index Terms:
Microprocessor/microcomputer applications, low-power design, code compression.
Citation:
Luca Benini, Francesco Menichelli, Mauro Olivieri, "A Class of Code Compression Schemes for Reducing Power Consumption in Embedded Microprocessor Systems," IEEE Transactions on Computers, vol. 53, no. 4, pp. 467-482, Apr. 2004, doi:10.1109/TC.2004.1268405