[go: up one dir, main page]

DE3885775T2 - Digitaler Signalprozessor. - Google Patents

Digitaler Signalprozessor.

Info

Publication number
DE3885775T2
DE3885775T2 DE3885775T DE3885775T DE3885775T2 DE 3885775 T2 DE3885775 T2 DE 3885775T2 DE 3885775 T DE3885775 T DE 3885775T DE 3885775 T DE3885775 T DE 3885775T DE 3885775 T2 DE3885775 T2 DE 3885775T2
Authority
DE
Germany
Prior art keywords
data
bus
address
program
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE3885775T
Other languages
English (en)
Other versions
DE3885775D1 (de
Inventor
Masatoshi Mitsubishi Kameyama
Koh Mitsubishi Denki Kamizawa
Tokumichi Mitsubishi Murakami
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of DE3885775D1 publication Critical patent/DE3885775D1/de
Application granted granted Critical
Publication of DE3885775T2 publication Critical patent/DE3885775T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
    • G06F15/7857Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers) using interleaved memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Complex Calculations (AREA)
  • Executing Machine-Instructions (AREA)
  • Multi Processors (AREA)
  • Processing Or Creating Images (AREA)

Description

  • Die Erfindung betrifft einen digitalen Signalprozessor nach dem Oberbegriff des Anspruches 1 mit einem von Datenspeichern getrennten Programmspeicher zum Speichern eines vorbestimmten Programms, mit einer Programmsteuerung, die das Programm aus dem Programmspeicher ausliest und Befehle des Programms dekodiert, mit einem internen Speicher, einem Rechenwerk zum Ausführen interner Operationen einschließlich binomischer Operationen, einem DMA-Controller, einem Adreßgenerator und Dateneingabe- und Datenausgabeports. Ein solcher digitaler Signalprozessor ist in ICASSP 86 Proceedings of the IEEE- IECEJ-ASJ International Conference on Acoustics, Speech, and Signalprocessing, Tokio, 7-11.April 1986, Band 1, Seiten 401-404, IEEE, New York, U.S.A.; T. Kaneko et al.: "A 50 ns floating-point signal processor VLSI".
  • In Fig. 1 ist ein Blockdiagramm eines solchen konventionellen digitalen Signalprozessors gezeigt, der hauptsächlich zum Verarbeiten von Tonfrequenzsignalen ausgelegt, d. h. ein digitaler Sprachsignalprozessor (DSSP) ist. In dieser Figur ist ein Programmzähler (PC) mit 1 bezeichnet, der einen Stapelzeiger zur Steuerung der Programmadresse enthält; mit 2 ist ein Programm-ROM im digitalen Sprachsignalprozessor (DSSP) bezeichnet; mit 3 ist ein Befehlsregister 0 (IR0) zum Speichern eines aus dem Programm-ROM 2 abgerufenen Befehls bezeichnet; mit 4 ist ein Befehlsregister 1 (IR1) zum Speichern des aus dem IR0 3 an einen Programmbus P-Bus 9 freigegebenen Befehls bezeichnet; mit 5 ist ein Befehlsdekodierer zum Dekodieren des im IR1 4 gespeicherten Befehls bezeichnet; 6 ist ein Busschnittstellenregister (BIR) zum Übermitteln von in einem P-Bus vorhandenen Direktdaten an einen Datenbus (D-Bus) 10; 7 ist eine Adressenarithmetikeinheit (AAU), die drei Adreßregister zum Erzeugen von Adressen enthält; 8 ist ein Seitenregister (PR), das hochwertige 3 Bits zu einem 9-Bit-Adressen-Ausgangssignal der AAU 7 addiert, um eine 12-Bit-Adresse für einen externen RAM zu erzeugen; 9 ist der Programmbus (P-Bus) zum Übertragen von Befehlen; 10 ist der Datenbus (D-Bus) mit dem Daten getrennt vom P-Bus 9 übertragen werden; 11, 12 sind Selektoren; 13 ist ein Daten-Pipeline-Register 0 (DPR0) zum Empfang einer Eingabe für das Rechenwerk (wird später beschrieben); 14 ist ein Daten-Plpeline-Register 1 (DPR1) zum Empfang eines weiteren Eingangssignals für das Rechenwerk; 15 ein interner 2-Port- Datenspeicher (2P-RAM) mit einer Kapazität von 512 Wörtern; mit 16 ist ein Gleitkommamultiplizierer (FMPY) zur Durchführung der 12E6 Gleitkommamultiplikation für die Ausgangssignale von DPR0 13 und DPR1 14 bezeichnet; 17 ist ein Pipeline-Register (P Register) zum Speichern des Ausgangssignals des FMPY 16; 18, 19 sind Selektoren; mit 20 ist eine Gleitkomma-Arithmetik-Logik-Einheit (FALU) bezeichnet, die die 12E6 Gleitkommaoperation an den beiden Eingängen durchführt, um ein Ausgangssignal zu erzeugen; 21 ist ein Selektor; 22 sind Akkumulatoren 0-3 (ACC0-ACC3), die jeder eine Kapazität von 4 Wörtern haben; 23 ist ein Programmschleifenzähler (LC) zum Zählen der Anzahl von Schleifen in einem Programm; mit 24 ist ein Statusregister (SR) bezeichnet, das den Unterbrechungsmodus einer DMA-Steuerung 26 einstellt; 25 ist ein Selektor zum Auswählen der Ausgangssignale der AAU 7 und der DMA- Steuerung 26; 26 ist die Steuerung für den direkten Speicherzugriff (DMA) bei der Durchführung des DMA-Transfers zwischen seriellen I/O 31, 33, 35, 37 und einem externen RAM 32; 45 ist eine R/W-Steuerung zum Steuern des Lesens und Schreibens von Daten für den externen RAM; mit 27 und 28 sind Lese- (RD) und Schreibsignale (WR) bezeichnet, die von der R/W-Steuerung 45 geliefert werden; 29 ist ein Adreßregister zum Speichern der Adresse 30 des externen RAM; 31 ist ein Datenregister DR zum Speichern von Daten in den Datenbus 32, der mit dem externen RAM verbunden ist; 33 ist ein serieller Ausgang 0 (SOO) zum Ausgeben serieller Ausgangsdaten 0 (34); 35 ist ein serieller Eingang 0 (SIO) zum Eingeben serieller Eingangsdaten 0 (36); mit 37 ist ein serieller Ausgang 1 (SO1) bezeichnet zum Ausgeben serieller Ausgangsdaten 1 (38) und mit 39 ein serieller Eingang 1 (SI1) zum Eingeben serieller Eingangsdaten 1 (40); 41 ist eine Unterbrechungssteuerung, die das Unterbrechungssignal 42 zur Bestimmung der Unterbrechung analysiert, und 43 ist eine Bussteuerung zur Steuerung des Datenbusses 32, der mit dem externen Daten-RAM verbunden ist und das Bussignal 44 einsetzt.
  • In Fig. 2 ist ein Anordnungsbeispiel dargestellt, bei dem zwei Sätze von DSSP nach Fig. 1 zur Durchführung einer einheitsweisen Verarbeitung über die seriellen Datenports eingesetzt sind. In dieser Figur stellt ein Master-Prozessor 50 den gesamten DSSP nach Fig. 1 dar. Mit 52 ist ein Anforderungssignal bezeichnet, das vom Master-Prozessor 50 an einen Slave-Prozessor 51 gegeben wird, und 53 ist ein Bestätigungssignal, das vom Slave-Prozessor 51 an den Master-Prozessor 50 gegeben wird.
  • Nachfolgend wird der Betrieb des oben beschriebenen digitalen Signalprozessors kurz erläutert. In dieser Systemanordnung sind P-Bus 9 und D-Bus 10 getrennt, wodurch es möglich ist, daß der Befehlsdekodierer 5 Befehle abruft und gleichzeitig FMPY 16 und FALU 20 interne Operationen ausführen. Zusätzlich findet parallel zu diesen Operationen Adressenerzeugung durch die Adressenarithmetikeinheit AAU 7 statt, wodurch Organisationsaufwand bei der Adressenerzeugung verringert wird. Das System weist eine DMA-Transferfunktion durch die DMA-Steuerung zwischen dem externen Datenbus 32 und den beiden seriellen I/O- Systemen 33, 35 und 37, 39 auf. Da der DMA-Transfer den D-Bus 10 einsetzt, stoppt die interne Operation für jeden Worttransfer während des DMA-Transferzyklus für einen Zeitraum von 6 Maschinenzyklen. Die Parallelverarbeitungsmöglichkeiten dieses Systems werden wie folgt zusammengefaßt.
  • 1.) Adressenerzeugung (Primäradresse) durch AAU 7.
  • 2.) Gleitkommamultiplikation durch FMPY 16.
  • 3.) Gleitkommaarithmetiklogikoperation durch FALU 20.
  • 4.) Datentransfer zwischen 2P-RAM 15 und externem RAM.
  • 5.) Datentransfer zwischen zwei seriellen I/O-Systemen 33,35/37,39 und externem RAM (diese Datenübertragung bewirkt, daß eine interne Operation für jedes übertragene Wort für eine Zeitdauer von 6 Maschinenzyklen stoppt).
  • Das System weist ein System der seriellen I/O 33,35; 37,39 dem Analog/Digitalumsetzer und bin anderes System dem Übertragungspfad zu, wodurch es möglich ist einen Vollduplex-Audio-Codec auf einem einzelnen Chip anzuordnen, das einen DMA-Transfer in Einheiten von Übertragungsblöcken und Pufferung implementiert und dazu einen externen RAM verwendet anstatt für das schnelle Bearbeiten von Massendaten einen externen Speicher einzusetzen.
  • Das von FMPY 16 und FALU 20 gebildete arithmetische Rechenwerk ist in der Lage, eine Produktsummenoperation in einem Maschinenzyklus durchzuführen, die oft in FIR-Filtern und FFT (Fast Fourier Transformation) durchgeführt wird, wie dies bei einem Multiplizierer-Akkumulator-Paar der Fall ist, das in dem Artikel "Packing a single processor onto a single digital board" von Louis Schirm, in Electronics vom 20. Dezember 1979 beschrieben ist. D.h., dieses System erreicht den maximalen Durchsatz, wenn der Multiplikations-Akkumulations-Betrieb fortlaufend durchgeführt wird und erreicht 40 MIPS (million instructions per second) bei einem Maschinenzyklus von 50 ns.
  • Allgemeine Signalverarbeitung umfaßt jedoch außer der Multiplikations- Akkumulations-Operation noch andere Operationen, z. B. Absolutwertakkumulation und Differential-Absolutwertevaluation, für welche Aufgaben FMPY 16 nicht eingesetzt werden kann. Das führt zu einem halbierten Durchsatz von 20 MIPS, die von der FALU 20 allein erzielt werden.
  • Nachfolgend wird der Betrieb der DSSP-Mehrprozessorkonfiguration mit Bezug auf Fig. 2 beschrieben. Serielle Eingangsdaten von System O (36) und System 1 (40), die in den Master-Prozessor 50 eingegeben werden, werden in diesem einer bestimmten rechnerischen Verarbeitung unterzogen, die ein Zwischenergebnis ergibt. Der Master-Prozessor 50 gibt eine Datenübermittlungsanforderung 52 an den Slave-Prozessor 51 aus und übermittelt nach Bestätigung einer Datenübermittlungsbereitschaft 53 vom Slave-Prozessor 51 das im DR 31 gespeicherte Zwischenergebnis über den Datenbus 30 an den Slave-Prozessor 51. DR 31 ist so eingestellt, daß es sich zu einem bestimmten Zeitpunkt an der Basis von RD 27 und WR 28 verriegelt.
  • In der Folge wird das Zwischenergebnis, das vom Slave-Prozessor 51 bearbeitet wurde, zum Master-Prozessor 50 zurückübertragen, wozu das vorher beschriebene Verfahren in umgekehrter Reihenfolge eingesetzt wird. Das Zwischenergebnis wird im Prozessor 50 einer endgültigen rechnerischen Verarbeitung unterzogen und dann an die Ausgangsports 34 und 38 für seriellen Daten der Systeme 0 bzw. 1 gesendet.
  • Dieses System basiert auf der Annahme des schwierigen und umfangreichen Signalverarbeitungsalgorithmus, der nicht durch einen einzelnen DSSP ausgeführt werden kann, und stellt Anforderungen an den Durchsatz, die ebenfalls nicht von einem einzigen DSSP erfüllt werden können. Bei diesem System treten die folgenden Probleme auf. Erstens wird bei einer Übertragung von Massendaten über den Datenbus 30 der Durchsatz wegen der Organisationsvorgaben für die Steuerung der Datenübermittlung nicht wie erwartet verbessert. Master- und Slave- Prozessoren, 50 bzw. 51, müssen sich beim Ablaufen ihrer Programme vollständig synchron verhalten, und wenn die Last auf einen der Prozessoren konzentriert wird, wird der Durchsatz des Systems von der Maximalbelastbarkeit dieses Prozessors bestimmt. Zweitens entsteht wegen der Datenübermittlung durch den Datenbus 30 eine Buskonkurrenz mit einem Prozeß, der den externen RAM verwendet, der über den Datenbus 30 angeschlossen ist; dies führt möglicherweise zu einem bedeutenden Abfall beim Durchsatz.
  • Obgleich diese Probleme ohne weiteres durch das Hinzufügen einer externen Steuerschaltung behoben werden können, bedeutet diese Lösungsmöglichkeit einen erhöhten Einsatz von Hardware, eine geringere Flexibilität und die Aufgabe der Überlegenheit des Signalprozessors in einem auf Prozessoren basierenden System. Besonders Bildsignalverarbeitung erfordert weitgehend eine sehr schnelle Verarbeitung von Datenmassen in Mehrprozessorkonfigurationen, die einen Video-Rahmenspeicher verwenden, und die oben beschriebene Methode birgt mit der Einführung von Prozessoren für die Bildsignalverarbeitung ein bedeutendes Problem.
  • Wie oben beschrieben, ist der konventionelle Digitalsignalprozessor nicht immer für eine Signalverarbeitung wie die Verarbeitung von Bildsignalen geeignet; soll er angewendet werden, wird eine erhöhte Anzahl von Prozessoren zur Kompensation des verringerten Durchsatzes und, wegen der erhöhten Belastung, zusätzliche Hardware in Form von externen Schaltungen erforderlich. Dies sind die Gründe, warum eine Einführung von auf Prozessoren basierenden Systemen auf diesem Gebiet der Technik bisher schwierig war.
  • Aus Electronic Design, Band 34, Nr. 10, 1. Mai 1986, Seiten 189-194, ist ein Ein-Chip-Digitalsignalprozessor bekannt, der eine Drei-Bus- Struktur, einen Multiplizierer, ein Rechenwerk, ROM- und RAM-Schaltungen enthält, und in einem einzigen Maschinenzyklus zwei Operanden aus internen oder externen Speichern lesen, eine Multiplikation durchführen und eine Operation im Rechenwerk stattfinden lassen kann.
  • Es ist eine Aufgabe der vorliegenden Erfindung, die Unzulänglichkeiten des bekannten Standes der Technik auszumerzen; ihre Hauptaufgabe ist die Schaffung eines Digitalsignalprozessors, der aufgrund seines kompakten und flexiblen Aufbaus auf verschiedenartigen Gebieten angewendet werden kann.
  • Nach der Erfindung ist ein solcher Digitalsignalprozessor dadurch gekennzeichnet, - daß er eine Busstruktur aufweist, die einen Programmbus für die Übertragung von Befehlen, einen Datenbus nur für interne Operationen und einen Dateineingabe- und -ausgabebus nur für Dateneingabe- und -ausgabeoperationen hat;
  • - daß die Programmsteuerung die Übertragung von Befehlen auf dem Programmbus parallel derart durchführt, daß der Datenbus die interne Operation für den einen Maschinenzyklus vorher auf den Programmbus ausgegebenen Befehl parallel auf der Basis der Dateneingabe- und ausgabeoperationen auf dem Dateneingabe- und ausgabebus ausführt;
  • - daß der interne Datenspeicher aus einer Mehrzahl von Zweiport- Speichern besteht, von denen ein Port selektiv mit dem Datenbus und ein Port mit dem Dateneingabe- und -ausgabebus verbunden ist;
  • - daß der interne Datenspeicher dazu ausgebildet ist, zwei eingegebene Datenblocks in dem Rechenwerk durch Auswahlmittel gleichzeitig zu lesen und zu schreiben;
  • - daß der DMA-Controller den internen Datenspeicher über den Dateneingabe- und -ausgabebus mit einem vorbestimmten externen Datenspeicher verbindet, um eine DMA-Übertragung von Datenblocks parallel zu der Ausführung der internen Operationen durchzuführen;
  • - daß der Adreßgenerator für das Rechenwerk eine Adresse für eine interne Operation und für den DMA-Controller eine Adresse für die DMA-Übertragung gleichzeitig parallel zu der Ausführung der internen Operation erzeugt; und
  • - daß die Dateneingabe- und -ausgabeports Parallel-Ports sind, die zumindest auf der Eingabeseite FIFO-Speicher aufweisen und eine externe Einheit mit dem Datenbus verbinden, um eine parallele und asynchrone Datenübertragung zwischen der externen Einheit und dem Datenbus durchzuführen.
  • Bevorzugte Ausführungsformen sind in den Unteransprüchen definiert.
  • Diese und andere Lösungen von Aufgaben und Vorteile der vorliegenden Erfindung werden anhand der nachfolgenden, detaillierten Beschreibung, die auf die beigefügten Zeichnungen Bezug nimmt, verdeutlicht.
  • Fig. 1 ist ein Blockdiagramm, das die Anordnung des konventionellen Digitalsignalprozessors (DSSP) darstellt;
  • Fig. 2 ist ein Blockdiagramm eines Mehrprozessorsystems, das auf dem in Fig. 1 dargestellten konventionellen Digitalsignalprozessor basiert;
  • Fig. 3 ist ein Blockdiagramm, das die Anordnung des die vorliegende Erfindung verkörpernden Digitalsignalprozessors zeigt;
  • Fig. 4 ist ein Blockdiagramm der Anordnung des arithmetischen Rechenwerkes 123 der Fig. 3;
  • Fig. 5 ist ein Blockdiagramm der Anordnung des Adreßgenerators 103 nach Fig. 3 und
  • Fig. 6 ist ein Blockdiagramm, das eine Ausführungsform des seriellen Mehrprozessorsystems darstellt, bei dem der in Fig. 3 dargestellte Digitalsignalprozessor eingesetzt ist.
  • Nachfolgend wird eine Ausführungsform dieser Erfindung unter Bezugnahme auf die Zeichnungen beschrieben.
  • In Fig. 3, in der der erfindungsgemäße Digitalsignalprozessor dargestellt ist, ist ein Programmspeicher zum Speichern eines Programmes mit 100 bezeichnet; 101 ist eine Programmsteuerung; 102 ist ein Programmbus (P-Bus), der ein Bus einer Bus-Struktur ist und zur Übermittlung eines von der Programmsteuerung 101 kommenden Befehls dient; 103 ist ein Adreßgenerator, der gleichzeitig sechs Adressen erzeugt; 104 ist eine Steuerung für einen direkten Speicherzugriff (DMA-Steuerung); 105 ist ein Zweirichtungsselektor; 106 ist ein interner Datenspeicher, der aus zwei 2-Port-RAMs (2P) besteht; 107 ist eine Adresse für den internen Datenspeicher 106; 108 ist eine externe Datenspeicheradresse; 109 ist ein Adreßregister (AR), das die externe Speicheradresse für den DMA und die externe Speicheradresse für die interne Operation enthält, um eine externe Datenspeicheradresse 112 mit Hilfe einer externen Speicherschnittstelle (I/F) 111 auszugeben; 110 ist das DMA-Steuersignal; 113 sind externe Datenspeicherdaten; 114 ist ein Datenregister (DR) mit einer Kapazität von zwei Wörtern für den T-Bus 115 und den D-Bus 120 der Bus-Struktur, um die Daten 113 des externen Datenspeichers über die externe Speicherschnittstelle 111 übermittlungs- und verarbeitungsbereit zu halten; 115 ist der zur Datenein- und -ausgabe vorgesehene Dateneingang-/Datenausgangbus (T- Bus); 116 ist ein zweiseitig gerichteter 4-3 Selektor zur Auswahl von Ports für den internen Datenspeicher 106; 117 ist ein Datenpfad vom D- Bus 120 zu dem Adreßgenerator 103; 118 ist ein Bus-Schnittstellenregister (BIR) zum Speichern von Direktdaten, die vom P-Bus 102 zum D-Bus 120 transferiert werden; 119 ist ein Flag-Register (FR); 120 ist der Datenbus (D-Bus) zum Transfer von Daten der internen Operation; 121 und 122 sind Selektoren; 123 ist ein arithmetisches Rechenwerk zur Durchführung interner Operationen; 124 ist ein Parallel -Ausgabe- Register (POR) zur Ausgabe parallel er Daten an die externe Einrichtung; 125 ist ein (FIFO) First-In-First-Out-Speicher für den Empfang von parallelen Daten von der externen Einrichtung; 126 ist eine Paralleldatenport (PIO)-Schnittstelle, die der Übermittlung von parallelen Daten bei der Kommunikation mit der externen Einrichtung dient; 127 ist ein Datenpfad vom D-Bus 120 zur Initialisierung des Arbeitsregisters in dem arithmetischen Rechenwerk 123; 128 ist ein Datenpfad für die Ausgabe des Ergebnisses des arithmetischen Rechenwerkes 123 an den D-Bus 120; 129 sind parallele Ausgangsdaten; 130 sind parallele Eingangsdaten; 131 ist ein Busanforderungssignal; 132 ist ein Busbestätigungssignal und 133 ist ein PIO-Steuersignal.
  • In Fig. 4 ist die Anordnung des arithmetischen Rechenwerkes 123 aus Fig. 3 dargestellt. In Fig. 4 sind Dateneingangsregister (Dx, Dy) mit 150 bezeichnet; 151 ist ein Multiplizierer (MPY); 152 ist eine erste arithmetisch/logische Einheit (ALU1), ein Rechenwerk also; 153 ist ein erster Selektor; 154 ist ein Pipeline-Register (PR); 155 ist ein zweiter Selektor und 156 ein dritter; 157 ist ein Datenaustauscher (EXCH); 158 ist ein Endlosschieberegister (BSHIFT); 159 ist eine zweite arithmetisch/logische Einheit (ALU2); 160 ist ein vierter Selektor und 161 ist Arbeitsregister (WR) mit einer Kapazität von mindestens einem Wort.
  • In Fig. 5 ist die Anordnung des Adreßgenerators 103 aus Fig. 3 dargestellt. Mit 200 sind Adressendaten bezeichnet, die einer Adreßregistergruppe 202 zugeteilt sind; 201 ist ein Selektor, der die Adressendaten 200 aus zurückgeführten Daten 209 des Adreßgenerators (AGU) 212, aus Daten 130 im P-Bus 102 und Daten 117 im D-Bus 120 auswählt; 203 sind Adressendatensätze, die erzeugt werden, indem eine willkürliche Mehrzahl von Daten in der Adreßregistergruppe 202 ausgewählt werden; 204 ist ein Multiplexer (MUX) zum Trennen der Adressendatensätze 203; 205 ist eine arithmetische Einheit (AU) als Rechenwerk zum Addieren und Subtrahieren; 206 ist ein Endlosschieberegister (BSHIFT); 207 ist eine arithmetisch/logische Einheit (ALU) als Rechenwerk, das zumindest Additionen und Subtraktionen durchführt; 208 ist eine arithmetische Einheit (AU) als Rechenwerk zur Addition und Subtraktion; 209 sind zurückgeführte Daten aus dem Adreßgenerator (AGU); 210 sind Distanzadressendaten im P-Bus 102 oder D-Bus 120; 211 ist ein Distanzadressenregister und 212 ist ein Adreßgenerator (AGU), der vier Einheiten für die internen Speicher 106 und zwei Einheiten für die externe Datenspeicheradresse 112 enthält.
  • In Fig. 6 ist ein Mehrprozessorsystem dargestellt, dessen Konfiguration durch eine Verbindung von drei Digitalsignalprozessoren nach Fig. 3 zustandekommt, und zwar sind sie in Serie über die Paralleldatenport-Schnittstelle (PIO) 126 verbunden. Mit 300 ist ein Dateneingangsanschluß bezeichnet, mit 301 eine Eingangsschnittstelle; 302 ist ein Speicherbuswähler; 303 ein gemeinsamer Speicher; 304 ist eine Ausgangsschnittstelle; 305 ist eine Adresse des gemeinsamen Speichers 303; 306 bezeichnet Daten des gemeinsamen Speichers 303; 307 ist ein Paralleldatenpfad, der für die Datenkommunikation zwischen den Prozessoren 310 eingesetzt wird; 308 ist eine Resultatausgabe; 309 sind Bussignale für die Steuerung von Prozessoren 310 und Speicherbuswähler 302; 310 bezeichnet die Prozessoren, die in Fig. 3 dargestellt sind, und 311 bezeichnet einen Speicherbus.
  • Nachfolgend wird der Betrieb beschrieben.
  • Es wird Bezug genommen auf Fig. 3. Befehle, die im Programmspeicher 100 gespeichert sind, werden sequentiell ausgelesen, indem sie von der Programmsteuerung 101 angesteuert und in diese Programmsteuerung 101 eingegeben werden. Der Befehl wird von der Programmsteuerung 101 dekodiert und dann in den P-Bus 102 eingegeben. Parallel zu diesem Arbeitsvorgang führt D-Bus 120 eine interne Operation für den Befehl aus, der einen Maschinenzyklus vorher an den P-Bus 102 ausgegeben wurde. Der Adreßgenerator 103 erzeugt die Adressen 107 und 108 für den mit der internen Operation assoziierten 2P-RAM 106 und externen Datenspeicher für drei Einheiten gleichzeitig und parallel zu der internen Operation. Parallel zur internen Operation führt die DMA- Steuerung 104 gleichzeitig einen Daten-Transfer zwischen dem 2P-RAM 106 und dem externen Datenspeicher über den T-Bus 115 durch. Mit den genannten Arbeitsvorgängen führt das Prozessorsystem die folgenden Verarbeitungsvorgänge parallel durch:
  • 1. Befehlsanfrage und -transfer,
  • 2. Erzeugen von sechs Adressen durch den zuständigen Adreßgenerator,
  • 3. Direkter Daten-Transfer zwischen externem Datenspeicher und internem Datenspeicher 106,
  • 4. Daten-Transfer mit externem Datenspeicher über D-Bus 120 oder Daten-Transfer über PIO 126,
  • 5. Interne Operation durch Rechenwerk 123.
  • In diesem Prozessorsystem holt die DMA-Steuerung 104 Blockdaten vom externen Datenspeicher in den internen Datenspeicher 106 und speichert das Operationsergebnis wieder im internen Datenspeicher 106; danach übermittelt die DMA-Steuerung 104 es in den externen Datenspeicher. Gleichzeitig führt das System eine asynchrone Kommunikation mit der externen Einrichtung auf effiziente Weise und mit wenig Organisationsaufwand und Verbindungsverlusten über die PIO-Schnittstelle 126 durch.
  • Die Programmsteuerung 101 speichert im voraus die Programmverzweigungszieladresse oder die Differentialadresse zwischen der aktuellen Adresse und der Verzweigungszieladresse in einem Speicher mit 2m (m ist eine ganze Zahl größer als oder gleich eins) Adressen, holt die Programmverzweigungszieladresse oder die Differentialadresse, indem sie den Speicher mit einem Bit-Muster adressiert, das aus beliebigen k-Bits in einem l-Bit Flag-Register zum Speichern von Test-Flag-Bits von l-Anzahl besteht (wobei l eine ganze Zahl größer als eins ist; k kleiner als oder gleich l und m ist), und bewirkt ein Verzweigen des Programms an die angegebene Verzweigungszieladresse.
  • Die PIO-Schnittstelle 126 führt eine Paralleldatenkommunikation mit der externen Einrichtung durch, wozu sie das PIO-Steuersignal 133 für die parallelen Eingangs-/Ausgangsdaten von POR 124 und FIFO 125, die getrennt mit dem D-Bus 120 verbunden sind, einsetzt. Der Grund, warum FIFO 125 lediglich auf der Eingangsseite vorgesehen ist, liegt darin, daß die Richtung der Datenkommunikation auf eine Richtung beschränkt ist, weil die zu verarbeitenden Daten in den meisten Signalverarbeitungsalgorithmen zeitserielle Daten sind. Läuft FIFO 125 nicht über, dann ist es möglich, Daten von der externen Einrichtung unabhängig von der internen Operation zu empfangen, wodurch die Durchsatzverringerung in Mehrprozessor-Konfigurationen minimiert werden kann. Der Zeitpunkt für die Ausgabe paralleler Daten wird von der PIO-Schnittstelle 126 vorgegeben, und die Eingabe von der externen Einrichtung. Das heißt, bei der Durchführung der Kommunikation übernimmt die Datenübertragungseinrichtung die Master-Rolle. FIFO 125 hat selbstverständlich eine endliche Kapazität und die Menge der Eingangsdaten ist begrenzt. Darum verhindert die PIO-Schnittstelle 126 eine Dateneingabe, wenn FIFO 125 voll ist. Der Ausgang vom Parallelausgaberegister POR 124 wird nur dann freigegeben, wenn die Dateneingabe von der externen Einrichtung nicht gesperrt ist. Auf diese Weise wird ein Verlust von Daten wegen Überlaufens von FIFO 125 verhindert.
  • Ein Port des 2P-RAM des internen Datenspeichers 106 ist mit dem T-Bus 115 oder dem D-Bus 120 über den zweiseitig gerichteten Selektor 105 verbunden; er kann gleichzeitig zwei Eingabeblockdaten 129 in das arithmetische Rechenwerk sowie Blockdaten des D-Busses 120 in den internen Datenspeicher 106 über den zweiseitig gerichteten 4-3 Selektor einlesen und -schreiben und, parallel dazu, gesteuert von der DMA- Steuerung 104, Blockdaten von der externen Datenspeicher-Schnittstelle 111 über den T-Bus 115 transferieren.
  • Als nächstes wird der Betrieb des arithmetischen Rechenwerkes 123 anhand der Fig. 4 erläutert. Zwei in das Dateneingangsregister 150 eingegebene Daten werden gleichzeitig an MPY 151 und ALU1 152 geleitet und in einem Maschinenzyklus multipliziert und auf andere Weise arithmetisch bearbeitet. Jedes Ausgangssignal von MPY 151 oder ALU1 152 wird von dem ersten Selektor 153 gewählt und das gewählte Ausgangssignal wird am Ende des Maschinenzyklus mit dem Pipeline-Register PR 154 gespeichert, um die Initialstufe der Pipeline zu beenden. Auf der folgenden Stufe wählen der zweite Selektor 155 und der dritte Selektor 156 gewisse Daten, die über EXCH 157 und BSHIFT 158 in die ALU2 159 eingegeben werden und in einem Maschinenzyklus arithmetisch bearbeitet werden. Am Ende des Maschinenzyklus werden die Ausgangssignale von ALU2 159 und Pipeline-Register PR 154 vom Selektor 160 entsprechend einem bestimmten Befehl ausgewählt und im Arbeitsregister 161 gespeichert. Schließlich wird einer der Inhalte von WR 161 ausgewählt, die Daten in die Ausgabeleitung 128 gegeben, so daß sie an den D-Bus 120 ausgegeben werben.
  • Um die genannten Operationen durchzuführen, führt das arithmetische Rechenwerk 123 die folgenden Verarbeitungsschritte parallel in einem Maschinenzyklus aus:
  • 1. Eingabe zweier Daten.
  • 2. Multiplikation der arithmetischen Operation 1.
  • 3. Datenaustausch und -verschieben.
  • 4. Arithmetische Operation 2.
  • 5. Speichern im Arbeitsregister.
  • 6. Ausgabe an den D-Bus 120.
  • Im Gegensatz zur konventionellen System-Anordnung, die auf die Multiplikation-Akkumulation-Operation gerichtet ist, werden bei der erfindungsgemäßen Anordnung zusätzlich zur Produktsummenoperation arithmetische Operationen wie Absolutwertsummierung und Differential-Absolutwert-Bewertung mit der gleichen Effizienz behandelt wie Produktsummen.
  • Mit der erfindungsgemäßen Anordnung kann der Durchsatz bei Operationen, die keinen hohen Grad an Genauigkeit erfordern, verdoppelt werden, indem Daten mit n-Bit Breite getrennt und parallel in MPY 151, ALU1 152 und ALU2 159 verarbeitet werden; sie sind jeweils in höherwertige n/2 Bits und niederwertige n/2 Bits unterteilt. Diese Operation wird ohne weiteres möglich, indem die Teilvervielfachung in MPY 151 (bei n/2 Bits) suspendiert und die Überträge von ALU1 152 und ALU2 159 auf ihrem Wege (bei n/2 Bits) beschnitten werden.
  • Im folgenden wird der Betrieb des Adreßgenerators 103 anhand der Fig. 5 beschrieben. Zurückgeführte Daten vom P-Bus 130, D-Bus 117 und AGU 212 werden vom Selektor 201 unter Verwendung eines bestimmten Befehls ausgewählt, wodurch gespeicherte Daten 200 an die Adreßregistergruppe 202 geliefert werden. Danach wird für Daten 203, die durch arbiträre Auswahl (mehr als eine) aus beliebigem Inhalt der Adreßregistergruppe 202 und dem Inhalt des Schieberegisters 211 gebildet werden, eine komplexe Operation mit AGU 212 durchgeführt, um die Adressen 107 und 108 und die zurückgeführten Daten 209 zu erzeugen. Adreßgenerator AGU 212 enthält vier Systeme für den internen Datenspeicher 106 und zwei Einheiten für die externe Speicherschnittstelle 111, insgesamt also sechs Einheiten; diese arbeiten parallel.
  • Der Speicher hat im allgemeinen eine eindimensionale Adresse (Linearadresse); für viele Signalverarbeitungsvorgänge, insbesondere für die Verarbeitung von Bildsignalen, ist eine zweidimensionale Adresse für die Verarbeitung von Vorteil. Deshalb erzeugt AGU 212 mit Hilfe von MUX 204, AU 205 und AU 208 eine reguläre zweidimensionale Adresse getrennt für horizontale und vertikale Richtungen des Bildes, indem arithmetische Operationen und Modulo-Operationen durchgeführt werden, und erzeugt für das Speichern eine eindimensionale Adresse, indem die reguläre zweidimensionale Adresse zur gewichtenden Addition von zwei Adressen in horizontal er und vertikaler Richtung mit BSHIFT 206 und ALU 207 bearbeitet werden. MUX 204 erzeugt jede Komponente der zweidimensionalen Adresse mit Hilfe von Bit-Auftrennen und Wiederzusammenfügen für die zurückgeführten Daten 209 und die Adreßregisterdaten 203. Dies erübrigt das Erfordernis einer Berechnung der zweidimensionalen Adresse durch das arithmetische Rechenwerk 123, und zweidimensionale Daten können ohne Einbuße beim Durchsatz bearbeitet werden.
  • Schließlich soll der Betrieb des Mikroprozessorsystems serieller Bauart anhand der Fig. 6 erläutert werden. Die Eingangs- und Ausgangsports von PIO-Schnittstelle 126 der Prozessoren 310 sind verkettet und führen eine Pipeline-Bearbeitung an Daten durch, während diese von Prozessor 1 an den Prozessor 2 und den Prozessor 3 gegeben werden. Der gemeinsame Speicher 303 wird beispielsweise für den Bildrahmenspeicher verwendet, und alle Prozessoren 310 haben gleichen Zugang. Um eine Zugangskonkurrenz zum Speicherbus 311 zu vermeiden, wechselt das Speicherbus-Steuersignal 309 zwischen den Prozessoren 310 und dem Speicherbuswähler 302 bei der Zuganganforderungsauswahl.
  • Da am Eingang der PIO-Schnittstelle 126 FIFO vorgesehen ist, ist es nicht nötig, daß die Programmoperationen der Prozessoren 310 vollständig synchron ablaufen. Dadurch wird die Organisation der Datenkommunikation im PIO minimiert und der Durchsatz dieses Multiprozessorsystems ist praktisch gleich dem Maximum der durchschnittlichen Bearbeitungszeit des jedem Prozessor 310 zugeteilten Arbeitsvorganges. Im allgemeinen besteht ein großer Unterschied zwischen dem durchschnittlichen und dem maximalen Wert der Verarbeitungszeit; es kann also eine verbesserte Verarbeitungseffizienz erwartet werden.
  • Obgleich in dem beschriebenen Ausführungsbeispiel die Steuerung von FIFO 125 auf dem Test basiert, ob FIFO 125 voll ist und eine Paralleldatenkommunikation durchgeführt wurde, kann der Steuerung auch der Test zugrundegelegt werden, ob zur Eingabe eines Datenblocks für den Blockdatentransfer Raum zur Verfügung steht.
  • In dem beschriebenen Ausführungsbeispiel wurde im wesentlichen die Verarbeitung von digitalen Signalen beschrieben; das System kann jedoch auch auf anderen Gebieten zum schnellen Verarbeiten von Massendaten (z. B. numerische Analyse) mit gleicher Wirksamkeit eingesetzt werden.
  • Ebenso kann das beschriebene System, das anhand eines Mehrprozessorsystems serieller Bauart beispielhaft erläutert wurde, ein Mehrprozessorsystem parallel er oder hierarchischer Art sein und dabei die gleiche Effizienz erzielen.
  • Wie beschrieben, ist der erfindungsgemäße Digitalsignalprozessor so ausgelegt, daß er für viele Signalverarbeitungsgebiete geeignet ist, z. B. die Verarbeitung von Bildsignalen, bei denen eine schnelle Verarbeitung von Massendaten bei Speicherzugang erforderlich ist; so daß ein kompaktes, flexibles und preiswertes Signalverarbeitungssystem aufgebaut werden kann.

Claims (5)

1. Digitaler Signalprozessor mit einem von Datenspeichern (15) getrennten Programmspeicher (2) zum Speichern eines vorbestimmten Programms, mit einer Programmsteuerung (1, 3, 4, 5), die das Programm aus dem Programmspeicher (2) ausliest und Befehle (5) des Programms dekodiert, mit einem internen Speicher (15), einem Rechenwerk (13, 14, 16-22) zum Ausführen interner Operationen einschließlich binomischer Operationen, einem DMA-Controller (26), einem Adreßgenerator (7) und Dateneingabe- und -ausgabeports (33, 35, 37, 39); dadurch gekennzeichnet, daß
- der digitale Signalprozessor eine Busstruktur aufweist, die einen Programmbus (102) für die Übertragung von Befehlen, einen Datenbus (120) nur für interne Operationen und einen Dateneingangs- und -ausgangsbus (115) nur für Dateneingabe- und - ausgabeoperationen hat;
- daß die Programmsteuerung (101) die Übertragung von Befehlen auf dem Programmbus (102) parallel derart durchführt, daß der Datenbus (120) die interne Operation für den einen Maschinenzyklus vorher auf den Programmbus (102) ausgegebenen Befehl parallel auf der Basis der Dateneingabe- und -ausgabeoperationen auf dem Dateneingabe- und -ausgabebus (115) ausführt;
- daß der interne Datenspeicher aus einer Mehrzahl von Zweiport- Speichern (106) besteht, von denen ein Port selektiv mit dem Datenbus 120 und ein Port mit dem Dateneingabe- und -ausgabebus (115) verbunden ist;
- daß der interne Datenspeicher dazu ausgebildet ist, zwei eingegebene Datenblocks (129) in dem Rechenwerk (123) durch Auswahlmittel (116) gleichzeitig zu lesen und zu schreiben;
- daß der DMA-Controller (104) den internen Datenspeicher (106) über den Dateneingabe- und -ausgabebus (115) mit einem vorbestimmten externen Datenspeicher (112) verbindet, um eine DMA- Übertragung von Datenblocks parallel zu der Ausführung der internen Operationen durchzuführen;
- daß der Adreßgenerator (103) für das Rechenwerk eine Adresse für eine interne Operation und für den DMA-Controller eine Adresse für die DMA-Übertragung gleichzeitig parallel zu der Ausführung der internen Operation erzeugt; und
- daß die Dateneingabe- und -ausgabeports Parallel-Ports (124, 125) sind, die zumindest auf der Eingabeseite FIFO-Speicher aufweisen und eine externe Einheit (129, 130, 133) mit dem Datenbus (120) verbinden, um eine parallele und asynchrone Datenübertragung zwischen der externen Einheit und dem Datenbus (120) durchzuführen.
2. Digitaler Signalprozessor nach Anspruch 1, dadurch gekennzeichnet, daß das Rechenwerk (123) folgende Einheiten aufweist:
eine erste arithmetisch-logische Einheit (152), der zwei Eingangsdatensignale zugeführt werden und die zumindest eine Addition oder Subtraktion in einem Befehlszyklus durchführt;
einen Multiplizierer (151), dem die beiden Eingangsdatensignale zur gleichen Zeit wie der erste arithmetisch-logischen Einheit (152) zugeführt werden und der eine Multiplikation in einem Befehlszyklus durchführt;
ein Pipeline-Register (154), das eines der Ausgangssignale des Multiplizierers (151) und der ersten arithmetisch-logischen Einheit (152) speichert;
eine Datenaustauscheinheit (157), die die zwei Eingangsdatensignale und das Ausgangssignal des Pipeline-Registers (154) vertauscht;
eine Blockverschiebeeinheit (158), die eines der Ausgangssignale der Datenaustauscheinheit (157) um eine willkürliche Anzahl von Bits nach rechts oder links verschiebt;
eine zweite arithmetisch-logische Einheit (159), der das Ausgangssignal der Blockverschiebeeinheit (158) und ein anderes Ausgangssignal der Datenaustauscheinheit (157) zugeführt wird, um zumindest eine Addition oder Subtraktion durchzuführen; und
ein Arbeitsregister (161), das das Ausgangssignal der zweiten arithmetisch-logischen Einheit (159) speichert.
3. Digitaler Signalprozessor nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß das Rechenwerk (123) eine Schaltung aufweist, die die Daten der ersten und zweiten arithmetisch-logischen Einheiten (152, 159) und des Multiplizierers (151) durch Teilen der Daten in n/2 Bits höherer Wertigkeit und n/2 Bits niedrigerer Wertigkeit aufteilt und die aufgeteilten Abschnitte unabhängig voneinander verarbeitet.
4. Digitaler Signalprozessor nach Anspruch 1, dadurch gekennzeichnet, daß die Programmsteuerung (101) einen Controller aufweist, der vorab in einem Speicher mit 2m Adressen (m ist eine ganze Zahl gleich oder größer als 1) eine Programmverzweigungszieladresse oder eine Adressendifferenz zwischen einer aktuellen Adresse und einer Verzweigungszieladresse speichert, der die Programmverzweigungszieladresse oder Adressendifferenz durch Adressieren des Speichers unter Benutzung eines Bitmusters von willkürlichen k Bits in einem l-Bit Flagregister (119), in dem l Prüfflagbits gespeichert sind (l ist eine ganze Zahl gleich oder größer als 1, k ist eine ganze Zahl kleiner als oder gleich l und in), ermittelt und bewirkt, daß sich das Programm an der angezeigten Verzweigungszieladresse verzweigt.
5. Digitaler Signalprozessor nach Anspruch 1, dadurch gekennzeichnet, daß der Adreßgenerator (103) ein solcher ist, der mindestens fünf Systeme von Adreßgeneratoreinheiten (212) aufweist, die eine regelmäßige, zweidimensionale Adresse im logischen Sinne durch Anwendung einer Modulus-Addition/Subtraktion oder Akkumulation getrennt für Adressen in horizontaler und vertikaler Richtung eines Bildes erzeugt und anschließend eine eindimensionale Adresse des internen Datenspeichers (106) oder des externen Datenspeichers (111) durch gewichtete Addition für zwei Adressen in horizontal er und vertikaler Richtung erzeugt.
DE3885775T 1987-03-05 1988-03-03 Digitaler Signalprozessor. Expired - Fee Related DE3885775T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62050755A JPS63216170A (ja) 1987-03-05 1987-03-05 デイジタル信号処理プロセツサ

Publications (2)

Publication Number Publication Date
DE3885775D1 DE3885775D1 (de) 1994-01-05
DE3885775T2 true DE3885775T2 (de) 1994-06-16

Family

ID=12867657

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3885775T Expired - Fee Related DE3885775T2 (de) 1987-03-05 1988-03-03 Digitaler Signalprozessor.

Country Status (5)

Country Link
US (2) US4920480A (de)
EP (1) EP0282825B1 (de)
JP (1) JPS63216170A (de)
CA (1) CA1297195C (de)
DE (1) DE3885775T2 (de)

Families Citing this family (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6336180B1 (en) 1997-04-30 2002-01-01 Canon Kabushiki Kaisha Method, apparatus and system for managing virtual memory with virtual-physical mapping
EP0373393A1 (de) * 1988-11-22 1990-06-20 Nec Corporation Informationsverarbeitungssystem
JP2628079B2 (ja) * 1988-11-25 1997-07-09 三菱電機株式会社 マルチプロセサシステムにおけるダイレクト・メモリ・アクセス制御装置
CA1311063C (en) * 1988-12-16 1992-12-01 Tokumichi Murakami Digital signal processor
US5109497A (en) * 1989-01-27 1992-04-28 Hughes Aircraft Company Arithmetic element controller for controlling data, control and micro store memories
US5829054A (en) * 1989-05-04 1998-10-27 Texas Instruments Incorporated Devices and systems with parallel logic unit operable on data memory locations
JP2569210B2 (ja) * 1989-09-04 1997-01-08 株式会社日立製作所 伝播信号処理装置及びプロセッサシステム
US5175863A (en) * 1989-10-23 1992-12-29 International Business Machines Corporation Signal data processing system having independently, simultaneously operable alu and macu
JP2581234B2 (ja) * 1989-11-06 1997-02-12 日本電気株式会社 演算装置
US5265225A (en) * 1990-02-21 1993-11-23 Harris Corporation Digital signal processing address sequencer
CA2038822A1 (en) * 1990-04-26 1991-10-27 Jordon W. Woods High speed processor for digital signal processing
JPH0444151A (ja) * 1990-06-11 1992-02-13 Omron Corp プロセッサ
GB9013177D0 (en) * 1990-06-13 1990-08-01 Brown Brian H Real-time imaging, etc.
JPH0470946A (ja) * 1990-07-04 1992-03-05 Mitsubishi Electric Corp Dmaコントローラを内蔵した処理装置
US5826101A (en) * 1990-09-28 1998-10-20 Texas Instruments Incorporated Data processing device having split-mode DMA channel
EP0489504B1 (de) * 1990-11-30 1997-03-05 International Business Machines Corporation Bidirektionaler FIFO-Puffer zur Schnittstellenbildung zwischen zwei Bussen
US5251312A (en) * 1991-12-30 1993-10-05 Sun Microsystems, Inc. Method and apparatus for the prevention of race conditions during dynamic chaining operations
US5325401A (en) * 1992-03-13 1994-06-28 Comstream Corporation L-band tuner with quadrature downconverter for PSK data applications
JPH0683578A (ja) * 1992-03-13 1994-03-25 Internatl Business Mach Corp <Ibm> 処理システム、及びデータスループット制御方法
CA2080159C (en) * 1992-10-08 1998-09-15 Paul Alan Gresham Digital signal processor interface
US6298162B1 (en) 1992-12-23 2001-10-02 Lockheed Martin Corporation Image compression/expansion using parallel decomposition/recomposition
EP0640909B1 (de) * 1993-07-30 2001-05-16 Texas Instruments Incorporated Modulare Audiodaten-Verarbeitungsarchitektur
GB9315753D0 (en) * 1993-07-30 1993-09-15 Communicate Ltd Digital communication unit monitoring
US5548735A (en) * 1993-09-15 1996-08-20 International Business Machines Corporation System and method for asynchronously processing store instructions to I/O space
US5513374A (en) * 1993-09-27 1996-04-30 Hitachi America, Inc. On-chip interface and DMA controller with interrupt functions for digital signal processor
US5535417A (en) * 1993-09-27 1996-07-09 Hitachi America, Inc. On-chip DMA controller with host computer interface employing boot sequencing and address generation schemes
US6016538A (en) * 1993-11-30 2000-01-18 Texas Instruments Incorporated Method, apparatus and system forming the sum of data in plural equal sections of a single data word
US5778416A (en) * 1993-12-20 1998-07-07 Motorola, Inc. Parallel process address generator and method
US5835787A (en) * 1994-07-07 1998-11-10 Lucent Technologies, Inc. System for bi-directionally transferring a digital signal sample from a CODEC to a particular memory location and a second sample from memory to CODEC
TW266275B (en) * 1994-10-13 1995-12-21 Yamaha Corp Digital signal processing device and its direct memory access control process
US5867726A (en) * 1995-05-02 1999-02-02 Hitachi, Ltd. Microcomputer
US5898877A (en) * 1996-02-29 1999-04-27 Sanyo Electric Co., Ltd. Processor using special instruction set to enhance exception handling
JP3934710B2 (ja) * 1996-09-13 2007-06-20 株式会社ルネサステクノロジ マイクロプロセッサ
JP3318499B2 (ja) * 1997-01-07 2002-08-26 株式会社日立製作所 プログラマブルコントローラ
US6055619A (en) * 1997-02-07 2000-04-25 Cirrus Logic, Inc. Circuits, system, and methods for processing multiple data streams
AUPO648397A0 (en) 1997-04-30 1997-05-22 Canon Information Systems Research Australia Pty Ltd Improvements in multiprocessor architecture operation
US5951659A (en) * 1997-04-07 1999-09-14 Ncr Corporation Communications-oriented computer system backplane including a PCI input/output bus for transmission of address, data, and control information, and a time-domain multiplexed signal bus (TDMSB) for transmission of high-speed digitized signal information
US6707463B1 (en) 1997-04-30 2004-03-16 Canon Kabushiki Kaisha Data normalization technique
US6414687B1 (en) 1997-04-30 2002-07-02 Canon Kabushiki Kaisha Register setting-micro programming system
US6195674B1 (en) 1997-04-30 2001-02-27 Canon Kabushiki Kaisha Fast DCT apparatus
US6289138B1 (en) 1997-04-30 2001-09-11 Canon Kabushiki Kaisha General image processor
AUPO647997A0 (en) * 1997-04-30 1997-05-22 Canon Information Systems Research Australia Pty Ltd Memory controller architecture
US6674536B2 (en) 1997-04-30 2004-01-06 Canon Kabushiki Kaisha Multi-instruction stream processor
US6189090B1 (en) * 1997-09-17 2001-02-13 Sony Corporation Digital signal processor with variable width instructions
US6513108B1 (en) * 1998-06-29 2003-01-28 Cisco Technology, Inc. Programmable processing engine for efficiently processing transient data
JP4208350B2 (ja) * 1999-06-29 2009-01-14 キヤノン株式会社 描画装置及び描画方法、記憶媒体
US6775757B1 (en) 1999-12-14 2004-08-10 Genesis Microchip Inc. Multi-component processor
US6742083B1 (en) 1999-12-14 2004-05-25 Genesis Microchip Inc. Method and apparatus for multi-part processing of program code by a single processor
US6728853B1 (en) * 1999-12-14 2004-04-27 Genesis Microchip Inc. Method of processing data utilizing queue entry
US6738884B1 (en) 1999-12-14 2004-05-18 Genesis Microchip Inc. Method and apparatus for processing data with semaphores
US6920543B1 (en) 1999-12-14 2005-07-19 Genesis Microchip, Inc. Method and apparatus for performing distributed processing of program code
US6614438B1 (en) * 2000-05-30 2003-09-02 Koninlijke Philips Electronics N.V. Data-processing arrangement for processing different types of data
EP1193608B1 (de) * 2000-09-27 2006-12-20 Texas Instruments Incorporated Gerät und Verfahren für einen Sortierungmodus in einer Direktspeicherzugriffssteuerung von einer Einrichtung zur digitalen Signalverarbeitung
GB2372115A (en) * 2001-02-08 2002-08-14 Mitel Semiconductor Ltd Direct memory access controller
US6898695B2 (en) * 2001-03-28 2005-05-24 Intel Corporation Use of a future file for data address calculations in a pipelined processor
JP4222808B2 (ja) * 2002-09-30 2009-02-12 富士通テン株式会社 Dsp装置
TWI282057B (en) * 2003-05-09 2007-06-01 Icp Electronics Inc System bus controller and the method thereof
US9292904B2 (en) * 2004-01-16 2016-03-22 Nvidia Corporation Video image processing with parallel processing
US7869666B2 (en) 2005-01-13 2011-01-11 Nvidia Corporation Video processing system and method with dynamic tag architecture
DE102006028939B4 (de) * 2006-06-23 2010-04-08 Siemens Ag Programm-Pipelining-Verfahren zum Verarbeiten von Streaming-Daten in medizinischen Bildverarbeitungssystemen
JP4476267B2 (ja) 2006-10-06 2010-06-09 株式会社日立製作所 プロセッサ及びデータ転送ユニット
JP2008282178A (ja) * 2007-05-09 2008-11-20 Toshiba Corp 産業用コントローラ
DE102007038545A1 (de) * 2007-08-16 2009-02-19 Robert Bosch Gmbh Programmierbarer Filterprozessor
US11314674B2 (en) * 2020-02-14 2022-04-26 Google Llc Direct memory access architecture with multi-level multi-striding
US12260089B2 (en) * 2022-04-13 2025-03-25 Korea University Research And Business Foundation Processing-in-memory device based on spin orbit torque device

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5390838A (en) * 1977-01-21 1978-08-10 Hitachi Ltd Microprogram memory unit
JPS5471533A (en) * 1977-11-18 1979-06-08 Toshiba Corp Arithmetic logic operation circuit
US4400772A (en) * 1980-12-30 1983-08-23 International Memories, Inc. Method and apparatus for direct memory access in a data processing system
US4439839A (en) * 1981-08-24 1984-03-27 International Telephone And Telegraph Corporation Dynamically programmable processing element
US4433378A (en) * 1981-09-28 1984-02-21 Western Digital Chip topography for MOS packet network interface circuit
US4471427A (en) * 1981-12-01 1984-09-11 Burroughs Corporation Direct memory access logic system for a data transfer network
US4507727A (en) * 1982-02-11 1985-03-26 Texas Instruments Incorporated Microcomputer with ROM test mode of operation
US4577282A (en) * 1982-02-22 1986-03-18 Texas Instruments Incorporated Microcomputer system for digital signal processing
US4586131A (en) * 1982-02-22 1986-04-29 Texas Instruments Incorporated Microcomputer having data move circuits for within-memory shift of data words
US4494187A (en) * 1982-02-22 1985-01-15 Texas Instruments Incorporated Microcomputer with high speed program memory
JPS59146380A (ja) * 1983-02-10 1984-08-22 Matsushita Electric Ind Co Ltd デジタル信号処理装置
US4574348A (en) * 1983-06-01 1986-03-04 The Boeing Company High speed digital signal processor architecture
JPS6158042A (ja) * 1984-08-29 1986-03-25 Toshiba Corp マイクロプログラム制御方式
US4713749A (en) * 1985-02-12 1987-12-15 Texas Instruments Incorporated Microprocessor with repeat instruction
US4713748A (en) * 1985-02-12 1987-12-15 Texas Instruments Incorporated Microprocessor with block move instruction

Also Published As

Publication number Publication date
DE3885775D1 (de) 1994-01-05
CA1297195C (en) 1992-03-10
EP0282825A3 (en) 1990-03-28
USRE34850E (en) 1995-02-07
EP0282825A2 (de) 1988-09-21
US4920480A (en) 1990-04-24
JPS63216170A (ja) 1988-09-08
EP0282825B1 (de) 1993-11-24

Similar Documents

Publication Publication Date Title
DE3885775T2 (de) Digitaler Signalprozessor.
DE3851858T2 (de) Digitaler Signalprozessor.
DE2817183C2 (de) Datenverarbeitungsanlage mit einer durch Mikroprogramm gesteuerten Zentraleinheit
DE3689394T2 (de) Informationsverarbeitungsanlage mit einem Allzweckprozessor und einem Sonderzweckprozessor.
DE69033444T2 (de) Signalprozessor mit einer arithmetischen und logischen Einheit und einer Multiplizier-Akkumulatoreinheit, die gleichzeitig betrieben werden können
DE69824193T2 (de) Datenverarbeitungseinheit mit der fähigkeit von digitaler signalverarbeitung
DE69522380T2 (de) Parallel-Verarbeitungsarchitektur für Bildverarbeitung
DE69132495T2 (de) Verteilter Verarbeitungsspeicher
DE68928530T2 (de) Modulare Kreuzschienenzwischenverbindungen in einem digitalen Rechner
DE69928428T2 (de) Multiplizier-akkumulator-konfiguration zur effizienten planung in einem digitalen signalverarbeitungsrechner
DE2819571C2 (de)
DE3784050T2 (de) Ein paralleler datenprozessor.
DE69031899T2 (de) Befehlsmethode und Ausführungssystem
DE3486457T2 (de) Integrierter Einchip-Prozessor für die Verarbeitung von digitalen Signalen entweder in einem schnellen oder einem langsamen Betrieb
DE69129723T2 (de) Prozessorelement für Datenakkumulationsrechnungen, Verarbeitungseinheit und Prozessor
DE3424962C2 (de)
DE3638572C2 (de)
DE3933171A1 (de) Einzelchip-prozessor fuer komplexe gleitkommazahlen
DE69826404T2 (de) Datenverarbeitungssystem mit mehreren Prozessoren, die eine Registerbank gemeinsam benutzen
EP0010185B1 (de) Virtuell-Adressiervorrichtung für einen Computer
DE69324730T2 (de) Multiplizier-Akkumulator
DE19524862A1 (de) SIMD-Prozessor, welcher mit einer Mehrzahl von Parallelverarbeitungselementen in Synchronisation in Betrieb ist
DE2912287A1 (de) Datenverarbeitungsgeraet
DE2524046A1 (de) Elektronische datenverarbeitungsanlage
DE3855524T2 (de) Arithmetik-Parallelverarbeitungseinheit und zugehöriger Kompilator

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee