SCSI ist eine Technik für Leute mit Qualitätsansprüchen, Leute die Leistung brauchen oder wie Ich - es einfach nur haben müssen.. ;)
Wie ich nun feststellte ist es nicht ganz leicht ein solches System fehlerfrei aufzubauen, und 'fehlerfrei' heist nicht nur das es funktioniert, sondern auch 'richtig' und mit voller Leistung arbeitet.
Aus diesem Grund habe ich viel Bookware gewältzt und möchte hier eine kleine Einführung in SCSI geben.
Wie immer hoffe ich das es Euch in irgendeiner Form hilft ;)...
Was ist SCSI und Wie entstand es..
SCSI ist die Abkürzung für Small Computer System Interface und ist ein geräteunabhängiges I/O-Subsystem das denn Anschluß verschiedenartiger Peripherie erlaubt. Die Entwicklung von SCSI begann im Jahre 1979 mit SASI, einer Spezifikation die gewisse Probleme mit 'damaligen' Plattenlaufwerken beheben sollte. Es sollte die Festplattenunterteilung von Zylindern,Blöcken und Sektoren aufheben und stattdessen eine logische Adressierung einführen. Weiterhin sollten nun Nutzdaten nicht mehr seriell sondern byteweise (8bit parallel) übertragen werden.
Nach ein paar Entwicklungen wurde 1982 von der ANSI-Arbeitsgruppe X3T9.2 das Projekt SCSI gestartet und 1986 dann von der ANSI als Industriestandart eingeführt. Kleine Startproblemchen führten dann über CSS, SCSI-1, SCSI-2, zum heutigen SCSI-3..
Technik, Konzept
SCSI ist eigentlich nur ein Protokoll, es wird aber auch auf physikalischer Ebene eine Unterscheidung gemacht. So kann die Übertragungsart parallel oder seriell erfolgen, sowie das Übertragungsmedium verschiedener Art sein. So wird z.B. bei ATAPTI, das physik. auf dem ATA-BUS läuft, ein verkürztes SCSI-Protokoll angewand. So kommen wir zum mit wichtigsten Punkt von SCSI, es ist 'geräteunabhängig'. Dies bedeuted das ein Programmierer keine speziellen Kenntnisse vom innerem Aufbau eines Gerätes haben muß, sondern das SCSI einen Mechanismus besitzt mit dem man alle nötigen Parameter vom Gerät selbst abfragen kann, dabei sitzt die gesamte Intelligenz im SCSI-Gerät selbst. Hier wird zum Beispiel das Formatieren einer Festplatte erwähnt, es kann mit nur einem Befehl an die HD ausgelöst werden. Was dabei alles 'im' Gerät geschieht braucht den Programmierer nicht zu interessieren. Dies wird auch durch die logische Adressierung des Gerätes erleichert, es wird nicht mit Zylindern,Blöcken und Sektoren gearbeitet, sondern für den Anwender ergibt sich ein Speicherbereich.
Weiterhin wird das SCSI-Protokoll immer Rückwärtskompatibel gehalten, also können SCSI-1/2/3 Graäte an einem Bus betrieben werden.
An den SCSI-Bus können meherer Geräte gleichzeitig Daten anfordern, wobei ein Gerät das eine Aktion auf dem Bus auslöst als Initiator und das Gerät welches die Aktion dann ausführt als Target (Computer -> Festplatte) gilt, die dann nach Vorrangregeln (SCSI-ID) Zugriff auf dem Bus bekommen.
Zum Anschluß des Computers an den SCSI-Bus dient der SCSI-Hostadapter, nicht Kontroller - ein Kontroller dient zum Anschluß der Peripherie an den SCSI-Bus. Bei einem 'normalen' PC-System ist der Hostadapter in Form einer ISA/PCI-Karte erhältlich und der SCSI-Kontroller wird in der jeweiligen Peripherie integriert.
...ein Bild soll den Abschnitt deutlicher machen...
Der parallele SCSI-Bus (Schnittstelle)
Der paralele SCSI-Bus kann 8 oder 16Bit breit sein wobei bis zu 8-15(32-SCSI-3) Geräte adressiert werden können. Dabei bekommt jedes SCSI-Device seine eigene einmalige SCSI-ID zugewiesen. Der 8Bit-Bus wird Narrow-SCSI und der 16Bit-Bus wird Wide-SCSI genannt. An jedem physikalischen Ende muß der Bus abgeschlossen werden, was mit Terminatoren erledigt wird. Physikalisch meint an jedem Kabelende. Weiterhin darf der Bus keine Abzweigungen enthalten.
Für Narrow-SCSI kommt ein 50poliges Kabel zum Einsatz und bei Wide-SCSI wird ein 68poliges Kabel benötigt.
Ein SCSI-Gerät kann nochmals in 8 getrennte logische Einheiten (LUN, Logical Units) unterteilt werden, was aber seltener vorkommt.. wer hat schon einen CD-Wechsler ;)..
...wieder ein kleines Bild zur Verdeutlichung...
Ein Terminator legt dabei einen definierten Pegel der Signale im Ruhezustand fest und verhindert Signalreflexionen an den Kabelenden.
Auf dem SCSI-Bus erfolgt die Übertragung der Kommandos grundsätzlich asynchron mit 8-Bit, was der langsamsten Betriebsart entspricht. Dabei kann der Bus ca. 6m lang werden, aber nur 3MB/sek übertragen.
Wie die Nutzdaten dann übertragen werden, wird später durch die SCSI-Geräte untereinander ausgehandelt. Dies bedeutet das man keine Geschwindigkeitseinbußen in Kauf nehmen muß, wenn man ältere Geräte am SCSI-Bus mit Neueren mischt (Ausnahme - Ultra-2-Wide).
Hier ein kleine Tabelle der Übertragungsraten...
Standart | MB/sek | Kabellänge (single-ended) |
---|---|---|
Ultra-Wide-2-SCSI | 80 mit LVD | mit LVD bis 12m |
Ultra-2-SCSI, Ultra-Wide-SCSI | 40 | 3m 1,5m bei mehr als 4 Geräte |
Ultra-SCSI, Fast-Wide-SCSI, SCSI-3 | 20 | " |
Fast-SCSI, SCSI-2 | 10 | 3m |
Synchroner-SCSI, SCSI-1 | 5 | 6m |
Asynchroner-SCSI, SCSI-1 | 3 | 6m |
Bei SCSI-2 können immer nur jeweils zwei Geräte auf dem Bus miteinander kommunizieren. SCSI-Geräte geben aber sobald ein Kommando übertragen ist den Bus sofort wieder frei und melden sich wieder wenn das Kommando abgearbeitet ist. Auch gibt es eine Priorität wenn zwei Geräte gleichzeit auf den Bus zugreifen wollen, dabei hat das Geräte mit der höchten SCSI-ID Vorrang. Allerdings spielt das kaum eine Rolle.
Ab SCSI-3 sind auch andere Schnittstellenalternativen vorgesehen wie SSA, Fibre-Channel und Fire-Wire. Ich beziehe mich aber immer auf der parallele Schnittstelle und bei dieser auch nur auf die Single-ended Schnittstelle. Die differentielle Schnittstelle wird zur Überwindung von Kabellängen bis zu 25m verwendet und ist inkompatible zu single-ended (und kaum Verfügbar).
Bei Ultra-2-Wide kommt die LVD (low-Voltage-Differential) Schnittstelle zum Einsatz. Sie erlaubt Kabellängen bis 12m, allerdings ist diese auch inkompatible zu single-ended. Es ist zwar ein Mischbetrieb möglich, dabei schalten aber die SCSI-Geräte nicht in den LVD-Modus sondern in den single-ended-Modus. Bei LVD müssen also ALLE Geräte die LVD-Schnittstelle beherrschen. ( Wenn es interessiert, die Treiberbausteine arbeiten mit einer anderen Leistung. )
Der Hostadapter
Oben habe ich schon erwähnt das der Hostadapter eigentlich eine sehr einfache Aufgabe hat, den Datenaustausch der Kommandos und Nutzdaten zwischen Hauptspeicher des Computers und dem SCSI-Bus. Diese Aufgabe wird heute meist in nur einem Chip gepackt, dazu noch ein paar aktive Terminatorchips und ein Flash-PROM für ein BIOS mit welchem man von SCSI-Geräten booten kann und andere Parameter eingestellt werden können. Sie besitzen meist zwei interne und einen externen Anschluß, wobei nur immer zwei benutzt werden können, da sonst ein unerlaubter Abzweig entstehen würde.
Die Terminatoren auf dem Hostadapter erkennen meist automatisch ob sie eingeschaltet sein müssen, wer allerdings auf 'Nummer sicher' gehen möchte, sollte sie per Jumper doch manuell richtig setzen - siehe weiter hinten.
Das SCSI-BIOS erreichen sie meist wie das normale PC-BIOS (DEL, STRG+A, u.a.). Einige BIOS-Einstellungen folgen...
SCSI-ID.. hier wird die eindeutige ID des Hostadapters angegeben. Wenn man Narrow und Wide-Geräte verwendet, muß der Adapter die 7 haben, sonst können die Narrow-Geräte den Adapter nicht erkennen.
Terminierung.. soll der Hostadapter automatisch terminieren oder wird es manuell gesetzt.
SCAM.. selten, mit diesem Protokoll kann die Vergabe von SCSI-ID automatisiert werden.
SCSI-Parity.. sollte man einschalten, da es die einzige Möglichkeit ist Übertragungsfehler zu erkennen.
SCSI-Disconnect.. hier können Geräte während sie noch ein Kommando bearbeiten den SCSI-Bus für andere Geräte freigeben - auch einschalten.
START-Delay.. manche SCSI-Geräte brauchen eine kurze Zeit zum anlaufen die hier gegeben wird.
Synchroner Transfer.. wer nicht bei 3MB/sek Datenrate stehen bleiben will, sollte hier einschalten (AUTO).
In einem Computer können auch mehrere solcher Hostadapter installiert sein, wobei dann jeweils ein eigener Abgeschlosser Bus (Domäne) gebildet wird - damit also auch gleiche SCSI-ID's vergeben werden können (z.B 2HD mit ID 1).
SCSI-Geräte
Zu den SCSI-Geräten gibt es eigentlich nicht viel zu sagen. Man stellt die gewünschte SCSI-ID ein, evt. Terminiert man (ab Ultra-2-Wide nur noch extern) und wer mehr als zwei Festplatten besitzt sollte noch die SCSI-Delay einstellen, damit nicht alle Geräte auf einmal hochlaufen und das Netzteil in die Knie zwinken.
Es gibt auch Geräte die ähnliche Einstellungen wie der Hostadapter bieten(Parity,Disconnect), da gilt dann selbiges wie oben.
Um von einem Gerät booten zu wollen ,ist es meist nötig dies auf SCSI-ID 0/1 zu legen. Ich empfehle die erste interne HD auf ID 1 zu legen, damit hat man dann die Möglichkeit von einem externen Gerät zu booten ohne den Rechner öffnen zu müssen.
SCSI-Kabel
Bei internen Geräten haben sich für Narrow-SCSI ein 50pol. Flachbandkabel und für Wide-SCSI ein 68pol. Flachbandkabel durchgesetzt. Das 50polige macht eine Ausnahme indem am Kabel Buchsen angebracht sind, beim 68poligen Kabel sind es dann wieder Stecker.
Bei externen Geräten sieht es meist nicht so geordnet aus, viele Anschlüße sind nicht genormt oder die Anschlußbuchsen-stecker sind mit Klips, oder Schräubchen oder Beidem ausgestattet.
Allgemein gilt, Hostadapter und Gehäuse haben Buchsen und die Kabel Stecker.
In der nächsten Tabelle möchte ich einen kleinen Überblick geben..
Stecker | Buchse |
---|---|
.. | 50-polige Pfostenbuchsenleiste Flachbandkabel intern |
50-poliger Mini-Sub-D Stecker auch Micro-D, SCSI-2,High-Density |
.. |
50-poliger Centronicsstecker auch SCSI-1 |
.. |
68-poliger Mini-Sub-D Stecker auch Micro-D, SCSI-3,High-Density |
.. |
68-poliger VHD Stecker Very High Density auch UHD -Ultra High Density,SCSI-4 eher für Profiebereich(ext.RAID) passen bis zu 4Buchsen auf ein Slotblech |
.. |
25-poliger-SUB-D eigentlich nicht zulässig |
.. |
Die Terminierung
Vom Prinzip her braucht man sich nur zu merken das an jedem physikalischen Ende ein Terminator angebracht werden muß. Dabei ist der gesamte Bus gemeint, also externe und intern Geräte hängen an dem selben Bus.
Was macht nun eigentlich ein solcher TERMINATOR...
Ein Terminator legt die Signale auf den Ruhepegel und verhindert gleichzeitig das an den Enden Signalreflexionen entstehen, was zu Signalüberlagerungen führen würde.
Dieses Terminieren kann mit zwei Unterschiedlichen TERMINATOREN geschehen...
Bei SCSI-1/2 ist dafür ein paar von Widerständen vorgesehen, 220Ohm nach +5V und 330Ohm nach Masse ( damit liegt der Ruhepegel bei 3V). Dies wird passive Terminierung genannt.
Ab SCSI-2 wurde die Aktive Terminierung eingeführt, welche den definierten Ruhepegel mit Hilfe von Spannungsreglern herstellt. Diese Terminierung ist besser geeignet um die Leitungsimpedanz von 100 u. 132Ohm einzuhalten und senkt die Störanfälligkeit erheblich.
Diese Terminatoren gibt es zum aufstecken auf ein freien Steckplatz des SCSI-Kabels, wenn die Steckplätze knapp sind gibt es Zwischenadapter die dann vor das letzte Gerät gesteckt werden. Häufig sind in den Geräten (ab Ultra-2-Wide nicht mehr) schon Terminatorchips eingebaut, die dann mit Steckbrücken geschaltet werden können. Dabei ist darauf zu achten, das nur an dem letzten Gerät am SCSI-Bus dieser eingeschaltet ist.
Die nächste Tabelle zeigt Terminaoren, als Endstücke und als Zwischenadapter...
Bauform | intern | extern |
---|---|---|
Endstück | ||
Zwischen- adapter |
Anm.: Original Beitrag auf http://www.mmajunke.de/scsi.htm