DE68920388T2 - Paralleles Rechnersystem mit Verwendung eines SIMD-Verfahrens. - Google Patents

Paralleles Rechnersystem mit Verwendung eines SIMD-Verfahrens.

Info

Publication number
DE68920388T2
DE68920388T2 DE68920388T DE68920388T DE68920388T2 DE 68920388 T2 DE68920388 T2 DE 68920388T2 DE 68920388 T DE68920388 T DE 68920388T DE 68920388 T DE68920388 T DE 68920388T DE 68920388 T2 DE68920388 T2 DE 68920388T2
Authority
DE
Germany
Prior art keywords
calculation
data
processor elements
controller
signal
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
DE68920388T
Other languages
English (en)
Other versions
DE68920388D1 (de
Inventor
Kaoru Kawamura
Hideki Miwatari
Toshiyuki Shibuya
Tatsuya Shindo
Masanobu Umeda
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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
Priority claimed from JP63234545A external-priority patent/JPH0814816B2/ja
Priority claimed from JP63234546A external-priority patent/JP2518902B2/ja
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of DE68920388D1 publication Critical patent/DE68920388D1/de
Application granted granted Critical
Publication of DE68920388T2 publication Critical patent/DE68920388T2/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/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
    • 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/8023Two dimensional arrays, e.g. mesh, torus

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Complex Calculations (AREA)
  • Image Processing (AREA)

Description

  • Die vorliegende Erfindung bezieht sich auf ein Parallelcomputersystem, bei dem ein SIMD-Verfahren verwendet wird, das durch einen Controller und eine Vielzahl von Prozessorelementen gebildet wird, die in einer Gitterkonfiguration miteinander verbunden sind.
  • Parallelcomputersysteme finden besonders auf dem Gebiet der CAD (rechnergestützte Konstruktion), die zur Konstruktion von LSI- (hochintegrierten) -Schaltungen eine Hochgeschwindigkeitsberechnung erfordert, breite Verwendung. Demzufolge ist es notwendig, Verfahren zu verbessern, damit diese Prozessorelemente gemäß Erfordernissen von LSI-Schaltungen mit hoher Dichte und hoher Geschwindigkeit effektiver arbeiten.
  • Auf der Grundlage der Verbindungskonfiguration zwischen den Prozessorelementen und dem Controller gibt es zwei Typen von Parallelcomputern. Ein Verfahren wird als MIMD- (Mehrfachanweisungsstrom-Mehrfachdatenstrom) -Verfahren bezeichnet und wird durch eine Vielzahl von Prozessorelementen und Controllern gebildet. Bei diesem Verfahren ist jedes der Prozessorelemente jeweils mit einem entsprechenden Controller verbunden. Demzufolge ist es erforderlich, dieselbe Anzahl von Controllern vorzusehen, wie Prozessoren vorhanden sind. Es ist jedoch schwierig, ein großes Parallelcomputersystem zu bilden, bei dem dieses Verfahren verwendet wird, da gemäß der Anzahl von Prozessoren, die von zig bis zu mehreren hundert Prozessoren reichen kann, eine große Anzahl von Controllern erforderlich ist.
  • Das andere Verfahren wird als SIMD- (Einzelanweisungsstrom-Mehrfachdatenstrom) -Verfahren bezeichnet und wird durch eine Vielzahl von Prozessorelementen und einen Controller gebildet. Bei diesem Verfahren ist der Controller mit allen Prozessorelementen parallel verbunden. Demzufolge ist es möglich, einen großen Parallelcomputer mit einer großen Anzahl von Prozessorelementen, zum Beispiel Zigtausenden Prozessoren, zu bilden.
  • Bei dem letzteren Verfahren nutzt eine "Verbindungsmaschine" von der Thinking Machines Corporation das SIMD- Verfahren. Dieses System wird durch Zigtausende Prozessorelemente gebildet.
  • Bei dem Parallelcomputer des SIMD-Typs gibt es jedoch einige Probleme.
  • Ein erstes Problem tritt bei der Synchronisation aller Prozessorelemente auf. Im allgemeinen werden zum Lösen dieses Problems zwei Gegenmaßnahmen ergriffen. Bei einem Verfahren werden Daten zum Erhalten einer Synchronisation zwischen Prozessorelementen über eine Übertragungsleitung ausgetauscht. Jedoch ist es erforderlich, daß alle Prozessorelemente völlig verbunden sind, um dieses Verfahren effektiv anzuwenden. Bei dem anderen Verfahren wird ein besonderes Signal zum Erhalten einer Synchronisation von jedem Prozessorelement ausgegeben. Dann wird eine "verdrahtete ODER" -Logik bei allen Synchronisationssignalen ausgeführt, und die resultierenden Daten von dem verdrahteten ODER werden zu allen Prozessorelementen zurückgeführt. Bei dem Verfahren der verdrahteten ODER-Logik ist jedoch die Anzahl von Prozessorelementen begrenzt, da bei der verdrahteten ODER-Logikoperation eine große Verzögerung auftritt.
  • Ein zweites Problem ergibt sich bei der Reihenfolge der Prioritätsverwendung der Busleitung. Wenn die Anzahl von Prozessorelementen von einigen tausend bis zu Zigtausenden reicht, ist es erforderlich, die Prioritätsreihenfolge der Verwendung der Busleitung zu bestimmen.
  • Ein drittes Problem tritt bei der Extraktion von wesentlichen Daten von wesentlichen Prozessorelementen auf. Die wesentlichen Daten sind zum Beispiel Maximaldaten oder Minimaldaten.
  • Angesichts der obigen Probleme wird ein Parallelcomputersystem gemäß der vorliegenden Erfindung vorgesehen.
  • Ausführungsformen der vorliegenden Erfindung können ein Parallelcomputersystem vorsehen, bei dem ein SIMD-Verfahren verwendet wird, das eine Datenverarbeitung mit hoher Effektivität und ein hohes Lastverteilungsvermögen ermöglicht.
  • Gemäß der Erfindung ist ein Parallelcomputersystem vorgesehen, bei dem ein SIMD-Verfahren verwendet wird, das durch einen Controller und eine Vielzahl von Prozessorelementen gebildet wird, bei dem jedes der Prozessorelemente eine Speichereinheit hat, um zu verarbeitende Daten zu speichern, der Controller die Operation der Prozessorelemente steuert und das Parallelcomputersystem Daten auf der Grundlage eines Berechnungssteuersignals verarbeitet, das von dem Controller übertragen wurde, dadurch gekennzeichnet, daß das Parallelcomputersystem umfaßt: eine Datensammeleinheit, die zwischen den Prozessorelementen und dem Controller verbunden ist, zum Empfangen von Daten, die von den Prozessorelementen ausgegeben wurden, Ausführen einer vorbestimmten Berechnung und Ausgeben von berechneten Daten an den Controller; und eine Berechnungssteuereinheit, die zwischen der Datensammeleinheit und dem Controller verbunden ist, zum Übertragen des Berechnungssteuersignals von dem Controller zu der Datensammeleinheit, um das Ausführen der vorbestimmten Berechnung in der Datensammeleinheit zu ermöglichen.
  • Als Beispiel wird Bezug auf die beiliegenden Zeichnungen genommen, in denen:-
  • Fig. 1 ein Basisblockdiagramm eines Typs von Parallelcomputersystems ist, der die Erfindung verkörpert;
  • Fig. 2 eine Ausführungsform eines in Fig. 1 gezeigten Parallelcomputersystems ist;
  • Fig. 3 ein schematischer Block eines in Fig. 1 und 2 gezeigten Prozessorelements ist;
  • Fig. 4 ein schematisches Blockdiagramm einer in Fig. 1 gezeigten Erfassungslogikeinheit GLU ist;
  • Fig. 5 eine Tabelle zum Erläutern verschiedener, in Fig. 4 gezeigter Steuersignale ist;
  • Fig. 6 ein Beispiel einer in Fig. 1 gezeigten Erfassungslogikeinheit zeigt;
  • Fig. 7 ein Signalzeitlagendiagramm zum Erläutern der Operation der in Fig. 6 gezeigten Schaltung ist;
  • Fig. 8 ein eingehendes Blockdiagramm einer in Fig. 4 gezeigten Erfassungslogikeinheit ist; und
  • Fig. 9 ein eingehendes Blockdiagramm der in Fig. 4 gezeigten MAX/MIN/ADD-Berechnungsschaltung ist.
  • Figur 1 ist ein Basisblockdiagramm eines Typs von Parallelcomputersystem, der die Erfindung verkörpert. In Fig. 1 bezeichnet Bezugszeichen 10 einen Controller, 11 einen Steuerspeicher zum Speichern eines Mikrokodes, der Ausgangssteuersignale enthält, und 12 ein Globaldatenregister zum Ausführen einer Eingabe-/Ausgabeoperation der verarbeiteten oder zu verarbeitenden Daten. Der Steuerspeicher 11 und das Globaldatenregister 12 sind in dem Controller 10 vorgesehen. Bezugszeichen 13 bezeichnet eine Datensammelschaltung zum Sammeln von Ausgangsdaten von Prozessorelementen (PE) 14. 15A bis 15D bezeichnen Steuerregister CR, die eine Berechnungssteuerschaltung bilden und unter Verwendung eines Pipelineverfahrens miteinander verbunden sind, zum Anwenden verschiedener Berechnungssteuersignale auf die Sammelschaltung 13. 16A bis 16D bezeichnen Erfassungslogikeinheiten (GLU), die die Sammelschaltung 13 bilden und jeweils durch eine Baumkonfiguration gebildet sind. Bezugszeichen 17 bezeichnet eine Signalleitung für das Berechnungssteuersignal für die GLU, 18 eine Signalleitung zum Steuern von Prozessorelementen und 19 eine Datenleitung zum Rundsenden von globalen Daten.
  • Jedes der Prozessorelemente umfaßt ein Datenregister zum Speichern der zu verarbeitenden Daten und eine Arithmetik-Logik-Einheit ALU, wie in Fig. 3 gezeigt. Die Arithmetik-Logik-Einheit ALU berechnet die Daten, die in dem Register gespeichert sind, als Reaktion auf die Anweisung, die von dem Controller 10 durch die Signalleitung 18 übertragen wurde.
  • Jede Erfassungslogikeinheit GLU 16A bis 16D sammelt die Ausgabedaten, die von den Prozessorelementen übertragen wurden. Die Erfassungslogikeinheiten 16A bis 16D sind in der Form einer Baumkonfiguration mit mehreren Stufen verbunden. Das heißt, in Fig. 1 bilden die Einheiten 16A die erste Stufe, bilden die Einheiten 16B die zweite Stufe und bildet die Einheit 16D die letzte Stufe. Die Ausgaben der Prozessorelemente 14 werden den Erfassungslogikeinheiten 16A eingegeben. Die resultierenden Berechnungsdaten, die in den GLU's 16A erhalten werden, werden an die GLU'2 16B ausgegeben. Ahnlich werden die resultierenden Daten, die in den GLU's 16B erhalten werden, an die nächste Stufe ausgegeben.
  • Die letzte Stufe 16D erfaßt alle resultierenden Daten, die in den vorherigen Stufen erhalten wurden, und die Daten, die in der letzten Stufe 16D berechnet werden, werden an das Globaldatenregister 12 in dem Controller 10 ausgegeben.
  • Alle Berechnungssteuerregister CR 15A bis 15D sind unter Verwendung des Pipelineverfahrens miteinander seriell verbunden. Die Anzahl von Registern ist gleich der Anzahl von Stufen in der Erfassungslogikeinheit GLU. In diesem Fall wird die Berechnung in jeder Stufe als Reaktion auf die Berechnungssteuersignale, zum Beispiel auf ein "ADD"-Berechnungssignal, ausgeführt, die durch die Signalleitung 17 übertragen werden. Das heißt, wenn das Berechnungssignal "ADD" der ersten Stufe 16A eingegeben wird, wird bezüglich der Daten, die von den Prozessorelementen ausgegeben wurden, die Berechnung durchgeführt, die durch das Berechnungssignal vorgeschlagen wurde. Dieses Berechnungssignal wird als Reaktion auf das Taktsignal von dem Controller 10 zu der nächsten Stufe übertragen, und in der zweiten Stufe 16B wird dieselbe Berechnung ausgeführt, die durch das Berechnungssignal vorgeschlagen wurde. Die obige Berechnung wird unter Verwendung des Pipelineverfahrens ausgeführt. Das heißt, wenn das erste Berechnungssignal "ADD" der ersten Stufe eingegeben ist, wird das nächste Berechnungssignal, zum Beispiel "MAX", der ersten Stufe eingegeben.
  • Die Synchronisation aller Prozessorelemente wird gemäß einem Synchronisationssignal von dem Controller 10 ausgeführt. Der Controller 10 sendet das Synchronisationssignal über die Steuerleitung 18 an alle Prozessorelemente, um den Wert "1" auszugeben, wenn jedes Prozessorelement die vorbestimmte Verarbeitung vollendet. Zur gleichen Zeit wird das Signal "UND" über die Steuerleitung 17 zu dem Steuerregister 15A übertragen.
  • Wenn das Berechnungssignal "UND" in dem Register 15A gesetzt ist, führt die GLU 16A der ersten Stufe eine "UND"- Berechnung bezüglich der gesamten Ausgabe von dem Prozessorelement als Reaktion auf den ersten Takt aus. Dieselbe "UND"-Berechnung wird in der GLU 16B der nächsten Stufe als Reaktion auf den nächsten Takt ausgeführt. Wenn dieselbe "UND"-Berechnung in der GLU 16D der letzten Stufe als Reaktion auf den Takt ausgeführt wird und die resultierenden Daten den Wert "1" haben, kann der Controller 10 erkennen, daß alle Prozessorelemente den Wert "1" ausgeben.
  • Das wesentliche Prozessorelement mit den wesentlichen Daten wird wie folgt extrahiert. Im voraus wird jedem Prozessorelement eine eigene Prozessornummer zugeordnet. Erstens befiehlt der Controller 10 dem wesentlichen Prozessorelement, die eigene Nummer auszugeben. Zweitens befiehlt der Controller 10 einem anderen Prozessorelement, ein geeignetes Signal auszugeben, zum Beispiel den Wert "11---1" oder "00---0". Der Controller 10 sendet dann das Steuersignal "MAX" oder "MIN" an das Steuerregister 15A. Dementsprechend kann das wesentliche Prozessorelement als Reaktion auf "MAX" oder "MIN" der Nummer in der Sammelschaltung 13 ausgewählt werden. In diesem Fall kann ein nächstes wesentliches Prozessorelement von den verbleibenden Prozessorelementen auf dieselbe Weise wie oben ausgewählt werden, das erste wesentliche Prozessorelement ausgenommen. Demzufolge ist es möglich, diese Schaltung zu verwenden, um die Prioritätsreihenfolge der Verwendung einer Busleitung auszuwählen.
  • Figur 2 zeigt eine besondere Ausführungsform des in Fig. 1 gezeigten Systems. Dieselben Bezugszeichen wie die obigen bezeichnen dieselben Komponenten. In Fig. 2 bezeichnet Bezugszeichen 20 ein Prozessor-Array, dessen Elemente in einer Gitterkonfiguration miteinander verbunden sind. Das Prozessor-Array und die Sammelschaltung werden, wie oben erläutert, durch die Steuersignale von dem Controller 10 gesteuert. Der Steuerspeicher 11 in dem Controller 10 umfaßt eine Vielzahl von Steuerformaten 1 bis n.
  • Der Controller 10 umfaßt ferner einen Ablaufsteuerer 21, der den Ablauf zum Auslesen der Steuerinformationen aus dem Steuerspeicher 11 bestimmt. Das Globaldatenregister 12 ist ein Register zum Halten der Daten, die gemeinsam an alle Prozessorelemente gesendet werden, und um die Ausgabedaten von der Sammelschaltung 13 zu empfangen.
  • Figur 3 ist ein schematischer Block eines Prozessorelements. In Fig. 3 bezeichnet Bezugszeichen 30 ein Datenregister zum Halten der zu verarbeitenden Daten. 31 bezeichnet eine Arithmetik-Logik-Einheit ALU zum Berechnen der Daten, die in dem Register 30 gespeichert sind. Das Prozessorelement 14 wird durch dasselbe Steuersignal gesteuert, das von dem Controller 10 übertragen wird. Dieses Steuersignal enthält eine Adresse des Datenregisters 30 und einen Operationskode für die Arithmetik-Logik-Einheit 31. Das Prozessorelement 14 umfaßt ferner vier Ports, d. h., einen Ostport (E), Westport (W), Nordport (N) und Südport (S), zum Kommunizieren zwischen benachbarten Prozessorelementen. Das Prozessorelement 14 umfaßt ferner einen Eingangsanschluß GT zum Eingeben der Daten von dem Globaldatenregister 12 und einen Sammelanschluß CT zum Ausgeben der Daten.
  • Das Prozessorelement 14 ist ein Ein-Bit-Typ, und die Eingabe-/Ausgabeoperation für das Datenregister 30 wird im wesentlichen für jedes Bit ausgeführt. Daten, die größer als ein Bit sind, werden ab dem höchstwertigen Bit (MSB) oder dem niedrigstwertigen Bit (LSB) für jedes Bit verarbeitet.
  • Figur 4 ist ein schematisches Blockdiagramm einer Erfassungslogikeinheit GLU. Jede der Erfassungslogikeinheiten GLU 16A bis 16D umfaßt eine ODER-Berechnungsschaltung 40, eine UND-Berechnungsschaltung 41, eine MAX/MIN/ADD- Berechnungsschaltung 42 und eine Selektorschaltung SEL 43. Das Signal GLI sind Daten, die der GLU 16 eingegeben werden, und sind durch 32 Bits gebildet. Dies bedeutet, daß eine GLU 16 maximal 32 Bits in der Eingangsseite verarbeiten kann. Das Signal GLO sind resultierende Daten und wird durch ein Bit gebildet.
  • Arten von Berechnungssteuersignalen, die der GLU 16 von den Steuerregistern 15A bis 15D eingegeben werden, sind wie folgt. Diese Steuersignale sind in einer Tabelle in Fig. 5 gezeigt.
  • XGOPS (2 Bits)
  • Dies ist ein Operationskode für die GLU 16. Wenn dieses Signal den Wert "00" hat, wird die UND-Berechnung ausgeführt, wenn es "01" ist, wird die ODER-Berechnung ausgeführt, wenn es "10" ist, wird die "MIN"- oder "MAX"-Berechnung ausgeführt, und wenn es "11" ist, wird die "ADD"- Berechnung ausgeführt.
  • XGCR (1 Bit)
  • Dies ist ein Übertragssteuersignal für eine Übertragslöschoperation bei der "ADD"-Berechnung.
  • GLSTS (2 Bits)
  • Dies ist ein Schaltsignal zum Schalten der Anzahl von Bits des Eingangssignals für die GLU. Das heißt, die Anzahl von Bits des Eingangssignals, zum Beispiel 32 Bits, 16 Bits, 8 Bits oder 4 Bits, kann durch dieses Schaltsignal gewählt werden.
  • GMAXS (1 Bit)
  • Dies ist ein Anweisungssignal, um entweder eine "MIN"- oder "MAX"-Berechnung auszuwählen, wenn der Operationsbefehl XGOPS den Wert "10" hat.
  • GNOPS (1 Bit)
  • Dies ist ein Anweisungssignal, um das Eingangssignal auf "0" zu zwingen. Wenn dieses Bit "0" ist, werden die Eingangsdaten GLI ungültig.
  • Figur 6 zeigt ein Beispiel einer Erfassungslogikeinheit GLU. Wie aus der Zeichnung ersichtlich ist, wird die erste Stufe durch vier GLU's 16-1 bis 16-4 gebildet, und die zweite Stufe (letzte Stufe) wird durch eine GLU 16-5 gebildet. Da jede GLU 32 Bits in der Eingangsseite verarbeiten kann, kann diese Schaltung bis zu 128 Bits in der Eingangsseite verarbeiten.
  • Der Operationskode XGOPS und das Übertragssteuersignal XGCR werden in den Registern 15-1 und 15-2 verwendet, um die Erläuterung zu vereinfachen. Demzufolge führt die GLU die Berechnung gemäß dem obigen Operationskode und dem Übertragssteuersignal aus. Ferner bezeichnen Bezugszeichen 50 bis 58 Register für die Pipelinesteuerung. OP-1 bezeichnet ein Signal, das in dem Register 15-1 gesetzt ist, und OP-2 ein Signal, das in dem Register 15-2 gesetzt ist. Ferner bezeichnet D1 Daten, die in den Registern 50 bis 53 gesetzt sind, D2 Daten, die in den Registern 54 bis 57 gesetzt sind, und D3 Daten, die in dem Register 58 gesetzt sind.
  • Figur 7 ist ein Signalzeitlagendiagramm zum Erläutern der Operation der in Fig. 6 gezeigten Schaltung. In Fig. 7 bezeichnen B0 bis B3 zu verarbeitende Vier-Bit-Daten, B0 ist ein niedrigstwertiges Bit (LSB), und B3 ist ein höchstwertiges Bit (MSB). Bei der "ADD"-Operation werden diese Bits den Registern 50 bis 53 von dem LSB bis zum MSB Bit für Bit als Reaktion auf ein Taktsignal CLK seguentiell eingegeben. Synchron mit den Daten wird der Operationskode "ADD" für Addition in dem Register 15-1 gesetzt. Das Übertragssteuersignal XGCR wird der GLU eingegeben, um das Übertragslöschen mit dem Wert "0" im ersten Takt anzuzeigen und um im nächsten Takt die normale Berechnung mit dem Wert "1" anzuzeigen.
  • Die GLU 16-1 bis 16-4 der ersten Stufe führt eine Additionsberechnung für 32 Bits bezüglich des Bits B0 (LSB) gemäß dem Befehl OP-1 als Reaktion auf den ersten Takt aus. Die erste Stufe 16-1 bis 16-4 führt als nächstes eine Additionsberechnung von 32 Bits bezüglich des Bits B1 als Reaktion auf den nächsten Takt aus. Bei dieser Additionsberechnung wird für die resultierenden Daten des Bits B0 die Übertragsoperation berücksichtigt. Diese Berechnungen werden bis zum Bit B3 fortgesetzt.
  • Die resultierenden Daten, die durch die GLU 16-1 bis 16-4 erhalten werden, werden in dem Register 54 bis 57 gesetzt. In diesem Fall wird der Befehl OP-1 bei jedem Takt zu dem OP-2 bewegt.
  • Die letzte Stufe GLU 16-5 führt die Additionsberechnung für vier Eingangssignale als Reaktion auf den Befehl OP-2 aus. Die resultierenden Daten werden an das Register 58 ausgegeben. Da die Sammelschaltung durch zwei Stufen gebildet ist, führt die GLU 16-5 nach einer Verzögerung von einem Takt dieselbe Operation wie jene der GLU 16-1 bis 16-4 aus.
  • Die Berechnung wird, wie oben erläutert, unter Verwendung des Pipelineverfahrens ausgeführt. Hinsichtlich der Berechnung von "MAX" und "MIN" kann dieselbe Berechnung wie oben erwähnt mit einer optionalen Bitlänge ausgeführt werden. In diesem Fall werden die Bits von dem MSB bis zu dem LSB eingegeben.
  • Figur 8 ist ein eingehendes Blockdiagramm einer in Fig. 4 gezeigten Erfassungslogikeinheit. In Fig. 8 bezeichnet A1 eine UND-Schaltung, bezeichnen N1 bis N5 NOR-Schaltungen, bezeichnen NA-1 bis NA-5 NAND-Schaltungen, bezeichnen S1 bis S5 Selektoren und bezeichnen MA00 bis MA40 MAX/MIN/ADD- Berechnungsschaltungen. Die UND-Schaltung A1 setzt die Eingangsdaten GLI alle auf Null, wenn das Steuersignal GNOPS den Wert "O" hat. Die NOR-Schaltungen N1 bis N4 und die NAND-Schaltung führen die ODER-Berechnung gemäß der Anzahl von Eingangsstufen bezüglich der Eingangsdaten GLI aus. Die NAND-Schaltungen NA2 bis NA5 und die NOR-Schaltung N5 führen die UND-Berechnung bezüglich der Eingangsdaten GLI aus. Die MAX/MIN/ADD-Berechnungsschaltungen MA00 bis MA40 führen die Maximums-/Minimums-/Additionsberechnung aus. Die Selektoren S1 bis S4 selektieren die Ausgabe gemäß dem Operationskode XGOPS. Der Selektor S5 führt die Selektion gemäß der Nummer der Eingangsstufe aus.
  • Figur 9 ist ein eingehendes Blockdiagramm der MAX/MIN/ADD-Berechnungsschaltung. In Fig. 9 bezeichnen A10 bis A16 UND-Schaltungen, N10 bis N12 NOR-Schaltungen, NTO bis NT6 NICHT-Schaltungen, 01 bis 02 ODER-Schaltungen, R0 bis R1 Register, S10 bis S11 Selektoren und 90 einen Volladdierer mit drei Eingängen.
  • Diese Schaltung führt eine Maximums-/Minimums-Berechnung für 2 Eingaben aus. DM0 und DM1 sind die Eingangssignale, die jeweils ein Bit haben, um einen Maximal-/Minimalwert zu erhalten. DA0 und DA1 sind die Eingangssignale mit jeweils einem Bit für die Addition. XM sind resultierende Daten für eine Maximums-/Minimums-Berechnung, und XA sind resultierende Daten zur Addition. In der ersten Stufe MA00 bis MA15 ist DM0 gleich DA0 bzw. DM1 gleich DA1.
  • Die Operation der Addition "ADD" wird unten eingehend erläutert. Die Additionsdaten werden dem DA0 und DA1 von dem LSB-Bit an bei jedem Bit eingegeben. Bei dem ersten Bit wird, da das Signal XGCR den Wert "0" hat, der Übertrag gelöscht, so daß der Übertrag CARRY-0 "0" wird. Der Addierer 90 führt die Addition hinsichtlich des DA0 und DA1 aus, und die resultierenden Daten XA werden von ihm ausgegeben. Wenn bei der Addition kein Übertrag ausgeführt wird, wird das Ausgangssignal CARRYOUT "0". Wenn ein Übertrag ausgeführt wird, wird das Ausgangssignal CARRYOUT "1". Das Signal CARRYOUT wird in dem Register R0 zur Verwendung bei der Addition bei dem nächsten Takt durch den Selektor S10 gehalten. Bei dem nächsten Bit von dem LSB an wird der Inhalt des Registers R0 als Übertrag CARRY-0 verwendet und zu dem DA0 und DA1 addiert.
  • Die Operation zum Erhalten des maximalen Wertes wird unten eingehend erläutert. Wenn der maximale Wert erhalten wird, hat das Signal GMAXS den Wert "0", werden die Eingangsdaten dem DM0 und DM1 bei jedem Bit von dem MSB-Bit an eingegeben. Bei dem ersten Bit ist das Signal XGCR "0", und die Ausgaben der UND-Schaltung A10 und All sind "0", so daß die Ausgabe der NOR-Schaltung N12 "1" wird und die Ausgaben der UND-Schaltungen A14, A15 und der ODER-Schaltung 01 "0" werden. Demzufolge wird das Selektionssignal in dem Selektor S11 "10", so daß als maximale Ausgabe XM die Ausgabe der ODER-Schaltung 02 bei der ODER-Logikoperation zwischen dem DM0 und DM1 selektiert wird. In den Registern R0 und R1 wird, wenn eines von DM0 und DM1 vorher "1" wird, der Wert "1" auf der entsprechenden Seite gesetzt. Das heißt, wenn DM0 "1" ist und DM1 "0" ist, wird der Wert "1" in dem Register R0 gesetzt. Wenn im Gegensatz DM0 "0" ist und DM1 "1" ist, wird der Wert "1" in dem Register R1 gesetzt.
  • Wenn der Wert "1" einem der Register R0 und R1 eingegeben wird, wird die Ausgabe der NOR-Schaltung N12 von dem nächsten Takt "0". Ferner wird die Ausgabe der ODER-Schaltung 01 "1", wenn das Register R0 "1" ist, und wird "0", wenn das Register R1 "1" ist. Nach der obigen Selektion gibt demzufolge der Selektor 11 entweder den Wert des DM0 oder des DM1 aus, in dem der Wert "1" vorher detektiert wurde.
  • Die Operation zum Erhalten des minimalen Wertes wird unten eingehend erläutert. Wenn der minimale Wert erhalten wird, hat das Signal GMAXS den Wert "1". Die Operation ist dieselbe wie jene für das Maximum. Wenn die Ausgabe der NOR- Schaltung N12 den Wert "1" hat, ist das Selektionssignal für den Selektor S11 "11", und die Ausgabe der UND-Schaltung A16 wird selektiert. Wenn eines von DM0 und DM1 "1" wird, wird eines der Register R0 und R1 "1", und das Selektionssignal für den Selektor S11 wird "00" oder "01". Nach der obigen Selektion wird der minimale Wert entweder in DM0 oder DM1 selektiert.

Claims (5)

1. Ein Parallelcomputersystem, bei dem ein SIMD- Verfahren verwendet wird, das durch einen Controller (10) und eine Vielzahl von Prozessorelementen (14) gebildet wird, bei dem jedes der genannten Prozessorelemente ein Speichermittel hat, um zu verarbeitende Daten zu speichern, der genannte Controller die Operation der genannten Prozessorelemente steuert und das genannte Parallelcomputersystem ein Verarbeiten der genannten Daten auf der Grundlage eines Berechnungssteuersignals (17) ausführt, das von dem genannten Controller übertragen wurde, dadurch gekennzeichnet, daß das genannte Parallelcomputersystem umfaßt:
ein Datensammelmittel (13), das zwischen den genannten Prozessorelementen (14) und dem genannten Controller (10) verbunden ist, zum Empfangen von Ausgangsdaten von den genannten Prozessorelementen, Ausführen einer vorbestimmten Berechnung und Ausgeben von berechneten Daten an den genannten Controller, und
ein Berechnungssteuermittel (15), das zwischen dem genannten Datensammelmittel (13) und dem genannten Controller (10) verbunden ist, zum Übertragen des genannten Berechnungssteuersignals (17) von dem genannten Controller zu dem genannten Datensammelmittel, um das Ausführen der genannten vorbestimmten Berechnung in dem genannten Datensammelmittel zu ermöglichen.
2. Ein Parallelcomputersystem nach Anspruch 1, bei dem das genannte Datensammelmittel (13) eine Vielzahl von Erfassungslogikeinheiten (16) umfaßt, die in einer Baumkonfiguration mit einer Vielzahl von Stufen (16A-16D) gekoppelt sind, bei dem eine erste Stufe (16A) der genannten Erfassungslogikeinheiten die genannten Ausgangsdaten von jedem der genannten Prozessorelemente (14) empfängt, eine zweite Stufe (16B) der genannten Erfassungslogikeinheiten Berechnungsdaten empfängt, die von der genannten ersten Stufe erhalten wurden, Berechnungsdaten, die von der genannten zweiten Stufe (16B) erhalten wurden, an eine nächste Stufe (16C) ausgegeben werden, und Endberechnungsdaten, die von einer Endstufe (16D) erhalten wurden, an den genannten Controller (10) ausgegeben werden.
3. Ein Parallelcomputersystem nach Anspruch 2, bei dem das genannte Berechnungssteuermittel (15) eine Vielzahl von Steuerregistern (15A-15D) umfaßt, die der Anzahl der genannten Stufen (16A-16D) entsprechen, bei dem jedes der Steuerregister durch ein Pipeline-Verfahren verbunden ist und jedes der Steuerregister das genannte Berechnungssteuersignal an jede der genannten Stufen (16A-16D) seguentiell ausgibt.
4. Ein Parallelcomputersystem nach Anspruch 1 oder 3, bei dem das genannte Berechnungssteuersignal ein UND-Berechnungssignal, ein ODER-Berechnungssignal, ein MAX/MIN-Berechnungssignal und ein ADD-Berechnungssignal umfaßt.
5. Ein Parallelcomputersystem nach Anspruch 1, 2 oder 4, bei dem jede Erfassungslogikeinheit (16) eine ODER- Berechnungsschaltung (40) umfaßt, zum Ausführen einer logischen ODER-Berechnung von Daten, die von jedem der genannten Prozessorelemente (14) ausgegeben wurden, eine UND-Berechnungsschaltung (41), zum Ausführen einer logischen UND-Berechnung von Daten, die von jedem der genannten Prozessorelemente ausgegeben wurden, eine MAX/MIN/ADD- Berechnungsschaltung (42), zum Erhalten eines Maximalwertes, Minimalwertes oder addierten Wertes von Daten, die von jedem der genannten Prozessorelemente ausgegeben wurden, und einen Selektor (43), zum Selektieren der genannten ODER-Berechnungsschaltung, UND-Berechnungsschaltung und MAX/MIN/ADD- Berechnungsschaltung, welche Berechnungen als Reaktion auf das genannte Berechnungssteuersignal ausgeführt werden.
DE68920388T 1988-09-19 1989-09-18 Paralleles Rechnersystem mit Verwendung eines SIMD-Verfahrens. Expired - Fee Related DE68920388T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP63234545A JPH0814816B2 (ja) 1988-09-19 1988-09-19 並列計算機
JP63234546A JP2518902B2 (ja) 1988-09-19 1988-09-19 並列計算機におけるイベントスケジュ―リング処理方式

Publications (2)

Publication Number Publication Date
DE68920388D1 DE68920388D1 (de) 1995-02-16
DE68920388T2 true DE68920388T2 (de) 1995-05-11

Family

ID=26531623

Family Applications (1)

Application Number Title Priority Date Filing Date
DE68920388T Expired - Fee Related DE68920388T2 (de) 1988-09-19 1989-09-18 Paralleles Rechnersystem mit Verwendung eines SIMD-Verfahrens.

Country Status (3)

Country Link
US (2) US5230057A (de)
EP (2) EP0360527B1 (de)
DE (1) DE68920388T2 (de)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5581778A (en) * 1992-08-05 1996-12-03 David Sarnoff Researach Center Advanced massively parallel computer using a field of the instruction to selectively enable the profiling counter to increase its value in response to the system clock
WO1994003852A1 (en) * 1992-08-05 1994-02-17 David Sarnoff Research Center, Inc. Advanced massively-parallel computer apparatus
US5717947A (en) * 1993-03-31 1998-02-10 Motorola, Inc. Data processing system and method thereof
WO1995028686A1 (en) * 1994-04-15 1995-10-26 David Sarnoff Research Center, Inc. Parallel processing computer containing a multiple instruction stream processing architecture
US5956518A (en) * 1996-04-11 1999-09-21 Massachusetts Institute Of Technology Intermediate-grain reconfigurable processing device
US20040236877A1 (en) * 1997-12-17 2004-11-25 Lee A. Burton Switch/network adapter port incorporating shared memory resources selectively accessible by a direct execution logic element and one or more dense logic devices in a fully buffered dual in-line memory module format (FB-DIMM)
US6996656B2 (en) * 2002-10-31 2006-02-07 Src Computers, Inc. System and method for providing an arbitrated memory bus in a hybrid computing system
US7373440B2 (en) * 1997-12-17 2008-05-13 Src Computers, Inc. Switch/network adapter port for clustered computers employing a chain of multi-adaptive processors in a dual in-line memory module format
US7565461B2 (en) * 1997-12-17 2009-07-21 Src Computers, Inc. Switch/network adapter port coupling a reconfigurable processing element to one or more microprocessors for use with interleaved memory controllers
US7003593B2 (en) * 1997-12-17 2006-02-21 Src Computers, Inc. Computer system architecture and memory controller for close-coupling within a hybrid processing system utilizing an adaptive processor interface port
US7197575B2 (en) * 1997-12-17 2007-03-27 Src Computers, Inc. Switch/network adapter port coupling a reconfigurable processing element to one or more microprocessors for use with interleaved memory controllers
US6076152A (en) 1997-12-17 2000-06-13 Src Computers, Inc. Multiprocessor computer architecture incorporating a plurality of memory algorithm processors in the memory subsystem
US7424552B2 (en) * 1997-12-17 2008-09-09 Src Computers, Inc. Switch/network adapter port incorporating shared memory resources selectively accessible by a direct execution logic element and one or more dense logic devices
EP0983557B1 (de) 1998-03-18 2019-10-02 Koninklijke Philips N.V. Datenverarbeitungsvorrichtung zur parallelen Ausführung von Additionen und Subtraktionen auf gepackte Daten
US7100020B1 (en) * 1998-05-08 2006-08-29 Freescale Semiconductor, Inc. Digital communications processor
US6311262B1 (en) * 1999-01-18 2001-10-30 Infineon Technologies Ag Apparatus for the hierarchical and distributed control of programmable modules in large-scale integrated systems
US20030005264A1 (en) * 1999-12-29 2003-01-02 Wolfram Drescher Device and method for control of the data stream
US6438737B1 (en) 2000-02-15 2002-08-20 Intel Corporation Reconfigurable logic for a computer
JP3426223B2 (ja) * 2000-09-27 2003-07-14 株式会社ソニー・コンピュータエンタテインメント マルチプロセッサシステム、データ処理システム、データ処理方法、コンピュータプログラム
NO20004869D0 (no) * 2000-09-28 2000-09-28 Torbjoern Rognes Metode for hurtig optimal lokal sekvensjustering ved bruk av parallell prosessering
US7039906B1 (en) 2000-09-29 2006-05-02 International Business Machines Corporation Compiler for enabling multiple signed independent data elements per register
US6834337B1 (en) 2000-09-29 2004-12-21 International Business Machines Corporation System and method for enabling multiple signed independent data elements per register
EP1450916A4 (de) * 2001-11-01 2006-01-04 Mattel Inc Auf täfelchen basierendes brettspiel
US20030212853A1 (en) * 2002-05-09 2003-11-13 Huppenthal Jon M. Adaptive processor architecture incorporating a field programmable gate array control element having at least one embedded microprocessor core
US7406573B2 (en) * 2002-05-09 2008-07-29 Src Computers, Inc. Reconfigurable processor element utilizing both coarse and fine grained reconfigurable elements
JP3987783B2 (ja) * 2002-10-11 2007-10-10 Necエレクトロニクス株式会社 アレイ型プロセッサ
JP3987782B2 (ja) * 2002-10-11 2007-10-10 Necエレクトロニクス株式会社 アレイ型プロセッサ
US7124211B2 (en) 2002-10-23 2006-10-17 Src Computers, Inc. System and method for explicit communication of messages between processes running on different nodes in a clustered multiprocessor system
JP3987784B2 (ja) 2002-10-30 2007-10-10 Necエレクトロニクス株式会社 アレイ型プロセッサ
US6964029B2 (en) * 2002-10-31 2005-11-08 Src Computers, Inc. System and method for partitioning control-dataflow graph representations
US7155708B2 (en) * 2002-10-31 2006-12-26 Src Computers, Inc. Debugging and performance profiling using control-dataflow graph representations with reconfigurable hardware emulation
US7225324B2 (en) * 2002-10-31 2007-05-29 Src Computers, Inc. Multi-adaptive processing systems and techniques for enhancing parallelism and performance of computational functions
US7299458B2 (en) 2002-10-31 2007-11-20 Src Computers, Inc. System and method for converting control flow graph representations to control-dataflow graph representations
US6983456B2 (en) * 2002-10-31 2006-01-03 Src Computers, Inc. Process for converting programs in high-level programming languages to a unified executable for hybrid computing platforms
US6941539B2 (en) * 2002-10-31 2005-09-06 Src Computers, Inc. Efficiency of reconfigurable hardware
WO2004079564A2 (de) * 2003-03-05 2004-09-16 Bridgeco Ag Prozessor mit verschiedenartigen steuerwerken für gemeinsam genutzte ressourcen
ATE374973T1 (de) * 2003-09-09 2007-10-15 Koninkl Philips Electronics Nv Integrierte datenverarbeitungsschaltung mit mehreren programmierbaren prozessoren
US7890686B2 (en) * 2005-10-17 2011-02-15 Src Computers, Inc. Dynamic priority conflict resolution in a multi-processor computer system having shared resources
US7716100B2 (en) * 2005-12-02 2010-05-11 Kuberre Systems, Inc. Methods and systems for computing platform
JP4913685B2 (ja) * 2007-07-04 2012-04-11 株式会社リコー Simd型マイクロプロセッサおよびsimd型マイクロプロセッサの制御方法
JP2011159165A (ja) * 2010-02-02 2011-08-18 Fujitsu Ltd 並列計算機システム、並列計算機システムの制御方法及び制御プログラム
DE102018115902A1 (de) 2018-07-01 2020-01-02 Oliver Bartels SIMD-Prozessor mit CAM zur Operandenauswahl nach Mustererkennung
US11940945B2 (en) * 2021-12-31 2024-03-26 Ceremorphic, Inc. Reconfigurable SIMD engine

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4541048A (en) * 1978-10-06 1985-09-10 Hughes Aircraft Company Modular programmable signal processor
US4304002A (en) * 1978-11-23 1981-12-01 International Computers Limited Data processing system with error checking
FR2457521B1 (fr) * 1979-05-23 1985-12-27 Thomson Csf Systeme multiprocesseur de traitement de signal
US4574345A (en) * 1981-04-01 1986-03-04 Advanced Parallel Systems, Inc. Multiprocessor computer system utilizing a tapped delay line instruction bus
US4644496A (en) * 1983-01-11 1987-02-17 Iowa State University Research Foundation, Inc. Apparatus, methods, and systems for computer information transfer
US4621339A (en) * 1983-06-13 1986-11-04 Duke University SIMD machine using cube connected cycles network architecture for vector processing
DE3374238D1 (en) * 1983-07-08 1987-12-03 Ibm A synchronisation mechanism for a multiprocessing system
NL192637C (nl) * 1984-02-27 1997-11-04 Nippon Telegraph & Telephone Stelselprocessor.
US4720780A (en) * 1985-09-17 1988-01-19 The Johns Hopkins University Memory-linked wavefront array processor
JPH0740252B2 (ja) * 1986-03-08 1995-05-01 株式会社日立製作所 マルチプロセツサシステム
US4775952A (en) * 1986-05-29 1988-10-04 General Electric Company Parallel processing system apparatus
GB8618943D0 (en) * 1986-08-02 1986-09-10 Int Computers Ltd Data processing apparatus
CA1293819C (en) * 1986-08-29 1991-12-31 Thinking Machines Corporation Very large scale computer
US4888721A (en) * 1986-09-09 1989-12-19 Hitachi, Ltd. Elementary function arithmetic unit
US4985832A (en) * 1986-09-18 1991-01-15 Digital Equipment Corporation SIMD array processing system with routing networks having plurality of switching stages to transfer messages among processors
US4827403A (en) * 1986-11-24 1989-05-02 Thinking Machines Corporation Virtual processor techniques in a SIMD multiprocessor array
US5129092A (en) * 1987-06-01 1992-07-07 Applied Intelligent Systems,Inc. Linear chain of parallel processors and method of using same
US4908751A (en) * 1987-10-15 1990-03-13 Smith Harry F Parallel data processor
US5088048A (en) * 1988-06-10 1992-02-11 Xerox Corporation Massively parallel propositional reasoning
US4939642A (en) * 1989-02-01 1990-07-03 The Board Of Trustees Of The Leland Stanford Jr. University Virtual bit map processor

Also Published As

Publication number Publication date
DE68920388D1 (de) 1995-02-16
EP0360527A3 (de) 1991-01-16
USRE36954E (en) 2000-11-14
EP0605401B1 (de) 1998-04-22
US5230057A (en) 1993-07-20
EP0360527B1 (de) 1995-01-04
EP0605401A2 (de) 1994-07-06
EP0360527A2 (de) 1990-03-28
EP0605401A3 (en) 1994-09-28

Similar Documents

Publication Publication Date Title
DE68920388T2 (de) Paralleles Rechnersystem mit Verwendung eines SIMD-Verfahrens.
DE3751503T2 (de) Datenprozessor in Pipelinestruktur mit der Fähigkeit mehrere Befehle parallel zu dekodieren und auszuführen.
EP0875031B1 (de) Prozessor zur bildverarbeitung
DE3049437C2 (de) Matrixanordnung einer Vielzahl von Verarbeitungselementen
DE69031899T2 (de) Befehlsmethode und Ausführungssystem
DE2724125C2 (de)
DE19839627B4 (de) Digitaler Signalprozessor
DE3506749C2 (de)
DE2846117C2 (de) Datenprozessor
DE3851858T2 (de) Digitaler Signalprozessor.
DE3689394T2 (de) Informationsverarbeitungsanlage mit einem Allzweckprozessor und einem Sonderzweckprozessor.
DE4416881C2 (de) Verfahren zum Betrieb einer Datenverarbeitungseinrichtung
DE3885775T2 (de) Digitaler Signalprozessor.
DE69300041T2 (de) Mehrfachprozessor-Datenverarbeitungssystem.
DE3751205T2 (de) Paralleles verarbeitungssystem und verfahren zu dessen anwendung.
DE3873059T2 (de) Modulares datenfeld mit der faehigkeit, von den daten abhaengende prozesse auszufuehren.
DE1900141C3 (de) HilfsSteuerwerk für eine Datenverarbeitungsanlage
DE3686828T2 (de) Hochleistungsparalleler vektorprozessor mit modifizierter register/elementprozessor konfiguration.
DE2912287C3 (de) Datenverarbeitungsanlage
DE112013006309T5 (de) Funktionseinheit mit Baumstruktur zur Unterstützung eines Vektorsortieralgorithmus und anderer Algorithmen
DE3882487T2 (de) Vektorprozessor zur schnellen verarbeitung von rekursiven gleichungen.
DE2524046C2 (de) Elektronische Datenverarbeitungsanlage
DE2934971A1 (de) Datenverarbeitungssystem
EP0123921A2 (de) Parallelverknüpfungsschaltung mit verkürztem Übertragsdurchlauf
DE112019000676T5 (de) Zentraler scheduler und anweisungszuteiler für einen neuronalen inferenzprozessor

Legal Events

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