SCSI-Grundlagen

23.04.2003 von Christian Vilsbeck und Hermann Strass
Die SCSI-Schnittstelle hat sich vor allem im professionellen Bereich seit vielen Jahren als Standard etabliert. Sie bietet im Vergleich zu IDE viele Vorteile - weit über die höhere Leistung hinaus.

SCSI ist nach über zwanzigjähriger Entwicklungszeit nunmehr das führende Bussystem für Massenspeichersysteme (Bänder, Festplatten, MO-Speicher) außerhalb des Desktop/Home-PC-Bereichs geworden. Die Technik ist ausgereift und wird laufend verbessert. Derzeit sind Datentransferraten von bis zu 320 MByte/s erreichbar. Mit dem Einsatz der LVD-Schnittstelle (Low Voltage Differential) ist der Anschluss von 15 Geräten über Kabel mit einer Länge von 12 Metern möglich.

Seit einigen Jahren wird der ursprünglich elektrische SCSI-Parallelbus auch immer öfter durch den seriellen FC-Bus (Fibre Channel) ersetzt. Damit können bei gleichem Protokoll bis zu 10 Kilometer zwischen den Geräten und bis zu 126 Kilometer in einem Arbitrated Loop (FC-AL) überbrückt werden. Die möglichen Datenraten liegen zwischen heute 100 und 400 MByte/s.

SCSI und künftig auch SAS (Serial Attached SCSI) wird also sicher noch viele Jahre (zunehmend als FC-Variante) die dominierende Verbindungstechnik für Nicht-Desktop-Anwendungen bleiben. Damit können Investitionen in Hard- und Software sowie die umfangreiche Infrastruktur mit breit gestreutem Fachwissen optimal weiter genutzt werden.

Geschichte

Im August 1981 wurde der seit 1979 von der Firma Shugart entwickelte SASI-Standard (Shugart Associates System Interface) in einem Artikel der amerikanischen Zeitschrift "Electronic Design" zum ersten Mal vorgestellt. Der elektrische Teil war dem heutigen SCSI-1 vergleichbar, wenngleich auch mit einem viel einfacheren Befehlssatz.

Aus diesem herstellerspezifischen Bus entstand ab 1982 unter wesentlicher Beteiligung von der Peripherie-Abteilung von NCR (heute bei LSI Logic) eine mehr allgemein gehaltene Busschnittstelle mit symmetrischen Treibern (Gegentakt- oder Differenzialtreiber). Mit der Übernahme in die Normung durch ANSI (American National Standards Institute) wurde der Name in SCSI geändert. Die erste Version der Norm (X3.131-1986, Project 375D, ISO/IEC 9316), heute als SCSI-1 bezeichnet, wurde 1986 abgeschlossen.

Etwa 1987 begann man ernsthaft mit der Entwicklung von Wide SCSI, der Verbreiterung der SCSI-Bus-Schnittstelle von 8 auf 16 und 32 Bit. Damit begannen auch jahrelange Debatten über Stecker und Kabel. Aus diesem Grund wird Wide SCSI mit 32 Bit Busbreite praktisch von niemandem angeboten. Alle modernen SCSI-Varianten verwenden 16-Bit-Parallelübertragungen mit der Kabelvariante (P) aus dem SCSI-3-Standard.

Mit Fast SCSI begannen die Forschungen über Kabelimpedanz- und Kabelmaterial-Probleme. Fast SCSI ist in SCSI-2 definiert und erlaubt die Übertragung mit zirka 10 Megatransfer/s (im synchronen Modus) gegenüber knapp 5 Megatransfer/s in SCSI-1. Die Kombination von Fast und Wide ermöglicht heute etwa 320 MByte/s bei 16-bittiger Parallelübertragung. Weit höhere Geschwindigkeiten ermöglicht SCSI-3 mit serieller Übertragung (Fibre Channel).

Heute sind noch die internationale Norm ISO/IEC 9316:1995, 2nd Edition (allgemeine Bezeichnung: SCSI-2) und die internationale Norm ISO 9316:1989, 1st Edition (allgemeine Bezeichnung: SCSI-1), gültig. Aktuell sind SPI-3 und SPI-5 für die elektrische Spezifikation und die dazugehörigen Protokollvarianten zuständig (siehe auch SCSI-Spezifikationen).

Ein Großteil der SCSI-Hersteller hat sich zur SCSI Trade Association zusammengeschlossen (SCSITA). Auf deren Webseite finden Sie weitere Informationen zum Thema SCSI.

SCSI-Technologie

Technisch gesehen ist SCSI ein paralleler Bus, an dem die Teilnehmer über Kabel angeschlossen sind. Bei vielen anderen parallelen Bussystemen (zum Beispiel VME, CPCI und so weiter) werden die Busteilnehmer über eine feste Rückwandplatine (backplane) verbunden. Die Tatsache, dass es sich bei SCSI um einen Bus handelt, bedingt, dass beide Enden terminiert sein müssen.

Die Bezeichnung SCSI ist dabei heute an zwei Stellen falsch. Der Bus wird zum einen nicht mehr nur an Kleincomputern verwendet. Zum anderen ist SCSI keine klassische Schnittstelle (Interface) oder Punkt-zu-Punkt-Verbindung, wie der Druckerport am PC. SCSI ist ein Bus, der auch für Multiprozessorbetrieb ausgelegt ist. Da Kabel als physikalische Übertragungsmedien zum Einsatz kommen, kann SCSI auch zur Rechnerkopplung dienen. Erstaunlicherweise wird dies aber nur selten genutzt.

Am Bus gibt es einen oder mehrere Initiatoren, die eine Bustransaktion beginnen (initiieren), und ein oder mehrere Targets (Ziel einer Aktion), die die Aktion durchführen. In anderen Systemen sind die Bezeichnungen Master für Initiator und Slave für Target üblich. Die Bezeichnungen für SCSI wurden aber bewusst anders gewählt, da es erhebliche Unterschiede zu herkömmlichen Systemen gibt.

So kann ein Target aus mehreren so genannten LUNs (Logical Unit Number) bestehen. Dies ist in etwa vergleichbar mit der Unterscheidung zwischen Gerät und Partition bei einer Festplatte. Eine Datenübertragung geschieht also eigentlich zwischen einem Initiator und einer LUN als Endpunkt in einem bestimmten Target. Oft wird aber keine bestimmte LUN adressiert, sondern auf Grund der automatischen Voreinstellung stets mit LUN 0 gearbeitet.

Das SCSI-Komitee bemüht sich sehr, den SCSI-Bus frei von Hardware-Abhängigkeiten zu halten. So ist zum Beispiel die Aufteilung der Speicherkapazität bei Festplatten völlig unabhängig von Köpfen, Spuren, Sektoren und Zylindern. Es gibt nur eine logische Speichergröße. Wie sich diese zusammensetzt, ist nicht durch SCSI definiert.

SCSI-Bus und Signale

Während die maximale Anzahl von Busteilnehmern bei Narrow SCSI auf acht begrenzt ist, können an Wide SCSI 16 Geräte, entsprechend der Anzahl der Datenleitungen (Busbreite), angeschlossen werden. Die Gesamtanzahl von Targets und Initiatoren ist beliebig, sofern mindestens ein Initiator und ein Target vorhanden sind und die Gesamtzahl nicht höher ist als die Anzahl der Datenleitungen.

Ein Initiator kann vorübergehend auch die Rolle eines Target annehmen. Auf diese Weise können Initiatoren direkt Daten miteinander austauschen. Auch kann jeder Initiator zum Master werden (Peer-to-Peer-Funktion).

Im Prinzip ist SCSI ein einfaches, logisches Bussystem (Software-Bus), für das in der ersten Version (SCSI-1) ein paralleler elektrischer Bus für den Transfer von Befehlen, Daten und Statusmeldungen mitspezifiziert wurde. Häufig wird aber nur die elektrische Schnittstelle als SCSI angesehen, doch ist diese, wie die Kabel, nur Mittel zum Zweck.

In SCSI-2 gibt es mehrere Arten von paralleler Übertragung. In SCSI-3 werden auch serielle Übertragungsstrecken wie Fibre Channel, FireWire, InfiniBand und SAS definiert. SCSI besteht also aus zwei Teilen: dem Kabelbus und dem Software-Protokoll. Es gibt neun Steuer- und neun beziehungsweise 18 Datenleitungen. Im Buskabel werden alle Signale zweiadrig geführt, da über die relativ langen Kabelstrecken für jedes Signal eine eigene Rückleitung (Masse) erforderlich ist. Damit ist eine gute Signalqualität garantiert.

Die Signalnamen sind so gewählt, dass sie die aktivierte Funktion oder den Wert EINS (1) bezeichnen. Bei der unsymmetrischen Übertragung (single-ended) ist die logische Funktion aktiviert (WAHR), wenn das dazugehörige Signal im Zustand EINS (1) ist. Entsprechend gilt für eine nicht aktivierte, logische Funktion (FALSCH) das Signal NULL (0). Elektrisch entspricht dies einem hohen positiven Pegel (+2 Volt oder höher) auf der Leitung.

Bei symmetrischer Schnittstelle (differential HVD oder LVD) ist WAHR beziehungsweise EINS (1) mit einem +Signal positiver als das dazugehörige -Signal definiert. Entsprechend gilt für FALSCH beziehungsweise NULL (0), wenn ein +Signal negativer ist als das -Signal.

Merkmale und Ziele

Primär soll SCSI einem Rechner geräteunabhängige Geräteklassen zur Verfügung stellen. So können Festplatten, Bandgeräte, Multimedia- oder andere Geräte ohne spezielle Treiber angeschlossen werden. Auch künftige Erweiterungen und die Einbindung von herstellerspezifischen Merkmalen sind vorgesehen. Eine Auflistung aller Geräteklassen von SCSI finden Sie hier.

Ein weiteres Ziel ist es, gerätespezifische Eigenschaften in den Geräten zu belassen. Es gibt zwar umfangreiche Möglichkeiten für ein Betriebssystem, die technischen Daten und veränderbaren Parameter des Geräts abzufragen. Doch Eigenschaften, Funktionen und Parameter, die für das Betriebssystem nicht von Belang sind, werden vom SCSI-Device selbst verwendet beziehungsweise eingestellt.

Bei SCSI ist eine Kompatibilität der verschiedenen SCSI-Varianten gegeben. Dabei ist ein Mischbetrieb möglich, ohne dass auf die langsamste oder einfachste Betriebsart zurückgeschaltet werden muss. Bei der ersten Verbindungsaufnahme zwischen den Initiatoren und Targets wird mit dem langsamen, asynchronen Protokoll begonnen, um die gegenseitigen Eigenschaften und Fähigkeiten zu ermitteln. In neueren Versionen gibt es noch die Trainingsfunktion zur Einstellung von Geschwindigkeit und Signalverbesserungsverfahren.

Die Bezeichnungen für die zentralen Einheiten Initiator (anfordernde Einheit) und Target (ausführende Einheit) wurden im amerikanischen Original absichtlich so gewählt, um Verwechslungen mit den sonst üblichen Begriffen Master, Slave oder Controller zu vermeiden.

Merkmale des SCSI-Bus

Der SCSI-Bus zeichnet sich damit durch folgende Eigenschaften aus:

Kabel und Stecker

In SCSI-1 wurden bereits mehrere Arten von 50-poligen Steckverbindern mit und ohne Abschirmung definiert. Die Steckerbelegung ist unterschiedlich für unsymmetrische (single-ended) und symmetrische (differential) Übertragung. Neuere genormte Steckverbinder sind kleiner und mit Bügelverschluss (SCSI-2) oder Schraubverschluss (SCSI-3) mechanisch gesichert. Für die Benutzung in RAID-Schränken gibt es den so genannten SCA-Steckverbinder (80-polig für Parallel-SCSI und 40-polig für den seriellen Fibre Channel). Die Plattenlaufwerke mit dem SCA-Steckverbinder werden in eine Rückwand mit entsprechendem Gegenstecker eingeschoben. Damit entfallen Kosten und der Montageaufwand für lose Kabel.

Aus historischen Gründen gibt es unterschiedliche Kabelarten und elektrische Treiber. Daraus ergeben sich auch unterschiedlichste Kabellängen. Neuere Devices basieren auf LVD-Treibern (Low Voltage Differential), die bis zu 12 Meter lange Kabel für den Bus erlauben. Bei Punkt-zu-Punkt-Verbindungen, beispielsweise zwischen Rechner- und Peripherie-Schrank) können bei neueren Systemen bis zu 25 Meter lange Kabel verwendet werden. Universelle Transceiver (unsymmetrisch und LVD) passen sich automatisch an. Gemischte Systeme sind nach den unsymmetrischen (single-ended) Parametern zu betreiben. Bedingt durch den mechanischen Aufbau ergeben sich dabei zwei verschiedene Zählweisen der Signalanschlüsse an den Steckverbindern.

Eine Übersicht der möglichen Kabellängen und die Steckerbelegung der verschiedenen SCSI-Standards finden Sie hier.

Sonderfälle

Einige Systemhersteller haben früher zudem ihre hauseigenen Kabelstandards erfunden. Apple verwendet beispielsweise einen 25-poligen Sub-D-RS232/V24-Steckverbinder, wie er bei den parallelen und seriellen Schnittstellen am PC vorkommt. Leider haben auch einige andere Hersteller diesen technischen Unsinn übernommen, der nicht der Norm entspricht. Heute sind solche Abweichungen nicht mehr üblich.

In der einfachsten, heute nicht mehr üblichen SCSI-Variante sind 18 Signalleitungen nebst zugehörigen Masseleitungen und TERMPWR (+5 V) definiert. Bei Kabelübertragungen (maximal 6 Meter für unsymmetrische Übertragung) sind die Masseleitungen (je eine pro Signalleitung) jedoch besonders wichtig. Bei 25 Anschlüssen bleiben neben den 18 Signalleitungen und der +5-Volt-Stromversorgungsleitung aber nur sechs Masseleitungen übrig. Dass die Systeme dennoch stabil liefen, lag daran, dass in den Anfangszeiten von SCSI die Übertragungsraten niedrig und die Kabelverbindungen kurz waren. Auch die Kabelimpedanz war damals noch zu vernachlässigen.

Terminierung

Für die sichere und störungsfreie Signalübertragung ist es erforderlich, die Leitungen an beiden Enden mit dem charakteristischen Wellenwiderstand (Impedanz) abzuschließen. Damit werden kurzzeitige Spannungsüberhöhungen oder -einbrüche weit gehend unterbunden. Nach zwei Buslaufzeiten (Hin- und Rücklauf) sollten die Spannungspegel stabil sein. Die Werte für die Signalzeiten sind darauf abgestimmt.

Mit den nachfolgend beschriebenen Abschlussmethoden werden nur echte Signalleitungen terminiert. Alle reservierten, offenen, TERMPWR- und Masseleitungen sind damit nicht abgeschlossen.

Für den unsymmetrischen Bus sind in der SCSI-Norm zwei passende Methoden für den Leitungsabschluss vorgesehen. Die erste Methode ist die passive Terminierung. Diese ist für eine schnelle Übertragung, insbesondere für Fast-20, nicht mehr geeignet und deshalb für diese und höhere Geschwindigkeiten nicht mehr zugelassen. Für die symmetrische Schnittstelle (differential) und ihr Abschlussnetzwerk gelten die in SCSI-2 und SCSI-3 gültigen Parameter. LVD-Abschlussnetzwerke sind in SCSI-3 definiert.

Die zweite Methode ist die aktive Terminierung. Die Impedanz ist für SCSI-2, Fast-20 und LVD definiert. Der Strom für die Terminierung kann aus der TERMPWR-Leitung oder (besser) aus den Geräten an den Endpunkten mit der Terminierung entnommen werden.

