DE19839627A1 - Digitaler Signalprozessor - Google Patents

Digitaler Signalprozessor

Info

Publication number
DE19839627A1
DE19839627A1 DE19839627A DE19839627A DE19839627A1 DE 19839627 A1 DE19839627 A1 DE 19839627A1 DE 19839627 A DE19839627 A DE 19839627A DE 19839627 A DE19839627 A DE 19839627A DE 19839627 A1 DE19839627 A1 DE 19839627A1
Authority
DE
Germany
Prior art keywords
bit
data value
data
rounding
bits
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.)
Granted
Application number
DE19839627A
Other languages
English (en)
Other versions
DE19839627B4 (de
Inventor
Il Taek Lim
Jun Ho Bahn
Kyu Seok Kim
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.)
LG Electronics Inc
Original Assignee
LG Electronics Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1019970045341A external-priority patent/KR100297544B1/ko
Priority claimed from KR1019970045343A external-priority patent/KR100251546B1/ko
Priority claimed from KR1019970045345A external-priority patent/KR100246472B1/ko
Priority claimed from KR1019970045342A external-priority patent/KR100315303B1/ko
Priority claimed from KR1019980012318A external-priority patent/KR100271571B1/ko
Application filed by LG Electronics Inc filed Critical LG Electronics Inc
Publication of DE19839627A1 publication Critical patent/DE19839627A1/de
Application granted granted Critical
Publication of DE19839627B4 publication Critical patent/DE19839627B4/de
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
    • 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/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • G06F7/49947Rounding

Description

