Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1017753.1017800acmconferencesArticle/Chapter ViewAbstractPublication PagesesweekConference Proceedingsconference-collections
Article

Reducing program image size by extracting frozen code and data

Published: 27 September 2004 Publication History
  • Get Citation Alerts
  • Abstract

    Constraints on the memory size of embedded systems require reducing the image size of executing programs. Common techniques include code compression and reduced instruction sets. We propose a novel technique that eliminates large portions of the executable image without compromising execution time (due to decompression) or code generation (due to reduced instruction sets). Frozen code and data portions are identified using profiling techniques and removed from the loadable image. They are replaced with branches to code stubs that load them in the unlikely case that they are accessed. The executable is sustained in a runnable mode.Analysis of the frozen portions reveals that most are error and uncommon input handlers. Only a minority of the code (less than 1%) that was identified as frozen during a training run, is also accessed with production datasets.The technique was applied on three benchmark suites (SPEC CINT2000, SPEC CFP2000, and MediaBench) and results in image size reductions of up to 73%, 92%, and 85% per suite, The average reductions are 59%, 79%, and 78% per suite.

    References

    [1]
    G. A. B. Schwarz, S. Debray and M. Legendre. PLTO: A Link-Time Optimizer for th eIntel IA-32 Architecture. In Proceedings of Workshop on Binary Rewriting, September 2001.
    [2]
    R. Cohn, D. Goodwin, and P. G. Lowney. Optimizing Alpha Executables on Windows NT with Spike. Digital Technical of Digital Equipment Corporation, 9(4):3--20, 1997.
    [3]
    S. Debray and W. Evans. Cold Code Decompression at Runtime. Communications of the ACM, 46(8):55--60, August 2003.
    [4]
    http://www.gzip.org.
    [5]
    G. Haber, E. A. Henis, and V. Eisenberg. Reliable Post-link Optimizations Based on Partial Information. In Proceedings of the 3rd Workshop on Feedback Directed and Dynamic Optimizations (FDDO), December 2000.
    [6]
    G. Haber, M. Klausner, V. Eisenberg, B. Mendelson, and M. Gurevich. Optimization Opportunities Created by Global Data Reordering. In First International Symposium on Code Generation and Optimization (CGO'2003), March 2003.
    [7]
    R. Harr. A Conversation with Jim Ready. ACM Queue, 1(2):6--15, April 2003.
    [8]
    E. A. Henis, G. H. M. Klausner, and A. Warshavsky. Feedback Based Post-link Optimization for Large Subsystems. In Proc. Of Second Workshop on Feedback Directed Optimization (FDO), Haifa, Israel, November 1999.
    [9]
    J. Hennessy and D. Patterson. Computer Architecture : A Quantitative Approach, chapter~5. Morgan Kaufman Publisher, 3rd edition, 2000.
    [10]
    J. Hoogerbrugge, L. Augusteijn, J. Trum, and R. V. D. Wiel. A code compression system based on pipelined interpreters. Software Practice & Experience, 29(11):1005--2023, September 1999.
    [11]
    D. A. Huffman. A method for the construction of minimum-redundancy codes. Proceedings of the Institute of Radio Engineers, 40(9):1098--1101, September 1952.
    [12]
    S. Larin and T.Conte. Compiler Driven Cached Code Compression Schemes for Embedded ILP Processors. In Proceedings of the 32nd Annual International Symposium on Microarchitecture, pages 82--92, December 1999.
    [13]
    C. Lee, M. Potkonjak, and W. H. Mangione-Smith. Mediabench: A tool for evaluating and synthesizing multimedia and communications systems. In Proceedings of the 30th International Symposium on Microarchitecture, pages 330--335, December 1997.
    [14]
    C. Lefurgy, E. Piccininni, and T. Mudge. Analysis of a High Performance Code Compression Method. In Proceedings of the 32nd Annual International Symposium on Microarchitecture, pages 93--102, November 1999.
    [15]
    A. Lempel and J. Ziv. A Universal Algorithm for Sequential Data Compression. IEEE Transactions on Information Theory, 23(3):337--349, May 1977.
    [16]
    M. Levy. Embedded CPUs Do More, Run Faster. Microprocessor Report, February 2004.
    [17]
    S. Lucco. Split-stream dictionary program compression. In Proceedings of the Conference on Programming Languages Design and Implementation, pages 27--34, June 2000.
    [18]
    C. Luk, R. Muth, H. Patil, R. Cohn, and G. Lowney. Ispike: A post-link Optimizer for the Intel Itanium Architecture. In Proceedings of the Second International Symposium on Code generation and Optimization, pages 15--26, March 2004.
    [19]
    MediaBench, http://cares.icsl.ucla.edu/MediaBench.
    [20]
    http://www.mips.com/content/Products/Architecture.
    [21]
    R. Muth, S. Debray, and S. Watterson. alto: A Link-Time Optimizer for the Compaq Alpha. Technical Report~14, Department of Computer Science, The University of Arizona, December 1998.
    [22]
    I. Nahshon and D. Bernstein. FDPR - A Post-Pass Object Code Optimization Tool. In Proc. Poster Session of the International Conference on Compiler Construction, April 1996.
    [23]
    G. V. Neville-Neil. Programming Without a Net. ACM Queue, 1(2):16--22, April 2003.
    [24]
    T. Romer, G. Voelker, D. Lee, A. Wolman, W. Wong, H. Levy, B. Bershad., and B. Chen. Instrumentation and Optimization of Win32/Intel Executables Using Etch. In Proceedings of the USENIX Windows NT Workshop, pages 1--7, August 1997.
    [25]
    D. Seal, editor. ARM Architecture Reference Manual. Addison-Wesley, 2nd edition, 2000.
    [26]
    SPEC CPU2000: http://www.spec.org/cpu2000/.
    [27]
    A. Srivastava and D. W. Wall. A practical System for Intermodule Code Optimization at Link-Time. Journal of Programming Languages, 1(1):1--18, March 1993.
    [28]
    A. Wolfe and A. Chanin. Executing Compressed Programs on an Embedded RISC Architecture. In Proceedings of the 25th International Symposium on Microarchitecture, pages 81--91, December 1992.

    Cited By

    View all
    • (2009)Minimizing dependencies within generic classes for faster and smaller programsProceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications10.1145/1640089.1640121(425-444)Online publication date: 26-Oct-2009
    • (2009)Minimizing dependencies within generic classes for faster and smaller programsACM SIGPLAN Notices10.1145/1639949.164012144:10(425-444)Online publication date: 25-Oct-2009
    • (2009)Linux Kernel Compaction through Cold Code SwappingTransactions on High-Performance Embedded Architectures and Compilers II10.1007/978-3-642-00904-4_10(173-200)Online publication date: 22-Apr-2009
    • Show More Cited By

    Index Terms

    1. Reducing program image size by extracting frozen code and data

        Recommendations

        Comments

        Information & Contributors

        Information

        Published In

        cover image ACM Conferences
        EMSOFT '04: Proceedings of the 4th ACM international conference on Embedded software
        September 2004
        316 pages
        ISBN:1581138601
        DOI:10.1145/1017753
        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: 27 September 2004

        Permissions

        Request permissions for this article.

        Check for updates

        Author Tags

        1. feedback directed
        2. frozen code
        3. frozen data
        4. image size

        Qualifiers

        • Article

        Conference

        EMSOFT04
        Sponsor:

        Acceptance Rates

        Overall Acceptance Rate 60 of 203 submissions, 30%

        Upcoming Conference

        ESWEEK '24
        Twentieth Embedded Systems Week
        September 29 - October 4, 2024
        Raleigh , NC , USA

        Contributors

        Other Metrics

        Bibliometrics & Citations

        Bibliometrics

        Article Metrics

        • Downloads (Last 12 months)3
        • Downloads (Last 6 weeks)0

        Other Metrics

        Citations

        Cited By

        View all
        • (2009)Minimizing dependencies within generic classes for faster and smaller programsProceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications10.1145/1640089.1640121(425-444)Online publication date: 26-Oct-2009
        • (2009)Minimizing dependencies within generic classes for faster and smaller programsACM SIGPLAN Notices10.1145/1639949.164012144:10(425-444)Online publication date: 25-Oct-2009
        • (2009)Linux Kernel Compaction through Cold Code SwappingTransactions on High-Performance Embedded Architectures and Compilers II10.1007/978-3-642-00904-4_10(173-200)Online publication date: 22-Apr-2009
        • (2007)Automated reduction of the memory footprint of the Linux kernelACM Transactions on Embedded Computing Systems10.1145/1274858.12748616:4(23-es)Online publication date: 1-Sep-2007

        View Options

        Get Access

        Login options

        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