Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Hazard (Logikschaltungen)

Links befindet sich das zur Schaltfunktion gehörende Karnaugh-Veitch-Diagramm (KV-Diagramm) für die drei Eingangsvariablen x 1, x 2 und x 3. Es enthält in …

Inhalt5 Abschnitte
  1. 1. Begriff, Bedeutung und Arten
  2. 2. Physikalische Ursachen
  3. 3. Logische Hazards und ihre Beseitigung
  4. 4. Funktionshazards
  5. 5. Schutz durch Synchronisation

Begriff, Bedeutung und Arten

Hazards sind Eigenschaften von Schaltfunktionen beziehungsweise Schaltnetzen, durch die Änderungen der Eingangssignale unter ungünstigen zeitlichen Bedingungen fehlerhafte Ausgangssignale hervorrufen können. Ursache ist, dass sich Signale nur mit endlicher Geschwindigkeit ausbreiten und reale Logikbausteine nicht augenblicklich umschalten. Auf verschiedenen Signalpfaden entstehen deshalb Laufzeitunterschiede und Wettläufe. Ein kritischer Wettlauf („critical race“) kann am Ausgang einen kurzen fehlerhaften Impuls, einen sogenannten Glitch, erzeugen.

Ein Hazard bedeutet nicht, dass bei jedem Eingangssignalwechsel tatsächlich ein Fehler auftritt. Er bezeichnet lediglich die Möglichkeit eines Fehlers. Man unterscheidet strukturelle beziehungsweise logische Hazards und funktionale Hazards. Bei einem 0-Hazard tritt kurzzeitig eine logische „1“ auf, obwohl der Ausgang „0“ bleiben sollte. Bei einem 1-Hazard bricht ein logisches „1“-Signal kurzzeitig auf „0“ zusammen. Ein statischer Hazard liegt vor, wenn der Ausgangspegel vor und nach der Eingangsänderung gleich sein soll. Bei einem dynamischen Hazard soll sich der Ausgangspegel ändern.

In rein kombinatorischen asynchronen Schaltnetzen verursachen Glitches gewöhnlich keine dauerhaften Störungen. In sequentiellen Schaltungen mit Speichern wie Flip-Flops kann ein fehlerhafter Impuls dagegen gespeichert werden und das Schaltwerk dauerhaft in einen falschen Zustand bringen.

Physikalische Ursachen

Die boolesche Beschreibung einer Schaltfunktion betrachtet nur die statischen Beziehungen zwischen Ein- und Ausgangswerten. Die Zeit t spielt dabei keine Rolle; Signalübergänge werden als verzögerungsfrei angenommen. Reale kontaktlose Logikgatter sowie mechanische Schalteinrichtungen wie Relais oder Schütze benötigen jedoch Zeit zum Umschalten und können sehr unterschiedliche Verzögerungen besitzen.

Ein Schaltfolgediagramm zeigt digitale Signalpegel in Abhängigkeit von der Zeit t. Beim idealen Signal springt der Pegel unmittelbar zwischen „0“ und „1“. In einem realen elektronischen Bauelement steht ein Pegel kleiner als U_{0max} für „0“, ein Pegel größer als U_{1min} für „1“. Der Spannungsbereich dazwischen heißt verbotener Bereich; dort ist der Ausgang eines Logikbausteins nicht definiert. Ansteigende und abfallende Flanken benötigen die Verzögerungszeiten t_{ein} und t_{aus}. Diese Gatterlaufzeiten hängen von der verwendeten Halbleitertechnologie ab. Zusätzlich wirken die Laufzeiten auf den Signalleitungen zwischen den Bausteinen.

Wann ein nachfolgendes Gatter den Flankenwechsel erkennt, ist daher variabel und nur begrenzt bestimmt. Die Größenordnungen können stark abweichen: Logikgatter in Schottky-TTL-Technik haben Schaltverzögerungen im Bereich von 3 ns, Relais dagegen von 100 ms und mehr. Unterschiedliche Verzögerungen auf zusammenlaufenden Signalwegen bilden die Grundlage möglicher Hazards.

Logische Hazards und ihre Beseitigung

Logische Hazards entstehen durch den logischen Entwurf einer Schaltfunktion. Typisch ist ein Wettlauf zwischen einer Eingangsvariablen x_i und ihrem Komplement x̄_i, die über unterschiedliche Signalpfade laufen. An einem Divergenzpunkt („fan-out point“) wird ein Signal auf mehrere Pfade verteilt; an einem Konvergenzpunkt („fan-in point“) werden die Ergebnisse wieder zusammengeführt. Der Wettlauf ist kritisch, wenn die zeitweise anliegenden Signale dort einen Ausgangswert erzeugen können, der vom vorgesehenen statischen Wert abweicht. Nur wenn ein Wettlauf kritisch werden kann, liegt ein Hazard vor.

Das Beispiel verwendet die Funktion z=(x₁∧x₂)∨(x̄₂∧x₃). In einem Karnaugh-Veitch-Diagramm, kurz KV-Diagramm, werden die Ausgangswerte für alle Kombinationen des Eingangsvektors dargestellt. Benachbarte Belegungen unterscheiden sich in genau einer Komponente. Ein statischer logischer 1-Hazard ist daran erkennbar, dass ein Übergang zwischen zwei benachbarten Belegungen mit z=1 von keinem Primimplikanten überdeckt wird. Ein Primimplikant ist dabei eine im KV-Diagramm zusammengefasste Gruppe von Belegungen, für die die Funktion den Wert „1“ besitzt.

Im Beispiel betrifft dies die Belegungen mit den Dezimaläquivalenten 7 und 5: (x₁,x₂,x₃)=(1,1,1)→(1,0,1). Beim Übergang 7→5 verzögert ein Inverter die Bildung von x̄₂ um Δt. Dadurch können für die Dauer Δt beide Eingänge des abschließenden Oder-Gatters den Wert „0“ besitzen; der Ausgang z fällt kurzzeitig auf „0“. Dieser fehlerhafte Impuls ist ein Glitch. Beim umgekehrten Übergang 5→7 liegen am Oder-Gatter kurzzeitig zwei „1“-Signale an, sodass z korrekt bei „1“ bleibt. Ein vorhandener Hazard führt somit nicht in jeder Übergangsrichtung tatsächlich zu einem Glitch.

Logische Hazards lassen sich durch einen veränderten Entwurf beseitigen. Ergänzt man die Funktion um den Minterm x₁∧x₃, erhält man z=(x₁∧x₂)∨(x̄₂∧x₃)∨(x₁∧x₃). Der zusätzliche Term hält den Ausgang während des Übergangs 5↔7 auf „1“, sodass der Wettlauf zwischen x₂ und x̄₂ nicht mehr kritisch werden kann.

Funktionshazards

Funktionshazards können auch dann auftreten, wenn ein Schaltnetz frei von logischen Hazards ist. Sie entstehen bei der gleichzeitigen Änderung mehrerer voneinander unabhängiger Eingangsvariablen. Da mehrere reale Signalwechsel kaum exakt gleichzeitig stattfinden, kann das Schaltnetz vorübergehend eine unerwünschte Zwischenbelegung annehmen.

Bei der hazardbereinigten Beispielfunktion z=(x₁∧x₂)∨(x̄₂∧x₃)∨(x₁∧x₃) zeigt der Übergang 4→7 einen solchen Fall. Ändert sich zuerst x₂ und danach x₁, tritt kurzzeitig die Belegung 6 mit z=0 auf, obwohl der Ausgang am Anfang und am Ende „1“ sein soll. Es entsteht ein 1-Glitch. Ändert sich zuerst x₁ und danach x₂, wird vorübergehend die Belegung 5 mit z=1 erreicht und der Übergang bleibt fehlerfrei. Der tatsächliche Ablauf hängt also von der zeitlichen Reihenfolge der Eingangsänderungen ab.

Ein Funktionshazard ist an das gewünschte logische Verhalten der Funktion gebunden. Anders als ein logischer Hazard kann er nicht durch einen zusätzlichen Term beseitigt werden, ohne das verlangte Verhalten der Schaltfunktion zu ändern. Selbst elementare Funktionen wie die Und-Funktion enthalten Funktionshazards: Wechseln ihre Eingänge nahezu gleichzeitig in entgegengesetzte Richtungen, kann bei ungünstiger Reihenfolge kurzzeitig ein 1-Glitch entstehen.

Die Fehlertoleranz lässt sich erhöhen, ohne die statische Funktion zu ändern. Eine beschriebene Anordnung aus drei Und-Gattern führt x₁ zweimal und x₂ einmal zu und bildet eine gestaffelte Verzögerungskette. Der Wechsel von x₁ liegt gegenüber dem Wechsel von x₂ um eine Gatterverzögerung Δt davor (t−Δt) beziehungsweise danach (t+Δt). Sind die beiden Flankenwechsel um weniger als Δt gegeneinander verschoben, wird der Wettlauf nicht kritisch. Liegen sie um mehr als Δt auseinander, kann der Glitch weiterhin auftreten. Größere eingebaute Verzögerungszeiten können die Fehlertoleranz weiter erhöhen, beseitigen den Funktionshazard jedoch nicht.

Schutz durch Synchronisation

In asynchronen Schaltwerken können Speicher einen Glitch übernehmen und dadurch dauerhaft einen falschen Zustand festhalten. Ein typisches Beispiel ist die arithmetisch-logische Einheit (ALU) eines Digitalrechners. Wegen Wortbreiten von 16 Bit bis 64 Bit treten dort viele mehrfache Eingangswechsel auf, die ohne Gegenmaßnahmen zahlreiche Glitches verursachen könnten.

Deshalb werden solche Schaltwerke durch ein Taktsignal („Clock“) synchronisiert. Hinter den kombinatorischen Verknüpfungsstufen K₁,…,Kₙ befinden sich taktgesteuerte Flip-Flops. Sie übernehmen die Ausgangswerte erst, wenn das Taktsignal eintrifft. Die dafür gewählte Verzögerungszeit muss sicherstellen, dass alle Eingangsänderungen abgeschlossen und die Verzögerungen auf kritischen Signalpfaden abgeklungen sind. Anschließend wird der Ausgangsvektor z⃗ an die nächste Verarbeitungsstufe weitergegeben.

Die Synchronisation verhindert, dass kurzzeitige Zwischenwerte als gültige Ergebnisse gespeichert werden, und gliedert die Verarbeitung in klar abgegrenzte Schritte. Sie senkt jedoch die Arbeitsgeschwindigkeit gegenüber einer asynchronen Arbeitsweise. Verbesserungen der Bauteilgeschwindigkeit ermöglichten trotzdem stark steigende Prozessortaktraten: Der Intel 8080A arbeitete 1973 mit 2 MHz, während der Intel Core i9 im Jahr 2024 mit 3–5,8 GHz arbeitet. Das entspricht einer Steigerung um mehr als das Tausendfache.

Weiterlesen

Claude Shannon Claude Shannon. US-amerikanischer Mathematiker, Begründer der Informationstheorie. Artikel · Diskussion. Boolesche Algebra Die boolesche Algebra ist die Grundlage bei der Entwicklung von digitaler Elektronik und wird dort als Schaltalgebra, etwa bei der Erstellung von Schaltnetzen, … Glitch (Elektronik) Die Ursache des Signalwettlaufs wird daher auch als Race Condition bezeichnet. Die Anfälligkeit für Glitches steigt mit der Komplexität, der … Schaltwerk (Technische Informatik) In der Digitaltechnik werden Synchron-Schaltwerke häufig mit Schieberegistern realisiert. Ein solches Schieberegister stellt für sich schon ein Synchron … Flipflop Ein Flipflop (auch Flip-Flop), oft auch bistabile Kippstufe oder bistabiles Kippglied genannt, ist eine elektronische Schaltung, die zwei stabile Zustände … Synchronisation Synchronisation sorgt dafür, dass Vorgänge gleichzeitig (synchron) oder in einer bestimmten Reihenfolge ablaufen. Einfache Synchronisation der Zeitmessung durch … Logikgatter Ein Logikgatter, auch nur Gatter (englisch (logic) gate) ist eine Anordnung (heutzutage praktisch immer eine elektronische Schaltung) zur Realisierung einer … Relais Ein Relais [ʁəˈlɛː] (Pl.: Relais [ ʁəˈlɛːs]) ist ein durch elektrischen Strom betriebener, fernbetätigter Schalter mit in der Regel zwei Schaltstellungen. Komplement (Mengenlehre) In der Mengenlehre und anderen Teilgebieten der Mathematik sind zwei verschiedene Komplemente definiert: Das relative Komplement und das absolute Komplement. Karnaugh-Veitch-Diagramm Das Karnaugh-Veitch-Diagramm (bzw. das Karnaugh-Veitch-Symmetrie-Diagramm, die Karnaugh-Tafel oder der Karnaugh-Plan), kurz KV-Diagramm, KVS-Diagramm oder … Dezimalzahl Unter einer Dezimalzahl wird die Darstellung einer Zahl unter Verwendung von Dezimalziffern verstanden; diese werden in Zahlzeichen auf Stellen angeordnet … Nicht-Gatter Ein Nicht-Gatter (englisch: NOT gate), auch als Komplement-Gatter oder Invertierer bezeichnet, ist ein Gatter mit einem Eingang und einem Ausgang.