-
HINTERGRUND DER ERFINDUNG
-
1. Gebiet der Erfindung
-
Die
vorliegende Erfindung betrifft im Allgemeinen Datenkommunikation
und im Spezielleren ein System, ein Verfahren und eine Architektur,
um mehrere Verbindungen geringer Bandbreite über einen einzelnen Kommunikationskanal
mit größerer Bandbreite
zu verwalten.
-
2. Relevanter
Hintergrund
-
Unternehmenscomputernetzwerke
werden durch eine geographisch verteilte Sammlung von Computerresourcen
gebildet, die durch Hochgeschwindigkeitskommunikationskanäle verbunden
sind. Typischer Weise wird ein oder mehrere Großrechencomputer verwendet,
um für
die Verarbeitung von großen
Datenmengen zu sorgen, während
andere Knoten für
spezialisierte Funktionen verwendet werden. Ein Beispiel ist ein
Speicherbereichsnetzwerk (SAN; engl.: storage area network), in
dem ein Massespeicher in einer "Speicherfarm" implementiert ist,
die mit den Großrechnerprozessoren
mittels eines Kommunikationskanals oder Netzwerks verbunden ist.
-
Ein
Kommunikations-"Kanal", wie hier verwendet,
sorgt für
eine unmittelbare oder eine geschaltete Stelle-zu-Stelle-Verbindung
zwischen kommunizierenden Vorrichtungen. Ein leitungsvermittelter
Kanal ist typischer Weise hardwareintensiv und transportiert Daten
bei hoher Geschwindigkeit mit wenig Overhead, der zur Kanalverwaltung
erforderlich ist. Leitungsvermittelte Verbindungen bleiben üblicher
Weise auch dann aufgebaut, wenn keine Daten übertragen werden, wodurch Bandbreite
vergeudet wird, kann aber mehrere Benutzer über Multiplextechniken, wie
zum Beispiel Zeitmultiplex, unterstützen.
-
Paketvermittlungsnetzwerke
erlauben es andererseits Benutzern, dynamisch das Netzwerkmedium
und verfügbare
Bandbreite unter Verwendung von Paketen variabler Länge dynamisch
gemeinsam zu nutzen. Paketvermittlungsnetzwerke sind verglichen
mit leitungsvermittelter Kommunikation durch eine effizientere und
flexiblere Datenübertragung
gekennzeichnet. Paketvermittelte Kommunikation erhöht den Overhead,
indem jedem Paket Adressinformation hinzugefügt wird, die es dem Paket ermöglicht,
zwischen den verschiedenen Netzwerkkomponenten vermittelt zu werden,
bis das Ziel erreicht ist.
-
Frühe Bemühungen,
um Kommunikation über
große
Entfernungen mit großer
Bandbreite zu implementieren, verwendeten leitungsvermittelte Technologie.
Ein in großem
Umfang verwendetes Beispiel einer solchen Technologie ist die Architektur zur
Verbindung mit Steuerbefehlsgruppen aus einem einzelnen Byte (SBCON;
engl.: single-byte command code sets connection). SBCON ist durch
den Standard X3.296-1997 des American National Standards Institute
(ANSI) standardisiert, der mit dem Titel "Information Technology-Single-Byte Command
Code Sets CONnection (SBCON) Architecture" versehen ist. Das ANSI-Dokument X3.296-1997
beschreibt eine Eingangs/Ausgangs-(I/O) und Verbindungsarchitektur,
die faseroptische Verbindungen, eine geschaltete Stelle-zu-Stelle-Topologie
und I/O-Protokolle für
große
Bandbreite, hohe Leistung und Informationsaustausch über große Entfernungen
spezifiziert. SBCON bezieht sich, wie hier verwendet, auf die herkömmliche
SBCON-Architektur sowie Varianten von SBCON, wie zum Beispiel die
von IBM angebotene Unternehmenssystemverbindungs-(ESCON; engl.:
enterprise system connection)-Architektur und dergleichen. Für die vorliegende
Erfindung werden diese Varianten als äquivalent zu SBCON betrachtet.
-
SBCON
unterstützt
Vollduplex-Kanäle
mit maximal 200 Mbit/s. SBCON ist größenteils entwickelt worden,
um Kommunikation zwischen Mainframes und Speichervorrichtungen oder
anderen peripheren Komponenten in einer verteilten Architektur zu
unterstützen.
Somit gibt es eine bedeutsame installierte Basis an SBCON-Anwendungen
und -Vorrichtungen. Die schnellen Weiterentwicklungen von Kommunikation
und Datenverarbeitung und Speichertechnologie haben jedoch viele
SBCON-Installationen nicht optimal werden lassen.
-
Verteilte
Berechnungsumgebungen in allgemeinen und SRN-Anwendungen im Speziellen
erfordern Kommunikationsverbindungen mit zunehmend höherer Geschwindigkeit
zwischen Vorrichtungen. Herkömmliche
Großrechnerarchitekturen
unterstützen
ein definiertes Betriebssystem, ein System mit einer begrenzten
Anzahl an Verbindungsanschlüssen (z.
B. 256) für
Verbindungen zwischen dem Mainframe und anderen Vorrichtungen. Leistungsverbesserungen
bei Datenverarbeitungsgeschwindigkeiten haben in zunehmendem Maß datenintensive
und geschwindigkeitsempfindliche Anwendungen hervorgebracht. Da
die Anforderungen für
Datenübertragung angestiegen
sind, ist die Begrenzung bekannter Kommunikationstechnologie auf
200 Mbit/s pro Kanal einschränkend.
Weil das Großrechnerbetriebssystem
nicht auf einfache Weise geändert
werden kann, um mehr Anschlüsse
bereit zu stellen, besteht die einzige Lösung für eine erhöhte Datenübertragung, die Bandbreite
jedes Kanals zu erhöhen.
-
Faserkanal
ist als erweiterbare flexible Datenkommunikationsarchitektur für Datentransfer
mit großer
Bandbreite zwischen Arbeitsstationen, Großrechnern, Supercomputern,
Speichervorrichtungen und anderen peripheren Geräten entwickelt worden. Faserkanal
arbeitet bei einer Vielzahl von Geschwindigkeiten, die von 256 Mbits/s
(bi-direktional) bis 2 Gbits/s (bi-direktional) reichen, wobei Geschwindigkeiten
von bis zu 4 Gbit/s vorgesehen sind. Standards sind sowohl für Kupfer-
als auch optische Kommunikationsmedien definiert. Faserkanal kombiniert erwünschte Merkmale
von sowohl paketgeschalteter als auch leitungsvermittelter Kommunikation.
Faserkanal verwendet eine aktive, intelligente Verbindungsarchitektur,
die als "Gewebe" bezeichnet wird, um
Vorrichtungen zu verbinden. Auch wenn die physikalische Implementierung
des Faserkanals paketvermittelt ist, unterstützt ein Gewebe sich ändernde Klassen
von Diensten, die speziell vorgesehene virtuelle Verbindungen zwischen
Knoten umfassen, um eine effiziente Übertragung unterschiedlicher
Typen von Datenverkehr zu gewährleisten.
-
Das
Gewebe stellt eine Anzahl von Anschlüssen, die als F_Ports bezeichnet
werden, bereit, die Vorrichtungen in die Lage versetzen, auf das Gewebe
zuzugreifen. Vorrichtungen stellen eine Verbindung mit einem F_Port
unter Verwendung eines Knotenanschlusses (N_Port) her, der innerhalb
der Vorrichtung implementiert oder dieser zugeordnet ist. Um eine
Verbindung zu einem Faserkanalgewebe herzustellen, umfassen Vorrichtungen
einen Knotenanschluss oder " N_Port", der die Gewebeverbindung verwaltet.
Der N_Port stellt eine Verbindung zu einem Gewebeelement (z. B.
ein Schalter) her, das einen Gewebeanschluss oder F_Port aufweist.
Vorrichtungen, die an das Gewebe angeschlossen sind, benötigen nur
ausreichend Intelligenz, um die Verbindung zwischen dem N_Port und
dem F_Port zu verwalten. Gewebeelemente weisen die Intelligenz auf,
um Routing, Fehlerdetektion und -beseitigung und vergleichbare Verwaltungsfunktionen
zu bewerkstelligen.
-
Ein
Schalter ist eine Vorrichtung mit mehreren F_Ports, wobei jeder
F_Port eine einfache Punkt-zu-Punkt-Verbindung zwischen sich selbst
und seinem angeschlossenen System verwaltet. Jeder F_Port kann an
einem Server, einem Peripheriegerät, einem I/O-Subsystem oder einer
Brücke
angebracht sein. Ein Schalter erhält eine Verbindungsanfrage
von einem Anschluss und stellt automatisch eine Verbindung zu einem
anderen Anschluss auf der Grundlage von Adressinformation her, die
in der Anfrage enthalten ist. Mehrfache Aufrufe oder Datenübertragungen
erfolgen konkurrierend über
den Faserkanalschalter mit mehreren Anschlüssen. Ein wesentlicher Vorteil
geschalteter Technologie besteht darin, dass sie dahingehend "nicht blockierend" ist, als, sobald
eine Verbindung über
den Schalter hergestellt ist, die von dieser Verbindung bereit gestellte Bandbreite
nicht geteilt wird. Folglich können
die physikalischen Verbindungsresourcen, wie zum Beispiel Kupferkabelverdrahtung
oder faseroptische Verkabelung, effizienter verwaltet werden, indem
es mehreren Benutzern ermöglicht
wird, wie erforderlich auf die physikalischen Verbindungsresourcen
zuzugreifen.
-
Auch
wenn ein Faserkanal eine Verbindungstechnologie mit viel größerer Bandbreite
bietet, kann die umfangreiche installierte Basis von hinterlassenen
Leitungsvermittlungssystemen, wie zum Beispiel SBCON-Vorrichtungen,
nicht unmittelbar mit einem Faserkanalgewebe eine Verbindung herstellen.
Obwohl es möglich
ist, einen Faserkanalanschluss einem Großrechencomputer in einem Netzwerk
anzubieten, kann es viele hundert Knotenvorrichtungen geben, die
aufgerüstet
oder ausgetauscht werden müssten,
um eine Schnittstellenverbindung mit dem Gewebe herzustellen. Folglich
ist eine Migration zu von der Faserkanal bereit gestellter Hochgeschwindigkeitstechnologie
langsam und zu teuer gewesen, um sie in einigen Fällen zu
implementieren.
-
Es
sind Anstrengungen unternommen worden, um SBCON- und ESCON-Datenverkehr in Faserkanalpakete
zu kapseln oder einzubetten. Diese Lösungen machen SBCON-Datenverkehr
mit Faserkanalkommunikationsmedien kompatibel. Solange jedoch die
Faser mit großer
Bandbreite Daten einer SBCON-Vorrichtung zuführt, kann die Faserkanalkommunikationsverbindung
nur bei einer effektiven Datenrate arbeiten, die der entspricht,
die die SBCON-Vorrichtung akzeptiert. Somit wird vieles des Vorteils
des Faserkanals vergeudet, wenn auf vorhandene SBCON- oder ESCON-Vorrichtungen
zugegriffen wird. Dem entsprechend besteht Bedarf an einer Verbindungsarchitektur,
die eine Hochgeschwindigkeitskommunikationsverbindung, wie zum Beispiel
ein Faserkanal, ermöglicht,
um Verbindungen mit geringer Bandbreite auf wirksame Weise zu unterstützten.
-
Hinsichtlich
des Hintergrunds für Schaltstrukturen,
die Faserkanal oder SBCON nicht speziell betreffen, wird auf die
folgenden Dokumente Bezug genommen.
-
EP 0 844 803 betrifft einen
ATM-Multiplexer, der mit verschiedenen unterschiedlichen Netzwerken in
einer vorhandenen Netzwerkinfrastruktur verbunden ist. Der Multiplexer
kann mit einer Anzahl unterschiedlicher Arten von Netzwerken verbunden
sein, wie zum Beispiel Paketvermittlungsnetzwerke geringer Geschwindigkeit, öffentliche
Leitungsvermittlungsnetzwerke, Privatlei tungsnetzwerke und Paketvermittlungsnetzwerke
hoher Geschwindigkeit. Dies verbessert die Art, in der ein Kunde
mit Zugriff auf Netzwerke versorgt wird. Dieses Dokument spricht nicht
den Aspekt an, Datenraten von einem Verbindungstyp zu einem anderen
Verbindungstyp umzusetzen.
-
EP 0 436 293 betrifft inverse
Multiplexertechniken, die hohe nicht standardisierte Kanaldatenratensignale
demultiplexen und jedes nicht standardisiertes Datenratensignal
zur Übertragung über ein kommerzielles
Kommunikationsnetzwerk an niedrigerere standardisierte Kanaldatensignale
anpassen. Ein inverser Multiplexer enthält einen Demultiplexer, der
ein Eingangssignal mit hoher Datenrate in Unterabschnittsausgangssignale
demulitplext, die partielle Teile dieses Signals hoher Datenrate
umfassen, und eine Synchronisationseinrichtung, die jedes der Unterabschnittsausgangssignale
zur späteren
Resynchronisierung an dem Empfänger
markiert. Die inverse Multiplexertechnik ist insbesondere für spezialisierte
Anwendungen ausgelegt, um ökonomisch
deren Signal höherer
Datenrate über
vorhandene Telekommunikationsnetzwerke geringerer Datenrate zu senden.
-
US 6,002,692 (entspricht
FR 2758037) betrifft ebenfalls eine Schaltarchitektur, um ein Hochgeschwindigkeitskommunikationsnetzwerk
großer
Bandbreite über
eine Schnittstelle mit einem Kommunikationsgewebe zu verbinden,
das eine Bandbreite hat, die ein Bruchteil der Hochgeschwindigkeitsbandbreite
ist, und wobei das Gewebe andere Datenpaketformate aufweist. Die
Multiplex/Inversmultiplex-Einheit wandelt Datenpakete bei einer
ersten Trägerrate
und in einem ersten Format in Datenpakte in einem zweiten Format
um und ein Schaltwandler wandelt dann die Datenpaket-Header in einem
zweiten Format in Schaltformatheader zur Übertragung der Datenpakete über Anschlüsse des
Kommunikationsgewebes um. Ein Sortierer umfasst einen Schaltkreis
zum erneuten Sortieren, um von der Mehrzahl an Gewebeanschlüssen empfangene
Datenpakete zu teilen.
-
Die
vorliegende Erfindung stellt kurz gesagt eine Brückenschaltung für eine Kommunikationsverbindung
bereit, die eine Paket vermittlungsseite, die eine Voll-Duplex-Paketvermittlungsverbindung
unterstützt,
und eine Leitungsvermittlungsseite aufweist, die eine Anzahl von
Voll-Duplex-Leitungsverbindungen unterstützt. Ein Speicherplatz nutzt
gemeinsam eine logische Verknüpfungsbeschreibung,
die Paketvermittlungsrahmen mit einer speziellen der Leitungsvermittlungsverbindungen
verknüpft.
-
Die
vorliegende Erfindung stellt auch eine Datenkommunikationsarchitektur
mit einer Mehrzahl von Vorrichtungen mit Eingangs-/Ausgangs-(I/O)-Anschlüssen, die
Kommunikation bei einer ersten Rate unterstützen, und einem Datenprozessor
mit einer Anzahl von I/O-Anschlüssen
bereit, wobei jeder I/O-Anschluss Datenkommunikation bei einer zweiten
Datenrate unterstützt.
Die zweite Datenrate ist wenigstens doppelt so groß wie die
erste Datenrate. Eine Kommunikationsverbindung, die mit einem der I/O-Anschlüsse des
Datenprozessors verbunden ist, unterstützt die zweite Datenrate. Eine
Brückenvorrichtung
ist mit der Kommunikationsverbindung und den I/O-Anschlüssen der
Mehrzahl von Vorrichtungen verbunden. Die Brückenvorrichtung setzt die Kommunikationsverbindung
bei der zweiten Datenrate auf eine Mehrzahl von Kommunikationsverbindungen
bei der ersten Datenrate um, wobei die Mehrzahl an Kommunikationsverbindungen
bei der ersten Datenrate im Wesentlichen unabhängig von einander ist (d. h.
die Verbindungen der ersten Datenrate werden nicht benötigt, um
die Steuer-, Signalisierungs- oder Dateninformation gemeinsam zu
nutzen.
-
Ein
Austauschkreditwert kann auf der Grundlage der Anzahl betriebsfähiger Verbindungen
niedriger Bandbreite ermittelt werden. Eine Nachricht, die den Kreditwert
enthält,
wird auf die Verbindung hoher Bandbreite ausgegeben. Eine mit der
Verbindung hoher Bandbreite verbundene Vorrichtung muss wenigstens
einen Austauschkredit aufweisen, bevor Kommunikation von der Brückeneinheit
an der Verbindung hoher Bandbreite ausgehend von dieser Vorrichtung
akzeptiert wird.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
1 zeigt
eine verteilte Rechnerumgebung, bei der die Mechanismen und Verfahren
gemäß der vorliegenden
Erfindung implementiert sind;
-
2 veranschaulicht
in einer Beschreibung eine Informationseinheit gemäß der vorliegenden
Erfindung;
-
3A veranschaulicht
in Blockdiagrammform eine Anschlusssteuereinrichtung gemäß einer speziellen
Implementierung der vorliegenden Erfindung;
-
3B veranschaulicht
in Blockdiagrammform einen Teil der in 3A gezeigten
Anschlusssteuereinrichtung gemäß einer
spezifischen Implementierung der vorliegenden Erfindung;
-
3B veranschaulicht
in Blockdiagrammform einen Teil der in 3A gezeigten
Anschlusssteuereinrichtung gemäß einer
spezifischen Implementierung der vorliegenden Erfindung;
-
4 zeigt
eine erste Datenstruktur, die bei einer Implementierung gemäß der vorliegenden
Erfindung verwendet wird;
-
5 zeigt
ein Datenflussdiagramm, das einen Betrieb der Mechanismen und Verfahren
gemäß der vorliegenden
Erfindung veranschaulicht; und
-
6 veranschaulicht
eine zweite Datenstruktur, die bei einer Implementierung gemäß der vorliegenden
Erfindung verwendet wird.
-
DETAILLIERTE
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
Die
vorliegende Erfindung betrifft eine Datenkommunikationsarchitektur,
die zur effizienten Kommunikation mit Vorrichtungen geringer Bandbreite nützlich ist,
die eine Datenkommunikationsverbindung hoher Bandbreite verwenden.
Die Erfindung wird in Begriffen spezieller Ausführungsformen beschrieben, bei
denen eine Faserkanalverbindung verwendet wird, um Daten zwischen
einem Großrechencomputer
und einer Mehrzahl von peripheren Vorrichtungen, die eine Einzelbyte-Steuerbefehls-Kanalbefehlsgruppenverbindung
(SBCON; engl.: single-byte command channel command set connection)
nutzen, wie zum Beispiel Speichervorrichtungen und Drucker, zu übertragen.
Dieses spezielle Beispiel wird jedoch auf einfache Weise auf allgemeinere
Datenkommunikationsanwendungen erweitert, wo es aus welchem Grund
auch immer erwünscht
ist, Vorrichtungen geringer Bandbreite mit einer Kommunikationsverbindung
hoher Bandbreite zu verbinden. Die vorliegende Erfindung ist insbesondere
in Umgebungen nützlich,
wo die Vorrichtungen geringer Bandbreite einen Leitungsvermittlungskommunikationskanal
unterstützen
und die Verbindung hoher Bandbreite eine Paketvermittlungstechnologie
unterstützt,
wobei aber weitere Anwendungen auf einfache Weise ersichtlich werden.
-
1 veranschaulicht
eine vereinfachte verteilte Rechnerumgebung 100, in der
die vorliegende Erfindung in nützlicher
Weise verwendet wird. Die Umgebung 100 ermöglicht es
einem Großrechencomputer 102,
unter anderem mit ausgewählten SBCON-Vorrichtungen 103 über einen
Direktor 105 zusammen zu wirken. Auch wenn nur ein Großrechner
oder "Host" 102 gezeigt
ist, kann eine typische Umgebung mehrere Hosts umfassen, wobei jeder Host
FC-Verbindungen
und/oder SBCON-Verbindungen aufweisen kann, die mit einem oder mehreren
Direktoren 105 verbunden sind.
-
Die
Rechnerumgebung 100 umfasst auch eine Mehrzahl vor Vorrichtungen,
wie zum Beispiel eine SBCON-Steuereinheit 103, die mit
einem (oder mehreren) Direktoren 105 zum Beispiel über faseroptische
Kabel gekoppelt sind. Der Direktor 105 vermag Paare seiner
Anschlüsse 106,
die in dem speziellen Beispiel von 1 als SBCON-Anschlüsse bezeichnet
sind, dynamisch zu verbinden. Die dynamische Beschaffenheit dieser
Verbindungen über
einen Schalter 108 wird durch die Verbindungen mit gestrichelten
Linien in 1 angedeutet. Jeder einzelne Anschluss 106 ist
zu 1 Verbindung zu einem gegebenen Zeitpunkt in der Lage.
-
Bei
einer speziellen Implementierung ist der Direktor 105 mit
einer Anzahl von Erweitungsslots ausgestattet, in die Anschlusskarten 109 eingesteckt werden
können.
Jede Anschlusskarte umfasst eine Schaltkreisanordnung und Vorrichtungen,
um eine Gruppe von Anschlüssen 106 (z.
B. 8) zu implementieren. Auf diese Weise kann der Direktor 105 erweitert
werden, indem, wie erforderlich, zusätzliche Anschlüsse 106 eingesteckt
werden.
-
Bei
der spezifischen Ausführungsform
von 1 sind eine oder mehrere Brückenvorrichtungen 107 mit
dem Direktor 105 gekoppelt, indem sie zum Beispiel in einen
der Erweiterungsslots eingesteckt werden. Die Brückenvorrichtung 107 ist
mit einer kompatiblen Schnittstelle für den Erweiterungsslot des
Direktors 105 konfiguriert. Idealer Weise kann der Direktor 105 die
SBCON-Anschlüsse 106,
die von der Anschlusssteuerung 107 bereit gestellt werden,
von anderen herkömmlichen
SBCON-Anschlüssen 106 nicht
unterscheiden. Im Gegensatz zu herkömmlichen Anschlusskarten stellt
die Brückenvorrichtung 107 jedoch
eine F_Anschlussschnittstelle für eine
Faserkanalverbindung 101 bereit. Bei dem speziellen Beispiel
unterstützt
ein F_Anschluss acht SBCON-Anschlüsse.
-
Die
Faserkanal-(FC; engl.: fibre channel)-Verbindung 101 wird
implementiert, indem faserkanalgerechte Hardware und Software verwendet werden,
wie zum Beispiel physikalische Kupfer- oder faseroptische Verbindungstechnologie
oder ein verfügbares Äquivalent.
Die Verbindung 101 umfasst eine Punkt-zu-Punkt- oder eine
virtuelle Punkt-zu-Punkt-Verbindung zwischen einem Knotenanschluss
(N_Anschluss), der in 1 mit "N" bezeichnet
ist, und einem Gewebeanschluss (F_Anschluss), der in 1 mit
einem "F" bezeichnet ist.
Auch wenn eine einzelne FC-Verbindung 101 veranschaulicht
ist, ist es vorgesehen, dass bei einem typischen System jede Anzahl
der verfügbaren
Anschlüsse
in dem Großrechner 102 die
vorliegende Erfindung verwenden kann, um eine Verbindung mit einer
Brückenvorrichtung 107 herzustellen.
-
Der
Großrechner 102 umfasst
einen Hochgeschwindigkeitsdatenverarbeitungsrechner und kann als
einzelner Prozessor oder Vorrichtung mit mehreren Prozessoren implementiert
sein. Der Großrechner 102 umfasst
Speichervorrichtungen, auf die von den Prozessoren zur Datenmanipulation und
Softwarebefehlsausführung
zugegriffen werden kann. Der Großrechner 102 umfasst
einen lokalen Massespeicher, Eingangs-/Ausgangs-(I/O)-Vorrichtungen
und weitere verfügbare
Vorrichtungen und Peripheriegeräte,
um Datenausführungserfordernisse
einer speziellen Anwendung zu unterstützen. Ein Teil der Computerprogrammproduktvorrichtungen gemäß der vorliegenden
Erfindung sind in einem Speicher und einem Massespeicher, die dem
Großrechner 102 zugeordnet
sind, gespeichert und werden auf Prozessoren in dem Großrechner 102 ausgeführt. Der
Großrechner 102 kann
unter Verwendung von kommerziell verfügbarer oder von für spezielle Zwecke
vorgesehenen Computerkomponenten und Technologie implementiert sein.
-
SBCON-Steuereinheiten 103 umfassen
jeweils eine oder mehrere gemeinsam genutzte periphere Vorrichtungen,
wie zum Beispiel Drucker, Massespeichervorrichtungen, Magnetplattenlaufwerke, einen
optischen Plattenspeicher, einen Bandspeicher und dergleichen. Es
sollte verständlich
sein, dass die Steuereinheiten 103 durch jegliche Art einer
peripheren Vorrichtung in einer verteilten Rechnerumgebung 100 ersetzt
werden könnten.
-
Die
Brückeneinheit 107 unterstützt eine Voll-Duplex-Kommunikationsverbindung,
die bei einem Minimum von 200 Mbits/s und bis zu 1 Gbit/s oder höher abhängig von
den verfügbaren
Komponenten arbeitet. Jeder der SBCON-Kanalanschlüsse 106 unterstützt bei
dem speziellen Beispiel einen 200 Mbit/s Duplex-Kanal. Im Wesentlichen
arbeitet die Anschlusssteuerung 107 als Multiplexer/Demulitplexer-(MUX/DEMUX)-Einheit,
um die acht 200 Mbit/s Kanäle
zur Übertragung
auf einer 1 Gbit/s Verbindung zu kombinieren.
-
Gemäß der vorliegenden
Erfindung unterstützt
die Brückeneinheit 107 die
Leitungsvermittlungsanforderungen der SBCON-Schnittstelle und einer
Paketvermittlungsverbindung mit dem Großrech ner 102. Jegliche
verfügbare
Mechanismen und Schaltkreise können
verwendet werden, um FC-0 bis FC-1 Übertragungs- und Signalisierungsprotokolle, wie
von der FC-PH-Spezifikation definiert, zu implementieren. Die vorliegende
Erfindung implementiert eine Austauschverknüpfung zwischen Paketen von dem
Großrechner 102 und
einzelnen Schaltkreisen an der Leitungsvermittlungsseite der Anschlusssteuerung 107.
Die Austauschverknüpfung
gemäß der vorliegenden
Erfindung versetzt den Großrechner 102 und
jede SBCON-Steuereinheit 103 in die Lage, Statusinformation über jeden
speziellen Kommunikationsaustausch aufrecht zu halten. Diese Statusinformation
ermöglicht
es, von dem Großrechner 102 erzeugte
Nachrichten mit von einer SBCON-Steuereinheit 103 erzeugten
Antworten zu paaren und umgekehrt. Auf diese weise kann eine Faserkanalkommunikationsverbindung
mit vergleichsweise hoher Geschwindigkeit gemultiplext und wirksam
verwendet werden, um mehrere Kanäle
geringer Bandbreite (z. B. SBCON) zu unterstützen.
-
Die
vorliegende Erfindung verwendet ein Konzept einer "Informationseinheit", die die Basiseinheit
eines Informationsaustauschs zwischen einem Großrechner 102 und einer
Anschlusssteuerung 107 ist. Eine Informationseinheit hat
viele Eigenschaften eines Daten-Frame oder Datenpakets, ist aber
in den Nutzlastteil eines anderen Transportpakets, wie zum Beispiel
ein FC-4-Paket eines Faserkanals, eingebettet. 2 veranschaulicht
eine beispielhafte Informationseinheit 201 gemäß der vorliegenden
Erfindung. Jede Informationseinheit 201 umfasst einen oder
mehrere Frames 202, die zum Beispiel als FC-2 Frames implementiert
sind. Die FC-2 Frames 202 sind im Allgemeinen durch ein
Beginn-des-Frame-(SOF; engl.: start of frame)-Zeichen und ein Ende-des-Frame-(EOF;
engl.: end of frame)-Zeichen begrenzt. Jeder FC-2 Frame umfasst
einen FC-2 Frameheader mit mehreren Bytes, einen optionalen FC-4
Header und Nutzlast oder ein Datenfeld, sowie ein Feld für zyklische
Blockprüfung
(CRC; engl.: cyclic redundancy check) (nicht gezeigt).
-
Der
Großrechner 102 verwaltet
in Zusammenarbeit mit der Brückenvorrichtung 107 eine Mehrzahl
von Austauschvorgängen,
wobei jeder Austauschvorgang einer SBCON-Verbindung entspricht.
Die entsprechende SBCON-Verbindung ist in dem FC-4 Header des empfangenen
FC-Frame 202 spezifiziert. Jeder Austauschvorgang ist für die Dauer
des Austauschvorgangs mit einer spezifizierten SBCON-Verbindung
verknüpft.
Die SBCON-Verbindung wird von auf dem in 1 gezeigten
Großrechner 102 ablaufender
Software festgelegt oder spezifiziert. Der Großrechner 102 erzeugt
eine Verknüpfung
zwischen der SBCON-Verbindung und einer "Austausch-ID",
so dass alle weitere für
diese SBCON-Verbindung bestimmte Kommunikation mit der Austausch-ID
markiert wird. Die Austausch-ID ist im Wesentlichen ein binärer Wert,
der jeden offenen Austauschvorgang eindeutig identifiziert. Andere
Numerierungssysteme zum Wählen
von Austausch-Ids werden ersichtlich und können in äquivalenter Weise substituiert
werden, solange jeder Steuerbefehl eine spezielle SBCON-Verbindung
spezifiziert.
-
Die
Verknüpfung
zwischen einem Austauschvorgang und dem spezifizierten SBCON-Kanal
wird auch von der Brückeneinheit 107 verwendet und
beibehalten. Jede Informationseinheit 201 gehört zu einem
speziellen Austauschvorgang, wie von dem Austausch-ID-Wert in jedem FC-2
Header jedes Frame 202 angegeben. Die Brückenvorrichtung 107 setzt
empfangene FC-2 Frames in SBCON-Frames um und verwendet den Austausch-ID-Wert,
um die SBCON-Frames zu der geeigneten SBCON-Steuereinheit 103 zu übertragen.
-
Der
Schalter 108 erzeugt und verwaltet einzelne Punkt-zu-Punkt-Verbindungen mit
jedem SBCON-Anschluss 106 in dem Direktor 105.
Auch wenn in 1 nur einige Verbindungen angegeben sind,
kann ein typischer Direktor 105 Verbindungen zwischen jedem
Anschluss 106 und jedem anderen Anschluss 106 (bis
zu 248 oder mehr Anschlüsse 106)
verwalten. Wenn ein FC-Frame empfangen und validiert wird, wird
der Frame überprüft, um zu
ermitteln, ob der Frame einem zuvor aufgebauten Austauschvorgang
zugeordnet ist oder alternativ ob ein neuer Austauschvorgang erzeugt
wird. Für
neue Austauschvorgänge
erzeugt der Anschlusscontroller 107 eine SBCON-Verbindungsanfrage
an den Schalter 108. Die SBCON-Verbindungsanfrage umfasst Information,
die aus dem FC-4 Header extrahiert wird, die die Matrixschaltereinheit 108 in
die Lage versetzt, SBCON-Protokollen zu folgen, um eine Verbindung zwischen
dem Kanal und einer speziellen SBCON-Steuereinheit 103 aufzubauen.
Der Schalter 108 gibt einen Antwortkode zurück, der
angibt, ob eine Verbindung aufgebaut wurde, oder, falls vorhanden,
den Zustand angibt, der eine Verbindung verhindert hat (z. B. ein
Besetzt- oder Zurückweisungszustand).
Sobald eine Verbindung aufgebaut ist, setzt die Anschlusssteuerung 107 die
empfangenen Frames in SBCON-Frames um, die zu der spezifizierten SBCON-Schnittstelleneinheit
für die
Dauer des Austauschvorgangs übertragen
werden.
-
3A veranschaulicht
in Form eines Blockdiagramms eine Anschlusssteuerung 107 gemäß einer
spezifischen Implementierung der vorliegenden Erfindung. Eine Eingangseinheit 301 implementiert eine
physikalische FC-0 und eine FC-1 Transportfunktionalität in einer
im Wesentlichen herkömmlichen
dem Standard entsprechenden Weise. Zur Unterstützung des Verständnisses
ist die Beschreibung der vorliegenden Erfindung auf den Großrechner 102 (in 1 gezeigt)
bezogen, so dass die mit einem "TX" bezeichneten Frames
und Pfade eine Übertragung
ausgehend von dem Großrechner 102 betreffen und
die Bezeichnung "RX" für Frames
und Pfade verwendet wird, die zu dem Großrechner 102 gerichtete Daten
betreffen nehmen. Die Eingangseinheit 301 verarbeitet FC-2 Frames unter Verwendung
eines TX-Frame-Handlers 309, die entweder an einen lokalen
Prozessor 302 oder einen von Verbindungscontrollern 303 (in 3 mit LC_0 bis LC_7 bezeichnet) angelegt
werden. Die Eingangseinheit 301 empfängt über einen RX-Frame-Generator 311 auch
FC-2 Framer, die entweder von dem lokalen Prozessor 302 oder
einem der Verbindungskontroller 303 stammen.
-
Der
lokale Prozessor 302 weist Mechanismen auf, um FC-Standard-Grundsequenzen auf
der FC-Verbindung zu steuern. Die Verarbeitung von Grundsequenzen
ist im Wesentlichen von dem FC-Standard spezifiziert und muss nicht
im Einzelnen für
ein vollständiges
Verständnis
der vorliegenden Erfindung verstanden werden. Für ein besseres Verständnis dieser
Techniken ist eine Bezugnahme auf veröffentlichte Faserkanalstandards
geeignet. Für
die vorliegende Erfindung reicht es aus, festzustellen, dass die
Eingangseinheit 301 in Zusammenarbeit mit dem lokalen Prozessor 302 arbeitet,
um die FC-Verbindung bis in einen "aktiven" Zustand einzuordnen, bevor FC-Frames
enthaltende Daten darauf ausgegeben werden.
-
Hinsichtlich
von TX-Frames (d. h. von dem Großrechner 102 empfangene
Frames) wird jeder FC-Frame, der kein gültiger FC-Daten- oder FC-4-Verbindungs-Frame ist,
zu dem lokalen Prozessor 302 weiter geleitet. Dies umfasst
alle FC-2 Frames, wie von dem Weiterleitungssteuer-(R_CTL)-Bits
in dem FC-2 Frame-Header festgelegt, und jeden Frame mit einem SOF-Feld,
das kein Klasse 3 Begrenzungszeichen ist (d. h. Begrenzungszeichentyp
ist auf "SOFi3" oder "SOFn3" festgelegt). Die
Anschlusssteuerung 107 behandelt empfangene Frames abhängig davon
unterschiedlich, ob der Frame für
den lokalen Prozessor 302 oder einen der Verbindungskontroller 303 bestimmt
ist. Im Speziellen wird ein für
den lokalen Prozessor 302 bestimmter Frame frameweise verarbeitet,
wohingegen für
einen Verbindungskontroller 303 bestimmte Frames auf der
Grundlage von Sequenzgrenzen (d. h. Informationseinheit) gehandhabt
werden.
-
Die
Anschlusssteuerung 107 umfasst eine Anzahl von Registern 304 zum
Speichern verschiedener Daten. Einige der Register 304 sind
dahingehend global, als die darin enthaltenen Daten die Anschlusssteuerung
selbst oder alle Verbindungskontroller 303 betreffen, während andere
Register speziellen der Verbindungskontroller 303 entsprechen.
Bei der bevorzugten Implementierung wird der RX-Pfad implementiert,
indem ein eindeutiger Bereich von Austausch-ID-(OX_ID)-Zahlen und
Sequenz-ID-(SEQ_ID)-Werten für
jeden Verbindungkontroller 303 allokiert wird, wobei dieser
Bereich in den Registern 304 gespeichert wird. Die Register 304 werden
auch verwendet, um die Adresse der Anschlusssteuerung und eine Gruppenbasisadresse
zu speichern, deren Bedeutung im Folgenden beschrieben ist. Eine
Anzahl von Werten wird in den Registern 304 gespeichert,
die bei dem Prozess verwendet werden, FC-2 Frames für RX-Daten
zu erzeugen (d. h. zum Gewebe 101 ausgehende Daten). Jede
Anzahl und Größe der Register 304 kann
vorgesehen sein, um die Erfordernisse einer speziellen Anwendung
zu erfüllen.
-
Im
Betrieb führt
die Eingangsseite 301 eine Adressvalidierung an TX-Frames
durch, indem überprüft wird,
ob die Zielidentifikation (D_ID) dem gespeicherten Adressfeld der
Anschlusssteuerung entspricht und ob die Quellenidentifikation (S_ID)
des Frame dem gespeicherten Gruppenbasisadresswert der Anschlusssteuerung
entspricht. Wenn der Frame diesen Adressvalidierungsschritt nicht
erfolgreich durchläuft,
wird der Frame zu dem lokalen Prozessor weiter geleitet. Nach der
Adressvalidierung kann die Anschlusssteuerung 107 weitere
Framevalidierungsüberprüfungen auf
der Grundlage von Information in den FC-2 Headerfeldern durchführen.
-
Die
Anschlusssteuerung 107 weist auch eine Nachschlagetabelle
(LUT; engl.: look-up table) 306 auf. Die LUT 306 (die
detaillierter in 6 gezeigt ist) umfasst für jeden
offenen Austauschvorgang einen Platz, wobei jeder Platz eine Mehrzahl
an Feldern speichert. Bei der bevorzugten Implementierung ist die
LUT 306 für
TX-Frames durch ein OX_ID-Feld indiziert, das einem speziellen offenen
Austauschvorgang entspricht. Bei der bevorzugten Implementierung
ist die LUT 306 für
RX-Frames durch die Verbindungskontrollernummer (d. h. LC_0 bis
LC_7) indiziert. Auf diese Weise können austauschspezifische Daten
von der LUT 306 gespeichert, beibehalten und gelesen werden.
-
Wie
in 3A gezeigt, weist die Steuerung 107 einen
TX-Pufferspeicher 308 und
einen RX-Pufferspeicher 312 auf. Jeder Puffer 308 und 312 weist eine
Mehrzahl an Speicherstellen (d. h. Linien, Einträge, Plätze) auf. Jede Speicherstelle
ist alternativ als Pufferdeskriptor bezeichnet. Jeder Pufferdeskriptor
ist bemessen, um eine Informationseinheit zu speichern. Bei einem
speziellen Beispiel weist der RX-Pufferspeicher 312 dreißig Pufferdeskriptoren auf.
Bei einem speziellen Beispiel weist der TX-Pufferspeicher 308 auch
dreißig
Pufferdeskriptoren auf, von denen ein Teil als "cut-through"-Deskriptoren allokiert ist und von
denen ein anderer Teil als "start-up"-Deskriptoren 307 allokiert
ist.
-
Eine
wichtige Funktion der Anschlusssteuerung 107 besteht darin,
Frames mit einem bestimmten Verbindungskontroller 303 zu
verknüpfen
und Frames zu dem verknüpften
Verbindungskontroller 303 zu leiten. Bevor eine Austauschverknüpfung erstellt
wird, muss ein von der Eingangseinheit 301 präsentierter,
neuer Frame gespeichert oder gepuffert werden, während eine Austauschverknüpfung ermittelt
wird. Der start-up-Puffer 307 stellt diesen Zwischenspeicher
bereit. Vorzugsweise wird die vorliegende Erfindung so implementiert,
dass der Großrechner 102 nicht
mehrere Frames mit der gleichen Austausch-ID senden kann, bis eine
Austauschverknüpfung
erstellt ist. Die start-up-Pufferdeskriptoren 307 sollten
groß genug
sein, um wenigstens einen vollständigen
Frame für
jeden offenen Austauschvorgang oder bei dem speziellen Beispiel
von 3A acht Frames zu speichern. Kleinere start-up-Puffer sind
bei einigen Anwendungen möglich,
wo es unwahrscheinlich ist, dass mehrere Austauschverknüpfungen
gleichzeitig aufgestellt werden.
-
Jede
FC-Frame umfasst Information in seinem Flusssteuerungs(F_CLT)-Feld
in dem FC-2 Header, die angibt, ob er ein erster Frame einer Folge,
ein dazwischen liegender Frame in einer Folge oder ein letzer Frame
in einer Folge ist. Eine Folge entspricht, wie hier verwendet, einer
in 2 gezeigten Informationseinheit 201.
Für jeden
TX-Frame kopiert der TX-Handler 309 das Austausch-ID-Feld (OX_ID)
vom FC-2 Header und fragt die LUT 306 ab, um zu ermitteln,
ob für
diesen Frame bereits eine Austauschverknüpfung erstellt und "offen" ist (bei Fehlen
eines hier im Folgenden beschriebenen Fehlerzustands). Beim Empfang
einer solchen Angabe indiziert der TX-Handler 309 die LUT 306 unter
Verwendung der OX_ID des neuen Frame und prüft, um zu ermitteln, ob ein
Austauschvorgang für
diese OX_ID derzeit offen oder aktiv ist.
-
Anfänglich existiert
keine Austauschverknüpfung.
Der erste Frame eines neuen Austauschvorgangs wird in dem start-up- Deskriptorbereich (307)
gespeichert. Der Frame-Handler 309 führt Operationen durch, um eine
neue Austauschverknüpfung
in der LUT 306 in Antwort auf den Empfang eines FC-Frame
zu erzeugen, der angibt, dass er der erste Frame bei einem Austauschvorgang
ist. Wenn der Eingang 301 einen Frame, der angibt, dass
er der erste Frame bei einem Austauschvorgang ist, erhält, sieht
er nach dem FC-4 Header, der austauschspezifische Steuerdaten aufweist.
-
3B zeigt
eine spezielle Implementierung einer Speicherstruktur, die verwendet
wird, um TX-Pufferspeicher 308 und einen start-up-Deskriptorbereich 307 zu
implementieren. Bei der Implementierung von 3B ist
eine Mehrzahl an Speicherchips 315 so konfiguriert, dass
jeder Chip einem speziellen Verbindungskontroller 303 zugeordnet
ist. Chipauswahlsignale aktivierten selektiv einen speziellen Speicher.
Die Speicherchips 315 nutzen einen gemeinsamen Adressbus
und Datenbus. Das auf dem Adressbus bereit gestellt Adresssignal
gibt eine spezielle Stelle innerhalb jedes Chips 315 an.
-
Bei
der bevorzugten Implementierung werden Längsparitätsprüfungs-(LRC; engl.: longitudinal redundancy
check)-Kodes, die dem FC-4 Header zugeordnet sind, überprüft. Wenn
die LRC-Überprüfung bestanden
ist, wird die SBCON-Verbindungsadresse von dem FC-4 Header extrahiert
und der TX-Handler 309 erzeugt eine SBCON-Verbindungsanfrage
an den Schalter 108 (in 1 gezeigt)
unter Verwendung der extrahierten SBCON-Verbindungsadresse, der
gespeicherten Gruppenanschlussadresse und Gruppenanschlussnummer.
Der Schalter 108 verarbeitet die Anfrage und gibt einen
Antwortkode zurück, der
angibt, dass entweder die Verbindung aufgebaut wurde oder abgelehnt
wurde. Ein Teil der Antwort des Schalters identifiziert den speziellen
Verbindungskontroller 303, der für den neuen Austauschvorgang zu
verwenden ist, vorzugsweise in den niedrigereren drei Bit der Quellennummer,
die von dem Schalter 108 zurück gegeben wird. Die Anschlusssteuerung 107 aktualisiert
dann den Eintrag in der LUT 306 für die OX_ID, die der OX_ID
des empfangenen Frame entspricht, um anzugeben, dass der Austauschvorgang
aktiv ist, und speichert die zurück
gegebene Verbindungscontroller-ID in dem OX_ID-Schlitz der LUT 306,
wodurch die LC-Identifikation mit dieser OX_ID "verknüpft" wird.
-
Wenn
ein start-up-Frame empfangen wird, sind alle Chipauswahlleitungen
aktiv, so dass der start-up-Frame in den gleichen start-up-Deskriptorbereich 307 jedes
Chips 315 geschrieben wird. Wenn eine Verknüpfung für diesen
speziellen Austauschvorgang mit dem Verbindungscontroller 303 fest
gelegt ist, wird diesem Verbindungskontroller eine Angabe des speziellen
start-up-Deskriptors
bereit gestellt. Auf diese Weise wird der anfängliche Frame zu dem geeigneten
Verbindungskontroller 303, der dem Austauschvorgang zugeordnet
ist, weiter geleitet. Der anfängliche
Frame des Austauschvorgangs wird dann von dem start-up-Deskriptor 307 zu
dem verknüpften
Verbindungskontroller 303 weiter geleitet. Das Ergebnis
eines Verknüpfungsprozesses
besteht darin, dass ein spezieller Verbindungskontroller 303 dem
Austauschvorgang zugeordnet ist und ein spezieller TX-Pufferspeicherdeskriptor 308 (auch
als "start-up"-Deskriptor bezeichnet)
dem speziellen Verbindungskontroller 303 zugeordnet ist.
Für dazwischen
liegende und abschließende
Rahmen in einer Folge wird die Information des FC-2 Header nicht
benötigt,
weil sie der Information des FC-2 Header des ersten Frame bei dem
Austauschvorgang entspricht. Dazwischen liegende und abschließende Frames werden
statt dem start-up-Deskriptor 307, der für den anfänglichen
Frame verwendet wird, in ihren zugeordneten cut-through-Deskriptor 308 gerichtet.
Die cut-through-Deskriptoren arbeiten als Ringliste. Eine vorhandene
Austauschverknüpfung
wird für
dazwischen liegende Frames verwendet und eine vorhandene Austauschverknüpfung wird
geschlossen oder entfernt, wenn das F_CTL Feld ein Ende eines Austauschvorgangs
angibt.
-
Wie
oben angemerkt, werden bei der bevorzugten Ausführungsformen CRC-Überprüfungen an dem
gesamten FC-2 Frame durchgeführt,
bevor die Frames verarbeitet werden. Alle CRC-Fehler, die üblicher
Weise eine Art eines Übertragungsfehlers
angeben, sollten über
eines der Register 304 gemeldet werden. Für anfängliche
Frames, wird die CRC-Überprüfung vorzugsweise
durchgeführt,
be vor die Verarbeitung der Verknüpfungsanfrage
begonnen wird, so dass der CRC-Fehler detektiert wird, bevor die
Prozesse begonnen haben, eine neue Austauschverknüpfung zu
erzeugen. Wenn eine neue Austauschverknüpfung erzeugt ist, bevor der
CRC-Fehler detektiert ist, sollte der lokale Prozessor 302 durch
einen Interrupt-Kode benachrichtigt werden, was den lokalen Prozessor 302 veranlasst,
eine Prozedur zur Handhabung von Fehlern auszuführen. Wünschenswerter Weise wird der
D_ID-Wert, der für
die Matrixkontrollerverbindungsanfrage verwendet wird, zurück gehalten,
bis die CRC validiert ist. Ein Frame, der einen CRC-Fehler aufweist,
wird wünschenswerter Weise
verworfen.
-
Jeder
Verbindungscontroller 303 umfasst einen Speicher, in dem
eine Anzahl an TX-Pufferdeskriptoren und RX-Pufferdeskriptoren implementiert ist.
Die TX-Pufferdeskriptoren speichern Steuer- und Nutzlastdaten, die erforderlich
sind, um SBCON-Frames zu bilden. In vergleichbarer Weise speichern RX-Pufferdeskriptoren
Steuer- und Nutzlastdaten, die erforderlich sind, um FC-Frames zu
bilden. Das Format eines einzelnen RX/TX-Pufferdeskriptors, das
in 4 gezeigt ist, wird bei der bevorzugten Implementierung
verwendet. Das in 4 gezeigte Deskriptorformat
gibt eine spezielle Wortorganisation an, um das Verständnis zu
erleichtern, es sollte jedoch ersichtlich sein, dass sich ein RX/TX-Pufferdeskriptor
deutlich von der Größe, Organisation
und den relativen Proportionen unterscheiden kann, die in 4 gezeigt
sind, ohne sich dabei von den Lehren der vorliegenden Erfindung
zu entfernen.
-
Die
in den TX/RX-Pufferdesriptoren 308 und 312 gespeicherte
Steuerinformation umfasst eine Deskriptorsteuerung (DESC_CTL), eine
Routingsteuerung (R_CTL) und eine Informationseinheitensteuerung
(IU_CTL), die angibt, ob die IU eine anfängliche, eine dazwischen liegende
oder eine letzte Informationseinheit bei einem Austauschvorgang
ist. Das Deskriptorsteuerfeld wird verwendet, um Werte zu speichern,
die zum Beispiel den Besitz des Deskriptors, Zustandsinformation
und andere deskriptorspezifische Managementwerte angeben. Das Routingsteuerfeld
und Typenfelder werden von dem FC-2 Header des entsprechenden FC-Frame kopiert.
Das IU_CTL-Feld entspricht dem Framesteuer-(F_CTL)-Feld eines herkömmlichen
FC-2 Header, umfasst aber nur Werte, die statt einen FC-Frame eine "Informationseinheit" betreffen. Ein Bytezählerfeld
speichert einen Wert, der die Anzahl an Bytes in dem Nutzlastpufferteil
angibt, wodurch es ermöglicht wird,
dass Frames variierender Größe für einen
wirksamen Transport von Daten sorgen.
-
Das
FC-4 Headerfeld wird in seiner Gesamtheit in den RX/TX-Pufferdeskriptor
kopiert und der übrige
Bereich wird den FC-4 Nutzlastdaten zugeordnet. Es sollte beachtet
werden, dass herkömmliche FC-Frames
eine maximale Nutzlastgröße von etwa
2 K Byte haben, während
herkömmliche
SBCON-Frames eine maximale Nutzlastgröße von etwa 1 K Byte haben.
Dem entsprechend kann jeder Pufferdeskriptor genug Nutzlastdaten
für mehrere
SBCON-Frames oder
FC-Frames speichern. Der Anschlusskontroller 107 ist für das Segmentieren
der Folge in eine geeignete Anzahl an Frames verantwortlich. Vorzugsweise
ist außer
einem Frame am Ende der Folge jeder Frame ein FC-Frame mit maximaler
Länge.
-
Während einer
Frameverarbeitung werden die verschiedenen Felder in dem TX-Pufferdeskriptor und
RX-Pufferdeskriptor mit Nutzlast- und Headerdaten gefüllt. Der
TX-Framehandler 309 arbeitet, um Frames in dem TX-Pufferspeicher 308 anzuordnen. Die
Verbindungskontroller 303 verwenden die Daten von den TX-Pufferdeskriptoren 308,
um SBCON-Frames zur Übertragung
zu der Schalterschnittstelle 313 zu erzeugen. Der RX-Framegenerator 311 verwendet
die Daten von den RX-Pufferdeskriptoren 312, um FC-Frames
zur Übertragung
zum Eingang 301 zu erzeugen.
-
Es
ist vorgesehen, dass ein typischer Austauschvorgang mehrere Informationseinheiten
umfasst. In vergleichbarer Weise binden mehrere Informationseinheiten
oder Folgen mehrere FC-Frames ein. Jeder FC-Frame umfasst eine Menge
an Nutzlastdaten, die schließlich
in ein Informationsfeld eines oder mehrerer SBCON-Frames übertragen
wird, aber es wird oftmals keine 1:1 Entsprechung zwischen FC-Frames
und SBCON-Frames geben. Auch für
Folgen mit mehreren Frames wird nur der Nutzlastteil der nachfol genden
Frames der Folge in das Informationsfeld des Deskriptors geschrieben.
Duplizierte Information in dem FC-2 Header von nachfolgenden Frames
wird nicht kopiert. Somit unterscheidet sich die Menge an Daten,
die tatsächlich
in die TX-Pufferdeskriptoren gespeichert werden, von der tatsächlichen
Menge an Daten in den entsprechenden FC-2 Frames.
-
Für Folgen
mit mehreren Frames hält
der Anschlusskontroller 107 eine Bytezählung von "tatsächlicher" FC-4 Nutzlast über die
gesamte Folge aufrecht. Eine "tatsächliche
FC-4 Nutzlast" bezeichnet den
Teil der Nutzlast, der tatsächlich
in die SBCON-Informationsfelder
kopiert wird, wobei daher Headerinformation in den FC-4 Frames nicht
gezählt wird.
Dieser Wert für
tatsächliche
Nutzlast wird in den SBCON-Frame eingebracht, so dass der Verbindungskontroller
entsprechend antworten kann. Der Anschlusskontroller 107 ist
für die
Detektion von Folgen mit mehreren Frames verantwortlich, wobei ein Schreibpointer
innerhalb von Speicherstrukturen jedes Verbindungskontrollers (303)
für die
nachfolgenden Frames beibehalten wird. Zusätzlich werden das Typenfeld,
das R_CTL-Feld des FC-2 Header als Teil der Deskriptorinformation
aufgenommen. Wenn die vollständige
Folge in dem bzw. die TX-Pufferdeskriptor(en) kopiert worden ist,
verlagert die Anschlusssteuereinheit 107 den Besitz des
bzw. der gesamten Deskriptor(en) zu dem zugeordneten Verbindungscontroller
und paßt
seinen Pointer dem nächsten TX-Pufferdeskriptor
an, um den nächsten
Frame für die
aktuelle Austauschverknüpfung
zusammen zu setzen und zu verarbeiten.
-
Wenn
die Anschlusssteuereinheit 107 eine neue Folge erhält, sollte
sie verifizieren, ob sie im Besitzt des cut-through-Pufferdeskriptors
ist, bevor er verwendet wird. Wenn die Anschlusssteureinheit 107 den
Pufferdeskriptor nicht besitzt (z. B. Besitz ist bereits an einen
Vebindungskonroller 303 übertragen worden) und eine
neue Folge empfangen wird, dann liegt ein Überlaufzustand vor und sollte
in den Fehlerstatusregistern der Register 304 angegeben
werden. Die Anschlusssteuereinheit 107 sollte in Antwort
auf alle nachfolgende Folgen bei diesem Aus tauschvorgang einen Fehlerkode
für eine
fehlende Folge erzeugen.
-
Zur
Verarbeitung von RX-Frames (d. h. aus dem Gewebe 101 nach
außen)
hat der Anschlusskontroller 107 die Verantwortlichkeit,
aus RX-Pufferdeskriptoren, die von jedem Verbindungskontroller 303 oder
von dem lokalen Prozessor 302 erzeugt werden, einen FC-2
Frame zu erzeugen und zu übertragen.
Jeder Anschlusskontroller 107 weist einige globale Register
innerhalb der Register 304 sowie eine Gruppe von Registern
für jeden
Verbindungskontroller 303 auf, der bei der Erzeugung des
FC-2 Header mitwirkt. Die globalen Register umfassen ein Register,
um die Adresse des Anschlusskontrollers und eine Gruppenbasisadresse
zu speichern, die, wie hier zuvor angegeben, für die S_ID und die D_ID des
FC-2 Header verwendet werden. Die globalen Register umfassen auch
Register, um einen Fehlerstatus und globale Parameter zu speichern,
wie z. B. eine maximale Framegröße und dergleichen.
-
Eine
bedeutsame Funktion zum Verarbeiten von RX-Frames besteht darin,
die Zuordnung von OX_IDs und eine Folgennummerierung für Frames zu
verwalten, die von einer SBCON-Steuereinheit 103 stammen.
Ein verbindungskontrollerspezifisches Register wird verwendet, um
einen OX_ID-Wert zu speichern, der die Start-OX_ID für diesen Verbindungskontroller 303 angibt.
Ein weiteres verbindungskontrollerspezifisches Register wird verwendet,
um einen Wert zu speichern, der die Anzahl der OX_IDs für diesen
Verbindungskontroller 303 angibt. Weitere Register speichern
einen ID-Wert für
den Anfang der Folge und einen Wert, der die maximale Anzahl an
Folgen für
den zugeordneten Verbindungskontroller angibt. Weitere Register
können
verwendet werden, um die Bedürfnisse
einer speziellen Anwendung zu erfüllen.
-
Das Übrige des
FC-2 Header wird aus den R_CTL- und Informationseinheitensteuer-(IU_CTL)-Feldern
des RX-Pufferdeskriptors erzeugt. Das IU_CTL wird verwendet, um
das obere Byte des F_CTL zu erzeugen und gibt an, ob eine IU die
erste IU bei einem Austauschvorgang oder eine letzte IU in einem
Austauschvorgang ist. Wenn eine Austauschverknüpfung erzeugt ist, liegt es
in der Verantwortlichkeit des Anschlusskontrollers 107,
die F_CTL-Bits und
Begrenzungstypen für
das FC-2 SOF-Feld zu erzeugen, das Folgen für die Dauer des Austauschvorgangs
angibt. Der SEQ_CNT-Wert für jeden
Verbindungskontroller wird in einem der Register 304 gespeichert
und ist als freilaufender Zähler implementiert,
der sich mit jedem bei der bevorzugten Implementierung gesendeten
Frame erhöht.
Der SEQ_CNT-Wert wird am Ende einer Folge auf Null zurück gesetzt,
so dass jede Folge mit SEQ_CNT = 0 beginnt. Auf diese Weise kann
ein Fehlerzustand (d. h. ein fehlender Frame) detektiert werden,
wenn Frames ankommen, die ein SEQ_CNT angeben, das nicht gleich
Null ist, sondern auf andere Weise als der erste Frame einer Folge
auftreten.
-
Wenn
ein LC 303 (Anmerkung: LC = Verbindungskontroller) eine
FC-4 Folge beendet, übergibt er
den Besitz des zugeordneten RX-Deskriptors
an den Anschlusskontroller 107, um anzugeben, dass die
IU bereit ist. Die RX-Deskriptoren in dem RX-Pufferspeicher 312 werden
in Round-Robin-Weise abgefragt, um IUs zu identifizieren, die zum
Senden bereit sind. Jedes Mal, wenn eine IU, die bereit ist, identifiziert
wird, werden die Pufferdeskriptorenbesitzbits verifiziert und der
Pufferdeskriptorbytezählerwert wird
ausgelesen. FC-2 Headerinformation wird ausgelesen und ein FC-2
Frame wird von dem Framegenerator 311 zur Übertragung
auf der FC-Verbindung erzeugt. Wenn der Framegenerator 311 die
Folge abgeschlosen hat, übergibt
der Anschlusskontroller 107 den Besitz dieses Descriptors
zurück
an den Verbindungskontroller 303.
-
5 zeigt
ein Datenflussdiagramm, das einen Betrieb der Mechanismen und Verfahren
gemäß der vorliegenden
Erfindung veranschaulicht. Eine Softwareanwendung 501 läuft auf
einem in 1 gezeigten Großrechner 102 ab.
Die Softwareanwendung 501 erzeugt eine Informationseinheit
(mit "IU" bezeichnet), die
zu einem N_Anschluss 502 gesendet wird, der dem Großrechner 102 zugeordnet
oder in diesen integriert ist. Die Softwareanwendung 501 ordnet
eine Ursprungsaustauschidentifikation (OX_ID; engl.: Originator
eXchange IDentification) zu. Diese OX_ID wird auf herkömmliche
Weise zugeordnet, so dass ein eindeutiger OX_ID-Wert gewählt wird, um einen gegebenen
Austauschvorgang zu identifizieren, und alle Informationseinheiten,
die an diesem Austauschvorgang teilnehmen, werden mit der zugeordneten
OX_ID bezeichnet. Jeder Mechanismus kann verwendet werden, um die
OX_ID zuzuordnen, einschließlich
einer einfachen sequentiellen Zuordnung.
-
Die
IU wird in einem FC-Frame auf herkömmliche Weise transportiert
und zu dem Anschlusskontrollereingang 301 weiter geleitet.
Der Eingang 301 entfernt die FC-2 Headerinformation, um
die Informationseinheit wieder zu gewinnen. Die Informationseinheit
wird dann zu dem geeigneten Verbindungskontroller weiter geleitet,
der gemäß der hier
oben beschriebenen Methodik zur Austauschverknüpfung ermittelt wird. Für neue Frames
erzeugt der empfangende Verbindungskontroller 303 einen "Steuerblock", der Information
aus dem FC-2 Header umfasst, die benötigt wird, um einen Antwortframe
für den
Großrechner 102 zu
erzeugen. Der Steuerblock wird bei den speziellen Beispielen als
Feld in der LUT 306 gespeichert. Ein oder mehrere SBCON-Frames werden
erzeugt und zu der SBCON-Steuereinheit 103 gesendet.
-
Typischerweise
erzeugt die SBCON-Steuereinheit einen Antwortframe, wie z. B. ein
ACCEPT, der zurück
zu der Anschlusssteuereinheit 107 übertragen wird. Die S_ID des
empfangenen SBCON-Pakets
wird zu der Gruppenbasisadresse gesendet. Weil eine Schaltkreisverbindung
zwischen der SBCON-Steuereinheit und dem speziellen Vebindungskontroller 303 für die Dauer
des Austauschvorgangs aufgebaut bleibt, wird die SBCON-Antwort von dem
richtigen Verbindungskontroller 303 empfangen.
-
Der
Verbindungskontroller formatiert den SBCON-Frame erneut in eine
Informationseinheit, wobei die gespeicherten Framedaten in dem zuvor gespeicherten
Steuerblock verwendet werden. Der Verbindungskontroller 303 weist
für die
Eingangseinheit 301 eine Angabe darüber auf, ob der Frame an einem
offenen Austauschvorgang teilnimmt oder wann ein neuer Austauschvorgang
erzeugt werden muss. Für
neue Austauschvorgänge
ordnet der Verbindungskontroller einen OX_ID-Wert aus seinem zugeordneten
Datenbereich zu. Für
vorhandene Austauschvorgänge
wird die Informationseinheit mit dem eindeutigen OX_ID-Wert bezeichnet,
der diesen Austauschvorgang identifiziert. Die Eingangseinheit 301 erzeugt
einen FC-2 Frame, der über
das Gewebe 101 zurück
zu dem Großrechner 102 gesendet wird.
-
Die
Softwareanwendung 501 ermittelt auf der Grundlage des OX_ID-Werts,
der in dem FC-2 Header des empfangenen Frame gespeichert ist, ob dieser
Frame mit einer zuvor ausgegebenen Informationseinheit in Beziehung
steht, die die gleiche OX_ID trägt.
An dieser Stelle ist ein Austauschpaar offen und Pakete können über das
Gewebe 101 hin und her gesendet und in Reihenfolge von
der SBCON-Steuereinheit 103 empfangen werden. Das Austauschpaar
bleibt offen, bis sowohl nach außen als auch nach innen gerichtete
Austauschvorgänge entweder
ausdrücklich
oder implizit durch Fehler- oder Zeitablaufzustände beendet sind.
-
Wichtig,
die Softwareanwendung 501 kann mehrere gleichzeitige Austauschvorgänge aufbauen und
dadurch weitere Pakete zu anderen SBCON-Verbindungen senden, während sie
auf eine Antwort für
die erste SBCON-Verbindung wartet. Dem entsprechend können bis
zu acht oder vielleicht mehr Austauschvorgänge gleichzeitig mit jedem
Austauschvorgang offen sein, der Daten einem unabhängigen Kanal
mit 200 Mbit pro Sekunde zuführt.
Aus der Perspektive des Knotenanschlusses ist ein einzelner Austauschvorgang
zwischen sich selbst und der Eingangseinheit 301 öffnen und
alle Pakete werden an diesen Austauschvorgang adressiert.
-
6 veranschaulicht
eine vereinfachte Struktur für
die LUT 306. Die LUT 306 kann als logische Tabellendatenstruktur
oder eine inhaltsadressierbare Speicherstruktur implementiert sein,
die durch den OX_ID-Eintrag indiziert ist. Jeder Schlitz 601 umfasst
eine Mehrzahl von Einträgen
oder Feldern. Zustandsinformation gibt an, ob der zugeordnete Austauschvorgang
geschlossen, offen (d. h. eine Anfrage an die Matrixschaltereinheit 108 ist
anhängig)
und aktiv ist (d. h. eine Verknüpfung ist
aufgebaut worden). Das "Verknüpfungs"-Feld speichert eine Gruppenmitgliedsidenfikation,
die den speziellen Verbindungskontroller 303 angibt, der
mit diesem Austauschvorgang verknüpft ist. Das SEQ_ID-Feld speichert
die ID der FC-2 Folge des letzten Frame, der bei diesem Austauschvorgang
empfangen wurde. Das SEQ_FLG-Feld gibt an, ob eine Folge bei diesem
Austauschvorgang aktiv oder beendet ist. Für Folgen mit mehreren Frames
gibt das SEQ_CNT-Feld an, ob dies die letzte empfangene FC-2 Folgenzählung ist
und das R_CTL-Feld speichert das Informationskategoriefeld des FC-2
R_CTL vom ersten Frame der Folge. Das Fehlerfeld gibt an, ob bei
der aktuellen Folge ein Fehler detekiert wurde, und kann einen kodierten
Wert speichern, der den Fehlertyp angibt.
-
Bei
einer speziellen Implementierung führt der lokale Prozessor 302 während der
Initialisierung oder des Starts eine Statusüberprüfung hinsichtlich der Verbindungskontroller
in dem Anschlusskontroller 107 durch, um deren Betriebszustand
zu ermitteln. Ein spezieller Anschlusskontroller 107 kann
weniger als acht installierte LCs 303 aufweisen, und ein oder
mehrere LCs 303 können
aus verschiedenen Gründen
nicht betrieben sein. Bei der speziellen Implementierung wird ein
offener Austauschvorgang jedem betriebsbereiten Verbindungskontroller 303 oder
bei dem Beispiel von 3A maximal acht zugeordnet.
Der lokale Prozessor 302 erzeugt einen FC-4 Brückensteuerframe,
um die Anzahl an zugelassenen offenen Austauschpaaren angibt.
-
Der
Großrechner 102 (in 1 gezeigt)
kann nicht alle Pakete zu einem Austauschvorgang senden, bis er
von dem Anschlusskontroller 107 diese Austauschkredite
empfangen hat. Mit anderen Worten, der Anschlusskontroller 107 weist
alle Pakete zurück,
die mit einer OX_ID gesendet werden, die einem Austauschvorgang
entspricht, der geschlossen ist. Wenn ein Paket gesendet wird, das
es erfordert, dass ein neuer Austauschvorgang aufgebaut wird, gibt
der Großrechner 102 einen
Austauschkredit aus. Wenn der Großrechner 102 all seine
Austauschkredite ausgegeben hat, kann er keine Nachrichten zu einem
neuen Austauschvorgang senden, bis sich ein existierender Austauschvorgang
schließt.
Wenn ein Austauschvorgang geschlossen wird, erzeugt der Anschlusskontroller 107 eine
FC-4 Brückensteuernachricht,
die dem Großrechner 102 Austauschkredit(e)
gibt, die dem nun geschlossenen Austauschvorgang entspricht (entsprechen).
-
Es
ist vorgesehen, dass die Austauschkredite bei Laufzeit sowie bei
Initialisierung dynamisch ermittelt werden. Der lokale Prozessor 302 kann
einen lokalen Kontroller 303 herunter fahren oder deaktivieren,
indem ein weiterer FC-4 Brückensteuerframe
zu dem Großrechner 102 gesendet
wird, der die Austauschkredite für
diesen speziellen Verbindungskontroller entfernt.
-
Während des
Betriebs erfordert es die bevorzugte Implementierung, dass der Kanal
keine Frames zu einer OX_ID senden kann, bis er eine Bestätigung empfangen
hat, dass der anfängliche
Frame dieser Folge empfangen ist und dass ein Austauschvorgang aufgebaut
wurde. Dieses Merkmal vermeidet ein Überlaufen des TX-Deskriptorpuffers
beim Start. Wenn der Kanal mehrere Nachrichten zu der gleichen Austauschnummer
(unter Verwendung der gleichen OX_ID) senden darf, könnte die
Framerate höher
sein, als der Anschlusskontroller 107 diese verarbeiten
könnte.
-
Eine
Synchronisationsstelle sollte bei allen neuen nach außen gerichteten
Austauschvorgängen zwischen
dem Großrechner
und dem Verbindungskontroller 303, der mit diesem Austauschvorgang verknüpft ist,
bereit gestellt werden. Dies ist unabhängig von dem Zusammenhang des
nach außen gerichteten
Austauschvorgangs erwünscht,
d. h. Szenarien mit Datenabruf vs. ohne Datenabruf oder "Versendungsdurchgang" (engl.: ship passing).
Dieses Erfordernis besteht aufgrund der Latenz, die mit einer Verarbeitung
eines neuen nach außen
gerichteten Austauschvorgangs verbunden ist. Es gibt keinen weiteren
Mechanismus, um zurück
zu dem Großrechner 102 zu übermitteln,
dass die Verknüpfung zwischen
der OX_ID und einem Verbindungskontroller 303 vorgenommen
wurde. Bis die Verknüpfung
für diese
OX_ID von dem Anschlusskontroller 107 aufgebaut ist, kann
die Lieferung von nachfolgenden Folgen auf dieser OX_ID nicht garantiert
werden.
-
Auch
wenn die Erfindung mit einem speziellen Grad an Ausführlichkeit
beschrieben und veranschaulicht worden ist, ist es verständlich,
dass die vorliegende Offenbarung nur beispielshalber vorgenommen
wurde, und dass auf viele Änderungen
der Kombination und Anordnung von Teilen von Fachleuten auf dem
Gebiet zurück
gegriffen werden kann, ohne sich dabei von der Erfindung, wie im
Folgenden beansprucht, zu entfernen.
-
1
- SBCON
PORT
- SBCON-Anschluss
- SBCON
CONTROL UNIT
- SBCON-Steuereinheit
- SWITCH
- Schalter
-
2
- HEADER
- Header
- PAYLOAD
- Nutzlast
-
3A
- PORT
CONTROL
- Anschlusssteuerung
- LOCAL
PROCESSOR
- lokaler
Prozessor
- RX
FRAME GEN
- RX-Frame
Generator
- RX
BUFFER MEMORY
- RX-Pufferspeicher
- FC
FRAME
- FC-Frame
- FRONT
END
- Eingang
- TX
BUFFER MEMORY
- TX-Pufferspeicher
- SWITCH
I/F
- Schalterinterface
- TX
FRAME HANDLER
- TX-Framehandler
-
3B
- CHIP
SELECT
- Chipauswahl
- STARTUP
DESCRIPTOR
- start-up-Deskriptor
- ADRESS
- Adresse
- DATA
- Daten
- CUT
THROUGH DESCRIPTOR(S)
- cut-through-Deskriptor(en)
-
4
- WORD
- Wort
- CONTEXT
- Kontext
- RESERVED
- reserviert
- BYTE
COUNT
- Byte-Zählung
- FC-4
PAYLOAD BUFFER
- FC-4
Nutzlastpuffer
-
5
- EXCHANGE
PAIRS
- Austauschpaare
- FRONT
END
- Eingang
- CONTROL
BLOCK
- Steuerblock
- SBCON
CONTROL UNIT
- SBCON-Steuereinheit
-
6
- STATE
- Status
- BIND
- Verknüpfung
- ERROR
- Fehler