ACM Home Page
Please provide us with feedback. Feedback
A DISE implementation of dynamic code decompression
Full text PdfPdf (292 KB)
Source Language, Compiler and Tool Support for Embedded Systems archive
Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool for embedded systems table of contents
San Diego, California, USA
SESSION: Efficiency of compressed code table of contents
Pages: 232 - 243  
Year of Publication: 2003
ISBN:1-58113-647-1
Also published in ...
Authors
Marc L. Corliss  University of Pennsylvania, Philadelphia, PA
E. Christopher Lewis  University of Pennsylvania, Philadelphia, PA
Amir Roth  University of Pennsylvania, Philadelphia, PA
Sponsors
ACM: Association for Computing Machinery
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 0,   Downloads (12 Months): 14,   Citation Count: 11
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/780732.780765
What is a DOI?

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

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
Advanced RISC Machines Ltd. An Introduction to Thumb, Mar. 1995.
 
2
 
3
4
 
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
7
8
 
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
 
13
 
14
K. Kissell. MIPS16: High-Density MIPS for the Embedded Market. Silicon Graphics MIPS Group, 1997.
 
15
 
16
 
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
19
20
 
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
 
23

CITED BY  11

Collaborative Colleagues:
Marc L. Corliss: colleagues
E. Christopher Lewis: colleagues
Amir Roth: colleagues