-
Diese
Anmeldung beansprucht den Vorteil des Anmeldedatums der Vorläufigen US-Anmeldung Serien-Nr.
60/313,875, die am 20. August 2001 nach 35 U.S.C. § 119 (e)
angemeldet wurde.
-
STAND DER TECHNIK
-
GEBIET DER ERFINDUNG
-
Der
Gegenstand der Erfindung, der hierin offenbart wird, betrifft Verarbeitungsplattformen.
Insbesondere betrifft der Gegenstand der Erfindung, der hierin offenbart
wird, Verarbeitungsplattformen, die Ein-/Ausgabe(E/A)-Vorrichtungen umfassen.
-
INFORMATIONEN
-
Verarbeitungsplattformen
umfassen normalerweise ein Host-Verarbeitungssystem, Peripheriegeräte und ein
E/A-System, das
die Kommunikation zwischen Verarbeitungen, die auf dem Host-Verarbeitungssystem
untergebracht sind, und den Peripheriegeräten ermöglicht. Solch ein E/A-System
wird normalerweise entsprechend einer oder mehreren Standard-E/A-Architekturen
gebildet, wie zum Beispiel der peripheren Komponentenverbindungs-(PCI)-Architektur
gemäß der PCI
Local Bus Specification, Rev. 2.2, 18. Dezember 1998, die von der
PCI Special Interest Group gefördert
wird.
-
Zur
Zuweisung von Ressourcen für
die Kommunikation mit Peripheriegeräten durch ein E/A-System führt ein
Host-Verarbeitungssystem normalerweise eine Auflistungsprozedur
aus. Eine Auflistungsprozedur fragt normalerweise Elemente des E/A-Systems
und die Peripheriegeräte
gemäß einem Protokoll
zum Extrahieren von Identifizierungsinformationen und Ressourcenanforderungen
ab. Die Auflistungsprozedur kann dann Ressourcen, zum Beispiel durch
Zuweisen eines Teils des Systemspeichers zur Verwendung durch periphere
Controller und Gerätetreiber
und Erstellen von Datenpuffern in einem Systemspeicher des Host-Verarbeitungssystems,
zuweisen.
-
Wenn
sich die Anforderungen an zukünftige Verarbeitungsplattformarchitekturen
entwickeln, entwickeln sich die Architekturen komplementärer E/A-Systeme,
was eine erhöhte
Leistungsfähigkeit und
Funktionalität
zur Erfüllung
dieser Anforderungen an die zukünftigen
Verarbeitungsplattformarchitekturen ermöglicht. Trotzdem besteht ein
Bedarf nach Aufrechterhaltung der Gemeinsamkeit zwischen neueren
E/A-Systemarchitekturen und älteren E/A-Systemarchitekturen,
um glatte Übergänge zu den
neueren E/A-Systemarchitekturen zu ermöglichen.
-
US-B-6233641 beschreibt
das Weiterleiten von Busbefehlen zwischen Computersystemen und Erweiterungsplätzen und
-karten und gehört
zu den Merkmalen des Vorwortes von Anspruch 1.
US-A-5991824 beschreibt ein
Verfahren und System für
Eingabe/Ausgabe unter Elementen auf gleichem Niveau, das auf einem
Computersystem ausgeführt wird,
welches einen Mikroprozessor und einen paketvermittelten Router
hat, der an den Mikroprozessor angeschlossen ist.
-
KURZBESCHREIBUNG DER FIGUREN
-
Nichteinschränkende und
nicht erschöpfende
Ausführungsformen
der vorliegenden Erfindung werden unter Verweis auf die folgenden
Figuren beschrieben, wobei ähnliche
Verweiszahlen auf ähnliche
Teile in allen verschiedenen Figuren verweisen, wenn nicht anders
angegeben.
-
1 zeigt
ein schematisches Diagramm einer Verarbeitungsplattform gemäß einer
Ausführungsform
der vorliegenden Erfindung.
-
2 zeigt
ein schematisches Diagramm einer Verarbeitungsplattform gemäß einer
alternativen Ausführungsform
der vorliegenden Erfindung.
-
3 zeigt
eine schematische Diagrammabbildung eines Mehrportschalters auf
eine Darstellung einer PCI-Busstruktur
gemäß einer
Ausführungsform der
Verarbeitungsplattformen, die in 1 und 2 gezeigt
werden.
-
4 zeigt
ein schematisches Diagramm, das die Bildung einer Weiterleitungstabelle
aus einer Kombination von decodierten Adressbereichen zur Übertragung
vom Mitteilung stromabwärts
und der inversen Decodierung zur Weiterleitung stromaufwärts gemäß einer
Ausführungsform
des Mehrportschalters illustriert, der in 3 gezeigt
wird.
-
5 zeigt
ein Flussdiagramm, das eine Auflistungsprozedur gemäß einer
Ausführungsform der
des Mehrportschalters illustriert, die in 4 gezeigt
wird.
-
AUSFÜHRLICHE
BESCHREIBUNG
-
Der
Verweis in der ganzen Patentschrift auf "eine Ausführungsform" bedeutet, dass ein besonderes Merkmal,
Struktur oder Kennzeichen, das in Verbindung mit der Ausführungsform
beschrieben wird, in mindestens einer Ausführungsform der vorliegenden
Erfindung enthalten ist. Daher bedeutet das Auftreten des Ausdrucks "in einer Ausführungsform" an verschiedenen
Stellen in der ganzen Patentschrift nicht notwendigerweise, dass
alle sich auf dieselbe Ausführungsform
beziehen. Ferner können
die besonderen Merkmale, Strukturen oder Kennzeichen in einer oder
mehreren Ausführungsformen
kombiniert werden.
-
"Maschinenlesbare" Befehle, auf die
hierin verwiesen wird, betreffen Ausdrücke, die von einer oder mehreren
Maschinen zur Ausführung
von einer oder mehreren logi schen Operationen verstanden werden
können.
Maschinenlesbare Befehle können zum
Beispiel Befehle umfassen, die durch einen Prozessor-Compiler zur
Ausführung
von einer oder mehreren Operationen an einem oder mehreren Datenobjekten
interpretierbar sind. Dies ist jedoch nur ein Beispiel für maschinenlesbare
Befehle, und in dieser Hinsicht sind Ausführungsformen der vorliegenden Erfindung
nicht eingeschränkt.
-
Das "maschinenlesbare
Medium", auf welches
hierin verwiesen wird, betrifft Medien, in der Lage sind, Ausdrücke aufzubewahren,
die von einer oder mehreren Maschinen wahrgenommen werden können. Ein
maschinenlesbares Medium kann zum Beispiel eine oder mehrere Speichervorrichtungen zum
Speichern von maschinenlesbaren Befehlen umfassen. Dies ist jedoch
nur ein Beispiel für
ein maschinenlesbares Medium, und Ausführungsformen der vorliegenden
Erfindung sind in dieser Hinsicht nicht eingeschränkt.
-
Die "Logik", auf die hierin
verwiesen wird, betrifft die Struktur zur Ausführung von einer oder mehreren
logischen Operationen. Die Logik kann zum Beispiel Schaltungen umfassen,
die ein oder mehrere Ausgangssignale bereitstellen, welche auf einem oder
mehreren Eingangssignalen beruhen. Solche Schaltungen können einen
endlichen Automaten aufweisen, der eine digitale Eingabe empfängt und
eine digitale Ausgabe bereitstellt, oder Schaltungen, die ein oder
mehrere analoge Ausgangssignale als Reaktion auf ein oder mehrere
Eingangssignale bereitstellen. Die Logik kann auch mehrere Verarbeitungsschaltungen
in Kombination mit maschinenausführbaren
Befehlen umfassen, die in einem Speicher aufbewahrt werden. Dies
sind jedoch nur Beispiele für Strukturen,
die die Logik bereitstellen, und in dieser Hinsicht sind Ausführungsformen
der vorliegenden Erfindung nicht eingeschränkt.
-
Ein "Verarbeitungssystem", wie hierin diskutiert,
bezieht sich auf eine Kombination von Hardware- und Software-Ressourcen
zum Ausführend der
Berechnungsaufgaben. Dies ist jedoch nur ein Beispiel für ein Verarbeitungssystem,
und in dieser Hinsicht sind Ausführungsformen
der vorliegenden Erfindung nicht eingeschränkt. Ein "Host-Verarbeitungssystem" bezieht sich auf
ein Verarbeitungssystem, das zur Kommunikation mit einem "Peripheriegerät" ausgelegt sein kann.
Ein Peripheriegerät
kann zum Beispiel Eingaben in einen Anwendungsprozess, der auf dem
Host-Verarbeitungssystem läuft, bereitstellen
oder Ausgaben aus demselben empfangen. Dies sind jedoch nur Beispiele
für ein
Host-Verarbeitungssystem und ein Peripheriegerät, und in dieser Hinsicht sind
die Ausführungsformen
der vorliegenden Erfindung nicht eingeschränkt.
-
Ein "Datenbus", auf den hierin
verwiesen wird, betrifft Schaltungen zum Übertragen von Daten zwischen
Vorrichtungen. Ein Datenbus kann zum Beispiel Daten zwischen einem
Host-Verarbeitungssystem und einem Peripheriegerät übertragen. Ein Datenbus kann
für die
Kommunikation mit mehreren Vorrichtungen verbunden werden, wobei
jede Vorrichtung sich an einer physischen Adresse auf dem Datenbus
befindet. Dies sind jedoch nur Beispiele für einen Datenbus, und in dieser
Hinsicht sind Ausführungsformen
der vorliegenden Erfindung nicht eingeschränkt. Eine "Datenbustransaktion", wie hierin bezeichnet, bezieht sich
auf eine Interaktion zwischen Vorrichtungen, die an eine Busstruktur
angeschlossen sind, wobei eine Vorrichtung Daten, die an die andere
Vorrichtung adressiert sind, über
die Busstruktur überträgt. Eine
erste Vorrichtung kann zum Beispiel eine Datenbustransaktion mit
einer zweiten Vorrichtung auslösen,
die an den Datenbus angeschlossen ist und sich auf einer physischen
Adresse auf dem Datenbus befindet. Ein Datenbus kann mit mehr als
zwei Vorrichtungen verbunden sein, wobei jede Vorrichtung sich an
einer physischen Adresse auf dem Datenbus befindet.
-
Dementsprechend
kann eine erste Vorrichtung eine Datenbustransaktion mit einer beliebigen Zielvorrichtung
aus mehreren anderen Vorrichtungen auslösen, die mit dem Datenbus durch
Adressieren der Datenbustransaktion an die physische Adresse, die
mit der Zielvorrichtung verknüpft
ist, verbunden ist. Dies ist jedoch nur ein Beispiel für eine Bustransaktion,
und in dieser Hinsicht sind Ausführungsformen
der vorliegenden Erfindung nicht eingeschränkt.
-
Eine "serielle Verbindung", auf die hierin
verwiesen wird, betrifft Schaltungen zum Übertragen von Daten zwischen
Vorrichtungen. Eine serielle Verbindung kann eine Punkt-Punkt-Kommunikation
zwischen zwei Vorrichtungen, entweder unidirektional oder bidirektional,
bereitstellen. Obwohl sie auf das Übertragen von Daten zwischen
zwei Punkten beschränkt
ist, kann eine serielle Verbindung Daten zwischen den Vorrichtungen
unabhängig
von Adressinformationen übertragen.
Dies sind jedoch nur Beispiele für
eine serielle Verbindung, und in dieser Hinsicht sind Ausführungsformen
der vorliegenden Erfindung nicht eingeschränkt.
-
Eine "Auflistungsprozedur", wie hierin bezeichnet,
bezieht sich auf einen Prozess, der von einem Verarbeitungssystem
gesteuert wird, um Ressourcen zur Kommunikation zwischen Prozessen, die
auf dem Verarbeitungssystem laufen, und Vorrichtungen, die an ein
E/A-System angeschlossen sind,
zuzuweisen. Ein Auflistungsprozess kann zum Beispiel Datenpuffer
in einem Systemspeicher eines Verarbeitungssystems für die Übertragung
von Daten an Vorrichtungen, die an ein E/A-System angeschlossen
sind, oder für
den Empfang von Daten von denselben zuweisen. Eine Auflistungsprozedur
kann auch Gerätetreiber
im Verarbeitungssystem initialisieren, die Vorrichtungen entsprechen,
welche an das E/A-System angeschlossen sind. Dies sind jedoch nur
Beispiele für
eine Auflistungsprozedur, und in dieser Hinsicht sind Ausführungsformen
der vorliegenden Erfindung nicht eingeschränkt.
-
Eine "Konfigurationstransaktion", wie hierin bezeichnet,
bezieht sich auf ein Ereignis in einer Auflistungsprozedur, um Ressourcen
einer Vorrichtung zuzuweisen, die an einen Datenbus angeschlossen ist,
oder um Ressourcen einer Gerätefunktion
zuzuweisen. Eine Konfigurationstransaktion kann Informationen für ein Verarbeitungssystem
bereitstellen, die eine Vorrichtung oder Vorrichtungsfunktionen identifizieren,
um die Zuweisung von Ressourcen zu der Vorrichtung oder Vorrichtungsfunktion
ermöglichen.
Dies ist jedoch nur ein Beispiel für eine Konfigurationstransaktion,
und in dieser Hinsicht sind Ausführungsformen
der vorliegenden Erfindung nicht eingeschränkt.
-
Eine
Auflistungsprozedur kann eine Konfigurationstransaktion durch Übertragen
einer "Konfigurationsanforderung" auslösen, die
an eine Vorrichtung oder Vorrichtungsfunktion adressiert ist. Eine Auflistungsprozedur
kann zum Beispiel eine Bustransaktion auslösen, die an eine vorgesehene
Vorrichtung oder Vorrichtungsfunktion adressiert ist, um eine Konfigurationstransaktion
zum Zuweisen von Ressourcen auszulösen, um die der vorgesehenen Vorrichtung
oder Vorrichtungsfunktion zu kommunizieren. Dies ist jedoch nur
ein Beispiel für
eine Konfigurationsanforderung, und in dieser Hinsicht sind Ausführungsformen
der vorliegenden Erfindung nicht eingeschränkt.
-
Ein "Konfigurationskopf", wie hierin bezeichnet,
bezieht sich auf Daten, die von einer Vorrichtung als Reaktion auf
eine Konfigurationsforderung bereitgestellt werden. Eine Vorrichtung
kann zum Beispiel einen Konfigurationskopf als formatierte Daten
bereitstellen, die Datenfelder mit Informationen umfassen, die die
Vorrichtung und/oder Ressourcenanforderungen von einer oder mehreren
Funktionen der Vorrichtung als Reaktion auf eine Anforderung identifizieren.
Dies ist jedoch nur ein Beispiel für einen Konfigurationskopf,
und in dieser Hinsicht sind Ausführungsformen
der vorliegenden Erfindung nicht eingeschränkt.
-
Ein "Systembus", wie hierin bezeichnet,
bezieht sich auf einen Datenbus in einem Verarbeitungssystem, der
Hardware-Ressourcen eines Verarbeitungssystems verbindet. Ein Systembus
kann zum Beispiel einen Datenbus zum Verbinden einer Zentralen Verarbeitungseinheit
(CPU) und des Hauptspeichers eines Verarbeitungssystems umfassen.
Dies ist jedoch nur ein Beispiel für einen Systembus, und in dieser
Hinsicht sind Ausführungsformen
der vorliegenden Erfindung nicht eingeschränkt.
-
Eine "Brücke", wie hierin bezeichnet,
bezieht sich auf Schaltungen oder eine Logik, die zwischen einen
Datenbus und eine oder mehrere Vorrichtungen geschaltet ist, um
die Übertragung
von Daten zwischen dem Datenbus und den Vorrichtungen zu ermöglichen.
Eine Brücke
kann es zum Beispiel Vorrichtungen ermöglichen, mit einem Datenbus
gemäß einem
Protokoll zu kommunizieren, das dem Datenbus systemeigen ist. Dies
ist jedoch nur ein Beispiel für
eine Brücke,
und in dieser Hinsicht sind Ausführungsformen
der vorliegenden Erfindung nicht eingeschränkt.
-
Eine
Brücke
kann über
einen "Primärbus" an ein Verarbeitungssystem
angeschlossen werden. Solch eine Brücke kann auch an einen "Sekundärbus" angeschlossen werden,
um Daten zwischen der Brücke
und Vorrichtungen zu übertragen,
die an den Sekundärbus
angeschlossen sind. Die Brücke
kann dementsprechend Daten von Vorrichtungen, die an den Sekundärbus angeschlossen
sind, über
den Primärbus
zum Verarbeitungssystem übertragen.
Die Brücke
kann analog Daten, die vom Verarbeitungssystem am Primärbus empfangen
wurden, an Vorrichtungen übertragen,
die an den Sekundärbus
angeschlossen sind. Dies sind jedoch nur Beispiele für Primär- und Sekundärbus, die
an eine Brücke
angeschlossen sind, und in dieser Hinsicht sind Ausführungsformen
der vorliegenden Erfindung nicht eingeschränkt.
-
Eine "Host-Brücke", wie hierin bezeichnet, bezieht
sich auf eine Brücke,
die zwischen einem Systembus und einem E/A-System liegt. Eine Host-Brücke kann
zum Beispiel die Kommunikation zwischen einer Hardware-Ressource eines Verarbeitungssystems,
das an einen Systembus angeschlossen ist, und einer oder mehreren
Vorrichtungen ermöglichen,
die an einen Hub oder zweiten Datenbus angeschlossen sind. Dies
ist jedoch nur ein Beispiel für
eine Host-Brücke,
und in dieser Hinsicht sind Ausführungsformen
der vorliegenden Erfindung nicht eingeschränkt.
-
Ein "Root Device", wie hierin bezeichnet,
bezieht sich auf eine Vorrichtung zum Übertragen von Daten zwischen
einem Verarbeitungssystem und einem Ein-/Ausgabe(E/A)-System. Solch ein
Root Device kann Hub-Schaltkreise umfassen, die an einen Systembus
eines Verarbeitungssystems zum Übertragen
von Daten zwischen Prozessen, die auf dem Verarbeitungssystem laufen,
und Vorrichtungen angeschlossen sind, welche mit einem E/A-System
verbunden sind. Ein Root Device kann auch eine Host-Brücke umfassen,
die zum Beispiel einen Systembus mit E/A-Vorrichtungen verbindet.
Dies ist jedoch nur ein Beispiel für ein Root Device, und in dieser
Hinsicht sind Ausführungsformen
der vorliegenden Erfindung nicht eingeschränkt.
-
Ein "Schalter", wie hierin bezeichnet,
bezieht sich auf Schaltungen und Logik zum Weiterleiten empfangener
Daten zu einem oder mehreren Zielen. Ein Schalter kann zum Beispiel
mehrere Ports und Logik zum Weiterleiten von Daten, die auf einem
Eingangsport empfangen wurden, an einen Ausgangsport umfassen, das
auf Zielinformationen beruht, die mit den empfangenen Daten verknüpft sind.
Dies ist jedoch nur ein Beispiel für einen Schalter, und in dieser
Hinsicht sind Ausführungsformen
der vorliegenden Erfindung nicht eingeschränkt.
-
Ein
Schalter kann über
ein Root Device an einem "Aufwärtsport" an ein Verarbeitungssystem angeschlossen
und mit anderen Vorrichtungen über ein
oder mehrere "Abwärtsports" zum Übertragen von
Daten zwischen den anderen Vorrichtungen und dem Verarbeitungssystem
verbunden sein. Solch ein Schalter kann auch Daten zwischen den
anderen Vorrichtungen durch entsprechende Abwärtsports übertragen. Dies sind jedoch
nur Beispiele für
einen Aufwärtsport
und einen Abwärtsport,
und in dieser Hinsicht sind Ausführungsformen
der vorliegenden Erfindung nicht eingeschränkt.
-
"Leitinformationen", wie hierin bezeichnet, beziehen
sich auf Daten, die Zieladressen mit physischen Zielen verknüpfen. Eine "Leitwegtabelle" oder "Nachschlagetabelle" kann zum Beispiel
Leitinformationen zum Verknüpfen
von Zielinformationen einer Datenmitteilung oder eines Datenpakets
mit einem physischen Ziel (z.B. mit einem Port eines Schalters oder
einer Vorrichtung, die an einen Port eines Schalters angeschlossen
ist) umfassen. Dies sind jedoch nur Beispiele für Leitinformationen, eine Leitwegtabelle
und eine Nachschlagetabelle, und in dieser Hinsicht sind Ausführungsformen
der vorliegenden Erfindung nicht eingeschränkt.
-
Kurz
gesagt, bezieht sich eine Ausführungsform
der vorliegenden Erfindung auf ein System und ein Verfahren zum Übertragen
von Daten in einer Verarbeitungsplattform. Ein Schalter kann einen
Aufwärtsport
umfassen, der zur Kommunikation mit einem Verarbeitungssystem an
ein Root Device angeschlossen ist. Der Schalter kann auch mehrere
Abwärtsports
umfassen, wobei jeder Abwärtsport
für den
Anschluss an eine Vorrichtung ausgelegt ist. Daten können auf
der Basis von Leitinformationen zum Übertragen von Daten vom Aufwärtsport
zu jedem der Abwärtsports
zwischen Abwärtsports übertragen werden.
Dies ist jedoch nur ein Beispiel für eine als Beispiel dienende
Ausführungsform,
und in dieser Hinsicht sind andere Ausführungsformen der vorliegenden
Erfindung nicht eingeschränkt.
-
1 zeigt
ein schematisches Diagramm einer Verarbeitungsplattform gemäß einer
Ausführungsform
der vorliegenden Erfindung. Eine CPU 2 und ein Systemspeicher 6 sind
zum Kommunizieren mit Peripheriegeräten durch die Kernlogik 4,
die ein Root Device bereitstellt, verbunden. Die Kernlogik 4 kann
eine Speicherbrücke
oder einen Speichercontrollerhub (MCH), der von der Intel Corporation
hergestellt wird, umfassen. Dies ist jedoch nur ein Beispiel für ein Root
Device, und in dieser Hinsicht sind Ausführungsformen der vorliegenden
Erfindung nicht eingeschränkt.
Peripheriegeräte,
die mit der Kernlogik 4 verbunden sind, können zum
Beispiel einen oder mehrere Kommunikationsports 8, eine
oder mehrere Verarbeitungsbrücken 12 (z.B.
an Ein-/Ausgabe-(E/A)-Vorrichtungen, wie zum Beispiel einen Speicherprozessor,
angeschlossen), einen E/A-Controllerhub 14 und einen Schalter 10 umfassen.
In der illustrierten Ausführungsform
kann der E/A-Controllerhub 14 auch an Vorrichtungen, die
zum Kommunizieren mit Prozessen, die auf der CPU 2 laufen,
ausgelegt sind, und den Systemspeicher 6 gemäß eines Geräteprotokolls
angeschlossen sein, wie zum Beispiel ein Universal Serial Bus-Protokoll
oder ein Verbindungsprotokoll für
periphere Komponenten (PCI) (z.B. gemäß der PCI Local Bus Specification,
Rev. 2.2, 18. Dezember 1998, PCI Special Interest Group, nachfolgend
die "PCI-Lokalbusspezifikation" genannt). Außerdem kann
jeder Schalter 10 an eine oder mehrere Vorrichtungen 18 angeschlossen
sein. Dies ist jedoch nur ein Beispiel für eine Verarbeitungsplattform,
und in dieser Hinsicht sind Ausführungsformen
der vorliegenden Erfindung nicht eingeschränkt.
-
Jeder
Schalter 10 kann einen Aufwärtsport, der mit der Kernlogik 4 verbunden
ist, und mehrere Abwärtsports
umfassen, die mit den Vorrichtungen 18 verbunden sind.
Gemäß einer
Ausführungsform kann
der Schalter 10 die Aufwärts- und Abwärtskommunikation
zwischen einer Vorrichtung 18 und der Kernlogik 4 über den
Aufwärtsport
erleichtern. Der Schalter 10 kann auch die direkte Kommunikation
auf gleicher Ebene zwischen Vorrichtungen 18 durch entsprechende
Abwärtsports,
unabhängig
von der Kernlogik 4, erleichtern. Der Schalter 10 kann
Daten aus der Kernlogik 4 oder Vorrichtungen 18 in
einer Datenmitteilungs- oder Datenpaketformat empfangen, das ein
Ziel angibt. Dementsprechend kann der Schalter 10 Logik
zum Bestimmen eines Ausgangsports für eine solche Mitteilung oder
ein solches Datenpaket umfassen, das auf den Zieldaten beruht, die mit
der Datenmitteilung oder dem Datenpaket verknüpft sind. Dies ist jedoch nur
eine Ausführungsform eines
Schalters, wie er in einer Verarbeitungsplattform implementiert
wird, und in dieser Hinsicht sind Ausführungsformen der vorliegenden
Erfindung nicht eingeschränkt.
-
Gemäß einer
Ausführungsform
können
Zieldaten alle Daten umfassen, die mit einem Ausgangsport von Schalter 10 verknüpft werden
können.
Solche Zieldaten können
zum Beispiel eine Information umfassen, die ein Bussegment (z.B.
eine Busnummer) oder eine serielle Verbindung für ein Konfigurationsforderungspaket
oder ein geteiltes Abschlusspaket identifiziert. Zieldaten in einer
Datenmitteilung oder einem Datenpaket können ebenfalls eine Speicherabbildungsadresse
als Teil eines Nichtkonfigurationsforderungspakets umfassen. Dies
sind jedoch nur Beispiele für
Zieldaten, und in dieser Hinsicht sind Ausführungsformen der vorliegenden
Erfindung nicht eingeschränkt.
-
Gemäß einer
Ausführungsform
können
die Vorrichtungen 18 einen von mehreren E/A-Vorrichtungen
umfassen, wie zum Beispiel einen Ethernet-Controller, der an ein
Netz angeschlossen ist, eine Kleincomputerschnittstelle (SCSI),
eine Fibre Channel-Schnittstelle oder eine Grafikcontroller-Schnittstelle.
Dies sind jedoch nur Beispiele für Vorrichtungen,
die an einen Abwärtsport
eines Schalters angeschlossen werden können, und in dieser Hinsicht
sind Ausführungsformen
der vorliegenden Erfindung nicht eingeschränkt.
-
Gemäß einer
Ausführungsform
kann die CPU 2 eine oder mehrere Prozeduren zum Initialisieren
der Verarbeitungsplattform ausführen,
um Prozesse zu ermöglichen,
die auf der CPU 2 und dem Systemspeicher 6 zur
Kommunikation mit Peripheriegeräten
laufen. Die CPU 2 kann zum Beispiel Befehle ausführen, die
in einem nichtflüchtigen
Speicher (nicht dargestellt) als Teil eines grundlegenden E/A-Systems
(BIOS) gespeichert sind. Solche Befehle können in den Systemspeicher 6 geladen
und als Reaktion auf ein Systemreset-Ereignis ausgeführt werden.
Solche BIOS-Befehle können
eine oder mehrere Auflistungsprozeduren initiieren oder steuern,
um zur Kommunikation mit entsprechenden Datenbussen und Vorrichtungen
den Prozessen Ressourcen zuzuweisen (z.B. Initialisierung von Datenbustreibern
und Gerätetreibern),
zum Beispiel durch Festlegen von Puffern im Systemspeicher 6.
Dies ist jedoch nur ein Beispiel dafür, wie ein Verarbeitungssystem
Prozesse zum Initialisieren einer Verarbeitungsplattform ausführen kann,
und in dieser Hinsicht sind Ausführungsformen
der vorliegenden Erfindung nicht eingeschränkt.
-
In
der illustrierten Ausführungsform
kann der Schalter 10 so ausgelegt werden, dass er der Kernlogik 4 (und
Prozessen, die auf der CPU 2 und dem Systemspeicher 6 laufen)
als PCI-Vorrichtung erscheint, wie in der PCI Local Bus-Spezifikation
definiert. In dieser Ausführungsform
kann eine Auflistungsprozedur Ressourcen in der Verarbeitungsplattform
für die
Kommunikation mit dem Schalter 10 und den Vorrichtungen 18 als
PCI-Geräte
zuweisen. Dies ist jedoch nur ein Beispiel dafür, wie ein Verarbeitungssystem
zur Kommunikation mit einem Schalter und Vorrichtungen, die an Ports
des Schalters angeschlossen sind, ausgelegt werden kann, und in
dieser Hinsicht sind Ausführungsformen
der vorliegenden Erfindung nicht eingeschränkt.
-
Gemäß einer
Ausführungsform
kann die CPU 2 eine Auflistungsprozedur ausführen, um
u.a. Ressourcen zur Kommunikation mit den Vorrichtungen 18,
die durch den Aufwärtsport
des Schalters 10 an Abwärtsports
eines Schalters 10 angeschlossen sind, zuzuweisen und Leitinformationen
zur Weiterleitung von Datenmitteilungen oder Datenpaketen von den
Aufwärtsports
zu den Abwärtsports
zu erstellen. Schalter 10 kann dann die Logik zum Übertragen von
Daten von einem Quell-Abwärtsport
zu einem Ziel-Abwärtsport
umfassen, die auf den kollektiven Leitinformationen beruhen, welche
zum Weiterleiten von Datenmitteilungen oder Datenpaketen von einem
Aufwärtsport
zum Ziel-Abwärtsport
erstellt wurden. Dies ist jedoch nur ein Beispiel dafür, wie ein Schalter
eine Datenmitteilung oder ein Datenpaket von einem Quell-Abwärtsport
zu einem Ziel-Abwärtsport
weiterleiten kann, und in dieser Hinsicht sind Ausführungsformen
der vorliegenden Erfindung nicht eingeschränkt.
-
2 zeigt
ein schematisches Diagramm einer Verarbeitungsplattform gemäß einer
alternativen Ausführungsform
der vorliegenden Erfindung. Ein CPU-Komplex 102 kann ein
Verarbeitungssystem (zum Beispiel mit einer oder mehreren CPUs und Systemspeicher)
umfassen, das über
ein Root Device 104 mit Peripheriegeräten kommuniziert. Die Schalter 110 umfassen
jeweils einen Aufwärtsport 122 und
mehrere Abwärtsports 124,
die mit den Vorrichtungen 118 verbunden sind. Eine Vorrichtung 118 kann
einen Endpunkt definieren, der Schaltungen zur Übertragung von Daten an Punkte
auf der Verarbeitungsplattform übertragen
oder Daten von denselben empfangen kann. Eine Vorrichtung 118 kann
auch eine Brücke
zu einem Datenbus eines älteren PCI-Systems 120 gemäß der PCI
Local Bus-Spezifikation definieren.
-
In
der illustrierten Ausführungsform
kann eine Vorrichtung 118, die an einen Abwärtsport 124 eines
Schalters 110 angeschlossen ist, durch den Aufwärtsport 122 des
Schalters 110 mit Prozessen kommunizieren, die auf dem
CPU-Komplex 102 laufen.
Der CPU-Komplex 102 kann eine Auflistungsprozedur ausführen, um
die Schalter 110 und Ressourcen im CPU-Komplex 102 zu
konfigurieren, um so die Kommunikation mit den Vorrichtungen 118 zu ermöglichen.
Solche eine Auflistungsprozedur kann eine Prozedur zum Auflisten
der Schalter 110 und Vorrichtungen 118 als Vorrichtungen
umfassen, die auf einer PCI-Busstruktur resident sind.
-
In
der illustrierten Ausführungsform
ist der Aufwärtsport 122 von
Schalter 110c an einen Abwärtsport 124 von Schalter 110a angeschlossen.
Dementsprechend kann Schalter 110a als Root Device für den Schalter 110c fungieren
und die Logik zum Weiterleiten von Datenmitteilungen oder Datenpaketen vom
Schalter 110e (z.B. Datenmitteilung oder Datenpakete, die
ihren Ursprung in einer der Vorrichtungen 118 haben, die
an den Schalter 110c angeschlossen sind) durch den Aufwärtsport 122 von
Schalter 110a zu den Prozessen umfassen, die im CPU-Komplex 102 laufen.
Analog kann der Schalter 110a die Logik zum Weiterleiten
von Datenmitteilungen oder Datenpaketen von den Prozessen, die im
CPU-Komplex 102 laufen (die am Aufwärtsport 122 von Schalter 110a empfangen
wurden), zum Schalter 110c und den Vorrichtungen 118 umfassen,
die mit Abwärtsports 124 von
Schalter 110c verbunden sind. Dies sind jedoch nur Beispiele
dafür,
wie ein erster Schalter als Root Device zum Weiterleiten von Mitteilungen zwischen
einem Verarbeitungssystem und Vorrichtungen fungieren kann, die
an einen zweiten Schalter angeschlossen sind, der mit einem Abwärtsport
verbunden ist, in dieser Hinsicht sind die Ausführungsformen der vorliegenden
Erfindung nicht eingeschränkt.
-
Gemäß einer
Ausführungsform
können
die Vorrichtungen 118, die mit Abwärtsports 124 von Schalter 110a verbunden
sind, mit Vorrichtungen 118 kommunizieren, die an den Schalter 110c angeschlossen
sind, unabhängig
von Prozessen, die auf dem CPU-Komplex 102 laufen. Eine
Vorrichtung 118, die an einen Abwärtsport 124 von Schalter 110c angeschlossen
ist, kann zum Beispiel eine Datenmitteilung oder ein Datenpaket
an den Schalter 110c mit Zieldaten übertragen, die mit einer Vorrichtung 118 verknüpft sind,
welche an einen Abwärtsport 124 von Schalter 110a angeschlossen
ist. Schalter 110c kann dann die Datenmitteilung oder das
Datenpaket an den Schalter 110a über den (Ausgangs-)Aufwärtsport 122 weiterleiten,
das an die Vorrichtung 118 weitergeleitet werden soll,
welche mit den Zielinformationen verknüpft sind. Analog kann eine
Vorrichtung, die an einen Abwärtsport 124 von
Schalter 110a angeschlossen ist, eine Datenmitteilung oder
ein Datenpaket an den Schalter 110a mit Zieldaten übertragen,
die mit einer Vorrichtung 118 verknüpft sind, welche an einen Abwärtsport 124 von
Schalter 110c angeschlossen ist. Schalter 110a kann
dann die Datenmitteilung oder das Datenpaket an den Schalter 110c über den
Ausgangs-Abwärtsport 124 (von
Schalter 10a) an einen Eingangs-Aufwärtsport 122 (von Schalter 110c)
weiterleiten, das an die Vorrichtung 118 weitergeleitet
werden soll, welche mit den Zielinformationen verknüpft ist.
Dies sind jedoch nur Beispiele dafür, wie Vorrichtungen Datenmitteilungen oder
Datenpakete über
Schalter weiterleiten können, und
in dieser Hinsicht sind Ausführungsformen
der vorliegenden Erfindung nicht eingeschränkt.
-
Gemäß einer
Ausführungsform
kann der CPU-Komplex 102 eine Auflistungsprozedur ausführen, um
u.a. Ressourcen zur Kommunikation mit den Schaltern 110 und
Vorrichtungen 118, die durch den Aufwärtsport 122 des Schalters 110 an
Abwärtsports 124 eines
Schalters 110 angeschlossen sind, zuzuweisen. Die Auflistungsprozedur
kann auch Leitinformationen zum Weiterleiten von Datenmitteilungen oder
Datenpaketen vom Aufwärtsport 122 zu
den Abwärtsports 124 erstellen.
Schalter 10 kann dann die Logik zum Übertragen von Daten von einem Quell-Abwärtsport 124 zu
einem Ziel-Abwärtsport 124 umfassen,
die auf den Leitinformationen zum Weiterleiten von Datenmitteilungen
oder Datenpaketen von einem Aufwärtsport 122 zum
Ziel-Abwärtsport 124 beruhen.
Dies ist jedoch nur ein Beispiel dafür, wie ein Schalter eine Datenmitteilung
oder ein Datenpaket von einem Quell-Abwärtsport
zu einem Ziel-Abwärtsport
weiterleiten kann, und in dieser Hinsicht sind Ausführungsformen
der vorliegenden Erfindung nicht eingeschränkt.
-
3 zeigt
eine schematische Diagrammabbildung eines Mehrportschalters auf
eine Darstellung einer "virtuellen" PCI-Busstruktur
gemäß einer
Ausführungsform
der Verarbeitungsplattformen, die in 1 und 2 gezeigt
werden. Ein Schalter 210 kann einen Aufwärtsport 222 umfassen,
der mit einem Root Device 204 und mehreren Abwärtsports 224 verbunden
ist, die mit den jeweiligen Vorrichtungen 218 verbunden
sind. In einer Ausführungsform können die
Vorrichtungen 218 PCI-Geräte sein, die auf einen Steckplatz
eines PCI-Busses gelegt werden können,
wie in der PCI Local Bus-Spezifikation beschrieben. Alternativ können die
Vorrichtungen 218 andere Schnittstellen zur Kommunikation
mit den Abwärtsports 224 gemäß anderen
Protokollen umfassen, wie zum Beispiel den Infiniband-, Rapid I/O-
oder Hyperdata Transport-Protokollen. Dies sind jedoch nur Beispiele
für eine
Schnittstelle für
Vorrichtungen, die an einen Abwärtsport
eines Schalters angeschlossen werden können, und in dieser Hinsicht sind
Ausführungsformen
der vorliegenden Erfindung nicht eingeschränkt.
-
Gemäß einer
Ausführungsform
umfasst der Schalter 210 die Logik und Schaltungen zum
Weiterleiten von Datenmitteilungen oder Datenpaketen, die an einem
Quelleingangsport (z.B. dem Aufwärtsport 222 oder
einem Abwärtsport 224)
empfangen wurden, an einen anderen Zielausgangsport (z.B. den Aufwärtsport 222 oder
einen Abwärtsport 224).
Der Schalter 210 kann zum Beispiel eine Schaltstruktur zum
Speichern einer empfangenen Datenmitteilung oder eines Datenpakets
in einem Datenpuffer umfassen, Zieladressinformationen, die mit
der empfangenen Datenmitteilung verknüpft sind, mit dem Zielausgangsport
verknüpfen
und die Datenmitteilung oder das Datenpaket aus dem Datenpuffer
an den zugehörigen
Zielausgangsport weiterleiten. Der Schalter 210 kann die
Logik zum Verknüpfen
der Zieladressinformationen mit den Leitinformationen (z.B. Leitinformationen,
die in der Leitwegtabelle oder Nachschlagetabelle gespeichert sind)
umfassen, um den Zielausgangsport zu identifizieren. Dies ist jedoch
nur ein Beispiel für
die Logik in einem Schalter zum Weiterleiten einer Datenmitteilung
oder eines Datenpaketes von einem Eingangsport zu einem Ausgangsport, und
in dieser Hinsicht sind Ausführungsformen
der vorliegenden Erfindung nicht eingeschränkt.
-
Ein
Verarbeitungssystem (nicht dargestellt) kann Ressourcen konfigurieren,
die Prozesse, welche auf dem Verarbeitungssystem laufen, zur Kommunikation
mit den Vorrichtungen 218 durch Ausführen einer Auflistungsprozedur
ermöglichen.
Das Verarbeitungssystem kann zum Beispiel eine Auflistungsprozedur
ausführen,
um Ressourcen für
die Kommunikation mit dem Schalter 222 als PCI-Geräte gemäß der PCI
Local Bus-Spezifikation zu konfigurieren, wie in einer virtuellen
Abbildung 200 illustriert. Routinen in Betriebs systemen,
wie zum Beispiel Versionen von Windows, das von der Microsoft Corporation
verkauft wird, Linux, Solaris®, das von Sun Microsystems
verkauft wird, oder VxWorks® oder pSOS®, das
von WindRiver Systems Inc. verkauft wird, können zum Beispiel eine Auflistungsprozedur zum
Konfigurieren von Ressourcen im Verarbeitungssystem gemäß der virtuellen
Abbildung ausführen.
Dies sind jedoch nur Beispiele für
Routinen, die eine Auflistungsprozedur ausführen, und in dieser Hinsicht
sind Ausführungsformen
der vorliegenden Erfindung nicht eingeschränkt.
-
In
der illustrierten Ausführungsform
kann der Schalter 210 dem Verarbeitungssystem als eine
oder mehrere Vorrichtungen erscheinen, die an einen PCI-Bus an dem
Root Device 204 angeschlossen sind. Der Schalter 210 kann
die Logik für
die Reaktion auf Konfigurationsforderungen vom Typ 0 oder Typ 1
umfassen, die am Aufwärtsport 222 von
einer PCI-Auflistungsprozedur erhalten wurden. Im Verlauf einer
ersten Konfigurationsforderung vom Typ 0 kann Schalter 210 einen
Konfigurationskopf bereitstellen, wie in Kapitel 3 der PCI-to-PCI
Bridge Architecture-Spezifikation, Rev. 1.1, 18. Dezember 1998,
PCI Special Interest Group (nachfolgend "PCI-PCI-Brücken-Spezifikation" genannt) illustriert,
um eine "virtuelle" PCI-PCI-Brücke 220 zu
emulieren oder zu identifizieren. Die Auflistungsprozedur kann dann Ressourcen
im Verarbeitungssystem zur Kommunikation mit dem Aufwärtsport 222 als
virtuelle PCI-PCI-Brücke 220 zuweisen.
-
Nach
der anfänglichen
Konfigurationsforderung vom Typ 0 im Aufwärtsport 222 kann die
Auflistungsprozedur nachfolgende Konfigurationsforderungen vom Typ
1 (wie in Abschnitt 3.1.2.1.1 der PCI-PCI-Brücken-Spezifikation erläutert) im
Aufwärtsport 222 zur
Zuweisung von Ressourcen initiieren, was die Kommunikation mit jedem
der Abwärtsports 224 als
virtuelle PCI-PCI-Brücke 206 ermöglicht.
Im Verlauf von jeder der Konfigurationstransaktionen vom Typ 1 kann
die Logik in Schalter 210 am Aufwärtsport 222 einen
Konfigurationskopf bereitstellen, der einen entsprechenden Abwärtsport 224 als
emulierte oder virtuelle PCI-PCI-Brücke 206 identifiziert, die
an einen Sekundärbus
der virtuellen PCI-PCI-Brücke 220 angeschlossen
ist. Eine solche Logik an Schalter 210 kann eine Konfigurationstransaktionsumwandlung
von Typ 1 in Typ 0 emulieren, wie in Abschnitt 3.2 der PCI-PCI-Brücken-Spezifikation
illustriert.
-
Nach
jeder Konfigurationstransaktion vom Typ 1 zum Konfigurieren von
Ressourcen im Verarbeitungssystem zur Kommunikation mit einer entsprechenden
emulierten oder virtuellen PCI-PCI-Brücke 206 kann die Auflistungsprozedur
eine nachfolgende Typ 1-Konfiguration am Aufwärtsport 222 in Gang
setzen, die zur emulierten oder virtuellen PCI-PCI-Brücke 206 gelenkt
wird. Der Schalter 210 kann Logik zur Bereitstellung eines
Konfigurationskopfes umfassen, der eine entsprechende Vorrichtung 218 als
virtuelles PCI-Vorrichtung 208 identifiziert,
das an einen emulierten Sekundärbus
der emulierten oder virtuellen PCI-PCI-Brücke 206 angeschlossen
ist. Eine solche Logik an Schalter 210 kann eine Konfigurationstransaktionsweiterleitung von
Typ 1 zu Typ 1 emulieren, wie in Abschnitt 3.1.2.1.2 der PCI-PCI-Brücken-Spezifikation
illustriert.
-
Gemäß einer
Ausführungsform
kann ein Abwärtsport 224 über eine
serielle Verbindung (nicht dargestellt) an eine Vorrichtung 218 angeschlossen werden.
Als Reaktion auf eine Konfigurationsforderung vom Typ 1 an eine
entsprechende virtuelle PCI-PCI-Brücke 206 kann der Schalter 210 für eine Emulation
des Vorhandenseins eines PCI-Bussegmentes sorgen. Als Reaktion auf
die Anzeige von Schalter 210 kann die Auflistungsprozedur
eine Bussegmentnummer mit einer seriellen Verbindung verknüpfen und
der seriellen Verbindung als PCI-Bussegment mit einer einzelnen
Vorrichtung Ressourcen zuweisen. Dies ist jedoch nur ein Beispiel
dafür,
wie das Vorhandensein eines Bussegments in einer Auflistungsprozedur
emuliert werden kann, und in dieser Hinsicht sind Ausführungsformen
der vorliegenden Erfindung nicht eingeschränkt.
-
In
der illustrierten Ausführungsform
kann eine abwärtsgerichtete
Datenmitteilung oder Datenpaket, das am Aufwärtsport 222 vom Root
Device empfangen wurde, mit Zielinformationen, die eine Adresse
umfassen, verknüpft
werden. Der Schalter 210 kann Logik zum Bestimmen von Adressbereichen
zum Weiterleiten solcher abwärtsgerichteter Datenmitteilung
an eine der Vorrichtungen 218 umfassen, die mit einem Abwärtsport 224 verbunden sind.
Der Schalter 210 kann zum Beispiel Basis- und Grenzregister
für jeden
Adressbereich definieren, der mit jedem Abwärtsport verknüpft ist.
Eine Datenmitteilung, die von dem Root Device 204 empfangen wurde,
die eine Adresse innerhalb eines Adressbereichs hat, der von solchen
Basis- und Grenzregistern definiert wird, kann dann an den Abwärtsport 224,
der mit dem Adressbereich verknüpft
ist, weitergeleitet werden. Der Schalter 210 kann dann
abwärtsgerichtete
Mitteilungen von dem Root Device ignorieren, die eine Adresse hat,
welche nicht in einen Adressbereich fällt, der mit einem der Abwärtsports 224 verknüpft ist.
-
Gemäß einer
Ausführungsform
kann der Schalter 210 im Verlauf einer Auflistungsprozedur Basis-
und Grenzregister für
jeden Adressbereich definieren. 4 zeigt
ein schematisches Diagramm, das eine abwärts gerichtete Weiterleitung
von Adressbereichen über
eine Adressabbildung 250 illustriert, die durch einen Schalter
gemäß einer
Ausführungsform
des Mehrportschalters 210 illustriert, die in 3 gezeigt
wird. In der illustrierten Ausführungsform
definiert der Schalter Adressbereiche 254, 256 und 258 (z.B.
einschließlich
Basis- und Grenzregistern) zum Weiterleiten von abwärtsgerichteten
Mitteilungen an entsprechende Abwärtsports. Gemäß einer
Ausführungsform kann
die Auflistungsprozedur jeden Adressbereich von abwärtsgerichteten
Mitteilungen für
einen Abwärtsport
als Adressbereich zum Weiterleiten von Mitteilungen von einem Primärbus an
einen Sekundärbus
einer virtuellen PCI-PCI-Brücke 206,
die dem Abwärtsport
entspricht, modellieren. In ähnlicher
Weise kann die Auflistungsprozedur auch die Vereinigung der Adressbereiche
von abwärtsgerichteten
Mitteilungen für
alle Abwärtsports (z.B.
die Vereinigung der Adressbereiche 254, 256 und 258)
zu einem Adressbereich zum Weiterleiten von Mitteilungen von einem
Primärbus
an einen Sekundärbus
der virtuellen PCI-PCI-Brücke 220 modellieren.
-
Gemäß einer
Ausführungsform
kann der Multiportschalter, der in den 3 und 4 illustriert
ist, Logik zur inversen Decodierung der Adressbereiche 254, 256 und 258 (zum
Weiterleiten von abwärtsgerichteten
Mitteilungen vom Aufwärtsport 222 an
die Abwärtsports 224)
umfassen, um Adressbereiche zum Weiterleiten von Mitteilungen von
den Abwärtsports 224 an
den Aufwärtsport 222 bereitzustellen.
Dementsprechend kann Schalter 210 Datenmitteilungen oder
Datenpakete, die am Abwärtsport 224 empfangen
wurden, an den Aufwärtsport 222 weiterleiten,
wenn die empfangene Datenmitteilung oder das -paket mit einer Zieladresse
in Adressbereich 252 oder 260 verknüpft ist.
Das Verarbeitungssystem kann dann die inverse Decodierung zum Weiterleiten von
Datenpaketen oder Datenmitteilungen vom Sekundärbus zum Primärbus der
virtuellen PCI-PCI-Brücke 220 modellieren,
wie in Kapitel 4 der PCI-PCI-Brücken-Spezifikation illustriert.
-
Gemäß einer
Ausführungsform
kann der Schalter 210 auch Logik zum Weiterleiten einer
Datenmitteilung oder eines Datenpakets, das an einem ersten Abwärtsport 224 empfangen
wurde, an einen zweiten Ziel-Abwärtsport 224,
unabhängig
vom Verarbeitungssystem, umfassen. Eine solche Logik an Schalter 210 kann
Zielinformationen, die mit der erhaltenen Datenmitteilung oder dem
Datenpaket verknüpft
sind, zur inversen Decodierung eines Ziel-Abwärtsports 225 aus den
Adressbereichen 254, 256 oder 258 verwenden,
die zum Weiterleiten von Mitteilungen vom Aufwärtsport 222 definiert
wurden. Schalter 210 kann dann die erhaltene Datenmitteilung
oder das Datenpaket an den invers decodierten Abwärtsport 224 weiterleiten.
Dies ist jedoch nur ein Beispiel dafür, wie ein Schalter Datenpakete
oder -mitteilungen von einem ersten Abwärtsport zu einem zweiten Abwärtsport
weiterleiten kann, und in dieser Hinsicht sind Ausführungsformen
der vorliegenden Erfindung nicht eingeschränkt.
-
Gemäß einer
Ausführungsform
kann der Schalter 210 einen Speicher zur Bewahrung von
Leitinformationen in einer Leitwegtabelle umfassen, um Datenmitteilungen
oder Datenpakete an einen Ziel-Aufwärtsport 222 oder -Abwärtsport 224 weiterzuleiten.
Der Schalter 210 kann zum Beispiel eine Logik zum Aufbauen
einer Nachschlagetabelle umfassen, um die Adressbereiche 254, 256 und 258 mit entsprechenden
Abwärtsports 224 als
Reaktion auf die Auflistungsprozedur zu verknüpfen und die übrigen Adressbereiche 252 und 260 mit
dem Aufwärtsport 222 zu
verknüpfen.
Dies ist jedoch nur ein Beispiel dafür, wie ein Schalter Leitinformationen
zum Weiterleiten von Datenmitteilungen oder Datenpaketen an Zielports
bewahren kann, und in dieser Hinsicht sind Ausführungsformen der vorliegenden
Erfindung nicht eingeschränkt.
-
5 zeigt
ein Flussdiagramm, das eine Auflistungsprozedur gemäß einer
Ausführungsform des
Mehrportschalters illustriert, die in 3 und 4 gezeigt
wird. In der illustrierten Ausführungsform
kann ein Verarbeitungssystem eine Auflistungsprozedur zum Zuweisen
von Ressourcen in Gang setzen, um mit dem Schalter 210 als
ein oder mehrere PCI-Geräte
zu kommunizieren, die Konfigu rationstransaktionen vom Typ 0 und
Typ 1 verwenden, wie in Kapitel 3 der PCI-PCI-Brücken-Spezifikation illustriert.
-
Bei
Kasten 302 wird eine Konfigurationstransaktion vom Typ
0 an einem Aufwärtsport
eines Schalters initiiert, und der Aufwärtsport kann einen Konfigurationskopf
zurückgeben,
der eine virtuelle PCI-PCI-Brücke
identifiziert. Die Auflistungsprozedur kann dann nachfolgende Konfigurationstransaktionen
am Aufwärtsport
initiieren, um zusätzliche
Vorrichtungen aufzulisten, die sich "hinter" dem Aufwärtsport (die z.B. zu einer
Vorrichtung geleitet werden, welche an den Sekundärbus der
virtuellen PCI-PCI-Brücke angeschlossen
ist) in den Kästen 306 bis 310 befinden.
Für jeden
Abwärtsport
des Schalters kann die Auflistungsprozedur in Kasten 306 eine
Konfigurationstransaktion vom Typ 1 (die eine Umwandlung von Typ
1 in Typ 0 einschließt)
am Aufwärtsport
initiieren, um den Abwärtsport
als virtuelle PCI-PCI-Brücke
an einem Sekundärbus
der PCI-PCI-Brücke aufzulisten,
die dem Aufwärtsport entspricht,
wie in Abschnitt 3.1.2.1.1 der PCI-PCI-Brücken-Spezifikation illustriert.
-
Der
Aufwärtsport
kann einen Konfigurationskopf, der einen zugehörigen Abwärtsport als PCI-PCI-Brücke identifiziert,
als Reaktion auf die Konfigurationstransaktion vom Typ 1 bereitstellen, die
in Kasten 306 initiiert wurde. Dementsprechend kann die
Auflistungsprozedur eine nachfolgende Konfigurationstransaktion
vom Typ 1 in Kasten 308, die von einer Vorrichtung am Sekundärbus der
virtuellen PCI-PCI-Brücke
initiieren, die dem Abwärtsport entspricht
(einschließlich
einer Weiterleitung von Typ 1 zu Typ 1), wie in Abschnitt 3.1.2.1.2
der PCI-PCI-Brücken-Spezifikation
illustriert. Als Reaktion auf die Konfigurationstransaktion vom
Typ 1, die in Kasten 310 initiiert wurde, kann der Aufwärtsport
einen Konfigurationskopf, der die Vorrichtung, die an den Abwärtsport
angeschlossen ist, als PCI-Gerät identifiziert,
bereitstellen.
-
Gemäß einer
Ausführungsform
umfasst der Schalter eine Logik zum Bereitstellen eines Konfigurationskopfes
am Aufwärtsport
als Reaktion auf die Konfigurationstransaktion vom Typ 1, die in
Kasten 308 initiiert wurde, welche auf Informationen beruht, die
die Vorrichtung identifizieren, die an den Abwärtsport angeschlossen ist.
Die Vorrichtung am Abwärtsport
kann zum Beispiel einen Konfigurationskopf an den Schalter übertragen,
der die Vorrichtung als PCI-Vorrichtung
identifiziert. Der Schalter kann dann als Reaktion auf die Konfigurationstransaktion
vom Typ 1 den Konfigurationskopf an den Aufwärtsport übertragen. Alternativ kann
der Schalter eine Logik zum Erzeugen einer Konfiguration umfassen,
die auf Informationen beruht, welche eine oder mehrere Funktionen
der Vorrichtung, die am Abwärtsport empfangen
wurden, identifizieren. Dies ist jedoch nur ein Beispiel dafür, wie der
Schalter einen PCI-Konfigurationskopf
erzeugen kann, um eine Vorrichtung oder Funktion einer Vorrichtung,
die einen Abwärtsport
angeschlossen sind, zu charakterisieren, und in dieser Hinsicht
sind Ausführungsformen
der vorliegenden Erfindung nicht eingeschränkt.
-
In
Kasten 310 kann der Schalter einen Bereich von Adressen
zum Weiterleiten von Mitteilungen vom Aufwärtsport zur Vorrichtung definieren. Solch
ein Adressbereich kann durch Basis- und Grenzregister, die am Aufwärtsport
definiert sind, dargestellt werden. Nach der Auflistungsprozedur
in den Kästen 302 bis 312 kann
der Schalter die inverse Decodierung verwenden, um Mitteilungen
von Abwärtsports
an den Aufwärtsport
weiterzuleiten oder von einem ersten Abwärtsdatenport zu einem zweiten
Abwärtsdatenport,
wie oben unter Bezug auf 4 diskutiert. Der Schalter kann
zum Beispiel eine Logik zum Extrahieren von Leitinformationen aus
der inversen Decodierung der Adressbereiche umfassen, die mit den
Abwärtsdatenportsverknüpft sind, um
eine Leitwegtabelle zu erzeugen. Die Leitwegtabelle kann dann zum
Weiterleiten von Datenmitteilungen von einem Quell-Abwärtsport
zu einem Aufwärtsport
oder einem Ziel-Abwärtsport
verwendet werden.
-
Obwohl
illustriert und beschrieben wurde, was gegenwärtig als beispielartige Ausführungsformen
der vorliegenden Erfindung angesehen werden muss, versteht es sich
bei den Fachleuten auf diesem Gebiet, dass verschiedene andere Modifikationen
vorgenommen werden können
und Äquivalente ersetzt
werden können,
ohne vom wahren Geltungsbereich der Erfindung abzuweichen. Außerdem können viele
Modifizierungen zur Anpassung einer besonderen Situation an die
Lehren der vorliegenden Erfindung vorgenommen werden, ohne vom zentralen
erfindungsgemäßen Konzept,
das hierin beschrieben wird, abzuweichen. Es ist daher vorgesehen,
dass die vorliegende Erfindung nicht auf die speziellen Ausführungsformen,
die offenbart werden, beschränkt
ist, sondern dass die Erfindung alle Ausführungsformen umfasst, die in
den Geltungsbereich der angehängten
Ansprüche
fallen.