DE10065656A1 - Faserkanalschnittstellensteuerungseinrichtung, die eine nicht blockierende Ausgabe und Eingabe von Faserkanaldatenrahmen und Quittierungsrahmen in und von einem Faserkanal durchführt - Google Patents
Faserkanalschnittstellensteuerungseinrichtung, die eine nicht blockierende Ausgabe und Eingabe von Faserkanaldatenrahmen und Quittierungsrahmen in und von einem Faserkanal durchführtInfo
- Publication number
- DE10065656A1 DE10065656A1 DE10065656A DE10065656A DE10065656A1 DE 10065656 A1 DE10065656 A1 DE 10065656A1 DE 10065656 A DE10065656 A DE 10065656A DE 10065656 A DE10065656 A DE 10065656A DE 10065656 A1 DE10065656 A1 DE 10065656A1
- Authority
- DE
- Germany
- Prior art keywords
- frames
- frame
- data
- acknowledgment
- input
- 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.)
- Withdrawn
Links
- 239000000835 fiber Substances 0.000 title claims abstract description 54
- 230000003139 buffering effect Effects 0.000 title claims abstract description 7
- 238000012545 processing Methods 0.000 title claims description 47
- 239000000872 buffer Substances 0.000 claims abstract description 39
- 238000000034 method Methods 0.000 claims abstract description 28
- 230000005540 biological transmission Effects 0.000 claims description 26
- 230000008569 process Effects 0.000 claims description 12
- 238000012546 transfer Methods 0.000 claims description 12
- 108091006146 Channels Proteins 0.000 claims 23
- 230000000977 initiatory effect Effects 0.000 claims 2
- 239000003999 initiator Substances 0.000 description 20
- 238000004891 communication Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 230000002093 peripheral effect Effects 0.000 description 10
- 238000013461 design Methods 0.000 description 7
- 230000004044 response Effects 0.000 description 6
- 230000000903 blocking effect Effects 0.000 description 5
- 230000001934 delay Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 240000008881 Oenanthe javanica Species 0.000 description 2
- 230000006735 deficit Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 230000035508 accumulation Effects 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000002146 bilateral effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000005755 formation reaction Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 241000894007 species Species 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000029305 taxis Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Systems (AREA)
- Communication Control (AREA)
Abstract
Ein Verfahren und ein System zum nicht blockierenden Verarbeiten von Datenrahmen und Verbindungssteuerungsrahmen in einer Schnittstellensteuerungseinrichtungskomponente eines Faserkanalknotens werden beschrieben. Getrennte FIFO-Warteschlangen sind zum Einreihen ankommender FC-Datenrahmen und ACK-Rahmen vorgesehen, und eine getrennte FIFO-Warteschlange und Liste sind zum Einreihen abgehender FC-Datenrahmen und Zwischenspeichern abgehender ACK-Rahmen vorgesehen.
Description
Die vorliegende Erfindung bezieht sich auf die Übertragung
und den Empfang von Faserkanalrahmen durch einen Faserka
nalknoten und insbesondere auf ein Verfahren und eine Im
plementierung einer Faserkanalschnittstellensteuerungsein
richtung für eine nicht blockierende, gleichzeitige Über
tragung von Datenrahmen und einen Empfang von Datenrahmen
Quittierungsrahmen.
Der Faserkanal ("FC" = fibre channel) ist eine Architektur
und ein Protokoll für ein Datenkommunikationsnetzwerk zum
Verbinden von Computern und Peripheriegeräten. Der FC un
terstützt eine Vielzahl von hochstufigen Protokollen, ein
schließlich des Schnittstellenprotokolls für kleine Compu
tersysteme ("SCSI" = small computer systems interface). Ein
Computer oder ein Peripheriegerät ist mit dem Netzwerk
durch ein FC-Tor bzw. einen FC-Anschluß ("FC port") und
eine FC-Verbindung, die Kupferdrähte oder optische Fasern
umfaßt, verbunden, wobei der Computer oder das Peripherie
gerät, das FC-Tor und die FC-Verbindung zusammen als ein
"FC-Knoten" bezeichnet werden. Ein FC-Tor umfaßt eine Sen
de/Empfangseinrichtung und eine Schnittstellensteue
rungseinrichtung, wobei der Computer und das Peripheriege
rät, in dem das FC-Tor enthalten ist, als ein "Wirt" (Host)
bezeichnet wird. Hosts enthalten im allgemeinen einen oder
mehrere Prozessoren, die in der vorliegenden Anmeldung als
der "Hauptprozessor" bzw. "Hostprozessor" bezeichnet wer
den. Das FC-Tor tauscht mit dem Host über einen lokalen
Datenbus, wie z. B. einen Peripheriecomputerschnittstellen-
("PCI"; PCI peripheral computer interface) Bus Daten aus.
Die Schnittstellensteuerungseinrichtung führt niederstufige
Protokollaustauschvorgängen bzw. Protokollvermittlungen
zwischen dem Faserkanal und dem Computer oder dem Periphe
riegerät, in dem das FC-Tor untergebracht ist, durch.
Eine Schnittstellensteuerungseinrichtung in einem FC-Tor
dient im wesentlichen als ein Wandler zwischen den seriel
len Empfänger- und Sender-Komponenten des FC-Tores und dem
Hauptprozessor des FC-Knotens, in dem das FC-Tor enthalten
ist. Die Schnittstellensteuerungseinrichtung ist auf der
Eingangsseite mit dem Assemblieren bzw. Umwandeln von seri
ell codierten Daten, die von der Empfängerkomponente emp
fangen werden, in geordnete Sätze von Bytes, dem Assemblie
ren einer Mehrheit der geordneten Sätze von Bytes in Basis
einheiten des Datenaustausches, die als "FC-Rahmen" be
zeichnet werden, und dem Weiterleiten der FC-Rahmen zusam
men mit Statusinformationen an den Hauptprozessor im Kon
text mit größeren Ansammlungen von FC-Rahmen, die als FC-
Sequenzen und FC-Vermittlungen ("FC exchanges) bezeichnet
werden, betraut. Auf der Ausgangsseite akzeptiert die
Schnittstellensteuerungseinrichtung Hauptspeicherpufferbe
zugnahmen und Steuerungsinformationen von dem Hauptprozes
sor, wandelt dieselben in höherstufigen Kontexten von FC-
Sequenzen und FC-Vermittlungen in FC-Rahmen um und liefert
die FC-Rahmen zu der Sendekomponente des FC-Tores zur seri
ellen Übertragung zu dem FC. Die Schnittstellensteuerungs
einrichtung tauscht über den FC ferner niederstufige Steu
ermeldungen mit entfernten Knoten aus, die unter anderem
zum Konfigurieren des FC, Beibehalten des Zustands in den
FC-Knoten, Einrichten von temporären Wegen zwischen Knoten,
Entscheiden über die Steuerung der FC-Schleifen, Quittieren
des Empfanges von FC-Datenrahmen und Erweitern der Daten
übertragungskredite auf entfernte Knoten verwendet werden.
Die Schnittstellensteuerungseinrichtung kommuniziert mit
dem Hauptprozessor durch einen Satz von Hauptspeicher-ba
sierten Datenstrukturen und durch eine Anzahl von Steue
rungsregistern, die für sowohl die Schnittstellensteue
rungseinrichtung als auch den Hauptprozessor über einen
lokalen Bus, wie z. B. einen PCI-Bus, zugreifbar sind. Zu
jedem gegebenen Zeitpunkt kann die Schnittstellensteue
rungseinrichtung abgehende FC-Rahmen handhaben, die unter
schiedlichen FC-Sequenzen zugeordnet sind, und kann ferner
ankommende FC-Rahmen von dem FC, die einer Anzahl von FC-
Rahmen zugeordnet sind, handhaben. Die Schnittstellensteue
rungseinrichtung verwendet interne Cache-Speicher, um In
formationen von den Hauptspeicher-basierten Datenstrukturen
zwischenzuspeichern, mit denen die Schnittstellensteue
rungseinrichtung mit dem Hauptprozessor kommuniziert.
Die Schnittstellensteuerungseinrichtung spielt eine analoge
Funktion zu derjenigen, die durch einen Computerprozessor
in einer Mehraufgaben- bzw. multitasken Betriebssystemumge
bung gespielt wird, in einem FC-Tor. Die Schnittstel
lensteuerungseinrichtung handhabt viele unterschiedliche
Ereignisse gleichzeitig mit extrem dynamischen Mustern von
Zustandsänderungen und eines Informationsflusses. Der Zu
stand einer Schnittstellensteuerungseinrichtung wird in
einer Anzahl von unterschiedlichen dynamischen Datenstruk
turen und Warteschlangen, die im allgemeinen in dem Haupt
speicher gespeichert sind, gehalten und ist sowohl für die
Schnittstellensteuerungseinrichtung als auch für das Host
zugreifbar. Der Zustand jeder gegenwärtig aktiven FC-Ver
mittlung und FC-Sequenz sowie Beschreibungselemente, die
auf ankommende und abgehende Rahmen Bezug nehmen, Abschluß
nachrichten für Schreib- und Leseoperationen und andere
solche Informationen werden in diesen Datenstrukturen ge
halten.
I/O-Operationen können im Zusammenhang mit einer SCSI-I/O-
Operation, die in dem FC-Protokoll eingebettet ist, durch
geführt werden. Eine I/O-Operation wird durch einen Initiatorknoten
eingeleitet, um Daten von einem Zielknoten zu
lesen oder Daten zu demselben zu schreiben. Bei Abschluß
einer Schreib- oder Lese-Operation ("I/O-Operation") emp
fängt der Initiatorknoten im allgemeinen einen FC-Antwort
rahmen von dem Zielknoten, und zwar, ob die I/O-Operation
erfolgreich abgeschlossen wurde oder nicht. Dieser FC-Ant
wortrahmen wird von dem FC durch die Schnittstellensteue
rungseinrichtung empfangen, der Dateninhalt des FC-Antwort
rahmens an einen Puffer in dem Hauptspeicher übertragen,
und eine Abschlußbemerkung wird durch die Schnittstel
lensteuerungseinrichtung in eine getrennte Abschlußwarte
schlange in dem Hauptspeicher plaziert. Folglich werden auf
den Empfang eines Antwort-FC-Rahmens durch den einleitenden
Knoten hin Daten von der Schnittstellensteuerungseinrich
tung zu zwei unterschiedlichen Hauptspeicherpositionen ge
sendet.
Bei FC-Steuerungseinrichtungen, wie z. B. bei Betriebssy
stemen und anderen Echtzeit-Gerät-Steuerungseinrichtungen,
werden Warteschlangen zum Puffern bzw. Zwischenspeichern
von Ausgangsdaten und Eingangsdaten verwendet. Bei einer
typischen FC-Steuerungseinrichtung werden ankommende Rahmen
durch die FC-Schnittstellensteuerungseinrichtung von der
Sende/Empfänger-Komponente des FC-Knotens empfangen, der
die FC-Schnittstellensteuerungseinrichtung enthält, und
werden in eine Eingangs-Zuerst-Hinein-Zuerst-Hinaus-
("FIFO"; FIFO = first-in-first-out) Warteschlange in der
FC-Schnittstellensteuerungseinrichtung plaziert.
FC-Rahmen umfassen FC-Datenrahmen und FC-Verbindungssteue
rungsrahmen. Ein Typ eines FC-Verbindungssteuerungsrahmens
ist ein Quittierungs- ("ACK"; ACK = acknowledgement) Rah
men. Ein FC-Knoten sendet ACK-Rahmen an entfernte Knoten,
von denen der FC-Knoten FC-Datenrahmen empfangen hat, um
den Empfang der FC-Datenrahmen zu quittieren. FC-Knoten
verwenden eine Ende-Zu-Ende-("EE")Kreditverwaltungsstra
tegie, bei der ein FC-Knoten vor dem Übertragen von FC-Rah
men zu einem entfernten Knoten Kredite erhalten muß. Zusätzlich
zu der Quittierung des Empfangs eines FC-Rahmens
werden ACK-Rahmen verwendet, um Kredite zu einem entfernten
Knoten zu übertragen, um zu ermöglichen, daß der entfernte
Knoten zusätzliche Rahmen zu einem FC-Knoten sendet. ACK-
Rahmen werden ebenfalls für eine Anzahl von zusätzlichen
Funktionen verwendet, die über den Schutzbereich der vor
liegenden Anmeldung hinausgehen.
Da bei typischen FC-Schnittstellensteuerungseinrichtungs
implementierungen eine einzige Eingangs-FIFO-Warteschlange
zum Einreihen von empfangenen FC-Rahmen verwendet wird,
sind FC-Datenrahmen und ACK-Rahmen üblicherweise in der
Eingangs-FIFO-Warteschlange verschachtelt. Die FC-Datenrah
men sind im allgemeinen viel größer als ACK-Rahmen und er
fordern eine aufwendigere Verarbeitung als ACK-Rahmen durch
sowohl die FC-Schnittstellensteuerungseinrichtung als auch
den Hauptprozessor in einem FC-Knoten. Die Verarbeitung von
eingereihten ACK-Rahmen kann zeitweise blockiert sein, wenn
den ACK-Rahmen in der Eingangs-FIFO-Warteschlange FC-Daten
rahmen vorangehen. Wenn die Verarbeitung von ACK-Rahmen,
die in die Eingangs-FIFO-Warteschlange eingereiht sind,
zeitweise blockiert ist, schlägt es für den FC-Knoten fehl,
daß derselbe Kredite von entfernten Knoten auf eine recht
zeitige Art und Weise erhält, woraus sich ein Blockieren
der Übertragung von abgehenden FC-Rahmen von dem FC-Knoten
zu entfernten Knoten ergibt. In bestimmten Fällen können
sich Verklemmungszustände ergeben, wenn die Verarbeitung
von ankommenden ACK-Rahmen durch zwei miteinander kommuni
zierende FC-Knoten blockiert ist. Solche ACK-Rahmenverar
beitungsblockierungen können die Zwischen-Rahmen-Lücke auf
der FC-Verbindung erhöhen, die Wahrscheinlichkeit für EE-
Kreditzeitüberschreitungen erhöhen, die Bandbreiteverfüg
barkeit der FC-Verbindung verringern, die I/O-Latenz erhö
hen, zusätzliche Leistungsfähigkeitsprobleme bewirken und
die Anzahl von Schleifenentscheidungen erhöhen, die durch
einen FC-Knoten während I/O-Transaktionen durchgeführt wer
den. Aus diesen Gründen haben Aufbauer, Entwickler und Her
steller von FC-Schnittstellensteuerungseinrichtungen sowie
die Verwender von FC-basierten Netzwerk- und Speichersyste
men eine Notwendigkeit für eine optimalere, nicht blockie
rende Verarbeitung von FC-Datenrahmen und ACK-Rahmen durch
FC-Schnittstellensteuerungseinrichtungen erkannt.
Die Aufgabe der vorliegenden Erfindung besteht darin, ein
Verfahren zum Verarbeiten von ankommenden Datenrahmen und
Quittierungsrahmen in einer Faserkanalschnittstellensteue
rungseinrichtung sowie eine Faserkanalschnittstellensteue
rungseinrichtung selbst zu schaffen, so daß die Übertragung
von Daten effektiver ist.
Diese Aufgabe wird durch ein Verfahren gemäß Anspruch 1 und
eine Faserkanalschnittstellensteuerungseinrichtung gemäß
Anspruch 11 gelöst.
Die vorliegende Erfindung schafft ein Verfahren und eine
FC-Schnittstellensteuerungseinrichtungsimplementierung, die
getrennte FIFO-Warteschlangen für Verwindungssteuerungsrah
men und FC-Datenrahmen verwendet, um zu verhindern, daß FC-
Datenrahmen, die vor ACK-Rahmen eingereiht sind, die ACK-
Rahmenverarbeitung blockieren. Bei einem Ausführungsbei
spiel der vorliegenden Erfindung umfaßt eine Schnittstel
lensteuerungseinrichtung eine Eingangs-FC-Datenrahmen-FIFO-
Warteschlange und eine Eingangs-Verbindungssteuerungs-rah
menwarteschlange auf. Folglich werden ankommende FC-Daten
rahmen getrennt von ankommenden ACK-Rahmen in eine Warte
schlange ein- bzw. angereiht. Die Funktionalität, die in
einer Eingangsdatenverwalterkomponente von herkömmlichen
FC-Schnittstellensteuerungseinrichtungen untergebracht ist,
wird bei FC-Schnittstellensteuerungseinrichtungen, die ein
Ausführungsbeispiel der vorliegenden Erfindung darstellen,
an eine Ausgangssequenzverwalterkomponente und eine Ein
gangsrahmenleiteinrichtungskomponente übergeben, was die
Verarbeitung von ACK-Rahmen vereinfacht und rationalisiert.
Die vorliegende Erfindung reduziert folglich die Latenz
bzw. Verzögerung beim Konvertieren von ACK-Rahmen in Kre
dite, verhindert, daß eine Blockierung bei der Verarbeitung
von ankommenden FC-Datenrahmen in der FC-Schnittstel
lensteuerungseinrichtung die Verarbeitung von ankommenden
ACK-Rahmen und die Umwandlung von ankommenden ACK-Rahmen in
Kredite blockiert, trennt die Verarbeitung von ankommenden
und abgehenden Rahmen in der Schnittstellensteuerungsein
richtung vollständiger und erhöht die Effizienz der Aus
gangsrahmenverarbeitung und der Übertragung durch die FC-
Schnittstellensteuerungseinrichtung. Dies reduziert wie
derum die Zwischenrahmenlücke auf der FC-Verbindung, die
der FC-Schnittstellensteuerungseinrichtung zugeordnet ist,
verringert die Wahrscheinlichkeit für EE-Kreditzeitüber
schreitungen, erhöht die Bandbreiteverfügbarkeit der FC-
Verbindung, verringert die I/O-Latenz, erhöht die allge
meine Leistungsfähigkeit und verringert die Anzahl von
Schleifenentscheidungen, die durch einen FC-Knoten in einer
FC-Entscheidungsschleifentopologie während I/O-Operationen
durchgeführt werden.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung
werden nachfolgend bezugnehmend auf die beiliegenden Zeich
nungen näher erläutert. Es zeigen:
Fig. 1 eine einfache Hierarchie, durch die Daten für
eine Übertragung durch ein FC-Netzwerk zeitmäßig
organisiert sind;
Fig. 2 den konzeptionellen Inhalt eines FC-Rahmens;
Fig. 3 den Strukturentwurf eines ACK-Rahmens;
Fig. 4A und 4B eine verallgemeinerte Sequenz von FC-Rah
men, die zwischen einem Initiatorknoten und einem
Zielknoten während einer Lese-I/O-Operation bzw.
einer Schreib-I/O-Operation ausgetauscht werden;
Fig. 5A-C ACK-Rahmen, die mit FC-Datenrahmen verschachtelt
sind;
Fig. 6 eine typische FC-Schnittstellensteuerungseinrich
tung, die bei einem typischen FC/PCI-Host-Adapter
umfaßt ist;
Fig. 7 ein Blockdiagramm einer typischen FC-Schnitt
stellensteuerungseinrichtung und der speicherba
sierten Datenstrukturschnittstelle zwischen der
typischen FC-Schnittstellensteuerungseinrichtung
und einem Host;
Fig. 8 eine Eingangs-FIFO-Rahmensicherung;
Fig. 9 ein Flußdiagramm für den Eingangsdatenverwalter;
Fig. 10 ein Flußdiagramm für den Ausgangssequenzverwal
ter;
Fig. 11 ein Blockdiagramm einer FC-Schnittstellensteue
rungseinrichtung, die ein Ausführungsbeispiel der
vorliegenden Erfindung darstellt;
Fig. 12 ein Flußdiagramm für den Eingangsdatenverwalter
bei einem Ausführungsbeispiel der vorliegenden
Erfindung; und
Fig. 13 ein Flußdiagramm für den Ausgangsequenzverwalter
bei einem Ausführungsbeispiel der vorliegenden
Erfindung.
Die vorliegende Erfindung wird im folgenden in vier Teilab
schnitten beschrieben werden. Die ersten drei Teilab
schnitte liefern Details über den FC, das FC-Protokoll, die
FC-Schnittstellensteuerungseinrichtungsarchitektur und Pro
bleme, die dem Einreihen von sowohl FC-Datenrahmen als auch
ACK-Rahmen in einer einzigen FIFO-Warteschlange in einer
FC-Schnittstellensteuerungseinrichtung zugeordnet sind. Der
vierte Teilabschnitt liefert eine Beschreibung der vorlie
genden Erfindung.
Der Faserkanal ("FC" = Fibre Channel) wird in einer Anzahl
von Dokumenten des ANSI-Standards definiert und beschrie
ben, die die folgenden einschließen: (1) Fibre Channel Phy
sical 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
ständig überarbeitet. Weitere Standarddokumente der Faser
kanalsysteminitiative ("FCSI" = Fibre Channel System In
itiative) schließen die folgenden ein: (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 können auf der Internetseite im weltweiten
Netz unter der folgenden Adresse gefunden werden:
"http://www.fibrechannel.com"
"http://www.fibrechannel.com"
Mit der nachfolgenden Beschreibung des FC wird beabsich
tigt, ausgewählte Informationen derjenigen Informationen,
die in diesen Dokumenten enthalten sind, einzuführen und
zusammenzufassen, um die Beschreibung der vorliegenden Er
findung zu vereinfachen. Wenn eine detailliertere Diskus
sion irgendeiner der in der nachfolgenden Beschreibung ein
gebrachten Punkte erwünscht ist, können die oben genannten
Dokumente herangezogen werden.
In der folgenden Erörterung wird "FC" als ein Adjektiv ver
wendet, um allgemein auf die Faserkanalarchitektur und das
Faserkanalprotokoll Bezug zu nehmen, und wird als ein Sub
stantiv verwendet, um auf ein Beispiel eines Faserkanalkom
munikationsmedium Bezug zu nehmen. Folglich kann ein FC-
(Architektur und Protokoll)Tor eine FC-(Architektur und
Protokoll)Sequenz von dem FC (Kommunikationsmedium) emp
fangen.
Das FC-Protokoll ist eine Architektur und ein Protokoll für
eine Datenkommunikation zwischen FC-Knoten, im allgemeinen
Computern, Workstations, Peripheriegeräten und Arrays und
Ansammlungen von Peripheriegeräten, wie z. B. Laufwerkar
rays, die durch eines oder mehrere Kommunikationsmedien
miteinander verbunden sind. Kommunikationsmedien umfassen
abgeschirmte verdrillte Doppelleitungsverbindungen, Ko
axialkabel und optische Fasern. Ein FC-Knoten ist mit einem
Kommunikationsmedium über zumindest ein FC-Tor und eine FC-
Verbindung verbunden. Ein FC-Tor ist ein FC-Host-Adapter
oder eine FC-Steuerungseinrichtung, der bzw. die zusammen
mit den Host-Verarbeitungskomponenten des FC-Knotens ein
Register und eine Hauptspeicherschnittstelle gemeinschaft
lich verwendet und die unteren Ebenen des FC-Protokolls in
Hardware und Firmware implementiert. Das FC-Host tauscht
allgemein Daten- und Steuerungsinformationen mit dem FC-Tor
unter Verwendung von gemeinschaftlich verwendeten Daten
strukturen in einem gemeinschaftlich verwendeten Speicher
und unter Verwendung von Steuerungsregistern in dem FC-Tor
aus. Das FC-Tor umfaßt serielle Sende- und Empfänger-Kompo
nenten, die über eine FC-Verbindung, die elektrische Drähte
oder optische Stränge umfaßt, mit einem Kommunikationsme
dium gekoppelt sind.
Der FC ist ein serielles Kommunikationsmedium. Daten werden
ein Bit nach dem anderen mit extrem hohen Übertragungsraten
übertragen. Fig. 1 stellt eine sehr einfache Hierarchie
dar, durch die Daten zeitmäßig für eine Übertragung durch
ein FC-Netzwerk organisiert werden. Auf der untersten kon
zeptionellen Ebene können die Daten als ein Strom von Da
tenbits 100 betrachtet werden. Die kleinste Dateneinheit
oder Gruppierung von Daten, die durch ein FC-Netzwerk un
terstützt wird, ist ein 10-Bit-Zeichen, das durch das FC-
Tor als ein 8-Bit-Zeichen decodiert wird. FC-Grundelemente
bestehen allgemein aus 10-Bit-Zeichen oder -Bytes. Bestimmte
FC-Grundelemente werden verwendet, um Steuerungsin
formationen zu übertragen, die zwischen FC-Toren ausge
tauscht werden. Die nächste Ebene der Datenorganisation,
eine fundamentale Ebene bezüglich des FC-Protokolls, ist
ein Rahmen. Sieben Rahmen 102-108 sind in Fig. 1 gezeigt.
Ein Rahmen kann abhängig von der Natur der Daten, die in
dem Rahmen umfaßt sind, aus zwischen 36 und 2.148 Bytes von
Daten bestehen. Der erste FC-Rahmen entspricht beispiels
weise den Datenbits des Stromes von Datenbits 100, die
durch die horizontale Klammer 101 umfaßt sind. Das FC-Pro
tokoll spezifiziert eine nächsthöhere organisatorische Ebe
ne, die als die Sequenz bezeichnet wird. Eine erste Sequenz
110 und ein Abschnitt einer zweiten Sequenz 112 sind in
Fig. 1 dargestellt. Die erste Sequenz 101 besteht aus den
Rahmen Eins bis Vier 102-105. Die zweite Sequenz 112 be
steht aus den Rahmen Fünf bis Sieben 106-108 und zusätz
lichen Rahmen, die nicht gezeigt sind. Das FC-Protokoll
spezifiziert eine dritte organisatorische Ebene, die als
die Vermittlung bzw. der Austausch bezeichnet wird. Ein
Abschnitt einer Vermittlung 114 ist in Fig. 1 gezeigt. Die
se Vermittlung 114 besteht zumindest aus der ersten Sequenz
110 und der zweiten Sequenz 112, die in Fig. 1 gezeigt
sind. Die Vermittlung kann alternativ als aus den Rahmen
Eins bis Sieben 102-108 und jeglichen zusätzlichen Rahmen,
die in der zweiten Sequenz 112 und in jeder zusätzlichen
Sequenz, die die Vermittlung 114 bilden, enthalten sind,
betrachtet werden.
Der FC ist ein Datenübertragungsmedium mit Vollduplexbe
trieb bzw. mit beidseitiger Datenübermittlung. Rahmen und
Sequenzen können gleichzeitig in beide Richtungen zwischen
einem Urheber oder Initiator und einem Antwortenden oder
Ziel übertragen werden. Eine Übermittlung umfaßt alle Se
quenzen und Rahmen innerhalb der Sequenzen, die zwischen
einem Initiator oder Urheber und einem Antwortenden oder
Ziel während einer einzelnen I/O-Transaktion, wie z. B.
einer Lese-I/O-Transaktion oder einer Schreib-I/O-Trans
aktion, ausgetauscht werden. Das FC-Protokoll ist entworfen,
um Daten gemäß einer beliebigen Anzahl von höherstufi
gen Datenaustauschprotokollen, einschließlich des Internet
protokolls ("IP"), des Schnittstellenprotokolls für Klein
computersysteme ("SCSI"), der Hochleistungsfähigkeitsparal
lelschnittstelle ("HIPPI") und der intelligenten Periphe
rieschnittstelle ("IPI"), zu übertragen. Die Standardanpas
sung des SCSI-Protokolls auf einen Faserkanal wird im fol
genden in diesem Dokument als "FCP" bezeichnet. Folglich
kann der FC ein Kommunikationsparadigma vom Master-Slave-
Typ, das für den SCSI-Bus und andere Peripherieverbindungs
busse charakteristisch ist, sowie die relativ offenen und
unstrukturierten Kommunikationsprotokolle, wie z. B. dieje
nigen, die verwendet werden, um das Internet zu implemen
tieren, unterstützen. Die SCSI-Busarchitekturkonzepte eines
Initiators und Zieles werden in dem wie im vorhergehenden
erwähnt entworfenen FCP weitergeführt, um SCSI-Befehle und
Datenvermittlungen für eine Übertragung durch den FC einzu
kapseln. Die Erörterung im folgenden wird sich lediglich
auf das FCP-Protokoll auf dem Faserkanal und das SCSI-Pro
tokoll beziehen, das im vorhergehenden erörtert wurde.
Fig. 2 stellt den konzeptionellen Inhalt eines FC-Rahmens
dar. Der Faserkanalrahmen 202 umfaßt fünf Abschnitte 204,
206, 208, 210 und 212 hoher Ebene auf. Der erste Abschnitt
hoher Ebene, der als der Rahmenbeginnbegrenzer bzw. -deli
minator 204 (SOF; SOF = start-of-frame delimiter) bezeich
net wird, umfaßt vier Bytes, die den Anfang des Rahmens
markieren. Der nächste Abschnitt hoher Ebene, der als Rah
menanfangsblock 206 bezeichnet wird, umfaßt 24 Bytes, die
Adressierungsinformationen, Sequenzinformationen, Aus
tauschinformationen und verschiedene Steuerungsflags ent
halten. Eine detailliertere Ansicht des Rahmenanfangsblocks
214 ist in Fig. 2 erweitert aus dem FC-Rahmen 202 gezeigt.
Die Ziel-ID 216 ist eine 24-Bit-FC-Adresse, die das Zieltor
für den Rahmen anzeigt. Die Quell-ID 218 ist eine 24-Bit-
Adresse, die das Tor anzeigt, das den Rahmen überträgt. Die
Urheber-ID oder OX_ID 220 und die Antwortender-ID 222 oder
IX_ID bilden zusammen eine 32-Bit-Vermittlung-ID, die die
Vermittlung identifiziert, zu der der Rahmen gehört. Die
Sequenz-ID 224 identifiziert die Sequenz, zu der der Rahmen
gehört.
Der nächste Abschnitt 208 hoher Ebene, der als der Daten
nutzabschnitt bzw. Nutzdatenabschnitt bezeichnet wird, ent
hält die tatsächlichen Daten, die in den FCP-Rahmen gepackt
sind. Der Datennutzabschnitt kann gemäß vier Basistypen von
Datennutzabschnittstrukturentwürfen 226-229 formatiert
sein. Der erste dieser Strukturentwürfe 226, der als der
FCP_CMND bezeichnet wird, wird verwendet, um einen SCSI-
Befehl von einem Initiator zu einem Ziel zu senden. Das
FCP_LUN-Feld 228 umfaßt eine 8-Byte-Adresse, die einen spe
ziellen SCSI-Adapter, ein Zielgerät, das diesem SCSI-Adap
ter zugeordnet ist, und eine logische Einheitennummer, die
einem physischen Gerät entspricht, das dem spezifizierten
Ziel-SCSI-Gerät zugeordnet ist, spezifiziert. Ein SCSI-Be
fehl ist in dem 16-Byte-Feld FCP_CDB 230 enthalten. Der
zweite Typ des Datennutzabschnittformates 227, der in Fig.
2 gezeigt ist, wird als der FCP_XFER_RDY-Strukturentwurf
bezeichnet. Dieses Datennutzabschnittformat wird verwendet,
um einen Fortfahrbefehl von dem Ziel an den Initiator zu
übertragen, wenn das Ziel vorbereitet ist, um mit dem Emp
fang oder dem Akzeptieren von Daten zu beginnen. Der dritte
Typ eines Datennutzabschnittformates 228, der in Fig. 2
gezeigt ist, ist das FCP_DATA-Format, das verwendet wird,
um die tatsächlichen Daten, die als ein Ergebnis der Aus
führung einer I/O-Transaktion gelesen oder geschrieben wer
den, zu übertragen. Der letzte Datennutzabschnittstruktur
entwurf 229, der in Fig. 2 gezeigt ist, wird als der
FCP_RSP-Strukturentwurf bezeichnet, und wird verwendet, um
auf einen Abschluß der I/O-Transaktion hin ein SCSI-Status
byte 234 sowie andere FCP-Statusinformationen von dem Ziel
zurück zu dem Initiator zu übertragen. Bei der folgenden
Erörterung wird ein FC-Rahmen, der einen FCP_CMND-,
FCP_XFER_RDY-, FCP_DATA- oder FCP_RSP-Datennutzabschnitt
enthält, als ein FCP_CMND-Rahmen, ein FCP_XFER_RDY-Rahmen,
ein FCP_DATA-Rahmen oder ein FCP_RSP-Rahmen bezeichnet wer
den.
Das FC-Protokoll unterstützt zwei Haupttypen von FC-Rahmen.
Der erste Typ ist der FC-Datenrahmen. FC-Datenrahmen umfas
sen FC-Verbindung Rahmen, FC-Gerät Rahmen und FC-Vi
deo_Rahmen. FC-Datenrahmen sind alle dadurch gekennzeich
net, daß dieselben Datennutzfelder (208 in Fig. 2) aufwei
sen, die Daten enthalten. Folglich sind die Rahmen
FCP_CMND, FCP_XFER_RDY, FCP_DATA und FCP_RSP, die im vor
hergehenden beschrieben wurden, Beispiele für FC-Datenrah
men.
Ein zweiter Typ von FC-Rahmen ist der Verbindungssteue
rungsrahmen. Verbindungssteuerungsrahmen umfassen ACK-Rah
men, Verbindung_Antwort-Rahmen und Verbindung_Befehl-Rah
men. Verbindungssteuerungsrahmen sind dadurch gekennzeich
net, daß dieselben kein Datennutzfeld aufweisen. Verbin
dung_Antwort-Rahmen werden im allgemeinen gesendet, um die
nicht erfolgreiche Zuführung eines oder mehrerer FC-Daten
rahmen anzuzeigen. Verbindungssteuerungsrahmen werden für
niedrigstufige Funktionen verwendet, wie z. B. Neueinstell-
bzw. Rücksetzfunktionen. Wie es im vorhergehenden beschrie
ben wurde, werden ACK-Rahmen unter anderem dazu verwendet,
um den erfolgreichen Empfang von FC-Datenrahmen zu quittie
ren, sowie um Kredite an einen entfernten Knoten zu über
tragen, um es zu ermöglichen, daß der entfernte Knoten zu
sätzliche FC-Datenrahmen sendet.
Fig. 3 zeigt den Strukturentwurf eines ACK-Rahmens. In Fig.
3 sind die Felder eines ACK-Rahmens in Byte-Reihenfolge
dargestellt. Die unterste Zeile 403 in Fig. 3 zeigt die
Anzahl von Bytes in dem Feld an, während die obere Zeile
306 Wörtergrenzen und für bestimmte Felder eine Bitnumerie
rung in dem Wort anzeigt. Felder, die zuvor in Fig. 2 ge
zeigt wurden, werden mit dem selben Bezugszeichen etiket
tiert, das bei Fig. 2 verwendet wurde. FC-Verbindungssteue
rungsrahmen unterscheiden sich von FC-Datenrahmen durch den
Inhalt vier hohe Bits des R_CTL-Feldes 302. Wenn diese vier
Bits den binären Wert "1100" enthalten, ist der Rahmen ein
Verbindungssteuerungsrahmen; andernfalls ist der Rahmen ein
FC-Datenrahmen. Die nächstniedrigeren vier Bits des F_CTL-
Feldes 308 zeigen den Typ des Verbindungssteuerungsrahmens
an. Der FC unterstützt drei unterschiedliche Typen von ACK-
Rahmen: (1) ACK_1, eine Quittierung eines einzelnen FC-Da
tenrahmens; (2) ACK_N, eine Quittierung von n FC-Rahmen;
und (3) ACK_0, eine Quittierung aller FC-Datenrahmen in ei
ner FC-Sequenz. Die vier zweithöchsten Bits des R_CTL-Fel
des 308 weisen für ACK_0- und ACK_N-Typ-ACK-Rahmen den bi
nären Wert "0001" und für ACK_1-Typ-ACK-Rahmen den binären
Wert "0000" auf. Das D_ID-Feld 216 identifiziert die Quelle
des FC-Datenrahmens oder der FC-Datenrahmen, für den bzw.
die der ACK-Rahmen eine Quittierung ist, wobei das S_ID-
Feld 218 den Knoten identifiziert, der den ACK-Rahmen sen
det. Das SEQ_ID-Feld 224 identifiziert die Sequenz, die den
FC-Datenrahmen umfaßt, der gerade quittiert wird, wobei das
SEQ_CNT-Feld 312 den FC-Datenrahmen in der Sequenz mit der
niedrigsten Nummer anzeigt, für den der ACK-Rahmen eine
Quittierung ist. Das PARAMETER-Feld 214 enthält ein H-Bit
314, das anzeigt, ob Quittierungen für alle zuvor übertra
genen FC-Datenrahmen gesendet worden sind oder nicht, oder
in anderen Worten ausgedrückt, ob die FC-Datenrahmenzufuhr
bis zu dem Punkt in der FC-Sequenz, der durch den höchst
rangigen FC-Datenrahmen besetzt ist, für den der ACK-Rahmen
als Quittierung dient, erfolgreich war, und die untersten
16 Bits des PARAMETER-Feldes 214 umfassen ein N-Feld 316,
das die Anzahl von FC-Datenrahmen, die durch den ACK-Rahmen
quittiert werden, oder für ACK_0-Typ-ACK-Rahmen den Wert
"0" enthält. Für ACK_1-Typ-ACK-Rahmen ist der Wert des N-
Feldes 316 "1" und für ACK_N-Typ-ACK-Rahmen ist der Wert n.
Fig. 4A und 4B stellen eine verallgemeinerte Sequenz von
FC-Rahmen dar, die zwischen einem Initiatorknoten und einem
Zielknoten während einer Lese-I/O-Operation bzw. einer
Schreib-I/O-Operation ausgetauscht werden. In beiden Figu
ren sind die FC-Rahmen als Rechtecke, wie z. B. der FC-Rahmen
402, angezeigt, während Pfeile, wie z. B. der Pfeil
404, die Richtung anzeigen, in die der FC-Rahmen gesendet
wird. Pfeile, die nach rechts zeigen, wie z. B. der Pfeil
404, zeigen an, daß ein FC-Rahmen von einem Initiatorknoten
zu einem Zielknoten übertragen wird, während Pfeile, die
nach links zeigen, anzeigen, daß ein FC-Rahmen von einem
Zielknoten zu einem Initiatorknoten übertragen wird. Die
Sequenz von FC-Rahmen in beiden Figuren schreiten in zeit
licher Reihenfolge von einem Anfangs-FC-Rahmen an dem obe
ren Ende der Figuren zu einem End-FC-Rahmen an dem unteren
Ende der Figuren fort.
Eine Lese-I/O-Operation wird eingeleitet, wenn ein Initia
torknoten eine Anfangs-FC-Sequenz mit einem FCP_CMND-Rahmen
402 durch den FC zu dem Zielknoten sendet. Nachdem der
Zielknoten den FCP_CMND-Rahmen empfangen und sich derselbe
auf die Leseoperation vorbereitet hat, kann der Zielknoten
eine zweite FC-Sequenz mit einem FCP_XFER_RDY-Rahmen 406
zurück zu dem Initiatorknoten senden, um anzuzeigen, daß
die Datenübertragung nun fortschreiten kann. Dieses Senden
eines FCP_XFER_RDY-Rahmens durch einen Zielknoten ist in
dem Fall einer Lese-I/O-Operation wahlfrei bzw. optional.
Der Zielknoten liest daraufhin Daten von einem physischen
Gerät und überträgt diese Daten als eine Anzahl von
FCP_DATA-Rahmen 408-411, die zusammen eine dritte Sequenz
der Vermittlung bilden, die der I/O-Lesetransaktion ent
spricht, durch den FC zu dem Initiatorknoten. Wenn alle
Daten übertragen worden sind, packt der Zielknoten ein Sta
tusbyte in einen FCP_RSP-Rahmen 412 und überträgt den
FCP_RSP-Rahmen durch den FC zurück zu dem Initiatorknoten
durch den FC. Dies schließt die Lese-I/O-Operation ab.
Fig. 4B zeigt auf eine ähnliche Art und Weise wie Fig. 4A
ein Beispiel für FC-Rahmen, die während einer Schreib-I/O-
Transaktion zwischen einem Initiatorknoten und einem Ziel
knoten ausgetauscht werden. Fig. 4B unterscheidet sich von
Fig. 4A lediglich durch die Tatsache, daß während einer
Schreib-I/O-Operation die FCP_DATA-Rahmen über den FC von
dem Initiatorknoten zu dem Zielknoten übertragen werden,
und daß der FCP_XFER_RDY-FC-Rahmen 414 nicht wahlweise von
dem Zielknoten zu dem Initiatorknoten gesendet wird, wie
dies bei der Lese-I/O-Operation der Fall ist, sondern daß
dies statt dessen zwangsweise geschieht.
Fig. 5A-C stellen ACK-Rahmen dar, die mit FC-Datenrahmen
während eines FC-Datenrahmenaustauschs bzw. einer FC-Daten
rahmenvermittlung zwischen zwei Knoten verschachtelt sind.
Fig. 5A-C verwenden die selben Darstellungskonventionen wie
diejenigen, die bei Fig. 4A und B verwendet wurden. Da der
FC ein Kommunikationsmedium mit Vollduplexbetrieb ist kön
nen FC-Sequenzen durch einen FC-Knoten gleichzeitig über
tragen und empfangen werden. Darüber hinaus können sogar in
einer einzelnen FC-Sequenz FC-Datenrahmen in beiden Rich
tungen zwischen einem Initiatorknoten und einem Zielknoten
übertragen werden. In Fig. 5A-C ist kein Versuch unternom
men worden, die FC-Datenrahmen speziellen Sequenzen oder
höherstufigen Protokolloperationen zuzuweisen. Es wird an
genommen, daß die Knoten A und B in Fig. 5A-C im Volldu
plexmodus arbeiten und folglich FC-Sequenzen gleichzeitig
empfangen und übertragen können.
Fig. 5A stellt die Verwendung von ACK_1-Typ-ACK-Rahmen dar.
In Fig. 5A sendet der Knoten B einen FC-Datenrahmen 502 zu
dem Knoten A, wobei der Knoten A mit einem ACK-Rahmen 504
antwortet, der den FC-Datenrahmen 502 quittiert. Wie es in
Fig. 5A ersichtlich ist, wird jeder FC-Datenrahmen spezi
fisch durch einen ACK-Rahmen quittiert, der in der von der
Richtung des FC-Datenrahmens entgegengesetzten Richtung
übertragen wird. Sobald der Knoten so viele FC-Datenrahmen
zu dem Knoten B übertragen hat, wie der Knoten A Kredite
dafür hat, kann der Knoten A keinen weiteren FC-Datenrahmen
zu dem Knoten B übertragen, bis der Knoten A einen ACK-Rah
men empfängt, der einem der übertragenen FC-Datenrahmen
entspricht, und folglich wieder einen Kredit zum Übertragen
von FC-Rahmen zu dem Knoten B hat. ACK_1-ACK-Rahmen quittieren
jeweils einen einzelnen FC-Datenrahmen und übertra
gen einen einzelnen Kredit zu dem empfangenden FC-Knoten.
Fig. 5B stellt die Verwendung von ACK_N-Typ-ACK-Rahmen dar.
In Fig. 5B quittiert jeder ACK_N-Typ-ACK-Rahmen zwei FC-
Datenrahmen. Folglich sendet beispielsweise der Knoten A
einen ersten FC-Datenrahmen 510 und einen zweiten FC-Daten
rahmen 512 zu dem Knoten B und empfängt anschließend einen
einzigen ACK_N-Typ-ACK-Rahmen 514, um die erfolgreiche Zu
fuhr der FC-Datenrahmen 510 und 512 zu quittieren. Auf ähn
liche Art und Weise quittiert der Knoten A den Empfang von
FC-Datenrahmen 516 und 518 mit einem ACK_N-Typ-FC-Quittie
rungsrahmen 520. ACK_N-Typ-ACK-Rahmen übertragen n Kredite
an den empfangenden FC-Knoten.
Fig. 5C stellt die Verwendung von ACK_0-Typ-ACK-Rahmen dar.
ACK_0-Typ-ACK-Rahmen quittieren alle FC-Datenrahmen, die
als Teil einer FC-Sequenz übertragen wurden. Folglich sen
det in Fig. 5C der Knoten A einen FC-Datenrahmen 520 zu dem
Knoten B, wobei der Knoten B sechs FC-Datenrahmen 522-527
zu dem Knoten A als Teile einer einzigen FC-Sequenz sendet.
Schließlich empfängt der Knoten A einen ACK_0-Typ-ACK-Rah
men 528 von dem Knoten B, während der Knoten B einen ACK_0-
Typ-ACK-Rahmen 528 von dem Knoten A empfängt. Es wird dar
auf hingewiesen, daß der erste ACK-Rahmen 528 vor dem Emp
fang von einigen oder allen der FC-Datenrahmen 522-527, die
durch den Knoten A von dem Knoten B empfangen werden, durch
den Knoten A von dem Knoten B empfangen werden kann. Wie
ACK_N-Typ-ACK-Rahmen übertragen ACK_0-Typ-ACK-Rahmen meh
rere Kredite zu dem empfangenen FC-Knoten.
Beide Knoten, die in einer FC-Sequenzvermittlung involviert
sind, verwenden denselben Typ von ACK-Rahmen. Der Typ des
ACK-Rahmens, der durch die Knoten verwendet wird, kann wäh
rend einer Anmeldeprozedur bestimmt werden oder kann später
durch die Knoten ausgehandelt werden. Im allgemeinen ist
der ACK_1-Typ des FC-ACK-Knotens der verwendete Vorgabe-
ACK-Rahmen.
Fig. 6 zeigt eine typische FC-Schnittstellensteuerungsein
richtung ("FCIC"; FCIC Fibre Channel Interface Controller),
der in einem typischen FC/PCI-Host-Adapter untergebracht
ist. Der FC/PCI-Host-Adapter 602 umfaßt die FCIC 604, einen
Sende/Empfänger-Chip 606, eine FC-Verbindung 608, einen
Taktgeber 610, einen Backplane- bzw. Hintergrund-Verbinder
612 und wahlweise einen Hochfahr-Flash-ROM, einen lokalen
synchronen statischen Direktzugriffsspeicher ("RAM"; RAM =
random access memory) 616 und einen lokalen Speicher 618.
Der FC/PCI-Host-Adapter 602 kommuniziert mit dem Prozessor
oder den Prozessoren eines FC-Knotens über den Hintergrund-
Verbinder 612 und einen PCI-Bus in dem FC-Knoten, mit dem
der Prozessor oder die Prozessoren gekoppelt sind. Die FCIC
604 ist mit dem Hintergrund-Verbinder 612 über eine PCI-
Schnittstelle 620 gekoppelt. Die FCIC sendet und empfängt
FC-Rahmen zu und von einem FC über eine 10-Bit-Schnitt
stelle 622, die die FCIC mit dem Sende/Empfänger-Chip 606
koppelt, der wiederum mit dem FC über die FC-Verbindung 608
gekoppelt ist. Der Taktgeber 610 ist schnittstellenmäßig
mit verschiedenen FC-Host-Adapterkomponenten verbunden, um
Zeitgebungssignale zum Synchronisieren von Operationen der
Komponenten zu liefern. Der FC-Host-Adapter 602 kann hin
sichtlich der vorhergehenden Erörterung als ein FC-Tor die
nen, wobei der FC-Host-Adapter 602 zusammen mit dem Compu
tersystem, mit dem derselbe über den Hintergrund-Verbinder
602 gekoppelt ist, einen FC-Knoten bildet, der über die FC-
Verbindung 608 mit dem FC verbunden werden kann.
Fig. 7 zeigt eine Blockdiagrammbeschreibung einer typischen
FC-Schnittstellensteuerungseinrichtung und der Speicher-
basierten Datenstrukturschnittstelle zwischen einer typi
schen FC-Schnittstellensteuerungseinrichtung und einem
Host. Die speicherbasierten Datenstrukturen 702-705 werden
in einer Speicherkomponente des Hauptprozessors über den
PCI-Bus 709 für die FCIC zugreifbar gehalten. In Fig. 7 ist
die FCIC 707 derart dargestellt, daß dieselbe mit dem Hin
tergrundverbinder (412 in Fig. 4) und dem PCI-Bus 709 kombiniert
ist. Die FCIC ist mit einem Sende/Empfänger-Chip
(606 in Fig. 6) über einen 10 Bit/8 Bit-Decodierer und einen
8 Bit/10 Bit-Codierer schnittstellenmäßig verbunden, die zu
sammen eine 10-Bit-Schnittstelle aufweisen, mit der ein
Rahmenverwalter 711 schnittstellenmäßig verbunden ist. Der
Rahmenverwalter 711 empfängt FC-Rahmen für eine Übertragung
zu dem "Sende/Empfänger-Chip" (606 in Fig. 6) von der FCIC
über einen Ausgangs-FIFO-Verwalter 719 und einen Ausgangs
datenwegmultiplexer 718 und empfängt einen Strom von Daten
bits von dem "Sende/Empfänger-Chip" (606 in Fig. 6) über
die 10 Bit/8 Bit-Decodiererschnittstelle, verarbeitet die
empfangenen Datenbits in FC-Rahmen und speichert die FC-
Rahmen in einem Eingangs-FIFO-Verwalter 713. Sowohl der
Ausgangs- als auch der Eingangs-FIFO-Verwalter 713 und 719
puffern bzw. zwischenspeichern Rahmen, wodurch ein pipeli
nemäßiges Verarbeiten von abgehenden Rahmen bzw. eine CRC-
Überprüfung (CRC = cydlic redundancy check = zyklische Re
dundanzüberprüfung) von ankommenden Rahmen ermöglicht wird.
Das Wesentliche von sowohl dem Ausgangs- als auch dem Ein
gangs-FIFO-Verwalter 719 und 713 ist eine FIFO-Warte
schlange, wobei der Ausgangs- und der Eingangs-FIFO-Verwal
ter 719 und 713 ferner als die "Ausgangs-FIFO-Warte
schlange" bzw. "Eingangs-FIFO-Warteschlange" bezeichnet
werden.
Ein Verbindungssteuerungsrahmenerzeuger bzw. generator 715
modifiziert die FC-Rahmenanfangsblöcke der empfangenen FC-
Datenrahmen, um FC-Verbindungssteuerungsrahmen, und haupt
sächlich ACK-Rahmen, zu erzeugen, und plaziert die erzeug
ten FC-Verbindungssteuerungsrahmen in einer FC-Verbindungs
steuerungsrahmenliste 716 für eine Übertragung zu dem FC.
Der Ausgangsdatenwegmultiplexer 718 rückgewinnt abgehende
FC-Verbindungssteuerungsrahmen aus der FC-Verbindungssteue
rungsrahmenliste 716 und abgehende FC-Datenrahmen aus dem
Ausgangs-FIFO-Verwalter 719, um dieselben zu dem Rahmenver
walter 711 zu senden. Der Verbindungssteuerungsrahmengene
rator verwendet FC-Anfangsblöcke empfangener FC-Datenrah
men, um ACK-Rahmen zu erzeugen, die ansprechend auf erfolgreich
zugeführte und empfange FC-Datenrahmen gesendet wer
den. Der Verbindungssteuerungsrahmengenerator aktualisiert
die hohen 8-Bits des R_CTL-Feldes und das H- und N-Teilfeld
des Parameterfeldes und vertauscht das D_RD- und S_RD-Feld
eines empfangenen FC-Datenrahmens, um einen entsprechenden
ACK-Rahmen zu erzeugen.
Der Hauptprozessor des FC-Knotens steuert Informationen und
tauscht dieselben mit der FCIC aus, indem derselbe ver
schiedene Steuerregister 720 beschreibt und liest, und in
dem derselbe Daten in die speicherbasierten Datenstrukturen
702-705 plaziert und Daten aus denselben entfernt. Interne
Komponenten der FCIC 724-732 lesen und beschreiben die
Steuerregister 722, empfangen Daten von den Speicherba
sierten Datenstrukturen 702-705 und plazieren Daten in den
selben und tauschen FC-Rahmen über den Eingangs-FIFO-Ver
walter 713 und den Ausgangs-FIFO-Verwalter 719 mit dem Rah
menverwalter 511 aus.
Die Eingangsmeldungswarteschlange ("IMQ"; IMQ = inbound
message queue) 702 enthält Abschlußmeldungen, die den
Hauptprozessor über ankommende und abgehende Transaktions
informationen und Statusinformationen in Kenntnis setzen.
Die Einzelrahmenwarteschlange ("SFQ"; SFQ = single frame
queue) 703 enthält ankommende unbekannte oder nicht zuge
wiesene FC-Rahmen, die die FCIC 707 von dem Rahmenverwalter
711 empfängt und in die SFQ plaziert. Die SCSI-Vermitt
lungszustandstabelle ("SEST"; SEST = SCSI exchange state
table) 704 wird von der FCIC und dem Host gemeinschaftlich
verwendet und enthält SEST-Einträge, von denen jeder einer
gegenwärtigen bzw. aktuellen SCSI-Vermittlung (I/O-Opera
tion) entspricht. Die Vermittlungsanforderungswarteschlange
("ERQ"; ERQ = exchange request queue) 705 enthält I/O-An
forderungsblöcke ("IRBs"; IRB = I/O request block), die
I/O-Anforderungen darstellen, die durch das Host oder durch
entfernte FC-Knoten eingeleitet werden.
Der Abschlußmeldungsverwalter 725 verwaltet die IMQ und
liefert Warteschlangeneinträge zu dem Eingangsdatenverwal
ter 724, in den der Eingangsdatenverwalter die Abschlußmel
dungen plaziert. Der Einzelrahmenverwalter 726 verwaltet
die SFQ in dem Hauptspeicher und liefert die Einträge zu
der FC-Dienstkomponente 727, in die die FC-Komponentendien
ste ankommende Rahmen plazieren. Der Vermittlungsanforde
rungsverwalter 731 holt neue Einträge aus der REQ bzw. ruft
dieselben von dort ab und sendet dieselben zur Verarbeitung
zu dem SCSI-Vermittlungsverwalter SEM-OUT (SEM-OUT = SCSI
exchange manager-outbound = SCSI-Vermittlungsausgangs-ver
walter) 732. Der Eingangsdatenverwalter 724 informiert die
Eingangsrahmenprozessoren, d. h. den SCSI-Vermittlungsver
walter SEM-IN (SEM-IN = SCSI exchange manager-inbound =
SCSI-Vermittlungseingangsverwalter) 728 und die FC-Dienst
komponente 727 über die neuen Rahmen, und leitet die Rahmen
zu deren korrektem Ziel in dem Host. Ferner sendet der Ein
gangsdatenverwalter über die IMQ 702 Abschlußmeldungen zu
dem Host. Die FC-Dienstkomponente 727 verwaltet die FC-Rah
men, die der SEM-IN 728 nicht verwaltet. Die FC-Dienstkom
ponente plaziert die Rahmen in der SFQ 703. Der SEM-IN 728
verwaltet die Phasen einer SCSI-Vermittlung, die eine FC-
Sequenz empfangen. Der SEM-IN liest die SEST-Einträge über
den SEST-Verbindungshol- bzw. SEST-Verbindungsabrufverwal
ter 729 und sendet entweder die ankommenden Daten zu den
korrekten Host-Puffern oder sendet die Anforderung zu dem
SEM-OUT 732, um die nächsten Phasen einer FC-Sequenz zu
senden. Der SEST-Verbindungsabrufverwalter 729 ist für das
Lesen und Schreiben von SEST-Einträgen verantwortlich, ab
hängig von den Anforderungen von den Komponenten SEM-IN 728
und SEM-OUT 732. Der SEM-OUT 732 verwaltet die Phasen einer
SCSI-Vermittlung, die erfordern, daß eine FC-Sequenz gesen
det wird. Der SEM-OUT 732 liest die SEST-Einträge über den
SEST-Verbindungsabrufverwalter 729, baut die Anforderung
auf, um diese Sequenzen zu senden, und sendet die Anforde
rungen zu dem Ausgangssequenzverwalter 730. Der Ausgangsse
quenzverwalter ("OSM", OSM = outbound sequence manager) 730
verarbeitet die Anforderungen von dem SEM-OUT 732, um FC-
Sequenzen von dem Host zu senden, und rückgewinnt FC-
Rahmenanfangsblöcke und Nutzabschnitte von dem Host, um
dieselben zu dem entfernten Knoten zu senden. Der OSM seg
mentiert die Sequenz in FC-Rahmen von bis zu 2 Kbyte Größe
und reiht dieselben in den Ausgangs-FIFO-Verwalter 714 ein.
Da die typische FC-Schnittstellensteuerungseinrichtung eine
einzige Eingangs-FIFO-Warteschlange (713 in Fig. 7) verwen
det, sind FC-Datenrahmen in der Eingangs-FIFO-Warteschlange
üblicherweise mit ACK-Rahmen verschachtelt. Dies kann eine
zeitweise Verzögerung der ACK-Rahmenverarbeitung ergeben,
während zuvor eingereihte FC-Datenrahmen durch die FC-
Schnittstellensteuerungseinrichtung und den Hostprozessor
verarbeitet werden. Fig. 8 stellt eine Eingangs-FIFO-Rah
mensicherung dar. Fig. 8 zeigt die Eingangs-FIFO-Warte
schlangen 802 und 804 von zwei miteinander kommunizierenden
FC-Knoten A und B. Die FC-Rahmen werden von dem oberen Ende
der Eingangs-FIFO-Warteschlangen 806 und 808 für eine Ver
arbeitung durch die FC-Schnittstellensteuerungseinrichtun
gen des Knotens A und B entfernt und werden an dem unteren
Ende der Eingangs-FIFO-Warteschlangen 810 und 812 einge
reiht, wenn die ankommenden FC-Rahmen durch die Sen
de/Empfänger-Komponente des FC-Knotens empfangen und durch
den Rahmenverwalter (711 in Fig. 7) verarbeitet werden. In
der Eingangs-FIFO-Warteschlange 802 gehen vier FC-
Datenrahmen 814-817 einem ACK-Rahmen 818 in der Eingangs-
FIFO-Warteschlange 802 voraus. Folglich müssen die vier FC-
Datenrahmen 814-818 entnommen und durch den Eingangsdaten
verwalter (724 in Fig. 7) verarbeitet werden, bevor der
ACK-Rahmen 818 der Warteschlange entnommen und verarbeitet
werden kann. Eine ähnliche Situation existiert in der Ein
gangs-FIFO-Warteschlange 804 für den Knoten B. In beiden
Fällen stellt der ACK-Rahmen einen Kredit dar, der von dem
anderen FC-Knoten empfangen wird, und der, wenn derselbe
verarbeitet wird, ermöglicht, daß der empfangende FC-Knoten
einen oder mehrere zusätzliche FC-Datenrahmen zu dem FC-
Knoten übertragen kann, der den ACK-Rahmen sendete. Der
Kredit kann jedoch so lange nicht verarbeitet werden, und
zusätzliche FC-Datenrahmen können solange nicht übertragen
werden, bis alle zuvor eingereihte FC-Datenrahmen verarbei
tet sind. FC-Datenrahmen sind im allgemeinen viel länger
als ACK-Rahmen und erfordern eine aufwendigere Verarbeitung
durch den Eingangsdatenverwalter und schließlich durch den
Hauptprozessor. Eine Blockierung der ACK-Rahmenverarbeitung
durch eine überbelastete Verarbeitung von FC-Datenrahmen in
beiden Eingangs-FIFO-Warteschlangen kann einen Verklem
mungszustand hervorrufen, bei dem weder der Knoten A noch
der Knoten B Kredite zum Übertragen zusätzlicher FC-Daten
rahmen empfangen kann. Solche Verklemmungszustände werden
mit Zeitüberschreitungen und Neuübertragungen abgebrochener
FC-Sequenzen gelöst.
Eine anfängliche Erscheinung der Verzögerung bei der Verar
beitung von ACK-Rahmen aufgrund gegenwärtiger Implementie
rungen der FC-Controller bzw. die FC-Steuerungseinrichtung
mit einer einzigen Eingangs-FIFO-Schlange besteht aus einer
Verzögerung des Absendens von Krediten, die ermöglichen,
daß abgehende FC-Datenrahmen zu entfernten FC-Knoten über
tragen werden. Diese Verzögerung kann an sich und von
selbst erhebliche Leistungsfähigkeitsprobleme und I/O-La
tenzen bei den FC-Verbindungen, die den FC-Knoten zugeord
net sind, die solche FC-Schnittstellensteuerungseinrichtun
gen enthalten, und in dem FC im allgemeinen hervorrufen. Es
können sich jedoch viele zusätzliche Probleme ergeben. Ver
zögerungen der Übertragung von abgehenden FC-Rahmen können
beispielsweise die Hauptspeicherverfügbarkeit zum Speichern
von abgehenden Daten belasten, was unmittelbar eine Verrin
gerung der Anzahl von I/O-Transaktionen ergibt, die durch
einen FC-Knoten gleichzeitig verarbeitet werden können.
Verzögerungen des Übertragens von abgehenden FC-Rahmen kön
nen zu erhöhten Zeitintervallen zwischen abgehenden Rahmen
führen, was die Bandbreite für die Datenübertragung durch
eine FC-Verbindung effektiv reduziert. Wenn die Verzögerun
gen der Übertragung von abgehenden FC-Rahmen zunehmen,
nimmt die Wahrscheinlichkeit dafür zu, daß einem von beiden
oder beiden FC-Knoten, die in der Vermittlung einer FC-Sequenz
involviert sind, EE-Kreditzeitüberschreitungen wi
derfährt. Eine EE-Kreditzeitüberschreitung kann eine Neu
übertragung aller bereits übertragenen FC-Datenrahmen in
einer abgebrochenen FC-Sequenz ergeben. Dementsprechend
können bei FC-Entscheidungsschleifentopologien Verzögerun
gen bei der Verarbeitung von ACK-Rahmen, die Verzögerungen
der Übertragung von abgehenden FC-Rahmen hervorrufen, be
wirken, daß ein FC-Knoten wiederholt die Entscheidung für
die Steuerung der FC-Entscheidungsschleife beantragt, um
die Übertragung einer einzigen FC-Sequenz abzuschließen.
Fig. 9 ist ein Flußdiagramm für den Eingangsdatenverwalter.
Das Flußdiagramm von Fig. 9 soll kein umfassendes Flußdia
gramm für alle Eingangsdatenverwalteraufgaben sein, sondern
ist statt dessen auf die Verarbeitung von FC-Datenrahmen
und ACK-Rahmen gerichtet, die in der Eingangs-FIFO-Warte
schlange (713 in Fig. 7) eingereiht sind. In einem Schritt
902 bestimmt der Eingangsdatenverwalter, ob ein nächstes
Eingangs-FIFO-Warteschlangenereignis zu handhaben ist oder
nicht. Falls dies nicht der Fall ist, wartet der Eingangs
datenverwalter in einem Schritt 904 auf das nächste Ereig
nis. In einem Schritt 906 entnimmt der Eingangsdatenverwal
ter den zuletzt eingereihten FC-Rahmen aus der Eingangs-
FIFO-Warteschlange. In einem Schritt 908 bestimmt der Ein
gangsdatenverwalter, ob der entnommene FC-Rahmen ein ACK-
Rahmen ist oder nicht. Falls der entnommene FC-Rahmen kein
ACK-Rahmen ist, verarbeitet der Eingangsdatenverwalter in
einem Schritt 910 den entnommenen FC-Rahmen. Für FC-Daten
rahmen kann der Eingangsdatenverwalter Dateninformationen
aktualisieren, die den Zustand der FC-Sequenz beschreiben,
zu der der entnommene FC-Rahmen gehört, und kann eine Über
tragung aller oder eines Abschnitts des FC-Rahmens zu Spei
cherpuffern in dem Hauptspeicher einleiten. Das Verarbeiten
von Nicht-ACK-FC-Verbindungssteuerungsrahmen kann ferner
eine Aktualisierung von Zustandsinformationen sowie eine
Wechselwirkung bzw. Interaktion mit dem Ausgangssequenzver
walter (730 in Fig. 7) umfassen, so daß der Steuerungsef
fekt, der durch den FC-Verbindungssteuerungsrahmen dargestellt
wird, bezüglich der Übertragung von abgehenden FC-
Datenrahmen realisiert wird. In dem Fall, daß der entnom
mene FC-Rahmen ein ACK-Rahmen ist, wie es in dem Schritt
908 beschrieben wird, holt der Eingangsdatenverwalter in
einem Schritt 912 Kontextinformationen aus dem Ausgangsse
quenzverwalter, um die Gültigkeit des entnommenen ACK-Rah
mens zu bestimmen. Solche Informationen beziehen sich auf
den Zustand der FC-Sequenz, zu der der ACK-Rahmen gehört.
Falls der Eingangsdatenverwalter in einem Schritt 914 be
stimmt, daß der ACK-Rahmen gültig ist, sendet der Eingangs
datenverwalter in einem Schritt 916 abhängig von dem Typ
des ACK-Rahmens einen oder mehrere Kredite zu dem Ausgangs
sequenzverwalter, die es dem Ausgangssequenzverwalter er
möglichen, zusätzlichen FC-Datenrahmen zu dem entfernten
Knoten zu übertragen, der den ACK-Rahmen gesendet hat.
Falls der entnommene ACK-Rahmen im Kontext mit den Informa
tionen, die von dem Ausgangssequenzverwalter in dem Schritt
912 geholt wurden, nicht gültig ist, handhabt der Eingangs
datenverwalter in einem Schritt 918 die Ungültigkeit des
ACK-Rahmens, indem derselbe den ACK-Rahmen für eine Handha
bung durch das Host in die SFQ plaziert.
Fig. 10 ist ein Flußdiagramm für den Ausgangssequenzverwal
ter. Wie bei Fig. 9 behandelt das Flußdiagramm von Fig. 10
lediglich diejenigen Ausgangssequenzverwalteraufgaben und
Aktivitäten, die sich auf die Verarbeitung von abgehenden
FC-Datenrahmen und ACK-Rahmen beziehen. In einem Schritt
1002 bestimmt der Ausgangssequenzverwalter, ob ein Ereignis
zu handhaben ist oder nicht. Falls dies nicht der Fall ist,
wartet der Ausgangssequenzverwalter in einem Schritt 1004
so lange, bis ein nächstes Ereignis auftritt. In einem
Schritt 1006 bestimmt der Ausgangssequenzverwalter, ob das
zu handhabende Ereignis eine Kontextinformationsanforderung
ist, die auf einen empfangenen ACK-Rahmen von dem Eingangs
datenverwalter bezogen ist, und die in Fig. 9 in dem
Schritt 912 dargestellt ist. Falls dies der Fall ist,
greift der Ausgangssequenzverwalter in einem Schritt 1008
auf Kontextinformationen für die FC-Sequenz zu, zu der der
ACK-Rahmen gehört, und sendet die Informationen zu dem Ein
gangsdatenverwalter zurück. Andernfalls bestimmt der Aus
gangssequenzverwalter in einem Schritt 1010, ob das Ereig
nis ein Sendevorgang eines Kredits von dem Eingangsdaten
verwalter ist, der in Fig. 9 als Schritt 916 dargestellt
ist. Falls dies der Fall ist, aktualisiert der Ausgangsse
quenzverwalter in einem Schritt 1012 interne Zustandsinfor
mationen bezüglich des entfernten Knotens, der den ACK-Rah
men übertrug, der das Senden des Kredits durch den Ein
gangsdatenverwalter ergab. Andernfalls nimmt für die Zwecke
der vorliegenden Erörterung der Ausgangssequenzverwalter
an, daß das zu handhabende Ereignis der Aufbau eines FC-
Datenrahmens aus Daten ist, die in dem Hauptspeicher für
eine Übertragung zu einem entfernten Knoten verfügbar sind.
Zuerst überprüft der Ausgangssequenzverwalter in einem
Schritt 1014, um zu erkennen, ob der FC-Knoten einen Kredit
von dem entfernten Knoten, zu dem der FC-Datenrahmen gesen
det werden soll, erhalten hat oder nicht. Falls der FC-Kno
ten ausreichend Kredit empfangen hat, wie es in einem
Schritt 1016 bestimmt wird, bereitet der Ausgangssequenz
verwalter einen FC-Datenrahmen vor und reiht den vorberei
teten FC-Datenrahmen in einem Schritt 1018 in die Ausgangs-
FIFO-Warteschlange (719 in Fig. 7) ein. Es wird darauf hin
gewiesen, daß der Ausgangssequenzverwalter die Hauptab
schnitte des FC-Datenrahmens, wie z. B. den FC-Rahmenan
fangsblock und die Datennutzabschnitte, aufbaut, und daß
der Ausgangs-FIFO-Verwalter (719 in Fig. 7) und der Rahmen
verwalter (711 in Fig. 7) andere Abschnitte des abgehenden
FC-Rahmens erzeugen können. Falls nicht ausreichend Kredit
vorhanden ist, um den FC-Datenrahmen zu senden, handhabt
der Ausgangssequenzverwalter in einem Schritt 1020 die Kre
ditmangelsituation. Der Ausgangssequenzverwalter kann den
fehlgeschlagenen FC-Rahmenaufbau zeitlich protokollieren
oder auf andere Weise auf die Unmöglichkeit bzw. Unfähig
keit hinweisen, den FC-Datenrahmen zu senden, so daß, falls
der Kredit nicht innerhalb einer gewissen maximal erlaubten
Zeitdauer gesendet wird, eine EE-Kreditzeitüberschreitung
erzeugt wird. Eine zusätzliche Kreditmangelfehlerhandhabung
oder andere Typen der Kreditmangelhandhabung sind ebenfalls
möglich.
Wegen der Probleme, die sich aus der Verschachtelung von
FC-Datenrahmen und ACK-Rahmen in FIFO-Warteschlangen erge
ben, haben die Erfinder erkannt, daß das Vorsehen von ge
trennten FIFO-Warteschlangen für ankommende FC-Rahmen in
einer FC-Steuerungseinrichtungsimplementierung die Verar
beitung von FC-Datenrahmen von derjenigen von ACK-Rahmen
trennen und mögliche Verzögerungen und eine mögliche Bloc
kierung der ACK-Rahmenverarbeitung vermeiden kann. Fig. 11
zeigt ein Blockdiagramm einer FC-Schnittstellensteue
rungseinrichtung, die ein Ausführungsbeispiel der vorlie
genden Erfindung darstellt. Viele der Komponenten der FC-
Schnittstellensteuerungseinrichtung, die in Fig. 11 gezeigt
sind, sind zu den Komponenten der herkömmlichen Schnitt
stellensteuerungseinrichtung, die in Fig. 7 gezeigt ist,
ähnlich oder identisch. Diese Komponenten werden nicht wie
der beschrieben werden. Statt dessen werden diejenigen hin
zugefügten Komponenten, die ein Ausführungsbeispiel der
vorliegenden Erfindung darstellen, im folgenden bezugneh
mend auf Fig. 11 beschrieben werden. Der erste bemerkens
werte Unterschied zwischen der FC-Schnittstellensteuerungs
einrichtung von Fig. 11 und der herkömmlichen FC-Schnitt
stellensteuerungseinrichtung von Fig. 7 besteht darin, daß
die FC-Schnittstellensteuerungseinrichtung, die ein Ausfüh
rungsbeispiel der vorliegenden Erfindung darstellt und in
Fig. 11 gezeigt ist, eine getrennte Verbindungssteuerungs
rahmen-FIFO-Warteschlange 1102 für ankommende FC-Verbin
dungssteuerungsrahmen aufweist. Der Eingangs-FC-Verbin
dungssteuerungsrahmen-FIFO 1102 kann bis zu acht FC-Verbin
dungssteuerungsrahmen speichern. Da es nun zwei getrennte
Eingangs-FIFO-Warteschlangen gibt, ist eine zusätzliche
Komponente, die als eine Eingangsrahmenleiteinrichtung 1106
bezeichnet wird, umfaßt, um ankommende Rahmen an die geeig
nete bzw. richtige Eingangs-FIFO-Warteschlange zu leiten.
Die Eingangsrahmenleiteinrichtung 1106 analysiert syntak
tisch die hohen vier Bits des R_CTL-Feldes jedes ankommenden
FC-Rahmens, um zu bestimmen, ob der FC-Rahmen ein Ver
bindungssteuerungsrahmen ist oder nicht. Die Eingangsrah
menleiteinrichtung 1106 leitet FC-Datenrahmen an den Ein
gangs-FIFO-Verwalter 713 und ankommende FC-Verbindungs
steuerungsrahmen an den Verbindungssteuerungsrahmen-FIFO
1102.
Fig. 12 ist ein Flußdiagramm für den Eingangsdatenverwalter
bei einem Ausführungsbeispiel der vorliegenden Erfindung.
Fig. 12 kann mit Fig. 9 verglichen werden, die ein äquiva
lentes Flußdiagramm für den herkömmlichen Eingangsdatenver
walter zeigt, um die Vereinfachung des Eingangsdatenverwal
ters unter der vorliegenden Erfindung zu veranschaulichen,
der sich aus den getrennten Eingangs-FIFO-Warteschlangen
für die FC-Datenrahmen und für die FC-Verbindungssteue
rungsrahmen ergibt. Die Schritte des Flußsteuerungsdia
gramms, die in Fig. 12 gezeigt sind, sind mit den selben
Bezugszeichen etikettiert, die für die äquivalenten Schrit
te des Flußdiagramms verwendet wurden, das in Fig. 9 ge
zeigt ist. Folglich sind alle Schritte, die in Fig. 12 ge
zeigt sind, äquivalent zu Schritten in Fig. 9, wobei bei
dem beschriebenen Ausführungsbeispiel der vorliegenden Er
findung die Schritte 908, 912, 914, 916 und 918 von Fig. 9
von dem Eingangsdatenverwalter beseitigt worden sind. Dem
entsprechend ist Fig. 13 ein Flußdiagramm für den Ausgangs
sequenzverwalter bei einem Ausführungsbeispiel der vorlie
genden Erfindung. Viele der Schritte bei dem Flußdiagramm
von Fig. 13 sind zu den Schritten in den Flußdiagrammen des
herkömmlichen Eingangsdatenverwalters und Ausgangssequenz
verwalters von Fig. 9 bzw. 10 äquivalent und sind mit den
selben Bezugszeichen etikettiert, wie sie bei Fig. 9 und 10
verwendet wurden. Lediglich die Schritte, die für Fig. 13
neu sind, werden im folgenden beschrieben. In dem ersten
neuen Schritt 1302 überprüft der Ausgangssequenzverwalter,
um zu erkennen, ob ein ACK-Rahmen in dem FC-Verbindungs
steuerungs-FIFO 1302 eingereiht ist. Falls dies der Fall
ist, wird der empfangene ACK-Rahmen in einem Schritt 1304
bezüglich der Kontextinformationen bzw. gemäß denselben,
die durch den Ausgangssequenzverwalter für die FC-Sequenz,
zu der der ACK-Rahmen gehört, gehalten werden, überprüft.
Falls der empfangene ACK-Rahmen gültig ist, wie es in dem
Schritt 914 bestimmt wird, wird in einem Schritt 1306 in
tern in dem Ausgangssequenzverwalter ein Kredit für den
entfernten Knoten gesendet bzw. ausgegeben, von dem der
ACK-Rahmen empfangen wurde. Andernfalls wird in einem
Schritt 1308 eine Fehlerhandhabung durchgeführt. Folglich
handhabt der Ausgangssequenzverwalter gemäß der vorliegen
den Erfindung die Verarbeitung von ankommenden ACK-Rahmen,
die bei herkömmlichen Implementierungen durch sowohl den
Eingangsdatenverwalter als auch den Ausgangssequenzverwal
ter gehandhabt werden. Falls ein ACK-Rahmen in dem FC-Ver
bindungssteuerungs-FIFO 1102 nicht verfügbar ist, wird an
genommen, daß das Ereignis die Verfügbarkeit von Daten in
dem Hauptspeicher aufweist, aus denen ein FC-Datenrahmen
aufgebaut und zu einem entfernten Knoten übertragen werden
kann. Schritte zum Verarbeiten der verfügbaren Daten, ein
schließlich der Schritte 1014, 1016, 1018 und 1020, sind
für den Ausgangssequenzverwalter der vorliegenden Erfindung
die selben wie die Schritte zum Verarbeiten der verfügbaren
Daten bei herkömmlichen FC-Schnittstellensteuerungseinrich
tungen, die in Fig. 10 gezeigt sind.
Durch Verwenden getrennter FIFOs für FC-Datenrahmen und
ACK-Rahmen, werden die im vorhergehenden beschriebenen Pro
bleme, die auf die Verschachtelung von FC-Datenrahmen und
ACK-Rahmen in einer einzigen FIFO-Warteschlange bezogen
sind, vermieden. Folglich wird das Senden von Krediten an
sprechend auf einen Empfang von ACK-Rahmen nicht durch die
Verarbeitung von zuvor empfangenen FC-Datenrahmen verzö
gert, sondern dieselben werden direkt durch den Ausgangsse
quenzverwalter ausgeführt. Eine Latenz beim Umwandeln bzw.
Konvertieren empfangener ACK-Rahmen in Kredite wird deut
lich verringert. Darüber hinaus hängt bei der FC-Schnitt
stellensteuerungseinrichtung von Fig. 11 die Ausgangs-FC-
Datenrahmenübertragung nicht mehr von der Eingangs-FC-Da
tenrahmenverarbeitung ab. Umgekehrt werden Zwischenrahmenlücken
auf der FC-Verbindung verringert, es existiert eine
verringerte Wahrscheinlichkeit für EE-Zeitüberschreitungen,
die sich aus einer verzögerten oder blockierten Verarbei
tung von ACK-Rahmen ergeben, die Bandbreiteverfügbarkeit
der FC-Verbindung ist erhöht, die I/O-Latenz ist verringert
und die Anzahl von Schleifenentscheidungen, die pro I/O
bzw. I/O-Vorgang in FC-Entscheidungsschleifentopologien
erforderlich sind, ist verringert.
Die vorliegende Erfindung betrifft eine getrennte Einrei
hung von FC-Datenrahmen und ACK-Rahmen. Die FC-Verbindungs
steuerungs-FIFO-Warteschlange und die FC-Verbindungssteue
rungs-Listen (1102 bzw. 1104 in Fig. 11) können zusätzlich
weitere Typen von Verbindungssteuerungsrahmen, wie z. B.
Verbindung Antwort-Rahmen und Verbindung Befehl-Rahmen,
enthalten. Das Verarbeiten dieser anderen Typen von Verbin
dungssteuerungsrahmen umfaßt das Einreihen derselben in die
SFQ, um zu ermöglichen, daß das Host dieselben verarbeitet.
Obwohl die vorliegende Erfindung hinsichtlich eines spezi
ellen Ausführungsbeispieles beschrieben worden ist, soll
die Erfindung nicht auf dieses Ausführungsbeispiel begrenzt
sein. Modifikationen innerhalb des Schutzbereiches der Er
findung sind für Fachleute offensichtlich. Die Funktionali
täten, die in den Flußdiagrammen, die in Fig. 12 und 13
gezeigt sind, beschrieben wurden, können beispielsweise in
einer nahezu unbegrenzten Anzahl von unterschiedlichen Lo
gikschaltungen, Firmware oder in Logikschaltung- und Firm
ware-Kombinationen implementiert sein. Dementsprechend kön
nen die FIFO-Warteschlangen in vielen unterschiedlichen
Logikschaltung- und Niedrigpegelkomponenten-Implementierun
gen in einer FC-Schnittstellensteuerungseinrichtung imple
mentiert sein. Unterschiedliche Strategien können verwendet
werden, um die Verarbeitung der Verbindungssteuerungsrahmen
und FC-Datenrahmen zu ordnen, wobei im allgemeinen die Ver
arbeitung der Verbindungssteuerungsrahmen beschleunigt ist,
aber die Verarbeitung von FC-Datenrahmen in annehmbaren
Zeitintervallen garantiert ist. Viele unterschiedliche Typen
von Interndatenspeicherungs- und Logikschaltungsimple
mentierungen können zum Halten aktueller Informationen hin
sichtlich entfernter Knoten und FC-Sequenzen verwendet wer
den, um die Gültigkeitsüberprüfung empfangener ACK-Rahmen
und die Steuerung der Übertragung von FC-Datenrahmen zu
ermöglichen. Bei der im vorhergehenden beschriebenen Imple
mentierung sind die Eingangsdatenverwalter- und Ausgangsse
quenzverwalter-Aufgaben, die auf die Verarbeitung von ACK-
Rahmen und FC-Datenrahmen bezogen sind, als iterative
Schleifen gezeigt, aber es können auch getrennte Logik
schaltungen über interne Signalwege direkt aufgerufen wer
den, um diese Aufgaben zu handhaben, oder es können ge
trennte Firmwareroutinen durch interne Unterbrechungen oder
andere Aufrufmechanismen aufgerufen werden. Andere Puffer
als FIFO-Warteschlangen können zum Puffern bzw. Zwischen
speichern von ankommenden oder abgehenden FC-Datenrahmen
und FC-Verbindungssteuerungsrahmen verwendet werden.
Die vorhergehende Beschreibung verwendete zum Zweck der
Erklärung eine spezifische Nomenklatur, um ein volles Ver
ständnis der Erfindung zu liefern. Für Fachleute auf dem
Gebiet wird es jedoch offensichtlich sein, daß die spezifi
schen Details nicht erforderlich sind, um die Erfindung
auszuführen. In anderen Fällen sind wohlbekannte Schaltun
gen und Geräte in Blockdiagrammform gezeigt, um eine unnö
tige Ablenkung von der zugrundeliegenden Erfindung zu ver
meiden. Folglich werden die vorhergehenden Beschreibungen
spezifischer Ausführungsbeispiele der vorliegenden Erfin
dung zum Zwecke der Veranschaulichung und Beschreibung ge
liefert; sie sind nicht vorgesehen, um vollständig zu sein
oder die Erfindung auf die präzisen offenbarten Formen zu
begrenzen, wobei offensichtlicherweise viele Modifikationen
und Variationen hinsichtlich der im vorhergehenden
beschreibenen Lehren möglich sind. Die Ausführungsbeispiele
wurden ausgewählt und beschrieben, um die Grundsätze der
Erfindung und ihre praktischen Anwendungen am besten zu er
klären, und um dadurch andere Fachleute in die Lage zu ver
setzen, die Erfindung und verschiedene Ausführungsbeispiele
mit verschiedenen Modifikationen zu verwenden, die für eine
spezielle vorgesehene Verwendung geeignet sind.
Claims (18)
1. Verfahren zum Verarbeiten von ankommenden Datenrahmen
und Quittierungsrahmen in einer Faserkanalschnittstel
lensteuerungseinrichtung, wobei das Verfahren folgende
Schritte aufweist:
Bereitstellen eines Eingangsdatenrahmenpuffers (713) in der Faserkanalschnittstellensteuerungseinrichtung zum Puffern ankommender Datenrahmen und eines Ein gangsquittierungsrahmenpuffers (1102) in der Faserka nalschnittstellensteuerungseinrichtung zum Puffern an kommender Quittierungsrahmen;
Leiten ankommender Datenrahmen von einer Faserkanal verbindung zu dem Eingangsdatenrahmenpuffer (713) und Leiten ankommender Quittierungsrahmen von der Faserka nalverbindung zu dem Eingangsquittierungsrahmenpuffer (1102);
Verarbeiten ankommender Quittierungsrahmen, die in dem Eingangsquittierungsrahmenpuffer zwischengespeichert sind, um die Eingangsquittierungsrahmen zu überprüfen, und um überprüfte Quittierungsrahmen in Kredite umzu wandeln, die entfernten Knoten zugeordnet sind, die die Quittierungsrahmen übertragen haben; und
Verarbeiten ankommender Datenrahmen, die in dem Ein gangsdatenrahmenpuffer (713) zwischengespeichert sind.
Bereitstellen eines Eingangsdatenrahmenpuffers (713) in der Faserkanalschnittstellensteuerungseinrichtung zum Puffern ankommender Datenrahmen und eines Ein gangsquittierungsrahmenpuffers (1102) in der Faserka nalschnittstellensteuerungseinrichtung zum Puffern an kommender Quittierungsrahmen;
Leiten ankommender Datenrahmen von einer Faserkanal verbindung zu dem Eingangsdatenrahmenpuffer (713) und Leiten ankommender Quittierungsrahmen von der Faserka nalverbindung zu dem Eingangsquittierungsrahmenpuffer (1102);
Verarbeiten ankommender Quittierungsrahmen, die in dem Eingangsquittierungsrahmenpuffer zwischengespeichert sind, um die Eingangsquittierungsrahmen zu überprüfen, und um überprüfte Quittierungsrahmen in Kredite umzu wandeln, die entfernten Knoten zugeordnet sind, die die Quittierungsrahmen übertragen haben; und
Verarbeiten ankommender Datenrahmen, die in dem Ein gangsdatenrahmenpuffer (713) zwischengespeichert sind.
2. Verfahren gemäß Anspruch 1, bei dem sowohl der Ein
gangsdatenrahmenpuffer (713) als auch der Eingangs
quittierungsrahmenpuffer (1102) Zuerst-Hinein-Zuerst-
Hinaus-Warteschlangen sind, bei dem die Datenrahmen in
die Eingangsdatenrahmen-Zuerst-Hinein-Zuerst-Hinaus-
Warteschlange in der Reihenfolge ihres Eintreffens von
der Faserkanalverbindung und die Quittierungsrahmen
in die Eingangsquittierungsrahmen-Zuerst-Hinein-Zuerst-Hinaus-Warteschlange
in der Reihenfolge ihres
Eintreffens von der Faserkanalverbindung eingereiht
werden, bei dem der zuletzt eingereihte Datenrahmen
aus der Eingangsdatenrahmen-Zuerst-Hinein-Zuerst-Hin
aus-Warteschlange vor der Verarbeitung des Datenrah
mens entnommen wird, und bei dem der zuletzt einge
reihte Quittierungsrahmen aus der Eingangsquittie
rungsrahmen-Zuerst-Hinein-Zuerst-Hinaus-Warteschlange
vor der Verarbeitung des Quittierungsrahmens entnommen
wird.
3. Verfahren gemäß Anspruch 2, bei dem die Eingangsquit
tierungsrahmen, die in dem Eingangsquittierungsrahmen
puffer zwischengespeichert sind, durch eine Ausgangs
sequenzverwalterkomponente verarbeitet werden, die die
Datenrahmen aus zwischengespeicherten Daten erzeugt,
und die Datenrahmen in eine Ausgangs-Zuerst-Hinein-Zu
erst-Hinaus-Warteschlange für eine Übertragung zu der
Faserkanalverbindung einreiht.
4. Verfahren gemäß Anspruch 3, bei dem die Ausgangsquit
tierungsrahmen aus ankommenden Datenrahmenanfangs
blöcken vorbereitet und zu der Faserkanalverbindung
übertragen werden.
5. Verfahren gemäß Anspruch 2 oder 3, bei dem die Verar
beitung ankommender Datenrahmen, die in dem Eingangs
datenrahmenpuffer zwischengespeichert sind, folgende
Schritte umfaßt:
Bewegen der Daten von dem ankommenden Datenrahmen in den Speicher; und
Aktualisieren der Zustandsinformationen für eine Fa serkanalsequenz, die den Datenrahmen umfaßt.
Bewegen der Daten von dem ankommenden Datenrahmen in den Speicher; und
Aktualisieren der Zustandsinformationen für eine Fa serkanalsequenz, die den Datenrahmen umfaßt.
6. Verfahren gemäß Anspruch 5, bei dem das Verarbeiten
eines ankommenden Datenrahmens, der in dem Eingangsdatenrahmenpuffer
zwischengespeichert ist, das Einleiten
der Erzeugung eines Quittierungsrahmens aufweist, um
denselben zu dem Knoten zurückzusenden, der den Daten
rahmen gesendet hat, um den Empfang des Datenrahmens
zu quittieren und zu dem Knoten, der den Datenrahmen
gesendet hat, Kredite zu übertragen.
7. Verfahren gemäß einem der Ansprüche 1 bis 6, bei dem
die Quittierungsrahmen ACK_0- und ACK_1-Quittierungs
rahmen umfassen.
8. Verfahren gemäß einem der Ansprüche 1 bis 7, bei dem
die Quittierungsrahmen ACK_N-Quittierungsrahmen umfas
sen.
9. Verfahren gemäß einem der Ansprüche 1 bis 8, bei dem
eine Eingangsdatenverwalterkomponente ankommende Da
tenrahmen verwaltet, die in dem Eingangsdatenrahmen
puffer zwischengespeichert werden.
10. Verfahren gemäß einem der Ansprüche 1 bis 9, bei dem
eine Eingangsrahmenleiteinrichtung ankommende Daten
rahmen von der Faserkanalverbindung zu dem Eingangsda
tenrahmenpuffer und ankommende Quittierungsrahmen von
der Faserkanalverbindung zu dem Eingangsquittierungs
rahmenpuffer leitet.
11. Faserkanalschnittstellensteuerungseinrichtung, die
folgende Merkmale aufweist:
einen Eingangsdatenrahmenpuffer (713);
einen Eingangsquittierungsrahmenpuffer (1102);
einen Ausgangsrahmenpuffer (719);
eine Eingangsrahmenleiteinrichtung (1106), die ankom mende Datenrahmen zu dem Eingangsdatenrahmenpuffer und ankommende Quittierungsrahmen an den Eingangsquittie rungsrahmenpuffer (1102) leitet;
eine Eingangsdatenverwalterkomponente, die ankommende Datenrahmen verarbeitet, die in dem Eingangsdatenrah menpuffer (713) gespeichert sind; und
eine Ausgangssequenzverwalterkomponente, die Quittie rungsrahmen verarbeitet, die in dem Eingangsquittie rungsrahmenpuffer (1102) gespeichert sind, und Daten rahmen für eine Übertragung zu entfernten Knoten er zeugt und die erzeugten Datenrahmen in dem Ausgangs rahmenpuffer (719) speichert.
einen Eingangsdatenrahmenpuffer (713);
einen Eingangsquittierungsrahmenpuffer (1102);
einen Ausgangsrahmenpuffer (719);
eine Eingangsrahmenleiteinrichtung (1106), die ankom mende Datenrahmen zu dem Eingangsdatenrahmenpuffer und ankommende Quittierungsrahmen an den Eingangsquittie rungsrahmenpuffer (1102) leitet;
eine Eingangsdatenverwalterkomponente, die ankommende Datenrahmen verarbeitet, die in dem Eingangsdatenrah menpuffer (713) gespeichert sind; und
eine Ausgangssequenzverwalterkomponente, die Quittie rungsrahmen verarbeitet, die in dem Eingangsquittie rungsrahmenpuffer (1102) gespeichert sind, und Daten rahmen für eine Übertragung zu entfernten Knoten er zeugt und die erzeugten Datenrahmen in dem Ausgangs rahmenpuffer (719) speichert.
12. Faserkanalschnittstellensteuerungseinrichtung gemäß
Anspruch 11, bei der die Ausgangssequenzverwalterkom
ponente die ankommenden Quittierungsrahmen, die in dem
Eingangsquittierungsrahmenpuffer (1102) zwischenge
speichert sind, verarbeitet, um die ankommenden Quit
tierungsrahmen zu überprüfen und die überprüften Quit
tierungsrahmen in Kredite umzuwandeln, die entfernten
Knoten zugeordnet sind, die die Quittierungsrahmen
übertragen haben.
13. Faserkanalschnittstellensteuerungseinrichtung gemäß
Anspruch 11 oder 12, bei der sowohl der Eingangsdaten
rahmenpuffer (713) als auch der Eingangsquittierungs
rahmenpuffer (1102) Zuerst-Hinein-Zuerst-Hinaus-Warte
schlangen sind, bei der die Datenrahmen in die Ein
gangsdatenrahmen-Zuerst-Hinein-Zuerst-Hinaus-Warte
schlange in der Reihenfolge ihres Eintreffens von der
Faserkanalverbindung und die Quittierungsrahmen in
die Eingangsquittierungsrahmen-Zuerst-Hinein-Zuerst-
Hinaus-Warteschlange in der Reihenfolge ihres Eintref
fens von der Faserkanalverbindung eingereiht werden,
bei der der zuletzt eingereihte Datenrahmen aus der
Eingangsdatenrahmen-Zuerst-Hinein-Zuerst-Hinaus-Warte
schlange durch die Eingangsdatenverwalterkomponente
vor der Verarbeitung des Datenrahmens entnommen wird,
und bei der der zuletzt eingereihte Quittierungsrahmen
aus der Eingangsquittierungsrahmen-Zuerst-Hinein-Zu
erst-Hinaus-Warteschlange vor der Verarbeitung des
Quittierungsrahmens entnommen wird.
14. Faserkanalschnittstellensteuerungseinrichtung gemäß
einem der Ansprüche 11 bis 13, bei der abgehende Quit
tierungsrahmen aus ankommenden Datenrahmenanfangs
blöcken vorbereitet und an die Faserkanalverbindung
übertragen werden.
15. Faserkanalschnittstellensteuerungseinrichtung gemäß
einem der Ansprüche 11 bis 14, bei der die Eingangsda
tenverwalterkomponente einen Eingangsdatenrahmen, der
in dem Eingangsdatenrahmenpuffer (713) zwischengespei
chert ist, durch
Bewegen der Daten von dem ankommenden Datenrahmen in den Speicher; und
Aktualisieren von Zustandsinformationen für eine Fa serkanalsequenz, die den Datenrahmen umfaßt,
verarbeitet.
Bewegen der Daten von dem ankommenden Datenrahmen in den Speicher; und
Aktualisieren von Zustandsinformationen für eine Fa serkanalsequenz, die den Datenrahmen umfaßt,
verarbeitet.
16. Faserkanalschnittstellensteuerungseinrichtung gemäß
Anspruch 15, bei der das Verarbeiten eines ankommenden
Datenrahmens, der in dem Eingangsdatenrahmenpuffer
zwischengespeichert wird, das Einleiten der Erzeugung
eines Quittierungsrahmens aufweist, um denselben zu
dem Knoten zurückzusenden, der den Datenrahmen gesen
det hat, um den Empfang des Datenrahmens zu quittie
ren, und um zu dem Knoten, der den Datenrahmen gesen
det hat, Kredite zu übertragen.
17. Faserkanalschnittstellensteuerungseinrichtung gemäß
einem der Ansprüche 11 bis 16, bei der die Quittierungsrahmen
ACK_0- und ACK_1-Quittierungsrahmen umfas
sen.
18. Faserkanalschnittstellensteuerungseinrichtung gemäß
einem der Ansprüche 11 bis 17, bei der die Quittie
rungsrahmen ACK_N-Quittierungsrahmen umfassen.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/474,945 US6791989B1 (en) | 1999-12-30 | 1999-12-30 | Fibre channel interface controller that performs non-blocking output and input of fibre channel data frames and acknowledgement frames to and from a fibre channel |
Publications (1)
Publication Number | Publication Date |
---|---|
DE10065656A1 true DE10065656A1 (de) | 2001-07-12 |
Family
ID=23885614
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10065656A Withdrawn DE10065656A1 (de) | 1999-12-30 | 2000-12-29 | Faserkanalschnittstellensteuerungseinrichtung, die eine nicht blockierende Ausgabe und Eingabe von Faserkanaldatenrahmen und Quittierungsrahmen in und von einem Faserkanal durchführt |
Country Status (4)
Country | Link |
---|---|
US (1) | US6791989B1 (de) |
JP (1) | JP2001230833A (de) |
DE (1) | DE10065656A1 (de) |
GB (1) | GB2363041B (de) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004531964A (ja) * | 2001-05-14 | 2004-10-14 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | 移動通信網における過負荷を防止するための方法 |
US6834307B2 (en) * | 2001-06-26 | 2004-12-21 | Intel Corporation | Event-based application layer switching for high-speed protocol processing |
US7809852B2 (en) * | 2001-07-26 | 2010-10-05 | Brocade Communications Systems, Inc. | High jitter scheduling of interleaved frames in an arbitrated loop |
US20030056000A1 (en) * | 2001-07-26 | 2003-03-20 | Nishan Systems, Inc. | Transfer ready frame reordering |
US7107413B2 (en) * | 2001-12-17 | 2006-09-12 | Intel Corporation | Write queue descriptor count instruction for high speed queuing |
US7269179B2 (en) * | 2001-12-18 | 2007-09-11 | Intel Corporation | Control mechanisms for enqueue and dequeue operations in a pipelined network processor |
US7149213B1 (en) * | 2001-12-28 | 2006-12-12 | Advanced Micro Devices, Inc. | Wireless computer system with queue and scheduler |
US7313104B1 (en) | 2001-12-28 | 2007-12-25 | Advanced Micro Devices, Inc. | Wireless computer system with latency masking |
US7895239B2 (en) | 2002-01-04 | 2011-02-22 | Intel Corporation | Queue arrays in network devices |
US7181573B2 (en) * | 2002-01-07 | 2007-02-20 | Intel Corporation | Queue array caching in network devices |
US7149226B2 (en) * | 2002-02-01 | 2006-12-12 | Intel Corporation | Processing data packets |
JP4432388B2 (ja) * | 2003-08-12 | 2010-03-17 | 株式会社日立製作所 | 入出力制御装置 |
US7298749B2 (en) | 2004-01-07 | 2007-11-20 | International Business Machines Corporation | Completion coalescing by TCP receiver |
US20060126520A1 (en) * | 2004-12-15 | 2006-06-15 | Cisco Technology, Inc. | Tape acceleration |
US7606234B2 (en) * | 2005-06-14 | 2009-10-20 | Microsoft Corporation | Multi-stream acknowledgement scheduling |
US8069270B1 (en) | 2005-09-06 | 2011-11-29 | Cisco Technology, Inc. | Accelerated tape backup restoration |
US8266431B2 (en) * | 2005-10-31 | 2012-09-11 | Cisco Technology, Inc. | Method and apparatus for performing encryption of data at rest at a port of a network device |
US20070121621A1 (en) * | 2005-11-30 | 2007-05-31 | Michael Moretti | Integrated active-active fibre channel capability in SATA and SAS devices |
US20070121633A1 (en) * | 2005-11-30 | 2007-05-31 | Michael Moretti | Active-active fibre channel capability in SATA and SAS devices |
US20070121668A1 (en) * | 2005-11-30 | 2007-05-31 | Michael Moretti | Firmware architecture of active-active fibre channel capability in SATA and SAS devices |
JP4740763B2 (ja) * | 2006-02-15 | 2011-08-03 | 株式会社日立製作所 | ストレージシステム及びストレージコントローラ |
US8464074B1 (en) | 2008-05-30 | 2013-06-11 | Cisco Technology, Inc. | Storage media encryption with write acceleration |
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 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2585909B1 (fr) * | 1985-08-02 | 1987-10-09 | Lmt Radio Professionelle | Procede de transmission de donnees par paquets a travers un reseau ou une chaine de transmission, et dispositif de mise en oeuvre |
US4995056A (en) * | 1989-01-13 | 1991-02-19 | International Business Machines Corporation | System and method for data communications |
US5136582A (en) * | 1990-05-29 | 1992-08-04 | Advanced Micro Devices, Inc. | Memory management system and method for network controller |
GB2252020A (en) * | 1990-12-04 | 1992-07-22 | Ibm | Flow control in data communication systems. |
JP2700843B2 (ja) * | 1991-12-10 | 1998-01-21 | 三菱電機株式会社 | 多重通信制御装置 |
DE4341886A1 (de) * | 1992-12-16 | 1994-06-23 | Rolm Co | HDLC-Hardwaremaschine und Speicherschnittstelle |
US5588009A (en) * | 1994-02-03 | 1996-12-24 | Will; Craig A. | Personal paging, communications, and locating system |
US5734825A (en) * | 1994-07-18 | 1998-03-31 | Digital Equipment Corporation | Traffic control system having distributed rate calculation and link by link flow control |
US5619497A (en) * | 1994-12-22 | 1997-04-08 | Emc Corporation | Method and apparatus for reordering frames |
US5777987A (en) * | 1995-12-29 | 1998-07-07 | Symbios, Inc. | Method and apparatus for using multiple FIFOs to improve flow control and routing in a communications receiver |
US5907717A (en) * | 1996-02-23 | 1999-05-25 | Lsi Logic Corporation | Cross-connected memory system for allocating pool buffers in each frame buffer and providing addresses thereof |
US6002675A (en) * | 1997-01-06 | 1999-12-14 | Cabletron Systems, Inc. | Method and apparatus for controlling transmission of data over a network |
US5825748A (en) * | 1997-04-08 | 1998-10-20 | International Business Machines Corporation | Credit-based flow control checking and correction system |
EP0940941A1 (de) * | 1998-03-05 | 1999-09-08 | ICO Services Ltd. | Transaktionsnachrichtenverarbeitung in Kommunikationssystemen |
US6366968B1 (en) * | 1998-06-26 | 2002-04-02 | Intel Corporation | Physical write packets processing when posted write error queue is full, with posted write error queue storing physical write requests when posted write packet fails |
US6347337B1 (en) * | 1999-01-08 | 2002-02-12 | Intel Corporation | Credit based flow control scheme over virtual interface architecture for system area networks |
-
1999
- 1999-12-30 US US09/474,945 patent/US6791989B1/en not_active Expired - Fee Related
-
2000
- 2000-12-21 GB GB0031361A patent/GB2363041B/en not_active Expired - Fee Related
- 2000-12-28 JP JP2000402400A patent/JP2001230833A/ja active Pending
- 2000-12-29 DE DE10065656A patent/DE10065656A1/de not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
JP2001230833A (ja) | 2001-08-24 |
GB2363041B (en) | 2004-04-28 |
US6791989B1 (en) | 2004-09-14 |
GB0031361D0 (en) | 2001-02-07 |
GB2363041A (en) | 2001-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE10065656A1 (de) | Faserkanalschnittstellensteuerungseinrichtung, die eine nicht blockierende Ausgabe und Eingabe von Faserkanaldatenrahmen und Quittierungsrahmen in und von einem Faserkanal durchführt | |
DE69133257T2 (de) | Vorrichtung und verfahren zur schnellen paketvermittlung | |
DE60212626T2 (de) | Endknotenunterteilung mittels lokaler identifikatoren | |
DE69628631T2 (de) | Dateneingangs/-ausgangsvorrichtung durch Referenzierung zwischen zentralen Verarbeitungseinheiten und Ein-/Ausgabevorrichtungen | |
DE60204687T2 (de) | Speicherkopierbefehl mit Angabe von Quelle und Ziel, der in der Speichersteuerung ausgeführt wird | |
DE69832744T2 (de) | System und Verfahren zur automatischen dynamischen Ringadressveränderungen | |
DE69133569T2 (de) | Netzschnittstelle | |
DE60204061T2 (de) | Verfahren und System zur Informationsübertragung über Mobilkommunikationsnetze | |
DE69837272T2 (de) | Mechanismus zum ersetzen eines paketfelds in einem mehrschicht-vermittlungsnetzelement | |
DE602005003142T2 (de) | Vorrichtung und verfahren zur unterstützung von verbindungsherstellung in einem offload der netzwerkprotokollverarbeitung | |
DE69922693T2 (de) | Systemem und verfahren für netzwerkvorrichtung und ein-ausgabegerätetreiber | |
DE69832884T2 (de) | Wegesucheinheit mit zuteilung von virtuellen kanälen | |
DE60032357T2 (de) | Verbindungsarchitektur um minderbandbreitige verbindungen über eine hoch-bandbreitige verkettung zu verwalten | |
DE69533230T2 (de) | Verfahren und vorrichtung zur verbesserung der fehlertoleranz eines netzwerkes | |
DE112020002491T5 (de) | System und verfahren zur erleichterung der dynamischen befehlsverwaltung in einer netzwerkschnittstellensteuerung (nic) | |
DE69729243T2 (de) | Multiprozessorsystem mit Vorrichtung zur Optimierung von Spin-Lock-Operationen | |
DE60109631T2 (de) | Verfahren und Vorrichtung zur effizienten Verringerung von graphischen Anzeigedaten für ihre Übertragung mittels eines Übertragungsprotokolls für niedrige Bandbreiten | |
DE60111551T2 (de) | Mechanismus zur vervollständigung von nachrichten im speicher | |
DE102012208803B4 (de) | System und Verfahren zur Weiterleitung von Fibre-Channel-Eingangs- und Ausgangsdaten | |
DE10104209A1 (de) | Verfahren und System zum Erhöhen der Leistung durch Ersetzen einer Steuerung einer Maschine mit finiten Zuständen durch eine hardware-implementierte Datenstrukturmanipulation | |
DE112011102415T5 (de) | Registerzugriff in einer verteilten virtuellen Brückenumgebung | |
DE2917441A1 (de) | Multiprozessoranlage | |
DE112004002375B4 (de) | Verfahren, System und Programm zum Verwalten von Datenleseoperationen | |
DE102005013301A1 (de) | Verteiltes Datenmodell | |
WO1996003695A1 (de) | Datenreduktion für buskoppler |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8127 | New person/name/address of the applicant |
Owner name: AVAGO TECHNOLOGIES STORAGE IP (SINGAPORE) PTE. LTD |
|
8130 | Withdrawal |