DE60220309T2 - Software-transparentes system und verfahren zum vermitteln von peer- zu- peer nachrichten - Google Patents

Software-transparentes system und verfahren zum vermitteln von peer- zu- peer nachrichten Download PDF

Info

Publication number
DE60220309T2
DE60220309T2 DE60220309T DE60220309T DE60220309T2 DE 60220309 T2 DE60220309 T2 DE 60220309T2 DE 60220309 T DE60220309 T DE 60220309T DE 60220309 T DE60220309 T DE 60220309T DE 60220309 T2 DE60220309 T2 DE 60220309T2
Authority
DE
Germany
Prior art keywords
switch
port
data
pci
bridge
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60220309T
Other languages
English (en)
Other versions
DE60220309D1 (de
Inventor
Gary Acton SOLOMON
Joseph Chandler SCHAEFER
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Application granted granted Critical
Publication of DE60220309D1 publication Critical patent/DE60220309D1/de
Publication of DE60220309T2 publication Critical patent/DE60220309T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Small-Scale Networks (AREA)

Description

  • 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.

Claims (11)

  1. Schalter (210), umfassend: einen vorgeschalteten Port (222); und mehrere nachgeschaltete Ports (224), wobei jeder nachgeschaltete Port mit einer Vorrichtung (218) verbunden werden kann; gekennzeichnet dadurch, dass der vorgeschaltete Port mit einem Verarbeitungssystem durch eine Grundvorrichtung (204) verbunden werden kann, und durch eine Logik zum Emulieren des Vorhandenseins einer Brücke (220) als Reaktion auf eine Konfigurationsanforderung, die vom Verarbeitungssystem am vorgeschalteten Port empfangen ist, und zum Emulieren des Vorhandenseins einer weiteren Brücke (206) als Reaktion auf das Vorhandensein einer seriellen Verbindungsleitung, die mit einem nachgeschalteten Port der mehreren nachgeschalteten Ports verbunden ist.
  2. Schalter (210) nach Anspruch 1, wobei der Schalter ferner eine Logik zum Emulieren des Vorhandenseins eines sekundären Datenbusses, der mit dem emulierten Vorhandensein der Brücke (220) verbunden ist, als Reaktion auf eine Konfigurationsanforderung umfasst, die am vorgeschalteten Port (222) empfangen ist.
  3. Schalter (210) nach Anspruch 1, wobei der Schalter ferner für jeden nachgeschalteten Port (224) eine Logik zum Emulieren des Vorhandenseins der anderen Brücke (206) als Reaktion auf eine Konfigurationsanforde rung verbunden ist, die am vorgeschalteten Port (222) empfangen ist.
  4. Schalter (210) nach Anspruch 3, wobei der Schalter ferner eine Logik zum Emulieren des Vorhandenseins eines sekundären Bussegmentes, das mit dem emulierten Vorhandensein der anderen Brücke (206) verbunden ist, als Reaktion auf das Vorhandensein der seriellen Verbindungsleitung umfasst, die mit dem nachgeschalteten Port der mehreren nachgeschalteten Ports (224) verbunden ist.
  5. Schalter (210) nach Anspruch 4, wobei der Schalter ferner eine Logik zum Emulieren des Vorhandenseins einer Vorrichtung (208), die mit dem emulierten Vorhandensein des sekundären Bussegmentes verbunden ist, als Reaktion auf das Vorhandensein der Vorrichtung (218) umfasst, welche mit dem nachgeschalteten Port der mehreren nachgeschalteten Ports (224) über die serielle Verbindungsleitung verbunden ist.
  6. System, umfassend: ein Verarbeitungssystem; eine Grundvorrichtung (204), die mit dem Verarbeitungssystem verbunden ist; und einen Schalter (210) gemäß einem der Ansprüche 1 bis 5, wobei: der vorgeschaltete Port (222) mit der Grundvorrichtung zum Kommunizieren mit dem Verarbeitungssystem verbunden ist.
  7. Verfahren, umfassend: das Empfangen einer Konfigurationsforderung an einem vorgeschalteten Port (222) eines Schalters (210); gekennzeichnet dadurch, dass der vorgeschaltete Port über eine Grundvorrichtung mit einem Verarbeitungssystem verbunden ist; und durch Emulieren des Vorhandenseins einer Brücke (220) als Reaktion auf die Konfigurationsforderung und Emulieren des Vorhandenseins einer weiteren Brücke (206) als Reaktion auf das Vorhandensein einer seriellen Verbindungsleitung, die mit einer von mehreren nachgeschalteten Ports (224) verbunden ist.
  8. Verfahren nach Anspruch 7, wobei das Verfahren ferner das Emulieren des Vorhandenseins der anderen Brücke (206) als Reaktion auf eine Konfigurationsforderung umfasst, die am vorgeschalteten Port (222) für jeden der mehreren nachgeschalteten Ports (224) empfangen ist.
  9. Verfahren nach Anspruch 8, wobei das Verfahren ferner das Emulieren des Vorhandenseins eines sekundären Datenbussegmentes umfasst, das mit dem emulierten Vorhandensein der anderen Brücke (206) als Reaktion auf eine Konfigurationsforderung verbunden ist, die am vorgeschalteten Port (222) empfangen ist.
  10. Verfahren nach Anspruch 9, wobei das Verfahren ferner das Emulieren des Vorhandenseins eines sekundären Bussegmentes, das mit dem emulierten Vorhandensein der anderen Brücke (206) verbunden ist, als Reaktion auf das Vorhandensein einer seriellen Verbindungsleitung umfasst, die mit einem der mehreren nachgeschalteten Ports (224) verbunden ist.
  11. Verfahren nach Anspruch 10, wobei das Verfahren ferner das Emulieren des Vorhandenseins einer Vorrichtung (208), die mit dem emulierten Vorhandensein des sekundären Bussegmentes verbunden ist, als Reaktion auf das Vorhandensein einer Vorrichtung (218) umfasst, die mit einem der mehreren nachgeschalteten Ports (224) durch eine serielle Verbindungsleitung verbunden ist.
DE60220309T 2001-11-28 2002-11-14 Software-transparentes system und verfahren zum vermitteln von peer- zu- peer nachrichten Expired - Lifetime DE60220309T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US997441 1997-12-23
US09/997,441 US6606679B2 (en) 2001-08-20 2001-11-28 Software transparent system and method for peer-to-peer message routing
PCT/US2002/036812 WO2003046740A2 (en) 2001-11-28 2002-11-14 Software transparent system and method for peer-to-peer message routing

Publications (2)

Publication Number Publication Date
DE60220309D1 DE60220309D1 (de) 2007-07-05
DE60220309T2 true DE60220309T2 (de) 2008-01-10

Family

ID=25544037

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60220309T Expired - Lifetime DE60220309T2 (de) 2001-11-28 2002-11-14 Software-transparentes system und verfahren zum vermitteln von peer- zu- peer nachrichten

Country Status (9)

Country Link
US (1) US6606679B2 (de)
EP (2) EP1808773A1 (de)
CN (1) CN100354847C (de)
AT (1) ATE363102T1 (de)
AU (1) AU2002346416A1 (de)
CA (1) CA2461156C (de)
DE (1) DE60220309T2 (de)
TW (1) TWI247999B (de)
WO (1) WO2003046740A2 (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6748478B1 (en) * 2000-12-27 2004-06-08 Intel Corporation System function configurable computing platform
US6996658B2 (en) 2001-10-17 2006-02-07 Stargen Technologies, Inc. Multi-port system and method for routing a data element within an interconnection fabric
US6748479B2 (en) * 2001-11-20 2004-06-08 Broadcom Corporation System having interfaces and switch that separates coherent and packet traffic
US6915365B2 (en) * 2002-03-22 2005-07-05 Intel Corporation Mechanism for PCI I/O-initiated configuration cycles
US6826631B2 (en) * 2002-07-31 2004-11-30 Intel Corporation System and method for indicating the status of a communications link and traffic activity on non-protocol aware modules
US20040059806A1 (en) * 2002-07-31 2004-03-25 Webb Randall K. System and method for indicating the status of a communications link/traffic activity on non-protocol aware modules
US7899030B2 (en) * 2002-09-11 2011-03-01 Jinsalas Solutions, Llc Advanced switching architecture
US20040070759A1 (en) * 2002-10-14 2004-04-15 Anderson Duwayne R. Vector representation of polarization dependent loss
US7096305B2 (en) * 2003-05-15 2006-08-22 Broadcom Corporation Peripheral bus switch having virtual peripheral bus and configurable host bridge
US6969270B2 (en) * 2003-06-26 2005-11-29 Intel Corporation Integrated socket and cable connector
WO2009074406A1 (en) * 2007-12-12 2009-06-18 Nokia Corporation Address assignment protocol
JP5180729B2 (ja) * 2008-08-05 2013-04-10 株式会社日立製作所 計算機システム及びバス割当方法
CN102111293B (zh) * 2010-12-23 2013-10-02 华为技术有限公司 配置事务的处理方法和装置
US8943257B2 (en) * 2011-09-30 2015-01-27 Intel Corporation Protocol neutral fabric
US20170109248A1 (en) * 2015-10-20 2017-04-20 Quanta Computer Inc. Sharing bus port by multiple bus hosts

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5687388A (en) * 1992-12-08 1997-11-11 Compaq Computer Corporation Scalable tree structured high speed input/output subsystem architecture
US5386417A (en) * 1993-03-18 1995-01-31 At&T Corp. Method and apparatus for establishing connections in a communications access network
US5802318A (en) * 1995-07-25 1998-09-01 Compaq Computer Corporation Universal serial bus keyboard system
CN1194407A (zh) * 1996-12-23 1998-09-30 康帕克电脑公司 透明的pci至pci桥
US6098110A (en) * 1996-12-30 2000-08-01 Compaq Computer Corporation Network switch with a multiple bus structure and a bridge interface for transferring network data between different buses
US5991824A (en) 1997-02-06 1999-11-23 Silicon Graphics, Inc. Method and system for simultaneous high bandwidth input output
US6233641B1 (en) 1998-06-08 2001-05-15 International Business Machines Corporation Apparatus and method of PCI routing in a bridge configuration
US6256314B1 (en) * 1998-08-11 2001-07-03 Avaya Technology Corp. Apparatus and methods for routerless layer 3 forwarding in a network
US6289015B1 (en) * 1998-09-17 2001-09-11 Tut Systems, Inc. Method and apparatus for the secure switching of a packet within a communications network

Also Published As

Publication number Publication date
TW200302970A (en) 2003-08-16
TWI247999B (en) 2006-01-21
AU2002346416A1 (en) 2003-06-10
CA2461156A1 (en) 2003-06-05
EP1449101A2 (de) 2004-08-25
WO2003046740A3 (en) 2003-09-12
WO2003046740A2 (en) 2003-06-05
ATE363102T1 (de) 2007-06-15
CA2461156C (en) 2006-01-10
US6606679B2 (en) 2003-08-12
EP1808773A1 (de) 2007-07-18
CN1592896A (zh) 2005-03-09
EP1449101B1 (de) 2007-05-23
US20030037199A1 (en) 2003-02-20
CN100354847C (zh) 2007-12-12
DE60220309D1 (de) 2007-07-05

Similar Documents

Publication Publication Date Title
DE60220309T2 (de) Software-transparentes system und verfahren zum vermitteln von peer- zu- peer nachrichten
DE60009185T2 (de) "Universal serial bus" Interpreter
DE60319543T2 (de) Speicher und weiterleitungsschaltereinrichtung, system und verfahren
DE112008002416T5 (de) Gemeinsame Nutzung von Legacy-Geräten in einer Multithost-Umgebung
DE69834401T2 (de) Businterfacesystem und verfahren
DE602005005151T2 (de) USB Endgeräte in Verbindung mit einem Anwendungsserver
DE69737919T2 (de) Verfahren zur Zuordnung von Systembetriebsmitteln in einer hierarchischen Busstruktur
DE69930490T2 (de) Kommunikationsverfahren, Sendungsverfahren und Empfangsverfahren und Geräte zu ihrer Durchführung
DE19680668C2 (de) Verfahren zum Überbrücken zweier Busse, transparente Brücke zum Koppeln zwischen zwei Bussen und Anordnung mit einem Computersystem
DE112008001957B4 (de) Systeme und Verfahren zum Verbessern der Leistungsfähigkeit eines routfähigen Netzwerks
DE112008001168T5 (de) System und Verfahren zum gemeinschaftlichen Verwenden eines Druckers
DE3725343A1 (de) Vielzweck-kanalsteuersystem
DE60210312T2 (de) I/o-vermittlungsknoten für verbindungen in einem multiprozessorrechnersystem
DE112007001135T5 (de) Gemeinschaftliche Nutzung von Daten durch Partitionen in einem partitionierbaren System
DE69726302T2 (de) Busschnittstellensteuerungsschaltung
DE10234933A1 (de) Pufferung von Non-Posted-Lesebefehlen und Antworten
DE10234992A1 (de) Retry-Mechanismus für blockierende Schnittstellen
DE112006000634T5 (de) Verfahren und Vorrichtung zur unabhängigen und gleichzeitigen Datenübertragung auf Host-Controller
DE112021003094T5 (de) System und verfahren zum planen von gemeinsam nutzbaren pcie-endpunktvorrichtungen
DE10030148A1 (de) Brückenvorrichtung
DE19882975B4 (de) Zugreifen auf eine Nachrichtenaustauscheinheit von einem sekundären Bus aus
DE10255937A1 (de) Ordnungsregelgesteuerte Befehlsspeicherung
DE10214067B4 (de) Integrierter Schaltkreischip mit Hochgeschwindigkeitsdatenschnittstelle sowie zugehöriges Southbridgebauelement und Verfahren
DE602004008416T2 (de) Verbesserte Kommunikationsschnittstelle für Fahrzeuge
DE102022205478A1 (de) Busübergreifende speicherabbildung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition