skip to main content
10.1145/1278480.1278645acmconferencesArticle/Chapter ViewAbstractPublication PagesdacConference Proceedingsconference-collections
Article

Instruction splitting for efficient code compression

Published: 04 June 2007 Publication History

Abstract

The size of embedded software is rising at a rapid pace. It is often challenging and time consuming to fit an amount of required software functionality within a given hardware resource budget. Code compression is a means to alleviate the problem. In this paper we introduce a novel and efficient hardware-supported approach. Our scheme reduces the size of the generated decoding table by splitting instructions into portions of varying size (called patterns) before Huffman Coding compression is applied. It improves the final compression ratio (including all overhead that incurs) by more than 20% compared to known schemes based on Huffman Coding. We achieve allover compression ratios as low as 44%. Thereby, our scheme is orthogonal to approaches that take particularities of a certain instruction set architectures into account. We have conducted evaluations using a representative set of applications and have applied it to two major embedded processors, namely ARM and MIPS.

References

[1]
Thumb Squeezes ARM Code Size. Microprocessor Report, Vol.9, Nr.4, 1995.
[2]
Report: Future of Embedded Systems Technology from Business Communications Company. 2005.
[3]
T. Bell, J. Cleary, and I. Witten. Text Compression. Prentice-Hall, Englewood Cliffs, 1990.
[4]
L. Benini, A. Macii, and A. Nannarelli. Cached-Code Compression for energy Minimization in Embedded Processors. ISLPED-01, pp. 322--327, 2001.
[5]
T. Bonny and J. Henkel. Efficient Code Density Through Look-up Table Compression, in Design Automation and Test in Europe Conference (DATE'07), 2007 (accepted).
[6]
T. Bonny and J. Henkel. Using Lin-Kernighan Algorithm for Look-up Table Compression to Improve Code Density, in Great Lakes Symposium on VLSI (GLSVLSI'06), pp. 259--265, 2006.
[7]
M. Broy. Automotive Software and Systems Engineering. MEMOCODE, pp. 143--149, 2005.
[8]
M. Corliss, E. Lewis, and A. Roth. DISE: Programmable Macro Engine for Customizing Applications. Proc. of the International Sym. on Computer Arch., ISCA 03, pp. 362--373, 2003.
[9]
D. Das, R. Kumar, and P. Chakrabarti. Code Compression Using Unused Encoding Space for Variable Length Instruction Encodings. VLSI Design & Test Workshop (VDAT), 2004.
[10]
D. Das, R. Kumar, and P. Chakrabarti. Dictionary Based Code Compression for Variable Length Instruction Encodings. The 18th Int. Conf. VLSI Design, pp. 545--550, 2005.
[11]
M. Guthaus and et al. Commercially Representative Embedded Benchmark Suite. Annual Workshop on Workload Characterization, pp. 3--14, 2002.
[12]
http://www.prodesigncad.com.
[13]
K. KISSELL. MIPS16: High-Density MIPS for the Embedded Market. Silicon Graphics Group, 1997.
[14]
S. Klein. Space- and Time-Efficient Decoding with Canonical Huffman Trees. Proc. of the Annual Sym. on Combinatorial Pattern Matching, pp. 65--75, 1997.
[15]
C. Lefurgy, P. Bird, I. Chen, and T. Mudge. Improving Code Density Using Compression Techniques. MICRO- 30, pp. 194--203, 1997.
[16]
C. Lefurgy, E. Piccininni, and T. Mudge. Reducing Code Size with Run-time Decompression. Proc. of the Symposium on High-Performance Computer Architecture, pp. 218--228, 2000.
[17]
H. Lekatsas, J. Henkel, and V. Jakkula. Design of an One-cycle Decompression Hardware for Performance Increase in Embedded Systems. in Design Automation Conference (DAC'02), pp. 34--39, 2002.
[18]
H. Lekatsas, J. Henkel, V. Jakkula, and S. Chakradhar. Unified Architecture for Adaptive Compression of Data and Code on Embedded Systems. Proc. of 18th. the International Conference on VLSI Design, pp. 117--123, 2005.
[19]
H. Lekatsas and W. Wolf. SAMC: A Code Compression Algorithm for Embedded Processors. Transaction on CAD, pp. 1689--1701, 1999.
[20]
Y. Nekritch. Decoding of Canonical Huffman Codes with Look-up Tables. Proceedings of the Conference on Data Compression, pp. 566, 2000.
[21]
A. Wolfe and C. Chanin. Executing Compressed Programs on an Embedded RISC Processor. in Proc. Annual Int. Symp. Microarchitecture, pp. 81--91, 1992.
[22]
Y. Yoshida, B.-Y. Song, H. Okuhata, T. Onoye, and I. Shirakawa. Object Code Compression Approach to Embedded Processors. SLPED-97, pp. 265--268, 1997.

Cited By

View all
  • (2024)Primary Methods and Algorithms in Artificial-Intelligence-Based Dental Image Analysis: A Systematic ReviewAlgorithms10.3390/a1712056717:12(567)Online publication date: 11-Dec-2024
  • (2024)Malaria detection using machine learningOptics, Photonics, and Digital Technologies for Imaging Applications VIII10.1117/12.3014636(4)Online publication date: 18-Jun-2024
  • (2024)Procedural Abstraction on RISC-V Using TP Register2024 IEEE 7th Information Technology, Networking, Electronic and Automation Control Conference (ITNEC)10.1109/ITNEC60942.2024.10733182(1246-1257)Online publication date: 20-Sep-2024
  • Show More Cited By

Index Terms

  1. Instruction splitting for efficient code compression

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    DAC '07: Proceedings of the 44th annual Design Automation Conference
    June 2007
    1016 pages
    ISBN:9781595936271
    DOI:10.1145/1278480
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 04 June 2007

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. code compression
    2. embedded systems
    3. huffman coding

    Qualifiers

    • Article

    Conference

    DAC07
    Sponsor:

    Acceptance Rates

    DAC '07 Paper Acceptance Rate 152 of 659 submissions, 23%;
    Overall Acceptance Rate 1,770 of 5,499 submissions, 32%

    Upcoming Conference

    DAC '25
    62nd ACM/IEEE Design Automation Conference
    June 22 - 26, 2025
    San Francisco , CA , USA

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)3
    • Downloads (Last 6 weeks)1
    Reflects downloads up to 05 Mar 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Primary Methods and Algorithms in Artificial-Intelligence-Based Dental Image Analysis: A Systematic ReviewAlgorithms10.3390/a1712056717:12(567)Online publication date: 11-Dec-2024
    • (2024)Malaria detection using machine learningOptics, Photonics, and Digital Technologies for Imaging Applications VIII10.1117/12.3014636(4)Online publication date: 18-Jun-2024
    • (2024)Procedural Abstraction on RISC-V Using TP Register2024 IEEE 7th Information Technology, Networking, Electronic and Automation Control Conference (ITNEC)10.1109/ITNEC60942.2024.10733182(1246-1257)Online publication date: 20-Sep-2024
    • (2023)Genetic Algorithm Augmented Inception-Net based Image Classifier Accelerated on FPGAMultimedia Tools and Applications10.1007/s11042-023-15178-382:29(45097-45125)Online publication date: 1-Dec-2023
    • (2013)A new code compression algorithm and its decompressor in FPGA-based hardware2013 26th Symposium on Integrated Circuits and Systems Design (SBCCI)10.1109/SBCCI.2013.6644870(1-6)Online publication date: Sep-2013
    • (2013)Code compression using Multi-Level Dictionary2013 IEEE 4th Latin American Symposium on Circuits and Systems (LASCAS)10.1109/LASCAS.2013.6519043(1-4)Online publication date: Feb-2013
    • (2012)CPB-ARM -- A New Code Compression Method for Embedded SystemsProceedings of the 2012 13th Symposium on Computing Systems10.1109/WSCAD-SSC.2012.20(25-32)Online publication date: 17-Oct-2012
    • (2012)Code Compression in ARM Embedded Systems Using Multiple DictionariesProceedings of the 2012 IEEE 15th International Conference on Computational Science and Engineering10.1109/ICCSE.2012.36(209-214)Online publication date: 5-Dec-2012
    • (2010)Huffman-based code compression techniques for embedded processorsACM Transactions on Design Automation of Electronic Systems10.1145/1835420.183542415:4(1-37)Online publication date: 7-Oct-2010
    • (2008)Instruction re-encoding facilitating dense embedded codeProceedings of the conference on Design, automation and test in Europe10.1145/1403375.1403561(770-775)Online publication date: 10-Mar-2008
    • Show More Cited By

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media