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ührt

Info

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
Application number
DE10065656A
Other languages
English (en)
Inventor
Joseph Harold Steinmetz
Matthew Paul Wakeley
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.)
Avago Technologies Storage IP Singapore Pte Ltd
Original Assignee
Agilent Technologies Inc
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 Agilent Technologies Inc filed Critical Agilent Technologies Inc
Publication of DE10065656A1 publication Critical patent/DE10065656A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information 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"
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.
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.
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.
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.
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.
DE10065656A 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 Withdrawn DE10065656A1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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