We propose a design methodology for exploiting certain frequently occurring operand subword values to reduce energy consumption in integer functional units (FUs). Our methodology partitions an FU into subunits that operate on disjoint operand subwords; a subunit saves energy when its input is an "exploitable" subword value combination. In practice, the applicability and energy optimization of such a method depend significantly upon a number of factors ignored in previous work: the function implemented the hardware topology of the FU, and the application. Our methodology considers all these factors. We use a fast, energy-optimal partitioning algorithm based on an accurate energy model derived from detailed circuit-level simulations and apply it to several different integer FUs. Our results show average energy savings between 20% and 28% (an improvement of 28-40% with respect to previous techniques) across several SPEC CPU2000 benchmarks for different FUs with negligible delay and reasonable area overheads.
['Kaushal R. Gandhi', 'Nihar R. Mahapatra']
Dynamically exploiting frequent operand values for energy efficiency in integer functional units