DE3851005T2 - Paralleles Nachbarverarbeitungssystem und -Verfahren. - Google Patents
Paralleles Nachbarverarbeitungssystem und -Verfahren.Info
- Publication number
- DE3851005T2 DE3851005T2 DE19883851005 DE3851005T DE3851005T2 DE 3851005 T2 DE3851005 T2 DE 3851005T2 DE 19883851005 DE19883851005 DE 19883851005 DE 3851005 T DE3851005 T DE 3851005T DE 3851005 T2 DE3851005 T2 DE 3851005T2
- Authority
- DE
- Germany
- Prior art keywords
- data
- storage device
- rows
- local storage
- output
- 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
Links
- 238000012545 processing Methods 0.000 title claims description 133
- 238000000034 method Methods 0.000 title claims description 34
- 230000015654 memory Effects 0.000 claims description 117
- 238000003491 array Methods 0.000 claims description 16
- 230000009466 transformation Effects 0.000 claims description 10
- 230000002457 bidirectional effect Effects 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 description 7
- 239000011159 matrix material Substances 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000012447 hatching Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/20—Image enhancement or restoration using local operators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures 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/8015—One dimensional arrays, e.g. rings, linear arrays, buses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Image Processing (AREA)
Description
- Die vorliegende Erfindung bezieht sich auf ein paralleles Verarbeitungssystem und ein Verfahren zum Verarbeiten und Analysieren von räumlich zusammenhängenden Datenanordnungen, z. B. Bildern, mittels einer großen Anordnung von programmierbaren Rechenelementen.
- Es wurde bereits eine Anzahl von Systemen entwickelt, die eine große Anordnung von einfachen bitseriellen Prozessoren verwenden, welche zu jedem Zeitpunkt von einer zentralen Steuereinrichtung jeweils denselben Befehl empfangen. Diese Arten von Systemen heißen parallele Prozessoren für "Einzelanweisung und Vielfachdaten" ("Single Instruction Multiple Data", SIMD). Es gibt verschiedene Verfahren, um Daten von einem Prozessor zu einem anderen zu übermitteln. Zum Beispiel enthält der massiv parallele Prozessor, der in K.E. Batcher, "Design of a Massively Parallel Processor" (Entwurf eines massiv parallelen Prozessors), IEEE Trans. Comp., Sept. 1980, Seiten 836-840 beschrieben ist, eine Matrix von 128·128 Prozessoren, wobei Bildverarbeitung eine wichtige Anwendung ist. Daten werden zwischen benachbarten Verarbeitungseinheiten übermittelt, sobald eine Anweisung ausgeführt wird, die einen Nachbarschafts-Arbeitsschritt erfordert. Bilddatenanordnungen mit Abmessungen größer als 1024·1024 sind nicht ungewöhnlich. Da derart große Prozessormatrizen wirtschaftlich nicht machbar sind, muß die Datenanordnung in kleinere Datenanordnungsgrößen aufgeteilt werden, deren Abmessungen der Größe der Prozessormatrix entsprechen. Bei einer bekannten Vorgehensweise, die Unteranordnungen verwendet, wird ein Bild jeweils zeilenweise abgetastet und unter Verwendung einer linearen Anordnung gleicher Prozessoren verarbeitet, die durch Verbindungen zum nächsten Nachbarn zusammenhängen und von einer zentralen Steuereinrichtung Anweisungen nach SIMD-Art empfangen. Diese Vorgehensweise ist in A.L. Fisher & P.T. Highnam, "Real Time Image Processing on Scan Line Array Processors" (Echtzeit-Bildverarbeitung in einer einer Abtastzeile entsprechenden Reihenanordnung von Prozessoren), IEEE Workshop on Pattern Analysis and Image Database Management (IEEE Seminar über Musteranalyse und Bilddatenbank-Management), 18-20. Nov. 1985, Seiten 484-489 diskutiert. Dieser Aufsatz schlägt vor, daß für die bereichsbezogenen Bearbeitungsvorgänge, die in Bildverarbeitungsaufgaben als Markierungs- und Parameterextraktion bekannt sind, das Bild verarbeitet werden kann, indem es in mehrere senkrechte Streifen geteilt wird und diese Mehrzahl von vertikalen Streifen unabhängig voneinander verarbeitet werden, wobei von einem Großrechner ein Vereinigungsschritt zum anschließenden Kombinieren der Streifen durchgeführt wird. Der Aufsatz schlägt auch vor, daß alternativ, nämlich wenn unabhängig adressierbare Spaltenspeicher zur Verfügung stehen, das Bild auf schräge Weise verarbeitet werden könnte, so daß eine gewöhnliche serielle Abtastung nacheinander über die Anordnung geführt werden kann. Jedoch ist keine Anordnungsarchitektur zur Umsetzung dieses Vorschlags offenbart. Es gibt auch andere Arten von SIMD-Prozessoren, aber auch sie stoßen auf das Problem von Datenanordnungen, die größer als die Prozessormatrix sind. Im allgemeinen ist die gesamte mit den Prozessoren verbundene Speicherkapazität nicht groß genug, das ganze Bild zu speichern und darüber hinaus Speicherkapazität für Rechenergebnisse bereit zuhalten.
- Somit ist ein großer externer Speicher erforderlich, und Arbeitsmechanismen müssen in der Lage sein, die Ein- und Ausgabe kleiner Unteranordnungsabschnitte mit hoher Geschwindigkeit zu handhaben, um die Recheneffizienz aufrechtzuerhalten.
- Selbst wenn jedem Prozessor genug Speicherplatz zur Verfügung gestellt würde, so daß die Summe der Speicher aller Prozessoren die gesamte große Bilddatenanordnung gespeichert halten könnte, bliebe immer noch das Problem bestehen, daß Daten zwischen den verschiedenen Unteranordnungen ausgetauscht werden müssen, sobald Nachbarschafts-Verarbeitungsvorgänge durchgeführt werden. Während eines Befehls-Taktzyklus empfängt jeder Prozessor das Ausgangssignal des ihm jeweils zugeordneten Speichers, so daß Prozessoren an den Rändern der Anordnung keine Daten von benachbarten Unteranordnungen empfangen können, da die Speicher bereits mit dem Lesen einer ganzen Unteranordnung beschäftigt sind. Mithin wären beim Lesen von Daten mehrere Taktzyklen erforderlich, sobald bei einer Berechnung sowohl Daten einer Unteranordnung als auch Daten einer benachbarten Unteranordnung benötigt werden. Eine Hauptaufgabe der vorliegenden Erfindung besteht daher in der Angabe eines einfachen Verfahrens, das es einer festen Prozessoranordnung ermöglicht, eine größere Datenanordnung zu handhaben und dabei Verarbeitungsschritte auszuführen, die einen Datenaustausch mit Nachbarprozessoren erfordern.
- Ein weiteres Ziel der Erfindung besteht darin, Nachbardaten von den Rändern der Unteranordnungen so zu koppeln, daß keine zusätzlichen Anweisungen erforderlich sind.
- Ein weiteres Ziel der Erfindung besteht darin, eine Einrichtung zum Handhaben von Unteranordnungen der Daten schaffen, ohne auf große Speicher und zugehörige prozessorferne Ein- und Ausgabeeinrichtungen zurückzugreifen.
- Noch ein weiteres Ziel der Erfindung besteht darin, eine Einrichtung anzugeben, die in der Lage ist, Daten einer großen Datenanordnung aus einer externen Quelle schnell und kontinuierlich ein- und aus zugeben, wobei in der Prozessoranordnung die Daten als Unteranordnungen behandelt werden.
- Die vorliegende Erfindung schafft ein System und ein Verfahren zum Handhaben der Verarbeitung von Datenunteranordnungen, wobei das gesamte Bild in Speichern gehalten wird, die zu einer Anordnung von Verarbeitungseinheiten gehören. Bei dem bevorzugten Verfahren der vorliegenden Erfindung wird den Prozessoren am Rand der Verarbeitungsanordnung zusätzlicher Speicher zur Verfügung gestellt. Der Einfachheit halber werden diese Speicher Nebenspeicher genannt. Ihre Hauptfunktion ist, Daten von benachbarten Unteranordnungen bereitzustellen, so daß während eines Befehlszyklus sowohl Unteranordnungsdaten als auch Randdaten gleichzeitig gelesen werden können, ohne zusätzliche Zykluszeiten oder Anweisungen zu erfordern.
- Während eines Speicherschreibvorgangs, bei dem eine Unteranordnung von Daten aus der Anordnung von Verarbeitungseinheiten in deren zugehörige Speicher geschrieben wird, werden Daten, die den Rändern dieser Unteranordnung entsprechen, gleichzeitig in Nebenspeicher geschrieben. Während eines Speicherlesevorgangs, bei dem eine Unteranordnung von Daten aus dem der Anordnung von Verarbeitungseinheiten zugeordneten Speicher gelesen und von den Verarbeitungseinheiten für Nachbarschafts-Rechenvorgänge verwendet werden soll, werden Daten zugleich auch aus den Nebenspeichern gelesen und an die randständigen Verarbeitungseinheiten als Nachbardaten von angrenzenden Unteranordnungen übertragen. Während solcher Speicherlesevorgänge wird die Adresse der Nebenspeicher nicht die gleiche sein wie die Adresse der Speicher der Verarbeitungsanordnung, da die Nebenspeicher Daten von angrenzenden Anordnungen liefern.
- Nach einem ersten Gesichtspunkt schafft die Erfindung ein Verarbeitungssystem zum Ausführen paralleler Verarbeitungsvorgänge an Daten einer großen, eine Mehrzahl von Zeilen und wenigstens 2n Spalten (n = ganze Zahl größer 1) aufweisenden Datenanordnung durch deren Unterteilung in eine Mehrzahl von Unteranordnungen, die jeweils eine Mehrzahl von Zeilen und nur n Spalten aufweisen. Das System umfaßt eine Anordnung von n einzelnen Verarbeitungseinheiten, die eine Anordnung von n Verarbeitungselementen, die durch eine Mehrzahl von Verbindungen miteinander verbunden sind, und eine Anordnung von n Hauptspeichereinrichtungen zum Speichern von zu verarbeitenden Daten enthält, wobei die Anordnung der n Hauptspeichereinrichtungen nur n Spalten breit ist und eine zum Speichern von wenigstens zwei Unteranordnungen ausreichende Zeilenzahl besitzt. Die einzelnen Verarbeitungseinheiten enthalten jeweils eines der Verarbeitungselemente und eine der Hauptspeichereinrichtungen. Das System besitzt ferner wenigstens eine erste Nebenspeichereinrichtung, die der ersten Hauptspeichereinrichtung zugeordnet ist, um dieselben Daten zu speichern, die in der ersten Hauptspeichereinrichtung gespeichert werden. Die erste Nebenspeichereinrichtung weist einen Ausgang auf, der eine Nachbar-Verbindung zwischen sich selbst und dem n-ten Verarbeitungselement bereitstellt. Typischerweise würde das System auch eine zweite Nebenspeichereinrichtung enthalten, die mit der n-ten Hauptspeichereinrichtung verbunden ist, um dieselben Daten wie die n-te Hauptspeichereinrichtung zu speichern. Diese zweite Nebenspeichereinrichtung weist einen Ausgang auf, der eine Nachbar-Verbindung zwischen sich selbst und dem ersten Verarbeitungselement bereitstellt. Sowohl bei der ersten wie der zweiten Nebenspeichereinrichtung ist der Ausgang jeweils in Reaktion auf ein von ihnen empfangenes Steuersignal in einen vorgegebenen Zustand schaltbar, der eine mit der großen Datenanordnung zusammenhängende Randbedingung angibt.
- Nach einem zweiten Gesichtspunkt schafft die Erfindung ein Verarbeitungssystem zum Ausführen paralleler Verarbeitungsvorgänge an Daten einer großen, eine Mehrzahl von Zeilen und wenigstens 2n Spalten (n = ganze Zahl größer 1) aufweisenden Datenanordnung durch deren Unterteilung in eine Mehrzahl von Unteranordnungen, die jeweils eine Mehrzahl von Zeilen und nur n Spalten aufweisen. Das System umfaßt eine Anordnung von n einzelnen Verarbeitungseinheiten, die eine Anordnung von durch eine Mehrzahl von Nachbar-Verbindungen miteinander verbundenen Nachbarschafts-Verarbeitungselementen, eine Anordnung von n Datenein-/ausgabeeinrichtungen zum Übermitteln von Daten in die und aus der Anordnung von Verarbeitungseinheiten und eine Anordnung von n, jeweils einzelnen Verarbeitungselementen zugeordneten Speichereinrichtungen zum Speichern von Daten enthält. Jedes der einzelnen Verarbeitungselemente enthält eines der Nachbarschafts-Verarbeitungselemente, eine der Datenein- /ausgabeeinrichtungen und eine der Speichereinrichtungen. Die Anordnung von n Speichereinrichtungen ist ausreichend groß, mindestens zwei der Unteranordnungen zu speichern.
- Nach einem dritten Gesichtspunkt schafft die Erfindung bei einem Verarbeitungssystem zum Ausführen paralleler Verarbeitungsvorgänge an Daten einer großen, wenigstens eine Mehrzahl von Zeilen und 2n Spalten aufweisenden Datenanordnung ein Verfahren zum Speichern von Daten zur nachfolgenden Verarbeitung durch das System. Das Verfahren umfaßt folgende Schritte: (a) Es wird - zumindest als Teil des Verarbeitungssystems - erstens eine Anordnung von n Verarbeitungseinheiten bereitgestellt, die jeweils eine örtliche Speichereinrichtung aufweisen, die ausgebildet ist, mehrere, unterschiedlichen Zeilen der großen Datenanordnung zugeordnete Dateneinheiten zu speichern; zweitens wird eine erste, mit der ersten örtlichen Speichereinrichtung verbundene Nebenspeichereinrichtung zum Speichern mehrerer Dateneinheiten bereitgestellt, und drittens wird eine zweite, mit der n-ten örtlichen Speichereinrichtung verbundene Nebenspeichereinrichtung zum Speichern mehrerer Dateneinheiten bereitgestellt; (b) eine erste Zeile von n Dateneinheiten aus n Spalten der großen Datenanordnung wird gleichzeitig in die n örtlichen Speichereinrichtungen übertragen, dergestalt daß jede Dateneinheit in eine unterschiedliche örtliche Speichereinrichtung übertragen wird; und (c) gleichzeitig mit Schritt (b) werden erstens die gleiche Dateneinheit, die gerade in die erste örtliche Speichereinrichtung übertragen wird, in die erste Nebenspeichereinrichtung und zweitens die gleiche Dateneinheit, die gerade in die n-te örtliche Speichereinrichtung übertragen wird, in die zweite Nebenspeichereinrichtung übertragen.
- Nach einem vierten Gesichtspunkt schafft die Erfindung bei demselben Verarbeitungssystem ein Verfahren zum örtlichen Speichern von aus der Anordnung kommenden Daten in einer umgeordneten Weise zur nachfolgenden Verarbeitung durch das System. Das Verfahren nach diesem Gesichtspunkt der Erfindung umfaßt folgende Schritte: (a) Es wird - zumindest als Teil des Verarbeitungssystems - erstens eine Anordnung von n Verarbeitungseinheiten bereitgestellt, die jeweils eine örtliche Speichereinrichtung aufweisen, die ausgebildet ist, Daten in wenigstens 2H Zeilen·1 Spalte zu speichern; zweitens wird eine erste, mit der ersten örtlichen Speichereinrichtung verbundene Nebenspeichereinrichtung zum Speichern von Daten in 2H Zeilen·1 Spalte bereitgestellt, und drittens wird eine zweite, mit der n-ten örtlichen Speichereinrichtung verbundene Nebenspeichereinrichtung zum Speichern von Daten in 2H Zeilen· 1 Spalte bereitgestellt; (b) 2H Zeilen·n Spalten von Daten aus der großen Datenanordnung werden gleichzeitig in die n örtlichen Speichereinrichtungen eingespeichert; und (c) gleichzeitig mit Schritt (b) werden erstens die gleichen Daten, die gerade in die erste örtliche Speichereinrichtung eingespeichert werden, in die erste Nebenspeichereinrichtung übertragen und zweitens die gleichen Daten, die gerade in die n-te örtliche Speichereinrichtung eingespeichert werden, in die zweite Nebenspeichereinrichtung übertragen.
- Nach einem fünften Gesichtspunkt schafft die Erfindung bei einem Verarbeitungssystem der gleichen Art wie im vierten Gesichtspunkt der Erfindung ein Verfahren zum Handhaben von Daten für eine Verarbeitung durch das System. Das Verfahren beinhaltet einen Schritt (a), der mit dem Schritt (a) nach dem vierten Gesichtspunkt der Erfindung identisch ist. Das Verfahren umfaßt ferner die folgenden zusätzlichen Schritte: (b) 2H Zeilen·n Spalten von Daten aus der großen Datenanordnung werden gleichzeitig in die n örtlichen Speichereinrichtungen eingespeichert, wobei die Daten, die in den ersten H Zeilen der n örtlichen Speichereinrichtungen gespeichert werden, aus einer ersten Unteranordnung von H Zeilen und einer ersten Gruppe von n Spalten der großen Datenanordnung stammen, und die Daten, die in den zweiten H Zeilen der n örtlichen Speichereinrichtungen gespeichert werden, aus einer zweiten Unteranordnung derselben H Zeilen (wie bei der ersten Unteranordnung) und einer zweiten Gruppe von Spalten stammen; (c) gleichzeitig mit Schritt (b) werden in der gleichen Reihenfolge erstens in der ersten Nebenspeichereinrichtung die gleichen Daten eingespeichert, die gerade in die erste örtliche Speichereinrichtung eingespeichert werden, und zweitens in die zweite Nebenspeichereinrichtung die gleichen Daten eingespeichert, die gerade in die n-te örtliche Speichereinrichtung eingespeichert werden; und (d) gleichzeitig werden Daten aus der örtlichen Speichereinrichtung und wenigstens einer der Nebenspeichereinrichtungen gelesen.
- Nach einem sechsten Gesichtspunkt schafft die Erfindung bei einem Verarbeitungssystem zum Ausführen paralleler Verarbeitungsvorgänge an Daten einer großen, wenigstens H Zeilen und 3n Spalten aufweisenden Datenanordnung ein Verfahren zum Handhaben von Daten für eine Verarbeitung durch das System. Dieses Verfahren gleicht dem Verfahren nach dem fünften Gesichtspunkt der vorliegenden Erfindung, mit der Ausnahme, daß die erste und die zweite Nebenspeichereinrichtung Daten in 3H Zeilen·1 Spalte speichern, und Schritt (d) dieses Verfahrens verlangt ein gleichzeitiges Lesen von Daten aus den örtlichen Speichereinrichtungen und aus der ersten und zweiten Nebenspeichereinrichtung.
- Diese und weitere Gesichtspunkte, Ziele und Vorteile der vorliegenden Erfindung werden durch Bezugnahme auf die folgende eingehende Beschreibung in Verbindung mit den verschiedenen Zeichnungsfiguren und beiliegenden Ansprüchen deutlicher.
- Die Zeichnungen bilden einen integralen Bestandteil der Beschreibung der bevorzugten Ausführungsform und sind im Zusammenhang mit dieser zu lesen. Gleiche Bezugszeichen bezeichnen in den verschiedenen Figuren gleiche Bestandteile.
- Fig. 1 ist ein Blockschaltbild der Verarbeitungseinrichtung, welche die bevorzugte Ausführungsform der vorliegenden Erfindung bildet;
- Fig. 2 veranschaulicht, wie eine ganze Datenanordnung in Unteranordnungen aufgeteilt werden kann;
- Fig. 3 zeigt, wie die Datenunteranordnungen den zur Verarbeitungsanordnung gehörenden Speichern zugewiesen werden;
- Fig. 4 zeigt Einzelheiten der Verarbeitungselemente in der Anordnung von Verarbeitungseinheiten;
- Fig. 5 zeigt schematisch, wie Lesezyklen von Unteranordnungen organisiert sind; und
- Fig. 6 zeigt schematisch, wie Schreibzyklen von Unteranordnungen organisiert sind.
- Wie in Fig. 1 gezeigt, besitzt das erfindungsgemäße Parallelverarbeitungssystem 8 eine Reihenanordnung 10 von gleichen einzelnen digitalen Verarbeitungseinheiten 10a-10n, die kollektiv eine Reihenanordnung 11 von Nachbarschafts- Verarbeitungselementen 11a-11n, eine Reihenanordnung 12 von Datenein-/ausgabeeinrichtungen 12a-12n und eine Reihenanordnung 13 von zugeordneten "örtlichen Hauptspeichern" 13a-13n, die vorzugsweise "1 Bit breite" Speicher sind, enthalten. Die Speicher 13a-13n sind örtlich in bezug auf das System 8 (d. h. sie sind Teil desselben, und nicht etwa fern von diesem oder außerhalb desselben). Gelegentlich werden die Speicher 13a-13n als Hauptspeicher des Systems 8 bezeichnet. Zwar könnte die ganze Zahl "n" auch Zwei bedeuten, aber typisch wäre ein Wert von n = 2 hoch t mit t = 4, 5, 6, 7 oder 8 (obwohl t auch noch größer sein könnte). Die Einzelverarbeitungseinheit 10b ist repräsentativ und enthält ein Nachbarschafts- Verarbeitungselement 11b, eine Datenein-/ausgabeeinrichtung 12b und einen Speicher 13b. Die Nachbarschafts- Verarbeitungselemente 11b-11n empfangen über Leitungen 14b-14n Daten von den unmittelbar zu ihrer Linken gelegenen Nachbarschafts-Verarbeitungselementen. Die Verarbeitungselemente 11a-11m empfangen über Leitungen 15a-15m Daten von den unmittelbar zu ihrer Rechten gelegenen Nachbarschafts-Verarbeitungselementen. Die Nachbarschafts- Verarbeitungselemente 11a-11n sind über Zweirichtungsleitungen 16a-16n auch jeweils mit den zugehörigen Speichern 13a-13n verbunden. Die Datenein-/ausgabeeinrichtungen 12a-12n sind vorzugsweise Mehrbit-Schieberegister, die ebenfalls mit den Zweirichtungsleitungen 16a-16n verbunden sind. Die Schieberegister 12a-12n sind über Einwegleitungen 17b-17n auch untereinander verbunden. Die Schieberegister 12a-12n enthalten jeweils einen seriellen Eingang und einen seriellen Ausgang sowie einen parallelen Eingang und einen parallelen Ausgang, die einen Parallelzugriff auf ihre einzelnen Stufen ermöglichen. Diese parallelen Ein- und Ausgänge sind an die Leitungen 17 angeschlossen.
- Ein erster und ein zweiter Nebenspeicher 21 bzw. 25 unterstützen die Hauptspeicher 13a und 13n und befinden sich, wie die Hauptspeicher, örtlich im System 8. Die Nebenspeicher 21 und 25 besitzen getrennte Dateneingangsleitungen 22 bzw. 26 und getrennte Datenausgangsleitungen 23 bzw. 27. Der Zweck der Nebenspeicher besteht darin, über die Leitungen 23 und 27 passende Nachbardaten an die an den äußeren Rändern der Prozessor-Reihenanordnung gelegenen Nachbarschafts- Verarbeitungselemente 11a und 11n zu liefern.
- In das Verarbeitungssystem einzugebende Daten kommen aus einer Datenquelle 18 über die Mehrfachleitung 19, wobei die Daten in Form eines Stroms von jeweils B Bit breiten Worten vorliegen, worin B eine ganze Zahl größer Eins ist und zum Beispiel 8, 16 oder 32 (oder mehr) betragen kann.
- Der Datenstrom wird einem Zwischenspeicher 20 zugeführt, dessen Betrieb von einer Ein-/Ausgabe-Steuereinheit 23 über Steuerleitungen 24 gesteuert wird. Das erste Mehrbit- Schieberegister 12a empfängt Daten aus dem Zwischenspeicher 20 über B Eingangsleitungen 17a, entsprechend den B Datenbits. Der Datenstrom aus dem Zwischenspeicher 20 wird über die Leitungen 17a-17n sequentiell durch die Schieberegister 12a-12n geschoben. Sobald die Schieberegister 12a-12n eine Ladung von n Datenworten, die jeweils B Bits breit sind und einer der n Verarbeitungseinheiten 10 entsprechen, enthalten, beendet die Ein-/Ausgabe-Steuereinheit 23 das auf den Leitungen 17a-17n ablaufende Verschieben von Daten. Die Steuereinheit 23 veranlaßt dann die Schieberegister 12a-12n, die in ihnen enthaltenen Datenworte seriell über die Leitungen 16a-16n an die Speicher 13a-13n weiterzuschieben, indem die Schieberegister 12a-12n insgesamt B Mal getaktet werden, entsprechend der Anzahl an Bits in den Datenworten. Gleichzeitig wird auch ein Duplikat des aus dem Schieberegister 12a über die Leitung 16a an den Speicher 13a übermittelten Datenworts über den Speicher-Dateneingang 22 an den ersten, oder linken, Nebenspeicher 21 übermittelt und in diesem gespeichert. In ähnlicher Weise wird gleichzeitig auch ein Duplikat des aus dem Schieberegister 12n über die Leitung 16n an den Speicher 13n übermittelten Datenworts über den Speicher-Dateneingang 26 an den zweiten, oder rechten, Nebenspeicher 25 übermittelt und in diesem gespeichert. Während der Speicherschreibzyklen weist die Ein-/Ausgabe-Steuereinheit 23 über Leitungen 29 eine Speicheradressensteuereinrichtung 28 an, zu bewirken, daß Speicheradreßleitungen 32, 34 und 33 für die Speicher 13a-13n und die Nebenspeicher 21 und 25 die gleiche Adresse enthalten, welche die Speicherplätze angibt, in welche die B Bits der Datenworte geschrieben werden sollen.
- Die Fig. 2 und 3 zeigen zusammen, wie eine große zweidimensionale Datenanordnung oder Bildstruktur in die bei der vorliegenden Erfindung verwendete Speicherstruktur 13 abgebildet werden kann. Fig. 2 zeigt eine große zusammenhängende zweidimensionale Datenanordnung oder Matrix 40, die eine erste oder horizontale Abmessung von W Spalten von Daten und eine zweite oder vertikale Abmessung von H Zeilen von Daten aufweist und zum Beispiel ein Bild darstellt. Das Bild hat einen ersten vertikalen, oder linken, Rand 46 und einen zweiten vertikalen, oder rechten, Rand 47. Die Datenmatrix wird in eine Mehrzahl von Unterabschnitten (z. B. vier) aufgeteilt, die Band 41, Band 42, Band 43 bzw. Band 44 genannt werden. Diese vertikalen Bänder enthalten jeweils eine Datenanordnung, deren Höhe gleich der Zeilenanzahl H des Bildes 40 ist und deren Breite W/4 = n Spalten beträgt, worin n der Anzahl an Verarbeitungseinheiten 10a-10n nach Fig. 1 entspricht.
- Da in diesem Beispiel die große Datenmatrix 40 eine Breite W besitzt, welche die Anzahl an Verarbeitungseinheiten um den Faktor 4 übersteigt, kann die Datenmatrix umstrukturiert werden, indem sie in vier Bänder 41-44 aufgeteilt wird, sobald sie in den Speichern 13a-13n, 21 und 25 gespeichert wird. Fig. 3 zeigt die Struktur der Speicherzuweisung. Das Band 41 enthält den linken Rand 46 des Bildes 40. Auch das Band 41 hat einen eigenen rechten Rand 50, der inhaltlich mit dem linken Rand 52 des Bands 42 zusammenhängt, wie durch die Linie 51 ausgedrückt ist. In ähnlicher Weise sind inhaltliche Zusammenhänge zwischen den Rändern 53 und 54 sowie zwischen den Rändern 55 und 56 angezeigt. Der rechte Rand 47 des Bands 44 schließlich stellt den rechten Rand des Bildes 40 dar. Das in Fig. 3 gezeigte restrukturierte Bild 40 paßt nun in die Speicher 13a-13n, wobei die aus den Speichern 13a-13n bestehende vereinigte Speicheranordnung 13 bezüglich seiner Zeilenzahl mit ausreichender Speicherkapazität, d. h. mit mindestens 4H Zeilen, versehen ist, um alle Bänder gespeichert zu halten. Um die vorstehende Diskussion der Fig. 2 bis 3 sogar noch konkreter zu gestalten, sei als Beispielfall - nicht als Beschränkung - ein Bild 40' betrachtet, das eine zweidimensionale Datenanordnung mit 2k Zeilen und 256 Spalten ist. Der Wert H betrüge dann 2k oder 2048, W wäre gleich 256 und n gleich 64. In diesem Fall würde die Abbildung des Bildes 40 gemäß Fig. 2 auf ein Bild 40' nach Fig. 3, mit vier übereinander angeordneten Bändern, es erforderlich machen, daß die Speicher 13a-13n jeweils eine Größe von 8k Bit·1 Bit haben, um das Bild 40' speichern zu können. Die Nebenspeicher 21 und 25 würden ebenfalls jeweils eine Größe von 8k Bit·1 Bit aufweisen.
- Um Nachbarschafts-Verarbeitungsvorgänge durchzuführen, werden drei Schritte benötigt. Erstens müssen Daten aus den zugeordneten Speichern 13a-13n in die Nachbarschafts-Verarbeitungselemente 11a-11n gelesen werden, welche jeweils genug Speicher auf ihrem Chip oder ihrer Platine haben, um für jedes Nachbarschafts- Verarbeitungselement Daten über den in horizontaler und vertikaler Richtung nächsten Nachbarn gespeichert zu halten. Zweitens berechnet das Nachbarschafts-Verarbeitungselement eine Transformation der Nachbarschafts-Daten gemäß einer gegebenen Anweisung und verändert dadurch die Daten. Drittens müssen die veränderten Daten in die zugehörigen Speicher 13a-13n zurückgeschrieben werden. Diese drei Schritte heißen Lesen-Teilzyklus, Ändern-Teilzyklus bzw. Schreib-Teilzyklus. Diese Abfolge von drei Schritten heißt Lesen-Ändern-Schreiben- Zyklus und wird möglicherweise sehr oft wiederholt, um alle Daten nach einem gegebenen Algorithmus vollständig zu verarbeiten.
- In Fig. 4 ist ein detailliertes Blockschaltbild mehrerer der Nachbarschafts- Verarbeitungselemente 11 gezeigt. Jedes Nachbarschafts- Verarbeitungselement 11a-11n hat den gleichen Aufbau. Das Verarbeitungselement 11b ist repräsentativ und enthält drei 1- Bit-Schieberegister 61b-63b und ein Nachbarschafts- Transformationsmodul 64b. Während eines Rechenzyklus, der die Verarbeitung nächster Nachbardaten einschließt, werden Daten aus den Speichern 13a-13n über die Leitungen 16a-16n in die Nachbarschafts-Verarbeitungselemente 11a-11n eingelesen. Die so gelesenen Daten werden in die Schieberegister 61a-61n geschoben und in diesen gespeichert. Die darin enthaltenen Daten entsprechen einer einzelnen ersten horizontalen Reihe von Bits in einem der vertikalen Datenbänder. Ein zweiter Lesevorgang greift auf eine zweite, benachbarte horizontale Bitreihe im selben vertikalen Datenband zu und bewirkt, daß die erste Bitreihe nach oben in die Schieberegister 62a-62n geschoben wird und die zweite Bitreihe die Schieberegister 61a-61n besetzt. Jegliche anschließenden Lesevorgänge werden Lese- Teilzyklen genannt. Die Start-Lesevorgänge werden oft als "Füllen der Pipeline" bezeichnet.
- Ein dritter Lese-Vorgang betreffend die nächstbenachbarte Datenzeile im selben Datenband bewirkt in gleicher Weise ein weiteres Verschieben von Daten, so daß die gesamte Gruppe von Schieberegistern 61a-61n, 62a-62n, 63a-63n drei aufeinanderfolgende Reihen von 1-Bit-Daten aus demselben Datenband enthält. Weitere Lese-Teilzyklen bewirken, daß die oberste Datenreihe in den Schieberegistern 63a-63n verloren geht, und der nächste Satz von drei benachbarten Datenzeilen belegt dann die gesamte Gruppe von Schieberegistern 61a-61n, 62a-62n, 63a-63n, die daher einen vollständigen Satz von Nachbardaten für eine gegebene Zeile in einem gegebenen Band enthalten. Jedoch haben - siehe wieder Fig. 1 - die Verarbeitungselemente am Rand der Anordnung, nämlich die Elemente 11a und 11n, jeweils nur ein einziges angrenzendes Verarbeitungselement. Beim Verarbeitungselement 11a entspricht die Nachbar-Verbindung 14a dem linken Rand eines gegebenen ersten Bandes und ist über die Leitung 14a mit dem Ausgang 27 des rechten Nebenspeichers 25 verbunden. Die Speicheradressensteuereinrichtung 28 sendet über die Leitung 33 eine Adresse an den Nebenspeicher 25, die dem zugehörigen Nachbarschafts-Datenpunkt am rechten Rand eines angrenzenden zweiten Bandes entspricht. In ähnlicher Weise entspricht beim Verarbeitungselement 11n die Nachbar-Verbindung 14n dem rechten Rand des genannten ersten Bands und ist über die Leitung 15n mit dem Ausgang 23 des linken Nebenspeichers 21 verbunden. Die Speicheradressensteuereinrichtung 28 sendet über die Leitung 32 eine Adresse an den Nebenspeicher 21, die dem zugehörigen Nachbarschafts-Datenpunkt am linken Rand eines angrenzenden dritten Bandes entspricht.
- Es wird auf das Verarbeitungselement 11b in Fig. 4 Bezug genommen; das Nachbarschafts- Transformationsmodul 64b ist mit fünf Eingangssignalen dargestellt, die vom links benachbarten Register 62a, vom oberen Register 63b, vom mittleren Register 62b, vom unteren Register 61b bzw. vom rechts benachbarten Register 62c kommen und vom Modul 64b über Nachbarschafts-Eingangsleitungen 60b empfangen werden. Das Nachbarschafts-Transformationsmodul 64b ist typischerweise eine programmierbare Nachschlagtabelle, deren Funktionen einschlägigen Fachleuten bekannt sind. Das Nachschlagtabellen-Programm wird von einer Befehlssteuereinrichtung 35 über Übertragungsleitungen 36 (die Steuer- und Datenleitungen umfassen können) geladen, wodurch an alle Nachbarschafts-Transformationsmodule 64a-64n dieselbe Befehlsfolge übertragen wird, wobei alle Nachbarschafts- Verarbeitungselemente des Systems 8 in jedem beliebigen Zyklus der Befehlsfolge dieselbe Anweisung empfangen. Die Module 64a-64n transformieren dann jeweils ihre fünf auf den zugeordneten Nachbarschafts-Eingangsleitungen 60a-60n empfangenen Eingangsdaten in einzelne Ausgangssignale auf den Leitungen 65a-65n, wobei die Ausgangssignale 65 der programmierten Ausgangsfunktion gemäß der Nachschlagtabelle entsprechen.
- Die Ausgangssignale 65a-65n enthalten die veränderten Daten, und sobald ein Freigabesignal erscheint, werden die veränderten Daten über die Leitungen 16a-16n in die Speicher 13a-13n eingeschrieben. In Fig. 1 schreiben die an den Rändern der Anordnung gelegenen Nachbarschafts- Verarbeitungselemente, nämlich die Verarbeitungselemente 11a und 11n, die veränderten Daten auch in die zugeordneten Nebenspeicher 21 und 25, und zwar über die Leitungen 16a und 16n und die Dateneingänge 22 bzw. 26. Während Schreib- Teilzyklen bewirkt die Speicheradressensteuereinrichtung 28, daß über die Leitungen 32, 34 bzw. 33 dieselbe Adresse an die Speicher 21, 13a-13n und 25 gesandt wird.
- Die Fig. 5A bis 5D veranschaulichen weiter die Speicherlesezyklen für ein gesamtes Bild 40', das in Bänder 41-44 aufgeteilt und in den Hauptspeichern 13a-13n und den Nebenspeichern 21 und 25 gespeichert wurde. In diesen Figuren sind alle Verarbeitungselemente 11a-11n jeweils als ein Gesamtblock 11 dargestellt. In Fig. 5A sind die Verbindungen 16a-16n zwischen den Speichern und Verarbeitungselementen ebenfalls so dargestellt, daß sie an allen Speichern 13a-13n angeschlossen sind, die ihrerseits ebenfalls als ein Block 13 gezeigt sind. Zu Veranschaulichungszwecken ist der Speicher 13 so dargestellt, als wäre er physikalisch in die vier darin gespeicherten vertikalen Bänder 41, 42, 43 und 44 aufgeteilt. Die Nebenspeicher 21 und 25 sind in ähnlicher Weise gezeigt. Um die oberste horizontale Reihe von Daten eines Bildes zu lesen und zu verarbeiten, wird, wenn auch Nachbarschafts-Daten benötigt werden, die erste oder oberste Reihe des ersten Bandes
- - in Fig. 5A durch den breiten Streifen 70 dargestellt - über die Leitungen 16a-16n in die Verarbeitungselemente 11a-11n gelesen. Gleichzeitig wird über die Leitung 23 das oberste Datenbit des zweiten Bandes, oder das oberste dem zweiten Band zugeordnete Datenbit, - dargestellt durch den breiten Streifen 71 im linken Nebenspeicher 21 - an den Nachbarschafts-Eingang 15n des am weitesten rechts gelegenen Verarbeitungselements 11n ausgelesen. Gleichzeitig bewirkt die in Fig. 1 gezeigte Speicheradressensteuereinrichtung 28 eine Lese-Sperrung des rechten Nebenspeichers 25, wodurch die Datenausgangsleitung 27 in einen Zustand hoher Impedanz übergeht, mit dem Ergebnis, daß der Widerstand 37 die Leitung 14a auf eine logische Null herabzieht. Das Nachbarschafts-Eingangssignal 14a an dem am weitesten links gelegenen Verarbeitungselement 11a ist dann Null. Dies bedeutet, daß die Daten außerhalb des linken Bildrands als Null definiert werden.
- Als nächstes wird die zweite Zeile des ersten Bands 41 gelesen und verarbeitet, und dies setzt sich fort, bis alle Zeilen innerhalb der schraffierten Fläche 41, die dem gesamten ersten Band entspricht, gelesen und verarbeitet sind. Während dieser Verarbeitung des ersten Bands 41 bleibt der rechte Nebenspeicher 25 gesperrt, so daß das Nachbarschafts- Eingangssignal 14a an dem ganz links gelegenen Verarbeitungselement Null bleibt.
- Der Lesevorgang geht dann - wie in den Fig. 5B und 5C gezeigt - mit dem zweiten und dritten Band 42 bzw. 43 weiter, wobei die Nebenspeicheradressen - wie durch die Schraffur angedeutet -passend verschoben werden, um den Randspeichern die richtigen Nachbarschafts-Daten zu geben. Sobald zum Beispiel in Fig. 5B die dem Band 42 angehörige (und durch einen breiten Streifen 72 dargestellte) Bitzeile "i" in den Hauptspeichern 13a-13n gelesen wird, werden gleichzeitig (wie durch Streifen 73 und 74 dargestellt) auch das Bit in der dem Band 43 angehörigen Zeile "i" des linken Nebenspeichers 21 und das Bit in der dem Band 41 angehörigen Zeile "i" des rechten Nebenspeichers 25 gelesen, um auf der Leitung 15n ein Nachbarschafts-Eingangssignal an das ganz rechte Verarbeitungselement 11n bzw. auf der Leitung 14a ein Nachbarschafts-Eingangssignal an das ganz linke Verarbeitungselement 11a zu liefern. Sobald auf ähnliche Weise in Fig. 5C die dem Band 43 angehörige (und durch einen breiten Streifen 75 dargestellte) Bitzeile "i" im Hauptspeicher 13 gelesen wird, werden gleichzeitig auch das Bit 76 in der dem Band 42 angehörigen Zeile "i" des linken Nebenspeichers 21 und das Bit 77 in der dem Band 43 angehörigen Zeile "i" des rechten Nebenspeichers 25 gelesen, um Nachbarschafts-Eingangssignale zu liefern. Somit wird zur Durchführung eines Speicherlesezyklus bezüglich einer gegebenen Zeilenadresse im Band 42 (oder 43) die Adresse des linken Nebenspeichers um H Zeilen "nach unten" versetzt, nämlich zur entsprechenden Zeile im angrenzenden "unteren" Band, während die Adresse des rechten Nebenspeichers auf die entsprechende Zeile im angrenzenden "oberen" Band erhöht wird.
- Fig. 5D veranschaulicht Lesezyklen für das letzte Band 44, wobei die in Fig. 1 gezeigte Speicheradressensteuereinrichtung 28 eine Lese-Sperrung des linken Nebenspeichers 21 aus löst und dadurch bewirkt, daß die Datenausgangsleitung 23 in einen hochohmigen Zustand übergeht, wodurch der Widerstand 38 die Leitung 15n auf eine logische Null herabzieht. Dies bedeutet, daß die Daten außerhalb des rechten Rands 47 des Bildes 40 als Null definiert werden. Sobald jedoch die Zeile "i" des Bands 44 gelesen wird - wie durch breite Streifen 78 und 79 veranschaulicht, welche die Bitzeile "i" in dem dem Band 44 zugewiesenen Bereich der Hauptspeicher 13 bzw. das Bit in Zeile "" des rechten Nebenspeichers 25 darstellen -, empfängt der ganz links gelegene Prozessor 11a gleichzeitig sein linkes Nachbarschafts-Eingangssignal vom Nebenspeicher 25 über die Datenausgangsleitung 27 und die Dateneingangsleitung 14a.
- Die Fig. 6A bis 6D veranschaulichen deutlicher Speicherschreibzyklen für ein gesamtes Bild 40', das in Bänder 41-44 aufgeteilt wurde, wobei - wie in Fig. 5 - die Verarbeitungselemente 11a-11n als ein gemeinsamer Block 11 und die Speicher 13a-13n als ein gemeinsamer Block 13 dargestellt sind. Um die obersten Datenzeilen eines Bildes in die Speicheranordnung 13a-13n zu schreiben, wird die oberste Zeile des ersten Bandes 41 geschrieben, wie in Fig. 6A schematisch durch den breiten Streifen 80 angezeigt. Gleichzeitig werden Daten, die mit jenen für die Speicher 13a und 13n übereinstimmen, in die Nebenspeicher 21 und 25 eingeschrieben, und zwar an den schematisch durch breite Streifen 81 und 82 gezeigten Speicherplätzen (Speicherzeilen). Als nächstes wird die zweitoberste Zeile des besagten ersten Bandes 41 in die Speicheranordnung 13a-13n geschrieben, und Daten, die mit jenen für die Hauptspeicher 13a und 13n übereinstimmen, werden in die Nebenspeicher 21 und 25 in deren zweitoberste Zeile eingeschrieben. Dieser Vorgang setzt sich fort, bis alle Zeilen innerhalb der schraffierten Fläche 41, die dem gesamten ersten Band entspricht, eingeschrieben sind. In ähnlicher Weise setzt sich der Schreibvorgang mit den Bändern 42, 43 und 44 fort - wie in den Fig. 6B, 6C bzw. 6D gezeigt -, wodurch das Einschreiben des Bildes 40' in die Speicheranordnung 13a-13n und in die Nebenspeicher 21 und 25 abgeschlossen wird.
- Nachdem die Daten durch eine Anzahl von durch einen gegebenen Algorithmus bestimmten Lesen-Ändern-Schreiben-Zyklen verarbeitet sind, können die Ergebnisse mittels der Schieberegister 12a-12n in einem zweistufigen Verfahren ausgegeben werden, was nachfolgend unter Bezugnahme auf Fig. 1 beschrieben wird.
- Zuerst veranlaßt die Ein-/Ausgabe-Steuereinheit 23 über Leitungen 29 die Speicheradressensteuereinrichtung 28, die Adresse einer gewünschten ersten Zeile von Datenbits des ersten Bandes 41 über Adreßleitungen 34 an die Speicher 13a-13n zu liefern. Dann taktet die Ein-/Ausgabe-Steuereinheit 23 über die Steuerleitungen 24 einmal die Schieberegister 12a-12n und veranlaßt, daß Daten aus den angegebenen Speicheradressen in die Schieberegister 12 kopiert werden. Die Ein-/Ausgabe- Steuereinheit 23 schreitet in ähnlicher Weise fort und bewirkt, daß Adressen für zusätzliche Zeilen von Datenbits von der Steuereinrichtung 28 an die Speicher 13a-13n gesandt werden, und taktet die Datenzeilen, auf die zugegriffen wird, in die Schieberegister 12a-12n, bis n Mehrbit-Datenworte der Bitbreite B aus den Speichern 13a-13n in die Schieberegister 12a-12n aufwärts geschoben worden sind. Diese Datenanordnung in der Anordnung von Schieberegistern 12 kann als erste horizontale Reihe eines ersten Bandes von n Worten durch B Ausgänge angesehen werden.
- Als nächstes taktet die Ein-/Ausgabe- Steuereinheit 23 über die Steuerleitungen 24 die Schieberegister 12a-12n insgesamt n Mal und veranlaßt, daß B Bits von Mehrbit-Daten über die Leitungen 17b-17n nach rechts geschoben werden, so daß diese erste horizontale Reihe des ersten Bandes von n Worten zu je B Bits von Mehrbit-Daten in den Ausgabe-Zwischenspeicher 30 eintreten und über Leitungen 31 an eine Ausgabeeinrichtung 39 weitergegeben werden.
- Als nächstes werden die Schritte 1 und 2 der Reihe nach jeweils für eine gewünschte erste Reihe aller anderen Bänder wiederholt, so daß infolgedessen die in den Ausgabe-Zwischenspeicher 30 eintretenden Mehrbit-Daten zusammenhängend einer ganzen ersten horizontalen Zeile des Bildes 40 entsprechen, welche die Breite W des Bildes 40 umspannt. Der Vorgang wird fortgesetzt, bis alle horizontalen Reihen, die das gesamte Bild beinhalten, zur Ausgabeeinrichtung 39 ausgelesen worden sind.
- Aus dem Vorangehenden ist ersichtlich, daß das hier beschriebene Nachbarschafts-Verarbeitungssystem nicht nur eine zuverlässige Erreichung der Ziele der vorliegenden Erfindung bietet, sondern dies auch in einer besonders wirksamen und sparsamen Weise erfüllt. Ein System mit geringem Kostenaufwand ist leicht erzielbar, da die Anzahl von Verarbeitungselementen viel geringer als die Bildbreite sein kann, sofern nur die Spaltenspeicher 13a-13n hinreichend groß sind. Da die Anzahl von Verarbeitungselementen verringert und damit die Anzahl von Bändern pro Bild erhöht wird, erhöht sich zwar die zur Bildverarbeitung erforderliche Zeit, aber diese Abwägung ist in vielen Anwendungsfällen völlig hinnehmbar, besonders wenn die Gesamtkosten des parallelen Nachbarschafts-Verarbeitungssystems ein wichtiges Kriterium ist.
- Die hier beschriebene Erfindung kann zum Beispiel auf andere Organisationen paralleler Prozessoren angewandt werden, wie z. B. auf Prozessoranordnungen in zwei oder mehr Dimensionen, in hyperkubischen Strukturen und in Baumstrukturen. Ferner werden die relativen Ausdrücke "Reihe/Zeile" und "Spalte", "vertikal" und "horizontal", "links" und "rechts" und dergl. hier nur dazu verwendet, die Beschreibung und die Ansprüche leichter verständlich zu machen. In dieser Hinsicht ist für einschlägige Fachleute ohne weiteres ersichtlich, daß solche Ausdrücke oft nur eine Frage der Perspektive und untereinander austauschbar sind, indem man einfach seine Perspektive wechselt; so werden z. B. Zeilen zu Spalten und umgekehrt, sobald man seinen Blickwinkel um 90 Grad dreht.
Claims (16)
1. Verarbeitungssystem (8) zum Ausführen paralleler
Verarbeitungsvorgänge an Daten einer großen, eine Mehrzahl von
Zeilen und wenigstens 2n Spalten (n = ganze Zahl größer 1)
aufweisenden Datenanordnung (40) durch deren Unterteilung in
eine Mehrzahl von Unteranordnungen (41, 42, 43, 44), die
jeweils eine Mehrzahl von Zeilen und nur n Spalten aufweisen,
wobei das System folgende kennzeichnenden Merkmale umfaßt: eine
Anordnung (10) von n einzelnen Verarbeitungseinheiten
(10a-10n), die eine Anordnung (11) von n Verarbeitungselementen
(11a-11n), die durch eine Mehrzahl von Verbindungen (14b-14n;
15a-15m) miteinander verbunden sind, und eine Anordnung (13)
von n Hauptspeichereinrichtungen (13a-13n) zum Speichern von zu
verarbeitenden Daten enthält, wobei die Anordnung der n
Hauptspeichereinrichtungen nur n Spalten breit ist und eine zum
Speichern von wenigstens zwei Unteranordnungen ausreichende
Zeilenzahl besitzt, und wobei die einzelnen
Verarbeitungseinheiten jeweils eines der Verarbeitungselemente
und eine der Hauptspeichereinrichtungen enthalten; und
wenigstens eine erste Nebenspeichereinrichtung (21),
die mit der ersten Hauptspeichereinrichtung (13a)
zusammenhängt, um dieselben Daten zu speichern, die in der
ersten Hauptspeichereinrichtung gespeichert werden.
2. System (8) nach Anspruch 1, ferner dadurch
gekennzeichnet, daß die Nebenspeichereinrichtung (21) einen
Ausgang (23) aufweist, der eine Nachbar-Verbindung zwischen
sich selbst und dem n-ten Verarbeitungselement (11n)
bereitstellt.
3. System (8) nach Anspruch 2, ferner dadurch
gekennzeichnet, daß der Ausgang (23) der
Nebenspeichereinrichtung in Reaktion auf ein von der
Nebenspeichereinrichtung empfangenes Steuersignal (32)
in einen vorgegebenen Zustand schaltbar ist, der eine erste mit
der großen Datenanordnung zusammenhängende Randbedingung
angibt.
4. System (8) nach Anspruch 3, ferner gekennzeichnet
durch: eine Einrichtung, die ausgebildet ist, an die mit dem
Ausgang (23) zusammenhängende Nachbar-Verbindung Daten zu
liefern, welche die erste Randbedingung der großen
Datenanordnung angeben; und eine
Speicheradressensteuereinrichtung (28) zur Ausgabe von
Zeilenadressen an-die Anordnung (13) von n
Hauptspeichereinrichtungen und die Nebenspeichereinrichtung
(21), um anzugeben, auf welche Zeile innerhalb jeder
Hauptspeichereinrichtung und der Nebenspeichereinrichtung
gleichzeitig zugegriffen werden soll, wobei die
Steuereinrichtung (28) ausgebildet ist, an die
Nebenspeichereinrichtung Zeilenadressen auszugeben, die
gegenüber den an die Hauptspeichereinrichtung ausgegebenen
Zeilenadressen um einen der Zeilenanzahl in den
Unteranordnungen entsprechenden Betrag versetzt sind.
5. System nach Anspruch 1, bei dem die große
Datenanordnung H Zeilen und wenigstens 3n Spalten aufweist,
wobei das System parallele Verarbeitungsvorgänge an Daten der
großen Datenanordnung durchführt, indem es letztere in
wenigstens drei Unteranordnungen von jeweils H Zeilen und n
Spalten unterteilt, und die Anordnung von n
Speichereinrichtungen eine zum Speichern der wenigstens drei
Unteranordnungen ausreichende Zeilenzahl besitzt, und wobei das
System ferner folgendes Merkmal aufweist: eine zweite
Nebenspeichereinrichtung (25), die mit der n-ten
Hauptspeichereinrichtung (13n) verbunden ist, um dieselben
Daten wie die n-te Hauptspeichereinrichtung zu speichern, und
einen Ausgang (27) aufweist, der eine Nachbar-Verbindung
zwischen sich selbst und dem ersten Verarbeitungselement (11a)
bereitstellt, wobei der Ausgang der zweiten
Nebenspeichereinrichtung in Reaktion auf ein von ihr
empfangenes Steuersignal (33) in einen vorgegebenen Zustand
schaltbar ist, der eine zweite mit der großen Datenanordnung
zusammenhängende Randbedingung angibt.
6. Verarbeitungssystem (8) nach einem der Ansprüche 1 bis
5, ferner dadurch gekennzeichnet, daß die Anordnung (10) von n
einzelnen Verarbeitungseinheiten (10a-10n) eine Anordnung (11)
von Nachbar-Verarbeitungselementen (11a-11n) enthält, die durch
eine Mehrzahl von Verbindungen zum nächsten Nachbarn sowie
durch eine Anordnung (12) von n Daten-Ein/Ausgangsorganen
(12a-12n) miteinander verbunden sind, um Daten in die Anordnung
von Verarbeitungseinheiten einzugeben und aus ihr auszugeben,
und daß die einzelnen Verarbeitungseinheiten jeweils eines der
Nachbar-Verarbeitungselemente, eines der
Daten-Ein/Ausgangsorgane und eine der Speichereinrichtungen
aufweisen.
7. System nach Anspruch 6, ferner dadurch gekennzeichnet,
daß die Anordnung von Verarbeitungseinheiten eine Mehrzahl (16)
von Datenleitungen (16a-16n) aufweist, welche die
Nachbar-Verarbeitungselemente jeweils mit ihren zugehörigen
Daten-Ein/Ausgangsorganen und Speichereinrichtungen verbinden,
und daß die Datenleitungen jeweils Zweirichtungs-Datenleitungen
sind und die Verarbeitungseinheiten jeweils mindestens eine
solche Datenleitung aufweisen.
8. System nach Anspruch 7, ferner dadurch gekennzeichnet,
daß die Speichereinrichtungen (13a-13n) jeweils ein Bit breit
sind; die Daten-Ein/Ausgangsorgane (12a-12n) jeweils ein Bit
breite mehrstufige Schieberegister sind; die
Nachbar-Verarbeitungselemente (11a-11n) jeweils einen Satz
(60) von Nachbar-Eingangsleitungen aufweisen, welche die
Verbindungen zum nächsten Nachbarn darstellen, wobei jeder Satz
eine erste und eine zweite Leitung umfaßt, um Daten von zwei
nächst benachbarten Verarbeitungselementen zu empfangen; die
Verarbeitungselemente jeweils eine
Nachbar-Transformationseinheit (64a-64n) aufweisen, die
ausgebildet ist, eine Transformation an mehreren
Eingangsdatenbits durchzuführen, die auf dem ihrem
Verarbeitungselement zugeordneten Satz von
Nachbar-Eingangsleitungen empfangen werden, um ein
Ausgangssignal zu erzeugen; die Verarbeitungselemente (11)
jeweils ein örtliches mehrstufiges Schieberegister (61, 62, 63)
aufweisen, das mit einer ersten, einer zweiten und einer
dritten Stufe versehen ist, wobei jede Stufe einen Eingang und
einen Ausgang besitzt, der Ausgang der ersten Stufe (61) mit
dem Eingang der zweiten Stufe verbunden ist und der Ausgang der
zweiten Stufe mit dem Eingang der dritten Stufe (62) verbunden
ist; und daß der mit jedem Nachbar-Verarbeitungselement (11)
zusammenhängende Satz (60) von Nachbar-Eingangsleitungen ferner
eine dritte, eine vierte und eine fünfte Leitung enthält, die
mit dem Ausgang der ersten, zweiten bzw. dritten Stufe des
örtlichen mehrstufigen Schieberegisters verbunden sind, das
Teil der zugehörigen Verarbeitungseinheit ist.
9. System nach Anspruch 8, ferner dadurch gekennzeichnet,
daß der Ausgang jeder Nachbar-Transformationseinheit jeweils
mit dem Eingang der ersten Stufe (61) des örtlichen
mehrstufigen Schieberegisters (12) des zugehörigen
Verarbeitungselements verbunden ist; die mit jedem
Nachbar-Verarbeitungselement verbundene Zweirichtungsleitung an
den Eingang der ersten Stufe angeschlossen ist; und ein
Befehlssteuerorgan (35) zum Ausgeben von Befehlen an die
Anordnung (10) von Verarbeitungseinheiten vorhanden ist, das
mit jeder Nachbar-Transformationseinheit verbundene
Datenverkehrsleitungen (36) aufweist und über diese an jede
Nachbar-Transformationseinheit dieselbe Folge von Befehlen
liefert.
10. System nach Anspruch 6, ferner dadurch gekennzeichnet,
daß die Anordnung (12) von Daten-Ein/Ausgangsorganen (12a-12n)
durch eine Mehrzahl (17) von Verbindungen (17a-17n) zum
nächsten Nachbarn jeweils zwischen den
Daten-Ein/Ausgangsorganen untereinander verbunden sind; die
Daten-Ein/Ausgangsorgane jeweils ein mehrstufiges
Schieberegister (61, 62, 63) mit einem seriellen Eingang (65)
und einem seriellen Ausgang sowie mit parallelen Eingängen und
parallelen Ausgängen (17), die einen parallelen Zugang zu den
einzelnen Stufen des mehrstufigen Schieberegisters
bereitstellen, enthalten; die Anordnung von
Daten-Ein/Ausgangsorganen eine Einrichtung (20, 23, 30)
enthält, die ausgebildet ist, durch die zugeordneten
mehrstufigen Schieberegister sequentiell in einer Richtung
einen Strom von Datenwörtern zu schieben, die eine Mehrzahl von
Bits aufweisen, deren Anzahl gleich ist der Anzahl von Stufen
in jedem Schieberegister, wodurch jedes Schieberegister mit
einem unterschiedlichen Datenwort aus dem Datenstrom geladen
werden kann und ein unterschiedliches Datenwort in den
Datenstrom ausgeben kann; und daß die Einrichtung zum
sequentiellen Verschieben eine Ein/Ausgabe-Steuereinheit (23)
aufweist, die ausgebildet ist, Steuersignale auszugeben, die
das sequentielle Verschieben von Datenwörtern durch die
mehrstufigen Schieberegister steuern.
11. Verfahren zum Speichern von Daten für deren
nachfolgende Verarbeitung durch ein Verarbeitungssystem (8) zum
parallelen Ausführen von Verarbeitungsvorgängen an Daten einer
großen, wenigstens eine Mehrzahl von Zeilen und 2n Spalten
aufweisenden Datenanordnung (40), wobei n eine ganze Zahl
größer als 1 ist und das Verfahren folgende kennzeichnende
Schritte aufweist:
(a) es wird - zumindest als Teil des Verarbeitungssystems
- eine Anordnung (10) von n Verarbeitungseinheiten (10a-10n)
bereitgestellt, die jeweils eine örtliche Speichereinrichtung
(13a-13n) aufweisen, die ausgebildet ist, mehrere,
unterschiedlichen Zeilen der großen Datenanordnung zugeordnete
Dateneinheiten zu speichern; ferner werden eine erste, mit der
ersten örtlichen Speichereinrichtung (13a) verbundene
Nebenspeichereinrichtung (21) zum Speichern mehrerer
Dateneinheiten und eine zweite, mit der n-ten örtlichen
Speichereinrichtung (13n) verbundene Nebenspeichereinrichtung
(25) zum Speichern mehrerer Dateneinheiten bereitgestellt;
(b) eine erste Zeile von n Dateneinheiten aus n Spalten
der großen Datenanordnung wird gleichzeitig in die n örtlichen
Speichereinrichtungen übertragen, dergestalt daß jede
Dateneinheit in eine unterschiedliche örtliche
Speichereinrichtung übertragen wird; und
(c) gleichzeitig mit Schritt (b) werden die gleiche
Dateneinheit, die gerade in die erste örtliche
Speichereinrichtung (13a) übertragen wird, in die erste
Nebenspeichereinrichtung (21) und die gleiche Dateneinheit, die
gerade in die n-te örtliche Speichereinrichtung (13n)
übertragen wird, in die zweite Nebenspeichereinrichtung (25)
übertragen.
12. Verfahren nach Anspruch 11, bei dem die n
Dateneinheiten jeweils ein Bit sind und die n
Spalten, aus
denen die Daten entnommen werden, eine erste Gruppe von n
zusammenhängenden Spalten darstellen, wobei das Verfahren
ferner folgende kennzeichnende Schritte umfaßt:
(d) eine zweite Zeile von n Dateneinheiten aus n Spalten
der großen Datenanordnung wird gleichzeitig in die n örtlichen
Speichereinrichtungen übertragen, dergestalt daß jede
Dateneinheit in eine unterschiedliche örtliche
Speichereinrichtung übertragen wird; und
(e) gleichzeitig mit Schritt (d) werden die gleiche
Dateneinheit, die gerade in die erste örtliche
Speichereinrichtung (13a) übertragen wird, in die erste
Nebenspeichereinrichtung (21) und die gleiche Dateneinheit, die
gerade in die n-te örtliche Speichereinrichtung (13n)
übertragen wird, in die zweite Nebenspeichereinrichtung (25)
übertragen.
13. Verfahren nach Anspruch 12, ferner gekennzeichnet
durch folgende Schritte:
(f) eine erste Zeile von n Dateneinheiten aus einer
zweiten Gruppe von n zusammenhängenden Spalten der großen
Datenanordnung (40) wird gleichzeitig in die n örtlichen
Speichereinrichtungen (13a-13n) übertragen, dergestalt daß jede
Dateneinheit in eine unterschiedliche örtliche
Speichereinrichtung übertragen wird;
(g) gleichzeitig mit Schritt (f) werden die gleiche
Dateneinheit, die gerade in die erste örtliche
Speichereinrichtung (13a) übertragen wird, in die erste
Nebenspeichereinrichtung (21) und die gleiche Dateneinheit, die
gerade in die n-te örtliche Speichereinrichtung (13n)
übertragen wird, in die zweite Nebenspeichereinrichtung (25)
übertragen;
(h) eine zweite Zeile von n Dateneinheiten aus der zweiten
Gruppe von n Spalten der großen Datenanordnung wird
gleichzeitig in die n örtlichen Speichereinrichtungen
übertragen, dergestalt daß jede Dateneinheit in eine
unterschiedliche örtliche Speichereinrichtung übertragen wird;
und
(i) gleichzeitig mit Schritt (h) werden die gleiche
Dateneinheit, die gerade in die erste örtliche
Speichereinrichtung (13a) übertragen wird, in die erste
Nebenspeichereinrichtung (21) und die gleiche Dateneinheit, die
gerade in die n-te örtliche Speichereinrichtung (13n)
übertragen wird, in die zweite Nebenspeichereinrichtung (25)
übertragen.
14. Verfahren nach Anspruch 11, sowohl zum Lesen als auch
zum Speichern von Daten, ferner gekennzeichnet durch folgenden
Schritt:
(d) Daten aus der örtlichen Speichereinrichtung (13) und
aus wenigstens einer der Nebenspeichereinrichtungen (21) werden
gleichzeitig gelesen, und zwar aus einer Zeile (70; 72; 75) der
n örtlichen Speichereinrichtungen und einer anderen Zeile (71;
73; 76) der wenigstens einen Nebenspeichereinrichtung (21).
15. Verfahren nach Anspruch 11, bei dem die große
Datenanordnung (40) wenigstens H Zeilen besitzt und wobei: die
örtlichen Speichereinrichtungen (13a-13n) und die
Nebenspeichereinrichtungen (21; 25) Daten jeweils in wenigstens
2H Zeilen·1 Spalte speichern können; die Daten, die in den
ersten H Zeilen·n Spalten der örtlichen Speichereinrichtung
gespeichert sind, aus einer ersten Unteranordnung (41) von H
Zeilen und einem ersten Satz von n zusammenhängenden Spalten
der größeren Datenanordnung stammen und die zweiten H Zeilen x
n zusammenhängenden Spalten aus einer zweiten Unteranordnung
(42) derselben H Zeilen und einem zweiten Satz von n
zusammenhängenden Spalten der größeren Datenanordnung
stammen; und die Breite der Spalten der örtlichen
Speichereinrichtung und der Nebenspeichereinrichtungen jeweils
ein Bit beträgt und das Verfahren ferner durch folgenden
Schritt gekennzeichnet ist:
(d) Daten aus der örtlichen Speichereinrichtung (13) und
aus wenigstens einer der Nebenspeichereinrichtungen (21) werden
gleichzeitig gelesen, und zwar aus einer Zeile (70; 72; 75) der
n örtlichen Speichereinrichtungen und einer anderen Zeile (71;
73; 76) der wenigstens einen Nebenspeichereinrichtung (21).
16. Verfahren nach Anspruch 11, sowohl zum Lesen als auch
zum Speichern von Daten, wobei die große Datenanordnung (40)
wenigstens H Zeilen besitzt und wobei ferner: die örtlichen
Speichereinrichtungen (13a-13n) und die
Nebenspeichereinrichtungen (21; 25) Daten jeweils in wenigstens
3H Zeilen·1 Spalte speichern können; die Zeilen (80, 81, 82)
in der örtlichen Speichereinrichtung (13) und in den
Nebenspeichereinrichtungen entsprechende Zeilenadressen haben;
die Daten, die in den ersten H Zeilen·n Spalten der örtlichen
Speichereinrichtung gespeichert sind, aus einer ersten
Unteranordnung (41,) von H Zeilen und einem ersten Satz von n
zusammenhängenden Spalten der größeren Datenanordnung stammen,
die Daten, die in den zweiten H Zeilen·n zusammenhängenden
Spalten der örtlichen Speichereinrichtung gespeichert sind, aus
einer zweiten Unteranordnung (42) derselben H Zeilen und einem
zweiten Satz von n zusammenhängenden Spalten der größeren
Datenanordnung stammen, und die Daten, die in den dritten H
Zeilen·n zusammenhängenden Spalten der örtlichen
Speichereinrichtung gespeichert sind, aus einer dritten
Unteranordnung (43) derselben H Zeilen und einem dritten Satz
von n zusammenhängenden Spalten der größeren Datenanordnung
stammen, wobei das Verfahren ferner durch folgenden Schritt
gekennzeichnet ist:
(d) Daten aus der örtlichen Speichereinrichtung und der
ersten und der zweiten Nebenspeichereinrichtung werden
gleichzeitig gelesen, und zwar werden die Daten aus einer Zeile
(72) der n örtlichen Speichereinrichtungen, einer anderen Zeile
(73) der ersten Nebenspeichereinrichtung und wiederum einer
anderen Zeile (74) der zweiten Nebenspeichereinrichtung
gelesen, wobei die Zeilenadressen der Zeilen (73, 74), die
gleichzeitig aus der ersten und der zweiten
Nebenspeichereinrichtung gelesen werden, in entgegengesetzten
Richtungen jeweils um H Zeilen gegenüber der Zeilenadresse der
gerade gelesenen einen Zeile (72) der n örtlichen
Speichereinrichtungen versetzt sind.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US5718287A | 1987-06-01 | 1987-06-01 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3851005D1 DE3851005D1 (de) | 1994-09-15 |
DE3851005T2 true DE3851005T2 (de) | 1995-04-20 |
Family
ID=22009011
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19883851005 Expired - Fee Related DE3851005T2 (de) | 1987-06-01 | 1988-05-20 | Paralleles Nachbarverarbeitungssystem und -Verfahren. |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP0293701B1 (de) |
JP (1) | JPS63316168A (de) |
DE (1) | DE3851005T2 (de) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0463721A3 (en) * | 1990-04-30 | 1993-06-16 | Gennum Corporation | Digital signal processing device |
US5325500A (en) * | 1990-12-14 | 1994-06-28 | Xerox Corporation | Parallel processing units on a substrate, each including a column of memory |
EP0800133A1 (de) * | 1992-01-24 | 1997-10-08 | Digital Equipment Corporation | Paritäts- und Hochgeschwindigkeitsnormierungskreis für ein massivparalleles Verarbeitungssystem |
DE69317602T2 (de) * | 1992-01-24 | 1998-10-01 | Digital Equipment Corp | Paritäts-und hochgeschwindigkeitsnormierungskreis für ein massivparalleles verarbeitungssystem |
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 |
US5655131A (en) * | 1992-12-18 | 1997-08-05 | Xerox Corporation | SIMD architecture for connection to host processor's bus |
US5450603A (en) * | 1992-12-18 | 1995-09-12 | Xerox Corporation | SIMD architecture with transfer register or value source circuitry connected to bus |
US5428804A (en) * | 1992-12-18 | 1995-06-27 | Xerox Corporation | Edge crossing circuitry for SIMD architecture |
US5557734A (en) * | 1994-06-17 | 1996-09-17 | Applied Intelligent Systems, Inc. | Cache burst architecture for parallel processing, such as for image processing |
JP4537420B2 (ja) * | 2007-04-02 | 2010-09-01 | 株式会社リコー | Simd型マイクロプロセッサ |
US9749548B2 (en) | 2015-01-22 | 2017-08-29 | Google Inc. | Virtual linebuffers for image signal processors |
US9772852B2 (en) | 2015-04-23 | 2017-09-26 | Google Inc. | Energy efficient processor core architecture for image processor |
US10291813B2 (en) | 2015-04-23 | 2019-05-14 | Google Llc | Sheet generator for image processor |
US9756268B2 (en) | 2015-04-23 | 2017-09-05 | Google Inc. | Line buffer unit for image processor |
US9965824B2 (en) | 2015-04-23 | 2018-05-08 | Google Llc | Architecture for high performance, power efficient, programmable image processing |
US9785423B2 (en) | 2015-04-23 | 2017-10-10 | Google Inc. | Compiler for translating between a virtual image processor instruction set architecture (ISA) and target hardware having a two-dimensional shift array structure |
US10095479B2 (en) | 2015-04-23 | 2018-10-09 | Google Llc | Virtual image processor instruction set architecture (ISA) and memory model and exemplary target hardware having a two-dimensional shift array structure |
US9769356B2 (en) | 2015-04-23 | 2017-09-19 | Google Inc. | Two dimensional shift array for image processor |
US10313641B2 (en) | 2015-12-04 | 2019-06-04 | Google Llc | Shift register with reduced wiring complexity |
US9830150B2 (en) | 2015-12-04 | 2017-11-28 | Google Llc | Multi-functional execution lane for image processor |
US10204396B2 (en) | 2016-02-26 | 2019-02-12 | Google Llc | Compiler managed memory for image processor |
US10387988B2 (en) | 2016-02-26 | 2019-08-20 | Google Llc | Compiler techniques for mapping program code to a high performance, power efficient, programmable image processing hardware platform |
US10380969B2 (en) | 2016-02-28 | 2019-08-13 | Google Llc | Macro I/O unit for image processor |
US20180007302A1 (en) | 2016-07-01 | 2018-01-04 | Google Inc. | Block Operations For An Image Processor Having A Two-Dimensional Execution Lane Array and A Two-Dimensional Shift Register |
US20180005059A1 (en) | 2016-07-01 | 2018-01-04 | Google Inc. | Statistics Operations On Two Dimensional Image Processor |
US10546211B2 (en) | 2016-07-01 | 2020-01-28 | Google Llc | Convolutional neural network on programmable two dimensional image processor |
US20180005346A1 (en) | 2016-07-01 | 2018-01-04 | Google Inc. | Core Processes For Block Operations On An Image Processor Having A Two-Dimensional Execution Lane Array and A Two-Dimensional Shift Register |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2644718B2 (ja) * | 1983-12-28 | 1997-08-25 | 株式会社日立製作所 | コンピュータシステム |
-
1988
- 1988-05-20 DE DE19883851005 patent/DE3851005T2/de not_active Expired - Fee Related
- 1988-05-20 EP EP19880108176 patent/EP0293701B1/de not_active Expired - Lifetime
- 1988-06-01 JP JP13538788A patent/JPS63316168A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
EP0293701A3 (en) | 1990-05-30 |
EP0293701B1 (de) | 1994-08-10 |
DE3851005D1 (de) | 1994-09-15 |
JPS63316168A (ja) | 1988-12-23 |
EP0293701A2 (de) | 1988-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3851005T2 (de) | Paralleles Nachbarverarbeitungssystem und -Verfahren. | |
DE3852909T2 (de) | Lineare Kette von Parallelprozessoren und Benutzungsverfahren davon. | |
DE3804938C2 (de) | Bildverarbeitungseinrichtung | |
DE3689926T2 (de) | Einrichtung zur sequenziellen Bildtransformation. | |
DE69522380T2 (de) | Parallel-Verarbeitungsarchitektur für Bildverarbeitung | |
DE2819571C2 (de) | ||
DE3407983C2 (de) | Mehrprozessorrechnersystem zum Erzeugen von Bildpunktinformationen aus in einer hierarchischen Datenstruktur definierten Objektelementen | |
DE60132585T2 (de) | Vorrichtung und verfahren zum ausgeben der gruppierung von befehlen in einem vliw-prozessor | |
DE3784050T2 (de) | Ein paralleler datenprozessor. | |
DE2625973C3 (de) | Verfahren und Anordnung zur redundanzvermindernden Transformation von Bildern | |
DE68926783T2 (de) | Paralleler datenprozessor | |
DE69107506T2 (de) | Verfahren und Vorrichtung zur Gleichzeitigkeitssteuerung von gemeinsamen Datenaktualisierungen und Abfragen. | |
DE3686436T2 (de) | Speichersystem mit hoher leistung. | |
DE69225839T2 (de) | Filtersystem und Verfahren zur Bildverarbeitung mit sehr hoher Geschwindigkeit | |
DE3854568T2 (de) | SIMD-Feldrechner. | |
DE3852185T2 (de) | Bildspeicher für Raster-Video-Anzeige. | |
DE3631333C2 (de) | ||
DE69028382T2 (de) | Serielle multiplexierte Registerarchitektur für VRAM | |
DE112005003265T5 (de) | Registerdateibereiche für ein Verarbeitungssystem | |
DE68926043T2 (de) | Mehrprozessor-Computersystem | |
DE68919781T2 (de) | Videospeicheranordnung. | |
DE69609475T2 (de) | Zweidimensionaler Assoziativprozessor und Datenübertragungsverfahren | |
DE3533800C1 (de) | Verfahren zum Betreiben eines hochintegrierten Wellenfront-Feldrechners sowie entsprechender Wellenfront-Feldrechner | |
DE69314302T2 (de) | Festkörper-Bildsensor und Ansteuerverfahren dazu | |
DE3632639C2 (de) | Einrichtung zum Hochgeschwindigkeitsverarbeiten von Bilddaten durch Faltung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |