DE3784223T2 - Paralleler rechner. - Google Patents

Paralleler rechner.

Info

Publication number
DE3784223T2
DE3784223T2 DE19873784223 DE3784223T DE3784223T2 DE 3784223 T2 DE3784223 T2 DE 3784223T2 DE 19873784223 DE19873784223 DE 19873784223 DE 3784223 T DE3784223 T DE 3784223T DE 3784223 T2 DE3784223 T2 DE 3784223T2
Authority
DE
Germany
Prior art keywords
array
processor
signal
host computer
processors
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
DE19873784223
Other languages
English (en)
Other versions
DE3784223D1 (de
Inventor
Daniel W Hillis
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.)
Thinking Machines Corp
Original Assignee
Thinking 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 Thinking Machines Corp filed Critical Thinking Machines Corp
Application granted granted Critical
Publication of DE3784223D1 publication Critical patent/DE3784223D1/de
Publication of DE3784223T2 publication Critical patent/DE3784223T2/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/17337Direct connection machines, e.g. completely connected computers, point to point communication networks
    • G06F15/17343Direct connection machines, e.g. completely connected computers, point to point communication networks wherein the interconnection is dynamically configurable, e.g. having loosely coupled nearest neighbor architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/803Three-dimensional arrays or hypercubes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Multi Processors (AREA)

Description

  • Die Erfindung bezieht sich auf einen parallelen Prozessor entsprechend dem Oberbegriff des Anspruchs 1.
  • In IEEE TRANSACTIONS ON COMPUTERS, Band C-29 Nr. 9, September 1980, Seiten 831-836, IEEE, New York, US: K. Hwang et al.: "Resource optimization of a parallel computer for multiple vector processing" ist ein Parallelprozessor der gattungsgemäßen Art beschrieben, welcher eine Vielzahl von Prozessoren, eine Vielzahl von Host-Computern, eine Vielzahl von ersten und zweiten Datenbussen und eine Einrichtung zum Verbinden der ersten Datenbussen mit den zweiten Datenbussen aufweist. Das Verbindungs-Netzwerk zwischen den individuellen Prozessoren und den Steuereinheiten ist dabei als m-zu-r-Verbindungsnetzwerk beschrieben. Eine derartige Organisation ermöglicht, daß jeder Prozessor mit jeder Steuereinheit und umgekehrt verbunden werden kann.
  • EP-A-0 132 926 beschreibt einen Parallelprozessor, der im folgenden detailliert unter Beziehung auf Fig. 1A beschrieben wird. Dieses Computersystem umfaßt einen Mainframe-Computer, einen Mikrocontroller 20, ein Feld 30 von parallel verarbeitenden integrierten Schaltkreisen 35, eine Datenguelle 40, einen ersten Puffer und Multiplexer/Demultiplexer 50, erste, zweite, dritte und vierte bidirektionale Bussteuerschaltkreise 60, 65, 70, 75, einen zweiten Puffer und Multiplexer/Demultiplexer 80, und eine Datensenke 90. Der Mainframe-Computer 10 kann in geeigneter Weise mittels kommerziell erhältlicher "General Purpose"-Computer, wie etwa einer VAX (TM), wie sie von Digital Equipment Corporation hergestellt wird, programmiert werden. Der Mikrocontroller 20 stellt einen Befehls-Sequenzer herkömmlicher Bauart dar, der zur Erzeugung einer Sequenz von Befehlen, die dem Feld 30 mittels eines 32-Bit-Parallelbusses 22 zugeführt werden, verwendet wird. Der Mikrocontroller 20 empfängt von dem Feld 30 ein Signal auf Leitung 26. Dieses Signal ist ein "General Purpose"- oder GLOBAL- Signal, wie es für Datenausgangs- und Status-Informationen verwendet werden kann. Der Bus 22 und die Leitung 26 sind parallel mit jedem IC 35 verbunden. Im Ergebnis werden die Signale vom Mikrocontroller 20 gleichzeitig zu jedem der ICs 35 im Feld 30 zugeführt und das dem Mikrocontroller 20 auf Leitung 26 zugeführte Signal wird durch Kombinieren der Signalausgänge von allen ICs 35 des Feldes gebildet.
  • Das Feld 30 enthält tausende identische ICs 35; jeder IC 35 umfaßt mehrere identische Prozessoren/Speicher 36. In der in EP- A-0 132 926 beschriebenen Ausführungsform ist angedeutet, daß das Feld bis zu 32.768 (= 2¹&sup5;) identische ICs 35 enthalten kann und daß jeder IC 35 32 (=2&sup5;) identische Prozessoren/Speicher 36 enthalten kann. Zum Zeitpunkt der Anmeldung des vorliegenden Patents sind vom Abtretungsempfänger des Patents Felder mit bis zu 4096 (=2¹²) identischen ICs 35, die jeweils 16 (=2&sup4;) identische Prozessoren/Speicher aufweisen, hergestellt worden und als Connection Machine (TM) Computer auf den Markt gebracht worden.
  • Die Prozessoren/Speicher 36 sind gemäß zwei Geometrien miteinander verbunden. Eine Geometrie stellt ein herkömmliches zweidimensionales Gitter-Schema dar, durch das die Prozessoren/Speicher in einem rechteckförmigen Feld organisiert sind und mit ihren vier nächsten Nachbarn im Feld verbunden sind. Zur leichteren Darstellung sind die Seiten dieses Feldes als Nord, Ost, Süd und West bezeichnet. Um jeden Prozessor/Speicher mit seinen vier nächsten Nachbarn zu verbinden, sind die individuellen Prozessoren/Speicher durch elektrische Leitungen zwischen benachbarten Prozessoren/Speichern in jeder Reihe und jeder Spalte des Gitters verbunden.
  • Die zweite Geometrie ist die eines Bool'schen n-Würfels mit 15 Dimensionen. Um das n-Würfelverbindungsmuster zu verstehen, ist es nützlich, die ICs von 0 bis 32.767 zu numerieren und diese Nummern als Adressen in binärer Notation mit 15 Bits auszudrücken. So wie die Position eines Objekts in dem zweidimensionalen Gitter durch Nummern spezifiziert werden kann, von denen eine eine Position in einer ersten Dimension des zweidimensionalen Gitters und eine eine Position in der zweiten Dimension spezifiziert, kann eine Nummer auch zur Identifizierung der Position eines ICs in jeder der 15 Dimensionen eines Bool'schen 15-Würfels verwendet werden. In einem n-Wurfel können die ICs jedoch nur zwei unterschiedliche Positionen, 0 und 1, in jeder Dimension haben. Somit kann die 15-stellige IC-Adresse in binärer Notation benutzt werden, um die Position des ICs in den 15 Dimensionen des n-Würfels zu spezifizieren. Weiterhin hat, da jede Binärstelle nur zwei Werte annenmen kann, 0 und 1, und da jeder IC einheitlich durch 15 Binärstellen identifiziert wird, jeder IC 15 andere ICs, deren Binäradressen nur um eine Stelle von seiner eigenen Adresse differiert. Im folgenden werden diese 15 ICs, deren Binäradresse sich nur um 1 von der Adresse eines ersten ICs unterscheidet, als des ersten ICs nächste Nachbarn bezeichnet. Diejenige, die mit der mathematischen Definition der Hamming-Distanz vertraut sind, werden verstehen, daß der erste IC von seinen 15 nächsten Nachbarn jeweils durch die Hamming-Distanz 1 beabstandet ist.
  • Um die ICs 35 der oben erwähnten Anwendung in Form eines Bool'schen 15-Würfels zu verbinden, ist jeder IC mit seinen 15 nächsten Nachbarn über 15 Eingangsleitungen 38 und 15 Ausgangsleitungen 39 verbunden. Jede dieser 15 Eingangsleitungen 38 zu jedem IC 35 ist mit einer unterschiedlichen der 15 Dimensionen des Bool'schen 15-Würfels assoziiert und entsprechend ist jeder der 15 Ausgangsleitungen 39 jedes ICs 35 mit einer der 15 Dimensionen assoziiert. Spezielle Details der Verbindung für den Bool'schen n-Würfel sind in der oben erwähnten Anmeldung dargelegt. Um die Kommunikation durch das Verbindungsmuster des Bool'schen 15-Würfels zu erlauben, sind die Ergebnisse der Berechnungen in Form von Nachrichtenpaketen organisiert. Diese Nachrichtenpakete werden von einem IC zum nächsten durch einen Weiterleitungsschaltkreis in jedem IC gemäß ihrer Adressinformation, die einen Teil des Pakets darstellt, weitergeleitet.
  • Ein Beispiel eines Prozessors/Speichers 36 ist in Fig. 2, welche gleich der Fig. 7A von EP-A-0 132 926 ist, detailliert beschrieben. Wie in Fig. 2 gezeigt ist, umfaßt der Prozessor/Speicher 32 x 12 RAMs (random access memory) 250, eine ALU (arithmetic logic unit) 280 und einen Flag Controller 290. Die ALU arbeitet mit Daten von drei Quellen, zwei Registern in dem RAM und einem Flag-Eingang, und erzeugt zwei Ausgänge, einen Summenausgang, der in eines der RAM-Register geschrieben wird und einen Carry-Ausgang, der gewissen Registern in dem Flag- Controller als auch gewissen anderen Prozessoren/Speichern verfügbar gemacht wird.
  • Die Eingänge des RAMs 250 sind die Adressbusse 152, 154, 156, 158, eine Summenausgangsleitung 185 von der ALU 270, die Nachrichtenpaketeingangsleitung 122 von der CIU (communication interface unit) 180 der Fig. 6B der EP-A-0 132 926 und eine WRITE-ENABLE-Leitung 298 vom Flag-Controller 290. Die Ausgänge von dem RAM 250 sind die Leitungen 256, 257. Die Signale auf den Leitungen 256, 257 werden von der gleichen Spalte von zwei unterschiedlichen Registern im RAM 250 erhalten, von denen eines als Register A und das andere als Register B bezeichnet ist. Die Busse 152, 154, 156, 158 adressieren diese Register und die Spalten darin gemäß den Befehlswörtern vom Mikrocontroller 20.
  • Der Flag-Controller 290 besteht aus einem Feld von acht 1-Bit-D- Flip-Flos 292, einem 2-aus-16-Selektor 294 und einigen logischen Gattern. Die Eingänge der Flip-Flops 292 sind das Carry- Ausgangssignal von der ALU 280, ein WRITE-ENABLE-Signal auf Leitung 298 vom Selektor 294, und die acht Leitungen des Busses 172 von der PLA (programmable logic array) 150 der Fig. 6B der oben erwähnten Anmeldung. Die Leitungen 172 stellen Adressleitungen dar, von denen jede mit einem unterschiedlichen der Flip-Flops 292 verbunden ist, um ein Flip-Flop auszuwählen, in welches ein Flag-Bit geschrieben werden soll. Die Ausgänge der Flip-Flops 292 werden dem Selektor 294 zugeführt.
  • Die Eingänge des Selektors 294 sind bis zu 16 Flag- Signalleitungen 294, von denen 8 von den Flip-Flops 292 und die 16 Leitungen jedes Busses 174, 176 sind. Erneut stellen die Leitungen 174 und 176 Adressleitungen dar, welche eine der Flag- Signalleitungen für den Ausgang oder für die weitere Verarbeitung auswählen. Der Selektor 294 stellt Ausgänge an die Leitungen 296 und 297 zur Verfügung, die dem durch die Adressleitungen 174 und 176 ausgewählten Flags entsprechen. Die Flags werden detailliert in Tabelle IV in EP-A-0 132 926 definiert.
  • Die ALU 280 umfaßt einen 1-aus-8-Decoder 282, einen Summenausgangsselektor 284 und einen Carry-Ausgangs-Selektor 286. Dies befähigt die ALU, einen Summen- und Carry-Ausgang für viele Funktionen, beinhaltend ADD, logisch OR und logisch AND, zu erzeugen. Die ALU 280 arbeitet mit drei Bits gleichzeitig, zwei auf den Leitungen 256, 257 von den Registern A und B im RAM 250 und eines auf Leitung 296 vom Flag-Controller 290. Die ALU hat zwei Ausgänge: einen Summenausgang auf Leitung 285, der ins Register A des RAMs 250 geschrieben wird und einen Carry-Ausgang auf Leitung 287, der in ein Flag-Register 292 geschrieben werden kann und den Nord-, Ost-, Süd-, West- und DAISY-Eingängen anderer Prozessoren/Speichern 36, mit denen dieser Prozessor/Speicher verbunden ist, zugeführt werden kann.
  • Jede integrierte Schaltung 35 umfaßt auch gewisse Überwachungsschaltkreise für die Prozessoren/Speicher auf dem IC und ein Weiterleitungsschaltkreis zum Verbinden des ICs mit seinen nächsten Nachaar-ICs in dem Bool'schen n-Würfel. Wie dies in EP-A-0 132 926 beschrieben wird, umfaßt der Überwachungsschaltkreis einen Timing-Generator 140, eine PLA 150 zum Decodieren von Befehlen, wie sie von dem Mikrocontroller 20 empfangen werden und zum Abgeben decodierter Befehle an die Prozessoren/Speicher des ICs, und eine Kommunikations- Schnittstelle 180, welche den Fluß der ausgehenden und eingehenden Nachrichtenpakete zwischen den Prozessoren/Speichern eines ICs und dem Weiterleitungsschaltkreis, der mit diesem IC assoziiert ist, steuert.
  • Der Weiterleitungsschaltkreis 200 steuert das Weiterleiten der Nachrichtenpakete zu und von den nächsten Nachbar-ICs im Bool'schen n-Würfel. Wie dies in Fig. 6B von EP-A-0 132 926 gezeigt ist, umfaßt der Schaltkreis 200 einen Line Assigner 205, einen Nachrichtendetektor 210, einen Puffer und Adresswiederhersteller 215 und einen Nachrichteninjektor 220. Der Line Assigner 205 hat 15 Eingangsleitungen 38 von den 15 nächsten Nachbarn des speziellen ICs und 15 Ausgangsleitungen 39 zu den gleichen 15 nächsten Nachbarn. Der Line Assigner 205 weist auch 15 Nachrichtenausgangsleitungen 206 zum Nachrichtendetektor 210 und 15 Nachrichteneingangsleitungen 207 von dem Nachrichteninjektor 220 auf. Der Line Assigner 205 analysiert die Adressen der auf den eingehenden Leitungen 38 empfangenen Nachrichtenpakete, um festzustellen, ob diese an diesen speziellen IC oder an andere ICs gerichtet sind. Er leitet weiterhin die Nachrichtenpakete zu ihren Zielen, soweit dies möglich ist. Weiterhin speichert er jedes Nachrichtenpaket, das für diesen IC vorgesehen ist und speichert außerdem jedes Nachrichtenpaket, das nicht weitergeleitet werden kann, da kein Konflikt hinsichtlich der Schaltkreiszuweisung vorliegt.
  • Der Nachrichtendetektor 210 überprüft den Empfang der Nachrichtenpakete, untersucht die Adresse der Nachrichtenpakete, wie sie auf den Leitungen 207 von dem Line Assigner 205 empfangen wurden und stellt diese Nachrichtenpakete, die an diesen IC adressiert sind, der CIU 180 zur Verfügung. Der Puffer und Adressenwiederhersteller 115 umfaßt ein Schieberegister (tapped shift register). Der Ausgang des Puffers und Nachrichtenwiederherstellers wird dem Nachrichteninjektor 220 zugeführt. Der Nachrichteninjektor 220 fügt jeweils ein Nachrichtenpaket gleichzeitig von der CIU 180 in eine Gruppe von Nachrichtenpaketen ein, welche durch den Weiterleitungsschaltkreis zirkulieren.
  • Die Verwendung von 1000 identischer Prozessoren/Speicher, die parallel arbeiten, eröffnet neue Möglichkeiten in der Computeranwendung. Probleme, die bisher aufgrund der Begrenzungen serieller Computer bestanden, können jetzt in akzeptabler Zeit unter Verwendung von Parallelcomputern, wie etwa der Connection Machine, bewerkstelligt werden. Dieser schnelle Anstieg in der Verarbeitungsleistung wird nicht für jedes Problem benötigt, welches in vorteilhafter Weise mit einem Parallelprozessor gelöst werden kann. Einige Probleme weisen einfach nicht genug Daten auf, um alle Resourcen eines großen Parallelcomputers zu nützen. Andere Probleme stellen keine hohen Anforderungen an die Berechnungsleistung eines parallelen Computers.
  • Die vorliegende Erfindung ist auf eine Verbesserung der Zuweisung der Resourcen eines parallelen Computers gerichtet. Die beanspruchte Erfindung erlaubt es einem Benutzer, in einfacher Weise die Größe eines parallelen Computers einzustellen und die Anforderungen bezüglich der Datenbank und dem Programm, das auf dem Computer läuft, einzustellen, indem geeignete Einrichtungen zum Verbinden zusätzlicher Benutzer mit dem Parallelcomputer vorgesehen sind, um dadurch die Berechnungs-Resourcen zu nutzen, die nicht bereits an andere Benutzer vergeben wurden. Dies wird erreicht, indem der Parallelcomputer in eine Vielzahl von Prozessorfeldern unterteilt wird, indem eine Vielzahl von Host- Computern zur Verfügung gestellt wird, und indem die Host- Computer und die Felder durch Verbindungseinrichtungen, die jedem Host-Computer mit einem oder mehrerer beliebiger Felder verbinden können.
  • Bevorzugte Ausführungsformen sind Gegenstand der Unteransprüche.
  • Eine spezielle Verbindungseinrichtung umfaßt eine Vielzahl von ersten Multiplexern, für jedes Feld einen, zum Schreiben von Daten von jedem Host-Computer zu jedem Feld, eine Vielzahl von zweiten Multiplexern, einen für jeden Host-Computer, zum Lesen von Daten von jedem Feld an jeden beliebigen Host-Computer, und Steuereinrichtungen zum Steuern der Multiplexer, so daß die Host- Computer und Felder so verbunden werden, wie dies von den Benutzern gewünscht ist. Die Steuereinrichtung umfaßt ein Statusregister, welches die Verbindungen zwischen den Host- Computern und den Prozessor-Feldern, wie sie von den Benutzern spezifiziert wurden, speichert.
  • Als Beispiel soll ein System mit vier Host-Computern und vier Prozessor-Feldern dienen, bei dem jeder erste Multiplexer vier Eingänge, einen von jedem der vier Host-Computern aufweist, und bei dem jeder zweite Multiplexer vier Eingänge, einen von jedem Prozessor-Feld, aufweist. Um jeden dieser vier Eingänge als Ausgang von dem Multiplexer auszuwählen, erzeugt die Steuereinrichtung von den Signalen, wie sie im Statusregister gespeichert sind, ein codiertes 2-Bit-Auswahlsignal, das den Multiplexer zusammen mit einem "No-Operation"-Signal zugeführt wird, falls keine Verbindung aufgebaut werden kann.
  • Die Erfindung wird im folgenden anhand eines bevorzugten Ausführungsbeispiels und unter Bezugnanme auf die beiliegenden Zeichnungen näher erläutert. Dabei zeigen:
  • Fig. 1 ein schematisches Diagramm eines parallelen Prozessors gemäß dem Stand der Technik,
  • Fig. 2 ein schematisches Diagramm eines Prozessor/Speichers des Parallelprozessors der Fig. 1,
  • Fig. 3 ein allgemeines schematisches Diagramm einer bevorzugten Ausführungsform der Erfindung,
  • Fig. 4 ein mehr ins Detail gehendes schematisches Diagramm der Ausführungsform der Fig. 3,
  • Fig. 5 ein detailliertes schematisches Diagramm eines Elements der Fig. 3 und 4,
  • Fig. 6 ein schematisches Diagramm, das einen Fehlerkorrektur- Schaltkreis zur Benutzung in dem System der Fig. 3 erläutert,
  • Fig. 7 ein schematisches Diagramm, das weitere Details eines Elements der Fig. 6 erläutert,
  • die Fig. 8 und 9 schematische Diagramme, die weitere Details eines zweiten Elements der Fig. 6 darstellen.
  • Wie in Fig. 3 zu sehen ist, umfaßt eine bevorzugte Ausführungsform der vorliegenden Erfindung eine Vielzahl von Host-Computern 310A-D, einen Interconnector 320, erste und zweite bidirektionale Busse 322A-D, 324A-D zu dem Interconnector und eine Vielzahl von Prozessorfeldern 330A-D. Beispielsweise kann jeder Host-Computer eine VAX (TM) 312 darstellen, in der die LISP-Programmiersprache implementiert ist. Der Host-Computer umfaßt beispielsweide eine Konsole 314, die ein Keyboard 315 aufweist und ein CRT-Display 316, einige Arten von "Hardcopy"- Ausgänge, wie etwa einen Drucker (nicht gezeigt) und ein Interface 318 zwischen dem Computer und dem Eingangsbus zum Interconnector 320.
  • Der Interconnector 320 erlaubt es einem der Host-Computer, mit einem oder mehreren beliebigen Feld(ern) 330A-D verbunden zu werden, wodurch ermöglicht wird, daß das System entsprechend den Anforderungen jedes Benutzers an jeder unterschiedlichen Konsole rekonfiguriert werden kann. Beispielsweise kann jede Konsole über einen Interconnector 320 mit einem der Prozessorfelder 330A-D verbunden werden. Alternativ könnte jede einzelne Konsole durch den Interconnector 320 mit einem, zwei, drei oder allen vier Prozessorfeldern 330A-D verbunden werden. Weitere Details des Interconnectors 320 sind in Fig. 5 gezeigt.
  • Jedes Prozessorfeld 330A-D umfaßt beispielsweise 16384 (=2¹&sup4;) Prozessoren. Die 65536 (=2¹&sup6;) Prozessoren der vier Felder sind in Fig. 3 gezeigt und durch zwei Geometrien verbunden. Eine stellt ein herkömmliches zweidimensionales Feld dar, bei dem jeder Prozessor mit seinen nächsten Nachbarn nach Norden, Osten, Westen und Süden (NEWS) verbunden ist. Die andere stellt einen 12- dimensionalen Hyper-Würfel dar, in dem Gruppen von 16 Prozessoren entlang jeder der 12 Kanten des Hyper-Würfels mit den 12 nächsten Gruppen von jeweils 16 Prozessoren verbunden ist, wie dies im Detail im folgenden beschrieben wird.
  • Wie in Fig. 4 gezeigt ist, sind die Prozessoren eines Feldes 330 auf 32 Platinen 332 aufgebracht. Jede Platine 332 beinhaltet 32 integrierte Schaltkreise 334 in einem 4x8-Feld, wobei jeder Schaltkreis 16 identische Prozessoren 336, eine Steuereinheit 337, einen Weiterleiter 338 und ein Speicher-Interface 339 aufweist. Jede Platine beinhaltet außerdem 4K-Bit-RAMs 340 für jeden Prozessor 336 auf der Platine. Anschaulich ist dieser Speicher, wie in Fig. 6 gezeigt, in Form von 22 4K x 1 Bit RAMs 342, die jedem integrierten Schaltkreis 334 zugeordnet sind, vorhanden. In jedem Speicher dient jedes der 16 4K x 1 Bit-Stücke als Speicher für einen der 16 identischen Prozessoren 336, wie dies im folgenden ausführlich behandelt wird. Die verbleibenden 6 4K x 1 Bit-Stücke speichern Parity- oder Syndrom-Bits, wie sie für die in den Speichern der 16 identischen Prozessoren, wie unten beschrieben, berechnet wurden. Die integrierten Schaltkreise 342 werden parallel durch den Adressdecoder 344 adressiert, so daß von jedem integrierten Schaltkreis die Daten parallel gelesen werden können und parallel eingeschrieben werden können, an die Adresse, wie sie von dem Adressdecoder spezifiziert ist. In der Praxis kann ein einzelner Adressdecoder verwendet werden, um das parallele Adressieren aller RAMs 342 auf einer einzelnen Platine 332 oder im gesamten Feld 330 oder selbst in allen Feldern zu steuern.
  • Jedes Prozessorfeld umfaßt auch einen Mikrocontroller 350A-D, wie er in Fig. 4 gezeigt ist, welcher mit dem Interconnector 320 durch einen der Busse des zweiten Bus-Feldes verbunden ist, und einen umfangreichen Zwischenverbindungsschaltkreis 360 zwischen jedem Prozessor und seinem Speicher, zwischen jedem Prozessor und seinen vier nächsten Nachbarn in dem Prozessorfeld und zwischen jedem Weiterleiter 338 und seinem nächsten Weiterleitungsnachbar in einem 10-dimensionalen Hyper-Würfel in dem Prozessorfeld, sowie zwei weitere Weiterleitungsschaltkreise (Routers) in zwei anderen Prozessorfeldern 330.
  • Gemäß der Lehre der oben bezeichneten Anmeldung ist jeder Weiterleitungsschaltkreis oder Router in dem Hyper-Würfel mit den fünf nächsten Nachbar-Routern verbunden, welche mit diesem auf der gleichen Platine befestigt sind und ist weiterhin zu fünf nächsten Nachbarroutern verbunden, die auf den fünf anderen Platinen des gleichen Prozessorfeldes befestigt sind. Bei jedem Router stellen die Verbindungen zu den fünf Routern der gleichen Platine Verbindungen in den gleichen fünf Dimensionen dar, beispielsweise die Dimensionen 1 bis 5 des Hyper-Würfels. Die Verbindungen zu den Routern auf den anderen fünf Platinen stellen Verbindungen zu anderen fünf Dimensionen, beispielsweise den Dimensionen 6 bis 10 des Hyper-Würfels, dar. Die Verbindungen der Router zu den anderen Feldern stellen Verbindungen in den verbleibenden Dimensionen, beispielsweise den Dimensionen 11 und 12, dar.
  • Der integrierte Schaltkreis 334 umfaßt über 50000 aktive Einheiten und ist beispielsweise in CMOS-Technologie in etwa 1cm² implementiert. Das CMOS-Stück ist in einen quadratischen keramischen Träger gepackt, welcher Eingangs- und Ausgangspins aufweist, unter denen sich ein Satz von Befehlspins, ein Satz von Speicherpins, ein Satz von Würfelpins, ein Satz von NEWS-Pins, ein Takteingang, ein Globalpin und ein Fehler-Pin befindet. Die Befehle werden der Steuereinheit 337 über die Befehlspins zugeführt, um den Betrieb der Prozessoren und des Routers zu steuern. Unter der Leitung der Steuereinheit holen die Prozessoren eines integrierten Schaltkreises Daten von dem Speicher, der mit diesem integrierten Schaltkreis assoziiert ist, führen arithmetische und logische Operationen an diesen Daten aus und speichern die Ergebnisse in dem Speicher. Vorteilhafterweise sind die Speicherpins bidirektional und alle Transfers zu und von dem Speicher finden über die Speicherpins statt.
  • Der Router ist für das Weiterleiten der adressierten Nachrichten zwischen den integrierten Schaltkreisen 334 und für das Abgeben der Nachricht an die durch die Adresse spezifizierten Ziele verantwortlich. Der Router kommuniziert mit den Routern anderer integrierter Schaltkreise 334 über die Cube-Pins.
  • Vorteilhafterweise sind die Cube-Pins auch bidirektional, um die Anzahl der Pins und die Verkabelung zwischen benachbarten Routern in dem Hypercube zu vereinfachen und zu reduzieren. Jedoch ist es notwendig, da jeder Router ein Nachrichtenpaket zu jedem anderen Router in dem Hypercube senden kann, Konflikte zu vermeiden, bei denen zwei nächste Nachbar-Router an gegenüberliegenden Enden der gleichen Leitung gleichzeitig versuchen, sich Nachrichtenpakete zu senden. Da jede beliebigen zwei nächsten Nachbarrouter eine Hamming-Distanz von 1 aufweisen, wird einer der Router eine binäre Adresse mit einer geraden Anzähl von 1-Bit aufweisen, während der andere Router eine binäre Adresse mit einer ungeraden Anzahl von 1-Bit aufweisen wird. Somit können Weiterleitungskonflikte dadurch vermieden werden, indem es nur Routern mit einer Adresse, die eine ungerade Anzahl (oder eine gerade) von Einer-Bits aufweist, erlaubt wird, Nachrichtenpakete während eines besonderen Nachrichtenweiterleitungszyklus weiterzuleiten.
  • Wie oben angedeutet wurde, sind die Prozessoren außerdem in einem rechteckförmigen zweidimensionalen Gitter miteinander verbunden. Auf jedem IC-Chip 334 sind die Prozessoren in diesem Schema als 4x4-Feld verbunden. Das zweidimensionale Schema erstreckt sich über eine Vielzahl integrierter Schaltkreise, indem ein Prozessor an einer Kante eines integrierten Schaltkreises mit einem Nachbarprozessor an einer angrenzenden Kante des 4x4-Feldes eines angrenzenden integrierten Schaltkreises auf der Platine verbunden ist. In gleicher Weise sind die Prozessoren an einer Kante eines 4x8-Feldes von ICs auf einer Platine 332 mit einem Nachbarprozessor an einer angrenzenden Kante des 4x8-Feldes der ICs auf einer anderen Platine verbunden. Die Verbindungen zu angrenzenden Prozessoren in dem zweidimensionalen Gitter werden durch die NEWS-Pin hergestellt, welche vorteilhafterweise gemultiplext sind, um die Pinanzahl zu reduzieren.
  • Weitere Details des Interconnectors 320 sind in Fig. 5 angegeben. Wie darin gezeigt ist, umfaßt der Interconnector 320 ein Statusregister 400, einen Statusregister-Multiplexer 405, einen Coder 410, vier Sende/Übertragungseinheiten 420A-D, vier Schreibmultiplexer 430A-D, vier Lesemultiplexer 440A-D und vier Global-Signalfelder 450A-D. Das Statusregister 400 steuert den Betrieb der Schreibmultiplexer 430A-D, der Lesemultiplexer 440A-D und der Global-Signalfelder 450A-D, so daß jeder der Host- Computer 310A-D mit jedem anderen oder mehrerer der Prozessorfelder 330A-D verbunden werden kann. Der Coder 410 und der Multiplexer 405 wählen eine von vier Eingangsleitungen zum Multiplexer 405 für die Verbindung mit einer Ausgangsleitung von dem Multiplexer zum Statusregister aus. Die Sende/Übertragungseinheiten 420A-D steuern die Richtung des Signalflusses auf den ersten Bussen 322A-D, so daß Signale an die Host-Computer fließen, während die Prozessor-Felder gelesen werden und von den Host-Computern wegfließen, wenn Daten in die Prozessorfelder geschrieben werden.
  • Die Schreib- und Lesemultiplexer 430A-D, 440A-D stellen Felder von 1-aus-4-Multiplexern dar, von denen jeder vier Eingangsleitungen auf eine Ausgangsleitung multiplext. Jeder Multiplexer 430A-D, 440A-D umfaßt 32 derartige 1-aus-4- Multiplexer, so daß vier Sets von 32 Eingangsleitungen parallel von jedem Multiplexer 430A-D, 440A-D auf ein Set von 32 Ausgangsleitungen gemultiplext werden. Die Auswahl des Sets von Eingangsleitungen, das von dem Multiplexer mit dem Set von Ausgangsleitungen verbunden wird, wird durch drei Eingangsleitungen 432A-D, 442A-D zu jedem Multiplexer vom Statusregister 400, gesteuert. Die binären Signalpegel auf den Eingangsleitungen 432A-D, 442A-D werden durch die Statussignale bestimmt, die in den Latches in dem Statusregister 400 gespeichert sind.
  • Die Statussignale spezifizieren, welche Host-Computer mit welchem Prozessorfeld verbunden wird. Jede mögliche Kombination von Host- Computer und Prozessorfeldern kann durch eine Anzahl von Signalen spezifiziert werden, welche gleich dem Produkt aus der Anzahl der Host-Computer und der Anzahl der Prozessorfelder ist. Diese Signale werden durch den Host-Computer in binär-codierte Form codiert und über einen der Datenbusse 322A-D und Multiplexer 405 zum Statusregister 400 weitergeleitet, wo sie gespeichert werden.
  • Die codierten Signale auf den Statusleitungen spezifizieren, welche Eingangsleitungen zu den Multiplexern 430A-D, 440A-D mit den Ausgangsleitungen verbunden werden müssen, um das gewünschte Verbindungsmuster zu bewirken. Beispielsweise werden zum Spezifizieren der Verbindungen der vier Host-Computer zum Prozessorfeld 330A, vier 2-Bit-Signalzustände benutzt, 00, 01, 10, 11, von denen eine die Verbindung von einem der Host-Computer zu dem Prozessorfeld darstellt. Für jedes Prozessorfeld, das mit einem Host-Computer verbunden werden soll, wird eines dieser vier Werte in den geeigneten Latch im Statusregister 400 gespeichert. Zusätzlich speichert das Statusregister 400 auch ein "No- Operation"-Signal, welches anzeigt, wenn keine Verbindung zwischen den Eingängen zu einem Multiplexer und seinem Ausgang gemacht werden soll.
  • Die Global-Signal-Felder 450A-D dienen zum selektiven Kombinieren von Signalen, wie etwa Global-Signale, welche von den Prozessoren 336 jedes Feldes zu den unterschiedlichen Mikrocontrollern 350A-D weitergegeben werden. Das Global-Signal beispielsweise wird als logische OR-Verknüpfung eines Ausgangssignals von jedem Prozessor in dem Prozessorfeld gebildet. Es wird benutzt, um den Betrieb der Prozessoren zu synchronisieren, indem die Ausgangssignale von jedem Prozessor so kombiniert und genutzt werden, daß keine weiteren Befehle ausgeführt werden können, bis jeder Prozessor in dem Feld seine vorhergehende Operation beendet hat. Beispielsweise kann ein ausgewähltes Ausgangssignal von jedem Processor von "high" and "low" sich verändern, wenn der Prozessor jede Operation abschließt. Diese Signale werden in einem logischen OR-Schaltkreis kombiniert, so daß ein Global- Ausgangssignal von diesem Schaltkreis seinen Zustand nicht ändert bis alle Eingangssignale an diesen Schaltkreis von den unterschiedlichen Prozessoren den Zustand wechseln, um anzuzeigen, daß die Operation beendet ist. Das Global- Ausgangssignal wiederum wird von dem Mikrocontroller in einer Weise benutzt, daß die Prozessoren des Feldes keine weiteren Operationen ausführen können bis alle von ihnen den Abschluß der vorherigen Operation angezeigt haben. Beispielsweise kann der Mikrocontroller das Global-Ausgangssignal benutzen, um das Inkrementieren eines Programmzählers etc., welcher die Abgabe der Befehle von dem Mikrocontroller zu den Prozessoren steuert, zu steuern.
  • In der vorliegenden Erfindung stellen die Global-Signalfelder 450A-D unterschiedliche Kombinationen der Globalsignale von unterschiedlichen Prozessorfeldern zur Verfügung, so daß der Betrieb einer Vielzahl von Prozessorfeldern synchronisiert werden kann. Jedes Globalsignal-Feld umfaßt einen Leitungs-Controller 452A-D und ein OR-Gatter 454A-D. Jeder Leitungscontroller 452A-D, der ein Feld von AND-Gattern darstellen kann, hat einen Global- Signaleingang von dem Prozessor eines jeden Prozessorfeldes und hat weiterhin einen Steuersignaleingang 456A-D vom Staturregister 400. Die Steuersignale spezifizieren, welche Globalsignal- Eingänge jedem OR-Gatter 454A-D zugeführt werden und werden dadurch kombiniert, um ein Global-Ausgangssignal zu bilden, welches an einen der Mikrocontroller 350A-D abgegeben wird. Gemäß der Erfindung stellen die Steuersignale die Kombination von Globalsignalen von unterschiedlichen Prozessorfeldern zur Verfügung, wo derartige Prozessorfelder mit dem gleichen Host- Computer verbunden sind. Im Ergebnis wird das Globalausgangssignal den Mikrocontrollern für jedes derartige Feld zugeführt, um deren Betrieb zu synchronisieren.
  • Beispielsweise, wenn der Prozessorfelder 330A und 330B mit dem Host-Computer 310A verbunden sind, stellen die Multiplexer 430A und 430B die Verbindung des Host-Computers 310A mit den Prozessorfeldern 330A und 330B zur Verfügung und der Multiplexer 440A stellt die Verbindung der Felder 330A und 330B zum Host- Computer 310A zur Verfügung. Die Globalsignal-Felder 450A und 450B stellen jeweils die Verbindung der Globalsignale von den Prozessoren des Feldes 330A und der Prozessoren des Feldes 330B zu den ORGattern 454A und 454B zur Verfügung. Diese Signale werden durch die OR-Gatter 454A und 454B den Mikrocontrollern 350A und 350B zugeführt, wo sie benutzt werden, um den Betrieb der Prozessorfelder zu synchronisieren. Insbesondere können, da gleiche Signale in beiden Feldern für die Steuerung benutzt werden, die zwei Felder parallel beschrieben werden, und es können die Signale zwischen den individuellen Prozessoren in den zwei Feldern miteinander vertauscht werden. Vorteilhafterweise können die Signale dadurch vertauscht werden, daß die Prozessoren in der Topologie eines Hypercube, wie er in dem '400-Patent beschrieben ist, verbunden sind und damit den Hypercube über die Prozessoren in beiden Feldern erstrecken.
  • Wie oben angedeutet wurde, stellt der Speicher für jeden Prozessor 336 vorzugsweise ein 4K x 1-Bit-RAM auf dem integrierten Schaltkreis dar. 16 derartiger Speicher für 16 Prozessoren sind miteinander zusammen mit 4K x 6 Paritybits organisiert. Der Speicher wird parallel über eine Reihe gelesen, um Datenausgänge auf den 16 Ausgangsleitungen zu erzeugen und um Parity-Ausgänge auf den 6 zusätzlichen Ausgangsleitungen zu erzeugen. Diese Signale werden dann parallel dem Fehler- Steuerschaltkreis zugeführt, damit Parity-Fehler selektiert und falls möglich, korrigiert werden.
  • Beispielsweise ist eine derartige Vorrichtung in den Fig. 6, 7, 8 und 9 gezeigt. Wie in Fig. 6 gezeigt ist, weist der Fehler- Steuerschaltkreis einen Syndrom-Generator 500, einen Multiplexer 505, einen Syndrom-Decoder 510 und Exklusiv-OR-Gatter 520, 530, 540 auf. Die 16-Daten-Ausgangsleitungen von dem RAM 340 und die 16-Daten-Ausgangsleitungen von den 16 Prozessoren 336 werden über den Multiplexer 505 zu unterschiedlichen Zeiten als Eingänge zu dem Syndromgenerator 500 geleitet. Der Syndromgenerator erzeugt sechs Syndrom-Signale, in dem er eine Modulo-2-Addition an den Bit-Werten auf ausgewählten Datenausgangsleitungen 336 oder den Datenausgangsleitungen von dem RAM 340, wie sie in Tabelle I gezeigt sind, wo das plus eine Modulo-2-Addition symbolisiert, ausführt: Tabelle I Syndrom-signal Syndrom-Eingang Leitungen, deren Signale summiert werden
  • Zusätzlich erzeugt der Syndrom-Generator auch ein gerades Parity- Ausgangssignal, indem er eine Modulo-2-Addition an den Bit-Werten aller Datenausgangsleitungen von dem Prozessor 336 oder von dem RAM 340 ausführt.
  • Der spezielle Schaltkreis zum Implementieren des Syndrom- Generators ist in Fig. 7 gezeigt und umfaßt Felder von Exklusiv- OR-Gattern 502, die wie gezeigt, mit dem Syndrom- Eingangsleitungen 0-15 verbunden sind, um Syndrom-Ausgangssignale 0-5 gemäß der Tabelle I zu erzeugen und um ein Parity- Ausgangssignal zu erzeugen.
  • Für den Fall, bei dem die Daten, die dem Syndrom-Generator 500 zugeführt werden, parallele Daten darstellen, welche von den 16 Prozessoren 336 an die 16 Speicher geschrieben werden, werden die sechs Syndrom-Ausgänge in die sechs Speicher an dieselben Adressen und zur gleichen Zeit geschrieben, wie die Datenbits, die zum Erzeugen der Syndrom-Ausgänge benutzt wurden, in den 16 Speichern gespeichert werden.
  • Im Fall, daß die dem Syndrom-Generator 500 zugeführten Daten, Daten sind, welche parallel von den 16 Speichern gelesen wurden, werden die sechs Syndrom-Ausgänge, wie sie durch den Syndrom- Generator 500 von diesen Daten erzeugt wurden, parallel durch sechs Exklusiv-OR-Gatter 520 mit den sechs Syndrom-Signalen, die an der gleichen Adresse, wie die 16 Datenbits gespeichert wurden, verglichen. Die Ergebnisse dieser Vergleiche werden dem Syndrom- Decoder 510 zur Verfügung gestellt. Der Syndrom-Decoder stellt fest, ob Diskrepanzen zwischen den Ausgängen von dem Syndrom- Generator und den Syndrom-Signalen, wie sie von den Speichern gelesen wurden, vorliegen und entscheidet, ob ein Fehler korrigiert werden kann. Liegen keine Diskrepanzen vor, wird der Ausgang eines jeden der sechs Exklusiv-OR-Gatter 520 ein Low- Signal sein. In diesem Fall wird der Ausgang des Syndrom-Decoders auf jeder der 16 Leitungen zu den 16 Exklusiv-OR-Gattern 530 "low" sein und der Ausgang auf der Leitung zum Exklusiv-OR-Gatter 540 wird "high" sein. Im Ergebnis werden sich die Signale auf den 16-Daten-Ausgangsleitungen, die den Exklusiv-OR-Gattern 530 zugeführt werden, nicht ändern und diese Signale werden den 16 Prozessoren 336 zugeführt. In gleicher Weise werden sich die geraden Parity-Ausgangssignale vom Syndrom-Generator 500 nicht ändern.
  • Wenn jedoch eine Diskrepanz zwischen den sechs Syndrom-Signalen und den sechs Parity-Werten vorliegt, liegt ein Fehler in den Signalen von dem RAM vor. Der Syndrom-Decoder wird versuchen, dies zu korrigieren. Insbesondere wird er ein Korrektur-Signal für jede der 16 Datenausgangsleitungen erzeugen, indem er die logische AND-Verknpüfung von unterschiedlichen Sätzen von drei der sechs Ausgänge der Exklusiv-OR-Gatter 520 bildet. Er wird außerdem feststellen, ob der Fehler korrigierbar ist, da nur einige Fehler mit der benutzten begrenzten Anzahl von Syndrom- Bits korrigiert werden können.
  • Die spezielle Vorrichtung für den Syndrom-Decoder 510 ist in den Fig. 8 und 9 gezeigt. Die Eingänge zu diesen Schaltkreise sind sechs Ausgangssignale SYN0-SYN5 von den Exklusiv-OR-Gattern 520. Wie in Fig. 8 gezeigt ist, umfaßt der Korrekturerzeugungsschaltkreis eines erstes Feld von sechs NAND- Gattern 512, die wie gezeigt, verschaltet sind und ein zweites Feld von 16 AND-Gattern 513 mit invertierten Eingängen, welche, wie gezeigt, verschaltet sind, um Korrektursignale COR0-COR15 zu erzeugen. Wie ersichtlich ist, ist das Verbindungsschema zwischen den Eingängen und Ausgängen des Schaltkreises der Fig. 8 auch durch die Tabelle I spezifiziert, wobei die Eingänge zu jedem der 16 Spalten der Tabelle I die drei Signale von den Exklusiv-OR- Gattern 520 spezifizieren, wie sie zum Erzeugen des Ausgangskorrektursignals verwendet werden.
  • Wie in Fig. 9 gezeigt ist, umfaßt der Schaltkreis zum Feststellen, ob ein Fehler vorliegt, ein ODER-Gatter 514, ein Feld von 15 Exklusiv-OR-Gattern 515 und zwei NAND-Gatter 516, 517. Das ODER-Gatter 514 detektiert auf eine Diskrepanz zwischen den sechs Syndromsignalen von dem Syndromgenerator 500 und den sechs Syndromsignalen von dem RAM. Seine Eingänge sind die sechs Signale SYN0-SYN6 von den Exklusiv-ODER-Gattern 510. Sein Ausgang wird den NAND-Gattern 516, 517 zugeführt, wobei der Ausgang des NAND-Gatters 516 dem Exklusiv-OR-Gatter 540 zugeführt wird, wie dies oben beschrieben wurde. Das Feld der fünf exklusiven ODER- Gattern bestimmt, ob die Anzahl der Diskrepanzen korrigierbar ist oder nicht. Für den Fall, daß nicht korrigiert werden kann, ist der Ausgang des NAND-Gatters 517 "low".
  • Für den Fachmann wird klar sein, daß eine Vielzahl von Modifikationen vorgenommen werden können, ohne von der oben beschriebenen Erfindung abzuweichen.

Claims (10)

1. Parallelprozessor mit:
einer Vielzahl van Prozessoren (336), die in einer Vielzahl von Feldern organisiert sind und parallel arbeiten,
einer Vielzahl von Host-Computern (310),
einer Vielzahl von ersten Datenbussen (322), von denen jeder eine Datenkommunikation mit einem unterschiedlichen Host-Computer ermöglicht,
einer Vielzahl von zweiten Datenbussen (324), von denen jeder eine Datenkommunikation mit einem unterschiedlichen Feld von Prozessoren ermöglicht, und
einer Einrichtung (320) zum Verbinden der ersten Datenbusse mit den zweiten Datenbussen,
dadurch gekennzeichnet, daß die Verbindungseinrichtung aufweist:
eine erste Einrichtung (430) zum selektiven Verbinden von ausgewählten ersten Datenbussen mit einem oder mehreren der zweiten Datenbussen, und
einer Einrichtung (400) zum Steuern der ersten Einrichtung (430), um die Anzahl der Prozessorfelder, die mit einem Host-Computer verbunden sind, einzustellen.
2. Parallelprozessor nach Anspruch 1, bei dem die erste Verbindungseinrichtung (430) eine Vielzahl von ersten Multiplexern, eines für jedes Feld, zum Schreiben der Daten von einem Host-Computer in ein Feld, aufweist.
3. Parallelprozessor nach Anspruch 1 oder 2 mit einer zweiten Einrichtung (440) zum selektiven Verbinden ausgewählter zweiter Datenbusse (324) mit einem Host-Computer.
4. Parallelprozessor nach Anspruch 3, bei dem die zweite Verbindungseinrichtung (440) eine Vielzahl von zweiten Multiplexern aufweist, einen für jeden Host-Computer, zum Lesen von Daten von einem Feld zu einem Host-Computer.
5. Parallelprazessor nach mindestens einem der Ansprüche 1 bis 4, bei dem die Prozessoren jedes Feldes entsprechend der Topologie eines Hyper-Würfels verbunden sind.
6. Parallelprozessor nach Anspruch 5, bei dem der Hyper-Würfel Kommunikationswege aufweist, die sich zwischen den individuellen Feldern erstrecken.
7. Parallelprozessor nach mindestens einem der Ansprüche 1 bis 6, weiterhin aufweisend eine Einrichtung (450) zum Synchronisieren des Betriebs der Prozessoren.
8. Parallelprozessor nach Anspruch 7, bei dem die Synchronisationseinrichtung aufweist:
an jedem Prozessor eine Einrichtung zum Erzeugen eines ersten Signals, das anzeigt, daß der Prozessor eine Operation abgeschlossen hat,
eine logische Einrichtung (454), die mit jedem Feld assoziiert ist zum Erzeugen eines zweiten Signals, nachdem das erste Signal von jedem Prozessor des Feldes erhalten wurde, und
eine Einrichtung zum Verhindern weitere Operationen von den Prozessoren des Feldes, bis das zweite Signal erhalten wird.
9. Parallelprozessor nach mindestens einem der Ansprüche 1 bis 8, weiterhin aufweisend:
an jedem Prozessor eine Einrichtung zum Erzeugen eines ersten Signals, das anzeigt, daß der Prozessor eine Operation beendet hat,
eine logische Einrichtung, die mit jedem Feld assoziiert ist zum Erzeugen eines zweiten Signals, nachdem das erste Signal von jedem Prozessor des Feldes erhalten wurde,
eine Einrichtung (450) zum Kombinieren der zweiten Signale, wie sie von jedem der Felder, die mit einem Host-Computer verbunden sind, erzeugt werden, und
einer Einrichtung zur Verhinderung weiterer Operationen von den mit dem Host-Computer verbundenen Feldern, bis die kombinierten zweiten Signale empfangen wurden.
10. Parallelprozessor nach Anspruch 9, bei dem Einrichtung zum Kombinieren der zweiten Signale aufweist:
eine Eingabeeinrichtung zum Empfangen eines zweiten Signals von jedem Feld,
eine Einrichtung (452) zum Auswählen der zweiten Signale, wie sie von den Feldern, die mit einem einzelnen Host-Computer verbunden sind, erzeugt werden, und
einer Einrichtung (454) zum Erzeugen eines Ausgangssignals, nachdem das zweite Signal von jedem der Felder, die mit/durch einem/einen Host-Computer verbunden sind, empfangen wurde.
DE19873784223 1986-10-28 1987-05-20 Paralleler rechner. Expired - Fee Related DE3784223T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US92409086A 1986-10-28 1986-10-28

