[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/780732.780765acmconferencesArticle/Chapter ViewAbstractPublication PagescpsweekConference Proceedingsconference-collections
Article

A DISE implementation of dynamic code decompression

Published: 11 June 2003 Publication History

Abstract

Code compression coupled with dynamic decompression is an important technique for both embedded and general-purpose microprocessors. Post-fetch decompression, in which decompression is performed after the compressed instructions have been fetched, allows the instruction cache to store compressed code but requires a highly efficient decompression implementation. We propose implementing post-fetch decompression using dynamic instruction stream editing (DISE), a programmable decoder---similar in structure to those in many IA32 processors---that is used to add functionality to an application by injecting custom code snippets into its fetched instruction stream. A DISE implementation of post-fetch decompression naturally supports customized program-specific decompression dictionaries, enables parameterized decompression allowing similar instruction sequences to share dictionary entries, and uses no decompression-specific hardware. Cycle-level simulation of DISE decompression shows that it can reduce static program size by 35% and execution time by 20%. Parameterized decompression, a feature unique to DISE, accounts for 20% of the code size reduction by making more effective use of the dictionary and allowing PC-relative branches to be included in compressed sequences. DISE-based compression can reduce total energy consumption by 10% and the energy-delay product by as much as 20%.

References

[1]
Advanced RISC Machines Ltd. An Introduction to Thumb, Mar. 1995.
[2]
D. Albonesi. Selective cache ways: On demand cache resource allocation. In Proc. 32nd International Symposium on Microarchitecture, pages 248--259, Nov. 1999.
[3]
G. Araujo, P. Centoducatte, and M. Cortes. Code compression based on operand factorization. In Proc. 31st International Symposium on Microarchitecture, pages 194--201, Dec. 1998.
[4]
D. Brooks, V. Tiwari, and M. Martonosi. Wattch: A framework for architectural-level power analysis and optimizations. In Proc. 27th International Symposium on Computer Architecture, pages 83--94, Jun. 2000.
[5]
D. Burger and T. M. Austin. The SimpleScalar tool set, version 2.0. Technical Report 1342, University of Wisconsin--Madison Computer Sciences Department, 1997.
[6]
K. Cooper and N. McIntosh. Enhanced code compression for embedded RISC processors. In Proc. of the ACM SIGPLAN '99 Conference on Programming Language Design and Implementation, pages 139--149, 1999.
[7]
M. L. Corliss, E. C. Lewis, and A. Roth. DISE: A programmable macro engine for customizing applications. In Proc. 30th International Symposium on Computer Architecture, Jun. 2003.
[8]
S. K. Debray, W. Evans, R. Muth, and J. D. Sutter. Compiler techniques for code compression. ACM Transactions on Programming Languages and Operating Systems, 22(2):378--415, Mar. 2000.
[9]
K. Diefendorf. K7 challenges Intel. Microprocessor Report, 12(14), Nov. 1998.
[10]
P. Glaskowsky. Pentium 4 (partially) previewed. Microprocessor Report, 14(8), Aug. 2000.
[11]
L. Gwenapp. P6 microcode can be patched. Microprocessor Report, 11(12), Sept. 1997.
[12]
T. M. Kemp, R. K. Montoye, D. J. Auerback, J. D. Harper, and J. D. Palmer. A decompression core for PowerPC. IBM Systems Journal, 42(6):807--812, Nov. 1998.
[13]
D. Kirovski, J. Kin, and W. Mangione-Smith. Procedure based program compression. In Proc. 30th International Symposium on Microarchitecture, pages 204--213, Dec. 1997.
[14]
K. Kissell. MIPS16: High-Density MIPS for the Embedded Market. Silicon Graphics MIPS Group, 1997.
[15]
C. Lee, M. Potkonjak, and W. Mangione-Smith. Mediabench: A tool for evaluating and synthesizing multimedia and communications systems. In Proc. 30th International Symposium on Microarchitecture, pages 330--335, Dec. 1997.
[16]
C. Lefurgy, P. Bird, I.-C. Cheng, and T. Mudge. Improving code density using compression techniques. In Proc. 30th International Symposium on Microarchitecture, pages 194--203, Dec. 1997.
[17]
C. Lefurgy, E. Piccininni, and T. Mudge. Reducing code size with run-time decompression. In Proc. 6th International Symposium on High-Performance Computer Architecture, pages 218--227, Jan. 2000.
[18]
H. Lekatsas, J. Henkel, and W. Wolf. Code compression for low power embedded system design. In Proc. 36th Design Automation Conference, pages 294--299, Jun. 2000.
[19]
S. Liao, S. Devadas, and K. Keutzer. A text-compression-based method for code size minimization in embedded systems. ACM Transactions on Design Automation of Electrical Systems, 4(1):12--38, Jan. 1999.
[20]
T. Szymanski. Assembling code for machines with span dependent instructions. Communications of the ACM, 21(4):300--308, Apr. 1978.
[21]
S. Wilton and N. Jouppi. An enhanced access and cycle time model for on-chip caches. Technical report, DEC Western Research Laboratory, 1994.
[22]
A. Wolfe and A. Chanin. Executing compressed programs on an embedded RISC architecture. In Proc. 25th International Symposium on Microarchitecture, pages 81--91, Dec. 1992.
[23]
S.-H. Yang, M. Powell, B. Falsafi, and T. Vijaykumar. Exploiting choice in resizable cache design to optimize deep-submicron processor energy-delay. In Proc. 8th International Symposium on High Performance Computer Architecture, Jan. 2002.

Cited By

View all
  • (2012)Fully Distributed On-chip Instruction Memory Design for Stream Architecture Based on Field-Divided VLIW CompressionProceedings of the 2012 IEEE 14th International Conference on High Performance Computing and Communication & 2012 IEEE 9th International Conference on Embedded Software and Systems10.1109/HPCC.2012.14(25-32)Online publication date: 25-Jun-2012
  • (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
  • (2006)Adapting compilation techniques to enhance the packing of instructions into registersProceedings of the 2006 international conference on Compilers, architecture and synthesis for embedded systems10.1145/1176760.1176768(43-53)Online publication date: 22-Oct-2006
  • Show More Cited By

Index Terms

  1. A DISE implementation of dynamic code decompression

      Recommendations

      Comments

      Please enable JavaScript to view thecomments powered by Disqus.

      Information & Contributors

      Information

      Published In

      cover image ACM Conferences
      LCTES '03: Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool for embedded systems
      June 2003
      304 pages
      ISBN:1581136471
      DOI:10.1145/780732
      • cover image ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 38, Issue 7
        Special Issue: Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool support for embedded systems (San Diego, CA).
        July 2003
        293 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/780731
        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]

      Sponsors

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      Published: 11 June 2003

      Permissions

      Request permissions for this article.

      Check for updates

      Author Tags

      1. DISE
      2. code compression
      3. code decompression

      Qualifiers

      • Article

      Conference

      LCTES03
      Sponsor:

      Acceptance Rates

      LCTES '03 Paper Acceptance Rate 29 of 128 submissions, 23%;
      Overall Acceptance Rate 116 of 438 submissions, 26%

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)0
      • Downloads (Last 6 weeks)0
      Reflects downloads up to 18 Dec 2024

      Other Metrics

      Citations

      Cited By

      View all
      • (2012)Fully Distributed On-chip Instruction Memory Design for Stream Architecture Based on Field-Divided VLIW CompressionProceedings of the 2012 IEEE 14th International Conference on High Performance Computing and Communication & 2012 IEEE 9th International Conference on Embedded Software and Systems10.1109/HPCC.2012.14(25-32)Online publication date: 25-Jun-2012
      • (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
      • (2006)Adapting compilation techniques to enhance the packing of instructions into registersProceedings of the 2006 international conference on Compilers, architecture and synthesis for embedded systems10.1145/1176760.1176768(43-53)Online publication date: 22-Oct-2006
      • (2005)Improving Program Efficiency by Packing Instructions into RegistersACM SIGARCH Computer Architecture News10.1145/1080695.106999233:2(260-271)Online publication date: 1-May-2005
      • (2005)A dictionary construction technique for code compression systems with echo instructionsACM SIGPLAN Notices10.1145/1070891.106592640:7(105-114)Online publication date: 15-Jun-2005
      • (2005)A dictionary construction technique for code compression systems with echo instructionsProceedings of the 2005 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems10.1145/1065910.1065926(105-114)Online publication date: 15-Jun-2005
      • (2005)Using DISE to protect return addresses from attackACM SIGARCH Computer Architecture News10.1145/1055626.105563633:1(65-72)Online publication date: 1-Mar-2005
      • (2005)HPSProceedings of the 14th International Conference on Parallel Architectures and Compilation Techniques10.1109/PACT.2005.24(38-50)Online publication date: 17-Sep-2005
      • (2005)Reducing Instruction Fetch Cost by Packing Instructions into RegisterWindowsProceedings of the 38th annual IEEE/ACM International Symposium on Microarchitecture10.1109/MICRO.2005.27(19-29)Online publication date: 12-Nov-2005
      • (2005)Improving Program Efficiency by Packing Instructions into RegistersProceedings of the 32nd annual international symposium on Computer Architecture10.1109/ISCA.2005.32(260-271)Online publication date: 4-Jun-2005
      • 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

      Media

      Figures

      Other

      Tables

      Share

      Share

      Share this Publication link

      Share on social media