DE3882990T2 - Verfahren und gerät zur simulation von m-dimensionalen verbindungsnetzwerken in einem n-dimensionalen netzwerk, worin m kleiner ist als n. - Google Patents
Verfahren und gerät zur simulation von m-dimensionalen verbindungsnetzwerken in einem n-dimensionalen netzwerk, worin m kleiner ist als n.Info
- Publication number
- DE3882990T2 DE3882990T2 DE88904811T DE3882990T DE3882990T2 DE 3882990 T2 DE3882990 T2 DE 3882990T2 DE 88904811 T DE88904811 T DE 88904811T DE 3882990 T DE3882990 T DE 3882990T DE 3882990 T2 DE3882990 T2 DE 3882990T2
- Authority
- DE
- Germany
- Prior art keywords
- processors
- integrated circuit
- data
- dimensional
- integrated circuits
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims description 18
- 230000015654 memory Effects 0.000 claims description 52
- 230000005540 biological transmission Effects 0.000 claims description 2
- 230000003213 activating effect Effects 0.000 claims 2
- 230000001143 conditioned effect Effects 0.000 abstract description 2
- 238000004891 communication Methods 0.000 description 7
- 238000003491 array Methods 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17337—Direct connection machines, e.g. completely connected computers, point to point communication networks
- G06F15/17343—Direct 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Multi Processors (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Image Processing (AREA)
- Small-Scale Networks (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
- Mit der vorliegenden Anmeldung in Beziehung stehende Anmeldungen sind "Parallel Processor", US-A-4 814 973, und "Parallel Processor/Memory Circuit", US-A-6 709 327, die beide am 31. Mai 1983 eingereicht worden sind, sowie "Method and Apparatus for Routing Message Packets", US-Patent 4 598 400 und "Method and Apparatus for Interconnecting Processors in a Hyper-Dimensional Array", US-A-4 805 091, die am 31. Mai 1985 eingereicht worden sind.
- Die vorliegende Erfindung bezieht sich auf mehrdimensionale Verbindungsnetzwerke. Für die Verbindung paralleler Prozessoren, wie sie in der oben angegebenen US-Patentschrift 4 598 400 beschrieben worden sind und wie sie im nachfolgenden beschrieben werden, sind derartige Netzwerke insbesondere nützlich, jedoch eignen sie sich auch für andere Gebiete.
- Wie in der Figur 1A in US-PS 4 598 400 gezeigt ist, umfaßt das Parallelprozessorsystem dieses Patents einen Mainframe-Computer 10, einen Mikrocontroller 20, ein Feld 30 parallel verarbeitender integrierter Schaltkreise 35, eine Datenquelle 40, einen ersten Puffer und Multiplexer/Demultiplexer 50, erste, zweite, dritte und vierte bidirektionale Bussteuerschaltkreis 60, 65, 70, 75 einen zweiten Puffer und Multiplexer/Demultiplexer 80 und eine Datensenke 90. Der Mainframe-Computer 10 kann ein in geeigneter Weise und kommerziell verfügbarer "general purpose computer", wie etwa ein VAX-Computer, wie er von Digital Equipment Corp. hergestellt wird, sein. Der Mikrocontroller 20 stellt einen Befehlssequenzer herkömmlicher Art zum Erzeugen einer Sequenz von Befehlen dar, welche dem Feld 30 über einen Zweiunddreißig-Bit-Parallel-Bus 22 zugeführt werden. Der Mikrocontroller 20 empfängt von dem Feld 30 ein Signal auf der Leitung 26. Der Bus 22 und die Leitung 26 sind parallel mit jedem IC 35 verbunden. Als Ergebnis werden die Signale von dem Mikrocontroller 20 gleichzeitig zu jedem IC 35 im Feld 30 angelegt und das Signal, das dem Mikrocontroller 20 auf der Leitung 26 zugeführt wird, wird durch Kombinieren der Signalausgänge von allen ICs 35 des Feldes gebildet.
- Das Feld 30 enthält tausende identischer ICs 35; jeder IC 35 enthält mehrere identische Prozessoren/Speicher 36. In der Ausführungsform, wie sie in dem '400-Patent enthalten ist, ist angedeutet, daß das Feld bis zu 32.768 (= 2&sub1;&sub5;) identische ICs 35 enthält; jeder IC 35 kann 32 (= 2&sub5;) identische Prozessoren/Speicherrr 36 enthalten. Zum Zeitpunkt der Einreichung dieser Anmeldung in den USA wurden Felder mit bis zu 4.096 (= 2&sub1;&sub2;) identischen PCs 35, die jeweils 16 (= 2&sub4;) identische Prozessoren/Speicher enthalten, vom Abtretungsempfänger hergestellt und als Connection Machine-Computer (Reg. TM) auf den Markt gebracht.
- Das '400-Patent beinhaltet einen parallelen Prozessor, in dem die Prozessoren/Speicher 36 in zwei Geometrien organisiert und miteinander verbunden sind. Die erste ist ein herkömmliches zweidimensionales Gittermuster, in dem die Prozessoren/Speicher in einem rechteckigen Feld organisiert sind und mit ihren vier nächsten Nachbarn des Feldes verbunden sind. Die zweite ist ein Boolscher n-Würfel mit 15 Dimensionen. Um die Prozessoren/Speicher in einem zweidimensionalen Gittermuster zu verbinden, sind die ICs 35 des Feldes 30 in einem rechteckförmigen Feld von 256 (= 2&sub8;) Reihen und 128 (= 2&sub7;) Spalten organisiert; die 32 Prozessoren/Speicher jedes ICs sind in einem rechteckförmigen Feld von 4 (= 2&sub2;) Reihen und 8 (= 2&sub3;) Spalten verbunden. Im Ergebnis sind 1.048.576 Prozessoren/Speicher 36 des Feldes 30 in einem Rechteck von 1.024 (= 2&sub1;&sub0;) Reihen und 1.024 Spalten verbunden. Zum leichteren Verständnis sind die Seiten dieses quadratischen Feldes mit 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 Spalte miteinander verbunden; die vier nächsten Nachbarn jedes ICs mit Ausnahme derer an den Ecken des Feldes werden als die vier ICs gewählt, die in nördlicher, östlicher, südlicher und westlicher Richtung unmittelbar dem IC benachbart sind.
- Das oben beschriebene zweidimensionale Gitter läßt keinen Stellenaustausch von Daten in beliebigen Richtungen zwischen den prozessoren/Speichern 36 in dem zweidimensionalen Feld zu. Darüber hinaus ist es zum Verschieben von Daten zwischen der Kante des Feldes und einem speziellen prozessor/Speicher notwendig, diese Daten durch alle prozessoren/Speicher zwischen der Kante und dem entsprechenden prozessor/Speicher zu schieben, was Schiebeoperationen durch mehr als 500 prozessoren/Speicher notwendig macht. Selbst wenn es möglich ist, eine einzelne Schiebeoperation mit sehr hoher Geschwindigkeit auszuführen, macht es die Notwendigkeit, 500 derartige Schiebeoperationen auszuführen, um eine komplette Operation zu erhalten, untolerierbar langsam. Mit den zusätzlichen Komplikationen zum Ausführen derartiger Schiebeoperationen zur gleichen Zeit für eine große Anzahl von Prozessoren/Speichern in beliebigen und voneinander unabhängigen Richtungen, wird des unmöglich, ein derartiges großes zweidimensionales Gitter von Prozessoren/Speichern mit vernünftigen Kosten zu betreiben.
- Dieses Problem wird gelöst, indem die Prozessoren/Speicher 36 gemäß einer zweiten Geometrie miteinander verbunden werden. Insbesondere sind die ICs 35 in dem Beispiel, wie es in dem '400-Patent beschrieben ist, in der Form eines Boolschen n-Würfels mit fünfzehn Dimensionen organisiert und miteinander verbunden. Jeder IC weist einen Logik-Schaltkreis auf, um das Weiterleiten von Nachrichten durch ein derartiges Verbindungsnetzwerk zu steuern; innerhalb jedes ICs sind Busverbindungen zu den zweiunddreißig prozessoren/Speichern vorgesehen, so daß jeder der mehr als eine Million Prozessoren/Speicher eine Nachricht zu jedem anderen senden kann. Weiterhin können eine sehr große Anzahl von Nachrichten zu jeder Zeit gesendet werden und die Nachrichten können in beliebige Richtungen weitergeleitet werden.
- Die Vorteile eines derartigen hyperdimensionalen Verbindungsnetzwerkes sind, verglichen mit denen eines herkömmlichen zweidimensionalen Verbindungsnetzwerkes, derartig bedeutend, daß sich die Frage stellt, ob zwei Verbindungsnetzwerke gerechtfertigt sind. Das zweidimensionale Netzwerk hat den Vorteil, daß es in seiner Struktur identisch zu vielen Datenfeldern ist, welche durch parallele Prozessoren manipuliert werden können. Somit ist es mit einem zweidimensionalen Verbindungsnetzwerk möglich, unmittelbar Operationen mit dem linken oder rechten, dem oberen oder unteren Nachbarn auszuführen, wie dies oft beim Manipulieren von zweidimensionalen Datenfeldern ausgeführt wird. Jedoch werden die Kosten des zweidimensionalen Netzwerkes zum großen Teil durch die begrenzte Fläche eines integrierten Schaltkreises und eine sehr hohe Anzahl von Verbindungen oder Pins auf dem integrierten Schaltkreis im Verhältnis zur bereitgestellten Funktion verursacht. Beispielsweise werden, falls jeder integrierte Schaltkreis ein 4x4-Feld von Prozessoren trägt, 16 Pins benötigt, um die Verbindungen zu den linken, rechten, oberen und unteren Nachbarprozessoren auf angrenzenden integriertem Schaltkreis zur Verfügung zu stellen. Während diese Anzahl dadurch reduziert werden kann, daß die Pin-Richtungen gemultiplext werden, wird ein Minimum von drei Pins weiterhin für diese Feldgröße benötigt.
- EP-A2-0 201 797 beschreibt einen Computer mit einer Vielzahl von Prozessoren, die über ein n-dimensionales Hyper-Würfel-Netzwerk miteinander verbunden sind. Insbesondere ist die Emulation eines zwei-, drei- oder vierdimensionalen Verbindungsnetzwerkes innerhalb eines Hyper-Würfels mit mehr als vier Diemensionen durch geeignete Auswahl der nächsten Nachbarn unter Verwendung eines Gray-Code-Auswahl-Schemata beschrieben.
- Es ist die Aufgabe der vorliegenden Erfindung, einen Parallel-Prozessor und ein Verfahren zum Steuern eines Parallel-Prozessors anzugeben, mit dem eine Emulation eines Verbindungsnetzwerkes mit einer geringeren Dimension als die des physikalischen Verbindungsnetzwerkes erreicht werden kann.
- Diese Aufgabe wird durch die Gegenstände der Ansprüche 1 und 5 gelöst.
- Gemäß der Erfindung wird jedem Element oder Knoten in einem n-dimensionalen Verbindungsmuster eine einmalige Binärzahl oder Adresse durch Nummerieren der Elemente zugewiesen. Danach werden die individuellen Binärstellen der mit jedem Element assoziierten Adresse einer unterschiedlichen Dimension des Verbindungsmusters mit m Dimensionen gemäß einer festen Regel zugeordnet. Jeder Satz von Binärstellen, der einer Dimension zugewiesen ist, wird dann als Adresse der Knotens in dieser Dimension in einem Gray-Code-Raum behandelt; die Knoten, die ihre nächsten Nachbarn in dieser Dimension sind, sind die Knoten, die die Gray-Code-Werte beinhalten, die unmittelbar vor ihm und unmittelbar hinter ihm in der Gray-Code-Sequenz darstellen. Die Daten werden dann an den nächsten Nachbarn in einer Richtung in einer Dimension dadurch weitergeleitet, daß sie von einem Knoten zum anderen Knoten weitergegeben werden, der die nächste nachfolgende (oder vorgehende) Gray-Code-Adresse enthält und ein Knoten kann so konditioniert werden, daß er die Daten empfängt, indem er nach Daten von dem Knoten mit der nächsten vorhergehenden (oder nachfolgenden) Adresse Ausschau hält.
- Vorteilhafterweise kann die vorliegende Erfindung so implementiert sein, daß sie ein zweidimensionales Verbindungsnetzwerk in einem Feld von ICs, die miteinander in Form eines Hyper-Würfels mit zwölf oder mehr Dimensionen verbunden sind, simuliert.
- Weiterhin ist es durch Verwendung eines "Exchangers" (Austauschers) oder Permutieres möglich, Verbindungsmuster mit unterschiedlichen Dimensionen auf individuellen IC-Chips zu simulieren. In einer bevorzugten Ausführungsform wird der Exchanger dazu verwendet, Daten von jedem Prozessor eines Feldes auf einem IC-Chip in Speicherabschnitten, die mit unterschiedlichen Prozessoren assoziiert sind, zu speichern. Mit geeigneten Austauschungen können die Datenspeichermuster die gleiche Schiebeoperation mit Daten simulieren, die unter spezifischen Betrieben in einem Netzwerk von einer, zwei oder mehreren Dimensionen auftreten würden. Zusätzlich können derartige Schiebeoperationen innerhalb eines Chips mit Datenübertragungen zwischen Chips kombiniert werden, so daß sich die Verbindungsmuster, wie sie auf individuellen Chips simuliert werden, über das gesamte Feld von Chips in dem n-dimensionalen Verbindungsnetzwerk erstrecken.
- Diese und andere Aufgaben, Merkmale und Vorteile der Erfindung werden anhand der detaillierten Beschreibung der Erfindung verständlich, wobei
- Fig.1 ein Flußdiagramm einer bevorzugten Ausführungsform der Erfindung zeigt;
- Fig.2 eine schematische Darstellung integrierter Schaltkreise ist, die zur Ausführung der Erfindung verwendet werden können;
- Fig.3 eine schematische Darstellung eines Exchangers, wie er zum Ausführen eines weiteren Aspekts der Erfindung verwendet wird, zeigt;
- Fig.4 eine schematische Darstellung einer Ausführungsform eines Schalters, wie er in dem Exchanger verwendet wird; und
- Fig.5 ein Flußdiagramm einer weiteren Anwendung der Erfindung zeigt.
- Um ein n-dimensionales Würfel-Verbindungsmuster zu verstehen, ist es hilfreich, die Elemente des Musters der Reihe nach durchzunummerieren, und diese Nummern oder Adressen in binärer Notation auszudrücken. Ist das Verbindungsmuster beispielsweise in einem Feld von 4096 integrierten Schaltkreises implementiert, so kann man die ICs von 0 bis 4095 nummerieren und diese Nummern in Binärstellen, so wie auf Tabelle I, anschreiben. TABELLE I IC-Adresse in dezimaler Notation IC-Adresse in binärer Notation
- Da ein IC innerhalb des n-Würfels nur eine von zwei unterschiedlichen Positionen, 0 und 1, in jeder Position haben kann, kann die zwölfstellige IC-Adresse in binärer Notation, wie sie in Tabelle I angegeben wurde, auch dafür verwendet werden, um die Position des ICs in dem n-Würfel mit zwölf Dimensionen anzugeben. Zum leichteren Verständnis werden wir die am weitesten links stehende Binärstelle der zwölfstelligen Binärzahl zum Bestimmen der Position des ICs in der ersten Dimension verwenden und so weiter in Richtung zu der am weitesten rechts stehenden Binärstelle, um die Position des ICs in der zwölften Dimension zu bestimmen.
- Weiterhin hat jeder IC zwölf andere ICs, dessen Binäradresse sich nur um eine Binärstelle von seiner eigenen Adresse unterscheidet, da eine Binärstelle nur zwei Werte, Null und Eins, annehmen kann, und da jeder IC einheitlich durch zwölf Binärstellen identifiziert ist. Wir werden diese zwölf ICs, deren Adressen sich nur um eine Stelle von der des ersten ICs unterscheiden, als die nächsten Nachbarn des ersten ICs bezeichnen. Diejenigen, die sich mit der mathematischen Definition der Hamming-Distanz auskennen, werden erkennen, daß der erste IC von den anderen zwölf nächsten Nachbarn durch die Hamming-Distanz Eins beabstandet ist. Zwei Beispiele von Adressen eines ICs und seinen zwölf nächsten Nachbarn sind in Tabelle II angegeben. TABELLE II Beispiel IC-Adresse: Adressen der nächsten Nachbarn:
- In physikalischer Hinsicht sind die ICs in ein- oder zweidimensionalen Feldern auf integrierten Platinen aufgebracht. Sie sind in der Form eines zwölfdimensionalen Würfelmusters durch physikalisch verlegte Drähte von jedem IC mit seinen zwölf nächsten Nachbarn in dem Würfel verbunden. Eine besonders vorteilhafte Verbindungstechnik zum Erreichen dieser Verbindung ist in der oben genannten 740 943-Anmeldung beschrieben.
- Da eine Leitung mit jeder Dimension assoziiert ist und sich nur zwei ICs in jeder Dimension befinden, kann gezeigt werden, daß die Exklusiv-Oder-Verknüpfung der Adressen beliebiger zwei ICs eine zwölfstellige Zahl ist, in der die 1-Bits die Dimensionen spezifizieren, die verwendet werden müssen, um die zwei ICs zu verbinden und somit die Leitungen des n-dimensionalen Würfels, die die zwei ICs verbinden. Eine weitere Vorstellung der hyperdimensionalen Verbindungsmuster kann von einer Betrachtung eines drei- und vierdimensionalen Würfelverbindungsnetzwerks, wie es in den Figuren 2 und 3 in dem oben genannten '400-Patent gezeigt ist, gewonnen werden.
- Um ein Verbindungsmuster mit geringeren Dimensionen in einem n-dimensionalen Muster zu simulieren, ist es notwendig, in dem n-dimensionalen Muster ein Verbindungsmuster zu erstellen, das in gleicher Weise funktioniert wie das Verbindungsmuster von geringeren Dimensionen. Um eine ausführbare Simulation anzugeben, muß es auch möglich sein, diese Simulation in einer Serie paralleler Operationen zu implementieren, die gleichzeitig an allen Elementen des n-dimensionalen Musters ausgeführt werden können.
- Gemäß der Erfindung wird dies, wie in Figur 1 gezeigt, durch die folgenden Schritte erreicht. Zuerst wird jedem Element oder Knoten in dem n-dimensionalen Verbindungsmuster eine einmalige Binärzahl oder Adresse durch Nummerieren der Elemente zugewiesen. Danach werden die individuellen Binärstellen der Adresse, die mit jedem Elemente assoziiert sind, unterschiedlichen Dimensionen des Verbindungsmusters von geringeren Dimensionen entsprechend einer festen Regel zugewiesen. Beispielsweise werden bei einem zweidimensionalen Verbindungsmuster die ersten sechs Bits einer Zwölf-Bit-Binäradresse der ersten Dimension oder x-Koordinate des zweidimensionalen Verbindungsmusters zugewiesen und die letzten sechs Bits der zweiten Dimension oder der y-Koordinate. Alternativ könnten die ungerade nummerierten Bits der ersten Dimension zugewiesen werden und die gerade nummerierten Bits der zweiten Dimension. Jede beliebige Regel kann verwendet werden, solange sie für jede binäre Adresse in dem n-dimensionalen Muster angewendet wird.
- Jeder Satz von Binärstellen, der einer Dimension zugewiesen ist, wird dann als Adresse des Knotens in der Dimension in einem Gra-Code-Raum behandelt; und die Knoten, die dessen nächsten Nachbarn in dieser Dimension sind, sind diejenigen Knoten, die die Gray-Code-Werte unmittelbar vor und unmittelbar nach dem in der Gray-Code-Sequenz einnehmen. Somit kann für einen gegebenen Knoten die Adresse seines nächsten Nachbarknotens in einer Richtung in einer Dimension dadurch bestimmt werden, in dem die Gray-Code-Adresse des gegebenen Knotens in der Dimension in ihre binäre äquivalente Darstellung konvertiert wird, eine binäre Eins zu der äquivalenten Darstellung addiert wird und das Ergebnis zurück in den Gray-Code konvertiert wird. Die Adresse des nächsten Nachbarn in der anderen Richtung der gleichen Dimension wird erhalten, indem dasselbe Verfahren angewendet wird mit dem Unterschied, daß eine binäre Eins von der binären äquivaltenen Darstellung subtrahiert statt addiert wird. Alternativ könnten die Gray-Code-Adressen der nächsten Nachbar-ICs von einer sequentiellen Auflistung von Gray-Codes bestimmt werden.
- In gleicher Weise können die Sätze binärer Stellen, die anderen Dimensionen des Verbindungsnetzwerks mit geringerer Dimension zugewiesen sind, in entsprechender Weise als Gray-Code-Adressen dieses Knotens behandelt werden; und in jeder Dimension werden die nächsten Nachbarn dadurch bestimmt, daß eine binäre Eins von dem binären Äquivalent des Gray-Code-Werts addiert und subtrahiert wird und die Ergebnisse in Gray-Code-Werte konvertiert werden.
- Daten können dann an den nächsten Nachbarn in einer Richtung in einer gewünschten Dimension dadurch weitergegeben werden, daß sie über das n-dimensionale Netzwerk von einem IC zu dem IC, der die nächstfolgende Gray-Code-Adresse aufweist, weitergegeben werden; und ein IC kann eingestellt werden, um derartige Daten zu empfangen, indem man ihn veranlaßt, nach Daten von dem IC mit der nächstvorausgehenden Adresse Ausschau zu halten. Alternativ können Daten in die entgegengesetzte Richtung weitergeleitet werden, indem man sie von einem IC zu dem IC mit der nächstvorhergehenden Adresse weitergibt und indem nach Daten von dem IC mit der nächstnachfolgenden Adresse Ausschau gehalten wird.
- Eine geeignete zu verwendendene Würfelverbindung wird bestimmt, indem man eine Exklusiv-Oder-Verknüpfung der Gray-Code-Adressen des Quell-ICs und des Ziel-ICs ausführt. Da diese Adressen sequentielle Gray-Code-Adressen sind, unterscheiden sie sich nur in einem Bit und dieses eine Bit spezifiziert die Verbindung, die für die Kommunikation verwendet werden muß. In gleicher Weise wird die Leitung, die für den Empfang von Daten beobachtet werden muß, dadurch bestimmt, daß man die Exklusiv-Oder-Verknüpfung der Gray-Code-Adressen des Quell-ICs und des Ziel-ICs verwendet. Erneut stellen diese Adressen sequentielle Gray-Code-Adressen dar und das eine Bit, in dem sie sich unterscheiden, spezifiziert die für die Kommunikation zu verwendende Leitung.
- Die nächsten Nachbar-Verbindungen können dann soweit wie nötig zum Weiterleiten von Daten in der gleichen Dimension verwendet werden. In gleicher Weise können die nächsten Nachbaradressen in anderen Dimensionen bestimmt werden.
- Weiterhin werden genau die gleichen Berechnungen und Operationen an jedem Knoten ausgeführt, um seine nächsten Nachbarn zu bestimmen. Somit werden die gleichen Bits der Knotenadresse an jedem Knoten untersucht, um die Gray-Code-Adresse in dieser Dimension zu bestimmen. Die gleichen Schritte werden ausgeführt, um die Adresse und die Würfelverbindung für den nächsten Nachbar-IC in der gewünschten Richtung in dieser Dimension zu bestimmen; und die gleichen Schritte werden ausgeführt, um die Adresse und die Würfelverbindung des nächsten Nachbar-ICs in der entgegengesetzten Richtung zu bestimmen. Im Ergebnis können alle ICs des n-dimensionalen Netzwerkes gleichzeitig betrieben werden, um Daten an ihre nächsten Nachbarn in einer Dimension gemäß der Ordnung, wie sie durch die Gray-Code-Sequenz bestimmt wurde, zu bewegen.
- Das folgende Beispiel illustriert, wie die Erfindung ausgeführt sein kann. Gemäß der Erfindung wird eine einmalige Binärzahl jedem Knoten in dem Verbindungsnetzwerk zugewiesen. Nimmt man an, daß 4.096 (= 2¹²) Knoten in dem Netzwerk vorhanden sind, und daß die Binärzahl 000 111 001 101 einem dieser Knoten zugewiesen ist, so werden zur Bestimmung der nächsten Nachbarn dieses Knotens in einem zweidimensionalen Netzwerk einige der Binärstellen der Binärzahl einer Dimension und einige einer anderen Dimension zugewiesen. Es wird angenommen, daß die ersten sechs Stellen der ersten Dimension oder x-Koordinate und die letzten sechs Stellen der zweiten Dimension oder y-Koordinate zugewiesen worden sind. Da jeder Knoten eine einmalige Binärzahl aufweist, spezifizieren die sechs Stellen in jeder Dimension ein zweidimensionales Feld von 64x64 (= 2&sup6; x 2&sup6;) Knoten. Diese Binärstellen werden dann als Gray-Codes zum Zwecke der Bestimmung ihrer nächsten Nachbarn in der ersten und zweiten (x und y) Dimensionen und dabei zum Spezifizieren ihrer Verbindungen verwendet.
- Es gibt unterschiedliche Gray-Codes und unterschiedliche Formeln für deren Bildung. Eine bevorzugte Formel zur Erzeugung eines Gray-Codes einer Binärzahl n ist
- Gray Code (n) = n (n um 1 nach rechts geschoben) (1)
- wobei die logische Exklusiv-Oder-Verknüpfung und (n um 1 nach rechts geschoben) die Binärzahl n um 1 nach rechts verschoben ist. In der anderen Richtung kann die äquivalente Binärzahl eines Gray-Codes durch Verwendung der folgenden Formel auf Binärstelle nach Binärstellen-Basis zum Erzeugen der Binärstellen der Binärzahl bestimmt werden:
- bdi = gdi gdi-1 ... gd&sub1; (2)
- wobei die logische Exklusiv-Oder-Verknüpfung, i die Anzahl der Binärstellen in der Binärzahl oder in dem Gray-Code-Äquivalent ist, bdi die i-te derartige Binärstelle, und gdi die i-te derartige Gray-Code-Stelle ist. Vorteilhafterweise werden diese Formel für die Erfindung benutzt, um die Gray-Code- und Binär-Umwandlungen zu berechnen. Jedoch zum Zwecke des Verständnisses des Beispiels ist eine Tabelle, die die Beziehung der Gray-Codes mit ihrem Binärwert aufzeigt, geeigneter und die ersten sechzehn Werte und der letzte Wert einer derartigen Vierundsechzig-Wert-Code-Tabelle ist in Tabelle III angegeben. TABELLE III Binärwert Gray-Code-Wert
- Somit wird zum Auffinden der nächsten Nachbarn in der ersten Dimension des Knotens mit der Adresse 000 111 001 101 die Zahl 000 111 als Gray-Code-Wert betrachtet und deren binäres Äquivalent unter Verwendung der Formel (2) zu 000 101 berechnet. Um die nächsten Nachbarn in einer Richtung zu finden, wird der Binärwert 1 zu diesem Äquivalent addiert, um den Wert 000 110 zu erreichen, welcher dann in den Gray-Code-Wert von 000 101 unter Verwendung der Formel (1) konvertiert wird, wodurch der Knoten in dieser Richtung identifiziert wird. Die Exklusiv-Oder-Verknüpfung der Adressen 000 111 und 000 101 erzeugt die Zahl 000 010, die anzeigt, daß die Weiterleitungsleitung die fünfte Würfelleitung des Satzes ist, welcher mit der fünften Dimension in dem zwölfdimensionalen Netzwerk korrespondiert. Um den nächsten Nachbarn in der anderen Richtung zu lokalisieren, wird der Binärwert 1 von dem binären Äquivalent subtrahiert, um den Wert 000 100 zu erreichen, welcher dann in 000 110 konvertiert wird, wodurch der Knoten in dieser Richtung identifiziert wird. Die Exklusiv-Oder-Verknüpfung von 000 111 und 000 110 erzeugt die Zahl 000 001, die anzeigt, daß die Kommunikation mit dem nächsten Nachbarn in der anderen Richtung über die sechste Leitung des Satzes, welcher mit der sechsten Dimension des zwölfdimensionalen Netzwerkes korrespondiert, stattfindet.
- In gleicher Weise werden die nächsten Nachbarn in der zweiten Dimension als 001 100 und 001 111 bestimmt und die Kommunikation mit diesem Knoten in dem zweidimensionalen Netzwerk findet über die fünfte und sechste Leitung des Satzes, der mit der elften und zwölften Dimension des zwölfdimensionalen Netzwerkes korrespondiert, statt.
- Wenn es erwünscht ist, Netzwerke zu simulieren, die eine andere Dimension als zwei Dimensionen aufweisen, so ist dies lediglich eine Frage der Zuweisung geeigneter Binärstellen der Adresse jedes Knotens des n-dimensionalen Verbindungsnetzwerkes zu der gewünschten Anzahl von Dimensionen. Nachdem die Zuweisung stattgefunden hat, werden die Operationen für jede Dimension unabhängig in einer Weise, wie es für das obige Beispiel eines simulierten zweidimensionalen Netzwerkes beschrieben wurde, ausgeführt.
- In der Vorrichtung, wie sie in dem '400-Patent beschrieben ist, wird das zweidimensionale Verbindungsnetzwerk auch dazu benutzt, um die individuellen Prozessoren in einem integrierten Schaltkreis zu verbinden; und das zweidimensionale Muster, das auf jedem IC errichtet ist, wird von einem Chip auf dessen nächste Nachbarn in einem zweidimensionalen Feld von Chips weitergeführt. Somit haben für den Fall, in dem die Prozessoren in einem zweidimensionalen Muster mit vier Zeilen und acht Spalten miteinander verbunden sind, die vier Prozessoren auf der rechten Seite eines ICs einen nächsten Nachbarprozessor zur rechten Seite, der auf der linken Seite des ICs angeordnet ist, der der nächste Nachbar-IC auf der rechten Seite ist; die acht Prozessoren entlang der oberen Kante eines ICs haben jeweils einen nächsten Nachbarprozessor über ihnen, der an der unteren Kante des ICs angeordnet ist, der der nächste Nacnbar-IC in der oberen Richtung ist; und so weiter nach links in die unteren Richtungen. Falls gewünscht, kann dieses zweidimensionale Verbindungsnetzwerk auf den individuellen IC-Chips auch dadurch simuliert werden, daß die oben beschriebenen Techniken und eine Vorrichtung, wie sie auf dem Markt verfügbaren Ausführungen der Vorrichtung, wie sie im '400-Patent gezeigt ist, verwendet werden.
- Insbesondere umfaßt, wie in schematischer Weise in Figur 2 gezeigt ist, ein integrierter Schaltkreis zur Benutzung in einem parallelen Prozessor sechzehn Prozessoren 10, ein Speicher-Interface 20, einen Steuerschaltkreis 30 und ein Kommunikations-Interface oder Weiterleiter (router) 40.
- Beispielhaft sind die Prozessoren gleich denen, wie sie in dem '400-Patent beschrieben wurden, mit der Ausnahme, daß ein Lese/Schreibspeicher 25 auf einem oder mehreren anderen ICs angeordnet ist, auf den durch das Speicher-Interface in einer Weise zugegriffen wird, wie sie beispielsweise in der Figur 6 der oben erwähnten 924 090-Anmeldung gezeigt ist. Daten, die für die spätere Verwendung von dem gleichen Prozessor gespeichert werden sollen oder die an andere Prozessoren auf dem gleichen IC oder zu den Prozessoren auf andere IC übertragen werden sollen, werden von den Prozessoren 10 über die Datenbusse 12 und 22 und das Speicher-Interface 20 zu dem Lese/Schreib-Speicher 25 zur Verfügung gestellt, wo sie gespeichert werden, bis sie verwendet werden können oder übertragen werden können. Für Daten, die von dem aussendenden Prozessor oder anderen Prozessoren auf dem gleichen IC gebraucht werden, werden die Daten von dem Lese/Schreib-Speicher entfernt und über das Speicher-Interface 20 und den Datenbus 26 an die Prozessoren zur Verfügung gestellt. Für die Übertragung an andere ICs werden die Daten von dem Lese/Schreib-Speicher 25 entfernt und dem Kommunikations-Interface 40 über das Speicher-Interface 20 und den Datenbus 28 zur Verfügung gestellt. Das Kommunikations-Interface 40 ist über die Würfel-Leitungen 42, die zu anderen integrierten Schaltkreisen führen, verbunden, um ein n-dimensionales Verbindungsnetzwerk unter den integrierten Schaltkreisen zu erreichen.
- Mit den Prozessoren 10 ist ein Auswechsler (exchanger) oder Permutierer 15 assoziiert zum Vertauschen der Signale an den Ausgangsleitungen von den Prozessoren, bevor diese Signale dem Speicher-Interface zugeführt werden. Wie in den Figuren 3 und 4 gezeigt ist, umfaßt der Exchanger (Auswechsler) ein Feld von Schaltern 62, von denen jeder so wie gezeigt zwischen einem Feld von Eingängen 64 und einem Feld von Ausgängen 66 und einer Steuersignalquelle 68 für jeden Schalter verbunden ist. Wie in Figur 4 gezeigt ist, umfaßt jeder Schalter 62 vier Und-Gatter 72-75, die wie gezeigt, zwischen einem Paar von Eingängen 76, 77 und einem Paar von Ausgängen 78, 79 verbunden sind, und von einem Signal von der Quelle 68 gesteuert werden. Im Betrieb wird ein Signal, welches auf der Leitung 76 eingegeben wird, auf der Leitung 78 oder der Leitung 79 ausgegeben, abhängig vom Zustand des Signals von der Quelle 68; und in gleicher Weise wird ein Signal, welches auf der Leitung 77 eingegeben worden ist, auf der Leitung 79 oder der Leitung 78 ausgegeben, abhängig von dem Signal von der Quelle 68. Im Ergebnis werden die Signale auf den Leitungen 76 und 77 entweder vertauscht oder nicht vertauscht.
- Beispielhaft ist der Exchanger, so wie in Figur 3 gezeigt ist, so ausgelegt, daß er die Signale auf sechzehn Eingangsleitungen 64, wobei von jedem der Prozessoren eine ausgeht, zu vertauschen, wofür ein 4x8-Feld von Schaltern A1-A8 bis D1-D8 und zweiunddreißig Signalquellen 68 benötigt werden. Die Signalquellen sind beispielhaft als Register oder mehrere Register implementiert, die einen Zweiunddreißig-Bit-Ausgang aufweisen, wobei jedes Bit den Zustand eines unterschiedlichen Schalters steuert.
- Gemäß der Erfindung können der Exchanger 15 und der Speicher 25 dazu benutzt werden, um Daten zwischen den Prozessoren in einem Muster zu verschieben, welches ein Verbindungsfeld, wie beispielsweise eines mit einer oder zwei Dimensionen, simuliert. insbesondere werden unterschiedliche Abschnitte des Speichers 25 durch unterschiedliche Ausgangsleitungen 24 von dem Exchanger 15 beschrieben und die Daten, die in diesen Daten gespeichert sind, werden jeweils einem anderen Prozessor zugänglich gemacht. In entsprechender Weise können durch das Vertauschen der Signale auf den Ausgangs leitungen von den Prozessoren, Daten von einem Prozessor in einem Abschnitt des Speichers, welcher mit einem anderen Prozessor assoziiert ist, gespeichert werden und dann von diesem Abschnitt ausgelesen werden und dem anderen Prozessor zugeführt werden. Als Beispiel werden die 16 Prozessoren durch die Buchstaben a-p identifiziert und die Prozessoren sollen in einem 4x4-Feld, wie es in Tabelle IV gezeigt ist, angeordnet sein. TABELLE IV
- Jeder dieser Prozessoren hat einen Datenausgang, welcher mit einer der Eingangs leitungen des Exchangers 15 verbunden ist. Beispielsweise ist, wie dies in den Spalten 1 und 2 der Tabelle V gezeigt ist, der Prozessor a mit der Eingangsleitung 0 verbunden, der Prozessor b mit der Leitung 1 und so weiter. Bei geeigneter Einstellung A-F der Schalter 62 werden die Dateneingänge an den Exchanger 15 auf der Leitung 0 vom Prozessor a, die Ausgänge von dem Exchanger auf den Leitungen 3, 1, 4, 12, 1 und 15 sein, und daher innerhalb des Speichers in einem Abschnitt gespeichert werden, der mit den Prozessoren d, b, e, m, b und p assoziiert ist. In entsprechender Weise gibt die Tabelle V für jede anderen Eingangs/Ausgangsleitung die Beziehung zwischen der Information an den Eingangs- und Ausgangsleitungen und der Schalterfestsetzung an. TABELLE V I/O Leitung Datenquelle Schaltstellung Datenausgang
- wobei
- die Schalter A1-A8, B2, B4, B6, B8 so gesetzt sind, daß sie die Signale in der Schalterstellung A vertauschen; die Schalter A1-A8, B1, B3, B5, B7 so gesetzt sind, daß sie sie die Signale in der Schalterstellung B vertauschen; die Schalter C1-C8, D1-D4 so gesetzt sind, daß sie die Signale in der Schalterstellung C vertauschen;
- die Schalter C1-C8, D5-D8 so gesetzt sind, daß sie die Signale in der Schalterstellung D vertauschen;
- die Schalter A1-A8, B1, B3, B5, B7, C1, C5, D1 so gesetzt sind, daß sie die Signale in der Schalterstellung E vertauschen; und
- die Schalter A1-A8, B2, B4, B6, B8, C4, C8, D8 so gesetzt sind, daß sie die Signale in der Schalterstellung F vertauschen.
- Für die Schalterstellungen A-D ist der Exchanger-Ausgang so, daß die Daten von den Prozessoren a-p in dem Speicher in den Mustern, wie sie in den Tabellen VIA-VID gezeigt sind, gespeichert werden. TABELLE VIA TABELLE VIB TABELLE VIC TABELLE VID
- Somit hat die Schalterstellung A bewirkt, daß die Daten von den Prozessoren des 4x4-Feldes eine Spalte nach rechts verschoben wurden, die Schalterstellung B, daß die Daten eine Spalte nach links verschoben wurden, die Schalterstellung C hat bewirkt, daß sie um eine Reihe nach oben verschoben wurden und die Schalterstellung D, daß sie um eine Reihe nach unten verschoben wurden. Die Schalterstellung E und F haben in gleicher Weise bewirkt, daß eine Verschiebung um eine Einheit nach links und eine Verschiebung um eine Einheit nach rechts bei einem eindimensionalen sequentiellen Feld von sechzehn Elementen bewirkt wurde.
- Durch die vorhergehende Lehre wurde eine Einrichtung angegeben zum Simulieren eines ein- und zweidimensionalen Verbindungsnetzwerkes in einem Schaltkreis, der einen Exchanger und einen Speicher anstatt einer direkten physikalischen Verdrahtung zwischen nächsten Nachbarelementen aufweist.
- Diese Technik kann auf mehr Dimensionen ausgedehnt werden, wenn dies gewünscht wird. Diese Technik kann auch mit der Simulationstechnik, wie sie in Verbindung mit Figur 1 besprochen wurde, kombiniert werden, um dadurch beispielsweise ein zweidimensionales Feld, das in einem Exchanger implementiert ist, über eine Vielzahl von IC-Chips, die in einem n-dimensionalen kubischen Netzwerk verbunden sind, auszudehnen. Wie in Figur 5 gezeigt ist, wird dies dadurch erreicht, daß zuerst die nächsten Nachbarchips durch die gleiche Prozedur, wie sie in Figur 1 beschrieben wurde, identifiziert werden, und dann der Exchanger dazu benutzt wird, um die Daten von den Prozessoren auf jeden Chip an die Speicherplätze, die mit unterschiedlichen Prozessören auf dem gleichen Chip assoziiert sind, zu verschieben, und danach das n-dimensionale Netz dazu verwendet wird, um die Daten in der geeigneten Richtung und Dimension an die nächsten Nachbar-ICs vom Prozessor, die sich an der Kante eines jeden Chips, der sich am nächsten zum nächsten Nachbar-IC befindet, zu übertragen und schließlich die übertragenen Daten in dem Speicher bei jedem übertragenen IC mit Daten auszutauschen, welche von seinem nächsten Nachbar-IC in der entgegengesetzten Richtung, jedoch in der gleichen Dimension empfangen worden sind.
- Beispielsweise werden, um alle Daten um eine Einheit nach rechts für den Fall eines n-dimensionalen kubischen Netzwerkes integrierter Schaltkreischips, die ein 4x4-Feld von Prozessoren auf jedem Chip aufweisen, zu schieben, werden die Chips zuerst nummeriert, ihre Adressen in dem zweidimensionalen Netzwerk bestimmt und ihre nächsten Nachbarn unter Verwendung der Gray-Code-Sequenz identifiziert. Auf dem Chip-Level werden die Verschiebungen nach rechts durch Verwendung der Schalterstellung A in dem Exchanger 15 implementiert, um die Daten von jedem Prozessor auf jeden Chip in dem Speicherraum zu speichern, welcher dem auf der rechten Seite in dem 4x4-Feld liegenden Prozessor zugeordnet ist, zu speichern. Die Daten von den vier Prozessoren auf der nächsten Seite jedes Feldes werden dann durch das n-dimensionale Netzwerk von jedem IC zu seinem nächsten Nachbar-IC auf der rechten Seite in der x- oder Zeilen-Dimension übertragen. Die Identität der Würfelleitung, die diese Verbindung zur Verfügung stellt, wird dadurch bestimmt, indem die Exklusiv-Oder-Verknüpfung der Adresse des ICs und der Adresse seines nächsten Nachbar-ICs zur rechten Seite in der Reihen-Dimension verwendet wird. Bei jedem IC werden Daten von dem unmittelbar vorhergehenden IC zur linken Seite empfangen und die Würfelleitung, die diese Verbindung zur Verfügung stellt, wird durch die Exklusiv-Oder-Verknüpfung der Adresse des ICs und der Adresse des unmittelbar vorhergehenden IC nach links in der Reihen-Dimension bestimmt. Die Daten werden so, wie sie empfangen wurden, in den Abschnitt des Speichers, der mit den Prozessoren zur linken Seite des 4x4-Feldes assoziiert sind, gespeichert. Danach wird auf die Daten, die in dem Speicher gespeichert sind, durch individuelle Prozessoren zugegriffen, wobei jeder jetzt die Daten hat, die vorher bei dem Prozessor unmittelbar zur linken Seite in dem simulierten zweidimensionalen Netzwerk vorhanden waren. Die Schrittsequenz zum Verschieben der Daten nach links, oben oder unten, ist ähnlich.
Claims (11)
1. Verfahren zum Steuern eines Parallelprozessors mit
einem Feld von in etwa identischen integrierten
Schaltkreisen und Speicherplätzen, auf die alle
integrierten Schaltkreise zugreifen können, wobei jeder
integrierte Schaltkreis eine Vielzahl von Prozessoren (10)
und eine Permutiereinrichtung (15) zum Permutieren von
Daten unter den Prozessoren auf jedem integrierten
Schaltkreis aufweist, wobei der Parallelprozessor
weiterhin ein Verbindungsnetzwerk (40) zum Verbinden der
integrierten Schaltkreise in einem n-dimensionalen
Netzwerk aufweist, wobei "n" größer als 2 ist und wobei
jeder integrierte Schaltkreis physikalisch direkt mit n
benachbarten integrierten Schaltkreisen verbunden ist, und
wobei das Verfahren es dem Parallelprozessor erlaubt, ein
m-dimensionales Verbindungsnetzwerk zu emulieren, wobei
"m" kleiner ist als "n", welches sich über die
integrierten Schaltkreise erstreckt und wobei das
Verfahren folgende Schritte aufweist:
A) Setzen der Permutiereinrichtung (15) auf den
integrierten Schaltkreisen, um ein geeignetes
Datentransfermuster innerhalb der Prozessoren auf einem
einzelnen integrierten Schaltkreis durch Schieben von
Daten von den Prozessoren auf jedem integrierten
Schaltkreis an die Speicherplätze, die unterschiedlichen
Prozessoren auf dem gleichen integrierten Schaltkreis
zugeordnet sind, was in einem Transfer von Daten entlang
einer gewünschten Richtung des emulierten m-dimensionalen
Verbindungsnetzwerkes auf jedem integrierten Schaltkreis
resultiert, und
B) Setzen des n-dimensionalen Verbindungsnetzwerkes,
um Daten zwischen gewissen Prozessoren benachbarter
integrierter Schaltkreise zu verschieben, indem eine
physikalische Verbindung zwischen benachbarten
integrierten Schaltkreisen aktiviert wird, um eine
Übertragung von Daten entlang einer ausgewählten Richtung
des emulierten m-dimensionalen Verbindungsnetzwerkes auch
zwischen integrierten Schaltkreisen zu erzielen,
wobei das Setzen des n-dimensionalen Verbindungsnetzwerkes
umfaßt:
- Zuteilen einer einmaligen Binärzahl mit zumindest "n"
Stellen an jeden integrierten Schaltkreis;
- Zuweisen gewisser Stellen jeder Binärzahl für jeden
integrierten Schaltkreis an jede der "m"-Dimensionen,
wobei die gleichen Stellen in jeder Binärzahl der gleichen
Dimension zugewiesen sind;
- Identifizieren der nächsten Nachbarn für jeden
Schaltkreis entlang jeder der "m"-Dimensionen durch
Interpretieren gewisser Binärstellen, die jeder der
"m"-Dimensionen zugeordnet sind, als Gray-Codes und
Betrachten für jede der "m"-Dimensionen, diejenigen zwei
Prozessoren als Nachbarprozessoren, die sequentielle
Gray-Codes aufweisen.
2. Verfahren nach Anspruch 1, indem der
Identifizierungsschritt für die nächsten Nachbarn folgende
Schritte aufweist:
- Konvertieren der Stellen der Binärzahl für eine der
"m"-Dimensionen von einem Gray-Code-Wert in einen
äquivalenten Binärwert für jeden integrierten Schaltkreis;
- Addieren oder Subtrahieren eines Binärwerts von 1 von
dem äquivalenten Binärwert um einen binären resultierenden
Wert für jeden integrierten Schaltkreis zu erhalten; und
- für jeden integrierten Schaltkreis Konvertieren des
resultierenden Binärwerts in sein Gray-Code-Äquivalent,
wobei das Gray-Code-Äquivalent zusammen mit dem Rest der
Binärzahl den nächsten Nachbarn entlang der Dimension für
jeden integrierten Schaltkreis identifiziert.
3. Verfahren nach Anspruch 1 oder 2, bei dem der
Setz-Schritt für das n-dimensionale Netzwerk die
folgenden Schritte aufweist:
- für jeden integrierten Schaltkreis Identifizieren der
Prozessoren, die die nächsten Nachbarprozessoren
darstellen, die für die Übertragung von Daten an
Prozessoren eines anderen integrierten Schaltkreises
dienen und der Prozessoren, die die nächsten
Nachbarprozessoren darstellen, die zum Empfangen von
Daten von Prozessoren auf anderen integrierten
Schaltkreisesn dienen; und
- Setzen der identifizierten Prozessoren, um Daten für
das Verbindungsnetzwerk zu übertragen und zu empfangen.
4. Verfahren nach Anspruch 1, 2 oder 3, bei dem zumindest
einige der obigen Schritte parallel ausgeführt werden.
5. Parallelprozessor mit:
A) einem Bereich von etwa identischen integrierten
Schaltkreisen, von denen jeder eine Vielzahl von
Prozessoren (10) und eine Permutiereinrichtung (15) zum
Permutieren von Daten unter den Prozessoren auf jedem
integrierten Schaltkreis aufweist,
B) Speicherplätzen (25), auf die alle integrierten
Schaltkreise zugreifen können,
C) einem Verbindungsnetzwerk, welches die integrierten
Schaltkreise in einem n-dimensionalen Netzwerk verbindet,
wobei "n" größer als 2 ist und wobei jeder integrierte
Schaltkreis physikalisch direkt mit n benachbarten
integrierten Schaltkreisen verbunden ist,
D) einer Steuereinrichtung (30) zum Steuern der
Prozessoren, um ein n-dimensionales Verbindungsnetzwerk
zu emulieren, wobei "m" kleiner als "n" ist, welches sich
über die integrierten Schaltkreise erstreckt, wobei die
Steueranordnung aufweist:
i) eine Einrichtung zum Setzen der permutiereinrichtung
(15) auf den integrierten Schaltkreisen, um ein
geeignetes Datenübertragungsmuster innerhalb der
Prozessoren auf einem einzelnen integrierten
Schaltkreis durch Schieben von Daten von den
Prozessoren auf jeden integrierten Schaltkreis zu den
Speicherplätzen, die mit unterschiedlichen Prozessoren
auf dem gleichen integrierten Schaltkreis assoziiert
sind, zu erreichen, was in einer Übertragung von Daten
entlang einer ausgewählten Richtung des emulierten
m-dimensionalen Verbindungsnetzwerkes auf jedem
integrierten Schaltkreis resultiert, und
ii) eine Einrichtung zum Setzen des n-dimensionalen
Verbindungsnetzwerkes, um Daten zwischen bestimmten
Prozessoren benachbarter integrierter Schaltkreise
durch Aktivieren einer physikalischen Verbindung
zwischen benachbarten integrierten Schaltkreisen zu
übertragen, um eine Übertragung von Daten entlang
einer ausgewählten Richtung des emulierten
m-dimensionalen Verbindungsnetzwerkes auch zwischen
integrierten Schaltkreisen zu erreichen, wobei die
Setzeinrichtung aufweist:
- eine Einrichtung zum Zuteilen einer einmaligen
Binärzahl mit zumindest "n" Stellen an jeden
integrierten Schaltkreis;
- einer Einrichtung zum Zuweisen für jeden
integrierten Schaltkreis gewisser Stellen jeder
Binärzahl an jede der "m"-Dimensionen, wobei gleiche
Stellen jeder Binärzahl gleichen Dimensionen zugeteilt
werden;
- eine Einrichtung zum Identifizieren für jeden
Schaltkreis seiner nächsten Nachbarn entlang jeder
der "m"-Dimensionen, indem gewisse Stellen, die jeder
der "m"-Dimensionen zugeordnet sind, als Gray-Codes
interpretiert werden, und indem für jede der
"m"-Dimensionen diejenigen zwei Prozessoren als
Nachbarprozessoren betrachtet werden, die sequentielle
Gray-Codes aufweisen.
6. Parallelprozessor nach Anspruch 5, bei der
Identifizierungseinrichtung für die nächsten Nachbarn
aufweist:
- eine Einrichtung zum Konvertieren der Steilen der
Binärzahl, die einer der "m"-Dimensionen zugeordnet sind,
von einem Gray-Code-Wert in einen äquivalenten Binärwert;
- eine Einrichtung zum Addieren oder Subtrahieren eines
Binärwertes von 1 von dem äquivalenten Binärwert, um einen
resultierenden Binärwert zu erzeugen; und
- eine Einrichtung zum Konvertieren des resultierenden
Binärwertes zu seinem Gray-Code-Äquivalent, wobei das
Gray-Code-Äquivalent zusammen mit dem Rest der Binärzahl
für jeden integrierten Schaltkreis den nächsten
integrierten Nachbar-Schaltkreis entlang dieser Dimension
identifiziert.
7. Parallelprozessor nach Anspruch 5 oder 6, bei dem jeder
integrierte Schaltkreis-Chip weiterhin ein
Verbindungsnetzwerk-Interface (40) zum Bereitstellen einer
Schnittstelle mit dem Verbindungsnetzwerk aufweist, und
ein Speicherinterface (20) aufweist zum Bereitstellen
einer parallelen Schnittstelle zwischen den Prozessoren
und dem Speicher, und wobei die Permutiereinrichtung (15)
zwischen den Prozessoren (10) und dem Speicher-Interface
(20) verbunden ist, um das Permutieren von Daten zu
erleichtern, wenn Daten zwischen dem Speicher-Interface
(20) und den Prozessoren (10) übertragen werden.
8. Parallelcomputer nach mindestens einem der Ansprüche 5
bis 7, wobei für jeden integrierten Schaltkreis (10) die
Permutiereinrichtung eine Mehrstufen-Schalteinrichtung
(64) aufweist, wobei jede Schaltstufe eine Vielzahl von
Schaltzellen aufweist, welche für die Übertragung von
Daten unter den Prozessoren gemäß vorgegebenem Muster, die
durch Steuersignale, die die Schaltzellen steuern,
eingerichtet werden, verwendet werden, wobei die
Setz-Einrichtung für die Permutiereinrichtung die
Steuersignale steuert, um eine Übertragung von Daten unter
den Prozessoren entlang der ausgewählten Richtung zu
erreichen.
9. Parallelcomputer nach zumindest einem der Ansprüche 5
bis 8, weiterhin aufweisend einen Host-Computer zum
Steuern der entsprechenden Elemente in paralleler Weise.
10. Parallelcomputer nach zumindest einem der Ansprüche 5
bis 9, bei dem die n-dimensionale
Netzwerkübertragungssetzeinrichtung aufweist:
- eine Einrichtung zum Identifizieren für jeden
integrierten Schaltkreis, diejenigen Prozessoren, die die
nächsten Nachbarprozessoren darstellen, welche zum
Übertragen von Daten an Prozessoren auf einem anderen
integrierten Schaltkreis verwendet werden, und derjenigen
Prozessoren, die die nächsten Nachbarprozessoren
darstellen, welche zum Empfang von Daten von Prozessoren
auf einem anderen integrierten Schaltkreis verwendet
werden; und
- eine Einrichtung zum Setzen der identifizierten
Prozessoren, um in entsprechender Weise Daten über das
Verbindungsnetzwerk zu übertragen und zu empfangen.
11. Verfahren oder Parallelcomputer entsprechend zumindest
einem der vorhergehenden Ansprüche, bei dem "m" 2 ist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/042,761 US5050069A (en) | 1987-04-27 | 1987-04-27 | Method and apparatus for simulating m-dimension connection networks in and n-dimension network where m is less than n |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3882990D1 DE3882990D1 (de) | 1993-09-09 |
DE3882990T2 true DE3882990T2 (de) | 1993-11-25 |
Family
ID=21923608
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE88904811T Expired - Lifetime DE3882990T2 (de) | 1987-04-27 | 1988-04-26 | Verfahren und gerät zur simulation von m-dimensionalen verbindungsnetzwerken in einem n-dimensionalen netzwerk, worin m kleiner ist als n. |
Country Status (6)
Country | Link |
---|---|
US (1) | US5050069A (de) |
EP (1) | EP0358704B1 (de) |
JP (1) | JPH02503245A (de) |
AT (1) | ATE92658T1 (de) |
DE (1) | DE3882990T2 (de) |
WO (1) | WO1988008566A1 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012146406A1 (en) | 2011-04-23 | 2012-11-01 | Deubzer Michael | Method for the design evaluation of a system |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5170482A (en) * | 1987-08-14 | 1992-12-08 | Regents Of The University Of Minnesota | Improved hypercube topology for multiprocessor computer systems |
EP0379557A4 (en) * | 1988-06-20 | 1992-09-09 | United States Department Of Energy | Interconnection networks |
JPH03112324A (ja) * | 1989-09-21 | 1991-05-13 | Mitsubishi Electric Corp | 分散型シミユレーシヨン装置 |
US5198979A (en) * | 1989-09-26 | 1993-03-30 | Shell Oil Company | Seismic migration of multiprocessor computer |
US5157785A (en) * | 1990-05-29 | 1992-10-20 | Wavetracer, Inc. | Process cell for an n-dimensional processor array having a single input element with 2n data inputs, memory, and full function arithmetic logic unit |
US5301104A (en) * | 1990-08-07 | 1994-04-05 | Honeywell Inc. | Method for allocating processing elements interconnected in a hypercube topology |
WO1992003792A1 (en) * | 1990-08-10 | 1992-03-05 | Syracuse University | Method and apparatus for routing and partitioning a multistage interconnection network and for determining network passability |
US5404296A (en) * | 1991-09-25 | 1995-04-04 | Tinking Machines Corporation | Massively parallel computer arrangement for analyzing seismic data pursuant to pre-stack depth migration methodology |
US5442797A (en) * | 1991-12-04 | 1995-08-15 | Casavant; Thomas L. | Latency tolerant risc-based multiple processor with event driven locality managers resulting from variable tagging |
JP2512272B2 (ja) * | 1992-01-10 | 1996-07-03 | インターナショナル・ビジネス・マシーンズ・コーポレイション | マルチプロセッサ・コンピュ―タ・システムおよびそのデ―タ割振り方法 |
US5659778A (en) * | 1992-02-03 | 1997-08-19 | Tm Patents, L.P. | System and method of mapping an array to processing elements |
US5796966A (en) * | 1993-03-01 | 1998-08-18 | Digital Equipment Corporation | Method and apparatus for dynamically controlling data routes through a network |
US6546451B1 (en) * | 1999-09-30 | 2003-04-08 | Silicon Graphics, Inc. | Method and apparatus for decoupling processor speed from memory subsystem speed in a node controller |
CA2437039A1 (en) | 2001-02-24 | 2002-10-24 | International Business Machines Corporation | A novel massively parrallel supercomputer |
DE10123406A1 (de) * | 2001-05-15 | 2002-11-21 | Sick Ag | Verfahren zum Erfassen von zweidimensionalen Codes |
US6895571B2 (en) * | 2002-09-13 | 2005-05-17 | Hewlett-Packard Development Company, L.P. | Nanometer scale devices |
JP4652741B2 (ja) * | 2004-08-02 | 2011-03-16 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 異常検出装置、異常検出方法、異常検出プログラム、及び記録媒体 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4065808A (en) * | 1975-01-25 | 1977-12-27 | U.S. Philips Corporation | Network computer system |
US4533993A (en) * | 1981-08-18 | 1985-08-06 | National Research Development Corp. | Multiple processing cell digital data processor |
US4523273A (en) * | 1982-12-23 | 1985-06-11 | Purdue Research Foundation | Extra stage cube |
US4644496A (en) * | 1983-01-11 | 1987-02-17 | Iowa State University Research Foundation, Inc. | Apparatus, methods, and systems for computer information transfer |
US4727474A (en) * | 1983-02-18 | 1988-02-23 | Loral Corporation | Staging memory for massively parallel processor |
US4709327A (en) * | 1983-05-31 | 1987-11-24 | Hillis W Daniel | Parallel processor/memory circuit |
US4598400A (en) * | 1983-05-31 | 1986-07-01 | Thinking Machines Corporation | Method and apparatus for routing message packets |
JPS6015768A (ja) * | 1983-07-08 | 1985-01-26 | Hitachi Ltd | ネツトワ−ク最適化装置 |
US4550397A (en) * | 1983-12-16 | 1985-10-29 | At&T Bell Laboratories | Alternate paths in a self-routing packet switching network |
JPS60204673A (ja) * | 1984-03-29 | 1985-10-16 | 株式会社東芝 | 窒化ケイ素焼結体の製造方法 |
US5113523A (en) * | 1985-05-06 | 1992-05-12 | Ncube Corporation | High performance computer system |
US4739476A (en) * | 1985-08-01 | 1988-04-19 | General Electric Company | Local interconnection scheme for parallel processing architectures |
-
1987
- 1987-04-27 US US07/042,761 patent/US5050069A/en not_active Expired - Lifetime
-
1988
- 1988-04-26 WO PCT/US1988/001366 patent/WO1988008566A1/en active IP Right Grant
- 1988-04-26 JP JP63504558A patent/JPH02503245A/ja active Pending
- 1988-04-26 EP EP88904811A patent/EP0358704B1/de not_active Expired - Lifetime
- 1988-04-26 AT AT88904811T patent/ATE92658T1/de not_active IP Right Cessation
- 1988-04-26 DE DE88904811T patent/DE3882990T2/de not_active Expired - Lifetime
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012146406A1 (en) | 2011-04-23 | 2012-11-01 | Deubzer Michael | Method for the design evaluation of a system |
US9405864B2 (en) | 2011-04-23 | 2016-08-02 | Michael Deubzer | Method for a design evaluation of a system |
Also Published As
Publication number | Publication date |
---|---|
DE3882990D1 (de) | 1993-09-09 |
US5050069A (en) | 1991-09-17 |
ATE92658T1 (de) | 1993-08-15 |
EP0358704B1 (de) | 1993-08-04 |
JPH02503245A (ja) | 1990-10-04 |
EP0358704A4 (en) | 1990-12-19 |
WO1988008566A1 (en) | 1988-11-03 |
EP0358704A1 (de) | 1990-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3882990T2 (de) | Verfahren und gerät zur simulation von m-dimensionalen verbindungsnetzwerken in einem n-dimensionalen netzwerk, worin m kleiner ist als n. | |
DE3880478T2 (de) | Geschichtetes netz. | |
DE3486141T2 (de) | Parallel-prozessor. | |
DE69220597T2 (de) | Feldprogrammierbares Funktionselement | |
DE3689820T2 (de) | Verfahren und Gerät zur Simulierung von durch partielle differentiale Gleichungen beschriebenen Systemen. | |
DE68929317T2 (de) | Modulare Kreuzschienen zwischen Verbindungen in einem digitalen Rechner | |
DE69128888T2 (de) | Programmierbares logisches feld | |
DE69425605T2 (de) | Crossbarschalter für ein Multiprocessorsystem | |
DE3856015T2 (de) | Berechnungseinrichtung für Parallelprozessoren | |
DE3049437C2 (de) | Matrixanordnung einer Vielzahl von Verarbeitungselementen | |
DE3854474T2 (de) | Vorrichtung und verfahren zur übertragung von nachrichtenpaketen. | |
DE3109705C2 (de) | ||
DE69014992T2 (de) | Gleichlaufende Mehrstufennetzwerk-Kontrollmethode. | |
DE68927474T2 (de) | Neuro-Rechner | |
DE69305981T2 (de) | Geringbenachbarte dreidimensionale verbindung. | |
DE3750017T2 (de) | Prozessor für orthogonale Transformation. | |
DE602004009324T2 (de) | Integrierte datenverarbeitungsschaltung mit mehreren programmierbaren prozessoren | |
DE69900796T2 (de) | Digitale verarbeitungsvorrichtung | |
DE68927433T2 (de) | Schemagenerator und Verfahren zur Schemaherstellung | |
DE69028798T2 (de) | Netzwerksteueranordnung zur Verarbeitung von mehreren Verbindungsanfragen | |
DE3827500C2 (de) | ||
DE60034470T2 (de) | Massiv paralleles Datenverarbeitungssystem und skalierbares Verbindungsnetz für ein solches System | |
DE3788617T2 (de) | Vektordatenverarbeitungssystem mit einer E/A-Steuerung für jeden Vektordatenprozessor und einer anderen E/A-Steuerung für mindestens einen anderen Vektordatenprozessor. | |
DE69228293T2 (de) | Paralleles Datenverarbeitungssteuerungssystem | |
DE3909153C2 (de) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |