DE3049437A1 - Matrixanordnung einer vielzahl von verarbeitungselementen fuer parallelprozessoren - Google Patents

Matrixanordnung einer vielzahl von verarbeitungselementen fuer parallelprozessoren

Info

Publication number
DE3049437A1
DE3049437A1 DE19803049437 DE3049437A DE3049437A1 DE 3049437 A1 DE3049437 A1 DE 3049437A1 DE 19803049437 DE19803049437 DE 19803049437 DE 3049437 A DE3049437 A DE 3049437A DE 3049437 A1 DE3049437 A1 DE 3049437A1
Authority
DE
Germany
Prior art keywords
register
data
processing elements
processing
processing element
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.)
Granted
Application number
DE19803049437
Other languages
English (en)
Other versions
DE3049437C2 (de
Inventor
Kenneth E. 44224 Stow Ohio Batcher
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.)
Goodyear Aerospace Corp
Original Assignee
Goodyear Aerospace Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Goodyear Aerospace Corp filed Critical Goodyear Aerospace Corp
Publication of DE3049437A1 publication Critical patent/DE3049437A1/de
Application granted granted Critical
Publication of DE3049437C2 publication Critical patent/DE3049437C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C5/00Measuring height; Measuring distances transverse to line of sight; Levelling between separated points; Surveyors' levels
    • G01C5/005Measuring height; Measuring distances transverse to line of sight; Levelling between separated points; Surveyors' levels altimeters for aircraft
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/006Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation at wafer scale level, i.e. wafer scale integration [WSI]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Multi Processors (AREA)
  • Image Processing (AREA)

Description

Matrixanordnung einer Vielzahl von Verarbeitungselementen für Parallelprozessoren
Die Erfindung betrifft das Gebiet der Datenprozessoren und mehr im einzelnen sehr große Parallelprozessoren, die in der Lage sind, große Datenmengen rasch und kostengünstig zu handhaben. Zur Zeit gehen die Anforderungen an Datenprozessoren dahin, daß eine große Vielzahl von Daten arithmetisch und logisch in kurzen Zeiträumen verarbeitet werden muß, um vorher erhaltene Resultate laufend auf den letzten Stand zubringen oder auch große Felder zu überwachen, von denen Daten gewonnen werden und an denen Korrelationen vorgenommen werden können. Beispielsweise beabsichtigen die USA zur Zeit, Bildsensoren in Erdumlauf zu setzen, welche Daten in einer Menge von bis zu 10 Bits pro Tag erzeugen können. Für solch ein Bildsystem werden vielfältige Bildverarbeitungsaufgaben wie beispielsweise geometrische Korrektur, Korrelation, Bildregistrierung, Merkmalswahl, multispektrale Klassifikation sowie Flächenmessung erfordert, um nützliche Information aus der Masse der erhaltenen Daten zu gewinnen und zwar wird erwartet, daß die Arbeitsbelastung für ein Datenverarbeitungssystem, das in Verbindung mit solchen kreisenden Bildfühlern verwendet wird, ii
Sekunde liegt.
9 10 wendet wird, im Bereich zwischen 10 und 10 Operationen je
Schnelle Verarbeitungssysteme und komplizierte Parallelprozessoren, die zur simultanen Verarbeitung einer Vielzahl von Daten in der Lage sind, sind seit einer Reihe von Jahren bekannt. Und zwar betreffen die früheren US-PSen 3 800 289, 3 812 467 und 3 936 806
130039/1016
des Anmelders sämtlich eine Konstruktion zur starken Vergrößerung der Datenverarbeitungsfähigkeit von Digitalcomputern. Ähnlich betrifft die US-PS 3 863 233, welche übertragen ist auf die Goodyear Aerospace Corporation, die Bevollmächtiqte der vorliegenden Anmeldung, insbesondere ein Datenverarbeitunqselement für einen assoziativen oder parallelen Prozessor, der auch die Da tonverarbeltungsgesohwindigkeit erhöht, indem er eine Vielzahl von Recheneinheiten, eine für jedes Wort, in der Speicheranordnung enthält. Jedoch besitzen selbst die beachtlichen Fortschritte dieser bekannten Lehren nicht die Fähigkeit, große Mengen von oben beschriebenen Daten kostenwirksam zu handhaben. Ein System der geforderten Art umfaßt Tausende von Verarbeitunqselementen, von denen jedes sein eigenes arithmetisches und logisches Netzwerk enthält, welches in Verbindung mit seinem eigenen Speicher arbeitet, wobei es die Fähigkeit besitzt, mit anderen ähnlichen Verarbeitungselementen innerhalb des Systems zu kommunizieren. Mit Tausenden von solchen Verarbeitungselementen, die simultan arbeiten (Massenparallelismus) kann die erforderliche Geschwindigkeit erzielt werden. Aufgrund der Tatsache, daß typische Satellitenbilder Millionen von Bildelementen (oder Pixels) umfassen, welche im allgemeinen gleichzeitig verarbeitet werden können, eignet sich ferner solch ein Aufbau gut zur Lösung des vorerwähnten Problems.
In einem System, das zur Verarbeitung einer großen Datenmenge in einem Massenparallelbetrieb in der Lage ist, ist es sehr wünschenswert, daß das System in der Lage ist, bitserielle Berechnungen zur Kostenersparnis durchzuführen. Um aber die Geschwindigkeit bei der bitseriellen Verechnung zu erhöhen, ist es anzustreben, ein Schieberegister variabler Länge aufzunehmen, so daß verschiedene Wortlängen untergebracht werden können. Ferner ist es wünschenswert, daß die Massenanordnung von Verarbeitungselementen zum gegenseitigen Verkehr in der Lage ist, so daß die Daten wenigstens zwischen benachbarten Verarbeitungselementen verschoben werden können. Ferner ist es wünschenswert, daß jedes Verarbeitungselement in der Lage ist, sämtliche zwischen zwei Datenbits mögliche Booleschen Operationen durchzuführen, und daß
130039/1016
jedes derartige Verarbeitungselement seinen eigenen Speicher mit direktem Zugriff (RAM) aufweist. Außerdem sollte solch ein Systun, um effektiv zu sein, Mittel aufweisen zum Umgehen nicht oder falsch arbeitender Verarbeitungselemente, ohne die Vollständigkeit des Systems zu vermindern.
Daher ist ein Gegenstand der Erfindung die Schaffung einer Vielzahl von Verarbeitungselementen für einen Prozessor mit paralleler Anordnung, bei welchem jedes dieser Elemente ein Schieberegister variabler Länge wenigstens zur Mitwirkung bei arithmetischen Berechnungen aufweist.
Ein anderer Gegenstand der Erfindung ist die Schaffung einer Vielzahl von Verarbei ti:ngselementen für einen Prozessor mit paralleler Anordnung, bei welchem jedes. Verarbeitungselemerit zur Interkommunikation wenigstens mit bestimmten benachbarten Verarbei turqselementen in der Lage ist.
Noch ein weiterer Gegenstand der Erfindung ist die Schaffung einer Vielzahl von Verarbeitungselemen |.en für einen Prozessor mit paralleler Anordnung, bei welchem jedes Verarbeitungselernen I zur Durchführung bitserieller mathematischer Berechnungen in der Lage ist.
Ein zusätzlicher Gegenstand der Erfindung ist die Schaffung einer Vielzahl von Verarbeitungselementen für einen Prozessor mit paralleler Anordnung, bei welchem jedes Verarbeitungselement in der Lage ist zur Durchführung sämtlicher Boolescher Funktionen, welche sich zwischen zwei Bits von Binärdaten ausführen lassen.
Noch ein weiterer Gegenstand der Erfindung ist die Schaffung einer Vielzahl von Verarbeitungselementen für einen Prozessor mit paralleler Anordnung, bei welchem jedes Verarbeitungselement seinen eigenen Speicher und seine eigene Daten-Sammelschiene aufweist.
130039/1016
Noch pin weiterer Gegenstand der Erfindung ist die Schaffung einer Vielzahl von Verarbeitungselementen für einen Prozessor mit paralleler Anordnung, bei welchem bestimmte dieser Verarbeitungselemente umgangen werden können, wenn sich herausstellen sollte, daß sie nicht oder schlecht funktionieren, wobei dieses Umgehen die Vollständigkeit des Systems nicht vermindert.
Noch ein weiterer Gegenstand der Erfindung ist die Schaffung einer Vielzahl von Verarbeitungselementen für einen Prozessor mit paralleler Anordnung, welcher eine kostengünstige Verarbeitung einer großen Vielzahl von Daten mit guter Zeitnutzung erzielt.
Die Gegenstände der Erfindung werden erzielt durch eine Matrix einer Vielzahl von Verarbeitungselementen, die untereinander verbunden sind und von denen jedes umfaßt: einen Speicher, einen Addierer sowie Kommunikationsmittel, die mit benachbarten Verarbeitungselementen innerhalb der Matrix verbunden sind und ferner mit dem Addierer und dem Speicher verbunden sind, um Daten zwischen dem Speicher, dem Addierer und den benachbarten Verarbeitungselementen zu transferieren.
Ein Ausführungsbeispiel der Erfindung wird nachfolgend anhand der Zeichnungen beschrieben. Es zeigt:
Figur 1 ein Blockschaltbild eines Verarbeitungssystems
zur parallelen Massenverarbeitung, welches die Verknüpfung der Matrixeinheit zeigt, die eine Vielzahl von Verarbeitungselementen umfaßt;
Figur 2 ein Blockschaltbild eines einzelnen Verarbeitungselementes, das den Grundbaustein der Matrixanordnung von Figur 1 bildet;
Figur 3, be- ein Schaltbild der Steuersignal-Erzeugungsschal -
stehend aus den . j w u · χ. τ 4. tu * ,
r-, ^. op tung der Verarbeitungselemente, welche auf einem
Chip angebracht ist und die Summenoder-Bäume und Paritäts-Bäume enthält;
130039/1016
Figur 4- ein detailliertes Schaltbild der grundsätzlichen
Schaltung eines Verarbeitungselementes; und
Figur 5,um~ Schaltbilder des Schaltungskreises, der zur Befassend die seitigung nicht arbeitender oder schlecht funktIc)-Figuren 5A,5B y w
nierender Verarbeitungselemente aus der Matrixanordnung verwendet wird.
Aus Figur 1 ist ersichtlich, daß ein großer Parallelprozessor allgemein durch das Bezugszeichen 10 bezeichnet ist. Fin Hauptelement des Prozessors 10 ist die Matrixanordnung 1?, welche In einer bevorzugten Ausführungsform eine Matrix aus 128 χ 128 Verarbeitungselementen, also insgesamt 16 384· Verarbei tungselemen Lc umfaßt, die nachfolgend zu beschreiben sind.Die Matrixanordnunq 1? nimmt auf ihrer linken Seite Daten auf und gibt auf ihrer rechten Seite Daten ab über 128 parallele Leitungen. Die maxim.i-Ie Transfergeschwindigkeit von 128-Bit-Datenspalten beträgt 10 MHz für eine maximale Bandbreite vor» 1,28 Milliarden Bits je Sekunde. Eingabe, Ausgabe oder beide können simultan mit der Verarbeitung stattfinden.
Elektronische Schalter Zh wählen die Eingabe der Ma brixanordnunq 12 aus der 128-Bit-Eingabeschnittstelle des Prozessors 10 oder von dem Eingaberegister 16. Ähnlich kann die Ausgabe der Matrixanordnung 12 über Schalter 26 zu der 128-Bit-Ausgabeschn i ttste I 1 c· des Prozessors 10 oder zu dem Ausgaberegister 14- gelenkt werden. Diese Schalter 24-, 26 werden durch die Programm- und Datenbehandlungseinheit 18 unter geeigneter Programmsteuerung gesteuert. Steuersignale zu der Matrixanordnung 1.2 und Statusbit von der Matrixanordnung können mit dem externen Steuer-Interface des Prozessors 10 oder mit der Matrixsteuereinheit 20 verbunden sein. Auch dieser Transfer wird durch elektronische Schalter 22 bewerkstelligt, welche der Steuerung durch die Behandlungseinheit: 1H unter 1 legen.
130039/1016
Die Matrixsteuereinheit 20 sendet Steuersignale und Speicheradressen an alle Verarbeitungselemente der Matrixanordnung 12 und erhält Statusbits von diesen. Die Einheit 20 ist ausgelegt zur Durchführung von Buchführungsvorgängen wie zum Beispiel Adressenberechnung, Schleifensteuerung, Verzweigung, Abruf von Unterprogrammen und dgl.. Sie arbeitet simultan mit der Verarbeitunqselementsteuerung derart, daß die volle Verarbeitungskaprtzitc-it. der Verarbeitungselemente der Matrixanordnung 12 auf die /u behandelnden Daten angewandt werden kann. Die Steuereinheit: 20 umfaßt drei getrennte Steuereinheiten; die Verarbeitunqse lernent-Steuereinheit führt mikrokodierte Vektorverarbeitunqsproqramme aus und steuert die Verarbeitungselemente und ihre zugehörigen Speicher; die Eingabe/Ausgabe-Steuereinheit steuert das Schieben von Daten durch die Matrixanordnung 12; und die Hauptsteuereinheit führt die Anwendungsprogramme aus, führt die skalare Verarbeitung intern durch und macht Aufrufe an die Verarbeitungselement-Steuereinheit für sämtliche Vektorverarbeitunq.
Die Programm- und Datenbehandlungseinheit 18 handhabt den Datenfluß zwischen den Einheiten des Prozessors 10, lädt Programme in die Steuereinheit 20, führt Systemtests und Diagnoseprogramme aus und sorgt für Programmentwicklungsmöglichkeiten. Die Einzelheiten dieses Aufbaus sind nicht wichtig zum Verständnis der Erfindung, aber es sollte bemerkt werden, daß die Einheit 18 günstigerweise einen Minicomputer umfassen kann wie beispielsweise den Digital Equipment Corporation (DEC) PDP-11/34- mit Schnittstellenleitungen (Interfaces) zu der Steuereinheit 20, der Matrixanordnung 12 (Register 14,16) und dem externen Computer-Interface. Wie allgemein bekannt ist, kann die Einheit 18 auch periphere Geräte umfassen, beispielsweise ein Magnetbandgerät 28, Platten 3o, einen Zeilendrucker 32 und ein alphanumerisches Endgerät 34.
130039/1016
Zwar hat der Aufbau von Figur 1 eine qewisse Bedeutung für die Wirkung des Gesamtsystems, das die Erfindung enthält, es versteht sich aber, daß die Einzelheiten dieses Aufbaus nicht erforderlich sind zur Würdigung des Rahmens und der Breite des Hrfindungsgedankens. An dieser Stelle soll nur gesagt werden, daß die JMatrixanordnung 12 den Erfindungsgedanken umfaßt, der hier im einzelnen zu beschreiben ist, und daß diese Matrixanordnung eine große Vielzahl von untereinander verbundenen Verarbeitungselementen umfaßt, von denen jedes seinen eigenen Speicher hat, arithmetische Berechnungen durchführen kann, ein voJI.es Komplement Boolescher Fur>Ktionen durchzuführen in der Lage !stund ferner in der Lage ist, wenigstens mit den orthogonal benachbarten Verarbeitungselementen auf allen Seiten zu verkehren, die hier mit Norden, Süden, Osten und Westen bezeichnet werden.
Wie aus Figur 2 ersichtlich, ist ein einzelnes Verarbeitungse 1 cement allgemein durch das Bezugszeichen 36 bezeichnet.. Das Verarbeitungselement umfaßt ein P-Register 38, welches zusammen mit. seiner Eingabelogik 40 sämtliche Logik- und Weiter 1 eitungsfunktionen für das Verarbeitungselement 36 durchführt. Die A-, B- und C-Register 42 bis 46, das Schieberegister 48 variabler Länge und die zugehörige Logik des Volladdierers 50 bilden das Rechenwerk des Verarbeitungselementes 36. Das G-Register 52 ist vorgesehen, um das Maskieren arithmetischer und logischer Operationen zu steuern, während das S-Register 54 dazu verwendet wird, Daten in das und aus dem Verarbeitungselement 36 zu schieben, ohne seine Operationen zu stören. Schließlich sind die vorerwähnten Elemente des Verarbeitungselementes 36 mittels einer doppelseitig gerichteten Daten-Sammelschiene 58 zu einem ein/igen Verknüpften Speicher 56 mit direktem Zugriff (RAM) verbunden.
Gemäß derzeitiger Konstruktion ist das Verarbeitungselement 36 durch LSI-Technik auf eine solche Größe reduziert, daß ein einzelner Chip acht solche Verarbeitungselemente enthalten kann
130039/1016
zusammen mit einem Paritäts-Baum, einem Summenoder-Schaltkreis und einer zugehörigen Steuerdecodierung. In der bevorzugten Ausführurigsform sind die acht Verarbeitungselemente auf einen Chip in zwei Reihen zu je vier Spalten angeordnet. Da sich die Größe von RAM-Speichern durch die LSI-Technik zur Zeit rasch ändert, wird es vorgezogen, den Speicher 56, obwohl er einen Teil des Verarbeitungselementes 36 ausmacht, von der integrierten Schaltung des restlichen Aufbaus des Verarbeitungselementes getrennt zu halten, so daß, wenn es die Technologie erlaubt, größere Speicher mit den Verarbeitungselementen vereinigt werden können, ohne die gesamte Systemkonstruktion zu ändern.
Die Datenschiene 58 ist der hauptsächliche Datenweg für das Verarbeitungselement 36. Während jedes Maschinenzyklus kann er ein Datenbit von irgendeiner von sechs Quellen zu einer oder mehreren Fmpfanqsstellen transferieren. Die Quellen umfassen ein aus der adressierten Stelle in dem RAM-Speicher 56 qelesenes Bit, den Zustand der Reqister B, C, P oder S oder den Zustand der Äquivalenzfunktion, die durch das Element 60 erzeugt wird und den Äquivalenzzustand anzeiqt, der zwischen den Ausqänqen der Reqister P und G besteht. Die Äquivalenzfunktion wird während einer Ausbiendneqieroperation (masked-negate) als Quelle verwendet.
Die Bestimmungsorte eines Datenbits auf der Datenschiene 58 sind die adressierten Stellen des Speichers 56, die Register A, G oder S, die mit dem Register P verbundene Logik, der Eingang zu dem Summenoder-Baum und dor Eingang zu dem Paritätsbaum.
Vor Betrachtung der Schaltung des Verarbeitungselementes 36 im ein/einen sollte Figur 3 beachtet werden, in welcher die Schaltung (■>?, zur Erzeugung der Steuersignale zum Betrieb der Verarbeitungselemente qezeiqt ist. Die Schaltunq von Figur 3 ist in ein LSI-Chip einbezoqen, welches acht Verarbeitungselemente umfaßt, und ist verantwortlich für die Steuerung dieser zuqeordneten Elemente.
130039/1016
Grundsätzlich umfaßt die Schaltung von Figur 3 eine Decodierlogik, die Steuersignale auf den Leitungen L 0 bis LF durch Programmsteuerung erhält und diese Signale verwandelt in die Steuersignale Kl bis K27 zum Anlegen an die Verarbeitungselemente 36, den Summenoder-Baum oder den Paritäts-Baum. Zusätzlich erzeugt die Schaltung in Figur 3 aus dem Haupttakt des Systems alle anderen zur Steuerung des Verarbeitungselementes36 notwendigen Taktimpulse.
Ein Fachmann kann aus der Schaltung von Figur 3 die Beziehung zwischen der programmierten Eingabefunktion auf den Leitungen L 0 bis LF und den Steuersignalen Kl bis K27 direkt ableiten. Zum Beispiel ergeben die Inverter 64-, 66 K 1 = LC . Ähnlich ergeben die Inverter 68 bis 72 und das NAND-Gatter Ik K16 = LO'LI. Desgleichen ergibt sich K18 = L2*L3*LVU6 .
Taktimpulse zur Steuerung der Verarbeitungselemente 36 werden im wesentlichen auf die gleiche Art wie die Steuersignale erzeugt. Das ist dem Fachmann ohne weiteres ersichtlich aus einer Betrachtung der Schaltung 62 von Figur 3. Beispielsweise gilt für den Takt S-CLK = S-CLK-ENABLE-Main CLK aufgrund der Inverter 76, 78 und des NAND-Gatters 80. Ähnlich giJ t Takt G-CLK = L8-MAJN CLK aufgrund von Invertern 76, 82 und eines NAND-Gatters 84.
Ferner ist aus Schaltung 62 von Figur 3 /u ersehen, daß eine Einrichtung zur Bestimmung eines Paritätsfehlers und des Summenoders der Daten sämtlicher Verarbeitungselemente auf der Datenschiene vorgesehen ist. Das Datenbit auf der Datensohiene kann dem Summenoder-Baum geliefert werden, der ein Baum von InkJusiv-Oder-Logikelementen ist, welcher das InkJusiv-Oder aller Verarbeitungselement-Datenschienenzustände bildet und die Ergebnisse der Matrixsteuereinheit 20 zuführt.
Um die Anwesenheit von Verarbeitungselementen in bestimmten Zuständen zu ermitteln, sind Gruppen von acht Verarbeitungselementen oder-mäßig verknüpft in einem Summenoder-Baum mit acht
130039/1016
Eingängen, dessen Ausqangssignal dann einem Oder-Baum mit 204-8 Eingängen außerhalb des Chips zugeführt wird, um ein Summenoder sämtlicher 16384- Verarbeitungselemente zu erhalten.
Fehler in dem RAM-Speicher 56 können auf übliche Art bestimmt worden durch Paritätserzeugung und eine Prüfschaltung. Bei jeder Gruppe von acht Verarbeitungselementen 36 gibt es einen Paritätsfehler-Flipflop 86, der auf binär 1 gesetzt wird, wenn ein Paritätsfehler in einem zugeordneten Speicher 56 ermittelt wird. Wie in der Schaltung 62 gezeigt, umfaßt der Summenoder-Baum die drei durch das Bezugszeichen 88 bezeichneten Gatter, während der Paritätsfehler-Baum aus sieben Exklusiv-Oder-Gattern besteht, die durch das Bezugszeichen 90 bezeichnet sind. Während Leseoperationen wird das Paritätsausgangssignal am Ende des Zyklus durch den M-Takt in den Haltekreis im Flipflop 86 aufgenommen. Während Schreibvorgängen wird die Parität über den Paritätsbit-Stift des Chips an einen Paritätsspeicher abgegeben. Der Paritätsspeicher umfaßt einen den Elementen 56 ähnlichen Speicher mit Direktzugriff. Der während Schreibvorgängen bei dem Paritätsbit gespeicherte Paritätszustand wird exklusiv-oder-mäßig mit dem Ausgangssigna L des Paritäts-B3ums 90 während Leseoperationen verknüpft, um den Halte-Flipflop (latch) 86 zu beeinflussen.
Wie gezeigt, bestimmt das Steuersignal K23, ob eine Lese- oder Schreiboperation ausgeführt wird, während K24- zum Löschen des Paritätsfehler-Flipflop 86 verwendet wird. Der Summenoder-Baum 88 verknüpft oder-mäßig sämtliche Datenbits D0-D7 auf den zugehörigen Datenschienen1 eitungen der acht Verarbeitungselemente des Chips. Wie ersichtlich werden die Paritätssignale und die Summenoder-Signale über die gleiche Gatter-Matrix 92 transfe-
/ durch
riert, welche'K27 gesteuert wird, um zu bestimmen , ob Parität oder Summenoder von dem Chip zu der Matrixsteuereinheit 20 transferiert wird. Die Ausgänge der Flipflops 86 sämtlicher Verarbeitungselemente sind mit dem 204-8-Eingangs-Summenoder-Baum derartig verbunden, daß das Vorhandensein irgendeines gesetzten
130039/1016
Flipflops 86 abqefraqt werden kann. Durch Verbindung eines Flipflops, der bei einem Fehler hält oder verriegelt, kann die Matrixsteuereinheit 20 der Reihe nach Spalten von Verarbeitunqselementen sperren, bis die Spalte gefunden ist, die das fehlerhafte Element enthält.
Wie nachfolgend weiter erörtert wird, wird das Steuersignal K?"j dazu verwendet, die Paritäts- und Summenoder-Ausqänge von dem Chip zu sperren, wenn das Chip gesperrt und nicht weiter im System verwendet wird.
Währenddie Verwendung von Summen-Oder-und Paritätsfunktionen bekannt ist, ist ihre Verwendung in der Erfindung wichtig, um beim Lokalisieren fehlerhafter Verarbeitungselemente /u helfen, so daß diese Elemente aus dem Operationssystem entfert werden können. Die Bäume 88, 9o, die über das Netzwerk 9? gegenseitig ausschließend getort sind, sorgen für die Möglichkeit, Spalten von Verarbeitungselementen 36 auf Parität zu prüfen, und bieten ferner das Summenoder-Netzwerk zur Bestimmung des Vorhandenseins von Verarbeitungselementen in besonderen Logikzuständen, um auf diese Weise die Antwortstelle auf eine Suchoperation festzustellen. Die Anzahl von für dieses Verfahren erforderlichen Schaltkreiselementen ist auf einem Minimum gehalten worden unter Verwendung eines einzigen Ausgangssignals für die zwei Bäume, wobei dieses Ausgangssiqnal durch Programmsteuerung mehrfach ausgenützt wird.
Schließlich ist aus Figur 3 zu ersehen, daß das Sperrsignal, das zur Beseitung einer vollständigen Spalte von Verarbei tungse lement-Chips aus der Matrixanordnung 12 verwendet wird, zu diesem Zweck das Signal K25,K26 erzeugt. Wie oben erwähnt, sperrt: das Steuersignal K25 die Summenoder- und Paritätsausgänge für zugeordnete Verarbeitungselemente. Weitere Funktionen der Signale K?.5,K26 hinsichtlich der Beseitigung gewählter Verarbeitungselemente wird unten anhand von Figur 5 erörtert.
130039/1016
Aus Figur 4 und ihrer Korrelation mit Figur 2 ist ersichtlich, daß der Volladdierer Logikgatter 94-100 umfaßt. Dieser VoIladdlerer steht in Verbindung mit dem Register B, das einen Flipflop 102 aufweist, welcher das Summenbit erhält, ferner mit dem Register C, das einen Flipflop 104 aufweist, welcher das Übertragbit erhält, und steht außerdem in Verbindung mit dem Schieberegister 48 variabler Länge, welches Schieberegister 106-110 mit 16,8 und 4 Bits aufweist, sowie Flipflops 112, 114 und Multiplexer 116-120.
Der Addierer erhält ein Eingangssignal von dem Schieberegister, und /war das Ausgangssignal' A-Registers 122, und ein Eingangssignal von der Logik- und Leit-Untereinheit, und zwar das Ausgangssignal des P-Registers 124. Oeweils wenn die Kontrollleitung K21 eine logische 1 ist und BC-CLK getaktet wird,addiert der Addierer die zwei Eingangsbits von den Registern A und P zu dem Übertragbit, das in dem C-Register 104 gespeichert ist, um eine Zweibit-Summe zu bilden. Das Bit geringster Wertigkeit der Summe wird durch Takt in das B-Register 102 eingelesen, und das mit höchster Wertigkeit der Summe wird durch Takt in das C-Register 104 eingelesen, so daß es das Übertragbit für den nächsten Maschinenzyklus wird. Wenn K21 auf einer logischen 0 ist, wird das P-Bit durch 0 ersetzt.
Wie gezeigt, setzt die Steuerleitung K12 das C-Register 4 auf den Binär-1-Zustand,während die Steuerleitunq K13 das C-Register auf den Binär-0-Zustand zurücksetzt. Die Steuerleitung K16 leitet den Zustand des B-Registers 102 auf die doppelseitig gerichtete Datenschiene 58, während die Steuerleitung K22 das Ausgangssignal des C-Registers auf die Datenschiene leitet.
In Betrieb enthält der Volladdierer von Figur 4 eine übertragfunktion, die folgendermaßen ausgedrückt wird: C AP ν PC ν AC.
130039/1016
Derneue Zustand des Übertraqregisters C, dem Flipflop 104-, ist äquivalent den und-mäßig verbundenen Zuständen der Reqister Λ und P oder den und-mäßig verbundenen Zuständen der Reqister B und C oder den und-mäßiq verbundenen Zuständen der Reqister A und C. Diese Übertragfunktion wird erhalten unbeschadet der Tatsache, daß keine Rückkopplunq von Ausqanqssignalen des C-Reqisters zu seinen Eingangssignalen vorhanden ist, da der OK-Flipflop 104 der Regel folgt:
C <— α£ ν KC.
Der neue Zustand des Registers C ist das Komplement des qegenwärtigen Zustands des Reqisters C, und-mäßiq verbunden mit dem 3-Eingang, oder das Komplement des K-Ei.ngangs, und-mäßiq verbunden mit dem gegenwärtigen Zustand des Registers C. Dementsprechend folgt in der Schaltung von Figur 4 der Flipflop .104 der Regel:
C .<— APC ν (AvP)C.
Dor zu letzt angegebene Ausdruck ist der zuerst angegebenen Über-Lragfunktion äquivalent.
Bezüglich des Summenausdrucks erhält das Reqister B, der Flipflop 102, ein Summenbit, welches eine Exklusiv-0der-Funktion der Zustände der Register A, P und C ist entsprechend dem Ausdruck :
B <— A § P Θ C .
Das Gatter 98 erzeugt ASP von den Gattern 94 und 96, welches Ergebnis das Gatter 100 exklusiv-oder-mäßig mit C verknüpft, um den Summenausdruck zu erhalten.
Das Schieberegister des Rechenwerkes des Verarbeitungselementes 36 hat dreißig Stufen. Diese Stufen gestatten den Schieberegistern, variierende Längen zu haben, um so verschiedene Wortgrößen unterzubringen und damit die Zeit für Rechenoperationen in bitseriellen Berechnungen wesentlich zu vermindern, wie sie bei der Multiplikation auftreten.
130039/1016
Steuerleitungen K1-K4 steuern Multiplexer 116-120 so, daß bestimmte Teile des Schieberegisters umgangen werden können, was bewirkt, daß die Länge des Schieberegisters wahlweise auf 2, 6, 10, 14·, 18, 22, 26 oder 30 Stufen eingestellt wird. Datenbits werden in das Schieberegister über das B-Reigster 102 einqeführt, welche die Summenbits von dem Addierer sind. Die Datenbits verlassen das Schieberegister durch das A-Register 122 und laufen zurück durch den Addierer. Die A- und B-Register fügen dem Rundweg zwei Verzögerungsstufen zu. Dementsprechend beträgt die Rundweglänqe eines Rechenprozesses 4·, 8, 12, 16, 20, 24-, 28 oder 32 Stufen je nachdem, wie die Zustände der Steuerleitungen K1-K4 die Multiplexer 112-120 regulieren.
Das Schieberegister gibt Daten an das A-Register 122 ab, welches über Steuerleitungen Kl, K2 und Multiplexer 120 zwei andere Eingänge wählen kann. Ein Eingang ist eine logische 0. Dieser wird verwendet, um das Schieberegister in einen Gesamt-0-Zustand zu löschen. Der andere Eingang ist die doppelseitig gerichtete Datenschiene 58. Diese kann verwendet werden, um Daten direkt in den Addierer einzuführen.
Das A-Reqister 122 wird durch A-CLK getaktet und die anderen 30 Stufen des Schieberegisters werden durch SR-CLK getaktet. Da die letzte Stufe des Schieberegisters einen gesonderten Takt hat, können Daten von der doppelseitig gerichteten 'Datenschiene 58 oder eine logische 0 in den Addierer eingeführt werden, ohne Daten in dem Schieberegister zu stören.
Wie oben erörtert, liefert das P-Register 124- ein Eingangssignal an den Addierer 50, wobei ein solches Eingangssignal von einem der orthogonal angrenzenden Verarbeitungselemente 36 oder von der Datenschiene 58 zugeführt wird. Das P-Register 124 erhält Daten von dem P-Register benachbarter Verarbeitungselemente 36 mittels des Multiplexers 126 durch Steuerung von Steuersignalen,! K5, K6. Bei dem Transferieren von Daten von dem Multiplexer 126 zu dem P-Register 124 erfolgt der Transfer über einen Inverter und über UND-Gatter 130, 132. Der Transfer wird bewirkt durch
130039/1016
die Steuerung des Steuersignals K7, um den echten Wert und das Komplement der Daten an den 3-bzw. K-Eingang des Flipflops I?4 anzulegen. Die Daten werden unter Steuerung des Taktes P-CLK in den Haltekreis aufgenommen (latched). Wie bemerkt, sind das wahre und das Komplement-Ausgangssignal des P-Flipflops 1?Λ auch darauf eingerichtet, zu den P-Flipflps benachbarter Verarbeitungselemente 36 geleitet zu werden. Das Komplement wird von dem Chip weggeleitet, welches das unmittelbare Verarbeitungselement enthält, aber wird an dem Bestimmungsort durch oinen Treiber invertiorL, um den wahren Zustand des P-Flipflops /u liefern. Der wahre Zustand wird nicht invertiert und wird den benachbarten Verarbeitungselementen auf demselben Chip zugeführt. Wie im einzelnen in Figur 4- gezeigt, steht die Logikschaltung 40 unter der Kontrolle von Steuerleitungen K8-K11. Diese Logik erhält Daten von der Datenschiene 58 entweder in dem wahren Zustand oder komplementär über den Inverter 130. Die Logikschaltung 40 ist dann unter dor Kontrolle der Steuersignale K8 - KIl in der Lage, alle sechzehn Booleschen Logikfunktionen auszuführen, die zwischen den Daten von der Datenschiene und den in dem P-Register \?Λ vorhandenen Daten ausgeführt werden können. Das Resultat wird dann in dem P-Register 124 gespeichert.
Es versteht sich, daß bei K7 = 0 die Gatter 130 und 132 gesperrt sind. Die Steuerleitungen K8 und K9 gestatten dann, daß 0, 1, D oder D zu dem J-Eingang des P-Registers dem Flipflop 124, getort wird. D ist der Zustand der Datenschiene 58. Unabhängig davon gestatten die Steuerleitungen KlO und KIl, daß 0, 1, D oder D zu dem K-Eingang gesandt wird. Gemäß der Regel der 3-K-Flipf1op-Operation wird der neue Zustand des P-Registers folgendermaßen definiert:
P <— 3P ν KP .
Wie ersichtlich, können durch Wahl aller vier Zustände von K alle sechszehn logischen Funktion von P und D erhalten werden.
130 039/1016
Wie oben besprochen, kann das Ausgangssignal des Registers P in arithmetischen Berechnungen des Verarbeitungselementes 36 verwendet werden oder kann zu der Datenschiene 58 geleitet werden. Wenn K21 auf einer logischen 1 ist, wird der augenblickliche Zustand des Registers P für die Addierlogik freigegeben. Wenn K14 eine logische 0 ist, wird das Ausgangssignal des Registers P für die Datenschiene freigegeben. Wenn Kl5 eine logische 0 ist, wird das Ausgangssignal des Registers P exklusiv-oder-mäßig mit dem Komplement des G-Registers 132 verknüpft und das Resultat wird für die Datenschiene freigegeben. Es ist zu bemerken, daß bestimmte Transfers auf die Datenschiene über doppelseitig gerichtete Übertragungsgatter 134 und 136 erzielt werden, welche durch die Steuersignale K14 und K15 freigegeben werden. Diese Gatterarten sind dem Fachmann wohlbekannt.
Das Maskierregister G, bezeichnet durch das Bezugszeichen 132, umfaßt einen einfachen D-Flipflop. Das Register G liest den Zustand der doppelseitig gerichteten Datenschiene bei dem positiven Übergang von G-CLK. Die Steuerleitung K19 steuert das Maskieren oder das Ausblenden der Takte der arithmetischen Untereinheit (A-CLK, SR-CLK und BC-CLK). Wenn Kl9 = 1 ist, werden diese Takte nur zu den arithmetischen Untereinheiten derjenigen Verarbeitungselemente gesandt, wo G = 1. Die arithmetischen Untereinheiten derjenigen Verarbeitungselemente, bei denen G=O ist, werden nicht getaktet, und kein Register und keine Untereinheiten ändern den Zustand. Wenn K19 = 0 ist, nehmen die arithmetischen Untereinheiten aller Verarbeitungselemente an der Operation teil.
Die Steuerleitung K20 steuert das Maskieren der Logik-und Leit-Ufitereinheit. Wenn K20 = 1 ist, wird der Takt P-CLK nur zu den Logik-und Leit-Untereinheiten derjenigen Verarbeitungselemente gesandt, wo G = 1. Die Logik- und Leit-Untereinheiten derjenigen Verarbeitungselemente, bei denen G=O ist, werden nicht getaktet und ihre Register P ändern den Zustand nicht.
130039/1016
Translationsoperationen werden ausgeblendet, wenn die Steuerleitung K20 = 1 ist. In den Verarbeitungselementen, wo G = 1 ist, wird das Register P getaktet durch P-CLK und erhält den Zustand seines Nachbarn. In denjenigen Elementen, wo G-O ist, wird das Register P nicht getaktet und ändert den Zustand nicht. Ohne Rücksicht darauf, ob G = 0 oder G=I ist, sendet jedes Verarbeitungselement den Zustand eines Registers P zu seinen Nachbarn.
Nun wifd die Äquivalenzfunktion betrachtet, für welche durch das Inklusiv-Oder-Gatter 138 gesorgt ist, welches ein logisches 1-Signal liefert, wenn seine Eingangssignale von den P- und G-Registern gemeinsame Logikzustände aufweisen. Anders ausgedrückt liefert das Gatter 138 die Ausgangsfunktion P © G . Dieses Resultat wird dann der Datenschiene zugeführt.
Das Register S umfaßt einen D-Flipflop 14-0 mit der Eingabe unter der Kontrolle des Multiplexers 14-2. Das Ausgangssigrui I von dom Register S wird auf die Datenschiene 5β übertragen mittels des doppelseitigen gerichteten Übertragungsgatters 144. Der Flipflop 140 liest den Zustand seines Eingangs bei dem Übergang des Taktimpulses S-CLK-IN . Wenn die Steuerleitung K17 auf einer logischen 0 ist, erhält der Multiplexer 14? den Zustand des Registers S des westlich unmittelbar benachbarten Verarbeitunqselementes.
In diesem Fall schiebt jeder Impuls S-CLK-IN die Daten in den Registern S um eine Stelle nach Osten. Um den Zustand des S-Registers 140 in dem örtlichen Speicher zu speichern, wird die Steuerleitung K18 auf eine logische 0 qesetzt, um das doppel-
/ und
seitig gerichtete Ubertragungsgatter 144 freizugeben 'das komplementäre Ausgangssignal S-Registers 140 durch den Inverter 146 und zu der Datenschiene 58 durchzulassen. Das S-Register 140 kann mit einem Datenbit von dem lokalen Speicher 56 geladen werden, in dem K17 auf eine logische 1 gesetzt wird und so die Datenschiene 58 für die Eingabe von dem Flipflop 140 freiqeqeben wird.
130039/1016
Wie oben erwähnt, hat der große Parallelprozessor 10 die besondere Eigenschaft, daß die Matrixanordnung 12 in der Lage ist, einen Satz von Spalten von Verarbeitungselementen 36 zu umgehen, falls ein Irrtum oder Fehler in diesem Satz auftreten sollte. Wie oben besprochen, hat jedes Chip zwei Verarbeitungselemente 36 in jeder von vier Spalten der Matrixanordnung. Die Erfindung sperrt Spalten von Chips und dementsprechend Sätze von Spalten von Vererbe i tungselementen. Grundsätzlich werden die Spalten einfach dadurch außer Betrieb gesetzt, daß die Sätze von Spalten übersprungen werden durch gegenseitige Verbindung der Eingänge und Ausgänge der östlichsten und westlichsten Verarbeitungselemente auf den Chips, welche den Satz von Spalten bilden. Das Verfahren der Sperrung der Ausgangssignale des Summenoder-Baumes und des Paritäts-Baumes der Chips ist oben beschrieben worden. Es ist aber auch erforderlich, die Ausgaben der P- und S-Register zu umgehen, welche mit den östlichen und westlichen Nachbarchips in Verbindung stehen.
Wie in Figur 5A gezeigt, umfaßt ein Chip acht Verarbeitungselemen le PEO - PE7, die angeordnet sind wie früher beschrieben. Das Register S jedes Verarbeitungselementes kann Daten von dem Register S des unmittelbar westlich benachbarten Verarbeitungselementes erhalten und kann Daten auf das Reqister S des unmittelbar östlich benachbarten Verarbeitungselementes transferieren. Falls
/ von freigegeben, gestattet das Chip, daß Daten 7S-INO über die S-Register von PEO - PE3 fließen und dann bei S-OUT 3 hinaus zu dem Nachbarchip. Ein ähnlicher Datenfluß erfolgt von S-1N7 nach S-0UT4. Wenn es erwünscht ist, eine Spalte von Chips zu sperren, werden die Ausgangsgatter der Spalte von Chips gesperrt, welche die S-Registerdaten zu dem benachbarten östlichen Chip leiten. Das heißt, das Steuersignal K25 kann die Ausgabegatter 14-8, 150 sperren und gleichzeitg damit dieUmgehungsgatter 152, 154 freigeben. Dieses verbindet S-INO mit S-0UT3 und S-IN7 mit S-0UT4· für alle Chips in der Spalte miteinander.
130039/1016
In Figur 5B ist zu sehen, daß die Verbindungen zwischen den P-Registern östlich-westlich benachbarter Chips auch umgangen worden können. P-Registerdaten werden von dem Chip auf der Westseite über Inverter 156, 158 erhalten und werden zu diesem durch Gatter 160, 162 übertragen. Ähnlich werden P-Registerdaten von dem Chip auf der Ostseite erhalten über Inverter 16A-, 166 und zu diesem über Gatter 168, 170 übertragen. Wenn der Chip freigegeben ist und P-Registerdaten nach Westen zu leiten sind, dann wird die Steuerleitung K6 auf eine logische 1 gesetzt und K26 auf eine logische 0, so daß die Gatter 160, 162 freigegeben werden und die Gatter 168, 170 gesperrt werden. Bei Weiterleitung nach Osten werden K6 auf 0 und K26 auf 1 gesetzt. Um den Chip zu sperren, werden K6 und K26 beide auf eine logische 0 gesetzt, um alle Ost-West-Ausgaben des P-Registers von dem Chip zu sperren, und K25 wird gesetzt, um den doppelseitig gerichteten Umgehungsgattern 172, 174 zu gestatten, WEST-O mit OST-3 und WEST-7 mit EAST-4- zu verbinden. Dieses verbindet die P-Register PE3 des West-Chips mit PEO des Ost-Chips sowie PE4· des West-Chips mit PE7 des Ost-Chips.
Durch Sperren der Paritäts- und Summenoder-Bäume und durch Überspringen der Eingänge und Ausgänge angrenzender P- und S-Register der Chips in einer Spalte kann eine ganze Spalte von Chips außer Dienst gestellt werden, falls ein Fehler ermittelt wird. Es versteht sich, daß zwar die Verarbeitungselemente der gesperrten Chips nach Sperrung nicht aufhören zu arbeiten, aber einfach die Auswirkung ihrer Ausgangssignale auf das. System als Gan/.es beseitigt wird. Ferner leuchtet ein, daß durch Beseitigung von Spalten nichts unternommen werden zu braucht bezüglich der Verbindung zwischen nördlichen und südlichen Nachbarn untereinander. Schließlich wird durch Beseitigung kompletter Chips anstelle von Spalten von Verarbeitungselementen die Menge von Umqehunqsgattern stark vermindert.
In der bevorzugten Ausfühhrungsform der Erfindung umfaßt die Matrixanordnung 12 128 Reihen und 132 Spalten von Verarbe i. tungselementen 36.
1 30039/1016
Anders ausgedrückt sind 64- Reihen und 33 Spalten von Chips vorhanden. Dementsprechend ist eine extra Spalte von Chips über die zur Erzielung der erwünschten quadratischen Anordnung notwendigen Spalten vorhanden. Dies gestattet die Aufrechterhaltung einer quadratischen Anordnung selbst dann, wenn ein fehlerhaftes Chip gefunden ist und eine Spalte von Chips aus dem Dienst entfernt werden muß.
Es ist also ersichtlich, daß die Gegenstände der Erfindung durch den hier dargestellten Aufbau erfüllt worden sind. Ein großer Parullelprozessor mit einer einzigen Matrixanordnung einer großen Vielzahl von miteinander verbundenen und kommunizierenden Verarbeitungselementen erzielt eine rasche Parallelverarbeitung. Ein Schieberegister variabler Länge gestattet bitserielle arithmetische Berechnungen auf rasche Art und reduziert die Systemkosten. 3edes Verarbeitungselement ist in der Lage, sämtliche erforderlichen mathematischen Berechnungen und logischen Funktionen auszuführen und ist ferner in der Lage, nicht nur mit benachbarten Verarbeitungselementen zu verkehren sondern auch mit sein nem eigenen ganzheitlich zugeordnetem Speicher mit Direktzugriff. Vorsorge ist getroffen zur Beseitigung einer vollständigen Spalte von Verarbeitungschips, in welchen wenigstens ein Verarbeitungselement mit einem Fehler gefunden worden ist. Dieser Aufbau führt insgesamt zu einem höchst zuverlässigen Datenprozessor, welcher in der Lage ist, große Mengen von Daten in rascher Weise zu handhaben.
Obzwar nur das beste Vorgehen und bevorzugte Ausführungsform der Erfindung im einzelnen beschrieben worden sind, versteht e:sich, daß die Erfindung nicht dadurch oder darauf beschränkt ist. Folglich sollte zur Würdigung des wahren Rahmens und der Breite der Erfindung auf die Ansprüche Bezug genommen werden.
Der Patentanwalt
130039/1018

Claims (6)

GOODYEAR AEROSPACE CORPORATION 121o Massillon Road Akron, Ohio 44315 / USA Ansprüche :
1.) Matrixanordnung einer Vielzahl von Verarbeitungselementen, die untereinander verbunden sind, dadurch gekennzeichnet, daß jedes Verarbeitungselement (36) einen Addierer (50) umfaßt, ferner ein erstes und ein zweites Datenregister (42,38), die mit dem Addierer verbunden sind und ihm Datenbits zuführen, ein Übertragregister (46), das mit dem Addierer (50) verbunden ist und von diesem aus arithmetischen Operationen folgende Datenbits erhalt, einen Speicher sowie eine Daten-Sammelschiene (58), die das erste, das zweite und das Übertragregister (42, 38, 46) und den Speicher zum Datentransfer zwischen diesen unter einander verbindet.
2. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß jedes Verarbeitungselement (36) ein Schieberegister (48) wahlweise veränderlicher Länge enthält, welches zwischen das erste Datenregister (42) und den Addierer (50) zwischengeschaJtet ist.
3. Anordnung nach Anspruch 2, dadurch gekennzeichnet, daß das Übertragregister (46) einen 3-K-Flipflop (104) aufweist, der nach der Regel C ^— APvPCvAC arbeitet, worin A der Zustand des ersten Registers (42), P der Zustand des zweiten Registers (38) und C der Zustand des Übertragregisters (46) sind.
4. Anordnung nach Anspruch 3, dadurch gekennzeichnet, daß jedns Verarbeitungselement (36) ein Summenregister (44) umfaßt, d.ir. /wischen das Schieberegister (48) und den Addierer (50)
130039/1016
ORIGINAL INSPECTED
/wischenqeschaltet ist und nach der Reqel B <— A©P©C arbeitet, worin B, A, P und C die jeweiligen Zustände des Summen-, des ersten, des zweiten und des Übertraqreqisters sind.
5. Anordnunq nach Anspruch 1, dadurch gekennzeichnet, daß jedes Verarbeitungselement (36) eine Loqikeinrichtunq (40) umfaßt, die mit dem zweiten Reqister (38) verbunden ist zur Durchführunq der sechzehn logischen Funktionen, die zwischen den Daten des zweiten Registers und einem Datenbit von der Datensammelschiene (58) möglich sind.
6. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß das zweite Register (38) jedes Verarbeitunqselementes (36) kommunikativ verbunden ist mit dem zweiten Register (38) orthogonal benachbarter Verarbeitunqselemente (36) innerhalb der Matrixanordn u η g (12).
130039/1016
DE3049437A 1979-12-31 1980-12-30 Matrixanordnung einer Vielzahl von Verarbeitungselementen Expired DE3049437C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/108,883 US4314349A (en) 1979-12-31 1979-12-31 Processing element for parallel array processors

Publications (2)

Publication Number Publication Date
DE3049437A1 true DE3049437A1 (de) 1981-09-24
DE3049437C2 DE3049437C2 (de) 1984-11-15

Family

ID=22324619

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3049437A Expired DE3049437C2 (de) 1979-12-31 1980-12-30 Matrixanordnung einer Vielzahl von Verarbeitungselementen

Country Status (7)

Country Link
US (1) US4314349A (de)
JP (1) JPS56101262A (de)
CA (1) CA1154168A (de)
DE (1) DE3049437C2 (de)
FR (1) FR2472784A1 (de)
GB (2) GB2062915B (de)
IT (1) IT1134924B (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0981079A2 (de) * 1998-08-17 2000-02-23 Philips Corporate Intellectual Property GmbH Programmierbare 1-Bit Datenverarbeitungsanordnung

Families Citing this family (115)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ZA811458B (en) * 1980-03-28 1982-03-31 Int Computers Ltd Data processing system
US4507726A (en) * 1982-01-26 1985-03-26 Hughes Aircraft Company Array processor architecture utilizing modular elemental processors
JPS59501183A (ja) * 1982-06-25 1984-07-05 ヒユ−ズ・エアクラフト・カンパニ− 機能プログラマブル短絡プレーン
US4745546A (en) * 1982-06-25 1988-05-17 Hughes Aircraft Company Column shorted and full array shorted functional plane for use in a modular array processor and method for using same
US4507748A (en) * 1982-08-02 1985-03-26 International Telephone And Telegraph Corporation Associative processor with variable length fast multiply capability
GB2129589B (en) * 1982-11-08 1986-04-30 Nat Res Dev Array processor cell
US4549280A (en) * 1982-12-20 1985-10-22 Sperry Corporation Apparatus for creating a multiplication pipeline of arbitrary size
US4739474A (en) * 1983-03-10 1988-04-19 Martin Marietta Corporation Geometric-arithmetic parallel processor
JPS59172064A (ja) * 1983-03-18 1984-09-28 Fujitsu Ltd ビデオ・システムにおける並列処理方式
US4814973A (en) * 1983-05-31 1989-03-21 Hillis W Daniel Parallel processor
US5146608A (en) * 1983-05-31 1992-09-08 Hillis W Daniel Parallel processor array system controlled in response to composition status signal
US4621339A (en) * 1983-06-13 1986-11-04 Duke University SIMD machine using cube connected cycles network architecture for vector processing
US4616330A (en) * 1983-08-25 1986-10-07 Honeywell Inc. Pipelined multiply-accumulate unit
DE3506749A1 (de) * 1984-02-27 1985-09-26 Nippon Telegraph & Telephone Public Corp., Tokio/Tokyo Matrixprozessor und steuerverfahren hierfuer
CA1233260A (en) * 1985-03-13 1988-02-23 Chuck H. Ngai High performance parallel vector processor having a modified vector register/element processor configuration
GB8521672D0 (en) * 1985-08-30 1985-10-02 Univ Southampton Data processing device
US4852048A (en) * 1985-12-12 1989-07-25 Itt Corporation Single instruction multiple data (SIMD) cellular array processing apparatus employing a common bus where a first number of bits manifest a first bus portion and a second number of bits manifest a second bus portion
US4797852A (en) * 1986-02-03 1989-01-10 Intel Corporation Block shifter for graphics processor
GB8612454D0 (en) * 1986-05-22 1986-07-02 Inmos Ltd Redundancy scheme for multi-stage apparatus
JPS6364178A (ja) * 1986-08-29 1988-03-22 インタ−ナショナル・ビジネス・マシ−ンズ・コ−ポレ−ション 画像処理システム
US4910665A (en) * 1986-09-02 1990-03-20 General Electric Company Distributed processing system including reconfigurable elements
US5170484A (en) * 1986-09-18 1992-12-08 Digital Equipment Corporation Massively parallel array processing system
US5146606A (en) * 1986-09-18 1992-09-08 Digital Equipment Corporation Systems for interconnecting and configuring plurality of memory elements by control of mode signals
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
US6108763A (en) * 1986-09-18 2000-08-22 Grondalski; Robert S. Simultaneous parity generating/reading circuit for massively parallel processing systems
JPS63192153A (ja) * 1987-02-05 1988-08-09 Agency Of Ind Science & Technol 並列デ−タ処理装置
US5163133A (en) * 1987-02-17 1992-11-10 Sam Technology, Inc. Parallel processing system having a broadcast, result, and instruction bus for transmitting, receiving and controlling the computation of data
JPH0727515B2 (ja) * 1987-03-05 1995-03-29 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン 2次元メッシュ・アレイの処理要素
US5058001A (en) * 1987-03-05 1991-10-15 International Business Machines Corporation Two-dimensional array of processing elements for emulating a multi-dimensional network
JPH0833842B2 (ja) * 1987-05-01 1996-03-29 株式会社日立製作所 論理演算装置
US5129092A (en) * 1987-06-01 1992-07-07 Applied Intelligent Systems,Inc. Linear chain of parallel processors and method of using same
US4847612A (en) * 1988-01-13 1989-07-11 Plug Logic, Inc. Programmable logic device
US5023606A (en) * 1988-01-13 1991-06-11 Plus Logic, Inc. Programmable logic device with ganged output pins
USRE34444E (en) * 1988-01-13 1993-11-16 Xilinx, Inc. Programmable logic device
US5179705A (en) * 1988-03-23 1993-01-12 Dupont Pixel Systems, Ltd. Asynchronous arbiter state machine for arbitrating between operating devices requesting access to a shared resource
US5038282A (en) * 1988-05-11 1991-08-06 Massachusetts Institute Of Technology Synchronous processor with simultaneous instruction processing and data transfer
JP2930341B2 (ja) * 1988-10-07 1999-08-03 マーチン・マリエッタ・コーポレーション データ並列処理装置
US5020059A (en) * 1989-03-31 1991-05-28 At&T Bell Laboratories Reconfigurable signal processor
US4967107A (en) * 1989-05-12 1990-10-30 Plus Logic, Inc. Programmable logic expander
US5253308A (en) * 1989-06-21 1993-10-12 Amber Engineering, Inc. Massively parallel digital image data processor using pixel-mapped input/output and relative indexed addressing
CA2021192A1 (en) * 1989-07-28 1991-01-29 Malcolm A. Mumme Simplified synchronous mesh processor
US5297289A (en) * 1989-10-31 1994-03-22 Rockwell International Corporation System which cooperatively uses a systolic array processor and auxiliary processor for pixel signal enhancement
GB8925723D0 (en) * 1989-11-14 1990-01-04 Amt Holdings Processor array system
JPH05506113A (ja) * 1990-01-05 1993-09-02 マスパー・コンピューター・コーポレイション 並列プロセッサメモリシステム
JPH05506526A (ja) * 1990-01-05 1993-09-22 マスパー・コンピューター・コーポレイション クワッドクロスバー及びハイパーバーパーソナリティを備えるラウタチップ
US5280474A (en) * 1990-01-05 1994-01-18 Maspar Computer Corporation Scalable processor to processor and processor-to-I/O interconnection network and method for parallel processing arrays
IT1247640B (it) * 1990-04-26 1994-12-28 St Microelectronics Srl Operazioni booleane tra due qualsiasi bit di due qualsiasi registri
US5247613A (en) * 1990-05-08 1993-09-21 Thinking Machines Corporation Massively parallel processor including transpose arrangement for serially transmitting bits of data words stored in parallel
US5101371A (en) * 1990-06-04 1992-03-31 The United States Of America As Represented By The Director Of The National Security Agency Apparatus for performing a bit serial orthogonal transformation instruction
US5752067A (en) * 1990-11-13 1998-05-12 International Business Machines Corporation Fully scalable parallel processing system having asynchronous SIMD processing
US5630162A (en) * 1990-11-13 1997-05-13 International Business Machines Corporation Array processor dotted communication network based on H-DOTs
US5815723A (en) * 1990-11-13 1998-09-29 International Business Machines Corporation Picket autonomy on a SIMD machine
US5966528A (en) * 1990-11-13 1999-10-12 International Business Machines Corporation SIMD/MIMD array processor with vector processing
US5590345A (en) * 1990-11-13 1996-12-31 International Business Machines Corporation Advanced parallel array processor(APAP)
US5963746A (en) * 1990-11-13 1999-10-05 International Business Machines Corporation Fully distributed processing memory element
US5794059A (en) * 1990-11-13 1998-08-11 International Business Machines Corporation N-dimensional modified hypercube
US5765012A (en) * 1990-11-13 1998-06-09 International Business Machines Corporation Controller for a SIMD/MIMD array having an instruction sequencer utilizing a canned routine library
US5809292A (en) * 1990-11-13 1998-09-15 International Business Machines Corporation Floating point for simid array machine
US5588152A (en) * 1990-11-13 1996-12-24 International Business Machines Corporation Advanced parallel processor including advanced support hardware
US5828894A (en) * 1990-11-13 1998-10-27 International Business Machines Corporation Array processor having grouping of SIMD pickets
US5734921A (en) * 1990-11-13 1998-03-31 International Business Machines Corporation Advanced parallel array processor computer package
ATE180586T1 (de) * 1990-11-13 1999-06-15 Ibm Paralleles assoziativprozessor-system
US5617577A (en) * 1990-11-13 1997-04-01 International Business Machines Corporation Advanced parallel array processor I/O connection
US5765015A (en) * 1990-11-13 1998-06-09 International Business Machines Corporation Slide network for an array processor
US5765011A (en) * 1990-11-13 1998-06-09 International Business Machines Corporation Parallel processing system having a synchronous SIMD processing with processing elements emulating SIMD operation using individual instruction streams
US5625836A (en) * 1990-11-13 1997-04-29 International Business Machines Corporation SIMD/MIMD processing memory element (PME)
US5963745A (en) * 1990-11-13 1999-10-05 International Business Machines Corporation APAP I/O programmable router
JPH06103599B2 (ja) * 1990-11-16 1994-12-14 三菱電機株式会社 半導体集積回路装置
US6378061B1 (en) * 1990-12-20 2002-04-23 Intel Corporation Apparatus for issuing instructions and reissuing a previous instructions by recirculating using the delay circuit
US5594918A (en) * 1991-05-13 1997-01-14 International Business Machines Corporation Parallel computer system providing multi-ported intelligent memory
WO1993014459A1 (en) * 1992-01-17 1993-07-22 Caelum Research Corporation Modular parallel processing system
US5506992A (en) * 1992-01-30 1996-04-09 Saxenmeyer; George Distributed processing system with asynchronous communication between processing modules
JP2642039B2 (ja) * 1992-05-22 1997-08-20 インターナショナル・ビジネス・マシーンズ・コーポレイション アレイ・プロセッサ
US5542074A (en) * 1992-10-22 1996-07-30 Maspar Computer Corporation Parallel processor system with highly flexible local control capability, including selective inversion of instruction signal and control of bit shift amount
US5450604A (en) * 1992-12-18 1995-09-12 Xerox Corporation Data rotation using parallel to serial units that receive data from memory units and rotation buffer that provides rotated data to memory units
US5428804A (en) * 1992-12-18 1995-06-27 Xerox Corporation Edge crossing circuitry for SIMD architecture
KR940022276A (ko) * 1993-03-11 1994-10-20 오오가 노리오 병렬연산 처리장치
US6073185A (en) * 1993-08-27 2000-06-06 Teranex, Inc. Parallel data processor
US5557734A (en) * 1994-06-17 1996-09-17 Applied Intelligent Systems, Inc. Cache burst architecture for parallel processing, such as for image processing
JPH0830577A (ja) * 1994-07-15 1996-02-02 Mitsubishi Electric Corp Simdプロセッサ
US5590356A (en) * 1994-08-23 1996-12-31 Massachusetts Institute Of Technology Mesh parallel computer architecture apparatus and associated methods
WO1996008778A1 (en) * 1994-09-13 1996-03-21 Lockheed Martin Corporation Parallel data processor
US6140838A (en) 1995-04-21 2000-10-31 Johnson; Mark B. High density and high speed magneto-electronic logic family
US7050329B2 (en) * 1995-04-21 2006-05-23 Johnson Mark B Magnetic spin based memory with inductive write lines
US6064083A (en) 1995-04-21 2000-05-16 Johnson; Mark B. Hybrid hall effect memory device and method of operation
US6741494B2 (en) * 1995-04-21 2004-05-25 Mark B. Johnson Magnetoelectronic memory element with inductively coupled write wires
US6067633A (en) * 1998-03-31 2000-05-23 International Business Machines Corp Design and methodology for manufacturing data processing systems having multiple processors
US6067609A (en) * 1998-04-09 2000-05-23 Teranex, Inc. Pattern generation and shift plane operations for a mesh connected computer
US6173388B1 (en) 1998-04-09 2001-01-09 Teranex Inc. Directly accessing local memories of array processors for improved real-time corner turning processing
US6185667B1 (en) 1998-04-09 2001-02-06 Teranex, Inc. Input/output support for processing in a mesh connected computer
US6212628B1 (en) 1998-04-09 2001-04-03 Teranex, Inc. Mesh connected computer
WO2000019608A2 (de) * 1998-09-30 2000-04-06 Koninklijke Philips Electronics N.V. Schaltungsanordnung zum verarbeiten von datensignalen
US7966475B2 (en) 1999-04-09 2011-06-21 Rambus Inc. Parallel data processing apparatus
US7627736B2 (en) 1999-04-09 2009-12-01 Clearspeed Technology Plc Thread manager to control an array of processing elements
GB2349484A (en) * 1999-04-09 2000-11-01 Pixelfusion Ltd Parallel data processing system with SIMD array
US7506136B2 (en) 1999-04-09 2009-03-17 Clearspeed Technology Plc Parallel data processing apparatus
US7802079B2 (en) 1999-04-09 2010-09-21 Clearspeed Technology Limited Parallel data processing apparatus
US7526630B2 (en) 1999-04-09 2009-04-28 Clearspeed Technology, Plc Parallel data processing apparatus
US8169440B2 (en) 1999-04-09 2012-05-01 Rambus Inc. Parallel data processing apparatus
JP5285828B2 (ja) 1999-04-09 2013-09-11 ラムバス・インコーポレーテッド 並列データ処理装置
US8174530B2 (en) 1999-04-09 2012-05-08 Rambus Inc. Parallel date processing apparatus
US8171263B2 (en) 1999-04-09 2012-05-01 Rambus Inc. Data processing apparatus comprising an array controller for separating an instruction stream processing instructions and data transfer instructions
US8762691B2 (en) 1999-04-09 2014-06-24 Rambus Inc. Memory access consolidation for SIMD processing elements using transaction identifiers
US6307774B1 (en) 2000-03-22 2001-10-23 Mark B. Johnson Magnetoelectronic memory array
US6728862B1 (en) 2000-05-22 2004-04-27 Gazelle Technology Corporation Processor array and parallel data processing methods
US7142669B2 (en) * 2000-11-29 2006-11-28 Freescale Semiconductor, Inc. Circuit for generating hash values
US6526491B2 (en) * 2001-03-22 2003-02-25 Sony Corporation Entertainment Inc. Memory protection system and method for computer architecture for broadband networks
US7231500B2 (en) * 2001-03-22 2007-06-12 Sony Computer Entertainment Inc. External data interface in a computer architecture for broadband networks
US7516334B2 (en) * 2001-03-22 2009-04-07 Sony Computer Entertainment Inc. Power management for processing modules
US7409488B2 (en) * 2002-07-23 2008-08-05 International Business Machines Inc Data processing system
US8224639B2 (en) 2004-03-29 2012-07-17 Sony Computer Entertainment Inc. Methods and apparatus for achieving thermal management using processing task scheduling
HUP0500482A2 (en) * 2005-05-11 2006-12-28 Mta Szamitastech Autom Kutato System and method for sensing and processing electromagnetic signals
JP6511937B2 (ja) * 2015-04-24 2019-05-15 富士通株式会社 並列計算機システム、演算方法、演算プログラム、及び情報処理装置
US11200186B2 (en) * 2018-06-30 2021-12-14 Intel Corporation Apparatuses, methods, and systems for operations in a configurable spatial accelerator
US11049586B2 (en) 2019-11-26 2021-06-29 Mythic, Inc. Systems and methods for implementing redundancy for tile-based intelligence processing computing architecture

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1220088A (en) * 1966-12-29 1971-01-20 James Hughson Case Improvements in or relating to digital computing and information processing machine and system
GB1445714A (en) * 1973-04-13 1976-08-11 Int Computers Ltd Array processors

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3296426A (en) * 1963-07-05 1967-01-03 Westinghouse Electric Corp Computing device
US3364472A (en) * 1964-03-06 1968-01-16 Westinghouse Electric Corp Computation unit
US3313926A (en) * 1965-04-26 1967-04-11 Stanford Research Inst Microelectronic cellular array
US3602886A (en) * 1968-07-25 1971-08-31 Ibm Self-checking error checker for parity coded data
US3701976A (en) * 1970-07-13 1972-10-31 Bell Telephone Labor Inc Floating point arithmetic unit for a parallel processing computer
US4037094A (en) * 1971-08-31 1977-07-19 Texas Instruments Incorporated Multi-functional arithmetic and logical unit
ZA742069B (en) * 1973-04-13 1975-03-26 Int Computers Ltd Improvements in or relating to array processors
JPS5521222B2 (de) * 1973-07-31 1980-06-07
JPS5334986B2 (de) * 1974-05-31 1978-09-25
US4065808A (en) * 1975-01-25 1977-12-27 U.S. Philips Corporation Network computer system
US4051354A (en) * 1975-07-03 1977-09-27 Texas Instruments Incorporated Fault-tolerant cell addressable array
FR2361718A1 (fr) * 1976-08-11 1978-03-10 Adersa Processeur parallele associatif a hierarchie de memoire, notamment pour l'acquisition et le traitement rapides des signaux
US4207556A (en) * 1976-12-14 1980-06-10 Nippon Telegraph And Telephone Public Corporation Programmable logic array arrangement
JPS5485647A (en) * 1977-12-21 1979-07-07 Hitachi Ltd Operation unit

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1220088A (en) * 1966-12-29 1971-01-20 James Hughson Case Improvements in or relating to digital computing and information processing machine and system
GB1445714A (en) * 1973-04-13 1976-08-11 Int Computers Ltd Array processors

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IEEE Transactions on Computers, Vol. C-18, No. 9, Sept. 1969, S. 800-816 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0981079A2 (de) * 1998-08-17 2000-02-23 Philips Corporate Intellectual Property GmbH Programmierbare 1-Bit Datenverarbeitungsanordnung
DE19837101A1 (de) * 1998-08-17 2000-02-24 Philips Corp Intellectual Pty Programmierbare 1-Bit Datenverarbeitungsanordnung
DE19837101C2 (de) * 1998-08-17 2000-11-23 Philips Corp Intellectual Pty Programmierbare 1-Bit Datenverarbeitungsanordnung
EP0981079A3 (de) * 1998-08-17 2005-11-23 Philips Intellectual Property & Standards GmbH Programmierbare 1-Bit Datenverarbeitungsanordnung

Also Published As

Publication number Publication date
CA1154168A (en) 1983-09-20
DE3049437C2 (de) 1984-11-15
GB2140589A (en) 1984-11-28
FR2472784A1 (fr) 1981-07-03
JPS56101262A (en) 1981-08-13
IT8027013A0 (it) 1980-12-30
IT1134924B (it) 1986-08-20
US4314349A (en) 1982-02-02
GB2140589B (en) 1985-06-05
GB2062915A (en) 1981-05-28
GB2062915B (en) 1985-01-03
GB8324470D0 (en) 1983-10-12

Similar Documents

Publication Publication Date Title
DE3049437A1 (de) Matrixanordnung einer vielzahl von verarbeitungselementen fuer parallelprozessoren
EP0875031B1 (de) Prozessor zur bildverarbeitung
DE2724125C2 (de)
DE19722365B4 (de) Rekonfigurierbares Rechenbauelement
DE19835216B4 (de) Prozessor und Verfahren zur parallelen Datenverarbeitung
DE19914210B4 (de) Verfahren und Prozessor für eine gestaffelte Ausführung einer Anweisung
DE69827589T2 (de) Konfigurierbare Verarbeitungsanordnung und Verfahren zur Benutzung dieser Anordnung, um eine Zentraleinheit aufzubauen
DE2819571C2 (de)
EP0308660B1 (de) Vorrichtung zur Herstellung einer testkompatiblen, weitgehend fehlertoleranten Konfiguration von redundant implementierten systolischen VLSI-Systemen
DE4417575C2 (de) Verbesserte Array-Architektur für programmierbare logische Zellen
DE2716369C2 (de)
DE3933171A1 (de) Einzelchip-prozessor fuer komplexe gleitkommazahlen
DE2524046C2 (de) Elektronische Datenverarbeitungsanlage
DE4134192A1 (de) Integrierter schaltkreis mit verarbeitung im speicher
DE1549523B2 (de) Datenverarbeitungsanlage
DE3314917A1 (de) Multimicroprozessor-system
DE60033624T2 (de) Rekonfigurierungsverfahren für ein gatter von identischen funktionselementen
DE602004009324T2 (de) Integrierte datenverarbeitungsschaltung mit mehreren programmierbaren prozessoren
DE102020113922A1 (de) Multipliziererschaltungsanordnung mit reduzierter latenz für sehr grosse zahlen
DE19524862A1 (de) SIMD-Prozessor, welcher mit einer Mehrzahl von Parallelverarbeitungselementen in Synchronisation in Betrieb ist
DE112021002239T5 (de) Deep learning-beschleuniger und direktzugriffsspeicher mit einer kameraschnittstelle
DE112019000676T5 (de) Zentraler scheduler und anweisungszuteiler für einen neuronalen inferenzprozessor
DE3909153C2 (de)
DE2730918A1 (de) Anordnung zum multiplizieren von binaerzahlen
EP0557314A1 (de) Schaltungsanordnung zur berechnung von matrixoperationen in der signalverarbeitung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8125 Change of the main classification
8126 Change of the secondary classification
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee