Value-sensitive automatic code specialization for embedded software

Eui-Young Chung1, B. Luca, G. DeMicheli1, G. Luculli2, M. Carilli2
1Computer Systems Laboratory, Stanford University, Stanford, CA, USA
2AST, STMicroelectronics, Grenoble, France

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 systems

Tà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&#x2014 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&#x2014 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