Die Erfindung betrifft einen digitalen Signalprozessor (DSP) zum Verarbeiten verschiedener digitaler Signale abhängig von beliebigen Programmen.
Herkömmlicherweise kann ein DSP Fließkommaarithmetik oder Festkommaarithmetik verwenden. Bei der Fließkommaarithmetik besteht der Nachteil, daß sie zwar ein genaueres Ergebnis liefert, aber in der Realisierung beträchtlich teurer als Festkommaarithmetik ist. Demgemäß verwenden die meisten DSPs Festkommaarithmetik. Um Fehlererzeugung zu verhindern, ver­ wendet ein DSP gemäß dem Festkommaarithmetik-System mit ei­ ner typischen N-Bit-Wortlänge eine arithmetisch-logische Einheit (ALU) mit der Wortlänge 8+2N sowie ein Akkumulati­ onsregister. Hierbei sind die acht Bits Zusatzbits, wie sie allgemein zum Überlaufschutz verwendet werden. Da sowohl die ALU als auch das Akkumulationsregister um mehr als das Dop­ pelte der Datenwortlänge N verbreitert sind, ist nicht nur der Operationsumfang im DSP erhöht, sondern es ist auch sei­ ne Ansprechgeschwindigkeit verringert. Dies gilt auch für DSPs, bei denen die Zusatzbits fehlen.
Tatsächlich werden ein erster und ein zweiter Datenwert 10 und 12 mit jeweils einem ganzzahligen Teil und einem Bruch­ teil und einer Wortlänge von N Bits, wie in Fig. 1 darge­ stellt, aus einem Speicher (nicht dargestellt) ausgelesen und mittels eines Multiplizierers 14 multipliziert. Im Mul­ tiplizierer 14 werden multiplizierte Daten mit einer Länge von höchstens 2N Bits erzeugt. Derartige Multiplikationsda­ ten werden in einem Produktregister zwischengespeichert. Die im Produktregister 16 zwischengespeicherten Multiplikations­ daten werden über eine ALU (18) in einem Zustand, in dem eine Verschiebung um eine Bitanzahl entsprechend den ganzzahligen Teilen des ersten und des zweiten Datenwerts erfolgt ist, an ein Akkumulationsregister 20 verschoben. Der an das Akkumu­ lationsregister 20 verschobene Datenwert hat im Fall einer Datenoperation durch die ALU einen neuen Wert. Hinsichtlich des in Akkumulationsregister 20 gespeicherten Datenwerts kann ein Überlauf erzeugt werden. Dabei wird im Akkumulati­ onsregister 20 ein schwerwiegender Fehler hinsichtlich des Datenwerts erzeugt. Um den durch einen Überlauf verursachten schwerwiegenden Fehler zu verringern, verfügen DSPs gemäß der von Texas Instrument Co. Ltd. entwickelten Reihe TMS320C5x über eine Sättigungsoperationsfunktion anstelle einer Verhinderung von Überlaufbits. Andererseits addieren DSPs der von Motorola Corp. entwickelten Reihe DSP5600x acht Zusatzbits zum Akkumulationsregister 20, um einen Überlauf­ schutz zu erzielen, wie es in Fig. 1 dargestellt ist. In diesem Fall haben die ALU und das Akkumulationsregister 20 im DSP eine Länge von 8+2N Bits. Wenn die acht Zusatzbits bei einem DSP mit einer Wortlänge von 24 Bits verwendet wer­ den, haben sowohl die ALU als auch das Akkumulationsregister 20 in der DSP eine Länge von 56 Bits; wenn dagegen die acht Zusatzbits bei einem DSP mit einer Wortlänge von 20 Bits angewandt werden, haben die ALU und das Akkumulationsregis­ ter jeweils eine Länge von 48 Bits. Eine ALU und ein Akkumu­ lationsregister mit einer Wortlänge von mehr als 48 Bits bewirken, daß die Wafergröße eines DSP-Chips wie auch die Herstellkosten erhöht sind. Auch wird die Operationsge­ schwindigkeit des DSP niedrig, da bei einer ALU mit großer Wortlänge der Wert der Ausbreitungsverzögerung groß ist.
Der im Akkumulationsregister 20 gespeicherte Datenwert, der nachfolgend als "akkumulierter Datenwert" bezeichnet wird, wird in Sättigung überführt, bevor er an den Speicher über­ tragen wird. Durch diesen Sättigungsprozeß wird der akkumu­ lierte Datenwert in einen dritten Datenwert 22 mit einer Bitlänge geändert, die gleich groß ist wie die des ersten und des zweiten Datenwerts 10 und 12. Vor dem Ausführen ei­ nes derartigen Sättigungsprozesses ermöglichen es einige DSPs, eine Rundungsoperation auszuführen. Z. B. setzt der DSP von Motorola Corp. den im Akkumulator 20 gespeicherten Datenwert von 8+2N Bits unter einem Befehlswort "rnd" in einen Datenwert von 8+N Bits um. Der danach auszuführende Sättigungsprozeß ändert den gerundeten Datenwert in den dritten Datenwert 22 von N Bits.
Ein DSP unter Verwendung des oben beschriebenen Verfahrens benötigt zusätzlich ein Befehlswort und eine Taktperiode für die Rundungsoperation. Daher werden viele Taktperioden zu­ sätzlich vergeudet, wenn eine Rundungsoperation in einem Codesegment mit Schleife oder Blockwiederholung enthalten ist. Im Ergebnis nimmt der vom DSP ausgeführte Operationsum­ fang zu.
Ferner verschiebt der DSP gemäß dem Modell TMS320C5x von Texas Instrument Co., Ltd. den mittels der ALU zu berechnen­ den Datenwert um 0 bis 16 Bits unter Verwendung eines Vordi­ vidier-Schieberegisters, das in der Vorstufe der ALU ange­ ordnet ist, um 0 bis 16 Bits nach links. In diesem Fall wird im Allgemeinen eine Verschiebeoperation des mit "0" nume­ rierten Bits auf das mit "15" numerierte Bit zum Vordividie­ ren der Daten ausgeführt, jedoch wird eine Verschiebeopera­ tion zum mit "16" numerierten Bit verwendet, wenn eine Festkommaarithmetik anstelle einer ganzzahligen Arithmetik ausgeführt wird. Dies rührt von der Tatsache her, daß der aus dem Speicher ausgelesene Datenwert mit 16 Bits hinsicht­ lich der Bits hoher Ordnung des Akkumulationsregisters von 32 Bits ausgerichtet werden muß. Die Verschiebeoperation vom mit "0" numerierten Bit auf das mit "15" numerierte Bit zum Vordividieren des Datenwerts kann abhängig vom vor­ liegenden Algorithmus, insbesondere vom Algorithmuscodier verfahren, mehr oder weniger wirkungsvoll genutzt werden. Wenn ein Algorithmus ausgeführt wird, der mit einem Code realisiert ist, in dem die Vordividieroperation nicht wir­ kungsvoll genutzt wird, bewirkt das Vordividier-Schiebere­ gister eine Vergrößerung der Waferabmessungen des DSP-Chips sowie ein Anwachsen der Ausbreitungsverzögerung, ohne daß ein besonderer Vorteil erzielt würde. Z. B. verschiebt das im DSP von Motorola Corp. enthaltene Vordividier-Schiebere­ gister die Datenwerte um jeweils ein Bit nach links oder rechts. Der DSP von Motorola Corp. stellt verschiedene Mul­ tiplikations-Befehlswörter für Festkommaarithmetik und ganz­ zahlige Arithmetik zur Verfügung, um dadurch eine Operation aufzufangen, bei der im Prozessor TMS320C5x von Texas In­ strument Co. Ltd. die Daten um 16 Bits nach links verschoben werden.
Es ist eine Aufgabe der Erfindung, einen digitalen Signal­ prozessor zu schaffen, der eine ALU und ein Akkumulationsre­ gister mit kurzer Wortlänge enthält.
Es ist eine weitere Aufgabe der Erfindung, einen digitalen Signalprozessor zu schaffen, in dem keine zusätzlichen Takt­ perioden beim Runden von Daten vergeudet werden.
Es ist eine weitere Aufgabe der Erfindung, einen digitalen Signalprozessor zu schaffen, der ganzzahlige Arithmetik und/oder Festkommaarithmetik wirkungsvoll ausführen kann.
Noch eine andere Aufgabe der Erfindung ist es, einen digita­ len Signalprozessor zu schaffen, der eine Operation, ein­ schließlich eines Vordividierens von Daten, mit hoher Ge­ schwindigkeit ausführen kann.
Noch eine weitere Aufgabe der Erfindung ist es, einen digi­ talen Signalprozessor zu schaffen, bei dem eine Rundungsope­ ration für Daten überflüssig ist.
Diese Aufgaben sind durch die digitalen Signalprozessoren gemäß den beigefügten unabhängigen Ansprüchen gelöst.
Ein erfindungsgemäßer digitaler Signalprozessor umfaßt eine Dateneingabeeinrichtung zum Empfangen eines N-Bit-Daten­ werts; eine Rundungsbit-Hinzufügeeinrichtung zum Hinzufügen von r-Bit-Rundungsbits zum N-Bit-Datenwert von der Datenein­ gabeeinrichtung, wobei r kleiner als N ist; eine Schutzbit- Hinzufügeeinrichtung zum Hinzufügen von g-Bit-Schutzbits zu den Bits hoher Ordnung des Datenwerts von der Rundungsbit- Hinzufügeeinrichtung; eine Einrichtung, die dazu dient, den Datenwert von der Schutzbit-Hinzufügeeinrichtung einer Ope­ ration zu unterziehen; und eine Rundungs/Sättigungseinrich­ tung zum Ausführen eines Rundungsprozesses, eines Sätti­ gungsprozesses und eines kombinierten Prozesses, der den Rundungs- und den Sättigungsprozeß umfaßt, für den Daten­ wert von der Operationseinrichtung.
Ein digitaler Signalprozessor gemäß noch einer anderen Er­ scheinungsform dem Erfindung umfaßt eine Dateneingabeein­ richtung zum Empfangen eines N-Bit-Datenwerts, eine Ausrich­ tungseinheit zum Ausrichten des N-Bit-Datenwerts von der Dateneingabeeinrichtung zur linken Seite eines (N+r)-Bit- Busses; eine Einrichtung, die dazu dient, den Datenwert vom (N+r)-Bit-Bus einer Operation zu unterziehen; und eine Her­ leiteinrichtung zum Herleiten nur der N Bits hoher Ordnung aus dem Datenwert von der Operationseinrichtung.
Ein digitaler Signalprozessor gemäß noch einer anderen Er­ scheinungsform der Erfindung umfaßt eine Eingabeeinrichtung zum Empfangen eines N-Bit-Datenwerts; eine Einrichtung, die dazu dient, den Datenwert von der Eingabeeinrichtung sowie einen Datenwert von einer Rückkopplungsschleife einer Opera­ tion zu unterziehen; einen mit der Rückkopplungsschleife verbundenen Speicher zum zwischenspeichern des Datenwerts von der Operationseinrichtung; eine Einrichtung zum Skalie­ ren des Datenwert von der Eingabeeinrichtung; und eine Aus­ wähleinrichtung zum selektiven Übertragen des Datenwerts von der Skalierungseinrichtung und des Datenwerts von der Opera­ tionseinrichtung zum Speicher.
Ein digitaler Signalprozessor gemäß noch einer anderen Er­ scheinungsform der Erfindung umfaßt eine Dateneingabeein­ richtung zum Empfangen eines N-Bit-Datenwerts; eine Schutz­ bit-Hinzufügeeinrichtung zum Hinzufügen von g-Bit-Schutzbits zu den Bits hoher Ordnung des N-Bit-Datenwerts von der Da­ teneingabeeinrichtung; eine Einrichtung, die dazu dient, den Datenwert von der Schutzbit-Hinzufügeeinrichtung einer Ope­ ration zu unterziehen; und eine Sättigungseinrichtung zum Ausführen eines Sättigungsprozesses am Datenwert entspre­ chend logischen Werten der g+1 Bits hoher Ordnung des Daten­ werts von der Operationseinrichtung.
Diese und andere Aufgaben der Erfindung werden aus der fol­ genden detaillierten Beschreibung der Ausführungsbeispiele desselben unter Bezugnahme auf die beigefügten Zeichnungen deutlich.
Fig. 1 ist eine schematische Ansicht zum Erläutern einer Operation in einem herkömmlichen DSP gemäß dem Festkomma­ arithmetik-System;
Fig. 2 ist eine Ansicht, die schematisch die Konfiguration eines DSP gemäß einem Ausführungsbeispiel der Erfindung zeigt;
Fig. 3 ist eine Ansicht zum Erläutern einer Festkommaarith­ metik-Prozedur, bei der die Rundungsbitzahl durch einen in Fig. 2 dargestellten Rundungs/Sättigungs-Prozessor 86 um r Bits gegenüber der Anzahl N der Datenbits verringert wird;
Fig. 4 ist eine Ansicht zum Darstellen des Teils zum Ausfüh­ ren der Datenrundung gemäß Fig. 2;
Fig. 5 ist ein Blockdiagramm zum Erläutern einer Festkomma­ arithmetik-Prozedur und einer Arithmetikprozedur mit ganzen Zahlen gemäß Fig. 2;
Fig. 6 ist eine Ansicht zum Darstellen desjenigen Teils, der im DSP von Fig. 2 eine Operation einschließlich einer Ska­ lierung ausführt;
Fig. 7 ist eine schematische Ansicht, die die Konfiguration eines DSP gemäß einem anderen Ausführungsbeispiel der Erfin­ dung zeigt; und
Fig. 8 ist eine schematische Ansicht zum Erläutern einer Signalverarbeitungsprozedur im DSP gemäß Fig. 7.
Der in Fig. 2 dargestellte DSP gemäß einem Ausführungsbei­ spiel der Erfindung umfaßt ein erstes Register 30 zum Emp­ fangen eines N-Bit-Datenwerts von einem ersten externen Bus 31 sowie eine erste und eine zweite Bitausrichteinheit 32 und 34, die parallel zum ersten Register 30 geschaltet sind. Der erste externe Bus 31 besteht aus N Datenleitungen, die gemeinsam mit einem Arbeitsspeicher (nicht dargestellt) ver­ bunden sind, und dieser Bus wird als erster N-Bit-Nurleseda­ tenbus verwendet. Das erste Register 30 speichert den N-Bit-Da­ tenwert vom Speicher mittels des ersten externen Busses 31 ein. Die erste und die zweite Bitausrichteinheit 32 und 34 richten den N-Bit-Datenwert vom ersten Register 30 zur lin­ ken oder rechten Seite eines (N+r)-Bit-Busses aus, um da­ durch den Datenwert mit N Bits auf (N+r)-Bits zu erweitern. Genauer gesagt, verfügt die erste Bitausrichteinheit 32 über eine Verdrahtung, die N Bitausgangsleitungen des ersten Re­ gisters 30 mit N Eingangsanschlüssen hoher Ordnung eines ersten Eingangsports verbindet, bestehend aus N+r Anschlüs­ sen eines Multiplexers 36. Die zweite Bitausrichteinheit 34 verfügt über eine Verdrahtung, die die N Bitausgangsleitun­ gen des ersten Registers 30 mit N Eingangsanschlüssen nie­ driger Ordnung eines zweiten Eingangsports verbindet, beste­ hend aus N+r Anschlüssen des ersten Multiplexers 36. Dabei sind die r Bits hoher Ordnung durch Vorzeichenbits (Bits für positiv (+) oder negativ (-)) oder dem Wert "0" entsprechend dem Vorzeichenerweiterungsmodus des DSP belegt. Der erste Multiplexer 36 liefert den (N+r)-Bit-Datenwert vom ersten Eingangsport oder den (N+r)-Bit-Datenwert vom zweiten Ein­ gangsport an einen ersten Schutzbitaddierer 38, und zwar entsprechend dem Operationstyp, d. h. abhängig davon, ob Festkommaarithmetik oder solche mit ganzen Zahlen vorliegt. Der erste Schutzbitaddierer 38 fügt zum (N+r)-Bit-Datenwert vom ersten Multiplexer 36 g Schutzbits hinzu. Alle g Schutz­ bits sind auf "0" gesetzt, oder sie bilden eine Vorzeichen­ erweiterung des Datenwerts. Genauer gesagt, haben alle g Schutzbits einen logischen Wert, der dem Vorzeichenbit des (N+r)-Bit-Datenwerts entspricht, wenn der Modus mit Vorzei­ chenerweiterung eingestellt ist, oder es sind Bits mit dem logischen Wert "0", wenn dieser Modus rückgesetzt ist. Der Modus mit Vorzeichenerweiterung wird entsprechend einem spe­ ziellen Befehlswort gesetzt oder rückgesetzt. Um die g Schutzbits zum (N+r)-Bit-Datenwert hinzuzufügen, verfügt der Schutzbitaddierer 38 über eine Verdrahtung, die den Aus­ gangsport des ersten Multiplexers 36, bestehend aus N+r An­ schlüssen, mit N+r Leitungen niedriger Ordnung, innerhalb der g+N+r Leitungen in einem ersten internen Bus 35 verbin­ det.
Der DSP umfaßt ferner ein zweites Register 40 und einen Multiplizierer 46, die in Reihe zum ersten externen Bus 31 geschaltet sind, sowie einen zweiten Multiplexer 42, der mit dem ersten und zweiten externen Bus 31 und 33 verbunden ist. Das zweite Register 40 ist dafür zuständig, den N-Bit-Daten­ wert vom Speicher, wie über den ersten externen Bus 31 emp­ fangen, zwischenzuspeichern, entsprechend wie das erste Re­ gister 30. Der zweite externe Bus 33 besteht aus N Leitun­ gen, die gemeinsam mit einem programmierbaren Speicher und einem zweiten Arbeitsspeicher, die nicht dargestellt sind, verbunden sind, und er wird als zweiter Nurlesedatenbus ver­ wendet. Der zweite Multiplexer 42 liefert entweder den N-Bit-Datenwert vom ersten externen Bus 31, wie er seinem ers­ ten Eingangsport zugeführt wird, oder den N-Bit-Datenwert vom zweiten externen Bus 33, wie er seinem zweiten Eingang­ sport zugeführt wird, an ein drittes Register 44. Das dritte Register 44 speichert den N-Bit-Datenwert vom zweiten Multi­ plexer 42 zeitweilig ein. Der Multiplexer 46 multipliziert die zwei Datenwerte, wie sie im zweiten und dritten Register 40 und 44 gespeichert sind. Das Multiplikationsergebnis vom Multiplizierer 46 verfügt über 2N Bits. Demgemäß muß ein viertes Register 48 zum zwischenspeichern des Datenwerts vom Multiplizierer 46 eine Länge von 2N Bits aufweisen. Eine Bitausrichtungs/Schutzbitaddierer-Einrichtung 50, die zwi­ schen das vierte Register 48 und einen zweiten internen Bus 37 geschaltet ist, setzt den im vierten Register 48 gespei­ cherten 2N-Bit-Datenwert in einen (N+r)-Bit-Datenwert um (wobei 2N < N+r gilt), und sie addiert g Schutzbits zum um­ gesetzten (N+r)-Bit-Datenwert.
Der DSP umfaßt ferner einen dritten bis fünften Multiplexer 52 bis 56, die gemeinsam mit dem ersten internen Bus 35 ver­ bunden sind. Der dritte Multiplexer 52 verfügt über einen ersten bis dritten Eingangsport zum Empfangen von (g+N+r)-Bit-Da­ tenwerten vom ersten, zweiten und vierten internen Bus 35, 37 bzw. 43. Der Multiplexer 42 liefert einen der drei Datenwerte vom ersten, zweiten und vierten internen Bus 35, 37 und 43 an eine erste ALU 58. Der vierte Multiplexer 54 verfügt über einen ersten Eingangsport 39 zum Empfangen ei­ nes logischen Werts "0" sowie über einen zweiten und einen dritten Eingangsport zum Empfangen der (g+N+r)-Bit-Datenwer­ te vom zweiten und dritten internen Bus 35 bzw. 41. Die ers­ te ALU 58 unterzieht die zwei Datenwert vom dritten und vierten Multiplexer 52 und 54 einer Operation, und sie lie­ fert das Operationsergebnis an einen sechsten Multiplexer 62. Der fünfte Multiplexer 56 liefert auch selektiv den (g+N+r)-Bit-Datenwert vom ersten internen Bus 35 sowie den (g+N+r)-Bit-Datenwert vom dritten internen Bus 41 an ein Umlaufregister 60. Das Umlaufregister 60 skaliert den logi­ schen Wert des Datenwerts vom fünften Multiplexer 56 und liefert den skalierten Datenwert an den sechsten Multiplexer 62. Für einen derartigen Datenskaliervorgang verschiebt das Umlaufregister 60 den Datenwert vom fünften Multiplexer 56 um eine Anzahl von Bits, die dem Skalierausmaß entspricht, nach links oder nach rechts. Auch ist das Umlaufregister 60 parallel zur ersten ALU 58 geschaltet, um die Ausbreitungs­ verzögerung von Daten zu minimieren. Demgemäß kann der DSP die vier Arithmetikoperationen und die Skalierung ausführen, wobei die vier Arithmetikoperationen eine Skalierung mit hoher Geschwindigkeit umfassen. Der sechste Multiplexer 62 liefert selektiv den den vier Arithmetikoperationen unterzo­ genen Datenwert mit g+N+r Bits von der ersten ALU 58 und den skalierten Datenwert vom Umlaufregister 60 an ein fünftes oder sechstes Register 64 bzw. 66. Der im fünften oder sechsten Register 64 bzw. 66 gespeicherte Datenwert wird an den dritten internen Bus 41 geliefert. Das fünfte und sechs­ te Register 64 bzw. 66 sind Akkumulationsregister, die ge­ meinsam mit der ersten ALU 58 einen ersten Akkumulator bil­ den. Das fünfte und sechste Register 64 bzw. 66 haben eine Länge von g+N+r Bits, um den (g+N+r)-Bit-Datenwert zwischen­ zuspeichern, und auch der dritte interne Bus 41 besteht aus (g+N+r) Leitungen.
Der DSP umfaßt ferner einen siebten, mit dem ersten und vierten internen Bus 35 und 43 verbundenen Multiplexer 68 sowie einen achten, mit dem ersten und zweiten internen Bus 35 und 37 verbundenen Multiplexer 70. Der siebte Multiplexer 68 verfügt über einen ersten Eingangsport 45 zum Empfangen des logischen Werts "0" sowie einen zweiten und dritten Ein­ gangsport zum Empfangen der (g+N+r)-Bit-Datenwerte vom ers­ ten bzw. vierten internen Bus 35 bzw. 43. Der siebte Multi­ plexer 68 liefert einen der drei Datenwerte an seinem ersten bis dritten Eingangsport an eine zweite ALU 72. Der achte Multiplexer 70 verfügt über einen ersten und einen zweiten Eingangsport zum Empfangen des (g+N+r)-Bit-Datenwerts vom ersten bzw. zweiten internen Bus 35 bzw. 37. Der achte Mul­ tiplexer 70 liefert einen der zwei Datenwerte vom ersten und zweiten internen Bus 35 und 37 an die zweite ALU 72. Die zweite ALU 72 unterzieht die zwei Datenwerte vom siebten und achten Multiplexer 68 und 70 einer Operation und liefert das Operationsergebnis an einen neunten Multiplexer 74. Der neunte Multiplexer 74 liefert den Operationsdatenwert von g+N+r Bits von der zweiten ALU 72 sowie den skalierten Da­ tenwert vom Umlaufregister 60 an das siebte oder achte Re­ gister 76 oder 78. Das siebte oder achte Register 76 oder 78 liefert den Datenwert vom neunten Multiplexer 74 an den vierten internen Bus 43. Das siebte oder achte Register 76 oder 78 ist ein Akkumulationsregister, das zusammen mit der zweiten ALU 72 einen zweiten Akkumulator bildet. Der zweite Akkumulator ist parallel zum ersten Akkumulator geschaltet, um eine parallele Operation mehrerer komplexe arithmetischer Gleichungen vorzunehmen. Sowohl das siebte als auch das ach­ te Register 76 und 78 haben eine Länge von g+N+r Bits, um einen (g+N+r)-Bit-Datenwert zwischenzuspeichern. Auch ermög­ lichen es das siebte und das achte Register 76 und 78, eine Anzahl komplexer arithmetischer Gleichungen mit hoher Ge­ schwindigkeit in Zusammenarbeit mit dem fünften und sechsten Register 64 und 66 auszuführen.
Ferner umfaßt der DSP einen zehnten Multiplexer 80 zum Aus­ wählen von zwei (g+N+r)-Bit-Datenwerten vom dritten und vierten internen Bus 41 und 43 sowie über eine dritte und eine vierte Bitausrichteinheit 82 und 84, die gemeinsam mit dem zehnten Multiplexer 80 verbunden sind, sowie über einen Rundungs/Sättigungs-Prozessor 82. Der zehnte Multiplexer 80 versorgt gemeinsam die dritte und die vierte Bitausrichtein­ heit 82 und 84 sowie den Rundungs/Sättigungs-Prozessor 86 über den dritten internen Bus 41 mit entweder dem (g+N+r)-Bit-Da­ tenwert vom fünften oder sechsten Register 64 oder 66, oder über den vierten internen Bus 23, mit dem (g+N+r)-Bit-Da­ tenwert vom siebten oder achten Register 76 oder 78. Die dritte oder vierte Bitausrichteinheit 82 und 84 leiten nur N Bits aus dem (g+N+r)-Bit-Datenwert vom zehnten Multiplexer 80 her, und sie liefern den N-Bit-Datenwert an den ersten und zweiten Eingangsport eines elften Multiplexers 88. Ge­ nauer gesagt, leitet die dritte Bitausrichteinheit 82 nur einen Datenwert vom Bit g+1 hoher Ordnung bis zum Bit N nie­ driger Ordnung im (g+N+r)-Bit-Datenwert vom zehnten Multi­ plexer 80 her, und sie liefert den hergeleiteten N-Bit-Da­ tenwert an den ersten Eingangsport des elften Multiplexers 88. Zu diesem Zweck umfaßt die dritte Bitausrichteinheit 82 eine Verdrahtung, die N Anschlüsse ab dem Anschluß g+1 ho­ her Ordnung, d. h. die restlichen N Anschlüsse mit Ausnahme der Anschlüsse g hoher Ordnung und der Anschlüsse r niedri­ ger Ordnung unter den g+N+r Ausgangsanschlüssen des zehnten Multiplexers 80 mit dem ersten Eingangsport des elften Mul­ tiplexers 88 verbindet, der aus N Anschlüssen besteht. Die dritte Bitausrichteinheit 82 setzt den (g+N+r)-Bit-Datenwert nur mittels der Verdrahtung in einen N-Bit-Datenwert um. Die vierte Bitausrichteinheit 84 leitet nur einen Datenwert der N Bits niedriger Ordnung im (g+N+r)-Bit-Datenwert vom zehn­ ten Multiplexer 80 her und liefert den hergeleiteten N-Bit-Da­ tenwert an den zweiten Eingangsport des elften Multiple­ xers 88. Zu diesem Zweck umfaßt die vierte Bitausrichtein­ heit 84 eine Verdrahtung, die die N Anschlüsse niedriger Ordnung, d. h. die restlichen N Anschlüsse mit Ausnahme der Anschlüsse g+r hoher Ordnung, innerhalb der g+N+r Ausgangs­ anschlüsse des zehnten Multiplexers 80 mit dem zweiten Ein­ gangsport des elften Multiplexers 88 verbindet, der aus N Anschlüssen besteht. Die vierte Bitausrichteinheit 84 erfor­ dert keinen gesonderten Schaltungsblock, da sie nur durch die Verdrahtung gemeinsam mit der ersten bis dritten Bitaus­ richteinheit 32, 34 und 82 gebildet ist. Demgemäß können die erste bis vierte Bitausrichteinheit 32, 34, 82 und 84 die Schaltungskonfiguration des DSP vereinfachen, und sie können Festkommaarithmetik-Operationen und Arithmetikoperationen mit ganzen Zahlen mit hoher Geschwindigkeit ausführen.
Der Rundungs/Sättigungs-Prozessor 86 wird in einem Rundungs­ prozeßmodus, einem Sättigungsprozessormodus oder einem kom­ binierten Modus unter einem Befehl von einer Steuerung (- nicht dargestellt) betrieben. Im Rundungsmodus prüft der Rundungs/Sättigungs-Prozessor 86 den logischen Wert des Bits r im (g+N+r)-Bit-Datenwert vom zehnten Multiplexer 80. Wenn der logische Wert des Bits r niedriger Ordnung 1 ist, ent­ fernt der Rundungs/Sättigungs-Prozessor 86 r Bits niedriger Ordnung aus dem (g+N+r)-Bit-Datenwert, um einen (g+N)-Bit-Da­ tenwert zu erzeugen. Durch den Rundungs/Sättigungs-Prozes­ sor 86 wird 1 zum (g+N)-Bit-Datenwert addiert. Aus dem durch die Addition erhaltenen (g+N)-Bit-Datenwert werden g Bits entfernt, um einen N-Bit-Datenwert zu erzeugen. Der Run­ dungs/Sättigungs-Prozessor 86 liefert den N-Bit-Datenwert an den elften Multiplexer 88. Anschließend verarbeitet der Run­ dungs/Sättigungs-Prozessor 86 im Sättigungsmodus den Daten­ wert entsprechend dem logischen Wert der g+1 Bits hoher Ord­ nung im (g+N+r)-Bit-Datenwert vom zehnten Multiplexer 80. Genauer gesagt, ermittelt der Rundungs/Sättigungs-Prozessor 86 die Entstehung eines Überlaufs abhängig davon, ob alle logischen Werte der g+l Bits hoher Ordnung (d. h. g Schutz­ bits und ein Vorzeichenbit) im (g+N+r)-Bit-Datenwert vom zehnten Multiplexer 80 übereinstimmen oder ob dies nicht der Fall ist. Wenn dies der Fall ist, liefert der Rundungs/Sät­ tigungs-Prozessor 86 den verbliebenen N-Bit-Datenwert mit Ausnahme des Bits g hoher Ordnung und des Bits r niedriger Ordnung im (g+N+r)-Bit-Datenwert vom zehnten Multiplexer 80 als Operationsergebnis an den dritten Eingangsport des elf­ ten Multiplexers 88. Andernfalls, wenn dies nicht der Fall ist, ermittelt der Rundungs/Sättigungs-Prozessor 86, ob der logische Wert des höchstsignifikanten Bits der g Schutzbits "0" oder "1" ist. Wenn der logische Wert des höchstsignifi­ kanten Bits "0" ist, sieht der Rundungs/Sättigungs-Prozessor 86 den Datenwert vom zehnten Multiplexer 80 als positiven (+) Datenwert an, der mit Überlauf versehen ist, und er lie­ fert einen Maximalwert eines N-Bit-Datenwerts (d. h. "0111. . .11"), in dem nur das höchstsignifikante Bit den logischen Wert "0" hat, an den dritten Eingangsport des elften Multi­ plexers 88. Andernfalls, wenn der logische Wert des höchst­ signifikanten Bits "1" ist, sieht der Rundungs/Sätti­ gungs-Prozessor 86 den Datenwert vom zehnten Multiplexer 80 als negativen (-) Datenwert an, der mit einem Überlauf versehen ist, und er liefert einen N-Bit-Datenwert (d. h. "1000. . .00"), in dem nur das höchstsignifikante Bit den logischen Wert "1" hat, an den dritten Eingangsport des elften Multi­ plexers 88. Wie oben beschrieben, unterzieht der Sättigungs­ prozessor 86 einen logischen Sättigungswert (d. h. einen logischen Wert, der einen Überlauf erzeugt) des mittels der ALU 58 oder 72 einer Operation unterzogenen Datenwerts einem genauen Prozeß auf Grundlage der logischen Werte der Schutzbits und eines Vorzeichenbits. Im Kombinationsmodus führt der Rundungs/Sättigungs-Prozessor 86 den Rundungspro­ zeß für den (g+N+r)-Bit-Datenwert vom zehnten Multiplexer 80 aus, und dann führt er den Sättigungsprozeß für den ge­ rundeten (g+N)-Bit-Datenwert aus. Der auf die obige Weise unter Verwendung des Rundungs/Sättigungs-Prozessors 86 einer Rundungs- und Sättigungsoperation unterzogene N-Bit-Daten­ wert wird an den elften Multiplexer 88 gegeben. In diesem Fall führt der Rundungs/Sättigungs-Prozessor 86 als erstes den Rundungsprozeß für die Bits niedriger Ordnung aus, je­ doch führt er den Rundungs- und Sättigungsprozeß innerhalb einer Taktperiode aus, so daß er keine zusätzliche Run­ dungsprozeßzeit vergeudet. Demgemäß liefert der Rundungs/Sät­ tigungs-Prozessor 86 den Vorteil, daß er einer Festkom­ maoperation unterzogene Datenwerte runden kann, ohne daß er einen zusätzlichen Takt vergeudet. Der elfte Multiplexer 88 überträgt einen der drei N-Bit-Datenwerte von der dritten und vierten Bitausrichteinheit 82 und 84 sowie vom Run­ dungs/Sättigungs-Prozessor 86 an den dritten externen Bus 47. Dieser dritte externe Bus 47 besteht aus N Leitungen einschließlich eines Nurschreibdatenbusses und eines Nur­ schreibadreßbusses.
Fig. 3 veranschaulicht eine Festkommaarithmetikprozedur, bei der die Anzahl r von Rundungsbits kleiner als die Anzahl N von Datenbits ist, die unter Verwendung des Rundungs/Sätti­ gungs-Prozessors 86 gemäß Fig. 2 ausgeführt wird. Gemäß Fig. 3 werden ein erster und ein zweiter Datenwert 90 und 92 se­ quentiell aus einem Speicher (nicht dargestellt) ausgelesen, von denen jeder eine Länge von N Bits aufweist. Das höchst­ signifikante Bit des ersten und des zweiten Datenwerts 90 und 92 enthält ein einzelnes Vorzeichenbit, das anzeigt, ob der logische Wert eine positive Zahl oder eine negative Zahl darstellt. Der erste und der zweite Datenwert 90 und 92 wer­ den durch den in Fig. 2 dargestellten Multiplizierer 86 ver­ arbeitet, um einen dritten Datenwert 94 mit einer Länge von 2N Bits zu erzeugen. Dieser dritte Datenwert 94 wird durch die in Fig. 2 dargestellte Bitausrichtungs/Schutzbitaddie­ rer-Einrichtung 50 in einen fünften (g+N+r)-Bit-Datenwert 98 geändert, wobei g und r die Anzahl der Schutzbits bzw. die Anzahl der Rundungsbits repräsentieren. Der fünfte Datenwert 98 wird dadurch erhalten, daß s Bits niedriger Ordnung aus dem vierten Datenwert 96 herausgeschnitten werden, wodurch die Form von Eingangs- und Ausgangsdaten der ALUs 54 und 72 erhalten wird. Ferner wird der fünfte Datenwert 98 im Akku­ mulationsregister 64 oder 76, oder 66 oder 78 mit einer Län­ ge von g+N+r Bits mittels der ALU 58 oder 72 zwischengespei­ chert. Der im Akkumulationsregister 64 oder 76, oder 66 oder 78 gespeicherte fünfte Datenwert 98 wird dadurch in einen sechsten Datenwert 100 mit einer Länge von N Bits umgesetzt, daß er unter Verwendung des in Fig. 2 dargestellten Run­ dungs/Sättigungs-Prozessors 86 verarbeitet wird. In einem Abrundungs/Sättigungs-Kombinationsmodus wird als erstes der fünfte Datenwert 98 dadurch in einen (g+N)-Bit-Datenwert umgesetzt, daß er abgerundet wird, und danach wird er ab­ hängig davon, ob die logischen Werte der g+1 Bits hoher Ord­ nung (d. h. g Schutzbits und ein Vorzeichenbit) übereinstim­ men, und ob das höchstsignifikante Schutzbit "1" oder "0" ist, auf verschiedene Art gesättigt, wodurch er schließlich in einen N-Bit-Datenwert umgesetzt wird. Wenn die logischen Werte der g+1 Bits hoher Ordnung gleich sind, werden die restlichen N Bits, mit Ausnahme der g Bits hoher Ordnung, im abgerundeten (g+1)-Bit-Datenwert in einen sechsten Datenwert 100 umgesetzt. Wenn die logischen Werte der g+1 Bits hoher Ordnung nicht übereinstimmen und das höchstsignifikante Bit "0" ist, wird der abgerundete (g+N)-Bit-Datenwert als posi­ tiver (+) Datenwert unter Erzeugung eines Überlaufs angese­ hen und in einen sechsten N-Bit-Datenwert 100, d. h. "0111. . .11" umgesetzt, in dem nur das höchstsignifikante Bit den logischen Wert "0" hat. Andernfalls, wenn nämlich die logi­ schen Werte der g+1 Bits hoher Ordnung nicht gleich sind und das höchstsignifikante Bit "1" ist, wird der abgerundete (g+N)-Bit-Datenwert als ein negativer (-) Datenwert unter Erzeugung eines Überlaufs angesehen und in einen sechsten N-Bit-Datenwert 100, d. h. "1000. . .00" umgesetzt, in dem nur das höchstsignifikante Bit den logischen Wert "1" hat. Bei einer derartigen Prozedur wird der Sättigungsprozeß im Ab­ rundungsmodus weggelassen, während der Abrundungsmodus im Sättigungsmodus weggelassen wird. Der abschließend gemäß diesem Operationsablauf berechnete sechste Datenwert 100 hat einen sehr genauen Wert, mit einem Fehler, der so stark wie möglich minimiert ist.
Fig. 4 zeigt denjenigen Teil des DSP von Fig. 2, der die Rundung eines Datenwerts ausführt. Gemäß Fig. 4 wird ein erster (g+N+r)-Bit-Datenwert D1 mittels der ALU 58 oder 72 einer Operation unterzogen und danach in einem der Akkumula­ tionsregister 64, 66, 76 oder 78 zwischengespeichert. Im ersten Datenwert D1 repräsentiert g die Anzahl der Schutz­ bits, N repräsentiert die Anzahl von im Speicher (nicht dar­ gestellt) gespeicherten Datenbits und r repräsentiert die Anzahl von Rundungsbits. Die dritte Bitausrichteinheit 82 setzt den ersten Datenwert D1 mittels der unter Bezugnahme auf Fig. 2 beschriebenen Verdrahtung ohne zusätzliche Verar­ beitungszeit in einen zweiten N-Bit-Datenwert D2 um. Der Rundungs/Sättigungs-Prozessor 86 rundet den ersten Datenwert Dl und führt dann einen Sättigungsvorgang für den gerundeten Datenwert aus, wie oben unter Bezugnahme auf Fig. 2 be­ schrieben, um ihn dadurch in einen zweiten N-Bit-Datenwert D2 umzusetzen. Der elfte Multiplexer 88 wählt den Ausgangs­ datenwert des Rundungs/Sättigungs-Prozessors 86 sowie den Ausgangsdatenwert der dritten Bitausrichteinheit 33 abhängig davon aus, ob ein Durchlaßmodus, der Rundungsprozeßmodus, der Sättigungsprozeßmodus oder der Kombinationsmodus durch einen Befehl von einer Steuerung (nicht dargestellt) ausge­ wählt ist. Genauer gesagt, wählt der elfte Multiplexer 88 den Ausgangsdatenwert des Rundungs/Sättigungs-Prozessors 86 aus, wenn der Rundungsprozeß, der Sättigungsprozeß oder der Kombinationsmodus ausgewählt ist. Andererseits wählt, wenn der Durchlaßmodus ausgewählt ist, der elfte Multiple­ xer 88 den Ausgangsdatenwert von der dritten Bitausrichtein­ heit 82 aus. Aufgrund des Rundungs/Sättigungs-Prozessors 86, der dritten Bitausrichteinheit 82 und des elften Multiple­ xers 88 vergeudet die DSP keine zusätzliche Zeit (d. h. eine Taktperiode), und demgemäß verarbeitet sie Datenwerte mit hoher Geschwindigkeit.
Fig. 5 ist ein Blockdiagramm zum Erläutern des Festkomma­ arithmetik-Prozesses und des Arithmetikprozesses mit ganzen Zahlen in Fig. 2. Gemäß Fig. 5 unterzieht das Register 30 den N-Bit-Datenwert vom Speicher (nicht dargestellt) einer Zwischenspeicherung. Die erste Bitausrichteinheit 32 richtet den N-Bit-Datenwert vom Register 30 unter Unterstützung der Verdrahtung zur linken Seite des (N+r)-Bit-Datenbusses aus.
In entsprechender Weise richtet die zweite Bitausrichtein­ heit 34 den N-Bit-Datenwert vom Register 30 mit Unterstüt­ zung der Verdrahtung zur rechten Seite des (N+r)-Bit-Busses aus. Dann wird der logische Wert der r Bits hoher Ordnung entsprechend dem Modus mit Vorzeichenerweiterung bestimmt. D. h., daß dann, wenn der Modus mit Vorzeichenerweiterung eingestellt ist, alle r Bits hoher Ordnung ein Vorzeichenbit für den N-Bit-Datenwert enthalten. Dagegen haben alle r Bits hoher Ordnung den Wert "0", wenn der Modus mit Vorzeichener­ weiterung rückgesetzt ist. Der Akkumulator 102 empfängt den (N+r)-Bit-Datenwert von der ersten Bitausrichteinheit 32, um eine Festkommaarithmetik auszuführen, oder er empfängt den (N+r)-Bit-Datenwert von der zweiten Bitausrichteinheit 34, um eine Arithmetik mit ganzen Zahlen auszuführen. Der Akku­ mulator 102 ist mit der ALU 58 oder 72 und den Registern 64 oder 66, oder den Registern 76 oder 78 versehen. Die dritte Bitausrichteinheit 82 überträgt nur die N Bits hoher Ordnung innerhalb des (N+l)-Bit-Datenwerts vom Akkumulator 102 unter Unterstützung durch die Verdrahtungsstruktur an den Spei­ cher. Demgemäß richten die erste und die dritte Bitausrich­ teinheit 32 und 82 den Datenwert mittels der Verdrahtung nach links aus, um dadurch die Festkommaarithmetik mit hoher Geschwindigkeit auszuführen. Die vierte Bitausrichteinheit 84 überträgt nur die N Bits niedriger Ordnung im (N+r)-Bit-Da­ tenwert vom Akkumulator 102 unter Unterstützung durch die Verdrahtungsstruktur an den Speicher. Demgemäß richten die zweite und die vierte Bitausrichteinheit 34 und 84 den Da­ tenwert mittels der Verdrahtung nach rechts aus, um dadurch eine Arithmetik mit ganzen Zahlen mit hoher Geschwindigkeit auszuführen. Durch Ausrichten der Daten unter Unterstützung der Verdrahtung, wie oben beschrieben, benötigt der DSP kei­ nen zusätzlichen Schaltungsblock wie ein Schieberegister, und er ermöglicht schnelle Festkommaarithmetik und schnelle Arithmetik mit ganzen Zahlen.
Fig. 6 zeigt eine Schaltungskonfiguration zum Ausführen ei­ ner arithmetischen Additions/Subtraktions-Operation ein­ schließlich einer Skalierung im DSP von Fig. 2. Gemäß Fig. 6 ist das Umlaufregister 60 parallel zur ersten ALU 58 ge­ schaltet und gemeinsam mit den zwei Akkumulationsregistern 64 und 76 verbunden. Wenn die arithmetische Additions/Sub­ traktions-Operation einen Skalierungsvorgang enthält, führt das Akkumulationsregister 76 eine Zwischenspeicherung des zuvor durch das Umlaufregister 60 skalierten Datenwerts aus. Der im Akkumulationsregister 76 gespeicherte Datenwert wird an die erste ALU 58 gegeben, um während des nächsten Zyklus einer arithmetischen Additions/Subtraktions-Operation unter­ zogen zu werden. Das Ergebnis der arithmetischen Additions/Sub­ straktions-Operation wird im Akkumulationsregister 64 abgespeichert. Die oben beschriebene Schaltungsstruktur weist einen kritischen Pfad auf, der kürzer als bei den von Texas Instrument Co. Ltd. entwickelten DSPs der Reihe TMS320C5x ist, und sie verfügt über eine serielle Schaltung aus dem Umlaufregister und der ALU. Ferner ist diese Schal­ tungsstruktur wirkungsvoller als eine solche bei DSPs mit nur einem Register und einem Parallelschaltkreis aus einem Umlaufregister und einer ALU. D. h., daß diese Schaltungs­ struktur weniger Zyklen als andere DSPs benötigt. Genauer gesagt, läuft ein Datenwert vom ersten externen Bus 31 über das erste Register 30, den dritten Multiplexer 52, die erste ALU 58, den sechsten Multiplexer 62, das fünfte Register 64 und den elften Multiplexer 88 der Reihe nach zum dritten externen Bus 47; vom ersten externen Bus 31 über das erste Register 30, den fünften Multiplexer 56, das Umlaufregister 60, den sechsten Multiplexer 62, das fünfte Register 64 und den elften Multiplexer 88 der Reihe nach zum dritten exter­ nen Bus 47; oder vom ersten externen Bus 31 über das erste Register 30, den fünften Multiplexer 56, das Umlaufregister 60, das siebte Register 76 und den elften Multiplexer 88 der Reihe nach zum dritten externen Bus 47. Das Umlaufregister 60 ist parallel zur ersten ALU 58 geschaltet, so daß der DSP die Ausbreitungsverzögerung minimieren kann. Auch kann die Anzahl für die Operation benötigter Takte minimiert wer­ den, da für eine ALU zwei Akkumulationsregister vorhanden sind. Demgemäß kann der DSP die arithmetische Additions/Sub­ traktions-Operation, die Skalierung und eine arithmetische Additions/Subtraktions-Operation mit Skalierung mit hoher Geschwindigkeit ausführen.
Der in Fig. 7 dargestellte DSP gemäß einem anderen Ausfüh­ rungsbeispiel der Erfindung ist am besten dazu geeignet, die Operation "AC-3" auszuführen, wie sie von Dolby Co. Ltd. für einen Audiokompressions- und Rekonstruktionsalgorithmus vor­ geschlagen ist. Genauer gesagt, führt der DSP von Fig. 7 wirkungsvolle Signalverarbeitungsschritte aus, um ein Im­ pulscode-moduliertes Signal aus einem komprimierten Signal mittels AC-3 rückzugewinnen. Ein im DSP von Fig. 7 enthalte­ nes Akkumulationsregister und eine ALU verfügen über eine Wortlänge, die kürzer als diejenige bei bisherigen DSPs ist. Tatsächlich erfordert der DSP gemäß diesem anderen Ausfüh­ rungsbeispiel der Erfindung, wenn die Daten die Wortlänge N haben, ein Akkumulationsregister und eine ALU mit jeweils einer Länge von g+N Bits. D. h., daß die Anzahl von Run­ dungsbits "0" eingestellt ist, so daß der Effekt des DSP mit einer (g+N+r)-Bit-ALU und einem Akkumulationsregister maximiert ist. Im DSP mit einer (g+N)-Bit-ALU und einem Ak­ kumulationsregister müssen das Einspeichern eines FFT-Koef­ fizienten und eine arithmetische Schmetterlingsoperation (Butterfly Operation) geeignet ausgeführt werden, um arith­ metische Fehler zu minimieren, wie sie während der arithme­ tischen Operation erzeugt werden. Dies rührt aus der Tatsa­ che her, daß arithmetische Fehler abhängig von der Auswahl der Speicherungs- und Operationsmethoden groß oder klein sind. Um die Speicherungs- und Operationsmethoden geeignet auszuwählen, wird festgestellt, ob die Fehler versetzt sind oder nicht, was durch Analyse der Schritte bei der Festkom­ maarithmetik-Operation erfolgt. Der Prozeß des Auswählens der Speicherungs- und Operationsverfahren wird nachfolgend beschrieben.
Es wird erneut auf Fig. 7 Bezug genommen, gemäß der die DSP gemäß diesem anderen Ausführungsbeispiel ein erstes Register 130 zum Empfangen eines N-Bit-Datenwerts von einem ersten externen Bus 131 sowie einen mit dem ersten Register 130 verbundenen Schutzbitaddierer 132 aufweist. Der erste exter­ ne Bus 131 besteht aus N Datenleitungen, die gemeinsam mit einem Arbeitsspeicher (nicht dargestellt) verbunden sind, und er wird als erster N-Bit-Nurlesedatenbus verwendet. Das erste Register 130 nimmt eine Zwischenspeicherung des N-Bit-Da­ tenwerts vom Speicher über den ersten externen Bus 131 vor. Der Schutzbitaddierer 132 addiert g Schutzbits zum N-Bit-Datenwert vom ersten Register 130. Die g Schutzbits wer­ den auf "0" gesetzt, oder sie bilden eine Vorzeichenerweite­ rung des Datenwerts. Genauer gesagt, haben alle g Schutzbits einen logischen Wert, der mit dem Vorzeichenbit des Daten­ werts übereinstimmt, wenn der Modus mit Vorzeichenerweite­ rung gesetzt ist, aber sie haben den logischen Wert "0", wenn der Modus mit Vorzeichenerweiterung rückgesetzt ist. Um die g Schutzbits zum N-Bit-Datenwert hinzuzufügen, verfügt der Schutzbitaddierer 132 über eine Verdrahtung, die den Ausgangsport des ersten Registers 130 mit N Anschlüssen mit den N Leitungen niedriger Ordnung innerhalb von g+N Leitun­ gen verbindet, die in einem ersten internen Bus 135 vorhan­ den sind.
Der DSP umfaßt ferner ein zweites Register 136 und einen Multiplizierer 140, die in Reihe zum ersten externen Bus 131 geschaltet sind, sowie einen ersten Multiplexer 134, der mit dem ersten und dem zweiten externen Bus 131 und 133 verbun­ den ist. Das zweite Register 136 ist zum zwischenspeichern des N-Bit-Datenwerts vom Speicher, wie über den ersten ex­ ternen Datenbus 131 empfangen, zuständig, entsprechend wie das erste Register 130. Der zweite externe Bus 133 besteht aus N Leitungen, die gemeinsam mit einem programmierbaren Speicher und dem zweiten Arbeitsspeicher, die nicht darge­ stellt sind, verbunden sind, und er wird als zweiter Nurle­ sedatenbus verwendet. Im programmierbaren Speicher sind eine Cosinuskonstante und eine Sinuskonstante für den IFFT-Algo­ rithmus als dasselbe Vorzeichen gespeichert. Dies verhindert eine Fehlererzeugung bei der Umkehrtransformation. Der erste Multiplexer 134 versorgt ein drittes Register 138 mit dem N-Bit-Datenwert vom ersten externen Bus 131, wie seinem ersten Eingangsport zugeführt, oder dem N-Bit-Datenwert vom zweiten externen Bus 133, wie seinem zweiten Eingangsport zugeführt. Das dritte Register 138 führt eine Zwischenspeicherung des N-Bit-Datenwerts vom ersten Multiplexer 134 aus. Der Multi­ plizierer 140 multipliziert die zwei Datenwerte, wie sie im zweiten und dritten Register 136 und 138 gespeichert sind. Das vom Multiplizierer 46 erzeugte Multiplikationsergebnis kann 2N Bits aufweisen. Demgemäß hat ein viertes Register 142 zum zwischenspeichern des Datenwerts vom Multiplizierer 140 eine Länge von 2N Bits. Ein zwischen das vierte Register 142 und einen zweiten internen Bus 137 geschalteter Bitcon­ troller 144 setzt den im vierten Register 142 gespeicherten 2N-Bit-Datenwert in einen N-Bit-Datenwert um, und er addiert g Schutzbits zum umgesetzten (N+r)-Bit-Datenwert. Zu diesem Zweck verfügt der Bitcontroller 144 über eine Verdrahtung, die den Ausgangsport des vierten Registers 142, der aus N Anschlüssen besteht, mit den N Leitungen niedriger Ordnung innerhalb der g+N Leitungen im zweiten internen Bus 137 ver­ bindet.
Der DSP umfaßt ferner einen zweiten bis vierten Multiplexer 146 bis 150, die gemeinsam mit dem ersten internen Bus 135 verbunden sind. Der sechste Multiplexer 146 verfügt über einen ersten bis dritten Eingangsport zum Erhalten von (g+N)-Bit-Datenwerten vom ersten, zweiten und vierten inter­ nen Bus 135, 137 bzw. 143. Der zweite Multiplexer 146 lie­ fert einen der drei Datenwerte vom ersten, zweiten und vier­ ten internen Bus 135, 137 und 143 an eine erste ALU 152. Der dritte Multiplexer 148 umfaßt einen ersten Eingangsport 139 zum Empfangen des logischen Werts "0" sowie einen zweiten und einen dritten Eingangsport zum Empfangen des (g+N)-Bit-Da­ tenwerts vom ersten und dritten internen Bus 135 und 141. Der dritte Multiplexer 148 liefert einen der drei Datenwerte an seinem ersten bis dritten Eingangsport an die erste ALU 152. Die erste ALU 152 unterzieht die zwei Datenwerte vom zweiten und dritten Multiplexer 146 und 148 einer Operation und liefert das Operationsergebnis an einen fünften Multi­ plexer 156. Der vierte Multiplexer 150 liefert auch den (g+N)-Bit-Datenwert vom ersten internen Bus 135 sowie den (g+N)-Bit-Datenwert vom dritten internen Bus 141 auf selek­ tive Weise an ein Umlaufregister 154. Dieses Umlaufregister 154 skaliert den logischen Wert des Datenwerts vom vierten Multiplexer 150 und liefert den skalierten Datenwert an den fünften Multiplexer 156. Zu einer derartigen Datenskalierung verschiebt das Umlaufregister 154 den Datenwert vom vierten Multiplexer 150 entsprechend einer Bitzahl, die dem Skalie­ rungsausmaß entspricht, nach links oder rechts. Auch ist das Umlaufregister 154 auf parallele Weise mit der ersten ALU 152 verbunden, um die Ausbreitungsverzögerung von Daten zu minimieren. Demgemäß kann die DSP die vier Arithmetikopera­ tionen, die Skalierung sowie die vier Arithmetikoperationen einschließlich einer Skalierung mit hoher Geschwindigkeit ausführen. Der fünfte Multiplexer 156 liefert den den vier Arithmetikoperationen unterzogenen (g+N)-Bit-Datenwert von der ersten ALU 152 und den skalierten Datenwert vom Umlauf­ register 154 selektiv an ein fünftes oder sechstes Register 158 oder 160. Der im fünften oder sechsten Register 158 oder 160 gespeicherte Datenwert wird an den dritten internen Bus 141 geliefert. Das fünfte und das sechste Register 158 und 160 sind Akkumulationsregister, die mit der ersten ALU 152 einen ersten Akkumulator bilden. Das fünfte und das sechste Register 158 und 160 haben eine Länge von g+N Bits, um den (g+N)-Bit-Datenwert zwischenzuspeichern, und auch der dritte interne Bus 141 besteht aus g+N Leitungen.
Der DSP umfaßt ferner einen sechsten Multiplexer 162, der mit dem ersten und vierten internen Bus 135 und 143 verbun­ den ist, sowie einen siebten Multiplexer 164, der mit dem ersten und zweiten internen Bus 135 und 137 verbunden ist. Der sechste Multiplexer 162 umfaßt einen ersten Eingang­ sport 145 zum Empfangen des logischen Werts "0" sowie einen zweiten und einen dritten Eingangsport zum Empfangen des (g+N)-Bit-Datenwerts vom ersten und vierten internen Bus 135 bzw. 143. Der sechste Multiplexer 162 liefert einen der drei Datenwerte an seinem ersten bis dritten Eingangsport an eine zweite ALU 166. Der siebte Multiplexer 164 verfügt über ei­ nen ersten und einen zweiten Eingangsport zum Empfangen des (g+N)-Bit-Datenwerts vom ersten und zweiten internen Bus 135 bzw. 137. Der siebte Multiplexer 164 liefert einen der zwei Datenwerte vom ersten und zweiten internen Bus 135 und 137 an die zweite ALU 166. Die zweite ALU 166 unterzieht die zwei Datenwerte vom sechsten und siebten Multiplexer 162 und 164 einer Operation und liefert das Operationsergebnis an einen achten Multiplexer 168. Der achte Multiplexer 168 lie­ fert den der Operation unterzogenen (g+N)-Bit-Datenwert von der zweiten ALU 166 und den skalierten Datenwert vom Umlauf­ register 154 selektiv an das siebte oder achte Register 170 oder 172. Das siebte oder achte Register 170 oder 172 lie­ fert den Datenwert vom achten Multiplexer 168 an den vierten internen Bus 143. Das siebte oder achte Register 170 oder 172 ist ein Akkumulationsregister, das zusammen mit der zweiten ALU 166 einen zweiten Akkumulator bildet. Der zweite Akkumulator ist auf parallele Weise mit dem ersten Akkumula­ tor verbunden, um einen Parallelbetrieb für mindestens zwei komplexe arithmetische Gleichungen auszuführen. Sowohl das siebte als auch das achte Register 170 und 172 verfügen über eine Länge von g+N Bits, um (g+N)-Bit-Datenwerte zwischenzu­ speichern. Auch ermöglichen es das siebte und das achte Re­ gister 170 und 172 eine Anzahl komplexer arithmetischer Gleichungen mit hoher Geschwindigkeit in Zusammenarbeit mit dem fünften und sechsten Register 158 und 160 abzuarbeiten.
Ferner umfaßt der DSP einen neunten Multiplexer 174 zum Auswählen der zwei (g+N)-Bit-Datenwerte vom dritten und vierten internen Bus 141 und 143 sowie eine Bitausrichtein­ heit 176 und einen Sättigungsprozessor 178, die gemeinsam mit dem neunten Multiplexer 174 verbunden sind. Der neunte Multiplexer 174 versorgt die Bitausrichteinheit 176 und den Sättigungsprozessor 178 über den dritten internen Bus 41 gemeinsam mit einem der (g+N)-Bit-Datenwerte vom fünften oder sechsten Register 158 oder 160, und, über den vierten internen Bus 123, die (g+N)-Bit-Datenwerte vom siebten oder achten Register 170 oder 172. Die Bitausrichtungseinheit 176 leitet nur N Bits aus dem (g+N)-Bit-Datenwert vom neunten Multiplexer 174 her, und sie liefert den hergeleiteten N-Bit-Datenwert an den ersten Eingangsport des elften Multi­ plexers 180. Genauer gesagt, leitet die Bitausrichteinheit 176 nur den Datenwert mit den N Bits niedriger Ordnung in­ nerhalb des (g+N)-Bit-Datenwerts vom neunten Multiplexer 174 her, und sie liefert den hergeleiteten N-Bit-Datenwert an den ersten Eingangsport des zehnten Multiplexers 180. Zu diesem Zweck umfaßt die Bitausrichteinheit 176 eine Ver­ drahtung, die die N Anschlüsse niedriger Ordnung, d. h. die restlichen N Anschlüsse mit Ausnahme der g Anschlüsse hoher Ordnung innerhalb der g+N Ausgangsanschlüsse des neunten Multiplexers 174 mit dem ersten Eingangsport des zehnten Multiplexers 180, der aus N Anschlüssen besteht, verbindet. Die Bitausrichteinheit 176 benötigt keinen zusätzlichen Schaltungsblock, da sie nur durch eine Verdrahtung konfigu­ riert ist. Demgemäß kann die Bitausrichteinheit 176 die Schaltungskonfiguration des DSP vereinfachen, und sie ermög­ licht es, eine Festkommaarithmetik mit hoher Geschwindigkeit auszuführen. Der Sättigungsprozessor 178 führt unter einem Befehl von einer Steuerung (nicht dargestellt) einen Sätti­ gungsprozeß aus. Der Sättigungsprozessor 178 verarbeitet einen Datenwert entsprechend logischen Werten der g+1 Bits hoher Ordnung im (g+N)-Bit-Datenwert vom neunten Multiplexer 174. Genauer gesagt, ermittelt der Sättigungsprozessor 178 abhängig davon, ob alle logischen Werte g+1 Bits hoher Ord­ nung (d. h. g Schutzbits und ein Vorzeichenbit) innerhalb des (g+N)-Bit-Datenwerts vom neunten Multiplexer 174 über­ einstimmen, oder ob dies nicht der Fall ist, die Erzeugung eines Überlaufs. Wenn dies der Fall ist, liefert der Sätti­ gungsprozessor 178 den Datenwert mit den N Bits niedriger Ordnung innerhalb des (g+N)-Bit-Datenwerts vom neunten Mul­ tiplexer 174 als Operationsergebnis an den zweiten Eingang­ sport des zehnten Multiplexers 180. Andernfalls, wenn dies nicht der Fall ist, ermittelt der Sättigungsprozessor 178, ob der logische Wert des höchstsignifikanten Bits der g Schutzbits "0" oder "1" ist. Wenn der logische Wert des höchstsignifikanten Bits "0" ist, sieht der Sättigungspro­ zessor 178 den Datenwert vom neunten Multiplexer 174 als positiven (+) Datenwert an, der mit Überlauf versehen ist, und er liefert einen Maximalwert eines N-Bit-Datenwerts (d. h. "0111. . .11"), in dem nur das höchstsignifikante Bit den logischen Wert "0" einnimmt, an den zweiten Eingangsport des zehnten Multiplexers 180. Andernfalls, wenn der logische Wert des höchstsignifikanten Bits "1" ist, sieht der Sätti­ gungsprozessor 178 den Datenwert vom neunten Multiplexer 174 als negativen (-) Datenwert an, der mit Überlauf versehen ist, und er liefert einen N-Bit-Datenwert (d. h. "1000. . .11"), in dem nur das höchstsignifikante Bit den logischen Wert "1" hat, an den Eingangsport des zehnten Multi­ plexers 180. Wie oben beschrieben, verarbeitet der Sättigungsprozes­ sor 178 einen gesättigten logischen Wert (d. h. einen logi­ schen Wert, der einen Überlauf erzeugt) des mittels der ALU 152 oder 166 einer Operation unterzogenen Datenwerts auf Grundlage des logischen Werts von Schutzbits und eines Vor­ zeichenbits auf genaue Weise. Wie oben beschrieben, wird hinsichtlich des vom-neunten Multiplexer 174 ausgegebenen Datenwerts nur ein Sättigungsprozeß ausgeführt, jedoch wird kein Rundungsprozeß ausgeführt. Dies führt zu einer Verbes­ serung der Datenoperationsgeschwindigkeit. Der zehnte Multi­ plexer überträgt nur einen der zwei N-Bit-Datenwerte von der Bitausrichteinheit 176 und vom Sättigungsprozessor 178 an den dritten externen Bus 147. Dieser dritte externe Bus 147 besteht aus N Leitungen einschließlich eines Schreibdaten­ busses und eines Schreibadressenbusses.
Fig. 8 veranschaulicht eine Festkommaarithmetik-Prozedur, wie sie durch den DSP von Fig. 7 ausgeführt wird. Gemäß Fig. 8 werden ein erster und ein zweiter Datenwert 190 und 192 sequentiell aus einem Speicher (nicht dargestellt) ausgele­ sen, von denen jeder eine Länge von N Bits aufweist. Das höchstsignifikante Bit sowohl des ersten als auch des zwei­ ten Datenwerts 190 und 192 enthält ein einzelnes Vorzeichen­ bit, das anzeigt, ob der jeweilige logische Wert eine posi­ tive oder eine negative Zahl ist. Der erste und der zweite Datenwert 190 und 192 werden vom in Fig. 7 dargestellten Multiplizierer 140 einer Operation unterzogen, um einen dritten Datenwert 194 mit einer Länge von 2N Bits zu erzeu­ gen. Dieser dritte Datenwert 194 wird um eine vorbestimmte Anzahl von Bits verschoben, wenn er vom Multiplizierer 140 an das vierte Register 142 übertragen wird, und er wird in einen vierten Datenwert 196 umgesetzt. Dieser vierte Daten­ wert 196 wird in einen fünften Datenwert 198 mit einer Wort­ länge von g+N Bits umgesetzt, wenn er über den Bitcontroller 144 von Fig. 7 an die ALU 152 oder 166 übertragen wird. Da­ bei schneidet der Bitcontroller 144 immer die N Bits niedri­ ger Ordnung im vierten Datenwert 196 ab und addiert g Schutzbits zu den restlichen Bits hoher Ordnung innerhalb der N Bits des vierten Datenwerts 196. Der fünfte Datenwert 198 wird durch die ALUs 152 und 166 einer Operation unterzo­ gen und dann in den Akkumulationsregistern 158 oder 170, oder 160 oder 172, die jeweils eine Länge von g+N Bits auf­ weisen, zwischengespeichert. Der im Akkumulationsregister 158 oder 170, oder 160 oder 172, gespeicherte fünfte Daten­ wert 198 wird durch Verarbeitung unter Verwendung des in Fig. 7 dargestellten Sättigungsprozessors 178 in einen sechsten Datenwert 200 mit einer Länge von N Bits umgesetzt. Dabei wird der fünfte Datenwert 158 abhängig davon auf ver­ schiedene Art verarbeitet, ob logische Werte der g+1 Bits hoher Ordnung (d. h. g Schutzbits und ein Vorzeichenbit) gleich sind und ob das höchstsignifikante Schutzbit "1" oder "0" ist, und er wird abschließend in einen N-Bit-Datenwert umgesetzt. Wenn die logischen Werte der g+1 Bits hoher Ord­ nung gleich sind, wird der fünfte Datenwert 198 in einen sechsten Datenwert 200 umgesetzt, der die restlichen N Bits mit Ausnahme der g Bits hoher Ordnung innerhalb der g+N Bits enthält. Wenn die logischen Werte der g+1 Bits hoher Ordnung nicht gleich sind und das höchstsignifikante Bit "0" ist, wird der fünfte Datenwert 198 als positiver (+) Datenwert angesehen, der einen Überlauf erzeugt, und er wird in einen sechsten N-Bit-Datenwert 200, d. h. "0111. . .11", umgesetzt, in dem nur das höchstsignifikante Bit den logischen Wert "0" hat. Andernfalls, wenn die logischen Werte der g+1 Bits ho­ her Ordnung nicht gleich sind und das höchstsignifikante Bit "1" ist, wird der fünfte Datenwert als negativer (-) Daten­ wert angesehen, der einen Überlauf erzeugt, und er wird in einen sechsten N-Bit-Datenwert 200, d. h. "1000. . .00", umge­ setzt, in dem nur das höchstsignifikante Bit den logischen Wert "1" hat. Wie oben beschrieben, sind beim erfindungsge­ mäßen DSP die Längen der ALU und des Akkumulationsregisters auf g+N Bits verkürzt, wodurch die Schaltungsgröße verrin­ gert ist. Im Ergebnis ist die Reaktionsgeschwindigkeit eines erfindungsgemäßen DSP hoch. Aus einer Analyse der bei der Operationsprozedur erzeugten Quantisierungsfehler zeigte es sich, daß das Fehlerausmaß beim DSP gemäß dem vorliegenden Ausführungsbeispiel der Erfindung minimiert ist.
Als erstes sei angenommen, daß in einem Prozeß, in dem zwei Datenwerte (a, b) durch den Multiplizierer in Fig. 7 multipliziert und vom Multiplizierer 140 an die ALU 152 oder 166 übertragen werden, ein Abschneiden von Daten auftritt. Der bei diesem Prozeß erzeugte Quantisierungsfehler kann durch die folgenden Gleichungen formuliert werden:
Tr(a.b) = a.b + et
Tr'(a.(-b)) = -Tr(a.(-b))
Tr'(a.b) = a.b -et (1)
Wenn die Gleichungen (1) auf einen IFFT-Algorithmus mit der Blocklänge 8 angewandt werden, zeigt der Fehler im IFFT-Aus­ gangssignal zwei Verteilungsarten. Bei der ersten Verteilung kann, wenn die ursprünglichen Vorzeichen der Cosinus-und der Sinuskonstante beibehalten werden, oder wenn zwei Typen mit konstanten Vorzeichen invertiert werden, der Mittelwert des Quantisierungsfehlers im IFFT-Ausgangssignal durch den fol­ genden Ausdruck angegeben werden:
{(0,6 me), (0,2 me), (0,2 me), (0,-2 me), (0,2 me), (0,-2 me), (0,-2 me), (0,-2 me), (0,-6 me)} (2)
Bei der zweiten Verteilung kann, wenn das Vorzeichen in ei­ nem der zwei konstanten Typen invertiert ist, der Mittelwert des Quantisierungsfehlers im IFFT-Ausgangssignal durch den folgenden Ausdruck angegeben werden:
{(6 me,0), (2 me,0), (2 me,0), (-2 me,0), (2 me,0) (-2 me,0), (-2 me,0), (-2 me,0), (-6 me,0)} (3)
Der gesamte Quantisierungsfehler in der Formel (2) liegt im Teil mit imaginären Zahlen, während in der Formel (3) der gesamte Quantisierungsfehler im Teil mit den reellen Zahlen liegt. Die oben genannte Verteilung des Quantisierungsfeh­ lers wird durch den Prozeß nach der IFFT unterschiedlich. Bevor dies erläutert wird, wird kurz der Prozeß nach der IFFT beschrieben. Bei diesem Prozeß werden Abtastwerte kom­ plexer Zahlen, wobei ein IFFT-Schritt mit komplexen Zahlen ausgeführt wird, entsprechend einer zugehörigen Blocklänge umverteilt. Anders gesagt, kann, wenn die Blocklänge 128 ist, der Prozeß nach der IFFT durch die folgende Gleichung angegeben werden:
für ( n = 0; n < 128; n++)
{y[n] = (Re(z[n]).xcos1[n] - Im(z[n].xsin1[n]) + j(Im(z[n]).xcos1[n] + Re(z[n]).xcos1[n])} (4)
In der Gleichung (4) hat xcos1[n] den Wert -cos(2π.(8n+1)/(32.128)) und xsin1[n] hat den Wert sin(2π.(8n+1)/(32.128)). Wie es aus der Gleichung (4) erkennbar ist, ist, da der Quantisierungsfehler im Ausgangssignal der IFFT mit komple­ xen Zahlen im ersten Fall im Teil mit imaginären Zahlen ver­ teilt ist, der Quantisierungsfehler mit anderen Vorzeichen im Ausgangssignal nach dem IFFT im Teil mit reellen Zahlen und im Imaginärteil verteilt. Andererseits ist, da der Quan­ tisierungsfehler im Ausgangssignal der IFFT mit komplexen Zahlen im zweiten Fall im Teil mit reellen Zahlen verteilt ist, der Quantisierungsfehler mit gleichem Vorzeichen im Ausgangssignal nach der IFFT im Teil mit reellen Zahlen und im Imaginärteil verteilt. Der Quantisierungsfehler im ersten Fall wird durch eine Fensteroperation, die auf die IFFT-Nach­ verarbeitung folgt, aufgehoben, während der Quantisie­ rungsfehler im, zweiten Fall selbst dann existiert, wenn die auf die IFFT-Nachverarbeitung folgende Fensteroperation aus­ geführt wird. Daher, da nämlich die Cosinus- und die Sinus­ konstante für die IFFT als gleiches Vorzeichen im Speicher (d. h. im programmierbaren Speicher oder im Arbeitsspeicher) gespeichert sind, Quantisierungsfehler aufgrund abgeschnit­ tener Daten bei einem DSP gemäß dem Ausführungsbeispiel der Erfindung gegeneinander aufgehoben.
Wie oben beschrieben, kontrolliert der erfindungsgemäße DSP die der ALU zugeführte Anzahl von Datenbits (d. h. die Wort­ länge unter Unterstützung durch eine Verdrahtung, und er ermöglicht es, daß die Anzahl von Rundungsbits (d. h. r) kleiner als N ist, so daß er die Länge der ALU und des Ak­ kumulationsregisters verkürzen kann. Wenn die Anzahl der Rundungsbits "0" ist, kann er die Länge der ALU und des Ak­ kumulationsregisters weiter verkürzen. Auch wird beim erfin­ dungsgemäßen DSP die Rundung von Daten gleichzeitig mit ei­ nem Sättigungsprozeß für Daten ausgeführt, um dadurch ein Taktsignal wegzulassen, wie es bisher für den Rundungspro­ zeß für Daten erforderlich war. Demgemäß kann der erfin­ dungsgemäße DSP einen Rundung erfordernden Signalprozeß mit hoher Geschwindigkeit ausführen.
Ferner sind bei einem erfindungsgemäßen DSP verdrahtungsmä­ ßig realisierte Bitausrichteinheiten in der Vorstufe oder der Nachstufe des Akkumulators angeordnet, um dadurch Fest­ kommaarithmetik-Operationen und Arithmetikoperationen mit ganzen Zahlen mit hoher Geschwindigkeit auszuführen und um auch die Schaltungskonfiguration zu vereinfachen.
Ferner kann der erfindungsgemäße DSP die Ausbreitungsverzö­ gerung minimieren, und er kann die Anzahl von Taktsignalen verringern, die für eine Operation erforderlich sind, und durch paralleles Anschließen eines Umlaufregisters an die ALU. Demgemäß kann die erfindungsgemäße DSP eine Operation ohne Skalierung, eine Skalierung sowie eine Operation mit Skalierung mit hoher Geschwindigkeit ausführen.
Ferner führt der erfindungsgemäße DSP eine Paralleloperation zweier komplexer arithmetischer Gleichungen unter Verwendung eines Paars parallel geschalteter ALUs aus, um dadurch eine Anzahl komplexer arithmetischer Gleichungen mit hoher Ge­ schwindigkeit zu verarbeiten.

Claims (32)

1. Digitaler Signalprozessor mit:
  • (a) einer Dateneingabeeinrichtung zum Empfangen eines N-Bit-Da­ tenwerts;
  • (b) einer Rundungsbit-Hinzufügeeinrichtung zum Hinzufügen von r Rundungsbits zum N-Bit-Datenwert von der Dateneingabe­ einrichtung; wobei r kleiner als N ist;
  • (c) einer Schutzbit-Hinzufügeeinrichtung zum Hinzufügen von g Schutzbits zu den Bits hoher Ordnung des Datenwerts von der Rundungsbit-Hinzufügeeinrichtung;
  • (d) einer Einrichtung, die dazu dient, den Datenwert von der Schutzbit-Hinzufügeeinrichtung einer Operation zu unterzie­ hen; und
  • (e) einer Rundungs/Sättigungs-Einrichtung zum Ausführen ei­ nes Rundungsprozesses, eines Sättigungsprozesses oder eines kombinierten Prozesses mit dem Rundungs- und dem Sättigungs­ prozeß an den Daten von der Operationseinrichtung.
2. Prozessor nach Anspruch 1, dadurch gekennzeichnet, daß die Rundungs/Sättigungs-Einrichtung folgendes aufweist:
  • - einen Rundungsprozessor zum Runden des Datenwerts von der Operationseinrichtung und
  • - einen Sättigungsprozessor, der dazu dient, den Datenwert vom Rundungsprozessor entsprechend logischen Werten der g+1 Bits hoher Ordnung des Datenwerts einer Sättigungsoperation zu unterziehen.
3. Prozessor nach Anspruch 2, dadurch gekennzeichnet, daß der Sättigungsprozessor den Datenwert vom Rundungsprozessor im kombinierten Prozeß einer Sättigungsoperation unter­ zieht.
4. Prozessor nach Anspruch 3, dadurch gekennzeichnet, daß der Rundungsprozessor folgende Schritte ausführt:
  • - Überprüfen des logischen Werts des Bits r niedriger Ord­ nung im Bitdatenwert von der Operationseinrichtung;
  • - Beseitigen der r Bits niedriger Ordnung aus dem Bitdaten­ wert und
  • - Hinzufügen von "1" zum Datenwert, aus dem die r Bits nie­ driger Ordnung beseitigt sind.
5. Prozessor nach Anspruch 3, dadurch gekennzeichnet, daß der Sättigungsprozessor selektiv einen N-Bit-Datenwert, in dem nur das höchstsignifikante Bit den logischen Wert "0" aufweist, und einen N-Bit-Datenwert, in dem nur das höchst­ signifikante Bit den logischen Wert "1" aufweist, erzeugt, wenn der logische Wert der g+1 Bits hoher Ordnung der Daten­ werte von der Operationseinrichtung und dem Rundungsprozes­ sor verschieden sind.
6. Prozessor nach Anspruch 3, dadurch gekennzeichnet, daß der Sättigungsprozessor einen N-Bit-Datenwert, in dem nur das höchstsignifikante Bit den logischen Wert "0" aufweist, dann erzeugt, wenn der logische Wert des höchstsignifikanten Bits des Datenwerts von der Operationseinrichtung und der Rundungseinrichtung "0" ist, und sie einen N-Bit-Datenwert, in dem nur das höchstsignifikante Bit den logischen Wert "1" aufweist, erzeugt, wenn der logische Wert des höchstsignifi­ kanten Bits des Datenwerts von der Operationseinrichtung und dem Rundungsprozessor "1" ist.
7. Prozessor nach Anspruch 3, dadurch gekennzeichnet, daß die Rundungsbit-Hinzufügeeinrichtung durch Verdrahtung rea­ lisiert ist.
8. Prozessor nach Anspruch 3, dadurch gekennzeichnet, daß die Schutzbit-Hinzufügeeinrichtung durch Verdrahtung reali­ siert ist.
9. Digitaler Signalprozessor mit:
  • (a) einer Dateneingabeeinrichtung zum Empfangen eines N-Bit-Da­ tenwerts;
  • (b) einer Rundungsbit-Hinzufügeeinrichtung zum Hinzufügen von r Rundungsbits zum N-Bit-Datenwert von der Dateneingabe­ einrichtung; wobei r kleiner als N ist;
  • (c) einer Schutzbit-Hinzufügeeinrichtung zum Hinzufügen von g Schutzbits zu den Bits hoher Ordnung des Datenwerts von der Rundungsbit-Hinzufügeeinrichtung;
    • - einer Rückkopplungsschleife:
  • (d') einer logischen Operationseinrichtung, die dazu dient, den Datenwert von der Schutzbit-Hinzufügeeinrichtung sowie den Datenwert von der Rückkopplungsschleife einer Operation zu unterziehen;
  • (f) einem Speicher, der mit der Rückkopplungsschleife ver­ bunden ist, um den Datenwert von der logischen Operations­ einrichtung zwischenzuspeichern;
  • (g) einer Einrichtung zum Skalieren des Datenwerts von der Schutzbit-Hinzufügeeinrichtung;
  • (h) einer Auswähleinrichtung zum selektiven Übertragen des Datenwerts von der Skalierungseinrichtung und des Datenwerts von der Schutzbit-Hinzufügeeinrichtung zum Speicher; und
  • (e) einer Rundungs/Sättigungs-Einrichtung zum Ausführen ei­ nes Rundungsprozesses, eines Sättigungsprozesses oder eines kombinierten Prozesses mit dem Rundungs- und dem Sättigungs­ prozeß an den Daten von der Operationseinrichtung.
10. Digitaler Signalprozessor mit:
  • (a) einer Dateneingabeeinrichtung zum Empfangen eines N-Bit-Da­ tenwerts;
  • (b) einer Rundungsbit-Hinzufügeeinrichtung zum Hinzufügen von r Rundungsbits zum N-Bit-Datenwert von der Dateneingabe­ einrichtung; wobei r kleiner als N ist;
  • (c) einer Schutzbit-Hinzufügeeinrichtung zum Hinzufügen von g Schutzbits zu den Bits hoher Ordnung des Datenwerts von der Rundungsbit-Hinzufügeeinrichtung;
    • - einer Einrichtung zum Speichern des Multiplikationswerts aus zwei N-Bit-Datenwerten;
    • - einer Leitungsausrichtungs/Schutzbithinzufüge-Einrichtung zum Herleiten eines (g+N+r)-Bit-Datenwerts aus dem Multipli­ kationswert aus der Speichereinrichtung;
    • - einer Einrichtung, die dazu dient, zwei akkumulierte Da­ tenwerte aus der Leitungsausrichtungs/Schutzbithinzufüge- Einrichtung einer Operation zu unterziehen;
  • (e) einer Rundungs/Sättigungs-Einrichtung zum Ausführen ei­ nes Rundungsprozesses, eines Sättigungsprozesses oder eines kombinierten Prozesses mit dem Rundungs- und dem Sättigungs­ prozeß an den Daten von der Operationseinrichtung.
11. Digitaler Signalprozessor mit:
  • (a) einer Dateneingabeeinrichtung zum Empfangen eines N-Bit-Da­ tenwerts;
  • (i) einer Ausrichteinheit zum Ausrichten des N-Bit-Daten­ werts von der Dateneingabeeinrichtung zur linken Seite eines (N+r)-Bit-Busses;
  • (j) einer Einrichtung, die dazu dient, den Datenwert von der Ausrichteinheit über den (N+r)-Bit-Bus einer Operation zu unterziehen; und
  • (k) einer Herleiteinrichtung zum Herleiten nur der N Bits hoher Ordnung aus dem Datenwert von der Operationseinrich­ tung.
12. Prozessor nach Anspruch 11, dadurch gekennzeichnet, daß die Ausrichteinheit durch Verdrahtung realisiert ist.
13. Prozessor nach Anspruch 11, dadurch gekennzeichnet, daß die Herleiteinrichtung durch Verdrahtung realisiert ist.
14. Digitaler Signalprozessor mit:
  • (a) einer Dateneingabeeinrichtung zum Empfangen eines N-Bit-Da­ tenwerts;
  • (i) einer Ausrichteinheit zum Ausrichten des N-Bit-Daten­ werts von der Dateneingabeeinrichtung zur linken Seite eines (N+r)-Bit-Busses;
  • (j) einer Einrichtung, die dazu dient, den Datenwert von der Ausrichteinheit über den (N+r)-Bit-Bus einer Operation zu unterziehen; und
  • (k') einer Herleiteinrichtung zum Herleiten nur der N Bits niedriger Ordnung aus dem Datenwert von der Operationsein­ richtung.
15. Digitaler Signalprozessor mit:
  • (a) einer Dateneingabeeinrichtung zum Empfangen eines N-Bit-Da­ tenwerts;
  • (i') einer ersten Ausrichteinheit zum Ausrichten des N-Bit-Da­ tenwerts von der Dateneingabeeinrichtung zur linken Seite eines ersten (N+r)-Bit-Busses;
  • (i'') einer zweiten Ausrichteinheit zum Ausrichten des N-Bit-Da­ tenwerts von der Dateneingabeeinrichtung zur rechten Seite eines zweiten (N+r)-Bit-Busses;
    • - einer ersten Auswähleinrichtung zum Auswählen des Daten­ werts aus der ersten oder zweiten Ausrichteinheit;
  • (d') einer Einrichtung, die dazu dient, den Datenwert von der ersten Auswähleinrichtung einer Operation zu unterzie­ hen,
  • (k') einer ersten Herleiteinrichtung zum Herleiten nur der N Bits hoher Ordnung aus dem Datenwert von der Operationsein­ richtung;
  • (k'') einer zweiten Herleiteinrichtung zum Herleiten nur der N Bits niedriger Ordnung aus dem Datenwert von der Operati­ onseinrichtung; und
    • - einer zweiten Auswähleinrichtung zum Auswählen des Daten­ werts von der ersten oder zweiten Herleiteinrichtung.
16. Digitaler Signalprozessor mit:
  • (a) einer Dateneingabeeinrichtung zum Empfangen eines N-Bit-Da­ tenwerts;
  • (i) einer Ausrichteinheit zum Ausrichten des N-Bit-Daten­ werts von der Dateneingabeeinrichtung zur linken Seite eines (N+r)-Bit-Busses;
  • (c') einer Schutzbit-Hinzufügeeinrichtung zum Hinzufügen von g Schutzbits zu den Bits hoher Ordnung des Datenwerts von der Ausrichteinheit;
  • (d) einer Einrichtung, die dazu dient, den Datenwert von der Schutzbit-Hinzufügeeinrichtung einer Operation zu unterzie­ hen;
    • - einer Herleiteinrichtung zum Herleiten der N Bits niedri­ ger Ordnung beginnend ab dem Bit g+1 hoher Ordnung aus dem Datenwert von der Operationseinrichtung;
  • (e) einer Rundungs/Sättigungs-Einrichtung zum Ausführen ei­ nes Rundungsprozesses, eines Sättigungsprozesses oder eines kombinierten Prozesses mit dem Rundungs- und dem Sättigungs­ prozeß an den Daten von der Operationseinrichtung; und
  • (l) einer Auswähleinrichtung zum Auswählen des Datenwerts von der Herleiteinrichtung und der Rundungs/Sättigungs-Ein­ richtung.
17. Digitaler Signalprozessor mit:
  • (a) einer Dateneingabeeinrichtung zum Empfangen eines N-Bit-Da­ tenwerts;
  • (i) einer Ausrichteinheit zum Ausrichten des N-Bit-Daten­ werts von der Dateneingabeeinrichtung zur linken Seite eines (N+r)-Bit-Busses;
  • (c') einer Schutzbit-Hinzufügeeinrichtung zum Hinzufügen von g Schutzbits zu den Bits hoher Ordnung des Datenwerts von der Ausrichteinheit;
  • (d) einer Einrichtung, die dazu dient, den Datenwert von der Schutzbit-Hinzufügeeinrichtung einer Operation zu unterzie­ hen;
    • - einer Herleiteinrichtung zum Herleiten der N Bits niedri­ ger Ordnung unter den Daten von der Operationseinrichtung;
  • (e) einer Rundungs/Sättigungs-Einrichtung zum Ausführen ei­ nes Rundungsprozesses, eines Sättigungsprozesses oder eines kombinierten Prozesses mit dem Rundungs- und dem Sättigungs­ prozeß an den Daten von der Operationseinrichtung; und
  • (l) einer Auswähleinrichtung zum Auswählen des Datenwerts von der Herleiteinrichtung und der Rundungs/Sättigungs-Ein­ richtung.
18. Digitaler Signalprozessor mit:
  • (a) einer Dateneingabeeinrichtung zum Empfangen eines N-Bit-Da­ tenwerts;
  • (i') einer ersten Ausrichteinheit zum Ausrichten des N-Bit-Da­ tenwerts von der Dateneingabeeinrichtung zur linken Seite eines ersten (N+r)-Bit-Busses;
  • (i'') einer zweiten Ausrichteinheit zum Ausrichten des N-Bit-Da­ tenwerts von der Dateneingabeeinrichtung zur rechten Seite eines zweiten (N+r)-Bit-Busses;
    • - einer ersten Auswähleinrichtung zum Auswählen des Daten­ werts aus der ersten oder zweiten Ausrichteinheit; (c'') einer Schutzbit-Hinzufügeeinrichtung zum Hinzufügen von g Schutzbits zu den Bits hoher Ordnung des Datenwerts von der Auswähleinrichtung;
  • (d) einer Einrichtung, die dazu dient, den Datenwert von der Schutzbit-Hinzufügeeinrichtung einer Operation zu unterzie­ hen,
  • (k') einer ersten Herleiteinrichtung zum Herleiten nur der N Bits niedriger Ordnung aus dem Datenwert von der Operations­ einrichtung;
  • (k''') einer zweiten Herleiteinrichtung zum Herleiten nur der Bits niedriger Ordnung beginnend ab dem Bit g+1 hoher Ord­ nung aus dem Datenwert von der Operationseinrichtung;
  • (e) einer Rundungs/Sättigungs-Einrichtung zum Ausführen ei­ nes Rundungsprozesses, eines Sättigungsprozesses oder eines kombinierten Prozesses mit dem Rundungs- und dem Sättigungs­ prozeß an den Daten von der Operationseinrichtung; und
    • - einer zweiten Auswähleinrichtung zum Auswählen des Daten­ werts von der ersten oder zweiten Herleiteinrichtung und der Rundungs/Sättigungs-Einrichtung.
19. Digitaler Signalprozessor mit:
  • (a) einer Dateneingabeeinrichtung zum Empfangen eines N-Bit-Da­ tenwerts;
  • (i) einer Ausrichteinheit zum Ausrichten des N-Bit-Daten­ werts von der Dateneingabeeinrichtung zur linken Seite eines (N+r)-Bit-Busses;
  • (c''') einer Schutzbit-Hinzufügeeinrichtung zum Hinzufügen von g Schutzbits zu den Bits hoher Ordnung des Datenwerts von der Ausrichteinheit über den (N+r)-Bit-Bus;
  • (d'') einer Einrichtung, die dazu dient, den Datenwert von der Schutzbit-Hinzufügeeinrichtung und einen Datenwert von einer Rückkopplungsschleife einer Operation zu unterziehen;
  • (f) einem Speicher, der mit der Rückkopplungsschleife ver­ bunden ist, um den Datenwert von der logischen Operations­ einrichtung zwischenzuspeichern;
  • (g) einer Einrichtung zum Skalieren des Datenwerts von der Schutzbit-Hinzufügeeinrichtung;
  • (h') einer ersten Auswähleinrichtung zum selektiven Übertra­ gen des Datenwerts von der Skalierungseinrichtung und des Datenwerts von der Schutzbit-Hinzufügeeinrichtung zum Spei­ cher;
    • - einer Einrichtung zum Herleiten der N Bits niedriger Ord­ nung beginnend mit dem Bit g+1 hoher Ordnung aus dem Daten­ wert von der Operationseinrichtung;
    • - einer Rundungs/Sättigungs-Einrichtung zum Ausführen eines Rundungsprozesses, eines Sättigungsprozesses oder eines kom­ binierten Prozesses mit dem Rundungs- und dem Sättigungspro­ zeß für den Datenwert vom Speicher; und
    • - einer zweiten Auswähleinrichtung zum Auswählen des Daten­ werts von der Herleiteinrichtung oder der Rundungs/Sätti­ gungs-Einrichtung.
20. Digitaler Signalprozessor mit:
  • (a) einer Dateneingabeeinrichtung zum Empfangen eines N-Bit-Da­ tenwerts;
  • (i) einer Ausrichteinheit zum Ausrichten des N-Bit-Daten­ werts von der Dateneingabeeinrichtung zur linken Seite eines (N+r)-Bit-Busses;
  • (c'''') einer Schutzbit-Hinzufügeeinrichtung zum Hinzufügen von g Schutzbits zu den Bits hoher Ordnung des Datenwerts vom (N+r)-Bit-Bus;
  • (d''') einer Einrichtung, die dazu dient, den Datenwert von der Schutzbit-Hinzufügeeinrichtung und den Datenwert von einer Rückkopplungsschleife einer Operation zu unterziehen;
  • (f') einem Speicher, der mit der Rückkopplungsschleife ver­ bunden ist, um den Datenwert von der Operationseinrichtung einer Zwischenspeicherung zu unterziehen;
  • (g) einer Einrichtung zum Skalieren des Datenwerts von der Schutzbit-Hinzufügeeinrichtung;
  • (h') einer ersten Auswähleinrichtung zum selektiven Übertra­ gen des Datenwerts von der Skalierungseinrichtung und des Datenwerts von der Schutzbit-Hinzufügeeinrichtung zum Spei­ cher;
    • - einer Einrichtung zum Herleiten der N Bits niedriger Ord­ nung aus dem Datenwert vom Speicher;
    • - einer Rundungs/Sättigungs-Einrichtung zum Ausführen eines Rundungsprozesses, eines Sättigungsprozesses oder eines kom­ binierten Prozesses mit dem Rundungs- und dem Sättigungspro­ zeß für den Datenwert vom Speicher und;
    • - einer zweiten Auswähleinrichtung zum Auswählen des Daten­ werts von der Herleiteinrichtung oder der Rundungs/Sätti­ gungs-Einrichtung.
21. Digitaler Signalprozessor mit:
  • - einer Dateneingabeeinrichtung zum Empfangen eines N-Bit-Da­ tenwerts;
  • - einer ersten Ausrichteinheit zum Ausrichten des N-Bit-Da­ tenwerts von der Dateneingabeeinrichtung zur linken Seite eines ersten (N+r)-Bit-Busses;
  • - einer zweiten Ausrichteinheit zum Ausrichten des N-Bit-Da­ tenwerts von der Dateneingabeeinrichtung zur rechten Seite eines zweiten (N+r)-Bit-Busses;
  • - einer ersten Auswähleinrichtung zum Auswählen des Daten­ werts vom ersten oder zweiten (N+r)-Bit-Bus;
  • - einer Schutzbit-Hinzufügeeinrichtung zum Hinzufügen von g Schutzbits zu den Bits hoher Ordnung des Datenwerts von der ersten Auswähleinrichtung;
  • - einer Einrichtung, die dazu dient, den Datenwert von der Schutzbit-Hinzufügeeinrichtung und einen Datenwert von einer Rückkopplungsschleife einer Operation zu unterziehen;
  • - einem Speicher, der mit der Rückkopplungsschleife verbun­ den ist, um den Datenwert von der Operationseinrichtung ei­ ner Zwischenspeicherung zu unterziehen;
  • - einer Einrichtung zum Skalieren des Datenwerts von der Schutzbit-Hinzufügeeinrichtung;
  • - einer zweiten Auswähleinrichtung zum selektiven Übertragen des Datenwerts von der Skalierungseinrichtung und des Daten­ werts von der Operationseinrichtung zum Speicher;
  • - einer ersten Herleiteinrichtung zum Herleiten der N Bits niedriger Ordnung aus dem Datenwert vom Speicher;
  • - einer zweiten Herleiteinrichtung zum Herleiten der N Bits hoher Ordnung beginnend ab dem Bit g+1 hoher Ordnung aus dem Datenwert vom Speicher;
  • - einer Rundungs/Sättigungs-Einrichtung zum Ausführen eines Rundungsprozesses, eines Sättigungsprozesses oder eines kom­ binierten Prozesses mit dem Rundungs- und dem Sättigungspro­ zeß für den Datenwert vom Speicher; und
  • - einer dritten Auswähleinrichtung zum Auswählen des Daten­ werts aus der ersten oder zweiten Herleiteinrichtung und der Rundungs/ Sättigungs-Einrichtung.
22. Digitaler Signalprozessor mit:
  • - einer Eingabeeinrichtung zum Empfangen eines N-Bit-Daten­ werts;
  • - einer Einrichtung, die dazu dient, den Datenwert von der Eingabeeinrichtung sowie einen Datenwert von einer Rückkopp­ lungsschleife einer Operation zu unterziehen;
  • - einen Speicher, der mit der Rückkopplungsschleife verbun­ den ist, um den Datenwert von der Operationseinrichtung zwi­ schenzuspeichern;
  • - einer Einrichtung zum Skalieren des Datenwerts von der Eingabeeinrichtung und
  • - einer Auswähleinrichtung zum selektiven Übertragen des Datenwerts von der Skalierungseinrichtung oder des Daten­ werts von der Operationseinrichtung an den Speicher.
23. Prozessor nach Anspruch 22, gekennzeichnet durch eine zweite Auswähleinrichtung zum selektiven Liefern des Daten­ werts von der Eingabeeinrichtung oder des Datenwerts von der Rückkopplungsschleife an die Skalierungseinrichtung.
24. Prozessor nach Anspruch 22, gekennzeichnet durch eine zweite Auswähleinrichtung zum selektiven Liefern des Daten­ werts von der Eingabeeinrichtung oder des Datenwerts von der Rückkopplungsschleife an die Operationseinrichtung.
25. Digitaler Signalprozessor mit:
  • - einer Eingabeeinrichtung zum Empfangen eines N-Bit-Daten­ werts;
  • - einer Ausrichteinheit zum Ausrichten des N-Bit-Datenwerts von der Eingabeeinrichtung zur linken Seite eines (N+r)-Bit-Bus­ ses;
  • - einer Einrichtung, die dazu dient, den Datenwert vom (N+r)-Bit-Bus und einen Datenwert von einer Rückkopplungs­ schleife einer Operation zu unterziehen;
  • - einem Speicher, der mit der Rückkopplungsschleife verbun­ den ist, um den Datenwert von der Operationseinrichtung ei­ ner Zwischenspeicherung zu unterziehen;
  • - einer Einrichtung zum Skalieren des Datenwerts von der Ausrichteinheit;
  • - einer Auswähleinrichtung zum selektiven Übertragen des Datenwerts von der Skalierungseinrichtung oder des Daten­ werts von der Operationseinrichtung an den Speicher; und
  • - einer Einrichtung zum Herleiten nur der N Bits hoher Ord­ nung aus dem Datenwert vom Speicher.
26. Digitaler Signalprozessor mit:
  • - einer Eingabeeinrichtung zum Empfangen eines N-Bit-Daten­ werts;
  • - einer Ausrichteinheit zum Ausrichten des N-Bit-Datenwerts von der Eingabeeinrichtung zur rechten Seite eines (N+r)-Bit-Busses;
  • - einer Einrichtung, die dazu dient, den Datenwert vom (N+r)-Bit-Bus und einen Datenwert von einer Rückkopplungs­ schleife einer Operation zu unterziehen;
  • - einem Speicher, der mit der Rückkopplungsschleife verbun­ den ist, um den Datenwert von der Operationseinrichtung zwi­ schenzuspeichern;
  • - einer Einrichtung zum Skalieren des Datenwerts vom (N+r)-Bit-Bus;
  • - einer Auswähleinrichtung zum selektiven Übertragen des Datenwerts von der Skalierungseinrichtung oder des Daten­ werts von der Operationseinrichtung an den Speicher; und
  • - einer Einrichtung zum Herleiten nur der N Bits niedriger Ordnung aus dem Datenwert vom Speicher.
27. Digitaler Signalprozessor mit:
  • - einer Eingabeeinrichtung zum Empfangen eines N-Bit-Daten­ werts;
  • - einer ersten Ausrichteinheit zum Ausrichten des N-Bit-Da­ tenwerts von der Eingabeeinrichtung zur linken Seite eines ersten (N+r)-Bit-Busses;
  • - einer zweiten Ausrichteinheit zum Ausrichten des N-Bit-Da­ tenwerts von der Eingabeeinrichtung zur rechten Seite ei­ nes zweiten (N+r)-Bit-Busses;
  • - einer ersten Auswähleinrichtung zum Auswählen des Daten­ werts vom ersten oder zweiten (N+r)-Bit-Bus;
  • - einer Einrichtung, die dazu dient, den Datenwert von der ersten Auswähleinrichtung und einen Datenwert von einer Rückkopplungsschleife einer Operation zu unterziehen;
  • - einem Speicher, der mit der Rückkopplungsschleife verbun­ den ist, um den Datenwert von der Operationseinrichtung zwi­ schenzuspeichern;
  • - einer Einrichtung zum Skalieren des Datenwerts von der ersten Auswähleinrichtung;
  • - einer zweiten Auswähleinrichtung zum selektiven Übertragen des Datenwerts von der Skalierungseinrichtung oder des Da­ tenwerts von der Operationseinrichtung an den Speicher;
  • - einer ersten Herleiteinrichtung zum Herleiten nur der N Bits hoher Ordnung aus dem Datenwert vom Speicher;
  • - einer zweiter Herleiteinrichtung zum Herleiten nur der N Bits niedriger Ordnung aus dem Datenwert vom Speicher; und
  • - einer dritten Auswähleinrichtung zum Auswählen des Daten­ werts von der ersten oder zweiten Herleiteinrichtung.
28. Digitaler Signalprozessor mit:
  • - einer Dateneingabeeinrichtung zum Empfangen eines N-Bit-Da­ tenwerts;
  • - einer Schutzbit-Hinzufügeeinrichtung zum Hinzufügen von g Schutzbits zu den Bits hoher Ordnung im N-Bit-Datenwert von der Dateneingabeeinrichtung;
  • - einer Einrichtung, die dazu dient, den Datenwert von der Schutzbit-Hinzufügeeinrichtung einer Operation zu unterzie­ hen; und
  • - einer Sättigungseinrichtung zum Ausführen eines Sätti­ gungsprozesses am Datenwert entsprechend logischen Werten der g+1 Bits hoher Ordnung des Datenwerts von der Operati­ onseinrichtung.
29. Prozessor nach Anspruch 28, dadurch gekennzeichnet, daß die Sättigungseinrichtung den Sättigungsprozeß am Da­ tenwert von der Operationseinrichtung nur dann ausführt, wenn die logischen Werte der g+1 Bits hoher Ordnung des Da­ tenwerts verschieden sind.
30. Prozessor nach Anspruch 29, dadurch gekennzeichnet, daß die Sättigungseinrichtung selektiv einen N-Bit-Daten­ wert, in dem nur das höchstsignifikante Bit den logischen Wert "0" aufweist, und einen N-Bit-Datenwert, in dem nur das höchstsignifikante Bit den logischen Wert "1" aufweist, er­ zeugt, wenn die logischen Werte der g+1 Bits hoher Ordnung des Datenwerts von der Operationseinrichtung verschieden sind.
31. Prozessor nach Anspruch 29, dadurch gekennzeichnet, daß die Sättigungseinrichtung einen N-Bit-Datenwert, in dem nur das höchstsignifikante Bit den logischen Wert "0" auf­ weist, dann erzeugt, wenn der logische Wert des höchstsigni­ fikanten Bits des Datenwerts von der Operationseinrichtung "0" ist, und sie einen N-Bit-Datenwert, in dem nur das höchstsignifikante Bit den logischen Wert "1" aufweist, er­ zeugt, wenn der logische Wert des höchstsignifikanten Bits des Datenwerts von der Operationseinrichtung "1" ist.
32. Prozessor nach Anspruch 28, dadurch gekennzeichnet, daß die Schutzbit-Hinzufügeeinrichtung durch Verdrahten realisiert ist.
DE19839627A 1997-08-30 1998-08-31 Digitaler Signalprozessor Expired - Fee Related DE19839627B4 (de)

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
KR1019970045341A KR100297544B1 (ko) 1997-08-30 1997-08-30 디지탈신호처리기
KR97-45343 1997-08-30
KR1019970045343A KR100251546B1 (ko) 1997-08-30 1997-08-30 디지탈신호처리기
KR97-45341 1997-08-30
KR1019970045345A KR100246472B1 (ko) 1997-08-30 1997-08-30 디지탈신호처리기
KR97-45342 1997-08-30
KR1019970045342A KR100315303B1 (ko) 1997-08-30 1997-08-30 디지탈 신호 처리기
KR97-45345 1997-08-30
KR98-12318 1998-04-07
KR1019980012318A KR100271571B1 (ko) 1998-04-07 1998-04-07 디지탈신호처리기

Publications (2)

Publication Number Publication Date
DE19839627A1 true DE19839627A1 (de) 1999-03-04
DE19839627B4 DE19839627B4 (de) 2004-09-09

Family

ID=27532243

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19839627A Expired - Fee Related DE19839627B4 (de) 1997-08-30 1998-08-31 Digitaler Signalprozessor

Country Status (3)

Country Link
US (1) US6209017B1 (de)
DE (1) DE19839627B4 (de)
GB (1) GB2330226B (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999056470A1 (en) * 1998-04-24 1999-11-04 Sarnoff Corporation Method and apparatus for decoding an audio signal

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6532486B1 (en) * 1998-12-16 2003-03-11 Texas Instruments Incorporated Apparatus and method for saturating data in register
US6978287B1 (en) * 2001-04-04 2005-12-20 Altera Corporation DSP processor architecture with write datapath word conditioning and analysis
US7010558B2 (en) * 2001-04-19 2006-03-07 Arc International Data processor with enhanced instruction execution and method
US6970509B2 (en) * 2001-07-31 2005-11-29 Wis Technologies, Inc. Cell array and method of multiresolution motion estimation and compensation
US7219173B2 (en) * 2001-07-31 2007-05-15 Micronas Usa, Inc. System for video processing control and scheduling wherein commands are unaffected by signal interrupts and schedule commands are transmitted at precise time
US6981073B2 (en) * 2001-07-31 2005-12-27 Wis Technologies, Inc. Multiple channel data bus control for video processing
US6996702B2 (en) * 2001-07-31 2006-02-07 Wis Technologies, Inc. Processing unit with cross-coupled ALUs/accumulators and input data feedback structure including constant generator and bypass to reduce memory contention
US7035332B2 (en) * 2001-07-31 2006-04-25 Wis Technologies, Inc. DCT/IDCT with minimum multiplication
US20050207663A1 (en) * 2001-07-31 2005-09-22 Weimin Zeng Searching method and system for best matching motion vector
US7184101B2 (en) * 2001-07-31 2007-02-27 Micronas Usa, Inc. Address generation for video processing
US7085320B2 (en) * 2001-07-31 2006-08-01 Wis Technologies, Inc. Multiple format video compression
US7142251B2 (en) * 2001-07-31 2006-11-28 Micronas Usa, Inc. Video input processor in multi-format video compression system
FR2835938A1 (fr) * 2002-02-08 2003-08-15 St Microelectronics Sa Operateur saturant a haute efficacite
WO2004103056A2 (en) * 2003-05-09 2004-12-02 Sandbridge Technologies, Inc. Processor reduction unit for accumulation of multiple operands with or without saturation
GB2409066B (en) * 2003-12-09 2006-09-27 Advanced Risc Mach Ltd A data processing apparatus and method for moving data between registers and memory
GB2409063B (en) * 2003-12-09 2006-07-12 Advanced Risc Mach Ltd Vector by scalar operations
GB2411976B (en) * 2003-12-09 2006-07-19 Advanced Risc Mach Ltd A data processing apparatus and method for moving data between registers and memory
GB2409060B (en) * 2003-12-09 2006-08-09 Advanced Risc Mach Ltd Moving data between registers of different register data stores
GB2411973B (en) * 2003-12-09 2006-09-27 Advanced Risc Mach Ltd Constant generation in SMD processing
GB2411975B (en) * 2003-12-09 2006-10-04 Advanced Risc Mach Ltd Data processing apparatus and method for performing arithmetic operations in SIMD data processing
GB2409067B (en) * 2003-12-09 2006-12-13 Advanced Risc Mach Ltd Endianess compensation within a SIMD data processing system
GB2409059B (en) * 2003-12-09 2006-09-27 Advanced Risc Mach Ltd A data processing apparatus and method for moving data between registers and memory
GB2409065B (en) * 2003-12-09 2006-10-25 Advanced Risc Mach Ltd Multiplexing operations in SIMD processing
GB2411974C (en) * 2003-12-09 2009-09-23 Advanced Risc Mach Ltd Data shift operations
GB2409062C (en) * 2003-12-09 2007-12-11 Advanced Risc Mach Ltd Aliasing data processing registers
GB2409061B (en) * 2003-12-09 2006-09-13 Advanced Risc Mach Ltd Table lookup operation within a data processing system
GB2409064B (en) * 2003-12-09 2006-09-13 Advanced Risc Mach Ltd A data processing apparatus and method for performing in parallel a data processing operation on data elements
GB2409068A (en) * 2003-12-09 2005-06-15 Advanced Risc Mach Ltd Data element size control within parallel lanes of processing
US7487196B1 (en) * 2003-12-16 2009-02-03 Altera Corporation Methods and apparatus for implementing a saturating multiplier
GB2410097B (en) * 2004-01-13 2006-11-01 Advanced Risc Mach Ltd A data processing apparatus and method for performing data processing operations on floating point data elements
GB2411978B (en) * 2004-03-10 2007-04-04 Advanced Risc Mach Ltd Inserting bits within a data word
US9557994B2 (en) * 2004-07-13 2017-01-31 Arm Limited Data processing apparatus and method for performing N-way interleaving and de-interleaving operations where N is an odd plural number
US7539715B2 (en) * 2005-01-14 2009-05-26 Via Technologies, Inc. Method and system for saturating a left shift result using a standard shifter
US7689640B2 (en) * 2005-06-06 2010-03-30 Atmel Corporation Method and apparatus for formatting numbers in microprocessors
US7969452B2 (en) * 2007-01-31 2011-06-28 The Mathworks, Inc. Reporting fixed-point information for a graphical model
US20220383446A1 (en) * 2021-05-28 2022-12-01 MemComputing, Inc. Memory graphics processing unit

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4722066A (en) 1985-07-30 1988-01-26 Rca Corporation Digital signal overflow correction apparatus
US4760544A (en) 1986-06-20 1988-07-26 Plessey Overseas Limited Arithmetic logic and shift device
JP2600293B2 (ja) * 1988-06-10 1997-04-16 日本電気株式会社 オーバーフロー補正回路
JPH0337715A (ja) * 1989-07-05 1991-02-19 Fujitsu Ltd ビット順反転回路
JPH0820942B2 (ja) 1991-09-26 1996-03-04 インターナショナル・ビジネス・マシーンズ・コーポレイション 高速乗算器
US5258943A (en) * 1991-12-23 1993-11-02 Intel Corporation Apparatus and method for rounding operands
US5448509A (en) 1993-12-08 1995-09-05 Hewlett-Packard Company Efficient hardware handling of positive and negative overflow resulting from arithmetic operations
JPH07200252A (ja) * 1993-12-28 1995-08-04 Nec Corp バレルシフタ回路
EP0780759A1 (de) 1995-12-22 1997-06-25 Lucent Technologies Inc. Entfernung von Generierungsverzögerung der mathematischen Überlaufflagge in einer ALE
KR19980014906A (ko) * 1996-08-17 1998-05-25 구자홍 누산기
CN1210647C (zh) * 1996-11-29 2005-07-13 松下电器产业株式会社 适于作由正值处理及饱和运算处理组成的修整处理的处理器

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999056470A1 (en) * 1998-04-24 1999-11-04 Sarnoff Corporation Method and apparatus for decoding an audio signal

Also Published As

Publication number Publication date
GB2330226B (en) 2000-12-27
GB2330226A (en) 1999-04-14
DE19839627B4 (de) 2004-09-09
US6209017B1 (en) 2001-03-27
GB9818919D0 (en) 1998-10-21

Similar Documents

Publication Publication Date Title
DE19839627A1 (de) Digitaler Signalprozessor
DE19540102C2 (de) Verfahren und Gleitkomma-Recheneinheit mit einer Logik für eine Vierfach-Präzisions-Arithmetik
DE10105945B4 (de) Multiplizierer mit Linearsummierungsarray sowohl zur vorzeichenbehafteten als auch zur vorzeichenlosen Multiplikation
DE69821408T2 (de) Multiplikationsverfahren und -vorrichtung
DE2934971A1 (de) Datenverarbeitungssystem
DE2946846A1 (de) Rundungs-korrekturlogik fuer multiplizierer fuer modifizierten booth-algorithmus
DE1549477B1 (de) Einrichtung zur schnellen akkumulation einer anzahl mehr stelliger binaerer operanden
DE102020105536A1 (de) Maschinenlerntrainingsarchitektur für programmierbare Vorrichtungen
DE19826252C2 (de) Verfahren zur digitalen Signalverarbeitung
DE112008001707T5 (de) Finite-Feld-Operationen verwendender kryptographischer Zufallszahlengenerator
DE10013068C2 (de) Potenzierungsoperationsvorrichtung
DE3138698C2 (de)
DE19741915A1 (de) Zwischenspeicheroptimierung in Hardware-Logikemulations-Systemen
CH692310A5 (de) Verfahren zum Erzeugen eines Unterbruchsignals in einer Datenverarbeitungsanlage und Datenverarbeitungsanlage.
DE19504089A1 (de) Pipelined SIMD-Systolic Array Prozessor und dessen Arbeitsverfahren
DE3447634C2 (de)
DE10219158A1 (de) Vorrichtung und Verfahren zum Berechnen eines Ergebnisses einer modularen Multiplikation
DE2746355A1 (de) Einrichtung und verfahren zur wahlweisen multiplikation oder division zweier als binaerzahlen vorliegender operanden
EP0265555B1 (de) Verfahren und Schaltungsanordnung zur Addition von Gleitkommazahlen
DE112018006405T5 (de) Verfahren und Vorrichtung zur Berechnung der Hashfunktion
DE10200133B4 (de) Verfahren und Vorrichtung zur Berechnung von Modulo-Operationen
DE19637369C2 (de) Digitaler Signalprozessor mit Multipliziereinrichtung und -Verfahren
EP0424410B1 (de) Multiplizierer
DE3700740A1 (de) Linearapproximationsumformschaltung
EP1476977B1 (de) Hardware-schaltung zur punktierung und wiederholungscodierung von datenströmen und verfahren zum betrieb der hardware-schaltung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee