[go: up one dir, main page]

DE60212626T2 - Endknotenunterteilung mittels lokaler identifikatoren - Google Patents

Endknotenunterteilung mittels lokaler identifikatoren Download PDF

Info

Publication number
DE60212626T2
DE60212626T2 DE60212626T DE60212626T DE60212626T2 DE 60212626 T2 DE60212626 T2 DE 60212626T2 DE 60212626 T DE60212626 T DE 60212626T DE 60212626 T DE60212626 T DE 60212626T DE 60212626 T2 DE60212626 T2 DE 60212626T2
Authority
DE
Germany
Prior art keywords
hca
exchange
data
connection
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60212626T
Other languages
English (en)
Other versions
DE60212626D1 (de
Inventor
David New Paltz CRADDOCK
Arlen David Austin ELKO
Anthony Thomas Highland GREGG
Francis Gregory Austin PFISTER
John Renato Austin RECIO
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE60212626D1 publication Critical patent/DE60212626D1/de
Application granted granted Critical
Publication of DE60212626T2 publication Critical patent/DE60212626T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4416Network booting; Remote initial program loading [RIPL]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Description

  • Die vorliegende Erfindung betrifft allgemein Datenübertragungen zwischen Rechnersystemen.
  • In einem Systembereichsnetzwerk (System Area Network – SAN) stellt die Hardware einen Nachrichtenweiterleitungsmechanismus bereit, der für Datenübertragungen zwischen Eingabe-/Ausgabe-(E/A-)Einheiten und für Zwischenprozess-Datenübertragungen zwischen allgemeinen Rechnerknoten (IPC) genutzt werden kann. Nutzer greifen auf die SAN-Nachrichtenweiterleitungshardware zu, indem sie Sende-/Empfangsnachrichten in Sende-/Empfangsarbeitswarteschlangen in einem SAN-Kanaladapter (CA) stellen. Die Sende-/Empfangsarbeitswarteschlangen (WQ) werden einem Nutzer als Warteschlangenpaar (QP) zugewiesen. Die Nachrichten können über fünf verschiedene festgelegte Verbindungsarten gesendet werden: "Reliable Connected" (RC) (zuverlässig verbunden), "Reliable Datagram" (RD) (zuverlässiges Datagramm), "Unreliable Connected" (UC) (unzuverlässig verbunden), "Unreliable Datagram" (UD) (unzuverlässiges Datagramm) oder "Raw Datagram" (RawD) (Rohdatagramm). Überdies gibt es einen Satz von Operationscodes, die vom jeweiligen Hersteller festgelegt werden können und es verschiedenen Unternehmen ermöglichen, kundenspezifische Pakete festzulegen, bei denen der Weiterleitungs-Kopfbereich (routing header) dennoch gleich gestaltet ist. Nutzer rufen die Ergebnisse der festgelegten Nachrichten aus einer Abarbeitungswarteschlange (completion queue, CQ) über SAN-Sende- und -Empfangsarbeitsfertigstellungen (work completions, WC) ab. Bei den vom Hersteller definierbaren Operationen wird nicht festgelegt, ob sie dieselbe Warteschlangenstruktur wie die festgelegten Paketarten verwenden. Ungeachtet der Art des Pakets besteht die Aufgabe des Quellenkanaladapters darin, abgehende Nachrichten zu segmentieren und sie an das Ziel zu versenden. Die Aufgabe des Zielkanaladapters besteht darin, eingehende Nachrichten wieder zusammenzusetzen und sie in den vom Nutzer des Ziels festgelegten Speicherbereich zu stellen. Es gibt zwei Arten von Kanaladaptern, einen Host-Kanaladapter (HCA) und einen Zielkanaladapter (TCA). Der Host-Kanaladapter wird von Universalrechnerknoten verwendet, um auf das SAN-Schaltnetzwerk (SAN fabric) zuzugreifen. Um auf Funktionen des Host-Kanaladapters zuzugreifen, verwenden Nutzer die Schnittstelle SAN-Verbs. Die Software, die Verbs auswertet und direkt auf den Kanaladapter zugreift, wird als Kanalschnittstelle (channel interface, CI) bezeichnet.
  • Komponenten von InfiniBand (ein Warenzeichen. der InfiniBand Trade Association) wird während der Initialisierung eine lokale Kennung (Local Identifier, LID) zugewiesen. Mittels der LID wird eine Komponente in einem Teilnetzwerk angesprochen. Alle InfiniBand-Pakete enthalten eine Quellen-LID (Source LID) und eine Ziel-LID (Destination LID), die die Quellen- und die Zieladresse des Pakets in dem Teilnetzwerk angeben. InfiniBand-Komponenten wird auch mindestens ein Partitionsschlüssel (Partition Key, P_Key) zugewiesen. Der P_Key dient zur Unterteilung eines InfiniBand-Schaltnetzwerks in ein oder mehrere Gruppen. InfiniBand-Komponenten werden dann in eine oder mehrere dieser Gruppen aufgenommen. Alle anderen Datenübertragungen sind gestattet. Die Endknoten werden in Partitionen gruppiert, und der Zugriff wird über den P_Key gesteuert. Im Wesentlichen ermöglicht der Partitionierungsmechanismus von InfiniBand Hosts, Adapter und gemeinsam benutzte Adapter kontrolliert bereitzustellen.
  • InfiniBand stellt jedoch keinen Mechanismus zur Partitionierung eines Endknotens bereit, so dass mehrere Betriebssysteminstanzen einen einzigen Anschluss (port) eines Kanaladapters gemeinsam benutzen, während sie gleichzeitig kontrollierten Zugang zu einem InfiniBand-Teilnetzwerk erhalten. Systeme nach dem Stand der Technik fügen üblicherweise einen oder mehrere zusätzliche Paket-Kopfbereiche hinzu, um die Betriebssysteminstanz zu kennzeichnen. Durch das Hinzufügen von einem oder mehreren Paket-Kopfbereichen wird die Datenübertragung komplexer. Daher stellt dieses Nichtvorhandensein eines Mechanismus zur Partitionierung eines Endknotens ein Problem für Server der oberen Leistungsklasse dar, die eine Partitionierung bei ihrer Verarbeitung und eine Partitionierung von Speicherressourcen mittels logischer oder physischer Partitionierung unterstützen.
  • Daher besteht Bedarf an einem Mechanismus, der es ermöglicht, dass eine einzige physische Komponente als mehrere Komponenten erscheint, wobei jede einzelne Komponente ganz eigene Zugriffssteuerungsebenen hat. Bei den Komponenten kann es sich um Host-Kanaladapter (HCAs), Zielkanaladapter (TCAs) oder Vermittlungsstellen handeln.
  • Die vorliegende Erfindung stellt ein Verfahren nach Anspruch 1, ein entsprechendes System nach Anspruch 2 und ein Rechnerprogrammprodukt nach Anspruch 3 bereit.
  • Die neuartigen Merkmale, die als kennzeichnend für die Erfindung erachtet werden, sind in den beigefügten Ansprüchen dargelegt. Die Erfindung selbst jedoch sowie eine bevorzugte Verwendungsart, weitere Aufgaben und Vorteile der Erfindung lassen sich am besten durch Bezugnahme auf die folgende ausführliche Beschreibung einer der Veranschaulichung dienenden Ausführungsform verstehen, wenn diese in Verbindung mit den beigefügten Zeichnungen gelesen wird, in denen:
  • 1 ein Netzwerkrechnersystem gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung darstellt;
  • 2 eine Funktionsübersicht eines Host-Prozessorknotens gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung zeigt;
  • 3 einen Host-Kanaladapter gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung darstellt;
  • 4 die Verarbeitung von Arbeitsanforderungen gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung darstellt;
  • 5 ein Datenpaket gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung veranschaulicht;
  • 6 eine physische Komponente mit virtuellen Kanaladaptern und virtuellen Vermittlungsstellen gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
  • 7 ein beispielhaftes Flussdiagramm ist, das eine Operation bei einem statischen Auswahlsystem zur Konfiguration eines physischen Elements gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung darstellt;
  • 8 ein beispielhaftes Flussdiagramm ist, das zeigt, wie Host-Kanaladapter und zugehörige Knoten gemeldet werden, wenn sie gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung in Betrieb gehen oder außer Betrieb genommen werden; und
  • 9 ein beispielhaftes Flussdiagramm ist, das eine Operation bei einem dynamischen Auswahlsystem zur Konfiguration eines physischen Elements gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung darstellt.
  • Ein Netzwerkrechnersystem hat Endknoten, Vermittlungsstellen, Router und Verbindungsleitungen, die diese Komponenten miteinander verbinden. Die Endknoten teilen die Nachricht in Pakete auf und senden die Pakete über die Verbindungsleitungen. Die Vermittlungsstellen und die Router verbinden die Endknoten miteinander und leiten die Pakete an den entsprechenden Endknoten weiter. Am Ziel setzen die Endknoten die Pakete wieder zu einer Nachricht zusammen.
  • Nun Bezug nehmend auf die Figuren und insbesondere mit Bezug auf 1 ist ein Netzwerkrechnersystem gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung schematisch dargestellt. Das in 1 dargestellte Netzwerkrechnersystem hat die Form eines Systembereichsnetzwerks (SAN) 100 und dient lediglich zur Veranschaulichung, und die nachstehend beschriebenen Ausführungsformen der vorliegenden Erfindung können auf vielen anderen Rechnersystemen, die sich in Typ und Konfiguration unterscheiden, realisiert werden.
  • Das SAN 100 ist ein Netzwerk mit hoher Bandbreite und geringer Latenzzeit, das Knoten in dem Netzwerkrechnersystem miteinander verbindet. Ein Knoten ist eine beliebige Komponente, die an eine oder mehrere Verbindungsleitungen eines Netzwerks angeschlossen wird und den Ursprung und/oder das Ziel von Nachrichten in dem Netzwerk bildet. In dem dargestellten Beispiel enthält das SAN 100 Knoten in Form des Host-Prozessorknotens 102, des Host-Prozessorknotens 104, des als redundantes Feld unabhängiger Festplatten (RAID) ausgelegten Teilsystem-Knotens 106, des E/A-Chassis-Knotens 108 und des PCI-E/A-Chassis-Knotens 184. Die in 1 dargestellten Knoten dienen lediglich der Veranschaulichung, da das SAN 100 eine beliebige Anzahl und jede beliebige Art von unabhängigen Prozessorknoten, E/A-Adapterknoten und E/A-Einheitenknoten verbinden kann. Jeder Knoten kann die Funktion eines Endknotens übernehmen, der hier als eine Einheit definiert ist, von der Nachrichten oder Rahmen im SAN 100 stammen oder die letztlich Nachrichten oder Rahmen im SAN 100 verarbeitet.
  • In der hier verwendeten Weise ist eine Nachricht eine von der Anwendung definierte Datenaustauscheinheit, bei der es sich um eine einfache Übertragungseinheit zwischen Prozessen, die zusammenarbeiten, handelt. Ein Paket ist eine einzelne von Kopfbereichen und/oder einem Nachsatz des Netzwerkprotokolls eingeschlossene Dateneinheit. Die Kopfbereiche stellen im Allgemeinen Steuer- und Weiterleitungsinformationen bereit, um den Rahmen durch das SAN zu leiten. Der Nachsatz enthält im Allgemeinen Steuerdaten und Daten für eine zyklische Blockprüfung (CRC), um sicherzustellen, dass Pakete nicht mit beschädigtem Inhalt zugestellt werden.
  • Das SAN 100 beinhaltet die Datenübertragungs- und Verwaltungsinfrastruktur, die sowohl E/A-Datenübertragungen als auch Datenübertragungen zwischen Prozessoren (interprocessor communications, IPC) in einem Netzwerkrechnersystem unterstützt. Das in 1 gezeigte SAN 100 enthält für die Datenübertragung ein Vermittlungsnetz, das es vielen Einheiten ermöglicht, Daten mit hoher Bandbreite und geringer Latenzzeit in einer sicheren, fernverwalteten Umgebung gleichzeitig zu übertragen. Endknoten können über mehrere Anschlüsse Daten austauschen und mehrere Pfade durch das SAN-Schaltnetzwerk nutzen. Die vielen Anschlüsse und Pfade durch das in 1 gezeigte SAN können für fehlertolerante Datenübertragungen und für Datenübertragungen mit höherer Bandbreite verwendet werden.
  • Das in 1 gezeigte SAN 100 enthält die Vermittlungsstelle 112, die Vermittlungsstelle 114, die Vermittlungsstelle 146 und den Router 117. Eine Vermittlungsstelle ist eine Einheit, die mehrere Verbindungsleitungen zusammenschaltet und die Weiterleitung von Paketen von einer Verbindungsleitung auf eine andere Verbindungsleitung innerhalb eines Teilnetzwerks unter Verwendung von einem kleinen Kopfbereich-Feld "Destination Local Identifier" (DLID) ermöglicht. Ein Router ist eine Einheit, die mehrere Teilnetzwerke miteinander verbindet und Rahmen von einer Verbindungsleitung in einem ersten Teilnetzwerk auf eine andere Verbindungsleitung in einem zweiten Teilnetzwerk unter Verwendung eines großen Kopfbereichs mit der Bezeichnung "Destination Globally Unique Identifier" (DGUID) weiterleiten kann.
  • In einer Ausführungsform ist eine Verbindungsleitung ein Vollduplex-Kanal zwischen zwei beliebigen Netzwerkelementen des Schaltnetzwerks wie zum Beispiel Endknoten, Vermittlungsstellen oder Routern. Zu beispielhaften geeigneten Verbindungsleitungen gehören – ohne darauf beschränkt zu sein – Kupferkabel, Lichtwellenleiterkabel und Kupferbahnen von gedruckten Schaltungen auf Rückwandplatinen und Leiterplatten.
  • Bei zuverlässigen Dienstarten erzeugen Endknoten wie zum Beispiel Hostprozessor-Endknoten und E/A-Adapter-Endknoten Anforderungspakete und schicken Bestätigungspakete zurück. Vermittlungsstellen und Router leiten Pakete von der Quelle an das Ziel weiter. Mit Ausnahme des veränderlichen CRC-Nachsatzfeldes, das in jeder Stufe in dem Netzwerk aktualisiert wird, leiten Vermittlungsstellen die Pakete unverändert weiter. Router aktualisieren das veränderliche CRC-Nachsatzfeld und ändern andere Felder in dem Kopfbereich, während das Paket weitergeleitet wird.
  • In dem in 1 gezeigten SAN 100 enthalten der Host-Prozessorknoten 102, der Host-Prozessorknoten 104, das RAID-E/A-Teilsystem 106, das E/A-Chassis 108 und das PCI-E/A-Chassis 184 mindestens einen Kanaladapter (CA) zur Anbindung an das SAN 100. In einer Ausführungsform ist jeder Kanaladapter ein Endpunkt, der die Kanaladapter-Schnittstelle für Quellen- oder Senkenpakete, die in dem SAN-Schaltnetzwerk übertragen werden, ausreichend detailliert realisiert. Der Host-Prozessorknoten 102 enthält Kanaladapter in Form von dem Host-Kanaladapter 118 und dem Host-Kanaladapter 120. Der Host-Prozessorknoten 104 enthält den Host-Kanaladapter 122 und den Host-Kanaladapter 124. Der Host-Prozessorknoten 102 enthält auch die Zentraleinheiten 126 bis 130 und einen Speicher 132, die über ein Bussystem 134 miteinander verbunden sind. Ebenso enthält der Host-Prozessorknoten 104 die Zentraleinheiten 136 bis 140 und einen Speicher 142, die über ein Bussystem 144 miteinander verbunden sind. Der Host-Kanaladapter 118 stellt eine Verbindung zur Vermittlungsstelle 112 bereit, die Host-Kanaladapter 120 und 122 stellen eine Verbindung zu den Vermittlungsstellen 112 und 114 bereit, und der Host-Kanaladapter 124 stellt eine Verbindung zur Vermittlungsstelle 114 bereit.
  • In einer Ausführungsform ist ein Host-Kanaladapter in Hardware ausgeführt. In dieser gegebenen Art der Ausführung entlastet die Host-Kanaladapter-Hardware die Zentraleinheit und den E/A-Adapter von einem Großteil des Übertragungsaufwands. Diese Hardware-Ausführung des Host-Kanaladapters gestattet auch mehrere gleichzeitige Übertragungen über ein Vermittlungsnetzwerk, ohne den herkömmlichen Aufwand in Verbindung mit Übertragungsprotokollen in Kauf nehmen zu müssen. In einer Ausführungsform ermöglichen die Host-Kanaladapter und das SAN 100 in 1 den Nutzern der E/A-Übertragungen und der Übertragungen zwischen Prozessoren (IPC-Übertragungen) des Netzwerkrechnersystems Datenübertragungen, bei denen die Daten nicht zuerst vom Prozessor kopiert werden müssen (zero copy) und an denen der Prozess des Betriebssystemkerns nicht beteiligt ist, und sie verwenden Hardware, um zuverlässige, fehlertolerante Übertragungen zu ermöglichen. Wie in 1 gezeigt ist, ist der Router 117 über Weitverkehrsnetz-(WAN-) und/oder lokale Netzwerk-(LAN-)Verbindungen mit anderen Hosts oder anderen Routern verbunden.
  • Das E/A-Chassis 108 in 1 enthält eine Vermittlungsstelle 146 und mehrere E/A-Module 148 bis 156. In diesen Beispielen haben die E/A-Module die Form von Adapterkarten. Zu den in 1 gezeigten beispielhaften Adapterkarten gehören eine SCSI-Adapterkarte für das E/A-Modul 148; eine Adapterkarte zur Fiber-Channel-Vermittlungseinheit und zu Fiber-Channel-Arbitrated-Loop-(PC-AL-)Einheiten für das E/A-Modul 152; eine Ethernet-Adapterkarte für das E/A-Modul 150; eine Grafikadapterkarte für das E/A-Modul 154; und eine Videoadapterkarte für das E/A-Modul 156. Jede bekannte Art einer Adapterkarte kann eingesetzt werden. Zu den E/A-Adaptern gehört auch eine Vermittlungsstelle auf der Rückwand (Backplane) des E/A-Adapters, um die Adapterkarten mit dem SAN-Schaltnetzwerk zu verbinden. Diese Module enthalten die Zielkanaladapter 158 bis 166.
  • In diesem Beispiel enthält der RAID-Teilsystemknoten 106 in 1 einen Prozessor 168, einen Speicher 170, einen Zielkanaladapter (TCA) 172 und mehrere redundante und/oder Speicherplatteneinheiten 174, auf denen relativ kleine Datenblöcke verteilt werden (striped storage disk unit). Bei dem Zielkanaladapter 172 kann es sich um einen Host-Kanaladapter mit uneingeschränktem Funktionsumfang handeln.
  • Der PCI-E/A-Chassis-Knoten 184 enthält einen TCA 186 und mehrere PCI-Eingabe-/Ausgabe-Adapter (IOAs) 190 bis 192, die über den PCI-Bus 188 mit dem TCA 186 verbunden werden. In diesen Beispielen haben die IOAs die Form von Adapterkarten. Zu den in 1 gezeigten beispielhaften Adapterkarten gehören eine Modem-Adapterkarte 190 und eine serielle Adapterkarte 192. Der TCA 186 packt PCI-Transaktionsanforderungen oder Transaktionsantworten, die er von den PCI-IOAs 190 bis 192 empfängt, in Datenpakete, um sie über das SAN-Schaltnetzwerk an einen HCA wie zum Beispiel den HCA 118 zu senden. Der HCA 118 stellt fest, ob empfangene Datenpakete PCI-Übertragungen enthalten, und wenn ja, decodiert er das Datenpaket, um die darin gepackte PCI-Transaktionsanforderung oder -antwort wie zum Beispiel eine DMA-Schreib- oder -Leseoperation abzurufen. Der HCA 118 sendet sie an die entsprechende Einheit wie zum Beispiel den Speicher 132. Wenn die PCI-Transaktion eine DMA-Leseanforderung war, empfängt der HCA die Antwort daraufhin aus dem Speicher wie zum Beispiel dem Speicher 132, packt die PCI-Antwort in ein Datenpaket und sendet das Datenpaket über das SAN-Schaltnetzwerk an den anfordernden TCA 186 zurück. Der TCA decodiert dann die PCI-Transaktion von dem Datenpaket und sendet sie über den PCI-Bus 188 an den PCI-IOA 190 oder 192.
  • Speicher- und Ladeanforderungen von einem Prozessor wie zum Beispiel der CPU 126 an einen PCI-IOA wie zum Beispiel den PCI-IOA 190 oder 192 werden vom HCA 118 ebenfalls in ein Datenpaket gepackt, um sie über das SAN-Schaltnetzwerk an den TCA 186, der dem geeigneten PCI-IOA 190 oder 192 entspricht, zu übertragen. Der TCA 186 decodiert das Datenpaket, um die PCI-Übertragung abzurufen, und sendet die PCI-Speicher- oder -Ladeanforderung und Daten über den PCI-Bus 188 an den PCI-IOA 190 oder 192. Wenn die Anforderung eine Ladeanforderung ist, empfängt der TCA 186 eine Antwort vom PCI-IOA 190 oder 192, die der TCA in ein Datenpaket packt und über das SAN-Schaltnetzwerk an den HCA 118 sendet, der das Datenpaket decodiert, um die PCI-Daten und -Befehle abzurufen, welche er an die anfordernde CPU 126 sendet. Auf diese Weise können PCI-Adapter mit dem SAN-Schaltnetzwerk verbunden werden.
  • Das SAN 100 wickelt Datenübertragungen für den E/A-Datenaustausch und für den Datenaustausch zwischen Prozessoren ab. Das SAN 100 unterstützt die für den E/A-Datenaustausch erforderliche hohe Bandbreite und Skalierbarkeit, und es unterstützt auch die äußerst geringe Latenzzeit und den geringen CPU-Aufwand, die beziehungsweise der für den Datenaustausch zwischen Prozessoren erforderlich ist. Benutzer-Clients können den Prozess des Betriebssystemkerns umgehen und direkt auf die Netzwerkdatenübertragungs-Hardware wie zum Beispiel die Host-Kanaladapter zugreifen, die die Nutzung leistungsfähiger Nachrichtenweiterleitungsprotokolle ermöglichen. Das SAN 100 ist für moderne Rechnermodelle geeignet und stellt einen Baustein für neue Formen des E/A- und Rechnercluster-Datenaustauschs dar. Überdies ermöglicht das SAN 100 in 1 E/A-Adapterknoten, untereinander oder mit beliebigen oder allen Prozessorknoten in dem Netzwerkrechnersystem zu kommunizieren. Wenn ein E/A-Adapter mit dem SAN 100 verbunden wird, verfügt der resultierende E/A-Adapterknoten praktisch über dieselbe Datenübertragungsfähigkeit wie jeder Hostprozessorknoten im SAN 100.
  • 1 hat lediglich Beispielcharakter. Sie ist nicht als architektonische Einschränkung der vorliegenden Erfindung zu verstehen und dient nur zur Veranschaulichung. Die Ausführungsformen der vorliegenden Erfindung, die nachstehend beschrieben werden, können auf vielen anderen Rechnersystemen, die sich in Typ und Konfiguration unterscheiden, realisiert werden. Rechnersysteme, die die vorliegende Erfindung realisieren, können zum Beispiel von einem kleinen Server mit nur einem Prozessor und einer begrenzten Anzahl von Eingabe-/Ausgabe-(E/A-)Adaptern bis hin zu einem oder mehreren massiv parallelen Superrechnersystemen mit beispielsweise Hunderten von Prozessoren und Tausenden von E/A-Adaptern reichen. Außerdem kann die vorliegende Erfindung in einer Infrastruktur mit fernen Rechnersystemen realisiert werden, die zum Beispiel über das Internet oder ein Intranet verbunden sind.
  • 2 zeigt eine Funktionsübersicht eines Host-Prozessorknotens gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung. Der Host-Prozessorknoten 200 stellt ein Beispiel für einen Host-Prozessorknoten wie den Host-Prozessorknoten 102 in 1 dar.
  • In diesem Beispiel enthält der in 2 gezeigte Host-Prozessorknoten 200 eine Gruppe von Nutzern 202 bis 208 und einen oder mehrere PCI/PCI-X-Einheitentreiber 230, bei denen es sich um Prozesse handelt, die auf dem Host-Prozessorknoten 200 ausgeführt werden. Der Host-Prozessorknoten 200 enthält auch den Kanaladapter 210 und den Kanaladapter 212. Der Kanaladapter 210 enthält die Anschlüsse 214 und 216, während der Kanaladapter 212 die Anschlüsse 218 und 220 enthält. Jeder Anschluss ist mit einer Verbindungsleitung verbunden. Die Anschlüsse können mit einem SAN-Teilnetzwerk oder mit mehreren SAN-Teilnetzwerken wie zum Beispiel dem SAN 100 in 1 verbunden werden. In diesen Beispielen haben die Kanaladapter die Form von Host-Kanaladaptern.
  • Über die Verbs-Schnittstelle 222 und den Nachrichten- und Datendienst 224 übertragen die Nutzer 202 bis 208 Nachrichten an das SAN. Eine Verbs-Schnittstelle ist im Grunde eine abstrakte Beschreibung der Funktionalität eines Host-Kanaladapters. Ein Betriebssystem kann einen Teil oder die gesamte Verbs-Funktionalität über seine Programmierschnittstelle offen legen. Diese Schnittstelle legt im Grunde das Verhalten des Hosts fest. Überdies enthält der Host-Prozessorknoten 200 einen Nachrichten- und Datendienst 224, bei dem es sich um eine Schnittstelle handelt, die sich auf einer höheren Ebene als die Verbs-Schnittstelle befindet und zur Verarbeitung von Nachrichten und Daten dient, die über den Kanaladapter 210 und den Kanaladapter 212 empfangen werden. Der Nachrichten- und Datendienst 224 stellt eine Schnittstelle zu den Nutzern 202 bis 208 bereit, um Nachrichten und andere Daten zu verarbeiten. Darüber hinaus können der Kanaladapter 210 und der Kanaladapter 212 Lade- und Speicherbefehle von den Prozessoren empfangen, welche für an das SAN angeschlossene PCI-IOAs vorgesehen sind. Diese umgehen die Verbs-Ebene, wie in 2 gezeigt ist.
  • In 3 ist ein Host-Kanaladapter gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung dargestellt. Der in 3 gezeigte Host-Kanaladapter 300 enthält eine Gruppe von Warteschlangenpaaren (QPs) 302 bis 310, die ein Mittel darstellen, um Nachrichten an die Anschlüsse 312 bis 316 der Host-Kanaladapter zu übertragen. Die Zwischenspeicherung von Daten in den Anschlüssen 312 bis 316 der Host-Kanaladapter erfolgt über die in logische Verbindungen unterteilten virtuellen Kanäle (Virtual Lanes, VL) 318 bis 334, wobei jeder VL über seine eigene Flusssteuerung verfügt. Eine Teilnetzwerk-Verwaltungseinheit (nicht gezeigt) konfiguriert Kanaladapter mit den lokalen Adressen für jeden physischen Anschluss, d.h. der LID des Anschlusses. Der Teilnetzwerk-Verwaltungsagent (subnet manager agent, SMA) 336 tauscht mit der Teilnetzwerk-Verwaltungseinheit Daten aus, um den Kanaladapter zu konfigurieren. Der Speicherumsetzungs- und -schutz-Mechanismus (memory translation and protection, MTP) 338 ist ein Mechanismus, der virtuelle Adressen in physische Adressen umsetzt und die Gültigkeit von Zugriffsrechten prüft. Über den direkten Speicherzugriff (DMA) 340 sind direkte Speicherzugriffsoperationen unter Verwendung des Speichers (der ebenfalls mit der Bezugszahl 340 gekennzeichnet ist) in Bezug auf die Warteschlangenpaare 302 bis 310 möglich.
  • Ein einziger Kanaladapter wie zum Beispiel der in 3 gezeigte Host-Kanaladapter 300 kann Tausende von Warteschlangenpaaren unterstützen. Im Gegensatz dazu unterstützt ein Zielkanaladapter in einem E/A-Adapter gewöhnlich eine wesentlich kleinere Anzahl von Warteschlangenpaaren.
  • Jedes Warteschlangenpaar besteht aus einer Sendearbeitswarteschlange (SWQ) und einer Empfangsarbeitswarteschlange. Die Sendearbeitswarteschlange dient zum Versenden von Kanalsemantik- und Speichersemantik-Nachrichten. Die Empfangsarbeitswarteschlange empfängt Kanalsemantik-Nachrichten. Ein Nutzer ruft eine betriebssystemspezifische Programmierschnittstelle auf, die hier als Verbs-Schnittstelle bezeichnet wird, um Arbeitsanforderungen (WRs) in eine Arbeitswarteschlange zu stellen.
  • 4 stellt die Verarbeitung von Arbeitsanforderungen gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung dar. In 4 sind eine Empfangsarbeitswarteschlange 400, eine Sendearbeitswarteschlange 402 und eine Abarbeitungswarteschlange 404 zur Verarbeitung von Anforderungen von und für einen Nutzer 406 vorhanden. Diese Anforderungen vom Nutzer 406 werden schließlich an die Hardware 408 gesendet. In diesem Beispiel erzeugt der Nutzer 406 die Arbeitsanforderungen 410 und 412 und empfängt die Arbeitsfertigstellung 414. Wie in 4 gezeigt ist, werden Arbeitsanforderungen, die in eine Arbeitswarteschlange gestellt werden, als Arbeitswarteschlangenelemente (WQEs) bezeichnet.
  • Die Sendearbeitswarteschlange 402 enthält die Arbeitswarteschlangenelemente (WQEs) 422 bis 428, die Daten beschreiben, die in dem SAN-Schaltnetzwerk übertragen werden sollen. Die Empfangsarbeitswarteschlange 400 enthält die Arbeitswarteschlangenelemente (WQEs) 416 bis 420, die beschreiben, wo eintreffende Kanalsemantik-Daten vom SAN-Schaltnetzwerk abgelegt werden sollen. Ein Arbeitswarteschlangenelement wird von der Hardware 408 im Host-Kanaladapter verarbeitet.
  • Die Verbs-Schnittstellen stellen auch einen Mechanismus bereit, der dazu dient, fertig gestellte Arbeit aus der Abarbeitungswarteschlange 404 abzurufen. Wie in 4 gezeigt ist, enthält die Abarbeitungswarteschlange 404 die Abarbeitungswarteschlangenelemente (completion queue elements, CQEs) 430 bis 436. Die Abarbeitungswarteschlangenelemente enthalten Informationen über zuvor fertig gestellte Arbeitswarteschlangenelemente. Die Abarbeitungswarteschlange 404 dient zur Erzeugung einer einzelnen Benachrichtigung über den Fertigstellungszeitpunkt für mehrere Warteschlangenpaare. Ein Abarbeitungswarteschlangenelement ist eine Datenstruktur in einer Abarbeitungswarteschlange. Dieses Element beschreibt ein fertig gestelltes Arbeitswarteschlangenelement. Das Abarbeitungswarteschlangenelement enthält genügend Informationen, um das Warteschlangenpaar und das jeweilige Arbeitswarteschlangenelement, das fertig gestellt wurde, zu ermitteln. Ein Abarbeitungswarteschlangenkontext ist ein Informationsblock, der Zeiger, die Länge und andere Informationen enthält, die notwendig sind, um die einzelnen Abarbeitungswarteschlangen zu verwalten.
  • Zu beispielhaften Arbeitsanforderungen, die für die in 4 gezeigte Sendearbeitswarteschlange 402 unterstützt werden, gehören folgende. Eine Sendearbeitsanforderung ist eine Kanalsemantik-Operation, die dazu dient, eine Gruppe von lokalen Datensegmenten in die Datensegmente zu schieben, auf die das Empfangsarbeitswarteschlangenelement eines fernen Knoten verweist. Das Arbeitswarteschlangenelement 428 enthält zum Beispiel Verweise auf das Datensegment 4 438, das Datensegment 5 440 und das Datensegment 6 442. Jedes der Datensegmente der Sendearbeitsanforderung enthält einen praktisch zusammenhängenden Speicherbereich. Die virtuellen Adressen, mit denen auf die lokalen Datensegmente verwiesen wird, befinden sich im Adresskontext des Prozesses, der das lokale Warteschlangenpaar erzeugt hat.
  • Ein Lesearbeitsanforderung mittels direktem Speicherzugriff über das Netzwerk (remote direct memory access, RDMA) ermöglicht eine Speichersemantik-Operation, um einen praktisch zusammenhängenden Speicherbereich auf einem fernen Knoten zu lesen. Ein Speicherraum kann entweder ein Teil eines Speicherbereichs oder ein Teil eines Speicherfensters sein. Ein Speicherbereich verweist auf einen zuvor eingetragenen Satz von praktisch zusammenhängenden Speicheradressen, die mit einer virtuellen Adresse und einer virtuellen Länge angegeben sind. Ein Speicherfenster verweist auf einen Satz von praktisch zusammenhängenden Speicheradressen, die an einen zuvor eingetragenen Bereich gebunden sind.
  • Die RDMA-Lesearbeitsanforderung liest einen praktisch zusammenhängenden Speicherbereich auf einem fernen Endknoten und schreibt die Daten in einen praktisch zusammenhängenden lokalen Speicherbereich. Ähnlich wie bei der Sendearbeitsanforderung befinden sich virtuelle Adressen, die von dem RDMA-Lesearbeitswarteschlangenelement verwendet werden, um auf die lokalen Datensegmente zu verweisen, im Adresskontext des Prozesses, der das lokale Warteschlangenpaar erzeugt hat. Das Arbeitswarteschlangenelement 416 in der Empfangsarbeitswarteschlange 400 verweist zum Beispiel auf das Datensegment 1 444, das Datensegment 2 446 und das Datensegment 3 448. Die fernen virtuellen Adressen befinden sich im Adresskontext des Prozesses, dem das ferne Warteschlangenpaar gehört, welches das RDMA-Lesearbeitswarteschlangenelement als Ziel ausgewählt hat.
  • Ein RDMA-Schreibarbeitswarteschlangenelement ermöglicht eine Speichersemantik-Operation, die dazu dient, einen praktisch zusammenhängenden Speicherbereich auf einen fernen Knoten zu schreiben. Das RDMA-Schreibarbeitswarteschlangenelement enthält eine Streuliste von lokalen, praktisch zusammenhängenden Speicherbereichen und die virtuelle Adresse des fernen Speicherbereichs, in den die lokalen Speicherbereiche geschrieben werden.
  • Ein RDMA-FetchOp-Arbeitswarteschlangenelement ermöglicht eine Speichersemantik-Operation, um eine unteilbare (atomic) Operation an einem fernen Wort durchzuführen. Das RDMA-FetchOP-Arbeitswarteschlangenelement ist eine kombinierte RDMA-Lese-, Änderungs- und RDMA-Schreiboperation. Das RDMA-FetchOp-Arbeitswarteschlangenelement kann mehrere Lese-Änderungs-Schreiboperationen wie zum Beispiel "Compare and Swap", bei der ein Vergleich eines Registers mit einer Hauptspeicherzelle und bei Gleichheit ein Vertauschen der Inhalte atomar ausgeführt wird, unterstützen.
  • Ein Arbeitswarteschlangenelement zum Binden (Aufheben der Bindung) eines fernen Zugriffsschlüssels (bind (unbind) remote access key (R_Key)) stellt einen Befehl an die Host-Kanaladapter-Hardware bereit, um ein Speicherfenster zu ändern (zu zerstören), indem das Speicherfenster einem Speicherbereich zugeordnet (die Zuordnung des Speicherfensters wieder aufgehoben) wird. Der R_Key ist Teil eines jeden RDMA-Zugriffs und dient zur Bestätigung, dass der ferne Prozess den Zugriff auf den Pufferspeicher gestattet hat.
  • In einer Ausführungsform unterstützt die in 4 gezeigte Empfangsarbeitswarteschlange 400 nur eine Art eines Arbeitswarteschlangenelements, das als Empfangsarbeitswarteschlangenelement bezeichnet wird. Das Empfangsarbeitswarteschlangenelement ermöglicht eine Kanalsemantik-Operation, die einen lokalen Speicherbereich beschreibt, in den eingehende Sendenachrichten geschrieben werden. Das Empfangsarbeitswarteschlangenelement enthält eine Streuliste, die mehrere praktisch zusammenhängende Speicherbereiche beschreibt. Eine eingehende Sendenachricht wird in diese Speicherbereiche geschrieben. Die virtuellen Adressen befinden sich im Adresskontext des Prozesses, der das lokale Warteschlangenpaar erzeugt hat.
  • Beim Datenaustausch zwischen Prozessoren überträgt ein Benutzermodus-Softwareprozess Daten über die Warteschlangenpaare direkt von der Stelle, an der sich der Pufferspeicher im Hauptspeicher befindet. In einer Ausführungsform wird bei der Übertragung über die Warteschlangenpaare das Betriebssystem umgangen, und die Übertragung nimmt nur wenige Host-Befehlszyklen in Anspruch. Warteschlangenpaare gestatten eine Datenübertragung, bei der die Daten nicht zuerst vom Prozessor kopiert werden müssen und an der der Betriebssystemkern nicht beteiligt ist. Eine Datenübertragung, bei der die Daten nicht zuerst vom Prozessor kopiert werden müssen, ermöglicht die wirksame Unterstützung von Nachrichtenverbindungen mit hoher Bandbreite und geringer Latenzzeit.
  • Bei der Erzeugung eines Warteschlangenpaares wird das Warteschlangenpaar so gesetzt, dass es eine ausgewählte Art eines Verbindungsdienstes bereitstellt. In einer Ausführungsform unterstützt ein Netzwerkrechnersystem, das die vorliegende Erfindung realisiert, vier Arten von Verbindungsdiensten.
  • Die Dienste "Reliable Connected" und "Unreliable Connected" ordnen ein lokales Warteschlangenpaar einem einzigen fernen Warteschlangenpaar zu. Bei verbundenen Diensten ist ein Prozess erforderlich, mit dem sich für jeden Prozess, mit dem Daten über das SAN-Schaltnetzwerk ausgetauscht werden sollen, ein Warteschlangenpaar erzeugen lässt. Wenn jeder von N Host-Prozessorknoten P Prozesse enthält und alle P Prozesse auf jedem Knoten mit allen Prozessen auf all den anderen Knoten Daten austauschen möchten, erfordert jeder Host-Prozessorknoten folglich p2 × (N – 1) Warteschlangenpaare.
  • Außerdem kann ein Prozess ein Warteschlangenpaar mit einem anderen Warteschlangenpaar auf demselben Host-Kanaladapter verbinden.
  • Der Dienst "Reliable Datagram" ordnet einen lokalen Ende-Ende-(EE-)Kontext einem einzigen fernen Ende-Ende-Kontext zu. Der Dienst "Reliable Datagram" erlaubt einem Client-Prozess von einem Warteschlangenpaar, Daten mit einem beliebigen anderen Warteschlangenpaar auf irgendeinem anderen fernen Knoten auszutauschen. An einer Empfangsarbeitswarteschlange lässt der Dienst "Reliable Datagram" eingehende Nachrichten von jeder Sendearbeitswarteschlange auf jedem anderen fernen Knoten zu. Der Dienst "Reliable Datagram" verbessert die Skalierbarkeit erheblich, da er verbindungslos ist. Daher kann ein Endknoten mit einer festen Anzahl von Warteschlangenpaaren über einen Dienst "Reliable Datagram" mit weitaus mehr Prozessen und Endknoten Daten austauschen als über einen Verbindungsdienst "Reliable Connection". Wenn beispielsweise jeder von N Host-Prozessorknoten P Prozesse enthält und alle P Prozesse auf jedem Knoten mit allen Prozessen auf all den anderen Knoten Daten austauschen möchten, erfordert der Dienst "Reliable Connection" p2 × (N – 1) Warteschlangenpaare auf jedem Knoten. Im Vergleich dazu erfordert der verbindungslose Dienst "Reliable Datagram" nur P Warteschlangenpaare + (N – 1) EE-Kontexte auf jedem Knoten für genau dieselben Datenaustauschoperationen.
  • Der Dienst "Unreliable Datagram" ist verbindungslos. Der Dienst "Unreliable Datagram" wird von Verwaltungsanwendungen zum Erkennen von neuen Vermittlungsstellen, Routern und Endknoten und zu deren Aufnahme in ein bestimmtes Netzwerkrechnersystem verwendet. Der Dienst "Unreliable Datagram" bietet nicht die Verlässlichkeitsgarantien der Dienste "Reliable Connection" und "Reliable Datagram". Der Dienst "Unreliable Datagram" arbeitet folglich mit weniger Zustandsinformationen, die an jedem Endknoten verwaltet werden.
  • 5 stellt ein Datenpaket gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung dar. Die Nachrichtendaten 500 enthalten das Datensegment 1 502, das Datensegment 2 504 und das Datensegment 3 506, die ähnlich den in 4 gezeigten Datensegmenten sind. In diesem Beispiel bilden diese Datensegmente ein Paket 508, das in die Paketnutzlast 510 im Datenpaket 512 gestellt wird. Darüber hinaus enthält das Datenpaket 512 den CRC 514, der zur Fehlerprüfung dient. Überdies sind der Weiterleitungskopfbereich 516 und der Übertragungskopfbereich 518 im Datenpaket 512 vorhanden. Der Weiterleitungskopfbereich 516 dient zur Angabe der Quellen- und Zielanschlüsse für das Datenpaket 512. Der Übertragungskopfbereich 518 gibt in diesem Beispiel das Ziel-Warteschlangenpaar für das Datenpaket 512 an. Ferner stellt der Übertragungskopfbereich 518 auch Informationen wie zum Beispiel den Operationscode, die Paketfolgenummer und die Partition für das Datenpaket 512 bereit. Der Operationscode gibt an, ob das Paket das erste Paket, das letzte Paket, ein dazwischen liegendes Paket oder das einzige Paket einer Nachricht ist. Der Operationscode gibt auch an, ob die Operation eine Sendeoperation, eine RDMA-Schreiboperation, eine RDMA-Leseoperation oder eine unteilbare Operation ist. Die Paketfolgenummer wird beim Verbindungsaufbau auf einen Anfangswert gesetzt und erhöht sich jedes Mal, wenn ein Warteschlangenpaar ein neues Paket erzeugt. Anschlüsse eines Endknotens können so konfiguriert werden, dass sie zu einer oder mehreren sich möglicherweise überschneidenden Gruppen gehören, die als Partitionen bezeichnet werden.
  • 6 stellt eine physische Komponente mit virtuellen Kanaladaptern und virtuellen Vermittlungsstellen gemäß einer Ausführungsform der vorliegenden Erfindung dar. 6 veranschaulicht eine interne Struktur eines Chip mit mehreren Funktionen, der eine oder mehrere Vermittlungsstellen enthält, die einen oder mehrere HCAs mit einem oder mehreren Teilnetzwerken verbinden. Das physische Element 600 in 6 enthält den virtuellen Host-Prozessorknoten 602 und den virtuellen Host-Prozessorknoten 604. Der virtuelle Host-Prozessorknoten 602 enthält den virtuellen Host-Kanaladapter (HCA) 606. Der virtuelle Host-Prozessorknoten 604 enthält den Host-Kanaladapter (HCA) 608. Die virtuellen HCAs 606 und 608 können dieselben Attribute wie ein physischer HCA haben. In diesem Beispiel verfügen die virtuellen HCAs 606 und 608 beispielsweise über die obligatorischen Warteschlangenpaare Nummer 0 und 1.
  • Das physische Element 600 in 6 enthält das SAN-Schaltnetzwerk 610, das die Vermittlungsstelle 612 enthält. Das SAN-Schaltnetzwerk 610 in 6 enthält eine Verbindungsleitung, die den Host-Kanaladapter 606 mit der Vermittlungsstelle 612 verbindet, und eine Verbindungsleitung, die die Vermittlungsstelle 612 mit dem TCA 642 verbindet. Das Netzwerkrechnersystem 600 in 6 enthält ebenfalls ein SAN-Schaltnetzwerk 611, das die Vermittlungsstelle 614 enthält. Das SAN-Schaltnetzwerk 611 in 6 enthält eine Verbindungsleitung, die den Host-Kanaladapter 608 mit der Vermittlungsstelle 614 verbindet, und eine Verbindungsleitung, die die Vermittlungsstelle 614 mit dem TCA 644 verbindet. Der virtuelle HCA 606 enthält die Anschlüsse 650 und 652. Der Anschluss 650 ist über den Anschluss 678 der Vermittlungsstelle 612 mit dem Teilnetzwerk 646 verbunden. Der Anschluss 652 ist über den Anschluss 682 der Vermittlungsstelle 614 mit dem Teilnetzwerk 648 verbunden. Eine zum Teilnetzwerk 646 gehörende Teilnetzwerk-Verwaltungseinheit hat dem Anschluss 650 des HCA 606 die LID 670 zugewiesen und dem Anschluss 686 der Vermittlungsstelle 612 die LID 694. Bei dem Anschluss 686 handelt es sich um den InfiniBand-Teilnetz-Verwaltungsanschluss (InfiniBand Subnet Management Port) 0 für die Vermittlungsstelle 612. Zum Teilnetzwerk 648 gehört eine Teilnetzwerk-Verwaltungseinheit, der dem Anschluss 652 des HCA 606 die LID 672 und dem Anschluss 688 der Vermittlungsstelle 614 die LID 696 zugewiesen hat. Bei dem Anschluss 688 handelt es sich um den InfiniBand Subnet Management Port 0 für die Vermittlungsstelle 614. Der virtuelle HCA 608 enthält die Anschlüsse 654 und 656. Der Anschluss 654 ist über den Anschluss 680 der Vermittlungsstelle 612 mit dem Teilnetzwerk 646 verbunden. Der Anschluss 656 ist über den Anschluss 684 der Vermittlungsstelle 614 mit dem Teilnetzwerk 648 verbunden. Eine zum Teilnetzwerk 646 gehörende Teilnetzwerk-Verwaltungseinheit hat dem Anschluss 654 des HCA 608 die LID 674 zugewiesen. Eine zum Teilnetzwerk 648 gehörende Teilnetzwerk-Verwaltungseinheit hat dem Anschluss 656 des HCA 608 die LID 676 zugewiesen.
  • Bei den beispielhaften Transaktionen enthält der Host-Prozessorknoten 602 den Client-Prozess A 616. Der Host-Prozessorknoten 604 enthält einen Client-Prozess B 618. Der Client-Prozess A 616 tauscht über das Warteschlangenpaar 620, die Abarbeitungswarteschlange 632 und die Umsetzungsschutztabelle (Translation Protection Table, TPT) 634 Informationen mit der Host-Kanaladapter-Hardware 606 aus. Der Client-Prozess B 618 tauscht über das Warteschlangenpaar 622, die Abarbeitungswarteschlange 636 und die TPT 638 Informationen mit der Host-Kanaladapter 608 aus. Das Warteschlangenpaar 620, das Warteschlangenpaar 622, die Abarbeitungswarteschlange 632, die Abarbeitungswarteschlange 636, die TPT 634 und die TPT 638 sind Datenstrukturen. Das Warteschlangenpaar 620 enthält eine Sendearbeitswarteschlange 624 und eine Empfangsarbeitswarteschlange 626. Das Warteschlangenpaar 622 enthält eine Sendearbeitswarteschlange 628 und eine Empfangsarbeitswarteschlange 630. Die Abarbeitungswarteschlange 632 und die Abarbeitungswarteschlange 636 bestehen aus einer einzigen Abarbeitungswarteschlange. Die TPTs 634 und 638 bestehen aus einem Speicher, der aus einer Speicheradressenumsetzungs- und -schutztabelle besteht.
  • Ein Kanaladapter wie zum Beispiel ein TCA oder ein HCA kann einer Software-, Firmware- oder Hardware-Zustandsmaschine, die als Teil des physischen Elements 600 ausgeführt wird, eine Ressourcenkonfigurations- und -zuordnungsschnittstelle bereitstellen. Die Ressourcenkonfigurations- und -zuordnungsschnittstelle ermöglicht Software-, Firmware- oder Hardware-Zustandsmaschinen, Betriebsregeln für den virtuellen HCA, zum Beispiel den HCA 606 und den HCA 608 in 6, festzulegen. Zu den Betriebsregeln können unter anderem folgende gehören:
    • 1) Anzahl der in einem Chip mit mehreren Funktionen verwendeten Vermittlungsstellen;
    • 2) Anzahl der Anschlüsse je Vermittlungsstelle;
    • 3) Anzahl der Vermittlungsstellen-Ressourcen, die jeder Vermittlungsstelle zugeordnet werden;
    • 4) Anzahl der HCAs, die in dem Chip mit mehreren Funktionen verwendet werden;
    • 5) Anzahl der Anschlüsse je HCA; und
    • 6) Anzahl der HCA-Ressourcen, die jedem HCA zugeordnet werden.
  • Eine Zustandsmaschine in Software, Firmware oder in Hardware kann die tatsächliche Konfiguration des physischen Elements 600 auswählen. Ein physisches Element kann zum Beispiel ein HCA sein. Die Auswahl kann statisch oder dynamisch erfolgen. Bei einer statischen Auswahl ist es gegebenenfalls erforderlich, dass die Konfiguration eines HCA oder einer Vermittlungsstelle geändert wird, indem ein Schaltnetzwerk neu initialisiert und/oder ein Knoten neu gestartet wird. Bei einer dynamischen Auswahl kann eine Konfigurationsänderung an einem HCA oder an einer Vermittlungsstelle ohne Neuinitialisierung des Schaltnetzwerks vorgenommen werden, doch muss der Knoten möglicherweise neu gestartet werden.
  • Bei einem statischen Auswahlmechanismus muss das physische Element 600 gegebenenfalls die genaue Anzahl der virtuellen Vermittlungsstellen, HCAs und Host-Prozessorknoten angeben, die während der Initialisierung des Schaltnetzwerks als Teil des physischen Elements 600 enthalten sein können. Ein statischer Auswahlmechanismus kann Informationen darüber bereitstellen, ob auf dem physischen Element Anschlüsse verfügbar sind, doch stellt er ohne eine Anforderung für Informationen keine Informationen in Bezug auf den Status des Anschlusses bereit. Bei Verwendung eines statischen Auswahlmechanismus kann jeder virtuelle HCA als ein ganz bestimmter physischer HCA erscheinen. Infolge der Prüfung des Anschlusses 644 mit Hilfe von standardmäßigen InfiniBand-Teilnetzwerk-Verwaltungspaketen (SMPs) erkennt eine zum Teilnetzwerk 646 gehörende Teilnetzwerk-Verwaltungseinheit in 6 die Vermittlungsstelle 612. Die Vermittlungsstelle 612 erscheint der zu dem Teilnetzwerk 646 gehörenden Teilnetzwerk-Verwaltungseinheit als eine physische Vermittlungsstelle, und ihrem SMP-Anschluss 686 wird die LID 694 zugewiesen. Die zum Teilnetzwerk 646 gehörende Teilnetzwerk-Verwaltungseinheit stellt mittels InfiniBand-SMPs fest, dass die Vermittlungsstelle 612 zwei weitere Anschlüsse, die Anschlüsse 678 und 680, hat. Infolge der Prüfung des Anschlusses 678 der Vermittlungsstelle 612 mit Hilfe von InfiniBand-SMPs und der Lokalisierung des Anschlusses 650 des HCA 606 stellt die zum Teilnetzwerk 646 gehörende Teilnetzwerk-Verwaltungseinheit den HCA 606 fest. Der HCA 606 erscheint der zum Teilnetzwerk 646 gehörenden Teilnetzwerk-Verwaltungseinheit als ein physischer HCA. Die zum Teilnetzwerk 646 gehörende Teilnetzwerk-Verwaltungseinheit weist dem Anschluss 650 des HCA 606 unter Verwendung von InfiniBand-SMPs die LID 670 zu. Ebenso stellt die zum Teilnetzwerk 646 gehörende Teilnetzwerk-Verwaltungseinheit infolge der Verwendung von InfiniBand-SMPs den HCA 608 fest. Der HCA 608 erscheint der zum Teilnetzwerk 646 gehörenden Teilnetzwerk-Verwaltungseinheit als ein physischer HCA. Die zum Teilnetzwerk 646 gehörende Teilnetzwerk-Verwaltungseinheit weist dem Anschluss 654 unter Verwendung von InfiniBand-SMPs die LID 674 zu.
  • Bei Verwendung eines dynamischen Auswahlmechanismus kann das physische Element 600 die größte konfigurierbare Anzahl virtueller Vermittlungsstellen und ihre entsprechende Topologie angeben, es kann jedoch nicht die genaue Anzahl der HCAs und die genaue Anzahl der Host-Prozessorknoten angeben, die während der Initialisierung des Schaltnetzwerks als Teil des physischen Elements 600 möglicherweise enthalten sind. Ein dynamischer Auswahlmechanismus kann Informationen darüber bereitstellen, ob auf dem physischen Element Anschlüsse verfügbar sind, und wenn ein zuvor nicht verfügbarer Anschluss in Betrieb geht, kann er hierüber ebenfalls Informationen bereitstellen. Ebenso kann ein dynamischer Auswahlmechanismus das Entfernen von HCAs und ihrer zugehörigen Hostknoten melden, wenn diese außer Betrieb genommen werden. Bei Verwendung eines dynamischen Auswahlmechanismus kann jeder virtuelle HCA als ein ganz bestimmter physischer HCA erscheinen.
  • Der folgende Prozess kann stattfinden, wenn der HCA 606 in 6 zu einem späteren Zeitpunkt in Betrieb geht. Infolge der Prüfung des Anschlusses 644 mit InfiniBand-Teilnetzwerk-Verwaltungspaketen (SMPs) stellt eine zum Teilnetzwerk 646 gehörende Teilnetzwerk-Verwaltungseinheit die Vermittlungsstelle 612 fest. Die Vermittlungsstelle 612 erscheint der zum Teilnetzwerk 646 gehörenden Teilnetzwerk-Verwaltungseinheit als eine physische Vermittlungsstelle, und ihrem SMP-Anschluss 686 wird die LID 694 zugewiesen. Die zum Teilnetzwerk 646 gehörende Teilnetzwerk-Verwaltungseinheit stellt mittels standardmäßiger InfiniBand-SMPs fest, dass die Vermittlungsstelle 612 zwei weitere Anschlüsse, die Anschlüsse 678 und 680, hat. Infolge der Prüfung des Anschlusses 678 der Vermittlungsstelle 612 mit Hilfe von InfiniBand-SMPs und der Lokalisierung des Anschlusses 650 des HCA 606 stellt die zum Teilnetzwerk 646 gehörende Teilnetzwerk-Verwaltungseinheit den HCA 606 fest. Der HCA 606 erscheint der zum Teilnetzwerk 646 gehörenden Teilnetzwerk-Verwaltungseinheit als ein physischer HCA. Die zum Teilnetzwerk 646 gehörende Teilnetzwerk-Verwaltungseinheit weist dem Anschluss 650 des HCA unter Verwendung von InfiniBand-SMPs die LID 670 zu. Zu einem späteren Zeitpunkt kann die zum Teilnetzwerk 646 gehörende Teilnetzwerk-Verwaltungseinheit infolge eines von einer zum Teilnetzwerk 646 gehörenden Teilnetzwerk-Verwaltungseinheit durchgeführten Durchlaufs mit SMP-Paketen zur Prüfung des Anschlusses 680 der Vermittlungsstelle 612 und infolge der Lokalisierung des Anschlusses 654 des HCA 608 den HCA 608 feststellen.
  • Alternativ dazu kann die zum Teilnetzwerk 646 gehörende Teilnetzwerk-Verwaltungseinheit den HCA 608 infolge einer Verzweigung von der Vermittlungsstelle 612 feststellen, die einen Zustandswechsel anzeigt. Dies würde dazu führen, dass die zum Teilnetzwerk 646 gehörende Teilnetzwerk-Verwaltungseinheit den Anschluss 680 der Vermittlungsstelle 612 mit Hilfe von InfiniBand-SMPs prüft und den Anschluss 654 des HCA 608 lokalisiert. Der HCA 608 erscheint der zum Teilnetzwerk 646 gehörenden Teilnetzwerk-Verwaltungseinheit als ein physischer HCA. Die zum Teilnetzwerk 646 gehörende Teilnetzwerk-Verwaltungseinheit weist dem Anschluss 654 des HCA 608 unter Verwendung von InfiniBand-SMPs die LID 674 zu.
  • Wie vorstehend erwähnt wurde, stellt die vorliegende Erfindung ein Verfahren und ein System zur Unterteilung von Endknoten für ein physisches Element bereit. Die Auswahl einer Konfiguration des physischen Elements kann statisch oder dynamisch erfolgen. Bei einem statischen Auswahlmechanismus kann eine Teilnetzwerk-Verwaltungseinheit das physische Element wie zum Beispiel eine Vermittlungsstelle oder einen HCA prüfen, um festzustellen, ob das physische Element erkannt wird. Wenn das physische Element erkannt wird, wird dem SMP-Anschluss des physischen Elements eine LID zugewiesen. Wenn weitere Anschlüsse des physischen Elements festgestellt werden, wird den weiteren Anschlüssen eine LID zugewiesen.
  • Bei einem dynamischen Auswahlmechanismus werden die HCAs und die zugehörigen Host-Knoten der HCAs bei ihrer Inbetriebnahme gemeldet. Überdies meldet der dynamische Auswahlmechanismus das Entfernen der HCAs und der zugehörigen Host-Knoten der HCAs, wenn die HCAs und die zugehörigen Host-Knoten der HCAs außer Betrieb genommen werden. Wenn ein HCA den Betrieb aufnimmt, weist eine Teilnetzwerk-Verwaltungseinheit einem zu dem HCA gehörenden Anschluss eine LID zu.
  • 7 ist ein beispielhaftes Flussdiagramm, das den Prozess bei einem statischen Auswahlsystem zur Konfiguration eines physischen Elements gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung zeigt. In diesem Beispiel beginnt der Prozess, indem ein Anschluss mit InfiniBand-Teilnetzwerk-Verwaltungspaketen von einer Teilnetzwerk-Verwaltungseinheit geprüft wird (Schritt 702). Es wird festgestellt, ob als Reaktion auf die Prüfung des Anschlusses mit den InfiniBand-Teilnetzwerk-Verwaltungspaketen durch die Teilnetzwerk-Verwaltungseinheit eine Vermittlungsstelle festgestellt wird (Schritt 704). Wenn keine Vermittlungsstelle festgestellt wird (Schritt 704: NEIN), wird der Prozess beendet. Wenn eine Vermittlungsstelle festgestellt wird (Schritt 704: JA), wird dem SMP-Anschluss der Vermittlungsstelle eine LID zugewiesen (Schritt 706).
  • Anschließend wird festgestellt, ob die Teilnetzwerk-Verwaltungseinheit weitere Anschlüsse der Vermittlungsstelle festgestellt hat (Schritt 708). Wenn die Teilnetzwerk-Verwaltungseinheit einen oder mehrere weitere Anschlüsse der Vermittlungsstelle festgestellt hat (Schritt 708: JA), wird dem beziehungsweise den weiteren Anschlüssen eine LID zugewiesen (Schritt 710), und der Prozess kehrt zum Schritt 708 zurück, in dem festgestellt wird, ob die Teilnetzwerk-Verwaltungseinheit weitere Anschlüsse der Vermittlungsstelle festgestellt hat. Wenn die Teilnetzwerk-Verwaltungseinheit keine weiteren Anschlüsse der Vermittlungsstelle festgestellt hat (Schritt 708: NEIN), wird festgestellt, ob das Schaltnetzwerk neu initialisiert werden muss (Schritt 712). Wenn das Schaltnetzwerk nicht neu initialisiert werden muss (Schritt 712: NEIN), wird ein Neustart des Knotens durchgeführt (Schritt 716). Die genaue Anzahl der virtuellen Vermittlungsstellen, HCAs und Host-Prozessorknoten wird dann einer Teilnetzwerk-Verwaltungseinheit gemeldet (Schritt 720), und anschließend wird der Prozess beendet. Wenn das Schaltnetzwerk neu initialisiert werden muss (Schritt 712: JA), wird die Neuinitialisierung des Schaltnetzwerks durchgeführt (Schritt 714). Daraufhin wird festgestellt, ob ein Neustart des Knotens durchgeführt werden muss (Schritt 718). Wenn der Knoten neu gestartet werden muss (Schritt 718: JA), wird der Neustart des Knotens durchgeführt (Schritt 716), die genaue Anzahl der virtuellen Vermittlungsstellen, HCAs und Host-Prozessorknoten wird gemeldet (Schritt 720), und anschließend wird der Prozess beendet. Wenn kein Neustart des Knotens durchgeführt werden muss (Schritt 718: NEIN), wird die genaue Anzahl der virtuellen Vermittlungsstellen, HCAs und Host-Prozessorknoten gemeldet (Schritt 720), und anschließend wird der Prozess beendet.
  • 8 ist ein beispielhaftes Flussdiagramm, das den Meldevorgang von Host-Kanaladaptern und zugehörigen Knoten zeigt, wenn sie gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung in Betrieb gehen oder außer Betrieb genommen werden. In diesem Beispiel beginnt der Prozess, indem festgestellt wird, ob ein HCA und die zugehörigen Host-Knoten des HCA betriebsbereit sind (Schritt 802). Wenn der HCA und die zugehörigen Host-Knoten des HCA nicht betriebsbereit sind (Schritt 802: NEIN), wird der Prozess beendet. Wenn der HCA und die zugehörigen Host-Knoten des HCA betriebsbereit sind (Schritt 802: JA), werden der HCA und seine zugehörigen Knoten einer Teilnetzwerk-Verwaltungseinheit gemeldet (Schritt 804), wenn sie in Betrieb gehen. Daraufhin wird festgestellt, ob der HCA und die zugehörigen Host-Knoten des HCA außer Betrieb genommen wurden (Schritt 806). Wenn der HCA und die zugehörigen Host-Knoten des HCA nicht außer Betrieb genommen wurden (Schritt 806: NEIN), wird der Prozess beendet. Wenn der HCA und die zugehörigen Host-Knoten des HCA außer Betrieb genommen wurden (Schritt 806: JA), wird gemeldet, dass der HCA und die zugehörigen Knoten des HCA außer Betrieb genommen wurden (Schritt 808), und anschließend wird der Prozess beendet.
  • 9 ist ein beispielhaftes Flussdiagramm, das den Prozess bei einem dynamischen Auswahlsystem zur Konfiguration eines physischen Elements gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung zeigt. In diesem Beispiel beginnt der Prozess, indem festgestellt wird, ob ein HCA zu dem Zeitpunkt, zu dem er eingeschaltet wird, in Betrieb geht (Schritt 902). Wenn ein HCA zu dem Zeitpunkt, zu dem er eingeschaltet wird, nicht in Betrieb geht (Schritt 902: NEIN), wird festgestellt, ob ein HCA in Betrieb geht, nachdem er eingeschaltet worden ist (Schritt 904). Wenn ein HCA nicht in Betrieb geht, nachdem er eingeschaltet worden ist (Schritt 904: NEIN), wird der Prozess beendet. Wenn ein HCA in Betrieb geht, nachdem er eingeschaltet worden ist (Schritt 904: JA), schaltet der Prozess zum Schritt 906 weiter, in dem ein Anschluss von einer Teilnetzwerk-Verwaltungseinheit mit InfiniBand-Teilnetzwerk-Verwaltungspaketen geprüft wird.
  • Kehren wir nochmals zum Schritt 902 zurück. Wenn ein HCA zu dem Zeitpunkt, zu dem er eingeschaltet wird, in Betrieb geht (Schritt 902: JA), wird ein Anschluss von einer Teilnetzwerk-Verwaltungseinheit mit InfiniBand-Teilnetzwerk-Verwaltungspaketen geprüft (Schritt 906). Es wird festgestellt, ob eine Vermittlungsstelle erkannt wird (Schritt 908). Wenn keine Vermittlungsstelle erkannt wird (Schritt 908: NEIN), wird der Prozess beendet. Wenn eine Vermittlungsstelle erkannt wird (Schritt 908: JA), wird dem SMP-Anschluss der Vermittlungsstelle eine LID zugewiesen (Schritt 910). Daraufhin wird festgestellt, ob eine Teilnetzwerk-Verwaltungseinheit bei einem Durchlauf mit SMP-Paketen weitere Anschlüsse der Vermittlungsstelle erkannt hat (Schritt 912). Wenn eine Teilnetzwerk-Verwaltungseinheit bei einem Durchlauf mit SMP-Paketen weitere Anschlüsse der Vermittlungsstelle erkannt hat (Schritt 912: JA), wird dem weiteren Anschluss eine LID zugewiesen, und der Prozess schaltet zum Schritt 914 weiter, in dem festgestellt wird, ob die Teilnetzwerk-Verwaltungseinheit bei Benutzung einer Verzweigung von der Vermittlungsstelle, die einen Zustandswechsel anzeigt, weitere Anschlüsse der Vermittlungsstelle festgestellt hat.
  • Wenn die Teilnetzwerk-Verwaltungseinheit bei einem Durchlauf mit SMP-Paketen keine weiteren Anschlüsse der Vermittlungsstelle erkannt hat (Schritt 912: NEIN), wird festgestellt, ob die Teilnetzwerk-Verwaltungseinheit bei Benutzung einer Verzweigung von der Vermittlungsstelle, die einen Zustandswechsel anzeigt, weitere Anschlüsse erkannt hat (Schritt 914). Wenn die Teilnetzwerk-Verwaltungseinheit bei Benutzung einer Verzweigung von der Vermittlungsstelle, die einen Zustandswechsel anzeigt, weitere Anschlüsse erkannt hat (Schritt 914: JA) und dem weiteren Anschluss eine LID zugewiesen wird (Schritt 916), kehrt der Prozess zum Schritt 912 zurück, in dem festgestellt wird, ob die Teilnetzwerk-Verwaltungseinheit bei einem Durchlauf mit SMP-Paketen weitere Anschlüsse der Vermittlungsstelle erkannt hat.
  • Wenn die Teilnetzwerk-Verwaltungseinheit bei Benutzung einer Verzweigung von der Vermittlungsstelle, die einen Zustandswechsel anzeigt, keine weiteren Anschlüsse der Vermittlungsstelle erkannt hat (Schritt 914: NEIN), wird festgestellt, ob das Schaltnetzwerk neu initialisiert werden muss (Schritt 918). Wenn das Schaltnetzwerk neu initialisiert werden muss (Schritt 918: JA), wird das Schaltnetzwerk neu initialisiert, und der Prozess schaltet zum Schritt 920 weiter, in dem ein Knoten neu gestartet wird. Wenn das Schaltnetzwerk nicht neu initialisiert werden muss (Schritt 918: NEIN), wird ein Knoten neu gestartet (Schritt 920). HCAs und Host-Prozessorknoten werden gemeldet, wenn sie in Betrieb gehen (Schritt 922), und daraufhin wird der Prozess beendet.
  • Die vorliegende Erfindung stellt folglich einen Mechanismus bereit, der es ermöglicht, dass eine einzige physische Komponente als mehrere Komponenten erscheinen kann, wobei jede einzelne Komponente ganz eigene Zugriffssteuerungsebenen hat. Bei den Komponenten kann es sich um Host-Kanaladapter (HCAs), Zielkanaladapter (TCAs) oder Vermittlungsstellen handeln. Die Ressourcen, die zur Erzeugung der Host-Kanaladapter und der Vermittlungsstellen verwendet werden, kann man durch eine statische oder eine dynamische Auswahl einer Zustandsmaschine in Software, Firmware oder in Hardware aus einer gemeinsamen Gruppe erhalten. Die Zuordnung dieser Ressourcen kann durch verschiedene Mechanismen erfolgen. Zum Beispiel kann ein einfacher 1/N-Mechanismus verwendet werden, um Ressourcen über alle virtuellen HCAs hinweg zuzuordnen. Alternativ dazu kann ein Mechanismus auf der Grundlage eines gewichteten Durchschnitts verwendet werden, um virtuelle HCAs mit unterschiedlichen Fähigkeiten zu erzeugen. Als eine Möglichkeit, jedoch nicht auf diese beschränkt, können die Ressourcen aus Änderungswerten bestehen, die von allen HCAs und QPs gewählt werden können. Diese von den HCAs und QPs wählbaren Änderungswerte können beispielsweise eine Anzahl von QPs, eine Anzahl von CQs, die Größe der TPT, die Größen von P-Schlüsseltabellen, die Anzahl von ausstehenden Lese-RDMAs und dergleichen sein.
  • Es sei unbedingt angemerkt, dass die vorliegende Erfindung zwar im Zusammenhang mit einem uneingeschränkt funktionsfähigen Datenverarbeitungssystem beschrieben wurde, der Fachmann jedoch versteht, dass die Prozesse der vorliegenden Erfindung in Form von einem rechnerlesbaren Datenträger mit Befehlen und in vielen verschiedenen anderen Formen zum Vertrieb angeboten werden können und dass die vorliegende Erfindung ungeachtet der jeweiligen Art des Signal tragenden Mediums, das für den Vertrieb der Erfindung dann tatsächlich verwendet wird, gleichermaßen Anwendung findet.
  • Beispiele für rechnerlesbare Datenträger sind unter anderem beschreibbare Datenträger wie zum Beispiel eine Diskette, ein Festplattenlaufwerk, ein RAM, CD-ROMs, DVD-ROMs sowie Übertragungsmedien wie digitale und analoge Datenübertragungsverbindungen, drahtgebundene oder drahtlose Datenübertragungsverbindungen, die Übertragungsformen wie zum Beispiel Hochfrequenz- und Lichtwellenleiter-Übertragungen nutzen. Der rechnerlesbare Datenträger kann die Form von codierten Formaten annehmen, die zur tatsächlichen Verwendung in einem bestimmten Datenverarbeitungssystem decodiert werden.

Claims (3)

  1. Verfahren zur Unterteilung eines Endknotens (606) für ein physisches Element (600), das durch die folgenden Schritte gekennzeichnet ist: unter Verwendung eines Teilnetz-Verwaltungspakets (SMP) Prüfen (702) eines Anschlusses (644); als Ergebnis der Prüfung des Anschlusses (644) Feststellen (704) einer Vermittlungsstelle (612), die zu dem Anschluss (644) gehört; Zuweisen (706) einer lokalen Kennung (694) zu einem SMP-Anschluss (686) der Vermittlungsstelle (612); Feststellen (708) eines weiteren Anschlusses (678) der Vermittlungsstelle (612); und zuweisen (710) einer lokalen Kennung (670) zu einem Anschluss (650) des Endknotens (606), der dem weiteren Anschluss (678) entspricht.
  2. System zur Unterteilung eines Endknotens (606) für ein physisches Element (600), das gekennzeichnet ist durch ein Mittel, das so ausgelegt ist, dass es unter Verwendung eines Teilnetz-Verwaltungspakets (SMP) einen Anschluss (644) prüft (702); ein Mittel, das so ausgelegt ist, dass es als Ergebnis der Prüfung des Anschlusses (644) eine zu dem Anschluss (644) gehörende Vermittlungsstelle (612) feststellt (704); ein Mittel, das so ausgelegt ist, dass es einem SMP-Anschluss (686) der Vermittlungsstelle (612) eine lokale Kennung (694) zuweist (706); ein Mittel, das so ausgelegt ist, dass es einen weiteren Anschluss (678) der Vermittlungsstelle (612) feststellt (708); und ein Mittel, das so ausgelegt ist, dass es einem Anschluss (650) eines Endknotens (606), der dem weiteren Anschluss (678) entspricht, eine lokale Kennung (670) zuweist (710).
  3. Rechnerprogrammprodukt, das auf einem rechnerlesbaren Speichermedium gespeichert wird und dazu dient, das Verfahren nach Anspruch 1 durchzuführen, wenn es auf einem Rechnersystem ausgeführt wird.
DE60212626T 2001-06-29 2002-03-18 Endknotenunterteilung mittels lokaler identifikatoren Expired - Lifetime DE60212626T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US895233 1986-08-11
US09/895,233 US20030005039A1 (en) 2001-06-29 2001-06-29 End node partitioning using local identifiers
PCT/GB2002/001338 WO2003003229A1 (en) 2001-06-29 2002-03-18 End node partitioning using local identifiers

Publications (2)

Publication Number Publication Date
DE60212626D1 DE60212626D1 (de) 2006-08-03
DE60212626T2 true DE60212626T2 (de) 2007-07-05

Family

ID=25404187

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60212626T Expired - Lifetime DE60212626T2 (de) 2001-06-29 2002-03-18 Endknotenunterteilung mittels lokaler identifikatoren

Country Status (8)

Country Link
US (1) US20030005039A1 (de)
EP (1) EP1399829B1 (de)
JP (1) JP3783017B2 (de)
KR (1) KR100582406B1 (de)
CN (1) CN1212574C (de)
AT (1) ATE331252T1 (de)
DE (1) DE60212626T2 (de)
WO (1) WO2003003229A1 (de)

Families Citing this family (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6904545B1 (en) * 2001-07-11 2005-06-07 Advanced Micro Devices, Inc. Fault tolerant computing node having multiple host channel adapters
US9836424B2 (en) * 2001-08-24 2017-12-05 Intel Corporation General input/output architecture, protocol and related methods to implement flow control
US7231486B2 (en) 2001-08-24 2007-06-12 Intel Corporation General input/output architecture, protocol and related methods to support legacy interrupts
US6829685B2 (en) * 2001-11-15 2004-12-07 International Business Machines Corporation Open format storage subsystem apparatus and method
US20030101158A1 (en) * 2001-11-28 2003-05-29 Pinto Oscar P. Mechanism for managing incoming data messages in a cluster
US7290277B1 (en) * 2002-01-24 2007-10-30 Avago Technologies General Ip Pte Ltd Control of authentication data residing in a network device
US7606167B1 (en) * 2002-04-05 2009-10-20 Cisco Technology, Inc. Apparatus and method for defining a static fibre channel fabric
US7299266B2 (en) * 2002-09-05 2007-11-20 International Business Machines Corporation Memory management offload for RDMA enabled network adapters
US7379983B2 (en) * 2003-06-25 2008-05-27 International Business Machines Corporation Merging scalable nodes into single-partition merged system using service processors of nodes
EP1762932A3 (de) * 2003-12-11 2007-11-21 Fusion Dynamic Ltd. Verfahren und Apparat zum Steuern von ausführbaren Dateien die auf Blade-Servern laufen
US8335909B2 (en) 2004-04-15 2012-12-18 Raytheon Company Coupling processors to each other for high performance computing (HPC)
US20050235055A1 (en) * 2004-04-15 2005-10-20 Raytheon Company Graphical user interface for managing HPC clusters
US8336040B2 (en) 2004-04-15 2012-12-18 Raytheon Company System and method for topology-aware job scheduling and backfilling in an HPC environment
US9178784B2 (en) * 2004-04-15 2015-11-03 Raytheon Company System and method for cluster management based on HPC architecture
US8190714B2 (en) * 2004-04-15 2012-05-29 Raytheon Company System and method for computer cluster virtualization using dynamic boot images and virtual disk
US7711977B2 (en) * 2004-04-15 2010-05-04 Raytheon Company System and method for detecting and managing HPC node failure
US7602712B2 (en) * 2004-06-08 2009-10-13 Sun Microsystems, Inc. Switch method and apparatus with cut-through routing for use in a communications network
US7639616B1 (en) 2004-06-08 2009-12-29 Sun Microsystems, Inc. Adaptive cut-through algorithm
US8964547B1 (en) 2004-06-08 2015-02-24 Oracle America, Inc. Credit announcement
US7257758B1 (en) * 2004-06-08 2007-08-14 Sun Microsystems, Inc. Stumping mechanism
US7860096B2 (en) * 2004-06-08 2010-12-28 Oracle America, Inc. Switching method and apparatus for use in a communications network
US8244882B2 (en) * 2004-11-17 2012-08-14 Raytheon Company On-demand instantiation in a high-performance computing (HPC) system
US7433931B2 (en) * 2004-11-17 2008-10-07 Raytheon Company Scheduling in a high-performance computing (HPC) system
US7581021B2 (en) * 2005-04-07 2009-08-25 International Business Machines Corporation System and method for providing multiple virtual host channel adapters using virtual switches
JP4670676B2 (ja) * 2006-02-17 2011-04-13 日本電気株式会社 スイッチ及びネットワークブリッジ装置
US7519761B2 (en) * 2006-10-10 2009-04-14 International Business Machines Corporation Transparent PCI-based multi-host switch
US20080155571A1 (en) * 2006-12-21 2008-06-26 Yuval Kenan Method and System for Host Software Concurrent Processing of a Network Connection Using Multiple Central Processing Units
US7904602B2 (en) * 2008-02-05 2011-03-08 Raptor Networks Technology, Inc. Distributed computing bus
US8862706B2 (en) 2007-12-14 2014-10-14 Nant Holdings Ip, Llc Hybrid transport—application network fabric apparatus
US8793699B2 (en) * 2008-02-25 2014-07-29 International Business Machines Corporation Negating initiative for select entries from a shared, strictly FIFO initiative queue
US7949721B2 (en) * 2008-02-25 2011-05-24 International Business Machines Corporation Subnet management discovery of point-to-point network topologies
US8065279B2 (en) * 2008-02-25 2011-11-22 International Business Machines Corporation Performance neutral heartbeat for a multi-tasking multi-processor environment
US7831710B2 (en) * 2008-02-25 2010-11-09 International Business Machines Corporation Communication of offline status between computer systems
US8042004B2 (en) * 2008-02-25 2011-10-18 International Business Machines Corporation Diagnosing communications between computer systems
US8009589B2 (en) * 2008-02-25 2011-08-30 International Business Machines Corporation Subnet management in virtual host channel adapter topologies
US7962564B2 (en) * 2008-02-25 2011-06-14 International Business Machines Corporation Discovery of a virtual topology in a multi-tasking multi-processor environment
US8762125B2 (en) * 2008-02-25 2014-06-24 International Business Machines Corporation Emulated multi-tasking multi-processor channels implementing standard network protocols
JP5110156B2 (ja) * 2010-12-03 2012-12-26 日本電気株式会社 スイッチ及びネットワークブリッジ装置
US8868700B2 (en) 2010-12-28 2014-10-21 Nant Holdings Ip, Llc Distributed network interfaces for application cloaking and spoofing
CN102136955B (zh) * 2011-04-29 2014-04-09 杭州华三通信技术有限公司 一种基于解耦合vpls转发框架的报文转发方法和设备
US8713649B2 (en) 2011-06-03 2014-04-29 Oracle International Corporation System and method for providing restrictions on the location of peer subnet manager (SM) instances in an infiniband (IB) network
US9332005B2 (en) 2011-07-11 2016-05-03 Oracle International Corporation System and method for providing switch based subnet management packet (SMP) traffic protection in a middleware machine environment
JP6088509B2 (ja) 2011-07-11 2017-03-01 オラクル・インターナショナル・コーポレイション ミドルウェアマシン環境においてフラッディングメカニズムをサポートするためのマルチキャストグループとパケット処理プロキシとのうちの少なくとも1つを用いるシステムおよび方法
US9325619B2 (en) 2011-11-15 2016-04-26 Oracle International Corporation System and method for using virtual lanes to alleviate congestion in a fat-tree topology
US8879396B2 (en) * 2011-11-15 2014-11-04 Oracle International Corporation System and method for using dynamic allocation of virtual lanes to alleviate congestion in a fat-tree topology
US9690836B2 (en) 2012-05-10 2017-06-27 Oracle International Corporation System and method for supporting state synchronization in a network environment
US9917728B2 (en) 2014-01-14 2018-03-13 Nant Holdings Ip, Llc Software-based fabric enablement
US10212101B2 (en) 2014-01-14 2019-02-19 Nant Holdings Ip, Llc Low level provisioning of network fabrics
CN105335227B (zh) * 2014-06-19 2019-01-08 华为技术有限公司 一种节点内的数据处理方法、装置和系统
US9692660B2 (en) 2015-09-23 2017-06-27 International Business Machines Corporation Election and use of configuration manager
US10432470B2 (en) 2015-09-23 2019-10-01 International Business Machines Corporation Distributed subnet manager for InfiniBand networks
US10360205B2 (en) 2015-09-23 2019-07-23 International Business Machines Corporation Cooperative MKEY locking for managing infiniband networks
US10498654B2 (en) 2015-12-28 2019-12-03 Amazon Technologies, Inc. Multi-path transport design
US9985904B2 (en) 2015-12-29 2018-05-29 Amazon Technolgies, Inc. Reliable, out-of-order transmission of packets
CN110719294B (zh) * 2015-12-29 2021-06-01 亚马逊技术股份有限公司 网络技术
US10148570B2 (en) 2015-12-29 2018-12-04 Amazon Technologies, Inc. Connectionless reliable transport
US9985903B2 (en) 2015-12-29 2018-05-29 Amazon Technologies, Inc. Reliable, out-of-order receipt of packets
US11018947B2 (en) 2016-01-27 2021-05-25 Oracle International Corporation System and method for supporting on-demand setup of local host channel adapter port partition membership in a high-performance computing environment
EP3408983B1 (de) * 2016-01-27 2021-12-08 Oracle International Corporation System und verfahren zur unterstützung einer skalierbaren darstellung des schalteranschlussstatus in einer hochleistungsrechnerumgebung
US10594627B2 (en) 2016-01-27 2020-03-17 Oracle International Corporation System and method for supporting scalable representation of switch port status in a high performance computing environment
US11271870B2 (en) 2016-01-27 2022-03-08 Oracle International Corporation System and method for supporting scalable bit map based P_Key table in a high performance computing environment
US10440152B2 (en) * 2016-01-27 2019-10-08 Oracle International Corporation System and method of initiating virtual machine configuration on a subordinate node from a privileged node in a high-performance computing environment
US10972375B2 (en) 2016-01-27 2021-04-06 Oracle International Corporation System and method of reserving a specific queue pair number for proprietary management traffic in a high-performance computing environment
US11336716B2 (en) 2017-08-31 2022-05-17 Oracle International Corporation System and method for supporting heterogeneous and asymmetric dual rail fabric configurations in a high performance computing environment
US11102108B2 (en) 2017-08-31 2021-08-24 Oracle International Corporation System and method for a multicast send duplication instead of replication in a high performance computing environment
US11070394B2 (en) * 2017-08-31 2021-07-20 Oracle International Corporation System and method for redundant independent networks in a high performance computing environment
US11411860B2 (en) 2017-08-31 2022-08-09 Oracle International Corporation System and method for on-demand unicast forwarding in a high performance computing environment
US11356327B2 (en) 2017-08-31 2022-06-07 Oracle International Corporation System and method for a single logical IP subnet across multiple independent layer 2 (L2) subnets in a high performance computing environment
US12218841B1 (en) 2019-12-12 2025-02-04 Amazon Technologies, Inc. Ethernet traffic over scalable reliable datagram protocol
US11765037B2 (en) * 2020-08-19 2023-09-19 Hewlett Packard Enterprise Development Lp Method and system for facilitating high availability in a multi-fabric system
US12531808B2 (en) 2022-06-29 2026-01-20 Amazon Technologies, Inc. Transport protocol selection based on connection state
US12301460B1 (en) 2022-09-30 2025-05-13 Amazon Technologies, Inc. Multi-port load balancing using transport protocol

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5793763A (en) * 1995-11-03 1998-08-11 Cisco Technology, Inc. Security system for network address translation systems
US6694361B1 (en) * 2000-06-30 2004-02-17 Intel Corporation Assigning multiple LIDs to ports in a cluster
US6704812B2 (en) * 2000-11-30 2004-03-09 International Business Machines Corporation Transparent and dynamic management of redundant physical paths to peripheral devices

Also Published As

Publication number Publication date
EP1399829B1 (de) 2006-06-21
ATE331252T1 (de) 2006-07-15
DE60212626D1 (de) 2006-08-03
WO2003003229A1 (en) 2003-01-09
CN1520556A (zh) 2004-08-11
EP1399829A1 (de) 2004-03-24
KR100582406B1 (ko) 2006-05-22
JP3783017B2 (ja) 2006-06-07
JP2004531175A (ja) 2004-10-07
CN1212574C (zh) 2005-07-27
KR20040054620A (ko) 2004-06-25
US20030005039A1 (en) 2003-01-02

Similar Documents

Publication Publication Date Title
DE60212626T2 (de) Endknotenunterteilung mittels lokaler identifikatoren
DE112008002550B4 (de) Verfahren und System für virtuelle Schnittstellenkommunikation
DE60201682T2 (de) Anordnung zur erzeugung mehrerer virtueller warteschlangenpaare aus einer komprimierten warteschlange auf der basis gemeinsamer attribute
DE69832744T2 (de) System und Verfahren zur automatischen dynamischen Ringadressveränderungen
DE69930490T2 (de) Kommunikationsverfahren, Sendungsverfahren und Empfangsverfahren und Geräte zu ihrer Durchführung
DE69826930T2 (de) System und Verfahren zur wirksamen Fernplatte Ein-/Ausgabe
DE69328666T2 (de) Verfahren und Gerät um eine Anzahl Rechner als einen einzigen Host auf dem Netz erscheinen zu lassen
DE69735936T2 (de) Seriendatenschnittstellenverfahren und vorrichtung #
DE69636663T2 (de) System und Verfahren zur Zugriffsverteilung von Mehrfachspeichermatrixen zwischen Mehrfachwirtrechnersystemen
DE60027404T2 (de) Kreditbasiertes flusskontrollverfahren
DE112013006063B4 (de) Funktionsübernahme für einen Datenübertragungskanal in einem Netzwerk mit Hochleistungsdatenverarbeitung
DE69826680T2 (de) Hochintegrierte mehrschichtige Vermittlungsstellenelementarchitektur
DE69505871T2 (de) Taktfehlererkennungsschaltung
DE112011102415B4 (de) Registerzugriff in einer verteilten virtuellen Brückenumgebung
DE112012001753B4 (de) 3 -Anmeldesequenz für eine Fibre-Channel-Weiterleiterstruktur
DE102018006546A1 (de) Plattformschnittstellenschicht und protokoll für beschleuniger
DE102015102692A1 (de) Verfahren zum Optimieren von Netzdatenströmen in einem eingeschränkten System
DE112008001957B4 (de) Systeme und Verfahren zum Verbessern der Leistungsfähigkeit eines routfähigen Netzwerks
DE112005003124T5 (de) Schnittstelle PCI Express zu erweitertem Schaltnetzwerk
DE102005014727A1 (de) Hardwarekoordination von Power Management-Aktivitäten
DE102022205478A1 (de) Busübergreifende speicherabbildung
DE102015102871A1 (de) Technologien für verteilten Leitweglenkungstabellennachschlag
DE2917441A1 (de) Multiprozessoranlage
DE60038356T2 (de) Steuerungs- und Verteilungsprotokoll für einen beweglichen Routerrahmen
DE102008030587A1 (de) Verfahren und Vorrichtung zur Erhöhung der Effizienz der Interrupt-Lieferung zur Laufzeit in einem Netzwerksystem

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)