DE19504089A1 - Pipelined SIMD-Systolic Array Prozessor und dessen Arbeitsverfahren - Google Patents

Pipelined SIMD-Systolic Array Prozessor und dessen Arbeitsverfahren

Info

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
Application number
DE19504089A
Other languages
English (en)
Inventor
Chen-Mie Wu
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.)
WU CHEN MIE
Original Assignee
WU CHEN MIE
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to CN94101719.2A priority Critical patent/CN1107597A/zh
Priority to GB9413501A priority patent/GB2286909A/en
Application filed by WU CHEN MIE filed Critical WU CHEN MIE
Priority to DE19504089A priority patent/DE19504089A1/de
Publication of DE19504089A1 publication Critical patent/DE19504089A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/8015One 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.
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.
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.
DE19504089A 1994-02-24 1995-02-08 Pipelined SIMD-Systolic Array Prozessor und dessen Arbeitsverfahren Ceased DE19504089A1 (de)

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)

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

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

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

Patent Citations (2)

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

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

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