Aus
der
EP 545 654 B1 ist
eine Multiplizierschaltung zum Multiplizieren eines Multiplikanden
mit einem Multiplikator bekannt, mit einer Teilproduktgenerierungseinrichtung
zur Bildung mehrere Teilprodukte nach einem Booth-Algorithmus und
mit einer Additiereinrichtung zum Addieren der Teilprodukte. Das
Wesentliche dieser bekannten Multiplizierschaltung besteht aus einer
Einrichtung zum Invertieren der höchstwertigen Bits jedes Teilprodukts
in der Weise, dass das anschließende
Addieren eines Komplement-Verarbeitungsbits zu den invertierten
höchstwertigen
Bits aller Teilprodukte das Zweierkomplement der höchstwertigen
Bits zur Durchführung
eines Vorzeichenkorrekturprozesses der Teilprodukte erzeugt, und
einer Einstelleinrichtung zur Lieferung von Daten, die ein Komplement-Verarbeitungsbit
für den
Vorzeichenkorrekturprozess repräsentieren,
wobei die genannten Daten zwei Bits mit dem Wert 1 in der Bitposition
k und ein Bit mit dem Wert 1 in jeder Bitposition von (k + 1) bis
(i – 1)
umfassen, wobei i die Position des Komplement-Verarbeitungsbits
bedeutet und k < (i – 1) ist.
Bei dieser bekannten Multiplizierschaltung ist die Addiereinrichtung
so angeordnet, dass sie die Teilprodukte und die von der Einstelleinrichtung
gelieferten Daten durch sukzessives Addieren der betreffenden Teilprodukte
in einer Addierschaltung addiert. Ferner ist die Einstelleinrichtung
so ausgebildet, dass sie die Daten, die ein Komplement-Verarbeitungsbit
für den
Vorzeichenkorrekturprozess repräsentieren,
in einem Format liefert, das dem Dateneingabeformat der Addierschaltung äquivalent
ist und dass wenigstens ein Teil des Dateneingabeformats der Addierschaltung
der gleiche ist wie wenigstens ein Teil ihres Datenausgabeformats.
Aus
der
EP 811 908 B1 ist
ein Multiplikator zum Errechnen eines Produktes aus einem Multiplikatorfaktor
und einem Multiplikanden bekannt, bei denen es sich jeweils um eine
binäre
Zahl in Zweierkomplementdarstellung handelt, wobei der Multiplikator
umfasst:
einen Multiplikatorfaktor-Kodierer, der eine Vielzahl
kodierter Werte aus dem Multiplikatorfaktor erzeugt;
eine Vielzahl
von Teilprodukterzeugern, die aus dem Multiplikanden und der Vielzahl
kodierter Werte eine Vielzahl von Teilprodukten erzeugen, bei denen
es sich um binäre
Zahlen in Zweierkomplementdarstellung mit einer Differenz von zwei
oder mehr Ziffern hinsichtlich des Gewichtes handelt; und
einen
Teilproduktaddierer, der die Vielzahl von Teilprodukten summiert,
um das Produkt zu erzeugen,
wobei der Teilproduktaddierer einen
Wallace-Baum-Addierer mit einer Vielzahl von Eingängen und
wenigstens einem Ausgang umfasst, der eine Addition bezüglich der
Vielzahl von Teilprodukten ausführt.
Ferner
ist eine Logikschaltung vorgesehen, die Werte in einer Vielzahl
von Ziffernstellen höher
als eine Vorzeichenziffer des ersten Teilproduktes mit dem geringsten
Gewicht der Vielzahl von Teilprodukten erzeugt, um eine Vorzeichenerweiterung
des ersten Teilproduktes auszuführen.
Die Logikschaltung hat im Einzelnen die folgenden Funktionen:
Erzeugen
des Wertes der Vorzeichenziffer des ersten Teilproduktes an jeder
der Ziffernpositionen des ersten Teilproduktes, die sich von einer
Ziffer höher
als die Vorzeichenziffer des ersten Teilproduktes zu der erstreckt, die
der Ziffernposition einer Ziffer niedriger als eine Vorzeichenziffer
des zweiten Teilproduktes mit dem zweitkleinsten Gewicht der Vielzahl
von Teilprodukten entspricht;
Erzeugen eines ersten ausschließlichen
ODER-Wertes zwischen dem Wert der Vorzeichenziffer des ersten Teilproduktes
und dem Wert der Vorzeichenziffer des zweiten Teilproduktes an der
Ziffernposition des ersten Teilproduktes, die der Vorzeichenziffer
des zweiten Teilproduktes entspricht;
Erzeugen eines ersten
ODER-Wertes zwischen dem Wert der Voreichenziffer des ersten Teilproduktes
und dem Wert der Voreichenziffer des zweiten Teilproduktes an jeder
der Ziffernpositionen des ersten Teilproduktes, die sich von der,
die der Ziffernposition einer Ziffer höher als die Voreichenziffer
des zweiten Teilproduktes entspricht, bis zu der erstrecken, die
der Ziffernposition einer Ziffer niedriger als eine Vorzeichenziffer
des dritten Teilproduktes mit dem drittkleinsten Gewicht der Vielzahl
von Teilprodukten entspricht;
Erzeugen eines zweiten ausschließlichen
ODER-Wertes zwischen dem ersten ODER-Wert und dem Wert der Vorzeichenziffer
des dritten Teilproduktes an der Ziffernposition des ersten Teilproduktes,
die der Vorzeichenziffer des dritten Teilproduktes entspricht; und
Erzeugen
eines zweiten ODER-Wertes zwischen dem ersten ODER-Wert und dem
Wert der Vorzeichenziffer des dritten Teilproduktes an jeder der
Ziffernpositionen des ersten Teilproduktes, die sich von der, die
der Ziffernposition einer Ziffer höher als die Voreichenziffer
des dritten Teilproduktes entspricht, bis zu der erstrecken, die
der Vorzeichenziffer des höchstwertigen
Teilproduktes mit dem größten Gewicht
der Vielzahl von Teilprodukten entspricht.
Dabei
weist ein spezieller der Vielzahl von Eingängen des Wallace-Baum-Addierers eine kürzere Ausbreitungsverzögerung zu
dem Ausgang auf als wenigstens ein anderer Eingang, und das erste
Teilprodukt wird nach der Vorzeichenerweiterung, die durch die Logikschaltung
ausgeführt
wird, dem speziellen Eingang zugewiesen.
Ein
Multiplizierglied zum Ausführen
der Multiplikation von vorzeichenlosen Größen oder einer Binärkomplementmultiplikation
ist im US-Patent 5,153,850, das am 24. August 1990 ausgegeben wurde,
mit dem Titel "METHOD
AND APPARATUS FOR MODIFYING TWO'S
COMPLEMENT MULTIPLIER TO PERFORM UNSIGNED MAGNITUDE MULTIPLICATION" beschrieben. Das
im US-Patent beschriebene Multiplizierglied betreibt auswählend die
Binärkomplementmultiplikation
oder die Multiplikation von vorzeichenlosen Größen, korrigiert das Binärkomplementprodukt
durch eine zusätzliche
Schaltung und erhält
dann ein Produkt von vorzeichenlosen Größen.
Ein
modifizierter Booth-Algorithmus ist als ein Algorithmus für die Multiplikation
in DIGITAL CMOS CIRCUIT DESIGN, S. 211 bis 221, von Macro Annaratone
beschrieben.
Der
modifizierte Booth-Algorithmus ist eine Art eines Aufzeichnungsalgorithmus,
der einen ersten Operanden in vorbestimmte Bitpaare unterteilt,
nach dem Ausführen
einer Operation, die den entsprechenden Bitpaaren entspricht, bezüglich eines
zweiten Operanden ein Teilprodukt als Zwischenergebnis erhält, das
erzeugte Teilprodukt, das den entsprechenden Bitpaaren entspricht,
zum anderen Operanden addiert und durch eine Multiplikation zwischen
den zwei Operanden ein Endergebnis erhält. Außerdem sieht der modi fizierte Booth-Algorithmus "0" als auf die Multiplikation wirkungslos
an und verbessert die Operationsgeschwindigkeit der Multiplikation.
1 ist ein Blockschaltbild
eines herkömmlichen
Binärkomplementmultipliziergliedes,
das einen Booth-Algorithmus verwendet.
Wie
es in 1 gezeigt ist,
weist ein allgemeines Binärkomplementmultiplizierglied
eine Kodiereinrichtung 1, eine Vorzeichenübertragungseinheit 2,
eine Schiebe- und Invertiereinheit 3, erste bis dritte
Teilprodukterzeuger 4, 5 und 6 und eine
Vorschauübertragaddiereinrichtung 7 auf.
Das in 1 gezeigte Multiplizierglied ist
ein Acht-mal-acht-Bit-Multiplizierglied, "A" ist als Multiplikand von acht Bit definiert
und "B" als Multiplikator von
acht Bit definiert.
Der
Operand "B" wird in die Kodiereinrichtung 1 eingegeben.
Die Kodiereinrichtung 1 kodiert ein Bitpaar des Operanden "B" und bildet Gruppen von umgeschlüsselten
Stellen (d.h. -2x, -1x, 0x, +1x und +2x), die dem Bitpaar entsprechen.
Eine
jeweilige umgeschlüsselte
Stelle der Gruppe aus den umgeschlüsselten Stellen wird zur Einheit 3 bzw.
einer der drei Teilprodukterzeugern 4, 5 und 6 übertragen.
Die Einheit 3 und die drei Teilprodukterzeuger 4, 5 und 6 führen die
entsprechende Operation bezüglich
dem Operanden "A" aus.
Die
sich ergebende Operation wird über
die Vorschauübertragaddiereinrichtung 7 nach
außen
abgegeben. Der Zweck der Vorzeichenübertragungseinheit 2 besteht
darin, das Vorzeichenbit des Multiplikanden zu erweitern.
Ein
solches Multiplizierglied führt
eine Multiplikation von vorzeichenbehafteten Größen, die als Binärkompliment
ausgedrückt
ist, aus, kann jedoch keine Multiplikation von vorzeichenlosen Größen ausführen.
Die
Aufgabe der vorliegenden Erfindung besteht darin, ein Multiplizierglied,
das eine Multiplikation von vorzeichenlosen Größen oder eine Multiplikation
von vorzeichenbehafteten Größen mit
einem modifizierten Booth-Algorithmus auswählend ausführt, für eine Multiplikationsoperation
vorzusehen, wobei das Multiplizierglied dazu in der Lage ist, das
Problem beim Stand der Technik zu lösen.
Um
diese Aufgabe zu lösen
weist die vorliegende Erfindung auf: eine Kodiereinrichtung, die
einen ersten Operanden aufnimmt, Bitpaare des Operanden kodiert
und eine umgeschlüsselte
Stelle ausbildet, die jedem Bitpaar entspricht, eine Schiebe- und
Invertiereinheit, die nach dem Ausführen von sowohl einer Schiebeoperation
als auch eine Invertieroperation eines zweiten Operanden durch die
umgeschlüsselte
Stelle, die von der Kodiereinrichtung übertragen wird, ein Zwischenergebnis
ausbildet, einen ersten Teilprodukterzeuger, der Operationsdaten
des zweiten Operanden entsprechend der umgeschlüsselten Stelle, die von der
Kodiereinrichtung übertragen
wird, ausbildet und der ein Teilprodukt erzeugt, indem die Operationsdaten
zum Teilprodukt durch die Schiebe- und Invertiereinheit addiert
werden, zweite bis vierte Teilprodukterzeuger, die mit dem Ausgangsanschluß des ersten
Teilprodukterzeugers aufeinanderfolgt verbunden sind und ein Teilprodukt erzeugen,
indem zwischen den Ausgangsdaten einer vorhergehenden Stufe und
den entsprechenden Operationsdaten eine Addition ausgeführt wird,
eine Vorzeichenübertragungseinheit,
die mit der Schiebe- und Invertiereinheit und dem ersten bis vierten
Teilprodukterzeuger verbunden ist, um ein Signal anzulegen, und
die eine Erweiterungsoperation eines Vorzeichenbits im zweiten Operanden
ausführt,
und eine Wahleinheit, die beur teilt, ob eine Multiplikation eine
Multiplikation von vorzeichenlosen Größen oder eine Multiplikation
von vorzeichenbehafteten Größen ist,
indem ein eingegebenes Wahlsignal verwendet wird, und die ein Erweiterungsbit der
zwei Operanden sowohl zu der Kodiereinrichtung als auch zur Schiebe-
und Invertiereinheit führt,
wenn die Multiplikation die Multiplikation von vorzeichenlosen Größen ist.
Das
Multiplizierglied der vorliegenden Erfindung weist ferner eine Vorschauübertragaddiereinrichtung bzw.
einen Addierer mit Übertragsvorausberechnung,
die/der mit dem Ausgangsanschluß des
vierten Teilprodukterzeugers verbunden ist, zum Erzeugen und Übertragen
eines Vorschauübertrages
auf.
1 ist
ein Blockschaltbild eines allgemeinen Binärkomplementmultipliziergliedes
des Standes der Technik und
2 ist
ein Blockschaltbild eines Multiplizierglieds zum auswählenden
Ausführen
einer Multiplikation von vorzeichenlosen Größen oder einer Multiplikation
vor vorzeichenbehafteten Größen entsprechend
einem bevorzugten Ausführungsbeispiel
der vorliegenden Erfindung.
Ein
bevorzugten Ausführungsbeispiel
der vorliegenden Erfindung wird beim Durcharbeiten der folgenden
detaillierten Beschreibung bei Betrachtung im Hinblick auf die beiliegenden
Zeichnungen deutlich.
Vor
der Erläuterung
des Multipliziergliedes entsprechend dem bevorzugten Ausführungsbeispiel
der vorliegenden Erfindung, das in 2 gezeigt
ist, erläutert
die folgende Beschreibung als erstes einen Multiplikationsoperationsprozeß, der auf
ein bevorzugtes Ausführungsbeispiel
der vorliegenden Erfindung angewendet wird, z.B. eine Acht-mal-acht-Bit-Multiplikation.
In
dem Fall, in dem ein Operand "A" und ein anderer
Operand "B" ist, erläutert der
folgende Ausdruck (-4) × (-2)
als vorzeichenbehaftete Zahl, vorzeichenlose Zahl und Binärzahl.
Der
vorstehende Multiplikationsprozeß von vorzeichenbehafteten
Größen ist
in der folgenden Tabelle A beschrieben. Tabelle
A
In
der vorstehenden Gleichung binden (-2x) und (0x) an der linken Seite
des mittleren Blocks, die jeweils umgeschlüsselte Stellen des Operanden "B" sind, drei Bits des Operanden "B" mit einem Bitpaar und bestimmen die
entsprechenden Vorzeichenstelle des Bitpaares. Tabelle
B
Es
wird sich auf Tabelle B bezogen, in der die Vorzeichenstelle 0x "0" zum Teilprodukt addiert, die Vorzeichenstelle
1x den Operanden "A" zum Teilprodukt
addiert, die Vorzeichenstelle 2x das Doppelte des Operanden "A" (d.h. 2 × A) zum Teilprodukt addiert,
die Vorzeichenstelle -1x den Operanden "A" vom
Teilprodukt subtrahiert und die Vorzeichenstelle -2x das Doppelte
des Operanden "A" (d.h. 2 × A) vom
Teilprodukt subtrahiert.
Dementsprechend
werden die umgeschlüsselten
Stellen (d.h. 0x, 0x, 0x, und -2x) aufeinanderfolgend aus einem
Bitpaar höherer
Ordnung des Operanden "B" erhalten. Um die
Operation "subtrahiere
-2 × A" zu erhalten, wird
in der Operation A invertiert, 1 addiert und um ein Bit nach links
verschoben.
Ferner
werden durch die vorstehende Multiplikation die vier Teilprodukte
erhalten, woraus sich eine Dezimalzahl 8 als Endproduktterm P ergibt.
Für die Multiplikation
von vorzeichenlosen Größen sollte
die Erweiterung um zwei Bits vor dem Eingangsvorzeichenbit mit "0" vorgenommen werden, die nachstehend
in Tabelle C gezeigt sind. Tabelle
C
Wie
es in Tabelle C gezeigt ist, wird die umgeschlüsselte Stelle durch das Bitpaar
des Operanden "B" erzeugt; die Anzahl
der Teilproduktterme wird im Vergleich mit der Multiplikation von
vorzeichenbehafteten Größen, bei
der die Anzahl der Teilprodukte 4 ist, 5. Das Bitpaar des Operanden "B" kann durch die vorstehende Multiplikation
als Beispiel erläutert
werden. Die vorstehende Multiplikation teilt den Operanden "B" (d.h. 0011111110) in fünf Bitpaare
(d.h. (001), (111), (111), (111), (100)). Bei jedem Bitpaar wird
ein Bit verwendet, das überdeckt
wird; wenn das letzte Bitpaar nur zwei Bits hat, sieht die Multiplikation
das dritte Bit im Bitpaar als "0" an.
Die
Multiplikation von vorzeichenlosen Größen hat im Vergleich zur allgemeinen
Multiplikation sowohl ein genaues Ergebnis als auch einen effektiven
Prozeß.
Die allgemeine Multiplikation ist nachstehend in Tabelle D gezeigt. Tabelle
D
Wie
es in Tabelle D gezeigt ist, multipliziert die allgemeine Multiplikation
zwischen zwei Operanden A und B 252 mit 254 als Dezimalzahl. Dementsprechend
ist das Endergebnis 64008 als Dezimalzahl.
Als
nächstes
wird unter Bezugnahme auf 2 nachstehend
ein Multiplizierglied zum auswählenden Ausführen einer
Multiplikation von vorzeichenlosen Größen oder einer Multiplikation
von vorzeichenbehafteten Größen entsprechend
einem bevorzugten Ausführungsbeispiel
der vorliegenden Erfindung beschrieben.
Das
Multiplizierglied entsprechend einem bevorzugten Ausführungsbeispiel
der vorliegenden Erfindung weist eine Wahleinheit 21, eine
Kodiereinrichtung 22, eine Vorzeichenübertragungseinheit 23,
eine Schiebe- und Invertiereinheit 24, erste bis vierte
Teilprodukterzeuger 25, 26, 27 und 28 und
eine Vorschauübertragaddiereinrichtung 29 auf.
Das
in 2 gezeigte Multiplizierglied ist ein Achtmal-acht-Bit-Multiplizierglied, "A" ist als Multiplikand von acht Bit definiert
und "B" ist als Multiplikator
von acht Bit definiert.
Der
Operand "B" wird in die Kodiereinrichtung 22 eingegeben.
Die Kodiereinrichtung 22 kodiert ein Bitpaar des Operanden "B" und bildet Gruppen von umgeschlüsselten
Stellen (d.h. -2x, -1x, 0x, +1x und +2x) aus, die dem Bitpaar entsprechen.
Das Verfahren zum Ausbilden der Vorzeichenstellen ist mit dem der Acht-mal-acht-Bit-Multiplikation
identisch.
Eine
jeweilige Vorzeichenstelle der Gruppen von Vorzeichenstellen wird
zur Einheit 24 bzw. einer der vier Teilprodukterzeuger 25, 26, 27 und 28 übertragen.
Die Einheit 24 und die vier Teilprodukterzeuger 25, 26, 27 und 28 füh ren die
bezüglich
dem Operand "A" entsprechende Operationen
aus.
Die
Schiebe- und Invertiereinheit 24 und die ersten bis vierten
Teilprodukterzeuger 25, 26, 27 und 28 sind
aufeinanderfolgend miteinander verbunden. In Betrieb werden sowohl
eine Summe als auch ein Übertrag einen
vorgehenden Stufe zur nächsten
Stufe übertragen.
Dementsprechend addiert die vorliegende Stufe die Operationsdaten
der umgeschlüsselten
Stelle zum Teilprodukt der vorgehenden Stufe.
Bezüglich einer
Operation, die den entsprechenden umgeschlüsselten Stellen entspricht,
addiert in dem Fall, in dem die umgeschlüsselte Stelle -2x ist, um den
Vorgang "subtrahiere
-2 × A" vom Operand "A" zu erhalten, die Operation Daten, die
durch das Invertieren von A, das Addieren von 1 und die Linksverschiebung um
ein Bit erhalten wurden, zum Teilprodukt der vorgehenden Stufe.
In
dem Fall, in dem die Vorzeichenstelle -1x ist, addiert die Operation,
um die Operation "subtrahiere -1 × A" vom Operanden "A" zu erhalten, die Daten, die durch das
Invertieren von A und das Addieren von 1 erhalten wurden, zum Teilprodukt
der vorgehenden Stufe.
In
dem Fall, in dem die Vorzeichenstelle 0x ist, wird zum Teilprodukt
der vorhergehenden Stufe "0" addiert; es besteht
keine reale Operationswirkung der Vorzeichenstelle 0x.
In
dem Fall, in dem die Vorzeichenstelle +1x ist, wird der Operand "A" zum Teilprodukt der vorhergehenden
Stufe addiert.
In
dem Fall, in dem die Vorzeichenstelle +2x ist, werden, um die Operation "addiere +2 × A" vom Operanden "A" zu erhalten, die Daten, die durch das
Verschieben des Operan den "A" um ein Bit nach
links erhalten werden, zum Teilprodukt der vorgehenden Stufe addiert.
Die
vorstehenden sich ergebenden Operationen werden über die Vorschauübertragaddiereinrichtung 29 nach
außen
abgegeben. Die Signalübertragungseinheit 23 ist
mit der Schiebe- und Invertiereinheit 24 und den ersten
bis vierten Teilprodukterzeugern 25, 26, 27 und 28 für eine Signalübertragung
verbunden. Als Ergebnis führt
die Signalübertragungseinheit 23 sowohl
das Übertragen
als auch das Aufnehmen des Vorzeichens aus.
Die
Vorschauübertragaddiereinrichtung 29 ist
mit dem Ausgangsanschluß des
vierten Teilprodukterzeugers 28 verbunden und erzeugt und überträgt einen
Vorschauübertrag
sowohl in der Summe als auch im Übertrag,
die durch den vierten Teilprodukterzeuger 28 ausgegeben
werden, wodurch die Operationsgeschwindigkeit der Multiplikation
von vorzeichenbehafteten Größen erhöht wird.
Die
Multiplikation von vorzeichenlosen Größen wird durch ein Signal sc1
ausgeführt,
das in die Wahleinheit 21 eingegeben wird. Wenn die Multiplikation
von vorzeichenlosen Größen durch
das Signal sc1 ausgewählt
ist, gibt die Wahleinheit 21 Bits (1) und (2), die um das
Vorzeichenbit erweitert sind, sowohl zur Kodiereinrichtung 22 als
auch zur Schiebe- und Invertiereinheit 24 aus.
Die
anschließenden
Operationen der Multiplikation von vorzeichenlosen Größen sind
mit denen der Multiplikation von vorzeichenbehafteten Größen identisch.
Gemäß Vorbeschreibung
kann entsprechend dem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung
die vorliegende Erfindung ein Multiplizierglied, das eine Multiplikation
von vorzeichenlosen Größen oder
einer Multiplikation von vorzeichenbehafteten Größen mit einem Booth-Algorithmus auswählend ausführt, für eine Multiplikationsoperation
vorsehen.
Insbesondere
gibt die vorliegende Erfindung das erweiterte Bit über die
Wahleinheit in die Multiplikation von vorzeichenlosen Größen ein.
Dementsprechend kann die vorliegende Erfindung nicht nur eine Multiplikation
von vorzeichenbehafteten Größen sondern
auch eine Multiplikation von vorzeichenlosen Größen ausführen. Da diese Erfindung ferner
eine einfache Schaltungsstruktur hat, verringert diese nicht die
Operationsverarbeitungsgeschwindigkeit und nimmt bei der Herstellung
des integrierten Schaltkreises einen relativ geringen Bereich ein.
Es
wird ein Multiplizierglied, das eine Multiplikation von vorzeichenlosen
Größen oder
eine Multiplikation von vorzeichenbehafteten Größen mit einem modifizierten
Booth-Algorithmus
auswählend
ausführt,
für eine
Multiplikationsoperation beschrieben. Dieses weist eine Wahleinheit,
die an den jeweiligen Eingangsanschlüssen ein Erweiterungsbit vorsieht,
um eine Multiplikation von vorzeichenlosen Größen bei einer Multiplikation
von vorzeichenbehafteten Größen, die
durch ein Binärkomplementformat
ausgedrückt
ist, auszuführen, und
einen Teilprodukterzeuger auf, der eine Vorzeichenstellenoperation
ausführt,
die um das Erweiterungsbit erhöht
ist. Dieses weist vorzugsweise eine Vorschauübertragaddiereinrichtung auf,
die einen Vorschauübertrag
erzeugt und überträgt.