PALS: Plesiochronous and Locally Synchronous Systems

Consider an arbitrary network of communicating modules on a chip, each requiring a local signal telling it when to execute a computational step. There are three common solutions to generating such a local clock signal: (i) by deriving it from a single, central clock source, (ii) by local, free-running oscillators, or (iii) by handshaking between neighboring modules. Conceptually, each of these solutions is the result of a perceived dichotomy in which (sub)systems are either clocked or fully asynchronous, suggesting that the designer’s choice is limited to deciding where to draw the line between synchronous and asynchronous design. In contrast, we take the view that the better question to ask is how synchronous the system can and should be. Based on a distributed clock synchronization algorithm, we present a novel design providing modules with local clocks whose frequency bounds are almost as good as those of corresponding free-running oscillators, yet neighboring modules are guaranteed to have a phase offset substantially smaller than one clock cycle. Concretely, parameters obtained from a 15 nm ASIC implementation running at 2 GHz yield mathematical worst-case bounds of 30ps on phase offset for a $32\times 32$ node grid network.

[1]  Mark R. Greenstreet,et al.  Efficient self-timed interfaces for crossing clock domains , 2003, Ninth International Symposium on Asynchronous Circuits and Systems, 2003. Proceedings..

[2]  Harry D. Foster Trends in functional verification: A 2014 industry study , 2015, 2015 52nd ACM/EDAC/IEEE Design Automation Conference (DAC).

[3]  H. T. Kung,et al.  Synchronizing Large VLSI Processor Arrays , 1983, IEEE Transactions on Computers.

[4]  Alain J. Martin The limitations to delay-insensitivity in asynchronous circuits , 1990 .

[5]  Xin Fan,et al.  Analysis and optimization of pausible clocking based GALS design , 2009, 2009 IEEE International Conference on Computer Design.

[6]  Attila Kinali,et al.  Fast All-Digital Clock Frequency Adaptation Circuit for Voltage Droop Tolerance , 2018, 2018 24th IEEE International Symposium on Asynchronous Circuits and Systems (ASYNC).

[7]  Fabian Kuhn,et al.  Gradient Clock Synchronization Using Reference Broadcasts , 2009, OPODIS.

[8]  William J. Dally,et al.  Low-latency plesiochronous data retiming , 1995, Proceedings Sixteenth Conference on Advanced Research in VLSI.

[9]  Mayler G. A. Martins,et al.  Open Cell Library in 15nm FreePDK Technology , 2015, ISPD.

[10]  Jean-Michel Chabloz,et al.  Globally-Ratiochronous, Locally-Synchronous Systems , 2012 .

[11]  Yoram Moses,et al.  Asynchronous Signalling Processes , 2019, 2019 25th IEEE International Symposium on Asynchronous Circuits and Systems (ASYNC).

[12]  A. Marchioro,et al.  A flexible multi-channel high-resolution time-to-digital converter ASIC , 2000, 2000 IEEE Nuclear Science Symposium. Conference Record (Cat. No.00CH37149).

[13]  Alain J. Martin Compiling communicating processes into delay-insensitive VLSI circuits , 2005, Distributed Computing.

[14]  Yoram Moses,et al.  The Eventual C-Element Theorem for Delay-Insensitive Asynchronous Circuits , 2017, 2017 23rd IEEE International Symposium on Asynchronous Circuits and Systems (ASYNC).

[15]  Kenneth Y. Yun,et al.  Pausible clocking: a first step toward heterogeneous systems , 1996, Proceedings International Conference on Computer Design. VLSI in Computers and Processors.

[16]  Ran Ginosar,et al.  Data synchronization issues in GALS SoCs , 2004, 10th International Symposium on Asynchronous Circuits and Systems, 2004. Proceedings..

[17]  Christoph Lenzen,et al.  Tight bounds for clock synchronization , 2010, JACM.

[18]  Roger Wattenhofer,et al.  On the approximation of the minimum maximum stretch tree problem , 2003 .

[19]  Christoph Lenzen,et al.  Optimal gradient clock synchronization in dynamic networks , 2010, PODC.

[20]  Guy Lemieux,et al.  A Survey and Taxonomy of GALS Design Styles , 2007, IEEE Design & Test of Computers.

[21]  Leonard R. Marino,et al.  General theory of metastable operation , 1981, IEEE Transactions on Computers.