-
Die
vorliegende Erfindung bezieht sich auf Multi-Peripheriegeräte-Gehäuse bzw. eine Mehrperipheriegeräteumhüllung und
insbesondere auf ein Verfahren und System zum Erhöhen der
Zuverlässigkeit
und Verfügbarkeit
von Multi-Peripheriegeräte-Gehäusen bzw.
Mehrperipheriegeräteumhüllungen
durch Integrieren von Steuerelementen zum Abtrennen von Komponenten.
Dieselbe bezieht sich ferner auf ein Verfahren und ein System zum
Verbessern einer Faserkanalschleifenelastizität für ein Massenspeichergehäuse durch
Erhöhen
einer Komponentenredundanz und Verwenden von Nebenschlusselementen
und einer intelligenten Umgehungsverwaltung.
-
Der
Faserkanal bzw. Fibre Channel („FC") ist eine Architektur und ein Protokoll
für ein
Datenkommunikationsnetzwerk zum Verbinden einer Anzahl verschiedener
Kombinationen von Computern und Peripheriegeräten. Der FC unterstützt eine
Vielzahl von Obere-Ebene-Protokollen, einschließlich des Kleincomputer-Schnittstellen-Protokolls
(„SCSI"-Protokolls, SCSI
= small computer systems interface). Ein Computer oder ein Peripheriegerät ist durch
ein FC-Tor und Kupferdrähte
oder optische Fasern mit dem Netzwerk verbunden. Ein FC-Tor umfasst
ein Sende-/Empfangsgerät
und eine Schnittstellensteuerung, und das Computer-Peripheriegerät, in dem
das FC-Tor enthalten ist, wird als „Host" bezeichnet. Das FC-Tor tauscht über einen lokalen Datenbus,
z. B. einen „PCI"-Bus (PCI = peripheral computer interface)
mit dem Host Daten aus. Die Schnittstellensteuerung führt Untere-Ebene-Protokollaustausche
zwischen dem Faserkanal und dem Computer oder Peripheriegerät, in dem
sich das FC-Tor befindet, durch.
-
Aufgrund
der hohen Bandbreite und der flexiblen Verbindbarkeit, die durch
den FC geliefert wird, wird der FC zu einem üblichen Medium zum Verbinden
von Peripheriegeräten
inner halb von Multi-Peripheriegeräte-Gehäusen, z. B. redundanten Arrays
preiswerter Laufwerke („RAID
s"), und zum Verbinden
von Multi-Peripheriegeräte-Gehäusen mit
einem oder mehreren Hostcomputern. Diese Multi-Peripheriegeräte-Gehäuse liefern
auf wirtschaftliche Weise stark vergrößerte Speicherkapazitäten und
eine eingebaute Redundanz, die Spiegelungs- und Ersatzbetriebsstrategien,
die bei Systemen mit hoher Verfügbarkeit
benötigt
werden, ermöglicht.
Obwohl der FC bezüglich
der Kapazität
und Verbindbarkeit für
diese Anwendung gut geeignet ist, ist der FC ein serielles Kommunikationsmedium.
In bestimmten Fällen
können
fehlerhafte Peripheriegeräte
und Gehäuse
Kommunikationen beeinträchtigen
oder unmöglich
machen. Somit erkannte man ein Erfordernis, dass Verfahren die Fähigkeit
von auf FCs beruhenden Multi-Peripheriegeräte-Gehäusen, sich
von fehlerhaften Peripheriegeräten
zu trennen und zu erholen, verbessern. Ferner wurde ein Erfordernis
zusätzlicher
Kommunikationen und Komponentenredundanzen innerhalb von Multi-Peripheriegeräte-Gehäusen erkannt,
um höhere Ebenen
einer Fehlertoleranz und hohen Verfügbarkeit zu ermöglichen.
-
Das
Dokument 'In Depth
Fibre Channel Arbitrated Loop' von
KEMBEL, ISBN 0_931836_81_6, offenbart eine Umgehungsschaltung gemäß dem Oberbegriff
von Anspruch 1. Dieselbe leidet unter einem Nachteil dahingehend,
dass die Steuerung verhaltensspezifisch sein muss.
-
Die
vorliegende Erfindung sieht ein Verfahren und ein System zum Abtrennen
von Peripheriegeräten innerhalb
eines Multi-Peripheriegeräte-Gehäuses bzw.
einer Mehrperipheriegeräteumhüllung von
dem Kommunikationsmedium, das verwendet wird, um die Peripheriegeräte innerhalb
des Multi-Peripheriegeräte-Gehäuses miteinander
zu verbinden, und zum Abtrennen eines Multi-Peripheriegeräte-Gehäuses von
einem Kommunikationsmedium vor, das verwendet wird, um eine Anzahl
von Multi-Peripheriegeräte-Gehäusen mit einem
Hostcomputer zu verbinden. Die vorliegende Erfindung liefert eine
erhöhte
Komponentenredundanz innerhalb von Multi- Peripheriegeräte-Gehäusen, um einzelne Ausfallpunkte
zu eliminieren, um die Fehlertoleranz und die hohe Verfügbarkeit
der Multi-Peripheriegeräte-Gehäuse zu erhöhen.
-
Torumgehungsschaltungen
werden verwendet, um einen Zugriff von Peripheriegeräten auf
das Kommunikationsmedium, das dazu verwendet wird, die Peripheriegeräte in dem
Multi-Peripheriegeräte-Gehäuse miteinander
zu verbinden, zu steuern. Die Torumgehungsschaltungen werden ihrerseits
durch Torumgehungsschaltungssteuerungen gesteuert, die wiederum
durch Software- oder Firmwareroutinen gesteuert werden können, die
in einem Mikroprozessor innerhalb des Multi-Peripheriegeräte-Gehäuses ablaufen.
Diese drei Steuerungsebenen ermöglichen
eine intelligente Verwaltung von Peripheriegeräten, eine Diagnose von fehlerhaften
Peripheriegeräten
sowie eine Trennung von fehlerhaften Peripheriegeräten. Die
aus drei Stufen bestehende Torumgehungsschaltungssteuerung wird
auch auf Verbindungstore zwischen Multi-Peripheriegeräte-Gehäuse ausgeweitet,
so dass ein fehlerhaftes Multi-Peripheriegeräte-Gehäuse diagnostiziert und von
einem Kommunikationsmedium, dass das Multi-Peripheriegeräte-Gehäuse mit einem Hostcomputer
verbindet, getrennt werden kann. Redundante Torumgehungsschaltungssteuerungen
und Mikroprozessoren können
verwendet werden, um die Zuverlässigkeit
der Diagnose- und Abtrennstrategien, die unter Verwendung der aus drei
Stufen bestehenden Torumgehungsschaltungssteuerung implementiert
werden, zu verbessern.
-
1A bis 1C zeigen
die drei verschiedenen Typen von FC-Ver bindungstopologien.
-
2 veranschaulicht
eine sehr einfache Hierarchie, mittels derer Daten rechtzeitig für einen
Transfer durch ein FC-Netzwerk organisiert werden.
-
3 zeigt
den Inhalt eines Standard-FC-Rahmens.
-
4 ist
ein Blockdiagramm einer üblichen
Personal-Computer-Architektur,
die einen SCSI-Bus umfasst.
-
5 veranschaulicht
die Topologie des SCSI-Busses.
-
6A bis 6C veranschaulichen
das SCSI-Protokoll, das an der Einleitung und Implementierung von
Lese- und Schreib-Eingabe-/-Ausgabeoperationen beteiligt ist.
-
7A und 7B veranschaulichen
eine Abbildung von FCP-Sequen- zen,
die zwischen einem Initiator und einem Ziel ausgetauscht werden,
und der SCSI-Bus-Phasen und -Zustände, die in den 6A–6C beschrieben
werden.
-
8 zeigt
ein Diagramm der sieben Phasen einer FC-Zugeteilte-Schleife-Initialisierung.
-
9 zeigt
die Datennutzlast von FC-Rahmen, die durch FC-Knoten in einer Zugeteilte-Schleife-Topologie
während
jeder der sieben Phasen der in 9 gezeigten
Schleifeninitialisierung übertragen
werden.
-
10 veranschaulicht
ein einfaches Multi-Peripheriegeräte-Gehäuse.
-
11 veranschaulicht
das durch den SES-Befehlssatz dargestellte elementare Kommunikationsparadigma.
-
12 ist
eine vereinfachte Veranschaulichung des Entwurfs, der von Herstellern
bestimmter derzeit verfügbarer
Multilaufwerksgehäuse
auf FC-Basis verwendet wird.
-
13A ist eine schematische Darstellung einer Torumgehungsschaltung,
z. B. von Torumgehungsschaltungen 1222–1229 in 12.
-
13B veranschaulicht die Verbindung eines Plattenlaufwerks
mit einer Faserkanalschleife über eine
Torumgehungsschaltung.
-
14 zeigt
ein hochverfügbares
Gehäuse,
das Techniken, die auf die vorliegende Erfindung bezogen sind, beinhaltet.
-
15A veranschaulicht eine Steuerung einer Torumgehungsschaltung
mittels eines Torumgehungsschaltungssteuerungschips.
-
15B zeigt ein Beispiel der in Hardware implementierten
PBC-Steuerschaltung.
-
16A und 16B veranschaulichen
die Nützlichkeit
eines Implemen- tierens
eines Nebenschlussvorgangs, um einen GBIC zu umgehen.
-
Die
vorliegende Erfindung wird nachfolgend in sechs Teilabschnitten
beschrieben. Die ersten drei Teilabschnitte liefern mehr Einzelheiten über die
Faserkanalarchitektur und das Faserkanalprotokoll, die bzw. das SCSI-Architektur
und -Protokoll sowie eine Implementierung des SCSI-Protokolls auf dem
Faserkanalprotokoll. Der vierte Teilabschnitt erörtert den Vorgang der Faserkanal-Zugeteilte-Schleife-Initialisierung.
Der fünfte Teilabschnitt
liefert eine allgemeine Beschreibung von Multi-Peripheriegeräte-Gehäusen, und
der sechste Teilabschnitt beschreibt einen spezialisierten SCSI-Befehlssatz
und ein spezialisiertes SCSI-Protokoll, der bzw. das zur Komponentenverwaltung
in Systemen von Peripheriegeräten
verwendet wird, die über
das SCSI-Protokoll mit einem oder mehreren Hostcomputern kommunizieren.
Der siebte Teilabschnitt liefert eine ausführli che Beschreibung eines
Hardware-Ausführungsbeispiels
der vorliegenden Erfindung, und ein abschließender achter Teilabschnitt
liefert eine ausführliche
Beschreibung von Kommunikationen und einer gemeinsamen Steuerung
zwischen Prozessoren in einem Multi-Peripheriegeräte-Gehäuse.
-
Faserkanal
-
Der
Faserkanal („FC") wird durch eine
Anzahl von ANSI-Normen-Dokumenten
definiert und in denselben beschrieben, einschließlich: (1)
Fibre Channel Physical and Signaling Interface („FC-PH"), ANSI X3.230-1994, („FC-PH-2"), ANSI X3.297-1997;
(2) Fibre Channel – Arbitrated
Loop („FC-AL-2"), ANSI X3.272-1996; (3) Fibre Channel – Private
Loop SCSI Direct Attached („FC-PLDA"); (4) Fibre Channel
-Fabric Loop Attachment („FC-FLA"); (5) Fibre Channel
Protocol for SCSI („FCP"); (6) Fibre Channel
Fabric Requirements („FC-FG"), ANSI X3.289:1996;
und (7) Fibre Channel 10-Bit Interface. Diese Normen-Dokumente werden
häufig
einer Revision unterzogen. Zusätzliche „FCSI"-Normen-Dokumente
(FCSI = Fibre Channel System Initiative) umfassen: (1) Gigabaud
Link Module Family („GLM"), FCSI-301; (2)
Common FC-PH Feature Sets Profiles, FCSI-101; und (3) SCSI Profile,
FCSI-201. Diese Dokumente finden sich auf der Internetseite der
folgenden Adresse im World Wide Web:
„http://www.fibrechannel.com"
-
Die
folgende Beschreibung des FC soll Bestimmte der in diesen Dokumenten
enthaltenen Informationen einführen
und zusammenfassen, um eine Erörterung
der vorliegenden Erfindung zu erleichtern. Wenn eine ausführlichere
Erörterung
eines der in der folgenden Beschreibung vorgestellten Themen gewünscht wird, kann
man in den oben erwähnten
Dokumenten nachlesen.
-
Der
FC ist eine Architektur und ein Protokoll für Datenkommunikationen zwischen
FC-Knoten, im Allgemeinen Computern, Arbeitsplatzrechnern, Peripheriegeräten und
Arrays oder Sammlungen von Peripheriegeräten, z. B. Laufwerkarrays,
die durch ein oder mehrere Kommunikationsmedien miteinander verbunden sind.
Kommunikationsmedien umfassen abgeschirmte verdrillte Doppelleitungen,
Koaxialkabel und optische Fasern. Ein FC-Knoten ist über zumindest
ein FC-Tor und eine FC-Verknüpfung
mit einem Kommunikationsmedium verbunden. Ein FC-Tor ist ein FC-Hostadapter
oder eine FC-Steuerung,
der bzw, die ein Register und eine Speicherschnittstelle gemeinsam
mit den Verarbeitungskomponenten des FC-Knotens verwendet und der
bzw. die in Hardware und Firmware die niedrigeren Ebenen des FC-Protokolls
implementiert. Allgemein tauscht der FC-Knoten unter Verwendung
von gemeinsam verwendeten Datenstrukturen in einem gemeinsam verwendeten
Speicher und unter Verwendung von Steuerregistern in dem FC-Tor
Daten und Steuerinformationen mit dem FC-Tor aus. Das FC-Tor umfasst
serielle Sender- und Empfängerkomponenten,
die über
eine Verknüpfung,
die elektrische Drähte
oder optische Stränge
umfasst, mit einem Kommunikationsmedium gekoppelt sind.
-
In
der folgenden Erörterung
wird „FC" als Adjektiv verwendet,
um auf die bzw. das allgemeine Faserkanalarchitektur und -protokoll
Bezug zu nehmen, und wird als Nomen verwendet, um auf eine Instanz
eines Faserkanalkommunikationsmediums Bezug zu nehmen. Somit kann
ein FC-Tor (FC-Architektur-
und -Protokoll-Tor) eine FC-Sequenz (FC-Architektur- und -Protokoll-Sequenz)
von dem FC (Kommunikationsmedium) empfangen.
-
Die
bzw. das FC-Architektur und -Protokoll unterstützen drei verschiedene Arten
von Verbindungstopologien, in 1A–1C gezeigt. 1A zeigt
die einfachste der drei miteinander verbundenen Topologien, die
als „Punkt-zu-Punkt-Topologie" bezeichnet wird.
Bei der in 1A gezeigten Punkt-zu-Punkt-Topologie wird
ein erster Knoten 101 direkt mit einem zweiten Knoten 102 verbunden,
indem der Sender 103 des FC-Tors 104 des ersten
Knotens 101 direkt mit dem Empfänger 105 des FC-Tors 106 des
zweiten Knotens 102 gekoppelt wird und indem der Sender 107 des
FC-Tors 106 des zweiten Knotens 102 direkt mit
dem Empfänger 108 des
FC-Tors 104 des ersten Knotens 101 verbunden wird.
Die bei der Punkt-zu-Punkt-Topologie verwendeten Tore 104 und 106 werden
als N_Tore bezeichnet.
-
1B zeigt
eine etwas komplexere Topologie, die als „FC-Zugeteilte-Schleife-Topologie" bezeichnet wird. 1B zeigt
vier Knoten 110–113,
die innerhalb einer zugeteilten Schleife miteinander verbunden sind. Signale,
die aus elektrischen oder optischen binären Daten bestehen, werden
kreisförmig
um die Schleife herum von einem Knoten zum nächsten transferiert. Der Sender
eines Knotens, z. B. der dem Knoten 111 zugeordnete Sender 114,
ist direkt mit dem Empfänger
des nächsten
Knotens in der Schleife verbunden, in dem Fall des Senders 114 mit
dem Empfänger 115,
der dem Knoten 112 zugeordnet ist. Es können zwei Arten von FC-Toren verwendet werden,
um FC-Knoten innerhalb einer zugeteilten Schleife miteinander zu
verbinden. Die bei zugeteilten Schleifen am häufigsten verwendete Torart
wird als „NL_Tor" bezeichnet. Eine
spezielle Torart, die als „FL_Tor" bezeichnet wird,
kann verwendet werden, um eine FC-zugeteilte Schleife mit einer FC-Struktur-Topologie
zu verbinden, wie nachfolgend beschrieben wird. Es kann lediglich
ein FL_Tor aktiv in eine Zugeteilte-Schleife-Topologie integriert
werden. Eine FC-Zugeteilte-Schleife-Topologie kann bis zu 127 aktive
FC-Tore umfassen und kann zusätzliche
unbeteiligte FC-Tore umfassen.
-
Bei
der FC-Zugeteilte-Schleife-Topologie konkurrieren Knoten um bzw.
entscheiden sich Knoten für eine
Steuerung der zugeteilten Schleife. Allgemein erhält in dem
Fall, in dem mehr als ein Knoten um die Steuerung konkurriert, der
Knoten mit der niedrigsten Toradresse die Steuerung. Ein Gerechtigkeitsalgorithmus kann
durch Knoten implementiert werden, um zu gewährleisten, dass schließlich alle
Knoten innerhalb eines vernünftigen
Zeitraums die Steuerung erhalten. Wenn ein Knoten die Steuerung
der Schleife erworben hat, kann der Knoten einen Kanal zu jeglichem
anderen Knoten innerhalb der zugeteilten Schleife öffnen. Bei
einem Halbduplexkanal sendet ein Knoten Daten, und der andere Knoten
empfängt
Daten. Bei einem Vollduplexkanal können Daten zur selben Zeit,
wie Daten durch einen zweiten Knoten gesendet und durch einen ersten
Knoten empfangen werden, durch den ersten Knoten gesendet und durch
den zweiten Knoten empfangen werden. Wenn beispielsweise bei der
zugeteilten Schleife der 1B der
Knoten 111 einen Vollduplexkanal mit dem Knoten 113 öffnet, so
gelangen Daten, die durch diesen Kanal von dem Knoten 111 an
den Knoten 113 gesendet werden, durch das NL_Tor 116 des
Knotens 112, und Daten, die seitens des Knotens 113 an
den Knoten 111 gesendet werden, gelangen durch das NL_Tor 117 des
Knotens 110.
-
1C zeigt
die allgemeinste und komplexeste FC-Topologie, die als „FC-Struktur" bezeichnet wird. Die
FC-Struktur ist
in 1C durch das unregelmäßig geformte mittige Objekt 118 dargestellt,
mit dem vier FC-Knoten 119–122 verbunden sind.
Die N_Tore 123–126 in
den FC-Knoten 119–122 sind
mit F_Toren 127–130 in
der Struktur 118 verbunden. Die Struktur ist eine geschaltete
bzw. Kreuzungspunktschalttopologie, die bezüglich ihrer Funktion einem
Telefonsystem ähnelt.
Daten werden zwischen F_Toren durch Schalter oder Vermittlungen,
die als „Strukturelemente" bezeichnet werden,
seitens der Struktur geroutet. Es können viele mögliche Routen
durch die Struktur zwischen einem F_Tor und einem anderen F_Tor
vorliegen. Das Routen von Daten und das Adressieren von Knoten in
der Struktur, die F_Toren zugeordnet ist, werden durch die FC-Struktur
und nicht durch FC-Knoten oder N_Tore gehandhabt.
-
Wenn
optische Fasern verwendet werden, kann sich eine einzige FC-Struktur über zehn
Kilometer erstrecken. Der FC kann eine Verbindung von mehr als 16.000.000
FC-Knoten unterstützen.
Ein einziger FC-Hostadapter kann Daten mit Raten von bis zu 200
Mbytes pro Sekunde senden und empfangen. Für FC-Komponenten sind in der
nahen Zukunft viel höhere
Datenaustauschraten geplant.
-
Der
FC ist ein serielles Kommunikationsmedium. Daten werden bei extrem
hohen Transferraten Bit um Bit übertragen. 2 veranschaulicht
eine sehr einfache Hierarchie, mittels derer Daten für einen
Transfer durch ein FC-Netzwerk zeitlich organisiert sind. Auf der
niedrigsten konzeptionellen Ebene können die Daten als Strom von
Datenbits 200 angesehen werden. Die kleinste Dateneinheit
bzw. Gruppierung von Datenbits, die durch ein FC-Netzwerk unterstützt wird,
ist ein l0Bit-Schriftzeichen, das durch ein FC-Tor als 8Bit-Schriftzeichen decodiert
wird. FC-Grundelemente sind aus 10Byte-Schriftzeichen bzw. Bytes
zusammengesetzt. Bestimmte FC-Grundelemente werden verwendet, um
zwischen FC-Toren ausgetauschte Steuerinformationen zu führen. Die
nächste
Ebene der Datenorganisation, eine grundlegende Ebene bezüglich des
FC-Protokolls, ist ein Rahmen. In 2 sind Rahmen 202–208 gezeigt.
Ein Rahmen kann aus zwischen 36 und 2.148 Datenbytes bestehen, je
nach der Beschaffenheit der in dem Rahmen enthaltenen Daten. Der
erste FC-Rahmen entspricht beispielsweise den Datenbits des Stroms
von Datenbits 200, die in der waagrechten Klammer 201 enthalten
sind. Das FC-Protokoll legt eine nächst höhere Organisationsebene fest,
die als Sequenz bezeichnet wird. Eine erste Sequenz 210 und
ein Teil einer zweiten Sequenz 212 sind in 2 dargestellt.
Die erste Sequenz 210 besteht aus Rahmen eins bis vier 202–205.
Die zweite Sequenz 212 besteht aus Rahmen fünf bis sieben 206–208 und
zusätzlichen
Rahmen, die nicht gezeigt sind. Das FC-Protokoll legt eine dritte
Organisationsebene fest, die als Austausch bezeichnet wird. Ein
Teil eines Austauschs 214 ist in 2 gezeigt.
Dieser Austausch 214 besteht aus zumindest der ersten Sequenz 210 und
der zweiten Sequenz 212, die in 2 gezeigt
sind. Dieser Austausch kann alternativ so betrachtet werden, dass
er aus Rahmen eins bis sieben 202–208 und jeglichen
zusätzlichen
Rahmen besteht, die in der zweiten Sequenz 212 und in jeglichen
zusätzlichen
Sequenzen, die den Austausch 214 bilden, enthalten sind.
-
Der
FC ist ein Vollduplex-Datenübertragungsmedium.
Zwischen einem Urheber bzw. Initiator und einem Antwortgeber bzw.
Ziel können
Rahmen und Sequenzen gleichzeitig in beiden Richtungen geleitet
werden. Ein Austausch umfasst alle Sequenzen, und Rahmen innerhalb
der Sequenzen, die während
einer einzigen Eingabe-/Ausgabetransaktion, z. B. einer Lese-Eingabe-/-Ausgabetransaktion
oder einer Schreib-Eingabe-/-Ausgabetransaktion,
zwischen einem Urheber und einem Antwortgeber ausgetauscht werden.
Das FC-Protokoll ist dazu entworfen, Daten gemäß einer beliebigen Anzahl von
Datenaustauschprotokollen einer höheren Ebene zu transferieren,
einschließlich
des Internet-Protokolls („IP"), des Kleincomputer-Schnittstellen-Protokolls
(„SCSI"-Protokolls), der „HIPPI"-Schnittstelle (HIPPI
= High Performance Parallel Interface) und der Intelligentes-Teilnehmergerät-Schnittstelle („IPI"-Schnittstelle, IPI
= Intelligent Peripheral Interface). Die SCSI-Bus-Architektur wird
in dem folgenden Teilabschnitt erörtert, und ein Großteil der
nachfolgenden Erörterung
in dem vorliegenden und den übrigen
Teilabschnitten konzentriert sich auf das in dem FC-Protokoll eingebettete
SCSI-Protokoll. Die Standardanpassung des SCSI-Protokolls an Faserkanal
wird in dem vorliegenden Dokument anschließend als „FCP" bezeichnet. Somit kann der FC ein Kommunikationsparadigma
vom Master-Slave-Typ,
das für
den SCSI-Bus und andere Peripheriegeräte-Verbindungsbusse charakteristisch ist, sowie
die relativ offenen und unstrukturierten Kommunikationsprotokolle
wie z. B. die zum Implementieren des Internet Verwendeten unterstützen. Die
SCSI-Bus-Architektur-Konzepte eines Initiators und eines Ziels werden
in dem FCP vorgetragen, das, wie oben erwähnt wurde, dazu ausgelegt ist,
SCSI-Befehle und
Datenaustausche zum Transport durch den FC einzukapseln.
-
3 zeigt
den Inhalt eines standardmäßigen FC-Rahmens.
Der FC-Rahmen 302 umfasst fünf Abschnitte auf hoher Ebene, 304, 306, 308, 310 und 312.
Der erste Abschnitt auf hoher Ebene, der als Rahmenbeginn-Begrenzer 304 bezeichnet
wird, umfasst 4 Bytes, die den Beginn des Rahmens markieren. Der
nächste Abschnitt
auf hoher Ebene, der als Rahmenanfangsblock 306 bezeichnet
wird, umfasst 24 Bytes, die Adressierungsinformationen, Sequenzinformationen,
Austauschinformationen und verschiedene Steuerflags enthalten. Eine
ausführlichere
Ansicht des Rahmenanfangsblocks 314 ist in 3 von
dem FC-Rahmen 302 erweitert gezeigt. Der Zielortidentifizierer
(die „D_ID") bzw. DESTINATION_ID 316 ist
eine 24Bit-FC-Adresse, die das Zielort-FC-Tor für den Rahmen angibt. Der Quellenidentifizierer
(die „S_ID") bzw. SOUR-CE_ID 318 ist eine
24Bit-Adresse, die das FC-Tor angibt, das den Rahmen sendete. Die
Urheber-ID bzw. OX_ID 320 und die Antwortgeber-ID 322 bzw.
RX_ID bilden zusammen eine 32Bit-Austausch-ID, die den Austausch
identifiziert, zu dem der Rahmen bezüglich des Urheber- bzw. Initiator-
und Antwortgeber- bzw. Ziel-FC-Tors gehört. Die Sequenz-ID bzw. SEQ_ID 324 identifiziert
die Sequenz, zu der der Rahmen gehört.
-
Der
nächste
Abschnitt 308 auf hoher Ebene, der als Datennutzlast bezeichnet
wird, enthält
die in dem FC-Rahmen gepackten tatsächlichen Daten. Die Datennutzlast
enthält
Daten und einkapselnde Protokollinformationen, die gemäß einem
Protokoll einer höheren
Ebene, z. B. IP und SCSI, transferiert werden. 3 zeigt vier
grundlegende Arten von Datennutzlastanordnungen 326–329,
die zum Datentransfer gemäß dem SCSI-Protokoll
verwendet werden. Das erste dieser Formate 326, das als
FCP_CMND bezeichnet wird, wird verwendet, um einen SCSI-Befehl von
einem Initiator an ein Ziel zu senden. Das FCP_LUN-Feld 330 umfasst
eine 8Byte-Adresse, die bei bestimmten Implementierungen einen jeweiligen
SCSI-Bus-Adapter,
eine diesem SCSI-Bus-Adapter zugeordnete Zielvorrichtung und eine
Logikeinheitsnummer („LUN", logical unit number),
die einer Logikvorrichtung entspricht, die der festgelegten Ziel-SCSI-Vorrichtung
zugeordnet ist, die zusammen das Ziel für das FCP_CMND darstellen,
festlegen. Bei anderen Implementierungen enthält das FCP_LUN-Feld 330 einen
Index oder eine Referenznummer, die der Ziel-FC-Hostadapter verwenden kann, um den SCSI-Bus-Adapter,
eine diesem SCSI-Bus-Adapter zugeordnete Zielvorrichtung und eine
LUN, die einer der festgelegten Ziel-SCSI-Vorrichtung zugeordneten
Logikvorrichtung entspricht, zu bestimmen. Als tatsächlicher SCSI-Befehl,
z. B. ein SCSI-Lese- oder -Schreib-Eingangs-/-Ausgangsbefehl, ist
in dem 16Byte-Feld FCP_CDB 332 enthalten.
-
Der
zweite Typ des Datennutzlastformats 327, der in 3 gezeigt
ist, wird als FCP_XFER_RDY-Layout bezeichnet. Dieses Datennutzlastformat
wird dazu verwendet, einen SCSI-Fortfahren-Befehl
von dem Ziel an den Initiator zu transferieren, wenn das Ziel darauf
vorbereitet ist, ein Empfangen oder Senden von Daten zu beginnen.
Der dritte Typ des in 3 gezeigten Datennutzlastformats 328 ist
das FCP_DATA-Format,
das zum Transferieren der tatsächlichen
Daten verwendet wird, die infolge einer Ausführung einer SCSI-Eingangs-/-Ausgangstransaktion
gelesen oder geschrieben werden. Das letzte in 3 gezeigte
Datennutzlastformat 329 wird als FCP_RSP-Layout bezeichnet
und wird dazu verwendet, ein SCSI-Status-Byte 334 sowie andere
FCP-Statusinformationen
auf einen Abschluss der Eingabe-/Ausgabetransaktion
hin von dem Ziel zurück
an den Initiator zu transferieren.
-
Die SCSI-Bus-Architektur
-
Ein
Computerbus ist ein Satz von elektrischen Signalleitungen, durch
die Computerbefehle und Daten zwischen Verarbeitungs-, Speicherungs-
und Eingabe-/Ausgabekomponenten eines Computersystems übertragen
werden. Der SCSI-Eingangs-/-Ausgangsbus
ist der am meisten verbreitete und populärste Computerbus zum Miteinanderverbinden
von Massenspeichervor richtungen, z. B. Festplattenlaufwerken und CD-ROM-Laufwerken, mit den
Speicher- und Verarbeitungskomponenten eines Computersystems. Die
SCSI-Bus-Architektur ist in drei Hauptstandards definiert: SCSI-1,
SCSI-2 und SCSI-3. Die SCSI-1- und SCSI-2-Standards sind in den
Normen-Dokumenten „X3.131-1986" bzw. „X3.131-1994" des ANSI (American
National Standards Institute, amerikanisches Institut für Normung)
veröffentlicht.
Der SCSI-3-Standard wird derzeit durch ein ANSI-Komitee entwickelt.
Eine Übersicht über die
SCSI-Bus-Architektur wird von „The
SCSI Bus and IDE Interface",
Friedhelm Schmidt, Addison-Wesley Publishing Company, ISBN 0-201-17514-2,
1997 („Schmidt"), geliefert.
-
4 ist
ein Blockdiagramm einer üblichen
Personal-Computer-Architektur
(„PC"-Architektur), die
einen SCSI-Bus umfasst. Der PC 400 umfasst eine Zentralverarbeitungseinheit
bzw. einen Prozessor („CPU") 402, die
bzw. der mittels eines Hochgeschwindigkeits-CPU-Busses 406 mit
einer Systemsteuerung 404 verknüpft ist. Die Systemsteuerung
ist wiederum über
einen Speicherbus 410 mit einer Systemspeicherkomponente 408 verknüpft. Ferner
ist die Systemsteuerung 404 über einen Peripheriekomponentenverbindungsbus („PCI"-Bus) 412,
der mit einem langsameren Bus einer Industriestandard-Architektur
(„ISA"-Bus) 414 und
einem SCSI-Bus 416 verbunden
ist, mit verschiedenen Peripheriegeräten verknüpft. Die Architektur des PCI-Busses
ist bei „PCI
System Architecture",
Shanley & Anderson,
Mine Share, Inc., Addison-Wesley Publishing Company, ISBN 0-201-40993-3,
1995, beschrieben. Der CPU-Bus 406, der Speicherbus 410,
der PCI-Bus 412 und der ISA-Bus 414, die alle
miteinander verbunden sind, ermöglichen
es der CPU, Daten und Befehle mit den verschiedenen Verarbeitungs-
und Speicherkomponenten und Eingabe-/Ausgabevorrichtungen, die in
dem Computer enthalten sind, auszutauschen. Allgemein sind Eingabe-/Ausgabevorrichtungen
mit sehr hoher Geschwindigkeit und hoher Bandbreite, z. B. eine
Videoanzeigevorrichtung 418, direkt mit dem PCI-Bus verbunden.
Langsame Eingabe-/Ausgabevorrichtungen 420,
z. B. eine Tastatur 420 und eine Zeigevorrichtung (nicht
gezeigt), sind direkt mit dem ISA-Bus 414 verbunden. Der ISA-Bus
ist durch eine Busbrückenkomponente 422 mit
dem PCI-Bus verbunden. Massenspeichervorrichtungen, z. B. Festplatten,
Floppy-Diskettenlaufwerke, CD-ROM-Laufwerke und Bandlaufwerke 424–426 sind
mit dem SCSI-Bus 416 verbunden. Der SCSI-Bus ist über einen
SCSI-Bus-Adapter 430 mit dem PCI-Bus 412 verbunden.
Der SCSI-Bus-Adapter 430 umfasst eine Prozessorkomponente,
z. B. einen Prozessor, der aus der Symbios-Familie von 53C8xx-SCSI-Prozessoren
ausgewählt
ist, und bildet unter Verwendung von standardmäßigen PCI-Bus-Protokollen eine
Schnittstelle mit dem PCI-Bus 412. Der SCSI-Bus-Adapter 430 bildet
unter Verwendung des SCSI-Bus-Protokolls, das nachfolgend teilweise
beschrieben wird, eine Schnittstelle mit dem SCSI-Bus 416.
Der SCSI-Bus-Adapter 430 tauscht Befehle und Daten mit
SCSI-Steuerungen (nicht gezeigt), die allgemein in jeder Massenspeichervorrichtung 424–426 eingebettet
sind, oder SCSI-Vorrichtung, die mit dem SCSI-Bus verbunden ist,
aus. Die SCSI-Steuerung ist eine Hardware-/Firmware-Komponente, die SCSI-Befehle,
die von einem SCSI-Adapter über
den SCSI-Bus empfangen werden, interpretiert und auf dieselben antwortet
und die die SCSI-Befehle implementiert, indem sie mit Logikvorrichtungen
Schnittstellen bildet und dieselben steuert. Eine Logikvorrichtung
kann einer oder mehreren physischen Vorrichtungen oder Teilen einer
oder mehrerer physischer Vorrichtungen entsprechen. Physische Vorrichtungen
umfassen Datenspeichervorrichtungen wie z. B. Disketten-, Band-
und CD-ROM-Laufwerke.
-
Zwei
wichtige Arten von Befehlen, die als Eingabe-/Ausgabebefehle bezeichnet werden, weisen
die SCSI-Vorrichtung
an, Daten aus einer Logikvorrichtung auszulesen und Daten in eine
Logikvorrichtung zu schreiben. Eine Eingabe-/Ausgabetransaktion
ist der Austausch von Daten zwischen zwei Komponenten des Computersystems,
der allgemein durch eine Verarbeitungskomponente, z. B. die CPU 402,
eingeleitet wird und der teilweise durch einen Lese-Eingabe-/-Ausgabebefehl
oder durch einen Schreib-Eingabe-/- Ausgabebefehl implementiert wird. Somit
umfassen Eingabe-/Ausgabetransaktionen
Lese-Eingabe-/-Ausgabetransaktionen und Schreib-Eingabe-/-Ausgabetransaktionen.
-
Der
SCSI-Bus 416 ist ein Parallelbus, der eine Anzahl von Datenbits
gleichzeitig transportieren kann. Die Anzahl von Datenbits, die
gleichzeitig seitens des SCSI-Busses transportiert werden können, wird
als die Breite des Busses bezeichnet. Unterschiedliche Arten von
SCSI-Bussen weisen Breiten von 8, 16 und 32 Bits auf. Die 16- und
32Bit-SCSi-Busse
werden als breite SCSI-Busse bezeichnet.
-
Wie
bei allen Computerbussen und Prozessoren wird der SCSI-Bus durch einen Takt
gesteuert, der die Geschwindigkeit der Vorgänge und des Datentransfers
auf dem Bus bestimmt. SCSI-Busse
weisen unterschiedliche Taktgeschwindigkeiten auf. Die Kombination
der Breite eines SCSI-Busses und der Taktrate, bei der der SCSI-Bus
arbeitet, bestimmt die Anzahl von Bytes, die pro Sekunde durch den
SCSI-Bus transportiert werden können,
bzw. die Bandbreite des SCSI-Busses. Verschiedene Arten von SCSI-Bussen
weisen Bandbreiten auf, die im Bereich zwischen weniger als 2 Megabytes
(„Mbytes") pro Sekunde und
bis zu 40 Mbytes pro Sekunde liegen, wobei Zunahmen auf 80 Mbytes
pro Sekunde und möglicherweise
160 Mbytes pro Sekunde für
die Zukunft geplant sind. Die zunehmenden Bandbreiten können von
zunehmenden Beschränkungen
bezüglich
der physischen Länge
des SCSI-Busses begleitet sein.
-
5 veranschaulicht
die Topologie des SCSI-Busses. Ein Computersystem 502 oder
ein anderes Hardwaresystem kann einen oder mehrere SCSI-Bus-Adapter 504 und 506 umfassen.
Der SCSI-Bus-Adapter, der Bus, den der SCSI-Bus-Adapter steuert,
und etwaige an diesen SCSI-Bus angeschlossene Peripheriegeräte umfassen
zusammen eine Domain bzw. einen Bereich. Der SCSI-Bus-Adapter 504 in 5 ist
einer ersten Domain 508 zugeordnet, und der SCSI-Bus-Adapter 506 ist
einer zweiten Domain 510 zugeordnet. Die aktuellste SCSI-2-Bus-Implementierung
ermöglicht,
dass an einen einzigen SCSI-Bus fünfzehn verschiedene SCSI-Vorrichtungen 513–515 und 516–517 angeschlossen
werden. Bei 5 sind die SCSI-Vorrichtungen 513–515 an
den durch den SCSI-Bus-Adapter 506 gesteuerten
SCSI-Bus 518 angeschlossen, und die SCSI-Vorrichtungen 516–517 sind
an den durch den SCSI-Bus-Adapter 504 gesteuerten
SCSI-Bus 520 angeschlossen. Jeder SCSI-Bus-Adapter und
jede SCSI-Vorrichtung weist eine SCSI-Identifizierungsnummer bzw. SCSI_ID
auf, die die Vorrichtung oder den Adapter in einem bestimmten SCSI-Bus
eindeutig identifiziert. Konventionsgemäß weist der SCSI-Bus-Adapter SCSI_ID 7 auf,
und die an den SCSI-Bus angeschlossenen SCSI-Vorrichtungen weisen
SCSI_IDs auf, die zwischen 0 und 6 und zwischen 8 und 15 liegen.
Eine SCSI-Vorrichtung,
z. B. die SCSI-Vorrichtung 513, kann mit einer Anzahl von
Logikvorrichtungen Schnittstellen bilden, wobei jede Logikvorrichtung
Teile einer oder mehrerer physischer Vorrichtungen umfasst. Jede
Logikvorrichtung wird durch eine Logikeinheitsnummer („LUN") identifiziert,
die die Logikvorrichtung bezüglich
der SCSI-Vorrichtung, die die Logikvorrichtung steuert, eindeutig
identifiziert. Beispielsweise steuert die SCSI-Vorrichtung 513 die
Logikvorrichtungen 522–524,
die LUNs 0, 1 bzw. 2 aufweisen. Gemäß der. SCSI-Terminologie wird
eine Vorrichtung, die einen Eingabe-/Ausgabebefehl auf dem SCSI-Bus
einleitet, als Initiator bezeichnet, und eine SCSI-Vorrichtung,
die einen Eingabe-/Ausgabebefehl über den SCSI-Bus, der die SCSI-Vorrichtung anweist,
eine Eingabe-/Ausgabeoperation durchzuführen, empfängt, wird als Ziel bezeichnet.
-
Allgemein
leitet ein SCSI-Bus-Adapter, z. B. SCSI-Bus-Adapter 504 und 506,
Eingabe-/Ausgabeoperationen ein, indem er Befehle an Zielvorrichtungen
sendet. Die Zielvorrichtungen 513–515 und 516–517 empfangen
die Eingabe-/Ausgabebefehle
von dem SCSI-Bus. Die Zielvorrichtungen 513–515 und 516–517 implementieren
die Befehle anschließend,
indem sie mit einer oder mit mehreren Logikvorrichtungen, die sie
steuern, eine Schnittstelle bilden, um entweder Daten aus den Logikvorrichtungen
auszulesen und die Daten durch den SCSI-Bus an den Initiator zurückzusenden,
oder um Daten, die von dem Initiator durch den SCSI-Bus empfangen wurden,
in die Logikvorrichtungen zu schreiben. Schließlich antworten die Zielvorrichtungen 513–515 und 516–517 dem
Initiator durch den SCSI-Bus mit Statusnachrichten, die den Erfolg
oder Misserfolg einer Implementierung der Befehle angeben.
-
6A–6C veranschaulichen
das bei der Einleitung und Implementierung von Lese- und Schreib-Eingabe-/-Ausgabeoperationen
beteiligte SCSI-Protokoll. Lese- und Schreib-Eingabe-/-Ausgabeoperationen bilden
den Großteil
der durch SCSI-Vorrichtungen durchgeführten Eingabe-/Ausgabeoperationen. Bemühungen,
die Funktionseffizienz eines Systems oder von Massenspeichervorrichtungen,
die durch einen SCSI-Bus
verbunden sind, zu maximieren, sind am häufigsten darauf gerichtet,
die Effizienz, mit der Lese- und Schreib-Eingabe-/-Ausgabeoperationen durchgeführt werden,
zu maximieren. Somit werden die architektonischen Merkmale verschiedener
Hardwarevorrichtungen in den folgenden Erläuterungen in Bezug auf Lese- und
Schreiboperationen erläutert.
-
6A zeigt
das Senden eines Lese- oder Schreib-Eingabe-/-Ausgabebefehls durch einen SCSI-Initiator,
am häufigsten
einen SCSI-Bus-Adapter, an ein SCSI-Ziel, am häufigsten eine SCSI-Steuerung,
die in einer SCSI-Vorrichtung eingebettet ist, die einer oder mehreren
Logikvorrichtungen zugeordnet ist. Das Senden eines Lese- oder Schreib-Eingabe-/-Ausgabebefehls
wird als Befehlsphase einer SCSI-Eingabe-/-Ausgabeoperation
bezeichnet. 6A ist durch eine mittige vertikale
Linie 606 in einen Initiator 602-Abschnitt und einen Ziel 604-Abschnitt
unterteilt. Sowohl der Initiator- als auch der Zielabschnitt umfassen
Spalten, die mit „Zustand" 606 und 608 betitelt
sind und die den Zustand des SCSI-Busses beschreiben, und Spalten,
die mit „Ereignisse" 610 und 612 betitelt
sind und die die SCSI-Bus-Ereignisse
beschreiben, die dem Initiator bzw. dem Ziel zugeordnet sind. Die
Buszustände
und die Busereignisse, die am Senden des Eingabe-/Ausgabebefehls
beteiligt sind, sind chronologisch geordnet, wobei die Reihenfolge
von dem oberen Ende der 6A zu dem
unteren Ende der 6A verläuft. Die 6B–6C halten
sich auch an dieses oben beschriebene Format.
-
Das
Senden eines Eingabe-/Ausgabebefehls von einem Initiator-SCSI-Bus-Adapter
an eine Ziel-SCSI-Vorrichtung, in 6A veranschaulicht,
leitet eine Lese- oder Schreib-Eingabe-/-Ausgabeoperation durch die Ziel-SCSI-Vorrichtung
ein. Unter Bezugnahme auf 4 leitet
der SCSI-Bus-Adapter 430 die Eingabe-/Ausgabeoperation
als Teil einer Eingabe-/Ausgabetransaktion
ein. Allgemein empfängt
der SCSI-Bus-Adapter 430 einen
Lese- oder Schreibbefehl über
den PCI-Bus 412, die Systemsteuerung 404 und den
CPU-Bus 406 von der CPU 402, die den SCSI-Bus-Adapter
anweist, entweder eine Leseoperation oder eine Schreiboperation
durchzuführen.
Bei einer Leseoperation weist die CPU 402 den SCSI-Bus-Adapter 430 an,
Daten von einer Massenspeichervorrichtung 424–426 zu
lesen und diese Daten über
den SCSI-Bus 416, den PCI-Bus 412, die Systemsteuerung 404 und
den Speicherbus 410 an eine Stelle in dem Systemspeicher 408 zu
transferieren. Bei einer Schreiboperation weist die CPU 402 die
Systemsteuerung 404 an, Daten von dem Systemspeicher 408 über den
Speicherbus 410, die Systemsteuerung 404 und den
PCI-Bus 412 an den SCSI-Bus-Adapter 430 zu transferieren,
und weist den SCSI-Bus-Adapter 430 an, die Daten über den
SCSI-Bus 416 an eine Massenspeichervorrichtung 424–426 zu
senden, auf der die Daten geschrieben werden.
-
6A beginnt
bei dem SCSI-Bus in dem BUS FREI-Zustand 614, der angibt,
dass derzeit keine Befehle oder Daten auf der SCSI-Vorrichtung transportiert
werden. Der Initiator bzw. der SCSI-Bus-Adapter aktiviert die BSY-,
D7- und SEL-Signalleitungen
des SCSI-Busses, um zu bewirken, dass der Bus in den ENTSCHEIDUNG-Zustand
(ARBITRATION) 616 eintritt. In diesem Zustand kündigt der
Initiator allen Vorrichtungen eine Absicht an, einen Befehl auf
dem SCSI-Bus zu senden. Die Entscheidung ist notwendig, da zu jeglichem Zeitpunkt
lediglich eine Vorrichtung den Betrieb des SCSI-Busses steuern kann.
Angenommen, dass der Initiator die Steuerung des SCSI-Busses erlangt,
aktiviert der Initiator anschließend die ATN-Signalleitung
und die DX-Signalleitung, die der Ziel-SCSI_ID entsprechen, um zu
bewirken, dass der SCSI-Bus in den AUSWAHL-Zustand 618 eintritt.
Der Initiator oder das Ziel aktiviert und deaktiviert verschiedene
SCSI-Signalleitungen
in einer bestimmten Abfolge, um eine Zustandsänderung des SCSI-Busses zu
bewirken, z. B. die Zustandsänderung
von dem ENTSCHEIDUNG-Zustand 616 zu dem AUSWAHL-Zustand 618,
oben beschrieben. Diese Sequenzen finden sich bei Schmidt und in
den ANSI-Normen und werden somit nachstehend nicht näher beschrieben.
-
Wenn
das Ziel erfasst, dass das Ziel durch den Initiator ausgewählt wurde, übernimmt
das Ziel die Steuerung 620 des SCSI-Busses, um die Befehlsphase
der Eingabe-/Ausgabeoperation abzuschließen. Anschließend steuert
das Ziel die SCSI-Signalleitungen,
um in den NACHRICHT AUS-Zustand 622 einzutreten. Bei einem
ersten Ereignis, das in dem NACH-RICHT
AUS-Zustand eintritt, empfängt
das Ziel von dem Initiator eine IDENTIFIZIEREN-Nachricht 623.
Die IDENTIFI-ZIEREN-Nachricht 623 enthält ein LUN-Feld 624,
das die LUN, an die die Befehlsnachricht, die folgen wird, adressiert
ist, identifiziert. Die IDENTIFIZIEREN-Nachricht 623 enthält ferner
ein Flag 625, das allgemein gesetzt ist, um dem Ziel gegenüber anzuzeigen,
dass das Ziel befugt ist, sich während
der Implementierung, seitens des Ziels, des Eingabe-/Ausgabebefehls,
der folgen wird, von dem SCSI-Bus zu trennen. Das Ziel empfängt anschließend eine
WARTESCHLANGENETIKETT-Nachricht 626, die dem Ziel gegenüber angibt,
wie der Eingabe-/Ausgabebefehl, der folgen wird, in einer Warteschlange
platziert werden sollte, und die dem Ziel außerdem ein Warteschlangenetikett 627 liefert.
Ein Warteschlangenetikett ist ein Byte, das den Eingabe-/Ausgabebefehl identifiziert.
Somit kann ein SCSI-Bus- Adapter
gleichzeitig verschiedene Eingabe-/Ausgabebefehle pro LUN verwalten 656.
Die Kombination der SCSI_ID des Initiator-SCSI-Bus-Adapters, der
SCSI_ID der Ziel-SCSI-Vorrichtung,
der Ziel-LUN und des Warteschlangenetiketts bilden zusammen eine
I_T_L_Q-Nexus-Referenznummer, die die Eingabe-/Ausgabeoperation,
die dem Eingabe-/Ausgabebefehl, der in dem SCSI-Bus folgen wird,
entspricht, eindeutig identifiziert. Als Nächstes steuert die Zielvorrichtung
die SCSI-Bus-Signalleitungen, um in den BEFEHL-Zustand 628 einzutreten.
In dem BEFEHL-Zustand ruft das Ziel den Eingabe-/Ausgabebefehl 630 von
dem Initiator ab und empfängt
denselben. Der Eingabe-/Ausgabebefehl 630 umfasst einen
Op-Code 632,
der den jeweiligen auszuführenden
Befehl, in diesem Fall einen Lesebefehl oder einen Schreibbefehl,
identifiziert, eine Logikblocknummer 636, die den Logikblock
der Logikvorrichtung, der der Anfangspunkt der durch den Befehl
festgelegten Lese- oder Schreiboperation sein wird, identifiziert,
und eine Datenlänge 638,
die die Anzahl von Blöcken, die
während
der Ausführung
des Befehls gelesen oder geschrieben werden, festlegt.
-
Wenn
das Ziel den Eingabe-/Ausgabebefehl empfangen und verarbeitet hat,
steuert die Zielvorrichtung die SCSI-Bus-Signalleitungen, um in den NACHRICHT
EIN-Zustand 640 einzutreten, in dem die Zielvorrichtung
allgemein eine Trennungsnachricht 642 zurück an die
Initiatorvorrichtung sendet. Das Ziel trennt sich von dem SCSI-Bus
ab, da das Ziel allgemein beginnt, mit der Logikvorrichtung zu interagieren,
um die Logikvorrichtung auf die durch den Befehl festgelegte Lese-
oder Schreiboperation vorzubereiten. Es mag erforderlich sein, dass
das Ziel Puffer auf ein Empfangen von Daten vorbereitet, und im
Fall von Plattenlaufwerken oder CD-ROM-Laufwerken mag die Zielvorrichtung
die Logikvorrichtung anweisen, den geeigneten Block zu suchen, der
als Anfangspunkt für
den Lese- oder Schreibbefehl festgelegt wurde. Durch das Abtrennen
macht die Zielvorrichtung den SCSI-Bus für einen Transport zusätzlicher
Nachrichten, Befehle oder Daten zwischen dem SCSI-Bus- Adapter und den Zielvorrichtungen
frei. Auf diese Weise können
eine große
Anzahl verschiedener Eingabe-/Ausgabeoperationen gleichzeitig über den
SCSI-Bus multiplexiert werden. Schließlich deaktiviert die Zielvorrichtung
die BSY-Signalleitung, um den SCSI-Bus wieder zurück in den
BUS FREI-Zustand 644 zu versetzen.
-
Anschließend bereitet
die Zielvorrichtung die Logikvorrichtung auf die Lese- oder Schreiboperation vor.
Wenn die Logikvorrichtung bereit ist, Daten zu lesen oder zu schreiben,
folgt die Datenphase für
die Eingabe-/Ausgabeoperation. 6B veranschaulicht
die Datenphase einer SCSI-Eingabe-/-Ausgabeoperation. Der SCSI-Bus
befindet sich anfänglich
in dem BUS FREI-Zustand 646. Die Zielvorrichtung, die nun
bereit ist, Daten ansprechend auf einen Lese-Eingabe-/-Ausgabebefehl zurückzusenden
oder Daten ansprechend auf einen Schreib-Eingabe-/-Ausgabebefehl
anzunehmen, steuert die SCSI-Bus-Signalleitungen, um in den ENTSCHEIDUNG-Zustand 648 einzutreten.
Angenommen, dass die Zielvorrichtung erfolgreich darin ist, sich
für eine
Steuerung des SCSI-Busses zu entscheiden, steuert die Zielvorrichtung
die SCSI-Bus-Signalleitungen, um in den NEUAUSWAHL-Zustand 650 einzutreten.
Der NEUAUSWAHL-Zustand ähnelt
dem AUSWAHL-Zustand,
der bei der obigen Erläuterung
der 6A beschrieben wurde, mit der Ausnahme, dass nicht
der SCSI-Bus-Adapter
in dem AUSWAHL-Zustand eine Zielvorrichtung auswählt, sondern dass die Zielvorrichtung die
Auswahl eines SCSI-Bus-Adapters trifft, mit dem in dem NEUAUSWAHL-Zustand
kommuniziert werden soll.
-
Nachdem
die Zielvorrichtung den SCSI-Bus-Adapter ausgewählt hat, manipuliert die Zielvorrichtung die
SCSI-Bus-Signalleitungen, um den SCSI-Bus zu veranlassen, in den
NACHRICHT EIN-Zustand 652 einzutreten. In dem NACHRICHT
EIN-Zustand sendet
die Zielvorrichtung sowohl eine IDENTIFIZIEREN-Nachricht 654 als
auch eine WARTESCHLANGENETIKETT-Nachricht 656 an
den SCSI-Bus-Adapter. Diese Nachrichten sind identisch mit den IDENTIFIZIEREN-
und WARTESCHLANGEN ETIKETT-Nachrichten, die während der Übertragung des Eingabe-/Ausgabebefehls
von dem Initiator an das Ziel, in 6A veranschaulicht, durch
den Initiator an die Zielvorrichtung gesendet wurden. Der Initiator
kann die I_T_L_Q-Nexus-Referenznummer,
eine Kombination der SCSI_IDs des Initiators und der Zielvorrichtung,
der Ziel-LUN und des in der WARTESCHLANGENETIKETT-Nachricht enthaltenen
Warteschlangenetiketts, verwenden, um die Eingabe-/Ausgabetransaktion
zu identifizieren, für
die Daten im Fall eine Leseoperation anschließend von dem Ziel an den Initiator
gesandt werden oder an die Daten im Fall einer Schreiboperation
anschließend
durch den Initiator gesendet werden. Die I_T_L_Q-Nexus-Referenznummer ist somit eine
Eingabe-/Ausgabeoperationskennung, die seitens des SCSI-Bus-Adapters
als Index in eine Tabelle von herausragenden Eingabe-/Ausgabebefehlen
verwendet werden kann, um den geeigneten Puffer zum Empfangen von
Daten von der Zielvorrichtung, im Fall eines Lesens, oder zum Senden
von Daten an die Zielvorrichtung, im Fall eines Schreibens, zu lokalisieren.
-
Nachdem
die IDENTIFIZIEREN- und die WARTESCHLANGENETIKETT-Nachrichten gesendet
wurden, steuert die Zielvorrichtung die SCSI-Signalleitungen, um
zu einem DATEN-Zustand 658 überzugehen. Im Fall einer Lese-Eingabe-/-Ausgabeoperation
geht der SCSI-Bus in den DATEN EIN-Zustand über. Im Fall eine Schreib-Eingabe-/-Ausgabeoperation
geht der SCSI-Bus in einen DATEN AUS-Zustand über. Während der Zeit, in der sich
der SCSI-Bus in dem DATEN-Zustand befindet, sendet die Zielvorrichtung
während
jedes SCSI-Bus-Taktzyklus eine Dateneinheit, die eine Größe, in Bits,
aufweist, die gleich der Breite des jeweiligen SCSI-Busses ist,
auf dem die Daten übertragen
werden. Allgemein liegt ein SCSI-Bus-Signalleitungs-Handshake bzw. -Quittungsaustausch
vor, der die Signalleitungen ACK und REQ als Teil des Transfers
jeder Dateneinheit beinhaltet. Im Fall eines Lese-Eingabe-/-Ausgabebefehls
beispielsweise platziert die Zielvorrichtung die nächste Dateneinheit
auf dem SCSI-Bus und aktiviert die REQ-Signalleitung. Der Initiator
erfasst die Aktivierung der REQ-Signalleitung, gewinnt die übertragenen
Daten von dem SCSI-Bus wieder und aktiviert die ACK-Signalleitung, um
den Empfang der Daten zu bestätigen.
Diese Art des Datentransfers wird als asynchroner Transfer bezeichnet.
Das SCSI-Bus-Protokoll ermöglicht
ferner, dass die Zielvorrichtung eine bestimmte Anzahl von Dateneinheiten
transferiert, bevor sie die erste Bestätigung von dem Initiator empfängt. In
diesem Transfermodus, der als synchroner Transfer bezeichnet wird,
wird die Latenz zwischen dem Senden der ersten Dateneinheit und
dem Empfang der Bestätigung
für diese Übertragung
vermieden. Während
einer Datenübertragung
kann die Zielvorrichtung die Datenübertragung unterbrechen, indem
sie an den Initiator eine SICHERE ZEIGER-Nachricht, gefolgt von
einer TRENNEN-Nachricht, sendet und anschließend die SCSI-Bus-Signalleitungen
steuert, um in den BUS FREI-Zustand einzutreten. Dies ermöglicht,
dass die Zielvorrichtung pausiert, um mit den Logikvorrichtungen
zu interagieren, die die Zielvorrichtung steuert, bevor sie weitere
Daten empfängt
oder sendet. Nach dem Abtrennen von dem SCSI-Bus kann sich die Zielvorrichtung
dann später
erneut für
eine Steuerung des SCSI-Busses entscheiden und zusätzliche
IDENTIFIZIEREN- und WARTESCHLANGENETIKETT-Nachrichten an den Initiator
senden, so dass der Initiator an dem Punkt, an dem der Initiator unterbrochen
wurde, einen Datenempfang oder -transfer wieder aufnehmen kann.
Ein Beispiel eines Trennens und Wiederverbindens 660 ist
in 3B gezeigt, wobei der DATEN-Zustand 658 unterbrochen
ist. Wenn schließlich
alle Daten für
die Eingabe-/Ausgabeoperation übertragen
wurden, steuert die Zielvorrichtung die SCSI-Signalleitungen, um
in den NACHRICHT EIN-Zustand 662 einzutreten, in dem die
Zielvorrichtung eine TRENNEN-Nachricht an den Initiator leitet,
der optional eine SICHERE ZEIGER-Nachricht vorausgeht. Nachdem sie
die TRENNEN-Nachricht gesendet hat, deaktiviert die Zielvorrichtung
die BSY-Signalleitung, so dass der SCSI-Bus zu dem BUS FREI-Zustand 664 übergeht.
-
Im
Anschluss an die Übertragung
der Daten für
die Eingabe-/Ausgabeoperation,
wie in 6B veranschaulicht ist, gibt
die Zielvorrichtung während
der Statusphase der Eingabe-/Ausgabeoperation
einen Status an den Initiator zurück. 6C veranschaulicht
die Statusphase der Eingabe-/Ausgabeoperation.
Wie in 6A–6B gezeigt
ist, geht der SCSI-Bus von dem BUS FREI-Zustand 666 zu
dem ENTSCHEIDUNG-Zustand 668, dem NEUAUSWAHL-Zustand 670 und
dem NACHRICHT EIN-Zustand 672 über, wie in 3B gezeigt
ist. Im Anschluss an eine Übertragung
eine IDENTIFIZIEREN-Nachricht 674 und WARTESCHLANGENETIKETT-Nachricht 676 durch
das Ziel an den Initiator während
des NACHRICHT EIN-Zustands 672 steuert die Zielvorrichtung
die SCSI-Bus-Signalleitungen, um in den STATUS-Zustand 678 einzutreten.
In dem STATUS-Zustand 678 sendet
die Zielvorrichtung ein einziges Statusbyte 684 an den
Initiator, um anzugeben, ob der Eingabe-/Ausgabebefehl erfolgreich abgeschlossen
wurde oder nicht. Bei 6C wird gezeigt, wie das Statusbyte 680,
das einem erfolgreichen Abschluss entspricht, durch einen Statuscode
0 angegeben, von der Zielvorrichtung an den Initiator gesendet wird.
Im Anschluss an die Übertragung
des Statusbytes steuert die Zielvorrichtung anschließend die
SCSI-Bus-Signalleitungen,
um in den NACHRICHT EIN-Zustand 682 einzutreten, in dem
die Zielvorrichtung eine BEFEHL ABGESCHLOSSEN-Nachricht 684 an
den Initiator sendet. An diesem Punkt ist die Eingabe-/Ausgabeoperation
abgeschlossen. Anschließend
deaktiviert die Zielvorrichtung die BSY-Signalleitung, so dass der SCSI-Bus
zu dem BUS FREI-Zustand 686 zurückkehrt. Der SCSI-Bus-Adapter
kann nun seinen Teil des Eingabe-/Ausgabebefehls beenden, etwaige
interne Ressourcen, die zugewiesen waren, um den Befehl auszuführen, frei
zu machen und über
den PCI-Bus eine Abschlussmeldung oder einen Abschlussstatus zurück an die
CPU zu senden.
-
Abbilden des SCSI-Protokolls
auf FCP
-
7A und 7B veranschaulichen
eine Abbildung von FCP-Sequenzen,
die zwischen einem Initiator und einem Ziel ausgetauscht wurden,
und der SCSI-Bus-Phasen und -Zustände, die in 6A–6C beschrieben
werden. Bei 7A–7B wird
angenommen, dass der Ziel-SCSI-Adapter zusammen mit einem FCP-Hostadapter
gepackt ist, so dass der Ziel-SCSI-Adapter über den FC mit dem Initiator
und über
den SCSI-Bus mit einer Ziel-SCSI-Vorrichtung kommunizieren kann. 7A zeigt
eine Abbildung zwischen FCP-Sequenzen und SCSI-Phasen und -Zuständen für eine Lese-Eingabe-/-Ausgabetransaktion.
Die Transaktion wird eingeleitet, wenn der Initiator eine Einzelrahmen-FCP-Sequenz,
die eine FCP_CMND-Datennutzlast enthält, durch den FC an einen Ziel-SCSI-Adapter 702 sendet.
Wenn der Ziel-SCSI-Bus-Adapter den FCP_CMND-Rahmen empfängt, schreitet
der Ziel-SCSI-Bus-Adapter durch die SCSI-Zustände der in 6A veranschaulichten
Befehlsphase 704, einschließlich ENTSCHEIDUNG, NEUAUSWAHL,
NACHRICHT AUS, BEFEHL und NACHRICHT EIN, fort. Bei Abschluss der
Befehlsphase trennt sich die SCSI-Vorrichtung, die das Ziel der
Eingabe-/Ausgabetransaktion ist, wie in 6A veranschaulicht,
von dem SCSI-Bus, um den SCSI-Bus frei zu machen, während die
Ziel-SCSI-Vorrichtung sich darauf vorbereitet, die Transaktion durchzuführen. Später trifft
die Ziel-SCSI-Vorrichtung eine neue Entscheidung bezüglich einer
SCSI-Bus-Steuerung und beginnt die Datenphase der Eingabe-/Ausgabetransaktion 706.
An diesem Punkt mag der SCSI-Bus-Adapter eine FCP_XFER_RDY-Einzelrahmensequenz 708 an
den Initiator zurücksenden,
um anzugeben, dass die Datenübertragung
nun vonstatten gehen kann. Im Fall einer Lese-Eingabe-/-Ausgabetransaktion
ist die FCP_XFER_RDY-Einzelrahmensequenz
optional. Während
die Datenphase fortdauert, beginnt die Ziel-SCSI-Vorrichtung, Daten
von einer Logikvorrichtung zu lesen und diese Daten über den
SCSI-Bus an den Ziel-SCSI-Bus-Adapter zu übertragen. Der Ziel-SCSI-Bus-Adapter packt
anschließend
die von der Ziel-SCSI-Vorrichtung
empfangenen Daten in eine Anzahl von FCP_DATEN-Rahmen, die zusammen die dritte Sequenz
des Austauschs, die der Eingabe-/Ausgabe-Lesetransaktion entspricht,
ausmachen, und sendet diese FCP_DATEN-Rahmen durch den FC zurück an den
Initiator. Wenn alle Daten übertragen
wurden und die Ziel-SCSI-Vorrichtung die Steuerung des SCSI-Busses
aufgegeben hat, entscheidet sich die Ziel-SCSI-Vorrichtung anschließend erneut
für eine
Steuerung des SCSI-Busses, um die Statusphase der Eingabe-/Ausgabetransaktion 714 einzuleiten.
In dieser Phase geht der SCSI-Bus von dem BUS FREI-Zustand durch die
Zustände
ENTSCHEIDUNG, NEUAUSWAHL, NACH-RICHT
EIN, STATUS, NACHRICHT EIN und BUS FREI, wie in 3C veranschaulicht
ist, um ein SCSI-Status-Byte von der Ziel-SCSI-Vorrichtung an den
Ziel-SCSI-Bus-Adapter zu senden. Auf den Empfang des Statusbytes
hin packt der Ziel-SCSI-Bus-Adapter
das Statusbyte in eine FCP_RSP-Einzelrahmensequenz 716 und
sendet die FCP_RSP-Einzelrahmensequenz durch den FC zurück an den
Initiator. Damit ist die Lese-Eingabe-/-Ausgabetransaktion abgeschlossen.
-
Bei
vielen Computersystemen können
zusätzliche
interne Computerbusse, z. B. ein PCI-Bus, zwischen dem Ziel-FC-Hostadapter und dem
Ziel-SCSI-Bus-Adapter vorliegen. Mit anderen Worten sind der FC-Hostadapter
und der SCSI-Adapter eventuell nicht miteinander in eine einzige
Zielkomponente gepackt. Der Einfachheit halber ist diese zusätzliche
Verbindung in den 7A–B nicht
gezeigt.
-
7B zeigt
auf ähnliche
Weise wie 7A eine Abbildung zwischen FCP-Sequenzen
und SCSI-Bus-Phasen und -Zuständen
während
einer Schreib-Eingabe-/-Ausgabetransaktion, die durch einen FCP_CMND-Rahmen 718 angezeigt
wird. 7B unterscheidet sich lediglich
darin von der 7A, dass während einer Schreibtransaktion
die FCP_DATEN-Rahmen 722–725 über den
FC von dem Initiator an das Ziel übertragen werden und dass die
FCP_XFER_RDY-Einzelrahmensequenz 720, die von dem Ziel
an den Initiator 720 gesendet wird, nicht optional ist,
wie im Fall der Lese-Eingabe-/-Ausgabetransaktion, sondern vielmehr
obligatorisch ist. Wie bei 7A ist
die die Schreib-Eingabe-/-Ausgabetransaktion abgeschlossen, wenn das
Ziel eine FCP_RSP-Einzelrahmensequenz 726 an den Initiator
zurücksendet.
-
Initialisierung
der zugeteilten Schleife
-
Wie
oben erörtert
wurde, enthält
der FC-Rahmenanfangsblock Felder, die die Quellen- und Zielstrukturadressen
des FC-Rahmens festlegen.
Sowohl die D_ID als auch die S_ID sind 3Byte-Quantitäten, die
eine dreiteilige Strukturadresse für ein bestimmtes FC-Tor festlegen.
Diese drei Teile umfassen eine Spezifikation einer FC-Domain, einer
FC-Knotenadresse und eines FC-Tors innerhalb des FC-Knotens. Bei
einer Zugeteilte-Schleife-Topologie erfasst während der Schleifeninitialisierung
jeder der 127 möglichen
aktiven Knoten eine physische Adresse einer zugeteilten Schleife
(„AL_PA"). Die AL_PA ist
eine 1Byte-Quantität,
die der FC-Tor-Festlegung
innerhalb der D_ID und der S_ID des FC-Rahmenanfangsblocks entspricht. Da höchstens 127 aktive
Knoten vorliegen, die durch eine Zugeteilte-Schleife-Topologie miteinander
verbunden sind, ist das Einzelbyte AL_PA ausreichend, um jeden Knoten
innerhalb der zugeteilten Schleife eindeutig zu adressieren.
-
Der
Vorgang der Schleifeninitialisierung kann durch einen Knoten vorgenommen
werden, der aus einem einer Vielzahl unterschiedlicher Gründe mit
einer Zugeteilte-Schleife-Topologie
verbunden ist, einschließlich
eine Schleifeninitialisierung, die auf eine Leistungszurücksetzung
des Knotens folgt, einer Initialisierung, die auf ein Starten des
ersten Knotens der zugeteilten Schleife, eine anschließende Aufnahme
eines FC-Knotens in eine bereits arbeitende zugeteilte Schleife
und verschiedene Fehlerkorrekturoperationen folgt. Eine FC-Zugeteilte-Schleife-Initialisierung
umfasst sieben gesonderte Phasen. 8 zeigt
ein Diagramm der sieben Phasen der FC-Zugeteilte-Schleife-Initialisierung. 9 zeigt
die Datennutzlast von FC-Rahmen, die durch FC-Knoten in einer Zugeteilte-Schleife-Topologie während jeder
der sieben Phasen der in 9 gezeigten Schleifeninitialisierung übertragen
werden. Die Datennutzlast für
die FC-Rahmen, die in jeder der verschiedenen Phasen der Schleifeninitialisierung
verwendet werden, umfasst drei verschiedene Felder, die in 9 als
Spalten 902–904 gezeigt
sind. Das erste Feld 902 in jeder der verschiedenen Datennutzlaststrukturen
ist das LI_ID-Feld. Das LI_ID-Feld enthält einen 16Bit-Code, der einer
der sieben Phasen der Gruppeninitialisierung entspricht. Das LI_FL-Feld 903 für jedes
der in 9 gezeigten verschiedenen Datennutzlastlayouts
enthält
verschiedene Flags, einschließlich
Flags, die festlegen, ob die zwei letzten Phasen der Schleifeninitialisierung
durch ein bestimmtes FC-Tor unterstützt werden. Das TL unterstützt alle
sieben Phasen der Schleifeninitialisierung. Schließlich enthält der Datenabschnitt
der Datennutzlast jedes der Datennutzlastlayouts 904 Datenfelder
unterschiedlicher Längen,
die für
jede der sieben Phasen der Schleifeninitialisierung spezifisch sind. In
der folgenden Erörterung
werden die sieben Phasen der Schleifeninitialisierung unter Bezugnahmen
sowohl auf 8 als auch auf 9 beschrieben.
-
In
der ersten Phase der Schleifeninitialisierung 802, die
als „LISM" bezeichnet wird,
wird ein Schleifeninitialisierungsmaster ausgewählt. Diese erste Phase der
Schleifeninitialisierung folgt einem Fluten der Schleife mit Schleifeninitialisierungsgrundelementen
(„LIPs"). Alle aktiven Knoten übertragen
einen LISM-FC-Zugeteilte-Schleife-Initialisierungsrahmen 906,
der den 8Byte-Tornamen des übertragenden
Knotens umfasst. Jedes FC-Tor, das an der Schleifeninitialisierung
beteiligt ist, sendet weiterhin LISM-FC-Zugeteilte-Schleife-Initialisierungsrahmen
und leitet weiterhin jegliche empfangene LISM-FC-Zugeteilte-Schleife-Initialisierungsrahmen
an nachfolgende FC-Knoten in der zugeteilten Schleife weiter, bis
entweder das FC-Tor einen FC-Rahmen erfasst, der durch ein anderes
FC-Tor, das eine niedrigere kombinierte Toradresse aufweist, gesendet wurde,
wobei eine kombinierte Toradresse die D_ID, S_ID und den 8Byte-Tornamen
umfasst, wobei in diesem Fall das andere FC-Tor zum Schleifeninitialisierungsmaster
(„LIM") wird, oder bis
das FC-Tor einen FC-Zugeteilte-Schleife-Initialisierungsrahmen,
den dieses FC-Tor ursprünglich
sendete, zurück
empfängt,
wobei in diesem Fall das FC-Tor der LIM wird. Somit wird allgemein
der Knoten mit der niedrigsten kombinierten Adresse, der an dem
FC-Zugeteilte-Schleife-Initialisierungsvorgang
teilnimmt, der LIM. Definitionsgemäß weist ein FL_TOR die niedrigste
kombinierte Adresse auf und wird zu LIM. Bei jeder der Schleifeninitialisierungsphasen kann
die Schleifeninitialisierung aus einer Vielzahl verschiedener Gründe scheitern,
was erfordert, dass der gesamte Schleifeninitialisierungsprozess
neu gestartet wird.
-
Nachdem
ein LIM ausgewählt
wurde, geht die Schleifeninitialisierung zur LIFA-Phase 804 über, in
der jeder Knoten, der eine strukturzugewiesene AL_PA, versuchen
kann, diese AL_PA zu erfassen. Der LIM sendet einen FC-Zugeteilte-Schleife-Initialisierungsrahmen,
der eine Datennutzlast aufweist, die gemäß dem Datennutzlastlayout 908 in 9 formatiert
ist. Das Datenfeld dieses Datenlayouts enthält eine 16 Byte umfassende
AL_PA-Bitabbildung. Der LIM stellt das Bit in der Bitabbildung entsprechend
seiner strukturzugewiesenen AL_PA ein, wenn der LIM eine strukturzugewiesene
AL_PA aufweist. Da dieser FC-Rahmen durch jedes FC-Tor in der zugeteilten
Schleife zirkuliert, stellt jeder FC-Knoten auch ein Bit in der
Bitabbildung ein, um anzugeben, dass FC-Knoten AL_PA einer Strukturzuweisung
unterzogen haben, falls dieser Knoten eine strukturzugewiesene AL_PA
aufweist. Wenn die Daten in der Bitabbildung bereits durch einen
anderen FC-Knoten in der zugeteilten Schleife eingestellt wurden,
so muss der FC-Knoten versuchen, während einer von drei nachfolgenden
Gruppeninitialisierungsphasen, ein/eine AL_PA zu erfassen. Die strukturzugewiesenen AL_PAs
liefern ein Mittel, damit AL_PAs durch einen FC-Knoten, der über ein
FL_Tor mit der zugeteilten Schleife verbunden ist, festgelegt werden.
-
In
der LIPA-Schleifeninitialisierungsphase 806 überträgt der LIM
einen FC-Rahmen, der eine Datennutzlast enthält, die gemäß dem Datenlayout 910 in 9 formatiert
ist. Das Datenfeld enthält
die AL_PA-Bitabbildung, die während
der vorherigen LIPA-Schleifeninitialisierungsphase an den LIM zurückgegeben
wurde. Während
der LIPA-Phase 910 können
der LIM und andere FC-Knoten in der zugeteilten Schleife, die noch
keine AL_PA erworben haben, versuchen, in der Bitabbildung Bits
zu setzen, die einer zuvor erworbenen, in dem Speicher der FC-Knoten
gesicherten AL_PA entsprechen. Wenn ein FC-Knoten den LIPA-FC-Rahmen
empfängt
und erfasst, dass das Bit in der Bitabbildung, das der zuvor erworbenen
AL_PA dieses Knotens entspricht, nicht eingestellt wurde, kann der
FC-Knoten dieses Bit setzen und dadurch diese AL_PA erwerben.
-
Die
nächsten
zwei Phasen der Schleifeninitialisierung, LIHA 808 und
LISA 810, sind analog zu der oben erörterten LIPA-Phase 806.
Sowohl die LIHA-Phase 808 als auch die LISA-Phase 810 verwenden FC-Rahmen
mit Datennutzlasten 912 und 914, die ähnlich dem
Datenlayout für
die LIPA-Phase 910 und die LIFA-Phase 908 sind.
Die Bitabbildung aus der vorherigen Phase wird durch den LIM sowohl
in der LIHA-Phase 808 als auch der LISA-Phase 810 erneut
einem Kreislauf unterworfen, so dass jegliches FC-Tor in der zugeteilten
Schleife, das noch keine AL_PA erworben hat, versuchen kann, entweder
eine in dem Speicher des Tors enthaltene, fest zugewiesene AL_PA
zu erwerben oder als letztes Hilfsmittel eine willkürliche,
bzw. weiche, AL_PA erhalten, die noch nicht durch eines der anderen
FC-Tore in der Zugeteilte-Schleife-Topologie
erworben wurde. Wenn ein FC-Tor nicht in der Lage ist, bei Abschluss
der LISA-Phase 810 eine AL_PA zu erwerben, so nimmt das
FC-Tor eventuell nicht an der zugeteilten Schleife teil. Der FC-AL-2-Standard
enthält verschiedene
Vorkehrungen, um einen nicht-teilnehmenden Knoten zu befähigen, zu
versuchen, sich der zugeteilten Schleife anzuschließen, einschließlich eines
Neustartens des Schleifeninitialisierungsprozesses.
-
In
der LIRP-Phase der Schleifeninitialisierung 812 sendet
der LIM einen FC-Rahmen, der eine Datennutzlast enthält, die
das Datenlayout 916 in 9 aufweist.
Das Datenfeld 917 dieses Datenlayouts 916 enthält eine
128Byte-AL_PA-Positionsabbildung.
Der LIM platziert die erworbene AL_PA des LIM, wenn der LIM eine
AL_PA erworben hat, in die erste AL_PA-Position in der AL_PA-Positionsabbildung,
im Anschluss an ein AL_PA-Zählwertbyte
bei Byte 0 in dem Datenfeld 917, und jeder nachfolgende
FC-Knoten, der den LIRP-FC-Zugeteilte-Schleife-Initialisierungsrahmen
empfängt
und neu sendet, platziert die AL_PA dieses FC-Knotens in aufeinander
folgende Positionen innerhalb der AL_PA-Positionsabbildung. Bei der abschließenden Schleifeninitialisierungsphase
LILP 814 wird die AL_PA-Positionsabbildung seitens des
LIM durch jedes FC-Tor in der Zugeteilte-Schleife-Technologie rezirkuliert, so
dass die FC-Tore die abgeschlossene AL_PA-Positionsabbildung erwerben
und in dem Speicher sichern können.
Diese AL_PA-Positionsabbildung ermöglicht es jedem FC-Tor in der
zugeteilten Schleife, seine Position relativ zu den anderen FC-Toren
innerhalb der zugeteilten Schleife zu ermitteln.
-
Die SCSI-3-Gehäusedienst-Befehle
-
Während der
letzten zehn Jahre wurde es unter Herstellern von Computerperipheriegeräten immer
populärer,
eine Anzahl unterschiedlicher Peripheriegeräte in ein einziges Gehäuse aufzunehmen.
Ein Beispiel derartiger Gehäuse
ist ein redundantes Array preiswerter Laufwerke („RAID"). Dadurch, dass
eine Anzahl unterschiedlicher Peripheriegeräte in einem einzigen Gehäuse zusammengruppiert
werden, kann der Hersteller von Peripheriegeräten bestimmte Ersparnisse bei
der Herstellung erzielen. Beispielsweise verwenden eventuell alle
Peripheriegeräte
in dem Gehäuse
eine oder mehrere Stromversorgungen, Kühlgeräte und Verbindungsmedien gemeinsam.
Derartige Gehäuse
können
einen kollektiven Satz von Ressourcen liefern, der größer ist
als die Ressource, die durch einzelne Peripheriegeräte dargestellt
wird. Zusätzlich
können
einzelne Peripheriegeräte
in das Gehäuse
eingelagert und aus demselben ausgelagert werden, während die
anderen Peripheriegeräte
in dem Gehäuse
weiterarbeiten – ein
Vorgang, der als Im-Betrieb-Umschichten (Hot-Swapping) bekannt ist.
Schließlich
können
Banken derartiger Gehäuse
zur Speicherredundanz und -spiegelung verwendet werden, um sparsame
Ressourcen mit hoher Verfügbarkeit
zu erzielen.
-
10 veranschaulicht
ein einfaches Multi-Peripheriegeräte-Gehäuse. Das Gehäuse 1002 umfasst eine
Leistungsversorgung 1004, ein Kühlgebläse 1006, vier Plattenlaufwerke 1008–1011.
Eine Schaltungsplatine 1014 in dem Gehäuse umfasst einen Prozessor 1016,
einen internen Bus 1018 und ein Verbindungsmedium 1020,
das den Prozessor 1016, das Plattenlaufwerk 1008–1011 und
ein Tor 1022, durch das das Gehäuse 1002 mit einem
(nicht gezeigten) Hostcomputer verbunden werden kann, miteinander
verbindet. Bei manchen Systemen kann der Hostcomputer die Plattenlaufwerke 1008– 1011 sowie
den Prozessor 1016 einzeln adressieren und mit denselben
interagieren, oder stattdessen kann er mit dem Gehäuse 1002 interagieren,
als ob das Gehäuse
ein sehr großes
Plattenlaufwerk mit einer Einzeladressbasis darstellt. Der Prozessor 1016 betreibt
allgemein einen Prozess, der einen Status jedes der Peripheriegeräte 1008–1011 in
dem Gehäuse 1002 sowie
den Status der Leistungsversorgung 1004 und des Kühlgebläses 1006 überwachen
kann. Der Prozessor 1016 kommuniziert über ein internes Kommunikationsmedium,
z. B., in 10, einen internen Bus 1018,
mit der Leistungsversorgung 1004 und dem Kühlgebläse 1006.
-
Um
einen Zugriff des Hostcomputers auf Informationen, die durch verschiedene
Komponenten innerhalb eines Gehäuses
geliefert werden, z. B. die Leistungsversorgung 1004 und
das Kühlgebläse 1006,
zu erleichtern, und um dem Hostcomputer die Fähigkeit zu verleihen, verschiedene
Komponenten in dem Gehäuse einzeln
zu steuern, wurde ein SCSI-Befehlssatz als Kommunikationsstandard
für Kommunikationen
zwischen einem Hostcomputer und einem in einem Gehäuse, z.
B. dem Gehäuse 1002 in 10,
betriebenen Gehäusediensteprozess
definiert. Der SCSI-Gehäusedienste-Befehlssatz
(„SES"-Befehlssatz) wird bei American National
Standard for Information Technology Standards Document NCITS 305-199X
beschrieben. Der SES-Befehlssatz wird in einer Referenznorm definiert,
die sich immer noch in der Fortentwicklung seitens der Kommission
X3T10 befindet.
-
11 veranschaulicht
das durch den SES-Befehlssatz dargestellte grundlegende Kommunikationsparadigma.
Ein Hostcomputer 1102 sendet einen SES-Befehl 1104 an
einen Gehäusediensteprozess 1106, der
in einem Gehäuse 1108 betrieben
wird. Bei 10 läuft der Gehäusediensteprozess beispielsweise
an dem Prozessor 1016. Der Gehäusediensteprozess 1106 interagiert
mit verschiedenen Komponenten 1110–1113 in dem Gehäuse 1108 und
gibt anschließend
eine Antwort 1114 an den SES-Befehl zurück, der durch den Hostcomputer 1102 an
den Gehäusediensteprozess 1106 gesendet
wird.
-
Es
gibt eine Reihe unterschiedlicher Arten von SES-Befehlen und Antworten
auf SES-Befehle. In den oben aufgeführten ANSI-Normen-Dokumenten
können
Einzelheiten über
die verschiedenen Arten von Befehlen und Antworten nachgelesen werden.
Allgemein beinhaltet der Großteil
des Kommunikationsverkehrs zwischen einem Hostcomputer 1102 und
einem Gehäusediensteprozess 1106 zwei
grundlegende Befehle: (1) den SENDE DIAGNOSTIK-Befehl, mittels dessen
der Hostcomputer Steuerinformationen an den Gehäusediensteprozess überträgt; und
(2) den EMPFANGE DIAGNOSTISCHE ERGEBNISSE-Befehl, mittels dessen der Hostcomputer
von dem Gehäusediensteprozess
Informationen, einschließlich
Zustandsinformationen, über
die verschiedenen Komponenten in einem Gehäuse abfragt.
-
Der
Hostcomputer sendet über
eine Gehäusesteuerseite
einen SENDE DIAGNOSTIK-Befehl an den Gehäusediensteprozess. Das Layout
für eine
Gehäusesteuerseite
ist nachfolgend in Tabelle 1 gezeigt.
-
Tabelle
1 Gehäusesteuerseite
-
Die
Gehäusesteuerseite
umfasst ein GESAMTSTEUERUNG-Feld für jede Art von Komponente in
einem Gehäuse,
und ein ELEMENTSTEUERUNG-Feld für
jede diskrete Komponente in einem Gehäuse. ELEMENTSTEUERUNG-Felder
für alle
Komponenten eines bestimmten Typs werden im Anschluss an das GESAMTSTEUERUNG- Feld für diese
Art Komponente zusammengruppiert. Diese Steuerfelder weisen je nach Art
der Komponente oder des Elements verschiedene Formate auf. Die Formate
für die
Steuerfelder der Gehäusesteuerseite
werden nachfolgend für
mehrere Vorrichtungstypen beschrieben. Die Elementtypen, die derzeit
durch den SES-Befehlssatz unterstützt werden, sind nachfolgend
in Tabelle 2 gezeigt.
-
-
Wenn
ein Hostcomputer einen EMPFANGENE DIAGNOSTISCHE ERGEBNISSE-Befehl
an den Gehäusediensteprozess
ausgibt, sammelt der Gehäusediensteprozess
Statusinformationen von jeder bzw. jedem der Komponenten bzw. Elemente
in dem Gehäuse
und gibt an den Hostcomputer eine Gehäusestatusseite zurück, die
die gesammelten Statusinformationen enthält. Das Layout der Gehäusestatusseite
ist unten in Tabelle 3 gezeigt.
-
Tabelle
3 Gehäusestatusseite
-
Wie
bei der Gehäusesteuerseite,
die oben beschrieben wurde, enthält
die Gehäusestatusseite
Felder für
bestimmte Komponenten oder Elemente, die im Anschluss an ein Gesamtfeld
für diese
Art Komponente zusammengruppiert sind. Somit enthält die Gehäusestatusseite
ein GESAMTSTATUS-Feld für jede
Art Element, auf das einzelne ELEMENTSTATUS-Felder für jedes
Element eines bestimmten Typs innerhalb des Gehäuses folgen. Das Format der
Statusfelder variiert je nach der Art des Elements. Nachfolgend
werden die Statusfeldformate für
mehrere Vorrichtungen veranschaulicht.
-
Der
Hostcomputer kann einen EMPFANGENE DIAGNOSTISCHE ERGEBNISSE-Befehl
mit einem speziellen Seitencode ausgeben, um von dem Gehäusediensteprozess
eine Konfigurationsseite abzurufen, die das Gehäuse und alle Komponenten bzw.
Elemente in dem Gehäuse
beschreibt. Die nachfolgende Tabelle 4 zeigt das Layout einer Konfigurationsseite.
-
Tabelle
4 Konfigurationsseite
-
-
Die
Konfigurationsseite umfasst einen Gehäusedeskriptor-Anfangsblock und
einen Gehäusedeskriptor,
der das Gehäuse
als Ganzes beschreibt, sowie eine Typdeskriptor-Anfangsblockliste, die Informationen über jeden
in dem Gehäuse
enthaltenen Komponenten- bzw. Elementtyp umfasst, und schließlich eine
Typdeskriptor-Textliste, die einen Deskriptortext entsprechend jedem
der Elementtypen enthält.
-
Die
nachfolgenden Tabellen 5A–B
zeigen das Format für
ein ELEMENT-Steuerfeld auf der Gehäusesteuerseite für ein Kühlelement,
z. B. ein Gebläse.
-
Tabelle
5A Kühlelement
für Gehäusesteuerseiten
-
Tabelle
5B Werte
des ANGEFORDERTE-GESCHWINDIGKEIT-CODES
-
Bitfelder
in dem ELEMENT-Steuerfeld ermöglichen,
dass der Hostcomputer dem Gehäusediensteprozess
gegenüber
bestimmte Handlungen festlegt, die auf ein bestimmtes Kühlelement
bezogen sind. Durch Setzen des ANFORDERUNG AUSFALL-Bits legt der
Hostcomputer fest, dass eine visuelle Anzeigevorrichtung eingeschaltet
wird, um ein Fehlschlagen des Kühlelements
anzuzeigen. Durch Setzen des ANFORDERUNG EIN-Feldes fordert der Hostcomputer an,
dass das Kühlelement
eingeschaltet wird und eingeschaltet bleibt. Das Feld ANGEFORDERTE-GESCHWINDIGKEIT-CODE
ermöglicht,
dass der Computer eine bestimmte Kühlgebläsegeschwindigkeit festlegt,
bei der das Kühlelement
arbeiten sollte. Die Tabelle 5B umfasst die verschiedenen Gebläsegeschwindigkeitseinstellungen,
die in dem Feld Angeforderte-Geschwindigkeit-Code festgelegt werden können.
-
Die
Tabellen 6A–B
unten zeigen das Layout für
ein Kühl-ELEMENTSTATUS-Feld
auf einer Gehäusestatusseite,
oben in Tabelle 3 gezeigt.
-
Tabelle
6A Kühlelement
für Gehäusestatusseiten
-
Tabelle
6B Werte
des TATSÄCHLICHE-GESCHWINDIGKEIT-CODES
-
Die
verschiedenen Bitfelder in dem Kühl-ELEMENTSTATUS-Feld,
die in Tabelle 6A gezeigt sind, geben dem Hostcomputer den Zustand
des jeweiligen Kühlelements
bzw. Gebläses
an. Wenn das AUSFALL-Bit gesetzt ist, gibt der Gehäusediensteprozess
an, dass die Fehlschlagangabe für
ein bestimmtes Gebläse
auf ein gestellt wurde. Wenn das ANGEFORDERT EIN-Bit gesetzt ist,
gibt der Gehäusediensteprozess
dem Hostcomputer an, dass das Gebläse manuell eingeschaltet wurde
oder dass angefordert wurde, dass es über einen SENDE DIAGNOSTIK- Befehl eingeschaltet
wird. Wenn das AUS-Bit gesetzt ist, gibt der Gehäusediensteprozess dem Hostcomputer
an, dass das Gebläse
nicht arbeitet. Der Gehäusediensteprozess
kann dem Hostcomputer über
das Feld TATSÄCHLICHE-GESCHWINDIGKEIT-CODE
die tatsächliche
Betriebsgeschwindigkeit des Gebläses
angeben. Werte des tatsächliche-Geschwindigkeit-Codes
sind oben in der Tabelle 6B gezeigt.
-
Ein
Layout für
das Feld ELEMENTSTEUERUNG für
eine Leistungsversorgung auf der Gehäusesteuerseite, oben in Tabelle
1 gezeigt, ist unten in Tabelle 7A gezeigt. Ein ELEMENTSTATUS-Feld
für ein
Leistungsversorgungselement, das in einer Gehäusestatusseite, oben in Tabelle
3 gezeigt, enthalten ist, ist nachfolgend in Tabelle 7B gezeigt.
-
Tabelle
7A Leistungsversorgungselement
für Gehäusesteuerseite
-
Tabelle
7B Leistungsversorgungselement
für Gehäusestatusseiten
-
-
Viele
der Felder in den Leistungsversorgungssteuerungs- und -statusfeldern ähneln denen
in den Kühlelementsteuerungsund
-statusfeldern der Tabellen 5A und 6A und werden nicht näher erläutert. Das
Leistungsversorgungsstatusfeld umfasst ferner Bitfelder, um Unterspannung, Überspannung, Überstrom, Stromausfall
und andere Temperaturbedingungen anzugeben.
-
Der
SES-Befehlssatz und das SES-Protokoll legen eine Standard-SCSI-Kommunikation
zwischen einem Hostcomputer und einem Gehäuse, das mehrere Peripheriegeräte umfasst,
fest. Das SES-Protokoll ermöglicht,
dass der Hostcomputer den Betrieb mehrerer Peripheriegeräte in dem
Gehäuse
steuert und ferner Informationen über den Betriebsstatus der
Peripheriegeräte
erhält.
-
Mehrplatten-Gehäuse
-
Aufgrund
der durch den FC gelieferten flexiblen Verbindbarkeit mit hoher
Bandbreite und der Fähigkeit des
FC, den SES-Befehlssatz und das SES-Protokoll zu unterstützen, wurde
der FC zu einem attraktiven Kommunikationsmedium zum Verbinden von
Hostprozessoren mit Gehäusen,
die mehrere Peripheriegeräte
enthalten, und zum Verbinden der mehreren Peripheriegeräte in Gehäusen miteinander.
In den folgenden Erläuterungen
werden Gehäuse
beschrieben und als mehrere Plattenlaufwerke enthaltend dargestellt.
Jedoch sind die beschriebenen Techniken und Lösungsansätze zum Miteinanderverbinden
mehrerer Plattenlaufwerke in einem Gehäuse und zum Miteinanderverbinden
von Gehäusen
und Hostcomputern gleichermaßen
auf andere Arten von Peripheriegeräten anwendbar.
-
12 ist
eine vereinfachte Veranschaulichung des Entwurfs, der von Herstellern
bestimmter, derzeit verfügbarer
Mehrplattengehäuse
auf FC-Basis verwendet wird. Das in 12 gezeigte
Gehäuse 1202 enthält 8 Plattenlaufwerke 1204–1211.
Die Plattenlaufwerke sind in eine Rückwandplatine 1212 eingesteckt
und durch dieselbe miteinander verbunden. Eine Mehrkomponenten-Schaltungsplatine 1214 ist
ebenfalls in die Rückwandplatine 1212 eingesteckt.
Zwei Gigabit-Schnittstellenwandler
(„GBICs") 1216 und 1218 liefern
eine externe Faseroptikkabelverbindung mit dem Gehäuse 1202.
Die Schaltungsplatine 1214 enthält einen Prozessor 1220 und
eine Anzahl von Torumgehungsschaltungen („PBCs") 1222–1229, die durch eine
interne FC-Schleife 1230 miteinander verbunden sind. Ein
Gehäusediensteprozess
läuft an
dem Prozessor 1220, um dem (nicht gezeigten) Hostcomputer
zu ermöglichen,
verschiedene zusätzliche
Komponenten in dem Gehäuse,
z. B. Gebläse,
Leistungsversorgungen, Temperatursensoren usw., zu steuern, wie
in dem vorherigen Teilabschnitt erörtert wurde. Die einzelnen
Plattenlaufwerke 1204–1211 des
Gehäuses
können
während
des Betriebs der anderen Plattenlaufwerke des Gehäuses ausgetauscht,
entfernt oder hinzugefügt
werden. Bei den in 12 veranschaulichten derzeit
verfügbaren
Systemen wird durch die Torumgehungsschaltungen 1222–1229 eine Im-Betrieb-Umschichtung
(Hot-Swapping) ermöglicht.
Wenn eine Platte vorhanden ist und funktioniert, gelangt das FC-Signal
von der FC-Schleife 1230 durch die Torumgehungsschaltung
(z. B. Torumgehungsschaltung 1225) zu dem Plattenlaufwerk
(z. B. Plattenlaufwerk 1207). Wenn ein Plattenlaufwerk
beseitigt wird, leitet die Torumgehungsschaltung das FC-Signal stattdessen
direkt zu der nächsten
Torumgehungsschaltung oder einer anderen Komponente entlang der
FC-Schleife 1230. Wenn beispielsweise das Plattenlaufwerk 1207 mittels
Hot-Swapping beseitigt wird, gelangen FC-Signale von dem Plattenlaufwerk 1206 durch
die Torumgehungsschaltung 1224 zu der Torumgehungsschaltung 1225 und
von der Torumgehungsschaltung 1225 direkt zu der Torumgehungsschaltung 1226.
-
Ein
einzelner GBIC (beispielsweise GBIC 1216) ermöglicht eine
Verbindung des Gehäuses
mit einem Hostcomputer über
eine optische Faser. Ein zweiter GBIC (z. B. GBIC 1218)
mag ermöglichen,
dass ein Gehäuse
mit einem anderen Gehäuse
in Kaskade geschaltet wird, wodurch eine weitere Gruppe von Plattenlaufwerken
zu der Faserkanalschleife 1230 hinzugefügt wird. Wenn ein zweiter GBIC
vorliegt und durch den zweiten GBIC keine weiteren Gehäuse in Kaskade
geschaltet werden sollen, wird normalerweise ein Rückschleifenverbinder
bzw. Terminator in den zweiten GBIC eingesteckt, um zu bewirken,
dass FC-Signale in einer Schleife durch das Gehäuse und letztendlich zu dem
Hostcomputer zurückkehren.
-
13A ist eine schematische Darstellung einer Torumgehungsschaltung,
z. B. Torumgehungsschaltungen 1222–1229 in 12.
Ein Eingangs-FC-Signal („EIN") 1302 gelangt
durch einen Summierverstärker 1304,
um das FC-Signal mit Differenzcodierung in ein lineares Signal umzuwandeln,
das in der PBC-Schaltungsanordnung verwendet wird. Desgleichen werden
Summierverstärker 1306–1308 verwendet,
um lineare in Differenzsignale und Differenz- in lineare Signale
umzuwandeln. Das umgewandelte Eingangssignal 1310 wird
aufgespalten und an einen gepufferten Ausgang („Paus") 1312 und einen Multiplexer 1314 geleitet.
Ein zweites FC-Eingangssignal
(„Pein") 1316 gelangt
durch den Summierverstärker 1307 und
wird in den Multiplexer 1314 eingegeben. Das FC-Ausgangssignal
(„AUS") 1318 von
dem Multiplexer 1314 wird durch die SEL-Steuereingangsleitung 1320 gesteuert.
Wenn die SEL-Steuereingangsleitung aktiviert wird, leitet der Multiplexer 1314 die
Pein-Eingabe 1316 an das Ausgangssignal 1318.
Wenn die SEL-Steuereingangsleitung deaktiviert wird, leitet der
Multiplexer 1314 das EIN-Eingangssignal 1302 an
das Ausgangssignal AUS 1318.
-
13B veranschaulicht die Verbindung eines Plattenlaufwerks
mit einer Faserkanalschleife über eine
Torumgehungsschaltung. Der Kürze
halber werden die Komponenten der Torumgehungsschaltung in 13B, die dieselben sind wie die in 13A gezeigten Komponenten, in 13B mit denselben, Markierungen versehen, die
bei 13A verwendet wurden, und Beschreibungen
dieser Komponenten werden nicht wiederholt. Das Plattenlaufwerk 1322 empfängt ein
Eingangssignal EIN 1302 von der Faserkanalschleife über das
Torsignal 1312. Wenn das Plattenlaufwerk das SEL-Steuersignal 1320 aktiviert,
liefert das Plattenlaufwerk das Signal Pein 1316, das durch
den Multiplexer 1314 an das Ausgangssignal AUS 1318 geleitet
wird, das über
die FC-Schleife
in der Richtung des FC-Signals an das nächste FC-Tor übertragen
wird. Wenn das SEL-Steuersignal 1320 deaktiviert wird,
wird das Plattenlaufwerk 1322 umgangen, und das Eingangssignal EIN 1302 wird
als Ausgangssignal AUS 1318 in der Richtung des FC-Signals
an das nächste
FC-Tor geleitet. Das Plattenlaufwerk 1322 aktiviert das
SEL-Steuersignal, wenn es sicher in dem Gehäuse angebracht, mit der Rückwandplatine
verbunden und funktional dazu bereit ist, mit der FC-Schleife zusammenzuwirken.
Wenn das Plattenlaufwerk 1322 nicht vorhanden ist oder
nicht funktional bereit ist, mit der FC-Schleife zusammenzuwirken,
wird die SEL-Steuerleitung 1320 deaktiviert,
und das FC-Signal umgeht das Plattenlaufwerk. Wenn das Plattenlaufwerk
während
des Betriebs in ein On-Line-Gehäuse
eingesetzt oder aus einem solchen entnommen wird, muss die FC-Schleife,
die die funktionierenden Plattenlaufwerke miteinander verbindet,
einer erneuten Initialisierung unterzogen werden, wie oben erörtert, jedoch
ist die folgende Unterbrechung dann relativ gering, und jegliche
unterbrochenen Datentransfers werden wiedergewonnen. Jedoch gibt
es verschiedene mögliche Ausfallmodi
von Plattenlaufwerken, die den Betrieb der FC-Schleife verschlechtern oder unmöglich machen können und
die nicht durch die im Wesentlichen passive PBC erfasst und umgangen
werden können.
Beispielsweise kann ein Plattenlaufwerk auf intermittierende Weise
Störsignale
senden oder kann darin versagen, die Steuerung der FC-Schleife nach
einem Senden angeforderter Daten abzugeben. Obwohl die passiven PBCs
also ein Hot-Swapping von Plattenlaufwerken ermöglichen, liefern sie nicht
das hohe Niveau einer Kompo nentenfehlfunktionserfassung und -behebung,
das bei Systemen mit hoher Verfügbarkeit
notwendig ist.
-
Die vorliegende
Erfindung
-
Das
Verfahren und System der vorliegenden Erfindung sind auf eine neue
Art von Multi-Peripheriegeräte-Gehäuse bezogen,
das eine erhöhte
Zuverlässigkeit,
eine erhöhte
Fehlertoleranz und eine höhere
Verfügbarkeit
liefert. Wie in dem vorherigen Teilabschnitt wird dieses neue Multi-Peripheriegeräte-Gehäuse anhand
eines Mehrplattengehäuses
veranschaulicht und beschrieben. Jedoch sind die Techniken und Verfahren der
vorliegenden Erfindung allgemein auch auf Gehäuse anwendbar, die eventuell
verschiedene Arten von Peripheriegeräten in unterschiedlichen Kombinationen
enthalten. Das Verfahren und das System der vorliegenden Erfindung
werden in Bezug auf Gehäuse
erörtert,
die auf einer FC-Verbindung zwischen dem Hostcomputer und dem Gehäuse sowie
zwischen verschiedenen Peripheriegeräten in dem Gehäuse beruhen.
Jedoch können
statt des FC auch andere Arten von Kommunikationsmedien eingesetzt
werden. Schließlich
werden das Verfahren und das System der vorliegenden Erfindung bezüglich eines
Mehrplattengehäuses
erörtert,
bei dem der SES-Befehlssatz und das SES-Protokoll dem Hostcomputer
eine Steuerung auf Komponentenebene liefern. Diese Steuerung auf
Komponentenebene kann jedoch auch durch andere Arten von Protokollen
und Befehlssätzen
geliefert werden.
-
14 zeigt
ein Gehäuse
mit hoher Verfügbarkeit,
das auf die vorliegende Erfindung bezogene Techniken beinhaltet.
Das in 14 gezeigte hochverfügbare Gehäuse („HAE") umfasst 8 Plattenlaufwerke 1402–1409.
Die Plattenlaufwerke 1402–1409 sind in eine
Rückwandplatine 1412 eingesteckt,
die die Plattenlaufwerke mit anderen Komponenten in dem HAE verbindet
und die ferner Bestimmte der anderen Komponenten in dem HAE unabhängig von
den Plattenlaufwerken miteinander verbindet. Die Rückwandplatine 1412 ist passiv.
Sie enthält
keine aktiven Komponenten wie z. B. Verarbeitungselemente, und somit
ist es sehr unwahrscheinlich, dass sie zu einem Ausfallpunkt in
dem HAE wird. Die zwei Verknüpfungssteuerkarten
(„LCCs") 1414 und 1416 sind
mit der Rückwandplatine
gekoppelt. Die zwei LCCs sind im Wesentlichen identisch. Lediglich
die in der oberen LCC 1414 enthaltenen Komponenten werden
beschrieben und mit Bezeichnungen versehen. Eine LCC enthält zwei
GBICs 1418 und 1420, eine Anzahl von Torumgehungsschaltungen 1422–1424 und
mehrere Torumgehungsschaltungschips 1426 und 1428,
von denen jeder vier separate Torumgehungsschaltungen enthält. Die
Torumgehungsschaltungen und die Torumgehungsschaltungschips sind sowohl
durch eine FC-Schleife, die in 14 durch
die einzige dicke Linie, z. B. die Linie 1430, die die
Torumgehungsschaltungen 1422 und 1423 verbindet,
angegeben ist, als auch durch einen Torumgehungsschaltungsbus 1432 miteinander
verbunden. Bei 14 können Torumgehungsschaltungen
durch sowohl einen Torumgehungsschaltungsbus als auch durch eine
FC-Schleife miteinander verbunden gezeigt sein, z. B. die Verbindung
zwischen Torumgehungsschaltungen 1422 und 1423.
Die Torumgehungsschaltungschips 1426 und 1428 verzweigen
Paus-, Pein- und SEL-Steuerleitungssignale, die in 14 kollektiv
durch eine einzige Linie, z. B. die Linie 1434, dargestellt
sind, an die 8 Plattenlaufwerke 1402–1409. Jeder Torumgehungsschaltungschip
steuert einen FC-Schleifen-Zugriff
auf vier Plattenlaufwerke. Die LCC enthält einen Prozessor 1436, der
einen Gehäusediensteprozess
und andere Steuerprogramme betreibt. Dieser Prozessor 1436 umfasst eine
Schaltungsanordnung, die ein FC-Tor sowie Tore zu drei verschiedenen
internen Bussen implementiert. Einer der internen Busse 1438,
bei einem bevorzugten Ausführungsbeispiel
ein I2C-Bus, verbindet den Prozessor 1436 mit
PBC-Steuerungschips 1440 und 1442 und
mit anderen Komponenten wie z. B. Temperaturerfassungsvorrichtungen
und Leistungsüberwachungsvorrichtungen 1444 und 1446.
Der Prozessor auf einer LCC 1436 ist durch zwei separate
interne Busse 1450 und 1452, die durch die Rückwandplatine 1412 verlaufen,
mit dem Prozessor auf der anderen LCC 1448 verbunden.
-
Das
HAE ist äußerst redundant.
Die Plattenlaufwerke 1402–1409 sind durch zwei
separate FC-Schleifen, die teilweise auf den zwei LCC-Karten 1414 und 1416 implementiert
sind, miteinander verbunden. Wenn also eine FC-Schleife ausfällt, kann
ein (nicht gezeigter) Hostcomputer trotzdem über die andere FC-Schleife auf
die Plattenlaufwerke in dem Gehäuse
zugreifen und Daten mit denselben austauschen. Wenn desgleichen ein
interner Bus, der die zwei Prozessoren 1436 und 1448 miteinander
verbindet, ausfällt,
können
die zwei Prozessoren über
den anderen internen Bus miteinander kommunizieren. Obwohl dies
in 14 nicht gezeigt ist, umfasst das HAE Doppelleistungsversorgungen
und andere redundante Komponenten. Jeder der zwei Prozessoren steuert
eine der zwei redundanten Komponenten, z. B. eine Leistungsversorgung,
um zu gewährleisten,
dass ein ausfallender Prozessor nicht beide Leistungsversorgungen
lahm legen und somit das HAE deaktivieren kann. Die Torumgehungsschaltungen
ermöglichen
wie bei den oben beschriebenen derzeit verfügbaren Gehäusen ein Hot-Swapping von Plattenlaufwerken.
Da die Torumgehungsschaltungen selbst jedoch durch Torumgehungsschaltungssteuerungen 1440 und 1442 gesteuert
werden, kann eine zusätzliche
Steuerung der Komponenten auf höherer
Ebene erzielt werden. Beispielsweise kann ein fehlerhaftes Plattenlaufwerk
durch eine Softwareroutine identifiziert und abgetrennt werden,
die auf dem Prozessor 1436 läuft und die dann einer Torumgehungsschaltungssteuerung
signalisieren kann, ein bestimmtes Plattenlaufwerk erzwungenermaßen zu umgehen.
Redundante Umweltüberwachungseinrichtungen
ermöglichen
ein wachsames fehlertolerantes Überwachen
der Bedingungen in dem HAE beider Prozessoren. Ein Ausfall eines
bestimmten Sensors oder eines verbindenden internen Busses führt nicht
zu einem Ausfall des gesamten HAE.
-
15A veranschaulicht eine Steuerung einer Torumgehungsschaltung
durch einen Torumgehungsschaltungssteuerungschip. Die in 15A veranschaulichte Schaltung ähnelt der
oben in 13B gezeigten Schaltung. Jedoch
steuert die Steuersignalleitung, die in dieser Schaltung als „SD"-Steuersignalleitung 1502 bezeichnet
wird, nicht direkt die Ausgabe des Multiplexers 1504. Stattdessen
wird die SD-Steuersignalleitung 1502 in
eine PBC-Steuerschaltung 1506 eingegeben. Diese PBC-Steuerschaltung
kann durch einen Mikroprozessor implementiert werden oder kann auf
der Basis einer Zustandsmaschinenlogik implementiert werden. Die
PBC-Steuerschaltung 1506 gibt
eine erzwungene Umgehungssteuerschaltungsleitung („FB") aus, die wie bei
der Schaltung in 13B bestimmt, ob das Eingangssignal
EIN 1508 zu dem Ausgangssignal AUS 1510 durchgeleitet
wird oder ob das Pein-Signal 1512 stattdessen durch den
Multiplexer 1504 an das Ausgangssignal AUS 1510 geleitet
wird. Die PBC-Steuerschaltung 1506 kann
ferner über
einen seriellen Bus 1510 oder eine andere Art von Kommunikationsmedium
Daten mit dem Mikroprozessor 1508 austauschen. Der Mikroprozessor 1508 kann
der PBC-Steuerschaltung 1506 gegenüber angeben, dass die PBC-Steuerschaltung 1506 das
FC-Steuersignal 1503 aktivieren sollte, um das Plattenlaufwerk 1514 zu
umgehen. Somit stehen bei der in 15A gezeigten
Schaltung mehrere zusätzliche
Steuerungsebenen zusätzlich
zu der durch die Platte 1514 über die Signalleitung SD 1502 ausgeübten Steuerung
zur Verfügung.
Die PBC-Steuerschaltung 1506 kann gemäß einem internen Regelsatz
die Platte 1514 erzwungenermaßen umgehen, und ein Programm,
das in dem Mikroprozessor 1508 abläuft, kann bewirken, dass die
Platte 1514 über
Daten, die an die PCB-Steuerschaltung 1506 gesendet werden,
erzwungenermaßen
umgangen wird. Diese zusätzlichen
Steuerungsebenen ermöglichen
eine mikroprozessorgesteuerte Umgehung einzelner Plattenlaufwerke
im Anschluss an eine Erfassung einer Plattenfehlfunktion oder kritischer
Ereignisse, die durch Umweltüberwachungseinrichtungen und
andere derartige Sensoren signalisiert werden.
-
15B zeigt ein Beispiel der in Hardware implementierten
PBC-Steuerschaltung. Ein D-Flipflop 1516 gibt das erzwungene
Umgehungssignal FB 1518 aus. Das D-Flipflop ändert auf
einen Empfang eines Strobe-Eingangssignals 1520 hin seinen
Zustand. Das D-Flipflop empfängt
eine Eingabe von der SD-Steuersignalleitung 1522 und
die von dem Mikroprozessor eingegebenen Schreib_Daten 1524.
Das Strobe- bzw. Übernahmesignal
wird immer dann erzeugt, wenn die SD-Steuerleitung ihren Zustand ändert oder
wenn eine Mikroprozessor-Schreiboperation
vorliegt. Das D-Flipflop kann auf der Basis von Änderungen entweder des SD-Eingangs 1512 oder
durch Änderungen
an von einem Mikroprozessor eingegebenen Schreibdaten 1524 eingestellt
oder gelöscht
werden. Das erzwungene Umgehungssignal FB verfolgt das SD-Steuersignal 1522, kann
jedoch durch eine Mikroprozessorsteuerung übersteuert werden. Somit ermöglicht die
Steuerschaltung der 15B, wenn sie als PBC-Steuerschaltung 1506 in 15A enthalten ist, dass die Schaltung 15A auf identische Weise wie die Schaltung der 13A arbeitet, mit Ausnahme des Falls, dass der
Mikroprozessor wählt,
die Platte erzwungenermaßen
zu umgehen, statt davon abhängig
zu sein, dass sich die Platte selbst umgeht.
-
Die
verbesserte PBC-Steuerschaltung der 15A wird
in dem HAE ferner dazu verwendet, verschiedene Nebenschlussoperationen
zu implementieren. Beispielsweise können PBC-Schaltungen 1422 und 1423 in 14 durch
PBC-Steuerungen 1440 und 1442 angesteuert werden,
die GBICs 1418 bzw. 1420 zu umgehen. 16A–B veranschaulichen die Nützlichkeit
eines Implementierens einer Nebenschlussoperation, um einen GBIC
zu umgehen. In 16A sind zwei HAEs 1602 und 1604 über eine
einzige FC-Schleife 1606 schematisch in Kaskade geschaltet
dargestellt. Der FC-Lichtleiter, der von dem (nicht gezeigten) Hostcomputer
ankommt, ist durch einen ersten GBIC 1608 mit dem ersten
HAE 1602 verbunden. Die FC-Schleife verlässt das erste HAE 1602 bei
dem GBIC 1610 und tritt bei dem GBIC 1612 in das
zweite HAE 1604 ein. Schließlich verlässt die FC-Schleife das zweite
HAE 1604 bei dem GBIC 1614 und kehrt über einen
Rückpfad
zu dem Hostcomputer zurück.
Die FC-Schaltung wird unter Verwendung einer externen Rückschleifungshaube 1616 von dem
GBIC 1614 durch die Rückschleife
zurückgebracht.
-
Die
in 16A veranschaulichte einfache Form einer Kaskadenschaltung
ist mit Problemen verbunden. Erstens könnten bestimmte Fehlfunktionen
in dem zweiten HAE 1604 die gesamte FC-Schleife, einschließlich des
ersten HAE 1602, lahm legen. Somit können HAEs nicht ohne weiteres
abgetrennt und umgangen werden, wenn sie gemäß dem Schema der 16A in Kaskade geschaltet sind. Ferner ist die
externe Rückschleifenhaube 1616 eine
zusätzliche
Komponente, die das Gesamtsystem teurer macht, Probleme bei der
Installation bewirken kann und eine weitere Quelle eines Einzelpunktausfalls
darstellt.
-
Die
auf die Kaskadenschaltung der 16A bezogenen,
oben erwähnten
Unzulänglichkeiten
können unter
Verwendung von Nebenschlussoperationen, die durch PBC-Steuerlogikschaltungen
gesteuert werden, überwunden
werden. 16B zeigt ein HAE, das in 16A schematisch im Diagramm dargestellt ist, wobei die
Funktionalität
durch die externe Rückschleifenhaube 1616 der 16A geliefert wird, statt über eine PBC implementiert
zu werden. Bei 16B wird der äußerste rechte
GBIC 1618 des HAE 1620 durch die PBC 1622 gesteuert.
Die PBC 1622 wiederum wird durch eine PBC-Steuerung 1624 gesteuert,
die wiederum durch den (nicht gezeigten) Mikroprozessor gesteuert
werden kann. Das FC-Rücksignal 1626 wird
im Anschluss an eine Umwandlung als Steuersignalleitung 1628 in
die PBC-Steuerung 1624 rückgekoppelt. Wenn der GBIC 1618 mit
einem Faseroptikkabel verbunden ist, das wiederum mit einem anderen
HAE verbunden ist, veranlasst das FC-Rücksignal 1626, dass
die Steuersignalleitung 1628 aktiviert wird, und veranlasst
die PBC-Steuerung 1624,
die PBC 1622 anzusteuern, FC-Signale zwischen dem HAE und
zu einem externen zusätzlichen
HAE zu leiten. Wenn das HAE jedoch nicht über den GBIC 1618 und ein
Faseroptikkabel mit einem anderen HAE verbunden ist, wird die Steuersignalleitung 1628 deaktiviert,
was die PBC-Steuerung 1624 veranlasst,
die PBC 1622 anzusteuern, den GBIC 1618 zu umgehen,
und wodurch somit das FC-Signal über
einen Rückpfad
in der Schleife zu dem Hostcomputer zurückgeführt wird. Dieser Mechanismus
beseitigt das Erfordernis einer externen Rückschleifenhaube 1616 und
sieht ein automatisches Erfassen von in Kaskade geschalteten Gehäusen vor.
Wenn überdies
ein dem HAE 1620 in Flussrichtung nachgeschaltetes Gehäuse eine
Fehlfunktion aufweist, kann der (nicht gezeigte) Hostcomputer mit
dem Mikroprozessor in dem HAE (ebenfalls nicht gezeigt) interagieren,
um die PBC-Steuerung 1624 anzuweisen,
den GBIC 1618 über
die PBC 1622 erzwungenermaßen zu umgehen, wodurch in
Flussrichtung nachgeschaltete Gehäuse aus der FC-Schleife entfernt
werden. Somit können
defekte Gehäuse über ein
mikroprozessorgesteuertes Nebenschließen von GBICs abgetrennt und
entfernt werden.
-
Obwohl
die vorliegende Erfindung in Bezug auf ein bestimmtes Ausführungsbeispiel
beschrieben wurde, ist nicht beabsichtigt, dass die Erfindung auf
dieses Ausführungsbeispiel
beschränkt
ist. Fachleuten werden Modifikationen einleuchten. Beispielsweise
kann die vorliegende Erfindung bei Multi-Peripheriegeräte-Gehäusen praktiziert
werden, die andere zwischen und innerhalb von Gehäusen verwendete
Kommunikationsmedien verwenden als das bei dem oben beschriebenen
Ausführungsbeispiel
verwendete FC-Kommunikationsmedium. Als weiteres Beispiel können eine
Reihe unterschiedlicher Arten von Steuerungen, Mikroprozessoren
und Torumgehungsschaltungen in beliebig vielen unterschiedlichen
Konfigurationen verwendet werden, um die aus drei Stufen bestehende
Torumgehungsschaltungssteuerungsstrategie der vorliegenden Erfindung zu
liefern. Es können
zusätzliche
Redundanzen in Bezug auf Steuerungen, Mikroprozessoren, Kommunikationsbusse
und Firmware- und Softwareroutinen verwendet werden, um die Zuverlässigkeit
eines Multi-Peripheriegeräte-Gehäuses, das
gemäß dem Verfahren
der vorliegenden Erfindung entworfen ist, weiter zu erhöhen. Kommunikationen
zwischen Prozessoren können
unter Verwendung verschiedener Arten von Kommunikationsmedien implementiert
werden und können
unter Verwendung von anderen Software- und Firmware-Paradigmen als
Mailboxen und Rückrufroutinen
implementiert werden.
-
Zu
Erläuterungszwecken
verwendete die vorstehende Beschreibung eine spezifische Nomenklatur, um
ein umfassendes Verständnis
der Erfindung zu ermöglichen.
Jedoch wird Fachleuten einleuchten, dass die spezifischen Einzelheiten
nicht erforderlich sind, um die Erfindung zu praktizieren. In anderen
Fällen
sind in Form von Blockdiagrammen hinreichend bekannte Schaltungen
und Vorrichtungen gezeigt, um eine unnötige Ablenkung von der zugrunde
liegenden Erfindung zu vermeiden. Somit werden die vorstehenden
Beschreibungen spezifischer Ausführungsbeispiele
der vorliegenden Erfindung zu Veranschaulichungs- und Beschreibungszwecken
präsentiert;
sie sollen nicht erschöpfend
sein oder die Erfindung auf die genauen offenbarten Formen beschränken; selbstverständlich sind
angesichts der obigen Lehren viele Modifikationen und Variationen
möglich.
Die Ausführungsbeispiele
wurden ausgewählt
und beschrieben, um die Prinzipien der Erfindung und ihre praktischen
Anwendungen bestmöglich
zu erklären
und dadurch andere Fachleute zu befähigen, die Erfindung und verschiedene
Ausführungsbeispiele
mit verschiedenen Modifikationen, die für die jeweilige in Betracht
gezogene Verwendung geeignet sind, am besten zu nutzen. Der Schutzumfang
der Erfindung wird durch die folgenden Patentansprüche definiert: