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
Application number
DE19883851005
Other languages
English (en)
Other versions
DE3851005D1 (de
Inventor
Stephen S Wilson
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.)
Applied Intelligent Systems Inc
Original Assignee
Applied Intelligent Systems Inc
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 Applied Intelligent Systems Inc filed Critical Applied Intelligent Systems Inc
Publication of DE3851005D1 publication Critical patent/DE3851005D1/de
Application granted granted Critical
Publication of DE3851005T2 publication Critical patent/DE3851005T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators
    • 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/8015One dimensional arrays, e.g. rings, linear arrays, buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor 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.
  • DATENEINGABE
  • 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.
  • LESEN-ÄNDERN-SCHREIBEN-ZYKLUS
  • 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.
  • START-LESEVORGÄNGE
  • 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.
  • LESE-TEILZYKLUS
  • 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.
  • ÄNDERN-TEILZYKLUS
  • 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.
  • SCHREIB-TEILZYKLUS
  • 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.
  • BAND-ZYKLEN
  • 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.
  • DATENAUSGABE
  • 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.
  • Schritt 1
  • 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.
  • Schritt 2
  • 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.
DE19883851005 1987-06-01 1988-05-20 Paralleles Nachbarverarbeitungssystem und -Verfahren. Expired - Fee Related DE3851005T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2644718B2 (ja) * 1983-12-28 1997-08-25 株式会社日立製作所 コンピュータシステム

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