DE19504089A1 - Pipelined SIMD-Systolic Array Prozessor und dessen Arbeitsverfahren - Google Patents
Pipelined SIMD-Systolic Array Prozessor und dessen ArbeitsverfahrenInfo
- Publication number
- DE19504089A1 DE19504089A1 DE19504089A DE19504089A DE19504089A1 DE 19504089 A1 DE19504089 A1 DE 19504089A1 DE 19504089 A DE19504089 A DE 19504089A DE 19504089 A DE19504089 A DE 19504089A DE 19504089 A1 DE19504089 A1 DE 19504089A1
- Authority
- DE
- Germany
- Prior art keywords
- output
- processor
- input
- data
- register
- 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.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Complex Calculations (AREA)
- Image Processing (AREA)
Description
Die Erfindung bezieht sich auf einen Pipelined SIMD-Systolic Array
Prozessor und seine Arbeitsverfahren.
Eine Aufgabe der vorliegenden Erfindung ist es, einen verbesserten Weg für
eine Daten-Ein/Ausgabe, eine Datenverschiebung und eine Datenübertragung
anzugeben, so daß die Datenverarbeitung schneller und effektiver durchgeführt
werden kann.
Diese Aufgaben werden durch die in den Ansprüchen angegebene
Erfindung gelöst. In Unteransprüchen sind weitergehende Ausgestaltungen der
Erfindung angegeben.
Die vorliegende Erfindung verwendet einen Weg, der sowohl die Verteilung
(broadcasting) als auch die systolischen Strukturen zur Verbindung einer Vielzahl
von Pipelined Prozessor-Elementen kombiniert. Die vorliegende Erfindung
verbessert das Design einer Array Prozessor Architektur, die einen mehrfachen
Datenstrom mit einem einzigen Steuerstrom verarbeiten kann und seine
Rechenmethoden. Darüber hinaus kann die vorliegende Erfindung auf das Design
von Parallelcomputern, Bildprozessoren und digitalen Signalprozessoren
angewendet werden. Weiterhin kann die Erfindung die Datenübertragung und
-verschiebung effektiver durchführen und kann auch auf einem einzigen VLSI-Chip
implementiert werden. Die Erfindung weist daher eine hohe Praktikabilität
auf.
Durch effiziente Manipulation der Daten Ein/Ausgabe kann die vorliegende
Erfindung Datenleitungen und die Anzahl der Anschlüsse eines VLSI-Chips
einsparen. Die Erfindung vermeidet die Verwendung komplexer Steuerungen und
benutzt den Speicher auf effiziente Weise. Daher kann die vorliegende Erfindung
auf einem einzelnen VLSI-Chip implementiert werden.
Ein weiterer Vorteil der vorliegenden Erfindung ist es, daß sie als
eindimensionaler oder zweidimensionaler Array-Prozessor ausgeführt werden
kann.
Die Erfindung kann auf einem VLSI-Chip implementiert werden und kann
direkt in Computern oder Fernsehgeräten installiert werden, um verschiedene
Bildverarbeitungsfunktionen durchzuführen. Dies bedeutet, daß die Erfindung
praktisch und bequem ist und eine kleine Größe aufweist.
Um die genannten Vorteile zu erreichen, enthält der Gegenstand der
Erfindung Register, Multiplexer und eine Reihe von Verarbeitungselementen, die
in einer Array-Prozessor-Architektur angeordnet sind. An den vorderen und
rückwärtigen Ein/Ausgabeanschlüssen ist jedes Prozessorelement außerdem mit
Registern und Multiplexen verbunden. Durch Kaskadierung dieser Register und
Multiplexer kann der Gegenstand der Erfindung die Eingangsdaten durch
Verschiebung zu jedem Prozessorelement updaten. Daher sind keine
wiederverwendbaren Daten notwendig, die in jedem Taktzyklus aus einem
Multiportspeicher einzulesen wären. Dies verringert die Datenladezeit und die
Zahl von Datenleitungen und macht es leichter, den Gegenstand der
vorliegenden Erfindung auf einem VLSI-Chip zu implementieren.
Die Erfindung wird nachstehend anhand eines Ausführungsbespiels näher
erläutert.
Fig. 1 ist ein schematisches Blockdiagramm für eine Pipelined SIMD-Systrolic
Array-Prozessor-Architektur.
Fig. 2 ist ein schematisches Schaltungsdiagramm für die Prozessorelemente.
Fig. 3 ist eine Ein/Ausgabe-Wahrheitstabelle über das die Betriebsarten
steuernde ROM der Prozessorelemente.
Fig. 4-9 zeigen erste bis sechste Betriebsarten der Prozessorelemente.
Fig. 10 ist ein schematisches Schaltungsdiagramm zur Verarbeitung einer
Matrix-Multiplikationsberechnung.
Fig. 11 ist ein auf Taktzyklen basierendes Daten- und Steuersignaldiagramm
zur Ladung konstanter Daten in die Prozessorelemente während der
Verarbeitung einer Matrix-Multiplikationsberechnung.
Fig. 12a, b sind auf Taktzyklen basierende Daten- und Steuersignaldiagramme
zur Verarbeitung einer Matrixberechnung.
Fig. 13 ist ein schematisches Schaltungsdiagramm zur Verarbeitung einer
Filterberechnung mit endlichen Impulsantworten.
Fig. 14 ist ein auf Taktzyklen basierendes Daten- und Steuersignaldiagramm
zur Verarbeitung einer Filterberechnung mit endlichen
Impulsantworten.
Fig. 15 ist ein schematisches Schaltungsdiagramm zur Verarbeitung einer
Filterberechnung mit endlichen Impulsantworten.
Fig. 16 ist ein auf Taktzyklen basierdes Daten- und Steuersignaldiagramm zur
Verarbeitung einer Filterberechnung mit endlichen Impulsantworten.
Fig. 17 ist ein schematisches Schaltungsdiagramm zur Verarbeitung einer
Kantenfeststellung und Ausgleichsberechnung.
Fig. 18a, b und 19 zeigen auf Taktzyklen basierende Daten- und Steuersignaldiagramme
zur Verarbeitung einer Kantenbestimmung und Ausgleichsberechnung.
Fig. 20 ist ein schematisches Schaltungsdiagramm zur Verarbeitung einer
zweidimensionalen diskreten Cosinustransformation.
Fig. 21 ist ein auf Taktzyklen basierendes Datensignaldiagramm zur Ladung
konstanter Daten in die Prozessorelemente während der Verarbeitung
einer zweidimensionalen diskreten Cosinustransformation.
Fig. 22, 23 repräsentieren ein auf Taktzyklen basierendes Daten- und
Steuersignaldiagramm zur Verarbeitung einer zweidimensionalen
diskreten Cosinustransformation.
Fig. 24 ist ein schematisches Schaltungsdiagramm für eine zweidimensionale
Array-Prozessor-Architektur.
Fig. 25 stellt eine Implementation einer zweidimensionalen Array-Prozessor-Architektur
dar.
Fig. 26 ist ein auf Taktzyklen basierendes Daten- und Steuersignaldiagramm
der vorliegenden Erfindung zur Ladung konstanter Daten in die
Prozessorelemente der zweidimensionalen Array-Architektur gemäß
Fig. 25 zur Verarbeitung einer zweidimensionalen diskreten
Cosinustransformation.
Fig. 27, 28 zeigen auf Taktzyklen basierende Daten- und Steuersignaldiagramme
zur Verarbeitung einer zweidimensionalen diskreten
Cosinustransformation durch die zweidimensionale Array-Architektur
gemäß Fig. 25.
Fig. 29 ist ein schematisches Schaltungsdiagramm für eine zweidimensionale
Array-Prozessor-Architektur zur Verarbeitung einer
Bildmustererkennung- und Bewegungsabschätzung.
Fig. 30 repräsentiert eine Implementation einer zweidimensionalen Array-
Prozessor-Architektur der vorliegenden Erfindung zur Verarbeitung
einer Bildelementerkennungs- und -bewegungsabschätzung.
Fig. 31a, b und 32 zeigen auf Taktzyklen basierende Daten- und Steuersignaldiagramme
zur Verarbeitung einer Bildelementerkennungs- und
-bewegungsabschätzung durch die zweidimensionale Array-Architektur
gemäß Fig. 30.
Fig. 33 zeigt, daß die Array-Prozessor-Architektur zur Bildung einer
mehrstufigen Pipelined-Architektur kaskadiert werden kann.
Fig. 34 zeigt, wie die Array-Prozessor-Architekturen kaskadiert werden
können, um eine mehrstufige Pipeline-Architektur zur Errechnung
einer 1008-Punkte diskreten Fouriertransformation zu bilden.
Fig. 35 zeigt, wie die Array-Prozessor-Architekturen der vorliegenden
Erfindung mit systolischen Architekturen kombiniert werden können.
Fig. 36 zeigt, wie die Array-Prozessor-Architekturen der vorliegenden
Erfindung zur Implementation eines Bildkompressionssystems
verwendet werden können.
Wie in Fig. 1 dargestellt ist, enthält die vorliegende Erfindung im
wesentlichen eine Zahl von Prozessorelementen PE1-PEn, die als eine Array
(Rechner)-Architektur ausgebildet sind, ein Verteilungsregister rb (broadcasting
register), Schieberegister Arrays rs11-rs1n, rs21-rs2n, ro1-ron, Multiplexer
Mu11-Mu1n, Mu21-Mu2n, Mb, MO1-MOn, MOb, einen Multiportspeicher M
und eine Steuereinheit C. An den Eingängen sind die Prozessorelemente PE1-PEn
mit den Registern rs11-rs1n, rs21-rs2n, rb durch die Multiplexer Mu11-Mu1n,
Mu21-Mu2n, Mb verbunden.
An den Ausgängen sind die Prozessorelemente PE1-PEn mir den
Registern ro1-ron über die Multiplexer MO1-MOn, MOb verbunden. Der
Multiportspeicher M ist außerdem mit den Registern rs21, rs11, rb, ro1 verbunden.
Alle diese Komponenten der vorliegenden Erfindung werden durch das
Steuereinheit C gesteuert. Die Steuersignale, die von der Steuereinheit C
gesendet werden, sind die folgenden:
Steuersignal 1: das Verschiebe/Ladesteuersignal für das Schieberegister
Array rs21-rs2n.
Steuersignal 2: das Löschsteuersignal für das Schieberegister Array rs21-rs2n.
Steuersignal 3: das Verschiebe/Ladesteuersignal für das Schieberegister Array
rs11-rs1n.
Steuersignal 4: das Löschsteuersignal für das Schieberegister Array rs11-rs1n.
Steuersignal 5: das Datenauswahlsteuersignal für die Multiplexer Mu11-Mu1n.
Steuersignal 6: das Datenauswahlsteuersignal für die Multiplexer Mu21-Mu2n.
Steuersignal 7: das Datenauswahlsteuersignal für die Multiplexer Mb zur
Auswahl der Verteilungsdaten.
Steuersignal 8: das Ladesteuersignal für das Verteilungsregister rb
(broadcasting register).
Steuersignal 9: die Funktionssteuersignale für die Prozessorelemente PE1-PEn.
Steuersignal 10: das Resetsteuersignal für die Prozessorelemente PE1-PEn.
Steuersignal 11: das Verschiebe/Ladesteuersignal für das Schieberegister Array
ro1-ron.
Steuersignal 12: das Datenauswahlsteuersignal für die Multiplexer MO1-MOn.
Steuersignal 13: das Datenauswahlsteuersignal für die Multiplexer MOb.
Steuersignal 14: Steuersignale für den Multiportspeicher, der Adressen,
Schreiben/Lesen, Enable, usw. enthält.
Daten- und
Steuersignal 15: Daten- und Steuersignale von einem externen Prozessor zum
Multiportspeicher.
Datensignal 16: Datensignale zu anderen externen Funktionseinheiten.
Steuersignal 17: Steuersignale zu anderen externen Funktionseinheiten.
Gemäß den Datenverarbeitungsschritten der vorliegenden Erfindung werden
die Eingangsdaten zu den Prozessorelementen PE1-PEn unter Steuerung durch
die Steuersignale 1-8 zur Verarbeitung übertragen. Der Betrieb dieser
Steuersignale wird nachfolgend beschrieben:
Sofern das Steuersignal 2 logisch Eins ist, wird der Inhalt der Register rs21-rs2n
als logisch Null gelöscht.
Sofern das Steuersignal 1 logisch Eins ist, werden die Register rs2n mit dem
Inhalt der Register rs2(n-1) geladen, wobei n » 1 ist, und das Register rs21 wird
mit dem Wert von ms2 geladen, der aus dem Multiportspeicher M ausgelesen
wird.
Sofern das Steuersignal 4 logisch Eins ist, wird der Inhalt der Register rs1-rs1n
als logisch Null gelöscht.
Sofern das Steuersignal 3 logisch Eins ist, werden die Register rs1n mit dem
Wert von is(n-1) geladen, wobei n » 1 ist, und das Register rs11 mit dem Wert von
ms1 geladen, der aus dem Multiportspeicher M gelesen wird. Die Multiplexer Mu11-Mu1n werden durch das Steuersignal 5 gesteuert und die Multiplexer Mu21-Mu2n
werden durch das Steuersignal 6 gesteuert. Diese Multiplexer werden
verwendet, um isn aus rs2n, rs1n, Oin auf folgende Weise zu erzeugen.
Wenn das Steuersignal 6 logisch Null ist, ist isn gleich dem Inhalt von rs2n.
Wenn das Steuersignal 6 logisch Eins ist und das Steuersignal 5 logisch
Eins ist, ist isn gleich dem Inhalt von rs1n.
Wenn das Steuersignal 6 logisch Eins ist und das Steuersignal 5 logisch
Null ist, ist isn gleich dem Inhalt von Oin.
Zusätzlich dient das Steuersignal 8 zur Steuerung der Ladung des
Verteilungsregisters rb mit Mb, welches aus dem Multiportspeicher M ausgelesen
wird. Wenn das Steuersignal 8 logisch Eins ist, wird das Register rb mit Mb
geladen. Das Steuersignal 7 dient zur Steuerung des Multiplexers Mb, um die
Verteilungsdaten zu den Prozessorelementen PE1-PEn aus rb und Ob zu
übertragen, wobei Ob die Ausgangsdaten der Verteilung aus den
Prozessorelementen PE1-PEn sind. Wenn das Steuersignal 7 logisch Eins ist, ist
das Verteilungsdatensignal ib gleich dem Inhalt des Registers rb. Wenn das
Steuersignal 7 logisch Null ist, ist das Verteilungsdatensignal ib gleich Ob. Die
Ausgangssteuerung der vorliegenden Erfindung erfolgt durch Steuerung der
Steuersignale 11-13. Das Steuerverfahren ist ähnlich zu dem, das in Bezug auf
die Eingangssteuerung beschrieben ist. Wenn das Steuersignal 11 logisch Eins ist,
werden die Register ron, wobei n » 1 ist, mit den Daten aus dem Multiplexern
MOn geladen, und das Register rob wird mit den Daten aus MOb und MO1
geladen. Wenn sowohl die Steuersignale 12 als auch 13 logisch Eins sind, werden
die Register ron mit ro(n+1) geladen. Wenn das Steuersignal 12 logisch Null ist
und das Steuersignal 13 logisch Eins ist, werden die Register ron mit On geladen.
Wenn das Steuersignal 13 logisch Null ist, werden die Register ro1 mit Ob
geladen.
Schließlich dient das Steuersignal 14 zur Steuerung des Multiportspeichers
M, um Daten zu lesen und zu schreiben.
Wie in Fig. 2 dargestellt ist, enthält das Pipelined Prozessorelement PE der
vorliegenden Erfindung einen First-in/First-out-Speicher 100, ein Konstanten-Register
101, Multiplexe 102, 103, 108, 114, Register 106, 107, 110, Multiplizierer
104, eine Absolutdifferenzeinheit 105, Addierer 109, ein Datenregister 113, einen
Tristatepuffer 111 und einen Decoder 112. Daneben dient das Steuersignal 9 der
Steuereinheit C für die Funktionssteuerung der Prozessorelemente und kann
weiter in die folgenden Untergruppen eingeteilt werden: Fist-in/First-out-Speichersteuerung
91, Betriebsartsteuerung 92, Registerladesteuerung 93,
Addiersteuerung 94, Identifikationssteuerung 95, Konstanten-Registersteuerung
96, Datenregistersteuerung 97.
Für die Betriebsartensteuerung dient ein Nur-Lese-Speicher 921 zur
Erzeugung der Steuersignale C0-C7 aus der Betriebsartensteuerung 92.
Wie in Fig. 3 dargestellt ist, gibt es sechs Betriebsarten zum Betrieb des
Prozessorelements.
In Bezug auf Fig. 2 dienen C0, C1 zur Steuerung des Multiplexers 102. C2,
C3, C4 dienen zur Steuerung des Multiplexers 103. C5, C6 dienen zur
Steuerung des Multiplexers 108. C7 dient zur Steuerung des Multiplexers 114.
Durch Verwendung der Betriebsartensteuerung 92 kann daher das
Prozessorelement die Betriebsart wechseln. Insgesamt kann jedes
Prozessorelement durch Steuerung des internen Datenflußweges sechs
Betriebsarten aufweisen. Die Fig. 4, 5, 6, 7, 8, 9 zeigen die schematischen
Blockdiagramme für jede Betriebsart. Mit diesen Betriebsarten kann die Array-
Prozessor-Architektur der vorliegenden Erfindung verschiedene Betriebsarten
effektiver handhaben.
Bezüglich der anderen Steuersignale sind deren Funktionen wie folgt:
911: Lesesteuersignal für den First-in/First-out-Speicher 100
912: Schreibsteuersignal für den First-in/First-out-Speicher 100
913: Rücksetzsteuersignal für den First-in/First-out-Speicher 100
931: Ladesteuersignal für das Register 106
932: Ladesteuersignal für das Register 107
933: Ladesteuersignal für das Register 110
94 : Funktionssteuersignal für den Addierer 109
95 : Identifikationssteuerung für das Prozessorelement und den Eingang des Decoders 112
951: Schaltsteuerung des Tristate-Puffers 111
961: Lesesteuersignal für das Konstanten-Register 101
962: Adressen für Leseoperation des Konstanten-Registers 101
963: Schreibsteuersignal für das Konstanten-Register 101
964: Adressen für Schreibbetrieb für das Konstanten-Register 101
971: Lesesteuersignal für das Datenregister 113
972: Adressen für Lesebetrieb des Datenregisters 113
973: Schreibsteuersignal für das Datenregister 113
974: Adressen für Schreibbetrieb für das Datenregister 113.
912: Schreibsteuersignal für den First-in/First-out-Speicher 100
913: Rücksetzsteuersignal für den First-in/First-out-Speicher 100
931: Ladesteuersignal für das Register 106
932: Ladesteuersignal für das Register 107
933: Ladesteuersignal für das Register 110
94 : Funktionssteuersignal für den Addierer 109
95 : Identifikationssteuerung für das Prozessorelement und den Eingang des Decoders 112
951: Schaltsteuerung des Tristate-Puffers 111
961: Lesesteuersignal für das Konstanten-Register 101
962: Adressen für Leseoperation des Konstanten-Registers 101
963: Schreibsteuersignal für das Konstanten-Register 101
964: Adressen für Schreibbetrieb für das Konstanten-Register 101
971: Lesesteuersignal für das Datenregister 113
972: Adressen für Lesebetrieb des Datenregisters 113
973: Schreibsteuersignal für das Datenregister 113
974: Adressen für Schreibbetrieb für das Datenregister 113.
Wie in Fig. 10 gezeigt, ist die Array-Prozessor-Architektur eine
Ausführungsform der vorliegenden Erfindung zur Durchführung einer
Matrixberechnung. Zur Erläuterung sind nur zwei Prozessorelemente enthalten.
Während der Verarbeitung der Matrix-Berechnung befinden sich alle
Prozessorelemente in ihrem ersten Betriebszustand gemäß Fig. 4 durch
Steuerung des Steuergerätes C. Auch die Steuersignale 5, 6, 7, 13 befinden sich
alle auf logisch Eins. Daher befinden sich die Multiplexer Mu11-Mu1n, Mu21-Mu2n,
Mb, M0b im Datenübertragungsstatus gemäß Fig. 10. Hier wird die
folgende Matrix-Berechnung verwendet als Beispiel zur Erklärung, wie die
vorliegende Erfindung die Matrixberechnung durchführen kann.
Um die dargestellte Matrixberechnung durchführen zu können, lädt der
Gegenstand der vorliegenden Erfindung das Prozessorelement PE1 mit
Konstantdaten a00, a01, a02, a03, a20, a21, a22, a23 und das Prozessorelement
PE2 mit Konstantdaten a10, a11, a12, a13, a30, a31, a32, a33. Bezugnehmend auf
Fig. 11 werden die Konstantdaten in die Prozessorelemente über die Register rs11,
rs12 geladen und das Laden wird durch die Steuersignale 3, 963, 964 gesteuert.
Das Steuersignal 3 befindet sich immer im Zustand logisch Eins. Daher können
die Register rs11, rs12 Daten von dem Multiportspeicher M zu den
Prozessorelementen verschieben und laden. Im ersten Taktzyklus werden die
Daten a0 in das Register rs11 geladen. Im nächsten Zyklus werden die Daten a00
in das Register rs11 und die Daten a10 zum Register rs12 geführt. Wenn die Daten
a11 kommen, werden die Daten a00, a10, die nun in Registern rs11 und rs12
gespeichert sind, in die Prozessorelemente PE1 und PE2 individuell übertragen.
Zu dieser Zeit befindet sich das Schreibsteuersignal 963 für das Konstanten-Register
101 im Zustand logisch Eins. Wenn dies kontinuierlich durchgeführt wird,
wird das Prozessorelement PE1 schließlich mit Daten a00, a01, a02, a03, a20,
a21, a22, a23 geladen und das Prozessorelement PE2 mit Daten a10, a11, a12,
a13, a30, a31, a32, a33.
Bezüglich der Verarbeitung der Matrixberechnung zeigt Fig. 12 die enterne
Verarbeitung der Prozessorelemente PE1, PE2 und der Verteilungsregister rb
Zyklus auf Zyklus während der Berechnung.
Entsprechend der genannten Matrixberechnung lautet das
Berechnungsergebnis wie folgt:
Die Daten [a, i, j] wurden in die Prozessorelemente PE1, PE2 vorgeladen. Daher werden während der Verarbeitung der Matrixberechnung die Daten x00
zunächst in das Register rb vom Speicher M übertragen. Inzwischen werden die
Daten a00, a10 aus dem Konstanten-Register 101 in die Prozessorelemente PE1
und PE2 gelesen. Während des Betriebs des Multiplizieres 104 laden daher die
Prozessorelemente PE1 und PE2 das Register 106 mit a00 x00 und a10 x00
einzeln. Im nächsten Taktzyklus ist das Ergebnis des Addierers 109 von PE1, PE2
gleich a00 x00, a10 x00. Zu dieser Zeit liegt das Addierersteuersignal 94 auf
logisch Eins. Außerdem ist der Ausgang des Multipliziers 104 von PE1, PE2
gleich a01 x10 und a11 x10. Im nächsten Taktzyklus sind die Inhalte der Register
106, 110 von PE1, PE2 gleich a01 x10, a00 x00 und a11 x10, a10 x00. Wenn dies
kontinuierlich durchgeführt wird, ist der Ausgang des Addierers 109 von PE1, PE2
schließlich gleich y00, y10. Inzwischen befindet sich das Steuersignal 12 auf
logisch Null, um y00, y10 in die Register r01, r02 zu laden. In den folgenden
Taktzyklen werden während der Berechnung y20, y30, y00, y10 in den Speicher
M verschoben. Bezugnehmend auf Fig. 12 verarbeitet der Gegenstand der
vorliegenden Erfindung die Matrixberechnung auf eine Weise ähnlich zu der
beschriebenen.
Wie in Fig. 13 gezeigt, ist die Array-Prozessor-Architektur eine
Ausführungsform der vorliegenden Erfindung zur Verarbeitung von
Filterberechnungen mit endlicher Impulsantwort. Unter Steuerung des
Steuergerätes 10 laufen die Prozessorelemente in der zweiten Betriebsart gemäß
Fig. 5. Inzwischen befinden sich die Steuersignale 5, 7, 13 auf logisch Eins und
steuern die Multiplexer Mull-Mu1n, Mb, M0b. Als Beispiel zeigt Fig. 13 die
resultierende Architektur mit zwei Prozessorelementen PE1, PE2. Auch ist die
Datenverarbeitung zur Berechnung von yi : a0 xi + a1 xi-1 + a2 xi-2 + a3 xi-3
zur Erläuterung dargestellt. Gemäß yi a0 xi +al xi-1 +a2 xi-2 + a3 xi-3 sind die
Rechnungsergebnisse wie folgt:
Bezugnehmend auf Fig. 14 verwendet die vorliegende Erfindung während
der Berechnung von yi die Register rs21, rs 22, rs11, rs12 und die Multiplexer
Mu21, Mu22, die durch das Steuersignal 6 gesteuert werden, um Eingangsdaten
[xm] zu den Prozessorelementen PE1, PE2 zu übertragen. Inzwischen werden
die Konstantdaten [an] über das Register rb zu den Prozessorelementen PE1,
PE2 verteilt.
Auch die Berechnungsergebnisse yi werden zum Speicher M über die
Register r01, rb2 und die Multiplexer M01, M02 übertragen, die durch das
Steuersignal 12 gesteuert werden.
Die Übertragung und Verarbeitung der Daten wird wie folgt erklärt:
Anfänglich werden die Daten x1 aus dem Multiportspeicher M in das Register rs21 geladen. Im nächsten Taktzyklus wird das Register rs21 mit Daten x0 geladen und das Register rs22 mit Daten x1. Zu dieser Zeit befindet sich das Steuersignal 6, das die Multiplexer Mu21, Mu22 steuert, auf logisch Null. Daher weisen is1, is2, die die Eingänge der Prozessorelemente PE1, PE2 darstellen, die Werte x0, x1 auf. Auch das Register rb wird mit Daten aO geladen, so daß der Ausgang des Multiplizierers 104 a0x0 für PE1 und aOx1 für PE2 ist. Ein Taktzyklus später wechselt das Steuersignal 6 auf logisch Eins und die Eingangsdaten xn werden auf PE1, PE2 über rs11, rs12 übertragen. Wenn dies kontinuierlich fortgesetzt wird, wird der Ausgang des Addierers 109 y0 für PE1 und yl für PE2. Zu dieser Zeit wird das Steuersignal 12 auf logisch Null gesetzt.
Anfänglich werden die Daten x1 aus dem Multiportspeicher M in das Register rs21 geladen. Im nächsten Taktzyklus wird das Register rs21 mit Daten x0 geladen und das Register rs22 mit Daten x1. Zu dieser Zeit befindet sich das Steuersignal 6, das die Multiplexer Mu21, Mu22 steuert, auf logisch Null. Daher weisen is1, is2, die die Eingänge der Prozessorelemente PE1, PE2 darstellen, die Werte x0, x1 auf. Auch das Register rb wird mit Daten aO geladen, so daß der Ausgang des Multiplizierers 104 a0x0 für PE1 und aOx1 für PE2 ist. Ein Taktzyklus später wechselt das Steuersignal 6 auf logisch Eins und die Eingangsdaten xn werden auf PE1, PE2 über rs11, rs12 übertragen. Wenn dies kontinuierlich fortgesetzt wird, wird der Ausgang des Addierers 109 y0 für PE1 und yl für PE2. Zu dieser Zeit wird das Steuersignal 12 auf logisch Null gesetzt.
Ein Zyklus später werden y0, y1 in ro1, ro2 geladen. Dann wird das
Steuersignal 12 auf logisch Eins gesetzt und y0, y1 werden zum Multiportspeicher
M oder eine andere funktionelle Einheit über die Register ro1, ro2 übertragen. Auf
diese Weise werden die Berechnungsergebnisse für eine Filterung mit endlicher
Impulsantwort erzeugt.
Wie Fig. 15 zeigt, ist die Array-Prozessor-Architektur eine Ausführungsform
der vorliegenden Erfindung zur Verarbeitung für eine Filterberechnung mit
endlichen Impulsantworten. Unter Kontrolle des Steuergerätes C laufen die
Prozessorelemente in der zweite Betriebsart gemäß Fig. 5. Darüber hinaus wird
das Datensignal ob zur Verteilung von Zwischenresultaten zu den
Prozessorelementen über den Multiplexer Mb verwendet. Inzwischen werden die
Steuersignale 2, 6, 7, 12 verwendet zum Löschen der Register rs21, rs22, zur
Steuerung der Multiplexer Mu21, Mu22, zur Steuerung des Multiplexers Mb und
zur Steuerung der Multiplexer M01, M02. Fig. 15 zeigt die resultierende
Architektur mit zwei Prozessorelementen PE1, PE2. Außer der Schaltung zur
Rückführung des Signals ob ist die dargestellte Architektur in Fig. 15 die gleiche
wie in Fig. 13 für eine Filterberechnung mit endlicher Impulsantwort. Im folgenden
wie in Fig. 13 für eine Filterberechnung mit endlicher Impulsantwort. Im folgenden
wird die Datenverarbeitung zur Berechnung von yi + b1 yi-1 + b2 yi-2 +b3 yi-3
a0 xi + a1 xi-1 + a2 xi-2 + a3 xi-3 zur Erläuterung dargestellt. Das
Berechnungsergebnis ist daher wie folgt:
Bezugnehmend auf Fig. 16 ist gezeigt, daß die vorliegende Erfindung die
Prozessorelemente PE1 verwendet, um y0, y2, y4 und die Prozessorelemente
PE2, um y1, y3, y5 zu berechnen. Die Übertragung und Verarbeitung der Daten
wird wie folgt erläutert:
Anfänglich werden die Daten x1 von dem Mulitportspeicher M in das
Register rs21 geladen. Im nächsten Taktzyklus wird das Register rs21 mit den
Daten x0 geladen und die Daten x1 werden aus dem Register rs21 zum Register
rs22 übertragen. Zu dieser Zeit befindet sich das Steuersignal 6, das die
Multiplexer Mu21, Mu22 steuert, auf logisch Null. Daher weisen is1, is2 jeweils die
Werte x0, x1 auf. Inzwischen weist das Register rb einen Wert a0 auf, so daß der
Ausgang des Multipliziers 104 a0x0 für PE1 und a0x1 für PE2 ist. Im nächsten
Zyklus wechselt das Steuersignal 6 auf logisch Eins. Dann werden die Daten xn
an PE1, PE2 über rs11, rs12 übertragen. Während der Berechnung ist das
Steuersignal 2 auf logisch Eins gesetzt, wenn die Datensignale 01, 02 von PE1,
PE2 gleich a0x0 + a1x-1, a0x1+a1x0 sind, um die Register rs21, rs22 zu löschen.
In den folgenden Zyklen werden die Daten -bn an die Prozessorelemente PE1,
PE2 durch Kooperation der Register rs21, rs22, rs11, rs12 und der Multiplexer
Mu21, Mu22 übertragen. Auf der anderen Seite werden ym an PE1, PE2 durch
Verteilung übertragen. Nachdem y0 berechnet ist, wird es an PE1, PE2 zur
Berechnung von y1 übertragen. Dann werden y0, y1 an die Register ro1, ro2
durch Setzen des Steuersignals 12 auf logisch Null übertragen und in den
folgenden Taktzyklen an den Multiportspeicher M verschoben. Wenn dies
kontinuierlich durchgeführt wird, werden Berechnungsergebnisse einer Filterung
für endliche Impulsantworten erzeugt.
Die in Fig. 17 dargestellte Array-Prozessor-Architektur ist eine
Ausführungsform der vorliegenden Erfindung zur Berechnung einer
Kantendetektion und zum Kantenausgleich. Unter Steuerung des Steuergerätes C
laufen die Prozessorelemente in der zweiten Betriebsart gemäß Fig. 5. Außerdem
wird der First-in/First-out-Speicher 100 als Datenpuffer verwendet. Fig. 17 zeigt
die resultierende Architektur mit vier Prozessorelemente PE1, PE2, PE3, PE4. Die
folgende Berechnung wird verwendet für die Erläuterung:
Während der Datenverarbeitung wird das Prozessorelement PE1 zur
Berechnung von y30, y31 verwendet, PE2 dient zur Berechnung von y20, y21,
PE3 zur Berechnung von y10, y11, PE4 zur Berechnung von y00, y01. Unter
Bezugnahme auf Fig. 18 und 19 kann die Datenübertragung und -verarbeitung
wie folgt erläutert werden:
Anfänglich werden die Daten x30, x20, x10, x00 in die Register rs21, rs22,
rs23, rs24 vom Multiportspeicher durch Verschieben geladen. Zu dieser Zeit wird
das Steuersignal 6, das die Multiplexer Mu21, Mu22, Mu23, Mu24 steuert, auf
logisch Null gesetzt. Daher weisen is1, is2, is3, is4 die Werte x30, x20, x10, x00
auf. Inzwischen enthält der Register rb den Wert w00, so daß der Ausgang des
Multiplizierers 104 x30w00, x20w00, x10w00, x00w00 zur Verarbeitung der
Elemente PE1, PE2, PE3, PE4 ist.
Während der folgenden Zyklen wird das Steuersignal auf logisch Eins
gesetzt. Dann werden x40, x50 über das Register rs11 geschoben und die
Register rs21, rs22, rs23, rs24 dienen zum Vorladen von x01, x11, x21, x31. Wenn
dies kontinuierlich durchgeführt wird, werden y30, y20, y10, y00 durch PE1, PE2,
PE3, PE4 berechnet. Während der Berechnung von y30, y20, y10, y00 werden
außerdem die Daten x31, x32 in dem First-in/First-out-Speicher 100 von PE1
durch Steuerung des Schreibsteuersignals 912 gespeichert. Ähnlich werden die
Daten x21, x22, x11, x12, x01, x02 in dem First-in/First-out-Speicher 100 von PE1,
PE2, PE3, PE4 gespeichert. Während der Berechnung von y31, y21, y11, y01
werden auf diese Weise die Daten x31, x21, x11, x01 aus dem First-in/First-out-Speicher
100 statt aus den Register rs21, rs22, rs23, rs24 gelesen. Daher werden
nur die Daten x33, x23, x13, x03 über die Register rs21, rs22, rs23, rs24
geladen. Dies spart eine Menge von Datenladezeit, wenn y32, y22, y12, y02,
y33, y23, y13, y03 usw. ebenfalls berechnet werden. Während der Berechnung
von yÿ werden die konstanten Daten wkl, wobei 0 « k, l « 3 zu den
Prozessorelementen über das Register rb durch Verteilung gesendet. Außerdem
wird yÿ zum Multiportspeicher M oder eine andere funktionale Einheit über die
Register ro1, ro2, ro3, ro4 und die Multiplexer MO1, MO2, MO3, MO4 unter
Steuerung durch das Steuersignal 12 verschoben.
Die in Fig. 20 dargestellte Array-Prozessor-Architektur ist eine
Ausführungsform der vorliegenden Erfindung zur Verarbeitung einer
zweidimensionalen diskreten Cosinustransformation. Unter Steuerung des
Steuergerätes C laufen die Prozessorelemente in dem ersten Betriebsmodus
gemäß Fig. 4. Ferner werden das Konstant-Register 101, das Daten-Register 113,
der Dekoder 112, der Tristate-Puffer 111 ebenfalls in diese Berechnung
eingebunden. Die folgende Berechnung ist ein Beispiel zur Erläuterung:
dabei entspricht T der Transposition.
Dies dient zur Berechnung von [zÿ], welche die zweidimensionale diskrete
Cosinustransformation der 3 x 3 Matrix [xÿ] ist.
Der erste Schritt ist, die Spaltentransformation zu berechnen:
dann wird die Reihentransformation berechnet,
Bezugnehmend auf Fig. 21, 22 und 23 kann das Laden der Daten, die
Datenverarbeitung und der Betrieb der Steuersignale wie folgt erläutert werden:
Wie in Fig. 21 dargestellt, werden zunächst die Daten aÿ in das Konstanten-Register
101 in den Prozessorelementen PE1, PE2, PE3 geladen. Dann werden,
wie in Fig. 22 dargestellt, die Daten xÿ aus dem Multiportspeicher M in das
Register rb durch die folgende Sequenz geladen: x00, x10, x20, x01, x11, x21,
x02, x12, x22.
Auf diese Weise errechnet das Prozessorelement PE1 y00, y01, y02, das
Prozessorelement PE2 errechnet y10, y11, y12 und PE3 errechnet y20, y21, y22.
Durch Verwendung des Decoders 112 zur Erzeugung eines Steuersignals zur
Ersteuerung des Tristate-Puffers 111 wird danach yÿ zurück zum Eingang ib der
Prozessorelemente über die Multiplexer Mb durch die folgende Sequenz
zurückgesendet: y00, y01, y02, y10, y11, y12, y20, y21, y22.
Schließlich wird die zweidimensionale diskrete Cosinustransformation
errechnet.
Fig. 24 zeigt eine Array-Prozessor-Architektur, die eine zweidimensionale
Ausführungsform der vorliegenden Erfindung ist. Als Beispiel werden gemäß Fig.
25 sechs Prozessorelemente PE11, PE12, PE21, PE22, PE31, PE32 verwendet, um
das Verfahren zur Berechnung der zweidimensionalen diskreten
Cosinustransformation zu erläutern. Bezugnehmend auf die Fig. 26, 27, und
28 können das Laden der Daten, die Steuerung Sequenz der Steuersignale und
die Betriebsweise wie folgt erläutert werden: Wie in Fig. 26 gezeigt, werden
zunächst die Daten aÿ in das Konstanten-Register 101 in den Prozessorelementen
PE11, PE21, PE31, PE12, P22, PE32 geladen. Dann werden, wie in Fig. 27 gezeigt,
die Daten xÿ aus dem Multiportspeicher M in das Register rb durch die folgende
Sequenz geladen: X00, x10, x20, x01, x11, x21, x02, x12, x22.
Auf diese Weise errechnet das Prozessorelement PE11 y00 y01, y02, PE22
errechnet y10, y11, y12, PE31 errechnet y20, y21, y22. Gemäß Fig. 28 wird
danach durch Verwendung des Decoders 112 zur Erzeugung eines Steuersignals
zur Steuerung des Tristate-Puffers 111 yÿ, das durch PE11, PE21, PE31 errechnet
ist, zum Eingang ib der Prozessorelemente PE12, PE22, PE32 durch die folgende
Sequenz gesendet: y00, y01, y02, y10, y11, y12, y20, y21, y22.
Dann errechnet das Prozessorelement PE12 z00, z10, z20, PE21 errechnet
z01, z11, z21 und PE32 errechnet z02, z12, z22. Auf diese Weise kann die
zweidimensionale Array-Prozessor-Architektur den Effekt erreichen, eine
zweidimensionale diskrete Cosinustransformation zu errechnen.
Die Array-Prozessor-Architektur gemäß Fig. 29 ist eine zweidimensionale
Ausführungsform, die nxm Prozessorelemente gemäß der vorliegenden Erfindung
zur Verarbeitung einer Bewegungsvorhersage und einer Mustererkennung
enthält. Hier repräsentieren P1, P2, Pm programmierbare Verzögerungen. Als
Beispiel gemäß Fig. 30 ist ein 3 × 3 Prozessor Array verwendet, um die
Operation zu erklären. Hier sind P1, P2 3-Taktzyklen-Verzögerungen. Ferner
laufen die Prozessorelemente PE11, PE12, PE13, PE21, PE22, PE23, PE31, PE32,
PE33 nach dem sechsten Betriebsmodus, der in Fig. 9 gezeigt ist. Zur
Erläuterung wird die folgende Berechnung als Beispiel verwendet:
Bezugnehmend auf die Fig. 31 und 32 wird das Prozessorelement PE11
verwendet zur Berechnung von z20, PE21, PE31 dienen entsprechend zur
Berechnung von z10, z00. PE12, PE22, PE32 dienen zur Errechnung von z21,
z11, z01 und PE13, PE23, PE33 dienen zur Berechnung von z22, z12, z02.
Insgesamt ist es mit dieser Array-Prozessor-Architektur möglich, sowohl die
Funktion der Verarbeitung einer Bewegungsabschätzung als auch einer
Mustererkennung durchzuführen.
Fig. 33 zeigt die Array-Prozessoranordnung in einer
Stufenpipelineausfühung der vorliegenden Erfindung. Eine derartige Array-Prozessor-Architektur
enthält n pipelined SIMD-Systolic Array-Prozessor-Architekturen,
die in Pipelineart kaskadiert sind und eine Stufenpipeline-Architektur
genannt werden. Eine solche Architektur kann auch mit einem
Prozessor 1001 für allgemeine Zwecke kombiniert werden, um seine
Recheneigenschaften zu verbessern. In Fig. 34 ist die Errechnung einer 1008-Punkte
diskrete Fouriertransformation als Beispiel zur Erklärung verwendet. Ein
Allzweckprozessor 1001 ist mit drei Pipelined SIMD-Systolic Array-Prozessor-Architekturen
3000, 3001, 3002 kaskadiert, die jeweils zur Errechnung von 7-Punkt,
9-Punkt und 16-Punkt diskreten Fouriertransformationen dienen. Durch
Verwendung derartiger Architekturen kann eine 1008-Punkte diskrete
Fouriertransformation mit hoher Comupterperformance ausgeführt werden. Die
Array-Prozessor-Architektur gemäß Fig. 35 ist eine Ausführungsform einer
Kombination der vorliegenden Erfindung mit einer Systolic-Architektur, die eine
Vielzahl von Prozessorelementen enthält. Bezugnehmend auf Fig. 35 wird eine
Gruppe von Prozessorelementen PE1-PEn, die eine systolische Architektur
4002 bildet, zwischen den pipelined SIMD-Systolic Array-Prozessor-Architekturen
4000, 40001 eingefügt. Eine solche Architektur kann auch mit
einem Allzweckprozessor kombiniert werden. Fig. 36 zeigt im Implementation
eines Bildkompressionssystems als Beispiel zur Erläuterung. Zwei pipelined
SIMD-Systolic Array-Prozessor-Architekturen 5000, 5001, die eine
zweidimensionale diskrete Cosinustransformation und eine inverse diskrete
Cosinustransformation errechnen, werden mit einer systolischen Architektur
5002 an einem Ende kombiniert und mit einem Allzweckprozessor 1001 am
anderen Ende. Außerdem enthält die systolische Architektur 5002 Quantisierer
PE11, einen Zick-Zack-Abtastprozessor PE21, einen Koder PE31, einen
Dequantisierer PE12, einen inversen Zick-Zack-Abtastprozessor PE22, einen
Dekoder PE32 und einen Multiplexer Mu1. Alle diese Prozessorelemente in der
systolischen Architektur 5002 sind systolisch kaskadiert. Das Steuersignal 19
dient zur Auswahl der Betriebsart. Wenn das Steuersignal 19 auf logisch Eins
steht, kommt der Dateneingang des Dequantisierers PE12 vom Ausgang des
Quantisierers PE11. Daher arbeitet das ganze System im Codingprozeß. Auf der
anderen Seite, wenn das Steuersignal 19 logisch Null ist, kommt der
Dateneingang des Dequantisierers PE12 vom Ausgang des inversen Zick-Zack-Abtastprozessors
PE22. Dann läuft das gesamte System im Decodingprozeß.
Auf diese Weise kann der Effekt einer Bildkompressionsfunktion erreicht
werden.
Wie beschrieben, bezieht sich die vorliegende Erfindung auf Pipelined
SIMD-Systolic Array-Prozessor-Architekturen und deren Berechnungsverfahren.
Die vorliegende Erfindung steuert die Datenverarbeitung, die
Datenübertragung und die Datenein/ausgabe in überragender Weise. Dadurch
kann die Computerperformance erhöht werden. Die vorliegende Erfindung spart
zudem Datenleitungen und erhöht die Speichereffizienz.
Dadurch ist es möglich, die vorliegende Erfindung auf einem einzigen VLSI-Chip
aufzubauen. Die Erfindung weist eine besondere Nützlichkeit für die
Industrie auf.
Claims (20)
1. Pipelined SIMD-Systolic Array-Prozessor mit einer Steuereinheit (C)
(Controller), einer Mehrzahl von Prozessorelementen (PEn) in Form einer
Array-Architektur, bei dem jedes Prozessorelement einen Addierer, ein
Register, Eingänge und Ausgänge aufweist, wobei der Addierer und das
Register durch den Controller gesteuert sind, eine Mehrzahl von
Schieberegister-Arrays, die jeweils an den Eingängen und Ausgängen der
Prozessorelemente der Array-Architektur angeordnet sind, eine Mehrzahl
von Multiplexern, die an den Übertragungsenden der Schieberegister-Arrays
angeordnet sind, einen Multiportspeicher (M), der mit den
Eingangsenden der Schieberegister-Arrays verbunden ist, und einem Satz
von Verteilungsdatenleitungen, die mit den Eingängen der
Prozessorelemente der Array-Architektur verbunden sind, um
Rückführungsdaten vom Ausgang der Prozessorelemente der Array-Architektur
und Daten von dem Multiportspeicher aufzunehmen, und wobei
die Register, Multiplexer und der Multiportspeicher durch die Steuereinheit
gesteuert sind.
2. Prozessor nach Anspruch 1, bei dem jedes Prozessorelement einen
Multiplizierer enthält, dessen Ausgang mit einem Eingang des Addierers
verbunden ist, die Eingänge des Multiplizierers mit den Eingängen des
Prozessorelementes zur Aufnahme von Eingangsdaten verbunden sind, der
Ausgang des Addierers mit dem Register verbunden ist, dessen Ausgang
mit einem anderen Ende des Addierers und der Ausgang des Addierers mit
dem Ausgang des Prozessorelements verbunden ist.
3. Prozessor nach Anspruch 2, bei dem jedes Prozessorelement außerdem
ein Absolutdifferenzbetriebselement aufweist, dessen Ausgänge mit dem
Multiplizierer verbunden sind.
4. Prozessor nach Anspruch 1, bei dem jedes Prozessorelement einen
Multiplizierer enthält, wobei ein Eingangsende des Addierers und ein
Eingangsende des Multiplizierers mit dem Eingang des Prozessorelements
zum Empfang von Eingangsdaten verbunden ist, wobei das Register
zwischen dem Ausgang des Addierers und einem anderen Eingang des
Multiplizierers verbunden ist und der Ausgang des Registers mit einem
anderen Eingangsende des Addierers und der Ausgang des Multiplizierers
mit einem Ausgang des Prozessorelements verbunden ist.
5. Prozessor nach einem der Ansprüche 2-4, bei dem in jedem
Prozessorelement ein weiteres Register zwischen dem Ausgang des
Multiplizierers und einem Eingangsende des Addierers eingekoppelt ist.
6. Prozessor nach einem der Ansprüche 2-5, bei dem in jedem
Prozessorelement ein Konstanten-Register zwischen dem Eingang des
Prozessorelements und einem Eingangsende des Multiplizierers
eingebunden ist.
7. Prozessor nach Anspruch 3, bei dem in jedem Prozessorelement ein
zweites Register zwischen dem Ausgang des
Absolutdifferenzbetriebselements und dem Eingangsende des Multiplizierers
eingebunden ist und ein drittes Register zwischen dem Ausgangsende des
Multiplizierers und einem Eingangsende des Addierers eingebunden ist, und
die zweiten und dritten Register durch das Steuergerät gesteuert werden.
8. Prozessor nach Anspruch 1, bei dem jedes Prozessorelement ferner ein
Absolutdifferenzbetriebselement aufweist, dessen Eingangs enden mit den
Eingangsanschlüssen des Prozessorelements verbunden sind und das
Ausgangsende des Absolutdifferenzbetriebselements mit einem
Eingangsende des Addierers verbunden ist, wobei das Ausgangsende des
Addieres mit dem Register verbunden ist, dessen Ausgangsende mit einem
anderen Eingangsende des Addierers und Ausgangsende des Addierers mit
dem Ausgang des Prozessorelements verbunden sind.
9. Prozessor nach Anspruch 8, bei dem in jedem Prozessorelement ein
weiteres Register zwischen dem Ausgangsende des
Absolutdifferenzbetriebselements und einem Eingangsende des Addierers
eingebunden ist, und das weitere Register außerdem durch das Steuergerät
gesteuert wird.
10. Prozessor nach einem der vorhergehenden Ansprüche, bei dem in jedem
Prozessorelement ein First-in/First-out-Speicher zur Aufnahme von
Eingangsdaten des Prozessorelements vorgesehen ist und als anderer
Ausgang des Prozessorelements dient und der First-in/First-out-Speicher
durch das Steuergerät gesteuert wird.
11. Prozessor nach einem der vorhergehenden Ansprüche, bei dem in jedem
Prozessorelement ein Datenregister mit dem Ausgangsende des Addieres
verbunden ist, ein Tristate-Puffer und ein Decoder umgekehrt mit dem
Ausgangsende des Datenregisters verbunden ist und das Datenregister, der
Tristate-Puffer und der Decoder durch den Controller gesteuert werden.
12. Prozessor nach einem der vorhergehenden Ansprüche, bei dem die Array-Architektur
als zweidimensionales Array ausgebildet ist.
13. Prozessor nach einem der vorhergehenden Ansprüche, bei dem die Array-Architektur
als Stufenpipelined Array-Architektur ausgebildet ist, die mit
einem Allzweckprozessor verbunden ist.
14. Prozessor nach einem der vorhergehenden Ansprüche, bei dem ein Ende
der Array-Architektur mit einer systolischen Architektur verbunden ist, die
durch die Prozessorelemente gebildet ist, und die Gesamtheit durch einen
Allzweckprozessor verbunden und gesteuert wird.
15. Prozessor nach Anspruch 1, bei dem das erste Register einen Eingang
aufweist, der mit dem Ausgang eines Multiplizierers verbunden ist, und
einen Ausgang, und bei dem der Prozessor ferner enthält: ein zweites
Register, das einen Eingang enthält, der mit dem Ausgang des Addierers
verbunden ist und einen Ausgang; ein drittes Register, das einen Eingang,
der mit dem Ausgang eines Absolutdifferenzbetriebselement verbunden ist
und einen Ausgang enthält, einen ersten Multiplexer, der Daten aus einem
Konstant-Register, einem ersten Eingang oder einem dritten Register
auswählt und einen Ausgang aufweist, der mit dem Eingang des
Multiplizierers verbunden ist; einem zweiten Multiplexer zur Auswahl von
Daten aus dem ersten Eingang, einem zweiten Eingang, dem ersten
Register, dem dritten Register oder dem zweiten Register und einen
Ausgang aufweist, der mit dem Eingang des Multiplizierers verbunden ist;
einem dritten Multiplexer zur Auswahl von Daten aus dem ersten Register,
dem dritten Register, einem Datenregister oder dem zweiten Eingang und
einen Ausgang aufweist, der mit dem Eingang des Addierers verbunden ist;
einem vierten Multiplexer zur Auswahl von Daten von dem Addierer oder
Multiplizierer und einen Ausgang aufweist; einem ersten Eingang zur
Aufnahme von Daten von einem Eingangsverteilungsschaltelement, das mit
den Eingängen des ersten Multiplexers, dem zweiten Multiplexer und einem
Absolutdifferenzbetriebselement verbunden ist; einen zweiten Eingang zur
Aufnahme von systolischen Daten von einem ersten
Eingangsschieberegister-Array, das mit den Eingängen des zweiten
Multiplexers, dem dritten Multiplexer, einem First-in/First-out-Speicher,
einem Konstanten-Register und dem Absolutdifferenzbetriebselement
verbunden ist; wobei der First-in/First-out-Speicher einen Eingang aufweist,
der mit dem zweiten Eingang verbunden ist und einen Ausgang, der mit
einem ersten Ausgang des Prozessorelements verbunden ist; wobei das
Konstanten-Register einen Eingang aufweist, der mit dem zweiten Eingang
verbunden ist und einen Ausgang, der mit dem Eingang des ersten
Multiplexers verbunden ist; wobei der Multiplizierer einen ersten Eingang
aufweist, der mit dem Ausgang des ersten Multiplexers verbunden ist und
einen zweiten Eingang, der mit dem Ausgang des zweiten Multiplexers
verbunden ist und einen Ausgang aufweist, der mit den Eingängen des
ersten Registers und dem vierten Multiplexers verbunden ist; wobei der
Addierer einen ersten Eingang aufweist, der mit dem Ausgang des dritten
Multiplexers verbunden ist, einen zweiten Eingang, der mit dem Ausgang
des zweiten Registers verbunden ist und einen Ausgang, der mit den
Eingängen des zweiten Registers und des vierten Mulitplexers verbunden
ist; wobei das Absolutdifferenzbetriebselement einen ersten Eingang
aufweist, der mit dem ersten Eingang verbunden ist, einen zweiten Eingang,
der mit dem zweiten Eingang verbunden ist und einen Ausgang, der mit
dem Eingang des dritten Registers verbunden ist; einem Datenregister, das
einen Eingang aufweist, der mit dem Ausgang des Addierers verbunden ist
und einen Ausgang, der mit den Eingängen des dritten Multiplexers und
einem Tristate-Puffer verbunden ist, wobei der Tristate-Puffer einen ersten
Eingang aufweist, der mit dem Ausgang des Datenregisters verbunden ist,
einen zweiten Eingang, der mit dem Ausgang eines Decoders verbunden ist
und einen Ausgang, der mit einem dritten Ausgang des Prozessorelements
verbunden ist; einen ersten Ausgang für das Senden von Rückführdaten,
der mit dem Ausgang des First-in/First-out-Speichers verbunden ist, wobei
der zweite Ausgang zum Senden von Ausgangsdaten mit dem Ausgang
des vierten Multiplexers verbunden ist; wobei der dritte Ausgang zum
Senden von verdrahteten ODER-Rückführdaten mit dem Ausgang des
Tristate-Puffers verbunden ist, wobei die Multiplexer, Register, der First-in/First-out-Speicher,
das Konstanten-Register, der Addierer, das
Datenregister und der Dec oder mit Steuerleitungen verbunden sind, die vom
Steuergerät und vom Betriebsarten-ROM kommen, um verschiedene
Datenübertragungsstrukturen zu organisieren, und durch Verwendung von
Steuersignalen die Multiplexer derart gesteuert werden, daß jedes pipelined
Prozessorelement die verschiedenen Betriebsweisen ausführen kann.
16. Ein pipelined SIMD-Systolic Array-Prozessorverfahren unter Verwendung
eines Prozessors gemäß einem der vorhergehenden Ansprüche, mit
folgenden Schritten: systolisches Übertragen von Daten von einem
Multiportspeicher in ein erstes Eingangsschieberegister-Array durch
entsprechende Steuerung von Multiplexern, systolisches Übertragen von
Daten von dem Multiportspeicher in ein zweites Eingangsschieberegister-Array,
Parallelübertragung von Daten von dem zweiten
Eingangsschieberegister-Array in das erste Schieberegister-Array und
Pipelined-Prozessingelementen durch entsprechende Steuerung von
Multiplexern; Übertragen von Daten vom Multiportspeicher in die Pipelined-Prozessorelemente
durch einen Eingangsverteilungsschaltkreis, Übertragen
von Daten vom festen ODER-Ausgängen in die Pipelined-Prozessorelemente
durch die Eingangsverteilungsschaltung durch
entsprechende Steuerung von Multiplexern; paralleles Übertragen von den
ersten Ausgängen der Pipelined-Prozessorelemente in das erste
Eingangsschieberegister-Array durch entsprechende Steuerung von
Mulitplexern; paralleles Übertragen von Daten aus dem ersten
Eingangsschieberegister-Array in zweite Eingänge der Pipelined-Prozessorelemente,
Übertragen von Daten von der ersten
Verteilungsschaltung in die ersten Eingänge der Pipelined-Prozessorelemente,
wobei die Berechnung in den Pipelined-Prozessorelementen
unter festgelegten Betriebsbedingungen erfolgt,
paralleles Übertragen der errechneten Ergebnisse von den zweiten
Ausgängen der Pipelined-Prozessorelemente in ein
Ausgangsschieberegister-Array durch entsprechende Steuerung von
Multiplexern, systolisches Übertragen der Rechenergebnisse vom
Ausgangsschieberegister-Array in dem Multiportspeicher oder externe
Funktionseinheiten, Übertragen der Rechenergebnisse von den dritten
Ausgängen der Pipelined-Prozessorelemente in
Eingangsverteilungsschaltungen, einem Multiportspeicher oder externen
Funktionseinheiten und durch Steuerung des Controllers der
Eingangsschieberegister-Arrays, der Eingangsverteilungsschaltungen, der
Pipelined-Prozessorelemente, der Ausgangsschieberegister-Arrays, der
festen ODER (Wired-or)-Ausgangsschaltung, und dem Multiportspeicher,
die gleichzeitig arbeiten, um die Datenübertragung und -berechnung
durchzuführen.
17. Prozessor nach einem der Ansprüche 1-11, bei dem weiterhin ein
zweidimensionales Prozessorarray vorgesehen ist, das Spalten und Reihen
der Pipelined-Prozessorelemente enthält, einem Eingangsschieberegister-Array
mit Registern, die einen Eingang aufweisen, der mit einem Ausgang
eines Multiportspeichers verbunden ist und Ausgängen, die mit dem
zweidimensionalen Prozessorarray verbunden sind, wobei jeder Ausgang
mit den zweiten Eingängen aller Prozessorelemente in der selben Reihe für
horizontale Verteilung von Daten verbunden ist, einem Verteilungsregister
mit einem Eingang, der mit einem Ausgang des Multiportspeichers
verbunden ist und einen Ausgang enthält, der mit den ersten Eingängen
aller Prozessorelemente in der linkesten Spalte des zweidimensionale
Prozessorarrays zur vertikalen Verteilung von Daten verbunden ist, wobei
außer der rechtesten Spalte jede Spalte der Prozessorelemente des
zweidimensionalen Prozessorarrays einen Fest-ODER(Wired-or)-
Ausgangsschaltkreis enthält, der mit den ersten Eingängen aller
Prozessorelemente in ihrer der rechten benachbarten Spalte zur
Übertragung von Zwischenrechenergebnissen verbunden ist, einem
Ausgangsschieberegister-Array, das Register enthält und Multiplexer und
das Eingänge aufweist, die mit den ersten Ausgängen aller
Prozessorelemente in der rechtesten Spalte des zweidimensionalen
Prozessor-Arrays zur systolischen Übertragung von Rechenergebnissen in
den Multiportspeicher verbunden ist, wobei der Controller Steuersignale
erzeugt zur Steuerung des zweidimensionalen Prozessor-Arrays, des
Eingangsschieberegister-Arrays, des Verteilungsregisters, der Wired-or-Ausgangsschaltungen,
dem Ausgangsschieberegister und dem
Multiportspeicher.
18. Prozessor nach einem der Ansprüche 1-11, bei dem ferner ein
zweidimensionales Prozessor-Array vorgesehen ist, das Spalten und
Reihen der Prozessorelemente enthält, wobei jedes Prozessorelement einen
ersten Eingang zur Aufnahme vertikaler Verteilungsdaten enthält, einen
zweiten Eingang zur Aufnahme horizontaler Verteilungsdaten, einen ersten
Ausgang zur Aussendung von Rechenergebnissen in ein
Ausgangsschieberegister-Array und einen zweiten Ausgang zum
Übertragen von Rechenergebnissen in einen Wired-or-Ausgangsschaltkreis;
einem zweiten Eingangsschieberegister-Array, das Register enthält, das
einen Eingang aufweist, der mit einem Ausgang des Multiportspeichers
verbunden ist und Ausgängen, die mit Eingängen von Multiplexern des
zuerst genannten Eingangsschieberegister-Arrays verbunden ist; einem
dritten Eingangsschieberegister-Array, das Registerverzögerungen enthält,
die einen Eingang aufweisen, der mit dem Ausgang des Verteilungsregisters
verbunden ist und Ausgänge enthält, die mit dem zweidimensionalen
Prozessor-Array verbunden sind, wobei jeder Ausgang mit den ersten
Eingängen aller Prozessorelemente in derselben Spalte zur vertikalen
Verteilung von Daten verbunden ist, wobei jede Spalte von
Prozessorelementen des zweidimensionalen Prozessor-Arrays ein
Ausgangsschieberegister-Array aufweist, das mit den ersten Ausgängen
verbunden ist, das Register und Multiplexer enthält zur systolischen
Übertragung von Rechenergebnissen in den Mulitportspeicher oder seine
rechts benachbarte Spalte, Datenschalter zur Verwendung zur Steuerung
der Datenübertragung zwischen den Ausgangsschieberegister-Arrays und
dem Multiportspeicher, wenn mehr als ein Ausgangsschieberegister-Array
verwendet ist.
19. Prozessor nach Anspruch 18, der ferner ein zweidimensionales Prozessor-Array
enthält, das Spalten und Reihen für Pipelined-Prozessorelemente
aufweist, und Datenschalter zur Steuerung der Datenübertragung zwischen
den Ausgangsschieberegister-Arrays und dem Multiportspeicher aufweist.
20. Ein Pipelined SIMD-Systolic Array-Prozessor, der im wesentlichen wie
zuvor beschrieben ist im Hinblick auf die Zeichnungen.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN94101719.2A CN1107597A (zh) | 1994-02-24 | 1994-02-24 | 管线式与心跳式及单指令多数据流的阵列处理架构及方法 |
GB9413501A GB2286909A (en) | 1994-02-24 | 1994-07-05 | Pipelined SIMD-systolic array processor. |
DE19504089A DE19504089A1 (de) | 1994-02-24 | 1995-02-08 | Pipelined SIMD-Systolic Array Prozessor und dessen Arbeitsverfahren |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN94101719.2A CN1107597A (zh) | 1994-02-24 | 1994-02-24 | 管线式与心跳式及单指令多数据流的阵列处理架构及方法 |
DE19504089A DE19504089A1 (de) | 1994-02-24 | 1995-02-08 | Pipelined SIMD-Systolic Array Prozessor und dessen Arbeitsverfahren |
Publications (1)
Publication Number | Publication Date |
---|---|
DE19504089A1 true DE19504089A1 (de) | 1996-08-14 |
Family
ID=25743389
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19504089A Ceased DE19504089A1 (de) | 1994-02-24 | 1995-02-08 | Pipelined SIMD-Systolic Array Prozessor und dessen Arbeitsverfahren |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN1107597A (de) |
DE (1) | DE19504089A1 (de) |
GB (1) | GB2286909A (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102007014132A1 (de) * | 2007-03-23 | 2008-09-25 | Siemens Audiologische Technik Gmbh | Prozessorsystem mit direkt verschalteten Ports |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5285828B2 (ja) | 1999-04-09 | 2013-09-11 | ラムバス・インコーポレーテッド | 並列データ処理装置 |
US7802079B2 (en) | 1999-04-09 | 2010-09-21 | Clearspeed Technology Limited | Parallel data processing apparatus |
GB2348982A (en) * | 1999-04-09 | 2000-10-18 | Pixelfusion Ltd | Parallel data processing system |
US8174530B2 (en) | 1999-04-09 | 2012-05-08 | Rambus Inc. | Parallel date processing apparatus |
US7526630B2 (en) | 1999-04-09 | 2009-04-28 | Clearspeed Technology, Plc | Parallel data processing apparatus |
US8762691B2 (en) | 1999-04-09 | 2014-06-24 | Rambus Inc. | Memory access consolidation for SIMD processing elements using transaction identifiers |
US7966475B2 (en) | 1999-04-09 | 2011-06-21 | Rambus Inc. | Parallel data processing apparatus |
US8169440B2 (en) | 1999-04-09 | 2012-05-01 | Rambus Inc. | Parallel data processing apparatus |
US8171263B2 (en) | 1999-04-09 | 2012-05-01 | Rambus Inc. | Data processing apparatus comprising an array controller for separating an instruction stream processing instructions and data transfer instructions |
US7627736B2 (en) | 1999-04-09 | 2009-12-01 | Clearspeed Technology Plc | Thread manager to control an array of processing elements |
US7506136B2 (en) | 1999-04-09 | 2009-03-17 | Clearspeed Technology Plc | Parallel data processing apparatus |
US7788471B2 (en) | 2006-09-18 | 2010-08-31 | Freescale Semiconductor, Inc. | Data processor and methods thereof |
CN102184089B (zh) * | 2011-05-27 | 2014-01-01 | 清华大学 | 一种动态可重构处理器内数据流运转的方法 |
EP3938894B1 (de) * | 2019-03-15 | 2023-08-30 | INTEL Corporation | Multitile-speicherverwaltung zur erkennung von tile-übergreifendem zugriff, mit bereitstellung einer multi-tile-inferenzskalierung und bereitstellung einer optimalen seitenmigration |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2226899A (en) * | 1989-01-06 | 1990-07-11 | Philips Electronic Associated | An electronic circuit and signal processing arrangements using it |
EP0428328A1 (de) * | 1989-11-14 | 1991-05-22 | Amt(Holdings) Limited | Feldprozessorsystem |
-
1994
- 1994-02-24 CN CN94101719.2A patent/CN1107597A/zh active Pending
- 1994-07-05 GB GB9413501A patent/GB2286909A/en not_active Withdrawn
-
1995
- 1995-02-08 DE DE19504089A patent/DE19504089A1/de not_active Ceased
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2226899A (en) * | 1989-01-06 | 1990-07-11 | Philips Electronic Associated | An electronic circuit and signal processing arrangements using it |
EP0428328A1 (de) * | 1989-11-14 | 1991-05-22 | Amt(Holdings) Limited | Feldprozessorsystem |
Non-Patent Citations (2)
Title |
---|
BAJWA, Raminder, SINGH et al: Area Time Trade- Offs in Micro-Grain VLSI Array Architectures. In: IEEE Trans. on Computers, Vol. 43, No. 10, Oktober 1994, S. 1121-1128 * |
JOHNSON, Kurtis, HURSON, A.R.: General-Purpose Systolic Arrays. In: IEEE Computer, November 1993,S. 20-31 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102007014132A1 (de) * | 2007-03-23 | 2008-09-25 | Siemens Audiologische Technik Gmbh | Prozessorsystem mit direkt verschalteten Ports |
EP1986102A3 (de) * | 2007-03-23 | 2009-02-04 | Siemens Audiologische Technik GmbH | Prozessorsystem mit direkt verschalteten Ports |
Also Published As
Publication number | Publication date |
---|---|
CN1107597A (zh) | 1995-08-30 |
GB9413501D0 (en) | 1994-08-24 |
GB2286909A (en) | 1995-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3789116T2 (de) | Prozessor zur zweidimensionalen diskreten cosinustransformation. | |
DE3885775T2 (de) | Digitaler Signalprozessor. | |
DE19835216B4 (de) | Prozessor und Verfahren zur parallelen Datenverarbeitung | |
DE3875979T2 (de) | Schaltung zur berechnung des quantisierten koeffizienten der diskreten cosinustransformation von digitalen signalabschnitten. | |
DE3856015T2 (de) | Berechnungseinrichtung für Parallelprozessoren | |
DE3485792T2 (de) | Digitale signalverarbeitungseinrichtungen. | |
DE3851858T2 (de) | Digitaler Signalprozessor. | |
DE69728247T2 (de) | Pyramidenförmiger pipeline-prozessor für ein bildverarbeitungssystem | |
DE3750791T2 (de) | Sehr schnelle Transformationsvorrichtung. | |
EP0875031B1 (de) | Prozessor zur bildverarbeitung | |
DE19504089A1 (de) | Pipelined SIMD-Systolic Array Prozessor und dessen Arbeitsverfahren | |
DE3689926T2 (de) | Einrichtung zur sequenziellen Bildtransformation. | |
DE3750017T2 (de) | Prozessor für orthogonale Transformation. | |
DE60215835T2 (de) | Reduzierung von komponenten in einer montgomery multiplikations-recheneinheit | |
DE3786594T3 (de) | Speicherverwaltungseinheit für Digitalsignalprozessor. | |
DE102020101187A1 (de) | Winograd-transformationsfaltungsoperation für neuronale netze | |
DE68926783T2 (de) | Paralleler datenprozessor | |
DE60109858T2 (de) | System zur Ungleichheitsmessung von stereoskopischen Bildern | |
DE3852909T2 (de) | Lineare Kette von Parallelprozessoren und Benutzungsverfahren davon. | |
DE69300041T2 (de) | Mehrfachprozessor-Datenverarbeitungssystem. | |
DE19510879C2 (de) | Brechnungsverfahren für simultane, lineare Gleichungen und speicherverteilter Parallelprozessor zur Durchführung des Verfahrens | |
DE19839627B4 (de) | Digitaler Signalprozessor | |
DE68921847T2 (de) | Verfahren und Anordnung zur Filterung des Bilddarstellungssignals. | |
DE68927611T2 (de) | Digitales neuronales Netwerk | |
DE3632639C2 (de) | Einrichtung zum Hochgeschwindigkeitsverarbeiten von Bilddaten durch Faltung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8131 | Rejection |