On applying erroneous clock gating conditions to further cut down power

All of today's known clock gating techniques only disable clocks on valid (”correct”) clock gating conditions, like idle states or observability don't cares (ODC), whose applying will not change the circuit functionality. In this paper, we explore a technique that allows shutting down certain clocks during invalid cycles, which if applied alone will certainly cause erroneous results. However, the erroneous results will be corrected either during the current or later stages by injecting other clock gating conditions to cancel out each other's error effects before they reach the primary outputs. Under this model, conditions across multiple flip-flop stages can also be analyzed to locate easily correctable erroneous clock gating conditions. Experimental results show that by using this error cancellation technique, a total power (including dynamic and leakage power) cut of up to 23% and in average of around 6% could be stably achieved, no matter with or without applying Power Compiler (which brought a power cut of 4% in average) together. The results indicate that the power saving conditions found by this new technique were nearly orthogonal (independent) to what can be done by the popular commercial power optimization tool. The idea of these new multi-stage logic error cancellation operations can potentially be applied to other sequential logic synthesis problems as well.

[1]  Malgorzata Marek-Sadowska,et al.  Theory of wire addition and removal in combinational Boolean networks , 2007 .

[2]  Luca Benini,et al.  Symbolic synthesis of clock-gating logic for power optimization of synchronous controllers , 1999, TODE.

[3]  Yiran Chen,et al.  Deterministic clock gating for microprocessor power reduction , 2003, The Ninth International Symposium on High-Performance Computer Architecture, 2003. HPCA-9 2003. Proceedings..

[4]  Luca Benini,et al.  Automatic synthesis of gated clocks for power reduction in sequential circuits , 1994 .

[5]  M. Ray Mercer,et al.  A Topological Search Algorithm for ATPG , 1987, 24th ACM/IEEE Design Automation Conference.

[6]  Pietro Babighian,et al.  PowerQuest: Trace Driven Data Mining for Power Optimization , 2007, 2007 Design, Automation & Test in Europe Conference & Exhibition.

[7]  Enrico Macii,et al.  Power-aware clock tree planning , 2004, ISPD '04.

[8]  Michael H. Schulz,et al.  Advanced automatic test pattern generation and redundancy identification techniques , 1988, [1988] The Eighteenth International Symposium on Fault-Tolerant Computing. Digest of Papers.

[9]  Gila Kamhi,et al.  A new paradigm for synthesis and propagation of clock gating conditions , 2008, 2008 45th ACM/IEEE Design Automation Conference.

[10]  Aaron P. Hurst Fast Synthesis of Clock Gates from Existing Logic , 2007 .

[11]  P. R. Menon,et al.  Identification of undetectable faults in combinational circuits , 1989, Proceedings 1989 IEEE International Conference on Computer Design: VLSI in Computers and Processors.

[12]  Luca Benini,et al.  Saving power by synthesizing gated clocks for sequential circuits , 1994, IEEE Design & Test of Computers.

[13]  Yu-Liang Wu,et al.  ECR: A low complexity generalized error cancellation rewiring scheme , 2010, Design Automation Conference.

[14]  Luca Benini,et al.  A scalable algorithm for RTL insertion of gated clocks based on ODCs computation , 2005 .

[15]  Cindy Eisner,et al.  Resurrecting infeasible clock-gating functions , 2009, 2009 46th ACM/IEEE Design Automation Conference.

[16]  Moshe Y. Vardi,et al.  Interactive presentation: PowerQuest: trace driven data mining for power optimization , 2007 .

[17]  Marios C. Papaefthymiou,et al.  Precomputation-based sequential logic optimization for low power , 1994, ICCAD '94.

[18]  Luca Benini,et al.  A scalable algorithm for RTL insertion of gated clocks based on ODCs computation , 2005, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[19]  Giovanni De Micheli,et al.  Observability don't care sets and Boolean relations , 1990, 1990 IEEE International Conference on Computer-Aided Design. Digest of Technical Papers.