Synchronization of Complex Systems: Jordi Cortadella Universitat Politecnica de Catalunya Barcelona, Spain
Synchronization of Complex Systems: Jordi Cortadella Universitat Politecnica de Catalunya Barcelona, Spain
CLK
CLK (f0)
f2/f0
f3/f0
CLK3
CLK0
R
D Q
R
setup hold
T
Mean Time Between Failures f: frequency of the clock fD: frequency of the data tr: resolve time available W: metastability window : resolve time constant
Example
R
# FFs
1 FF 2 FF 3 FF
MTBF
15 min 9 days 23 years
4
MTBF
e tr 2 f f D W
Different approaches
Pausible Clocks (Yun & Donohue 1996) Predict metastability-free transmission windows for domains with related clocks (Chakraborty & Greenstreet 2003) Use the waiting time in FIFOs to resolve metastability (Chelcea & Nowick 2001) And others
The term Globally Asynchronous, Locally Synchronous is typically used for these systems (Chapiro 1984)
req1
ack1
req2
ack2
Metastability
req1
ack2
req2
ack1
R1
G1
MUTEX
R2 G2
10
MUTEX [1, 2]
delay
11
Pausible clocks
Req Ack
Cntr
FF
ME MUTEX [1, 2]
delay CLK
Yun & Dooply, IEEE Trans. VLSI, Dec. 1999 Moore et al., ASYNC 2002
12
Both clocks are generated from the same source The FIFO compensates for skew between transmitter and receiver M. Greenstreet, 1993
13
A Minimalist Interface
FIFO reduces to latch-X and a latch controller x can always be generated in such a way as to reliably transfer data from input to output Chakraborty & Greenstreet, 2002
14
15
The controller detects which transition arrives first (from T and R) and generates X accordingly
16
17
Assumption: clocks are stable Each domain estimates the others frequency Residual error corrected using stuff bits
18
Mixed-Timing Interfaces
Async-Sync FIFO
Async-Sync FIFO
Sync-Async FIFO
19
Mixed-Clock FIFO
full
20
Mixed-Clock FIFO
full
21
Mixed-Clock FIFO
full
22
Full Detector
cell
CLK_get data_get valid_get empty
Get Controller
cell
cell
cell
cell
req_get
Empty Detector
23
en_put
f_i e_i
SR
REG
gtok_out
En
gtok_in
en_get valid data_get
24
CLK_get
en_put
PUT INTERFACE
f_i e_i
SR
REG
GET INTERFACE
gtok_out
En
gtok_in
en_get valid data_get
25
CLK_get
Synchronization: summary
Resolving metastability implies latency Latency can be often hidden (FIFOs, Chelcea & Nowick) Clock frequencies can be estimated and clock edges predicted under the assumption of stable clocks (Chakraborty & Greenstreet) Pausible clocks are also possible (Yun & Donohue 1996) But still the nicest solutions are totally asynchronous