Dictionary-based program compression on customizable processor architectures

The size of the program code has become a critical design constraint in embedded systems, especially in handheld devices. Large program codes require large memories, which increase the size and cost of the chip. In addition, the power consumption is increased due to higher memory I/O bandwidth. Program compression is one of the most often used methods to reduce the size of the program code. In this paper, dictionary-based program compression is evaluated on a customizable processor architecture with parallel resources. In addition to code density, the effectiveness of the method is evaluated in terms of area and power consumption. Furthermore, a mechanism is proposed to maintain the programmability after compression. Up to 77% reduction in area and 73% reduction in power consumption of the program memory and the associated control logic were obtained.

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

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

[3]  Nikil D. Dutt,et al.  Reducing code size for heterogeneous-connectivity-based VLIW DSPs through synthesis of instruction set extensions , 2003, CASES '03.

[4]  Lex Augusteijn,et al.  A code compression system based on pipelined interpreters , 1999, Softw. Pract. Exp..

[5]  Wayne H. Wolf,et al.  Code compression for embedded systems , 1998, Proceedings 1998 Design and Automation Conference. 35th DAC. (Cat. No.98CH36175).

[6]  Gerhard Fettweis,et al.  Dynamic Codewidth Reduction for VLIW Instruction Set Architectures in Digital Signal Processors , 1996 .

[7]  Ian H. Witten,et al.  Managing gigabytes (2nd ed.): compressing and indexing documents and images , 1999 .

[8]  J. Vitter,et al.  Practical Implementations of Arithmetic Coding , 1991 .

[9]  Henk Corporaal,et al.  Dictionary-based program compression on transport triggered architectures , 2005, 2005 IEEE International Symposium on Circuits and Systems.

[10]  Scott A. Mahlke,et al.  Code size minimization and retargetable assembly for custom EPIC and VLIW instruction formats , 2000, TODE.

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

[12]  Guido Araujo,et al.  Code compression based on operand factorization , 1998, Proceedings. 31st Annual ACM/IEEE International Symposium on Microarchitecture.

[13]  Robert P. Colwell,et al.  A VLIW architecture for a trace scheduling compiler , 1987, ASPLOS.

[14]  Mike Parker,et al.  ACT : A Low Power VLIW Cluster Coprocessor for DSP Applications , 2006 .

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

[16]  A. Wolfe,et al.  Executing Compressed Programs On An Embedded RISC Architecture , 1992, [1992] Proceedings the 25th Annual International Symposium on Microarchitecture MICRO 25.

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

[18]  Luca Benini,et al.  Region compression: a new scheme for memory energy minimization in embedded systems , 1999, Proceedings 25th EUROMICRO Conference. Informatics: Theory and Practice for the New Millennium.

[19]  Henk Corporaal,et al.  Evaluating template-based instruction compression on transport triggered architectures , 2003, The 3rd IEEE International Workshop on System-on-Chip for Real-Time Applications, 2003. Proceedings..

[20]  Richard W. Hamming,et al.  Error detecting and error correcting codes , 1950 .

[21]  Kevin D. Kissell MIPS16: High-density MIPS for the Embedded Market1 , 1997 .

[22]  Terry A. Welch,et al.  A Technique for High-Performance Data Compression , 1984, Computer.

[23]  Montserrat Ros,et al.  Compiler optimization and ordering effects on VLIW code compression , 2003, CASES '03.

[24]  M. Kozuch,et al.  Compression of embedded system programs , 1994, Proceedings 1994 IEEE International Conference on Computer Design: VLSI in Computers and Processors.

[25]  B. Ramakrishna Rau,et al.  EPIC: An Architecture for Instruction-Level Parallel Processors , 2000 .

[26]  Roberto Sannino,et al.  Code compression for VLIW embedded processors , 2004, IS&T/SPIE Electronic Imaging.

[27]  Robert P. Colwell,et al.  A VLIW architecture for a trace scheduling compiler , 1987, ASPLOS 1987.

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

[29]  J. Heikkinen,et al.  Dictionary-based program compression on TTAs: effects on area and power consumption , 2005, IEEE Workshop on Signal Processing Systems Design and Implementation, 2005..

[30]  Ian H. Witten,et al.  Managing Gigabytes: Compressing and Indexing Documents and Images , 1999 .

[31]  Trevor Mudge,et al.  Fast Software-managed Code Decompression , 1999 .

[32]  Henk Corporaal,et al.  Using Transport Triggered Architectures for Embedded Processor Design , 1998, Integr. Comput. Aided Eng..

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

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

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

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

[37]  Chein-Wei Jen,et al.  Hierarchical instruction encoding for VLIW digital signal processors , 2005, 2005 IEEE International Symposium on Circuits and Systems.

[38]  Jarmo Takala,et al.  Effects of Program Compression , 2006, SAMOS.

[39]  Y. Matsuda,et al.  Novel VLIW code compaction method for a 3D geometry processor , 2000, Proceedings of the IEEE 2000 Custom Integrated Circuits Conference (Cat. No.00CH37044).

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

[41]  Henk Corporaal Microprocessor architectures - from VLIW to TTA , 1997 .

[42]  Ikuya Kawasaki,et al.  SH3: high code density, low power , 1995, IEEE Micro.