MOUSETRAP: Designing High-Speed Asynchronous Digital...

24
1 MOUSETRAP: Designing High-Speed Asynchronous Digital Pipelines Montek Singh Univ. of North Carolina, Chapel Hill, NC (formerly at Columbia University) Steven M. Nowick Columbia University, New York, NY 2 Contribution Pipeline style that is: asynchronous: avoids problems of high-speed global clock very highspeed naturally elastic: hold dynamically-variable # of data items uses simple local timing constraints : one-sided robustly support variablespeed environments wellmatched for finegrain datapaths Publications: M. Singh and S.M. Nowick, “MOUSETRAP: High-Speed Transition-Signaling Asynchronous Pipelines.” IEEE Transactions on VLSI Systems, vol. 15:6, pp. 684-698 (June 2007) M. Singh and S.M. Nowick, “Ultra-High-Speed Transition-Signaling Asynchronous Pipelines.” Proc. of IEEE Int. Conf. on Computer Design (ICCD), Austin, TX (Sept. 2001)

Transcript of MOUSETRAP: Designing High-Speed Asynchronous Digital...

Page 1: MOUSETRAP: Designing High-Speed Asynchronous Digital Pipelinescs4823/handouts/mousetrap-overview-11-28 … · 2 3 MOUSETRAP Pipelines Simple asynchronous implementation style, uses…

1

MOUSETRAP: Designing High-Speed Asynchronous Digital Pipelines

Montek Singh Univ. of North Carolina, Chapel Hill, NC

(formerly at Columbia University)

Steven M. Nowick Columbia University, New York, NY

2

Contribution Pipeline style that is:

l  asynchronous: avoids problems of high-speed global clock

l  very  high-­‐‑speed

l  naturally  elastic: hold dynamically-variable # of data items

l  uses  simple  local  timing  constraints  : one-sided

l  robustly  support  variable-­‐‑speed  environments

l well-­‐‑matched  for  fine-­‐‑grain  datapaths

Publications: M. Singh and S.M. Nowick, “MOUSETRAP: High-Speed Transition-Signaling Asynchronous Pipelines.” IEEE Transactions on VLSI Systems, vol. 15:6, pp. 684-698 (June 2007) M. Singh and S.M. Nowick, “Ultra-High-Speed Transition-Signaling Asynchronous Pipelines.” Proc. of IEEE Int. Conf. on Computer Design (ICCD), Austin, TX (Sept. 2001)

Page 2: MOUSETRAP: Designing High-Speed Asynchronous Digital Pipelinescs4823/handouts/mousetrap-overview-11-28 … · 2 3 MOUSETRAP Pipelines Simple asynchronous implementation style, uses…

2

3

MOUSETRAP Pipelines

Simple asynchronous implementation style, uses…

l  level-­‐‑sensitive  D-­‐‑latches  (not  flipflops) l  simple  stage  controller: 1 gate/pipeline stage

l  single-­‐‑rail  bundled  data:     synchronous style logic blocks (1 wire/bit, with matched delay)

Target = static logic blocks

Goal: very fast cycle time

l  simple inter-stage communication

4

MOUSETRAP Pipelines

“MOUSETRAP”: uses a “capture-pass protocol”

Latches …: l  normally transparent: before new data arrives

l  become opaque: after data arrives (= “capture” data)

Control Signaling: “transition-­‐‑signaling”=  2-­‐‑phase l  simple “req/ack” protocol = only 2 events per handshake (not 4) l  no “return-to-zero” l  each transition (up/down) signals a distinct operation

Page 3: MOUSETRAP: Designing High-Speed Asynchronous Digital Pipelinescs4823/handouts/mousetrap-overview-11-28 … · 2 3 MOUSETRAP Pipelines Simple asynchronous implementation style, uses…

3

5

reqN

ackN-1

reqN+1

ackN

Data Latch

Latch Controller

doneN

Data in Data out

Stage N Stage N-1 Stage N+1

En

MOUSETRAP: A Basic FIFO Stages communicate using transition-­‐‑signaling:

1  transition per  data  item!

1st data item flowing through the pipeline

6

reqN

ackN-1

reqN+1

ackN

Data Latch

Latch Controller

doneN

Data in Data out

Stage N Stage N-1 Stage N+1

En

MOUSETRAP: A Basic FIFO Stages communicate using transition-­‐‑signaling:

1  transition per  data  item!

1st data item flowing through the pipeline

Page 4: MOUSETRAP: Designing High-Speed Asynchronous Digital Pipelinescs4823/handouts/mousetrap-overview-11-28 … · 2 3 MOUSETRAP Pipelines Simple asynchronous implementation style, uses…

4

7

reqN

ackN-1

reqN+1

ackN

Data Latch

Latch Controller

doneN

Data in Data out

Stage N Stage N-1 Stage N+1

En

MOUSETRAP: A Basic FIFO Stages communicate using transition-­‐‑signaling:

1  transition per  data  item!

1st data item flowing through the pipeline

8

reqN

ackN-1

reqN+1

ackN

Data Latch

Latch Controller

doneN

Data in Data out

Stage N Stage N-1 Stage N+1

En

MOUSETRAP: A Basic FIFO Stages communicate using transition-­‐‑signaling:

1  transition per  data  item!

1st data item flowing through the pipeline

Page 5: MOUSETRAP: Designing High-Speed Asynchronous Digital Pipelinescs4823/handouts/mousetrap-overview-11-28 … · 2 3 MOUSETRAP Pipelines Simple asynchronous implementation style, uses…

5

9

reqN

ackN-1

reqN+1

ackN

Data Latch

Latch Controller

doneN

Data in Data out

Stage N Stage N-1 Stage N+1

En

MOUSETRAP: A Basic FIFO Stages communicate using transition-­‐‑signaling:

1  transition per  data  item!

1st data item flowing through the pipeline

10

reqN

ackN-1

reqN+1

ackN

Data Latch

Latch Controller

doneN

Data in Data out

Stage N Stage N-1 Stage N+1

En

MOUSETRAP: A Basic FIFO Stages communicate using transition-­‐‑signaling:

1  transition per  data  item!

1st data item flowing through the pipeline

Page 6: MOUSETRAP: Designing High-Speed Asynchronous Digital Pipelinescs4823/handouts/mousetrap-overview-11-28 … · 2 3 MOUSETRAP Pipelines Simple asynchronous implementation style, uses…

6

11

reqN

ackN-1

reqN+1

ackN

Data Latch

Latch Controller

doneN

Data in Data out

Stage N Stage N-1 Stage N+1

En

MOUSETRAP: A Basic FIFO Stages communicate using transition-­‐‑signaling:

1  transition per  data  item!

1st data item flowing through the pipeline

12

reqN

ackN-1

reqN+1

ackN

Data Latch

Latch Controller

doneN

Data in Data out

Stage N Stage N-1 Stage N+1

En

MOUSETRAP: A Basic FIFO Stages communicate using transition-­‐‑signaling:

1  transition per  data  item!

1st data item flowing through the pipeline

Page 7: MOUSETRAP: Designing High-Speed Asynchronous Digital Pipelinescs4823/handouts/mousetrap-overview-11-28 … · 2 3 MOUSETRAP Pipelines Simple asynchronous implementation style, uses…

7

13

reqN

ackN-1

reqN+1

ackN

Data Latch

Latch Controller

doneN

Data in Data out

Stage N Stage N-1 Stage N+1

En

MOUSETRAP: A Basic FIFO Stages communicate using transition-­‐‑signaling:

1  transition per  data  item!

1st data item flowing through the pipeline 1st data item flowing through the pipeline 2nd data item flowing through the pipeline

14

reqN

ackN-1

reqN+1

ackN

Data Latch

Latch Controller

doneN

Data in Data out

Stage N Stage N-1 Stage N+1

En

MOUSETRAP: A Basic FIFO Stages communicate using transition-­‐‑signaling:

1  transition per  data  item!

1st data item flowing through the pipeline 1st data item flowing through the pipeline 2nd data item flowing through the pipeline

Page 8: MOUSETRAP: Designing High-Speed Asynchronous Digital Pipelinescs4823/handouts/mousetrap-overview-11-28 … · 2 3 MOUSETRAP Pipelines Simple asynchronous implementation style, uses…

8

15

reqN

ackN-1

reqN+1

ackN

Data Latch

Latch Controller

doneN

Data in Data out

Stage N Stage N-1 Stage N+1

En

MOUSETRAP: A Basic FIFO Stages communicate using transition-­‐‑signaling:

1  transition per  data  item!

1st data item flowing through the pipeline 1st data item flowing through the pipeline 2nd data item flowing through the pipeline

16

reqN

ackN-1

reqN+1

ackN

Data Latch

Latch Controller

doneN

Data in Data out

Stage N Stage N-1 Stage N+1

En

MOUSETRAP: A Basic FIFO Stages communicate using transition-­‐‑signaling:

1  transition per  data  item!

1st data item flowing through the pipeline 1st data item flowing through the pipeline 2nd data item flowing through the pipeline

Page 9: MOUSETRAP: Designing High-Speed Asynchronous Digital Pipelinescs4823/handouts/mousetrap-overview-11-28 … · 2 3 MOUSETRAP Pipelines Simple asynchronous implementation style, uses…

9

17

reqN

ackN-1

reqN+1

ackN

Data Latch

Latch Controller

doneN

Data in Data out

Stage N Stage N-1 Stage N+1

En

MOUSETRAP: A Basic FIFO Stages communicate using transition-­‐‑signaling:

1  transition per  data  item!

1st data item flowing through the pipeline 1st data item flowing through the pipeline 2nd data item flowing through the pipeline

18

reqN

ackN-1

reqN+1

ackN

Data Latch

Latch Controller

doneN

Data in Data out

Stage N Stage N-1 Stage N+1

En

MOUSETRAP: A Basic FIFO Stages communicate using transition-­‐‑signaling:

1  transition per  data  item!

1st data item flowing through the pipeline 1st data item flowing through the pipeline 2nd data item flowing through the pipeline

Page 10: MOUSETRAP: Designing High-Speed Asynchronous Digital Pipelinescs4823/handouts/mousetrap-overview-11-28 … · 2 3 MOUSETRAP Pipelines Simple asynchronous implementation style, uses…

10

19

reqN

ackN-1

reqN+1

ackN

Data Latch

Latch Controller

doneN

Data in Data out

Stage N Stage N-1 Stage N+1

En

MOUSETRAP: A Basic FIFO Stages communicate using transition-­‐‑signaling:

1  transition per  data  item!

1st data item flowing through the pipeline 1st data item flowing through the pipeline 2nd data item flowing through the pipeline

20

reqN

ackN-1

reqN+1

ackN

Data Latch

Latch Controller

doneN

Data in Data out

Stage N Stage N-1 Stage N+1

En

MOUSETRAP: A Basic FIFO Stages communicate using transition-­‐‑signaling:

1  transition per  data  item!

1st data item flowing through the pipeline 1st data item flowing through the pipeline 2nd data item flowing through the pipeline

Page 11: MOUSETRAP: Designing High-Speed Asynchronous Digital Pipelinescs4823/handouts/mousetrap-overview-11-28 … · 2 3 MOUSETRAP Pipelines Simple asynchronous implementation style, uses…

11

21

MOUSETRAP: A Basic FIFO (contd.) Latch controller (XNOR) acts as “phase  converter”:

l  2 distinct transitions (up or down) è pulsed latch enable

2  transitions  per    latch  cycle

reqN

ackN-1

reqN+1

ackN

Data Latch

Latch Controller

doneN

Data in Data out

Stage N Stage N-1 Stage N+1

En

22

MOUSETRAP: A Basic FIFO (contd.) Latch controller (XNOR) acts as “phase  converter”:

l  2 distinct transitions (up or down) è pulsed latch enable

2  transitions  per    latch  cycle

reqN

ackN-1

reqN+1

ackN

Data Latch

Latch Controller

doneN

Data in Data out

Stage N Stage N-1 Stage N+1

En

Page 12: MOUSETRAP: Designing High-Speed Asynchronous Digital Pipelinescs4823/handouts/mousetrap-overview-11-28 … · 2 3 MOUSETRAP Pipelines Simple asynchronous implementation style, uses…

12

23

MOUSETRAP: A Basic FIFO (contd.) Latch controller (XNOR) acts as “phase  converter”:

l  2 distinct transitions (up or down) è pulsed latch enable

2  transitions  per    latch  cycle

reqN

ackN-1

reqN+1

ackN

Data Latch

Latch Controller

doneN

Data in Data out

Stage N Stage N-1 Stage N+1

En

24

MOUSETRAP: A Basic FIFO (contd.) Latch controller (XNOR) acts as “phase  converter”:

l  2 distinct transitions (up or down) è pulsed latch enable

2  transitions  per    latch  cycle

reqN

ackN-1

reqN+1

ackN

Data Latch

Latch Controller

doneN

Data in Data out

Stage N Stage N-1 Stage N+1

En

Page 13: MOUSETRAP: Designing High-Speed Asynchronous Digital Pipelinescs4823/handouts/mousetrap-overview-11-28 … · 2 3 MOUSETRAP Pipelines Simple asynchronous implementation style, uses…

13

25

MOUSETRAP: A Basic FIFO (contd.) Latch controller (XNOR) acts as “phase  converter”:

l  2 distinct transitions (up or down) è pulsed latch enable

2  transitions  per    latch  cycle

reqN

ackN-1

reqN+1

ackN

Data Latch

Latch Controller

doneN

Data in Data out

Stage N Stage N-1 Stage N+1

En

26

MOUSETRAP: A Basic FIFO (contd.) Latch controller (XNOR) acts as “phase  converter”:

l  2 distinct transitions (up or down) è pulsed latch enable

2  transitions  per    latch  cycle

reqN

ackN-1

reqN+1

ackN

Data Latch

Latch Controller

doneN

Data in Data out

Stage N Stage N-1 Stage N+1

En

Page 14: MOUSETRAP: Designing High-Speed Asynchronous Digital Pipelinescs4823/handouts/mousetrap-overview-11-28 … · 2 3 MOUSETRAP Pipelines Simple asynchronous implementation style, uses…

14

27

MOUSETRAP: A Basic FIFO (contd.) Latch controller (XNOR) acts as “phase  converter”:

l  2 distinct transitions (up or down) è pulsed latch enable

2  transitions  per    latch  cycle

reqN

ackN-1

reqN+1

ackN

Data Latch

Latch Controller

doneN

Data in Data out

Stage N Stage N-1 Stage N+1

En

28

MOUSETRAP: A Basic FIFO (contd.) Latch controller (XNOR) acts as “phase  converter”:

l  2 distinct transitions (up or down) è pulsed latch enable

2  transitions  per    latch  cycle

reqN

ackN-1

reqN+1

ackN

Data Latch

Latch Controller

doneN

Data in Data out

Stage N Stage N-1 Stage N+1

En

Page 15: MOUSETRAP: Designing High-Speed Asynchronous Digital Pipelinescs4823/handouts/mousetrap-overview-11-28 … · 2 3 MOUSETRAP Pipelines Simple asynchronous implementation style, uses…

15

29

MOUSETRAP: A Basic FIFO (contd.) Latch controller (XNOR) acts as “phase  converter”:

l  2 distinct transitions (up or down) è pulsed latch enable

2  transitions  per    latch  cycle

reqN

ackN-1

reqN+1

ackN

Data Latch

Latch Controller

doneN

Data in Data out

Stage N Stage N-1 Stage N+1

En

Latch is disabled when current  stage  is  “done”

30

MOUSETRAP: A Basic FIFO (contd.) Latch controller (XNOR) acts as “phase  converter”:

l  2 distinct transitions (up or down) è pulsed latch enable

2  transitions  per    latch  cycle

reqN

ackN-1

reqN+1

ackN

Data Latch

Latch Controller

doneN

Data in Data out

Stage N Stage N-1 Stage N+1

En

Page 16: MOUSETRAP: Designing High-Speed Asynchronous Digital Pipelinescs4823/handouts/mousetrap-overview-11-28 … · 2 3 MOUSETRAP Pipelines Simple asynchronous implementation style, uses…

16

31

MOUSETRAP: A Basic FIFO (contd.) Latch controller (XNOR) acts as “phase  converter”:

l  2 distinct transitions (up or down) è pulsed latch enable

2  transitions  per    latch  cycle

reqN

ackN-1

reqN+1

ackN

Data Latch

Latch Controller

doneN

Data in Data out

Stage N Stage N-1 Stage N+1

En

32

MOUSETRAP: A Basic FIFO (contd.) Latch controller (XNOR) acts as “phase  converter”:

l  2 distinct transitions (up or down) è pulsed latch enable

2  transitions  per    latch  cycle

reqN

ackN-1

reqN+1

ackN

Data Latch

Latch Controller

doneN

Data in Data out

Stage N Stage N-1 Stage N+1

En

Page 17: MOUSETRAP: Designing High-Speed Asynchronous Digital Pipelinescs4823/handouts/mousetrap-overview-11-28 … · 2 3 MOUSETRAP Pipelines Simple asynchronous implementation style, uses…

17

33

MOUSETRAP: A Basic FIFO (contd.) Latch controller (XNOR) acts as “phase  converter”:

l  2 distinct transitions (up or down) è pulsed latch enable

2  transitions  per    latch  cycle

reqN

ackN-1

reqN+1

ackN

Data Latch

Latch Controller

doneN

Data in Data out

Stage N Stage N-1 Stage N+1

En

34

MOUSETRAP: A Basic FIFO (contd.) Latch controller (XNOR) acts as “phase  converter”:

l  2 distinct transitions (up or down) è pulsed latch enable

2  transitions  per    latch  cycle

reqN

ackN-1

reqN+1

ackN

Data Latch

Latch Controller

doneN

Data in Data out

Stage N Stage N-1 Stage N+1

En

Page 18: MOUSETRAP: Designing High-Speed Asynchronous Digital Pipelinescs4823/handouts/mousetrap-overview-11-28 … · 2 3 MOUSETRAP Pipelines Simple asynchronous implementation style, uses…

18

35

MOUSETRAP: A Basic FIFO (contd.) Latch controller (XNOR) acts as “phase  converter”:

l  2 distinct transitions (up or down) è pulsed latch enable

2  transitions  per    latch  cycle

reqN

ackN-1

reqN+1

ackN

Data Latch

Latch Controller

doneN

Data in Data out

Stage N Stage N-1 Stage N+1

En

Latch is re-enabled when next  stage  is  “done”

36

Detailed Controller Operation

ã One pulse per data item flowing through: l  down transition: caused by “done” of N l  up transition: caused by “done” of N+1

ã No  minimum  pulse  width  constraint! l  simply, down transition should start “early enough” l  can be “negative width” (no pulse!)

ack  from N+1

Stage N’s Latch Controller

to Latch

done  from N

Page 19: MOUSETRAP: Designing High-Speed Asynchronous Digital Pipelinescs4823/handouts/mousetrap-overview-11-28 … · 2 3 MOUSETRAP Pipelines Simple asynchronous implementation style, uses…

19

37

MOUSETRAP: FIFO Cycle Time

reqN

ackN-1

reqN+1

ackN

Data Latch

Latch Controller

doneN

Data in Data out

Stage N Stage N-1 Stage N+1

En

38

MOUSETRAP: FIFO Cycle Time

reqN

ackN-1

reqN+1

ackN

Data Latch

Latch Controller

doneN

Data in Data out

Stage N Stage N-1 Stage N+1

En

N computes

1

Page 20: MOUSETRAP: Designing High-Speed Asynchronous Digital Pipelinescs4823/handouts/mousetrap-overview-11-28 … · 2 3 MOUSETRAP Pipelines Simple asynchronous implementation style, uses…

20

39

MOUSETRAP: FIFO Cycle Time

reqN

ackN-1

reqN+1

ackN

Data Latch

Latch Controller

doneN

Data in Data out

Stage N Stage N-1 Stage N+1

En

Fast self-loop: N disables itself

2

1

40

MOUSETRAP: FIFO Cycle Time

reqN

ackN-1

reqN+1

ackN

Data Latch

Latch Controller

doneN

Data in Data out

Stage N Stage N-1 Stage N+1

En

1

N+1 computes

2

Page 21: MOUSETRAP: Designing High-Speed Asynchronous Digital Pipelinescs4823/handouts/mousetrap-overview-11-28 … · 2 3 MOUSETRAP Pipelines Simple asynchronous implementation style, uses…

21

41

MOUSETRAP: FIFO Cycle Time

reqN

ackN-1

reqN+1

ackN

Data Latch

Latch Controller

doneN

Data in Data out

Stage N Stage N-1 Stage N+1

En

N computes

1 2

3

N re-enabled to compute

42

MOUSETRAP: FIFO Cycle Time

Cycle Time = 2 TLATCH + TXNOR

reqN

ackN-1

reqN+1

ackN

Data Latch

Latch Controller

doneN

Data in Data out

Stage N Stage N-1 Stage N+1

En

1 2

3

Page 22: MOUSETRAP: Designing High-Speed Asynchronous Digital Pipelinescs4823/handouts/mousetrap-overview-11-28 … · 2 3 MOUSETRAP Pipelines Simple asynchronous implementation style, uses…

22

43

Stage N+1

logic

delay

Stage N

Data Latch

Latch Controller

doneN

logic

delay

Stage N-1

logic

delay reqN

ackN-1

reqN+1

ackN

MOUSETRAP: Pipeline With Logic

Logic Blocks: can use standard single-rail (non-hazard-free) “Bundling” Requirement:

l  each “req” must arrive after  data inputs valid and stable

Simple Extension to FIFO: insert logic  block  +  matching  delay in each stage

44

Timing Analysis Main Timing Constraint: avoid “data overrun”

Data  must  be  safely  “captured”  by  Stage  N before  new  inputs  arrive  from  Stage  N-­‐‑1 l  Simple 1-sided timing constraint: fast latch disable l  Stage N’s “self-loop” faster than entire path through previous stage

Stage N

Data Latch

Latch Controller

doneN

logic

delay

Stage N-1

logic

delay reqN

ackN-1

reqN+1

ackN

Page 23: MOUSETRAP: Designing High-Speed Asynchronous Digital Pipelinescs4823/handouts/mousetrap-overview-11-28 … · 2 3 MOUSETRAP Pipelines Simple asynchronous implementation style, uses…

23

45

Timing Analysis Main Timing Constraint: avoid “data overrun”

Data  must  be  safely  “captured”  by  Stage  N before  new  inputs  arrive  from  Stage  N-­‐‑1 l  simple 1-sided timing constraint: fast latch disable l  Stage N’s “self-loop” faster than entire path through previous

stage

Stage N

Data Latch

Latch Controller

doneN

logic

delay

Stage N-1

logic

delay reqN

ackN-1

reqN+1

ackN

46

Timing Analysis Main Timing Constraint: avoid “data overrun”

Data  must  be  safely  “captured”  by  Stage  N before  new  inputs  arrive  from  Stage  N-­‐‑1 l  simple 1-sided timing constraint: fast latch disable l  Stage N’s “self-loop” faster than entire path through previous

stage

Stage N

Data Latch

Latch Controller

doneN

logic

delay

Stage N-1

logic

delay reqN

ackN-1

reqN+1

ackN

Page 24: MOUSETRAP: Designing High-Speed Asynchronous Digital Pipelinescs4823/handouts/mousetrap-overview-11-28 … · 2 3 MOUSETRAP Pipelines Simple asynchronous implementation style, uses…

24

47

Timing Analysis Main Timing Constraint: avoid “data overrun”

Data  must  be  safely  “captured”  by  Stage  N before  new  inputs  arrive  from  Stage  N-­‐‑1 l  simple 1-sided timing constraint: fast latch disable l  Stage N’s “self-loop” faster than entire path through previous

stage

Stage N

Data Latch

Latch Controller

doneN

logic

delay

Stage N-1

logic

delay reqN

ackN-1

reqN+1

ackN