COMPASS - A tool for evaluation of compression strategies for embedded processors

A major concern of embedded system architects is the design for low power. We address one aspect of the problem in this paper, namely the effect of executable code compression. There are two benefits of code compression - firstly, a reduction in the memory footprint of embedded software, and secondly, potential reduction in memory bus traffic and power consumption. Since decompression has to be performed at run time it is achieved by hardware. We describe a tool called COMPASS which can evaluate a range of strategies for any given set of benchmarks and display compression ratios. Also, given an execution trace, it can compute the effect on bus toggles, and cache misses for a range of compression strategies. The tool is interactive and allows the user to vary a set of parameters, and observe their effect on performance. We describe an implementation of the tool and demonstrate its effectiveness. To the best of our knowledge this is the first tool proposed for such a purpose.

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

[2]  T. Mudge,et al.  Code Compression for DSP CSE-TR-380-98 , 1998 .

[3]  Andrew Wolfe,et al.  Proceedings of the 33rd annual ACM/IEEE international symposium on Microarchitecture , 2000, MICRO 2000.

[4]  Wen-mei W. Hwu,et al.  Proceedings of the 25th annual international symposium on Microarchitecture , 1992, MICRO.

[5]  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).

[6]  Trevor Mudge,et al.  Code Compression for DSP , 1998 .

[7]  Priti Shankar,et al.  A code compression advisory tool for embedded processors , 2005, SAC '05.

[8]  Luca Benini,et al.  A class of code compression schemes for reducing power consumption in embedded microprocessor systems , 2004, IEEE Transactions on Computers.

[9]  Wayne Wolf,et al.  A code decompression architecture for VLIW processors , 2001, Proceedings. 34th ACM/IEEE International Symposium on Microarchitecture. MICRO-34.

[10]  Matthew Farrens,et al.  Proceedings of the 32nd annual ACM/IEEE international symposium on Microarchitecture , 1999, MICRO 1999.

[11]  Thomas M. Conte,et al.  Compiler-driven cached code compression schemes for embedded ILP processors , 1999, MICRO-32. Proceedings of the 32nd Annual ACM/IEEE International Symposium on Microarchitecture.

[12]  Priti Shankar,et al.  Compressing Dynamic Data Structures in Operating System Kernels ∗ , 2009 .

[13]  Sanjive Agarwala,et al.  A multi-level memory system architecture for high performance DSP applications , 2000, Proceedings 2000 International Conference on Computer Design.

[14]  Gürhan Küçük,et al.  Reducing reorder buffer complexity through selective operand caching , 2003, ISLPED '03.

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

[16]  Wayne Wolf,et al.  Compression ratio and decompression overhead tradeoffs in code compression for VLIW architectures , 2001, ASICON 2001. 2001 4th International Conference on ASIC Proceedings (Cat. No.01TH8549).

[17]  Montserrat Ros,et al.  Code compression based on operand-factorization for VLIW processors , 2004, Data Compression Conference, 2004. Proceedings. DCC 2004.

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

[19]  Rodolfo Azevedo,et al.  Multi-profile based code compression , 2004, Proceedings. 41st Design Automation Conference, 2004..

[20]  Yuan Xie,et al.  A code decompression architecture for VLIW processors , 2001, MICRO.

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

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

[23]  Priti Shankar,et al.  An instruction set architecture based code compression scheme for embedded processors , 2005, Data Compression Conference.