-
Hintergrund
der Erfindung
-
Der
PCI-Bus (peripheral component interconnect bus, Peripheriekomponentenverbindungsbus)
wurde während
der vergangenen zehn Jahre verbreitet als Allzweckeingangs- und
Ausgangsverbindungsstandard verwendet, beginnt jedoch, die Grenzen
seiner Kapazitäten
zu erreichen. Erweiterungen der PCI-Standards, wie 64-Bit-Slots
und Taktgeschwindigkeiten von 66 MHz bzw. 100 MHz, sind zu kostspielig
und können
die rasch ansteigenden Bandbreitenanforderungen bei PCs in den kommenden
Jahren nicht erfüllen.
PCI-Express wurde kürzlich
entwickelt, um diese Herausforderung zu meistern, und nimmt die
Form einer seriellen Busarchitektur an.
-
Das
Internet Protocol (IP) ist das weltweit populärste Protokollpaket nach einem
offenen System (nicht geschützt),
da es zum Kommunizieren über jede
Gruppe verbundener Netzwerke verwendet werden kann und für eine LAN-
ebenso wie für
eine WAN-Kommunikation geeignet ist. Während PCI Express der Standard
für interne
PC-Netzwerke werden könnte,
bleibt das IP wahrscheinlich der Netzwerkstandard für externe
Netzwerke, wie das Internet. Der Stand der Technik bietet keine
Mittel zum Übermitteln von
PCI-Express-Paketen über
das allgegenwärtige IP-Netzwerk.
Dies hat den Nachteil, dass PCI-Express-Pakete und IP-Pakete zwischen
den Netzwerken durchgehend übersetzt
werden müssen,
wodurch die Kosten gesteigert und der Netzbetrieb verlangsamt werden.
-
Dementsprechend
besteht erheblicher Bedarf an einer Vorrichtung und einem Verfahren,
durch die die vorstehend aufgeführten
Unzulänglichkeiten des
Stands der Technik überwunden
werden.
-
Kurze Beschreibung
der Zeichnungen
-
Es
zeigen:
-
1 ein
Computernetzwerk gemäß einer Ausführungsform
der Erfindung;
-
2 ein
Computernetzwerk gemäß einer weiteren
Ausführungsform
der Erfindung;
-
3 ein
in ein IP-Paket eingekapseltes PCI-Express-Paket gemäß einer Ausführungsform der
Erfindung;
-
4 ein
Ablaufdiagramm eines erfindungsgemäßen Verfahrens gemäß einer
Ausführungsform der
Erfindung und
-
5 ein
Ablaufdiagramm eines erfindungsgemäßen Verfahrens gemäß einer
weiteren Ausführungsform
der Erfindung.
-
Es
ist ersichtlich, dass die in den Zeichnungen gezeigten Elemente
aus Gründen
der Einfachheit und der Klarheit der Darstellung nicht notwendigerweise
maßstabsgetreu
dargestellt sind. Die Abmessungen einiger der Elemente sind beispielsweise in
Bezug aufeinander übertrieben.
Ferner wurden Bezugszeichen, wo dies angebracht erschien, in den Figuren
zur Bezeichnung entsprechender Elemente wiederholt.
-
Beschreibung
der bevorzugten Ausführungsformen
-
In
der folgenden detaillierten Beschreibung beispielhafter Ausführungsformen
der Erfindung wird auf die beiliegenden Zeichnungen Bezug genommen,
die spezifische, beispielhafte Ausführungsformen darstellen, durch
die die Erfindung in die Praxis umgesetzt werden kann. Diese Ausführungsformen werden
ausreichend genau beschrieben, um Fachleuten die Umsetzung der Erfindung
in die Praxis zu ermöglichen,
es können
jedoch andere Ausführungsformen
verwendet werden, und es können
logische, mechanische, elektrische und weitere Veränderungen
vorgenommen werden, ohne vom Rahmen der vorliegenden Erfindung abzuweichen.
Die folgende detaillierte Beschreibung ist daher nicht als einschränkend zu
verstehen, und der Rahmen der Erfindung ist ausschließlich durch
die beiliegenden Ansprüche
definiert.
-
In
der folgenden Beschreibung werden zahlreiche spezifische Details
aufgeführt,
um ein umfassendes Verständnis
der Erfindung zu gewährleisten. Es
wird jedoch darauf hingewiesen, dass die Erfindung ohne diese spezifischen
Einzelheiten in die Praxis umgesetzt werden kann. In anderen Fällen wurden
allgemein bekannte Schaltungen, Strukturen und Techniken nicht im
Einzelnen dargestellt, um die Erfindung nicht zu verdecken.
-
Zur
Verdeutlichung der Erläuterung
sind die Ausführungsformen
der vorliegenden Erfindung teilweise als einzelne funktionale Blöcke umfassend dargestellt,
die durch diese Blöcke
repräsentierten Funktionen
können
durch die Verwendung entweder geteilter oder dafür bestimmter Hardware erfüllt werden,
einschließlich
von zur Ausführung
von Software geeigneter Hardware, aber nicht darauf beschränkt. Die
vorliegende Erfindung ist nicht auf eine Implementierung durch irgendeine
bestimmte Gruppe von Elementen beschränkt, und die vorliegende Beschreibung
repräsentiert
lediglich eine Ausführungsform.
-
1 zeigt
ein Computernetzwerk 100 gemäß einer Ausführungsform
der Erfindung. Das Computernetzwerk 100 kann ein mit einer
Netzübergangssteuerung 112 gekoppeltes
IP-Paketnetzwerk 110 umfassen.
Das IP-Paketnetzwerk 110 kann unter Verwendung eines Pakets
von in der Technik bekannten Kommunikationsprotokollen arbeiten,
von denen die beiden bekanntesten das TCP (Transmission Control
Protocol) und das IP (Internet Protocol) sind. Das Internetprotokollpaket
umfasst nicht nur Protokolle der unteren Ebenen (wie TCP und IP), sondern
kann auch gemeinsame Anwendungen spezifizieren, wie E-Mail bzw.
elektronische Post, Terminal-Emulation
und einen Dateientransfer.
-
Das
Internet Protocol ist ein Protokoll auf Netzwerkebene, das Adresseninformationen
und einige Steuerinformationen enthält, die eine Weiterleitung
der Pakete ermöglichen.
IP ist im Internetprotokollpakt das primäre Protokoll auf Netzwerkebene. Zusammen
mit dem Transmission Control Protocol repräsentiert das IP das Herzstück der Internet protokolle.
IP hat zwei primäre
Verantwortlichkeiten: die Bereitstellung einer verbindungslosen,
best-effort Verteilung von Pakten über netzüberschreitende Knoten und die
Bereitstellung einer Fragmentierung und Neuzusammensetzung von Paketen
zur Unterstützung
von Datenverbindungen mit unterschiedlichen MTU-Größen (MTU:
Maximum-Transmission Unit, maximale Übertragungseinheit).
-
Die
Netzübergangssteuerung 112 kann
verwendet werden, um einzelnen, mit dem IP-Paketnetzwerk 110 gekoppelten
Knoten die Extraktion ihrer Konfigurationen zu ermöglichen.
Anders ausgedrückt
können
einzelne, mit dem IP-Paketnetzwerk 110 gekoppelte Knoten
ihre Konfiguration aus der Netzübergangssteuerung 112 extrahieren.
Gemäß einem
Beispiel muss die Netzübergangssteuerung 112 nicht über Informationen
zu einem einzelnen, mit dem IP-Paketnetzwerk 110 gekoppelten
Knoten verfügen,
bis der einzelne Knoten Informationen anfordert. Ein Beispiel einer
Netzübergangssteuerung 112 kann
ein DHCP-Server sein (DHCP: Dynamic Host Configuration Protocol).
DHCP ist ein Internetprotokoll zur Automatisierung der Konfiguration
von Computern, die TCP/IP nutzen. DHCP kann zur automatischen Zuweisung
von IP-Adressen,
zur Übermittlung von
TCP/IP-Stapelkonfigurationsparametern, wie dem Subnet Mask and Default
Router, und zum Liefern weiterer, die Konfiguration betreffender
Informationen, beispielsweise der Adresse des Drucker, Zeit- und
Nachrichtenservers, verwendet werden.
-
Als
Hintergrund wurde PCI (Peripheral Component Interconnect) in den
frühen
neunziger Jahren des 20. Jahrhunderts als allgemeine Ein- und Ausgabearchitektur
zur rascheren Übertragung
von Daten und Anweisungen als bei der damaligen ISA-Architektur
entwickelt. PCI wurde seit damals mehrfach verbessert, wobei der
jüngste
Vorschlag PCI Express ist. Knapp ausgedrückt ist PCI Express ein Ersatz
für die
PCI und PCI-X Busspezifikationen zur Schaffung von Plattformen mit
erheblich größerer Leistung
bei Verwendung einer erheblich geringeren Anzahl an Pins bzw. Anschlüssen (Es
wird darauf hingewiesen, dass PCI und PCI-X parallele Busarchitekturen
sind, während
PCI Express eine serielle Busarchitektur ist). Eine vollständige Besprechung
von PCI Express liegt außerhalb
des Rahmens der vorliegenden Beschreibung, doch umfassende Hintergründe und
eine ausführliche
Beschreibung sind in den folgenden Büchern zu finden, die durch
Bezugnahme hierin aufgenommen sind: Introduction to PCI Express,
A Hardware and Software Developer's Guide von Adam Wilen, Justin Schade,
Ron Thornburg, The Complete PCI Express Reference, Design Insights
for Hardware and Software Developers von Edward Solari und Brad
Congdon und PCI Express System Architecture von Ravi Budruk, Don
Anderson, Tom Shanley, die alle über
www.amazon.com erhältlich
sind. Zudem werden die PCI Express-Spezifikationen durch die unter
www.pcsig.com zu findende Special Interest Group (SIG) für PCI verwaltet
und verbreitet.
-
Das
Computernetzwerk 100 kann eine beliebige Anzahl an mit
dem IP-Paketnetzwerk 110 gekoppelten PCI Express-Knoten 102, 104 umfassen. Ein
PCI Express-Knoten 102 kann eine beliebige Platine, ein
beliebiger Rahmen, ein beliebiges Netzwerk bzw. ein beliebiges System
sein, die, der bzw. das ein oder mehr mit einem PCI Express-Netzwerk 106 gekoppelte
PCI Express-Rechenelemente 130 umfasst. Ein PCI Express-Rechenelement 130 kann
einen Prozessor, eine Speichervorrichtung, eine Massenspeichervorrichtung,
eine Kommunikationsvorrichtung, die einen leitungsabhängigen oder
drahtlo sen Zugang ermöglicht,
und dergleichen umfassen, ist jedoch nicht darauf beschränkt. Das
PCI Express-Rechenelement 130 ist so angeschlossen, dass
es unter Verwendung von PCI Express-Paketen über das PCI Express-Netzwerk 106 kommuniziert.
Bei einer Ausführungsform
ist jedes PCI Express-Rechenelement 130 mit
dem PCI Express-Netzwerk 106 gekoppelt. Bei einer Ausführungsform
ist das PCI Express-Netzwerk 106 mit
einem PCI Express-IP-Übergang 103 gekoppelt,
die so arbeitet, dass sie PCI Express-Pakete in IP-Pakete verkapselt
und aus diesen entkapselt, wie nachstehend ausführlicher beschrieben.
-
Bei
einer Ausführungsform
kann das Computernetzwerk 100 eine lokale PCI Express-Adressendomäne 107 umfassen,
die mehrere lokale PCI Express-Adressen 117 umfasst. Lokale
PCI Express-Adressen 117 sind nur innerhalb eines lokalen PCI
Express-Netzwerks, wie eines PCI Express-Netzwerks 106,
erkennbar und lesbar und können
beispielsweise einen oder mehrere Speicheradressenplätze umfassen.
Lokale PCI Express-Adressen an einem PCI Express-Knoten 102 können beispielsweise
nur für
mit dem PCI Express-Netzwerk 106 am PCI Express-Knoten 102 gekoppelte
PCI Express-Rechenelemente 130 erkennbar und relevant sein,
da sie einen oder mehrere eindeutige Speicheradressenplätze an dem
PCI Express-Knoten 102 betreffen. Ebenso kann ein PCI Express-Knoten 104 über seinen
eigenen Satz von lokalen PCI Express-Adressen verfügen, die
nur für
mit einem PCI Express-Netzwerk 108 am PCI Express-Knoten 104 gekoppelte
PCI Express-Rechenelemente 132 relevant sind. Da lokale
PCI Express-Adressen 117 nur in einer bestimmten Domäne, wie
am PCI Express-Knoten 102 oder am PCI Express-Knoten 104, relevant
sind, können
sie im Allgemeinen nicht zum Adressieren von Paketen verwendet werden,
die von einem PCI Express-Knoten an einen anderen PCI Express-Knoten übertragen
werden.
-
Bei
einer Ausführungsform
kann das Computernetzwerk 100 auch eine globale PCI Express-Adressendomäne 109 umfassen,
die mehrere globale PCI Express-Adressen 119 umfasst. Globale PCI
Express-Adressen 119 sind an sämtlichen PCI Express-Knoten 102, 104 innerhalb
des Computernetzwerks 100 erkennbar und relevant. Globale PCI
Express-Adressen 119 können
beispielsweise und ohne Einschränkung
ein oder mehrere Speicheradressenplätze sein, an denen en beliebiges
PCI Express-Rechenelement 130, 132 innerhalb des
Computernetzwerks 100 einen oder mehrere eindeutige Speicheradressenplätze aufweist.
Globale PCI Express-Adressen 119 können zur Spezifikation einer Bestimmungsadresse
für ein
Paket verwendet werden, das von einem PCI Express-Rechenelement
an einem PCI Express-Knoten an ein weiteres PCI Express-Rechenelement an
einem weiteren PCI Express-Knoten innerhalb des Computernetzwerks 100 übertragen
wird.
-
Obwohl
globale PCI Express-Adressen 119 zur Spezifikation einer
Bestimmungsadresse für
ein Paket verwendet werden können,
das von einem PCI Express-Knoten 102 zu einem anderen PCI
Express-Knoten 104 übertragen
wird, sind die globalen PCI Express-Adressen 119 für ein IP-Paketnetzwerk 110 nicht
erkennbar. Daher kann kein von einem PCI Express-Knoten 102 an einen weiteren
PCI Express-Knoten 104 adressiertes PCI Express-Paket allein über ein
IP-Paketnetzwerk 110 übertragen
werden.
-
Bei
einer Ausführungsform
kann der PCI Express-Knoten 102 einen mit dem PCI Express-Netzwerk 106 und
dem IP-Paketnetzwerk 110 gekoppelten
PCI Express-IP-Übergang 103 umfassen.
Bei einer Ausführungsform
kann der PCI Express- IP-Übergang 103 eine
beliebige Kombination von Hardware, Software und dergleichen umfassen.
Der PCI Express-IP-Übergang 103 kann
arbeiten, indem er ein PCI Express-Paket für die Übertragung über das IP-Paketnetzwerk in
einem IP-Paket verkapselt.
Der PCI Express-IP-Übergang 103 kann
auch arbeiten, indem er ein PCI Express-Paket aus einem IP-Paket entkapselt,
so dass das PCI Express-Paket über
das PCI Express-Netzwerk 106 übertragen werden kann.
-
Der
PCI Express-Knoten 104 kann auch eine beliebige Anzahl
an mit einem PCI Express-Netzwerk 108 gekoppelten PCI Express-Rechenelementen 132 umfassen.
Der PCI Express-Knoten 104 kann
auch einen PCI Express-IP-Übergang 105 umfassen,
der arbeitet, indem er ein PCI Express-Paket auf eine zu der unter
Bezugnahme auf den PCI Express-IP-Übergang 103 im
PCI Express-Knoten 102 beschriebenen analoge Weise verkapselt
und entkapselt.
-
Eine
beispielhafte Ausführungsform
eines Verfahren zur Initialisierung eines Computernetzwerks 100 ist
in 1 dargestellt. Bei einer Ausführungsform bestimmt der PCI
Express-Knoten 102 bei einem Hochfahren oder Booten des
Computernetzwerks 100 eine lokale PCI Express-Adresstabelle 114,
die beispielsweise eine Liste sämtlicher
lokalen PCI Express-Adressen jedes der PCI Express-Rechenelemente 130 an
einem PCI Express-Knoten 102 sein kann. Bei einer Ausführungsform
kann die lokale PCI Express-Adresstabelle 114 eine Liste
der lokalen PCI Express-Adressen sämtlicher PCI Express-Rechenelemente 130 sein,
die ein PCI Express-Paket senden, empfangen oder dergleichen können. Die
gleiche Prozedur kann für
den PCI Express-Knoten 104 wiederholt werden, der auf analoge
Weise eine lokale PCI Express-Adresstabelle 116 erzeugen
kann.
-
Bei
einer Ausführungsform
kann jeder PCI Express-Knoten 102, 104 ebenfalls
beim Hochfahren bzw. Booten des Computernetzwerks 100 eine IP-Adresse 118, 120 von
der Netzübergangssteuerung 112 anfordern
und empfangen. Der PCI Express-Knoten 102 kann beispielsweise
die IP-Adresse 118 und der PCI Express-Knoten 104 die IP-Adresse 120 anfordern.
Jede IP-Adresse für
jeden PCI Express-Knoten des Computernetzwerks 100 kann
eindeutig sein, so dass sie jeden PCI Express-Knoten des IP-Paketnetzwerks 110 eindeutig identifiziert.
Wie in der Technik bekannt, kann eine IP-Adresse zur eindeutigen Identifikation
eines Knotens verwendet werden, der das IP-Paketnetzwerk 110 nutzt.
Die IP-Adresse kann
von dem IP-Paketnetzwerk 110 verwendet werden, um Daten
an jeden PCI Express-Knoten 102, 104 zu leiten.
Bei einer Ausführungsform
kann es die Aufgabe der Netzübergangssteuerung 112 sein,
eine funktionale und eindeutige IP-Nummer für jeden PCI Express-Knoten 102, 104 zu
erhalten, der das IP-Paketnetzwerk 110 nutzt. Bei einer
weiteren Ausführungsform
weist die Netzübergangssteuerung 112 keine
IP-Adressen zu, da die IP-Adressen für jeden PCI Express-Knoten 102, 104 statisch
sein oder vom PCI Express-Knoten selbst bestimmt werden können.
-
Bei
einer Ausführungsform
kann die Netzübergangssteuerung 112 jeden
PCI Express-Knoten des Computernetzwerks 100 abfragen,
um seine lokale PCI Express-Adresstabelle zu übertragen. Die Netzübergangssteuerung 112 kann
beispielsweise bestimmten, ob ein Knoten im Computernetzwerk 100 ein
PCI Express-Knoten ist. Ist dies der Fall, kann die Netzübergangssteuerung 112 den
PCI Express-Knoten zur Übertragung
seiner lokalen PCI Express-Adresstabelle auffordern. Die Netzübergangssteuerung 112 kann
beispielsweise den PCI Express-Knoten 102 zur Übertragung
der lokalen PCI Express-Adresstabelle 114 an
die Netzübergangssteuerung 112 auffordern.
Ebenso kann der PCI Express-Knoten 104 abgefragt werden
und die lokale PCI Express-Adresstabelle 116 an die Netzübergangssteuerung 112 senden.
-
Bei
einer weiteren Ausführungsform
können die
lokalen PCI Express-Adresstabellen 114, 116 globale
PCI Express-Adressen
für jedes
der PCI Express-Rechenelemente 130, 132 umfassen.
Während
in jeder lokalen PCI Express-Adresstabelle lokale PCI Express-Rechenelemente 130, 132 eines bestimmten
PCI Express-Knotens 102, 104 aufgelistet sind,
können
die Adressen in der lokalen PCI Express-Adresstabelle globale PCI
Express-Adressen 119 sein.
-
Bei
einer weiteren Ausführungsform
kann jeder PCI Express-Knoten 102, 104 zum jeweiligen Übersetzen
lokaler PCI Express-Adressen 117 in globale PCI Express-Adressen 119 und
umgekehrt für eingehende
und ausgehende Pakete eine (nachstehend ausführlicher besprochene) Übersetzungstabelle
erstellen, die beispielsweise eine Abruftabelle sein kann.
-
Beim
Empfang sämtlicher
lokalen PCI Express-Adresstabellen von den PCI Express-Knoten des
Computernetzwerks 100 kann die Netzübergangssteuerung 112 eine
IP-PCI Express-Adresstabelle erstellen. Bei einer Ausführungsform
kann die Netzübergangssteuerung 112 jede
der lokalen PCI Express-Adresstabellen 114, 116 zur
Zuweisung einer globalen PCI Express-Adresse zu jedem PCI Express-Rechenelement 130, 132 des
Computernetzwerks 100 verwenden. Bei dieser Ausführungsform müsste die
vorstehend erwähnte Übersetzungstabelle
an jeden jeweiligen PCI Express-Knoten 102, 104 übertragen
werden. Bei einer weiteren Ausführungsform
könnte
die Übersetzungstabelle
jeweils an jedem PCI Ex press-Knoten erstellt werden. Bei einer weiteren
Ausführungsform
kann jede lokale PCI Express-Adresstabelle 114, 116 globale
PCI Express-Adressen für
jedes der PCI Express-Rechenelemente 130, 132 enthalten.
-
Bei
einer Ausführungsform
ist jede der jedem der PCI Express-Rechenelemente 130, 132 zugeordneten
globalen PCI Express-Adressen eindeutig. Jede globale PCI Express-Adresse 119 entspricht
einem der PCI Express-Rechenelemente 130, 132 des Computernetzwerks 100.
Bei einer Ausführungsform kann
die IP-PCI Express-Tabelle 122 eine Abruftabelle, eine
Datenbank, eine Liste oder dergleichen sein.
-
Bei
einer Ausführungsform
der IP-PCI Express-Tabelle 122 entspricht jede globale
PCI Express-Adresse 119 einer IP-Adresse 118, 120,
an der sich das PCI Express-Rechenelement 130, 132 befindet.
Die IP-PCI Express-Tabelle 122 kann beispielsweise die
IP-Adresse 118 des PCI Express-Knotens 102 mit der globalen
PCI Express-Adresse 119 jedes PCI Express-Rechenelements 130 des
PCI Express-Knotens 102 abgleichen. Ebenso kann die IP-PCI
Express-Tabelle 122 die IP-Adresse 120 des PCI
Express-Knotens 104 mit der globalen PCI Express-Rdresse 119 jedes
PCI Express-Rechenelements 132 des PCI Express-Knoten 104 abgleichen.
Bei einer Ausführungsform
kann die IP-PCI Express-Tabelle 122 eine IP-Adresse eines PCI
Express-Knotens mit einer globalen PCI Express-Adresse und einer
Speichergröße für den betreffenden
PCI Express-Knoten korrelieren.
-
Bei
einer Ausführungsform
kann die Netzübergangssteuerung 112,
nachdem sie die IP-PCI Express-Tabelle 122 erstellt hat,
die IP-PCI Express-Tabelle 122 an jeden PCI Express-Knoten 102, 104 des Computernetzwerks 100 übertragen.
Die Netzübergangssteuerung 112 kann
die IP-PCI Express- Tabelle 122 beispielsweise
an den PCI Express-IP-Übergang 103 des
PCI Express-Knotens 102 und den PCI Express-IP-Übergang 105 des PCI
Express-Knotens 104 übertragen.
-
Die
Erfindung ist nicht auf Computernetzwerke beschränkt, die nur PCI Express-Knoten
aufweisen. Das Computernetzwerk 100 kann andere mit dem
IP-Paketnetzwerk 110 gekoppelte Knoten aufweisen, die unter
Verwendung eines anderen Protokolls neben PCI Express arbeiten.
-
2 zeigt
ein Computernetzwerk 200 gemäß einer weiteren Ausführungsform
der Erfindung. Gemäß einer
Ausführungsform
zeigt das Computernetzwerk 200 gemäß 2 ein Verfahren
zum Übertragen
eines PCI Express-Pakets 235 von einem Initiator-PCI Express-Knoten 202 über ein IP-Paketnetzwerk 210 an
einen Empfänger-PCI
Express-Knoten 204. Das Computernetzwerk 200 kann eine
lokale PCI Express-Adressendomäne 207 mit lokalen
PCI Express-Adressen 217 und eine globale PCI Express-Adressendomäne 209 mit
globalen PCI Express-Adressen 219 umfassen, wie vorstehend unter
Bezugnahme auf 1 besprochen.
-
Wie
in 2 gezeigt, kann das Computernetzwerk 200 ein
mit dem Initiator-PCI Express-Knoten 202 und dem Empfänger-PCI
Express-Knoten 204 gekoppeltes IP-Paketnetzwerk 210 umfassen.
Der Initiator-PCI Express-Knoten 202 kann ein oder mehrere
PCI Express-Rechenelemente 230 umfassen. Das PCI Express-Rechenelement 230 kann
einen Prozessor, eine Speichervorrichtung, eine Massenspeichervorrichtung,
eine Kommunikationsvorrichtung, die einen kabelabhängigen oder drahtlosen
Zugriff ermöglicht,
und dergleichen umfassen, ist jedoch nicht darauf beschränkt. Das
PCI Express-Rechenelement 230 ist
so angeschlossen, dass es unter Verwendung des PCI Express-Pakets 235 über das
PCI Express- Netzwerk 206 kommuniziert.
Bei einer Ausführungsform
kann das PCI Express-Paket 235 ein TLP-Datagramm (TLP:
Transaction Layer Packet) sein, das so formatiert ist, dass es über das
PCI Express-Netzwerk 206 übertragen werden kann.
-
Das
PCI Express-Netzwerk 206 ist mit einem PCI Express-IP-Übergang 203 gekoppelt,
der so angeschlossen ist, dass er ein PCI Express-Paket 235 für die Übertragung über das
IP-Paketnetzwerk 210 in ein IP-Paket 236 verkapselt.
Der PCI Express-IP-Übergang 203 kann
auch arbeiten, indem er ein PCI Express-Paket 235 so aus
einem IP-Paket 236 entkapselt, dass das PCI Express-Paket 235 über das
PCI Express-Netzwerk 206 übertragen werden kann.
-
Der
Empfänger-PCI
Express-Knoten 204 kann ein oder mehrere PCI Express-Rechenelemente 232 umfassen.
Ein PCI Express-Rechenelement 232 ist so angeschlossen,
dass es unter Verwendung eines PCI Express-Pakets 235 über ein
PCI Express-Netzwerk 208 kommuniziert. Bei einer Ausführungsform
kann das PCI Express-Paket 235 ein TLP-Datagramm (TLP:
Transaction Layer Packet) sein, das so formatiert ist, dass es über das
PCI Express-Netzwerk 208 übertragen werden kann. Das PCI
Express-Netzwerk 208 ist mit einem PCI Express-IP-Übergang 205 gekoppelt,
der so angeschlossen ist, dass er ein PCI Express-Paket 235 für eine Übertragung über das
IP-Paketnetzwerk 210 in ein IP-Paket 236 verkapselt.
Der PCI Express-IP-Übergang 205 kann
auch arbeiten, indem er ein PCI Express-Paket 235 so aus
einem IP-Paket 236 entkapselt, dass das PCI Express-Paket 235 über das
PCI Express-Netzwerk 208 übertragen werden kann.
-
Wie
unter Bezugnahme auf 1 beschrieben, kann eine IP-Adresse 240 eines
Initiator-PCI Express-Knotens von einer Netzübergangssteuerung 212 an
einen Initiator-PCI Ex press-Knoten 202 gesendet oder anderweitig
statisch bestimmt werden. Ebenso kann eine IP-Adresse 242 eines
Empfänger-PCI
Express-Knotens von einer Netzübergangssteuerung 212 an
einen Empfänger-PCI
Express-Knoten 204 gesendet oder anderweitig statisch bestimmt
werden. Ferner kann eine IP-PCI
Express-Tabelle 222 bestimmt und sowohl an den Initiator-PCI
Express-Knoten 202 als auch an den Empfänger-PCI Express-Knoten 204 übertragen
werden.
-
Bei
einer Ausführungsform
kann das PCI Express-Rechenelement 230 des
Initiator-PCI Express-Knotens 202 ein PCI Express-Paket 235 erzeugen.
Bei einer Ausführungsform
kann das PCI Express-Paket 235 eine eindeutige globale
PCI Express-Bestimmungsadresse 219 umfassen, so dass das
PCI Express-Paket 235 an eines der PCI Express-Rechenelemente 232 des
Empfänger-PCI
Express-Knotens 204 adressiert ist. Bei dieser Ausführungsform
muss das PCI Express-Paket 235 das IP-Paketnetzwerk 210 durchqueren,
wie in 2 gezeigt.
-
Das
PCI Express-Paket 235 kann über das PCI Express-Netzwerk 206 am
Initiator-PCI Express-Knoten 202 an den PCI Express-IP-Übergang 203 übertragen
werden, an dem die globale- PCI Express-Bestimmungsadresse gelesen
wird. Bei einer Ausführungsform
kann der PCI Express-IP-Übergang 203 eine
IP-PCI Express-Tabelle 222 verwenden, um die globale PCI
Express-Bestimmungsadresse 219 mit der IP-Adresse 242 des
Empfänger-PCI
Express-Knotens abzugleichen. Bei einer Ausführungsform kann die IP-Adresse 242 des
Empfänger-PCI
Express-Knotens in einem Kopfsatz des IP-Pakets 236 enthalten
sein. Bei einer weiteren Ausführungsform
kann der PCI Express-IP-Übergang 203 des
Initiator-PCI Express-Knotens 202 ein PCI Express-Paket 235 überprüfen, um
zumindest ent weder ein Format oder eine Version des verwendeten PCI
Express zu bestimmen, um es bzw. sie in das IP-Paket 236 aufzunehmen.
Nach Maßgabe
des Abgleichs kann das PCI Express-Paket 235 in ein IP-Paket 236 verkapselt
werden, wobei das IP-Paket 236 über das IP-Paketnetzwerk 210 an
den Empfänger-PCI
Express-Knoten 204 übertragen
wird.
-
Bei
einer Ausführungsform
kann der PCI Express-IP-Übergang 205 beim
Empfang eines IP-Pakets 236 am Empfänger-PCI Express-Knoten 204 das
PCI Express-Paket 235 aus dem IP-Paket 236 entkapseln.
Anschließend
kann das PCI Express-Paket 235 über das
PCI Express-Netzwerk 208 an das der globalen PCI Express-Bestimmungsadresse 219 entsprechende
PCI Express-Rechenelement 232 gesendet werden.
-
Bei
einer Ausführungsform
kann das PCI Express-Rechenelement 230 am
Initiator-PCI Express-Knoten 202 ein PCI Express-Paket 235 erzeugen.
Bei einer Ausführungsform
kann ein PCI Express-Paket 235 eine lokale PCI Express-Bestimmungsadresse
umfassen, so dass das PCI Express-Paket 235 an eines der
PCI Express-Rechenelemente 232 am Empfänger-PCI Express-Knoten 204 adressiert
ist. Bei dieser Ausführungsform
muss das PCI Express-Paket 235 das IP-Paketnetzwerk 210 durchqueren,
wie in 2 gezeigt.
-
Ein
PCI Express-Paket 235 kann über das PCI Express-Netzwerk 206 am
Initiator-PCI Express-Knoten 202 an den PCI Express-IP-Übergang 203 übertragen
werden. Der PCI Express-IP-Übergang 203 kann
eine Übersetzungstabelle 225 zum Übersetzten
der lokalen PCI Express-Bestimmungsadresse in eine globale PCI Express-Bestimmungsadresse
verwenden, die eindeutig dem PCI Express-Rechenelement 232 entspricht,
für das
das PCI Express-Paket bestimmt ist. Die Übersetzungstabelle 225 kann
bei der Initialisierung des Computernetz werks 200 aus der
Netzübergangssteuerung 212 abgerufen
oder vom Initiator-PCI Express-Knoten 202 abgeleitet werden.
Die beiden Übersetzungstabellen 225, 227 können so
arbeiten, dass sie globalen PCI Express-Bestimmungsadressen lokale PCI
Express-Bestimmungsadressen zuordnen und umgekehrt.
-
Bei
einer Ausführungsform
kann der PCI Express-IP-Übergang 203 die
IP-PCI Express-Tabelle 222 zum Abgleichen einer globalen
PCI Express-Bestimmungsadresse mit der IP-Adresse 242 des Empfänger-PCI
Express-Knotens verwenden. Bei einer Ausführungsform kann die IP-Adresse 242 des
Empfänger-PCI
Express-Knotens im Kopfsatz des IP-Pakets 236 enthalten
sein. Bei einer weiteren Ausführungsform
kann der PCI Express-IP-Übergang 203 des
Initiator-PCI Express-Knotens 202 das
PCI Express-Paket 235 überprüfen, um
zumindest entweder das Format oder die Version des verwendeten PCI Express
zu bestimmen, um es bzw. sie in das IP-Paket 236 aufzunehmen.
Nach Maßgabe
des Abgleichs kann das PCI Express-Paket 235 in ein IP-Paket 236 verkapselt
werden, wobei das IP-Paket 236 über das IP-Paketnetzwerk 210 an
den Empfänger-PCI
Express-Knoten 204 gesendet wird.
-
Bei
einer Ausführungsform
kann der PCI Express-IP-Übergang 205 beim
Empfang eines IP-Pakets 236 an einem Empfänger-PCI
Express-Knoten 204 das PCI Express-Paket 235 aus
dem IP-Paket 236 entkapseln. Die globale PCI Express-Bestimmungsadresse
des PCI Express-Pakets 235 kann unter Verwendung der Übersetzungstabelle 227 in eine
lokale PCI Express-Bestimmungsadresse zurückübersetzt werden. Anschließend kann
das PCI Express-Paket 235 über das PCI Express-Netzwerk 208 an
das der lokalen PCI Express-Bestimmungsadresse
entsprechende PCI Express-Rechenelement 232 gesendet werden.
-
3 zeigt
ein in ein IP-Paket 336 verkapseltes PCI Express-Paket 335 gemäß einer
Ausführungsform
der Erfindung. Im Allgemeinen sind die einzelnen Felder eines IP-Pakets 336 in
der Technik bekannt. Der IP-Kopfsatz 370 kann Dinge, wie
die IP-Bestimmungsadresse, die Quellenadresse, die Version, Flags,
die Länge
und dergleichen enthalten. Die Protokollinformationen 372 können das
im Nutzdatenfeld 374 verwendete Protokoll einschließlich der
Information umfassen, welches Protokoll der oberen Ebene eingehende
Pakete nach der IP-Verarbeitung empfangen soll. Eine Prüfsumme 378 kann die
Paketintegrität
sicherstellen.
-
Ein
PCI Express-Paket 335 kann ein Kopfsatzfeld 380 umfassen,
das entweder eine lokale PCI Express-Bestimmungsadresse oder eine
globale PCI Express-Bestimmungsadresse enthalten kann. Die Nutzdaten 382 können die
von dem PCI Express-Paket 335 transportierten Daten enthalten.
Eine Prüfsumme 384 stellt
die Integrität
des PCI Express-Pakets sicher.
-
Bei
einer Ausführungsform
kann das PCI Express-Paket 335 von einem PCI Express-Rechenelement
eines Initiator-PCI Express-Knotens erzeugt werden, wie vorstehend
beschrieben. Bei einer Ausführungsform
kann das PCI Express-Paket 335 im Kopfsatz 380 eine
lokale PCI Express-Bestimmungsadresse 350 enthalten. Bei
dieser Ausführungsform kann
der PCI Express-IP-Übergang
eine Übersetzungstabelle 325 umfassen,
die zum Übersetzen
der lokalen PCI Express-Bestimmungsadresse 350 in eine
globale PCI Express-Bestimmungsadresse 352 verwendet werden
kann, wie vorstehend beschrieben. Bei einer weiteren Ausführungsform
kann der Kopfsatz 380 eine globale PCI Express-Bestimmungsadresse 352 enthalten,
wodurch sich die Übersetzungstabelle 325 erübrigt.
-
Bei
einer beliebigen der vorstehend beschriebenen Ausführungsformen
kann der PCI Express-IP-Übergang
eine IP-PCI Express-Tabelle 322 zum Abgleichen der globalen
PCI Express-Bestimmungsadresse 352 mit der IP-Adresse 342 des
Empfänger-PCI
Express-Knotens umfassen. Bei einer Ausführungsform wird die IP-Adresse 342 des
Empfänger-PCI
Express-Knotens im IP-Kopfsatz 370 platziert, so dass das
IP-Paket 336 an
den der globalen PCI Express-Bestimmungsadresse 352 entsprechenden
Empfänger-PCI
Express-Knoten adressiert ist. Anders ausgedrückt wird das IP-Paket 336 an den
Empfänger-PCI
Express-Knoten mit dem PCI Express-Rechenelement adressiert, für das das
PCI Express-Paket 335 bestimmt ist. Das PCI Express-Paket 335 kann
dann im Nutzdatenabschnitt 374 des IP-Pakets 336 verkapselt
werden, wie in 3 gezeigt.
-
Wenn
das IP-Paket 336 am Empfänger-PCI Express-Knoten ankommt,
kann eine Umkehrung des vorstehend beschriebenen Prozesses erfolgen. Der
PCI Express-IP-Übergang
am Empfänger-PCI Express-Knoten
kann beispielsweise die IP-PCI Express-Tabelle 322 zum
Entkapslen des PCI Express-Pakets 335 und zum Zurückübersetzen
der IP-Adresse 342 des Empfänger-PCI Express-Knotens in die globale PCI
Express-Bestimmungsadresse 352 verwenden. Dann kann gegebenenfalls
die Übersetzungstabelle 325 zum
Zurückübersetzen
der globalen PCI Express-Bestimmungsadresse in die lokale PCI Express-Bestimmungsadresse
verwendet werden. Anschließend
kann das PCI Express-Paket 335 über das PCI Express-Netzwerk
an das PCI Express-Rechenelement übertragen werden.
-
4 zeigt
ein Ablaufdiagramm 400 eines erfindungsgemäßen Verfahrens
gemäß einer
Ausführungsform
der Erfindung. Gemäß einer
Ausführungsform
führt 4 ein
Verfah ren zum Initialisieren eines Computernetzwerks aus. In einem
Schritt 402 bestimmt ein PCI Express-Knoten eine lokale
IP-PCI Express-Adreßtabelle
für die
PCI Express-Rechenelemente am PCI Express-Knoten. In einem Schritt 404 fordert
der PCI Express-Knoten eine IP-Adresse von einer an Netzübergangssteuerung
eines IP-Paketnetzwerks an. In einem Schritt 406 sendet
die Netzübergangssteuerung
eine IP-Adresse
an den PCI Express-Knoten. Wahlweise können die Schritte 404 und 406 durch
einen Schritt ersetzt werden, in dem der PCI Express-Knoten seine
eigene statische IP-Adresse
erzeugt oder eine IP-Adresse von einer anderen Quelle empfängt.
-
In
einem Schritt 408 kann die Netzübergangssteuerung eine lokale
PCI Express-Adreßtabelle
von dem PCI Express-Knoten
anfordern und empfangen. Die Netzübergangssteuerung kann zunächst bestimmen,
ob ein mit dem IP-Paketnetzwerk gekoppelter Knoten ein PCI Express-Knoten
ist, bevor eine lokale PCI Express-Adreßtabelle angefordert wird.
-
In
einem Schritt 410 kann die Netzübergangssteuerung unter Verwendung
mehrerer globaler PCI Express-Adressen und einer lokalen PCI Express-Adreßtabelle
eine IP-PCI Express-Tabelle
erstellen. In einem Schritt 412 kann die Netzübergangssteuerung
die IP-PCI Express-Tabelle an den PCI Express-Knoten senden. Die
vorstehend aufgeführten,
in 4 dargestellten Schritte können für eine beliebige Anzahl an
mit einem IP-Paketnetzwerk gekoppelten PCI Express-Knoten ausgeführt werden.
-
5 zeigt
ein Ablaufdiagramm 500 eines erfindungsgemäßen Verfahrens
gemäß einer
weiteren Ausführungsform
der Erfindung. 5 zeigt ein Verfahren gemäß einer
Ausführungsform
zum Übertragen
eines PCI Express-Pakets von einem Initiator-PCI Express-Knoten über ein
IP-Paketnetzwerk an einen Empfänger-PCI
Express-Knoten. In einem Schritt 502 wird von einem PCI
Express-Rechenelement an einem Initiator-PCI Express-Knoten ein
PCI Express-Paket erzeugt. In einem Schritt 504 kann ein PCI
Express-IP-Übergang
eine lokale PCI Express-Bestimmungsadresse aus dem PCI Express-Paket auslesen. Wahlweise
kann der PCI Express-IP-Übergang
eine globale PCI Express-Bestimmungsadresse aus dem PCI Express-Paket
auslesen.
-
Wenn
das PCI Express-Paket eine lokale PCI Express-Bestimmungsadresse enthält, kann
die lokale PCI Express-Bestimmungsadresse
in einem Schritt 506 in eine globale PCI Express-Bestimmungsadresse übersetzt
werden. In einem Schritt 508 kann eine IP-PCI Express-Tabelle
am Initiator-PCI
Express-Knoten zum Abgleichen der globalen PCI Express-Bestimmungsadresse
mit der IP-Adresse eines Empfänger-PCI
Express-Knotens verwendet werden. In einem Schritt 510 kann
das PCI Express-Paket in ein IP-Paket verkapselt werden. In einem
Schritt 512 kann das IP-Paket über das IP-Paketnetzwerk an
den Empfänger-PCI
Express-Knoten gesendet werden. In einem Schritt 514 kann
das PCI Express-Paket an einem PCI Express-IP-Übergang am Empfänger-PCI
Express-Knoten aus dem IP-Paket entkapselt werden. In einem Schritt 516 kann
das PCI Express-Paket über
ein PCI Express-Netzwerk am Empfänger-PCI Express-Knoten
an ein PCI Express-Rechenelement gesendet werden.
-
Obwohl
spezifische Ausführungsformen
der vorliegenden Erfindung gezeigt und beschrieben wurden, sind
weitere Modifikationen und Verbesserungen für Fachleute ersichtlich. Daher
ist darauf hinzuweisen, dass die beiliegenden Ansprüche sämtliche
derartigen Modifikationen und Veränderungen abdecken sollen,
die in den wahren Sinn und Rahmen der Erfindung fallen.
-
ZUSAMMENFASSUNG
-
Verfahren zur Übertragung
eines PCI Express-Pakets über
ein IP-Paketnetzwerk
-
Ein
Verfahren zur Übertragung
eines PCI Express-Pakets (235) von einem Initiator-PCI
Express-Knoten (202) über
ein IP-Paketnetzwerk (210) an einen Empfänger-PCI
Express-Knoten (204)
in einem Computernetzwerk (100) kann die Erzeugung des
PCI Express-Pakets durch den Initiator-PCI Express-Knoten und das
Lesen einer lokalen PCI Express-Bestimmungsadresse
(352) des PCI Express-Pakets umfassen. Der Empfänger-PCI
Express-Knoten kann die globale PCI Express-Bestimmungsadresse der
IP-Adresse (242) eines Empfänger-PCI Express-Knotens zuordnen.
Das PCI Express-Paket kann in ein IP-Paket (236) verkapselt werden.
Das IP-Paket kann mit dem verkapselten PCI Express-Paket über ein
IP-Paketnetzwerk
(210) an den Empfänger-PCI
Express-Knoten gesendet werden.