1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.
-
date post
19-Dec-2015 -
Category
Documents
-
view
213 -
download
1
Transcript of 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.
![Page 1: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/1.jpg)
1
A Modular Synchronizing FIFO for NoCs
Vainbaum Yuri
![Page 2: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/2.jpg)
2
A Modular Synchronizing FIFO for NoCs•Paper presented in NOC-2009
Authors :•Tarik Ono -Sun Microsystems•Mark Greenstreet - University of British Columbia
![Page 3: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/3.jpg)
3
Motivation & Purpose of Synchronizing FIFO
Timing Domain 1 Timing Domain 2 Timing Domain 3
Synchronizing FIFO
Synchronizing FIFO
Synchronizing FIFO
Network-on-Chip
•Multiple clock domains in NoC require many FIFOs
![Page 4: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/4.jpg)
4
Synchronizing FIFO Targets
•Design Targets for FIFO: FIFO can be built using standard cells
Easy integration into CAD flow
Modular FIFO design with choice of clockless or clocked interfaces
Modular, simple architecture reduces NoC design time
![Page 5: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/5.jpg)
5
Talk Outline• FIFO Overview
• FIFO BlocksClockless Put and Get InterfaceClocked Put and Get InterfaceFull-Empty Control and Data Store
• FIFO Latency and Throughput
• Implementation Results
![Page 6: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/6.jpg)
6
FIFO Overview: Operation
stage 1 stage 2 stage 3
Put Interface
Get Interface
Sender
Receiver
Timing Domain A
•FIFO consists of number of stages
•Sender communicates with Put Interface, Receiver with Get Interface
•Tokens determine FIFO stage for next put and get operationTiming
Domain B
![Page 7: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/7.jpg)
7
FIFO Overview: Structure
stage 1 stage 2 stage 3
Put
Interface
Cell
Sender
Receiver
Timing Domain A
•Each FIFO stage has aPut Interface CellGet Interface CellFull-Empty
•ControlData Store
Timing Domain B
Put
Interface
Cell
Put
Interface
Cell
Get
Interface
Cell
Get
Interface
Cell
Get
Interface
Cell
Full-EmptyControl
Full-EmptyControl
DataStore
Full-EmptyControl
DataStore
DataStore
![Page 8: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/8.jpg)
8
FIFO Overview: Modular Design
stage 2 stage 3
Put
Interface
Cell
Sender
Receiver
Clocked
Domain A
Clockless Noc
Put
Interface
Cell
Get
Interface
Cell
Get
Interface
Cell
Full-EmptyControl
DataStore
Full-EmptyControl
DataStore
DataStore
Get
Interface
Cell
Put
Interface
CellFull-Empty
Control
stage 1
CLOCKED PUT INTERFACE
CLOCKLESS GET INTERFACE
• Mix-and-Match Interfaces
![Page 9: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/9.jpg)
9
FIFO Overview: Modular Design
stage 2 stage 3
Sender
Receiver
Fast Clocked
Domain A
Slow Clocked Domain B
Full-EmptyControl
DataStore
Full-EmptyControl
DataStore
DataStore
Full-EmptyControl
stage 1
CLOCKED PUT INTERFACE
CLOCKED GET INTERFACE
•Mix-and-Match Interfaces
•Can use different synchronization time lengths, depending on clock frequency
•Changing FIFO size doesn't affect individual FIFO stage
1 flop
synchronizer
3 flop
synchronizer
![Page 10: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/10.jpg)
10
Full Empty Control and Data store
•Data Store consists of latchesenabled when write is high
•Same blocks for clocked or clockless interfaces
•Full-Empty Control consists of a SR-latch on write, set output (full signal) highon read, set output low
![Page 11: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/11.jpg)
11
asP* FIFO
• asP*- Asynchronous Symmetric Persistent Pulse Protocol Standard cells Good performance Doesn’t require C-elements
•asP* handshaking protocol is chosen as baseline for FIFO design
![Page 12: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/12.jpg)
12
asP* FIFO -simulation
0
X
1 1 10 0 0 0
•Initial stateSR latches keeps track of empty/full statusAND gates coordinate data transfer between stages
![Page 13: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/13.jpg)
13
asP* FIFO -simulation
1
D
1 1 1
•Data arrives , req risesSR latch EFi is set to indicate Li latch holds valid data
0 0 0 0
![Page 14: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/14.jpg)
14
asP* FIFO -simulation
1
D
1
1
1 1
•Data arrives , req risesSR latch EFi is set to indicate Li latch holds valid data
0 0 0 0
![Page 15: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/15.jpg)
15
asP* FIFO -simulation
1
D
1
1
D
1 1
•Data propagates through L1
0 0 0 0
![Page 16: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/16.jpg)
16
asP* FIFO -simulation
1
D
0
1
D
1 1 1
•SR latch EF1 is set
0 0 0
![Page 17: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/17.jpg)
17
asP* FIFO -simulation
0
X
0
0
D
1 1 1
1
•Enabling L2 latchWhen stage i-1 is full and i is empty AND gate goes high loading data to Li
0 0 0
![Page 18: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/18.jpg)
18
asP* FIFO -simulation
0
X
1
0
D
0 0 1
1
D
1
•Clearing EF1 latchWhen stage i-1 is full and i is empty AND gate goes high loading data to LiClearing SR EFi-1 latch to indicate that latch Li is now empty
0 0
![Page 19: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/19.jpg)
19
asP* FIFO -simulation
0
X
1
0
D
0 0 1
0
D
1
1
0 0
![Page 20: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/20.jpg)
20
asP* FIFO -simulation
0
X
1
0
D
0 1 0
0
D
0
1
D
1 0
•Data available at output data_RReq_R goes high as data arrives to last stage
![Page 21: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/21.jpg)
21
asP* FIFO -simulation
0
X
1
0
D
0 1 0
0
D
0
0
D
1 0
![Page 22: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/22.jpg)
22
asP* FIFO -simulation
1
D1
1
1
D
0 1 0
0
D
0
0
D
1
•Next data enters FIFOActually it can enter just after ack_L falls indicating first data is written
0
![Page 23: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/23.jpg)
23
asP* FIFO -simulation
0
D1
0
1
D1
1 1 0
0
D
0
0
D
1 0
![Page 24: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/24.jpg)
24
asP* FIFO -simulation
0
X
0
0
D1
1 1 0
1
D
0
0
D
1 0
![Page 25: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/25.jpg)
25
asP* FIFO -simulation
0
X
1
0
D1
0 0 0
1
D1
1
0
D
1 0
![Page 26: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/26.jpg)
26
asP* FIFO -simulation
1
D2
1
0
D1
0 0 0
0
D1
1
0
D
1
•Next data enters FIFO
0
![Page 27: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/27.jpg)
27
asP* FIFO -simulation
1
D2
1
1
D2
0 0 0
0
D1
1
0
D
1 0
![Page 28: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/28.jpg)
28
asP* FIFO -simulation
1
D2
0
1
D2
1 0 0
0
D1
1
0
D
1 0
![Page 29: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/29.jpg)
29
asP* FIFO -simulation
0
X
0
0
D2
1 0 0
0
D1
1
0
D
1 0
![Page 30: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/30.jpg)
30
asP* FIFO -simulation
1
D3
0
0
D2
1 0 0
0
D1
1
0
D
1
•FIFO FULL!•No Acknowledge until next read out
0
![Page 31: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/31.jpg)
31
asP* FIFO -simulation
1
D3
0
0
D2
1 0 0
0
D1
1
0
D
1 1
1
D
•Ack_R rises , data read out
![Page 32: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/32.jpg)
32
asP* FIFO -simulation
1
D3
0
0
D2
1 0 1
0
D1
1
1
D
0 1
1
![Page 33: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/33.jpg)
33
asP* FIFO -simulation
1
D3
0
0
D2
1 0 1
0
D1
1
1
D1
0 0
0
•Data propagates to empty space
![Page 34: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/34.jpg)
34
asP* FIFO -simulation
1
D3
0
0
D2
1 1 0
0
D1
0
1
D1
1 0
0
![Page 35: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/35.jpg)
35
asP* Put Interface Cell
1
D3
0
0
D2
1 1 0
1
D2
0
0
D1
1 0
0
•Data propagates to empty space
![Page 36: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/36.jpg)
36
asP* FIFO -simulation
1
D3
1
0
D2
0 0 0
1
D2
1
0
D1
1 0
0
![Page 37: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/37.jpg)
37
asP* FIFO -simulation
1
D3
1
0
D2
0 0 0
0
D2
1
0
D1
1 0
0
![Page 38: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/38.jpg)
38
asP* FIFO -simulation
1
D3
1
1
D3
0 0 0
0
D2
1
0
D1
1 0
0
•Now D3 can enter FIFO
![Page 39: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/39.jpg)
39
asP* FIFO -simulation
1
D3
0
0
D3
1 0 0
0
D2
1
0
D1
1 0
0
![Page 40: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/40.jpg)
40
asP* FIFO -simulation
0
X
0
0
D3
1 0 0
0
D2
1
0
D1
1 0
0
•Sender lowers Req_L
![Page 41: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/41.jpg)
41
asP* FIFO - Timing Issue
1
1
10
D
1
0
T[En->Q]<T[S->Q]+TAND
![Page 42: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/42.jpg)
42
asP* FIFO - Timing Issue
1
1 10
0
0
MinResetPulseWidth[R->Q]<T[S->Q]+TAND
![Page 43: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/43.jpg)
43
3-stage clockless FIFOWrite Port
Read Port
Write request Rises if write succeeded
Rises if data available at output
Receiver acknowledge receipt of data
![Page 44: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/44.jpg)
44
Stage of clockless FIFO
Latches to load dataWritten when cell is empty
Tri-state buffer
Transfers tokens
![Page 45: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/45.jpg)
45
asP* Put Interface Cell
Signal from Sender (fanout to all stages)
![Page 46: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/46.jpg)
46
asP* Put Interface Cell
Signal to Sender (fanin from all stages)
![Page 47: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/47.jpg)
47
asP* Put Interface Cell
Signal to Data Store and Full-Empty Control
![Page 48: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/48.jpg)
48
asP* Put Interface Cell
Signal fromFull-Empty Control
![Page 49: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/49.jpg)
49
asP* Put Interface Cell
Signal from previous stage
Signal to next stage
![Page 50: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/50.jpg)
50
asP* Put Interface Cell
Sets in all but one cell to low
![Page 51: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/51.jpg)
51
asP* Put Interface Cell
![Page 52: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/52.jpg)
52
asP* Put Interface Cell
![Page 53: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/53.jpg)
53
asP* Put Interface Cell
![Page 54: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/54.jpg)
54
asP* Put Interface Cell
![Page 55: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/55.jpg)
55
asP* Put Interface Cell
![Page 56: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/56.jpg)
56
asP* Put Interface Cell
![Page 57: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/57.jpg)
57
asP* Put Interface Cell
![Page 58: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/58.jpg)
58
asP* Get Interface CellSignal fromReceiver
![Page 59: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/59.jpg)
59
asP* Get Interface CellSignal toReceiver
![Page 60: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/60.jpg)
60
asP* Get Interface Cell
Signal to Data Store and Full-Empty Control
![Page 61: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/61.jpg)
61
asP* Get Interface Cell
Signal from Full-Empty Control
![Page 62: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/62.jpg)
62
asP* Get Interface CellSignal to all stages
![Page 63: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/63.jpg)
63
asP* Get Interface Cell -simulation
1
0
0 01
1
01
10
0
0
![Page 64: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/64.jpg)
64
Full –empty cell
•Keeps track of whether cell is empty or full •Set by write operation from put interface •Reset by read operation from get interface•AND gate ensures MUTEX on Set and Reset
Avoid races Simplifies timing
![Page 65: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/65.jpg)
65
Timing requirements for FIFO
The minimum low time for req_put must be at least as large as the minimum clock pulse width for the FFs in the put interfaces.
The minimum high time for req_put must be at least as large as the minimum pulse width for the set signal of the SR latch in the empty/full controller.
The minimum high time for got_data must be at least as large as the minimum pulse width for the set signal of the SR latch.
![Page 66: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/66.jpg)
66
Protocol converters
•asP* simple and efficient
•But: timing constraints make it unsuitable for long interconnect
•LEDR is delay insensitive and better suited for long interconnect
•Other converters possible
![Page 67: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/67.jpg)
67
LEDR protocol –brief overview •Dual-rail encoding: two wires per bit – delay-insensitive•“Level-encoding”:
•Data rail: holds actual data value•Parity rail: holds parity value
•Alternating-phase protocol: •Encoding parity alternates between odd and even
00 11
EvenEven 0 0 00 1 1 11
OddOdd 0 0 11 1 1 00
data raildata rail
parity railparity rail
Bit valueBit value
LEDR EncodingLEDR Encoding
PhasePhase
![Page 68: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/68.jpg)
68
LEDR signaling
datadata
parityparity
eveneven oddodd eveneven evenevenoddodd evenevenoddodd
Data rail: carries bit Data rail: carries bit value in both phasesvalue in both phases
Parity rail: phase alternates with Parity rail: phase alternates with each data itemeach data item
00 11 00 00 11 11 11
•Exactly one wire transition for each new data item
![Page 69: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/69.jpg)
69
LEDR - completion detector
LEDR data<0>
LEDR parity<0>
comp
1-bit LEDR completion 1-bit LEDR completion detectordetector
C
C
C
LEDR data<0>
LEDR parity<0>
LEDR parity<1>
LEDR data<1>
LEDR parity<N-1>
LEDR data<N-1>
phase
N-bit LEDR completion N-bit LEDR completion detectordetector
![Page 70: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/70.jpg)
70
LEDR-to-asP* converterCompletion detector per bit
Even parity detector
Odd parity detector
Store data when all data [1:n] bits have changed
LEDR to asP* converter
![Page 71: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/71.jpg)
71
LEDR-to-asP* converterIn this Example :Assume Even parity phase
1
X
P
1
0
0
D
10
0
D
1
0
1
D
![Page 72: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/72.jpg)
72
LEDR-to-asP* converter
1
D
P
1
0
0
X
00
1
D1
0
1
1
00
1
1
01
1
0
X
X
![Page 73: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/73.jpg)
73
asP*-to-LEDR converter
0
0
0
0
00
0
![Page 74: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/74.jpg)
74
asP*-to-LEDR converter
0
0
0
0
00
0
1
1D
D1
1
DP
1
0
1
0
0
1
1
![Page 75: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/75.jpg)
75
Clocked FIFOs
• Design goal is to provide all flavors of synchronization converters Synchronous-to-Asynchronous Asynchronous-to-Synchronous Synchronous-to-Synchronous
• Asyn-to-Sync and Sycn-to-Async is obtained by combining async put interface with sync get interace and vice versa
• Synchronous-to-Synchronous will be detailed in next slides
![Page 76: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/76.jpg)
76
3-Stage Clocked FIFO Indicates that Data can be put into FIFO
Ensures fully sync behavior
![Page 77: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/77.jpg)
77
FIFO stage with clocked RX and TX
![Page 78: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/78.jpg)
78
Clocked Put Interface CellSignal to sender
Signals from sender
Synchronizer●State (full or empty) of FIFO stage is synchronized
●One 1-bit synchronizer per FIFO stage interface
●Asymmetric delay
![Page 79: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/79.jpg)
79
Clocked Put Interface Cell
!
![Page 80: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/80.jpg)
80
Clocked Put Interface Cell
!
![Page 81: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/81.jpg)
81
Clocked Put Interface Cell
!
![Page 82: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/82.jpg)
82
Clocked Put Interface Cell
!
![Page 83: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/83.jpg)
83
Clocked Put Interface Cell
!
![Page 84: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/84.jpg)
84
Clocked Put Interface Cell
!
![Page 85: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/85.jpg)
85
Clocked Put Interface Cell
!
![Page 86: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/86.jpg)
86
Clocked Put Interface Cell
!
![Page 87: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/87.jpg)
87
Clocked Put Interface Cell
!
![Page 88: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/88.jpg)
88
Clocked Put Interface Cell
Clocked get interface cell is analogous
![Page 89: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/89.jpg)
89
Example of 1.5 cycle Synchronizer
IN
OUT
Async_
OUT
![Page 90: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/90.jpg)
90
Synchronizer
•MTBF for different synchronizers and clock speeds 90nm technology
τ- metastability resolving constant
![Page 91: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/91.jpg)
91
FIFO latency and throughput
• Latencyminimum time data spends in FIFOindependent of FIFO length
• Throughput maximum number of data transfers per time depends on FIFO length
![Page 92: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/92.jpg)
92
FIFO throughput
• Throughput is limited by slower of put and get interfaces
• Put interface delay: minimum time between two successive FIFO writes
• Get interface delay: minimum time between two successive FIFO reads
![Page 93: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/93.jpg)
93
Clocked FIFO throughput simulation
•Simulation scenario2-cycle synchronizerSame put and get frequency with zero phase shift
•Throughput resultsDoesn’t allow to write every clock cycle Need to increase FIFO to 6 stagesFIFO with equal put and get frequencies and n-cycle synchronizer needs 2*(n+1) stages to support max throughput
![Page 94: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/94.jpg)
94
asP* FIFO latencyWrite latency Read latency Receiver latency
Full-EmptyControl
![Page 95: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/95.jpg)
95
asP* FIFO latency –clockless
•Latency measured from rising req_put to data_valid rising (220ps) + got_data rising to empty cell status (140ps) equals at total to 360ps
•Throughput limited by slower get and put interface, evaluated max 1.95Ghz
•Power 5.27mW at 1.95Ghz
5.27mW
![Page 96: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/96.jpg)
96
asP* FIFO latency –clocked
•Latency measured from rising clk_put to rising clk_get with valid data (doesn’t depends on FIFO length) + tsync(173ps)
•Throughput gain when using 6 stage FIFO is 2 times
•6 stages FIFO running at 1.28Ghz consumes 4.91mW
5.27mW
![Page 97: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/97.jpg)
97
Clocked FIFO latency • Measured from clk_put edge that latches data in FIFO until clk_get edge that notifies receiver of available data
![Page 98: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/98.jpg)
98
Clocked FIFO throughput • Throughput determined by slower of put and get interfaces
• There is a minimum required FIFO length to support maximum throughput
• Minimum FIFO length depends on synchronization latenciesratio of put and get clock speedsphase relationship of put and get clock
![Page 99: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/99.jpg)
99
Conclusions • Presented a synchronizing FIFO that
can be built using standard cells
has modular design
following properties can be chosen independently:type of put and get interfacesynchronization time lengthFIFO size
has simple interfaces
![Page 100: 1 A Modular Synchronizing FIFO for NoCs Vainbaum Yuri.](https://reader030.fdocuments.us/reader030/viewer/2022032800/56649d375503460f94a0f8d5/html5/thumbnails/100.jpg)
100
References •T.Ono, M.Greenstreet. A modular synchronizing FIFO for NoCsProceedings of the 2009 3rd ACM/IEEE International Symposium on Networks-on-Chip
•M. E. Dean, T. E. Williams, and D. L. Dill. Efficient selftiming with level-encoded 2-phase dual-rail (LEDR). 1991. MIT Press.
•C. E. Molnar, I. W. Jones, W. S. Coates, and J. K. Lexau. A FIFO ring performance experiment. In Advanced Research in Asynchronous Circuits and Systems, 1997. Proceedings of the Third International Symposium on, pages 279–289,Eindhoven, Apr. 1997.
•I. E. Sutherland. Micropipelines. Commun. ACM,32(6):720–738, June 1989. Turing Award lecture.
•Mark Dean, Ted Williams and David Dill, “Efficient Self-Timing with Level-Encoded 2-Phase Dual Rail(LEDR)”, ARVLSI, 1991, pp. 55-70.