Bitmask-Based Code Compression for Embedded Systems

Embedded systems are constrained by the available memory. Code-compression techniques address this issue by reducing the code size of application programs. It is a major challenge to develop an efficient code-compression technique that can generate substantial reduction in code size without affecting the overall system performance. We present a novel code-compression technique using bitmasks, which significantly improves the compression efficiency without introducing any decompression penalty. This paper makes three important contributions. 1) It develops an efficient bitmask-selection technique that can create a large set of matching patterns. 2) It develops an efficient dictionary-selection technique based on bitmasks. 3) It proposes a dictionary-based code-compression algorithm using the bitmask- and dictionary-selection techniques that can significantly reduce the memory requirement. To demonstrate the usefulness of our approach, we have performed code compression using applications from various domains and compiled for a wide variety of architectures. Our approach outperforms the existing dictionary-based techniques by an average of 20%, giving a compression ratio of 55%-65%.

[1]  P. P. Chakrabarti,et al.  Dictionary based code compression for variable length instruction encodings , 2005, 18th International Conference on VLSI Design held jointly with 4th International Conference on Embedded Systems Design.

[2]  Nagisa Ishiura,et al.  Instruction Code Compression for Application Specific VLIW Processors Based on Automatic Field Partitioning , 2007 .

[3]  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.

[4]  Haris Lekatsas,et al.  Code compression for VLIW processors using variable-to-fixed coding , 2002, 15th International Symposium on System Synthesis, 2002..

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

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

[7]  Kurt Keutzer,et al.  Code density optimization for embedded DSP processors using data compression techniques , 1998, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[8]  Yuan Xie,et al.  LZW-based code compression for VLIW embedded systems , 2004, Proceedings Design, Automation and Test in Europe Conference and Exhibition.

[9]  Nur A. Touba,et al.  Test data compression using dictionaries with selective entries and fixed-length indices , 2003, TODE.

[10]  P. Mishra,et al.  A Bitmask-based Code Compression Technique for Embedded Systems , 2006, 2006 IEEE/ACM International Conference on Computer Aided Design.

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

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

[13]  Montserrat Ros,et al.  A post-compilation register reassignment technique for improving hamming distance code compression , 2005, CASES '05.

[14]  Sang-Joon Nam,et al.  Improving dictionary-based code compression in VLIW architectures , 1999 .

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

[16]  Montserrat Ros,et al.  A hamming distance based VLIW/EPIC code compression technique , 2004, CASES '04.

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

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

[19]  Prabhat Mishra,et al.  An Efficient Code Compression Technique using Application-Aware Bitmask and Dictionary Selection Methods , 2007, 2007 Design, Automation & Test in Europe Conference & Exhibition.