DE60123134T2 - Verfahren und vorrichtung für einen rekonfigurierbaren prozessor - Google Patents

Verfahren und vorrichtung für einen rekonfigurierbaren prozessor Download PDF

Info

Publication number
DE60123134T2
DE60123134T2 DE60123134T DE60123134T DE60123134T2 DE 60123134 T2 DE60123134 T2 DE 60123134T2 DE 60123134 T DE60123134 T DE 60123134T DE 60123134 T DE60123134 T DE 60123134T DE 60123134 T2 DE60123134 T2 DE 60123134T2
Authority
DE
Germany
Prior art keywords
processor
bit
component
point
communication path
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
DE60123134T
Other languages
English (en)
Other versions
DE60123134D1 (de
Inventor
Chakravarthy Kosaraji
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 DE60123134D1 publication Critical patent/DE60123134D1/de
Publication of DE60123134T2 publication Critical patent/DE60123134T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
    • 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/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • G06F13/4072Drivers or receivers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)
  • Exchange Systems With Centralized Control (AREA)
  • Hardware Redundancy (AREA)
  • Logic Circuits (AREA)

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft allgemein eine Veränderung der Bandbreite zwischen einer Vorrichtung bzw. einem Baustein und einem Prozessor. Im Besonderen betrifft die vorliegende Erfindung eine Vorrichtung und ein Verfahren, welche die Bandbreite zwischen einem Baustein und einem Prozessor verändern können, ohne das physikalische Komponentenlayout in dem Prozessor zu verändern.
  • STAND DER TECHNIK
  • Das parallele Verbinden bzw. Zusammenführen mehrerer Prozessoren erhöht die Verarbeitungskapazität. Für gewöhnlich kann jede Anzahl von zwei bis acht Prozessoren parallel miteinander verbunden werden. Im Allgemeinen werden mehrere parallele Prozessoren auf einem gemeinsam genutzten Bus zusammengeführt bzw. miteinander verbunden. Die Abbildung aus 1 veranschaulicht eine Architektur mit vier Prozessoren (4P), die in Verbindung mit einem gemeinsam genutzten Bus verwendet wird. Vier Prozessoren, Prozessor 1, Prozessor 2, Prozessor 3 und Prozessor 4 sind mit einem gemeinsam genutzten Bus verbunden, der wiederum mit einem Northbridge-Chipsatz verbunden ist. Der Northbridge-Chipsatz ist ferner mit einem Southbridge-Chipsatz und einem externen Speicher verbunden. Zum Beispiel kann ein PentiumTM Prozessor die in der Abbildung aus 1 veranschaulichte gemeinsam genutzte Busarchitektur einsetzen. Allerdings stellt eine Punkt-zu-Punkt-Architektur für gewöhnlich eine höhere Bandbreite bereit als eine gemeinsam genutzte Busarchitektur bereit.
  • Bei einer gemeinsam genutzten Busarchitektur nutzen mehrere Vorrichtungen bzw. Bausteine gemeinsam alle den gleichen Bus und müssen einer Reihenfolge bzw. Anordnung und einem Protokoll zur Nutzung des Busses folgen. Im Gegensatz dazu stellt eine Punkt-zu-Punkt-Busarchitektur eine unterbrechungsfreie Verbindung zwischen zwei separaten Bausteinen bereit. Im Allgemeinen erzeugt der Punkt-zu-Punkt-Bus somit eine höhere Bandbreite zwischen zwei separaten Bausteinen bzw. Vorrichtungen. Eine höhere Bandbreite kann den vorteilhaften Effekt einer verbesserten Leistung eines einzelnen Prozessors oder einer Gruppe von Prozessoren aufweisen. Wenn zum Beispiel eine 48-Bit-Verbindung zwischen zwei Bausteinen bzw. Vorrichtungen existiert, so erfolgen Transaktionen zwischen zwei Bausteinen dreimal schneller als wenn nur eine 16-Bit-Verbindung zwischen zwei Bausteinen existiert. Eine Punkt-zu-Punkt-Busarchitektur kann jedoch einen Nachteil aufweisen, da die Architektur eine unterbrechungsfreie Verbindung zwischen zwei separaten Bausteinen bereitstellt. Wenn somit zu einem beliebigen Zeitpunkt leichte Informationsübertragungen zwischen den beiden Bausteinen bzw. Vorrichtungen auftreten, so wird die überschüssige Bandbreitenkapazität im Wesentlichen verschwendet.
  • Wenn ein Kunde zum Beispiel sein Computersystem dazu verwendet, sowohl eine Workstation-Anwendung als auch eine Server-Anwendung auszuführen, so kann der Kunde unter Umständen nicht die optimale Leistung der Hardware in seinem Computersystem erreichen. Bei einer Server-Anwendung erfolgt ein starker Austausch von Informationen zwischen Prozessoren. Der Hersteller erzeugt somit eine Verbindung mit hoher Bandbreite zwischen allen Prozessoren in dem System. Wenn ein Kunde seinen Computer zum Beispiel für eine Anwendung einsetzen möchte, die einen starken Informationsaustausch zwischen Prozessoren und einem Chipsatz aufweist, wie zum Beispiel eine Workstation-Anwendung, so erzeugt der Hersteller eine Verbindung mit hoher Bandbreite zwischen jedem Prozessor und dem Chip in dem System. Wenn der Kunde bzw. Anwender jedoch ein Computersystem aufweist, das eine Verbindung mit hoher Bandbreite zwischen dem bzw. den Prozessor(en) und dem Chipsatz aufweist, sich jedoch dafür entscheidet, gerade eine Serveranwendung auf diesem System auszuführen, so kann der Kunde bezüglich der Serveranwendung eine schlechte Leistung erfahren, wobei die überschüssige Bandbreite zwischen dem Chipsatz und dem bzw. den Prozessor(en) verschwendet wird.
  • Das U.S. Patent US-A-6.151.689 offenbart ein Mehrprozessorensystem, so dass eine CPU über ein Routingelement mit jeder E/A-Vorrichtung oder mit jeder CPU des Systems kommunizieren kann. Zwischen beliebigen zwei Endeinheiten wie etwa einer CPU und einer anderen CPU oder einer E/A-Paketschnittstelle sind alternative Zugangspfade vorgesehen.
  • Vorgesehen ist gemäß einem ersten Aspekt der vorliegenden Erfindung eine Vorrichtung gemäß dem gegenständlichen Anspruch 1.
  • Vorgesehen ist gemäß einem zweiten Aspekt der vorliegenden Erfindung ein Verfahren gemäß dem gegenständlichen Anspruch 4.
  • Vorgesehen ist gemäß einem dritten Aspekt der vorliegenden Erfindung ein System gemäß dem gegenständlichen Anspruch 7.
  • Weitere Ausführungsbeispiele der Erfindung sind in den Unteransprüchen ausgeführt.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • In den Zeichnungen zu der vorliegenden Erfindung zeigen:
  • 1 eine Architektur mit vier Prozessoren (4P), die in Verbindung mit einem gemeinsam genutzten Bus eingesetzt wird;
  • 2 ein Ausführungsbeispiel eines Prozessors mit einem Routing-Agenten, einer Protokollschicht, einer Pufferschicht und einer Informationsübertragungsschicht;
  • 3 eine Punkt-zu-Punkt-Architektur mit zwei Prozessoren mit einer 16-Bit-Punkt-zu-Punkt-Verbindung zwischen 1) einer Ein-Ausgabe-Komponente und dem ersten Prozessor sowie 2) der Ein-Ausgabe-Komponente und dem zweiten Prozessor;
  • 4 eine Punkt-zu-Punkt-Architektur mit zwei Prozessoren mit einer 32-Bit-Punkt-zu-Punkt-Verbindung zwischen 1) einer Ein-Ausgabe-Komponente und dem ersten Prozessor sowie 2) der Ein-Ausgabe-Komponente und dem zweiten Prozessor;
  • 5 eine Punkt-zu-Punkt-Architektur mit vier Prozessoren mit einer 16-Bit-Punkt-zu-Punkt-Verbindung zwischen einer Ein-Ausgabe-Komponente und jedem der vier Prozessoren;
  • 6 ein Ausführungsbeispiel des Routing-Agenten, der die eingehenden Kommunikationspfade in einem Ausführungsbeispiel der Informationsübertragungsschicht steuert;
  • 7 ein Ausführungsbeispiel des Routing-Agenten, der die eingehenden Kommunikationspfade in einem Ausführungsbeispiel der Pufferschicht steuert;
  • 8 ein Ausführungsbeispiel des Routing-Agenten, der die abgehenden Kommunikationspfade in einem Ausführungsbeispiel der Pufferschicht steuert; und
  • 9 ein Ausführungsbeispiel des Routing-Agenten, der die Kommunikationspfade in einem Ausführungsbeispiel der abgehenden Informationsübertragungsschicht steuert;
  • In Bezug auf die vorliegende Erfindung sind verschiedene Modifikationen und alternative Ausführungen möglich, wobei in den Zeichnungen spezielle Ausführungsbeispiele als Beispiele dargestellt und nachstehend näher beschrieben sind. Hiermit wird festgestellt, dass die vorliegende Erfindung nicht auf die speziellen offenbarten Ausführungen beschränkt ist, vielmehr umfasst die Erfindung alle Modifikationen, Äquivalente und Alternativen, die dem Gedanken und Umfang der Erfindung entsprechen.
  • GENAUE BESCHREIBUNG DER ERFINDUNG
  • Der Fachmann auf dem Gebiet erkennt, dass verschiedene Abänderungen in Bezug auf die beschriebenen Ausführungsbeispiele der Erfindung möglich sind, und dass zahlreiche Modifikationen und Verbesserungen gemäß dem Umfang und dem Gedanken der Erfindung vorgenommen werden können. Zum Beispiel werden in der vorliegenden Beschreibung zur Veranschaulichung der Ausführungsbeispiele der Erfindung in verschiedenen beschriebenen Ausführungsbeispielen bestimmte Taktgeschwindigkeiten, Datenbits in bestimmter Anzahl, Schichten in bestimmter Anzahl, Komponenten in bestimmter Anzahl, etc. verwendet. Der Fachmann auf dem Gebiet erkennt jedoch, dass die Ausführungsbeispiele der vorliegenden Erfindung speziell auch verschiedene Abweichungen von der jeweils speziell angegebenen Anzahl aufweisen, die hierin zu Veranschaulichungszecken beschrieben ist.
  • Ein Routing-Agent kann mit einem Prozessor in einer Punkt-zu-Punkt-Architektur eingesetzt werden, um es einem Anwender bzw. Kunden zu ermöglichen, die Bandbreite oder die Anzahl der Busleitungen und der Taktgeschwindigkeit bzw. der Taktrate zwischen zwei Bausteinen bzw. Vorrichtungen zu verändern. Eine Punkt-zu-Punkt-Busarchitektur stellt eine unterbrechungsfreie bzw. ununterbrochene Verbindung zwischen zwei separaten Bausteinen bereit. Im Allgemeinen überträgt ein Protokoll auf Paketbasis Informationen in einer Punkt-zu-Punkt-Busarchitektur. Der Routing-Agent kann die effektive Bandbreite zwischen einem Prozessor und einem Baustein bzw. einer Vorrichtung außerhalb des Prozessors verändern, indem einer oder mehrere der Kommunikationspfade in dem Prozessor verändert bzw. angepasst werden können, ohne dabei das physikalische Komponentenlayout in dem Prozessor zu verändern. Die Bandbreite entspricht der Informationsmenge insgesamt, die innerhalb eines bestimmten Zeitraums zwischen zwei Vorrichtungen bzw. Bausteinen übertragen werden kann. In einem Ausführungsbeispiel kann der Hersteller oder der Anwender bzw. Kunde die Anzahl der zwischen zwei Vorrichtungen verbundenen Anschlüsse bzw. Ports verändern, um die Bandbreite zwischen den Vorrichtungen zu erhöhen. In einem Ausführungsbeispiel können der Hersteller oder der Kunde zusätzliche Prozessoren hinzufügen, die mit einer Vorrichtung verbunden werden, in dem die Anzahl der Ports bzw. Anschlüsse verändert wird, die zwischen einem ersten Prozessor und der Vorrichtung außerhalb des ersten Prozessors verbunden bzw. angeschlossen sind.
  • Die Abbildung aus 2 veranschaulicht ein Ausführungsbeispiel eines Prozessors 200 mit einem Routing-Agenten 202, einer Protokollschicht 204, einer Pufferschicht 206 und einer Informationsübertragungsschicht 208. In einem Ausführungsbeispiel weist der Prozessor 200 einen Routing-Agenten 202 und drei Schichten auf, die Protokollschicht 204, eine Pufferschicht 206, wie etwa eine oder mehrere Verknüpfungsschichten 210, und eine Informationsübertragungsschicht 208, wie etwa eine oder mehrere physikalische Schichten 212. Der Routing-Agent 202 verändert die Kommunikationspfade in der physikalischen Schicht 212 und der Verknüpfungsschicht 210, ohne das physikalische Komponentenlayout in dem Prozessor 200 zu verändern. Die physikalische Schicht 212 führt die eigentliche physikalische Informationsübertragung zu und von anderen Vorrichtungen bzw. Bausteinen aus. Die Verknüpfungsschicht 210 führt Verbindungsfunktionen zwischen den höheren Funktionen der Protokollschicht 204 und der physikalischen Schicht 212 aus. Die Protokollschicht 204 verarbeitet Anforderungen, Antworten und Datenübertragungen.
  • In einem Ausführungsbeispiel kann der Routing-Agent 202 in dem Prozessor 200 oder außerhalb des Prozessors angeordnet sein. In einem Ausführungsbeispiel steuert ein einziger Routing-Agent 202 die Kommunikationspfade in allen Schichten des Prozessors 200. In einem alternativen Ausführungsbeispiel gibt es mehrere Routing-Agenten 202 für die Steuerung der Kommunikationspfade. Der Routing-Agent 202 kann eine Kombination aus Hardware und Software darstellen. Der Routing-Agent 202 kann verschiedene Funktionen aufeisen, wie zum Beispiel das Senden eines Freigabe/Sperrsignals an eine oder mehrere Kommunikationspfad-Wechselbausteine, und das Senden eines Signals zur Veränderung verschiedener Taktgeschwindigkeiten. Die Pufferschicht 206 kann einen oder mehrere eingehende Kommunikationspfade aufweisen. Die Pufferschicht 206 kann einen oder mehrere abgehende Kommunikationspfade aufweisen. Die Informationsübertragungsschicht 208 kann einen oder mehrere eingehende Kommunikationspfade aufweisen. Die Informationsübertragungsschicht 208 kann einen oder mehrere abgehende Kommunikationspfade aufweisen.
  • Die Abbildung aus 3 veranschaulicht eine Punkt-zu-Punkt-Architektur 300 mit zwei Prozessoren mit einer 16-Bit-Punkt-zu-Punkt-Verbindung zwischen: 1) einer Ein-Ausgabe-Komponente 302 und einem ersten Prozessor 304 sowie 2) der Ein-Ausgabe-Komponente 302 und dem zweiten Prozessor 306. Ein erster Prozessor 304 mit vier 16-Bit-Ports 308, 310, 312, 314, die mit dem Prozessor verbunden sind, können drei 16-Bit-Ports 308, 310, 312 aufweisen, die mit einem zweiten Prozessor 306 verbunden sind, und mit einem 16-Bit-Port, der mit der Ein-Ausgabe-Komponente 302 verbunden ist 314. In einem Ausführungsbeispiel kann es sich bei der Ein-Ausgabe-Komponente um eine Brücke, einen Speicher, einen Chipsatz oder eine ähnliche Komponente handeln Somit besteht eine 48-Bit-Bandbreitenverbindung zwischen dem ersten Prozessor 304 und dem zweiten Prozessor 306. Ferner können der erste Prozessor 304 und der zweite Prozessor 306 eine 16-Bit-Bandbreitenverbindung mit der Ein-Ausgabe-Komponente 302 aufweisen. Der Routing-Agent kann die Kommunikationspfade in dem ersten Prozessor 304 verändern, so dass der Prozessor jetzt zwei 16-Bit-Punkt-zu-Punkt-(32 Bit)Verbindungen mit dem zweiten Prozessor 306 und eine 32-Bit-Verbindung mit der Ein-Ausgabe-Komponente 302 aufweist.
  • Die Abbildung aus 4 veranschaulicht eine Punkt-zu-Punkt-Architektur 400 mit zwei Prozessoren mit 32-Bit-Punkt-zu-Punkt-Verbindungen zwischen: 1) der Ein-Ausgabe-Komponente 402 und dem ersten Prozessor 404; sowie 2) der Ein-Ausgabe-Komponente 402 und dem zweiten Prozessor 406. Ein erster Prozessor 404 mit vier 16-Biz-Ports 408, 410, 412, 414, die mit dem Prozessor verbunden sind, kann zwei 16-Bit-Ports aufweisen, die mit einem zweiten Prozessor 406 verbunden sind, und zwei 16-Bit-Ports, die mit der Ein-Ausgangs-Komponente 402 verbunden sind, wie etwa einem Chipsatz. Somit existiert eine 32-Bit-Bandbreitenverbindung zwischen dem ersten Prozessor 404 und dem zweiten Prozessor 406. Ferner weisen der erste Prozessor 404 und der zweite Prozessor 406 eine 32-Bit-Bandbreitenverbindung mit der Ein-Ausgangs-Komponente 402 auf. In dem 32-Bit-Modus im Vergleich zu dem 16-Bit-Modus ist die Bandbreite zwischen der Ein-Ausgangs-Komponente 402 und dem ersten Prozessor 404 sowie zwischen der Ein-Ausgangs-Komponente 402 und dem zweiten Prozessor 406 effektiv verdoppelt worden. In dem 16-Bit-Modus müssen acht Taktzyklen auftreten, um acht 16-Bit-Pakete (128 Bits) an Informationen zwischen jedem Prozessor und der Ein-Ausgangs-Komponente übertragen werden. In einem 32-Bit-Modus müssen vier Taktzyklen auftreten, um vier 32-Bit-Pakete (128 Bits) von Informationen zwischen jedem Prozessor und der Ein-Ausgangs-Komponente zu übertragen.
  • Die Abbildung aus 5 veranschaulicht ein Ausführungsbeispiel einer Punkt-zu-Punkt-Architektur 500 mit vier Prozessoren, mit einer 16-Bit-Punkt-zu-Punkt-Verbindung zwischen einer Ein-Ausgangs-Komponente 502 und jedem der vier Prozessoren 504, 506, 508, 510. Die vier Prozessoren sind der Prozessor 1 504, Prozessor 2 506, Prozessor 3 508 und Prozessor 4 510. In einem Ausführungsbeispiel setzt jeder der vier Prozessoren 504, 506, 508, 510 ein Ausführungsbeispiel eines Arbiters ein. Die Prozessoren 504, 506, 508, 510 weisen eine flexible Architektur auf, welche koordinierend mit dem Arbiter zusammenarbeitet, um eine Vielzahl von Einsatzzwecken für die Prozessoren 504, 506, 508, 510 zu ermöglichen. Zum Beispiel kann die Architektur 500 mit vier Prozessoren ersetzt werden durch eine Architektur mit zwei Prozessoren, die eine 32-Bit-Verbindung mit der Ein-Ausgangs-Komponente 502 einsetzt. Die Verarbeitungsleistung dieser Anordnung hat sich somit effektiv verdoppelt, da vier Prozessoren die Daten verarbeiten, die von der Ein-Ausgabe-Komponente 502 stammen. Ein Ausführungsbeispiel des Arbiters ermöglicht es somit, dass die gleiche Ein-Ausgabe-Komponente 502 entweder mit einer Architektur mit zwei Prozessoren, einer Architektur 500 mit vier Prozessoren oder mit einer ähnlichen Architektur mit mehreren Prozessoren arbeitet.
  • Eine programmierbare Reglereinstellung (Knob Setting) in einem Konfigurationsregister leitet den Routing-Agenten an, so dass die aktuell gewünschte Konfiguration des Kunden bzw. Anwenders begründet wird, wie etwa eine 16-Bit-, eine 32-Bit- oder eine 48-Bit-Punkt-zu-Punkt-Verbindung zwischen dem Prozessor und einer Vorrichtung bzw. einem Baustein außerhalb des Prozessors. In einem Ausführungsbeispiel kann es sich bei der Vorrichtung außerhalb des Prozessors um einen weiteren Prozessor, eine Ein-Ausgabe-Vorrichtung, eine Brücke oder eine ähnliche Vorrichtung handeln. In einem Ausführungsbeispiel programmiert der Kunde die Reglereinstellung, um die Bandbreitenverbindungen zwischen dem Prozessor und den Vorrichtungen bzw. Bausteinen außerhalb des Prozessors herzustellen. Auf der Basis der Reglereinstellung des Konfigurationsregisters aktiviert und deaktiviert der Routing-Agent Kommunikationspfade in der Informationsübertragungsschicht und der Pufferschicht. Der Routing-Agent kann die Kommunikationspfade verändern, um die Anzahl der Prozessor-Ports zu erhöhen oder zu verringern, und somit effektiv die Bandbreite zwischen einem Prozessor und einer anderen Vorrichtung zu erhöhen oder zu reduzieren.
  • In einem Server kommt es für gewöhnlich zu einem starken Austausch von Daten zwischen einem ersten Prozessor und einem zweiten Prozessor. Eine vorhandene 48-Bit-Punkt-zu-Punkt-Verbindung zwischen diesen beiden Bausteinen bzw. Vorrichtungen verringert somit deutlich die erforderliche Zeit für die Ausführung jeder Transaktion zwischen den Vorrichtungen. In einer Workstation kommt es für gewöhnlich zu einem starken Datenaustausch zwischen jedem Prozessor und der Ein-Ausgabe-Komponente. Eine 32-Bit- oder 48-Bit-Punkt-zu-Punkt-Verbindung zwischen diesen Vorrichtungen bzw. Bausteinen reduziert somit erheblich die erforderliche Zeit für die Ausführung jeder Transaktion zwischen diesen Vorrichtungen. Der Durchschnittsfachmann auf dem Gebiet erkennt somit, dass die in den folgenden Ausführungsbeispielen dargestellten speziellen Komponenten abgeändert werden können, ohne dabei vom Umfang der Erfindung abzuweichen.
  • Die Abbildung aus 6 veranschaulicht ein Ausführungsbeispiel des Routing-Agenten 602, der die eingehenden Kommunikationspfade in einem Ausführungsbeispiel der Informationsübertragungsschicht 600 steuert. Die erste physikalische Schicht (SPXO) 604 weist einen ersten Port 606 auf; neun 16-Bit-Register, ein erstes Register 608, ein zweites Register 610, ein drittes Register 612, ein viertes Register 614, ein fünftes Register 616, ein sechstes Register 618, ein siebtes Register 620, ein achtes Register 622 und ein neuntes Register 624; ein erstes 64-Bit-Register 626; einen Kommunikationspfad-Wechselbaustein 628 wie etwa einen Multiplexer; ein Ausführungsbeispiel des Routing-Agenten 602; eine erste Zeitverzögerung 609 und ein erstes Flipflop 630.
  • Die zweite physikalische Schicht (SPX1) 632 weist einen zweiten Port 634 auf; neun 16-Bit-Register, ein zehntes Register 636, ein elftes Register 638, ein zwölftes Register 640, ein dreizehntes Register 642, ein vierzehntes Register 644, ein fünfzehntes Register 646, ein sechzehntes Register 648, ein siebzehntes Register 650 und ein achtzehntes Register 652; ein zweites 64-Bit-Register 653; und eine zweite Zeitverzögerung 637 und ein zweites Flipflop 656. Ein Multiplexer ist ein Baustein, der verschiedene Übertragungen mit niedriger Geschwindigkeit zu einer Übertragung mit hoher Geschwindigkeit zusammenführt und vice versa. Das Konfigurationsregister 654 informiert den Routing-Agenten 602 darüber, ob eine spezielle Komponente außerhalb des Prozessors eine 16-Bit-, eine 32-Bit- oder eine 48-Bit-Punkt-zu-Punkt-Verbindung darstellen soll.
  • Wenn das Konfigurationsregister 654 für eine 16-Bit-Punkt-zu-Punkt-Verbindung mit der Ein-Ausgabe-Komponente programmiert ist, so leitet der Routing-Agent 602 jede physikalische Schicht an, unabhängig von den anderen physikalischen Schichten zu arbeiten. Zum Beispiel in einem Ausführungsbeispiel mit einer Architektur mit vier Prozessoren ist der erste Port 606 mit einem zweiten Prozessor verbunden, und der zweite Port 634 weist eine Verknüpfung mit einer Ein-Ausgabe-Komponente auf. Das erste Register 608 empfängt ein eingehendes 16-Bit-Informationspaket über den ersten Port 606. Das 16-Bit-Informationspaket wird von dem ersten Register 608 über eine erste Zeitverzögerung 609 übermittelt, um in dem zweiten Register 610 gespeichert zu werden. Das erste Register 608 empfängt ein weiteres 16-Bit-Informationspaket über den ersten Port 606. Das erste Register 608 sendet dieses zweite 16-Bit-Informationspaket zum Speichern in dem dritten Register 612. Die erste physikalische Schicht 604 wiederholt diesen Vorgang, bis jedes Register vom zweiten Register 610 bis zum neunten Register 624 jeweils ein 16-Bit-Informationspaket speichert. Der erste Kommunikationspfad-Wechselbaustein 628 erfasst bzw. stellt fest, dass diese acht 16-Bit-Informationen (oder 128 Bits) für die Übertragung über das erste Flipflop 630 zu der ersten Verknüpfungsschicht bereit stehen. Nach dem nächsten Taktzyklus werden die 128 Informationsbits über das erste Flipflop 630 zu der ersten Verknüpfungsschicht übertragen. Auf ähnliche Weise, jedoch unter Verwendung der Komponenten der zweiten physikalischen Schicht 632 überträgt die zweite physikalische Schicht 632 128 Bits zu der zweiten Verknüpfungsschicht. Die 128 Informationsbits, die zu der ersten Verknüpfungsschicht übertragen werden, stehen jedoch in keinem Verhältnis zu den 128 Informationsbits, die zu der zweiten Verknüpfungsschicht übertragen werden. In unseren Beispielen verlaufen die ersten 128 Informationsbits somit von einem zweiten Prozessor zu dem ersten Port 606. In ähnlicher Weise verlaufen die zweiten 128 Informationsbits von der Ein-Ausgabe-Komponente durch den zweiten Port 634. Der Routing-Agent 602 gibt den 128-Bit-Pfad in dem ersten Kommunikationspfad-Wechselbaustein 628 frei. Der Routing-Agent 602 deaktiviert den dualen 64-Bit-Pfad in dem ersten Kommunikationspfad-Wechselbaustein 628. Der Routing-Agent 602 gibt das erste Flipflop 630 und das zweite Flipflop 656 frei.
  • Wenn das Konfigurationsregister 654 für eine 32-Bit-Punkt-zu-Punkt-Verbindung programmiert ist, so verbindet der Routing-Agent 602 die beiden physikalischen Schichten, so dass diese zusammenarbeiten. Der Routing-Agent 602 deaktiviert den 128-Bit-Pfad in dem ersten Kommunikationspfad-Wechselbaustein 628. Der Routing-Agent 620 gibt den dualen 64-Bit-Pfad in dem ersten Kommunikationspfad-Wechselbaustein 628 frei. Der Routing-Agent 602 gibt das erste Flipflop 630 frei, sperrt jedoch das zweite Flipflop 656. Der Routing-Agent 602 erhöht die Taktgeschwindigkeit für das erste Register 608 bis zu dem achtzehnten Register 652 um einen Faktor von Zwei. Die erste physikalische Schicht 604 empfängt vier 16-Bit-Informationspakete und speichert die Informationspakete über das fünfte Register 616 in dem zweiten Register 610. Die zweite physikalische Schicht 632 empfängt vier 16-Bit-Informationspakete und speichert die Informationspakete über das vierzehnte Register 644 in dem elften Register 638. Der erste Kommunikationspfad-Wechselbaustein 628 stellt fest, dass das erste 64-Bit-Register vier 16-Bit-Informationspakete von dem zweiten Register 610 bis zu dem fünften Register 616 aufweist. Der Kommunikationspfad-Wechselbaustein 628 stellt fest, dass das zweite 64-Bit-Register vier 16-Bit-Informationspakete von dem elften Register 638 bis zu dem vierzehnten Register 644 aufweist. Nach dem nächsten Taktzyklus werden die 64 Informationsbits von dem ersten 64-Bit-Register und die 64 Informationsbits von dem zweiten 64-Bit-Register über den dualen 64-Bit-Pfad zu dem ersten Kommunikationspfad-Wechselbaustein 628 übertragen. Der Kommunikationspfad-Wechselbaustein 628 überträgt die acht verwandten 16-Bit-Informationspakete für die erste Verknüpfungsschicht. Sowohl die Vorrichtung außerhalb des Prozessors als auch der Prozessor übertragen die acht verwandten 16-Bit-Informationspakete als würde eine 32-Bit-Punkt-zu-Punkt-Verbindung zwischen dem Prozessor und der Vorrichtung existieren. Die zweite Verknüpfungsschicht empfängt kein Signal, da das zweite Flipflop 656 deaktiviert bzw. gesperrt ist. Auf ähnliche Weise kann der Routing-Agent drei physikalische Schichten verbinden, so dass eine 48-Bit-Punkt-zu-Punkt-Verbindung zwischen dem Prozessor und der Vorrichtung erzeugt wird.
  • Die Abbildung aus 7 veranschaulicht ein Ausführungsbeispiel des Routing-Agenten 702, der die eingehenden Kommunikationspfade in einem Ausführungsbeispiel der Pufferschicht 700 steuert. Der eingehende Kommunikationspfad der ersten Verknüpfungsschicht 704 weist ein erstes 128-Bit-Register 706, eine erste Antwortwarteschlange 708, eine erste Anforderungswarteschlange 710 und einen ersten Kommunikationspfad-Wechselbaustein 712 auf. Der eingehende Kommunikationspfad der zweiten Verknüpfungsschicht 714 weist ein zweites 128-Bit-Register 716, eine zweite Antwortwarteschlange 711, eine zweite Anforderungswarteschlange 713 und einen zweiten Kommunikationspfad-Wechselbaustein 716 auf. Die Komponentenzusammenstellung der dritten Verknüpfungsschicht 718 und der vierten Verknüpfungsschicht 720 entsprechen der der ersten Verknüpfungsschicht 704. Die erste Verknüpfungsschicht 704 bis zu der vierten Verknüpfungsschicht 720 werden in einen fünften Kommunikationspfad-Wechselbaustein 722, ein Ausführungsbeispiel eines Routing-Agenten 702, ein fünftes 128-Bit-Register 724, einen Transaktionsverfolgungspuffer die lokale Adresse (LATT) 726, einen zentralen Datenverwaltungspuffer (CDM) 728 und einen Transaktionsverfolgungspuffer für die entfernte Adresse (RATT) 730 gespeist.
  • Wenn in einem Ausführungsbeispiel der eingehenden Pufferschicht 700 das Konfigurationsregister 732 für eine 32-Bit-Punkt-zu-Punkt-Verbindung programmiert ist, so verbindet der Routing-Agent 702 effektiv zwei Verknüpfungsschichten miteinander. Die erste Verknüpfungsschicht 704 empfängt die acht verwandten 16-Bit-Informationspakete (128 Bit) mit der doppelten Taktgeschwindigkeit von dem Kommunikationspfad-Wechselbaustein in der ersten physikalischen Schicht. Die erste Verknüpfungsschicht 704 speichert das 128-Bit-Informationspaket in dem ersten Register 706. Das 128-Bit-Informationspaket wird entsprechend zu der ersten Antwortwarteschlange 708 oder der ersten Anforderungswarteschlange 710 geleitet. Der Routing-Agent 702 sendet ein Freigabesignal an den ersten Kommunikationspfad-Wechselbaustein 712, den dritten Kommunikationspfad-Wechselbaustein 734 und den fünften Kommunikationspfad-Wechselbaustein 722. Der Routing-Agent 702 sendet ferner ein Sperrsignal bzw. ein Deaktivierungssignal an den zweiten Kommunikationspfad-Wechselbaustein 716 und den vierten Kommunikationspfad-Wechselbaustein 736. Der Routing-Agent 702 leitet den fünften Kommunikationspfad-Wechselbaustein 722 an, Daten nur von dem ersten Kommunikationspfad-Wechselbaustein 712 und dem dritten Kommunikationspfad-Wechselbaustein 734 anzufordern. In dem 32-Bit-Modus empfangen der zweite Kommunikationspfad-Wechselbaustein 716 und der vierte Kommunikationspfad-Wechselbaustein 736 kein Signal von der physikalischen Schicht, da der Routing-Agent 702 das zweite Flipflop und das vierte Flipflop in der physikalischen Schicht deaktiviert hat.
  • Die 128-Bit-Informationspakete werden auf zyklische, sequentielle Art und Weise über den ersten Kommunikationspfad-Wechselbaustein 712 und danach den dritten Kommunikationspfad-Wechselbaustein 734 zu dem fünften Kommunikationspfad-Wechselbaustein 722 übertragen. In einem sich wiederholenden Zyklus fordert der fünfte Kommunikationspfad-Wechselbaustein 722 den Inhalt der ersten Antwortwarteschlange 708 an, danach der ersten Anforderungswarteschlange 710, danach der dritten Antwortwarteschlange 738, danach der dritten Anforderungswarteschlange 740, und wobei diese Sequenz danach wiederholt wird. Jedes Informationspaket kann entweder eine Anforderung eines Befehls und/oder von Daten darstellen oder eine Antwort bzw. Reaktion auf einen Befehl oder Daten. Nachdem in einem Ausführungsbeispiel ein Paket in eine Antwortwarteschlange oder eine Anforderungswarteschlange geschrieben worden ist, werden die Informationen aus diesen Warteschlangen mit der Kerntaktfrequenz übertragen. Die Informationspakete werden von dem fünften Kommunikationspfad-Wechselbaustein 722 zu einer der folgenden drei Komponenten gesendet. Der zentrale Datenverwaltungspuffer (CDM) 728 speichert Daten, die von der Protokollschicht 740 verbraucht werden. Der Transaktionsverfolgungspuffer für die entfernte Adresse (RATT) 730 speichert Befehle von einer entfernten Vorrichtung, wie etwa von einem entfernten Prozessor. Der CDM 728 speichert entsprechende Daten, sofern vorhanden, welche dem Befehl zugeordnet sind. In ähnlicher Weise speichert der Transaktionsverfolgungspuffer für die lokale Adresse (LATT) 726 lokale Befehle und Antworten des Prozessorkerns. Die entsprechenden Daten, sofern vorhanden, die dem Befehl zugeordnet sind, werden in dem CDM 728 gespeichert.
  • Wenn das Konfigurationsregister 734 für eine 16-Bit-Punkt-zu-Punkt-Verbindung programmiert ist, so arbeitet jede eingehende Verknüpfungsschicht 704, 714, 718, 720 unabhängig. Der Routing-Agent 702 leitet den fünften Kommunikationspfad-Wechselbaustein 722 an, Informationen von den acht möglichen Quellen anzufordern, der entsprechenden Anforderungswarteschlange 710, 713, 740, 750 oder der entsprechenden Antwortwarteschlange 708, 711, 738, 748 in jeder Verknüpfungsschicht 704, 714, 718, 729, und zwar auf zyklische, sequentielle Art und Weise. Wenn eine bestimmte Warteschlange leer ist, so zieht der Kommunikationspfad-Wechselbaustein 722 automatisch Pakete straffrei bzw. ohne negative Folgen aus der nächsten Warteschlange. In einem Ausführungsbeispiel werden die Pakete aus den vier physikalischen Schichten mit 100 Megahertz in die entsprechende Warteschlange geschrieben, wenn das Konfigurationsregister für eine 16-Bit-Verbindung programmiert ist. Die Pakete werden mit 200 Megahertz geschrieben, wenn das Konfigurationsregister 732 für eine 32-Bit-Verbindung programmiert ist. Wenn das Konfigurationsregister für eine 48-Bit-Verbindung programmiert ist, schaltet der Routing-Agent 702 drei Verknüpfungsschichten zusammen. Nachdem der fünfte Kommunikationspfad-Wechselbaustein 722 ein Informationspaket aus den acht möglichen Quellen ausgewählt hat, wird das Paket zu der Protokollschicht 740 übertragen.
  • Die eingehende Verknüpfungsschicht sendet Antworten und Anforderungen an die Protokollschicht 740. Die Protokollschicht 740 wechselt die Auswahl eines Befehls aus dem LATT 726 oder dem RATT 730, begleitet von Daten von dem CDM 728. In einem Ausführungsbeispiel können diese physikalischen Informationen zu einer CPU gesendet werden. Dien Informationen gehen zur Verarbeitung an die CPU und werden zu der abgehenden Verknüpfungsschicht übertragen. Die Protokollschicht 740 ist für gewöhnlich die verarbeitende Komponente. Die Protokollschicht 740 löst für gewöhnlich Anforderungen von andren lokalen Prozessoren auf und sendet Anforderungen über die physikalische Schicht. Die Protokollschicht 740 kann für Funktionen wie die Rangordnung, die Konflikterkennung und die Kohärenz zuständig sein. Die Protokollschicht 740 kann Datenanforderungen an die lokale Speichersteuereinheit weiterleiten, wenn die Anforderung an einen lokalen Speicher gerichtet ist. Die Protokollschicht 740 kann Snoop-Anforderungen an die entfernten Knoten und andere lokale Prozessoren senden. Die Protokollschicht 740 verarbeitet ferner über die Verknüpfungsschicht getätigte Anforderungen, die von einem entfernten Prozessor oder einer Ein-Ausgabe-Komponente stammen können.
  • Die Abbildung aus 8 veranschaulicht ein Ausführungsbeispiel des Routing-Agenten 802, der die abgehenden Kommunikationspfade in einem Ausführungsbeispiel der Pufferschicht 800 steuert. Die Protokollschicht 804 sendet die verarbeiteten Befehle und Daten an jede abgehende Verknüpfungsschicht 806, 808, 810, 812. Die Protokollschicht 804 stellt selbst erzeugte Befehle an den LATT 814 zu und Daten, sofern vorhanden, die diesem Befehl entsprechen, werden dem CDM 816 zugeführt. Die Protokollschicht 804 stellt Antworten auf Befehle von entfernten Vorrichtungen dem RATT 818 zu und Daten, sofern vorhanden, die diesem Befehl entsprechen, werden dem CDM 816 zugeführt. Wenn das Konfigurationsregister 820 für eine 32-Bit-Punkt-zu-Punkt-Verbindung programmier ist, gibt der Routing-Agent 802 effektiv zwei der vier abgehenden Verknüpfungsschichten frei. Das folgende tritt bei der Verfolgung des Signalpfads in der ersten abgehenden Verknüpfungsschicht 806 und in der zweiten abgehenden Verknüpfungsschicht 808 ein. Der Routing-Agent 802 weist an, dass der zweite Kommunikationspfad-Wechselbaustein 822 und der vierte Kommunikationspfad-Wechselbaustein (nicht abgebildet) deaktiviert werden. Der Routing-Agent 802 weist den fünften Kommunikationspfad-Wechselbaustein 828 an, Daten über den ersten Kommunikationspfad-Wechselbaustein 824 und den dritten Kommunikationspfad-Wechselbaustein 826 aus deren entsprechenden Anforderungspuffer 830 oder Antwortpuffer 832 anzufordern. Der fünfte Kommunikationspfad-Wechselbaustein 828 wechselt in sich wiederholenden Zyklen die Anforderungen von Bits aus dem Anforderungspuffer 830 und dem Antwortpuffer 832. Der fünfte Kommunikationspfad-Wechselbaustein 828 empfängt ferner alle Daten, sofern vorhanden, die diesen Befehlen entsprechen, aus dem CDM 816. Der fünfte Kommunikationspfad-Wechselbaustein 828 leitet danach das 128-Bit-Datenpaket durch eine erste Zeitverzögerung 833 entweder an die abgehende Antwortwarteschlange 836 oder die abgehende Anforderungswarteschlange 834, die sich in der abgehenden physikalischen Schicht befinden.
  • In der abgehenden Verknüpfungsschicht existieren eine oder mehrere Wiederholungswarteschlangen 838. Die Wiederholungswarteschlange 838 speichert eine Kopie der Informationen, die übertragen wird, wenn ein Fehler bei der Informations- bzw. Datenübertragung auftritt. Die Wiederholungswarteschlange 838 existiert primär für den Fall, dass ein Fehler im Übermittlungsabschnitt auftreten kann. Die Wiederholungswarteschlange 838 löscht die in einer Wiederholungswartschlange 838 gespeicherten Duplikat-Informationen, wenn eine Bestätigung für eine fehlerfreie Informationsübertragung empfangen worden ist.
  • Wenn das Konfigurationsregister 820 für eine 16-Bit-Punkt-zu-Punkt-Verbindung programmiert ist, so leitet der Routing-Agent 802 jede abgehende Verknüpfungsschicht 806, 808, 810, 812 an, unabhängig zu arbeiten. Der Routing-Agent 802 sendet ein Signal zur Freigabe aller Kommunikationspfad-Wechselbausteine der abgehenden Verknüpfungsschicht und zur Festlegung der Taktgeschwindigkeit auf die Standard-Taktgeschwindigkeit. Die Informationen werden aus dem LATT 814, dem RATT 818 und dem CDM 816 über die eigene entsprechende abgehende Verknüpfungsschicht an die entsprechende abgehende physikalische Schicht geleitet. Der Routing-Agent 802 weist zum Beispiel den zweiten Kommunikationspfad-Wechselbaustein 822 an, Daten über den sechsten Kommunikationspfad-Wechselbaustein 840 von der zweiten Anforderungswarteschlange 842 anzufordern und danach Daten über den siebten Kommunikationspfad-Wechselbaustein 844 von der zweiten Antwortwarteschlange 846 anzufordern. Der zweite Kommunikationspfad-Wechselbaustein 822 wechselt in einem wiederholten Zyklus die Anforderungen von Bits von der zweiten Antwortwarteschlange 842 und der zweiten Anforderungswarteschlange 846. Der zweite Kommunikationspfad-Wechselbaustein 822 empfängt ferner alle Daten, sofern vorhanden, die diesen Befehlen entsprechen, aus dem CDM 816. Der zweite Kommunikationspfad-Wechselbaustein 822 leitet das 128-Bit-Datenpaket danach durch eine zweite Zeitverzögerung 848 entweder an die zweite abgehende Antwortwarteschlange 850 oder die zweite abgehende Anforderungswarteschlange 852, die sich in der abgehenden physikalischen Schicht befinden.
  • Die Abbildung aus 9 veranschaulicht ein Ausführungsbeispiel des Routing-Agenten 902, der die Kommunikationspfade in einer abgehenden Informationsübertragungsschicht 900 steuert. In einem Ausführungsbeispiel umfasst die Informationsübertragungsschicht eine oder mehrere physikalische Schichten. Die physikalische Schicht führt die tatsächliche physikalische Informationsübertragung an Vorrichtungen außerhalb des Prozessors über Ports aus, wie etwa einen ersten Port 904 und einen zweiten Port 906. Für gewöhnlich existiert auf jeder physikalischen Schicht ein 16-Bit-Port, wie etwa der erste Port 904. Der Prozessor überträgt Informationen zwischen dem Prozessor und einer Vorrichtung außerhalb des Prozessors über diese Ports. Das Informationssignal enthält Informationen wie etwa eine Anforderung, eine Antwort oder Daten.
  • In einem Ausführungsbeispiel einer Architektur mit zwei Prozessoren sind zum Beispiel drei Ports an den zweiten Prozessor in dem System angebunden, und der vierte Port ist an eine Ein-Ausgabe-Komponente angebunden, wie etwa einen Chipsatz. Ein erster Kommunikationspfad-Wechselbaustein 908, wie etwa ein Multiplexer, empfängt ein 128-Bit-Informationspaket von der Verknüpfungsschicht. Der erste Kommunikationspfad-Wechselbaustein 908 liest das 128-Bit-Informationspaket entweder aus der Antwortwarteschlange 911 oder aus der Anforderungswarteschlange 910 mit einer Taktgeschwindigkeit von zum Beispiel 100 Megahertz. Die Signalausgabe des ersten Kommunikationspfad-Wechselbausteins 908 sind zwei 64-Bit-Informationspakete, ein erstes 64-Bit-Paket und ein zweites 64-Bit-Paket, die in dem ersten Register 912 gespeichert sind. Nach einer Zeitverzögerung 914 liest der erste Kommunikationspfad-Wechselbaustein 918 das erste 64-Bit-Paket über das zweite Register 916 mit der doppelten Taktgeschwindigkeit, 200 Megahertz, des 128-Bit-Informationspakets. Die Signalausgabe des zweiten Kommunikationspfad-Wechselbausteins 918 sind zwei 32-Bit-Informationspakete, ein erstes 32-Bit-Paket und ein zweites 32-Bit-Paket, die in dem dritten Register 920 gespeichert sind. Die Taktgeschwindigkeit des 32-Bit-Informationspakets in dem dritten Register wird erneut verdoppelt, auf 400 Megahertz.
  • Der Routing-Agent 902 weist jetzt das 32-Bit-Informationspaket an, einen 32-Bit-Umgehungspfad 922 oder einen 16-Bit-Informationsübertragungspfad in den entsprechenden Kommunikationspfad-Wechselbausteinen 926, 934 zu nehmen. Das Konfigurationsregister 924 informiert den Routing-Agenten 902, ob die Komponente außerhalb des Prozessors eine 16-Bit, 32-Bit- oder 48-Bit-Punkt-zu-Punkt-Verbindung darstellen soll.
  • Wenn zum Beispiel in einem Ausführungsbeispiel eine 16-Bit-Punkt-zu-Punkt-Verbindung zwischen dem Prozessor und der Ein-Ausgabe-Komponente existiert, so weist der Routing-Agent 902 jede physikalische Schicht an, unabhängig von den anderen physikalischen Schichten zu arbeiten. Ein vierter Kommunikationspfad-Wechselbaustein 926 liest das 32-Bit-Informationspaket mit 400 Megahertz aus dem dritten Register 920 und gibt zwei 16-Bit-Informationspakete aus. Ein fünfter Kommunikationspfad-Wechselbaustein 928 liest das 16-Bit-Informationspaket mit 400 Megahertz aus dem vierten Register 927 und gibt das 16-Bit-Informationspaket an den ersten Port 904 aus. Der Routing-Agent 902 sendet ein Signal an den sechsten Kommunikationspfad-Wechselbaustein 930 in der zweiten abgehenden physikalischen Schicht 932. Das Signal gibt den 16-Bit-Pfad in dem fünften Kommunikationspfad-Wechselbaustein 928 frei. Der Routing-Agent 902 deaktiviert den 32-Bit-Umgehungspfad 922 von dem vierten Kommunikationspfad-Wechselbaustein 926. Der Routing-Agent 902 sendet ferner ein Signal an die zweite physikalische Schicht 932, den sechsten Kommunikationspfad-Wechselbaustein 930, zur Freigabe des 16-Bit-Pfads in dem sechsten Kommunikationspfad-Wechselbaustein 930 und zum Sperren/Ignorieren des 32-Bit-Umgebungspfads 922 von dem dritten Register 920. Somit handelt es sich bei der Ausgabe des ersten Ports 904 und des zweiten Ports 906 um nicht verwandte 16-Bit-Informationspakete.
  • Wenn in einem Ausführungsbeispiel zum Beispiel eine 32-Bit-Punkt-zu-Punkt-Verbindung zwischen dem Prozessor und der Ein-Ausgabe-Komponente existiert, so verbindet der Routing-Agent 902 den Ausgang des ersten Ports 904 und den Ausgang des zweiten Ports 906. Der Routing-Agent 902 sendet ein Signal an den sechsten Kommunikationspfad-Wechselbaustein 930. Das Signal des Routing-Agenten sperrt bzw. deaktiviert den sechsten Kommunikationspfad-Wechselbaustein 930 und gibt den 32-Bit-Umgebungspfad 922 von dem dritten Register 920 frei. Der Routing-Agent 902 sendet ferner ein Signal an die erste physikalische Schicht 931, den vierten Kommunikationspfad-Wechselbaustein 926, um den 32-Bit-Umgehungspfad 922 freizugeben. Die Ausgaben des ersten Ports 904 und des zweiten Ports 906 stellen somit verwandte 16-Bit-Informationspakete dar. Anders ausgedrückt handelt es sich bei der Ausgabe des ersten Ports 904 und des zweiten Ports 906 um ein 32-Bit-Informationspaket. Um die gleichen Übertragungsgeschwindigkeiten aufrecht zu erhalten, sendet der Routing-Agent 902 ferner ein Signal zur Verdoppelung der in den Registern auftretenden Taktgeschwindigkeiten. Zum Beispiel wird das 32-Bit-Informationspaket in dem dritten Register 920 jetzt mit 800 Megahertz getaktet. 800 Megahertz entsprechen der doppelten Taktgeschwindigkeit im Vergleich einer auftretenden 16-Bit-Informationsübertragung. In ähnlicher Weise kann der Routing-Agent 902 drei Ports miteinander verbinden (nicht abgebildet), so dass eine 48-Bit-Verbindung in dem abgehenden Pfad erzeugt wird.
  • Wenn in einem alternativen Ausführungsbeispiel drei physikalische Schichten zum Beispiel mit einem zweiten Prozessor verknüpft sind, so kann der Routing-Agent optional so programmiert werden, dass die drei verwandten 16-Bit-Pakete, die an den zweiten Prozessor gerichtet sind, durch entsprechende Komponenten jeder der Verknüpfungs- und physikalischen Schichten geleitet werden. Somit verläuft das erste 16-Bit-Paket durch die Komponenten der ersten physikalischen Schicht und der ersten Verknüpfungsschicht. Das zweite 16-Bit-Paket verläuft durch die Komponenten der zweiten physikalischen Schicht und der zweiten Verknüpfungsschicht. Das dritte 16-Bit-Paket verläuft durch die Komponenten der dritten physikalischen Schicht und der zweiten Verknüpfungsschicht. Der Routing-Agent verändert den Adressierungs-Header in den drei 16-Bit-Paketen, um dem zweiten Prozessor mitzuteilen, dass diese drei 16-Bit-Pakete im Verhältnis zueinander stehen.
  • In Bezug auf die Erfindung sind verschiedene Modifikationen und alternative Ausführungen möglich. Spezielle Ausführungsbeispiele der Erfindung sind nur zu Beispielzwecken dargestellt. Die Verbindung zwischen dem Prozessor und den Vorrichtungen bzw. Bausteinen können zum Beispiel 8 Bit bis 64 Bit oder mehr entsprechen. Die Taktgeschwindigkeiten bzw. Taktraten können zum Beispiel ein Megahertz bis ein Gigahertz oder mehr entsprechen. Die Register können zwischen 1 Bit und 128 Bit und darüber liegen. Ferner können die meisten durch die elektronischen Hardware-Komponenten ausgeführten Funktionen durch Sofwareemulation dupliziert werden. In ähnlicher Weise können die Funktionalität jeder Schicht, der Protokollschicht, der Pufferschicht und der Informationsübertragungsschicht zum Beispiel auf einer einzigen Schicht kombiniert oder auf eine andere Komponente verlagert werden. Die Erfindung ist somit nicht auf die speziellen offenbarten Ausführungen beschränkt, vielmehr umfasst die Erfindung alle Modifikationen, Äquivalente und Alternativen gemäß dem Umfang der vorliegenden Erfindung, der durch die anhängigen Ansprüche definiert ist.

Claims (9)

  1. Vorrichtung, die folgendes umfasst: einen Routing-Agenten zum Wechseln eines oder mehrere Kommunikationspfade in einem Prozessor (200), ohne dabei ein physikalisches Komponentenlayout in dem Prozessor (200) zu verändern; dadurch gekennzeichnet, dass der Routing-Agent eine erste Komponente (654) und eine zweite Komponente (602) umfasst, wobei die erste Komponente (654) so angeordnet ist, dass eine Bandbreite zwischen einem Baustein und dem Prozessor (200) bestimmt wird, wobei die zweite Komponente (602) so angeordnet ist, dass sie ein Steuersignal an einen oder mehrere Kommunikationspfad-Wechselbausteine (628) bereitstellt, wobei das Steuersignal auf der Bandbreitenbestimmung der ersten Komponente (654) basiert.
  2. Vorrichtung nach Anspruch 1, wobei diese ferner folgendes umfasst: einen Punkt-zu-Punkt-Bus, über welchen der Prozessor (200) mit einem Baustein kommuniziert.
  3. Vorrichtung nach Anspruch 1, wobei der Baustein aus der Gruppe ausgewählt wird, die eine Ein-Ausgabe-Komponente, eine Brücke, einen Chipsatz, einen Speicher oder einen zweiten Prozessor umfasst, und wobei das Steuersignal aus der Gruppe ausgewählt wird, die ein Freigabesignal, ein Sperrsignal, ein Taktgeschwindigkeitserhöhungssignal oder ein eingestellte Standard-Taktgeschwindigkeitssignal umfasst.
  4. Verfahren, das folgendes umfasst: das Bestimmen einer Bandbreite zwischen einem Prozessor (200) und einem Baustein; das Senden eines Steuersignals auf der Basis der Bandbreitenbestimmung an einen oder mehrere Kommunikationspfad-Wechselbausteine in dem Prozessor (200) mit einer flexiblen Architektur; und das Wechseln eines oder mehrerer Kommunikationspfade in dem Prozessor (200), ohne ein physikalisches Komponentenlayout in dem Prozessor (200) zu verändern.
  5. Verfahren nach Anspruch 4, wobei das Verfahren ferner folgendes umfasst: das Kommunizieren zwischen dem Prozessor (200) und einem Baustein über mindestens einen Punkt-zu-Punkt-Bus.
  6. Verfahren nach Anspruch 4, wobei das Wechseln des Kommunikationspfads das Anpassen einer Einstellung in einem Konfigurationsregister umfasst, um einen Routing-Agenten anzuweisen, das Steuersignal an einen oder mehrere in dem Prozessor (200) angeordnete Kommunikationspfad-Wechselbausteine zu senden.
  7. System, das folgendes umfasst: einen Prozessor (200) mit einer flexiblen Architektur; und einen Routing-Agenten zur Steuerung einer oder mehrerer Kommunikationspfade in dem Prozessor (200), dadurch gekennzeichnet, dass der Routing-Agent eine erste Komponente (654) und eine zweite Komponente (602) umfasst, wobei die erste Komponente (654) so angeordnet ist, dass eine Bandbreite zwischen einem Baustein und dem Prozessor (200) bestimmt wird, wobei die zweite Komponente (602) so angeordnet ist, dass sie ein Steuersignal an einen oder mehrere Kommunikationspfad-Wechselbausteine (628) bereitstellt, wobei das Steuersignal auf der Bandbreitenbestimmung der ersten Komponente (654) basiert.
  8. System nach Anspruch 7, wobei der Prozessor (200) folgendes umfasst: eine Protokollschicht (204); eine Informationsübertragungsschicht (208) für die Informationsübertragung auf einem physikalischen Medium zwischen der Protokollschicht (204) und einem Baustein; und eine Pufferschicht (206) zur Pufferung der Informationsübertragung zwischen der Protokollschicht (204) und der Informationsübertragung.
  9. System nach Anspruch 7, wobei dieses ferner folgendes umfasst: einen Punkt-zu-Punkt-Bus, wobei der Prozessor (200) über den Punkt-zu-Punkt-Bus mit einem Baustein kommuniziert, und wobei das System aus einer Gruppe ausgewählt wird, die eine Workstation oder einen Server umfasst.
DE60123134T 2000-12-13 2001-11-13 Verfahren und vorrichtung für einen rekonfigurierbaren prozessor Expired - Lifetime DE60123134T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US738913 2000-12-13
US09/738,913 US6907490B2 (en) 2000-12-13 2000-12-13 Method and an apparatus for a re-configurable processor
PCT/US2001/043638 WO2002048862A2 (en) 2000-12-13 2001-11-13 A method and an apparatus for a re-configurable processor

Publications (2)

Publication Number Publication Date
DE60123134D1 DE60123134D1 (de) 2006-10-26
DE60123134T2 true DE60123134T2 (de) 2007-08-30

Family

ID=24970005

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60123134T Expired - Lifetime DE60123134T2 (de) 2000-12-13 2001-11-13 Verfahren und vorrichtung für einen rekonfigurierbaren prozessor

Country Status (11)

Country Link
US (2) US6907490B2 (de)
EP (1) EP1377898B1 (de)
KR (1) KR100569750B1 (de)
CN (1) CN1279464C (de)
AT (1) ATE339721T1 (de)
AU (1) AU2002217800A1 (de)
DE (1) DE60123134T2 (de)
HK (1) HK1062213A1 (de)
RU (1) RU2283507C2 (de)
TW (1) TW552558B (de)
WO (1) WO2002048862A2 (de)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6826645B2 (en) 2000-12-13 2004-11-30 Intel Corporation Apparatus and a method to provide higher bandwidth or processing power on a bus
US6907490B2 (en) 2000-12-13 2005-06-14 Intel Corporation Method and an apparatus for a re-configurable processor
US8185602B2 (en) 2002-11-05 2012-05-22 Newisys, Inc. Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters
US7158536B2 (en) * 2004-01-28 2007-01-02 Rambus Inc. Adaptive-allocation of I/O bandwidth using a configurable interconnect topology
US20050268019A1 (en) * 2004-06-01 2005-12-01 Che-Hui Chang Chien [interface and system for transmitting real-time data ]
US20070038794A1 (en) * 2005-08-10 2007-02-15 Purcell Brian T Method and system for allocating a bus
US7903643B1 (en) * 2005-12-29 2011-03-08 At&T Intellectual Property Ii, L.P. Method and apparatus for determining bandwidth for services over an Internet Protocol network
US20080114918A1 (en) * 2006-11-09 2008-05-15 Advanced Micro Devices, Inc. Configurable computer system
EP2106648B1 (de) 2006-12-26 2018-08-08 Dali Systems Co., Ltd. Verfahren und system zur linearisierung von basisbandvorverzerrung in einem mehrkanal-breitbandkommunikationssystem
TWI385507B (zh) * 2007-08-15 2013-02-11 Via Tech Inc 資料傳輸速率調整方法與裝置以及具有資料傳輸速率調整功能之電腦系統
US8223650B2 (en) * 2008-04-02 2012-07-17 Intel Corporation Express virtual channels in a packet switched on-chip interconnection network
KR101482210B1 (ko) * 2009-01-08 2015-01-15 삼성전자 주식회사 전력 소모 감소를 위한 재구성 가능한 프로세서 및 그 동작방법
CN107682021B (zh) 2010-08-17 2020-02-18 大力系统有限公司 远程地可重新配置的远程无线电头单元
CN105141513B (zh) 2010-09-14 2018-12-14 大力系统有限公司 操作分布式天线系统的方法和在该系统中进行通信的方法
KR101863605B1 (ko) 2011-09-19 2018-07-06 삼성전자주식회사 스트림 데이터를 고속으로 처리하는 프로세서
US20120095607A1 (en) * 2011-12-22 2012-04-19 Wells Ryan D Method, Apparatus, and System for Energy Efficiency and Energy Conservation Through Dynamic Management of Memory and Input/Output Subsystems
US10536553B1 (en) * 2015-09-04 2020-01-14 Cadence Design Systems, Inc. Method and system to transfer data between components of an emulation system
CN108735278B (zh) * 2018-05-28 2021-09-14 成都华唯科技股份有限公司 一种适用于康复设备的指令的传输方法及应用
US11283876B2 (en) * 2020-03-20 2022-03-22 Verizon Patent And Licensing Inc. Systems and methods for end-to-end request-response flow routing for geographically distributed client devices

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU615084B2 (en) 1988-12-15 1991-09-19 Pixar Method and apparatus for memory routing scheme
US5161156A (en) * 1990-02-02 1992-11-03 International Business Machines Corporation Multiprocessing packet switching connection system having provision for error correction and recovery
US5386466A (en) * 1991-12-30 1995-01-31 At&T Corp. Automatic initialization of a distributed telecommunication system
US6151689A (en) * 1992-12-17 2000-11-21 Tandem Computers Incorporated Detecting and isolating errors occurring in data communication in a multiple processor system
US5649162A (en) * 1993-05-24 1997-07-15 Micron Electronics, Inc. Local bus interface
US5608446A (en) * 1994-03-31 1997-03-04 Lucent Technologies Inc. Apparatus and method for combining high bandwidth and low bandwidth data transfer
US5680397A (en) * 1995-03-13 1997-10-21 International Business Machines Corporation Multi-port LAN switch for a token-ring network
US6148356A (en) * 1995-12-27 2000-11-14 Intel Corporation Scalable computer system
US5828865A (en) * 1995-12-27 1998-10-27 Intel Corporation Dual mode bus bridge for interfacing a host bus and a personal computer interface bus
US5959995A (en) * 1996-02-22 1999-09-28 Fujitsu, Ltd. Asynchronous packet switching
US5978387A (en) * 1996-05-31 1999-11-02 Mci Communications Corporation Dynamic allocation of data transmission resources
US5884071A (en) * 1997-03-31 1999-03-16 Intel Corporation Method and apparatus for decoding enhancement instructions using alias encodings
US6449273B1 (en) * 1997-09-04 2002-09-10 Hyundai Electronics America Multi-port packet processor
KR100266696B1 (ko) * 1998-06-03 2000-09-15 김영환 직렬 통신 인터페이스 회로
US6337877B1 (en) * 1998-08-27 2002-01-08 Legerity, Inc. Method and apparatus for scaling modem transfer capacity in a multi-channel communications system
US6167476A (en) * 1998-09-24 2000-12-26 Compaq Computer Corporation Apparatus, method and system for accelerated graphics port bus bridges
US6321269B1 (en) * 1998-12-29 2001-11-20 Apple Computer, Inc. Optimized performance for transaction-oriented communications using stream-based network protocols
US6473814B1 (en) * 1999-05-03 2002-10-29 International Business Machines Corporation System for optimally tuning a burst length by setting a maximum burst length based on a latency timer value and adjusting the maximum burst length based on a cache line size
US20020133620A1 (en) * 1999-05-24 2002-09-19 Krause Michael R. Access control in a network system
US6633946B1 (en) * 1999-09-28 2003-10-14 Sun Microsystems, Inc. Flexible switch-based I/O system interconnect
US6535939B1 (en) * 1999-11-09 2003-03-18 International Business Machines Corporation Dynamically configurable memory bus and scalability ports via hardware monitored bus utilizations
US6654909B1 (en) * 2000-06-30 2003-11-25 Intel Corporation Apparatus and method for protecting critical resources against soft errors in high performance microprocessors
US6907490B2 (en) 2000-12-13 2005-06-14 Intel Corporation Method and an apparatus for a re-configurable processor
US6675266B2 (en) * 2000-12-29 2004-01-06 Intel Corporation Circuit and method for protecting 1-hot and 2-hot vector tags in high performance microprocessors

Also Published As

Publication number Publication date
CN1489727A (zh) 2004-04-14
TW552558B (en) 2003-09-11
US20050021897A1 (en) 2005-01-27
WO2002048862A2 (en) 2002-06-20
WO2002048862A3 (en) 2003-10-30
CN1279464C (zh) 2006-10-11
EP1377898A2 (de) 2004-01-07
RU2003121543A (ru) 2005-02-27
HK1062213A1 (en) 2004-10-21
ATE339721T1 (de) 2006-10-15
KR20030061845A (ko) 2003-07-22
AU2002217800A1 (en) 2002-06-24
DE60123134D1 (de) 2006-10-26
KR100569750B1 (ko) 2006-04-11
US7133957B2 (en) 2006-11-07
EP1377898B1 (de) 2006-09-13
US6907490B2 (en) 2005-06-14
US20020071431A1 (en) 2002-06-13
RU2283507C2 (ru) 2006-09-10

Similar Documents

Publication Publication Date Title
DE60123134T2 (de) Verfahren und vorrichtung für einen rekonfigurierbaren prozessor
DE3851111T2 (de) Netzwerksystem mit Tokenprinzip-Zugriffsverfahren.
DE68928316T2 (de) Vorrichtung zur anteiligen nutzung von betriebsmitteln eines hauptrechners zwischen einer vielzahl von entfernten rechnern
DE60212626T2 (de) Endknotenunterteilung mittels lokaler identifikatoren
DE69932400T2 (de) Steuerungsvorrichtung für einen Portverwalter zur Verbindung von verschiedenen Funktionsmodulen
DE69108434T2 (de) Mehrgruppen-Signalprozessor.
EP2030116B1 (de) Kommunikationsbaustein
DE60210312T2 (de) I/o-vermittlungsknoten für verbindungen in einem multiprozessorrechnersystem
DE3820544C2 (de) Ortsbereichsnetzsystem mit einem hiermit gekoppelten Mehrcomputersystem und Verfahren zur Steuerung hiervon
EP2030118B1 (de) Mehrprozessor-gateway
DE4023471C2 (de) Steuerungssystem mit Hostcomputer und Kommunikationsschnittstellenschaltung
DE4142756A1 (de) Datenweg-einrichtung zur kopplung zweier busse
EP0179936A1 (de) Verfahren und Einrichtung zur Steuerung einer Sammelleitung
DE102005004464A1 (de) Verfahren zur Speicherung von Botschaften in einem Botschaftsspeicher und Botschaftsspeicher
WO2006015910A1 (de) Botschaftsverwalter und verfahren zur steuerung des zugriffs auf daten eines botschaftsspeichers eines kommunikationsbausteins
DE102005048581B4 (de) Teilnehmerschnittstelle zwischen einem FlexRay-Kommunikationsbaustein und einem FlexRay-Teilnehmer und Verfahren zur Übertragung von Botschaften über eine solche Schnittstelle
DE102004024130B4 (de) Speichersystem und Verfahren zum Betrieb eines Speichersystems
DE112004002043B4 (de) Verfahren, System und Programm zum Aufbau eines Pakets
DE68920443T2 (de) Systembus mit multiplexbetriebenen steuer-kennzeichnungsinformationen und daten.
DE69719123T2 (de) System zur Datenverarbeitung und -kommunikation mit PCI-Hochdurchsatzbus
DE60211874T2 (de) Anordnung von zwei Geräten, verbunden durch einen Kreuzvermittlungsschalter
DE102006009034B3 (de) Verfahren zum Betreiben eines Bussystems sowie Halbleiter-Bauelement, insbesondere Mikroprozessor- bzw. Mikrocontroller
DE69735546T2 (de) Paketvermittelte leitweglenkung-architektur für mehrere gleichzeitige verbindungen
DE3788826T2 (de) Verfahren und Vorrichtung zur gemeinsamen Informationsbenutzung zwischen einer Mehrzahl von Verarbeitungseinheiten.
DE69808570T2 (de) Verfahren zur Entleeren von Hochdurchsatzübertragungspuffern und Vorrichtung zur Ausführung des Verfahrens

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: HEYER, V., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 806