DE69021710T2 - Packetvermitteltes Mehrfachverarbeitungsverbindungssystem mit Fehlerkorrektur und Wiederherstellung. - Google Patents
Packetvermitteltes Mehrfachverarbeitungsverbindungssystem mit Fehlerkorrektur und Wiederherstellung.Info
- Publication number
- DE69021710T2 DE69021710T2 DE69021710T DE69021710T DE69021710T2 DE 69021710 T2 DE69021710 T2 DE 69021710T2 DE 69021710 T DE69021710 T DE 69021710T DE 69021710 T DE69021710 T DE 69021710T DE 69021710 T2 DE69021710 T2 DE 69021710T2
- Authority
- DE
- Germany
- Prior art keywords
- packet
- packets
- field
- processor
- switching network
- 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 - Fee Related
Links
- 238000012937 correction Methods 0.000 title claims description 18
- 238000011084 recovery Methods 0.000 title description 4
- 238000012545 processing Methods 0.000 claims description 132
- 230000015654 memory Effects 0.000 claims description 72
- 239000000872 buffer Substances 0.000 claims description 36
- 238000000034 method Methods 0.000 claims description 11
- 239000000203 mixture Substances 0.000 claims description 8
- 125000004122 cyclic group Chemical group 0.000 claims description 7
- 238000001514 detection method Methods 0.000 claims description 5
- 230000003139 buffering effect Effects 0.000 claims description 4
- 238000013024 troubleshooting Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 9
- 238000012546 transfer Methods 0.000 description 9
- 238000013461 design Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 208000035139 partial with pericentral spikes epilepsy Diseases 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 240000003537 Ficus benghalensis Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000002459 sustained effect Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
- G06F15/17368—Indirect interconnection networks non hierarchical topologies
- G06F15/17393—Indirect interconnection networks non hierarchical topologies having multistage networks, e.g. broadcasting scattering, gathering, hot spot contention, combining/decombining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0712—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a virtual computing platform, e.g. logically partitioned systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0721—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
- G06F11/0724—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1443—Transmit or communication errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/142—Reconfiguring to eliminate the error
- G06F11/1423—Reconfiguring to eliminate the error by reconfiguration of paths
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Multimedia (AREA)
- Software Systems (AREA)
- Multi Processors (AREA)
- Bus Control (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
- Diese Erfindung betrifft den Bereich der Mehrprozessorsysteme und die Fehlerbehebung in Mehrprozessorsystemen.
- Ein Mehrprozessorsystem (MPS) ist ein Datenverarbeitungssystem, das zwei oder mehr verbundene Verarbeitungseinheiten einsetzt, um Programme gleichzeitig auszuführen. Herkömmlicherweise werden Mehrprozessorsysteme auf der Grundlage der Verbindung zwischen den Prozessoren in mehrere Arten klassifiziert.
- Eine erste Art eines herkömmlichen Mehrprozessorsystems ist das "Mehrprozessor"-System oder das System "mit gemeinsam genutztem Speicher" (Fig. 1) . In einem System mit gemeinsam genutztem Speicher sind eine Reihe von Zentraleinheiten 102 bis 106 dadurch verbunden, daß sie einen globalen Speicher 108 gemeinsam benutzen. Obwohl jede Zentraleinheit einen lokalen Cache-Speicher haben kann, macht eine übergreifende Cache-Validierung die Caches für den Benutzer transparent, und das System erscheint so, als ob es nur einen einzigen globalen Speicher hat.
- Systeme mit gemeinsam genutztem Speicher nehmen auch die Form von mehreren Zentraleinheiten an, die mehrere globale Speicher durch ein Verbindungsnetz gemeinsam benutzen. Ein Beispiel für ein solches System ist ein Omega-Netzwerk (Fig. 2) . In einem Omega-Netzwerk leiten eine Vielzahl von stufenförmig aufgebauten Schaltern 501 bis 524 Daten zwischen einer Vielzahl von Prozessoren P0 bis P7 und einer Vielzahl von globalen Speichern M0 bis M7 durch die Verwendung eines von einem anfordernden Prozessor erzeugten binären Ziel-Identifizierungskennzeichens weiter. Jede Stufe von Schaltern in dem Netzwerk decodiert ein entsprechendes Bit des Identifizierungskennzeichens, damit das Netzwerk die Wegewahl automatisch vornimmt. Das Omega-Netzwerk macht dabei eine zentrale Steuereinheit überflüssig.
- Das Omega-Netzwerk ist in dem Schriftstück "A fault-tolerant interconnection network supporting the fetch-and-add primitive" von A. Dugar und P. Banerjee beschrieben, das von der IEEE Computer Society 1986 in Proceedings of the 1986 International Conference on Parallel Processing, 19. bis 22. August 1986, Seiten 32 bis 334 veröffentlicht wurde.
- Ein gemeinsames Merkmal von Systemen mit gemeinsam genutztem Speicher ist, daß die Zugriffszeit auf eine Datenangabe im Speicher unabhängig von dem Prozessor ist, der die Anforderung stellt. Eine wesentliche Einschränkung bei Systemen mit gemeinsam genutztem Speicher ist die, daß die gesamte Bandbreite des globalen Speichers die Anzahl der Prozessoren beschränkt, die effektiv auf dem System untergebracht werden können.
- Eine zweite Art von allgemein bekannten Mehrprozessorsystemen ist das Mehrrechner-Nachrichtenweiterleitungs-Netzwerk (Fig. 3) Nachrichtenweiterleitungs-Netzwerke werden konfiguriert, indem eine Reihe von Verarbeitungsknoten miteinander verbunden werden. Jeder Knoten 302 bis 308 enthalt eine Zentraleinheit und einen lokalen Speicher, auf den nicht global zugegriffen werden kann. Damit eine Anwendung Daten zwischen Prozessoren aufteilen kann, muß der Prograrnmierer Befehle eindeutig codieren, um Daten von einem Knoten an einen anderen zu übertragen. Im Gegensatz zu Systemen mit gemeinsam genutztem Speicher hängt die Zeit, die ein Prozessor braucht, um auf Daten zuzugreifen, von seiner Entfernung (in Knoten) von dem Prozessor ab, der die Daten momentan in seinem lokalen Speicher hat.
- In der Nachrichtenweiterleitungs-Netzwerkkonfiguration von Fig. 3 hat jeder Knoten eine direkte Verbindung zu jedem anderen Knoten. Solche Konfigurationen sind jedoch für eine große Anzahl von Prozessoren unpraktisch. Lösungen wie beispielsweise Hyperwürfel-Konfigurationen werden herkömmlicherweise verwendet, um die größte Entfernung zwischen Prozessoren zu begrenzen. Auf jeden Fall, so wie die Anzahl der Prozessoren in dem Netzwerk zunimmt, nehmen für gewöhnlich auch die Anzahl der indirekten Verbindungen und die resultierenden Speicherzugriffszeiten zu.
- Eine dritte Art von Mehrprozessorsystem ist der Hybridrechner (Fig. 4). Hybridrechner haben einige der Eigenschaften von Systemen mit gemeinsam genutztem Speicher und einige der Eigenschaften von Nachrichtenweiterleitungs-Netzwerken. Im Hybridrechner sind eine Reihe von Prozessoren 402 bis 406, von denen jeder einen lokalen Speicher hat, mittels eines Verbindungsnetzes 408 verbunden. Obwohl alle Speicher lokal sind, läßt das Betriebssystem den Rechner so erscheinen, als hätte er einen einzigen globalen Speicher. Ein Beispiel für einen Hybridrechner ist der IBM RP3. Hybridrechner können typischerweise den Zugriff auf ferne Daten wesentlich schneller bereitstellen als Nachrichtenweiterleitungs-Netzwerke. Trotzdem kann die Datenanordnung für die Leistungsfähigkeit des Algorithmus kritisch sein, und die gesamte Übertragungsgeschwindigkeit des Verbindungsnetzes stellt für die Anzahl der Prozessoren, die effektiv untergebraht werden können, eine Beschränkung dar.
- Eine Variante der Mehrprozessorsystem-Verbindungsnetze ist das Gruppenverbindungsnetzwerk (Fig. 5). In einem Gruppenverbindungsnetzwerk ist eine Reihe von Clustern 502 bis 508, von denen jedes eine Gruppe von Prozessoren 510 bis 516 und einen Multiplexer/Steuereinheit 518 enthält, durch das Vermittlungsnetz 520 verbunden. Das Cluster-Netzwerk hat gegenüber der Topologie von Fig. 4 Vorteile, da eine größere Anzahl von Prozessoren über eine bestimmte Anzahl von Anschlüssen effektiv mit dem Vermittlungsnetz verbunden werden kann. Eine Einschränkung bei Gruppenverbindungsnetzwerken ist die, daß die Bandbreite sowohl der Gruppensteuereinheit als auch die des Verbindungsnetzwerkes kritisch für die Leistungsfähigkeit des Systems ist. Aus diesem Grund sind der Aufbau des Verbindungsnetzwerkes und der Gruppensteuereinheit wichtige Faktoren bei der Bestimmung der maximalen Größe und Leistungsfähigkeit des Systems.
- Das Problem der Fehlerbehebung in Mehrprozessorsystemen wird in dem Schriftstück "A Fault Tolerant Interconnection using Error Correcting Codes" von J.E. Lilienkamp, D.R. Laurie & P-C Yew angegangen, das 1982 von der IEEE Computer Society in Proceedings of the 1982 International Conference on Parallel Processing, 24. bis 2. August 1982, Seiten 123 bis 125 veröffentlicht wurde.
- Es ist daher die Aufgabe dieser Erfindung, eine verbesserte Gruppensteuereinheit zum Einsatz in einem Mehrprozessorsystem bereitzustellen.
- Diese Aufgabe wird erfindungsgemäß gelöst, indem eine Gruppensteuereinheit bereitgestellt wird, die folgendes umfaßt:
- i) Vermittlungsmittel, das angeschlossen ist, um Pakete von einem Vermittlungsnetz zu empfangen, welches das Mehrprozessorsystem verbindet, und um die Pakete von dem Vermittlungsnetz entsprechend einer Zieladresse zu verteilen,
- ii) Warteschlangenmittel, das mit einer Vielzahl der Verarbeitungselemente verbunden ist, um den Paketfluß an die Vielzahl der Verarbeitungselemente zu puffern, wobei das Warteschlangenmittel eine Vielzahl von Paketwarteschlangen enthält, die jedem der Verarbeitungselemente zugeordnet sind,
- iii) Zusammensetzungspuffermittel, das mit der Vielzahl der Verarbeitungselemente verbunden ist, um Daten von den Verarbeitungselementen zu Paketen zusammenzusetzen, wobei das Zusammensetzungspuffermittel einen Zusammensetzungspuffer für jedes der Verarbeitungselemente enthält, und
- iii) Auswahlmittel, das mit dem Zusammensetzungspuffermittel verbunden ist, um ein Paket von dem Zusammensetzungspuffermittel auszuwählen, das an das Vermittlungsnetz gesendet werden soll.
- In einer weiteren Ausführungsform der Erfindung enthält die Gruppensteuereinheit des weiteren globale Speichermittel zum Speichern von Daten, wobei die globalen Speichermittel angeschlossen sind, um die Pakete von dem Vermittlungsmittel zu empfangen.
- Die Gruppensteuereinheit kann darüber hinaus zyklische Multiplexmittel enthalten, um ein zusammengesetztes Paket, das ausgegeben werden soll, auszuwählen, und/oder Auswahlmittel, um die Pakete in zyklischer Abfolge auszugeben.
- Die Gruppensteuereinheit kann in einem Gruppenverbindungs-Mehrprozessorsystem eingesetzt werden, das folgendes enthält:
- i) eine erste Vielzahl von Prozessoren, wobei jedes der Verarbeitungselemente in der ersten Vielzahl einen lokalen Speicher enthält;
- ii) eine zweite Vielzahl von Prozessoren, wobei jedes der Verarbeitungselemente in der zweiten Vielzahl einen lokalen Speicher enthält;
- iii) eine erste Gruppensteuereinheit, die für den Empfang von ersten Daten von der ersten Vielzahl von Prozessoren angeschlossen ist, um die ersten Daten zu Paketen zusammenzusetzen, die ein Ursprungsfeld, ein Bestimmungsfeld und ein Befehlsfeld enthalten, und um die erste Vielzahl von Paketen aus zugeben;
- iii) eine zweite Gruppensteuereinheit, die für den Empfang von zweiten Daten von einer zweiten Vielzahl von Prozessoren angeschlossen ist, um die zweiten Daten zu Paketen zusammenzusetzen, die ein Ursprungsfeld, ein Bestimmungsfeld und ein Befehlsfeld enthalten, und um die Pakete auszugeben; und
- iv) Vermittlungsnetz-Mittel, das für den Empfang der Pakete von der ersten und der zweiten Gruppensteuereinheit angeschlossen ist, um das Bestimmungsfeld zu decodieren und um festzustellen, welches der Gruppensteuereinheit-Mittel mit einem adressierten Prozessor verbunden ist, der dem decodierten Bestimmungsfeld entspricht, und um die Pakete an die eine der Gruppensteuereinheiten weiterzuleiten.
- In dem Gruppenverbindungs-Mehrprozessorsystem enthält die erste und die zweite Vielzahl von Prozessoren Mittel, um jedem anderen Prozessor in der ersten und der zweiten Vielzahl von Prozessoren den direkten Zugriff auf den lokalen Speicher zu ermöglichen.
- In einer weiteren Ausführungsform der Erfindung ist das gruppengesteuerte Mehrprozessorsystem unter Verwendung von Host-Adaptermitteln mit einem Host verbunden, die Mittel enthalten, um eine Reihe von Befehlen von dem Host zu empfangen, und Mittel, um die Befehle unter einer Vielzahl der Prozessoren zu verteilen.
- Das Host-Adaptermittel kann des weiteren Mittel enthalten, um erste Speicheradressen von dem Host in ein Band von zweiten Speicheradressen in einem lokalen Speicher in jedem der Vielzahl derprozessoren zu übersetzen.
- Die Erfindung hat als weitere Aufgabe die Entwicklung eines Fehlerbehebungsverfahrens für das gruppengesteuerte Mehrprozessorsystem. Diese Aufgabe wird gelöst, indem ein Verfahren zur Fehlerbehebung bereitgestellt wird, wobei ein erster Prozessor in dem System ein Datenpaket mit einen Adreßfeld überträgt, das eine Adresse eines zweiten Prozessors in dem System enthält, und das die folgenden Schritte umfaßt:
- i) Übertragen des Pakets von dem ersten Prozessor an das Vermittlungsnetz mittels eines ersten Pfades,
- ii) Decodieren des Adreßfeldes in dem übertragenen Paket an dem Vermittlungsnetz,
- iii) Weiterleiten des Pakets mittels eines ersten Pfades von dem Vermittlungsnetz an einen dritten, durch die Decodierung bezeichneten Prozessor in dem System,
- iv) Feststellen eines Fehlers in dem Adreßfeld des Pakets an dem dritten Prozessor,
- v) Korrigieren des Fehlers an dem dritten Prozessor, um eine korrigierte Adresse in dem Adreßfeld zu bilden,
- vi) Nochmaliges Übertragen des Pakets mit der korrigierten Adresse von dem dritten Prozessor an das Vermittlungsnetz mittels eines zweiten Pfades,
- vii) Decodieren des Adreßfeldes in dem nochmals übertragenen Paket an dem Vermittlungsnetz, und
- viii) Weiterleiten des nochmals übertragenen Pakets von dem Vermittlungsnetz an den zweiten Prozessor mittels eines dritten Pfades.
- In einer weiteren Ausführungsform der Erfindung kann das Verfahren die weiteren Schritte des Feststellens an dem Schalter enthaften, ob eine decodierte Adresse einem nicht funktionsfähigen Prozessor entspricht; und wenn die Feststellung ergibt, daß die decodierte Adresse dem nicht funktionsfähigen Prozessor entspricht, Bewirken, daß der Schalter das Ursprungs- und das Bestimmungsfeld in dem Paket austauscht und Zurücksenden des Pakets an den ersten Prozessor (604) mittels eines vierten Pfades.
- Schließlich wird die Aufgabe der Erfindung des weiteren durch ein Paketformat zur Verwendung in einem Gruppenverbindungs-Mehrprozessorsystem gelöst. Das Paketformat hat ein Befehlsfeld, das folgendes enthält:
- i) ein erstes angegebenes Bitmuster, das, wenn es von einer Gruppensteuereinheit in dem Mehrprozessorsystem decodiert worden ist, bewirkt, daß ein globaler Speicher in der Gruppensteuereinheit beschrieben wird;
- ii) ein zweites angegebenes Bitmuster, das ein Paket, welches das Befehlsfeld enthält, als ein einen Nachrichtenhauptteil übertragendes Paket kennzeichnet;
- iii) ein drittes angegebenes Bitmuster, das ein Paket, welches das Befehlsfeld enthält, als ein einen Nachrichtenvorsatz übertragendes Paket kennzeichnet;
- iv) ein Folgenummernfeld, um ein beliebiges einer Folgeanzahl von Paketen zu übertragen, bei dem das Befehlsfeld das Paket als einen Nachrichtenhauptteil angibt, und eine Anzahl von nachfolgenden Nachrichtenpaketen, bei denen das Befehlsfeld das Paket als einen Nachrichtenvorsatz angibt;
- v) ein Bestimmungsfeld, um eine erste Adresse eines Ziel-Verarbeitungselements in dem Gruppenverbindungs-Mehrprozessorsystem zuübertragen;
- vi) ein Ursprungsfeld, um eine zweite Adresse eines Quellen-Verarbeitungselements in dem Gruppenverbindungssystem zu übertragen;
- vii) ein Datenfeld; und
- viii) ein Fehlerkorrekturcode-Feld, um einen Fehlerkorrektur-, Fehlererkennungs-Korrekturcode zu übertragen.
- Das Paketformat kann ferner vorteilshafterweise in dem Befehlsfeld ein viertes angegebenes Bitmuster enthalten, das, wenn es von der Gruppensteuereinheit decodiert worden ist, bewirkt, daß auf einen lokalen Speicher in einem mit der Gruppensteuereinheit verbundenen Prozessor zugegriffen wird.
- 1. Der Aufbau des Verbindungsnetzes des vorliegenden Systems setzt Großrechner-Technologie ein, um eine Systemverbindung hoher Bandbreite zu erreichen, die weit über das Leistungsspektrum vieler zeitgenössischer Systeme hinausgeht. Die Unterbringung mit hoher Packungsdichte ermöglicht die Verwendung breiter Busse (z.B. 180 Bit), und eine schnelle bipolare Logik erlaubt die Systemtaktung mit sehr hoher Frequenz (z.B. 5 ns) . Eine dauerhafte Bandbreite von 200 GByte/Sekunde ist für gleichmäßige, wahlfreie Nachrichtenübertragungen erreichbar.
- 2. Eine DMA-Steuereinheit in jedem Verarbeitungselement sorgt für eine effiziente Übertragung von Nachrichten durch ein neuartiges Paketprotokoll, das auch die direkte Adressierung von nicht lokalen Speichern ermöglicht. Die letztere Funktion ist für einige Software-Algorithnen wichtig, die von einer Struktur mit gemeinsam genutztem Speicher ausgehen, und sie ist auch für die Fehlerbeseitigung im System und für Service-Funktionen vorteilhaft.
- 3. Die Verschachtelung von Paketen von mehreren Nachrichten durch die DMA-Steuereinheit macht das Muster von Paketübertragungen auf effiziente Weise unregelmäßig und ist für das Erreichen einer maximalen Bandbreite durch den Schalter wichtig.
- 4. Der Aufbau des Verbindungsnetzes für Paketvermittlung bietet zusätzlich zu der grundlegenden Punkt-zu-Punkt-Nachrichtenübertragung ein effizientes Rundsenden von Nachrichten sowie die globale Speicherung für Steuerfunktionen.
- 5. Das Paketformat erlaubt eine robuste Fehlerbehandlung. Die Verwendung des Fehlerkorrekturcodes (ECC) zusammen mit der Ursprungs-(SRC-) und der Bestimmungs-(DST-)Kennung in jedem Paket erlaubt eine effiziente Fehlerkorrektur oder -behandlung. Wenn ein Hardwarefehler dazu führt, daß ein Paket fehlgeleitet wird, gibt es einen von zwei Fällen: (1) Das Paket wird an ein nicht vorhandenes oder nicht funktionsfähiges Verarbeitungselement fehlgeleitet, in welchem Fall die Gruppensteuereinheit das SRC- und das DST-Feld umdreht und das Paket mit einem Fehlerkennzeichen an seinen Sender zurückschickt; oder (2) das Paket wird an ein funktionsfähiges Verarbeitungselement fehlgeleitet, welches das Paket nochmals überträgt (nachdem es den ECC nach Erfordernis angewendet hat). Die nochmalige Übertragung kann normale Fehler überwinden und, im Fall 2 oben, kann sie auch durch Verwendung eines anderen Hardware-Pfades einige störungsbedingte Fehler verhindern.
- 6. Diese äußerst parallele Verarbeitungsstruktur mit ihrer Verbindung hoher Bandbreite ist für eine große Vielzahl von Anwendungen gut geeignet, einige Beispiele dafür sind unter anderem Datenbank-Verarbeitung, Logiksimulation und künstliche Intelligenz.
- Fig. 1 ist ein Blockdiagramm eines dem Stand der Technik entsprechenden Systems mit gemeinsam genutztem Speicher.
- Fig. 2 ist ein Blockdiagramm eines dem Stand der Technik entsprechenden Systems mit gemeinsam genutztem Speicher, das unter Verwendung eines Omega-Verbindungsnetzes konfiguriert ist.
- Fig. 3 ist ein Blockdiagramm eines dem Stand der Technik entsprechenden Nachrichtenweiterleitungs-Netzwerks.
- Fig. 4 ist ein Blockdiagramm eines dem Stand der Technik entsprechenden Hybridsystems.
- Fig. 5 ist ein Blockdiagramm eines dem Stand der Technik entsprechenden Gruppenverbindungssystems.
- Fig. 6 ist ein Überblick über ein Mehrprozessorsystem gemäß einer Ausführungsform der vorliegenden Erfindung.
- Fig. 7 ist ein ausführlicheres Diagramm des 32x32-Schalters von Fig. 6.
- Fig. 8 ist ein ausführlicheres Diagramm eines 8x8-Schalters des Typs, der in der Ausführungsform des 32x32-Schalters von Fig. 7 verwendet wird.
- Fig. 9 ist ein ausführlicheres Diagramm des typischen Schalters/Warteschlange von Fig. 8.
- Fig. 10 ist ein ausführlicheres Diagramm einer Gruppensteuereinheit des Typs, der in der Ausführungsform des Mehrprozessorsystems von Fig. 6 verwendet wird.
- Fig. 11 ist eine Veranschaulichung des bevorzugten Paketformats, das in dem Mehrprozessorsystem von Fig. 6 verwendet wird.
- Fig. 12 ist ein ausführlicheres Blockdiagramm eines typischen Verarbeitungselements, das die Verbindung zwischen dem Verarbeitungselement, dem Speicher, der DMA-Steuereinheit und der Gruppensteuereinheit zeigt.
- Fig. 13 ist ein ausführlicheres Blockdiagramm der DMA-Steuereinheit von Fig. 12, das jeden der Funktionsblöcke und ihre Verbindungen zeigt.
- Fig. 14 ist eine Veranschaulichung einer Verarbeitungselement- Cluster-Platine.
- Fig. 15 ist eine Veranschaulichung einer Rahmenbelegung für das Mehrprozessorsystem von Fig. 6.
- Fig. 16 ist eine Veranschaulichung einer Anordnung für eine Verarbeitungselement-Karte.
- Fig. 17 ist ein Blockdiagramm eines Hostadapters und der Verbindung zu einem Hostsystem.
- Gleichen Elementen, die in mehreren Figuren vorkommen, wurden gleiche Bezugszahlen zugeordnet.
- Das vorliegende Mehrprozessorsystem enthält eine große Anzahl von Verarbeitungselementen, die mittels eines Schalters hoher Bandbreite miteinander verbunden sind. Die in dieser Offenbarung beschriebene Hardware stellt bis zu 4096 Verarbeitungselemente bereit, obwohl die beschriebene Paketarchitektur bis zu 32768 Verarbeitungselemente erlaubt. Es sollte sich jedoch von selbst verstehen, daß eine beliebige Anzahl von Verarbeitungselementen mit den hier beschriebenen Grundsätzen konfiguriert werden könnte. Der Umfang einer Systemkonfiguration ist entsprechend den Verarbeitungserfordernissen skalierbar, wobei der Grad der Unterteilung bis zu einem einzigen Verarbeitungselement (PE) reichen kann.
- Jedes Verarbeitungselement enthält einen oder mehr äußerst leistungsfähige (z.B. 50 bis 200 MIPS) Universal-Mikroprozessoren, einen großen lokalen Speicher (z.B. 64 bis 256 MByte) und eine DMA-Steuereinheit, die Nachrichten durch den Schalter sendet und empfängt, ohne daß der Prozessor eingreifen muß. Jedes Verarbeitungselement kann auch einen oder mehr optionale Hardware-Beschleuniger für Datenbank-Verarbeitungsfunktionen enthalten.
- Jedes Verarbeitungselement kann auf einer einzelnen Leiterplatte untergebracht werden. Die Verarbeitungselement-Karten können auch Spezial-Hardware bereitstellen, wie beispielsweise E/A-Anschlüsse für den direkten Zugriff auf ein relationales Datenbank-Dateisystem, Vektorprozessoren oder Datenverschlüsselungs- Einrichtungen. Insbesondere kann Datenbank-Beschleunigungshardware zur Verbesserung der Leistungsfähigkeit von gebräuchlichen Funktionen wie prädikative Auswertung, Feldextraktion, Sortieren, Mischen und Verknüpfen verwendet werden.
- Der Schalter, der die Verarbeitungselemente miteinander verbindet, ist hierarchisch, wobei er ein Netzwerk aus Clustern umfaßt. Bis zu 64 Verarbeitungselemente sind miteinander verknüpft, um ein Cluster zu bilden, und bis zu 64 Cluster sind mittels eines Banyan-Netzwerks miteinander verbunden. Nachrichten werden in Form von Paketen durch den Schalter weitergeleitet, von denen jedes ein 16-Byte-Datenwort und ein Steuerinformationswort enthält.
- Fig. 6 ist ein struktureller Überblick über das vorliegende Mehrprozessorsystem. Das System von Fig. 6 ist ein Gruppenverbindungsnetzwerk (Cluster-Netzwerk), das 32 Gruppensteuereinheiten 602(1) bis 602(32) umfaßt. Jede Gruppensteuereinheit stellt eine Systenschnittstelle für 64 Verarbeitungselemente (PES) 604(1-64), 604(65-128) .. . 604(1985-2048) bereit. Jede Gruppe aus einer Gruppensteuereinheit und 64 Verarbeitungselementen wird als "Cluster" bezeichnet.
- Jedes Verarbeitungselement in einem bestimmten Cluster ist mit der Gruppensteuereinheit mittels eines Eingangsbusses (z.B. 612(1)) und eines unabhängigen (separaten) Ausgangsbusses (z.B. 614(1)) verbunden. Analog dazu sind die 32 Gruppensteuereinheiten jeweils mit einem 32x32-Vermittlungsnetz 606 mittels eines Eingangsbusses 608(1-32) und eines unabhängigen Ausgangsbusses 610(1-32) verbunden. Das ganze System enthält somit 2048 Verarbeitungselenente 604(1-2048) . Sowohl die Gruppensteuereinheiten als auch das Vermittlungsnetz dienen dazu, Daten zusammenzusetzen und sie zwischen den Verarbeitungselementen synchron zu übertragen, was von einem sehr schnellen Takt gesteuert wird (z.B. 5 ns Zykluszeit)
- Erweiterte Versionen des Systems mit beispielsweise 64 Clustern, die durch ein 64x64-Vermittlungsnetz verbunden sind, können in derselben Struktur realisiert werden. Viele verschiedene größere und kleinere Konfigurationen sind genauso machbar.
- Wo es gewünscht ist, daß das Cluster-Netzwerk von Fig. 6 als angeschlossener Coprozessor für einen Host (z.B. ein System der Serie IBM 3090) fungiert, kann ein Anschluß im Vermittlungsnetz 606 eigens als Host-Schnittstelle verwendet werden. Die Host- Schnittsteile wird von einem Host-Adapterelement bereitgestellt, das den Platz einer beliebigen der Gruppensteuereinheiten 602(1) bis 602(32) von Fig. 6 einnimmt.
- Eine Ausführungsform des Host-Adapters ist in Fig. 17 veranschaulicht. Die Verbindung zwischen dem Host 1800 und dem Hostadapter 1700 wird vorzugsweise von mehreren Lichtwellenleiteroder Kupferkabeln 1702 bereitgestellt, die sich an eine Hochgeschwindigkeits-Kommunikationsverbindung im Host anschließen lassen. Die Verbindung ist vorzugsweise eine Vollduplex-Verbindung, die für eine gleichzeitige Übertragung in beiden Richtungen ohne Quittungsprotokolle sorgt.
- Der Host 1800 überträgt vorzugsweise Datenblöcke, die einen oder mehr Datensätze enthalten, denen ein Kennsatz vorausgeht, der Steuerinformationen (die eine logische Zieladresse und ein Befehlsfeld einschließen) enthält. Eine exemplarische Größe für jeden Datensatz ist 4 Kilobyte. Befehle vom Host an das Cluster- Netzwerk werden als ein besonderer Fall eines Kennsatzes ohne begleitende Datensätze ausgeführt. Die bevorzugte Struktur für die Kommunikation zwischen Host und Cluster-Netzwerk ist ein symmetrisches Peer-zu-Peer-Nachrichtenweiterleitungsschema, das es dem Cluster-Netzwerk erlaubt, asynchrone Antworten an den Host über Befehle zu erzeugen, die zu einer Unterbrechung auf dem Host 1800 führen.
- Um ungleiche Datenübertragungsgeschwindigkeiten bewältigen zu können, verfügt der Hostadapter 1700 über einen Datenblock-Pufferbereich 1704. Eine Pufferung ist vorgesehen, da die Datenübertragungsgeschwindigkeit zum und vom Host die Datenübertragungsgeschwindigkeit eines einzelnen Verarbeitungselements durchaus übersteigen kann. Beispielsweise kann der Host eine Datenübertragungsgeschwindigkeit im Bereich von 500 MByte/Sekunde bis 1 GByte/Sekunde haben, und ein bestimmter Datenblock könnte an ein einzelnes Verarbeitungselement weitergeleitet werden, das Daten nur mit einer Spitzengeschwindigkeit von 200 MByte/Sek. empfangen kann. Somit enthält der Datenblock-Pufferbereich 1704 mehrere Puffer (vorzugsweise mit jeweils mindestens 4 KB) zum Zweck der Geschwindigkeitsanpassung. Dies ermöglicht es dem Hostadapter 1700, mehrere gleichzeitige Operationen zu verwalten, um die Hostverbindung mit der vom Host erlaubten maximalen Geschwindigkeit zu betreiben.
- Der Host 1800 adressiert das Cluster-Netzwerk als einen großen linearen Adreßraum. Über eine Zuordnungstabelle, die mit der Leitwegwahllogik 1706 realisiert ist, wandelt der Hostadapter 1700 jede Hostadresse in eine physische Adresse im Speicher eines Verarbeitungselements um. Somit ist der Host-Adreßraum von Datenblöcken über alle Verarbeitungselemente als ein Band innerhalb ihrer lokalen Speicher verteilt. Es ist beabsichtigt, daß gar die Hälfte des lokalen Speicherbereichs der Verarbeitungselemente zu diesem Zweck verwendet wird.
- Die Zuordnung wird von einem Mikroprozessor 1708 im Hostadapter 1700 verwaltet. Der Mikroprozessor 1708 hat einen lokalen Speicher 1710 für Arbeitsdaten und den Mikrocode und führt die Funktion der Bereitstellung der Konfigurationssteuerung (einschließlich der logischen Unterteilung des Mehrprozessorsystems zur Bearbeitung mehrerer Anfragen) aus. Die eigentlichen Datenübertragungen werden vielmehr von Unterstützungselementen, die nachstehend erklärt werden, als vom Mlkroprozessor 1708 selbst durchgeführt.
- Die Schnittstellenlogik 1712 führt die Funktionen der Umwandlung von Datenblöcken vom Host in Pakete zur Übertragung an Verarbeitungselemente über das Vermittlungsnetz und die Rückumwandlung von Paketen aus. Auf der Hostseite des Hostadapters 1700 wandelt ein Leitungsadapter 1714 Daten von dem internen Hostadapter-Format in das entsprechende Leitungsformat (z.B. Lichtwellenleiter- Formate) und umgekehrt um. Der Leitungsadapter 1714 führt auch Protokolle auf Verbindungsebene aus. Wie zuvor erklärt worden ist, entscheidet die Leitwegwahllogik 1706, wo logische Adressen Prozessoren zugeordnet werden.
- Physisch ist der Hostadapter 1700 vorzugsweise unter Verwendung einer Hauptplatine realisiert, die eine Reihe von herkömmlichen Logik- und Speicherkarten trägt, welche dieselben Technologien verwenden, wie sie in den Verarbeitungselement-Karten verwendet werden. Es sollte sich von selbst verstehen, daß das Mehrprozessorsystem von Fig. 6 als eigenständiges Mehrprozessorsystem ohne die Bereitstellung einer Hostverbindung arbeiten kann.
- Fig. 7 ist eine ausführlichere Veranschaulichung des 32x32-Vermittlungsnetzes 606 von Fig. 6. Das Vermittlungsnetz 606 umfaßt acht miteinander verbundene 8x8-Schalter 702 bis 716, von denen jeder vorzugsweise auf einem thermischen Leitungsmodul (TCM) im?Iementiert ist. Eine erste Spalte (Stufe) von Schaltern 702 bis 708 empfängt ankommende Pakete von jeder der 32 Gruppensteuereinheiten 602(1) bis 602(32). Die Ausgänge eines jeden Schalters in der ersten Spalte sind über Ausgangsbuspaare mit jedem von vier 8x8-Schaltern 710 bis 716 verbunden, die in einer zweiten Spalte (Stufe) angeordnet sind. Die zweite Spalte von Schaltern ist angeschlossen, um die empfangenen Datenpakete an die Dateneingänge einer beliebigen der 32 Gruppensteuereinheiten 602(1) bis 602(32) weiterzuleiten.
- Die 8x8-Schalter 702 bis 716 sind des Typs mit automatischer Leitwegwahl (d.h. sie decodieren ein internes Feld in der ankommenden Nachricht, um den Leitweg zu bestimmen), der eine Verbindung zwischen einem bestimmten Eingangskanal und einem bestimmten Ausgangskanal bereits teilen kann. Außerdem ermöglichen die 8x8-Schalter eine gleichzeitige Verbindung und Übertragung zwischen allen acht Eingangskanälen und allen acht Ausgabekanälen entsprechend dem ausgewählten Leitweg.
- Eine 64x64-Version des Schalters wird in einer Ausführungsform mit 64 Gruppensteuereinheiten verwendet. Der 64x64-Schalter wird hergestellt, indem acht weitere 8x8-Schalter für insgesamt 16 Schalter hinzugefügt werden, die in zwei Spalten zu je 8 Schaltern angeordnet werden. Für die 64x64-Konfiguration wird nur ein Bus zwischen jedem Schalter in der ersten und der zweiten Stufe zur Verfügung gestellt. Es ist nur ein Bus erforderlich, da alle Ausgänge eines jeden Schalters in der ersten Spalte mit einen Schalter in der zweiten Spalte der 64x64-Ausführungsform einzeln verbunden sind.
- Fig. 8 zeigt einen typischen Schalter der 8x8-Schalter 702 bis 716. Jeder 8x8-Schalter umfaßt acht 8x1-Schalter/Warteschlangen. Die Verbindung eines typischen Exemplars dieser Schalter/Warteschlangen 802 ist veranschaulicht. Ein jeder der Eingangskanäle eines jeden 8x8-Schalters/Warteschlange ist über eine Busleitung mit allen acht 8x1-Schaltern/Warteschlangen verbunden. Jeder 8x1-Schalter/Warteschlange kann zwischen 0 und 8 seiner Eingangssignale (Quintwort-Pakete) nehmen und sie in jedem Zyklus des Netztaktes in eine einzelne FIFO-Ausgangswarteschlange stellen Im selben Zyklus kann ein einzelnes Paket (der Anfang der Warteschlange) aus der Warteschlange entnommen und zur nächsten Stufe des Vermittlungsnetzes oder zum endgültigen Bestimmungsort weitergeleitet werden. Wenn die Warteschlange zu Beginn eines Zyklus leer ist, kann ein gültiges Eingangspaket die Warteschlange umgehen und direkt zum Ausgang wandern, wodurch ein Zyklus gespart wird, der andernfalls in einer unnötigen Zwischenspeicherung verschwendet worden wäre.
- Jedes Paket trägt seine eigene Zieladresse bei sich. Der Adressierungsmechanismus stellt die folgende Funktion bereit. Nur die Pakete, die für den Ausgangskanal, der von einem bestimmten Schalter/Warteschlange dargestellt wird, richtig adressiert sind, werden tatsächlich an diesem Kanal in die Warteschlange gestellt. Ferner wird jedes Paket nur in eine Warteschlange gestellt. Die Adressen müssen so sein, daß eine Adresse einem eindeutigen Pfad zwischen einer Quelle und einem Ziel entspricht. Gruppen von 3 Bit in jeder Adresse stellen die lokalen Adressen in jedem Schalter dar. Ein Schema mit festgelegten Prioritäten dient zur Festlegung, in welcher Reihenfolge jedes der gleichzeitigen Eingangspakete in die Warteschlange gestellt wird. Obwohl ein ausgefeilteres Schema verwendet werden könnte, da jedes Quintwort-Paket die Möglichkeit hat, in jedem Zyklus in die Warteschlange zu kommen, ist das Schema mit festgelegten Prioritäten ein inhärent "faires" Schema (d.h. keine einzige Quelle bekommt mehr oder weniger als ihren Anteil an Einträgen in die Warteschlange, es sei denn, andere Quellen haben keine Daten für diesen Ausgangskanal).
- Fig. 9 ist ein ausführlicheres Diagramm des in Fig. 8 gezeigten typischen Schalters/Warteschlange 802. Jeder Schalter/Warteschlange enthält eine Warteschlange 902 von bis zu 64 Paketen. Jedes Paket hat eine Größe von einem Quintwort (180 Bit) . Jedes Wort enthält 32 Datenbits plus 4 ECC-Bits. Ein Paket von einem Eingangskanal wird von der Erkennungslogik 904 eines einzelnen Schlters/Warteschlange auf der Grundlage der Zieladresse (DST id), die im Steuerwortteil des Pakets enthalten ist, ausgewählt. Bis zu acht Pakete (eines von jedem Eingangskanal) können während eines jeden Zyklus an einem bestimmten Ausgangskanal in die Warteschlange gestellt werden. Gleichzeitig kann jeder Ausgangskanal ein Paket zur Übertragung auswählen, entweder aus seiner lokalen Warteschlange 902 oder aus der Kurzschlußlogik 906, die es einem einzelnen Eingangssignal ermöglicht, direkt zum Ausgangskanalregister 910 zu wandern, wenn die Warteschlange leer ist. Eine Belegt-Logik 908 ist bereitgestellt, um das Weiterleiten eines Pakets zu verhindern, wenn eine nachgeordnete Warteschlange voll ist. Dieses Konzept verhindert, daß ein Ausgang während starker Aktivitäten belegt erscheint und kann dadurch vermeiden, daß der Belegtzustand an Sender weitergeleitet wird.
- Als ein Beispiel für die Funktionsweise nehmen wir einmal an, daß drei der acht Eingangssignale in den 8x8-Schalter gültige Adressen haben, die sie zum zweiten Ausgangskanal leiten. Die Erkennungslogik 904 wählt diese drei Adressen aus, die zu diesen Teil des Schalters geleitet werden sollen. Wenn die Ausgangskanal-Warteschlange 902 nicht leer und nicht voll ist, werden die Eingangspakete in die Warteschlange gestellt. Wenn die Ausgangskanal-Warteschlange 902 voll ist, verhindert die Belegt-Logik 908 das Hereinleiten der Pakete. Wenn die Ausgangskanal-Warteschlange 902 leer ist, nimmt die Kurzschlußlogik 906, gemäß eines herkömmlichen Prioritätsschemas, eines der drei Eingangspakete und überträgt es direkt an das Ausgangskanalregister 910, wobei sie gleichzeitig die verbleibenden zwei Pakete in die Ausgangskanal-Warteschlange stellt. Das Paket im Ausgangskanalregister 910 wird zur nächsten Stufe des Schalters geleitet, solange diese Stufe nicht belegt ist.
- Fig. 10 ist eine ausführlichere Veranschaulichung einer exemplarischen Gruppensteuereinheit der Gruppensteuereinheiten 602(1) bis 602(32) von Fig. 6. Die Gruppensteuereinheit 1 602(1) wird -beispielhalber verwendet. Von der zweiten Stufe des Vermittlungsnetzes (Schalter 710 bis 716) kommend, werden auf dem Eingagsbus 608(1) empfangene Daten an einen 9-von-6-Schalter 1002 weitergeleitet. Der 9-von-6-Schalter 1002 empfängt sechs Eingabesgnale: eine vom Vermittlungsnetz 606, eine von einem globalen Speicher 1004 und vier von einem Gruppensteuereinheit-Zusanmensetzungspuffer 1006. Der 9-von-6-Schalter 1002 verteilt die empfangenen Daten (von den sechs Eingaben) an den entsprechenden "Oktanten" oder an den globalen Speicher 1004. Der globale Speicher 1004 kann für viele verschiedene Funktionen benutzt werden, unter anderen für die Aufteilung des Status zwischen Verarbeitungselementen, Ablaufkoordination, gemeinsame Algorithmus- Steuerung und gemeinsam benutzte Daten.
- Um die empfangenen Daten an die entsprechenden Oktanten weiterzuleiten, decodiert der 9-von-6-Schalter 1002 3 Bit von der internen Paket-Zieladresse (DST) . Alternativ dazu wird auf den globalen Speicher 1004 zugegriffen, indem der Schalter 1002 einen Befehl zum Zugriff auf den globalen Speicher decodiert. Konflikte um die Ausgangssignale von dem 9-von-6-Schalter 1002 werden mit einem herkömmlichen Prioritäts- und zyklischen Multiplexschema gelöst. Die Verbindung vom Vermittlungsnetz 608(1) hat immer höchste Priorität.
- Von den 9 Ausgängen 1010(1-9) des 9-von-6-Schalters 1002 sind acht mit Oktanten von Verarbeitungselement-Warteschlangen verbunden. Ein exemplarischer Oktant ist durch die Bezugszahl 1008 gekennzeichnet. Jeder von acht Ausgängen 1010(1) bis 1010(8) ist mit einem einzelnen Oktanten dieser Art verbunden. Jeder Oktant enthält acht Verarbeitungselement-Warteschlangen. Jede Warteschlange hat eine Tiefe von 16 Paketen und schließt eine Belegt- /Voll-Logik und Kurzschlüsse für leere Warteschlangen ein. Jeder Oktant hat nur einen Eingang (von dem 9-von-6-Schalter) und einen Ausgang und ermöglicht es, daß eine Lese- und eine Schreiboperation gleichzeitig erfolgen können.
- Jede Gruppensteuereinheit 602(1) bis 602(32) enthält des weiteren 32 Verarbeitungselement-Anschlüsse (PEPs) 1012(1) bis 1012(32). Jeder Verarbeitungselement-Anschluß enthält Unteranschlüsse zur Verbindung mit zwei Verarbeitungselementen. Jeder Unteranschluß enthält einen Zwei-Byte-Ausgangskanal, der mit eineu entsprechenden der Verarbeitungselement-Eingangsbusse 612(1- 64) verbunden ist, und einen Ein-Byte-Eingangskanal, der mit dem entsprechenden der Verarbeitungselement-Ausgangsbusse 614 (1-64) für jedes von zwei Verarbeitungselementen verbunden ist. Der Ausgang einer jeden Warteschlange ist über eine Busleitung mit allen vier PEPS (für acht Verarbeitungselemente) in dem Oktanten verbunden. Die PEPS verwenden die Adressendecodierung, um nur diejenigen Pakete hereinzuleiten, die an das zugehörige Verarbeitungselement adressiert sind. Jeder PEP enthält einen Paketpuffer für den Ausgangskanal mit Logik, um den Oktant-Warteschlangen zu signalisieren, wenn der Puffer leer ist.
- Jeder der acht Oktanten arbeitet unabhängig, wobei er einen seiner acht PEP-Puffer ein Quintwort in jedem Zyklus übergibt, wenn ein Paket vorhanden ist. Von den PEPS wird das Paket über den zugehörigen Verarbeitungselement-Eingangsbus zweibyteweise an das adressierte Verarbeitungselement gesendet. Die Asymmetrie der Eingangs- und Ausgangsbusse (ein Byte im Gegensatz zu zwei Byte) trägt zur Vermeidung von Bedingungen bei, die zu vollen Warteschlangen führen.
- In der Einwärtsrichtung (d.h. von den Verarbeitungselementen) kommt ein Datenbyte über einen der Eingangsbusse von einem Verarbeitungselement in den entsprechenden Verarbeitungselement- Anschluß (d.h. den PEP, mit dem das Verarbeitungselenent (PE) verbunden ist). Vom Verarbeitungselement-Anschluß wird das ankommende Datenbyte direkt in einen Anschluß eines Zusammensetzungspuffers 1006 geleitet, der aufeinanderfolgende Bytes aufnimmt und ein Quintwort-Paket bildet. Der Zusammensetzungspuffer hat 64 Seitenrahmen (Quintwort-Speicherplätze) 1014(1) bis 1014(64). Mit anderen Worten gibt es in dem Zusammensetzungspuffer einen Seitenrahmen für jedes Verarbeitungselement, von denen jedes unabhängig arbeitet und seine eigene Bytezähl- und Belegt- Logik hat (nicht gezeigt).
- Die Zusammensetzungspuffer-Seitenrahmen sind in vier Spalten angeordnet. Jede Spalte hat ihre eigene zyklische Multiplexlogik, um einen von den Seitenrahmen auszuwählen, die vollständig sind. In jedem Zyklus des Netztaktes kann ein Quintwort-Paket von einem Seitenrahmen in jeder Spalte herausgeleitet werden. Die herausgeleiteten Pakete gehen zum 9-von-6-Schalter 1002 und zum 1- von-5-Selektor 1016. Ein fünftes Eingangssignal in den 1-von-5- Selektor 1016 kommt von dem globalen Speicher 1004. Auf der Grundlage der Adressen- und zyklischen Multiplexlogik nimmt der 1-von-5-Selektor ein Paket, das durch das Vermittlungsnetz 606 geleitet werden muß, und schickt es auf den Weg. Pakete, die nicht erfolgreich durch entweder den 1-von-5-Selektor oder den 9-von-6-Schalter geleitet werden, bleiben in ihren Seitenrahmen, um beim nächsten Mal, das der zyklische Multiplexalgorithmus erlaubt, ausgewählt zu werden.
- Ein Beispiel für die Funktionsweise der Gruppensteuereinheit, bei einer gleichmäßigen Verteilung von Nachrichten, ist wie folgt:
- Ein Eingangssignal von den angeschlossenen Verarbeitungselementen, ein Byte pro Zyklus, wird in jeden der Zusammensetzungspuffer eingelesen. Fünf Quintwort-Pakete pro Zyklus können zum 1- von-5-Selektor herausgeleitet werden, so daß ein Quintwort pro Zyklus an eine andere Gruppensteuereinheit gesendet wird.
- Am Ausgang in PE-Richtung können mit Warteschlangenbildung bis zu 6 Quintwort-Pakete an bis zu 9 Bestimmungsorte geleitet werden. Unter der Annahme eines 5-ns-Zyklus der Gruppensteuereinheit, mit einem 10-ns-Zyklus am Eingang und Ausgang zu den PE- Bussen, kann die Gruppensteuereinheit 6,4 GByte/Sek. von den PEs (100 Mbyte/Sek./PE) eingeben. Die Zusammensetzungspuffer und der globale Speicher können 12,8 GByte/Sek. ausgeben, von denen bis zu 3,2 GByte/Sek. an andere Gruppensteuereinheiten übertragen werden können. Bis zu 19,2 GByte/Sek. können in die Ausgangswarteschlangen eintreten, und die Ausgangswarteschlangen selbst können bis zu 28,8 GByte/Sek. an die PEPs und den globalen Speichr senden. Die PEPs können jeweils 200 MByte/Sek. an ihre entsprechenden PES liefern, was zusammengenommen ermöglichen würde, daß bis zu 12,8 GByte/Sek. von der Gruppensteuereinheit an die PES fließen. Obgleich dies Spitzenzahlen sind, zeigen sie, daß das Konzept dafür ausgelegt ist, einen konstanten Strom von 3,2 GByte/Sek. von den PEs an andere Cluster und bis zu 12,8 GByte/- Sek. zurück an die PEs fließen zu lassen. Wieder ist das Konzept dafür ausgelegt, zu vermeiden, daß sich Warteschlangen füllen und es zu einem Konflikt stromaufwärts im Schalter kommt.
- Fig. 12 zeigt eine bevorzugte Ausführungsform der Verarbeitungselemente 604(1) bis 604(2048) von Fig. 6. Es sollte sich von selbst verstehen, daß das vorliegende Mehrprozessorsystem andere Arten von Prozessoren als Verarbeitungselemente verwenden könnte. Der Zentralprozessor 1202 des Verarbeitungselements ist vorzugsweise ein dem Stand der Technik entsprechender RISC-Mikroprozessor. Er ist auf herkömmliche Weise mit dem Prozessor- Cache 1204 verbunden, der eine kurze Zugriffszeit auf Instruktionen und Daten ermöglicht. Der Bus vom Cache 1204 ist mit einer DMA-Steuereinheit 1206 verbunden. Die DMA-Steuereinheit 1206 stellt dem Cache 1204 bidirektionale Anschlüsse zu jedem der Schalterpuffer 1208 und dem Verarbeitungselement-Hauptspeicher 1210 zur Verfügung. Der Schalterpuffer 1208 ist ein Eingabe- /Ausgabepuffer, der für die Daten und Protokolle zu und von der Gruppensteuereinheit zuständig ist. Die Gruppensteuereinheit läßt sich mit dem Verarbeitungselement über den Schalterpuffer 1208 mittels zweier unidirektionaler Anschlüsse verbinden, die mit einzelnen Bussen 1212, 1214 verbunden sind. Der erste unidirektionale Anschluß ist für den eingehenden Verkehr von der Gruppensteuereinheit zum Verarbeitungselement zuständig, während der zweite unidirektionale Anschluß für den abgehenden Verkehr vom Verarbeitungselement zur Gruppensteuereinheit zuständig ist.
- Fig. 13 ist ein ausführlicheres Diagramm der DMA-Steuereinheit 1206 von Fig. 12. Um ankommende Nachrichten zu verarbeiten, nimmt ein Quintwort-Zusammensetzungspuffer 1302 jeweils 2 Datenbyte von der Gruppensteuereinheit auf den Verarbeitungselement- Bug 1212 und setzt das Paket wieder zusammen. Die ECC-Logik 1304 prüft die Integrität der Daten und stellt sie wieder her und prüft auch, ob das Paket am richtigen Bestimmungsort angekommen ist.
- Sobald die Datenintegrität überprüft oder korrigiert worden ist und festgestellt wird, daß das Paket an seinem richtigen Bestimmungsort angekommen ist, stellt die Eingabenachricht-Steuerlogik 1308 die Daten in eine Warteschlange im PE-Speicher 1210. Diese Aufgabe wird von einer Speicher-Entscheidungssteuereinheit 1310 ausgeführt, die mehrere Anforderungen für den PE-Speicher 1210 verarbeiten und Speicherkonflikte lösen kann. Die Eingabenachricht-Steuerlogik 1308 signalisiert dann dem PE-Mikroprozessor 1202, daß eine Nachricht vorhanden ist.
- Wenn der PE-Mikroprozessor 1202 eine Nachricht an ein anderes Verarbeitungselement (PE) schicken möchte, stellt er die Nachricht zuerst in eine Bestimmungswarteschlange im PE-Speicher 1210. Der Mikroprozessor 1202 signalisiert dann der Ausgangsnachricht-Steuerung 1312, daß eine Nachricht bereit ist. Er macht dies, indem er eine "Speicher"-Operation an eine feste Adresse vornimmt. Diese Adresse gibt es im PE-Speicher 1210 nicht, sondern sie wird von der Speicher-Entscheidungssteuerung 1310 als ein besonderes Signal decodiert. Die Daten für die "Speicher"- Operation zeigen auf die Bestimmungswarteschlange im PE-Speicher 1210.
- Bevor sie an die Gruppensteuereinheit gesendet wird, wird jede Nachricht in der Bestimmungswarteschlange mit einem Vorsatz versehen. Die Kopfsätze sind lokal in der DMA-Steuereinheit 1206 in Q-Vorsatzbereich 1314 des Ziel-Verarbeitungselements abgelegt. Der Nachrichtenvorsatz gibt die Gesamtlänge der Nachricht in Byte (bis zu 4096), die Kennung (id) des Verarbeitungselements, an das die Nachricht gesendet werden soll (15-Bit-DST-id), sowie die id dieses sendenden Verarbeitungselements (15-Bit-SRC-id) an.
- Statt die Nachrichten sequentiell zu senden, verschachtelt die DMA-Steuereinheit die Pakete von mehreren Nachrichten, um eine hohe Schalter-Bandbreite zu erreichen. Jedoch werden alle Nachrichten von einem Verarbeitungselement an ein anderes, bestimmtes Verarbeitungselement in Reihenfolge gesendet. Der Aufbau des Schalters stellt sicher, daß die Pakete, die ein Verarbeitungselenent von einem anderen, bestimmten Verarbeitungselement empfängt, in derselben Reihenfolge empfangen werden, in der sie gesendet wurden. Die Ausgangsnachricht-Steuerlogik ruft vorher die gesamte Anfangsnachricht oder Teile davon für die verschiedenen Bestimmungsorte in den Ausgangsnachricht-Puffer 1316 ab. Vom Ausgangsnachricht-Puffer 1316 werden die Daten quintwortweise in den Quintwort-Disassemblierungspuffer 1318 übernommen, wo sie byteweise an die Gruppensteuereinheit gesendet werden.
- Als weitere Funktion erzeugt die DMA-Steuereinheit 1206 auch vor der Übertragung für jedes Paket einen Neun-Bit-SEC/DED-Fehlerkorrekturcode (ECC).
- Die Fehlerkorrektur-Funktion des vorliegenden Systems wird nun ausführlicher beschrieben. Wir zuvor erklärt worden ist, wendet die DNA-Steuereinheit 1206 den ECC an, während die Nachrichtenpakete an einem Verarbeitungselement ankommen, und führt dann die vom Befehlsfeld des Pakets angegebene Funktion aus. Wenn der ECC angibt, daß ein einzelner Bitfehler bei der DST id des empfangenen Pakets aufgetreten ist, dann hätte das Paket an ein anderes Verarbeitungselement gehen sollen, und folglich berichtigt die DNA-Steuereinheit 1206 die DST id und überträgt das Paket erneut an das richtige Verarbeitungselement. Wenn das Cluster-Netzwerk mit einem Host konfiguriert ist, meldet die DNA- Steuereinheit 1206 dieses Fehlerereignis auch an ein Host-Servicesubsystem. Dies erfolgt, indem eine Unterbrechung an die Software auf dem Host erzeugt wird, die den Fehler, von einem Schwellenwert-Algorithmus gesteuert, dem Servicesubsystem meldet.
- Während der ECC im sendenden Verarbeitungselement erzeugt und im empfangenden Verarbeitungselement angewendet wird, wird auch jedes Mal, wenn ein Paket in ein TCM eintritt oder dieses verläßt sowie nach dem Empfang durch das Ziel-Verarbeitungselement eine Paritatsprüfung durchgeführt. Somit werden korrigierbare Fehler erkannt und können dem Service-System gemeldet werden, sobald sie beginnen, aufzutreten.
- Die selbstkorrigierende Fehlerbehandlungsroutine des vorliegenden Systems läßt sich durch Bezug auf Fig. 6 besser verstehen. Wir nehmen beispielsweise an, daß es ein Verkabelungsproblem zwischen dem Cluster 602(1) und dem 32x32-Vermittlungsnetz 606 gibt, das einen störungsbedingten Fehler im Feld für die Zieladresse eines ankommenden Paketes verursacht. Wir nehmen weiter an, daß das ankommende Paket für das Verarbeitungselement 604(3) auf der Gruppensteuereinheit 602(1) bestimmt war, aufgrund des störungsbedingten Fehlers jedoch am Verarbeitungselement 604(1) auf derselben Gruppensteuereinheit ankommt.
- Das empfangende Verarbeitungselement 604(1) empfängt das ankommende Paket mittels des 9-von-6-Schalters und eines PEP-Ausgangsbusses. Sobald das Paket empfangen worden ist, korrigiert das Verarbeitungselement den Fehler im Feld für die Zieladresse (unter Verwendung des ECC) und sendet das Paket auf der Gruppensteuereinheit 602(1) mittels des PEP-Eingangsbusses und des Zusammensetzungspuffers erneut an das richtige PE 604 (1). Da das Paket nicht mehr auf dem problematischen Verbindungsweg entlangläuft, wiederholt sich der störungsbedingte Fehler für dieses Paket nicht.
- Ein ähnliches Verfahren stellt die Korrektur von vielen Fehlern sicher, wo eine falsche Zieladresse auf dem Bus von den Gruppensteuereinheiten zum Vermittlungsnetz 606 verursacht wird. Es wird festgestellt werden, daß jedes Cluster einen separaten Eingangs- und Ausgangsbus hat. Wenn die Zieladresse eines abgehenden Pakets aufgrund eines Verbindungsfehlers auf der Ausgangsseite des Busses geändert und ein Paket an die falsche Gruppenstuereinheit gesendet wird, ist der Pfad zwischen der richtigen Gruppensteuereinheit und der empfangenden/korrigierenden Gruppensteuereinheit daher ein vollständig anderer als der Pfad zwischen dem Ursprungsprozessor und dem empfangenden/korrigierenden Prozessor.
- Das Vernittlungsnetz 606 selbst enthält auch eine Fehlerkorrekturlogik. Wenn ein Paket an ein nicht vorhandenes oder nicht funktionsfähiges Verarbeitungselement weitergeleitet wird, dreht der Schalter daher das Ursprungs- und das Bestimmungsfeld um und sendet das Paket mit einer Fehlermeldung an den Sender zurück.
- Fig. 11 zeigt eine bevorzugte Ausführungsform für ein Paketformat, das mit dem System von Fig. 6 verwendet wird. Jedes Paket hat eine Breite von 180 Bit und enthält ein 5-Bit-Befehlsfeld (CMD), ein 8-Bit-Folgenummernfeld (SEQ), ein 15-Bit-Feld für die Zieladresse (DST), ein 15-Bit-Feld für die Quellenadresse (SRC), ein 128-Bit-Datenfeld und ein 9-Bit-Fehlerkorrekturcode-(ECC- Feld.
- Das Befehlsfeld (CMD) enthält einen Fünf-Bit-Befehl, welcher der Gruppensteuereinheit und dem empfangenden Verarbeitungselement mitteilt, wie das Paket zu verarbeiten ist. Das Folgenummernfeld (SEQ) enthält eine 8-Bit-Paketfolgenummer, die sequentiell von dem Ursprungs- (Quellen-) Verarbeitungselement zugeordnet wird. Die Folgenummer ermöglicht es dem Empfangssystem, festzustellen, welche Paketnummer der gesamten Paketanzahl in der Nachricht empfangen worden ist.
- Das Feld für die Zieladresse (DST) enthält eine 15-Bit-Zielverarbeitungselementnummer. Das Bestimmungsfeld wird von dem Schalter und der Gruppensteuereinheit dazu verwendet, das Paket selbsttätig weiterzuleiten, und von dem Empfangs- (Ziel-)Verarbeitungselement um nachzuprüfen, ob das Paket an die richtige Adresse weitergeleitet worden ist.
- Das Feld für die Quellenadresse (SRC) enthält eine 15-Bit-Ursprungs- (Quellen-)Verarbeitungselementnummer. Das Ursprungsfeld wird von dem Schalter und der Gruppensteuereinheit dazu verwendet, das Paket in einem Fall, wo ein nicht funktionsfähiges oder nicht vorhandenes Verarbeitungselement im Feld für die Zieladresse (DST) erscheint, an die Quelle zurückzusenden, und von dem Empfangs-(Ziel-)Verarbeitungselement, um eine Antwort auf die Nachricht oder den Befehl richtig zu adressieren.
- Das Datenfeld (DATA) enthält 128 Informationsbit. Die Art der Informationen im Datenfeld wird vom Befehlsfeld (CMD) angegeben.
- Das Fehlerkorrekturcode-Feld (ECC) enthält einen SEC/DED-Fehlerkorrekturcode für die Korrektur eines Einzelfehlers (SEC) und das Erkennen eines Doppelfehlers (DED).
- Für Nachrichtenvorsatz-Pakete gibt das Folgefeld die Gesamtlänge der Nachricht an, und die DNA-Steuereinheit weist einen Nachrichtenpuffer dieser Länge im lokalen Speicher des Verarbeitungselements zu, schreibt das erste 16-Byte-Datenwort in den Nachrichtenpuffer und setzt lokale Hardware-Zeiger, Längen- und Folgeregister, wenn es für diese Nachricht weitere Datenpakete gibt. Sie erstellt auch den Nachrichtenvorsatz im Speicher, der die Länge der Nachricht, die DST-id und die SRC-id enthält.
- Für Nachrichtenhauptteil-Pakete wird das Folgenummernfeld mit dem Folgeregister verglichen, um zu prüfen, ob die Pakete in Reihenfolge ankommen, und jedes 16-Byte-Datenwort wird zum Nachrichtenpuffer hinzugefügt. Wenn die Nachricht vollständig empfangen worden ist, wird sie in eine als IN_QUEUE bekannte Warteschlange im lokalen Speicher zur Verarbeitung durch den lokalen Prozessor gestellt. Wenn die IN_QUEUE vor dem Hinzüfügen dieser Nachricht leer gewesen ist, wird eine Unterbrechung an den lokalen Prozessor erzeugt, um ihn über anstehende Arbeiten zu unterrichten.
- Für Pakete mit Speicherzugriffsbefehlen führt die DNA-Steuereinheit die erforderliche Abruf- oder Speicheroperation im lokalen Speicher des Verarbeitungselements aus (Übertragen eines Daten- Doppelwortes), und für Abrufoperationen wird ein Antwortpaket durch Umdrehen des SRC-id- und des DST-id-Feldes erstellt und dann durch den Schalter weitergeschickt, um das angeforderte Daten-Doppelwort zurückzusenden.
- Pakete, die Befehle für den Zugriff auf den globalen Speicher enthalten, werden in der Gruppensteuereinheit auf dieselbe Weise verarbeitet, wie Befehle für den Zugriff auf den lokalen Speicher von den DMA-Steuereinheiten verarbeitet werden. In beiden Fällen sind die Speicheroperationen autonom und schließen eine Funktion "Vergleichen und Auslagern" ein.
- Fig. 14 stellt eine bevorzugte Anordnung einer Verarbeitungselement-/Cluster-Platine dar. Was die physische Anordnung anbetrifft, umfaßt ein Cluster vorzugsweise eine Mehrschichtleiterplatte 1400, auf der bis zu 64 Verarbeitungselement-Karten (d.h. Leiterplatten, von denen jede ein Verarbeitungselement verkörpert) direkt montiert sind, und mindestens ein thermisches Gruppensteuereinheit-Leitungsmodul (TCM) 1402. Jede Gruppensteuereinheit verarbeitet lokale Nachrichten, die innerhalb des Clusters passieren, und läßt sich mit dem Vermittlungsnetz 606 verbinden.
- Fig. 15 zeigt eine bevorzugte System-Rahmenbelegung mit vier Clustern in jedem von acht Rahmen 1502 bis 1516. Die thermischen Vermittlungsnetz-Leitungsmodule sind vorzugsweise in zentralen Rahmen 1518 bis 1524 realisiert. Der Host-Adapter 1700 (Fig. 17) kann sich in einem beliebigen der Vermittlungsnetz-Rahmen 1502 bis 1516 befinden. Aus Gründen der Verfügbarkeit und Konfigurierbarkeit kann ein weiterer Host-Adapter 1700 in einem anderen der Vermittlungsnetz-Rahmen 1502 bis 1516 vorgesehen werden.
- Fig. 16 zeigt eine bevorzugte Anordnung für eine Verarbeitungselement-Karte 1600, die den äußerst leistungsfähigen RISC- Mikroprozessor 1202, den optionalen Datenbank-Beschleuniger 1602, die DNA-Steuereinheit 1206 und den lokalen Speicher 1210 enthält. Die Verarbeitungselement-Karten 1600 haben doppelt so viele Anschlußstifte wie an das Gruppensteuereinheit-TCN angeschlossen werden können. Daher wird eine zweite Gruppe von PE- Bussen (ein zweiter "PE-Anschluß") von der Verarbeitungskarte entfernt und auf der Hauptplatine (der TCM-Hauptplatine) aufgebracht, wo sie an die Stelle des zweiten (ersatzweisen) Gruppensteuereinheit-TCMS (1404, Fig. 14) geführt wird. Dies ermöglicht eine zukünftige Erweiterung: da die CMOS-Dichte weiterhin verbessert wird, könnte ein zweites Verarbeitungselement pro Karte untergebracht werden und doppelte Gruppensteuereinheit- und Vermittlungsnetz-TCNS könnten in die vorverdrahteten Leiterplatten gesteckt werden, wodurch die Größe des Systems auf 4096 Verarbeitungselemente verdoppelt würde. Alternativ dazu könnte jedes Verarbeitungselement mit den angeschlossenen optionalen Gruppensteuereinheit- und Vermittlungsnetz-TCMS zwei PE-Anschlüsse zur Gruppensteuereinheit entweder für eine höhere Bandbreite oder für eine verbesserte Fehlertoleranz benutzen.
- Das vorstehend beschriebene System kann als ein eigenständiges Mehrprozessorsystem oder als ein eigenständiger Datenbank-Prozessor gebaut werden oder als Coprozessor zu einem traditionellen Großrechner eingesetzt werden. In letzterem Fall würde das Host-System die MVS/DB2-Systemfunktionen im Vorfeld bereitstellen, einschließlich Sitzungsverwaltung, Transaktionsverarbeitung, Datenbankprotokollierung und -wiederherstellung. Das vorliegende Mehrprozessorsystem könnte auch als nachgeschaltetes System eingesetzt werden, um die komplexen, Nurlese-Abfrageverarbeitungsfunktionen vom Host zu übernehmen und zu beschleunigen.
Claims (16)
1. Gruppensteuereinheit (602) zum Einsatz in einem
Mehrprozessorsystem, das eine Vielzahl von
Verarbeitungselement-Gruppen enthält, die durch ein Vermittlungsnetz (606) verbunden
sind, wobei die Gruppensteuereinheit (602) folgendes
enthält:
Vermittlungsmittel (1002), das für den Empfang von Paketen
von dem Vermittlungsnetz (606) angeschlossen ist, um die
Pakete von dem Vermittlungsnetz (606) entsprechend einer
Zieladresse zu verteilen;
Warteschlangenmittel (1008), das mit einer Vielzahl der
Verarbeitungselemente (604) verbunden ist, um den Paketfluß
an die Vielzahl der Verarbeitungselemente zu puffern, wobei
das Warteschlangenmittel eine Vielzahl von
Paketwarteschlangen enthält, die jedem der Verarbeitungselemente
zugeordnet sind,
Zusammensetzungspuffermittel (1006), das mit der Vielzahl
der Verarbeitungselemente (604) verbunden ist, um Daten von
den Verarbeitungselementen (604) zu Paketen
zusammenzusetzen, wobei das Zusammensetzungspuffermittel (1006) einen
Zusammensetzungspuffer (1014) für jedes der
Verarbeitungselemente (604) enthält; und
Auswahlmittel (1016), das mit dem
Zusammensetzungspuffermittel (1006) verbunden ist, um ein Paket von dem
Zusammensetzungspuffermittel (1006) auszuwählen, das an das
Vermittlungsnetz (606) gesendet werden soll.
2. Gruppensteuereinheit (602) nach Anspruch 1, die des
weiteren folgendes enthält:
globales Speichermittel (1004) zum Speichern von Daten,
wobei das globale Speichermittel für den Empfang der Pakete
von dem Vermittlungsmittel (1002) angeschlossen ist.
3. Gruppensteuereinheit (602) nach Anspruch 1 oder 2, wobei
das Zusammensetzungspuffermittel (1006) des weiteren
zyklische Multiplexmittel enthält, um ein zusammengesetztes
Paket, das ausgegeben werden soll, auszuwählen.
4. Gruppensteuereinheit nach jedem der vorstehenden Ansprüche,
wobei das Auswahlmittel (1016) des weiteren
Auswahlmittel enthält, um die Pakete in zyklischer Abfolge
aus zugeben.
5. Mehrprozessorsystem, das zu einer Gruppe verbunden ist, das
folgendes enthält:
eine erste Vielzahl von Prozessoren (604), wobei jedes
Verarbeitungselement in der ersten Vielzahl einen lokalen
Speicher enthält;
eine zweite Vielzahl von Prozessoren (604), wobei die
Verarbeitungselemente in der zweiten Vielzahl einen lokalen
Speicher enthalten;
eine erste Gruppensteuereinheit (602) nach jedem der
Ansprüche 1 bis 4, die für den Empfang von ersten Daten von
der ersten Vielzahl von Prozessoren (604) angeschlossen
ist, um die ersten Daten zu Paketen zusammenzusetzen, die
ein Ursprungsfeld, ein Bestimmungsfeld und ein Befehlsfeld
enthalten, und um die erste Vielzahl von Paketen
auszugeben;
eine zweite Gruppensteuereinheit (602) nach jedem der
Ansprüche 1 bis 4, die für den Empfang von zweiten Daten von
einer zweiten Vielzahl von Prozessoren (604) angeschlossen
ist, um die zweiten Daten zu Paketen zusammenzusetzen, die
ein Ursprungsfeld, ein Bestimmungsfeld und ein Befehlsfeld
enthalten, und um die Pakete aus zugeben; und
Vermittlungsnetz-Mittel (606), das für den Empfang der
Pakete von der ersten und der zweiten Gruppensteuereinheit
(602) angeschlossen ist, um das Bestimmungsfeld zu
decodieren und um festzustellen, welche der Gruppensteuereinheiten
(602) mit einem adressierten Prozessor verbunden ist, der
dem decodierten Bestimmungsfeld entspricht, und um die
Pakete an die eine der Gruppensteuereinheiten (602)
weiterzuleiten.
6. System nach Anspruch 5, wobei das erste und das zweite
Gruppensteuereinheit-Mittel (602) jeweils Mittel enthält,
um die Pakete in zyklischer Abfolge auszugeben.
7. System nach Anspruch 5 oder 6, wobei jeder der Prozessoren
(604) der ersten und der zweiten Vielzahl von Prozessoren
(604) Mittel enthält, um jedem anderen Prozessor (604) der
ersten und der zweiten Vielzahl von Prozessoren (604) den
direkten Zugriff auf den lokalen Speicher zu ermöglichen.
8. System nach Anspruch 5, 6 oder 7, das des weiteren
folgendes enthält:
Host-Adaptermittel (1700), um einen Host (1800) mit dem
Vermittlungsnetz-Mittel (606) zu verbinden, wobei das Host-
Adaptermittel folgendes enthält:
Mittel (1714), um eine Reihe von Befehlen von dem Host
(1800) zu empfangen; und
Mittel (1710), um die Befehle unter einer Vielzahl der
Prozessoren (604) zu verteilen.
9. System nach Anspruch 8, wobei das Host-Adaptermittel (1700)
des weiteren folgendes umfaßt:
Mittel (1706), um erste Speicheradressen von dem Host
(1800) auf ein Band von zweiten Speicheradressen in einem
lokalen Speicher in jedem einzelnen der Vielzahl der
Prozessoren (604) zu übersetzen.
10. System nach Anspruch 9, wobei mindestens einer der
Prozessoren (604) einen Universalprozessor und einen Datenbank-
Beschleuniger enthält.
11. System nach Anspruch 10, wobei mindestens einer der
Datenbank-Beschleuniger ein Sortier-Coprozessor ist.
12. System nach Anspruch 5, 6 oder 7, wobei das
Vermittlungsnetz-Mittel (606) Mittel enthält, um festzustellen, wenn
das Bestimmungsfeld einen nicht vorhandenen Prozessor (604)
kennzeichnet, um das Ursprungs- und das Bestimmungsfeld
umzudrehen und um die Daten an den Quellenprozessor (604)
umzuleiten.
13. Verfahren zur Fehlerbehebung in einem Mehrprozessorsystem
nach jedem der Ansprüche 5 bis 12, wobei ein erster
Prozessor (604) in dem System ein Datenpaket überträgt, das ein
Adreßfeld mit einer Adresse eines zweiten Prozessors (604)
in dem System hat, und das Verfahren die folgenden Schritte
umfaßt:
Übertragen des Pakets von dem ersten (604) Prozessor an das
Vermittlungsnetz (606) mittels eines ersten Pfades;
Decodieren des Adreßfeldes in dem übertragenen Paket an dem
Vermittlungsnetz (606);
Weiterleiten des Pakets mittels des ersten Pfades von dem
Vermittlungsnetz (606) an einen durch die Decodierung
bezeichneten dritten Prozessor (604) in dem System;
Feststellen eines Fehlers in dem Adreßfeld des Pakets an
dem dritten Prozessor (604);
Korrigieren des Fehlers an dem dritten Prozessor (604), um
eine berichtigte Adresse in dem Adreßfeld zu bilden;
nochmaliges Übertragen des Pakets mit der berichtigten
Adresse von dem dritten Prozessor (604) an das
Vermittlungsnetz (606) mittels eines zweiten Pfades;
Decodieren des Adreßfeldes in dem nochmals übertragenen
Paket an dem Vermittlungsnetz (606); und
Weiterleiten des nochmals übertragenen Pakets von dem
Vermittlungsnetz an den zweiten Prozessor (604) mittels eines
dritten Pfades.
14. Verfahren nach Anspruch 13, das die folgenden weiteren
Schritte umfaßt:
Feststellen am Vermittlungsnetz (606), ob eine decodierte
Adresse einem nicht funktionsfähigen Prozessor (604)
entspricht; und
wenn im Schritt des Feststellens festgestellt wird, daß die
decodierte Adresse dem nicht funktionsfähigen Prozessor
4(604) entspricht, Bewirken, daß das Vermittlungsnetz (606)
das Ursprungs- und das Bestimmungsfeld in dem Paket
austauscht und Zurücksenden des Pakets an den ersten Prozessor
(604) mittels eines vierten Pfades.
15. System nach Anspruch 5 bis 12, das des weiteren ein
Paketformat mit einem Befehlsfeld enthält, das folgendes umfaßt:
ein erstes angegebenes Bitmuster, das, wenn es von einer
Gruppensteuereinheit (602) in dem Mehrprozessorsystem
decodiert worden ist, ein Beschreiben des globalen Speichers in
der Gruppensteuereinheit (602) bewirkt;
ein zweites angegebenes Bitmuster, das ein das Befehlsfeld
enthaltendes Paket als ein einen Nachrichtenhauptteil
übertragendes Paket kennzeichnet;
ein drittes angegebenes Bitmuster, das ein das Befehlsfeld
enthaltendes Paket als ein einen Nachrichtenvorsatz
übertragendes Paket kennzeichnet;
ein Folgenummernfeld, um ein beliebiges einer Folgenummer
von Paketen zu übertragen, bei dem das Befehlsfeld das
Paket als einen Nachrichtenhauptteil angibt, und eine Anzahl
von nachfolgenden Nachrichtenpaketen, bei denen das
Befehlsfeld das Paket als einen Nachrichtenvorsatz angibt;
ein Bestimmungsfeld, um eine erste Adresse eines
Ziel-Verarbeitungselenents in dem durch Gruppen verbundenen
Mehrprozessorsystem zu übertragen;
ein Ursprungsfeld, um eine zweite Adresse eines Quellen-
Verarbeitungselements in dem durch Gruppen verbundenen
System zu übertragen;
ein Datenfeld; und
ein Fehlerkorrekturcode-Feld, um einen Fehlerkorrektur-,
Fehlererkennungs-Korrekturcode zu übertragen.
16. System nach Anspruch 15, wobei das Befehlsfeld des weiteren
ein viertes angegebenes Bitmuster enthält, das, wenn es von
der Gruppensteuereinheit (602) decodiert worden ist,
bewirkt, daß auf einen lokalen Speicher in einem mit der
Gruppensteuereinheit (602) verbundenen Prozessor (604)
zugegriffen wird.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/474,440 US5161156A (en) | 1990-02-02 | 1990-02-02 | Multiprocessing packet switching connection system having provision for error correction and recovery |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69021710D1 DE69021710D1 (de) | 1995-09-21 |
DE69021710T2 true DE69021710T2 (de) | 1996-04-18 |
Family
ID=23883543
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69021710T Expired - Fee Related DE69021710T2 (de) | 1990-02-02 | 1990-10-31 | Packetvermitteltes Mehrfachverarbeitungsverbindungssystem mit Fehlerkorrektur und Wiederherstellung. |
Country Status (4)
Country | Link |
---|---|
US (2) | US5161156A (de) |
EP (1) | EP0439693B1 (de) |
JP (2) | JP2566681B2 (de) |
DE (1) | DE69021710T2 (de) |
Families Citing this family (202)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07104871B2 (ja) * | 1989-08-31 | 1995-11-13 | 三菱電機株式会社 | リレーショナル・データベースにおけるジョイン処理方式 |
US5265207A (en) * | 1990-10-03 | 1993-11-23 | Thinking Machines Corporation | Parallel computer system including arrangement for transferring messages from a source processor to selected ones of a plurality of destination processors and combining responses |
JP2575557B2 (ja) * | 1990-11-13 | 1997-01-29 | インターナショナル・ビジネス・マシーンズ・コーポレイション | スーパーコンピユータシステム |
JPH04245751A (ja) * | 1991-01-31 | 1992-09-02 | Nec Corp | イベント処理分散型網監視システム |
US5825773A (en) * | 1991-03-20 | 1998-10-20 | Hitachi, Ltd. | Switching system for transferring broadcast packet held in broadcast buffer received from input port to output ports according to the state of each output port |
US5617547A (en) * | 1991-03-29 | 1997-04-01 | International Business Machines Corporation | Switch network extension of bus architecture |
JP3679813B2 (ja) * | 1991-07-22 | 2005-08-03 | 株式会社日立製作所 | 並列計算機 |
JPH05134954A (ja) * | 1991-11-15 | 1993-06-01 | Fujitsu Ltd | ネツトワーク処理装置 |
EP0570648A1 (de) * | 1992-05-21 | 1993-11-24 | International Business Machines Corporation | Gerät zur Herstellung und Prüfung von Fehlerkorrekturkoden für Nachrichten in einer Nachrichtenvermittlungsanordnung |
JP2552075B2 (ja) * | 1992-05-22 | 1996-11-06 | インターナショナル・ビジネス・マシーンズ・コーポレイション | コンピュータ・システム |
US5758053A (en) * | 1992-07-22 | 1998-05-26 | Hitachi, Ltd. | Fault handling and recovery for system having plural processors |
JPH06214969A (ja) * | 1992-09-30 | 1994-08-05 | Internatl Business Mach Corp <Ibm> | 情報通信方法および装置 |
US5781715A (en) * | 1992-10-13 | 1998-07-14 | International Business Machines Corporation | Fault-tolerant bridge/router with a distributed switch-over mechanism |
US20020091850A1 (en) | 1992-10-23 | 2002-07-11 | Cybex Corporation | System and method for remote monitoring and operation of personal computers |
JP3461520B2 (ja) * | 1992-11-30 | 2003-10-27 | 富士通株式会社 | マルチプロセッサシステム |
US5499377A (en) * | 1993-05-03 | 1996-03-12 | Designed Enclosures, Inc. | Multi-computer access switching system |
JP3176482B2 (ja) * | 1993-07-07 | 2001-06-18 | 富士通株式会社 | 論理シミュレーション装置 |
FR2707777B1 (fr) * | 1993-07-15 | 1995-08-18 | Bull Sa | Ensemble informatique à mémoire partagée. |
FR2707776B1 (fr) | 1993-07-15 | 1995-08-18 | Bull Sa | Procédé de gestion de mémoires d'un système informatique, système informatique mémoire et support d'enregistrement mettant en Óoeuvre le procédé. |
FR2707778B1 (fr) * | 1993-07-15 | 1995-08-18 | Bull Sa | NÓoeud de processeurs. |
US5485573A (en) * | 1993-07-16 | 1996-01-16 | Unisys Corporation | Method and apparatus for assisting in the determination of the source of errors in a multi-host data base management system |
CA2129882A1 (en) * | 1993-08-12 | 1995-02-13 | Soheil Shams | Dynamically reconfigurable interprocessor communication network for simd multiprocessors and apparatus implementing same |
JPH07105128A (ja) * | 1993-10-07 | 1995-04-21 | Mitsubishi Electric Corp | データ転送装置 |
EP0651336A1 (de) * | 1993-10-28 | 1995-05-03 | International Business Machines Corporation | Busarchitekturerweiterung mit einem Vermittlungsnetzwerk |
US5765146A (en) * | 1993-11-04 | 1998-06-09 | International Business Machines Corporation | Method of performing a parallel relational database query in a multiprocessor environment |
DE69435090T2 (de) * | 1993-12-01 | 2009-06-10 | Marathon Technologies Corp., Stow | Rechnersystem mit Steuereinheiten und Rechnerelementen |
US5581705A (en) * | 1993-12-13 | 1996-12-03 | Cray Research, Inc. | Messaging facility with hardware tail pointer and software implemented head pointer message queue for distributed memory massively parallel processing system |
US5450578A (en) * | 1993-12-23 | 1995-09-12 | Unisys Corporation | Method and apparatus for automatically routing around faults within an interconnect system |
US5495589A (en) * | 1993-12-23 | 1996-02-27 | Unisys Corporation | Architecture for smart control of bi-directional transfer of data |
US6088768A (en) * | 1993-12-28 | 2000-07-11 | International Business Machines Corporation | Method and system for maintaining cache coherence in a multiprocessor-multicache environment having unordered communication |
US5664223A (en) * | 1994-04-05 | 1997-09-02 | International Business Machines Corporation | System for independently transferring data using two independently controlled DMA engines coupled between a FIFO buffer and two separate buses respectively |
JP3544390B2 (ja) * | 1994-06-29 | 2004-07-21 | 富士通株式会社 | 並列計算機で用いられるメッセージ通信方法 |
US5630045A (en) * | 1994-12-06 | 1997-05-13 | International Business Machines Corporation | Device and method for fault tolerant dual fetch and store |
CN1086531C (zh) * | 1994-12-09 | 2002-06-19 | 英国电讯有限公司 | 多处理器环境运行的进程间的数据包传送方法 |
KR100220570B1 (ko) * | 1995-03-16 | 1999-09-15 | 김영환 | 패킷교환기의 에러검출장치 |
US5634068A (en) * | 1995-03-31 | 1997-05-27 | Sun Microsystems, Inc. | Packet switched cache coherent multiprocessor system |
US5721921A (en) * | 1995-05-25 | 1998-02-24 | Cray Research, Inc. | Barrier and eureka synchronization architecture for multiprocessors |
US5632013A (en) * | 1995-06-07 | 1997-05-20 | International Business Machines Corporation | Memory and system for recovery/restoration of data using a memory controller |
US5925099A (en) * | 1995-06-15 | 1999-07-20 | Intel Corporation | Method and apparatus for transporting messages between processors in a multiple processor system |
US5721842A (en) * | 1995-08-25 | 1998-02-24 | Apex Pc Solutions, Inc. | Interconnection system for viewing and controlling remotely connected computers with on-screen video overlay for controlling of the interconnection switch |
US5740175A (en) * | 1995-10-03 | 1998-04-14 | National Semiconductor Corporation | Forwarding database cache for integrated switch controller |
US6055618A (en) * | 1995-10-31 | 2000-04-25 | Cray Research, Inc. | Virtual maintenance network in multiprocessing system having a non-flow controlled virtual maintenance channel |
US5841973A (en) * | 1996-03-13 | 1998-11-24 | Cray Research, Inc. | Messaging in distributed memory multiprocessing system having shell circuitry for atomic control of message storage queue's tail pointer structure in local memory |
US5864738A (en) * | 1996-03-13 | 1999-01-26 | Cray Research, Inc. | Massively parallel processing system using two data paths: one connecting router circuit to the interconnect network and the other connecting router circuit to I/O controller |
US5923847A (en) * | 1996-07-02 | 1999-07-13 | Sun Microsystems, Inc. | Split-SMP computer system configured to operate in a protected mode having repeater which inhibits transaction to local address partiton |
US5812556A (en) * | 1996-07-03 | 1998-09-22 | General Signal Corporation | Fault tolerant switch fabric with control and data correction by hamming codes and error inducing check register |
US5805614A (en) * | 1996-07-03 | 1998-09-08 | General Signal Corporation | Fault tolerant switch fabric with control and data correction by hamming codes |
US6393581B1 (en) * | 1996-08-29 | 2002-05-21 | Cornell Research Foundation, Inc. | Reliable time delay-constrained cluster computing |
US5790397A (en) | 1996-09-17 | 1998-08-04 | Marathon Technologies Corporation | Fault resilient/fault tolerant computing |
US6791947B2 (en) | 1996-12-16 | 2004-09-14 | Juniper Networks | In-line packet processing |
US6282195B1 (en) | 1997-01-09 | 2001-08-28 | Silicon Graphics, Inc. | Packetized data transmissions in a switched router architecture |
US6067567A (en) * | 1997-02-20 | 2000-05-23 | International Business Machines Corporation | Message distribution capability which uses distribution nodes to collect acknowledgements for a primary node |
US5923840A (en) * | 1997-04-08 | 1999-07-13 | International Business Machines Corporation | Method of reporting errors by a hardware element of a distributed computer system |
US6105071A (en) * | 1997-04-08 | 2000-08-15 | International Business Machines Corporation | Source and destination initiated interrupt system for message arrival notification |
US6098104A (en) * | 1997-04-08 | 2000-08-01 | International Business Machines Corporation | Source and destination initiated interrupts for message arrival notification, and related data structures |
US6098105A (en) * | 1997-04-08 | 2000-08-01 | International Business Machines Corporation | Source and destination initiated interrupt method for message arrival notification |
US5968189A (en) * | 1997-04-08 | 1999-10-19 | International Business Machines Corporation | System of reporting errors by a hardware element of a distributed computer system |
US6304895B1 (en) | 1997-08-22 | 2001-10-16 | Apex Inc. | Method and system for intelligently controlling a remotely located computer |
US6167437A (en) * | 1997-09-02 | 2000-12-26 | Silicon Graphics, Inc. | Method, system, and computer program product for page replication in a non-uniform memory access system |
US6332165B1 (en) * | 1997-09-05 | 2001-12-18 | Sun Microsystems, Inc. | Multiprocessor computer system employing a mechanism for routing communication traffic through a cluster node having a slice of memory directed for pass through transactions |
US6289424B1 (en) | 1997-09-19 | 2001-09-11 | Silicon Graphics, Inc. | Method, system and computer program product for managing memory in a non-uniform memory access system |
US6249802B1 (en) * | 1997-09-19 | 2001-06-19 | Silicon Graphics, Inc. | Method, system, and computer program product for allocating physical memory in a distributed shared memory network |
US6000024A (en) * | 1997-10-15 | 1999-12-07 | Fifth Generation Computer Corporation | Parallel computing system |
US20010044843A1 (en) * | 1997-10-28 | 2001-11-22 | Philip Bates | Multi-user computer system |
US6085303A (en) * | 1997-11-17 | 2000-07-04 | Cray Research, Inc. | Seralized race-free virtual barrier network |
US6230252B1 (en) | 1997-11-17 | 2001-05-08 | Silicon Graphics, Inc. | Hybrid hypercube/torus architecture |
US6101181A (en) * | 1997-11-17 | 2000-08-08 | Cray Research Inc. | Virtual channel assignment in large torus systems |
US5970232A (en) * | 1997-11-17 | 1999-10-19 | Cray Research, Inc. | Router table lookup mechanism |
US6418537B1 (en) | 1997-12-07 | 2002-07-09 | Conexant Systems, Inc. | Accurate timing calibration for each of multiple high-speed clocked receivers using a single DLL |
US6065077A (en) | 1997-12-07 | 2000-05-16 | Hotrail, Inc. | Apparatus and method for a cache coherent shared memory multiprocessing system |
US6633945B1 (en) | 1997-12-07 | 2003-10-14 | Conexant Systems, Inc. | Fully connected cache coherent multiprocessing systems |
US6516442B1 (en) * | 1997-12-07 | 2003-02-04 | Conexant Systems, Inc. | Channel interface and protocols for cache coherency in a scalable symmetric multiprocessor system |
DE69806812T2 (de) * | 1997-12-19 | 2003-03-13 | Unilever Nv | Olivenöl enthaltende nahrungsmittelzusammensetzung |
US6341132B1 (en) | 1998-02-04 | 2002-01-22 | Cisco Technology, Inc. | ATM node having local error correcting procedures |
US6327668B1 (en) * | 1998-06-30 | 2001-12-04 | Sun Microsystems, Inc. | Determinism in a multiprocessor computer system and monitor and processor therefor |
US6633905B1 (en) | 1998-09-22 | 2003-10-14 | Avocent Huntsville Corporation | System and method for accessing and operating personal computers remotely |
US6216174B1 (en) | 1998-09-29 | 2001-04-10 | Silicon Graphics, Inc. | System and method for fast barrier synchronization |
US6618379B1 (en) * | 1998-12-08 | 2003-09-09 | Nec Corporation | RRGS-round-robin greedy scheduling for input/output terabit switches |
US6920562B1 (en) | 1998-12-18 | 2005-07-19 | Cisco Technology, Inc. | Tightly coupled software protocol decode with hardware data encryption |
JP3277906B2 (ja) | 1998-12-18 | 2002-04-22 | 日本電気株式会社 | 階層構造作成方法及び装置 |
US6256683B1 (en) * | 1998-12-23 | 2001-07-03 | Bops, Inc. | Methods and apparatus for providing direct memory access control |
US6389494B1 (en) * | 1998-12-30 | 2002-05-14 | Emc Corporation | System for interfacing a data storage system to a host utilizing a plurality of busses for carrying end-user data and a separate bus for carrying interface state data |
US7073020B1 (en) | 1999-01-04 | 2006-07-04 | Emc Corporation | Method for message transfer in computer storage system |
US7117275B1 (en) | 1999-01-04 | 2006-10-03 | Emc Corporation | Data storage system having separate data transfer section and message network |
US6388453B1 (en) | 1999-01-25 | 2002-05-14 | Bryan D. Greer | Swept-frequency dielectric moisture and density sensor |
CA2378088A1 (en) * | 1999-06-25 | 2001-01-04 | Massively Parallel Computing, Inc. | Massive collective network processing system and methods |
US6469988B1 (en) | 1999-07-08 | 2002-10-22 | Conexant Systems, Inc. | Low-level circuit implementation of signal flow graphs for real-time signal processing of high-speed digital signals |
US6378014B1 (en) | 1999-08-25 | 2002-04-23 | Apex Inc. | Terminal emulator for interfacing between a communications port and a KVM switch |
US6711170B1 (en) * | 1999-08-31 | 2004-03-23 | Mosaid Technologies, Inc. | Method and apparatus for an interleaved non-blocking packet buffer |
US7139899B2 (en) * | 1999-09-03 | 2006-11-21 | Cisco Technology, Inc. | Selected register decode values for pipeline stage register addressing |
US6674720B1 (en) | 1999-09-29 | 2004-01-06 | Silicon Graphics, Inc. | Age-based network arbitration system and method |
US6751698B1 (en) | 1999-09-29 | 2004-06-15 | Silicon Graphics, Inc. | Multiprocessor node controller circuit and method |
US6681341B1 (en) | 1999-11-03 | 2004-01-20 | Cisco Technology, Inc. | Processor isolation method for integrated multi-processor systems |
US7165257B2 (en) | 2000-02-08 | 2007-01-16 | Mips Technologies, Inc. | Context selection and activation mechanism for activating one of a group of inactive contexts in a processor core for servicing interrupts |
US7082552B2 (en) | 2000-02-08 | 2006-07-25 | Mips Tech Inc | Functional validation of a packet management unit |
US7032226B1 (en) | 2000-06-30 | 2006-04-18 | Mips Technologies, Inc. | Methods and apparatus for managing a buffer of events in the background |
US7649901B2 (en) | 2000-02-08 | 2010-01-19 | Mips Technologies, Inc. | Method and apparatus for optimizing selection of available contexts for packet processing in multi-stream packet processing |
US7155516B2 (en) | 2000-02-08 | 2006-12-26 | Mips Technologies, Inc. | Method and apparatus for overflowing data packets to a software-controlled memory when they do not fit into a hardware-controlled memory |
US7058064B2 (en) * | 2000-02-08 | 2006-06-06 | Mips Technologies, Inc. | Queueing system for processors in packet routing operations |
WO2001063438A1 (en) * | 2000-02-24 | 2001-08-30 | Bops Incorporated | Methods and apparatus for providing bit-reversal and multicast functions utilizing dma controller |
US6990063B1 (en) * | 2000-03-07 | 2006-01-24 | Cisco Technology, Inc. | Distributing fault indications and maintaining and using a data structure indicating faults to route traffic in a packet switching system |
US7010575B1 (en) | 2000-03-31 | 2006-03-07 | Emc Corporation | Data storage system having separate data transfer section and message network having bus arbitration |
US7007194B1 (en) | 2000-06-29 | 2006-02-28 | Emc Corporation | Data storage system having point-to-point configuration |
US6779071B1 (en) | 2000-04-28 | 2004-08-17 | Emc Corporation | Data storage system having separate data transfer section and message network with status register |
US6651130B1 (en) | 2000-04-28 | 2003-11-18 | Emc Corporation | Data storage system having separate data transfer section and message network with bus arbitration |
US8325761B2 (en) * | 2000-06-26 | 2012-12-04 | Massivley Parallel Technologies, Inc. | System and method for establishing sufficient virtual channel performance in a parallel computing network |
US7418470B2 (en) * | 2000-06-26 | 2008-08-26 | Massively Parallel Technologies, Inc. | Parallel processing systems and method |
US6816916B1 (en) * | 2000-06-29 | 2004-11-09 | Emc Corporation | Data storage system having multi-cast/unicast |
US7089289B1 (en) | 2000-07-18 | 2006-08-08 | International Business Machines Corporation | Mechanisms for efficient message passing with copy avoidance in a distributed system using advanced network devices |
US6799200B1 (en) | 2000-07-18 | 2004-09-28 | International Business Machines Corporaiton | Mechanisms for efficient message passing with copy avoidance in a distributed system |
US6735620B1 (en) | 2000-07-18 | 2004-05-11 | International Business Machines Corporation | Efficient protocol for retransmit logic in reliable zero copy message transport |
US6675254B1 (en) * | 2000-09-29 | 2004-01-06 | Intel Corporation | System and method for mid-plane interconnect using switched technology |
US7106693B1 (en) | 2000-11-02 | 2006-09-12 | Cisco Technology, Inc. | Method and apparatus for pacing the flow of information sent from a device |
US7012889B1 (en) | 2000-11-02 | 2006-03-14 | Cisco Technology, Inc. | Method and apparatus for controlling input rates within a packet switching system |
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 |
US6779049B2 (en) * | 2000-12-14 | 2004-08-17 | International Business Machines Corporation | Symmetric multi-processing system with attached processing units being able to access a shared memory without being structurally configured with an address translation mechanism |
US7401161B2 (en) * | 2000-12-18 | 2008-07-15 | Sun Microsystems, Inc. | High performance storage array interconnection fabric using multiple independent paths |
US6718428B2 (en) | 2000-12-18 | 2004-04-06 | Sun Microsystems, Inc. | Storage array interconnection fabric using a torus topology |
US7072976B2 (en) | 2001-01-04 | 2006-07-04 | Sun Microsystems, Inc. | Scalable routing scheme for a multi-path interconnection fabric |
TW567695B (en) * | 2001-01-17 | 2003-12-21 | Ibm | Digital baseband system |
US7027397B1 (en) | 2001-02-15 | 2006-04-11 | Cisco Technology, Inc. | Method and apparatus for accumulating and distributing traffic and flow control information in a packet switching system |
US6909695B2 (en) | 2001-05-07 | 2005-06-21 | Sun Microsystems, Inc. | Fault-tolerant, self-healing routing scheme for a multi-path interconnection fabric in a storage network |
US7007189B2 (en) | 2001-05-07 | 2006-02-28 | Sun Microsystems, Inc. | Routing scheme using preferred paths in a multi-path interconnection fabric in a storage network |
US6807640B2 (en) * | 2001-05-08 | 2004-10-19 | Intersil Americas, Inc. | Programmable interface controller suitable for spanning clock domains |
US8086738B2 (en) | 2007-05-24 | 2011-12-27 | Russell Fish | Distributed means of organizing an arbitrarily large number of computers |
US20030009509A1 (en) * | 2001-06-22 | 2003-01-09 | Fish Russell H. | Distributed means of organizing an arbitrarily large number of computers |
US20030033463A1 (en) * | 2001-08-10 | 2003-02-13 | Garnett Paul J. | Computer system storage |
US7251698B2 (en) * | 2002-05-28 | 2007-07-31 | Newisys, Inc. | Address space management in systems having multiple multi-processor clusters |
US7155525B2 (en) * | 2002-05-28 | 2006-12-26 | Newisys, Inc. | Transaction management in systems having multiple multi-processor clusters |
US7281055B2 (en) * | 2002-05-28 | 2007-10-09 | Newisys, Inc. | Routing mechanisms in systems having multiple multi-processor clusters |
US7103636B2 (en) * | 2002-05-28 | 2006-09-05 | Newisys, Inc. | Methods and apparatus for speculative probing of a remote cluster |
US7181674B2 (en) * | 2002-06-28 | 2007-02-20 | Sun Microsystems, Inc. | Computer system including a network employing redundant information and slicing |
EP1553734A4 (de) * | 2002-10-18 | 2009-04-29 | Panasonic Corp | Verfahren und einrichtung für roaming-verbindung in einem globalen netzwerk |
US8185602B2 (en) | 2002-11-05 | 2012-05-22 | Newisys, Inc. | Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters |
US7577755B2 (en) * | 2002-11-19 | 2009-08-18 | Newisys, Inc. | Methods and apparatus for distributing system management signals |
US7324438B1 (en) | 2003-02-13 | 2008-01-29 | Cisco Technology, Inc. | Technique for nondisruptively recovering from a processor failure in a multi-processor flow device |
US7826445B2 (en) * | 2003-03-13 | 2010-11-02 | International Business Machines Corporation | Message formation and distribution in heterogeneous networks |
US7324455B2 (en) | 2003-03-14 | 2008-01-29 | International Business Machines Corporation | Transfer of error-analysis and statistical data in a fibre channel input/output system |
US7386626B2 (en) * | 2003-06-23 | 2008-06-10 | Newisys, Inc. | Bandwidth, framing and error detection in communications between multi-processor clusters of multi-cluster computer systems |
US7577727B2 (en) * | 2003-06-27 | 2009-08-18 | Newisys, Inc. | Dynamic multiple cluster system reconfiguration |
US7353362B2 (en) * | 2003-07-25 | 2008-04-01 | International Business Machines Corporation | Multiprocessor subsystem in SoC with bridge between processor clusters interconnetion and SoC system bus |
US7395347B2 (en) * | 2003-08-05 | 2008-07-01 | Newisys, Inc, | Communication between and within multi-processor clusters of multi-cluster computer systems |
US7103823B2 (en) | 2003-08-05 | 2006-09-05 | Newisys, Inc. | Communication between multi-processor clusters of multi-cluster computer systems |
US7117419B2 (en) * | 2003-08-05 | 2006-10-03 | Newisys, Inc. | Reliable communication between multi-processor clusters of multi-cluster computer systems |
US7159137B2 (en) * | 2003-08-05 | 2007-01-02 | Newisys, Inc. | Synchronized communication between multi-processor clusters of multi-cluster computer systems |
US7536674B2 (en) * | 2003-08-13 | 2009-05-19 | Intel Corporation | Method and system for configuring network processing software to exploit packet flow data locality |
US7519771B1 (en) | 2003-08-18 | 2009-04-14 | Cray Inc. | System and method for processing memory instructions using a forced order queue |
US7366873B1 (en) | 2003-08-18 | 2008-04-29 | Cray, Inc. | Indirectly addressed vector load-operate-store method and apparatus |
US7334110B1 (en) | 2003-08-18 | 2008-02-19 | Cray Inc. | Decoupled scalar/vector computer architecture system and method |
US7503048B1 (en) | 2003-08-18 | 2009-03-10 | Cray Incorporated | Scheduling synchronization of programs running as streams on multiple processors |
US7421565B1 (en) | 2003-08-18 | 2008-09-02 | Cray Inc. | Method and apparatus for indirectly addressed vector load-add -store across multi-processors |
US7543133B1 (en) | 2003-08-18 | 2009-06-02 | Cray Inc. | Latency tolerant distributed shared memory multiprocessor computer |
US7735088B1 (en) | 2003-08-18 | 2010-06-08 | Cray Inc. | Scheduling synchronization of programs running as streams on multiple processors |
US7437521B1 (en) | 2003-08-18 | 2008-10-14 | Cray Inc. | Multistream processing memory-and barrier-synchronization method and apparatus |
US8307194B1 (en) | 2003-08-18 | 2012-11-06 | Cray Inc. | Relaxed memory consistency model |
US7743223B2 (en) | 2003-08-18 | 2010-06-22 | Cray Inc. | Decoupling of write address from its associated write data in a store to a shared memory in a multiprocessor system |
US7379424B1 (en) | 2003-08-18 | 2008-05-27 | Cray Inc. | Systems and methods for routing packets in multiprocessor computer systems |
GB2405228B8 (en) * | 2003-08-19 | 2007-09-13 | Ibm | A method, apparatus and computer program for verifying the order of a queue of work items |
JP4818920B2 (ja) * | 2003-09-09 | 2011-11-16 | シリコン ハイブ ビー・ヴィー | 複数のプログラム可能なプロセッサを有する集積データ処理回路 |
US7259482B2 (en) | 2003-09-24 | 2007-08-21 | Belkin International, Inc. | Distance extender and method making use of same |
US7889674B2 (en) * | 2004-05-04 | 2011-02-15 | Samsung Electronics Co., Ltd. | Zigbee network device for assigning addresses to child nodes after constructing cluster-tree structure, address assigning method and routing method |
US20050286526A1 (en) * | 2004-06-25 | 2005-12-29 | Sood Sanjeev H | Optimized algorithm for stream re-assembly |
US7461173B2 (en) * | 2004-06-30 | 2008-12-02 | Intel Corporation | Distributing timers across processors |
US20060004933A1 (en) * | 2004-06-30 | 2006-01-05 | Sujoy Sen | Network interface controller signaling of connection event |
US20060031474A1 (en) * | 2004-07-19 | 2006-02-09 | Linden Cornett | Maintaining reachability measures |
US7366889B2 (en) * | 2004-08-27 | 2008-04-29 | Sun Microsystems, Inc. | Computer cluster control network comprising a first network to communicate control data and a second network to communicate non-control data between processing nodes |
US8331234B1 (en) * | 2004-09-08 | 2012-12-11 | Q1 Labs Inc. | Network data flow collection and processing |
US20060059411A1 (en) * | 2004-09-16 | 2006-03-16 | Sony Corporation And Sony Electronics, Inc. | Method and system for increasing channel coding gain |
US7590777B2 (en) * | 2004-12-10 | 2009-09-15 | International Business Machines Corporation | Transferring data between system and storage in a shared buffer |
US7512135B2 (en) * | 2004-12-10 | 2009-03-31 | International Business Machines Corporation | Method for transferring data among a logical layer, physical layer, and storage device |
JP2006178550A (ja) | 2004-12-21 | 2006-07-06 | Nec Corp | 二重化同期システム、及び二重化同期システムの動作方法 |
DE102005034652B4 (de) * | 2005-03-02 | 2013-08-08 | Rohde & Schwarz Gmbh & Co. Kg | Bussystem und Verfahren zum Betreiben des Bussystems |
US7478769B1 (en) | 2005-03-09 | 2009-01-20 | Cray Inc. | Method and apparatus for cooling electronic components |
US7523342B1 (en) * | 2005-10-28 | 2009-04-21 | Sun Microsystems, Inc. | Data and control integrity for transactions in a computer system |
US20070150699A1 (en) * | 2005-12-28 | 2007-06-28 | Schoinas Ioannis T | Firm partitioning in a system with a point-to-point interconnect |
JPWO2007096987A1 (ja) * | 2006-02-24 | 2009-07-09 | 富士通株式会社 | エラー制御装置 |
US8427489B2 (en) | 2006-08-10 | 2013-04-23 | Avocent Huntsville Corporation | Rack interface pod with intelligent platform control |
US8009173B2 (en) | 2006-08-10 | 2011-08-30 | Avocent Huntsville Corporation | Rack interface pod with intelligent platform control |
US8108512B2 (en) * | 2006-09-01 | 2012-01-31 | Massively Parallel Technologies, Inc. | System and method for accessing and using a supercomputer |
KR20090067151A (ko) * | 2006-09-06 | 2009-06-24 | 엔엑스피 비 브이 | 클러스터 커플러, 네트워크 및 네트워크 통신 방법 |
US8634470B2 (en) * | 2007-07-24 | 2014-01-21 | Samsung Electronics Co., Ltd. | Multimedia decoding method and multimedia decoding apparatus based on multi-core processor |
US7496784B1 (en) * | 2008-01-10 | 2009-02-24 | International Business Machines Corporation | Method and system for thresholding hardware errors |
US7958194B2 (en) * | 2008-08-25 | 2011-06-07 | Massively Parallel Technologies, Inc. | System and method for parallel processing using a Type I Howard Cascade |
FR2938943B1 (fr) * | 2008-11-21 | 2010-11-12 | Thales Sa | Systeme multiprocesseur. |
US20100251259A1 (en) * | 2009-03-31 | 2010-09-30 | Howard Kevin D | System And Method For Recruitment And Management Of Processors For High Performance Parallel Processing Using Multiple Distributed Networked Heterogeneous Computing Elements |
US7925736B2 (en) * | 2009-06-15 | 2011-04-12 | Microsoft Corporation | Message redirection within a messaging infrastructure |
US10216692B2 (en) * | 2009-06-17 | 2019-02-26 | Massively Parallel Technologies, Inc. | Multi-core parallel processing system |
US8555096B2 (en) | 2009-08-07 | 2013-10-08 | Advanced Processor Architectures, Llc | Method and apparatus for selectively placing components into a sleep mode in response to loss of one or more clock signals or receiving a command to enter sleep mode |
US11042211B2 (en) | 2009-08-07 | 2021-06-22 | Advanced Processor Architectures, Llc | Serially connected computing nodes in a distributed computing system |
US9429983B1 (en) | 2013-09-12 | 2016-08-30 | Advanced Processor Architectures, Llc | System clock distribution in a distributed computing environment |
US9645603B1 (en) | 2013-09-12 | 2017-05-09 | Advanced Processor Architectures, Llc | System clock distribution in a distributed computing environment |
US20130282352A1 (en) * | 2011-05-20 | 2013-10-24 | Grayskytech Llc | Real time logic simulation within a mixed mode simulation network |
US20130212363A1 (en) * | 2011-05-20 | 2013-08-15 | Grayskytech Llc | Machine transport and execution of logic simulation |
US20150178092A1 (en) * | 2013-12-20 | 2015-06-25 | Asit K. Mishra | Hierarchical and parallel partition networks |
US10061531B2 (en) * | 2015-01-29 | 2018-08-28 | Knuedge Incorporated | Uniform system wide addressing for a computing system |
US9552327B2 (en) | 2015-01-29 | 2017-01-24 | Knuedge Incorporated | Memory controller for a network on a chip device |
US20170116154A1 (en) * | 2015-10-23 | 2017-04-27 | The Intellisis Corporation | Register communication in a network-on-a-chip architecture |
US10027583B2 (en) | 2016-03-22 | 2018-07-17 | Knuedge Incorporated | Chained packet sequences in a network on a chip architecture |
US10346049B2 (en) | 2016-04-29 | 2019-07-09 | Friday Harbor Llc | Distributed contiguous reads in a network on a chip architecture |
JP6784160B2 (ja) * | 2016-12-08 | 2020-11-11 | 富士通株式会社 | 並列処理装置及びノード間通信プログラム |
JP6885237B2 (ja) * | 2017-07-11 | 2021-06-09 | 富士通株式会社 | ノード間通信装置、並列処理装置及びノード間通信経路制御方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4306286A (en) * | 1979-06-29 | 1981-12-15 | International Business Machines Corporation | Logic simulation machine |
US4344134A (en) * | 1980-06-30 | 1982-08-10 | Burroughs Corporation | Partitionable parallel processor |
JPS60191536A (ja) * | 1984-03-13 | 1985-09-30 | Nec Corp | デ−タ処理装置障害通知方式 |
US4754394A (en) * | 1984-10-24 | 1988-06-28 | International Business Machines Corporation | Multiprocessing system having dynamically allocated local/global storage and including interleaving transformation circuit for transforming real addresses to corresponding absolute address of the storage |
JPS61260350A (ja) * | 1985-05-14 | 1986-11-18 | Fujitsu Ltd | 並列処理制御方式 |
US4723244A (en) * | 1985-10-01 | 1988-02-02 | Harris Corporation | Method and apparatus for preserving the integrity of the error detection/correction word in a code word |
US4811210A (en) * | 1985-11-27 | 1989-03-07 | Texas Instruments Incorporated | A plurality of optical crossbar switches and exchange switches for parallel processor computer |
IT1184015B (it) * | 1985-12-13 | 1987-10-22 | Elsag | Sistema multiprocessore a piu livelli gerarchici |
US5060140A (en) * | 1986-01-16 | 1991-10-22 | Jupiter Technology Inc. | Universal programmable data communication connection system |
US5021947A (en) * | 1986-03-31 | 1991-06-04 | Hughes Aircraft Company | Data-flow multiprocessor architecture with three dimensional multistage interconnection network for efficient signal and data processing |
JP2954220B2 (ja) * | 1987-07-27 | 1999-09-27 | 株式会社日立製作所 | 並列計算機のためのデータ転送ネットワーク |
JPH01126760A (ja) * | 1987-11-11 | 1989-05-18 | Toshiba Corp | 並列計算機システム |
US4875206A (en) * | 1988-03-31 | 1989-10-17 | American Telephone And Telegraph Comopany, At&T Bell Laboratories | High bandwidth interleaved buffer memory and control |
-
1990
- 1990-02-02 US US07/474,440 patent/US5161156A/en not_active Expired - Lifetime
- 1990-10-31 DE DE69021710T patent/DE69021710T2/de not_active Expired - Fee Related
- 1990-10-31 EP EP90120874A patent/EP0439693B1/de not_active Expired - Lifetime
- 1990-12-27 JP JP2415183A patent/JP2566681B2/ja not_active Expired - Lifetime
-
1991
- 1991-06-21 US US07/718,694 patent/US5166674A/en not_active Expired - Lifetime
-
1994
- 1994-12-09 JP JP6305977A patent/JP2576846B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2566681B2 (ja) | 1996-12-25 |
JPH04139566A (ja) | 1992-05-13 |
JP2576846B2 (ja) | 1997-01-29 |
US5166674A (en) | 1992-11-24 |
EP0439693B1 (de) | 1995-08-16 |
US5161156A (en) | 1992-11-03 |
EP0439693A3 (en) | 1992-06-24 |
EP0439693A2 (de) | 1991-08-07 |
DE69021710D1 (de) | 1995-09-21 |
JPH07210527A (ja) | 1995-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69021710T2 (de) | Packetvermitteltes Mehrfachverarbeitungsverbindungssystem mit Fehlerkorrektur und Wiederherstellung. | |
DE69028371T2 (de) | Verfahren und Vorrichtung zur Ausnutzung der Kommunikationsbandbreite und Zurverfügungstellung eines gemeinsamen Speichers | |
DE3850351T2 (de) | Vermittlungsnetz zwischen Prozessoren. | |
DE69533230T2 (de) | Verfahren und vorrichtung zur verbesserung der fehlertoleranz eines netzwerkes | |
DE69029003T2 (de) | System für Übertragungssteuerung zwischen Parallelrechnern | |
DE3689087T2 (de) | Modularer Mehrfachportdatenknoten. | |
DE3586487T2 (de) | Kohaerentes interface mit zurueckgeschleiften sende- und empfangsspeichern. | |
DE69631055T2 (de) | Speicherschnittstelleneinheit, vermittlungssystem mit gemeinsamem speicher und verfahren dazu | |
DE3789104T2 (de) | Netzwerkübertragungsadapter. | |
DE60111551T2 (de) | Mechanismus zur vervollständigung von nachrichten im speicher | |
DE3850097T2 (de) | Rechnerverbinder für gruppen von datenverarbeitungseinrichtungen. | |
DE68928316T2 (de) | Vorrichtung zur anteiligen nutzung von betriebsmitteln eines hauptrechners zwischen einer vielzahl von entfernten rechnern | |
DE68926036T2 (de) | Speicherkonfiguration zur Verwendung für Schnittstellenbildung zwischen einer Systemsteuereinheit für ein Multiprozessorsystem und dem Hauptspeicher | |
DE3751091T2 (de) | Übertragungsprotokoll zwischen Prozessoren. | |
DE69735740T2 (de) | Asynchrone paketvermittlung | |
DE3854361T2 (de) | Programmierbare Protokollvorrichtung. | |
DE3855925T2 (de) | Nachrichtenübertragung in einem multiplexsystem | |
DE69832943T2 (de) | Sequenzsteuerungsmechanismus für ein switch-basiertes Mehrprozessorsystem | |
DE3685599T2 (de) | Vermittlungssystem fuer datenuebertragung. | |
DE68923951T2 (de) | Hochgeschwindigkeits-Kombinierschalter mit Einzelfifo. | |
DE3642324C2 (de) | Multiprozessoranlage mit Prozessor-Zugriffssteuerung | |
CH626735A5 (de) | ||
DE3114961A1 (de) | Datenverarbeitungssystem | |
DE112011102415T5 (de) | Registerzugriff in einer verteilten virtuellen Brückenumgebung | |
DE10065656A1 (de) | Faserkanalschnittstellensteuerungseinrichtung, die eine nicht blockierende Ausgabe und Eingabe von Faserkanaldatenrahmen und Quittierungsrahmen in und von einem Faserkanal durchführt |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |