Wie funktioniert SCSI

Vorteile von SCSI

Phasen des SCSI-Datentransfers

SCSI-Parität

SCSI-Versionen

SCSI-1

SCSI-2

SCSI-3

Datentransfer

Unterschied zwischen IDE und SCSI

SCSI-Treiber

Wann ist SCSI sinnvoll?

 

 

Wie funktioniert SCSI

 

Im Gegensatz zu herkömmlichen Massenspeichern, bei denen man für jeden Typ einen eigenen Controller benötigte, ist bei SCSI-Peripheriegeräten der Controller bereits integriert, so daß man zusätzliche Controller-Karten für den PC fast gänzlich sparen kann. Während man früher für vier Geräte, wie Scanner, Bandlaufwerk, Festplatte und CD-ROM vier verschiedene Controller-Karten benötigte, braucht SCSI nur noch eine sogenannte Host-Adapter-Karte, die die Zusammenschaltung der Peripheriegeräte mit dem Systembus des Zielsystems, wie PC, MAC, UNIX-Workstation, oder Minicomputer problemlos bereitstellt.

 


Vorteile von SCSI

 

 

Der Vorteil dieser zuvor beschriebenen Technik, den Controller in jedem SCSI - Gerät selbst zu integrieren dürfte auf der Hand liegen. Es garantiert mit Sicherheit das Controller und Gerät zueinander passen. Dies wiederum bedingt drei wesentliche Vorteile der SCSI-Welt:

 

 

SCSI – Geräte besitzen mit den oben genannten Fähigkeiten sich ganz und gar auf ihre spezifischen Funktionen zu beschränken gewisse Vorteile, können jedoch nicht (oder zumindest nicht direkt) mit dem Systembus, d.h. dem Bussystem des gerade vorhandenen Zielsystems kommunizieren.

Hierzu ist nun der ebenfalls bereits erwähnte SCSI – Controller notwendig. Bei diesem Controller, der als SCSI - Karte direkt in das Zielsystem eingebaut wird, handelt es sich nicht um einen herkömmlichen Controller, sondern um ein universelles Übersetzungsgerät zwischen SCSI – Gerät auf der einen Seite und Systembus auf der anderen Seite.

Seiner Funktion entsprechend nämlich die Verbindung zwischen SCSI - Welt und Computer herzustellen wird dieser Baustein SCSI – Host - Adapter genannt.

 

Phasen des SCSI-Datentransfers

 

In der SCSI-Welt wird jede Kommunikation durch ein bestimmtes Gerät eingeleitet und durch ein anderes beantwortet. Dasjenige Gerät, das die Kommunikation beginnt, wird "Initiator" genannt. Im Allgemeinen ist es der Host-Adapter, der als Initiator fungiert, während die SCSI-Peripheriegeräte Targets sind. Unter bestimmten Umständen ist es zwar möglich, daß beide ihre Rollen vertauschen, aber normalerweise wird das Peripheriegerät die Kommunikation beantworten, das "Target" darstellen.

Soll nun ein Transfer auf dem SCSI-Bus ablaufen, muß ein Gerät der Auslöser (also der Initiator) sein. Ein anderes Gerät wird vom Initiator als Ziel (Target) adressiert. Die meisten Geräte können, abhängig von der gerade zu lösenden Aufgabe, Initiator oder Target sein. SCSI sieht auch Transfers vor, die einen Initiator und mehrere Targets oder mehrere Initiatoren und mehrere Targets haben.

Wichtiger Unterschied zu anderen Bussystemen:

Ein SCSI-Gerät kann sowohl die Rolle eines Initiators (Masters) als auch die eines Target (Slave) übernehmen.

Seit SCSI-II gibt es die Sync – Negotiation : Dieser Vorgang läuft während der Initialisierung des Host-Adapters nach dem Einschalten des Rechners und somit vor dem eigentlichen Datentransfer ab. Dabei verständigen sich die SCSI-Geräte, welche Transferraten und –arten sie beherrschen. Die betroffenen Geräte nutzen beim späteren Transfer stets den bestmöglichen Transfer. Das wiederum heißt, die Bus-Geschwindigkeit ändert sich beim Transfer dauernd, je nach dem welche Geräte am Datentransfer teilnehmen. Ob und welche Geräte bei der Sync-Negotiation mitmachen sollen, stellt man zumeist im Setup des Host-Adapters ein.

Nun kann sich der SCSI-Bus in verschiedenen Phasen befinden. Das Schemabild zeigt ein vereinfachtes Zustandsdiagramm. Setzt ein Programm beispielsweise über den ASPIManager einen Befehl ab, der das SCSI-System betrifft, läuft dieser im SCSI-Host-Adapter auf. Der interpretiert den Befehl und schickt genormte SCSI-Messages und Daten über den SCSI-Bus. Auf dem Bus laufen dabei Zyklen oder Phasen ab, die die Geräte ohne Zutun der CPU unter sich abmachen. Zur Signalisierung von Gültigkeiten und Phasen dienen Steuersignale auf dem Bus.

Dabei zeigen die inaktiven SCSI-Steuersignale BSY (Busy) und SEL (Select), daß der Bus zur Zeit unbelegt ist. Der Zustand heißt Bus-frei-Phase. Diese Phase wird entweder durch ein RESET oder nach dem Empfang einer »Command-Complete« oder »Disconnect« - Message erreicht.

 

  1. BUS-FREE-Phase: Sie zeigt an, daß momentan keine Aktion auf dem SCSI-Bus abläuft. Jedes SCSI-Gerät muß innerhalb einer bestimmten Zeit erkennen, daß dieser Zustand eingetreten ist und gibt dann alle eventuell noch verwendete Signale frei.
  2. Der folgende Vorgang heißt Arbitrations-Phase: Will ein Gerät (Initiator) an einen Empfänger (Target) senden, schaltet es BSY aktiv und legt seine SCSI-ID auf den Datenbus. Hat ein anderes Gerät seine ID auch auf den Bus gelegt, wird geprüft, wessen Priorität höher (die ID größer) ist: Zum Zug kommt der Initiator mit der höheren Priorität. Will kein anderes Gerät senden, setzt der Sender als Bus-Blockierung die SEL-Leitung aktiv - die eigentliche Kommunikation kann beginnen.

  3. ARBITRATION-Phase: Die sog. Buszuteilung gestattet es einem SCSI-Gerät, die Verfügung über den SCSI-Bus zu erhalten, damit es eine Datenübertragung beginnen oder beenden kann. Zunächst muß das Gerät dazu einen Moment lang prüfen, ob der SCSI-Bus nicht anderweitig belegt ist. Dazu setzt das Gerät das Datenbit auf dem SCSI-Bus, das seiner eigenen SCSI-ID (gezählt von 0 - 7) entspricht, und aktiviert das Signal BSY (Busy). Nachdem das Gerät das seiner eigenen ID entsprechende Bit auf dem Datenbus gesetzt hat, verfahren alle anderen angeschlossenen Geräte ebenso. Wenn ein anderes SCSI-Gerät ein höheres Bit gesetzt hat, hat das Gerät die Arbitrierung verloren und muß alle Bussignale wieder freigeben. Solange kein anderes Gerät mit einer höheren Priorität versucht hat, die Kontrolle über den Bus zu erlangen, hat das Gerät die Arbitrierung gewonnen (man bezeichnet es als "winner") und belegt den SCSI-Bus, in dem es das Signal SEL (Select) aktiviert. Das Gerät, welches die Operation beginnt, bezeichnet man als Initiator.
  4. Während der Selection-Phase stellt der Initiator die Verbindung zum Target her. Dazu legt der Initiator die ID des gewünschten Target fest und schaltet das Bus-Signal ATN (Attention) aktiv. Der Empfänger antwortet mit der kurzzeitigen Aktivierung des BSY-Signals. Geht die Selektion schief, weil sich das Target nicht meldet, wird in den Bus-frei-Zustand zurückgewechselt.

  5. SELECTION-Phase: In dieser Phase wird das Gerät ausgewählt, bei dem später eine Operation gestartet werden soll, was z. B. ein Lese- oder Schreibbefehl sein kann. Auf dem SCSI-Datenbus werden zwei Bits gesetzt, die den SCSI-Gerätenummern des Controllers (meistens Bit 7) und des gewünschten SCSI-Gerätes entsprechen. Der SCSI-Controller fordert über das Signal ATN (Attention) die Aufmerksamkeit aller angeschlossenen Geräte an.

Anschließend gibt der SCSI-Controller alle belegten Signale frei und wartet einen Moment, bevor er prüft, ob ein Gerät (Target) auf diese Anforderung reagiert hat. Wenn sich ein SCSI-Gerät angesprochen fühlt, also das seiner Gerätenummer entsprechende Bit auf dem SCSI-Bus gesetzt ist, aktiviert es kurz die Leitung BSY (Busy). Dadurch erkennt der Initiatior, in diesem Fall der SCSI-Controller, daß ein Gerät auf seine Anforderung reagiert hat. Die Kommunikation zwischen Initiatior und Target beginnt. Wenn innerhalb einer bestimmten Zeitspanne dagegen kein Gerät über das Signal BSY antwortet, beendet der SCSI-Controller die Operation und gibt den Bus wieder frei.

Zur mit der Selection-Phase eng verwandten Reselection-Phase kommt es, wenn nicht ein Initiator, sondern ein Tatget in der Arbitation-Phase das Rennen gemacht hat. Der Grund dafür kann nur sein: Das Target hat in einem früheren Bus-Zyklus die

Kontrolle über den SCSI-Bus vor der Erledigung einer langwierigen Aufgabe abgegeben - der Bus läuft dann wieder in die Bus-frei-Phase.

Folge: Der SCSI-Bus ist für andere Geräte frei. Das Target merkt sich vorher die ID des Initiators. Hat das Target die Aufgabe erledigt, versucht es, den Bus zwecks Rückverbindung mit dem Initiator zu arbitrieren. Kommt das Target zum Zug, selektiert es den früheren Initiator mit Hilfe dessen gemerkter ID. Zur Unterscheidung zwischen Reselection- und Selection-Phase schaltet das Target zusätzlich das IO-Signal (Input/Output) aktiv.

Nach einer geglückten Selection-Phase folgt immer eine Message-Out-Phase; nach einer geglückten Reselection-Phase folgt eine Message-In-Phase. Messages dienen in erster Linie zum Aushandeln von Transferoptionen, eignen sich aber auch zum

Signalisieren unvorhergesehener Ereignisse, zum Beispiel als Reaktion bei einem Paritätsfehler. Message-In und Message-Out unterscheiden sich nur in der Datenrichtung zwischen Target und Initiator. In der Message-Phase legt der eine Partner ein Message-Byte auf den Datenbus und schaltet das REQ-Signal (Request) aktiv. Der Empfänger liest das Byte und signalisiert den Erfolg mit ACK (Acknowledge). Dann nehmen beide Partner die Signale wieder vom Bus - ein asynchroner Transfer ist abgeschlossen. Sind mehrere Bytes zu übertragen, wiederholt sich der Vorgang.

Message-Phasen führen dann zumeist in eine Daten-Phase, Command-Phase oder Status-Phase. In der Command-Phase holt sich das Target von Initiator SCSI-Kommandos ab. Kennzeichen dieses Zustands sind aktive BSY- und C/D- Signale (Control/Data).

In der Daten-Phase tauschen Target und Initiator Nutzdaten und Steuerinformationen aus, sie schicken zum Beispiel den von einer Festplatte bereitgestellten Datenstrom zum Host-Adapter. Je nach Datenrichtung handelt es sich um eine Data-In- oder

Data-Out-Phase (unterschieden durch die I/O-Leitung). Der Transfer kann asynchron durch REQ/ACK- Folgen oder schneller synchron erfolgen: begleitet von REQ-Pulsen, ohne auf eine ACK- Antwort zu warten. Nach einem zeitlichen Offset erfolgt die Antwort über ACK- Impulse.

Die Status-Phase folgt nach dem Ende, dem Abbruch oder der Zurückweisung eines Kommandos. Das Target sendet dabei einen Status (Länge: 1 Byte) an den Initiator. Der Transfer erfolgt asynchron (REQ/ACK) bei aktiven C/D- und 1/0 sowie inaktiver MSG-Leitung.

Ist in den Command-, Daten- und Status-Phasen alles abgehandelt, folgt immer eine Message-Phase, die in der Regel die Message »Command Complete« generiert. Abschließend geht das System in die Bus-frei_Phase zurück - der Kreis hat sich geschlossen.

Seit SCSI-II wird Command-Queuing unterstützt: Bis zu 256 vom Initiator abgeschickte Kommandos warten in einer Warteschlange auf ihre Ausführung durch den Target. Intelligente Targets optimieren sogar die Reihenfolge der Kommandos.

 

SCSI-Parität

Der SCSI-Bus kann auch Paritätssignale erkennen und einsetzen. Mit der Parität werden Übertragungsfehler im SCSI-Kabel festgestellt.

Bei ständig wachsender Kabellänge kann es durchaus zu Fehlern kommen. Allerdings kann man die Parität nur einsetzen, wenn sie von allen SCSI-Geräten unterstützt wird. Falls ein Gerät die Parität nicht unterstützt, muß diese bei allen Geräten der SCSI-Kette abgeschaltet werden.

Allerdings setzen manche Betriebssysteme wie beispielsweise Windows NT eine Paritäts-Unterstützung durch die SCSI-Geräte voraus.

SCSI-Versionen

SCSI-1

Bereits 1981 entwickelte das Unternehmen Shugart Associates (später Seagate) ein parallel arbeitendes und blockorientiertes Übertragungsprotokoll, das man Shugart Associates Systems Interface oder kurz SASI nannte. 1984 wurde dann aus SASI das Small Computer Systems Interface oder SCSI, als das ANSI-Komitee X3T) die Spezifikation einer Festplattenschnittstelle offiziell machte.

SCSI-1 ist eine parallele 8-Bit-Schnittstelle zwischen einem SCSI-Host-Adapter und einem SCSI-Gerät. Dabei sieht der Standart einen Betrieb bei 5 MHz vor, was bei einer Busbreite von 8 Bit einen Datendurchsatz von maximal 5 MByte/s entspricht.

SCSI-1 definierte Regeln für die Übertragung von Daten über den SCSI-Bus. Hierbei unterscheidet man zwei unterschiedliche Übertragungsarten.

Zunächst das asynchrone SCSI. Hier fordert der Initiator ein Byte an, worauf das Zielgerät mit dem Senden des Bytes über den SCSI-Bus antwortet. Der Initiator bestätigt nun mit "Erhalten!" und signalisiert dem Zielgerät, daß die Übertragung erfolgreich verlaufen ist. Diese Bestätigung, die als Handshake oder Acknowledgement bezeichnet wird kostet jedoch durch die zusätzliche Betriebslast auf dem Bus Verarbeitungszeit. Diese zusätzliche Verarbeitungszeit macht wohl den Hauptfehler von SCSI-1 aus.

Desweiteren sieht SCSI-1 noch eine schnellere Methode zur Datenübertragung vor, die allerdings kaum verwandt wird. Beim sogenannten synchronen SCSI bestätigt der Initiator nicht jedes Byte einzeln, sondern gleich ganze Datenblöcke.

Auf ein und demselben SCSI-Bus kann zwar sowohl synchron als auch asynchron Übertragen werden, jedoch wird es zu keiner synchronen Übertragung kommen, wenn der Host-Adapter kein synchrones SCSI unterstützt.

Die großzügige abgefaßte Spezifikation von SCSI-1 gestattete die Wahl zwischen vielen Optionen, wodurch SCSI-Geräte untereinander inkompatibel wurden.

Hersteller von Streamern oder Scannern gingen deshalb dazu über, eigene Adapterkarten zu entwickeln, die jedoch nur für ein spezielles Einsatzgebiet geschaffen waren. So kommen noch heute in vielen Rechnern Festplatten, Bandlaufwerke oder CD-ROM-Laufwerke mit ihren eigenen Hostadaptern zum Einsatz, wobei jede Schnittstelle einen Steckplatz, Interrupts und DMA-Kanäle belegt. Die Idee eines geräteunabhängigen Interface wurde ad absurdum geführt.

SCSI-2

Hinsichtlich mancher Bereiche wie etwa der Implementierung der Befehlssprache war SCSI-1 noch zu vage, was 1986 zur Arbeit am SCSI-2-Standard führte. Entscheidende Neuerungen gegenüber SCSI-1 sind das Scripting, womit der Batchablauf von Befehlsserien über den Bus gemeint ist und Disconnects.

Scripting ermöglicht es eine Festplatte ohne Dazwischenschaltung des Prozessors komplett auf eine optisches Laufwerk, wie etwa DAT zu sichern.

Mit Disconnects (Trennungen) kann der Host-Adapter einem langsamen Gerät wie einem Bandlaufwerk einen Befehl wie etwa Zurückspulen senden und das Laufwerk dann von SCSI-Bus abhängen. Dadurch braucht dann nicht der ganze Bus warten bis das Bandlaufwerk fertig zurückgespult ist.

SCSI bleibt jedoch wie ürsprünglich festgelegt eine parallele 8-Bit –Schnittstelle zwischen SCSI-Gerät und SCSI-Controller. SCSI-2 unterscheidet diesbezüglich zwischen Fast-, Wide- und Fast-Wide SCSI.

Fast-SCSI verdoppelt die Datenübertragungsrate des vorhandenen Datenpfades. Wo SCSI-1 noch 8-Bit-Übertragungen mit 5 MByte/s vornahm, kann Fast-SCSI jetzt 8-Bit-Transfers bei 10 MByte/s durchführen. Fast-SCSI funktioniert sowohl mit asymmetrischem als auch mit differentiellem SCSI, erlaubt aber bei asymmetrischen Kabeln nur eine Gesamtkabellänge von drei Metern.

Wide-SCSI verwendet ein Extrakabel, um den Datenpfad auf 16 oder sogar 32 Bit zu erweitern. Bei Einsatz von nichtdifferentiellem Kabel und nichtdifferentieller Schnittstelle kann Wide-SCSI die Datenübertragungsrate auf 20 MByte/s erhöhen.

Fast-Wide-SCSI verwendet ein breitbandigeres Kabel, um eine größere Datentransferrate von bis zu 40 MByte/s zu erzielen. Üblich sind jedoch 20 MByte/s, da in der Praxis 32-Bit Ausrüstungen nach dem SCSI-2 Standart selten sind.

SCSI-3

Der momentan letzte und neueste SCSI – Standard ist SCSI-3. Mit ihm wurde nochmals die Anzahl der Geräte von 8 auf 32 erhöht, die ein SCSI - Subsystem unterstützen kann, die Datenübertragungsrate wurde abermals gesteigert, die maximale Kabellänge vergrößert und ein einfaches Verkabelungsschema eingeführt.

SCSI-3 führte mit einem 68drahtigen Anschluß eine Anzahl weiterer Leitungen ein, was sich aus der parallelen Organisation von SCSI in Kombination mit dem neuen 32-bit Datenbus ergibt. Es gibt jedoch noch eine andere Lösung: serielles SCSI

Serielles SCSI ist eine Sechsdrahtversion von SCSI. Sie ist leichter zu verkabeln und für größere Reichweiten geeignet. Serielles SCSI verträgt eine Kabellänge von über einem Kilometer!

Außerdem enthält die Definition von SCSI-3 Glasfasreleitungen: Fiber-SCSI ebnet den Weg für noch schnellere Systeme mit einer Datenübertragunsrate von 100 bis 400 MByte/s.

 

Datentransfer

Es gibt Host-Adapter für 8-Bit-ISA, 16-Bit-ISA, 16-Bit-Micro Channel, 32-Bit-Micro Channel, 32-Bit-EISA, Vesa Local Bus und PCI.

Dabei gilt folgende Faustregel: Je breiter die Schnittstelle ist, um so besser die maximale Datenübertragungsrate.

SCSI-1: 8-Bit-Breiter I/O-Bus

Asynchroner Datentransfer: unabhängig von der vorgegebenen Taktfrequenz, max. 3,3 MByte/s.

Synchroner Datentransfer: als Option vorgesehen und wurde nur selten verwendet. Da hier nur die Daten selbst synchron übertragen wurden, die Befehlsübermittlung dagegen asynchron erfolgte, war die Datenübertragung mit 5 MByte/s nur minimal schneller.

SCSI-2:

FAST-SCSI: Datentransfer erfolgt synchron, max. Rate: 10 MByte/s

WIDE-SCSI: 16-Bit: 20 MByte/s, max. 16 Geräte,

32-Bit: 40 MByte/s, max. 32 Geräte.

SCSI-3: Max. 32 Geräte,

Serielles SCSI: Sechsdrahtversion mit einer max. Kabellänge von über 1 km,

Fiber-SCSI: Glasfaserleitung mit Datenübertragungsrate von bis zu 400 MByte/s.

IDE und Ultra-ATA: Daten werden sowohl bei positiven, als auch bei negativen Signalflanken gesendet, wodurch eine Übertragungsrate von 33 MByte/s erreicht wird. Das Takten wird von Laufwerk selbst übernommen.

Unterschied zwischen IDE und SCSI

Vom Festplattenhersteller "Conner", der auf Festplattenlaufwerke für tragbare Rechner spezialisiert war und von daher als erster Überlegungen anstellen mußte, wie auf körperlich kleinen Festplatten hohe Speicherkapazität und ein schneller Datenzugriff möglich gemacht werden kann, entwickelte sich das IDE - Interface (Integrated Device Equipment) zum neuesten Standard auf dem heutigen Festplatten - Sektor. Besser bekannt als AT- Bus - Festplatten gehören die Laufwerke mit IDE- Schnittstelle heute zum Standard bei schnellen Rechnern der 486er und Pentium - Generation. Dabei verkörpern sie viele Vorteile, und das zu einem absolut günstigen Preis. Die Schnittstelle zum AT- Bus wird über ein 40-adriges Kabel hergestellt, das die Daten von der Festplatte- Controller- Einheit über eine Art einfachen Host- Adapter direkt in 16-Bit-Breite auf den Bus schiebt. Auch bei AT- Bus- Festplatten sitzt der eigentliche Festplatten- Controller auf der Steuerelektronik der Platte.

Dabei arbeiten IDE- Festplatten hinsichtlich des Aufzeichnungsverfahrens in aller Regel nach dem RLL oder dem ARLL- Prinzip, d.h. die Daten werden recht dicht auf die Platte aufgebracht. Dem PC- System wird jedoch in der Regel die Existenz eines Standard Laufwerks vorgegaukelt. Jedenfalls muß die IDE- Bus- Festplatte immer beim System angemeldet werden, von wo sie auch tatsächlich verwaltet wird.

Beim ST-506 Schnittstellenstandard für Festplatten liegt die Schnittstelle auf Geräteebene, d.h. Festplatte und Controller sind sowohl physikalisch als auch funktional voneinander getrennt. Der Festplatten- Controller befindet sich auf einer Steckkarte oder bei modernen Schnittstellen ist der Controller bereits auf der Festplatte integriert. Dabei wird eine optimale Abstimmung von Controller und Festplatte erreicht und somit ist es möglich höhere Übertragungsraten zu erzielen. Die ST-506 gilt als Standard- Schnittstelle bei MFM- und RLL- Festplatten und 8-Bit Datenübertragung.

MFM (Modified Frequency Modulation) ist ein älteres Aufzeichnungs- Verfahren bei Festplatten mit einer maximalen Transferrate von 500 kByte/s und 8-Bit Datenübertragung.

RLL (Run Length Limited) ermöglicht im Vergleich zu MFM eine höhere Datendichte, d.h. mehr Sektoren pro Spur. Dadurch gelingt es nicht nur die Kapazität zu erhöhen, sondern auch die Datenübertragungsrate, da sich bei gleicher Umdrehungs-geschwindigkeit ja mehr Sektoren pro Zeiteinheit unter dem Kopf hindurch bewegen. Über den Daumen gepeilt, besitzt eine bestimmte Festplatte in RLL- Version eine um die Hälfte höhere Kapazität und Übertragungsrate als die entsprechende MFM- Version. RLL schafft eine Datenübertragungsrate von bis zu 800 kByte/s bei 8-Bit Übertragung.

ARLL (Advanced Run Length Limited) ist eine verbesserte Form des RLL- Verfahrens, mit der Daten noch dichter gepackt werden können und einer 16-Bit Datenübertragung. Dieses Verfahren wird von den drei verschiedenen Plattentypen ESDI, SCSI und IDE verwendet.

Während nun die AT- Bus- Festplatten (IDE) zu ST506- Systemen kompatibel sind, wurde bei SCSI mit diesem alten Standard gebrochen und die Hostadapter mit einem eigenen BIOS für den DOS- üblichen Real Mode ausgestattet. Dadurch wurde zwar der Anschluß unterschiedlichster Geräte möglich, aber der Konflikt mit Betriebssystemen in Kauf genommen, die den Protected Mode der modernen Prozessoren ab dem Intel 80286 nutzen. Ein Betriebssystem eigenes Protected- Mode- BIOS unterstützt aber dem AT-03- Standard entsprechend ST506 Systeme. Dieser Teufelskreis kann nur durch zusätzliche Treibersoftware durchbrochen werden. Jedoch stellt sich bei einer bestimmten Adapter- Betriebssystem- Kombination die Frage nach der Verfügbarkeit von passenden Treibern.

Die Aufzeichnungsformate von DOS und SCSI sind unterschiedlich. Während SCSI Daten blockweise verarbeitet und sich nicht um Zylinder, Köpfe und Sektoren kümmert, benötigt DOS einen zum Festplattentyp passenden Parametersatz, der im Setup eingestellt werden muß. SCSI benötigt somit einen Übersetzungsalgorithmus. Für den Datentransfer zwischen Hostadapter und Rechnerspeicher bieten sich beim AT drei grundlegende Möglichkeiten an:

 

SCSI-Treiber

Der SCSI- Host- Adapter besitzt einen eigenen ROM-Speicher, der spezielle Programme zur Steuerung der SCSI-Geräte enthält. Allerdings entsprechen diese Programme nicht dem früher von IBM gesetzten Standard, was leider Kompatibilität leicht einschränkt. Mit dem Resultat, daß eventuell das eine oder andere Programm mit einer SCSI-Festplatte nicht funktioniert.

Wenn als Betriebssystem DOS verwendet wird, passiert dies nur selten. Problematisch wird dies erst beim Einsatz von anderen Betriebssystemen wie OS/2 oder UNIX. Man kann sie nur verwenden, wenn es vom Hersteller des SCSI-Adapters entweder speziell angepaßte ROMs oder auf das betreffende Betriebssystem abgestimmte Treiberprogramme gibt.

Nach der Hardwareinstallation müssen dann erst die nötigen Treiber konfiguriert werden, daß die SCSI-Geräte von den Anwenderprogrammen angesprochen werden können. Zur Zeit existieren 2 Standards. Die noch in der Diskussionsphase befindliche Common Access Method (CAM) soll eine betriebssystemnahe Verbindung zu den Geräten realisieren, wobei die Schnittstelle zwischen Betriebssystem und Hostadapter bezüglich der Softwaretreiber definiert wird.

Die zweite Lösung wurde von Adaptec entwickelt. Das Advanced SCSI Programming Interface (ASPI) fand bei den Herstellern den größten Anklang und avanciert mittlerweile zum Standard. Es ist in mehreren Layern (Schichten) aufgebaut. Der Betriebssystem- und hardwareabhängige ASPI- Manager verarbeitet Befehle von ASPI-Treibern. Diese sind hardwareunabhängig und erhalten die Anforderungen von Betriebssystem oder den Anwendungsprogrammen.

Zu ASPI kommt man durch Laden des ASPI- Treibers (unter DOS in der CONFIG.SYS). Der Treiber ist immer herstellerspezifisch, also von der Host- Adapter Hardware abhängig. Aus Sicht der Software ist ASPI dann unabhängig vom vorliegenden Host- Adapter. Deshalb können ASPI- kompatible Anwendungen und Treiber anderer Hersteller problemlos auf ASPI aufsetzen.

Will ein Programmierer den ASPI benutzen, öffnet er zuerst den Treiber unter seinem Namen (>>SCSIMGR$<<). Dieser gibt dann seinen Anspruchspunkt (DOS Handle) zurück). Den Handle schreibt man dann ins AL- Register der CPU und löst den Software- Interrupt 21h, Funktion 4402h aus. Der liefert einen Zeiger auf den ASPI- Manager zurück.

Wer eine ASPI Funktion ausfahren will, muß zuvor im Speicher eine genormte Datenstruktur aufbauen, die die gewünschte Aktion repräsentiert. Diese Struktur heißt SCSI Request Block (SRB) und beginnt mit der gewünschten ASPI- Basisfunktion, gefolgt von einer Parameterlist. Definierte ASPI- Funktionen sind zum Beispiel Host- Adapter abfragende (00h), Einheitentyp abfragen (01h), SCSI-Befehl ausführen (02h), SCSI-Befehl abbrechen (03h) oder SCSI-Einheit zurücksetzen (04h). IST der SRB aufgebaut, legt man dessen Adresse (erst Segment, dann Offset) auf dem Stack an. Jetzt ist es soweit:

Per Far-Call wird mi dem vorhin ermittelten Zeiger auf den ASPI- Manager die gewünschte Funktion in Richtung SCSI-System geschickt und dort ausgeführt.

CAM-Aufrufe funktionieren wie bei ASPI mittels Datenstruktur im Speicher, dem CAM Control Block (CCB). Eine CAM- Funktion wird durch den Aufruf des Int 4Fh mit der Funktion 8100h (im AX- Register der CPU) initiiert. IN BX ist der CCB- Offset und im ES Register des CCB- Segment zu übergeben.

 

Wann ist SCSI sinnvoll?

 


Wenn Sie bei der Planung eines Rechnersystems oder beim Nachrüsten eines Computers ohne Festplatte noch vor der Entscheidung stehen, welchen Standard Sie den Vorzug geben sollen, spricht diese Flexibilität und Vielseitigkeit in jedem Fall stark für das SCSI-Konzept. Das hat allerdings zur Folge, daß SCSI-Lösungen im allgemeinen ein Stück teurer sind als die anderen Möglichkeiten. Hinzukommt, das SCSI in der PC-Welt auch zu den besonders komplizierten und problemanfälligen Lösungen gehört - zumindest bis alles wunschmäßig funktioniert.

