-
TECHNISCHES GEBIET
-
Die vorliegende Erfindung betrifft allgemein die Computerindustrie; und insbesondere Systeme, Computerprogrammprodukte und Vorrichtungen zum Erweitern von Peripheral Component Interconnect Express (PCIe) Fabrics.
-
HINTERGRUND
-
Peripheral Component Interconnect Express (PCIe) ist ein serieller Hochgeschwindigkeits-Computererweiterungsbusstandard, der weithin verwendet wird, um verschiedene Hardwarevorrichtungen (z. B. Speichervorrichtungen, Netzwerkkarten, Soundkarten und dergleichen) an eine Host-Zentraleinheit (CPU) anzuschließen. Da die Host-CPU-Speicherkonfigurationen herstellerspezifisch sein können, stellt PCIe einen Eingangs-/Ausgangs-(E/A)-Standard bereit, um verschiedene Vorrichtungen mit der CPU zu verbinden. PCIe ermöglicht eine Vielzahl von Verbesserungen gegenüber älteren Busstandards (z. B. PCI und PCI-eXtended). Zum Beispiel ermöglicht PCIe im Allgemeinen einen höheren maximalen Systembusdurchsatz, eine geringere E/A-Pinanzahl, eine kleinere Busgrundfläche, native Hot-Plug-Funktionalität und andere Vorteile.
-
Ein Problem mit dem PCIe-Busstandard ist, dass jedes PCIe-Fabric durch eine begrenzte Menge an Ressourcen begrenzt ist. Zum Beispiel überschreitet der 32-Bit-Adressspeicherraum jedes PCIe-Fabrics möglicherweise nicht die Größe von 4 GB, und jedes Fabric weist möglicherweise nur maximal 256 Busnummem auf. Da PCIe auf Punkt-zu-Punkt-Serienverbindungen arbeitet, begrenzen diese Einschränkungen direkt die maximale Anzahl von Knoten (d. h. Vorrichtungen), die an ein PCIe-Fabric angeschlossen werden können Das heißt, Busnummern für verschiedene Vorrichtungen überlappen möglicherweise nicht, und jede angeschlossene Vorrichtung erfordert einen Satz von einzigartigen Busnummern, um zu funktionieren. Verschiedene Busnummern in einem PCIe-Fabric können für bestimmte Verwendungen reserviert werden (z. B. als interne Busnummern von PCIe-Switchen, Hot-Plug-Funktionalität oder dergleichen), wodurch die Anzahl der verfügbaren Busnummern weiter begrenzt wird.
-
Darüber hinaus kann ein Fehler, der an einer beliebigen Komponente auftritt, die an ein PCIe-Fabric angeschlossen ist, sich auf beliebige andere nachgelagerte oder vorgelagerte Komponenten auswirken, die an die fehlerhafte Komponente angeschlossen sind. Wenn die Anzahl der Komponenten und Softwaretreiber, die an das PCIe-Fabric angeschlossen sind, zunimmt, wird die Fehlerbehandlung schwieriger und die Ausbreitung von Fehlern kann zu einem systemweiten Absturz führen.
-
KURZDARSTELLUNG DER ERFINDUNG
-
Diese und andere Probleme werden im Allgemeinen gelöst oder umgangen, und technische Vorteile werden im Allgemeinen durch bevorzugte Ausführungsformen der vorliegenden Erfindung erzielt, die ein erweitertes Peripheral Component Interconnect Express Fabric bereitstellen.
-
Gemäß einer beispielhaften Ausführungsform enthält eine Peripheral Component Interconnect Express Topologie ein Host-PCIe-Fabric, das einen Host-Root-Komplex umfasst. Das Host-PCIe-Fabric enthält einen ersten Satz von Busnummern und einen ersten speicherabgebildeten Eingangs-/Ausgangs-(MMIO)-Raum auf einer Host-Zentraleinheit (CPU). Ferner wird ein erweitertes PCIe-Fabric bereitgestellt, das einen Root Komplex Endpoint (RCEP) als Teil eines Endpunkts des Host-PCIe-Fabric enthält. Das erweiterte PCIe-Fabric enthält auch einen zweiten Satz von Busnummern und einen zweiten MMIO-Raum, der vom ersten Satz von Busnummern bzw. vom ersten MMIO-Raum getrennt ist.
-
Gemäß einer anderen beispielhaften Ausführungsform enthält eine Peripheral Component Interconnect Express (PCIe) Topologie ein erweitertes PCIe-Fabric. Das erweiterte PCIe-Fabric enthält einen Root Komplex End Point (RCEP). Der RCEP ist so konfiguriert, dass er Teil eines Endpunkts eines PCIe-Fabric der ersten Ebene ist. Zusätzlich umfasst das erweiterte PCIe-Fabric einen speicherabgebildeten Eingangs-/Ausgangs-(MMIO)-Raum und einen Satz von Busnummern.
-
Gemäß noch einer anderen beispielhaften Ausführungsform enthält ein Verfahren zum Verbinden von Peripherie das Bereitstellen eines Root Komplex Endpoint (RCEP), der ein erweitertes Peripheral Component Interconnect Express (PCIe) Fabric als Teil eines Endpunkts eines Host-PCIe-Fabric hostet. Das erweiterte PCIe-Fabric weist einen ersten MMIO-Raum auf, der von einem zweiten MMIO-Raum des Host-PCIe-Fabric getrennt ist. Das Verfahren umfasst ferner das Abbilden des ersten MMIO-Raums auf den zweiten MMIO-Raum.
-
Figurenliste
-
Für ein umfassenderes Verständnis der vorliegenden Erfindung und ihrer Vorteile wird nun auf die folgenden Beschreibungen in Verbindung mit der begleitenden Zeichnung Bezug genommen, in der:
- 1 ein Blockdiagramm eines Peripheral Component Interconnect Express (PCIe) Fabric gemäß verschiedenen beispielhaften Ausführungsformen ist;
- 2A und 2B Blockdiagramme von PCIe-Konfigurationsraumabbildung und Adressierung für ein erweitertes Fabric gemäß verschiedenen beispielhaften Ausführungsformen sind;
- 3A und 3B Blockdiagramme von 32-Bit-Speicherraumabbildung und Adressierung für ein erweitertes Fabric gemäß verschiedenen beispielhaften Ausführungsformen sind;
- 4A und 4B Blockdiagramme von 64-Bit-Speicherraumabbildung und Adressierung für ein erweitertes Fabric gemäß verschiedenen beispielhaften Ausführungsformen sind; und
- 5 ein Systemdiagramm eines Computersystems mit PCIe-Fabrics gemäß verschiedenen beispielhaften Ausführungsformen ist.
-
DETAILLIERTE BESCHREIBUNG VERANSCHAULICHENDER AUSFÜHRUNGSFORMEN
-
Beispielhafte Ausführungsformen, die verschiedene Aspekte der umfassten Innovation abdecken, werden im Folgenden ausführlicher erörtert. Es versteht sich jedoch, dass die vorliegende Erfindung viele anwendbare einzigartige und neuartige Konzepte bereitstellt, die in einer großen Vielzahl von spezifischen Kontexten verkörpert werden können. Dementsprechend veranschaulichen die hierin erörterten spezifischen Ausführungsformen lediglich spezifische Weisen zum Herstellen, Verwenden und Implementieren verschiedener Aspekte der vorliegenden Erfindung und begrenzen nicht notwendigerweise deren Umfang, sofern nicht anders beansprucht.
-
Die folgenden verschiedenen beispielhaften Ausführungsformen werden in einem spezifischen Kontext beschrieben, nämlich einem Peripheral Component Interconnect Express (PCIe)-Busstandard-Fabric. Es versteht sich jedoch, dass solche beispielhaften Ausführungsformen auch andere Fabrics erweitern können (z. B. Baumtopologien mit Ressourcenbeschränkungen auf den Kopf stellen).
-
Wie hierin beschrieben, ist ein Root Komplex eine Hardwarestruktur, die als Brücke zwischen einem PCIe-Fabric und einer Host-Zentraleinheit (CPU) dient. Der Root Komplex kann als Teil der CPU integriert sein. Zum Beispiel veranschaulicht 5 einen Root Komplex 502 als Teil der CPU 500. Der Root Komplex verwaltet und leitet verschiedene Anforderungen zwischen der CPU und Vorrichtungen (z. B. Vorrichtungen 506 und 508) weiter, die mit demselben PCIe-Fabric (z. B. dem PCie-Fabric 504) verbunden sind. Der Root Komplex bildet auch verschiedene verbundene Vorrichtungen (einschließlich Vorrichtungsspeicherorte wie Register und Speicherorte) auf den PCIe-Speicherraum ab. Diese Arten von Abbildungs- und Speicherraum sind als speicherabgebildeter Eingangs-/Ausgangs-(MMIO)-Raum bekannt.
-
Wie hierin auch verwendet, kann der MMIO-Raum einen Teil des Speichers enthalten, der unter Verwendung von 32-Bit-Adressen adressierbar ist, der im Allgemeinen auf den ersten 4GB des MMIO-Raums begrenzt ist. Der MMIO-Raum kann ferner einen Teil des Speichers enthalten, der unter Verwendung von 64-Bit-Adressen adressierbar ist, der auf den MMIO-Raum über dem ersten 4GB abgebildet werden kann. Verschiedene hierin beschriebene beispielhafte Ausführungsformen enthalten eine oder mehrere zusätzliche Root Komplex Hardware-Strukturen als Teil der Endpunkte des Host-PCIe-Fabric. Durch Hinzufügen von Root Komplex Funktionalitäten zu Endpunkten (als Root Komplex Endpoint (RCEP) bezeichnet) können zusätzliche PCIe-Fabrics verbunden werden, um erweiterte PCIe-Fabrics zu bilden, die nicht auf die begrenzten Ressourcen des Host-PCIe beschränkt sind.
-
Zum Beispiel veranschaulicht 5 einen RCEP 508 und ein erweitertes PCIe-Fabric 510, das zusätzliche Endpunkte (z. B. Vorrichtung 512 und 514) mit der Host-CPU 500 verbindet. Gemäß verschiedenen beispielhaften Ausführungsformen können diese RCEPs verwendet werden, um Fehler von kontaminierenden angrenzenden Fabrics oder Vorrichtungen zu isolieren. Darüber hinaus stellen andere beispielhafte Ausführungsformen bereit, dass die RCEPs und erweiterte PCIe-Fabrics mit bestehenden Peripherievorrichtungstreibern kompatibel sein können; wodurch Softwareaktualisierungen für bestehende Vorrichtungstreiber überflüssig werden.
-
1 veranschaulicht ein Blockdiagramm eines PCIe-Fabric 100 der ersten Ebene, das mit einem erweiterten PCIe-Fabric 118 gemäß verschiedenen beispielhaften Ausführungsformen verbunden ist. Das PCIe-Fabric 100 kann einen Host-Root-Komplex 102 enthalten, der verschiedene Anforderungen zwischen der Host-CPU und verschiedenen mit dem PCIe-Fabric 100 verbundenen Vorrichtungen verwaltet und weiterleitet. Im Allgemeinen besitzt der Root Komplex 102 einen Satz von 256 einzigartigen Busnummern und MMIO-Raum, und er bildet verschiedene verbundene Vorrichtungen (einschließlich ihrer zugehörigen Register und/oder Speicherhardware) auf seinen MMIO-Raum ab. Ferner kann der Root Komplex 102 einen Root Port 103 enthalten, der eine Hardware-Brückenstruktur ist, die PCI-zu-PCI-Verbindungen zwischen der Host-CPU und den mit dem PCIe-Fabric 100 verbundenen Vorrichtungen (z. B. Endpunkte 106 und 108) ermöglicht. Obwohl 1 den Root Komplex 102 als nur einen Root Port 103 aufweisend veranschaulicht, kann ein typischer Root Komplex 102 mehrere Root Ports 103 aufweisen (z. B. zwischen vier bis sechs Root Ports).
-
Wie in 1 gezeigt, ist der Root Komplex 102 durch den Root Port 103 und einen Switch 104 elektrisch mit den Endpunkten 106 und 108 verbunden. Typischerweise sind die Endpunkte 106 und 108 Strukturen, die das PCIe-Fabric 100 abschließen. Solche Endpunkte 106 und 108 können Speichervorrichtungen, Netzwerkvorrichtungen, Soundkarten, Videokarten und dergleichen enthalten. Ebenfalls in 1 veranschaulicht ist der Switch 104, der mindestens einen vorgelagerten Port (Port 104A) und zahlreiche nachgelagerte Ports (z. B. Ports 104B) enthalten kann, die verschiedene Endpunkte (z. B. 106 und 108) mit dem Root Komplex 102 verbinden. Wie hierin allgemein verwendet, bezieht sich ein vorgelagerter Port auf einen Port, der in Richtung des Host-Root-Komplex zeigt (z. B. Root Komplex 102), während sich ein nachgelagerter Port auf einen Port bezieht, der von diesem weg zeigt.
-
Der Switch 104 kann interne Busse enthalten, die es ermöglichen, mehrere Vorrichtungen mit einem einzigen Root Port 103 zu verbinden, während weiterhin eine Punkt-zu-Punkt-Serienverbindung aufrechterhalten wird, die vom PCIe-Standard verwendet wird. Obwohl 1 nur einen Switch 104 veranschaulicht, der zwei Endpunkte 106 und 108 mit dem Root Port 103 verbindet, ziehen verschiedene beispielhafte Ausführungsformen mehrere Root Ports in Betracht, die mit einer beliebigen Anzahl von Switchen verbunden sind, wobei jeder Switch mit einer beliebigen variierenden Anzahl von Endpunkten verbunden sein kann. Alternativ oder in Verbindung kann ein Root Port 103 direkt mit einem Endpunkt verbunden sein. Dementsprechend dient die in 1 und anderen Figuren hierin veranschaulichte Konfiguration nur veranschaulichenden Zwecken und soll den Umfang der vorliegenden Erfindung nicht einschränken oder anderweitig einschränken, sofern nicht ausdrücklich anderweitig beansprucht.
-
Wie in 1 gezeigt, kann der Endpunkt 106 ein Root Komplex Endpoint (RCEP) gemäß beispielhaften Ausführungsformen sein, der eine Hardwarebrücke zwischen dem erweiterten PCIe-Fabric 118 und dem PCIe-Fabric 100 der ersten Ebene bereitstellt. Das heißt, der RCEP 106 kann das erweiterte PCIe-Fabric 118 hosten. Gemäß solchen Ausführungsformen kann der RCEP 106 in Aufbau und Logik einem Host-Root-Komplex (z. B. Root Komplex 102) ähnlich sein. Als solches kann der RCEP 106 seinen eigenen Satz von Busnummern, PCIe-Konfigurationsraum und MMIO-Raum enthalten - getrennt von denen des Root Komplex 102. Daher können zusätzliche Vorrichtungen mit dem RCEP 106 verbunden werden, selbst wenn der Root Komplex 102 keine ausreichende Menge an verfügbaren Ressourcen (z. B. Busnummern) aufweist.
-
Zum Beispiel können die Endpunkte 114 und 116 durch den Switch 112 und den Root Port 110 elektrisch mit dem RCEP 106 verbunden sein. Wie oben angemerkt, können die Endpunkte 114 und 116 die meisten beliebigen Arten von Peripherievorrichtungen sein, einschließlich Speichervorrichtungen, Netzwerkvorrichtungen, Soundkarten, Videokarten und dergleichen. Ähnlich wie bei vorherigen PCIe-Fabrics können die Endpunkte 114 und 116 einfach das erweiterte PCIe-Fabric 118 terminieren. Alternativ und gemäß beispielhaften Ausführungsformen können die Endpunkte 114 und/oder 116 einen anderen RCEP enthalten, der seinen eigenen Satz von Busnummern und MMIO-Raum aufweist; wodurch ein anderes erweitertes PCIe-Fabric gebildet wird. Dementsprechend fügen RCEPs im Wesentlichen Gateway-Funktionalität zu einem PCIe-Endpunkt hinzu; und ermöglichen daher theoretisch, dass eine praktisch unbegrenzte Anzahl von Knoten an einen Host-Root-Komplex angeschlossen werden kann.
-
Obwohl 1 das erweiterte PCIe-Fabric 118 als nur einen Root Point 110, einen Switch 112 und zwei Endpunkte 114 und 116 aufweisend zeigt, können verschiedene Ausführungsformen ein erweitertes PCIe-Fabric enthalten, das mehrere Root Ports, mehrere Switche pro erweitertem Fabric und mehrere Endpunkte pro Switch aufweist.
-
Gemäß beispielhaften Ausführungsformen kann der MMIO des RCEP 106 einen Teil enthalten, der unter Verwendung von 32-Bit-Adressen (als 32-Bit-Speicherraum bezeichnet) adressierbar ist, und einen Teil, der 64-Bit-Adressen (als 64-Bit-Speicherraum bezeichnet) verwendet. Gemäß solchen Ausführungsformen können der PCIe-Konfigurationsraum des RCEP 106, der 32-Bit-Speicherraum und der 64-Bit-Speicherraum auf den 64-Bit-MMIO-Raum des Host-PCIe-Fabric 100 abgebildet werden (d. h. den Teil des MMIO-Raums des PCIe-Fabric 100, der unter Verwendung von 64-Bit-Adressen adressierbar ist). Somit kann gemäß solchen Ausführungsformen auf den RCEP 106 aus dem MMIO-Raum des Host-PCIe-Fabric 100 zugegriffen werden. Die Abbildung und Aufzählung des erweiterten Fabric des RCEP 106 kann unter Verwendung von Endpunkttreibern erfolgen, die dem RCEP 106 zugeordnet sind, wie im Folgenden ausführlicher erklärt wird.
-
Gemäß anderen beispielhaften Ausführungsformen kann der RCEP 106 auch Fehlerbehandlungsmechanismen enthalten, die etwaige Fehler auflösen, die in seinen nachgelagerten Vorrichtungen (z. B. Endpunkten 114 und 116) auftreten. Daher können in solchen Ausführungsformen Fehler durch den RCEP 106 enthalten sein und sich nicht vorgelagert zum PCIe-Fabric 100 ausbreiten, und der RCEP 106 kann als eine Fehlergrenze fungieren. Ferner kann der RCEP 106 einen Fehlerinterrupt erzeugen, um den Host-Root-Komplex 102 über etwaige Fehler zu benachrichtigen. In solchen Ausführungsformen können diese Fehlerinterrupts als ein Meldemechanismus verwendet werden, und etwaige PCIe-Fehler, die in den nachgelagerten Vorrichtungen des RCEP 106 auftreten, können durch den RCEP 106 behandelt werden und nicht vorgelagert zum Host-Root-Komplex 102 weitergeleitet werden. Die spezifischen Einzelheiten bezüglich der Fehlerinterruptmeldung und Fehlerbehandlung können implementierungsspezifisch sein und zwischen Computerplattformen/Root-Komplexes variieren. Zum Beispiel lassen aktuelle PCIe-Standards die Implementierungseinzelheiten bezüglich dessen, wie ein Root-Komplex Fehler behandelt, für verschiedene variierende herstellerspezifische Implementierungen von Computerplattformen/Root-Komplexes offen. Daher können die Implementierungseinzelheiten der Fehlerbehandlungs- und Fehlermeldemechanismen des RCEP 106 ähnlich für verschiedene Implementierungen abhängig von den anwendbaren Computerplattform/Root-Komplex-Konfigurationen offen sein.
-
Das Abbilden und Zugreifen auf den PCIe-Konfigurationsraum für das erweiterte Fabric 118 kann unter Verwendung einer beliebigen geeigneten Konfiguration erfolgen. Zum Beispiel veranschaulichen 2A und 2B ein Beispiel von PCIe-Konfigurationsraumabbildung und Zugriff gemäß beispielhaften Ausführungsformen, die das Verwenden von MMIO zum Zugreifen auf den PCI-Konfigurationsraum unterstützen. Im Allgemeinen ist der physische Adressraum 200 der physische Adressraum der Host-CPU, der z. B. 2n-1 Bytes groß sein kann (wobei „n“ die Anzahl von physischen Adressbits ist, die durch die Host-CPU implementiert werden). Wie gezeigt, kann der physische Adressraum 200 einen Teil des Raums 202 enthalten, der über physische 32-Bit-Adressen mit einem verbleibenden Teil 204 adressierbar ist, der über physische 64-Bit-Adressen adressierbar ist. In einer solchen Ausführungsform kann der Teil 202 den ersten 4GB des Adressraums 200 belegen, während der Teil 204 den Rest des Adressraums 200 belegen kann. Darüber hinaus kann der Teil 204 ferner einen Teil enthalten, der dem 64-Bit-MMIO-Raum 206 des Hosts, des PCIe-Fabric der ersten Ebene (z. B. des PCIe-Fabric 100), zugewiesen ist. Natürlich werden hierin andere Speicherzuweisungen, Konfigurationen und Abbildungen des MIMO-Raums auf das PCIe-Fabric in Betracht gezogen; und somit wird eine beliebige hierin beschriebene spezifische Implementierung nur zu veranschaulichenden Zwecken verwendet - sofern nicht ausdrücklich anderweitig beansprucht.
-
Gemäß beispielhaften Ausführungsformen können alle (oder ein beliebiger Teil) der Funktionen einer Vorrichtung, die mit dem PCIe-Fabric 100 verbunden sind, oder das erweiterte Fabric 118 auf die eigenen dedizierten 256 MB des Konfigurationsraums ihrer jeweiligen Fabrics abgebildet werden. Ein solcher Raum kann zum Beispiel durch Kenntnis der 8-Bit-PCI-Bus-, 5-Bit-Vorrichtungs- und 3-Bit-Funktionsnummern für eine bestimmte Vorrichtungsfunktion adressierbar sein. Diese Art von Funktionsadressierung kann hierin als Bus-/Vorrichtungs-/Funktions-(BDF)-Adressierung bezeichnet werden, die insgesamt 256 Busnummern, 32 Vorrichtungen und 8 Funktionen für jedes PCIe-Fabric ermöglicht. Im Allgemeinen kann in solchen Ausführungsformen die Vorrichtungsnummer gemäß PCIe-Bus-Standardfabrics aufgrund der seriellen Punkt-zu-Punkt-Verbindungsstruktur von PCIe auf 0 gesetzt werden. Ferner kann gemäß solchen Ausführungsformen jede Vorrichtungsfunktion zu 4 KB von Konfigurationsregistern berechtigt sein.
-
Wie gezeigt, kann der PCIe-Konfigurationsraum für das PCIe-Fabric der ersten Ebene (z. B. das Fabric 100) 256 MB des Adressraums 208 im Teil des Raums 202 belegen. In solchen Ausführungsformen kann der PCIe-Konfigurationsraum für das erweiterte PCIe (z. B. das erweiterte Fabric 118) auf 256 MB des Adressraums 210 im 64-Bit-MMIO-Raum 206 abgebildet werden. Ferner können beliebige MMIO-Transaktionen in den Adressräumen 208 oder 210 als PCIe-Konfigurationszugriffstransaktionen für entweder das PCIe-Host-Fabric 100 bzw. das erweiterte Fabric 118 durch ihren entsprechenden Root Komplex behandelt werden.
-
In solchen Ausführungsformen können die Adressen des erweiterten PCIe-Konfigurationsraums 210 beim Basiswert 212 beginnen. Somit können die Konfigurationsraumregister einer PCIe-Vorrichtungsfunktion, die sich bei der Busnummer B, der Vorrichtungsnummer D und der Funktionsnummer F befindet, zum Beispiel bei Basis + (B + D + F)*4K beginnen. Alternativ werden auch andere geeignete Konfigurationen zum Adressieren von Vorrichtungsraumregistern in Betracht gezogen, und die Beschreibung der BDF-Adressierung hier wird nur zu veranschaulichenden Zwecken verwendet.
-
2B veranschaulicht ein beispielhaftes physisches PCIe-Vorrichtungsadressformat 220 gemäß beispielhaften Ausführungsformen Das Format 220 kann ein Basisfeld 222 (das sich z. B. zwischen den Bits n-1 und 28 befindet), ein Busfeld 224 (das sich z. B. zwischen den Bits 27 und 20 befindet), ein Vorrichtungsfeld 226 (das sich z. B. zwischen den Bits 19 und 15 befindet) und ein Funktionsfeld 228 (das sich z. B. zwischen den Bits 14 und 12 befindet) beinhalten. Darüber hinaus können in solchen Ausführungsformen die Bits 11 bis 0 einen Versatz des Konfigurationsraumregisters (z. B. innerhalb der Vorrichtung), auf das zugegriffen wird, enthalten, der z. B. zu Speicherausrichtungszwecken enthalten sein kann.
-
Das Abbilden und Zugreifen auf den 32-Bit-Speicherraum für das erweiterte PCIe-Fabric 118 kann unter Verwendung einer beliebigen geeigneten Konfiguration erfolgen. Zum Beispiel veranschaulichen 3A und 3B ein Beispiel von PCIe-32-Bit-Speicherraumabbildung und Zugriff gemäß beispielhaften Ausführungsformen Im Allgemeinen kann der 32-Bit-Speicherraumzugriff für Vorrichtungsregisterbänke verwendet werden, auf die mit 32-Bit-Adressen zugegriffen werden kann. In solchen Ausführungsformen können entsprechende Transaktionen als 32-Bit-PCIe-Speicherraumzugriff markiert werden, z. B. in einem PCIe-Paket-Header. Natürlich werden hierin andere Speicherzuweisungen, Konfigurationen und Abbildungen des MIMO-Raums auf das PCIe-Fabric in Betracht gezogen; und somit wird eine beliebige hierin beschriebene spezifische Implementierung nur zu veranschaulichenden Zwecken verwendet - sofern nicht ausdrücklich anderweitig beansprucht.
-
Unter aktuellen PCIe-Standards beträgt die Maximierungsgröße für einen 32-Bit-Adressraum 4 GB. Darüber hinaus kann gemäß aktuellen PCIe-Standards auf bestimmten Computerplattformen (z. B. x86-Plattformen) der 32-Bit-Speicher für das PCIe-Fabric 100 der ersten Ebene mit seinem PCIe-Konfigurationsraum geteilt werden und somit nur 256 MB groß sein.
-
Gemäß beispielhaften Ausführungsformen kann das erweiterte PCIe-Fabric 118 seinen eigenen 32-Bit-Speicherraum getrennt vom physischen Adressraum 200 der Host-CPU aufweisen. Darüber hinaus kann, wie in 3A gezeigt, der RCEP 106 den 32-Bit-Adressraum des erweiterten Fabric 118 auf ein höheres 64-Bit-Adressfenster auf dem 64-Bit-MMIO-Raum 206 des Hosts abbilden, wie durch den Speicherraum 302 veranschaulicht. In solchen Ausführungsformen kann der Speicherraum 302 vom 32-Bit-Speicherraum 300 für das Fabric der ersten Ebene (z. B. das PCIe-Fabric 100) getrennt sein. Ferner kann sich der Speicherraum 300 am 32-Bit-adressierbaren Raum 202 der Host-CPU befinden, der sich innerhalb desselben niedrigen 4G-Raums wie der PCIe-Konfigurationsraum 208 befinden kann. Wie gezeigt, beginnt der Speicherraum 302 bei einer Basisadresse 304 und kann bis zu 4 GB groß sein. Somit kann gemäß solchen Ausführungsformen eine Vorrichtungsregisterbank (z. B. Registerbank 308) durch Kenntnis des geeigneten Versatzes (z. B. Versatz 306) der Registerbank adressiert werden. Das heißt, die Adresse der Registerbank 308 kann Basis 304 + Versatz 306 sein. Alternativ werden auch andere geeignete Schemata zum Adressieren der Registerbank 308 in Betracht gezogen.
-
3B veranschaulicht physische Registerbank-Adressformate 310 und 312 für Hostadressraum bzw. erweiterten Fabric-Adressraum gemäß beispielhaften Ausführungsformen. Das Format 310 kann ein Basisfeld 314 (das z. B. die Bits n-1 bis 32 belegt) und ein Versatzfeld 316 (das z. B. die Bits 31 bis 0 belegt) beinhalten. In solchen Ausführungsformen kann das Format 310 verwendet werden, um eine Vorrichtungsregisterbank zu adressieren, die auf den MMIO-Raum 206 abgebildet ist. Das Format 312 kann nur ein Versatzfeld 318 (das z. B. 32 Bits belegt) zum Adressieren der Vorrichtungsregisterbank auf dem erweiterten Fabric (z. B. Fabric 118) enthalten. Darüber hinaus kann, bevor ein PCIe-Paket auf dem erweiterten Fabric 118 platziert wird, der RCEP 106 das obere 32-Bit-Format 310 (das 64 Bits lang sein kann) abstreifen und das abgeschnittene PCIe-Paket als 32-Bit-Adresspaket markieren.
-
Das Abbilden und Zugreifen auf den 64-Bit-Speicherraum für das erweiterte PCIe-Fabric 118 kann unter Verwendung einer beliebigen geeigneten Konfiguration erfolgen. Zum Beispiel veranschaulichen 4A und 4B ein Beispiel von 64-Bit-Speicherraumabbildung und Zugriff gemäß beispielhaften Ausführungsformen. Im Allgemeinen kann der 64-Bit-Speicherraumzugriff für Vorrichtungsregisterbänke verwendet werden, auf die mit 64-Bit-Adressen oder 32-Bit-Adressen zugegriffen werden kann. Es ist zu beachten, dass, wenn ein 32-Bit-Adressbereich einer 64-Bit-Adresse zugewiesen wird, die PCIe-Hardware ein 32-Bit-PCI-Speicherraumkonfigurationsschema verwenden kann, um auf diese zuzugreifen (z. B. die in 3A und 3B beschriebene Konfiguration). In solchen Ausführungsformen können entsprechende Transaktionen als 64-Bit-PCIe-Speicherraumzugriff in einem PCIe-Paket-Header markiert werden. Darüber hinaus kann sich der 64-Bit-Speicherraum aus historischen Gründen im Allgemeinen über dem unteren 4GB des physischen Adressraums befinden. Natürlich werden hierin andere Speicherzuweisungen, Konfigurationen und Abbildungen des MIMO-Raums auf das PCIe-Fabric in Betracht gezogen; und somit wird eine beliebige hierin beschriebene spezifische Implementierung nur zu veranschaulichenden Zwecken verwendet - sofern nicht ausdrücklich anderweitig beansprucht.
-
In solchen Ausführungsformen kann das erweiterte PCie-Fabric 118 seinen eigenen 64-Bit-Speicherraum getrennt vom physischen Adressraum 200 der Host-CPU aufweisen. Wie in 4A gezeigt, kann der RCEP 106 den 64-Bit-Adressraum des erweiterten Fabric 118 auf den 64-Bit-MMIO-Raum 206 der Host-CPU abbilden, wie durch den Speicherraum 402 veranschaulicht. Ferner kann der Speicherraum 402 von einem 64-Bit-PCIe-Speicherraum 400 des Fabric der ersten Ebene 100 getrennt sein, der sich auch im 64-Bit-MNΠO-Raum 206 befinden kann. In solchen Ausführungsformen kann der Speicherraum 402 bei einer Basisadresse 404 beginnen und kann zum Beispiel m mal 4 GB groß sein (wobei m eine Konstante ist, was bedeutet, dass der Raum 402 eine Größe von einem oder mehreren Malen 4 GB aufweisen kann). Darüber hinaus kann eine Vorrichtungsregisterbank (z. B. Registerbank 408) durch Kenntnis eines geeigneten Versatzes (z. B. Versatz 406) der Registerbank adressiert werden. Somit kann gemäß solchen Ausführungsformen eine Adresse der Registerbank 408 Basis 404 + Versatz 406 sein. Alternativ werden auch andere geeignete Schemata zum Adressieren der Registerbank 408 in Betracht gezogen.
-
4B veranschaulicht physische Registerbank-Adressformate 410 und 416/418 für Host-CPU-Adressraum bzw. erweiterten Fabric-Adressraum gemäß beispielhaften Ausführungsformen Das Format 410 kann ein Basisfeld 412 (das z. B. die Bits n-1 bis p belegt) und ein Versatzfeld 414 (das z. B. die Bits p-1 bis 0 belegt) beinhalten. Der Wert der Konstante p kann 32 + ln(m) betragen, was auf den nächsthöheren ganzzahligen Wert gerundet werden kann. Das Format 410 kann verwendet werden, um eine Vorrichtungsregisterbank zu adressieren, die auf den 64-Bit-MMIO-Raum 206 abgebildet ist.
-
In bestimmten beispielhaften Ausführungsformen kann das Adressieren der Vorrichtungsregisterbank auf dem erweiterten Fabric 118 unter Verwendung des Formats 416 erfolgen. Zum Beispiel kann das Format 416 verwendet werden, wenn die physische Basisadresse auf die Speicherraumkonfiguration des erweiterten Fabric 118 ausgerichtet ist. Unter Verwendung des Formats 416 kann der RCEP 106 die oberen Bits (z. B. die Bits 63 bis p) des Formats 410 abstreifen, um eine 64-Bit-Adresse für das erweiterte Fabric 118 zu bilden. In anderen beispielhaften Ausführungsformen kann das Format 418 verwendet werden, wenn die physische Basisadresse nicht auf den Speicherraum des erweiterten Fabric 118 ausgerichtet ist. In solchen Ausführungsformen kann, um die Nichtausrichtung der physischen Adresse zu kompensieren, ein Versatz 420 zu einer 64-Bit-Systembasisadresse 422 hinzugefügt werden. Darüber hinaus kann, wenn die Basisadresse mindestens 4 GB ausgerichtet ist (z. B. die unteren 32 Bits 0 sind), die Größenanpassung nur für die hohen 32 Bits der Basisadresse durchgeführt werden.
-
In einer beispielhaften Ausführungsform können sich der PCIe-Konfigurationsraum 210, der 32-Bit-Speicherraum 302 und der 64-Bit-Speicherraum 402 des erweiterten Fabric 118 in der Host-CPU überlappen. In solchen Ausführungsformen kann der RCEP 106 ein gemeinsames Abbildungsfenster anfordern, das groß genug ist, um alle gewünschten Adressbereiche (z. B. die Räume 210, 302 und 402) von der Host-CPU aufzunehmen, und der RCEP 106 kann dann das gemeinsame Abbildungsfenster nach Bedarf in verschiedene gewünschte Adressbereiche teilen.
-
Gemäß beispielhaften Ausführungsformen kann das erweiterte Fabric 118 Vorrichtungsinterrupts unterstützen, die unter Verwendung eines beliebigen geeigneten Verfahrens behandelt werden können. Zum Beispiel kann das erweiterte Fabric 118 eine Konfiguration eines nachrichtensignalisierten Interrupts (Message Signaled Interrupt, MSI) verwenden. In solchen Ausführungsformen können MSIs, die von Vorrichtungen stammen, die mit dem erweiterten Fabric 118 verbunden sind (z. B. die Endpunkte 114 und 116), gemäß dem PCIe-Busstandard an anwendbare Root Ports (z. B. den Root Port 110) geliefert werden. Darüber hinaus kann der Root Port 110 des RCEP 106 ein vorab zugewiesenes Adressfenster für MSIs aufweisen. In solchen Ausführungsformen kann, wenn eine Speicherschreibadresse mit dem vorab zugewiesenen MSI-Adressfenster übereinstimmt, die Transaktion als ein Interrupt erkannt werden. Darüber hinaus kann der Root Port 110 alle MSIs, die von seinen nachgelagerten Fabrics stammen, sammeln und sie in eine Warteschlange ablegen (wobei sich die Warteschlange im Speicher der Host-CPU im physischen Adressraum 200 befinden kann). Der Root Port 110 kann dann einen separaten Interrupt, der auch ein MSI sein kann, an seinen vorgelagerten Root Port (z. B. den Host-Root Port 103) signalisieren. Der Host-Root Port 102 kann dann einen geeigneten Software-Handler gemäß dem empfangenen Interrupt auslösen. Ein Interrupt-Handler des Root Ports 110 des RCEP 106 kann dann die MSI-Warteschlange im Hauptspeicher untersuchen, die Ursprungsvorrichtung (z. B. Endpunkt 114 oder 116) bestimmen und den geeigneten Interrupt-Handler des Vorrichtungstreibers versenden. Natürlich werden hierin andere Schemata zum Übergeben von Vorrichtungsinterrupts in Betracht gezogen; und somit wird eine beliebige hierin beschriebene spezifische Implementierung nur zu veranschaulichenden Zwecken verwendet - sofern nicht ausdrücklich anderweitig beansprucht.
-
Gemäß anderen beispielhaften Ausführungsformen kann das erweiterte Fabric 118 auch direkten Speicherzugriff (DMA) unterstützen, der unter Verwendung eines beliebigen geeigneten Verfahrens behandelt werden kann. In solchen Ausführungsformen können DMA-Transaktionen Leseanforderungen, Leseabschlüsse und Schreibanforderungen enthalten. PCIe-Pakete können eine physische Systemadresse oder eine virtuelle IO-(Eingangs-/Ausgangs-)Adresse tragen, die durch eine IOMMU (Eingangs-/Ausgangs-Speicherverwaltungseinheit) übersetzt wird. Darüber hinaus können die PCIe-Anforderer-IDs pro Fabric sein. Somit können die Anforderer-IDs durch die ID des RCEP 106 ersetzt werden, wenn eine Anforderung eine PCIe-Fabric-Grenze überquert und vorgelagert zum Host-PCIe-Fabric 100 geht.
-
Das heißt, auf dem erweiterten Fabric 118 kann die Anforderer-ID die ID der Endpunktvorrichtung (z. B. Endpunkt 114 oder 116) sein. Während die Anforderung vorgelagert zum Root Komplex 102 weitergeleitet wird, kann die Anforderer-ID durch die ID des RCEP 106 ersetzt werden.
-
In solchen Ausführungsformen beziehen sich DMA-Schreibvorgänge auf das Verschieben von Daten von einer Vorrichtung (z. B. Endpunkt 114 oder 116) zum Speicher der Host-CPU. Der RCEP 106 kann die Vorrichtungs-ID durch die ID des RCEP 106 ersetzen, wenn die Anforderung vorgelagert durch den RCEP 106 zum Root Komplex 102 und der Host-CPU weitergeleitet wird. Darüber hinaus beziehen sich DMA-Lesevorgänge auf das Verschieben von Daten vom Speicher der Host-CPU zur Vorrichtung. In solchen Ausführungsformen kann der RCEP 106 ein Hardware-Scoreboard verwenden, um alle Leseanforderungen durch Zuweisen von Transaktions-Tags (z. B. als Teil der Anforderungspakete) für Transaktionen zum Fabric 100 zu verfolgen. Diese Transaktions-Tags können mit den Score-Board-Einträgen des RCEP 106 verknüpft sein und können verwendet werden, um die Anforderer-IDs von Leseanforderungspaketen aufzuzeichnen, die auf dem erweiterten Fabric 118 stammen. Abschlussdaten, die durch den RCEP 106 vom Root Komplex 102 empfangen werden, können das gleiche Transaktions-Tag wie die entsprechende Leseanforderung gemäß solchen Ausführungsformen tragen. Somit können in solchen Ausführungsformen Transaktions-Tags verwendet werden, um mit Score-Board-Einträgen übereinzustimmen, um die geeignete Vorrichtungs-ID zu bestimmen, die auf dem erweiterten Fabric 118 verwendet wird. Natürlich werden hierin andere Schemata zum Übergeben von DMA-Anforderungen in Betracht gezogen; und somit wird eine beliebige hierin beschriebene spezifische Implementierung nur zu veranschaulichenden Zwecken verwendet - sofern nicht ausdrücklich anderweitig beansprucht.
-
Daher können unter Verwendung der verschiedenen PCIe-Konfigurationszugriffs-, Speicherzugriffs-, DMAs und Unterbrechungsmechanismen, die in beispielhaften Ausführungsformen der obigen Absätze beschrieben sind, RCEP-Vorrichtungen verwendet werden, um erweiterte PCIe-Fabrics zu hosten und zusätzliche Vorrichtungen (z. B. zusätzliche RCEP-Vorrichtungen und/oder Peripherievorrichtungen) mit einem Host-Root-Komplex zu verbinden. RCEP-Vorrichtungen können einer typischen PCIe-Root-Komplex-Logik ähnlich sein. Jedes erweiterte PCIe-Fabric kann seinen eigenen MMIO-Raum und Satz von Busnummern aufweisen. Daher kann die Gesamtanzahl von Vorrichtungen, die an alle angeschlossen werden können, die mit einer Host-CPU verbunden sind, nicht auf die Anzahl der verfügbaren Busnummern des Host-PCIe-Fabric beschrankt sein. In solchen Ausführungsformen kann der MMIO-Raum von jedem der erweiterten Fabric auf den 64-Bit-MMIO-Raum seines Parent-Fabric (z. B. ist das Parent-Fabric für das erweiterte Fabric 118 das Fabric der ersten Ebene 100) zur Erleichterung des Zugriffs abgebildet werden. Darüber hinaus kann die Fabric-Aufzählung der erweiterten Fabrics durch den RCEP-Endpunktvorrichtungstreiber erreicht werden. In solchen Ausführungsformen kann jeder RCEP Fehler behandeln, die auf dem anwendbaren erweiterten Root Komplex Fabric stammen. Somit kann eine Fehlerisolierung erreicht werden, so dass nachgelagerte Fabric-Fehler an der Fabric-Grenze eines erweiterten PCIe-Fabric abgefangen und nicht vorgelagert ausgebreitet werden können.
-
Gemäß Ausführungsbeispielen können fast jede Peripherievorrichtung (z. B. Soundkarten, Videokarten, Netzwerktreiber, Speicherkarten und dergleichen) mit dem erweiterten Fabric verbunden sein und müssen ihre Treibersoftware nicht ändern. In solchen Ausführungsformen interagiert das erweiterte PCIe-Fabric mit Peripherievorrichtungen auf die gleiche Weise wie ein PCIe-Fabric der ersten Ebene. Darüber hinaus können die Software der Host-CPU (z. B. ein Betriebssystem) und RCEP-Treiber modifiziert und/oder erzeugt werden, um Registerzuordnung, DMA-Adresszuordnung, Interrupt-Handler durch den RCEP und andere ähnliche Funktionen einzurichten. Daher müssen Peripherievorrichtungen nicht benachrichtigt werden, dass sie mit einem erweiterten PCIe-Fabric anstelle eines PCIe-Fabric der ersten Ebene verbunden sind. Somit können erweiterte PCIe-Fabrics und RCEP mit bestehenden Peripherievorrichtungstreibern kompatibel sein.
-
Während diese Erfindung unter Bezugnahme auf veranschaulichende beispielhafte Ausführungsformen beschrieben wurde, soll diese Beschreibung nicht in einem einschränkenden Sinn ausgelegt werden. Verschiedene Modifikationen und Kombinationen der veranschaulichenden beispielhaften Ausführungsformen sowie anderer Ausführungsformen der Erfindung sind für Fachleute bei Bezugnahme auf die Beschreibung ersichtlich. Es ist daher beabsichtigt, dass die beigefügten Ansprüche beliebige derartige Modifikationen oder Ausführungsformen umfassen.
-
Weitere Ausführungsformen der vorliegenden Erfindung werden im Folgenden bereitgestellt. Es ist anzumerken, dass die im folgenden Abschnitt verwendete Nummerierung nicht notwendigerweise mit der in den vorherigen Abschnitten verwendeten Nummerierung übereinstimmen muss.
-
Ausführungsform 1. erweiterte Peripheral Component Interconnect Express (PCIe-) -Topologie, umfassend:
- ein Host-PCIe-Fabric, umfassend einen Host-Root-Komplex, wobei das Host-PCIe-Fabric einen ersten Satz von Busnummern und einen ersten speicherabgebildeten Eingangs-/Ausgangs-(MMIO)-Raum auf einer Host-Zentraleinheit (CPU) aufweist; und
- ein erweitertes PCIe-Fabric, umfassend einen Root Komplex Endpoint (RCEP) als Teil eines Endpunkts des Host-PCIe-Fabric, wobei das erweiterte PCIe-Fabric einen zweiten Satz von Busnummern und einen zweiten MMIO-Raum aufweist, der vom ersten Satz von Busnummem bzw. vom ersten MMIO-Raum getrennt ist.
-
Ausführungsform 2. PCIe-Topologie nach Ausführungsform 1, wobei der RCEP eine Brücke zwischen dem erweiterten PCIe-Fabric und dem Host-PCIe-Fabric ist.
-
Ausführungsform 3. PCIe-Topologie nach Ausführungsform 1, wobei der zweite MMIO-Raum in den ersten MMIO-Raum abgebildet wird.
-
Ausführungsform 4. PCIe-Topologie nach Ausführungsform 3, wobei ein 32-Bit-Speicherraum des erweiterten Fabric in einen 64-Bit-MMIO-Raum des ersten MMIO-Raums abgebildet wird.
-
Ausführungsform 5. PCIe-Topologie nach Ausführungsform 3, wobei ein 64-Bit-Speicherraum des erweiterten Fabric in einen 64-Bit-MMIO-Raum des ersten MMIO-Raums abgebildet wird.
-
Ausführungsform 6. PCIe-Topologie nach Ausführungsform 1, wobei ein PCIe-Konfigurationsraum des erweiterten PCIe-Fabric in einen 64-Bit-MMIO-Raum des ersten MMIO-Raums abgebildet wird.
-
Ausführungsform 7. PCIe-Topologie nach Ausführungsform 6, wobei jede Vorrichtungsfunktion des erweiterten PCIe-Fabric auf jeweilige vier Kilobytes des 64-Bit-MMIO-Raums abgebildet wird.
-
Ausführungsform 8. PCIe-Topologie nach Ausführungsform 6, wobei Konfigurationsregister für jede Vorrichtungsfunktion, die dem erweiterten PCIe-Fabric zugeordnet ist, konfiguriert sind, um unter Verwendung von Basis-/Vorrichtungs-/Funktionsadressierung adressiert zu werden.
-
Ausführungsform 9. PCIe-Topologie nach Ausführungsform 1, wobei der zweite Satz von Busnummern bis zu 256 einzigartige Busnummern für das erweiterte PCIe-Fabric enthält.
-
Ausführungsform 10. PCIe-Topologie nach Ausführungsform 1, wobei der RCEP konfiguriert ist, um Fehler zu isolieren, die auf dem erweiterten PCIe-Fabric stammen.
-
Ausführungsform 11. PCIe-Topologie nach Ausführungsform 1, wobei das erweiterte PCIe-Fabric mit einer Peripherievorrichtung auf die gleiche Weise wie das Host-PCIe-Fabric interagiert.
-
Ausführungsform 12. Peripheral Component Interconnect Express (PCIe-) -Topologie, umfassend ein erweitertes PCIe-Fabric, wobei das erweiterte PCIe-Fabric eine Root Komplex End Point (RCEP-) -Vorrichtung umfasst, wobei die RCEP-Vorrichtung konfiguriert ist, um Teil eines Endpunkts eines PCIe-Fabrics der ersten Ebene zu sein, und wobei das erweiterte PCIe-Fabric einen speicherabgebildeten Eingangs-/Ausgangs (MMIO) -Raum und einen Satz von Busnummern umfasst.
-
Ausführungsform 13. PCIe-Topologie nach Ausführungsform 12, wobei der MMIO-Raum auf einen physischen 64-Bit-adressierbaren Adressraum des PCIe-Fabric der ersten Ebene abgebildet wird.
-
Ausführungsform 14. PCIe-Topologie nach Ausführungsform 12, wobei die RCEP-Vorrichtung einen oder mehrere Root Ports umfasst.
-
Ausführungsform 15. PCIe-Topologie nach Ausführungsform 12, wobei das erweiterte PCIe-Fabric einen oder mehrere Switche umfasst, die einen oder mehrere Endpunkte elektrisch mit dem RCEP verbinden.
-
Ausführungsform 16. Verfahren zum Entwerfen von Peripherievorrichtungen, umfassend:
- Einschließen eines Root Komplex Endpoint (RCEP), der ein erweitertes Peripheral Component Interconnect Express (PCIe) Fabric als Teil eines Endpunkts eines Host-PCIe-Fabric hostet, wobei das erweiterte PCIe-Fabric einen ersten MMIO-Raum aufweist, der von einem zweiten MMIO-Raum des Host-PCIe-Fabric getrennt ist; und
- Abbilden des ersten MMIO-Raums auf den zweiten MMIO-Raum.
-
Ausführungsform 17. Verfahren nach Ausführungsform 16, wobei das erweiterte PCIe-Fabric ferner einen ersten Satz von bis zu 256 einzigartigen Busnummern umfasst, der von einem zweiten Satz von Busnummern des Host-PCIe-Fabric getrennt ist.
-
Ausführungsform 18. Verfahren nach Ausführungsform 16, ferner umfassend Abfangen, durch die RCEP-Vorrichtung, von nachgelagerten Fehlern, die auf dem erweiterten PCIe-Fabric auftreten.
-
Ausführungsform 19. Verfahren nach Ausführungsform 16, ferner umfassend Abbilden eines PCIe-Konfigurationsraums, eines 32-Bit-Speicherraums und eines 64-Bit-Speicherraums des erweiterten PCIe-Fabric auf den zweiten MMIO-Raum.
-
Ausführungsform 20. Verfahren nach Ausführungsform 16, ferner umfassend Behandeln, durch die RCEP-Vorrichtung, von Vorrichtungsinterrupts, die auf dem erweiterten PCIe-Fabric stammen, unter Verwendung von nachrichtensignalisierten Interrupts (Message Signaled Interrupts, MSIs).
-
Ausführungsform 21. Verfahren nach Ausführungsform 16, ferner umfassend Übergeben einer Anforderung für direkten Speicherzugriff (DMA) von einer Vorrichtung, die mit dem erweiterten PCIe-Fabric verbunden ist, durch Ersetzen einer Ursprungs-Vorrichtungs-ID in einer DMA-Anforderung durch eine RCEP-ID, wenn die DMA-Anforderung vorgelagert zum Host-PCIe-Fabric weitergeleitet wird.