1.6.1 Arbitrierung, Schiedsrichter für den SCSI-Bus Auf dem SCSI-Bus können mehrere Initiatoren existieren, die wechselseitig den Bus benutzen können. Um zu entscheiden, wer gerade den Bus benutzen darf, wird die Arbitrierung also eine 'Schiedsrichterentscheidung' verwendet. Dabei wird zu einem Moment, zu dem der Bus frei ist (erkennbar an der Busy-Leitung des Busses) eine Arbitrierung begonnen. Dabei setzen alle Geräte, die den Bus belegen wollen, die Datenleitung, die ihrer eigenen SCSI-Id entspricht. Dadurch können alle Geräte gleichzeitig sehen, wer sonst noch den Bus belegen möchte. Gewinner des Busses ist das Gerät mit der höchsten SCSI-Id, wobei zu beachten ist, daß die Geräte 0 bis 7 eine höhere Priorität besitzen als die Geräte 8-15. Dies ist zwingend darin begründet, daß die unteren Geräte die oberen Geräte nicht `sehen' können, wenn sie die Kontrolle durchführen, ob ein höher priorisiertes Gerät den Bus benutzen möchte. 1.6.2 Selektion Nachdem man in der Arbitrierung den Bus gewonnen hat, kann man das Gerät selektieren, das man ansprechen möchte. Dabei wird neben der Select-Leitung, die ein Auswählen eines Gerätes anzeigt, die Datenleitung gesetzt, die der Id des anzusprechenden Gerätes entspricht, sowie das eigene Bit. Das Setzen des eigenen Bits ist dabei seit der SCSI-2 Pflicht, um dem ange- sprochenen Gerät mitzuteilen, von wem es angesprochen wird. Dies hat einen wichtigen Grund: man kann ein Gerät für sich Reservieren, damit andere Initiatoren nicht dieses Gerät benutzen können. Wenn ein Gerät nun für die Benutzung eines bestimmten Initiators reserviert ist, muß es natürlich kontrollieren, ob die Selektion von diesem Initiator ausgeht. Diese Funktion nennt man `Initiator Identification' und die ist eben bei einigen SCSI-Geräten Pflicht. Dies hat aber ganz sicher nichts mit der Arbitrierung zu tun, die bereits vorher stattgefunden hat. Das Gerät anwortet auf die Selektion, indem es die Busy-Leitung setzt, die dann bis zum Ende der gesamten Kommunikation gesetzt bleibt und anzeigt, daß der Bus belegt ist und im Moment kein anderer daran darf. |  | 1.6.3 Transferphasen Nachdem der Kontakt mit einem Gerät hergestellt ist, beginnt der eigentliche Transfer von Informationen zwischen den Geräten. Da gibt es mehrere Transferphasen, die getrennte Aufgaben erfüllen. Von primärem Interesse ist natürlich die Daten-Phase, denn das ist ja schließlich der Sinn der Sache. Drumherum gibt es aber eine ganze Hand voller Geplänkel, was dazu gehört. Es gibt 6 verschiedene Informationsarten während des Informationsaustausches: 1. Command 2. Message In 3. Message Out 4. Data In 5. Data Out 6. Status Wie vorne bereits erwähnt, steuert ja nach der Selektion das Target die Transfers, um dabei die Phase zu unterscheiden, werden auf dem SCSI-Bus die Leitungen `MSG' `I/O' und `C/D' verwendet. Mit diesen drei Leitungen kann man 8 verschiedene Zustände darstellen, was ausreicht, um 6 verschiedene Phasen kenntlich zu machen. Während dieser Phasen hat der Initiator nur eine Möglichkeit, auf den Transfer Einfluß zu nehmen: durch Setzen der Leitung `ATN' signalisiert er dem Target, daß er eine Nachricht an das Target absetzen will, woraufhin das Target in die Message Phase geht und sich diese Nachricht damit abholt. Der ganze Ablauf läuft also nach der Selektion normalerweise so: Das Target setzt zunächst die Bus Phase auf `Command', sagt dem Initiator also, daß der doch mal anfangen soll, das Kommando zu übertragen. Eines nach dem anderen wird dann das Kommando übertragen, womit das Target nun weiß, was es tun soll. Danach ist es üblich, eine Message Out Phase einzusetzen, in der ein paar Übertragungs- parameter angegeben werden können. Laut SCSI-2 ist dies so vorgeschrieben und muß halt durch ein gesetztes ATN während der Kommandophase von Initiator angefordert werden.

SCSI - Enträtselt 6/8