Value-sensitive automatic code specialization for embedded software
IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems - Tập 21 Số 9 - Trang 1051-1067 - 2002
Tóm tắt
The objective of this work is to create a framework for the optimization of embedded software. We present algorithms and a tool flow to reduce the computational effort of programs, using value profiling and partial evaluation. Such a reduction translates into both energy savings and average-case performance improvement, while preserving a tolerable increase of worst case performance and code size. Our tool reduces the computational effort by specializing frequently executed procedures for the most common values of their parameters. The most effective specializations are automatically searched and identified, and the code is transformed through partial evaluation. Experimental results show that their technique improves both energy consumption and performance of the source code up to more than a factor of two, in average about 35% over the original program. Also, their automatic search engine greatly reduces code optimization time with respect to exhaustive search.
Từ khóa
#Embedded software #Embedded system #Energy consumption #Application software #Costs #Clocks #Automatic control #Search engines #Consumer electronics #Multimedia systemsTài liệu tham khảo
faraboschi, 2000, st200: a vliw architecture for media-oriented applications, Microprocessor Forum
0
10.1049/el:19840012
stoodley, 0
lee, 0
10.1145/197405.197406
10.1145/178243.178260
stanford compiler group, 1994, The SUIF Library A set of core routines for manipulating SUIF data structures
wolfe, 1996, High Performance Compilers for Parallel Computing
richardson, 1992, Caching function results Faster arithmetic by avoiding unnecessary computation
10.1109/ICCAD.1995.480146
10.1109/DAC.1999.781231
10.1007/BFb0057791
10.1007/978-1-4615-5131-7
benini, 1997, Dynamic Power Management Design Techniques and CAD Tools
andersen, 1994, Program analysis and specialization for the C programming language
10.1145/143165.143180
10.1007/978-1-4615-2361-1_3
calder, 1999, value profiling and optimization, J Instruction-Level Parallelism, 1
10.1109/MICRO.1997.645816
10.1109/DAC.1999.782199
10.1109/MICRO.1997.645817
10.1007/978-1-4757-3169-9
10.1007/978-1-4757-6422-2
10.1145/337292.337423
10.1145/375977.375978
10.1145/290833.290837
hanono, 1998, Instruction selection, resource allocation, and scheduling in the AVIV retargetable code generator, Proceedings 1998 Design and Automation Conference 35th DAC (Cat No 98CH36175) DAC, 510, 10.1145/277044.277184
10.1109/HSC.1999.777381
tiwari, 1996, instruction level power analysis and optimization of software, J VLSI Signal Processing Syst, 13, 223, 10.1007/BF01130407
10.1145/216636.216658
10.1007/978-1-4615-2307-9
10.1145/335043.335044
10.1109/ISSS.2000.874049
mehta, 1997, Techniques for low energy software, Proceedings of 1997 International Symposium on Low Power Electronics and Design LPE, 72, 10.1145/263272.263286
esakkimuthu, 2000, memory system energy: influence of hardware-software optimizations, ISLPED 00 the 2000 International Symposium on Low Power Electronics and Design (Cat No 00TH8514) LPE-00, 244, 10.1109/LPE.2000.155291
li, 1997, a framework for estimating and minimizing energy dissipation of embedded hw/sw systems, Proc DAC— Design Automation Conf, 188
10.1007/978-1-4757-2849-1
catthoor, 1998, system-level transformation for low power data transfer and storage, Low-Power CMOS Design
10.1016/0096-0551(93)90005-L
10.1145/158511.158707
chirokoff, 1999, combining program and data specialization, Proc ACM SIGPLAN Workshop Partial Evaluation and Semantics-Based Program Manipulation (PEPM 99), 45
jones, 1993, Partial Evaluation and Automatic Program Generation
wolf, 2001, Computers as Components— Principles of Embedded Computing System Design
10.1109/5.558716
10.1109/5.558718
vijaykrishnan, 2000, Energy-driven integrated hardware-software optimizations using SimplePower, Proceedings of 27th International Symposium on Computer Architecture (IEEE Cat No RS00201) ISCA, 95, 10.1145/339647.339659
10.1007/978-1-4757-6420-8
10.1109/98.683740
10.1109/LPE.1994.573195
sudarsanam, 1998, Code optimization libraries for retargetable compilation for embedded digital signal processors
marwedel, 1995, Code Generation for Embedded Processors
chou, 1994, software scheduling in the co-synthesis of reactive real-time systems, 31st Design Automation Conference, 1, 10.1145/196244.196247
paulin, 1994, codesyn: a retargetable code synthesis system, Proc 7th Int Symp High Level Synthesis
10.1145/237090.237173
10.1109/18.485714
10.1145/143165.143223
lepak, 2000, On the value locality of store instructions, Proceedings of 27th International Symposium on Computer Architecture (IEEE Cat No RS00201) ISCA, 182, 10.1145/339647.339678