DE19746054A1 - Verfahren und Vorrichtung zum Ausführen einer Einzelbefehlsoperation mit doppelter Genauigkeit - Google Patents
Verfahren und Vorrichtung zum Ausführen einer Einzelbefehlsoperation mit doppelter GenauigkeitInfo
- Publication number
- DE19746054A1 DE19746054A1 DE19746054A DE19746054A DE19746054A1 DE 19746054 A1 DE19746054 A1 DE 19746054A1 DE 19746054 A DE19746054 A DE 19746054A DE 19746054 A DE19746054 A DE 19746054A DE 19746054 A1 DE19746054 A1 DE 19746054A1
- Authority
- DE
- Germany
- Prior art keywords
- operand
- connection point
- unsigned
- signed
- input connection
- 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/52—Multiplying; Dividing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
- G06F9/30014—Arithmetic instructions with variable precision
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Software Systems (AREA)
- Computational Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Executing Machine-Instructions (AREA)
- Complex Calculations (AREA)
Description
Die Erfindung betrifft eine Vorrichtung und ein Verfahren
zum Ausführen einer Operation mit doppelter Genauigkeit,
die Operatoren mit und ohne Vorzeichen umfaßt, wobei die
Operation unter Verwendung eines Verschiebebits in einem
Statusregister innerhalb vier Befehlszyklen ausgeführt
wird.
Bei herkömmlichen digitalen Signalprozessoren (DSPs) werden
Operationen mit doppelter Genauigkeit typischerweise unter
Verwendung von zwei Registern als Einzelwort (z. B. zwei
16-Bit-Register, um ein 32-Bit-Wort zu bilden) und eines
Befehls ausgeführt, wobei der Befehl z. B. zwei
Adreßbereiche aufweist, von denen sich ein Adreßbereich auf
einen Elementaroperanden bezieht und der andere
Adreßbereich sich auf einen Objektoperanden bezieht.
Bei einem herkömmlichen 16-Bit-Festpunkt-DSP ist ein
typisches Beispiel für eine Operation mit doppelter
Genauigkeit wie folgt: unter der Annahme, daß vier
16-Bit-Register L1, L0, R0 und R1 vorhanden sind, werden zum
Ausführen einer Multiplikation mit doppelter Genauigkeit
von (L1 : L0) × (R1 : R0) sechs Operationsschritte
ausgeführt, wobei sowohl ein linker Operand mit Vorzeichen
(L1; L0) als auch ein rechter Operand mit Vorzeichen (R1;
R0) durch 32 Bits dargestellt werden. Der erste Schritt ist
das Ausführen einer Multiplikations- und Akkumulations-Ope
ration (MAC-Operation) der Operanden ohne Vorzeichen
L0 × R0. Der zweite Schritt schließt das Verschieben des
akkumulierten Ergebnisses der ersten MAC-Operation um 16
Bit-Positionen nach rechts ein. Der dritte Schritt ist das
Ausführen einer MAC-Operation an dem Operanden mit
Vorzeichen L1 und an dem Operanden ohne Vorzeichen R0 (z. B.
L1 × R0). Der vierte Schritt ist eine MAC-Operation am
Operanden ohne Vorzeichen L0 und am Operanden mit
Vorzeichen R1 (z. B. L0 × R1). Der fünfte Schritt ist das
Verschieben des akkumulierten Ergebnisses um 16 Bits nach
rechts. Schließlich ist der sechste Schritt eine MAC-Ope
ration an den Operanden mit Vorzeichen L1 und R1 (z. B.
L1 × R1).
Nimmt man weiterhin an, daß der DSP eine Multiplikations- und
Akkumulations-Einheit zum Ausführen der MAC-Operation
und einen Bitstellen- bzw. Barrel-Verschieber zum Ausführen
der Verschiebeoperation aufweist, dann können bei der oben
beschriebenen Operation mit doppelter Genauigkeit die
Verschiebeoperation des zweiten Schritts und die MAC-Ope
ration des dritten Schritts gleichzeitig ausgeführt
werden und die Verschiebeoperation des fünften Schritts und
die MAC-Operation des sechsten Schritts können auch
gleichzeitig ausgeführt werden. Durch das gleichzeitige
Ausführen von Schritten kann die Operation mit doppelter
Genauigkeit in nur vier Operationszyklen ausgeführt werden.
Herkömmliche DSPs laden jedoch typischerweise während einer
MAC-Operation zwei Datenoperanden, so daß, wenn die
Instruktionsfelder, die zwei Operandenregister und ein
Objektregister kennzeichnen, kombiniert werden, die meisten
der sechzehn Bits, die den MAC-Befehl darstellen, besetzt
sind.
Folglich ist es bei herkömmlich DSPs eine Problem, daß
viele Typen von MAC-Befehlen nicht innerhalb von vier
Befehlszyklen ausgeführt werden können, weil ein komplexer
Befehl, der gleichzeitige Operationen erlaubt, nicht
gebildet werden kann und daher eine
Multiplikationsoperation mit doppelter Genauigkeit nicht
innerhalb von vier Operationszyklen ausgeführt werden kann.
Es ist daher Aufgabe der Erfindung, ein Verfahren und eine
Vorrichtung für doppelte Genauigkeit vorzusehen, mit denen
es möglich ist, eine Operation mit doppelter Genauigkeit in
vier Zyklen auszuführen.
Die Aufgabe wird durch das Verfahren nach Anspruch 1 bzw.
durch die Vorrichtung nach Anspruch 4 gelöst.
Dabei wird in einem Statusregister ein Bit, das eine
Positionsverschiebung in einem Akkumulator bestimmt,
zugeordnet und dann als Reaktion auf einen einzigen Typ von
Multiplikationsbefehl in Abhängigkeit des Werts vom
Statusregister eine Multiplikation von Operanden sowohl mit
als auch ohne Vorzeichen ausgeführt.
Ein Ausführungsbeispiel des Verfahrens zum Ausführen von
Operationen mit doppelter Genauigkeit gemäß der Erfindung
schließt das Initialisieren eines Positionsverschiebebits
in einem Statusregister durch den gelöschten Zustand, das
Löschen des Positionsverschiebebits als Reaktion entweder
auf eine Operation zwischen einem ersten Operanden mit
Vorzeichen und einem zweiten Operanden mit Vorzeichen oder
auf eine Operation zwischen einem ersten Operanden ohne
Vorzeichen und einem zweiten Operanden ohne Vorzeichen, das
Einstellen bzw. Setzen des Positionsverschiebebits als
Reaktion auf entweder eine Operation zwischen dem ersten
Operanden mit Vorzeichen und dem zweiten Operanden ohne
Vorzeichen oder eine Operation zwischen dem ersten
Operanden ohne Vorzeichen und dem zweiten Operanden mit
Vorzeichen und das Verschieben in einem Akkumulator als
Reaktion auf eine Änderung des Zustands des
Positionsverschiebebits ein.
Ein Ausführungsbeispiel der Vorrichtung zum Ausführen von
Operationen mit doppelter Genauigkeit gemäß der Erfindung
schließt ein Statusregister mit einem Verschiebebit ein,
wobei das Verschiebebit als Reaktion entweder auf eine
Operation zwischen einem ersten Operanden mit Vorzeichen
und einem zweiten Operanden mit Vorzeichen oder auf eine
Operation zwischen einem ersten Operanden ohne Vorzeichen
und einem zweiten Operanden ohne Vorzeichen gelöscht wird
und wobei das Verschiebebit als Reaktion auf entweder eine
Operation zwischen dem ersten Operanden mit Vorzeichen und
dem zweiten Operanden ohne Vorzeichen oder eine Operation
zwischen dem ersten Operanden ohne Vorzeichen und dem
zweiten Operanden mit Vorzeichen gesetzt wird. Die
Vorrichtung schließt ebenfalls einen Multiplizierer ein,
der einen ersten Eingangsoperanden und einen zweiten
Eingangsoperanden empfängt, den ersten und den zweiten
Eingangsoperanden multipliziert und ein Produkt aus dem
ersten und dem zweiten Eingangsoperanden erzeugt. Eine
Arithmetik-Logik-Einheit (ALU) in der Vorrichtung addiert
das Ausgangssignal eines Verschiebers dem Ausgangssignal
des Multiplizierers hinzu und gibt das Ergebnis an einen
Akkumulator aus. Der Verschieber ist so konfiguriert, daß
er einen im Akkumulator gespeicherten Wert empfängt und den
Wert als Reaktion auf eine Änderung des Zustandes des
Verschiebebits verschiebt.
Vorteilhafte Ausgestaltungen der Erfindung sind in den
Unteransprüchen angegeben.
Die Erfindung wird nachstehend anhand der Fig. näher
erläutert. Es zeigen:
Fig. 1 ein Blockdiagramm eines Ausführungsbeispiels
eines Multiplizierers mit doppelter Genauigkeit
gemäß der Erfindung und
Fig. 2 eine Bitzuordnung bei einem Ausführungsbeispiel
eines Statusregisters gemäß der Erfindung.
Fig. 1 ist ein Blockschaltbild eines
Multipliziererschaltkreises mit doppelter Genauigkeit eines
digitalen Signalprozessors (DSP). Die Schaltung weist
Multiplexer MUX1 und MUX2 auf, die als Operatoren für eine
Multiplikationsoperation mit doppelter Genauigkeit aus
16-Bit-Registern R0, R1, L0 und L1 Operanden auswählen. Ein
Multiplizierer 11 führt eine Multiplikationsoperation
durch, indem von jedem der Multiplexer MUX1 und MUX2 ein
Wert als Operator verwendet wird. Ein Bitstellen-Ver
schieber 15 führt eine Verschiebeoperation mit doppelter
Genauigkeit aus und gibt das Verschiebeergebnis an eine
Arithmetik-Logik-Einheit 17 (ALU) aus, die die
Ausgangswerte des Bitstellen-Verschiebers 15 und des
Multiplizierers 11 addiert. Ein Akkumulator 13 akkumuliert
den Ausgangswert der ALU 17. Die Multiplizierereinheit 100
mit doppelter Genauigkeit (mit den Registern L1, L0, R1 und
R0, den Multiplexer MUX1 und MUX2 sowie mit dem
Multiplizierer 11) der Erfindung verschiebt das Ergebnis im
Akkumulator 13 unter Verwendung des Bitstellen-Verschiebers
15 um 16 Bits nach rechts und addiert gleichzeitig den
Ausgangswert des Bitstellen-Verschiebers 15 und den
Ausgangswert des Multiplizierers 11 in der ALU 17.
Wenn jedoch der gleiche Typ eines Multiplikations- und
Akkumulations-Befehls (MAC-Befehls) verwendet wird, um
jeden Multiplikationsschritt beim vollständigen
Multiplikationsprozeß mit doppelter Genauigkeit der
Multiplizierereinheit 100 mit doppelter Genauigkeit
auszuführen, ist es wichtig, festzustellen, wann das im
Akkumulator 13 enthaltene Ergebnis verschoben werden muß
und wann nicht. Ein Statusregister 200 wird vorgesehen,
welches ein "Verschoben"-Bit 206 einschließt, das
anfänglich auf "0" gesetzt ist und das verwendet wird, um
festzustellen, wann der Wert im Akkumulator 13 um 16 Bits
verschoben werden soll. Wie dies in Fig. 2 dargestellt ist,
schließt das Statusregister 200 ebenfalls ein "Linkes
Langwort"-Statusbit 202, ein "Rechtes Langwort"-Statusbit
204 und ein "Verschiebe-Freigabe"-Statusbit 208 ein.
Zunächst kann eine Multiplikation von Operatoren mit und
ohne Vorzeichen unter Verwendung eines Befehlstyps gelöst
werden, indem im Statusregister ein Bit belegt wird, das
doppelte Genauigkeit festlegt, wie dies bei dem Verfahren
gemacht wird, das im D950-Kern von SGS-Thomson verwendet
wird.
In dem Fall, in dem sowohl der linke Operator (L1; L0) als
auch der rechte Operator (R1; R0) als Operanden mit
doppelter Genauigkeit eingestellt sind, führt der
Multiplizierer 11 vier MAC-Operationen durch: eine
Multiplikation der Operanden ohne Vorzeichen L0 und R0,
eine Multiplikation des Operanden mit Vorzeichen R1 und des
Operanden ohne Vorzeichen L0, eine Multiplikation des
Operanden ohne Vorzeichen R0 und des Operanden mit
Vorzeichen L1 sowie eine Multiplikation der Operanden mit
Vorzeichen L1 und R1.
Wenn der Multiplizierer 11 die Multiplikation der Operanden
ohne Vorzeichen L0 × R0 ausführt, bleibt das "Verschoben"-Bit
des Statusregisters unverändert auf "0", da sich der
Akkumulator in einem nicht verschobenen Normalzustand
befindet.
Wenn der Multiplizierer 11 als nächstes eine Multiplikation
von Operanden mit und ohne Vorzeichen ausführt, wie z. B.
L1 × R0 oder L0 × R1, wandelt die in Fig. 1 dargestellte
Schaltung das "Verschoben"-Bit des Statusregisters in eine
"1" um und als Reaktion auf die Änderung des Zustands des
"Verschoben"-Bits wird das im Akkumulator 13 akkumulierte
Ergebnis um 16 Bitpositionen nach rechts verschoben. Die
Multiplikation mit und ohne Vorzeichen wird vom
Multiplizierer 11 gleichzeitig zur Verschiebung im
Akkumulator 13 ausgeführt.
Der nächste Multiplikationsschritt schließt eine weitere
Multiplikation mit und ohne Vorzeichen ein, d. h., wenn
L1 × R0 im vorherigen Schritt ausgeführt wurde, dann wird
L0 × R1 ausgeführt, und falls beim vorigen Schritt L0 × R1
ausgeführt wurde, dann wird L1 × R0 ausgeführt. Das
Ausführen einer weiteren Multiplikation mit und ohne
Vorzeichen bewirkt, daß die Schaltung 100 versucht, den
Wert des "Verschoben"-Bits auf eine "1" einzustellen. Das
"Verschoben"-Bit ist jedoch bereits auf einem "1"-Wert und
es erfolgt keine Änderung des Zustands. Folglich findet
keine Verschiebung im Akkumulator 13 statt und der
Multiplizierer 11 führt die L1 × R0 oder L0 × R1 Operation
aus.
Beim letzten Schritt wird eine Multiplikation von zwei
Operanden mit Vorzeichen L1 × R1 durch den Multiplizierer
11 ausgeführt und das "Verschoben"-Bit wird auf "0"
zurückgesetzt, was eine Zustandsänderung für das
"Verschoben"-Bit darstellt. Als Reaktion auf die
Zustandsänderung führt die Schaltung eine MAC-Operation
aus, was gleichzeitig zum Verschieben des Werts im
Akkumulator 13 um 16 Bitpositionen nach rechts das
Multiplizieren von L1 und R1 im Multiplizierer 11
einschließt.
Mit anderen Worten: Als Reaktion auf eine Multiplikation
zweier Operanden mit Vorzeichen oder einer Multiplikation
zweier Operanden ohne Vorzeichen, d. h., der Multiplizierer
11 führt die Operation L1 × R1 oder L0 × R0 aus, wird das
"Verschoben"-Bit auf "0" zurückgesetzt und als Reaktion auf
eine Multiplikation eines Operanden mit Vorzeichen und
eines Operanden ohne Vorzeichen oder einer Multiplikation
eines Operanden ohne Vorzeichen mit einem Operanden mit
Vorzeichen, d. h., der Multiplizierer 11 führt die
Operation L1 × R0 oder L0 × R1 aus, wird das "Verschoben"-Bit
auf "1" eingestellt. Wenn das "Verschoben"-Bit seinen
Zustand ändert, entweder von einer "0" zu einer "1" oder
von einer "1" zu einer "0", dann führt die Schaltung die
MAC-Operation aus, die eine Verschiebung des Ausgangswerts
im Akkumulator um 16 Bits zusätzlich zur Multiplikation der
Operanden im Multiplizierer 11 einschließt.
Unter Verwendung eines einzigen Typs von
Multiplikationsbefehl führen das oben beschriebene
Verfahren und die Vorrichtung eine Multiplikation mit
doppelter Genauigkeit, die sowohl Operatoren mit und ohne
Vorzeichen einschließt, aus, indem ein Bit in einem
Statusregister zugeordnet wird, welches festlegt, wann der
Ausgangswert des Akkumulators um 16 Bits gegenüber dem
unverschobenen Zustand verschoben wird. Unter Verwendung
des Bits im Statusregister und des Typs der Operanden, die
im Befehl eingeschlossen sind, kann die Erfindung
gleichzeitig eine MAC-Operation und eine
Positionsverschiebeoperation ausführen, um zu steuern, wann
eine Positionsverschiebung gleichzeitig mit einer
Multiplikationsoperation ausgeführt werden soll. Daher kann
die Erfindung eine Multiplikation mit doppelter Genauigkeit
unter Verwendung eines einzigen Statusbits und eines
einzigen Typs von MAC-Befehl ausführen, um alle die
notwendigen Multiplikationsschritte für die Multiplikation
mit doppelter Genauigkeit auszuführen.
Wenn der Verschiebesteuermechanismus der Erfindung nicht
notwendig ist, kann das "Verschiebe-Freigabe"-Bit im
Statusregister 200 fest belegt und das "Verschoben"-Bit
deaktiviert werden.
Claims (6)
1. Verfahren für eine Multiplikation mit doppelter
Genauigkeit, wobei das Verfahren die Schritte aufweist:
Initialisieren eines Positionsverschiebebits (206) in einem Statusregister (200) durch Löschen des Zustands;
Löschen des Positionsverschiebebits (206) als Reaktion auf entweder
eine Operation zwischen einem ersten Operanden mit Vorzeichen und einem zweiten Operanden mit Vorzeichen oder
eine Operation zwischen einem ersten Operanden ohne Vorzeichen und einem zweiten Operanden ohne Vorzeichen;
Setzen des Positionsverschiebebits (206) als Reaktion auf entweder
eine Operation zwischen dem ersten Operanden mit Vorzeichen und dem zweiten Operanden ohne Vorzeichen oder
eine Operation zwischen dem ersten Operanden ohne Vorzeichen und dem zweiten Operanden mit Vorzeichen und
Verschieben eines Wertes in einem Akkumulator (13) als Reaktion auf eine Änderung des Zustands des Positionsverschiebebits.
Initialisieren eines Positionsverschiebebits (206) in einem Statusregister (200) durch Löschen des Zustands;
Löschen des Positionsverschiebebits (206) als Reaktion auf entweder
eine Operation zwischen einem ersten Operanden mit Vorzeichen und einem zweiten Operanden mit Vorzeichen oder
eine Operation zwischen einem ersten Operanden ohne Vorzeichen und einem zweiten Operanden ohne Vorzeichen;
Setzen des Positionsverschiebebits (206) als Reaktion auf entweder
eine Operation zwischen dem ersten Operanden mit Vorzeichen und dem zweiten Operanden ohne Vorzeichen oder
eine Operation zwischen dem ersten Operanden ohne Vorzeichen und dem zweiten Operanden mit Vorzeichen und
Verschieben eines Wertes in einem Akkumulator (13) als Reaktion auf eine Änderung des Zustands des Positionsverschiebebits.
2. Verfahren nach Anspruch 1, bei dem als Reaktion auf
einen einzigen Typ von Befehl entweder
die Operation zwischen dem ersten Operanden mit Vorzeichen und dem zweiten Operanden mit Vorzeichen,
die Operation zwischen dem ersten Operanden ohne Vorzeichen und dem zweiten Operanden ohne Vorzeichen,
die Operation zwischen dem ersten Operanden mit Vorzeichen und dem zweiten Operanden ohne Vorzeichen oder
die Operation zwischen dem ersten Operanden ohne Vorzeichen und dem zweiten Operanden mit Vorzeichen ausgeführt wird.
die Operation zwischen dem ersten Operanden mit Vorzeichen und dem zweiten Operanden mit Vorzeichen,
die Operation zwischen dem ersten Operanden ohne Vorzeichen und dem zweiten Operanden ohne Vorzeichen,
die Operation zwischen dem ersten Operanden mit Vorzeichen und dem zweiten Operanden ohne Vorzeichen oder
die Operation zwischen dem ersten Operanden ohne Vorzeichen und dem zweiten Operanden mit Vorzeichen ausgeführt wird.
3. Verfahren nach Anspruch 1 oder 2, das die Schritte
aufweist:
Einstellen eines Verschiebe-Blockier-Bits (208) im Statusregister und
Blockieren des Verschiebens des Werts im Akkumulator als Reaktion auf das eingestellte Verschiebe-Blockier-Bit.
Einstellen eines Verschiebe-Blockier-Bits (208) im Statusregister und
Blockieren des Verschiebens des Werts im Akkumulator als Reaktion auf das eingestellte Verschiebe-Blockier-Bit.
4. Vorrichtung zum Ausführen von Operationen mit
doppelter Genauigkeit, wobei die Vorrichtung aufweist:
ein Statusregister (200), das ein Verschiebebit (206) einschließt,
wobei das Verschiebebit als Reaktion auf entweder eine Operation zwischen einem ersten Operanden mit Vorzeichen und einem zweiten Operanden mit Vorzeichen oder eine Operation zwischen einem ersten Operanden ohne Vorzeichen und einem zweiten Operanden ohne Vorzeichen gelöscht wird, und
wobei das Verschiebebit als Reaktion auf entweder eine Operation zwischen dem ersten Operanden mit Vorzeichen und dem zweiten Operanden ohne Vorzeichen oder eine Operation zwischen dem ersten Operanden ohne Vorzeichen und dem zweiten Operanden mit Vorzeichen gesetzt wird;
einen Multiplizierer (11) mit einem ersten Eingangsanschlußpunkt, einem zweiten Eingangsanschlußpunkt und einem Ausgangsanschlußpunkt, wobei der Multiplizierer (11) am ersten Eingangsanschlußpunkt einen ersten Eingangsoperanden empfängt und am zweiten Eingangsanschlußpunkt einen zweiten Eingangsoperanden empfängt, den ersten mit dem zweiten Eingangsoperanden multipliziert und am Ausgangsanschlußpunkt ein Produkt erzeugt;
eine Arithmetik-Logik-Einheit (17) mit einem ersten Eingangsanschlußpunkt, einem zweiten Eingangsanschlußpunkt und einem Ausgangsanschlußpunkt, wobei der erste Eingangsanschlußpunkt der Arithmetik-Logik-Einheit mit dem Ausgangsanschlußpunkt des Multiplizierers (11) gekoppelt ist;
einen Akkumulator (13) mit einem Eingangsanschlußpunkt und einem Ausgangsanschlußpunkt, wobei der Eingangsanschlußpunkt des Akkumulators mit dem Ausgangsanschlußpunkt der Arithmetik-Logik-Einheit (17) gekoppelt ist; und
einen Verschieber (15) mit einem Eingangsanschlußpunkt und einem Ausgangsanschlußpunkt, wobei der Eingangsanschlußpunkt des Verschiebers mit dem Ausgangsanschlußpunkt des Akkumulators (13) gekoppelt ist und der Ausgangsanschlußpunkt des Verschiebers (15) mit dem zweiten Eingangsanschlußpunkt der Arithmetik-Logik-Einheit (17) gekoppelt ist, und wobei weiterhin der Verschieber (15) als Reaktion auf eine Änderung des Zustands des Verschiebebits (206) einen vom Akkumulator empfangenen Wert verschiebt.
ein Statusregister (200), das ein Verschiebebit (206) einschließt,
wobei das Verschiebebit als Reaktion auf entweder eine Operation zwischen einem ersten Operanden mit Vorzeichen und einem zweiten Operanden mit Vorzeichen oder eine Operation zwischen einem ersten Operanden ohne Vorzeichen und einem zweiten Operanden ohne Vorzeichen gelöscht wird, und
wobei das Verschiebebit als Reaktion auf entweder eine Operation zwischen dem ersten Operanden mit Vorzeichen und dem zweiten Operanden ohne Vorzeichen oder eine Operation zwischen dem ersten Operanden ohne Vorzeichen und dem zweiten Operanden mit Vorzeichen gesetzt wird;
einen Multiplizierer (11) mit einem ersten Eingangsanschlußpunkt, einem zweiten Eingangsanschlußpunkt und einem Ausgangsanschlußpunkt, wobei der Multiplizierer (11) am ersten Eingangsanschlußpunkt einen ersten Eingangsoperanden empfängt und am zweiten Eingangsanschlußpunkt einen zweiten Eingangsoperanden empfängt, den ersten mit dem zweiten Eingangsoperanden multipliziert und am Ausgangsanschlußpunkt ein Produkt erzeugt;
eine Arithmetik-Logik-Einheit (17) mit einem ersten Eingangsanschlußpunkt, einem zweiten Eingangsanschlußpunkt und einem Ausgangsanschlußpunkt, wobei der erste Eingangsanschlußpunkt der Arithmetik-Logik-Einheit mit dem Ausgangsanschlußpunkt des Multiplizierers (11) gekoppelt ist;
einen Akkumulator (13) mit einem Eingangsanschlußpunkt und einem Ausgangsanschlußpunkt, wobei der Eingangsanschlußpunkt des Akkumulators mit dem Ausgangsanschlußpunkt der Arithmetik-Logik-Einheit (17) gekoppelt ist; und
einen Verschieber (15) mit einem Eingangsanschlußpunkt und einem Ausgangsanschlußpunkt, wobei der Eingangsanschlußpunkt des Verschiebers mit dem Ausgangsanschlußpunkt des Akkumulators (13) gekoppelt ist und der Ausgangsanschlußpunkt des Verschiebers (15) mit dem zweiten Eingangsanschlußpunkt der Arithmetik-Logik-Einheit (17) gekoppelt ist, und wobei weiterhin der Verschieber (15) als Reaktion auf eine Änderung des Zustands des Verschiebebits (206) einen vom Akkumulator empfangenen Wert verschiebt.
5. Vorrichtung nach Anspruch 4, bei der
die Operation zwischen dem ersten Operanden mit Vorzeichen und dem zweiten Operanden mit Vorzeichen,
die Operation zwischen dem ersten Operanden ohne Vorzeichen und dem zweiten Operanden ohne Vorzeichen,
die Operation zwischen dem ersten Operanden mit Vorzeichen und dem zweiten Operanden ohne Vorzeichen sowie
die Operation zwischen dem ersten Operanden ohne Vorzeichen und dem zweiten Operanden mit Vorzeichen als Reaktion auf einen einzigen Typ von Befehl ausgeführt werden.
die Operation zwischen dem ersten Operanden mit Vorzeichen und dem zweiten Operanden mit Vorzeichen,
die Operation zwischen dem ersten Operanden ohne Vorzeichen und dem zweiten Operanden ohne Vorzeichen,
die Operation zwischen dem ersten Operanden mit Vorzeichen und dem zweiten Operanden ohne Vorzeichen sowie
die Operation zwischen dem ersten Operanden ohne Vorzeichen und dem zweiten Operanden mit Vorzeichen als Reaktion auf einen einzigen Typ von Befehl ausgeführt werden.
6. Vorrichtung nach Anspruch 4 oder 5, die weiterhin
aufweist:
einen ersten Multiplexer (9) mit einem ersten Eingangsanschlußpunkt, einem zweiten Eingangsanschlußpunkt und einem Ausgangsanschlußpunkt, wobei der erste Eingangsanschlußpunkt des ersten Multiplexers den ersten Operanden mit Vorzeichen empfängt, und der zweite Eingangsanschlußpunkt des ersten Multiplexers den ersten Operanden ohne Vorzeichen empfängt, und wobei der Ausgangsanschlußpunkt des ersten Multiplexers mit dem ersten Eingangsanschlußpunkt des Multiplizierers (11) gekoppelt ist; und
einen zweiten Multiplexer (7) mit einem ersten Eingangsanschlußpunkt, einem zweiten Eingangsanschlußpunkt und einem Ausgangsanschlußpunkt, wobei der erste Eingangsanschlußpunkt des zweiten Multiplexers den zweiten Operanden mit Vorzeichen empfängt, und der zweite Eingangsanschlußpunkt des zweiten Multiplexers den zweiten Operanden ohne Vorzeichen empfängt, und wobei der Ausgangsanschlußpunkt des zweiten Multiplexers mit dem zweiten Eingangsanschlußpunkt des Multiplizierers (11) gekoppelt ist.
einen ersten Multiplexer (9) mit einem ersten Eingangsanschlußpunkt, einem zweiten Eingangsanschlußpunkt und einem Ausgangsanschlußpunkt, wobei der erste Eingangsanschlußpunkt des ersten Multiplexers den ersten Operanden mit Vorzeichen empfängt, und der zweite Eingangsanschlußpunkt des ersten Multiplexers den ersten Operanden ohne Vorzeichen empfängt, und wobei der Ausgangsanschlußpunkt des ersten Multiplexers mit dem ersten Eingangsanschlußpunkt des Multiplizierers (11) gekoppelt ist; und
einen zweiten Multiplexer (7) mit einem ersten Eingangsanschlußpunkt, einem zweiten Eingangsanschlußpunkt und einem Ausgangsanschlußpunkt, wobei der erste Eingangsanschlußpunkt des zweiten Multiplexers den zweiten Operanden mit Vorzeichen empfängt, und der zweite Eingangsanschlußpunkt des zweiten Multiplexers den zweiten Operanden ohne Vorzeichen empfängt, und wobei der Ausgangsanschlußpunkt des zweiten Multiplexers mit dem zweiten Eingangsanschlußpunkt des Multiplizierers (11) gekoppelt ist.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR96-71765 | 1996-12-24 | ||
KR1019960071765A KR100222032B1 (ko) | 1996-12-24 | 1996-12-24 | 디지탈 신호 처리기에서의 2배 정밀도 곱셈연산 수행방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE19746054A1 true DE19746054A1 (de) | 1998-06-25 |
DE19746054B4 DE19746054B4 (de) | 2007-08-23 |
Family
ID=19490818
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19746054A Expired - Fee Related DE19746054B4 (de) | 1996-12-24 | 1997-10-17 | Verfahren und Vorrichtung zum Ausführen einer Operation mit doppelter Genauigkeit |
Country Status (4)
Country | Link |
---|---|
US (1) | US5920497A (de) |
KR (1) | KR100222032B1 (de) |
DE (1) | DE19746054B4 (de) |
TW (1) | TW491975B (de) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6233597B1 (en) * | 1997-07-09 | 2001-05-15 | Matsushita Electric Industrial Co., Ltd. | Computing apparatus for double-precision multiplication |
FR2853425B1 (fr) * | 2003-04-07 | 2006-01-13 | Atmel Corp | Sequence de multiplication efficace pour operandes a grands nombres entiers plus larges que le materiel multiplicateur |
US7266580B2 (en) * | 2003-05-12 | 2007-09-04 | International Business Machines Corporation | Modular binary multiplier for signed and unsigned operands of variable widths |
JP4782591B2 (ja) * | 2006-03-10 | 2011-09-28 | 富士通セミコンダクター株式会社 | リコンフィグラブル回路 |
WO2008022307A2 (en) * | 2006-08-18 | 2008-02-21 | Conexant Systems, Inc. | Systems and methods for implementing a double precision arithmetic memory architecture |
KR100897331B1 (ko) * | 2007-12-13 | 2009-05-15 | 현대자동차주식회사 | 차량용 테일게이트 록킹장치 브라켓 |
US8495125B2 (en) * | 2009-05-27 | 2013-07-23 | Microchip Technology Incorporated | DSP engine with implicit mixed sign operands |
US20110153995A1 (en) * | 2009-12-18 | 2011-06-23 | Electronics And Telecommunications Research Institute | Arithmetic apparatus including multiplication and accumulation, and dsp structure and filtering method using the same |
US11847427B2 (en) | 2015-04-04 | 2023-12-19 | Texas Instruments Incorporated | Load store circuit with dedicated single or dual bit shift circuit and opcodes for low power accelerator processor |
US9817791B2 (en) | 2015-04-04 | 2017-11-14 | Texas Instruments Incorporated | Low energy accelerator processor architecture with short parallel instruction word |
US10503474B2 (en) | 2015-12-31 | 2019-12-10 | Texas Instruments Incorporated | Methods and instructions for 32-bit arithmetic support using 16-bit multiply and 32-bit addition |
US10401412B2 (en) | 2016-12-16 | 2019-09-03 | Texas Instruments Incorporated | Line fault signature analysis |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4135249A (en) * | 1977-06-29 | 1979-01-16 | General Electric Company | Signed double precision multiplication logic |
JPH061438B2 (ja) * | 1984-04-26 | 1994-01-05 | 日本電気株式会社 | 倍精度乗算器 |
DE3677051D1 (de) * | 1985-05-17 | 1991-02-28 | Nec Corp | Verarbeitungsschaltung, die es erlaubt den akkumulationsdurchsatz zu erhoehen. |
US4809212A (en) * | 1985-06-19 | 1989-02-28 | Advanced Micro Devices, Inc. | High throughput extended-precision multiplier |
JPH0612229A (ja) * | 1992-06-10 | 1994-01-21 | Nec Corp | 乗累算回路 |
US5463575A (en) * | 1994-06-24 | 1995-10-31 | Rockwell International Corporation | Reduced quantization noise from single-precision multiplier |
-
1996
- 1996-12-24 KR KR1019960071765A patent/KR100222032B1/ko not_active IP Right Cessation
-
1997
- 1997-09-09 TW TW086113030A patent/TW491975B/zh not_active IP Right Cessation
- 1997-09-10 US US08/926,949 patent/US5920497A/en not_active Expired - Lifetime
- 1997-10-17 DE DE19746054A patent/DE19746054B4/de not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US5920497A (en) | 1999-07-06 |
KR19980052740A (ko) | 1998-09-25 |
DE19746054B4 (de) | 2007-08-23 |
KR100222032B1 (ko) | 1999-10-01 |
TW491975B (en) | 2002-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69030128T2 (de) | Signalprozessor | |
DE2714805C2 (de) | ||
DE2704842C2 (de) | Im Pipeline-Betrieb arbeitende Datenverarbeitungseinrichtung | |
DE60210494T2 (de) | Hochgeschwindigkeitsberechnung in einer arithmetik- und logikschaltung | |
DE68927911T2 (de) | Datenverarbeitungssystem | |
DE69430053T2 (de) | Ganzzahldivisionsvorrichtung und -verfahren | |
DE2521289C2 (de) | Datenverarbeitungsanordnung mit Datenfeld-Hilfsprozessor | |
DE69428303T2 (de) | Verfahren und Vorrichtung zum Datenarbeiten mit mehreren Statusbitgruppen | |
DE69324730T2 (de) | Multiplizier-Akkumulator | |
DE4414172A1 (de) | Gleit-Komma-Arithmetikeinheit zur Division und Quadratwurzelberechnung, die eine modifizierte Newton-Raphson Technik verwendet | |
DE1934365A1 (de) | Automatische Programmschaltung bei Computern mit Multiprogrammierung | |
DE19746054B4 (de) | Verfahren und Vorrichtung zum Ausführen einer Operation mit doppelter Genauigkeit | |
DE19983098B4 (de) | Mehrfach-Bitanzeige zur Behandlung von Schreib-nach-Schreib-Fehlern und zur Eliminierung von Bypass-Komparatoren | |
DE3888230T2 (de) | Einrichtung und Verfahren zur Durchführung einer Schiebeoperation mit einer Multipliziererschaltung. | |
DE4403917A1 (de) | Vorrichtung zum Berechnen einer Besetzungszählung | |
DE69231237T2 (de) | Datenverarbeitungsvorrichtung | |
DE10013068C2 (de) | Potenzierungsoperationsvorrichtung | |
DE3852576T2 (de) | Einrichtung und Verfahren für eine erweiterte Arithmetik-Logik-Einheit zur Beschleunigung der ausgewählten Operationen. | |
DE69519448T2 (de) | Digitale Verarbeitungsanlage mit Befehlen zum Suchen des Minimums und Maximums | |
DE3507584C2 (de) | ||
DE69808362T2 (de) | Multiplizierverfahren und Multiplizierschaltung | |
DE69823302T2 (de) | Verfahren und Vorrichtung zum Verschieben von Daten | |
DE69629646T2 (de) | Verfahren zur durchführung einer "rotate through carry" operatiion | |
DE19748484A1 (de) | Schaltung und Verfahren zur Überlauferfassung bei einem digitalen Signalprozessor | |
DE10303053B4 (de) | Prozessorarchitektur mit einem Array von Pipelines und einer Registerdatei zum Vermeiden von Datenrisiken und Verfahren zur Datenweiterleitung in einer derartigen Prozessorarchitektur |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
8125 | Change of the main classification |
Ipc: G06F 752 |
|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |