AutoRex: An automated post-silicon clock tuning tool

Post-silicon clock-tuning is a technique used as part of speed-debug efforts to increase the allowable clock frequency of a chip. These days, it is not uncommon for high-end microprocessors to have cores containing a few thousand clock-tuning elements (i.e., variable-delay buffers). Each such buffer can be assigned to one of several possible discrete delay values, as part of the post-silicon speed debugging process. With the proper mix of assignments, many chips that initially could not meet targeted speed requirements, can now run within specification. With thousands of tunable buffers available on chip, the possible combination of assignments to the delay values is quite large. In addition, process variation causes the same design, once fabricated into silicon, to have different critical paths across different chips. Thus a specific buffer-delay assignment that most improves clock frequency for some chips may not be optimal for all chips. In this paper, we propose a tool we call AutoRex, that produces clock-tuning assignments automatically. AutoRex operates by taking data from a volume experiment across multiple process corners and analyzes this data using Satisfiability Modulo Theory (SMT) solvers to create a single “recipe” for delay buffer assignments such that the clock frequency of the chip is improved as much as possible over the entire sample of chips. Our results show up to a 9% improvement in frequency using AutoRex.

[1]  E. Alon,et al.  The implementation of a 2-core, multi-threaded itanium family processor , 2006, IEEE Journal of Solid-State Circuits.

[2]  John P. Fishburn,et al.  Clock Skew Optimization , 1990, IEEE Trans. Computers.

[3]  C. Webb,et al.  A scalable X86 CPU design for 90 nm process , 2004, 2004 IEEE International Solid-State Circuits Conference (IEEE Cat. No.04CH37519).

[4]  Ran Ginosar,et al.  A clock tuning circuit for system–on–chip , 2003, Proceedings of the 28th European Solid-State Circuits Conference.

[5]  S. Naffziger,et al.  Clock distribution on a dual-core, multi-threaded Itanium/spl reg/ family microprocessor , 2005, 2005 International Conference on Integrated Circuit Design and Technology, 2005. ICICDT 2005..

[6]  Chandramouli V. Kashyap,et al.  Silicon Speedpath Measurement and Feedback into EDA flows , 2007, 2007 44th ACM/IEEE Design Automation Conference.

[7]  Jeng-Liang Tsai,et al.  A yield improvement methodology using pre- and post-silicon statistical clock scheduling , 2004, IEEE/ACM International Conference on Computer Aided Design, 2004. ICCAD-2004..

[8]  Sandip Kundu,et al.  An Automatic Post Silicon Clock Tuning System for Improving System Performance based on Tester Measurements , 2008, 2008 IEEE International Test Conference.

[9]  L. D. Moura,et al.  The YICES SMT Solver , 2006 .

[10]  Albert Oliveras,et al.  Decision Procedures for SAT, SAT Modulo Theories and Beyond. The BarcelogicTools , 2005, LPAR.

[11]  Amit Goel,et al.  Architecting Solvers for SAT Modulo Theories: Nelson-Oppen with DPLL , 2007, FroCoS.

[12]  Luca Benini,et al.  Dynamic Thermal Clock Skew Compensation using Tunable Delay Buffers , 2006, ISLPED'06 Proceedings of the 2006 International Symposium on Low Power Electronics and Design.

[13]  Tetsuya Higuchi,et al.  Post-fabrication clock timing adjustment for digital LSIs with genetic algorithms ensuring timing margins , 2004, 2004 IEEE International Conference on Systems, Man and Cybernetics (IEEE Cat. No.04CH37583).

[14]  Cesare Tinelli,et al.  Solving SAT and SAT Modulo Theories: From an abstract Davis--Putnam--Logemann--Loveland procedure to DPLL(T) , 2006, JACM.

[15]  Robert E. Shostak,et al.  Deciding Combinations of Theories , 1982, JACM.

[16]  David L. Dill,et al.  Checking Satisfiability of First-Order Formulas by Incremental Translation to SAT , 2002, CAV.

[17]  Doug Josephson,et al.  The good, the bad, and the ugly of silicon debug , 2006, 2006 43rd ACM/IEEE Design Automation Conference.

[18]  Li-C. Wang,et al.  On silicon-based speed path identification , 2005, 23rd IEEE VLSI Test Symposium (VTS'05).