DE19839627A1 - Digitaler Signalprozessor - Google Patents
Digitaler SignalprozessorInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/57—Arithmetic 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49942—Significance control
- G06F7/49947—Rounding
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)
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)
{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.
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)
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)
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)
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 | 松下电器产业株式会社 | 适于作由正值处理及饱和运算处理组成的修整处理的处理器 |
-
1998
- 1998-08-28 US US09/143,351 patent/US6209017B1/en not_active Expired - Lifetime
- 1998-08-28 GB GB9818919A patent/GB2330226B/en not_active Expired - Fee Related
- 1998-08-31 DE DE19839627A patent/DE19839627B4/de not_active Expired - Fee Related
Cited By (1)
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 |