|
ABSTRACT
Program code compression is an emerging research activity that is having an impact in several production areas such as networking and embedded systems. This is because the reduced-sized code can have a positive impact on network traffic and embedded system costs such as memory requirements and power consumption. Although code-size reduction is a relatively new research area, numerous publications already exist on it. The methods published usually have different motivations and a variety of application contexts. They may use different principles and their publications often use diverse notations. To our knowledge, there are no publications that present a good overview of this broad range of methods and give a useful assessment. This article surveys twelve methods and several related works appearing in some 50 papers published up to now. We provide extensive assessment criteria for evaluating the methods and offer a basis for comparison. We conclude that it is fairly hard to make any fair comparisons of the methods or draw conclusions about their applicability.
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
|
Alfred V. Aho , Ravi Sethi , Jeffrey D. Ullman, Compilers: principles, techniques, and tools, Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 1986
|
| |
2
|
Araújo, G., Centoducatte, P., Azevedo, R., and Pannain, R. 2000a. Expression tree based algorithms for code compression on embedded RISC architectures. Tech. Rep. IC-00-01, Instituto de Computação---UNICAMP. Jan.
|
| |
3
|
|
| |
4
|
Guido Araujo , Paulo Centoducatte , Mario Cartes , Ricardo Pannain, Code compression based on operand factorization, Proceedings of the 31st annual ACM/IEEE international symposium on Microarchitecture, p.194-201, November 1998, Dallas, Texas, United States
|
| |
5
|
|
| |
6
|
|
| |
7
|
|
 |
8
|
Luca Benini , Alberto Macii , Enrico Macii , Massimo Poncino, Selective instruction compression for memory energy reduction in embedded systems, Proceedings of the 1999 international symposium on Low power electronics and design, p.206-211, August 16-17, 1999, San Diego, California, United States
[doi> 10.1145/313817.313927]
|
 |
9
|
|
| |
10
|
Bird, P. L. and Mudge, T. N. 1996. An instruction stream compression technique. Tech. Rep. CSE-TR-319-96, EECS Department, University of Michigan. Nov.
|
| |
11
|
|
| |
12
|
|
| |
13
|
Chen, I.-C. K., Bird, P. L., and Mudge, T. N. 1997. The impact of instruction compression on I-cache performance. Tech. Rep. CSE-TR-330-97, EECS Department, University of Michigan.
|
 |
14
|
|
 |
15
|
|
 |
16
|
Jens Ernst , William Evans , Christopher W. Fraser , Todd A. Proebsting , Steven Lucco, Code compression, Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation, p.358-365, June 16-18, 1997, Las Vegas, Nevada, United States
|
| |
17
|
Franz, M. 1994. Code-generation on-the-fly: A key to portable software. Ph.D. dissertation, ETH Zürich.
|
| |
18
|
|
 |
19
|
|
 |
20
|
|
 |
21
|
|
| |
22
|
Fraser, C. W. and Proebsting, T. A. 1995. Custom instruction sets for code compression. Unpublished manuscript. http://research. microsoft.com/˜toddpro/papers/pldi2.ps.
|
| |
23
|
|
| |
24
|
|
| |
25
|
|
| |
26
|
Howard, P. G. and Vitter, J. S. 1992. Practical implementations of arithmetic coding. Image Text Compres., 85--112.
|
| |
27
|
Huffman, D. A. 1952. A method for the construction of minimum redundancy codes. Proc. IERE 40, 1098--1101.
|
| |
28
|
IBM. 1998. CodePack: PowerPC Code Compression Utility User's Manual Version 3.0. International Business Machines (IBM) Corporation.
|
| |
29
|
|
| |
30
|
Darko Kirovski , Johnson Kin , William H. Mangione-Smith, Procedure based program compression, Proceedings of the 30th annual ACM/IEEE international symposium on Microarchitecture, p.204-213, December 01-03, 1997, Research Triangle Park, North Carolina, United States
|
| |
31
|
|
| |
32
|
|
| |
33
|
Charles Lefurgy , Peter Bird , I-Cheng Chen , Trevor Mudge, Improving code density using compression techniques, Proceedings of the 30th annual ACM/IEEE international symposium on Microarchitecture, p.194-203, December 01-03, 1997, Research Triangle Park, North Carolina, United States
|
| |
34
|
Lefurgy, C. R. and Mudge, T. N. 1998. Code compression for DSP. Technical Report CSE-TR-380-98, EECS Department, University of Michigan. Nov.
|
| |
35
|
|
| |
36
|
Lefurgy, C. R., Piccininni, E., and Mudge, T. N. 2000. Reducing code size with run-time decompression. In Proceedings of the 6th International Symposium on High-Performance Computer Architecture (HPCA).
|
| |
37
|
|
 |
38
|
|
 |
39
|
Haris Lekatsas , Jörg Henkel , Wayne Wolf, Code compression for low power embedded system design, Proceedings of the 37th conference on Design automation, p.294-299, June 05-09, 2000, Los Angeles, California, United States
[doi> 10.1145/337292.337423]
|
 |
40
|
|
| |
41
|
|
| |
42
|
Lekatsas, H. and Wolf, W. 1999b. SAMC: A code compression algorithm for embedded processors. IEEE Trans. CAD 18, 12 (Dec.), 1689--1701.
|
| |
43
|
Lempel, A. and Ziv, J. 1976. On the complexity of finite sequences. IEEE Trans. Inf. Theory 22, 1 (Jan.), 75--81.
|
 |
44
|
|
| |
45
|
|
| |
46
|
|
| |
47
|
Muth, R., Debray, S. K., Watterson, S., and Bosschere, K. D. 1998. alto: A link-time optimizer for the DEC Alpha. Tech. Rep. 98-14, Dept. of Computer Science, The University of Arizona. Dec.
|
| |
48
|
|
| |
49
|
van de Wiel, R. 2001. The code compaction bibliography. http://www.extra.research.philips.com/ccb/
|
| |
50
|
van de Wiel, R., Augusteijn, L., Bink, A., and Hoogendijk, P. 2001. Code compaction: Reducing memory cost of embedded software. Philips white paper. See http://www.extra. research.philips.com/
|
| |
51
|
van de Wiel, R. and Hoogendijk, P. 2001. Belt-tightening in software. Philips Res. Passw. Mag., 16--19.
|
| |
52
|
Welch, T. A. 1984. A technique for high-performance data compression. Comput. Mag. Comput. Group News IEEE Comput. Group Soc. 17, 6 (June), 8--19.
|
 |
53
|
|
 |
54
|
|
 |
55
|
Yukihiro Yoshida , Bao-Yu Song , Hiroyuki Okuhata , Takao Onoye , Isao Shirakawa, An object code compression approach to embedded processors, Proceedings of the 1997 international symposium on Low power electronics and design, p.265-268, August 18-20, 1997, Monterey, California, United States
[doi> 10.1145/263272.263349]
|
| |
56
|
Ziv, J. and Lempel, A. 1977. A universal algorithm for sequential data compression. IEEE Trans. Inf. Theory 23, 3 (May), 337--343.
|
CITED BY 14
|
|
|
|
|
|
|
|
Ahmad Zmily , Christos Kozyrakis, Simultaneously improving code size, performance, and energy in embedded processors, Proceedings of the conference on Design, automation and test in Europe: Proceedings, March 06-10, 2006, Munich, Germany
|
|
|
Majid Sarrafzadeh , Foad Dabiri , Roozbeh Jafari , Tammara Massey , Ani Nahapetan, Low power light-weight embedded systems, Proceedings of the 2006 international symposium on Low power electronics and design, October 04-06, 2006, Tegernsee, Bavaria, Germany
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A. Dreweke , M. Worlein , I. Fischer , D. Schell , Th. Meinl , M. Philippsen, Graph-Based Procedural Abstraction, Proceedings of the International Symposium on Code Generation and Optimization, p.259-270, March 11-14, 2007
|
|
|
|
|
|
|
|
|
|
|
|
|
|