DE3851858T2 - Digitaler Signalprozessor. - Google Patents

Digitaler Signalprozessor.

Info

Publication number
DE3851858T2
DE3851858T2 DE3851858T DE3851858T DE3851858T2 DE 3851858 T2 DE3851858 T2 DE 3851858T2 DE 3851858 T DE3851858 T DE 3851858T DE 3851858 T DE3851858 T DE 3851858T DE 3851858 T2 DE3851858 T2 DE 3851858T2
Authority
DE
Germany
Prior art keywords
data
address
microinstruction
memory
instruction
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
DE3851858T
Other languages
English (en)
Other versions
DE3851858D1 (de
Inventor
Masatoshi Mitsubishi Kameyama
Koh Mitsubishi Denki Kamizawa
Yoshiaki Mitsubishi Denk Katoh
Naoto Mitsubishi Denki K Kinjo
Tokumichi Mitsubishi Murakami
Hideo Mitsubishi Denki K Ohira
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
Priority claimed from JP14087287A external-priority patent/JPS63304344A/ja
Priority claimed from JP18685887A external-priority patent/JPS6429932A/ja
Priority claimed from JP19700987A external-priority patent/JPS6441028A/ja
Priority claimed from JP62273763A external-priority patent/JPH0630056B2/ja
Priority claimed from JP27481087A external-priority patent/JPH01116730A/ja
Priority claimed from JP62296611A external-priority patent/JPH0766327B2/ja
Priority claimed from JP62296612A external-priority patent/JPH0766328B2/ja
Priority claimed from JP31655387A external-priority patent/JPH01156825A/ja
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of DE3851858D1 publication Critical patent/DE3851858D1/de
Publication of DE3851858T2 publication Critical patent/DE3851858T2/de
Application granted granted Critical
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • G06F7/575Basic arithmetic logic units, i.e. devices selectable to perform either addition, subtraction or one of several logical operations, using, at least partially, the same circuitry
    • 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/7828Architectures of general purpose stored program computers comprising a single central processing unit without memory
    • G06F15/7832Architectures of general purpose stored program computers comprising a single central processing unit without memory on one IC chip (single chip microprocessors)
    • 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/786Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers) using a single memory module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30058Conditional branch instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30094Condition code generation, e.g. Carry, Zero flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/355Indexed addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/386Special constructional features
    • G06F2207/3884Pipelining

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computing Systems (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)
  • Complex Calculations (AREA)

Description

  • Die vorliegende Erfindung betrifft einen digitalen Signalprozessor, welcher in der Lage ist, die Arithmetik- oder Unterbrechungs-Verarbeitung im wesentlichen von sukzessiven Signalen bei einer hohen Geschwindigkeit mit einer kleinen Anzahl von Schritten effizient auszuführen.
  • Beschreibung des Standes der Technik
  • Figur 1 zeigt in einem Blockdiagramm den Aufbau eines DSSP1 (digitalen Sprachsignalprozessors 1), nämlich einen exemplarischen konventionellen digitalen Signalprozessor, siehe "Ein Hochgeschwindigkeits-VLSI- Signalprozessor mit normalisierenden Gleitkommasystemen", the proceedings of the annual communication Symposium of the Institute of Electronics and Communication Engineers of Japan (IECEJ), 1986, Japan.
  • Figur 1 zeigt einen Programmzähler (PC) 1, welcher intern mit einem Stack für Anweisungsadressensteuerung, eine Mikroanweisungen (Mikroinstruktionen) speichernde Anweisungsmaske ROM 2, ein Anweisungsregister (IR0) 3 zum Empfangen einer durch die Anweisungsmaske ROM 2 zur Verfügung gestellten Mikroanweisung oder einer externen Mikroanweisung pro Maschinenzyklus, ein Anweisungsregister (IR1) 4, welches nur das Bitfeld empfängt, welches eine in einer an das Anweisungsregister (IR0) 3 gegebenen Mikroanweisung enthaltene Dekodierung benötigt, einen Anweisungsdekoder 5 zum Dekodieren der an das Anweisungsregister (IR1) 4 gegebenen Mikroanweisung, einen Programmbus (P-Bus) 6 zum Verteilen von Mikroanweisungen an die funktionellen Einheiten, ein Register (BI) 7, welches in einer auf dem Programmbus (P-Bus) 6 zur Verfügung gestellten Mikroanweisung enthaltene unmittelbare Daten (18 Bit breit) empfängt und diese einem Datenbus (D-Bus) 8 (18 Bit breit) zum internen Transferieren der durch den Arbeitsvorgang erhaltenen Daten zur Verfügung stellt, ein Register (AM) 9 welches über den Programmbus (P-Bus) 6 eine Adressiermodusanweisung der Datenspeicherung empfängt, ein Register (AD) 10 (4w x 16 Bit breit) zum Halten von Adresszeigerinformationen zum Erzeugen einer indirekten Adresse, ein Seitenregister (PR) 11 (3 Bit breit), welches die Seite in einem externen Datenspeicher spezifiziert, eine Adressenberech-nungseinheit (AAU) 12 (9 Bit breit), welche in der Lage ist, gleichzeitig maximal drei Adressen zu erzeugen, ein Adressenregister (AR0) 13, ein Adressenregister (AR1) 14, ein Adressenregister (AR2) 15, einen Adressenselektierer (RAS) 16, einen Schleifenzähler (LC) 17, ein Statusregister (SR) 18 zum Anzeigen des Arbeitsmodus und des Status' des Prozessors, eine DMA Steuereinheit 19 zum Steuern des direkten Datentransfers zwischen seriellen I/0 Schnittstellen (SI0/1, S00/1) 32 und einem externen Datenspeicher, ein Adressenregister (AR) 20 zum Halten von 12 Bit breiten Adressen, welche an einen externen Datenspeicher weitergegeben werden sollen, einen internen Dualportdatenspeicher (20-RAM) 21 mit 512w x 18 Bit Kapazität, welcher in der Lage ist, gleichzeitig zwei Daten zu lesen und zu schreiben, ein Register (DP0) 22 zum Halten von Operandeneingangsdaten, ein Register (DP1) 23 zum Halten von Operatoreingangsdaten, einen Multiplizierer (FMPL) 24 zum Multiplizieren eines Gleitkommas mit 12E6-Bitformat, ein Register (P) 25 zum Halten der Ergebnisse der Operation des Multiplizierers (FMPL) 24, einen Selektierer 26, einen Selektierer 27, eine Gleitkommaarithmetiklogikoperationseinheit 28 im wesentlichen zum Ausführen der Gleitkommaoperation im 12E6 Bit-Format, Akkumulatoren (ACC0 bis ACC3) 29 mit 4w x 18 Bit zum Halten und Akkumulieren der Ausgänge der Gleitkommaarithmetikoperationseinheit (FALU) 28, ein Datenregister (DA) 30, verbunden mit dem Datenbus (D-Bus) 8 zum vorübergehenden Halten von Daten, welche aus einem externen Datenspeicher gelesen und in diesen geschrieben werden sollen, eine Lese-Schreib-Steuereinheit (R/W Cont) 31 zum Lesen von Daten aus einem externen Datenspeicher und Schreiben von Daten in diesen, serielle I/0 Schnittstellen (SI0/1, S00/1) 32 zum Zweikanaldatentransfer im Vollduplex mit externen Geräten, eine Unterbrechersteuereinheit (Int Cont) 33, einen externen Datenspeicherbussteuerschaltkreis (Bus Cont) 34, einen Taktsteuerschaltkreis (CLK Cont) 35 zum Steuern des internen Timings und einen Selektierer 36.
  • Figur 2 ist ein Zeitdiagramm zur Hilfe bei der Erklärung der Mikroanweisungsausführungssequenz des in Figur 1 gezeigten digitalen Signalprozessors DSSP1. Figur 2 zeigt das aus vier Taktphasen bestehende Zyklustiming 40, das Zugriffsstufentiming 41, welches Stufen des Adressenausganges des Programmzählers (PC) 1 und den Mikroanweisungseingang des Anweisungsregisters (IR0) 3 zeigt, das Dekodierstufentiming 42 des Dekodierens der Eingangsmikroanweisung des Anweisungsregisters (IR1) 4 durch den Anweisungsdekodierer 5, das Timing 43 des Updating der Adressenberechnungseinheit 12 in der Dekodierstufe, das Timing 44 der Operation des Gleitkommamultiplizierers (FMPL) 24, das Timing 45 der Operation der Gleitkommaarithmetiklogikoperationseinheit (FALU) 28, das Timing 46 des Datentransfers durch den Datenbus (D-Bus) 8 zwischen den Registern und das Timing 47 des Datenlesens aus dem externen Datenspeicher und des Schreibens von Daten in diesen durch das Datenregister (DR) 30.
  • Bezug nehmend auf Figur 3, welche den entsprechenden Aufbau der pro Wort 32 Bit breiten Mikroanweisungen und vier Gruppen von Mikroanweisungen des digitalen Signalprozessores DSSP1 der Figur 1 zeigt, ist als 50 eine Anweisungssequenz zum Steuern von Anweisungsverarbeitungsschritten, als 51 eine Modenanweisung zum Initialisieren von Moden und Setzen von Moden des Statusregister (SR) 17, der Adressenberechnungseinheit (AAU) 12 und der DMA-Steuereinheit 1g, als 52 eine Operationsanweisung im wesentlichen zum Steuern der Operation der Gleitkommaarithmetiklogikoperationseinheit (FALU) 28 und der die Operation der Gleitkommaarithemtiklogikoperationseinheit (fALU) 28 begleitende parallele Datentransfer und als 53 eine Ladeanweisung zum Laden von unmittelbaren Daten auf ein optionales Register oder einen Datenspeicher gezeigt.
  • Die Arbeitsweise des digitalen Datenprozessors (DSSP1) wird im nachfolgenden beschrieben, wobei die Komponenten durch die in der obigen Beschreibung benannten Abkürzungen bezeichnet werden.
  • Als erstes wird die allgemeine Arbeitsweise mit Bezug auf Figur 1 beschrieben. In diesem digitalen Signalprozessor DSSP1 werden der P-Bus 6 und der D-Bus 8 individuell zur Verfügung gestellt. Die Anwendung der Mikroanweisung auf IR0 3, der Transfer der Mikroanweisung durch den P-Bus 6, die Dekodierung der Mikroanweisung durch den Anweisungsdecoder 5 und die Ausführung der Anweisung durch den D-Bus 8, der FMPL 24 und die FALU 28 werden parallel in einem Pipeline-Prozeß ausgeführt. Der D-Bus 8 und alle Ausführungseinheiten einschließlich der 2P-RAM 21 sind auf Registerbasis aufgebaut, d.h. alle Eingänge und Ausgänge sind mit den Registern verbunden. Im Timing des Zugangs zu den Registern, werden die Ausgänge an der Vorderflanke des Maschinenzyklusses zur Verfügung gestellt, und die Ausgänge werden an der Hinterflanke des Maschinenzyklusses in das Register gesetzt. Solch ein Operationsmodus wird als verzögerte Operation bezeichnet. Die Inhalte der aktuell verarbeiteten Daten sind nicht die Inhalte der in das Register durch dieselbe Mikroanweisung gesetzten Daten, sondern die Inhalte der durch die vorausgehende Mikroanweisung in das Register geschriebenen Daten. Solch ein Verarbeitungsmodus wird als verzögerte Verarbeitung bezeichnet. Das Innere der Arithmetikeinheit ist durch die Register in Sektionen unterteilt, um die parallele Operation der Sektionen zu ermöglichen. Beispielsweise führt der FMPL 24 kontinuierlich einmal pro Maschinenzyklus die Gleitkommamultiplikation aus. Beim Zur-Verfügungstellen der Daten an den FMPL 20 werden die Daten in das DP0 22 und das DP1 23 durch die vorausgehende Mikroanweisung geschrieben und die Inhalte des P 25 durch die folgende oder spätere Mikroanweisung aufgenommen, um die Ergebnisse der Multiplikation zu erhalten. Während die Inhalte des P 25 aufgenommen werden, werden die Daten durch das DP0 22, das DP1 23 und das P 25 gehalten. Entsprechend kann eine Multiplikationsoperation, die zuvor drei Mikroanweisungen für den Dateneingang, die Multiplikation und den Datenausgang benötigte, durch eine Mikroanweisung ausgeführt werden, wenn die Verarbeitung kontinuierlich ausgeführt wird.
  • In diesen DSSP1 sind die FMPL 24 und die FALU 28 durch das P 25 verbunden. Die FALU ist in der Lage, die Inhalte des P 25 in den ACC0 29 bis ACC3 29 zu akkumulieren, um einen Term der Produktsummen-Operation auszuführen, welche oft beim filtern und der Schmetterlingsoperation der schnellen fourier-Transformation (FFT) in einem Maschinenzyklus verwendet wird, ähnlich dem in "Packing a signal processor onto a single digital board", Louis Schirm, Electronics, December 20, 1979 gezeigten Paar aus einem Multiplizierer und einem Akkumulator.
  • Beispielsweise wird die Produktsumme unter Verwendung des folgenden Ausdrucks berechnet:
  • wobei N eine ganze Zahl nicht kleiner als 1 (eins) ist und ai und bi Eingangsdaten sind. In diesem Prozessor werden drei Mikroanweisungen, Eingeben der Daten in das DP0 22 und das DP1 23, Ausführen der Multiplikation durch den FMPL 24 und Akkumulieren der in das P 26 gesetzten Ergebnisse der Multiplikation durch die FALU 28 in den ACC0 bis ACC3 benötigt, um einen Term der Produktsumme zu erhalten. Daher kann ein Term der Produktsumme mittels einer Mikroanweisung erhalten werden, wenn die Operation kontinuierlich ausgeführt wird. Daher müssen, um einen Term der Produktsumme mittels einer Mikroanweisung zu erhalten, pro Mikroanweisung zwei den Eingangsdaten ai und bi entsprechende Eingangsdaten jeweils entsprechend an den DP0 22 und den DP1 23 gegeben werden. Entsprechend wird der 2P-RAM 21 in die Lage versetzt, zwei Eingangsdaten zur Verfügung zu stellen, und ein Bus wird zur Verfügung gestellt, um die aus dem 20-RAM 21 ausgelesenen Daten direkt zu den DP0 22 und DP1 23 zu transferieren, ohne den D-Bus 8 zu verwenden, um Buskonkurrenz im D-Bus 8 zu vermeiden. Die AAU 12 besitzt Ausgangsmittel zum selektiven Zurverfügungstellen zweier Adreßdaten unter den durch die AR0 12, AR1 14 und AR2 15 zur Verfügung gestellten Adreßdaten von 9 Bit Breite, hauptsächlich um die Eingangsdaten des 2P-RAM 21 zu adressieren. Die AAU 12 ist nur dann in der Lage, maximal drei Adressen gleichzeitig zu spezifizieren, wenn sie Adressen für die beiden ihr durch die 2P-RAM 21 zur Verfügung gestellten Eingangsdaten erzeugt und eine Adresse für ihr durch die DR 30 und die AR 20 auf dem externen Datenspeicher zur Verfügung gestellten Ausgangsdaten erzeugt. Jede Adressierung ist ein sogenanntes indirektes Adressiersystem unter Verwendung eines intern in der AAU 12 gesetzten Adressenzeigers. Das AR0 13 ist für Inkrement, Modulo, Bitumkehr, Wiederholung, Inkrement-Basisadresse und erneuerndes Inkrement empfänglich, während das AR1 14 und das AR2 15 nur für das einfache Inkrement empfänglich sind. Die AAU 12 ist in der Lage, die Adressieroperation nur in einem natürlichen binären 9-Bit-System aufzuführen. Beim Spezifizieren einer 12-Bit-Adresse im externen Datenspeicher werden 3 Bits zur Spezifizierung einer Speicherseite den 9 Bits hinzugefügt, um 12 Bits zu spezifizieren.
  • Auf der anderen Seite, da der FMPL 24 und die FALU 28 Operationen in einem normalisierten Gleitkomma-12E6-System ausführen, sind alle Daten für den 2P-RAM 21, das DP0 22, das DP1 23, die ACC0 29 bis ACC3 29, das DR 30, der D-Bus 8 und der BI 7 18 Bit breit, und daher benötigt die FALU 28 einen speziellen Operationsmodus, um einen speziellen Anfangsadressenwert zu berechnen. Entsprechend sind die Daten, die das in dem AR0 13, dem AR1 14, dem AR2 15, dem AR 20 und den ACC0 29 bis ACC3 29 gespeicherte Operationsergebnis repräsentieren, mit diesen Daten nicht vergleichbar.
  • Die DMA-Steuereinheit 19 steuert, unabhängig von der Mikroanweisung, einen Zweikanaldatentransfer im Vollduplex zwischen den seriellen I/0 Schnittstellen SI0/1 32 und S00/I 32, und die externen Datenspeicher durch den D-Bus 8 und die AR 20 und DR 30. Daher ist es möglich, daß die durch den Anweisungsdekoder 5 gesteuerte Mikroanweisungs-Operation und die interne Quelle miteinander konkurrieren.
  • Um die Konkurrenzsituation zu vermeiden, wird der Anweisungsdekoder 5 während 6 Maschinenzyklen für jedes Wort außer Betrieb gesetzt, um die Operation entsprechend der Mikroanweisung durch den Datentransfer durch die DMA Steuereinheit 19 zu unterbrechen.
  • Nach alldem ist der DSSP1 in der Lage, durch Ausführen von Mikroanweisungen die folgenden Operationen parallel innerhalb einer Mikroanweisung auszuführen.
  • (1) Die 9-Bit-Adreßoperation durch die AAU 12, bestehend aus maximal drei Sorten.
  • (2) Die 12E6-Gleitkommamultiplikation durch den FMPL 24.
  • (3) Die 12E6-Gleitkommaoperation durch die FALU 28.
  • (4) Datentransfer durch den D-Bus 8 und das TR 30 zwischen den externen Speichern.
  • (5) DMA Datentransfer durch die seriellen Vollduplex-Zweikanal-I/0-Schnittstellen SI0/1 32 und S00/1 32, den D-Bus 8 und das TR 30 zwischen den externen Speichern.
  • Das Mikroanweisungsausführungs-Timing des DSSP 1 wird mit Bezug auf die Fig. 3 beschrieben. Der Maschinenzyklus 40 des DSSP 1 ist in vier Timingphasen P0 bis P3 unterteilt. Die nominale Maschinenzykluszeit ist 50 ns klein. Dementsprechend ist es praktisch schwierig, innerhalb eines Maschinenzyklusses drei Operationen, nämlich Lesen einer Mikroanweisung von der Anweisungsmaske ROM 2, Dekodieren der Mikroanweisung durch den Anweisungsdekoder 5 und Ausführen der Anweisung durch die internen Quellen, wie etwa der FMPL 24 und die FALU 28, auszuführen. Dementsprechend werden die drei Operationen in drei Stufen für jeden Maschinenzyklus unterteilt, um eine dreistufige Pipeline zu bilden und eine Hochgeschwindigkeitsverarbeitung zu ermöglichen.
  • Die folgenden Operationen werden auf den Stufen der dreistufigen Pipeline ausgeführt.
  • (1) Zugriffs-Stufe 41:
  • Eine Mikroanweisungsadresse wird durch den PC 1 zur Verfügung gestellt, eine Mikroanweisung wird von der Anweisungsmaske ROM 2 gelesen, und die Mikroanweisung wird in das IR 03 gesetzt.
  • (2) Dekodierstufe 42 und 43:
  • Die Mikroanweisung wird von dem IR 03 in das IR 14 transferiert, die Mikroanweisung wird durch den Anweisungsdekoder 5 dekodiert, der Programmsteuermodus wird gesetzt, die Mikroanweisung wird von dem IR03 in den P-Bus 6 transferiert und die Adressieroperation von der AAU 12 durch die AM 9 und die AD 10.
  • (3) Ausführungsstufe 44, 45, 46 und 47:
  • Verarbeitung der Daten durch den FMPL 24 und die FALU 28, Datentransfer durch den D-Bus 8 und Zugang zu den externen Datenspeichern durch die AR 20 und DR 30.
  • Daher benötigt der DSSP1 drei Maschinenzyklen um eine Mikroanweisung auszuführen. Dieser Prozessor führt eine Mikroanweisung in ähnlicher Weise durch die Pipelinemethode aus. Dementsprechend wird die aktuelle Ausführung der Mikroanweisung ab dem Lesen der Mikroanweisung von der Anweisungsmaske ROM 2 um zwei Maschinenzyklen verzögert. Um die Timing-Konkurrenz zwischen den internen Quellen zu vermeiden, sind die internen Busse in den P-Bus 6 und den D-Bus 8 unterteilt und die Anweisungsmaske ROM 2 und der 2P-RAM 21 geteilt. Da jedoch eine Zweiganweisung jeweils in der Dekodierstufe (2) ausgeführt wird, wird die in das IR03 gesetzte Mikroanweisung in der Dekodierstufe ausgeführt. D.h. eine auf eine Zweiganweisung folgende Anweisung wird unkontrolliert ausgeführt. Um eine solche unkontrollierte Ausführung von Anweisungen zu vermeiden, wandelt der DSSP1 während der Ausführung der Zweiganweisung die auf die Zweiganweisung folgende Anweisung automatisch in eine Nicht-Operationsanweisung (NOP) um. Solch eine funktion wird bei der Vereinfachung der Mikroanweisungsbeschreibung angestrebt, es wird jedoch ein Maschinenzyklus in der Verzweigungsoperation verschwendet, und es werden zwei Maschinenzyklen in der indirekten, den D-Bus 8 verwendenden Verzweigungsoperation verschwendet. Im allgemeinen tritt kein Problem in etwa 80 % der unkontrollierten Verzweigungsoperationen auf, sogar wenn die nachfolgende Anweisung ausgeführt wird, wenn die Sequenz der Anweisungsbeschreibung sorgfältig geordnet ist und daher ein Verlust von Maschinenzyklen vermieden werden kann. Der DSSP1 ist jedoch nicht in der Lage, den Verlust von Maschinenzyklen zu vermeiden.
  • Der Mikroanweisungs-Satz des DSSP1 wird im nachfolgenden mit Bezug auf Fig. 3 beschrieben. Ein Mikroanweisungs-Satz schließt nur vier Anweisungen ein, nämlich eine Sequenzanweisung, eine Modenanweisung, eine Verarbeitungsanweisung und eine Ladeanweisung.
  • Die Sequenzanweisung steuert den PC 1 für Schleifen- und Subroutinenaufrufe. Die Modenanweisung initialisiert und setzt die Moden der AAU 12, des Selektierers 16, der LC 17, des SR 18 und der DMA Steuereinheit 19. Die Ladeanweisung wird verwendet, um unmittelbare 18 Bit breite Daten auf die mit dem D-Bus 8 über das BI 7 verbundenen Register zu laden. Die objektiven Quellen der genannten drei Mikroanweisungen werden abhängig von der Anweisungsoperation festgelegt, und andererseits müssen bezüglich der Verarbeitungsanweisung alle internen Quellen, welche in der Lage sind, parallel Operationen auszuführen, direkt spezifiziert werden. Dementsprechend ist die Bitlänge der Anweisungen abhängig von der Bitlänge der Operationsanweisung. Der DSSP 1 verwendet horizontale 32 Bit breite Mikroanweisungen. Der FMPL 24 läuft frei, und keine Anweisung wird dort direkt hingegeben. Die Operation der FALU 28 wird direkt durch eine Anweisung spezifiziert. Die Operationen der FALU 28 werden beispielsweise durch die folgenden Anweisungen gesteuert.
  • (1) Absolutwertanweisung: X
  • (2) Signum-Funktions-Anweisung: Sign (Y) X
  • (3) Additionsanweisung: X + Y
  • (4) Subtraktionsanweisung: X - V
  • (5) Maximalwert-Anweisung: MAX (X, Y)
  • (6) Minimalwert-Anweisung: M1N (X, Y)
  • (7) fixed-to-floating-Übersetzungsanweisung: FLT (X)
  • (8) floating-to-fixed-Übersetzungsanweisung: FIX (X)
  • (9) Verschiebeanweisung: R1, L1 bis L8
  • (10) Logikanweisung: AND, OR, EOR, NOT
  • (11) Mantissenaditionsanweisung: XM + VM
  • (12) Charakteristische Subtraktionsanweisung: XE - VE
  • Es ist jedoch ein Problem im DSSP1, daß die Operation des DSSP1 auf einer Gleitkommaoperation basiert, während der DSSP1 Logik- und Adreßoperationen auf der Basis der Fixpunkt-Operation ausführt. Wie oben erwähnt, sind die Gleitkommaoperation und die Fixpunkt-Operation nicht kompatibel miteinander. Beim Adressieren des Speichers beispielsweise, auf der Basis des Operationsergebnisses, muß die Anweisung (8) durch die FALU 28 ausgeführt werden. Da außerdem Gleitkommadaten nicht mit der allgemeinen Dateneingangs- und Ausgangsoperation verarbeitet werden, muß die Anweisung (7) oder die Anweisung (8) für jede Dateneingangs- oder Ausgangsoperation ausgeführt werden, um die Daten zu übersetzen.
  • Ein anderes Problem des DSSP1 ist es, daß Bits beim Normalisieren von floating-point-Daten immer trunkiert werden und so Fehler in der Operation nach sich ziehen, da die Verarbeitungsgenauigkeit des Signalprozessors begrenzt ist. Wenn jedoch die Gleitkommadaten nur durch Trunkier-Bits normalisiert werden, ist der Absolutwert der Operationsergebnisse immer kleiner als der wahre Wert, wodurch die Fehlerverteilung nicht mehr zufällig ist. Die Fehler können durch Erhöhung der Operationswortlänge als vernachlässigbar klein angesehen werden. Da jedoch der gewöhnliche Signalprozessor bei einer hohen Geschwindigkeit betrieben werden muß, ist die Erhöhung der Operationswortlänge begrenzt.
  • Solch ein Problem kann insbesondere in der Bildsignalverarbeitung nicht ignoriert werden, bei der Zwischenbildverarbeitung durch einen IIR-Digitalfilter (rekursiver Digitalfilter) ausgeführt wird und der DSSP1 die Operationsergebnisse durch eine logische Operationsanweisung oder dergleichen runden muß. Weiterhin wird in den meisten fällen in einem allgemeinen Signalverarbeitungsalgorithmus die Verarbeitungsgenauigkeit für jeden einzelnen Prozeß speziell geregelt, und es stimmt daher die Verarbeitungsgenauigkeit nicht notwendigerweise mit der Operationswortlänge des Signalprozessors überein. In einem solchen Fall wird das Format der Operationsdaten jeweils durch die FALU 28 für jeden einzelnen Prozeß konvertiert.
  • Es ist ein weiteres Problem im DSSP1, daß Operationen, welche in der Lage sind, Hochgeschwindigkeitsverarbeitung vorzunehmen, auf Produktsummen-Operationen begrenzt sind. Solch eine Begrenzung des Operationsmodus ist für FFT- und FIR-Filter kein Problem. Der letztere Signalverarbeitungsalgorhithmus benötigt jedoch eine Bestimmungsoperation für den Grad der Aproximation der Vektoren und d.h. Abstandsberechnung wie durch die nachfolgenden Ausdrücke beschrieben, welche bei einer hohen Verarbeitungsgeschwindigkeit ausgeführt werden müssen.
  • wobei ai und bi Elemente des Vektors sind und N ist die Anzahl der Vektoren.
  • Der DSSP1 ist nicht in der Lage, eine solche Operation zu unterstützen, und daher muß solch eine Operation zur Verarbeitung in vier getrennte arithmetische Operationen aufgeteilt werden. Es müssen daher drei getrennte Operationen zur Berechnung eines einzigen Terms ausgeführt werden. Wenn jeder Term durch Verwendung der genannten Ausdrücke berechnet wird, müssen aufgrund der Verzögerung neun Anweisungen (9 = 3 x 3) für einen Term zur Verfügung gestellt werden, was die Verarbeitungsmenge exzessiv vermindert. Die Verarbeitungsmenge kann natürlich durch Sortieren in differenzielle und Quadratakkumulation durch Speichern von Zwischenresultaten durch den 2P-RAM 21 erhöht werden. Es ist jedoch schwierig, den begrenzten Platz auf dem Datenspeicher effektiv zu nutzen und daher ist es unmöglich, eine große Datenmenge zu verarbeiten.
  • Man betrachtet beispielsweise eine wie in Fig. 4 gezeigte binäre Baumsuche. Angenommen, ein Eingangsvektor ist in den 2P-RAM 21 gesetzt und ein in Baumstruktur aufgebauter Referenzvektor ist den durch Bezugszeichen angedeuteten Knoten in einem externen Speicher gemäß Fig. 5 zugewiesen. Eine Entwicklungsfunktion, welche den Grad der Annäherung zwischen dem Eingangsvektor und dem Referenzvektor , ist eine absolute Differenzialsumme:
  • ausgedrückt,
  • Ein Referenzvektor, welcher die letzte absolute Differenzialsumme zur Verfügung stellt, wird an jedem Knoten des binären Baums ausgewählt, um schließlich einen Referenzvektor zu erhalten, welcher den höchsten Grad der Approximation liefert. In dieser binären Baumsuche, wenn die Zahl der vorhandenen Knoten N ist, wird der Grad der Approximation zwischen zwei Referenzvektoren B an einem Knoten 2n+1 und 2n+2 bestimmt, und dann die Knotennummer eines aus der nächsten Stufe zu vergleichenden Referenzvektors auf der Basis des Grades der Approximation berechnet. Um die genannte binäre Baumsuche durch den DSSP1 auszuführen, sind die folgenden Anweisungsschritte notwendig:
  • Eingangsdatenumwandlung: N + 2 Schritte
  • Auswertungswertberechnung für einen Vektor: 9N + 2 Schritte
  • Auswertungswertrundung: etwa 3 Schritte
  • Auswertungswertvergleich: 4 Schritte
  • Berechnung der Referenzvektor- Adresse für den nächsten Knoten: etwa 9 Schritte
  • Zusammen: 18 N + 14 Schritte I Stufe + N + 2 Schritte.
  • Diese Gesamtzahl der Schritte ist etwa neunmal größer als die Anzahl der Schritte, wenn die zur Auswertungswertberechnung notwendige ideale Anzahl von Schritten 2N beträgt und die Umwandlung von Adressen- und Eingangsdaten nicht notwendig ist. In einem solchen Prozeß ist es notwendig, sich immer über den Kontext der Anweisungen bewußt zu sein, da der gleiche Prozeß nicht sukzessiv ausgeführt wird. Folglich verschlechtert sich die Verarbeitungseffizienz signifikant, ein sehr komplexes Programm ist notwendig, und es entsteht offensichtlich ein Problem hinsichtlich der Menge an Arbeit, welche zur Entwicklung von Programmen notwendig ist.
  • Der so aufgebaute herkömmliche digitale Signalprozessor hat die folgenden Probleme.
  • * Es ist notwendig, sich beim Herstellen eines Programms immer im klaren über den Kontext der Anweisungen zu sein, und die gleichen Anweisungen müßten sukzessive ausgeführt werden, da sonst die Verarbeitungseffizienz nicht verbessert werden kann.
  • * Adressen- und Datenformat sind nicht kompatibel miteinander, daher muß das Format für alle Daten umgewandelt werden, beispielsweise in das Tabellen-Suchformat.
  • * Speziell entworfen zum Erhalten der Produktsumme, ist die Arithmetikeinheit nicht in der Lage, mit hoher Effizienz zu arbeiten und es ist ein komplexes Programm notwendig für andere Operationen als die für das Erhalten einer Produktsumme.
  • * Die Steuerung der Genauigkeit der Datenverarbeitung ist schwierig, und ein automatisches Runden ist unmöglich.
  • * Simultanes Datenlesen und Datenlesen von dem Datenspeicher für 2-Eingang/1-Ausgang-Operationen ist unmöglich, und die Effizienz ist beispielsweise in der Vektordatenverarbeitung extrem vermindert.
  • * Sofortige Spezifikation eines indirekten Adreßmodus in der Anweisung ist unmöglich, und daher muß die Verarbeitung für jeden Adreßmoduswechsel unterbrochen werden.
  • Abriß der Erfindung
  • Die vorliegende Erfindung wurde getätigt, um die Probleme im herkömmlichen digitalen Signalprozessor zu lösen.
  • Dementsprechend ist es eine erste Aufgabe der vorliegenden Erfindung, einen digitalen Signalprozessor zur Verfügung zu stellen, der
  • * kompatible Adressen- und Datenformate besitzt und in der Lage ist, Prozesse mit weniger Wiederholungen derselben Operation auszuführen, ohne die Effizienz zu vermindern,
  • * in der Lage ist, schwierige Prozesse ebenso wie Prozesse der Produktsumme bei einer hohen Verarbeitungsgeschwindigkeit auszuführen,
  • * in der Lage ist, die Datenverarbeitungsgenauigkeit durch einfache Mittel effizient zu steuern,
  • * in der Lage ist, nach und aus einer Arithmetikeinheit bei hoher Geschwindigkeit Vektordaten zu liefern, und in der Lage ist, eine hochflexible Adressierung vorzunehmen.
  • Um die genannten Aufgaben zu lösen, weist die beanspruchte Erfindung den folgenden Aufbau, die folgenden Funktionen und Eigenschaften auf:
  • Ein digitaler Signalprozessor entsprechend der vorliegenden Erfindung gemäß Anspruch 1 enthält einen fünfstufigen Aufbau einschließlich, zusätzlich zu einer Anweisungsausführungspipeline-Stufe, einer Stufe zum Lesen von Daten aus einem Datenspeicher und zum Zuführen der Daten zu einer Arithemtikeinheit und einer Stufe zum Schreiben von durch die Arithmetikeinheit zur Verfügung gestellten Daten in den Datenspeicher, oder Akkumulieren oder Runden der Daten durch einen in der Arithmetikeinheit enthaltenen Akkumulator, einen Barrel-Schieber, ein Multiplizierer und jeweils eine Arithmetiklogikeinheit für die Ausführungsstufe der fünf Stufen befinden sich auf derselben Linie in der Arithmetikeinheit, ein normalisierender Barrel-Schieber für die Schreib-/Akkumulationsstufe ist mit dem Barrel-Schieber verbunden, der Multiplizierer und die Arithmetiklogikeinheit verwendet die Ausgänge des normalisierenden Barrel-Schiebers als Eingänge für einen Addierer zum Runden oder Akkumulieren oder als Ausgänge für die Arithmetikeinheit, ein interner Speicher enthält zwei Dualportspeicher, bei dem einer der Ports, nämlich der Leseport jedes Dualportspeichers, mit den entsprechenden zwei internen Bussen der Arithmetikeinheit und der andere Leseport, nämlich dessen Lese-/Schreibport, mit einem der Ausgangsbusse der Arithmetikeinheit oder mit einem DMA-Transferbus verbunden ist, eine Adressenerzeugungseinheit, welche 2-Eingangs-/1-Ausgang-Datenspeicheradressen zweidimensional und parallel für die Arithmetikeinheit erzeugt und eine DMA-Steuereinheit für das zweidimensionale Transferieren von Daten zwischen dem internen Datenspeicher und einem externen Datenspeicher unter Verwendung des DMA-Busses sind für die Anweisungsausführungsstufe vorgesehen, und die entsprechenden Datenformate der Adressenerzeugungseinheit, der DMA-Steuereinheit und der Arithmetikeinheit sind miteinander kompatibel.
  • Der digitale Signalprozessor gemäß der vorliegenden Erfindung spezifiziert die Operationen der Arithmetikeinheit einheitlich und operiert mit Mikroanweisungs-Codes, welche durch Kombinieren von Funktions-Codes entsprechend den Operationen der Arithmetikeinheit und 2-Quellen- und 1-Zielsteuercodes entsprechend dem normalisierenden Barrel-Schieber, den beiden Eingängen und dem Ausgang aufgebaut sind.
  • Daher eliminiert die Anweisungsausführungspipeline-Stufe der vorliegenden Erfindung den größten Teil einer Mikroanweisungsbeschreibung, wenn man die verzögerte Verarbeitung berücksichtigt, und ist in der Lage, effizient zu arbeiten, sogar wenn die Wiederholfrequenz der Ausführung derselben Anweisung nicht sehr groß ist.
  • Die Arithmetikeinheit des digitalen Signalprozessors gemäß einer weiteren Ausführungsform der vorliegenden Erfindung führt die Berechnung eines Terms der Produktsumme, der absoluten Differentialsumme und der differenziellen Quadratsumme und das Runden und Verschieben der Daten in einer einem Maschinenzyklus entsprechenden Zeit aus. Der interne Datenspeicher und der Busaufbau ermöglichen die Ausführung von 2-Eingangs- und 1-Ausgang-Datentransfer zur Arithmetikeinheit parallel zur arithmetischen Verarbeitung, und die Kombination des internen Datenspeichers, des Busaufbaus und der Adressenerzeugung für die zweidimensionale Adressenerzeugung ermöglicht effiziente Verarbeitung von Vektordaten.
  • Da das Datenformat des Adressenerzeugers kompatibel mit dem der Arithmetikeinheit ist, ist Datenumwandlung in tabellenlesbare Form und in bezug auf ein Lexikons unnötig.
  • Die DMA-Steuereinheit führt einen zweidimensionalen Datenempfang von dem externen Datenspeicher parallel mit der internen Verarbeitung aus, um die Verarbeitungszeit für den Dateneingang und -ausgang effektiv zu verkürzen.
  • Der Mikroanweisungssatz, welcher durch eine weitere Ausführungsform der vorliegenden Erfindung verwendet wird, spezifiziert die Kombination der Operationen der internen H/W-Quellen einheitlich, um die Programmbeschreibung zu vereinfachen, und spezifiziert die Anzahl von Datendigits und Quellenziel-Adressenerzeugungsformeln für jede Mikroanweisung, um die direkte Steuerung der Digit-Anpassung für eine komplexe Datenverarbeitung und das Abtasten von Datenspeichern zu ermöglichen. Dementsprechend ist die Notwendigkeit, den Kontext der Anweisung zu berücksichtigen, bis auf das Kleinstmögliche begrenzt, ist die Programmbeschreibung vereinfacht und kann das Programm leicht in einer höheren Sprache wie etwa C geschrieben werden. Gemäß einer bevorzugten Ausführung der vorliegenden Erfindung speichertjeder der Adressengeneratoren der Adressenerzeugungseinheit eine Adresse über den internen Datenbus im Adressenregister, speichert einen Indexwert über den internen Datenbus im Indexregister, addiert den Indexmodifizierungswert, eine durch eine Mikroanweisung spezifizierte Verschiebung und den Inhalt des Adressenregisters, frischt gleichzeitig den Inhalt des Adressenregisters durch Verwendung des Ergebnisses der Addition und behandelt das Ergebnis der Addition als eine Datenspeicheradresse und eine zweidimensionale oder andere Adressierung durch eine Kombination der Mikroanweisungen durch sequentielles Zuweisen jedes Adressengenerators zum Adresserzeugungsmodus jeder Mikroanweisung.
  • Gemäß einer weiteren bevorzugten Ausführungsform odnen die Direktspeicherzugriffssteuereinheit und die Direktspeichertransferadressenerzeugungseinheit sequentiell den rechtwinkligen Abschnitt von Zeile k x Spalte l (k und l sind positive ganze Zahlen) eines zweidimensionalen Datenadressenraumes mit m Zeilen und n Spalten (m und n sind positive ganze Zahlen) zu, um die externe Datenspeicherschnittstelleneinheit zu adressieren, ordnen Adressen den mehreren Dual-Port-Speichern in einer aufsteigenden Reihenfolge von einer optionalen Startadresse zu, und selektieren eine der mehreren Dual-Port-Speicher durch das höchste Bit der Adresse oder einer Vielzahl von Bits der Adresse für einen zweidimensionalen Datentransfer zwischen den Dual-Port-Speichern und dem externen Datenspeicher, und werden eine Transferrichtung und die Anzahl der zu transferierenden Daten durch eine Mikroanweisung beim Starten des direkten Speichertransfers spezifiziert, und informiert die Direktspeicherzugriffssteuereinheit die Sequenzsteuereinheit vom Ende des Datentransfers beim Beenden des direkten Speichertransfers, um gleichzeitig Übertragungsdaten in einen rechtwinkligen Block aus k Zeilen x l Spalten zwischen dem Dual-Port-Speicher und dem externen Datenspeicher sowie interne arithmetische Prozesse zu implementieren.
  • Die Sequenzsteuereinheit ist vorzugsweise so ausgebildet, daß sie bedingte Verzweigungsoperationen implementiert, die mit einer Vielzahl von Verzweigungsbedingungen auf einer Mikroanweisung arbeiten, indem eine Vielzahl von Bedingungen in einem speziellen Register zuvor gespeichert wird, Anweisungsspeicheradressen zuvor gespeichert werden, zu denen das Programm verzweigt wird, wenn die Verzweigungsbedingungen in den Registern entsprechend den Verzweigungsbedingungen angefunden werden, die Vielzahl von Verzweigungsbedingungen parallel auf einer Mikroanweisung getestet wird, das Programm in eine der Anweisungsspeicheradressen verzweigt wird, die in dem speziellen Register entsprechend den Verzweigungsbedingungen mit der höchsten Priorität unter den aufgefundenen Bedingungen gespeichert worden sind, und das Programm zu der Anweisungsspeicheradresse verzweigt, die in dem speziellen Register entsprechend all den nicht aufgefundenen Verzweigungsbedingungen gespeichert ist.
  • Bei einer weiteren bevorzugten Ausführungsform der vorliegenden Erfindung weist die Sequenzsteuereinheit einen Schleifenzähler und einen Wiederholungszähler auf, die in der Lage sind, Anfangswerte aus den internen Datenbussen zu erhalten und deren Inhalte zur Verfügung zu stellen, wobei der Inhalt des Wiederholungszählers für jede Ausführung der Mikroanweisung um 1 herabgezählt und die gleiche Mikroanweisung solange wiederholt ausgeführt wird, bis sich der Inhalt des Wiederholungszählers auf 0 reduziert hat, wenn die Wiederholung durch die erste Mikroanweisung der Wiederholungsoperation angewiesen wird, der Inhalt des Schleifenzählers um 1 heruntergezählt wird, wenn die Schleife durch eine Mikroanweisung angewiesen wird, das Programm in eine Anweisungsspeicheradresse verzweigt wird, die durch die Mikroanweisung spezifiziert ist, wenn der Inhalt des Schleifenzählers nach Herabzählen nicht 0 ist, und die Verzweigung zum Beenden der Schleifenoperation nicht vollständig ist, wenn der Inhalt des Schleifenzählers nach dem Herabzählen 0 ist, um eine einzelne Mikroanweisung oder eine Vielzahl von Mikroanweisungen durch einen vorbestimmten Zyklus zu wiederholen.
  • Gemäß einem weiteren Aspekt der Erfindung teilt die externe Datenspeicherschnittstelleneinheit den externen Datenspeicher in zwei Teile, indem eine Adresse verwendet wird, die vorher durch eine Mikroanweisung als Grenze spezifiert worden ist, behandelt den externen Datenspeicher als ein Hochgeschwindigkeitsspeicher, erzielt der Lese-/Schreiboperationen innerhalb eines Maschinenzyklusses beim Adressieren einer der beiden Teile des externen Datenspeichers und behandelt den externen Datenspeicher als Niedriggeschwindigkeitsspeicher, der solange auf Stand-by steht, bis ein externes Lese/Schreibabbruchsignal beim Adressieren des anderen Teils des externen Datenspeichers erfaßt wird.
  • Vorzugsweise ist der Anweisungsspeicher teilweise oder ganz wiederaufladbar, werden funktionalen Prozessen entsprechende Mikroprogramme durch eine externe Vorrichtung in den wiederaufladbaren Anweisungsspeicher geschrieben, um den digitalen Signalprozeß in die Lage zu versetzen, komplexe und diversifizierte Prozesse zu implementieren, und werden automatisch Mikroprogramme durch einen externen Speicher zur Verfügung gestellt, wenn die Mikroprogramme nicht in den Anweisungsspeicher geschrieben sind.
  • Die Mikroanweisung kann bevorzugt ein Mikroanweisungssatz sein, der aus einem Funktionscode, welcher einheitlich eine Operation in jeder Stufe der fünfstufigen Pipeline entsprechend der Art der Operation spezifiziert, einem Eingangszuweisungscode und einem Ausgangszuweisungscode, welche einzeln den Adressenerzeugungsmodus des Adressengenerators der Adresserzeugungseinheit für jede Mikroanweisung entsprechend mindestens einem 2-Eingang-/1-Ausgang- oder einem 1-Eingang-/1-Ausgang-Datenspeicher anweisen, einem resourcenspezifizierenden Code, welcher den Objektdatenspeicher oder das Register der Dateneingänge/-Ausgänge spezifiziert, der Anzahl der Verschiebebits des normierten Barrel-Schiebers der Ausführungseinheit, einem Testbedingungscode, welcher die Art der Operation bestimmt, einem unmittelbaren Datenwert und einem Haltebedingungscode besteht.
  • Gemäß einer weiteren Ausführungsform der Erfindung weist die externe Datenspeicheradresse willkürlich eine Adresse für die Kommunikation zwischen den Prozessoren zu, wobei die Adresse einem externen First- In/First-Out-Speicher oder externen Dual-Port-Speicher für die Kommunikation entspricht, um diese oder andere Prozessoren miteinander zu verbinden, um eine Vielzahl von Prozessoren in die Lage zu versetzen, komplexe Prozesse bei einer hohen Verarbeitungsgeschwindigkeit zu implementieren.
  • Bei einer weiteren Ausführungsform der vorliegenden Erfindung wird das höchstwertige Bit von Datenbits von dem geringstwertigen Bit, das durch Verschiebung abgeschnitten wird, beim Anpassen der Zahl von Bits durch Verschieben in Richtung des geringstwertigen Bits durch den normierten Barrel-Schieber als ein Übertragbit verwendet, wobei der Addierer einen Operationsmodus aufweist, in dem eine Datenrundungsoperation oder eine Datenrundungsakkumulation durch Addition mit dem Übertragbit unter Verwendung der Inhalte der Arbeitsregister oder Nulldaten ausgeführt werden und der Operationsmode durch direktes Kontrollieren des Addierers durch Setzen eines Modus oder einer Mikroanweisung zugeordnet wird.
  • Gemäß einer weiteren bevorzugten Ausführungsform der vorliegenden Erfindung entscheidet die Arithmetiklogikeinheit der Ausführungseinheit, ob eine Testbedingung (z.B. eine Bedingung, daß zwei Eingangsdaten gleich sind) zum Testen des Ergebnisses eines durch eine Mikroanweisung spezifizierten Vergleiches beim Vergleichen der Größen von zwei Eingangsdaten oder Testen eines speziellen Bit in einem Eingangswert erfüllt ist oder nicht, und sequentiell die Ergebnisse der Entscheidung in einer vertikalen Richtung des speziellen Schieberegisters für jede vergleichende Mikroanweisung Bit für Bit speichert, den horizontalen fnhalt des Schieberegisters von den internen Datenbussen ausliest und die Vielzahl der Entscheidungsergebnisse, die durch eine vielfache Wiederholung der Vergleichsmikroanweisungen gewonnen wurden, als einen Suchablaufcode im Baumsuchverfahren oder zur kombinierten Verzweigungsoperation, basierend auf einer Vielzahl von Bedingungen, verwendet.
  • Kurzbeschreibung der Zeichnungen:
  • Fig. 1 ist ein Blockschaltbild, welches den Aufbau des DSSP1 als ein erstes Beispiel eines herkömmlichen digitalen Signalprozessors zeigt;
  • Fig. 2 ist ein Zeitdiagramm als Hilfe bei der Erklärung des Anweisungsausführungs-Timings des DSSP1 der Fig. 1;
  • Fig. 3 ist eine Darstellung eines durch den DSSP1 der Fig. 1 auszuführenden Mi kroanweisungssatzes;
  • Fig. 4 ist ein Diagramm zur Erklärung der binären Baumsuchoperation;
  • Fig. 5 ist ein Diagramm, welches ein Beispiel einer Anordnung von Referenzvektoren gemäß Fig. 4 in einem Datenspeicher zeigt;
  • Fig. 6 ist ein Blockschaltbild eines digitalen Signal prozessors in einer bevorzugten Ausführungsform entsprechend der vorliegenden Erfindung;
  • Fig. 7 ist ein Blockschaltbild einer in dem digitalen Signalprozessor der Fig. 6 enthaltenen Arithmetikeinheit;
  • Fig. 8 ist eine blockschaltbildartige Darstellung, welche den Aufbau eines internen Datenspeichers zeigt, welcher in dem digitalen Signalprozessor gemäß Fig. 6 enthalten ist;
  • Fig. 9 ist eine blockschaltbildartige Darstellung, welche den Aufbau eines Adressengenerators zeigt, welcher in dem digitalen Signalprozessor gemäß Fig. 6 enthalten ist;
  • Fig. 10 ist ein Zeitdiagramm zur Erläuterung des Timings der Operationen des digitalen Signalprozessors gemäß Fig. 6; und
  • Fig. 11 ist eine Darstellung eines Beispiels eines Mikroanweisungssatzes, welcher durch den digitalen Signalprozessor gemäß Fig. 6 ausgeführt wird.
  • Detaillierte Beschreibung der bevorzugten Ausführungsformen
  • Eine bevorzugte Ausführungsform der vorliegenden Erfindung wird im folgenden mit Bezug auf die beiliegenden Zeichnungen beschrieben.
  • Bezug nehmend auf Fig. 6, welche einen digitalen Signalprozessor in einer ersten Ausführungsform entsprechend einer Ausführungsform der vorliegenden Erfindung zeigt, sind dort gezeigt: Ein den digitalten Signalprozessor mit einem externen Erweiterungsmikroanweisungsspeicher verbindender externer Programmbus 200, ein intern beschreibbarer Anweisungsspeicher (WCS) 201, eine Sequenzsteuereinheit 202, welche eine über den externen Programmbus 200 oder von der WCS 201 gelesene Mikroanweisung empfängt und eine vorbestimmte Steueroperation in einer Anweisungsausführungspipeline ausführt, eine Adressenerzeugungseinheit 203, welche 2-Eingangs-, 1-Ausgangs-Adressen parallel für Datenspeicher erzeugt, drei interne Datenbusse 204 zum Paralleltransfer der 2-Eingangs- 1-Ausgangsdaten, wobei jeder eine Breite von 24 Bit aufweist, ein externer Bus 211, welcher an einen externen Erweiterungsdatenspeicher angeschlossen ist, ein externer Datenspeicher (I/F) 205 zum selektiven Verbinden eines der drei internen Datenbusse 204 mit dem externen Datenbus 211, eine Arithmetikeinheit 206, welche vorbestimmte Operationen ausführt und mit den drei internen Datenbussen 204 verbunden ist, ein interner Datenspeicher (M0) 207, welcher einen Leseanschluß und einen Lese-/Schreibanschluß besitzt und mit den internen Datenbussen 204 verbunden ist, ein interner Datenspeicher (M1) 208 ähnlich dem M0 207, welcher mit den internen Datenbussen 204 verbunden ist, eine DMA-Steuereinheit 209, welche mit einem externen Datenspeicheradressiergenerator und einem internen Datenspeicheradressiergenerator versehen ist, ein DMA-Bus 210 zum DMA-Transfer zwischen den externen Datenbussen 211 und dem M0 207 und M1 208, ein Reset-Terminal 212, durch welches ein externes Reset-Signal der Sequenzsteuereinheit 202 zur Verfügung gestellt wird, und ein Unterbrecherterminal 213, dem ein externes Unterbrechnungssteuersignal zur Verfügung gestellt wird.
  • Fig. 7, welche den Aufbau einer Arithmetikeinheit 206 gemäß Fig. 6 darstellt, zeigt einen X-Bus 220 zum Transferieren von Operandendaten zwischen den drei internen Datenbussen 204, einen Y-Bus 221 zum Transferieren von Operandendaten zwischen den drei internen Datenbussen 204, einen Z-Bus 222 zum Transferieren von Ausgangsdaten zwischen den drei internen Datenbussen 204, einen Barrel-Schieber (B- SFT) 223 mit-einer Wortlänge von 24 Bit, zum Verschieben und Rotieren von Eingangsdaten um eine vorbestimmte Zahl von Bit in einem Maschinenzyklus, eine Arithmetiklogikeinheit (ALU) 224 mit einer Wortlänge von 24 Bit, welche eine vorbestimmte arithmetische und logische Operation oder absolute Differenzberechnung in einem Maschinenzyklus ausführt, einen Multiplizierer (MPY) 225, welcher eine Multiplikation von 24 Bit ausführt und das Multiplikationsergebnis von 47 Bit in einem Maschinenzyklus zur Verfügung stellt, ein Datenpipelineregister (DPR0) 226, welches die Ausgangsdifferenz der ALU 224 temporär hält und die Ausgangsdifferenz dem Quadrat-Eingangsanschluß der MPY 225 zur Verfügung stellt, um die Quadratdifferenz zu berechnen, einen Multiplexer 227, welcher entweder den 24-Bit-Ausgang des B-SFT 223 oder den 24-Bit-Ausgang des ALU 224 auswählt und den ausgewählten Ausgang einem Datenpipelineregister (DPR1) 229 zum temporären Halten des Ausgangs des Multiplexers 227 zur Verfügung stellt, ein Datenpipelineregister (DPR2) 228 zum temporären Halten des 47-Bit-Ausgangs des MPY 225, ein normalisierender Barrel-Schieber (N-SFT) 230, welcher selektiv entweder die 24-Bit-Daten des DPR1 229 oder die 47-Bit-Daten des DPR2 228 empfängt und die empfangenen Daten zur vorbestimmten Digit-Anpassung in einem halben Maschinenzyklus verarbeitet, um 24-Bit-Daten zur Verfügung zu stellen, ein 24-Bit-Ausgang 231 des N-SFT 230, ein Arbeitsregister (Wr) 235 im '24 Bit x 8 Wort'-Aufbau, ein 24-Bit-Akkumulationsausgang 232 des Wr 235, einen Addierer (AU) 233 zur Akkumulation und Rundung, einen 24-Bit-Ausgang 234 des AU 233, ein Flag-Ausgang 236 des ALU 224, ein Flag-Prüfschaltkreis 237 für die Zustandsprüfung des flag-Ausgangs 236, ein Zustandsprüfschieberregister (tcsr) 238 von 24 x 1 Bit zum sequentiellen Speichern der 1-Bit-Ausgänge des Flag-Prüfschaltkreises 237, nämlich die Ergebnisse der Entscheidungen des Flag-Prüfschaltkreises 237, und ein 1-Bit-Träger 239, welcher das höchste Bit zur Verfügung stellt, welches herausgeschoben wurde, als der N-SFT 230 eine Verschiebeanweisung zum Verschieben in der LSB-Richtung geliefert hat, nämlich nach rechts zu verschieben.
  • Fig. 8 stellt die Beziehung zwischen den internen Datenspeichern und den internen Datenbussen des digitalen Signalprozessors gemäß Fig. 6 dar. Fig. 8 zeigt einen Multiplexer 240, welcher 24-Bit-Daten am Leseanschluß des M0 207 selektiv dem X-Bus 220 oder dem Y-Bus 221 zur Verfügung stellt, einen Multiplexer 241, welcher 24-Bit-Daten am Leseanschluß des M1 108 selektiv dem X-Bus 220 oder dem V-Bus 221 zur Verfügung stellt, einen Multiplexer 242, welcher entweder Schreibdaten auf dem DMA-Bus oder Schreibdaten auf dem Z-Bus 222 auswählt und die ausgewählten Daten dem Lese-/Schreibanschluß des M0 207 liefert, einen Multiplexer 242, welcher entweder Schreibdaten des ZBusses 222 oder Schreibdaten des DMA-Busses 210 auswählt und die ausgewählten Daten dem Lese-/Schreibanschluß des M1 208 zur Verfügung stellt, ein 2-2-Adressenselektierer 244, welcher eine Schreibadresse D-Adresse 247 und eine interne Datenspeicheradresse E-Adresse 248 der DMA-Steuereinheit 202 selektiv entweder dem Lese/Schreibanschluß des M0 207 oder dem Lese-/Schreibanschluß des M1 208 zur Verfügung stellt, eine S0-Adresse 245, d.h. die Leseanschlußadresse des M0 207, eine S1-Adresse 246, d.h. die Leseanschlußadresse des M1 208, eine Schreibadresse 247 für den M0 207 oder den M1 208 und eine I-Adresse, d.h. eine interne Speicheradresse, entsprechend dem durch den DMA-Bus 210 transferierten Daten.
  • Fig. 9 zeigt den Aufbau der Adreßerzeugungseinheit 203 gemäß Fig. 6. Fig. 9 zeigt Verschiebungsdaten 250, angedeutet durch einen in eine der Sequenzsteuereinheit 202 zur Verfügung gestellten Mikroanweisung eingeschlossenen Zwischenwert, ein '24 Bit x 4 Wort'-Adreßregister (AR) 251, ein '12 Bit x 4 Wort'-Indexmodifizierregister (IXR) 252, einen Daten-I/O-Bus 253, welcher das AR 251 mit dem X-Bus 220 verbindet, ein Daten-I/O-Bus 254, welcher das IXR 252 mit dem X-Bus 220 verbindet, ein 24-Bit-Wort langer Adressenaddierer 255, drei individuelle Adreßerzeuger (AGUs) 256, ein Schreibadreßpipelineregister (DAPR3) 257 zum Verzögern einer 24-Bit-Schreibadresse um einen Maschinenzyklus und ein Schreibadresspipel ineregister (DAPR4) 258, ähnlich dem DAPR3 257.
  • Fig. 10 ist ein Diagramm zur Erläuterung einer Anweisungsausführungspipeline im fünfstufigen Aufbau des digitalen Signalprozessors der Fig. 6. Fig. 10 zeigt einen vierphasigen Maschinenzyklus 206, eine Zugriffsstufe 261, eine Dekodierstufe 262, ein Adressenerneuerungs-Timing 263 in der hinteren Hälfte der Dekodierstufe, einer Lesestufe 264, eine Ausführungsstufe 265, eine Schreib-/Akkumulationsstufe 267 und ein Normalisierungs-Timing 266 in der ersten Hälfte der Schreib-/Akkumulationsstufe 267.
  • Fig. 11 zeigt einen Teil eines Mikroanweisungssatzes für den digitalen Signalprozessor der Fig. 6. Fig. 11 zeigt eine Ladeanweisung 270, eine Verzweigungsanweisung 271, eine 1-Quellenverarbeitungsanweisung 272, eine 2-Quellenverarbeitungsanweisung 273, einen Quellenspezifiziercode 274, einen Zielspezifiziercode 275, einen Quelle- 0-Spezifiziercode 276 und einen Quelle-1-Spezifiziercode 277.
  • Die Operation des digitalen Signalprozessors wird im nachfolgenden beschrieben, wobei die Komponenten durch Abkürzungen bezeichnet sind.
  • Als erstes wird die allgemeine Arbeitsweise des digitalen Signal prozessors kurz mit Bezug auf Fig. 6 beschrieben. Der digitale Signalprozessor der vorliegenden Erfindung, ähnlich dem herkömmlichen digitalen Signalprozessor, weist separat zur parallelen Ausführung von Mikroanweisungen den Programmbus 200 und den Datenbus 204 zur Übermittlung einer Mikroanweisung an die Sequenzsteuereinheit 202, Dateneingabe und -ausgabe der Arithmetikeinheit 206 über den Datenbus 204, parallelen Erzeugung von 2-Eingangs/I-Ausgang-Datenadressen durch die Adreßerzeugungseinheit 203 und Zugriff der M0 207, M1 208 und des I/F 205 auf den externen Datenspeicher auf. Die DMA-Steuereinheit 209 führt einen DMA-Datentransfer über den DMA-Bus 210 zwischen den M0 207, M1 208 und der I/F 205 unabhängig von der internen Verarbeitung durch. Jede Ausführungseinheit arbeitet ähnlich der des herkömmlichen digitalen Signalprozessors auf Registerbasis. In diesem digitalen Signalprozessor schließt die Anweisungsausführungspipeline Dateneingangs- und -ausgangsstufen ein, da die meisten Anweisungen (Instruktionen bzw. Befehle) keine verzögerte Bearbeitung benötigen. Dementsprechend kann beim Implementieren der Addition beispielsweise durch die Arithmetikeinheit 206 die Eingabe und Ausgabe umfassende Additionsanweisung durch eine Mikroanweisung in einem Schritt ausgeführt werden. Folglich kann sogar in einem Programm mit verschiedenen kombinierten arithmetischen Operationen eine Mikroanweisung in einer einem Maschinenzyklus entsprechenden Zeit ausgeführt werden.
  • Das Ergebnis der Ausführung einer Anweisung kann jedoch nach drei Anweisungsschritten entsprechend der Differenz in der Anzahl der Stufen zur Lesestufe der nächsten Anweisung verwendet werden. Dieser digitale Signalprozessor führt, um Verluste zu vermeiden, die meisten Operationen mit einem Ergebnis, welches sofort in kombinierten Operationen verwendet werden muß, durch eine Anweisung aus.
  • Dementsprechend leiden die meisten Programme nicht unter Verlusten. Die Arithmetikeinheit 206 und die Adressenerzeugungseinheit 203 sind in Datenwortlänge und -format gleich und sind miteinander vollständig kompatibel.
  • Daher kann bei Prozessen wie etwa beim Tabellenleseprozeß oder Lexikonleseprozeß das Ergebnis der Verarbeitung direkt in eine Datenspeicheradresse umgewandelt werden.
  • Die Funktionen der Arithmetikeinheit 206 werden im nachfolgenden mit Bezug auf die Fig. 7 beschrieben. Der B-SFT 123, die ALU 224 und der MPY 225 sind in der Lage, in einem Maschinenzyklus zu arbeiten, und arbeiten in einer Ausführungsstufe zwischen Anweisungsausführungspipelinestufen. In der nächsten Stufe, d.h. einer Schreib-/Akkumulationsstufe, ist der N-SFT 230 in der Lage, Digit-Anpassung vorzunehmen, und liefert das Ergebnis 231 dem Z-Bus 222 zum Schreiben des Ergebnisses in den Datenspeicher; die AU 233 ist in der Lage, die Inhalte 232 des Wr 235 zu akkumulieren oder zu runden, um das Ergebnis 234 der Akkumulation oder der Rundung in das Wr 235 zu schreiben. Das DPR1 229 und das DPR2 228 sind Register, um die Ergebnisse in die nächste Stufe zu transferieren. Daher wird die kombinierte Operation in der folgenden Art und Weise ausgeführt.
  • Produktsumme: MPY 225 -- > DPR -- > N-SFT 230 -- > AU 233 -- > Wr 235
  • Absolute Differenzsumme: ALU 224 -- > MUX 227 -- > DPR 1
  • 229 -- > N-SFT 230 -- > AU 233 -- > Wr 235
  • Differenzquadratsumme: ALU 224 -- > DPR0 226 -- > MPY 225 -- > DPR2 228 -- > N-SFT 230 -- > AU 233 -- > Wr 235
  • Die Differenzquadratsumme wird durch verzögerte Verarbeitung des DPR0 226 erhalten. Diese Anweisung wird jedoch in den meisten fällen kontinuierlich verwendet, und es sind daher der Anweisung zuzuordnende Probleme vernachlässigbar.
  • Der digitale Signalprozessor führte die Rundung durch die folgende Prozedur aus. DPR1 229 Ausgang 24 Bits N-SFT 230 Ausgang 8-Bit Verschiebung nach rechts) Ubertrag 239 AU 233 Ausgang 234 Übertrag Addition
  • Daher ist das höchste durch den N-SFT 230 herausgeschobene Datenbit ein Übertrag, und die AU führt eine Übertragsaddition aus, um die Daten zu runden, und daher ist das Ziel des Ergebnisses der Rundung auf das Wr 235 begrenzt.
  • Dann prüft der Flag-Prüfschaltkreis 237 das Flag 236, welches das Ergebnis der Vergleichsoperation der ALU 224 in bezug auf einen durch eine Mikroanweisung spezifizierten Bedingungscode anzeigt und einen 1-Bit-flag zur Verfügung stellt, welcher anzeigt, daß die Bedingung erfüllt oder nicht erfüllt wurde. Durch den Flag-Prüfschaltkreis 237 gelieferte flags werden sequentiell in das tcsr 238 gesetzt. Beispielsweise kann der Selektionsprozeß bei Bestimmung des Maximalwertes und des Minimalwertes von zwei Eingangsdaten gespeichert werden. Die laterale Anordnung der Inhalte des tcsr 238 vom MSB bis zum LSB stimmt mit dem Indexcode bei der binären Baumsuche überein.
  • Der Aufbau der internen Datenspeicher wird im folgenden mit Bezug auf Fig. 8 beschrieben. Die M0 207 und M1 208 sind '24 Bit x 512 Wort'-2-Port RAMs. Beim parallelen Zuführen zweier Eingangsdaten zur Arithmetikeinheit 206 werden die Ausgangssignale der jeweiligen Leseanschlüsse der M0 207 und M1 208 auf dem X-Bus 220 bzw. dem Y-Bus 221 über die Selektoren 240 und 241 zur Verfügung gestellt. Zu diesem Zeitpunkt werden eine S0-Adresse 245 und eine S1-Adresse 246 dem M0 207 bzw. dem M1 208 zur Verfügung gestellt. Wenn sowohl die Quelle als auch das Ziel Datenspeicher auf Vektoradditionsbasis gemäß + -- > sind, werden darüber hinaus Daten vom Z-Bus 222 über den MUX 242 oder den MUX 243 dem Lese-/Schreibanschluß der M0 207 oder M1 208 zur Verfügung gestellt. Es tritt daher in der internen Verarbeitung keine Buskonkurrenz auf.
  • Der Aufbau der Adressenerzeugungseinheit 203 wird im nachfolgenden mit Bezug auf Fig. 9 beschrieben. Die Adressenerzeugungseinheit 203 umfaßt die drei AGUs 256, nämlich den S0-Adressenerzeuger (AGU0) 256, den S1-Adressenerzeuger (AGU1) 256 und den D-Adressenerzeuger (AGU2) 256. Jeder AGU 256 hat das '24 Bit x 4 Wort'-AR 251 und das '12 Bit x 4 Wort'-IXR 252. Der Adressenaddierer 255 addiert zur zweidimensionalen Adressenerzeugung drei Terme der Verschiebung 250, des AR 251 und des IXR 252.
  • Obwohl die AGU 256 in der Dekodierstufe arbeitet, besteht eine Stufendifferenz entsprechend den beiden Stufen zwischen der Dekodierstufe und der Schreib-/Akkumulationsstufe und daher wird die D- Adresse 247 durch die AGU 2 zur Verfügung gestellt, nachdem sie durch die DAPR3 257 und die DAPR4 258 um zwei Maschinenzyklen verzögert wurde. Die ARs 251 und die IXRs 252 sind mit dem X-Bus 220 verbunden. Das Datenformat der Adreßerzeugungseinheit 203 ist mit dem der Arithmetikeinheit 206 kompatibel. Dementsprechend können zum Beispiel beim Tabellenlesen Daten direkt von dem Wr 235 durch den X- Bus 220 zum AR 251 transferiert werden und können, ohne die S0- Adresse 245 oder die S1-ADresse 256 zu wechseln, zur Verfügung gestellt werden.
  • Die Anweisungsausführungspipeline des digitalen Signalprozessors wird nun mit Bezug auf die Fig. 10 beschrieben. Die Anweisungsausführungspipeline umfaßt die folgenden fünf Stufen für eine Anweisung:
  • (1) Zugriffsstufe 261
  • Ausgang des Programmzählers und Lesen einer 1-Wort-Mikroanweisung (48 Bit)
  • (2) Dekodierstufe
  • Dekodierung 262 der Mikroanweisung und Adressenerneuerung 263
  • (3) Lesestufe 264
  • Lesen von Quellendaten aus Datenspeichern oder Registern durch den X-Bus 220 und den Y-Bus 221
  • (4) Ausführungsstufe 265
  • Ausführung durch die B-SFT 223, die ALU 224 und die MPY 225
  • (5) Lese-/Akkumulationsstufe
  • Normalisierung 266 durch die N-SFT 230 und Runden/Akkumulation durch die AU 233 oder Schreiben von Daten in den Datenspeicher
  • In der Schreib-/Akkumulationsstufe (5) wird der Ausgangswert der AU 233 nur in dem Wr 235 gespeichert und der Z-Bus 222 und die AU 233 befinden sich in ausschließlicher Beziehung, bei der die AU 233 nicht verwendet wird, wenn der Z-Bus verwendet wird, und daher ist das Timing 267 des Datenschreibens durch die AU 233 das gleiche wie das des Datenschreibens über den Z-Bus 222.
  • Da die Anweisungen gemäß vorstehender Sequenz ausgeführt werden, ist die Berücksichtigung der komplexen Verzögerung beim Herstellen eines Programms praktisch unnötig, und daher kann ein effizientes Mikroprogramm unter Verwendung eines Compilers für höhere Sprachen hergestellt werden.
  • Fig. 11 zeigt Beispiele von durch den digitalen Signalprozessor der vorliegenden Erfindung verwendeten Mikroanweisungssätzen. Alle Mikroanweisungssätze sind horizontale 1-Wort-Anweisungssätze mit einer Wortlänge von 48 Bit. Der Anweisungssatz wird nicht für die parallele Spezifikation von internen Quellen verwendet, welche in der Lage sind, eine simultane Verarbeitung durchzuführen. Die Kombination der Quellenverarbeitung in jeder Stufe wird durch einen Funktionscode gemäß der Anweisung spezifiziert. Somit wird die Mikroanweisungsbeschreibung vereinfacht.
  • Die Anweisungssätze werden grob unterteilt in Laden 270, Verzweigen 271, eine 1-Quellenoperation 272 und eine 2-Quellenoperation 273. Ein Quellcode 274 zur Steuerung des Quellenziels, ein Zielcode 275, ein Quellen-0-Code 276 und ein Quellen-1-Code 277 werden entsprechend dem Funktionscode gesetzt. Wenn die Datenspeicher die objektgesteuerten Elemente darstellen, stellen diese Codes Adressiercodes zum Spezifizieren der entsprechenden AGUs 256 der Adressenerzeugungseinheit 203 dar. Die AGUs werden durch Quellcodes identifiziert. Der Adressiermodus kann gewechselt werden, und das Setzen von Normalisierungsverschiebewerten kann für jede Operationsanweisung unter Verwendung des Anweisungssatzes verändert werden, so daß ein komplexer Signalverarbeitungsalgorithmus mit kleinstem Verlust programmiert werden kann.
  • Beispielsweise kann bei Ausführung der binären Baumsuche gemäß Fig. 4 die Operation des digitalen Signalprozessors zur Berechnung einer Approximation wie folgt programmiert werden:
  • rep N
  • {subaa sc0, sc1, wrx} Wiederhole N-mal
  • sc0: Eingangsvektor-Adressensteuerung
  • scl: Referenzvektor-Adressensteuerung
  • Wrx: Arbeitsregister=Spezifikation
  • Diese Operation benötigt N+1 Maschinenzyklen. Die Approximation eines Referenzvektors der Richtung 0 und eines Referenzvektors der Richtung 1 kann durch zweimaliges Wiederholen des Programms bestimmt werden. Ein Prozeß zur Bestimmung eines Referenzvektors mit hoher Approximation und zur Ermittlung der Knotenanzahl der nächsten Stufe kann wie folgt programmiert werden: Vergleiche und speichere das Ergebnis in tcsr 138 Initialisiere Adresszeiger der sc0 Berechne Referenzvektoradresse für den nächsten Knoten (2n+1: wr2 wird zuvor auf 1 gesetzt)
  • Insgesamt 7 Anweisungen
  • Es sind daher 2N+9 Maschinenzyklen für eine Stufe notwendig. Offensichtlich stimmt die Anzahl der Maschinenzyklen praktisch mit der idealen Anzahl von Maschinenzyklen überein, da der Prozeß hocheffizient und das Programm einfach ist.
  • Obwohl das obige Beispiel unter der Voraussetzung beschrieben wurde, daß die Wortlänge eine 24-Bit-Adressenlänge von 16 MW (24 Bit) aufweist, können Wortlänge und Datenformat andere als die hier beschriebenen sein.
  • Obwohl diese Ausführungsform mit Bezug auf die binäre Suche beschrieben wurde, kann der gleiche Effekt bei anderen Signalverarbeitungsalgorithmen erwartet werden.
  • Natürlich beschränken die Details der obigen Ausführungsform nicht den Inhalt der vorliegenden beanspruchten Erfindung.
  • Wie aus der obigen Beschreibung ersichtlich, ist der digitale Signalprozessor gemäß der vorliegenden, in Anspruch 1 definierten Erfindung höchst anpassungsfähig, flexibel und in der Lage, bei einer hohen Verarbeitungsgeschwindigkeit zu arbeiten.

