DE69928202T2 - Extern ansteuerbare Umgehungsschaltung - Google Patents

Extern ansteuerbare Umgehungsschaltung Download PDF

Info

Publication number
DE69928202T2
DE69928202T2 DE69928202T DE69928202T DE69928202T2 DE 69928202 T2 DE69928202 T2 DE 69928202T2 DE 69928202 T DE69928202 T DE 69928202T DE 69928202 T DE69928202 T DE 69928202T DE 69928202 T2 DE69928202 T2 DE 69928202T2
Authority
DE
Germany
Prior art keywords
communication medium
scsi
enclosure
loop
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69928202T
Other languages
English (en)
Other versions
DE69928202D1 (de
Inventor
James L. White
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of DE69928202D1 publication Critical patent/DE69928202D1/de
Application granted granted Critical
Publication of DE69928202T2 publication Critical patent/DE69928202T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test input/output devices or peripheral units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • G06F11/1662Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Bus Control (AREA)
  • Hardware Redundancy (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

  • 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 6A6C 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 12221229 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 1A1C 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 110113, 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 119122 verbunden sind. Die N_Tore 123126 in den FC-Knoten 119122 sind mit F_Toren 127130 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 202208 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 202205. Die zweite Sequenz 212 besteht aus Rahmen fünf bis sieben 206208 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 202208 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 326329, 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 424426 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 424426 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 513515 und 516517 angeschlossen werden. Bei 5 sind die SCSI-Vorrichtungen 513515 an den durch den SCSI-Bus-Adapter 506 gesteuerten SCSI-Bus 518 angeschlossen, und die SCSI-Vorrichtungen 516517 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 522524, 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 513515 und 516517 empfangen die Eingabe-/Ausgabebefehle von dem SCSI-Bus. Die Zielvorrichtungen 513515 und 516517 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 513515 und 516517 dem Initiator durch den SCSI-Bus mit Statusnachrichten, die den Erfolg oder Misserfolg einer Implementierung der Befehle angeben.
  • 6A6C 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 6B6C 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 424426 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 424426 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 6A6B 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 6A6C beschrieben werden. Bei 7A7B 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 7AB 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 722725 ü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 902904 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 10081011. 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 10081011 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 10081011 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 10081011 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 11101113 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
    Figure 00350001
  • 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.
  • Tabelle 2
    Figure 00360001
  • 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
    Figure 00370001
  • 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
    Figure 00380001
  • Figure 00390001
  • 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
    Figure 00390002
  • Tabelle 5B Werte des ANGEFORDERTE-GESCHWINDIGKEIT-CODES
    Figure 00400001
  • 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
    Figure 00410001
  • Tabelle 6B Werte des TATSÄCHLICHE-GESCHWINDIGKEIT-CODES
    Figure 00410002
  • 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
    Figure 00420001
  • Tabelle 7B Leistungsversorgungselement für Gehäusestatusseiten
    Figure 00420002
  • Figure 00430001
  • 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 12041211. 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") 12221229, 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 12041211 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 12221229 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 12221229 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 13061308 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 14021409. Die Plattenlaufwerke 14021409 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 14221424 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 14021409. 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 14021409 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. 16AB 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:

Claims (9)

  1. Eine extern steuerbare Umgehungsschaltung zum Steuern eines Zugriffs durch ein Gerät (1514) auf ein Kommunikationsmedium, wobei die Umgehungsschaltung folgende Merkmale aufweist: einen IN-Eingang (1508) von dem Kommunikationsmedium; einen OUT-Ausgang (1510) zu dem Kommunikationsmedium; einen Pout-Ausgang des IN-Eingang zu dem Gerät; einen Pin-Eingang (1512) von dem Gerät; einen Steuersignalleitung-SD-Ausgang (1502) von dem Gerät; und eine Multiplexkomponente (1504), die den IN-Eingang (1508), den Pin-Eingang (1512) und eine FB-Steuersignalleitung (1503) empfängt, die bewirkt, dass die Multiplexkomponente den Pin-Eingang zu dem OUT-Ausgang ausgibt, wenn sich die FB-Signalleitung in einem ersten Zustand befindet, und die bewirkt, dass die Multiplexkomponente den IN-Eingang zu dem OUT-Ausgang ausgibt, wenn sich die FB-Signalleitung in einem zweiten Zustand befindet, dadurch gekennzeichnet, dass: eine Umgehungsschaltungssteuerung (1506) die SD-Steuersignalleitung (1502) von dem Gerät empfängt und die FB-Steuersignalleitung (1503) zu der Multiplexkomponente ausgibt, und dadurch, dass eine Steuereinrichtung (1509) mit der Steuerung (1506) verbunden ist, wobei die Steuereinrichtung (1509) zum Bewirken in der Lage ist, dass die Steuerung (1506) ein Signal ausgibt, derart, dass die FB-Signalleitung (1503) den zweiten Zustand annimmt.
  2. Die extern steuerbare Umgehungsschaltung gemäß Anspruch 1, bei der das Gerät (1514) die Steuersignalleitung SD (1502) in einen ersten Zustand versetzt, wenn das Gerät installiert und bereit ist, Daten mit dem Kommunikationsmedium auszutauschen, und wobei die Steuersignalleitung einen zweiten Zustand aufweist, wenn das Gerät nicht installiert ist und wenn das Gerät nicht bereit ist, Daten mit dem Kommunikationsmedium auszutauschen.
  3. Ein Verbindungsnebenschluss innerhalb einer Mehrgeräteumhüllung (1400), wobei der Verbindungsnebenschluss zusätzlich die extern steuerbare Umgehungsschaltung (14221423) gemäß Anspruch 1 oder 2 aufweist und ferner folgende Merkmale aufweist: einen Zwischen-Mehrgeräteumhüllung-Kommunikationsmedium-Verbinder (1418, 1420), der ein internes Kommunikationsmedium (1430) innerhalb der Mehrgeräteumhüllung mit dem Kommunikationsmedium verbindet, wobei ein Zugriff durch den Zwischen-Mehrgeräteumhüllung-Kommunikationsmedium-Verbinder auf das Kommunikationsmedium durch die extern gesteuerte Umgehungsschaltung (1422, 1423) gesteuert ist; und eine Steuerlogik, die innerhalb einer Steuerung (1440, 1442) verkörpert ist, die die extern steuerbare Umgehungsschaltung über den Zwischen-Mehrgeräteumhüllung-Kommunikationsmedium-Verbinder steuert, um das interne Kommunikationsmedium (1430) mit dem Kommunikationsmedium zu verbinden, um die Mehrgeräteumhüllung (1400) mit einem Hostcomputer und mit einer Anzahl von anderen Mehrgeräteumhüllungen zu verbinden, und um das in terne Kommunikationsmedium von dem Kommunikationsmedium abzutrennen, um die Mehrgeräteumhüllung von einem Hostcomputer und von einer Anzahl von anderen Mehrgeräteumhüllungen zu trennen.
  4. Der Verbindungsnebenschluss gemäß Anspruch 3, bei dem das Kommunikationsmedium und das interne Kommunikationsmedium (1430) beide Teile einer Fibre-Channel-Zugeteilte-Schleife sind, wobei der Verbindungsnebenschluss (1440, 1442, 1423, 1420) einen Zugriff von einem Erweiterung-Zwischen-Mehrgeräteumhüllung-Kommunikationsmedium-Verbinder (1420) auf einen nachgelagerten Abschnitt der Fibre-Channel-Zugeteilte-Schleife steuert, und wobei, wenn die Steuerung (1440, 1442) ein Signal von einer nachgelagerten Mehrgeräteumhüllung erfasst, die Steuerung den Verbindungsnebenschluss anweist, die Mehrgeräteumhüllung mit dem nachgelagerten Abschnitt der Fibre-Channel-Zugeteilte-Schleife zu verbinden, und wenn die Steuerung (1440, 1442) kein Signal von einer nachgelagerten Mehrgeräteumhüllung erfasst, die Steuerung den Verbindungsnebenschluss anweist, die Mehrgeräteumhüllung von dem nachgelagerten Abschnitt der Fibre-Channel-Zugeteilte-Schleife abzutrennen.
  5. Der Verbindungsnebenschluss (1440, 1442, 1422, 1418) gemäß Anspruch 3, bei dem das Kommunikationsmedium und das interne Kommunikationsmedium (1430) beide Teile einer Fibre-Channel-Zugeteilte-Schleife sind, wobei der Verbindungsnebenschluss einen Zugriff von einem Primär-Zwischen-Mehrgeräteumhüllung-Kommunikationsmedium-Verbinder (1418) auf einen vorgelagerten Abschnitt der Fibre-Channel-Zugeteilte-Schleife steuert, und wobei, wenn die Steuerung (1440, 1442) bestimmt, dass die Mehrgeräteumhüllung mit einem Hostcomputer und anderen Geräten verbunden werden sollte, die mit dem vorgelagerten Abschnitt der Fibre-Channel-Zugeteilte-Schleife verbunden sind, die Steuerung den Verbindungsnebenschluss anweist, die Mehrgeräteumhüllung mit dem vorgelagerten Abschnitt der Fibre-Channel-Zugeteilte-Schleife zu verbinden, und wenn die Steuerung (1440, 1442) bestimmt, dass die Mehrgeräteumhüllung von einem Hostcomputer und anderen Geräten getrennt werden sollte, die mit dem vorgelagerten Abschnitt der Fibre-Channel-Zugeteilte-Schleife verbunden sind, die Steuerung den Verbindungsnebenschluss anweist, die Mehrgeräteumhüllung von dem vorgelagerten Abschnitt der Fibre-Channel-Zugeteilte-Schleife abzutrennen.
  6. Ein Verfahren zum Steuern eines Zugriffs einer Datenaustauschkomponente (1402, 1409, 1514) innerhalb einer Mehrperipheriegeräteumhüllung (1400) auf ein Kommunikationsmedium, wobei das Verfahren folgende Schritte aufweist: Verbinden eines Eingangs (1508) von dem Kommunikationsmedium mit der Datenaustauschkomponente; Verbinden des Eingangs von dem Kommunikationsmedium mit einer Multiplexkomponente (1504); Verbinden eines Ausgangs (1510) von der Multiplexkomponente mit dem Kommunikationsmedium; Verbinden eines Ausgangs (1512) von der Datenaustauschkomponente mit der Multiplexkomponente; und Verbinden einer Steuerung (1506) mit der Multiplexkomponente über eine FB-Steuersignalleitung (1503), um den Ausgang von der Multiplexkomponente zu dem Kommunikationsmedium auszuwählen, dadurch gekennzeichnet, dass: das Verfahren ferner ein Verbinden einer Steuereinrichtung (1509) mit der Steuerung (1506) aufweist, wobei die Steuereinrichtung (1509) zum Bewirken in der Lage ist, dass die Steuerung (1506) ein Signal ausgibt, derart, dass der Ausgang von der Datenaustauschkomponente nicht als der Ausgang von der Multiplexkomponente ausgewählt wird.
  7. Das Verfahren gemäß Anspruch 6, bei dem das Datenaustauschelement ein Peripheriegerät ist, wobei das Kommunikationsmedium (1430) sich im Inneren der Mehrperipheriegeräteumhüllung befindet und Peripheriegeräte (14021409) innerhalb der Mehrperipheriegeräteumhüllung verbindet, wobei die Steuerung (1506) ein Steuersignal von einem Peripheriegerät über eine Steuersignalleitung empfängt, und wobei die Steuerung den Zustand der FB-Steuersignalleitung (1503) zu einem ersten Zustand setzt, um das Peripheriegerät mit dem internen Kommunikationsmedium (1430) zu verbinden, und den Zustand der FB-Steuersignalleitung zu einem zweiten Zustand setzt, um das Peripheriegerät von dem internen Kommunikationsmedium abzutrennen.
  8. Das Verfahren gemäß Anspruch 6, bei dem das Datenaustauschelement ein Zwischen-Mehrperipheriegeräteumhüllung-Verbinder (1418, 1420) ist, wobei das Kommunikationsmedium sich außerhalb der Mehrperipheriegeräteumhüllung befindet und die Mehrperipheriegeräteumhüllung mit externen Geräten verbindet, und wobei die Steuerung (1440, 1442) den Zustand der FB-Steuersignalleitung (1503) zu einem ersten Zustand setzt, um die Mehrperipheriegeräteumhüllung mit dem externen Kommunikationsmedium zu verbinden, und den Zustand der FB-Steuersignalleitung zu einem zweiten Zustand setzt, um die Mehrperipheriegeräteumhüllung von dem externen Kommunikationsmedium abzutrennen.
  9. Das Verfahren gemäß Anspruch 8, bei dem der Zwischen-Mehrperipheriegeräteumhüllung-Verbinder (1418, 1420) die Mehrperipheriegeräteumhüllung mit einem Hostcomputer verbinden kann, wobei der Zwischen-Mehrperipheriegeräteumhüllung-Verbinder die Mehrperipheriegeräteumhüllung mit einer anderen Mehrperipheriegeräteumhüllung verbinden kann, und wobei das Kommunikationsmedium eine Fibre-Channel-Zugeteilte-Schleife ist.
DE69928202T 1998-11-15 1999-11-15 Extern ansteuerbare Umgehungsschaltung Expired - Fee Related DE69928202T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US192548 1998-11-15
US09/192,548 US6260079B1 (en) 1998-11-15 1998-11-15 Method and system for enhancing fibre channel loop resiliency for a mass storage enclosure by increasing component redundancy and using shunt elements and intelligent bypass management

Publications (2)

Publication Number Publication Date
DE69928202D1 DE69928202D1 (de) 2005-12-15
DE69928202T2 true DE69928202T2 (de) 2006-10-26

Family

ID=22710132

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69928202T Expired - Fee Related DE69928202T2 (de) 1998-11-15 1999-11-15 Extern ansteuerbare Umgehungsschaltung

Country Status (4)

Country Link
US (2) US6260079B1 (de)
EP (1) EP1005200B1 (de)
JP (1) JP2000215151A (de)
DE (1) DE69928202T2 (de)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6477139B1 (en) * 1998-11-15 2002-11-05 Hewlett-Packard Company Peer controller management in a dual controller fibre channel storage enclosure
US6366965B1 (en) * 1998-12-31 2002-04-02 Lsi Logic Corporation System for updating an identity of a device in response to determining that a neighbor device has an identity different from one stored therein
KR100313896B1 (ko) * 1999-01-29 2001-11-15 구자홍 버스 시스템에서의 루프 형성 제거장치 및 방법
US6785742B1 (en) * 1999-02-24 2004-08-31 Brocade Communications Systems, Inc. SCSI enclosure services
US6636934B1 (en) 1999-06-30 2003-10-21 Emc Corporation Fiber channel port by-pass selector section for dual ported disk drives
US6581136B1 (en) * 1999-06-30 2003-06-17 Emc Corporation Fibre channel data storage system having expansion/contraction
US6629216B1 (en) * 1999-06-30 2003-09-30 Emc Corporation Fibre channel by-pass
US6567890B1 (en) * 1999-06-30 2003-05-20 Emc Corporation Fibre channel port by-pass selector section for dual ported disk drives
US6574687B1 (en) 1999-12-29 2003-06-03 Emc Corporation Fibre channel data storage system
US6571355B1 (en) 1999-12-29 2003-05-27 Emc Corporation Fibre channel data storage system fail-over mechanism
US6560683B1 (en) * 1999-12-29 2003-05-06 Emc Corporation Fibre channel data storage system having improved rear-end I/O adapted hub
US6615315B1 (en) * 1999-12-29 2003-09-02 Emc Corporation Fibre channel data storage system having improved fro-end I/O adapted hub
JP2001222385A (ja) * 2000-02-10 2001-08-17 Hitachi Ltd 記憶装置および情報処理システム
US7266490B2 (en) 2000-12-28 2007-09-04 Robert Marc Zeidman Apparatus and method for connecting hardware to a circuit simulation
US8160863B2 (en) 2000-03-28 2012-04-17 Ionipas Transfer Company, Llc System and method for connecting a logic circuit simulation to a network
AU2001266671A1 (en) * 2000-06-02 2001-12-17 Inrange Technologies Corporation Address conversion method and device in a fibre channel switch
US7036033B1 (en) * 2001-01-04 2006-04-25 3Pardata, Inc. Disk enclosure with multiplexers for connecting 12C buses in multiple power domains
US6833634B1 (en) * 2001-01-04 2004-12-21 3Pardata, Inc. Disk enclosure with multiple power domains
US7162654B1 (en) * 2001-01-04 2007-01-09 3Pardata, Inc. Isolation of I2C buses in a multiple power domain environment using switches
US7346674B1 (en) * 2001-06-07 2008-03-18 Emc Corporation Configurable fibre channel loop system
US7200108B2 (en) * 2001-06-29 2007-04-03 International Business Machines Corporation Method and apparatus for recovery from faults in a loop network
US7107343B2 (en) * 2001-07-12 2006-09-12 Adaptec, Inc. Method and apparatus for improved RAID 1 write performance in low cost systems
JP3747407B2 (ja) 2001-11-13 2006-02-22 インターナショナル・ビジネス・マシーンズ・コーポレーション ディスクエンクロージャおよびディスクストレージ
US7206953B1 (en) 2001-12-17 2007-04-17 Adaptec, Inc. Asynchronous fault-tolerant enclosure services interface
US6950969B2 (en) * 2001-12-28 2005-09-27 Hewlett-Packard Development Company, L.P. Cascadable dual fan controller
GB0201208D0 (en) * 2002-01-19 2002-03-06 Ibm Method and apparatus for hard address conflict resolution for enclosures in a loop network
GB2384405B (en) * 2002-01-19 2004-10-06 Ibm Method and apparatus for detection of port name in a loop network
US20030154285A1 (en) * 2002-02-13 2003-08-14 International Business Machines Corporation Method and system for assigning network addreses
JP4166516B2 (ja) * 2002-06-14 2008-10-15 株式会社日立製作所 ディスクアレイ装置
US7055068B2 (en) * 2002-07-25 2006-05-30 Lsi Logic Corporation Method for validating operation of a fibre link
US7085958B2 (en) * 2003-01-17 2006-08-01 International Business Machines Corporation System and method for isolating a faulty switch, storage device or SFP in a daisy-chained configuration
US7317689B1 (en) 2003-02-10 2008-01-08 Foundry Networks, Inc. System and method to access and address high-speed interface converter devices
US7143306B2 (en) * 2003-03-31 2006-11-28 Emc Corporation Data storage system
US7103808B2 (en) * 2003-04-10 2006-09-05 International Business Machines Corporation Apparatus for reporting and isolating errors below a host bridge
US7627780B2 (en) * 2003-04-23 2009-12-01 Dot Hill Systems Corporation Apparatus and method for deterministically performing active-active failover of redundant servers in a network storage appliance
US7565566B2 (en) * 2003-04-23 2009-07-21 Dot Hill Systems Corporation Network storage appliance with an integrated switch
US7661014B2 (en) 2003-04-23 2010-02-09 Dot Hill Systems Corporation Network storage appliance with integrated server and redundant storage controllers
US7401254B2 (en) * 2003-04-23 2008-07-15 Dot Hill Systems Corporation Apparatus and method for a server deterministically killing a redundant server integrated within the same network storage appliance chassis
US7551850B2 (en) * 2003-05-15 2009-06-23 International Business Machines Corporation Highly available redundant optical modules using single network connection
US7290086B2 (en) * 2003-05-28 2007-10-30 International Business Machines Corporation Method, apparatus and program storage device for providing asynchronous status messaging in a data storage system
US7154723B1 (en) * 2003-06-27 2006-12-26 Emc Corporation Highly available dual serial bus architecture
JP4480386B2 (ja) * 2003-11-28 2010-06-16 株式会社日立製作所 ディスクアレイ装置及びディスクアレイ装置のデータ中継方法
JP2005339216A (ja) * 2004-05-27 2005-12-08 Hitachi Ltd 記憶制御システム
US8019842B1 (en) * 2005-01-27 2011-09-13 Netapp, Inc. System and method for distributing enclosure services data to coordinate shared storage
US7607043B2 (en) * 2006-01-04 2009-10-20 International Business Machines Corporation Analysis of mutually exclusive conflicts among redundant devices
EP1830268B1 (de) * 2006-03-03 2019-05-08 STMicroelectronics (Research & Development) Limited Integrierte Mehrzweckschaltung
US7478299B2 (en) * 2006-08-14 2009-01-13 International Business Machines Corporation Processor fault isolation
JP5163245B2 (ja) * 2008-04-08 2013-03-13 日本電気株式会社 ファイバチャネルスイッチ監視装置、方法及びプログラム
GB2480959B (en) * 2009-04-01 2014-11-26 David Zilberberg System for reducing noise in a catv home amplifier upstream path and a method thereof
US20170199834A1 (en) * 2016-01-13 2017-07-13 Ford Global Technologies, Llc Vehicle subsystem communication arbitration
US11954220B2 (en) 2018-05-21 2024-04-09 Pure Storage, Inc. Data protection for container storage
US10310760B1 (en) 2018-05-21 2019-06-04 Pure Storage, Inc. Layering communication fabric protocols
US11150977B1 (en) * 2018-11-14 2021-10-19 Facebook, Inc. Systems and methods for remediating computing resources

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4791531A (en) * 1987-03-09 1988-12-13 Tech-S, Inc. Extruded enclosure for electrical apparatus
US5262990A (en) * 1991-07-12 1993-11-16 Intel Corporation Memory device having selectable number of output pins
US5729763A (en) 1995-08-15 1998-03-17 Emc Corporation Data storage system
US5787265A (en) * 1995-09-28 1998-07-28 Emc Corporation Bus arbitration system having a pair of logic networks to control data transfer between a memory and a pair of buses
US5768551A (en) 1995-09-29 1998-06-16 Emc Corporation Inter connected loop channel for reducing electrical signal jitter
US5812754A (en) 1996-09-18 1998-09-22 Silicon Graphics, Inc. Raid system with fibre channel arbitrated loop
EP0950220B1 (de) 1996-11-14 2003-09-03 Emc Corporation Dynamisch erweiterbares speicherplattenanordnungssystem und verfahren
US6504817B2 (en) 1997-03-31 2003-01-07 Hewlett-Packard Company Fiber channel arbitrated loop dynamic loop sizing
US5949272A (en) * 1997-06-12 1999-09-07 International Business Machines Corporation Bidirectional off-chip driver with receiver bypass
US6075398A (en) * 1998-06-01 2000-06-13 S3 Incorporated Tunable digital oscillator circuit and method for producing clock signals of different frequencies

Also Published As

Publication number Publication date
EP1005200B1 (de) 2005-11-09
JP2000215151A (ja) 2000-08-04
DE69928202D1 (de) 2005-12-15
EP1005200A3 (de) 2000-12-13
EP1005200A2 (de) 2000-05-31
US20020010881A1 (en) 2002-01-24
US6260079B1 (en) 2001-07-10

Similar Documents

Publication Publication Date Title
DE69928202T2 (de) Extern ansteuerbare Umgehungsschaltung
DE69929758T2 (de) Isolierung von defekten Datenaustauschvorrichtungen
DE69636663T2 (de) System und Verfahren zur Zugriffsverteilung von Mehrfachspeichermatrixen zwischen Mehrfachwirtrechnersystemen
DE69632424T2 (de) Server für kontinuierliche Daten und Datentransferschema für mehrfache gleichzeitige Datenzugriffe
US6643748B1 (en) Programmatic masking of storage units
DE602004009410T2 (de) Bandspeicheremulation für offensystem-umgebungen
DE69533230T2 (de) Verfahren und vorrichtung zur verbesserung der fehlertoleranz eines netzwerkes
EP1115064B1 (de) Speicherungsuntersystem und Speicherungssteuerung
US6981078B2 (en) Fiber channel architecture
DE4227346C2 (de) Gerät zur Datenübertragung zwischen mehreren, mit einem SCSI-Bus verbundenen Einheiten
US6898184B1 (en) Private arbitrated loop self-test management for a fibre channel storage enclosure
WO1998015896A1 (en) High speed heterogeneous coupling of computer systems using channel-to-channel protocol
DE102004024130B4 (de) Speichersystem und Verfahren zum Betrieb eines Speichersystems
US6950893B2 (en) Hybrid switching architecture
US6336157B1 (en) Deterministic error notification and event reordering mechanism provide a host processor to access complete state information of an interface controller for efficient error recovery
KR20010078685A (ko) 버퍼 리스트 변경자 제어 비트를 갖는 통신 프로세서
US20040193973A1 (en) Data storage system
US7656789B2 (en) Method, system and storage medium for redundant input/output access
EP0858036A2 (de) Fibre-Channel-verbundene Datenspeicherarchitektur
CN105763366A (zh) 一种基于聚合链路实现的数据通信方法及装置
CN212785408U (zh) 一种PCIe云平台资源池化装置
DE60121607T2 (de) Gerät zur protokollübersetzung mit hilfe eines generischen zwischenprotokolls
CN207882728U (zh) 一种控制系统
DE10116343A1 (de) Datenspeichersystem mit gesondertem Datenübertragungsabschnitt und Nachrichtenübertragungsnetzwerk, mit einer Mehrzahl von Leitsteuereinrichtungen auf einer gemeinsamen gedruckten Schaltungsplatte
US7177942B1 (en) Method for changing fibre channel speed of a drive loop with ESM-controlled drive boxes using redundant drive channels

Legal Events

Date Code Title Description
8327 Change in the person/name/address of the patent owner

Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, TE

8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee