-
Gebiet der Erfindung
-
Die
vorliegende Erfindung betrifft allgemein Computersysteme und im
Besonderen die E/A-Konfigurationsübermittlung
in einem Computersystem auf Verknüpfungsbasis.
-
Stand der Technik
-
Die
Abbildung aus 1a zeigt einen Bus 120.
Ein Bus 120 ist eine Kommunikationsstruktur mit einem "gemeinsam genutzten
Medium", die für den Transport
von Kommunikationen bzw. Übertragungen
zwischen elektronischen Komponenten 101a–10Na und 110a eingesetzt
wird. Gemeinsam genutztes Medium bedeutet, dass die Komponenten 101a–10Na und 110a,
die miteinander kommunizieren, die gleiche elektronische Verdrahtung 120 physikalisch
gemeinsam nutzen und mit dieser verbunden sind. Das heißt, bei
der Verdrahtung 120 handelt es sich um eine gemeinsam genutzte
Ressource, die von einer beliebigen der Komponenten 101a–10Na und 110a eingesetzt
wird, um mit einer beliebigen anderen der Komponenten 101a–10Na und 110a zu kommunizieren.
Wenn zum Beispiel die Komponente 101a mit der Komponenten 10Na kommunizieren möchte, würde die
Komponente 101a Informationen entlang der Verdrahtung 120 zu
der Komponente 10Na senden; wenn die Komponente 103a mit
der Komponente 110a kommunizieren möchte, würde die Komponente 103a Informationen
entlang der gleichen Verdrahtung 120 zu der Komponente 110a senden,
etc.
-
Computersysteme
verwenden traditionell Busse. Zum Beispiel entspricht der Bus 120 in
Bezug auf bestimmte IBM-kompatible PCs einem PCI-Bus, wobei die
Komponenten 101a–10Na "E/A"-Komponenten (z.B.
LAN-Netzwerkkarten, MODEMs, Festplattenspeichervorrichtungen, etc.)
entsprechen, und wobei die Komponente 110a einem E/A-Steuer-Hub (ICH)
entspricht. Als weiteres Beispiel in Bezug auf bestimmte Mehrprozessor-Computersysteme
entspricht der Bus 120 einem "Front Side" Bus, wobei die Komponenten 101a–10Na Mikroprozessoren
entsprechen, und wobei die Komponente 110a einer Speichersteuereinheit
entspricht.
-
Aufgrund
des als "kapazitive
Belastung" bezeichneten
Artefakts werden Busse im Zuge immer höherer Geschwindigkeiten von
Computersystemen immer unpraktischer. Mit zunehmender kapazitiver Belastung
jeder Verdraht geht im Wesentlichen die maximale Geschwindigkeit
zurück,
mit der die Verdrahtung Informationen transportieren kann. Das heißt, es existiert
ein umgekehrtes Verhältnis
zwischen der kapazitiven Belastung einer Verdrahtung und der Geschwindigkeit
der gleichen Verdrahtung. Jede Komponente, die einem Draht hinzugefügt wird, bewirkt,
dass die kapazitive Belastung des Drahtes zunimmt. Da Busse für gewöhnlich mehrere
Komponenten koppeln, gilt die Busverdrahtung 120 für gewöhnlich als
stark kapazitiv belastet.
-
In
der Vergangenheit, als die Taktgeschwindigkeiten von Computersystemen
noch verhältnismäßig langsam
waren, war die kapazitive Belastung der Busse der Computersysteme
kein wichtiger Aspekt, da die verminderte Höchstgeschwindigkeit der Busverdrahtung
(aufgrund der kapazitiven Belastung) weiter die internen Taktgeschwindigkeiten
des Computersystems deutlich überschritten
hat. Das gleiche gilt nicht für
mindestens einen Teil der heute verwendeten Computersysteme. Das
heißt,
mit dem kontinuierlichen Anstieg der Taktgeschwindigkeiten von Computersystemen über die
Jahre, erreicht die Geschwindigkeit der heutigen Computersysteme (und/oder überschreitet
sie) die maximale Geschwindigkeit der Drähte, die stark kapazitiv belastet
sind, wie etwa eine Busverdrahtung 120.
-
Die
Computersysteme entwickeln sich somit zu einem Komponenten-zu-Komponenten-Verbindungssystem
auf "Verknüpfungsbasis". Die Abbildung aus 1b zeigt
ein vergleichendes Beispiel zu der Abbildung aus 1a.
Gemäß dem Ansatz
aus der Abbildung aus 1b sind die Computersystemkomponenten 101a–10Na und 110a über ein
Netzwerk 140 mit bidirektionalen Hochgeschwindigkeits-Punkt-zu-Punkt-Verknüpfungen 1301 bis 130N miteinander
verbunden. Eine bidirektionale Punkt-zu-Punkt-Verknüpfung umfasst
für gewöhnlich eine
erste unidirektionale Punkt-zu-Punkt-Verknüpfung, die Informationen in
eine erste Richtung überträgt, und
eine zweite unidirektionale Punkt-zu-Punkt-Verknüpfung, die Informationen in eine
zweite Richtung überträgt, die
zu der ersten Richtung entgegengesetzt verläuft. Da eine unidirektionale
Punkt-zu-Punkt-Verknüpfung
für gewöhnlich nur
einen Endpunkt aufweist, ist deren kapazitive Belastung für gewöhnlich deutlich
niedriger als die eines gemeinsam genutzten Medienbusses.
-
Jede
Punkt-zu-Punkt-Verknüpfung
kann mit einer Kupfer- oder faseroptischen Verkabelung und entsprechenden
Treibern bzw. Steuereinrichtungen und Empfängern konstruiert sein (z.B.
einzelnen oder differentiellen Leitungstreibern und Empfängern für Kabel
auf Kupferbasis; und LASER- oder LED E/O-Sender und O/E-Empfänger für faseroptische Kabel,
etc.). Das Netzwerk 140 aus 1b ist
dahingehend einfach dargestellt, dass jede Komponente über eine
Punkt-zu-Punkt-Verknüpfung
mit jeder anderen Komponente verbunden ist. In komplizierteren Systemen
weist das Netzwerk 140 Routing-/Switching-Knoten auf. Dabei
muss nicht jede Komponente über
eine Punkt-zu-Punkt-Verknüpfung
mit jeder anderen Komponente gekoppelt sein. Stattdessen können Sprünge über eine
Mehrzahl von Verknüpfungen über die
Routing-/Switching-Knoten erfolgen, um Informationen von einer Ausgangs-
bzw. Quellenkomponente zu einer Zielkomponente zu transportieren.
Abhängig
von der Implementierung kann es sich bei der Routing-/Switching-Funktion
um eine unabhängige
Funktion in dem Netzwerk handeln oder um eine Funktion, die in eine
wesentliche Komponente des Computersystems integriert ist (z.B.
ein Prozessor, eine Speichersteuereinheit, eine E/A-Einheit, etc.).
-
Im
Einklang mit dieser Tendenz zeigt die Abbildung aus 2 ein
Ausführungsbeispiel
eines E/A-Segments 200 auf Verknüpfungsbasis. Ein E/A-Segment
ist ein Bereich einer Schaltkreisanordnung innerhalb eines Computersystems,
der es ermöglicht,
dass E/A-Einheiten
Informationen untereinander und/oder zwischen anderen Komponenten
eines Computersystems außerhalb
des E/A-Segments austauschen. Die E/A-Einheiten eines Computersystems
können
als die Abschnitte der Funktionalität des Computersystems betrachtet
werden, die für
den Empfang von Informationen von außerhalb des Computersystems
zuständig
sind und/oder zum Senden von Informationen aus dem Inneren des Computersystems
aus dem Computersystem heraus. Somit weisen die E/A-Einheiten für gewöhnlich Benutzerschnittstellen
(z.B. eine Tastaturschnittstelle, eine Mausschnittstelle, eine Anzeigeschnittstelle),
Netzwerkschnittstellen (z.B. ein MODEM, einen Wireless-LAN-Adapter, etc.) und
Druckerschnittstellen auf.
-
Häufig wird
die E/A aus der Perspektive der Prozessor(en) und des Systemspeichers
des Computersystems betrachtet und nicht der des Computersystems
als ganzes. Aus dieser Perspektive wird die E/A als der Abschnitt
der Funktionalität
des Computersystems betrachtet, der Informationen zumindest zu und/oder
aus dem Systemspeicher des Computersystems senden kann. Somit sind
nichtflüchtige Speichervorrichtungen,
wie etwa Plattenspeichervorrichtungen (z.B. ein Magnetplattenlaufwerk,
eine CD-ROM, etc.) und/oder "Flash-Karten" häufig in
der Liste der E/A-Einheiten eines Computersystems enthalten (in
Verbindung mit den vorstehend genannten E/A-Einheiten). Die letztgenannte
Perspektive von E/A wird in der vorliegenden Anmeldung verwendet, sofern
keine anderslautenden Angaben gemacht werden.
-
Das
E/A-Segment auf Verknüpfungsbasis aus 2 entspricht
einem PCI-Express-E/A-Segment.
PCI Express ist eine E/A-Segmentarchitektur gemäß einer Industrienorm. Die
PCI-Express-E/A-Architektur
aus 2 verbindet jede der E/A-Einheiten 2051 –2055 über
ihre bidirektionale Verknüpfung.
Beliebige zwei der E/A-Einheiten 2052 –2055 können
Informationen zueinander über den
Switch 202 senden. Der Switch 202 unterstützt ferner
die Kommunikation zwischen zwei beliebigen E/A-Einheiten 2052 –2055 und dem Rest des Computersystems.
Ebenfalls beobachtet wird ein älterer
Bus 207 (z.B. ein PCI-Bus), der eine Brücke 204 verwendet,
die über
eine bidirektionale Verknüpfung
mit einem Wurzelkomplex 201 verbunden ist.
-
Ein
E/A-Segment kann einen Zugangspunkt umfassen, über den Informationen zwischen
dem E/A-Segment und dem Rest des Computersystems fließen (Hinweis:
Der Wurzelkomplex 201 ist der Zugangspunkt für das E/A-Segment 200 aus 2). E/A-Segmente
sind häufig
so entwickelt, dass sie Konfigurationsbefehle 208 an einem
Zugangspunkt des E/A-Segments empfangen und auf diese ansprechen.
Für den
Fall von E/A-Segmenten auf Verknüpfungsbasis
können
Konfigurationsbefehle 208 für gewöhnlich an eine bestimmte E/A-Einheit
gerichtet sein, um bestimmte funktionale Aspekte des Verhaltens
der E/A-Einheit zu konfigurieren.
-
Wenn
für den
Fall von Computersystemen auf Verknüpfungsbasis mehrere E/A-Segmente
in dem gleichen Computersystem gestaltet sind, ist es wichtig, dass
Konfigurationstransaktionspakete, die an ein bestimmtes E/A-Segment
(ob auf Verknüpfungsbasis
oder Busbasis) gerichtet sind, ihren entsprechenden Bestimmungsort
erreichen. Leider gelingt es zumindest den Standards PCI und PCI
Express nicht, Konfigurationstransaktionen zu spezifizieren, die
dazu entwickelt worden sind, ein beliebiges einer Mehrzahl unterschiedlicher
E/A-Segmente in dem gleichen Computersystem zum Ziel zu haben. Benötigt wird
somit ein Systemdesign, das ein ordnungsgemäßes Routing eines E/A-Konfigurationstransaktionspakets
zu dem richtigen Ziel-E/A-Segment aus einer Mehrzahl von E/A-Segmenten
gewährleistet,
die in dem Computersystem auf Verknüpfungsbasis existieren.
-
"PCI Express and Advanced
Switching: Evolutionary Path to Building Next Generation Interconnects,
High Performance Interconnects" von
D. Mayhew et al., 2003, Proceedings, 11. Symposium vom 20.–22. August
2003, Piscataway, NJ, USA, IEEE, 20. August 2003, Seiten 21–29, offenbart,
dass PCI Express eine reibungslose Migration für die Entwicklung von Zwischenverbindungen
der nächsten
Generation ermöglicht,
und wobei Advanced Switching die Fähigkeiten von PCI Express weiter
verstärkt,
indem ein abgedeckter Anwendungsraum ermöglicht wird, der eine Mehrfachverarbeitung
und Peer-to-Peer-Kommunikation
ermöglicht.
-
Kurze Beschreibung der Zeichnungen
-
Die
vorliegende Erfindung ist in den Abbildungen der beigefügten Zeichnungen
beispielhaft und ohne einzuschränken
veranschaulicht, wobei ähnliche
bzw. gleiche Elemente mit den gleichen Bezugszeichen bezeichnet
werden. Es zeigen:
-
1a Komponenten,
die über
einen Bus miteinander verbunden sind;
-
1b Komponenten,
die über
ein Netz von Punkt-zu-Punkt-Verknüpfungen miteinander verbunden
sind;
-
2 eine
E/A-Architektur;
-
3 ein
Ausführungsbeispiel
eines Computersystems auf Verknüpfungsbasis;
-
4 ein
Ausführungsbeispiel
eines Knotens eines Computersystems auf Verknüpfungsbasis, mit einem Quellendecodierer,
der die Umwandlung einer Adresse für eine E/A-Konfigurationstransaktion
in ein Paket unterstützt;
-
5 ein
Ausführungsbeispiel
einer Methode zur Umwandlung einer Adresse für eine E/A-Konfigurationstransaktion in ein Paket;
und
-
6 ein
Ausführungsbeispiel
einer Methode zum Erzeugen eines Antwortpakets auf das gemäß der Methode
aus 5 erzeugte Paket.
-
Genaue Beschreibung
-
Die
Abbildungen der 3 und 4 zeigen gemeinsam
ein Design, das ein ordnungsgemäßes Routing
bzw. Leiten eines E/A-Konfigurationstransaktionspakets zu dem richtigen
Ziel-E/A-Segment in einem Computersystem auf Verknüpfungsbasis
mit einer Mehrzahl von E/A-Segmenten sicherstellt. In Bezug auf
die Abbildung aus 3 ist ein Computersystem auf
Verknüpfungsbasis
(oder ein Abschnitt dessen) dargestellt. Das Computersystem auf
Verknüpfungsbasis
weist die vier Komponenten 3011 bis 3014 auf. Die Komponenten 3011 und 3013 weisen
jeweils (in der Abbildung aus 3 zur besseren
Veranschaulichung nicht abgebildet) mindestens einen Prozessor auf,
der so konfiguriert ist, dass er Software ausführt, die E/A-Segmentkonfigurationsaufgaben ausführt.
-
Die
Komponenten 3012 und 3014 verhaltne sich mindestens als Gateways
für den
Zugangspunkt der entsprechenden E/A-Segmente 3001 und 3002 . Dabei sollten Konfigurationstransaktionspakete,
die an das E/A-Segment 3001 gerichtet
sind, zu der Komponente 3012 gesendet
werden und an das E/A-Segment 3002 gerichtete
Konfigurationstransaktionspakete sollten zu der Komponente 3014 gesendet werden. Bei dem Netzwerk 340 handelt
es sich um das Netzwerk des Computersystems auf Verknüpfungsbasis.
Im Betrieb kann es jede der Komponenten 3011 oder 3013 verlangen, eine Konfigurationstransaktion
an eine E/A-Einheit einzuleiten, die einem der E/A-Segmente 3001 und 3002 zugeordnet
ist. Es existieren mindestens zwei Arten von Konfigurationstransaktionen:
1) eine Schreibtransaktion und 2) eine Lesetransaktion.
-
Bei
einer Lesekonfigurationstransaktion wird ein Paket von der die Konfigurationssoftware
ausführenden
Komponente (z.B. einer der Komponenten 3011 und 3013 ) zu dem E/A-Segment gesendet, mit dem die für den Lesevorgang
vorgesehene E/A-Einheit verbunden ist. Wie dies bereits vorstehend
im Text erwähnt
worden ist, sollte zum Senden eines Pakets an die Ziel-E/A-Einheit
das Paket über
das Netzwerk 340 zu der Gateway-Komponente für den Zugangspunkt
des Ziel-E/A-Segments geleitet werden. Das Paket weit Inhalt auf
(z.B. in den Nutzinformationen des Pakets), der neben anderen möglichen
Informationselementen: 1) die Ziel-E/A-Einheit identifiziert; und
2) das Register in der Ziel-E/A identifiziert, aus dem Informationen
gelesen werden sollen. Das E/A-Segment, mit dem bzw. in das die
Ziel-E/A-Einheit
verbunden ist, versteht den Inhalt des Pakets und liest die Informationen
aus dem identifizierten Register in der identifizierten Ziel-E/A-Einheit.
Die aus der E/A-Einheit ausgelesenen Registerinformationen werden
danach in den Nutzinformationen eines zweiten Pakets platziert,
das über
das Netzwerk 340 zu der Komponente gesendet wird, welche
die Transaktion eingeleitet hat.
-
Für eine Schreibkonfigurationstransaktion wird
ein Paket von der die Konfigurationssoftware ausführenden
Komponente (z.B. einer der Komponenten 3011 und 3013 ) zu dem E/A-Segment gesendet, mit dem die E/A-Einheit
als Ziel für
die Schreibtransaktion verbunden ist. Das Paket weist Inhalt auf, der
neben anderen möglichen
Informationselementen: 1) die Ziel-E/A-Einheit identifiziert; 2) das Register
in der Ziel-E/A identifiziert, in das Informationen geschrieben
werden sollen; und 3) die in das identifizierte Register zu schreibenden
Informationen darstellt. Das E/A-Segment, mit dem die Ziel-E/A-Einheit verbunden
ist, versteht den Inhalt des Pakets und schreibt die Informationen
in das identifizierte Register in der identifizierten Ziel-E/A-Einheit.
Gemäß mindestens
einem Ausführungsbeispiel
wird danach eine Antwort (z.B. eine Antwort, die einen erfolgreichen
Schreibvorgang anzeigt) in den Nutzinformationen eines zweiten Pakets
platziert, das über
das Netzwerk 340 an die Komponente gesendet wird, welche
die Transaktion eingeleitet hat.
-
Transaktionen,
die über
ein Netzwerk 340 in Computersystemen auf Verknüpfungsbasis
ausgeführt
werden, können
mithilfe einer Adresse identifiziert werden. Das heißt, jeder
bestimmten Transaktionsart kann zum Beispiel eine eindeutige Adresse zugeordnet
werden, die an de Komponente ausgeführt wird, welche die Transaktion
einleitet. Zum Einleiten einer speziellen Transaktion wird die Transaktionsadresse
durch die Hardware der Komponente in die Aktionen decodiert, die
zur Ausführung
der Transaktion erforderlich sind.
-
Für den Fall
einer Konfigurationslesetransaktion wird somit eine Adresse, die
einer Konfigurationslesetransaktion entspricht, durch die Hardware der
Komponente decodiert, welche die Transaktion einleitet, und zwar
in Aktionen des Sendens eines Pakets zu dem Ziel-E/A-Segment mit Inhalt, der durch das
Ziel-E/A-Segment als Lesetransaktion interpretiert werden soll.
Für den
Fall einer Konfigurationsschreibtransaktion wird eine Adresse, die
einer Konfigurationsschreibtransaktion entspricht, durch die Hardware
der Komponente decodiert, welche die Transaktion einleitet, in Aktionen
des Sendens eines Pakets an das Ziel-E/A- Segment mit Inhalt, der durch das Ziel-E/A-Segment
als eine Schreibtransaktion interpretiert werden soll.
-
Da
zumindest die Standards PCI und PCI Express keine Konfigurationstransaktionen
spezifizieren, die so gestaltet sind, dass sie ein bestimmtes einer
Mehrzahl verschiedener E/A-Segmente
in dem gleichen Computersystem zum Ziel haben, muss ein Adressdecodierungsprozess
in Operationen der Komponenten, welche die Konfigurationstransaktionen
der E/A-Einheit einleiten, gestaltet werden, der sich ein beliebiges
einer Mehrzahl von E/A-Segmenten zum Ziel nehmen kann. Die Abbildung
aus 3 zeigt durch Speicherabbildungen 3131 und 3132 , dass
ein Quellenadressdecodierungsverfahren mit Speicherabbildung eingesetzt
werden kann, um die Routing-Informationen zu erzeugen, die ausreichen, um
das ursprüngliche
Transaktionspaket zu der Gateway-Komponente für das Ziel-E/A-Segment zu leiten.
Gemäß den Speicherabbildungen 3131 und 3132 aus 3 wird
für jedes
E/A-Segment als Ziel ein anderer Adressbereich verwendet. Somit
weist jede der Speicherabbildungen 3131 und 3132 einen ersten Adressbereich (R1) für die Konfigurationstransaktionsadressen
auf, die für
das E/A-Segment 3001 vorgesehen
sind, und einen zweiten Adressbereich (R2) für die Konfigurationstransaktionsadressen,
die für
das E/A-Segment 3002 vorgesehen
sind. Hiermit wird festgestellt, dass es sich bei dem Bereich R1
der Abbildung 3131 um einen anderen
Bereich des physischen Adressraums als dem Bereich R1 der Abbildung 3132 handeln kann. In ähnlicher Weise kann es sich
bei dem Bereich R2 der Abbildung 3131 um
einen anderen Bereich des physischen Adressraums handeln als bei
dem Bereich R1 der Abbildung 3132 .
Die zur Implementierung der Speicherabbildungen 3131 und 3132 verwendeten Speichervorrichtungen
können
Direktzugriffsspeicher (RAM) und/oder Assoziativspeicher (CAM) aufweisen.
Für den
Fall von CAMs können
die Bereiche R1 und R2 Schlüsselbereichen
an Stelle von Adressbereichen entsprechen.
-
Die
Abbildungen der 4 und 5 zeigen ein
Ausführungsbeispiel
des Transaktionsadressdecodierungsverfahrens in näheren Einzelheiten.
Die Abbildung aus 4 zeigt ein Hardwaredesign auf hoher
Ebene für
eine Schaltkreisanordnung in einer Komponente 401 eines
Computersystems auf Verknüpfungsbasis,
die Konfigurationspakete emittieren kann, die für das richtige einer Mehrzahl
von E/A-Segmenten bestimmt sind; und die Abbildung aus 5 zeigt
eine Methode, die durch das Hardwaredesign aus 4 ausgeführt werden
kann. In Bezug auf die Abbildungen der 4 und 5 wird zuerst
eine Konfigurationstransaktionsadresse 405, 505 erzeugt 501.
In verschiedenen Ausführungsbeispielen
wird die Konfigurationstransaktionsadresse 405, 505 durch
E/A-Konfigurationssoftware
erzeugt 501, deren Zweck es ist, die Konfiguration der
auf über
mehr als ein E/A-Segment in einem Computersystem auf Verknüpfungsbasis
verteilten E/A-Einheiten
zu steuern. Das spezielle Ausführungsbeispiel aus 5 zeigt
an, dass die Konfigurationstransaktionsadresse 505 die
folgende Datenstruktur aufweist: Segment/Bus/Device/Function/Extended_Reg/Reg.
-
Der
Durchschnittsfachmann erkennt, dass der Abschnitt Bus/Device/Function/Extended_Reg/Reg 505a der
Konfigurationstransaktionsadresse 505 das Standardformat
für eine PCI-,
PCI-X oder PCI_Express-Konfigurationstransaktion darstellt. In diesem
Fall identifiziert der Parameter "Bus",
welcher PCI-Bus (in diesem Fall PCI, PCI-X und PCI_Express) oder
PCI_Express-Verknüpfung
(im Fall von PCI_Express) in dem E/A-Segment das Ziel der Konfigurationstransaktion
ist. Der Parameter "Device" identifiziert, welche
E/A-Einheit auf dem Ziel-Bus/Ziel-Verknüpfung das Ziel der Konfigurationstransaktion
ist. Der Parameter "Function" identifiziert die
durch die Konfigurationstransaktion (z.B. Lesen oder Schreiben)
auszuführende
Funktion. Die Parameter "Extended_Reg" (sofern verfügbar) und "Reg" definieren den Registerraum
der Ziel-E/A-Einheit, der von der Konfigurationstransaktion betroffen
ist.
-
Der
Segmentparameter 505a ist ein neues Merkmal, das identifiziert,
welches E/A-Segment in dem Computersystem auf Verknüpfungsbasis
das Ziel der Konfigurationstransaktion ist. Hiermit wird festgestellt,
dass die ganze Konfigurationstransaktion mehr Informationen/Parameter
aufweisen kann als nur die Struktur Segment/Bus/Device/Function/Extended_Reg/Reg 505.
Zum Zweck der Identifizierung eines Adressdecodierungsverfahrens
mit Speicherabbildung, das ausreicht, um eine Ziel-E/A-Einheit zu identifizieren,
die mit einem beliebigen einer Mehrzahl von E/A-Segmenten in einem Computersystem
auf Verknüpfungsbasis
verbunden ist, muss jedoch nur der Abschnitt Segment/Bus/Device/Function/Extended_Reg/Reg 505 dargestellt werden.
-
Der
Parameter Segment 505b dient bei der Identifikation des
Ziel-E/A-Segments für
die Transaktion als ein Eingangsparameter in einen Quellenadress-Decodierer 402,
der den spezifischen Netzwerkknoten (NodeID) der Gateway-Komponente
für das
Ziel-E/A-Segment bestimmt (z.B. in Bezug auf 3 die Komponente 3012 , wenn das E/A-Segment 3001 das Ziel-E/A-Segment darstellt; oder
die Komponente 3014 , wenn das E/A-Segment 3002 das Ziel-E/A-Segment darstellt). Der
Quellenadress-Decodierer 414 weist eine Verweislogikschaltkreisanordnung 414 auf,
um die NodeID-Informationen aus der Speicherabbildung 413 abzurufen
als Reaktion auf die Präsentation
des Abschnitts 405a der Konfigurationstransaktionsadresse 405 (im
Besonderen der Parameter Segment 505a). Die NodeID der
Gateway-Komponente an das Ziel-E/A-Segment wird als Ausgabe des
Quellenadress-Decodierers 402 bereitgestellt.
-
Wie
dies bereits vorstehend im Text erwähnt worden ist, kann der Konfigurationstransaktionsadressraum
(und somit die Speicherabbildung 413) so aufgeteilt werden,
dass ein erster Adressbereich reserviert wird für Konfigurationstransaktionsadressen, deren
entsprechende Konfigurationsadressen alle das gleiche "erste" E/A-Segment zum
Ziel haben (z.B. das E/A-Segment 3001 );
wobei ein zweiter Adressbereich reserviert wird für Konfigurationstransaktionsadressen,
deren entsprechende Konfigurationstransaktionen alle das gleiche "zweite" E/A-Segment (z.B.
das E/A-Segment 3002 ) zum Ziel haben,
etc. In einem alternativen Ausführungsbeispiel
werden eine Mehrzahl von parallelen Quellenadress-Decodierern implementiert,
um die Leistung zu verbessern (d.h. zur Verbesserung der Anzahl
der Verweise pro Sekunde). Gemäß einem
weiteren Ausführungsbeispiel
wird ein erster Quellenadress-Decodierer eingesetzt, um die NodeID
für eine
erste Gateway-Komponente zu identifizieren, und wobei ein zweiter
Quellenadress-Decodierer eingesetzt wird, um die NodeID für eine zweite
Gateway-Komponente zu identifizieren.
-
Unabhängig davon,
wie der Verweis vorgenommen wird, und von der Art und Weise, wie
die letztliche NodeID-Ausgabe bestimmt wird (z.B. direkt aus der
Speicherabbildung entnommen, aus Informationen bestimmt, die in
der Speicherabbildung gefunden werden, etc.), wird die Ausgabe NodeID 406 mit
dem Rest der Informationen 405b kombiniert, die erforderlich
sind, um die Konfigurationstransaktion (z.B. den Abschnitt Segment/Bus/Device/Function/Extended_Reg/Reg 505b)
an der Netzwerkschicht 403 der Komponente 401 vollständig zu kennzeichnen.
Die Netzwerkschicht 403 ist verantwortlich für das Erzeugen
und Senden eines Pakets 503 über das Netzwerk 440 des
Computersystems auf Verknüpfungsbasis.
-
Die
Abbildung aus Figur veranschaulicht ferner eine Darstellung eines
beispielhaften Pakets 504, das durch die Netzwerkschicht 403 erzeugt
wird; wobei das Paket einer Situation entspricht, in der die Komponente 3011 aus 3 ein Konfigurationstransaktionspaket über das
Netzwerk 340 an die Komponente 3012 sendet,
um eine Konfigurationsfunktion an der E/A-Einheit auszuführen, die
mit dem E/A-Segment 3001 verbunden
ist. Das Paket 504 weist Header-Informationen 504a auf,
welche die Identität
der Komponente 3012 enthalten (d.h.
die Identität
der Komponente, an die das Paket gesendet wird = NodeID2)
sowie die Identität
der Komponente 3011 (d.h. die Identität der Komponente,
die das Paket sendet = SourceID1). Die Nutzinformationen
des Pakets 504b enthalten den Abschnitt Segment/Bus/Device/Function/Extended_Reg/Reg 505b der
Konfigurationstransaktionsadresse 505. Der Nutzinformationsabschnitt
würde auch
die Informationen aufweisen, die bei einer Schreibtransaktion geschrieben
werden müssen.
-
Die
Abbildung aus 6 zeigt eine Methode, die an
der Gateway-Komponente ausgeführt
werden kann als Reaktion auf den Empfang 601 einer Konfigurationstransaktionsadresse.
Zur Vereinfachung bezieht sich die Methode aus 6 auf
das spezielle, gerade genannte Ausführungsbeispiel, wobei die Komponente 3011 aus 3 ein Konfigurationstransaktionspaket über das
Netzwerk 340 an die Komponente 3012 sendet,
um eine Konfigurationsfunktion an einer E/A-Einheit auszuführen, die
mit dem E/A-Segment 3001 verbunden
ist. Dabei entspricht die Methode aus 6 dem Verhalten
der Komponente 3012 als Reaktion
auf den Empfang 601 eines von der Komponente 3011 gesendeten Pakets.
-
Relevante
Informationen 605 zur Erläuterung der Reaktion enthalten
gemäß der Abbildung aus 6 SourceID1 (wodurch die Komponente 3011 identifiziert wird) und die Informationen
Segment/Bus/Device/Function/Extended_Reg/Reg. Wie dies bereits vorstehend
im Text beschrieben worden ist, werden die Informationen Segment/Bus/Device/Function/Extended_Reg/Reg 605b von
dem E/A-Segment 3001 verstanden
und eingesetzt, auf das über
die Gateway-Komponente 3012 zugegriffen wird.
Als Reaktion auf diese Informationen 605b führt somit
das E/A-Segment 602 die Funktion der Konfigurationstransaktion
aus, die es spezifiziert. Die Reaktion 606 ist abhängig von
der Funktion. Zum Beispiel für
den Fall einer Lesetransaktion, würde es sich bei der Antwort
bzw. der Reaktion um die Informationen handeln, die aus dem Zielregister
gelesen werden. Bei einer Schreibtransaktion kann die Antwort bzw.
Reaktion eine Bestätigung
enthalten, dass die Schreiboperation erfolgreich ausgeführt worden ist.
-
Die
Reaktion bzw. Antwort wird mit der Identifikation 605a der
Komponente 3011 kombiniert, welche
die Transaktionsanforderung (= SourceID1)
eingeleitet hat. Da NodeID die Identität der Zielkomponente für ein Paket
spezifiziert, und da SourceID die Identität einer sendenden Komponente
für das
Paket spezifiziert, bewirkt das Festlegen der NodeID für das durch
die Gateway-Komponente 3012 erzeugte
Paket gleiche der SourceID des durch die Gateway-Komponente 3012 erzeugten Pakets (d.h. NodeID1 wird = SourceID1 gesetzt),
dass die Antwort automatisch zu der Komponente 3011 gesendet
wird, welche die Konfigurationstransaktion eingeleitet hat. Die
SourceID für
das Antwortpaket ist die Identität der
Gateway-Komponente (d.h. SourceID2). Somit
ist der Header 604a des Antwortpakets gleich NodeID1/SourceID2. Die
Nutzinformationen 604b des Antwortpakets sind die Antwort 606 von
der ausgeführten
Konfigurationsfunktion.
-
In
der vorstehenden Beschreibung wurde die vorliegende Erfindung in
Bezug auf bestimmte exemplarische Ausführungsbeispiele der Erfindung
beschrieben. Es ist jedoch offensichtlich, dass verschiedene Modifikationen
und Abänderungen
diesbezüglich
ausgeführt
werden können,
ohne dabei vom weiteren Umfang der vorliegenden Erfindung abzuweichen,
der in den anhängigen
Ansprüchen
ausgeführt ist.
Die Beschreibung und die Zeichnungen dienen somit Veranschaulichungszwecken
und haben keine einschränkende
Funktion.