Claims (13)

1. Digitaler Signalprozessor mit:
einer Anweisungsabrufeinheit zum Lesen einer Mikroanweisung während jedes Maschinenzyklusses mittels eines Programmbusses (200) aus einem Anweisungsspeicher (201), welcher vorher Mikroanweisungen gespeichert hat, die verschiedene interne Operationen spezifizieren;
einer Ausführungseinheit (206) zum Verarbeiten zweier Eingangsdaten;
einer Vielzahl von Arbeitsregistern (235), die in der Lage sind, die Ergebnisse der Operation der Ausführungseinheit (206) zu speichern;
einer Vielzahl von Dual-Port-Speichern (207, 208) mit zwei Schnittstellen zum individuellen Speichern der beiden Daten oder zum Speichern der beiden Daten Block für Block für die Operation der Ausführungseinheit (206) und der Ergebnisse der Operation, wobei jeder einen Leseanschluß und einen Lese-/Schreib-Anschluß aufweist und in der Lage ist, gleichzeitig Daten aus beiden Anschlüssen zu lesen, oder Daten über beide Anschlüsse zu schreiben;
einer Direktspeichertransfersteuereinheit (209) und
einer Adressenerzeugungseinheit mit einer Vielzahl von Adressenregistern (251), die in der Lage ist, parallel Lese- und Schreibadressen für die Vielzahl der Dual-Port-Speicher (207, 208) zu erzeugen;
gekennzeichnet durch peine Sequenzsteuereinheit (202) zum Steuern der Ausführung der Mikroanweisungen während jedes Maschinenzyklusses durch Trennen der Schritte der Ausführungsprozedur der Mikroanweisung in einer fünfstufigen Pipeline mit einer Anweisungsabrufstufe, einer Anweisungsdekodierstufe, einer Datenlesestufe, einer Ausführungsstufe und einer Schreib-/Akkumulationsstufe, um ein Wort der Mikroanweisung in einem Maschinenzyklus auszuführen;
eine Vielzahl von internen Datenbussen (204) zum parallelen Transfer der beiden Eingangsdaten zur Ausführungseinheit (206) zur binomialen Operation in-der Datenlesestufe der fünfstufigen Pipeline und zum Transferieren der Ausgangsdaten der Ausführungseinheit (206) in die Datenschreibe-/Akkumulationsstufe der fünfstufigen Pipeline;
wobei die Ausführungseinheit (206) die beiden Eingangsdaten, welche durch die internen Datenbusse übertragen wurden, mittels einer einzigen Operation oder kombinierten Operationen sowohl in der Ausführungsstufe als auch in der Datenschreibe-/Akkumulationsstufe der fünfstufigen Pipeline verarbeitet;
wobei die Arbeitsregister (235) auch mit dem internen Datenbus verbunden sind, um die Daten zu den internen Datenbussen (204) zu übertragen;
eine Ausgangssteuereinheit zum Selektieren einer der internen Datenbusse oder eines der Arbeitsregister, an das der Ausgang der Ausführungseinheit anzuschließen ist;
eine Lesesteuereinheit zum Selektieren eines oder mehreren Leseanschlüssen der Vielzahl von Dual-Port-Speichern (207, 208), um die Eingangsdaten aus den Dual-Port-Speichern (207, 208) zu lesen und die Eingangsdaten den internen Datenbussen zur Verfügung zu stellen;
eine externe Datenspeicherschnittstelleneinheit (205) zum Selektieren eines oder mehrerer interner Datenbusse (204), um Daten aus einem externen Datenspeicher auszulesen, der an die externe Datenspeicherschnittstelleneinheit (205) angeschlossen ist, und zum Schreiben von Daten in den externen Datenspeicher, die auf einem oder mehreren internen Datenbussen zur Verfügung stehen;
einen Bus (210) zum direkten Speicherzugriff, welcher von den internen Datenbussen (211) getrennt ist, zum selektiven Verbinden einer oder mehrerer Lese-/Schreibschnittstellen der Vielzahl von Dual-Port-Speichern (207, 208) mit der externen Datenspeicherschnittstelleneinheit (205);
wobei die direkte Speichertransfersteuereinheit (209) die Block-für- Block-Daten über den direkten Speichertransferbus (210) zwischen der externen Datenspeicherschnittstelle (205) und den Dual-Port-Speichern (207, 208) unabhängig von der internen Operation der Sequenzsteuereinheit (202) überträgt;
eine externe Speicherentscheidungseinheit, die die Konkurrenz der internen Datenbusse (204) und des direkten Speichertransferbusses (210) beim Verbinden mit der externen Speicherschnittstelleneinheit (205) steuert;
wobei die Adressenerzeugungseinheit (203) eine Vielzahl von Adressengeneratoren (256) umfaßt, wobei jeder die Vielzahl von Adressregistern (251) und eine Vielzahl von Indexregistern (252) aufweist, die an den Dateneingangsbussen (204) zum gegenseitigen Datentransfer angeschlossen und in der Lage sind, parallel Lese- und Schreibadressen für den Dual-Port-Speicher (207, 208) oder den externen Speicher mindestens aus den zwei Eingangsdaten und einem Ausgangswert der Ausführungseinheit (206) in der Dekodierstufe der fünfstufigen Pipeline zu erzeugen;
eine Adressenselektiereinheit zum Selektieren des Dual-Port-Speichers (207, 208) oder der externen Speicherschnittstelleneinheit (205) entsprechend den Lese- und Schreibadressen, die durch die Adresserzeugungseinheit (203) jeweils synchronisiert mit den Leseund Schreibstufen der fünfstufigen Pipeline zur Verfügung gestellt wurden; und
eine Direktspeicherzugriffsadressenerzeugungseinheit mit einer Vielzahl von Transferadressenkontrollregistern zum Vorgeben von Daten über die internen Datenbusse (204) um den Datentransferbereich zu steuern, und zum gleichzeitigen Erzeugen der Adresse für den Dual-Port-Speicher zum direkten Speicherzugriff und einer Adresse für die externe Speicherschnittstelleneinheit (205).
2. Digitaler Signalprozessor nach Anspruch 1, in dem die Ausführungseinheit (206) und die Adressenerzeugungseinheit (203) kompatibel im Datenformat sind, wodurch die in der Ausführungseinheit (206) erzeugten Daten als Adressendaten verwendet werden.
3. Digitaler Signalprozessor nach Anspruch 1, in dem die Ausführungseinheit (206) enthält:
einen Barrel-Schieber (223), welcher in der Lage ist, Daten von den Dateneingangsbussen (204) zu erhalten und die Eingangsdaten um eine willkürliche Anzahl von Bits innerhalb eines Maschinenzyklusses zu verschieben oder zu rotieren und die verschobenen oder rotierten Daten und andere Eingangsdaten mittels einer logischen Operation kombiniert zu verarbeiten;
eine arithmetische Logikeinheit (224), welche in der Lage ist, die Eingangsdaten mindestens durch Addition, Subtraktion und absolute Differenzialoperation innerhalb eines Maschinenzyklusses zu verarbeiten;
einen Multiplizierer (225), welcher innerhalb eines Maschinenzyklusses in der Lage ist, die beiden Eingangsdaten zu multiplizieren oder - 39 -einen Eingangswert zu quadrieren;
ein temporäres Register (228, 229), welches eines der Ausgangssignale der arithmetischen Logikeinheit (224), des Multiplizieres (225) und des Barrel-Schiebers (223) selektiert und temporär hält;
einen normierten Barrel-Schieber (230), welcher die durch das temporäre Register (228, 229) zur Verfügung gestellten Ausgangsdaten während längstens eines halben Maschinenzyklusses zum Anpassen des Datenbereichs um eine vorbestimmte Anzahl von Bits verschiebt;
einen Addierer (233), welcher den Ausgang (231) des normierten Barrel-Schiebers (230) und den Inhalt eines selektierten Ausgangssignals des Arbeitsregisters (228, 229) in längstens dem halben Maschinenzyklus akkumuliert; und
eine Datenausgangseinheit, welche das Ausgangssignal des normierten Barrel-Schiebers (230) zu den Datenausgangsbussen während längstens eines halben Maschinenzyklusses überträgt, wenn der Addierer nicht verwendet wird; und
wobei der Zylinderschieber (223), die arithmetische Logikeinheit (224) oder der Multiplizierer (225) in der Ausführungsstufe der fünfstufigen Pipeline für arithmetische Logikoperationen oder absolute Differenzialoperationen betrieben wird, wobei die Differenz, die durch die arithmetische Logikeinheit (224) in der Ausführungsstufe gewonnen wird, durch ein temporäres Register (226) gehalten wird, die Differenz durch den Multiplizierer (225) quadriert wird, um das Quadrat der Differenz in einem Maschinenzyklus zu erhalten, der Addierer 233 zur Akkumulation verwendet wird, wenn die Akkumulation ausgeführt wird, nachdem die Bereichsanpassung des Ergebnisses der Ausführungsstufe durch den normierten Barrel-Schieber (230) in der Datenschreibe-/Akkumulationsstufe der fünfstufigen Pipeline durchgeführt worden ist, oder das Quadrat der Differenz direkt auf den Datenausgangsbussen zur Verfügung gestellt wird, wenn keine Bereichsanpassung durch den normierten Barrel-Schieber (230) durchgeführt worden ist, um verschiedene arithmetische und logische Operationen oder kombinierte Operationen einschließlich denen zum Erhalten der Produktsumme, der Summe der absoluten Differenzen, der Quadratsumme der Differenzen in einer einem Maschinenzyklus entsprechenden Zeit durch Pipelinetechnik zu vervollständigen.
4. Digitaler Signalprozessor nach Anspruch 1, wobei jeder der Adressengeneratoren (256) der Adressenerzeugungseinheit (203) eine Adresse über den internen Datenbus (204) im Adressenregister (251) speichert, einen Indexwert über den internen Datenbus (204) im Indexregister (252) speichert, den Indexmodifizierungswert, eine durch eine Mikroanweisung spezifizierte Verschiebung und den Inhalt des Adressenregisters (251) addiert, gleichzeitig den Inhalt des Adressenregisters (251) durch Verwendung des Ergebnisses der Addition auffrischt und das Ergebnis der Addition als eine Datenspeicheradresse behandelt und eine zweidimensionale oder andere Adressierung durch eine Kombination der Mikroanweisungen durch sequentielles Zuweisen jedes Adressengenerators (256) zum Adresserzeugungsmodus jeder Mikroanweisung durchführt.
5. Digitaler Signalprozessor nach Anspruch 1, wobei die Direktspeicherzugriffssteuereinheit (209) und die Direktspeichertransferadressenerzeugungseinheit sequentiell den rechtwinkligen Abschnitt von Zeile k x Spalte l (k und l sind positive ganze Zahlen) eines zweidimensionalen Datenadressenraumes mit m Zeilen und n Spalten (m und n sind positive ganze Zahlen) zuordnet, um die externe Datenspeicherschnittstelleneinheit (205) zu adressieren, Adressen zu der Vielzahl der Dual-Port-Speicher (207, 208) in einer aufsteigenden Reihenfolge von einer optionalen Startadresse zuordnet, und eine der Vielzahl der Dual-Port-Speicher (207, 208) durch das höchste Bit der Adresse oder einer Vielzahl von Bits der Adresse zum zweidimensionalen Datentransfer zwischen den Dual-Port-Speichern (207, 208) und dem externen Datenspeicher (205) selektiert, und eine Transferrichtung und die Anzahl der zu transferierenden Daten durch eine Mikroanweisung beim Starten des direkten Speichertransfers spezifiziert werden, und die Direktspeicherzugriffssteuereinheit (209) die Sequenzsteuereinheit (202) vom Ende des Datentransfers beim Beenden des direkten Speichertransfers informiert, um gleichzeitig Übertragungsdaten in einen rechtwinkligen Block aus k Zeilen x l Spalten zwischen dem Dual-Port-Speicher (207, 208) und dem externen Datenspeicher (205) und interne arithmetische Prozesse zu implementieren.
6. Digitaler Signalprozessor nach Anspruch 1, in dem die Sequenzsteuereinheit (202) bedingte Verzweigungsoperationen implementiert, die mit einer Vielzahl von Verzweigungsbedingungen auf einer Mikroanweisung arbeiten, indem eine Vielzahl von Bedingungen in einem speziellen Register zuvor gespeichert wird, Anweisungsspeicheradressen zuvor gespeichert werden, zu denen das Programm verzweigt wird, wenn die Verzweigungsbedingungen in den Registern entsprechend den Verzweigungsbedingungen angefunden werden, die Vielzahl von Verzweigungsbedingungen parallel auf einer Mikroanweisung getestet wird, das Programm in eine der Anweisungsspeicheradressen verzweigt wird, die in dem speziellen Register entsprechend den Verzweigungsbedingungen mit der höchsten Priorität unter den aufgefundenen gespeichert worden sind, und das Programm zu der Anweisungsspeicheradresse verzweigt, die in dem speziellen Register entsprechend all den nicht aufgefundenen Verzweigungsbedingungen gespeichert ist.
7. Digitaler Signalprozessor nach Anspruch 1, in dem die Sequenzsteureinheit (202) einen Schleifenzähler und einen Wiederholungszähler aufweist, die in der Lage sind, Anfangswerte aus den internen Datenbussen zu erhalten und deren Inhalte zur Verfügung zu stellen, wobei der Inhalt des Wiederholungszählers für jede Ausführung der Mikroanweisung um 1 herabgezählt und die gleiche Mikroanweisung solange wiederholt ausgeführt wird, bis sich der Inhalt des Wiederholungszählers auf 0 reduziert hat, wenn die Wiederholung durch die erste Mikroanweisung der Wiederholungsoperation angewiesen wird, der Inhalt des Schleifenzählers um 1 heruntergezählt wird, wenn die Schleife durch eine Mikroanweisung angewiesen wird, das Programm in eine Anweisungsspeicheradresse verzweigt wird, die durch die Mikroanweisung spezifiziert ist, wenn der Inhalt des Schleifenzählers nach Herabzählen nicht 0 ist, und die Verzweigung zum Beenden der Schleifenoperation nicht vollständig ist, wenn der Inhalt des Schleifenzählers nach dem Herabzählen 0 ist, um eine einzelne Mikroanweisung oder eine Vielzahl von Mikroanweisungen durch einen vorbestimmten Zyklus zu wiederholen.
8. Digitaler Signalprozessor nach Anspruch 1, in dem die externe Datenspeicherschnittstelleneinheit den externen Datenspeicher (205) in zwei Teile teilt, indem eine Adresse verwendet wird, die vorher durch eine Mikroanweisung als eine Grenze spezifiert worden ist, den externen Datenspeicher als ein Hochgeschwindigkeitsspeicher behandelt, der Lese-/Schreiboperationen innerhalb eines Maschinenzyklusses beim Adressieren einer der beiden Teile des externen Datenspeichers erzielt, und den externen Datenspeicher (205) als einen Niedriggeschwindigkeitsspeicher behandelt, der so lange auf Stand-by steht, bis ein externes Lese-/Schreibabbruchsignal beim Adressieren des anderen Teils des externen Datenspeichers erfaßt wird.
9. Digitaler Signalprozessor nach Anspruch 1, in dem der Anweisungsspeicher (201) teilweise oder ganz wiederaufladbar ist, funktionalen Prozessen entsprechende Mikroprogramme durch eine externe Vorrichtung in den wiederaufladbaren Anweisungsspeicher geschrieben werden, um den digitalen Signalprozeß in die Lage zu versetzen, komplexe und diversifizierte Prozesse zu implementieren, und automatisch Mikroprogramme durch einen externen Speicher zur Verfügung gestellt werden, wenn die Mikroprogramme nicht in den Anweisungsspeicher (201) geschrieben sind.
10. Digitaler Signalprozessor nach Anspruch 1, in dem die Mikroanweisung ein Mikroanweisungssatz ist, der aus einem Funktionscode besteht, welcher einheitlich eine Operation in jeder Stufe der fünfstufigen Pipeline entsprechend der Art der Operation spezifiziert, einem Eingangsanweisungscode und einem Ausgangsanweisungscode, welche individuell den Adressenerzeugungsmodus des Adressengenerators (256) der Adresserzeugungseinheit (203) für jede Mikroanweisung entsprechend mindestens einem 2-Eingang-/1-Ausgang- oder einem 1-Eingang-/1-Ausgang-Datenspeicher, einem ressourcenspezifizierenden Code, welcher den Objektdatenspeicher oder das Register der Dateneingänge/-Ausgänge spezifiziert, der Anzahl der Verschiebebits des normierten Barrel-Schiebers (230) der Ausführungseinheit (206), einem Testbedingungscode, welcher die Art der Operation bestimmt, einem direkter Datenwert und einem Haltebedingungscode anweisen.
11. Digitaler Signalprozessor nach Anspruch 1, in dem die externe Datenspeicheradresse willkürlich eine Adresse für die Kommunikation zwischen den Prozessoren zuweist, wobei die Adresse einem externen First-In/First-Out-Speicher oder externen Dual-Port-Speicher für die Kommunikation entspricht, um dieselben oder andere Prozessoren miteinander zu verbinden, um eine Vielzahl von Prozessoren in die Lage zu versetzen, komplexe Prozesse bei einer hohen Verarbeitungsgeschwindigkeit zu implementieren.
12. Digitaler Signalprozessor nach Anspruch 1 oder 3, in dem das signifikanteste Bit von Datenbits von dem am wenigsten signifikanten Bit, das durch Verschiebung abgeschnitten wird, beim Anpassen der Zahl von Bits durch Verschieben in Richtung des am wenigsten signifikanten Bits durch den normierten Barrel-Schieber als ein Übertragbit verwendet wird, wobei der Addierer einen Operationsmodus aufweist, in dem eine Datenrundungsoperation oder eine Datenrundungsakkumulation durch Addition mit dem Übertragbit unter Verwendung der Inhalte der Arbeitsregister oder Nulldaten ausgeführt werden und der Operationsmode durch direktes Kontrollieren des Addierers durch Setzen eines Modus oder einer Mikroanweisung zugeordnet wird.
13. Digitaler Signalprozessor nach Anspruch 1 oder 3, in dem die arithmetische Logikeinheit (224) der Ausführungseinheit (206) entscheidet, ob eine Testbedingung (z.B. eine Bedingung, daß zwei Eingangsdaten gleich sind) zum Testen des Ergebnisses eines durch eine Mikroanweisung spezifizierten Vergleiches beim Vergleichen der Größen von zwei Eingangsdaten oder Testen eines speziellen Bits in einem Eingangswert erfüllt ist oder nicht, und sequentiell die Ergebnisse der Entscheidung in einer vertikalen Richtung des speziellen Schieberegisters (238) für jede vergleichende Mikroanweisung Bit für Bit speichert, den horizontalen Inhalt des Schieberegisters von den internen Datenbussen ausl iest und die Vielzahl der Entscheidungsergebnisse, die durch eine vielfache Wiederholung der Vergleichsmikroanweisungen gewonnen wurden, als einen Suchablaufcode im Baumsuchverfahren oder zur kombinierten Verzweigungsoperation basierend auf einer Vielzahl von Bedingungen, verwendet.
DE3851858T 1987-06-05 1988-06-01 Digitaler Signalprozessor. Expired - Fee Related DE3851858T2 (de)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
JP14087287A JPS63304344A (ja) 1987-06-05 1987-06-05 マルチポ−トメモリ回路
JP18685887A JPS6429932A (en) 1987-07-27 1987-07-27 Address control system for signal processing
JP19700987A JPS6441028A (en) 1987-08-06 1987-08-06 Interruption processing system
JP62273763A JPH0630056B2 (ja) 1987-10-29 1987-10-29 信号処理装置
JP27481087A JPH01116730A (ja) 1987-10-30 1987-10-30 デイジタル信号処理プロセツサ
JP62296611A JPH0766327B2 (ja) 1987-11-25 1987-11-25 信号処理方法及び装置
JP62296612A JPH0766328B2 (ja) 1987-11-25 1987-11-25 プロセッサの信号処理方式
JP31655387A JPH01156825A (ja) 1987-12-15 1987-12-15 信号処理用アドレス生成方式

Publications (2)

Publication Number Publication Date
DE3851858D1 DE3851858D1 (de) 1994-11-24
DE3851858T2 true DE3851858T2 (de) 1995-05-24

Family

ID=27573171

Family Applications (4)

Application Number Title Priority Date Filing Date
DE3856175T Expired - Fee Related DE3856175T2 (de) 1987-06-05 1988-06-01 Digitales Signalverarbeitungssystem in dem ein Prozessor unter Kontrolle eines Hosts auf zwei Befehlsspeicher zugreift
DE3856219T Expired - Fee Related DE3856219T2 (de) 1987-06-05 1988-06-01 Digitaler Signalprozessor mit Adress-Generator für den Zugriff von Daten aus einem Zweidirektionalen Bereich eines Datenspeichers
DE3851858T Expired - Fee Related DE3851858T2 (de) 1987-06-05 1988-06-01 Digitaler Signalprozessor.
DE3856220T Expired - Fee Related DE3856220T2 (de) 1987-06-05 1988-06-01 Digitaler Signalprozessor der bedingte Mehrpunkt-Sprungbefehle im Pipelinemodus bearbeitet

Family Applications Before (2)

Application Number Title Priority Date Filing Date
DE3856175T Expired - Fee Related DE3856175T2 (de) 1987-06-05 1988-06-01 Digitales Signalverarbeitungssystem in dem ein Prozessor unter Kontrolle eines Hosts auf zwei Befehlsspeicher zugreift
DE3856219T Expired - Fee Related DE3856219T2 (de) 1987-06-05 1988-06-01 Digitaler Signalprozessor mit Adress-Generator für den Zugriff von Daten aus einem Zweidirektionalen Bereich eines Datenspeichers

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE3856220T Expired - Fee Related DE3856220T2 (de) 1987-06-05 1988-06-01 Digitaler Signalprozessor der bedingte Mehrpunkt-Sprungbefehle im Pipelinemodus bearbeitet

Country Status (4)

Country Link
US (1) US5045993A (de)
EP (6) EP0551933A3 (de)
CA (1) CA1288169C (de)
DE (4) DE3856175T2 (de)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1311063C (en) * 1988-12-16 1992-12-01 Tokumichi Murakami Digital signal processor
JPH0769791B2 (ja) * 1988-12-21 1995-07-31 三菱電機株式会社 マイクロプロセッサ
JPH0740241B2 (ja) * 1989-01-17 1995-05-01 富士通株式会社 リクエストキャンセル方式
US5237670A (en) * 1989-01-30 1993-08-17 Alantec, Inc. Method and apparatus for data transfer between source and destination modules
US5150471A (en) * 1989-04-20 1992-09-22 Ncr Corporation Method and apparatus for offset register address accessing
US5175863A (en) * 1989-10-23 1992-12-29 International Business Machines Corporation Signal data processing system having independently, simultaneously operable alu and macu
EP0442041A3 (en) * 1990-01-18 1991-09-04 National Semiconductor Corporation Integrated digital signal processor/general purpose cpu with shared internal memory
JPH0444151A (ja) * 1990-06-11 1992-02-13 Omron Corp プロセッサ
JPH0470946A (ja) * 1990-07-04 1992-03-05 Mitsubishi Electric Corp Dmaコントローラを内蔵した処理装置
JP3194193B2 (ja) * 1990-10-31 2001-07-30 カシオ計算機株式会社 信号処理装置
RU1804645C (ru) * 1991-03-27 1993-03-23 Институт Точной Механики И Вычислительной Техники Им.С.А.Лебедева Центральный процессор
FR2678400B1 (fr) 1991-06-27 1995-08-04 Texas Instruments France Processeur de protocole destine a l'execution d'un ensemble d'instructions en un nombre reduit d'operation.
US7197623B1 (en) 1991-06-27 2007-03-27 Texas Instruments Incorporated Multiple processor cellular radio
JP3201786B2 (ja) * 1991-07-18 2001-08-27 アジレント・テクノロジー株式会社 ディジタル信号処理システムの制御方法
JP3172214B2 (ja) * 1991-09-30 2001-06-04 富士通株式会社 状態モード設定方式
JP2906792B2 (ja) * 1991-11-15 1999-06-21 日本電気株式会社 ディジタルプロセッサ及びその制御方法
DE69228980T2 (de) * 1991-12-06 1999-12-02 Nat Semiconductor Corp Integriertes Datenverarbeitungssystem mit CPU-Kern und unabhängigem parallelen, digitalen Signalprozessormodul
US6000026A (en) * 1992-06-22 1999-12-07 Texas Instrument Incorporated Multiple processor apparatus having a protocol processor intended for the execution of a collection of instructions in a reduced number of operations
DE69315630T2 (de) * 1992-07-23 1998-07-16 Rockwell International Corp Datenzugriff in einem RISC-Digitalsignalprozessor
US5481489A (en) * 1992-08-31 1996-01-02 Fujitsu Limited Method of and apparatus for discriminating NaN
US5717908A (en) * 1993-02-25 1998-02-10 Intel Corporation Pattern recognition system using a four address arithmetic logic unit
US5825921A (en) * 1993-03-19 1998-10-20 Intel Corporation Memory transfer apparatus and method useful within a pattern recognition system
FR2708359A1 (fr) * 1993-06-30 1995-02-03 Philips Electronics Nv Procédé pour exploiter un processeur numérique de signal et dispositif mettant en Óoeuvre le procédé.
EP0638859B1 (de) * 1993-08-09 1999-09-29 Siemens Aktiengesellschaft Signalverarbeitungseinrichtung
JP3452655B2 (ja) * 1993-09-27 2003-09-29 株式会社日立製作所 ディジタル信号処理プロセッサおよびそれを用いて命令を実行する方法
US5778416A (en) * 1993-12-20 1998-07-07 Motorola, Inc. Parallel process address generator and method
US5590356A (en) * 1994-08-23 1996-12-31 Massachusetts Institute Of Technology Mesh parallel computer architecture apparatus and associated methods
US5835730A (en) * 1996-07-31 1998-11-10 General Instrument Corporation Of Delaware MPEG packet header compression for television modems
US5958048A (en) * 1996-08-07 1999-09-28 Elbrus International Ltd. Architectural support for software pipelining of nested loops
WO1998006040A1 (en) * 1996-08-07 1998-02-12 Sun Microsystems, Inc. Architectural support for software pipelining of nested loops
WO1998006038A1 (en) * 1996-08-07 1998-02-12 Sun Microsystems, Inc. Architectural support for software pipelining of loops
WO1998006042A1 (en) * 1996-08-07 1998-02-12 Sun Microsystems, Inc. Wide instruction unpack method and apparatus
WO1998006041A1 (en) * 1996-08-07 1998-02-12 Sun Microsystems, Inc. Array prefetch apparatus and method
WO1998006039A1 (en) * 1996-08-07 1998-02-12 Sun Microsystems, Inc. Disambiguation memory circuit and operating method
US5880981A (en) * 1996-08-12 1999-03-09 Hitachi America, Ltd. Method and apparatus for reducing the power consumption in a programmable digital signal processor
US6332152B1 (en) * 1997-12-02 2001-12-18 Matsushita Electric Industrial Co., Ltd. Arithmetic unit and data processing unit
TW380245B (en) * 1998-05-18 2000-01-21 Winbond Elelctronics Corp Speech synthesizer and speech synthesis method
US7234100B1 (en) * 2000-09-28 2007-06-19 Intel Corporation Decoder for trellis-based channel encoding
US6662296B1 (en) * 2000-10-02 2003-12-09 International Business Machines Corporation Method and system for testing millicode branch points
JP2002215606A (ja) * 2001-01-24 2002-08-02 Mitsubishi Electric Corp データ処理装置
US20030061464A1 (en) * 2001-06-01 2003-03-27 Catherwood Michael I. Digital signal controller instruction set and architecture
US20020184566A1 (en) 2001-06-01 2002-12-05 Michael Catherwood Register pointer trap
US7167973B2 (en) * 2001-11-15 2007-01-23 Broadcom Corporation Method and system for performing multi-tests in processors using results to set a register and indexing based on the register
JP2005149297A (ja) * 2003-11-18 2005-06-09 Renesas Technology Corp プロセッサおよびそのアセンブラ
JP4908017B2 (ja) * 2006-02-28 2012-04-04 富士通株式会社 Dmaデータ転送装置及びdmaデータ転送方法
US7953958B2 (en) * 2006-09-29 2011-05-31 Mediatek Inc. Architecture for joint detection hardware accelerator
US20090129486A1 (en) * 2007-11-15 2009-05-21 Sequel Technologies, Llc. Systems and methods for providing security communication procesess in a security system
GB2500707B (en) * 2012-03-30 2014-09-17 Cognovo Ltd Multiprocessor system, apparatus and methods
US20150268962A1 (en) * 2014-03-24 2015-09-24 GoofyFoot Labs Asynchronous Circuit Design
US11847427B2 (en) 2015-04-04 2023-12-19 Texas Instruments Incorporated Load store circuit with dedicated single or dual bit shift circuit and opcodes for low power accelerator processor
US9817791B2 (en) * 2015-04-04 2017-11-14 Texas Instruments Incorporated Low energy accelerator processor architecture with short parallel instruction word
US10401412B2 (en) 2016-12-16 2019-09-03 Texas Instruments Incorporated Line fault signature analysis
US11010953B2 (en) * 2017-04-21 2021-05-18 Intel Corporation Dedicated fixed point blending for energy efficiency
CN109714056B (zh) * 2019-01-17 2022-10-28 上海双微导航技术有限公司 一种用于兼容多款ad采集的方法
CN110737618B (zh) * 2019-10-23 2021-03-16 盛科网络(苏州)有限公司 内嵌处理器进行快速数据通信的方法、装置及存储介质

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3570006A (en) * 1968-01-02 1971-03-09 Honeywell Inc Multiple branch technique
US3875391A (en) * 1973-11-02 1975-04-01 Raytheon Co Pipeline signal processor
US4025771A (en) * 1974-03-25 1977-05-24 Hughes Aircraft Company Pipe line high speed signal processor
US4090250A (en) * 1976-09-30 1978-05-16 Raytheon Company Digital signal processor
DE2710671A1 (de) * 1977-03-11 1978-09-14 Standard Elektrik Lorenz Ag Schaltungsanordnung fuer einen mikroprozessor zur steuerung des datenspeicherzugriffs
US4240139A (en) * 1977-09-22 1980-12-16 Tokyo Shibaura Denki Kabushiki Kaisha Address generating system
DE2846495C2 (de) * 1977-10-25 1993-10-21 Digital Equipment Corp Zentraleinheit
US4159519A (en) * 1977-11-21 1979-06-26 Burroughs Corporation Template family interfacing structure for providing a sequence of microinstructions to a pipelined microprogrammable data processing system
US4236206A (en) * 1978-10-25 1980-11-25 Digital Equipment Corporation Central processor unit for executing instructions of variable length
US4428046A (en) * 1980-05-05 1984-01-24 Ncr Corporation Data processing system having a star coupler with contention circuitry
US4493019A (en) * 1980-05-06 1985-01-08 Burroughs Corporation Pipelined microprogrammed digital data processor employing microinstruction tasking
JPS5750052A (en) * 1980-09-09 1982-03-24 Toshiba Corp Address extension system
US4439839A (en) * 1981-08-24 1984-03-27 International Telephone And Telegraph Corporation Dynamically programmable processing element
US4654783A (en) * 1982-07-26 1987-03-31 Data General Corporation Unique process for loading a microcode control store in a data processing system
JPS5979349A (ja) * 1982-10-29 1984-05-08 Toshiba Corp 演算装置
US4613935A (en) * 1983-02-02 1986-09-23 Couleur John F Method and apparatus for pipe line processing with a single arithmetic logic unit
JPS59174948A (ja) * 1983-03-25 1984-10-03 Toshiba Corp 情報処理装置
US4578750A (en) * 1983-08-24 1986-03-25 Amdahl Corporation Code determination using half-adder based operand comparator
US4785393A (en) * 1984-07-09 1988-11-15 Advanced Micro Devices, Inc. 32-Bit extended function arithmetic-logic unit on a single chip

Also Published As

Publication number Publication date
EP0293851A2 (de) 1988-12-07
EP0551933A2 (de) 1993-07-21
EP0554917A2 (de) 1993-08-11
DE3856219D1 (de) 1998-08-20
EP0293851A3 (en) 1990-05-09
DE3851858D1 (de) 1994-11-24
DE3856175D1 (de) 1998-06-10
EP0551932A2 (de) 1993-07-21
EP0551933A3 (en) 1993-12-15
EP0554917B1 (de) 1998-05-06
EP0551934A3 (de) 1994-04-13
EP0551931A3 (en) 1993-12-15
DE3856220D1 (de) 1998-08-20
EP0551934A2 (de) 1993-07-21
DE3856219T2 (de) 1998-11-19
EP0293851B1 (de) 1994-10-19
EP0551931B1 (de) 1998-07-15
DE3856175T2 (de) 1998-12-17
US5045993A (en) 1991-09-03
EP0551932A3 (en) 1993-12-15
EP0551931A2 (de) 1993-07-21
EP0551932B1 (de) 1998-07-15
CA1288169C (en) 1991-08-27
EP0554917A3 (de) 1994-04-13
DE3856220T2 (de) 1999-01-07

Similar Documents

Publication Publication Date Title
DE3851858T2 (de) Digitaler Signalprozessor.
DE3885775T2 (de) Digitaler Signalprozessor.
DE69031899T2 (de) Befehlsmethode und Ausführungssystem
DE3689394T2 (de) Informationsverarbeitungsanlage mit einem Allzweckprozessor und einem Sonderzweckprozessor.
DE3424962C2 (de)
DE69824193T2 (de) Datenverarbeitungseinheit mit der fähigkeit von digitaler signalverarbeitung
DE2724125C2 (de)
DE3586195T2 (de) Mikroprogrammfolgesteuergeraet.
DE68927966T2 (de) Prozessor für Gleitkommazahlen und ganze Zahlen mit Dividier- und Quadratwurzelfunktionen
DE19735348B4 (de) Vektorprozessor zur Einzelbefehl-Mehrdaten-Verarbeitung unter Verwendung von mehreren Bänken von Vektorregistern und zugehöriges Verfahren zum Betreiben desselben
DE3210816C2 (de)
DE3586603T2 (de) Datenprozessor fuer interpretierende und kompilierte sprache.
DE3752017T2 (de) Mikrorechner mit Zugriffsfähigkeit auf einen internen Speicher mit gewünschter variabler Zugriffszeit
DE2524046C2 (de) Elektronische Datenverarbeitungsanlage
DE3882772T2 (de) Vektorprozessor angepasst zum Sortieren von Vektordaten.
DE3689595T2 (de) Datenverarbeitungssystem.
DE69826404T2 (de) Datenverarbeitungssystem mit mehreren Prozessoren, die eine Registerbank gemeinsam benutzen
DE3933171A1 (de) Einzelchip-prozessor fuer komplexe gleitkommazahlen
DE3686828T2 (de) Hochleistungsparalleler vektorprozessor mit modifizierter register/elementprozessor konfiguration.
WO1997026603A1 (de) Prozessor zur bildverarbeitung
CH644461A5 (de) Digitale multipliziereinrichtung.
DE3485771T2 (de) Leistungsfaehiger paralleler vektorprozessor.
DE3852056T2 (de) Koprozessor und Verfahren zu dessen Steuerung.
DE2533737A1 (de) Datenprozessor
DE3650642T2 (de) Speichermittel mit Mehrwortauslesen und Schreiben

Legal Events

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