Energy-aware opcode design

Embedded processors are required to achieve high performance while running on batteries. Thus, they must exploit all the possible means available to reduce energy consumption while not sacrificing performance. In this work, one technique to reduce energy is explored to intelligently design the instruction-opcodes of a processor based on a target-workload. The optimization is done using a heuristic that not-only minimizes switching between adjacent instructions, but also simplifies the decoding to reduce latches to save dynamic energy. On average, an optimized opcode is able to be decoded using 40-60% less latches in the decoder. In addition, it is shown that a decoder optimized for algorithms that had similar program structure, similar data-types or similar behavior exhibited consistent patterns of energy reduction. The techniques presented in this paper yield an average 10% reduction in the total dynamic energy. It is also shown that this heuristic can be used to achieve similar results on different issue-width processors.

[1]  Andrew N. Sloss,et al.  ARM System Developer's Guide: Designing and Optimizing System Software , 2004 .

[2]  Andrew Wolfe,et al.  Compilation techniques for low energy: an overview , 1994, Proceedings of 1994 IEEE Symposium on Low Power Electronics.

[3]  Jihong Kim,et al.  Low-power data representation , 2000 .

[4]  Jihong Kim,et al.  Opcode encoding for low-power instruction fetch , 1999 .

[5]  Gary S. Tyson,et al.  An energy efficient instruction set synthesis framework for low power embedded system designs , 2005, IEEE Transactions on Computers.

[6]  Sharad Malik,et al.  Instruction level power analysis and optimization of software , 1996, Proceedings of 9th International Conference on VLSI Design.

[7]  Thomas M. Conte,et al.  Treegion Instruction Scheduling in GCC , 2006 .

[8]  Gerhard Fettweis,et al.  Low-energy DSP code generation using a genetic algorithm , 2001, Proceedings 2001 IEEE International Conference on Computer Design: VLSI in Computers and Processors. ICCD 2001.

[9]  Luca Benini,et al.  Reducing power consumption of dedicated processors through instruction set encoding , 1998, Proceedings of the 8th Great Lakes Symposium on VLSI (Cat. No.98TB100222).

[10]  Thomas M. Conte,et al.  Treegion scheduling for wide issue processors , 1998, Proceedings 1998 Fourth International Symposium on High-Performance Computer Architecture.

[11]  Thomas M. Conte,et al.  Unified assign and schedule: a new approach to scheduling for clustered register file microarchitectures , 1998, Proceedings. 31st Annual ACM/IEEE International Symposium on Microarchitecture.

[12]  Jack W. Davidson,et al.  Machine Descriptions to Build Tools for Embedded Systems , 1998, LCTES.

[13]  Cosimo Antonio Prete,et al.  Guest Editors' Introduction: Opportunities and Challenges in Embedded Systems , 2004, IEEE Micro.

[14]  Diego Novillo GCC—An Architectural Overview, Current Status, and Future Directions , 2010 .

[15]  Massoud Pedram,et al.  Low-power RT-level synthesis techniques: a tutorial , 2005 .

[16]  Mahmut T. Kandemir,et al.  Leakage Current: Moore's Law Meets Static Power , 2003, Computer.

[17]  Mary Jane Irwin,et al.  An extended addressing mode for low power , 1997, Proceedings of 1997 International Symposium on Low Power Electronics and Design.

[18]  Andrew S. Tanenbaum,et al.  Structured Computer Organization , 1976 .

[19]  Youssef Saab,et al.  Stochastic evolution: a fast effective heuristic for some generic layout problems , 1991, DAC '90.

[20]  Jihong Kim,et al.  Low - Power Instruction Encoding Techniques , 2001 .

[21]  Uming Ko,et al.  Low-power design techniques for high-performance CMOS adders , 1995, IEEE Trans. Very Large Scale Integr. Syst..

[22]  Thomas M. Conte,et al.  Any-size instruction abbreviation technique for embedded DSPs , 2002, 15th Annual IEEE International ASIC/SOC Conference.