Contention
Englisch: contention
Konkurrenz von Systemteilen oder deren Benutzern um eine begrenzte Ressource.
Konflikt: wenn mehrere Signale um denselben Draht kämpfen
In elektrischen Systemen entsteht ein Konflikt, wenn zwei oder mehr Signalquellen oder Geräte versuchen, gleichzeitig denselben Leiter anzusteuern. Das erzeugt einen Clash, weil jede Quelle die Spannung auf einen anderen Zustand setzen will, normalerweise 0V oder 5V (oder welche Logikpegel das System auch immer definiert). Wenn der Konflikt auftritt, schwebt die tatsächliche Spannung zwischen den beabsichtigten Zuständen, was einen undefiniertem Logikpegel erzeugt, der abhängig von der Schaltungstopologie und den beteiligten Stromstärken zu Logikfehlern, Datenbeschädigungen oder Hardwareschäden führen kann.
Konflikte treten am häufigsten in Multi-Source-Bus-Architekturen auf, bei denen mehrere Geräte eine einzelne Datenleitung oder Steuerleitung gemeinsam nutzen könnten. Klassische Beispiele sind parallele Busse in älteren Computern, bei denen mehrere Chips gleichzeitig auf derselben Datenbus-Leitung schreiben könnten, oder bei Open-Collector- oder Open-Drain-Ausgangsstufen, bei denen mehrere Treiber absichtlich mit einem gemeinsamen Leitungsaufzug-Widerstand verbunden sind. Der Aufzug ermöglicht es jedem Treiber, die Leitung herunterzuziehen, aber wenn zwei Treiber kollidieren, sind die Ergebnisse unvorhersehbar.
Der Schweregrad eines Konflikts hängt von der Ausgangsimpedanz der kollidierenden Quellen ab. Wenn zwei TTL-Ausgänge gegeneinander fahren, erzeugt die niedrige Impedanz einen großen Stromimpuls, der die Ausgangstransistoren erhitzen und mit der Zeit beschädigen kann. Wenn ein CMOS-Treiber mit einem anderen CMOS-Treiber kollidiert, ist die Leistungsaufnahme typischerweise höher als bei einem TTL-zu-TTL-Konflikt. In jedem Fall wird wiederholter Konflikt die Komponentenlebensdauer verkürzen und das Risiko eines permanenten Ausfalls erhöhen.
Vermeidung und Erkennung
Ordnungsgemäße Systemauslegung verhindert Konflikte durch Tri-State-(Hochimpedanz-)Logik, bei der Treiber deaktiviert werden können, wenn sie die Leitung nicht aktiv ansteuern. Protokolle erzwingen dies mit Enable- oder Chip-Select-Signalen, die sicherstellen, dass jeweils nur ein Treiber aktiv ist. Gemeinsam genutzte Busse setzen auch auf Arbitrierungslogik, die den Zugriff nur auf ein Master-Gerät pro Zyklus gewährt. In modernen digitalen Systemen wird ein Konflikt großteils vermieden, indem man statt gemeinsamer paralleler Busse auf Point-to-Point-Serienverbindungen setzt, wodurch die Konkurrenz um Leiter ganz entfällt.
Wenn ein Konflikt versehentlich in einem System auftritt, zeigt er sich typischerweise als sporadische Datenbeschädigungen, Zeitzugangsabweichungen oder unerklärliche Bitfehler. Logikanalysatoren können die charakteristischen schwebbenden Spannungspegel oder Störimpulse auf den betroffenen Signalen aufdecken. Wärmekameras können lokale Hotspots in der Ausgangsstufe des kollidierenden Treibers zeigen.