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
Application number
DE69021710T
Other languages
English (en)
Other versions
DE69021710D1 (de
Inventor
Richard Irwin Baum
Charles H Brotman
James Walter Rymarczyk
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of DE69021710D1 publication Critical patent/DE69021710D1/de
Publication of DE69021710T2 publication Critical patent/DE69021710T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17393Indirect interconnection networks non hierarchical topologies having multistage networks, e.g. broadcasting scattering, gathering, hot spot contention, combining/decombining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0706Error 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/0712Error 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0706Error 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/0721Error 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/0724Error 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1443Transmit or communication errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • G06F11/1423Reconfiguring 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

    HINTERGRUND DER ERFINDUNG a. BEREICH DER ERFINDUNG
  • Diese Erfindung betrifft den Bereich der Mehrprozessorsysteme und die Fehlerbehebung in Mehrprozessorsystemen.
  • b. VERWANDTE TECHNIK
  • 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.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • 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.
  • MERKMALE UND VORTEILE
  • 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.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 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.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • 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.
DE69021710T 1990-02-02 1990-10-31 Packetvermitteltes Mehrfachverarbeitungsverbindungssystem mit Fehlerkorrektur und Wiederherstellung. Expired - Fee Related DE69021710T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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