Publications (2)

Publication Number Publication Date
DE3784223D1 DE3784223D1 (de) 1993-03-25
DE3784223T2 true DE3784223T2 (de) 1993-06-03

Family

ID=25449691

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19873784223 Expired - Fee Related DE3784223T2 (de) 1986-10-28 1987-05-20 Paralleler rechner.

Country Status (3)

Country Link
EP (1) EP0270198B1 (de)
CA (1) CA1289671C (de)
DE (1) DE3784223T2 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5170370A (en) * 1989-11-17 1992-12-08 Cray Research, Inc. Vector bit-matrix multiply functional unit
EP0610938A1 (de) * 1993-02-11 1994-08-17 Universities Research Association, Inc. Dreidimensionaler Flussprozessor
US5671377A (en) * 1994-07-19 1997-09-23 David Sarnoff Research Center, Inc. System for supplying streams of data to multiple users by distributing a data stream to multiple processors and enabling each user to manipulate supplied data stream
WO1997004388A1 (en) * 1995-07-19 1997-02-06 Unisys Corporation Partitionable array processor with independently running sub-arrays

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4051551A (en) * 1976-05-03 1977-09-27 Burroughs Corporation Multidimensional parallel access computer memory system
US4814973A (en) * 1983-05-31 1989-03-21 Hillis W Daniel Parallel processor

Also Published As

Publication number Publication date
DE3784223D1 (de) 1993-03-25
EP0270198A1 (de) 1988-06-08
EP0270198B1 (de) 1993-02-17
CA1289671C (en) 1991-09-24

Similar Documents

Publication Publication Date Title
DE3854474T2 (de) Vorrichtung und verfahren zur übertragung von nachrichtenpaketen.
DE3486141T2 (de) Parallel-prozessor.
DE3751616T2 (de) Parallel-Grossrechner.
DE69028395T2 (de) Konfigurierbare zellenanordnung
DE3049437C2 (de) Matrixanordnung einer Vielzahl von Verarbeitungselementen
DE4416881C2 (de) Verfahren zum Betrieb einer Datenverarbeitungseinrichtung
DE3506749C2 (de)
DE2718849C2 (de) Datenverarbeitungsanlage für Datenelemente einer Matrix aus M Speichermoduln und mit p Prozessoren
DE3688505T2 (de) Multiportspeichersystem.
EP0012186B1 (de) Einrichtung zur Erzeugung von Taktsteuersignalen
EP0123921B1 (de) Parallelverknüpfungsschaltung mit verkürztem Übertragsdurchlauf
EP0031485B1 (de) Prioritätseinrichtung für eine Einheit einer Datenverarbeitungsanlage mit einer Daten-Sammelleitung
DE3851554T2 (de) Steuerungsanordnung für gemeinschaftlichen Speicher.
DE3606650A1 (de) Hardware logik-simulator
DE2819571A1 (de) Datenverarbeitungsanlage mit mehreren prozessoren
DE4134192A1 (de) Integrierter schaltkreis mit verarbeitung im speicher
DE3882990T2 (de) Verfahren und gerät zur simulation von m-dimensionalen verbindungsnetzwerken in einem n-dimensionalen netzwerk, worin m kleiner ist als n.
DE68929552T2 (de) Automatische Wegsucheverfahren für einen logischen Schaltkreis
DE2854782C2 (de) Datenverarbeitungssystem und Verfahren zum Ersetzen eines Datenblocks in einem Schnellspeicher
DE3788617T2 (de) Vektordatenverarbeitungssystem mit einer E/A-Steuerung für jeden Vektordatenprozessor und einer anderen E/A-Steuerung für mindestens einen anderen Vektordatenprozessor.
DE2361512A1 (de) Schaltungsanordnung zur pruefung eines additionsresultates
DE3784223T2 (de) Paralleler rechner.
DE3543471C1 (de) In integrierter Technik hergestellter Baustein zur Erstellung integrierter Schaltungen
DE60221515T2 (de) Speichersystem für schleifenbeschleunigung nach wunsch
EP0257362A1 (de) Addierer

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee