Metastabilität

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Als Metastabilität (auch Quasistabilität) bezeichnet man im Bereich der Digitaltechnik einen temporären Zustand von FlipFlops oder kombinatorischer Schaltungsteile, der durch das Ändern eines Eingangssignals verursacht wird. Er ist in gewissem Sinne der Sonderfall der allgemeinen Instabilität von Schaltungen.

Instabilität

Ändert sich bei einer kombinatorischen Schaltung einer oder mehrere Eingänge, so reagieren die davon abhängigen Ausgänge erst mit einer gewissen Zeitverzögerung. Während dieser Zeit ist die Schaltung instabil. Der Zustand muss solange als logisch undefiniert erachtet werden, bis die Schaltung eingeschwungen vollständig ist.

Bei FFs, bei denen sich neben dem Takt gleichzeitig auch die Eingänge ändern, führt dies zunächst dazu, daß der Ausgang eines FFs einen nicht vorhersehbaren Zustand einnimmt, der entweder den alten, oder den neuen Zustand des Eingangs wiederspiegelt. Dieser Zustand bleibt dann für einen Takt erhalten und schwingt nicht, wie die reine Kombinatorik ein. Dies bringt zwar eine zeitliche Unsicherheit in den Datenfluss, führt aber zu einem stabilen und auch weiterverwertbaren Signal.

Bis auf eine Ausnahme:

Metastabilität

In seltenen Fällen geschieht das sampeln so ungünstig, daß das FF nicht sofort eindeutig schaltet, sondern sich längere Zeit in einem Zwischenzustand aufhält, bevor es endgültig in einen stabilen Zustand gerät. Der Vorgang ist vergleichbar einer Münze, welche zunächst auf der Kante stehenbleibt, bevor sie fällt. Diese Metastabilität ist an sich noch kein Problem, sie führt jedoch im Weiteren dazu, daß auch nach nachfolgende Schaltungsteile, die von diesem FF gespeist werden, verspätet einschwingen, wodurch angeschaltete FFs u.U. wieder eine wechselnde Taktflanke sehen. Damit tauchen instabile Schaltungssituationen in Schaltungsbereichen auf, die auf volle Synchronität setzen - das Stabilisieren des Signals durch Eintakten hat also nicht wie gewüsncht funktioniert. Der eigentlich "gewollte" Schaltungszustand des Teilsystems wird dann meist erst wieder bei der kommenden Taktflanke erreicht, was speziell bei Bussen zu inkonsistenten Daten führt. Somit wird das Gesamtsystems inkonsistent und arbeitet falsch.

Problembehandlung

Die gegebene Maßnahme gegen Metastabilität ist das Einsynchronisieren potentiell zur Taktfanke wechselnder Signale durch direkt kaskadierte FFs, da dann ein solcher metastabiler Zustand extrem lange anhalten müsste, um noch im nächsten FF zu einem Problem werden zu können. Bereits bei einer FF-Stufe jedoch ist ein ausdrücklich metastablier Zustand schon extrem unwahrscheinlich, da die heutigen Chiptechnologien sehr hohe Verstärkungen (-> steile Übertragunskennlinien) gestatten, die zu extrem geringen Zeiten der Metastabilität führen. Auf das Beispiel mit der Münze bezogen, wäre dies eine nahezu spitze Kante.

Hersteller geben hier Verzögerungen von einigen 10-100ps an, bei einer Wahrscheinlichkeit von kleine 10 hoch -10 für das Auftreten überhaupt.

In Hochgeschwindigkeitsschaltungen, in denen aufgrund der geringen Periodenzeit nur eine geringe Toleranz gegenüber unerwarteten Schaltverzögerungen besteht, werden diesbezüglich kritische Signale denoch mehrfach kaskadiert, weil sich so die Wahrscheinlichkeit exponenziell reduziert und man am Ausgang der FF-Kaskade mit höchster Sicherheit einen völlig stabilen Zustand erwarten kann.

Es bleibt dann lediglich das typische Problem des unbekannten Zeitpunktes der Takt- bzw. Datenübernahme.