Nothing Special   »   [go: up one dir, main page]

skip to main content
research-article

Huffman-based code compression techniques for embedded processors

Published: 07 October 2010 Publication History

Abstract

The size of embedded software is increasing 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 by providing substantial savings in terms of code size. In this article we introduce a novel and efficient hardware-supported compression technique that is based on Huffman Coding. Our technique reduces the size of the generated decoding table, which takes a large portion of the memory. It combines our previous techniques, Instruction Splitting Technique and Instruction Re-encoding Technique into new one called Combined Compression Technique to improve the final compression ratio by taking advantage of both previous techniques. The instruction Splitting Technique is instruction set architecture (ISA)-independent. It splits the instructions into portions of varying size (called patterns) before Huffman coding is applied. This technique improves the final compression ratio by more than 20% compared to other known schemes based on Huffman Coding. The average compression ratios achieved using this technique are 48% and 50% for ARM and MIPS, respectively. The Instruction Re-encoding Technique is ISA-dependent. It investigates the benefits of reencoding unused bits (we call them reencodable bits) in the instruction format for a specific application to improve the compression ratio. Reencoding those bits can reduce the size of decoding tables by up to 40%. Using this technique, we improve the final compression ratios in comparison to the first technique to 46% and 45% for ARM and MIPS, respectively (including all overhead that incurs). The Combined Compression Technique improves the compression ratio to 45% and 42% for ARM and MIPS, respectively. In our compression technique, we have conducted evaluations using a representative set of applications and we have applied each technique to two major embedded processor architectures, namely ARM and MIPS.

References

[1]
}}Bell, T., Cleary, J., and Witten., I. 1990. Text Compression. Prentice-Hall, Englewood Cliffs, NJ.
[2]
}}Benini, L., Macii, A., and Nannarelli, A. 2001. Cached-code compression for energy minimization in embedded processors. In Proceedings of the International Symposium on Low Power Electronics and Design (ISLPED), 322--327.
[3]
}}Bonny, T. and Henkel, J. 2006. Using Lin-Kernighan algorithm for look-up table compression to improve code density. Proceedings of the IEEE/ACM 16th Great Lakes Symposium on VLSI (GLSVLSI). 259--265.
[4]
}}Bonny, T. and Henkel, J. 2007a. Efficient code density through look-up table compression. In Proceedings of the IEEE/ACM Design Automation and Test in Europe Conference (DATE). 809--814.
[5]
}}Bonny, T. and Henkel, J. 2007b. Instruction splitting for efficient code compression. In Proceedings of the Design Automation Conference (DAC). 646--651.
[6]
}}Bonny, T. and Henkel, J. 2008. Instruction re-encoding facilitating dense embedded code. In Proceedings of the Design Automation and Test in Europe Conference (DATE). 770--775.
[7]
}}Broy, M. 2005. Automotive software and systems engineering. Proceedings of the International Conference on Formal Methods and Models for Co-Design (MEMOCODE). 143--149.
[8]
}}Burger, D. and Austin., T. 1997. The simplescaler tool set, version 2.0. Tech. rep. CS-TR-97-1342, University of Wisconsin-Madison.
[9]
}}Corliss, M., Lewis, E., and Roth, A. 2003. Dise: A programmable macro engine for customizing applications. Proceedings of the International Symposium on Computer Architecture (ISCA).
[10]
}}Furber, S. 2000. ARM System-On-Chip Architecture. (2nd Ed). Addison-Wesley.
[11]
}}Game, M. and Booker, A. 1998. Codepack: Code compression for PowerPc Processors. PowerPC Embedded Processor Solutions, IBM.
[12]
}}Guthaus, M., Ringenberg, J., Ernst, D., Austin, T., Mudge, T., and Brown, R. 2002. A free, commercially representative embedded benchmark suite. Proceedings of the IEEE 4th Annual Workshop on Workload Characterization.
[13]
}}Helsgaun, K. 2000. An effective implementation of the Lin-Kernighan traveling salesman heuristic. Europ. J. Oper. Res. 126.
[14]
}}Huffman, D. A. 1952. A method for the construction of minimum redundancy codes. Proc. IRE 40, 1098--1101.
[15]
}}Jas, A., Ghosh-Dastidar, J., Eng, M.-E., and Touba, N. A. 2003. An efficient test vector compression scheme using selective Huffman coding. IEEE Trans. Comput.-Aid. Design Integr. Circ. Syst. 22, 6, 797--806.
[16]
}}Kavousianos, X, Kalligeros, K., and Nikolos, D. 2007. Multilevel Huffman coding: An efficient test-data compression method for ip cores. IEEE Trans. Comput.-Aid. Des. Integr. Circ. Syst. 26, 6, 1070--1083.
[17]
}}Kissell, K. 1997. MIPS16: high-density MIPS for the embedded market. Silicon Graphics MIPS Group.
[18]
}}Klein, S. 1997. Space- and time-efficient decoding with Canonical Huffman trees. Proceedings of the 8th Annual Symposium on Combinatorial Pattern Matching.
[19]
}}Larin, S. and Conte, T. 1999. Compiler-driven cached code compression schemes for embedded ILP processors. In Proceedings of the Annual International Symposium on Micro Architecture. 82--92.
[20]
}}Lefurgy, C., Bird, P., Chen, I., and Mudge, T. 1997. Improving code density using compression techniques. In Proceedings of the International Symposium on Microarchitecture (MICRO), 194--203.
[21]
}}Lekatsas, H., Henkel, J., Jakkula, V., and Chakradhar, S. 2005. A unified architecture for adaptive compression of data and code on embedded systems. In Proceedings of 18th International Conference on VLSI Design. 117--123.
[22]
}}Lekatsas, H., Henkel, J., and Wolf, W. 2000. Code compression for low power embedded systems design. In Proceedings of the Design Automation Conference (DAC). 294--299.
[23]
}}Lekatsas, H., Henkel, J., and Wolf., W. 2001. Design and simulation of pipelined decompression architecture for embedded systems. In Proceedings of the International Symposium on Systems Synthesis (ISSS).
[24]
}}Lekatsas, H. and Wolf., W. 1999. SAMC: A code compression algorithm for embedded processors. IEEE Trans. Comput.-Aid. Design Integr. Circuits Syst. 18, 120.
[25]
}}Lin, C. and Chung, C. 2002. Code compression techniques using operand field remapping. IEE Proc. Comput. Digit. Techniques. 149, 1, 25--31.
[26]
}}Nekritch, Y. 2000. Decoding of canonical Huffman codes with lookup tables. In Proceedings of the Conference on Data Compression. 566.
[27]
}}Okuma, T., Tomiyama, H., Inoue, A., Fajar, E., and Yasuura, H. 1998. Instruction encoding techniques for area minimization of instruction rom. Proceedings of the 11th International Symposium on System Synthesis. 125--130.
[28]
}}Ros, M. and Sutton, P. 2004. A hamming distance based VLIW/EPIC code compression technique. In Proceedings of the International Conference on Compilers, Architecture and Synthesis for Embedded Systems (CASES). 132--139.
[29]
}}Ros, M. and Sutton, P. 2005. A post-compilation register reassignment technique for improving hamming distance code compression. In Proceedings of the International Conference on Compilers, Architecture and Synthesis for Embedded Systems (CASES). 97--104.
[30]
}}Sweetman, D. 1999. See MIPS RUN. Morgan Kaufmann.
[31]
}}ARCHC Architecture Description Language. http://archc.sourceforge.net/.
[32]
}}Thumb squeezes ARM code size. 1995. Microprocess. repo. 1, Mar.
[33]
}}Wolfe, A. and Chanin, C. 1992. Executing compressed programs on an embedded RISC processor. In Proceedings of the 25th Annual International Symposium Microarchitecture. 81--91.
[34]
}}Xie, Y., Wolf, W. and Lekatsas, H. 2006. Code compression for VLIW processors using variable-to-fixed coding. IEEE Trans. VLSI 14, 5, 525--536.

Cited By

View all
  • (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)Chaos-based encryption system of DICOM medical imagesMultimodal Image Exploitation and Learning 202410.1117/12.3013891(15)Online publication date: 7-Jun-2024
  • (2024)Enhancing dental bitewing radiograph datasets: a preprocessing approach for AI detection and diagnosesReal-time Processing of Image, Depth, and Video Information 202410.1117/12.3013192(24)Online publication date: 20-Jun-2024
  • Show More Cited By

Index Terms

  1. Huffman-based code compression techniques for embedded processors

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image ACM Transactions on Design Automation of Electronic Systems
    ACM Transactions on Design Automation of Electronic Systems  Volume 15, Issue 4
    September 2010
    164 pages
    ISSN:1084-4309
    EISSN:1557-7309
    DOI:10.1145/1835420
    Issue’s Table of Contents
    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]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Journal Family

    Publication History

    Published: 07 October 2010
    Accepted: 01 April 2010
    Revised: 01 April 2009
    Received: 01 October 2008
    Published in TODAES Volume 15, Issue 4

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Embedded systems
    2. Huffman coding
    3. code compression
    4. code density

    Qualifiers

    • Research-article
    • Research
    • Refereed

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)19
    • Downloads (Last 6 weeks)1
    Reflects downloads up to 12 Nov 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (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)Chaos-based encryption system of DICOM medical imagesMultimodal Image Exploitation and Learning 202410.1117/12.3013891(15)Online publication date: 7-Jun-2024
    • (2024)Enhancing dental bitewing radiograph datasets: a preprocessing approach for AI detection and diagnosesReal-time Processing of Image, Depth, and Video Information 202410.1117/12.3013192(24)Online publication date: 20-Jun-2024
    • (2024)Automating Heartbeat Disease Detection Using Advanced Machine Learning Algorithm2024 Advances in Science and Engineering Technology International Conferences (ASET)10.1109/ASET60340.2024.10708735(01-07)Online publication date: 3-Jun-2024
    • (2024)NeuroChaosCrypt: Revolutionizing Chaotic-Based Cryptosystem With Artificial Neural Networks—A Comparison With Traditional CryptosystemsIEEE Access10.1109/ACCESS.2024.339552712(62030-62046)Online publication date: 2024
    • (2023)AI-Based Sign Language Interpreter (GestPret)Proceedings of the 2023 7th International Conference on Advances in Artificial Intelligence10.1145/3633598.3633612(79-85)Online publication date: 13-Oct-2023
    • (2023)Parameter Estimation of PRRR Robotic Arm Using Dandelion Technique2023 IEEE 6th International Conference on Knowledge Innovation and Invention (ICKII)10.1109/ICKII58656.2023.10332577(786-789)Online publication date: 11-Aug-2023
    • (2023)Speed and Accuracy Trade-off ANN/SVM Based Sleep Apnea Detection with FPGA ImplementationComputer Methods in Biomechanics and Biomedical Engineering: Imaging & Visualization10.1080/21681163.2023.224334211:6(2479-2494)Online publication date: 3-Aug-2023
    • (2022)Cursor Control Using electroencephalogram (EEG) Technology2022 International Conference on Electrical and Computing Technologies and Applications (ICECTA)10.1109/ICECTA57148.2022.9990531(415-419)Online publication date: 23-Nov-2022
    • (2021)An Efficient Parallelized Huffman Decoding PEProceedings of the 2021 3rd International Conference on Information Technology and Computer Communications10.1145/3473465.3473485(115-119)Online publication date: 23-Jun-2021
    • Show More Cited By

    View Options

    Get Access

    Login options

    Full Access

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media