Article View: comp.arch
Article #20912Re: Metastability
From: Ed Segall
Date: Thu, 27 Apr 1989 19:59
Date: Thu, 27 Apr 1989 19:59
49 lines
2698 bytes
2698 bytes
rpw3@amdcad.UUCP writes:
> A synchronizer tries to measure with absolute
> precision whether an energy (the "AND" of data and clock, typically) is above
> or below a threshold, and tries to do the measurement in a finite time. You
> can't do both. So that's the impossibility, at some very fundamental level.
> But most real synchronizers have failure rates far worse than the Heisenberg
> limit...
From your description, this doesn't seem to prove that metastability
is necessary. If the state of a line is 0, and it asynchronously
changes to 1, a carefully designed synchronizer wouldn't mind if the
transition isn't noticed on the first succeeding clock edge. Rather,
it would want either a clean 0 or a clean 1. If the line stays 1, it
would definitely want to see a clean 1 by the next edge. Notice that
a consequence of this is that asynchronous pulses shorter than one
clock period are not guaranteed to be noticed. Of course, if you want
to catch short pulses, you would put a pulse catcher in front of the
synchronizer.
What your 'uncertainty' explanation seems to imply is that it is
impossible for a synchronizer to always give the right answer - e.g.
that it might say zero when it should say 1. This would seem to be a
fatal flaw unless you confine the errors to be on transitions only (as
I explained above). I think most systems can be designed to handle a
one-cycle delay in noticing _valid_ transitions. What they can't
handle is invalid logic levels, which may result from metastable
states.
Of course, since I haven't read the paper you referenced, I can't
tell if it covers this situation. Would you post more detailed
references? Is the Cheney paper you refer to actually:
Chaney, T. J., Littlefield, W.M., and Ornstein, S.M. "Beware the
Synchronizer," in Digest of Papers of the Sixth Annual IEEE Computer
Society International "Conference, San Francisco, CA Sept 1972? It's
referenced in Fletcher.
If anyone out there would like a simple explanation of why
metastable states occur when flip-flops are used as synchronizers,
see:
Hodges and Jackson, "Analysis and Design of Digital Integrated
Circuits," McGraw-Hill 1983
--Ed
--
uucp: {...}!rutgers!caip.rutgers.edu!segall
arpa: segall@caip.rutgers.edu
Technical Details
Message-ID:
<Apr.27.15.59.55.1989.4457@caip.rutgers.edu>Path:
arc1-ca.pugleaf.net!utzoo!attcan!uunet!cs.utexas.edu!rutgers!caip.rutgers.edu!segallReferences:
<Apr.26.15.07.22.1989.3661@klaatu.rutgers.edu> <25423@amdcad.AMD.COM>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!attcan!uunet!cs.utexas.edu!rutgers!caip.rutgers.edu!segall From: segall@caip.rutgers.edu (Ed Segall) Newsgroups: comp.arch Subject: Re: Metastability Message-ID: <Apr.27.15.59.55.1989.4457@caip.rutgers.edu> Date: 27 Apr 89 19:59:56 GMT References: <Apr.26.15.07.22.1989.3661@klaatu.rutgers.edu> <25423@amdcad.AMD.COM> Organization: Rutgers Univ., New Brunswick, N.J. Lines: 49