Arbiter

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Der Titel dieses Artikels ist mehrdeutig. Weitere Bedeutungen sind unter Arbiter (Begriffsklärung) aufgeführt.

Der Arbiter oder die Arbitrationslogik (von lat. arbiter „Richter“) ist eine Funktionseinheit in Form einer elektrischen, digitalen Schaltung oder einer Softwareroutine, die Zugriffskonflikte oder Zugriffskollisionen löst oder priorisiert. Dies ist zum Beispiel notwendig im Falle von Bussystemen mit mehreren Busmastern – also Einheiten, die aktiv wie etwa ein DMA-Controller auf den Datenbus zugreifen dürfen – um zu entscheiden, welcher Busmaster Zugriff bekommt.

Im Allgemeinen versteht man unter der Arbitrierung die möglichst gerechte Zuteilung von Ressourcen auf verschiedene Benutzer bzw. Geräte. Dieses Verfahren kommt auch beim so genannten Token-Verfahren bzw. in der FDDI-Technologie zur Anwendung. Das CSMA/CD-Verfahren ist hingegen ein Beispiel für ein Verfahren, das keine gerechte Zuteilung der Ressource garantiert.

In der einfachsten Variante besteht ein Arbiter aus einem Prioritätsencoder, der die Nummer des Eingangs ausgibt, der eine Anforderung stellt und die höchste Priorität hat. Dem Prioritätsencoder ist dann gewöhnlich ein Demultiplexer als Selektor nachgeschaltet, der die entsprechende Einheit ansteuert. Im VMEbus ist der Arbiter im ersten Einschub untergebracht, der je nach Fabrikat auch deutlich umfangreicher ausfallen kann, z. B. mit eigenem Prozessor.

Neben der einfachen Methode, mehreren Requestleitungen eine feste Priorität zuzuordnen (Priorized Arbitration), gibt es noch die Möglichkeit, die Requestleitungen alle mit der gleichen Priorität zu betrachten (Single Level Arbitration) oder gar die Prioritätenzuteilung rotieren zu lassen (Round Robin Arbitration). Letztere erlaubt, eine gewisse Art Fairness herzustellen: je länger eine Einheit wartet, desto größer wird die Wahrscheinlichkeit der Zuweisung. Der NuBus im Macintosh von Apple nutzte beispielsweise diese Form der Arbitrierung.

Siehe auch[Bearbeiten]