Busse und Tore
Was ist ein Bus? Was ist ein Tor?
Die Grundidee lässt sich an der alten Papiermühle in Amalfi verdeutlichen:
Hier wird Wasser über dafür vorgesehene Leitungen von einem Ort zu einem anderen transportiert. Ein "Wasser-Bus" wäre in diesem Zusammenhang ein Bündel von mehreren Wasserleitungen.
Tore dienen dann dazu, Wasser kontrolliert über ausgewählte Leitungen fließen zu lassen.
Im Computer entsprechen den Wasserkanälen elektrische Leitungen: statt Wasser fließen dort elektrische Ladungen. Das folgende Bild zeigt Busstrukturen auf einer Computerplatine.
Ein Bus ist also - in der einfachsten Version - ein Bündel aus Datenleitungen.
Experimente mit dem Bonsai-Simulationsprogramm
Im CPU-Fenster siehst du vier Register, die über zwei Busse miteinander verbunden sind. Die Busse sind (zur besseren Unterscheidung) mit verschieden Farben dargestellt. Die Anbindung der Register an die Busse erfolgt mit Hilfe von Toren.
Wenn die Darstellung im CPU-Fenster zu klein ist, dann vergrößere insgesamt die Darstellung im Browser. Führe jetzt folgende Experimente aus, um das Verhalten eines Busses kennen zu lernen.
Aufgabe 1
Klicke auf eines der Tore (z.B. das oberhalb von Register A). Es stehen dann drei Zustände zur Wahl: grünes Tor mit Pfeil zum Register hin, rotes Tor mit Pfeil vom Register weg und graues Tor mit einem schwarzen Punkt. Was könnte es mit den drei Torzuständen auf sich haben? Probiere es aus.
Aufgabe 2
(a) Stelle das Tor, mit dem Register A an Bus 0 angebunden ist, so ein, dass Register A "auf den Bus schreibt". Der Pfeil im Tor muss also vom Register weg zum Bus hin zeigen. Gib jetzt einen Wert in das Register ein, indem du den Wert direkt reinschreibst. Beobachte, was auf dem Bus geschieht. Ändere den Wert im Register A, z.B. mit der +-Schaltfläche. Schließe das Tor wieder. Wie ändert sich der Buszustand?
(b) Stelle noch einmal das Tor, mit dem Register A an Bus 0 angebunden ist, so ein, dass Register A "auf den Bus schreibt". Gib einen Wert in Register A ein. Stelle jetzt das Tor, das Register C mit Bus 0 verbindet so ein, dass Register C "vom Bus liest". Der Pfeil im Tor muss vom Bus hin zum Register zeigen. Wie ändert sich der Wert in Register C? Gib jetzt auch andere Werte in Register A ein und beobachte den Bus und Register C. Öffne auch das Tor von Register C zum Bus 1 und vom Bus 1 zu Register D. Ändere manuell Werte in den Registern und beobachte die jeweils anderen Register.
(c) Teste, was geschieht, wenn zwei Register gleichzeitig auf den Bus schreiben?
(d) Führe einen Registertransfer von Register B zu Register A und Register C durch.
Hintergrundwissen
Ein Bus ist - in der einfachsten Version - ein Bündel aus Datenleitungen.
In der folgenden Abbildung verbindet ein 8-Bit-Bus die Ein- bzw. Ausgänge von zwei 8-Bit-Registern.
Allgemeiner gefasst ist ein Bus ein System zur Datenübertragung zwischen mehreren Komponenten.
Die folgende Abbildung zeigt (in etwas abstrakterer Darstellung) einen Bus, an den 3 Register angebunden sind.
Beachte, dass die Anbindung der Register an den Bus über sogenannte Tore erfolgt.
Ein Tor ist eine Art Schalter, den man öffnen und schließen kann. Nur bei geöffnetem Tor findet ein Datentransport vom Bus zum Register bzw. umgekehrt statt.
Das Bussystem, das wir im Folgenden benutzen werden, weist folgende Charakteristika auf:
- An einen Bus können beliebig viele Register (über entsprechende Tore) angebunden werden.
- Die Anbindung eines Registers an einen Bus kann zu einem bestimmten Zeitpunkt lesend (die Daten des Busses werden bei geöffnetem Tor in das Register übertragen) oder schreibend (die Daten des Registers werden bei geöffnetem Tor aus dem Register auf den Bus übertragen) oder inaktiv (die Tore zum Register sind geschlossen) sein.
- Zu einem bestimmten Zeitpunkt darf an den Bus nur eine schreibende Anbindung erfolgen. Ansonsten gibt es keinen definierten Datenzustand auf dem Bus.
- Alle an einen Bus lesend angebundenen Komponenten (Register) übernehmen die Daten des Busses.
Hinweise
Der unsichere Zustand '?????' wird auch hochohmig genannt, weil kein Bauteil Spannungen an die Leitungen legt. Der Widerstand zu Spannungsquellen ist sehr groß, eben hochohmig.
Was geschieht, wenn ein Register von einem hochohmigen Bus liest? Ein hochohmiger Eingang in der Bonsai-Hardware verwendeten Transistor-Transistor-Logik liest eine Eins. Die Simulation trägt dem Rechnung, indem jede Stelle die höchste Ziffer (hier 9) anzeigt. Ein Eingang in der in modernen Computern verwendeten CMOS-Technik ist so empfindlich, dass schon geringe Ladungen ein Kippen bewirken können. Wollte man dieses Verhalten simulieren, so müsste man ein vom hochohmigen Bus lesendes Register mit zufälligen Werten belegen.
Beachte, dass ein sicherer Transfer es erfordert, dass das Lesesignal vor dem Schreibsignal weggenommen wird. In der Bonsai-Hardware werden Schreibsignale technisch leicht verzögert, so dass ein - scheinbar - gleichzeitiges Wegnehmen der Signale trotzdem einen sicheren Transfer bewirkt. Die Simulation hat ebenfalls dieses Verhalten.
Quellen
- [1]: Kanäle an alter Papiermühle - Urheber: Klaus Merkert - Lizenz: Creative Commons BY-SA 3.0 DE
- [2]: Busstrukuren auf Motherboard - Urheber: Klaus Merkert - Lizenz: Creative Commons BY-SA 3.0 DE