Correct-by-construction microarchitectural pipelining

This paper presents a method for correct-by-construction microarchitectural pipelining that handles cyclic systems with dependencies between iterations. Our method combines previously known bypass and retiming transformations with a few transformations valid only for elastic systems with early evaluation (namely, empty FIFO insertion, FIFO capacity sizing, insertion of anti-tokens, and introducing early evaluation multiplexors). By converting the design to a synchronous elastic form and then applying this extended set of transformations, one can pipeline a functional specification with an automatically generated distributed controller that implements stalling logic resolving data hazards off the critical path of the design. We have developed an interactive toolkit for exploring elastic microarchitectural transformations. The method is illustrated by pipelining a few simple examples of instruction set architecture ISA specifications.

[1]  Charles E. Leiserson,et al.  Retiming synchronous circuitry , 1988, Algorithmica.

[2]  Martin C. Rinard,et al.  High-level automatic pipelining for sequential circuits , 2001, International Symposium on System Synthesis (IEEE Cat. No.01EX526).

[3]  Jordi Cortadella,et al.  Synchronous Elastic Circuits with Early Evaluation and Token Counterflow , 2007, 2007 44th ACM/IEEE Design Automation Conference.

[4]  Alberto L. Sangiovanni-Vincentelli,et al.  Theory of latency-insensitive design , 2001, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[5]  Alice C. Parker,et al.  Sehwa: a software package for synthesis of pipelines from behavioral specifications , 1988, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[6]  Erich Bloch,et al.  The engineering design of the stretch computer , 1959, IRE-AIEE-ACM '59 (Eastern).

[7]  Luca P. Carloni,et al.  Using functional independence conditions to optimize the performance of latency-insensitive systems , 2007, ICCAD 2007.

[8]  Pradip Bose,et al.  Synchronous interlocked pipelines , 2002, Proceedings Eighth International Symposium on Asynchronous Circuits and Systems.

[9]  Daniel Kroening,et al.  Automated pipeline design , 2001, Proceedings of the 38th Design Automation Conference (IEEE Cat. No.01CH37232).

[10]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

[11]  Jordi Cortadella,et al.  Synthesis of synchronous elastic architectures , 2006, 2006 43rd ACM/IEEE Design Automation Conference.

[12]  Mark Aagaard,et al.  Simplifying the design and automating the verification of pipelines with structural hazards , 2005, TODE.

[13]  Jordi Cortadella,et al.  Performance analysis of concurrent systems with early evaluation , 2006, ICCAD.

[14]  M. Singh,et al.  Counterflow Pipelining: Architectural Support for Preemption in Asynchronous Systems using Anti-Tokens , 2006, 2006 IEEE/ACM International Conference on Computer Aided Design.

[15]  Jean-Christophe Le Lann,et al.  POLYCHRONY for System Design , 2003, J. Circuits Syst. Comput..

[16]  Richard M. Karp,et al.  A characterization of the minimum cycle mean in a digraph , 1978, Discret. Math..

[17]  John Launchbury,et al.  Elementary Microarchitecture Algebra , 1999, CAV.

[18]  Jordi Cortadella,et al.  Synchronous Elastic Networks , 2006, 2006 Formal Methods in Computer Aided Design.

[19]  James C. Hoe,et al.  Synthesis of operation-centric hardware descriptions , 2000, IEEE/ACM International Conference on Computer Aided Design. ICCAD - 2000. IEEE/ACM Digest of Technical Papers (Cat. No.00CH37140).

[20]  Soha Hassoun,et al.  Using precomputation in architecture and logic resynthesis , 1998, 1998 IEEE/ACM International Conference on Computer-Aided Design. Digest of Technical Papers (IEEE Cat. No.98CB36287).

[21]  Alberto L. Sangiovanni-Vincentelli,et al.  Coping with Latency in SOC Design , 2002, IEEE Micro.