Die genauen technischen Spezifikationen der aktiven Terminierung finden Sie hier.

Aus elektrischen Gründen (Impedanzunterschiede) müssen die Signaladern in Rundkabeln für den Betrieb von externen SCSI-Devices auf besondere Weise an die Steckverbinder verdrahtet werden. Dies wird häufig nicht beachtet und führt oft zu sporadischen, nicht nachvollziehbaren Fehlern.

Protokoll

Das SCSI-Protokoll kennt den Initiator als Quelle einer Transaktion und das Target als ausführende Funktion. Ein Target kann aus mehr als einer logischen Einheit, den LUNs, bestehen. Im Target wird, wenn nichts anderes angegeben ist, die Unteradresse LUN 0 angesprochen. LUNs können Partitionen auf einer Festplatte, einzelne Festplatten in einem Verbund oder andere logische Teileinheiten sein.

Es wird oft übersehen, dass im SCSI-Protokoll sofort nach der Initiierung die Busaktivität auf das Peripheriegerät (Target) übergeht. In anderen Systemen gibt es in der Regel einen Master und mehrere Slaves, wobei der Master (Rechner oder Bus-Master-Karte) während einer Datenübertragung die Regie behält.

Der Initiator (Host Adapter im Rechner) gibt den Anstoß für eine Datenübertragung und übergibt die Durchführung an das Target (Peripheriegerät). Dieses meldet die Erfüllung, ob erfolgreich oder nicht an den Initiator zurück. Üblicherweise ist der Initiator als einer der beiden Partner selbst an der Datenübertragung beteiligt. Bei einem Copy-Befehl (3rd Party Copy) handelt es sich bei den Partnern hingegen meist um zwei Peripheriegeräte. Dies wird beispielsweise bei SANs (Storage Area Networks) für so genannte Serverless-Backup-Lösungen über den Fibre Channel genutzt.

SCSI ist kein reiner Zustandsautomat und kann daher nicht als solcher dargestellt werden. Es ist immer erforderlich, auch die Historie eines Geschehensablaufs einzubeziehen, wenn entschieden werden muss, wie der logische Ablauf weitergehen soll.

Bis einschließlich SCSI-2 ist nur die parallele Datenübertragung mit 8 beziehungsweise 16 Bit Breite definiert. Grundsätzlich wird immer mit 8 Bit Breite begonnen. Initiator und Target können dann Wide 16 und/oder Fast zusätzlich definieren. Synchroner Betrieb wird ebenfalls gesondert vereinbart, gilt aber nur für den Nutzdatentransfer (Data Phases) und bei neueren SCSI-3-Varianten auch für Befehle und Statusmeldungen.

Adressen und Prioritäten

Die Adresse oder SCSI-ID (Identifikation) dient zur eindeutigen Unterscheidung aller am Bus angeschlossenen Geräte. Jede Adresse darf nur einmal am Bus vorkommen, es gibt keine feste Zuordnung.

Jedes Datenbit stellt während der Arbitration- und Selection-Phase je eine Adresse dar. Somit gibt es Systeme mit 8, 16 oder 32 Adressen. In dem überwiegend vorkommenden 8-Bit-SCSI-Bus ist es üblich, die Initiatoren (Host Adapter), beginnend mit Datenbit (Adresse) 7 abwärts und die Targets (Peripheriegeräte), beginnend mit Datenbit (Adresse) 0 aufwärts zu nummerieren. Eine tabellarische Auflistung der SCSI-Priorität und zugehöriger ID finden Sie hier.

Mit der Adresse fest gekoppelt ist die Priorität. Dies ist erforderlich, um bei gleichzeitig vorliegenden Anforderungen eine Auswahl, die höchste Priorität zuerst, treffen zu können. Das Datenbit 7 hat bei jeder Busbreite die höchste Priorität. Die Priorität nimmt in der Reihenfolge der Datenbits ab (Bit 0 = niedrigste Priorität = Priorität 8). Nach dieser Methode nehmen die Prioritäten bei den breiteren Bussen weiter ab (Bit 15 bis Bit 8).

Daten werden im Target als logische Blöcke auf logischen Einheiten abgelegt oder von dort geholt. Dieses Konzept der logischen Adressierung vereinfacht die Arbeit des Systementwicklers und erleichtert es, ohne irgendwelche Änderungen andere Geräte der gleichen Geräteklasse zu verwenden.

Timing

Die zeitliche Folge des Geschehens am Bus wird in benannte Zeitabschnitte, (Bus Phases) eingeteilt. Diese sind in der folgenden Tabelle aufgelistet:

SCSI-Zeitabschnitte

Arbitration

Buszuteilung

Bus free

Bus frei

Command

Befehl

Data (in/out)

Daten (ein/aus)

Message (in/out)

Meldung (ein/aus)

Reselection

Wiederauswahl

Selection

Auswahl

Status

Zustand

Dieses zeitliche Ablaufschema wurde in neueren Varianten noch weiter verfeinert. Im SCSI-Protokoll unterscheidet man die asynchrone Datenübertragung (Anfangszustand) und die synchrone Datenübertragung mit vereinbarter Geschwindigkeit. Die Begriffe asynchron und synchron haben in der SCSI-Definition dabei eine vom Üblichen abweichende Bedeutung. Es handelt sich nicht um zeitliche Bestimmungen oder Abhängigkeiten, sondern um logische Aufeinanderfolgen beim Handshake.

Bei SCSI gibt es keinen Bustakt. Die Signalzeiten werden als Minimal- oder Maximalzeit definiert. Die Angaben über die Datentransferleistung in MByte/s sind daher nur Hinweise, was theoretisch möglich ist, wenn Übertragungsbreite (8/16 Bit), Übertragungsart (asynchron/synchron), variable Zeitparameter (Fast SCSI, unmittelbare Reaktion), Kabellängen und Treiberart optimal aufeinander abgestimmt sind.

Zu einem bestimmten Zeitpunkt kann es in jedem Initiator und in jedem Target mehr als einen E/A-Prozess geben. Ein E/A-Prozess beginnt mit einer Anfangsverbindung, die unter anderem eine logische Verbindung (Nexus) herstellt. Diese kann mehrmals unterbrochen und wiederhergestellt werden. Bis zu etwas mehr als 14.000 geöffnete logische Verbindungen sind im Protokoll vorgesehen. Voraussetzung ist allerdings ein entsprechend großer lokaler Zwischenspeicher, der die dazugehörigen Parameter bis zum Abschluss der Transaktion halten kann. Einige hundert offene Transaktionen sind üblich. Die Sequenz einer SCSI-Transaktion ist in der folgenden Tabelle dargestellt. Genaue Informationen über die Signallaufzeiten von SCSI-Transaktionen finden Sie hier.

SCSI-Transaktionssequenz

Ausgangszustand

Bus frei

Verbindungsaufbau

Buszuteilung (Arbitration)

Auswahl (Selection)

Identifizierung (Identify, Message out)

Informationsübertragung

Dateneingabe/-ausgabe (Data in/out)

Meldungseingabe/-ausgabe (Message in/out)

Befehlsübertragung (Command)

Zustandsmeldung (Status)

Verbindungsende/-wiederaufnahme

Zustands-/Abschlussmeldung (Status/Message in)

Verbindung trennen/wieder aufnehmen (Disconnnect/Reselect)

SCSI 1, 2 und 3

Bisher gibt es auf Grund der Normierung SCSI-1, SCSI-2 und SCSI-3 sowie CAM für SCSI-2/3 und CCS für SCSI-1. Beim ANSI und IEC wurde SCSI-1 jedoch offiziell aus der Liste der gültigen Normen gestrichen.

Elektrisch und bei den Signalzeiten sind die Unterschiede zwischen den bisherigen Versionen so gering, dass üblicherweise ein Gemischtbetrieb möglich ist. Normgerechte SCSI-Geräte und Treiber sind in der Praxis immer kompatibel. Die Probleme liegen fast immer bei der Einbindung in das jeweilige Rechnersystem (Interrupt-Belegung, I/O-Adressen, herstellerspezifische Einschränkungen).

Unterschiede SCSI-1 versus SCSI-2

Funktion/Parameter

SCSI-1

SCSI-2

Geräteanzahl

8

8

Max. Datenrate

4 bis 5 MByte/s

20 MByte/s (16 Bit)

Buszuteilung (Arbitration)

wahlweise

zwingend vorgeschrieben

Arbitration delay

2,2 µs

2,4 µs

Leitungsabschluss

passiv

aktiv (empfohlen), passiv

Geräteklassen

7

11

LUN-Adresse

über Befehl

nur über Identify-Meldung

Befehlsverkettung

nein

ja

Extended sense Data

nein

ja

Parität (ungerade)

wahlweise

zwingend vorgeschrieben

Wide SCSI (16 oder 32 Bit)

nein

wahlweise

Fast SCSI (synchron)

nein

wahlweise

Steckverbinder, hohe Dichte

nein

wahlweise

CD-ROM, Optical Memory

nein

ja

Scanner, Medium Changer

nein

ja

Communications

nein

ja

SCSI-1-Anwendungen sollen für den Betrieb von Festplatten und Wechselmedien die CCS-Mindestanforderungen (Common Command Set) erfüllen. Diese sind in SCSI-2 bereits integriert.

Unterschiede SCSI-2 versus SCSI-3

Funktion/Parameter

SCSI-2

SCSI-3

Geräteanzahl

8

16

LUNs je Target

8

32

max. Datenrate (16 Bit parallel)

20 MByte/s

320 MByte/s

max. Datenrate seriell

nicht möglich

400 MByte/s und darüber

elektrische Parameter

ungenau definiert

genauere Spezifikation

Kabel für 16 Bit

Kabel A und B

Kabel P

Stromvers. für Leitungsabschl.

ungenau definiert

genauere Spezifikation

Geräteklassen

11

32

Serielle Übertragung

nein

FC, IEEE1394

Wide SCSI (16 oder 32 Bit)

wahlweise, Wide 16

nur noch Wide16

Fast SCSI (synchron)

wahlweise, 10 MHz

wahlweise, max. 80 MHz (160 MHz geplant)

Gerätewechsel im Betrieb

nein

ja

Befehlsverkettung

ja

mit erweiterten Funktionen

SCSI-3 Ultra160

Ab SCSI-3 gibt es kein Gesamt-Normdokument mehr. Viele Einzelspezifikationen können getrennt genutzt werden. Dies gilt insbesondere für die Funktionen der Variante Ultra160, die einen nicht genau definierten Ausschnitt aus verschiedenen SCSI-3-Teilnormen umfasst. Das muss kein Nachteil sein, da bei SCSI-3 Initiator und Target viele Möglichkeiten kennen, die verfügbaren Funktionen selbst herauszufinden.

Die Verdoppelung der Geschwindigkeit wird dadurch erreicht, dass jede Signalflanke für den Start einer Übertragungsfunktion genutzt wird. Eine CRC-Prüfsumme sorgt für die Sicherheit der Datenübertragung bei diesen hohen Geschwindigkeiten. Fehler können so intern korrigiert werden. Die Domain Validation ist ein Mechanismus, mit dem vor Übertragungsbeginn die Schnittstellenart (single-ended, differential, LVD) und die tatsächlich ohne Fehler erreichbare Übertragungsrate ermittelt werden. Damit stellt sich ein sicherer Übertragungsbetrieb automatisch ein. QAS (Quick Arbitration and Selection) beschleunigt, wie die Bezeichnung ausdrückt, die langen Warte- und Verzögerungszeiten bei der Auswahl des nächsten Initiators.

Unterschiede SCSI-3 versus SCSI-3 Ultra160

Funktion/Parameter

SCSI-3

SCSI-3 Ultra160

Max. Datenrate (16 Bit parallel)

40 MByte/s

160 MByte/s

Elektrische Parameter

für 20 MegaTransfers/s

für 80 MegaTransfers/s

Transition Clocking

single

double

CRC

nein

ja

Domain validation

nein

ja

Fairness

nein

wahlweise

QAS

nein

ja

Packetization

nein

geplant

Befehls- und Statusübertragungen laufen bisher noch mit der niedrigen asynchronen Grundgeschwindigkeit ab.

SCSI-3 Ultra320

Die Version Ultra320 ist eine zusätzliche Erweiterung von SCSI-3, aber weiterhin rückwärtskompatibel zu früheren Versionen. Ultra320 bringt folgende wesentliche Erweiterungen.

Schon bei Ultra160 wurden QAS und Double Transfer (DT) eingeführt, mit Ultra320 erfuhren diese Funktionen eine Verfeinerung. Ebenfalls verbessert wurden die Trainings-Prozeduren für die Pegelermittlung und den elektronischen Laufzeitausgleich der parallelen Signale.

Nach einer längeren Folge gleicher Bits wird zum Beispiel der Pegel für das erste Bit in die andere Richtung erhöht, um eine sichere Umladung der Leitung und damit auch ein genügend "langes" Signal am Empfänger zu garantieren (Pre-compensation). Auf der Empfängerseite gibt es wahlweise den AAF (Adjustable Active Filter). Dabei werden hohe Frequenzen ausgefiltert. Beide Funktionen (Pre-comp und AAF) sollten nicht gleichzeitig aktiv sein. Das wird automatisch während der SCSI-Initialisierung ohne Anwenderbeteiligung geregelt.

Für Ultra320 werden im Rechner/Server intern hohe Übertragungsraten auf den Peripheriebussen (beispielsweise PCI-X) benötigt, um einen oder zwei Ultra320-Kanäle mit voller Übertragungsrate nutzen zu können.

Packetized SCSI

Neu bei Ultra320-SCSI ist die Unterstützung eines paketbasierenden Protokolls. Die Packetized SCSI genannte Technik reduziert den Overhead, indem Befehls-, Daten- und Statusblock mit der vollen Bandbreite von 320 MByte/s in einem Paket transferiert werden. Ultra160-SCSI überträgt nur den Datenblock mit einer Geschwindigkeit von 160 MByte/s. Die Befehls- und Statusphasen übermittelt Ultra160-SCSI dagegen asynchron mit nur zehn MByte/s.

Damit soll der Overhead bei Ultra320-SCSI die effektive Interface-Bandbreite deutlich weniger belasten als bei Ultra160-SCSI. Mit zur Packetized-SCSI-Technologie zählt auch das bereits erwähnte Streaming-Verfahren beim Lesen und Schreiben von Daten.

Durch die Packetized-Technik bei Ultra320-SCSI steigt gleichzeitig die Datenintegrität. Während Ultra160-SCSI nur während der Datenübertragungsphase eine CRC-Prüfung durchführt, erfolgt sie bei Ultra320-SCSI zusätzlich bei der Befehls- und Statusphase.

Die Packetized-SCSI-Spezifikation von Ultra320-SCSI sieht eine Kompatibilität zu den Datenübertragungsverfahren des bisherigen SCSI-Standards vor.

Ultra320-SCSI-Kabel

Obwohl sich bei Ultra320-SCSI die Schaltfrequenzen gegenüber Ultra160-SCSI verdoppelt haben, blieben die Anforderungen an die Kabel unverändert. Bei Punkt-zu-Punkt-Verbindungen (Controller und ein Device) erlaubt Ultra320-SCSI Kabellängen von bis zu 25 Metern. Die Strecke reduziert sich auf 12 Meter, wenn mehrere Geräte am SCSI-Bus betrieben werden.

Durch die hohen Frequenzen bei Ultra320-SCSI nehmen die Reflexionen und das Rauschen auf den Leitungen aber zu. Um dennoch integre Signale zu erhalten, gibt es bei Ultra320-SCSI die eingangs bereits erwähnte AAF-Technik. Diese "Adjustable Active Filter" reduzieren den Signal-Rausch-Abstand, indem sie hochfrequente Signaloberwellen in den Kabeln herausfiltern. Da Ultra320-SCSI maximal mit 80 MHz schnellen Signalschaltzeiten arbeitet, filtern die sich selbst kalibrierenden aktiven Filter alle Frequenzen über 80 MHz. Um saubere Signalflanken zu erhalten, wurden bei Ultra320-SCSI außerdem die Signalanstiegszeiten verringert.

Adaptec liefert seine Ultra320-SCSI-Controller trotz unveränderter Kabelanforderungen mit modifizierten Kabeln aus. Statt der normalen verdrillten Flachbandkabel verwendet Adaptec rund gebündelte SCSI-Kabel. Reflexionen, Rauschen und das Übersprechverhalten zwischen benachbarten Signalleitungen soll Adaptecs Bündeltechnik weiter reduzieren und die Datenintegrität somit erhöhen.

Serial Attached SCSI (SAS)

Serielle Übertragungsmethoden erlauben höhere Geschwindigkeiten bei niedrigerer elektrischer Treiberleistung. Das wird in Zukunft auch für SCSI genutzt. SAS ist eine einfachere und preisgünstigere Methode als der schon lange genutzte Fibre Channel. Zur Kostenreduzierung werden häufig gemeinsame Komponenten genutzt. Gbit-Ethernet hat die schon für den Fibre Channel entwickelten Chips und die Signalkodierung (8B/10B) übernommen. Serial ATA (S-ATA) und Serial Attached SCSI (SAS) arbeiten ebenfalls mit der 8B/10B-Kodierung. SAS übernimmt die für S-ATA eingeführten Kabel mit einer Steckverbinder-Variation, die Verwechslungen ausschließt. S-ATA kann logisch in einer SAS-Domain genutzt werden. Es gibt Bestrebungen, RAID-Schränke so auszurüsten, dass nur noch der einmal vorhandene Controller gewechselt werden muss, um im Schrank S-ATA- oder SAS-Geräte nutzen zu können. S-ATA-Geräte lassen sich an SAS nutzen, jedoch nicht umgekehrt. SAS unterstützt zudem Kabellängen von bis zu 25 Meter - statt 1 Meter, wie bei S-ATA. Das Dual-Porting erlaubt beispielsweise den Anschluss einer SAS-Festplatte an zwei unterschiedliche Systeme. SAS arbeitet mit 128 Geräteadressen (S-ATA hat keine) und unterstützt etwa 16.000 LUNs. Also weniger als Fibre Channel, aber deutlich mehr als Parallel-SCSI. Die Parameter der Signale auf den Kabeln sind so gewählt, dass bei 150 MByte/s oder 300 MByte/s eine Fehlerrate von besser als 10-12 eingehalten wird.

Erste Produkte mit Serial Attached SCSI soll es im Jahr 2004 mit einer Datenübertragungsrate von 300 MByte/s geben. Zunehmend mehren sich die Gerüchte, dass noch im Jahr 2003 SAS-Produkte erscheinen. Seagate zeigte bereits eine lauffähige SAS-Festplatte. 2004 geht man bei SCSI-Festplatten von sequenziellen Datentransferraten von 127 MByte/s aus. 2006 sollen es bereits 238 MByte/s sein. Damit wäre ein SAS300-Kanal inklusive Overhead schon ausgereizt. Für das Jahr 2007 ist deshalb die nächste SAS-Variante mit einer Bandbreite von 600 MByte/s geplant. Serial SCSI 1200 soll 2010 an den Start gehen. Die Bandbreite von 1200 MByte/s wäre dann auch nötig, denn eine Festplatte liefert nach Ansicht der SCSI Trade Association zu diesem Zeitpunkt bereits 830 MByte/s sequenzielle Datentransferrate.

Normen

Selbst nach fast 20 Jahren ist der Aufwand für die SCSI-Standardisierung immer noch enorm hoch. Die Besprechungen der ANSI-Komitee-Mitglieder finden monatlich in unterschiedlichen Städten der USA statt. Selten sind weniger als 50 Teilnehmer anwesend. Dadurch ist wie bisher gewährleistet, dass die Normen immer vor oder mit den entsprechenden Produkten verfügbar sind. Damit wird ein Großteil der sonst üblichen Inkompatibilitäten vermieden. In den Monaten dazwischen tagen die Fibre-Channel- und die ATA-Standard-Experten.

SCSI ist ein offener Busstandard. Es werden von niemandem Lizenzgebühren verlangt. Es gibt keinen Eigentümer, der öfter irgendwelche Stolpersteine einbaut. Das SCSI-Komitee unter Aufsicht von ANSI (American National Standards Institute) besteht aus Mitgliedern von über 50 Firmen, die alle auf diesem Gebiet tätig sind. Keiner kann also heimlich irgendwelche Besonderheiten einbauen, die dann andere erst wieder mühsam herausfinden müssten. Natürlich ist diese Offenheit manchmal hinderlich für rasche Entscheidungen. Die große Verbreitung von SCSI beweist jedoch, dass das Konzept und seine Verwirklichung in Produkten zeitgerecht ist. Die Tabelle mit den aktuellen Normentwurfsdokumenten finden Sie hier.

Technische Daten

In der nachfolgenden Tabelle finden Sie noch einmal einen Überblick über alle bisherigen SCSI-Standards und deren maximal mögliche Schnittstellengeschwindigkeit:

Busbreiten und Datenraten der SCSI-Standards

Name/Definition

Busbreite in Bit

MByte/s

SCSI, SCSI-1/2/3

8

5

Fast SCSI, Fast-10

8

10

Fast Wide SCSI, Fast-10 Wide

16

20

Ultra SCSI, Fast-20

8

20

Wide Ultra SCSI, Fast-20 Wide

16

40

Ultra2 SCSI, Fast 40

8

40

Wide Ultra2 SCSI, Fast-40 Wide

16

80

Ultra3 SCSI, Fast 80

8

80

Wide Ultra3 SCSI, Fast-80 Wide

16

160

Fast-160

16

320

Fast-320 (geplant)

16

640

Ohne den Zusatz "Wide" wird eine Datenbusbreite von 8 Bit angenommen. Zur Präzisierung kann dafür auch der Begriff "narrow" (schmal) hinzugefügt werden. Der Zusatz Wide wird nur noch für Wide16, also für 16-Bit-Parallelübertragung verwendet.

Ab Ultra2 SCSI, Fast-40 ist nur noch der Betrieb mit LVD SCSI (Low Voltage SCSI) definiert. Unsymmetrisch (single-ended) und symmetrisch (differential) mit hohen Pegeln (HVD = High Voltage Differential) sind im Standard nicht vorgesehen.

Die seriellen Varianten (FC-AL, SAS und SSA) verwenden die 8B/10B-Kodierung, daher sind die dazugehörigen seriellen Übertragungsraten zehn Mal so hoch. FC-AL (SCSI-3) und SSA (SCSI-2) unterscheiden sich nur in der physikalischen Schicht. Der Anwender sieht das gleiche SCSI-Protokoll wie bei Parallelbetrieb. SSA (Serial Storage Architecture) wird nicht mehr weiterentwickelt. Migration zu Fibre Channel-Arbitrated Loop (FC-AL) ist definiert. SAS und SRP befinden sich noch in der Entwicklung.

FC-AL4 und FC-AL8 sowie Fast-80 werden erst noch spezifiziert. Die Dual-Loop-Varianten können zur Transferratenerhöhung oder als doppelte Übertragungswege (redundant) genutzt werden.

Weiterentwicklungen

Die physikalische Schnittstelle in SCSI-3 wird durch serielle Übertragungsmöglichkeiten erweitert. Dazu gehören der Fibre Channel mit SCSI-3-Protokoll und der FireWire (IEEE 1394) sowie InfiniBand mit SRP-Protokoll. Bei den seriellen Verbindungen können wesentlich kleinere Steckverbinder eingesetzt werden. Außerdem sind schnellere Übertragungen möglich.

Zusätzlich zur elektrisch-mechanischen Definition von seriellen Schnittstellen war es erforderlich, das Übertragungsprotokoll anzupassen. Im bisherigen Parallelbetrieb wird jedes Byte beziehungsweise jeder Übertragungszyklus quittiert. Das ist sehr zeitaufwendig, insbesondere, wenn man über eine Entfernung von einem Kilometer (bis zehn Kilometer bei FC mit Glasfaser) übertragen möchte. Es wurde daher die serielle Paketübertragung neu eingeführt. Dabei werden Datenpakete von Puffer zu Puffer übertragen und paketweise quittiert.

Ultra160 und Ultra320 sind Ausschnitte aus verschiedenen SCSI-3-Teilnormen. Produkte mit den dort beschriebenen Funktionen sind inzwischen von vielen Herstellern auf dem Markt. Die Besonderheiten sind auf der Normenseite aufgelistet. Noch wenig bekannt sind die SCSI Enclosure Services (SES). Dieser ANSI- und ISO/IEC-Standard (X3.305, JTC1 14776-371) erlaubt es, Zustandsmeldungen (Temperatur, Stromversorgung, Gebläse und so weiter) sowie Fehlermeldungen direkt als Daten über den SCSI-Bus zu übertragen. Bisher wurden dafür zusätzliche serielle Schnittstellen (RS232, V.24) mit firmenspezifischer Software benötigt. Bei RAID-Schränken mit vielen Laufwerken, redundanten Stromversorgungen und Lüftern ist die Nutzung eine große Erleichterung für den Systemmanager.

Höhere Geschwindigkeiten mit 640 MByte/s werden zunächst in Simulationen überprüft. Ob Produkte mit Übertragungsraten von 640 MByte/s kommen, ist derzeit fraglich. 2004 soll das ursprünglich geplante Ultra640-SCSI durch SAS ersetzt werden. An OBSDs (Object Based Storage Drives) wird im SCSI-Komitee T10 (ANSI) gearbeitet. In einigen Jahren sollten erste Produkte dazu erscheinen. Es wird auch daran gearbeitet, unter Parallel-SCSI bis zu 960 Laufwerke bei Kabellängen von bis zu 75 Metern betreiben zu können. (cvi/mje)

Der Autor

Hermann Strass ist Berater für neue Technologien, insbesondere für Busarchitekturen, Massenspeicher und industrielle Netzwerke, Mitglied in nationalen und internationalen Normungsgremien, in der IEEE Computer Society sowie Technical Coordinator der VITA in Europa. Daneben ist er Autor von Büchern, Zeitschriftenartikeln und organisiert Seminare.