Im Allgemeinen brauchen Sie für den Einsatz von SCSI-Laufwerken in Ihrem System besondere Treiber, die speziell auf den verwendeten Host-Adapter ausgelegt sein müssen und insbesondere auch für das gewünschte Betriebssystem zur Verfügung stehen müssen. Bei der Auswahl eines SCSI-Hostadapters müssen Sie sich davon abgesehen noch insbesondere darüber klarwerden, in welchem Umfang Sie die gesamte SCSI-Lösung einsetzen wollen. Beschränkt sich der gewünschte Einsatz wirklich darauf, max. 2 SCSI-Festplatten anzusteuern? Oder wollen Sie vielleicht neben einem SCSI-Festplattenlaufwerk ein "besonderes" SCSI-Gerät wie Wechselplatten oder CD-ROM ansteuern? Oder läßt sich bereits absehen, daß Sie jetzt oder später neben 2 SCSI-Festplatten noch ein drittes, externes Wechselplattenlaufwerk, ein CD-ROM oder einen SCSI-Streamer anschließen wollen? Wenn Ihre Ansprüche über die Ansteuerung von 2 SCSI-Festplatten hinausgehen, ist Ihnen mit einem Low-Cost-SCSI-Adapter in der Art eines Seagate ST-01 nicht mehr geholfen. Dieser ST-01 ist der bekannteste Vertreter der Billig-Kategorie. Er bietet die Möglichkeit, nur bis zu 2 SCSI-Festplatten anzusteuern, und kann auch unter der Typenbezeichnung ST-02 mit zusätzlichen Anschlüssen für

Diskettenlaufwerke erworben werden. Beide Varianten kosten deutlich unter 100,- DM und sind nicht in der Lage, mehr als 2 SCSI-Geräte anzusteuern!

Für höhere Ansprüche brauchen Sie vielmehr einen vollwertigen SCSI-Hostadapter, der auch andere Geräte als Festplatten ansteuern kann, mehr als 2 SCSI-Geräte unterstützt und auch eine Möglichkeit zum Anschluß externer Geräte bietet. Einer der erfolgreichsten Vertreter dieser Kategorie ist das Modell mit der Typenbezeichnung "1542B" der Firma ADAPTEC.

Für die Kabelverbindung zwischen SCSI-Hostadapter und Festplattenlaufwerk wird innerhalb des Rechners dasselbe 50 polige Kabel verwendet, das wir schon beim IDE-Standard beschrieben haben. Für den Anschluß von externen Geräten an einem dafür geeigneten Host-Adapter gibt es spezielle Kabel, auf die wir noch etwas später zurückkommen.

Das BIOS des ASPI-Hostadapters enthält die grundlegenden Funktionen, um eine Kommunikation mit dem darüberliegenden Layern aufzunehmen. Über dieses BIOS können an den Hostadapter zwei Festplatten ohne Treibersoftware angeschlossen werden. Dabei meldet sich die 1. Platte (ID 0) als Laufwerk c:, die 2. Platte (ID 1) als Laufwerk d:. Jedes zusätzliche Peripheriegerät benötigt jedoch einen Treiber.

In die Config.sys muß somit der ASPI-Treiber und für jede weitere Einheit der Gerätetreiber eingetragen werden.

Befindet sich bereits eine Festplatte im Rechner, z. B. eine AT-Bus-Festplatte, kann nur noch eine SCSI-Platte ohne Treiber installiert werden. Unter DOS kann nur von Harddisks mit ID 0 oder 1 gebootet werden. Da Festplatten mit dieser Device-Nummer ohne Treiber auskommen, empfiehlt es sich für Anwender, die ihre SCSI-Schnittstelle nur für den Anschluß von Streamern oder Scannern benutzen wollen, das Adapter-BIOS auszuschalten. Sie gewinnen dadurch 32 kByte Speicherplatz, der zum Hochladen weiterer Treiber benutzt werden kann. Eine Spezialität bilden zwei

zusätzliche SCSI-Festplatten in einem Rechner, wenn bereits eine AT-Bus-Platte installiert wurde. Die IDE-Platte wird dann als Laufwerk c: erkannt und die erste der beiden SCSI-Platten als Drive d: . Nun darf nicht der Fehler gemacht werden, auch die dritte Festplatte als bootfähig einzutragen. Dies ist nur bei c: und d: möglich. Die Platten werden immer schneller. Es empfiehlt sich also, bei einer Systemerweiterung, eine solche Platte als Bootlaufwerk zu verwenden. Falls eine schon vorhandene SCSI-Festplatte als drittes Laufwerk eingebunden werden soll, muß sie neu partitioniert werden und der Bootsektor gelöscht werden. Nur so kann sie ohne Fehlermeldung erkannt werden.