DE10105945A1 - Linearsummierungsmultipliziererarrayimplementie-rung sowohl zur vorzeichenbehafteten als auch zur vorzeichenlosen Multipliaktion - Google Patents
Linearsummierungsmultipliziererarrayimplementie-rung sowohl zur vorzeichenbehafteten als auch zur vorzeichenlosen MultipliaktionInfo
- Publication number
- DE10105945A1 DE10105945A1 DE10105945A DE10105945A DE10105945A1 DE 10105945 A1 DE10105945 A1 DE 10105945A1 DE 10105945 A DE10105945 A DE 10105945A DE 10105945 A DE10105945 A DE 10105945A DE 10105945 A1 DE10105945 A1 DE 10105945A1
- Authority
- DE
- Germany
- Prior art keywords
- multiplier
- operands
- operand
- multiplication
- array
- 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
- G06F7/523—Multiplying only
- G06F7/53—Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
- G06F7/5318—Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel with column wise addition of partial products, e.g. using Wallace tree, Dadda counters
-
- 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/49994—Sign extension
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
Es werden ein System und ein Verfahren offenbart, die einen Multiplizierer mit einem Linearsummierungsarray liefern, das auf eine Art und Weise implementiert ist, die ermöglicht, daß sowohl eine vorzeichenbehaftete als auch eine vorzeichenlose Mulitpikation durchgeführt werden kann. Ein bevorzugtes Ausführungsbeispiel verwendet einen modifizierten Baugh-Wooley-Algorithmus, um ein optimales Gerade-und-Ungerade-Linearsummierungsarray zum Durchführen von sowohl einer vorzeichenbehafteten als auch einer vorzeichenlosen Hochgeschwindigkeitsmultiplikation zu ermöglichen. Das heißt, daß ein bevorzugtes Ausführungsbeispiel ein Linearsummierungsarray ermöglicht, das kleiner in Größe und einfacher im Entwurf ist als die Multipliziererarrays, die früher typischerweise für die vorzeichenbehaftete Multiplikation implementiert wurden. Unter der Annahme beispielsweise, daß eine 16-Bit-mal-16-Bit-Multiplikation durchgeführt wird, verwendet ein bevorzugtes Ausführungsbeispiel ein Linearsummierungsarray, das 16 mal 14 groß ist, und nicht, wie die herkömmlichen Multiplizierarrays, die wegen der zusätzlichen Vorzeichenerweiterungsspalten, die bei herkömlichen Entwürfen verwendet werden, typischerweise 22 mal 14 groß sind.
Description
Diese Erfindung bezieht sich allgemein auf Multiplizierer
und insbesondere auf einen Multiplizierer, der ein Linear
summierungsarray zum Durchführen sowohl einer vorzeichenbe
hafteten als auch einer vorzeichenlosen Multiplikation unter
Verwendung eines modifizierten Baugh-Wooley-Algorithmus
aufweist.
Eine Schaltungsanordnung zum Multiplizieren zweier oder mehr
Operanden ist üblicherweise in vielen elektronischen Schal
tungen des Stands der Technik implementiert. Mikroprozesso
ren umfassen beispielsweise typischerweise einige Multipli
ziererschaltungsanordnungstypen. Bei herkömmlichen Multipli
zierern ist üblicherweise der wohlbekannte "Booth"-
Codieralgorithmus implementiert, um eine vorzeichenbehaftete
und vorzeichenlose Multiplikation durchzuführen. Der Booth-
Codieralgorithmus ist jedoch eine dynamische Lösung. Hoch
geschwindigkeitsmultiplizierer sind üblicherweise mit einer
dynamischen "Booth"-Codierschaltungsanordnung implementiert,
um die Hochfrequenzziele (wie z. B. für einen 1-GHz-
Mikroprozessor) zu erfüllen. Allgemein verbraucht ein dyna
mischer Multiplizierer mehr Leistung, fügt erhebliche Takt
last hinzu und erfordert viel mehr Entwurfsaufwand, um die
elektrische Zuverlässigkeit zu implementieren und zu über
prüfen, als dies für einen statischen Multipliziererentwurf
erforderlich ist. Der dynamische Booth-Codieralgorithmus
herkömmlicher Multiplizierer erfordert allgemein, daß eine
komplexe Multiplexer- ("MUX"-) Struktur implementiert ist,
um die Eingangsoperanden zu codieren, bevor die Partialpro
dukte der Operanden ein Multiplizierarray bilden. Die
"Booth"-Codier-MUXes werden verwendet, um die Anzahl von
Partialprodukten für den Multiplizierer zu minimieren.
Zusätzlich sind alle Codierleitungen von herkömmlichen
Booth-Codier-Multiplizierern typischerweise sehr komplex und
sehr belastet. Ein Multiplizierer, der einen Booth-
Codieralgorithmus verwendet, ist eine wohlbekannte Standard
implementierung für herkömmliche Multiplizierer und wird
deshalb im folgenden lediglich kurz erörtert.
Bei dem Booth-Codieralgorithmus wird im allgemeinen ein
Multipliziererarray verwendet, um die Multiplikation durch
zuführen. Als ein einfaches Beispiel ist in Fig. 1 ein
Multiplizierarray 40 gezeigt, das sich aus der Multiplikati
on von Operanden X[3:0] und Y[3:0] ergibt. Wie es gezeigt
ist, umfaßt das Multiplizierarray von Fig. 1 die Partialpro
duktelemente 42 der Operanden und eine Vorzeichenerweiterung
44 für die vorzeichenbehaftete Multiplikation. Wie es in der
Technik wohlbekannt ist, umfaßt ein Multiplizierer typi
scherweise eine Schaltungsanordnung, um jedes Element 42 des
Multiplizierarrays 40, wie z. B. das Element X0.Y0, einer
UND-Verknüpfung zu unterziehen, um ein Partialprodukt (z. B.
das Produkt von X0.Y0) zu erzeugen. Die Partialprodukte des
Multiplizierarrays 40 werden daraufhin in ein CSA-Array
eingegeben, das in dem Multiplizierer umfaßt ist, um die
Endergebnisse (d. h. die Endsummenausgabe und die Endüber
tragausgabe) zu erzeugen. Die Endausgabe für die Multiplika
tion (d. h. das Produkt der zwei Operanden) wird daraufhin
erzeugt, indem die Endsumme und der Endübertrag in einem
Addierer summiert werden. Der Booth-Algorithmus wird bei
herkömmlichen Multiplizierern üblicherweise verwendet, um
eine Hochgeschwindigkeitsparallelmultiplikation zu erzielen.
Ein Linearsummierungsmultiplizierer verwendet ein CSA-Array
direkt, ohne eine Booth-Codierung. Wie es beispielsweise in
Fig. 2A gezeigt ist, können UND-Gatter, wie z. B. UND-Gatter
32, 34 und 36, in einem Multiplizierer umfaßt sein, um
jeweils ein Eingangsbit von X[3:0] und von Y[3:0] zu empfan
gen, um ein Element des Multipliziererarrays 40 als Ein
gangssignal zu erzeugen. Das UND-Gatter 36 kann beispiels
weise X2 und Y0 als Eingangssignal empfangen, um das Parti
alprodukt für das Element X2.Y0 des Multiplizierarrays 40
als sein Ausgangssignal zu erzeugen. Dementsprechend kann
das UND-Gatter 34 X1 und Y1 als ein Eingangssignal empfangen,
um das Partialprodukt für das Element X1.Y1 des Multipli
zierarrays 40 als sein Ausgangssignal zu erzeugen. Dement
sprechend kann das UND-Gatter 32 X0 und Y2 als Eingangssignal
empfangen, um das Partialprodukt für das Element X0.Y2 des
Multiplizierarrays 40 als sein Ausgangssignal zu erzeugen.
Natürlich können in einem Multiplizierer zusätzliche UND-
Gatter umfaßt sein, um die Partialprodukte für alle Elemente
des Multiplizierarrays 40 auf entsprechende Art und Weise zu
erzeugen. Wie es in Fig. 2A gezeigt ist, werden die Partial
produkte einem CSA-Array des Multiplizierers, die CSAs, wie
z. B. den CSA 38, umfassen, zugeführt, um die Partialproduk
te zu summieren, um die Endsumme und den Endübertrag zu
erzeugen. Sobald die Endsumme und der Endübertrag durch das
CSA-Array erzeugt wurden, werden dieselben addiert, um das
Endprodukt zu erzeugen, das durch den Multiplizierer ausge
geben werden soll. Wie es beispielsweise in Fig. 2B gezeigt
ist, besteht ein Linearsummierungsmultiplizierer aus zwei
Komponenten, d. h. einem Multiplizier-CSA-Array 200 und
einem Addierer 202. Bei einem solchen Linearsummierungsmul
tiplizierer erzeugt das Multiplizier-CSA-Array 200 eine
Endsumme und einen Endübertrag, die in dem Addierer 202
summiert werden. Bei einem bevorzugten Ausführungsbeispiel
gibt der Addierer 202 das Endergebnis für die Multiplikation
der Operanden aus.
Andererseits ist in Fig. 2C ein Beispiel eines Booth-
Codierungsmultiplizierers gezeigt. Fig. 2C stellt einen 16-
Bit-mal-16-Bit-Booth-Codierungsmultiplizierer dar, der zwei
16-Bit-Operanden (gezeigt als X[15:0] und Y[15:0]) empfängt
und das Produkt der zwei Operanden ausgibt. Der exemplari
sche Booth-Codierungsmultiplizierer von Fig. 2C besteht aus
drei Komponenten: Booth-Codierungs-MUXes 270, um die Anzahl
von Partialproduktausdrücken zu minimieren, einem CSA-Array
272 und einem Addierer 274, um das Endergebnis für die
Multiplikationsoperation aufzusummieren. Alle drei Komponen
ten sind mit dynamischen Schaltungen implementiert. Um
beispielsweise eine 16-Bit-mal-16-Bit-Multiplikation (d. h.
das Multiplizieren zweier 16-Bit-Operanden) durchzuführen,
verwendet ein herkömmlicher Multiplizierer typischerweise
eine dynamische Übertragserhaltungsaddierer- (CSA-; CSA =
Carray-Save-Adder) Schaltungsanordnung, wie z. B. diejenige
von Fig. 2A, mit dem Booth-Codierungsalgorithmus. Bei der
herkömmlichen dynamischen Booth-Codierungslösung ergibt die
16-Bit-mal-16-Bit-Multiplikation ein Multiplizierarray mit
sechs Spalten von CSA für die Vorzeichenerweiterung (z. B.
Vorzeichenerweiterung 44 von Fig. 1) zusätzlich zu den 16
Spalten von CSA für die Partialproduktelemente (z. B. die
Elemente 42 von Fig. 1) bei dem Multiplizierarray, wobei
sich insgesamt 22 Spalten für das gesamte Multiplizierarray
ergeben. Es wird darauf hingewiesen, daß die resultierenden
22 Spalten des Multiplizierarrays nicht dem 16-Bit-
Eingangssignal eines Operanden entsprechen (oder mit demsel
ben "übereinstimmen"). Dies führt zu einem unterschiedlichen
Layoutabstand für die CSA als demjenigen für die Eingangs
schaltungsanordnung und ergibt eine sehr komplexe Führung in
dem Layout für die Eingangsoperandensignale.
Die herkömmliche dynamische Multipliziererschaltungsanord
nung, die die Booth-Codierung verwendet, ist aus mehreren
Gründen problematisch. Zunächst ist bei dem Multiplizierar
ray eine erhebliche Führungskomplexität erforderlich, da das
resultierende Multiplizierarray eine größere Anzahl von
Spalten als die Anzahl von Bits bei den Operanden ergibt (d. h.
da zusätzliche Spalten für die Vorzeichenerweiterung
erforderlich sind). Darüber hinaus verbraucht die dynamische
Schaltungsanordnungslösung solcher herkömmlicher Multipli
zierer einen unerwünscht hohen Betrag an Leistung (aufgrund
der dynamischen Schaltung und des dynamischen Takts) und
erfordert eine unerwünscht gründliche Schaltungsüberprüfung,
um sicherzustellen, daß die Schaltungsanordnung korrekt
arbeitet. Ferner verbraucht eine solche Multipliziererschal
tungsanordnung aufgrund der relativ hohen Anzahl von Kompo
nenten, die bei einer herkömmlichen dynamischen Multipli
ziererschaltungsanordnung erforderlich sind, einen uner
wünscht hohen Betrag an Oberflächenbereich und erfordert
unerwünscht hohe Kosten, um implementiert zu werden.
Es ist ferner ein weiterer Algorithmus, der als der "Baugh-
Wooley"-Algorithmus bekannt ist, im Stand der Technik be
kannt und ist überlicherweise bei Multiplizierern zum Durch
führen einer vorzeichenbehafteten Multiplikation implemen
tiert. Die Baugh-Wooley-Algorithmusimplementierung verwendet
typischerweise ein Linearsummierungsarray, das weniger
Komponenten und eine geringere Komplexität als diejenige von
Multiplizierern ergibt, die den Booth-Codierungsalgorithmus
verwenden. Solche herkömmlichen Multiplizierer, die ein
Linearsummierungsarray implementieren, das den Baugh-Wooley-
Algorithmus verwendet, ermöglichen jedoch lediglich die
Durchführung einer vorzeichenbehafteten Multiplikation.
Dementsprechend sind solche Multipliziererimplementierungen
dahingehend sehr eingeschränkt, daß dieselben nicht in der
Lage sind, eine vorzeichenlose Multiplikation durchzuführen.
Die Aufgabe der vorliegenden Erfindung besteht darin, einen
Multiplizierer, ein System und ein Verfahren zum Durchführen
einer Multiplikation zu schaffen, mit denen sowohl eine
vorzeichenbehaftete als auch vorzeichenlose Multiplikation
mit weniger Aufwand erzielt werden kann.
Diese Aufgabe wird durch einen Multiplizierer gemäß Anspruch
1, ein System gemäß Anspruch 12 und ein Verfahren gemäß
Anspruch 17 gelöst.
Im Hinblick auf das im vorhergehenden Erwähnte besteht ein
Wunsch nach einem Hochgeschwindigkeitsmultiplizierer, der
ein Linearsummierungsarray zum Durchführen sowohl einer
vorzeichenbehafteten als auch vorzeichenlosen Multiplikation
aufweist. Es existiert ferner ein Wunsch nach einem Mul
tiplizierer mit einem statischen Entwurf. Es existiert ein
weiterer Wunsch nach einem Multiplizierer, der den Grad an
Schaltungsanordnungs- und Führungs-Komplexität von herkömm
lichen Multiplizierern reduziert.
Diese und weitere Aufgaben, Merkmale und technischen Vortei
le werden durch ein System und ein Verfahren erzielt, die
einen Multiplizierer liefern, der ein Linearsummierungsarray
aufweist, das auf eine Art und Weise implementiert ist, die
es ermöglicht, daß sowohl eine vorzeichenbehaftete als auch
vorzeichenlose Multiplikation durchgeführt werden. Ein
bevorzugtes Ausführungsbeispiel verwendet einen modifizier
ten Baugh-Wooley-Algorithmus, um ein optimales Gerade- und
Ungerade-Linearsummierungsarray zum Durchführen von sowohl
einer vorzeichenbehafteten als auch vorzeichenlosen Hochge
schwindigkeitsmultiplikation zu ermöglichen. Das heißt, daß
ein bevorzugtes Ausführungsbeispiel ein Linearsummierungsar
ray ermöglicht, das kleiner an Größe und einfacher im Ent
wurf ist als die Multiplizierarrays, die im Stand der Tech
nik typischerweise für die vorzeichenbehaftete Multiplikati
on implementiert sind. Angenommen, beispielsweise, eine 16-
Bit-mal-16-Bit-Multiplikation wird durchgeführt, verwendet
ein bevorzugtes Ausführungsbeispiel ein Linearsummierungsar
ray, das 16 mal 14 groß ist, und nicht, wie die herkömmli
chen Multiplizierarrays, die wegen den zusätzlichen Vorzei
chenerweiterungsspalten, die bei herkömmlichen Entwürfen
verwendet werden, typischerweise 22 mal 14 groß sind.
Folglich passen die resultierenden Spalten des Multiplizier
arrays eines bevorzugten Ausführungsbeispiels exakt zu dem
Eingangsabstand der Operanden, was die Anzahl von Schal
tungsanordnungskomponenten, die erforderlich sind, um das
Multiplizierarray zu implementieren, sowie die Komplexität
zur Führung innerhalb des Multiplizierarrays dramatisch
reduziert. Zusätzlich implementiert ein bevorzugtes Ausfüh
rungsbeispiel einen statischen Entwurf zum Durchführen einer
vorzeichenbehafteten und vorzeichenlosen Multiplikation, was
weiterhin die Anzahl von Komponenten, die Komplexität, die
Kosten und den Leistungsverbrauch des Multiplizierers redu
ziert. Der modifizierte Baugh-Wooley-Algorithmus eines
bevorzugten Ausführungsbeispiels übersetzt einen vorzeichen
behafteten Operanden in einen vorzeichenlosen Operanden, um
die Vorzeichenerweiterung für die Multiplikation sehr zu
vereinfachen, und um ein relativ kleines Multiplizierarray
zu ermöglichen, das keine Vorzeichenerweiterungsspalten
aufweist, um zur Durchführung einer vorzeichenbehafteten
Multiplikation verwendet zu werden. Der modifizierte Baugh-
Wooley-Algorithmus eines bevorzugten Ausführungsbeispiels
ermöglicht ferner, daß der Multiplizierer eine vorzeichen
lose Multiplikation durchführt.
Es wird darauf hingewiesen, daß ein technischer Vorteil
eines Aspekts der vorliegenden Erfindung darin besteht, daß
ein Multiplizierer geliefert wird, der ein Linearsummie
rungsarray zum Durchführen von sowohl einer vorzeichenbehaf
teten als auch einer vorzeichenlosen Multiplikation auf
weist. Insbesondere verwendet ein bevorzugtes Ausführungs
beispiel den Baugh-Wooley-Algorithmus, um sowohl eine vor
zeichenbehaftete als auch eine vorzeichenlose Multiplikation
durchzuführen. Darüber hinaus liefert ein bevorzugtes Aus
führungsbeispiel einen statischen Entwurf zum Durchführen
von sowohl einer vorzeichenbehafteten als auch einer vorzei
chenlosen Multiplikation. Ein weiterer Vorteil eines Aspekts
der vorliegenden Erfindung besteht darin, daß eine lineare
Summierung mit einer Gerade-Und-Ungerade-Struktur für sowohl
eine vorzeichenbehaftete als auch eine vorzeichenlose Multi
plikation verwendet wird, was eine statische Struktur ermög
licht, die viel einfacher als die herkömmlichen Booth-
Codierungsstrukturen zum Durchführen einer vorzeichenbehaf
teten Multiplikation ist. Die lineare Summierung mit einer
Gerade-Und-Ungerade-Struktur ermöglicht einen statischen
Hochgeschwindigkeitsmultipliziererentwurf, der der dynami
schen Booth-Codierungsmultiplizierergeschwindigkeit ähnlich
ist. Folglich besteht ein Vorteil eines Aspekts der vorlie
genden Erfindung darin, daß dieselbe einen viel einfacheren
Multipliziererentwurf mit weniger Fläche, weniger Kosten und
weniger Leistung ermöglicht, als dies für herkömmliche
Multiplizierer üblicherweise erforderlich ist, die eine
vorzeichenbehaftete und vorzeichenlose Multiplikation durch
führen. Folglich besteht ein Vorteil eines Aspekts der
vorliegenden Erfindung darin, daß ein Multiplizierer offen
bart wird, der ein Multiplikationsarray aufweist, das weni
ger Schaltungsanordnungs- und weniger Führungskomplexität
erfordert, als dies für eine vorzeichenbehaftete Multiplika
tion bei herkömmlichen Multiplizierern erforderlich ist.
Darüber hinaus besteht ein Vorteil eines Aspekts der vorlie
genden Erfindung darin, daß ein statischer Entwurf für einen
Multiplizierer offenbart wird, der die Leistung der Schal
tungsanordnung reduzieren kann. Die kapazitive Stromlast
eines bevorzugten Ausführungsbeispiels kann aufgrund eines
kleineren und einfacheren Entwurfs um 60% oder mehr unter
diejenige reduziert werden, die typischerweise bei herkömm
lichen Multiplizierern erforderlich ist. Zusätzlich besteht
ein weiterer Vorteil eines Aspekts der vorliegenden Erfin
dung darin, daß ein Multiplizierer offenbart wird, der eine
Hochgeschwindigkeitsmultiplikation durchführen kann, während
ein Multiplizierer geliefert wird, der kleiner, weniger
komplex und zuverlässiger als herkömmliche Multiplizierer
ist. Der Multiplizierer eines am meisten bevorzugten Ausfüh
rungsbeispiels ist beispielsweise mit einer Frequenz von 1 Giga
hertz oder mehr betreibbar.
Die vorhergehende Beschreibung hat die Merkmale und techni
schen Vorteile der vorliegenden Erfindung eher grob erläu
tert, damit die folgende detaillierte Beschreibung der
Erfindung besser verstanden werden kann. Zusätzliche Merkma
le und Vorteile der Erfindung, die den Gegenstand der An
sprüche der Erfindung bilden, werden im folgenden beschrie
ben. Von Fachleuten sollte erkannt werden, daß die offenbar
te Konzeption und das offenbarte spezifische Ausführungsbei
spiel ohne weiteres als eine Basis zum Modifizieren oder
Entwerfen weiterer Strukturen zum Ausführen der selben
Zwecke der vorliegenden Erfindung verwendet werden können.
Es wird darauf hingewiesen, daß solche äquivalenten Aufbau
ten den Schutzbereich der Erfindung, wie er in den beilie
genden Ansprüchen definiert ist, nicht verlassen.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung
werden nachfolgend bezugnehmend auf die beiliegenden Zeich
nungen näher erläutert. Es zeigen:
Fig. 1 ein exemplarisches Multiplizierarray, das sich
aus der Multiplikation von Operanden X[3:0] und
Y[3:0] ergibt;
Fig. 2A eine Schaltungsanordnung zum Erzeugen der Par
tialprodukte eines Multiplizierarrays und Einge
ben solcher Partialprodukte in ein CSA-Array, um
eine Endsumme und einen Endübertrag zu erzeugen;
Fig. 2B eine Schaltungsanordnung zum Erzeugen eines Aus
gangssignals eines Multiplizierers;
Fig. 2C eine Schaltungsanordnung eines herkömmlichen
Multiplizierers, der den Booth-Codierungsalgo
rithmus verwendet;
Fig. 3A ein Beispiel von Partialprodukten bei einem Multi
plizierarray für eine 16-Bit-mal-16-Bit-Multi
plikation;
Fig. 3B ein exemplarisches CSA-Array, das bei einem bevor
zugten Ausführungsbeispiel implementiert sein
kann;
Fig. 3C eine physische Position in einem Layout der CSA-
Arrayanordnung eines bevorzugten Ausführungsbei
spiels;
Fig. 4 Gleichungen für einen modifizierten Baugh-Wooley-
Algorithmus eines bevorzugten Ausführungsbei
spiels, der sowohl eine vorzeichenbehaftete als
auch eine vorzeichenlose Multiplikation ermög
licht;
Fig. 5 ein Multiplizierarray, das bei einem bevorzugten
Ausführungsbeispiel verwendet wird, um sowohl
eine vorzeichenbehaftete als auch eine vorzei
chenlose Multiplikation zu ermöglichen;
Fig. 6 detaillierter die Implementierung eines Eckbits
des Multiplizierarrays von Fig. 5;
Fig. 7A ein bevorzugtes Ausführungsbeispiel zum Erzeugen
von Partialprodukten, die in das CSA-Array in
eine Spalte des exemplarischen Multiplizierarrays
von Fig. 5 eingegeben werden sollen;
Fig. 7B ein bevorzugtes Ausführungsbeispiel zum Erzeugen
von Partialprodukten, die in das CSA-Array in
einer Zeile des exemplarischen Multiplizierarrays
von Fig. 5 eingegeben werden sollen;
Fig. 7C ein bevorzugtes Ausführungsbeispiel zum Erzeugen
eines Partialprodukts, das in das CSA-Array des
Bereichs 502 des exemplarischen Multiplizierar
rays von Fig. 5 eingegeben werden soll;
Fig. 7D ein bevorzugtes Ausführungsbeispiel zum Erzeugen
eines Bits eines Bereichs 508 des exemplarischen
Multiplizierarrays von Fig. 5;
Fig. 8 eine exemplarische Übersicht der tatsächlichen
physischen Implementierung des Multiplizierers
eines bevorzugten Ausführungsbeispiels;
Fig. 9 eine exemplarische parallele Implementierung von
vier 16-mal-16- Multiplizierarrays, bei dem Mul
tiplizierer eines am meisten bevorzugten Ausfüh
rungsbeispiels; und
Fig. 10 ein exemplarisches Zeiteinteilungsdiagramm eines
Zweitaktzyklus-Multiplizierers eines am meisten
bevorzugten Ausführungsbeispiels.
Ein bevorzugtes Ausführungsbeispiel der vorliegenden Erfin
dung implementiert ein Linearsummierungsarray mit einer
Gerade-Und-Ungerade-Struktur bei einem Multiplizierer, um
sowohl eine vorzeichenbehaftete als auch vorzeichenlose
Multiplikation durchzuführen. Wie es im vorhergehenden
beschrieben wurde, ist die dynamische Booth-
Schaltungsanordnung typischerweise in herkömmlichen Hoch
geschwindigkeits- (z. B. Hochfrequenz-CPU-) Multiplizierern
implementiert. Bei einem bevorzugten Ausführungsbeispiel
wird bei dem Multiplizierer der Baugh-Wooley-Algorithmus
verwendet und auf eine Art und Weise implementiert, um
sowohl eine vorzeichenbehaftete als auch eine vorzeichenlose
Multiplikation durchzuführen. Zusätzlich ergibt ein bevor
zugtes Ausführungsbeispiel ein Multiplizierarray, das der
Größe der Operanden näher entspricht, was den Grad an Schal
tungsanordnung, die implementiert werden muß, und die Kom
plexität beim Durchführen der Führung innerhalb des Multipli
zierarrays gegenüber typischen herkömmlichen Implementie
rungen reduziert.
Sich den Fig. 3A und 3B zuwendend wird ein exemplarisches
CSA-Array 300 beschrieben, das bei einem bevorzugten Ausfüh
rungsbeispiel implementiert sein kann. Als ein Beispiel sei
angenommen, daß eine Multiplikation für zwei 16-Bit-
Operanden (d. h. X[15:0] und Y[15:0]) durchgeführt wird. Wie
es in Fig. 3B gezeigt ist, werden bei einem am meisten
bevorzugten Ausführungsbeispiel die Partialprodukte der
gleichen Wertigkeit in das CSA-Array 300 eingegeben, von dem
zur Vereinfachung lediglich ein Abschnitt dargestellt ist.
Ein am meisten bevorzugtes Ausführungsbeispiel implementiert
eine sogenannte Gerade-und-Ungerade-Schaltungstechnik, die
im wesentlichen ein paralleles Schema zum Addieren von Bits
gleicher Wertigkeit der Partialprodukte für X.Y ist. Fig. 3A
zeigt die Partialprodukte in der Reihenfolge der Wertig
keit. Die Partialprodukte in der selben vertikalen Spalte
weisen die selbe Wertigkeit auf. Fig. 3B zeigt die Logik und
die Verbindungen zwischen den CSA-Zellen. Die Gerade-und-
Ungerade-Struktur eines bevorzugten Ausführungsbeispiels
verdoppelt im wesentlichen die Geschwindigkeit des Linear
summierungsmultiplizierers (d. h. verringert die Zeitdauer,
die für seine Operation erforderlich ist, um die Hälfte),
verglichen zu dem üblichen seriellen CSA-Array. Fig. 3C
zeigt die physische Position in einem Layout der CSA-
Arrayanordnung eines bevorzugten Ausführungsbeispiels. Die
CSA-Zellen der selben Wertigkeit verlaufen unter 45 Grad von
der Links-Oben-Zu-Unten-Rechts-Diagonallinie, wobei die
Führung für die Verbindungen des CSA-Arrays in der gleichen
Richtung verlaufen. Dies kann die Multiplikation von 16-Bit-
mal-16-Bit-Operanden in dem Layout in 16 mal 14 CSA-Zellen
physisch einpassen.
Fig. 3B liefert ein einfaches Beispiel eines Linearsummie
rungs-CSA-Arrays mit einer Gerade-Und-Ungerade-Struktur für
die Wertigkeit 12. Wie es in Fig. 3B gezeigt ist, nimmt bei
der 16-Bit-mal-16-Bit-Multiplikation (z. B. X[15:0].
Y[15:0]) der erste CSA in der geraden Reihe (gezeigt als CSA
310) die ersten drei Zeilen von Partialprodukten mit Wertig
keit 12 (d. h. X12.Y0, X11.Y1 und X10.Y2) als drei Eingangssig
nale entgegen. Der zweite CSA in dem Layout von Fig. 3B
befindet sich in der ungeraden Zeile (gezeigt als CSA 312)
in der schematischen Logikdarstellung, wobei derselbe die
nächsten drei Zeilen von Partialprodukten mit Wertigkeit 12
(d. h. X9.Y3, X8.Y4 und X7.Y5) als drei Eingangssignale entge
gen nimmt. Der CSA 310 addiert die drei Eingangssignale, um
eine Summe S1 und einen Übertrag C1 zu erzeugen. Die Summe S1
wird zusammen mit einem Übertrag C2 der von einem CSA einer
vorhergehenden Wertigkeit (d. h. Wertigkeit 11) erzeugt
wird, und einem Partialprodukt in der 7. Reihe (d. h. X6.Y6)
in einen CSA 314 eingegeben. Dementsprechend addiert der CSA
312 drei Eingangssignale, um eine Summe S3 und einen Über
trag C3 zu erzeugen. Die Summe S3 wird zusammen mit einem
Übertrag C4 von einem CSA einer Wertigkeit 11 in der ungera
den Zeile (physisches Layout) und unter Addition eines
Partialprodukts in der 8. Reihe (X5.Y7) in ein CSA 316 ein
gegeben. Das CSA 314 erzeugt eine Summe S5 und einen Über
trag C5. Die Summe S5 wird zusammen mit einem Übertrag C6 der
von dem vorhergehenden CSA in der geraden Reihe (d. h. mit
Wertigkeit 11) erzeugt wird, und einem neuen Partialprodukt
in der 9. Reihe (d. h. X4.Y8) in einen CSA 318 eingegeben.
Dementsprechend erzeugt der CSA 316 (in der ungeraden Reihe)
eine Summe S7 und einen Übertrag C7. Die Summe S7 wird zusam
men mit einem Übertrag C8, der von der vorhergehenden unge
raden Reihe (d. h. mit Wertigkeit 11) erzeugt wird, und
einem neuen Partialprodukt in der 10. Reihe (d. h. X3.Y9) in
das CSA 320 eingegeben. Es wird darauf hingewiesen, daß das
CSA-Array 300 weitere CSAs (nicht gezeigt) aufweist, die auf
eine ähnliche Art und Weise wirken, um die Summen und Über
träge zu addieren, bis schließlich eine Endsumme und ein
Endübertrag in einem 4 : 2-CSA 322 zusammen addiert werden, um
eine Endsumme SF und einen Übertrag CF zu erzeugen. Die CSA-
Schaltungsstruktur 300 ist wohlbekannt und ist bei einem
bevorzugten Ausführungsbeispiel implementiert, um zu ermög
lichen, daß ein solches bevorzugtes Ausführungsbeispiel das
erwünschte Geschwindigkeitsziel mit einem statischen Schal
tungsentwurf erzielt.
Für eine Beschreibung dessen, wie der modifizierte Baugh-
Wooley-Algorithmus bei einem bevorzugten Ausführungsbeispiel
für eine vorzeichenbehaftete Multiplikation verwendet wird,
wird auf die folgenden Gleichungen Bezug genommen, um den
modifizierten Baugh-Wooley-Algorithmus eines bevorzugten
Ausführungsbeispiels für die vorzeichenbehaftete Multiplika
tion eines N-Bit-Operanden A und eines N-Bit-Operanden B zu
beschreiben, wobei dieselben ferner in Fig. 4 gezeigt sind:
Produkt = A.B = (SA.(-1).2N-1 + A').(SB.(-1).2N-1 + B')
= SA.SB.22N-2 + SA.(-1).2N-1.B' + SB.(-1).2N-1.A' + A'.B'
= SA.SB.22N-2 + SA.(-1).2N-1.B' + SB.(-1).2N-1.A' + A'.B'
Wie es im vorhergehenden gezeigt ist, sind die zwei Operan
den (A und B) auf eine Art und Weise dargestellt, die die
vorzeichenbehaftete Multiplikation derselben ermöglicht. Der
Operand A ist dargestellt durch: SA.(-1).2N-1 + A', wobei
SA das Vorzeichenbit für den Operanden A und N die Anzahl
von Bits des Operanden A ist. A' ist der Rest des Operanden
A, wenn sein Vorzeichenbit ignoriert wird. Wie es in der
Technik wohlbekannt ist, weist, wenn ein Vorzeichenbit eines
Operanden 1 ist, der Operand einen negativen Wert auf, wobei
der Operand, wenn das Vorzeichenbit des Operanden 0 ist,
einen positiven Wert aufweist. Dementsprechend wird der
Operand B dargestellt durch: SB.(-1).2N-1 + B', wobei SB
das Vorzeichenbit für den Operanden B und N die Anzahl von
Bits des Operanden B ist. B' ist der Rest des Operanden B,
wenn sein Vorzeichenbit ignoriert wird. Allgemein trennt der
Baugh-Wooley-Algorithmus eines bevorzugten Ausführungsbei
spiels das Vorzeichenbit eines Operanden von dem Rest der
Bits und multipliziert daraufhin die beiden Operanden.
Genauer ausgedrückt wird ein vierteiliger Term (oder eine
vierteilige Gleichung) erzeugt, um das Produkt der Operanden
A und B zu bestimmen, was in Fig. 4 dargestellt ist. Der
erste Teil des Terms ist SA.SB.22N-2, was die Eckzelle 508 des
Multiplizierarrays eines am meisten bevorzugten Ausführungs
beispiels ist, das in Fig. 5 gezeigt ist. Der zweite Teil
des Terms ist (SA.(-1).2N-1.B'), was die Spalte 504 des
Multiplizierarrays von Fig. 5 ist. Der dritte Term ist (SB.(-1).2N-1.A'),
was die Zeile 506 des Multiplizierarrays
von Fig. 5 ist. Der vierte Term ist (A'.B'), was der
vorzeichenlose Arraykern 502 des Multiplizierarrays von Fig. 5
ist.
Der zweite Teil des Terms, der in Fig. 4 gezeigt ist (d. h.
SA.(-1).2N-1.B'), übersetzt den Operanden A von einem
vorzeichenbehafteten Operanden in einen vorzeichenlosen
Operanden. Dies bedeutet, daß, falls das Vorzeichenbit des
Operanden A auf 1 eingestellt ist (was anzeigt, daß derselbe
ein negativer Operand ist), der Operand invertiert wird. Der
dritte Teil des Terms, der in Fig. 4 gezeigt ist (d. h. SB.(-1).2N-1.A'),
übersetzt den Operanden B von einem vor
zeichenbehafteten Operanden in einen vorzeichenlosen Operan
den. Das bedeutet, daß, falls das Vorzeichenbit des Operan
den B auf 1 eingestellt ist (was anzeigt, daß derselbe ein
negativer Operand ist), der Operand invertiert wird. Als ein
Ergebnis implementiert ein bevorzugtes Ausführungsbeispiel
den Baugh-Wooley-Algorithmus auf eine Art und Weise, die
eine vorzeichenbehaftete Multiplikation in eine vorzeichen
lose Multiplikation übersetzt, um Vorzeichenerweiterungen
bei dem Multiplizierarray zu vermeiden.
Darüber hinaus implementiert ein bevorzugtes Ausführungsbei
spiel den Baugh-Wooley-Algorithmus auf eine Weise, die es
ermöglicht, daß sowohl eine vorzeichenbehaftete als auch
eine vorzeichenlose Multiplikation durchgeführt werden
können, ohne daß ein großes Multiplizierarray erforderlich
ist, in dem Zeichenerweiterungen implementiert sind, und mit
einer leichten Modifikation bezüglich der typischen UND-
Gatterschaltungsanordnung, die das Partialprodukt für das
Multiplizier-CSA-Array erzeugt. Der modifizierte Baugh-
Wooley-Algorithmus eines bevorzugten Ausführungsbeispiels
für eine vorzeichenlose Multiplikation eines N-Bit-Operanden
A und eines N-Bit-Operanden B ist wie folgt:
Produkt = A.B = (SA.2N-1 + A').(SB.2N-1 + B')
= SA.SB.22N-2 + SA.2N-1.B' + SB.2N-1.A' + A'.B'
Wie es in der vorhergehenden Gleichung gezeigt ist, besteht
der Unterschied zwischen der vorzeichenbehafteten Multipli
kation und der vorzeichenlosen Multiplikation eines bevor
zugten Ausführungsbeispiels in dem zweiten und dem dritten
Term (die der Spalte 504 und der Zeile 506 des Multiplizier
arrays 500 von Fig. 5 entsprechen). Da eine Vorzeichen-
(sign) Erweiterung für die vorzeichenbehaftete Multiplikati
on in das Bit des Bereichs 508 von Fig. 5 vorhanden ist,
werden, wenn eine oder beide von SA und SB 1 ist (was an
zeigt, daß einer oder beide Eingangsoperanden negativ sind),
die Operanden in dem Bereich 504 und 506 invertiert. Dies
ist der Grund dafür, daß das Bit 508 für die vorzeichenlose
Multiplikation gleich (SA.SB) ist, und für die vorzeichenbe
haftete Multiplikation das Bit 508 gleich (SA + SB) ist (wie
es vollständiger bezugnehmend auf Fig. 6 und 7D erörtert
wird).
Um mit dem selben Multiplizier-CSA-Array, das in dem modifi
zierten Baugh-Wooley-Algorithmus implementiert ist, der im
vorhergehenden zur Durchführung der vorzeichenbehafteten
Multiplikation beschrieben wurde, eine vorzeichenlose Multi
plikation zu ermöglichen, wird eine spezielle Schaltungsan
ordnung verwendet, um das Partialprodukt zu manipulieren,
das in das CSA-Array des Multiplizierers eingegeben wird,
was bezugnehmend auf Fig. 7A-7D detaillierter erörtert
wird. Das CSA-Array eines bevorzugten Ausführungsbeispiels
ist implementiert, um ein Multiplizierarray 500 zu erzeugen,
wie es in Fig. 5 gezeigt ist. Wie es gezeigt ist, umfaßt das
Multiplizierarray 500 die Terme, die für den Algorithmus von
Fig. 4 zur Berechnung des Produkts von zwei Operanden A und
B erforderlich sind. Das heißt, daß das Multiplizierarray
500 den vorzeichenlosen Arraykern aufweist, der dem Term
(A'.B') der Gleichung von Fig. 4 genügt. Das Multiplizierar
ray 500 umfaßt ferner eine Spalte 504, die bei einem bevor
zugten Ausführungsbeispiel die äußerste linke Spalte des
Multiplizierarrays ist, und die dem Term (SA.(-1).2N-1.B')
der Gleichung von Fig. 4 genügt. Darüber hinaus umfaßt
das Multiplizierarray 500 bei einem bevorzugten Ausführungs
beispiel die untere Zeile 506, die dem Term (SB.(-1).2N-1.A')
der Gleichung von Fig. 4 genügt. Zusätzlich umfaßt das
Multiplizierarray 500 eine Zelle, die bei einem bevorzugten
Ausführungsbeispiel das Eckbit 508 ist, das dem Term (SA.SB)
der Gleichung von Fig. 4 genügt.
Dementsprechend erzeugt das Summieren dieser vier Terme der
Gleichung von Fig. 4 das Produkt der zwei Operanden A und B.
Folglich liefert ein bevorzugtes Ausführungsbeispiel ein
Multiplizierarray 500, das verwendet werden kann, um sowohl
eine vorzeichenbehaftete als auch eine vorzeichenlose Multi
plikation durchzuführen, wobei die vorzeichenlose Multipli
kation ermöglicht wird, indem eine leichte Modifikation
bezüglich der UND-Gatterschaltungsanordnung implementiert
wird, um die Partialprodukte für die Bereiche 504 und 506
des Multiplizierarrays 500 zu erzeugen. Die Schaltung für
die CSA-Partialprodukteingabe der Bereiche 504 und 506 eines
bevorzugten Ausführungsbeispiels ist in Fig. 7A und 7B
gezeigt, die detaillierter im folgenden beschrieben werden.
Zusätzlich ist das Multiplizierarray 500 eines bevorzugten
Ausführungsbeispiels relativ zu herkömmlichen Multiplizier
arrays zum Durchführen einer vorzeichenbehafteten Multipli
kation kleiner. Insbesondere beseitigt das Multiplizierarray
500 eines bevorzugten Ausführungsbeispiels das Erfordernis,
eine Vorzeichenerweiterung, wie z. B. eine Vorzeichenerwei
terung 44 des Arrays 40, die in Fig. 1 gezeigt ist und in
dem Multiplizierarray umfaßt ist, aufzuweisen. Als ein
Ergebnis stimmt das Multiplizierarray enger mit der Größe
der Eingangsoperanden überein (oder entspricht denselben).
Falls beispielsweise zwei 16-Bit-Operanden in den Multipli
zierer eingegeben werden, ist das Multiplizierarray eines
bevorzugten Ausführungsbeispiels ein 16-mal-14-Array und
nicht ein 22-mal-14-Array, das für herkömmliche Implementie
rungen, die die Booth-Codierung für die vorzeichenbehaftete
Multiplikation verwenden, typischerweise erforderlich ist.
Als ein Ergebnis ist die Schaltungsanordnung, die zur Imple
mentierung des Multiplizierarrays 500 eines bevorzugten
Ausführungsbeispiels erforderlich ist, reduziert, wodurch
die Komplexität der Führung innerhalb des Multiplizierar
rays, der Oberflächenbereich, der durch das Multiplizierar
ray eingenommen wird, die Leistung, die durch das Multipli
zierarray verbraucht wird, und die Kosten der Implementie
rung des Multiplizierarrays reduziert werden.
Die Funktionsweise des Eckbits von 508 des Multiplizierar
rays 500 bei einem bevorzugten Ausführungsbeispiel ist
detaillierter in Fig. 6 gezeigt. Wie es in Fig. 6 gezeigt
ist, ist das Eckbit 508 aufgrund der Vorzeichenerweiterung
von den Bereichen 504 und 506 das Ergebnis von (SA + SB),
wenn einer oder beide der Eingangsoperanden (A und B) einen
negativen Wert aufweisen, und die Eingangssignale bei den
Bereichen 504 und 506 entsprechend invertiert sind. Genauer
ausgedrückt ist das Eckbit 508 das Ausgangssignal einer
logischen ODER-Verknüpfung 602, in das das Vorzeichenbit des
Operanden A (d. h. SA) und das Vorzeichenbit des Operanden B
(d. h. SB) eingegeben werden. Folglich ist das Eckbit 508,
wie es die Tabelle von Fig. 6 veranschaulicht, auf einen
logisch hohen Zustand eingestellt (z. B. eine logische 1),
falls sich entweder eines der beiden oder beide der Vorzei
chenbits in einem logisch hohen Zustand befinden, wobei das
Eckbit 508 auf einen logisch niedrigen Zustand eingestellt
ist (z. B. einer logischen 0), falls sich beide Vorzeichen
bits in einem logisch niedrigen Zustand befinden.
Es wird sich nun Fig. 7A und 7B zugewandt. Es ist ein bevor
zugtes Ausführungsbeispiel zum Erzeugen von Partialprodukten
gezeigt, die in das CSA-Array der Bereiche 504 und 506 des
Multiplizierarrays 500 eingegeben werden sollen. Wie es im
vorhergehenden erörtert wurde, führt ein bevorzugtes Ausfüh
rungsbeispiel eine vorzeichenlose Multiplikation durch,
indem das Partialprodukt manipuliert wird, das in die CSA-
Zellen in den Bereichen 504 und 506 eingegeben wird. Bei
einer vorzeichenlosen Multiplikation ist SA nicht das Vor
zeichen des Operanden A. Vielmehr ist SA das höchstwertige
Bit ("MSB") des Operanden A. Für die vorzeichenlose Multi
plikation lautet die Gleichung für den Bereich 504 (SA.2N-1.B').
Im Vergleich dazu lautet die Gleichung für den Be
reich 504 bei der vorzeichenbehafteten Multiplikation (SA.(-1).2N-1.B').
Bei der Implementierung der vorzeichenlo
sen Multiplikation wird, wenn SA 1 ist, B' direkt in die
CSA-Zellen des Bereichs 504 eingegeben, während, wenn SA 0
ist, das Eingangssignal zu den CSA-Zellen des Bereichs 504 0
ist. Bei der Implementierung der vorzeichenbehafteten Multi
plikation wird, wenn SA 1 ist (was anzeigt, daß der Operand
A negativ ist), B' invertiert, um die Eingangssignale für
die CSA-Zellen des Bereichs 504 zu erzeugen, wobei, wenn SA
0 ist (was anzeigt, daß der Operand A positiv ist), das
Eingangssignal zu den CSA-Zellen des Bereichs 504 0 ist.
Dies ermöglicht, daß das selbe Multiplizierarray zur Durch
führung von sowohl der vorzeichenbehafteten als auch der
vorzeichenlosen Multiplikation verwendet wird. Dementspre
chend wird der modifizierte Baugh-Wooley-Multiplizierer für
die vorzeichenbehaftete Multiplikation eines bevorzugten
Ausführungsbeispiels verwendet, um ebenfalls die vorzeichen
lose Multiplikation durchzuführen.
Ein bevorzugtes Ausführungsbeispiel verwendet ein Vorzei
chensteuerungsbit, um das modifizierte Baugh-Wooley-
Multiplizierarray zu steuern, um entweder eine vorzeichenbe
haftete Multiplikation oder eine vorzeichenlose Multiplika
tion durchzuführen. Genauer ausgedrückt wird, wenn eine
vorzeichenbehaftete Multiplikation durchgeführt wird, das
Vorzeichensteuerungsbit bei einem bevorzugten Ausführungs
beispiel auf 1 eingestellt bzw. gesetzt. Wie es in Fig. 7A
gezeigt ist, wird das Vorzeichensteuerungsbit mit dem Rest
des Operanden in ein Exklusiv-ODER- (XOR-) Gatter 702 einge
geben. Wenn das Vorzeichensteuerungsbit auf 1 eingestellt
ist, wird die vorzeichenbehaftete Multiplikation freigege
ben. Dementsprechend wird Y[14:0] durch das XOR 702 inver
tiert. Das invertierte Y[14:0] wird daraufhin mit dem Vor
zeichenbit des Operanden X, d. h. SX, einer UND-Verknüpfung
unterzogen, wobei die resultierenden Partialprodukte in die
CSA des Bereichs 504 eingegeben werden. In diesem Fall ist
der Operand X äquivalent zu dem Operanden A, der im vorher
gehenden bei dem modifizierten Baugh-Wooley-Algorithmus (z. B.
SX = SA) beschrieben wurde, wobei der Operand Y äquiva
lent zu dem Operanden B ist, der im vorhergehenden bei dem
modifizierten Baugh-Wooley-Algorithmus (z. B. SY = SB) be
schrieben wurde. Wenn das Vorzeichensteuerungsbit auf 0
eingestellt ist, ist die vorzeichenlose Multiplikation
freigegeben. Dementsprechend wird Y[14:0] weitergeleitet, um
mit dem Vorzeichenbit des Operanden X, d. h. SX, einer UND-
Verknüpfung unterzogen zu werden, wobei die resultierenden
Partialprodukte in die CSA des Bereichs 504 für eine vorzei
chenlose Multiplikation eingegeben werden.
Wie es ferner in Fig. 7A gezeigt ist, wird das Ausgangssig
nal des XOR-Gatters 702 mit dem Vorzeichenbit des Operanden
X (d. h. SX) in ein UND-Gatter 704 eingegeben. Dementspre
chend unterzieht das UND-Gatter 704, wenn die vorzeichenbe
haftete Multiplikation durchgeführt wird, und falls SX 1 ist
(was anzeigt, daß X ein negativer Operand ist), das Bit SX
logischen UND-Verknüpfungen mit dem Ausgangssignal des XOR-
Gatters 702, was den invertierten Operanden Y[14:0] ergibt.
Das bedeutet, daß, wenn Sx 1 ist, das Ergebnis des UND-
Gatters 704 der invertierte Operand Y[14:0] ist, was exakt
die erwünschte Ausgabe für die vorzeichenbehaftete Multipli
kation ist. Wenn jedoch SX 0 ist (was anzeigt, daß X ein
positiver Operand ist), ist das Partialprodukt, das durch
das UND-Gatter 704 ausgegeben wird, 0. Darüber hinaus ist,
wenn eine vorzeichenlose Operation durchgeführt wird, das
Vorzeichensteuerungsbit auf 0 eingestellt. Folglich leitet
das XOR-Gatter 20 den Operanden Y[14:0] an den Eingang des
UND-Gatters 704 weiter. Das Bit SX, das das höchstwertige
Bit für den Operanden X ist, wird einer UND-Verknüpfung mit
dem Operanden Y[14:0] unterzogen, um das Partialprodukt von
(SX.Y) zu ergeben, was exakt das ist, was für die vorzei
chenlose Multiplikation erwünscht ist.
In der Fig. 7B ist die Schaltung zum Erzeugen des Partial
produkts gezeigt, das in das CSA-Array des Bereichs 506 von
Fig. 5 eingegeben werden soll. Wie es gezeigt ist, ist die
Schaltungsanordnung zu derjenigen von Fig. 7A ähnlich.
Dementsprechend nimmt diese Schaltung X[14:0] zusammen mit
dem Vorzeichensteuerungsbit bei dem XOR-Gatter 722 entgegen.
Das Ergebnis des XOR-Gatters 722 wird in einem UND-Gatter
724 einer UND-Verknüpfung mit SY (dem Vorzeichenbit des
Operanden Y) unterzogen, um die Partlalprodukte zu erzeugen,
die abhängig von dem Vorzeichensteuerungsbit für die vorzei
chenbehaftete Multiplikation und die vorzeichenlose Multi
plikation als Eingangssignale in die CSA des Bereichs 506
von Fig. 5 verwendet werden sollen. Wie es in Fig. 7C ge
zeigt ist, werden UND-Gatter, wie z. B. das UND-Satter 732,
verwendet, um die Partialprodukte für die CSA-Eingänge des
Bereichs 502 des Multiplizierarrays 500 von Fig. 5, d. h.
dem vorzeichenlosen Arraykern, zu erzeugen. Ein Vorteil
eines Baugh-Wooley-Multiplizierers eines bevorzugten Ausfüh
rungsbeispiels besteht darin, daß der vorzeichenlose Kern
lediglich einfache UND-Gatter, wie z. B. das UND-Gatter 732,
erfordert, um die CSA-Eingangssignale zu erzeugen.
Für den Baugh-Wooley-Algorithmus eines bevorzugten Ausfüh
rungsbeispiels werden, wenn das Vorzeichensteuerungsbit 1
ist (was anzeigt, daß eine vorzeichenbehaftete Multiplikati
onsoperation durchgeführt wird), die Operanden entweder
invertiert, wenn das Vorzeichenbit des anderen Eingangsope
randen 1 ist, oder auf Null gesetzt, wenn das Vorzeichenbit
des anderen Eingangsoperanden 0 ist, und zwar entweder in
der Spalte 504 des Multiplizierarrays 500 oder in der Zeile
506 des Multiplizierarrays 500 von Fig. 5. Wann immer ein
Operand invertiert wird, addiert ein bevorzugtes Ausfüh
rungsbeispiel ein 1 bei dem Bit der Wertigkeit 15. Falls
beide Operanden invertiert werden, addiert ein bevorzugtes
Ausführungsbeispiel eine 2 zu dem Bit der Wertigkeit 15, was
bedeutet, daß ein Bit zu dem Bit der Wertigkeit 16 addiert
wird. Ein bevorzugtes Ausführungsbeispiel implementiert
"Klebebits" bzw. "Haftbits" (Sticky-Bits) STY[16:15], um den
korrekten Wert zu addieren, der für eine vorzeichenbehaftete
Operation erforderlich ist. Bei einem bevorzugten Ausfüh
rungsbeispiel ist STY [16] gleich SA.SB (d. h. SA UND SB),
und STY[15] ist gleich SA XOR SB. Dementsprechend befindet
sich STY[15] lediglich dann in einem logisch hohen Zustand,
falls sich eines der Vorzeichenbits für die Operanden A und
B in einem logisch hohen Zustand befindet, wobei sich
STY[16] lediglich dann in einem logisch hohen Zustand befin
det, falls sich beide der Operanden A und B in einem hohen
Zustand befinden. Bei einem bevorzugten Ausführungsbeispiel
werden die sogenannten Klebebits STY[16:15] in einer bear
beitbaren Position innerhalb des CSA-Arrays implementiert,
die jegliche bearbeitbare Position bei verschiedenen Imple
mentierungen sein kann.
Wie es im vorhergehenden erörtert wurde, liegt der Unter
schied zwischen der vorzeichenbehafteten Multiplikation und
der vorzeichenlosen Multiplikation bei dem modifizierten
Baugh-Wooley-Multiplizierer des bevorzugten Ausführungsbei
spiels in den Bereichen 504, 506 und 508 des Multiplizierar
rays von Fig. 5. Der vorzeichenlose Kern (der Bereich 502)
ist für die vorzeichenbehaftete Multiplikation und die
vorzeichenlose Multiplikation der selbe. Dies ist einer der
Vorteile des Baugh-Wooley-Algorithmus' eines bevorzugten
Ausführungsbeispiels. Fig. 7A und 7B veranschaulichen die
Manipulation des Partialprodukts, das in die Bereiche 504
und 506 eingegeben wird, um sowohl die vorzeichenbehaftete
als auch die vorzeichenlose Multiplikation bei einem bevor
zugten Ausführungsbeispiel durchzuführen. Das Eckbit 508 ist
gleich (SA + SB) für die vorzeichenbehaftete Multiplikation,
wobei das Bit 508 gleich (SA.SB) für die vorzeichenlose
Multiplikation ist. Folglich wird bei einem bevorzugten
Ausführungsbeispiel, wie es in Fig. 7D gezeigt ist, eine
leichte Modifikation an dem Logikgatter, um das Bit 508 zu
erzeugen, verwendet, um sowohl die vorzeichenbehaftete als
auch die vorzeichenlose Multiplikation zu ermöglichen.
Ein Multiplizierer eines bevorzugten Ausführungsbeispiels
kann in einer Implementierung verwendet werden, wie sie in
der ebenfalls anhängigen und der gemeinsam übertragenen
U. S.-Anmeldung mit dem Titel "SYSTEM AND METHOD FOR
PERFORMING POPCOUNT USING A MULTIPLIER" offenbart ist, deren
Offenbarung hiermit hierin unter Bezugnahme aufgenommen
wird. Folglich kann ein Multiplizierer eines bevorzugten
Ausführungsbeispiels eine gewünschte Implementierung lie
fern, um sowohl eine vorzeichenbehaftete als auch eine
vorzeichenlose Multiplikation durchzuführen, als auch um
eine Popcount- bzw. Entnahmezählung-Funktion für einen
empfangenen Operanden durchzuführen.
Fig. 8 zeigt eine Übersicht der Multiplizierereinheit 800
eines bevorzugten Ausführungsbeispiels. Bei einem bevorzug
ten Ausführungsbeispiel ist die Multiplizierereinheit in
einer IA64-Mikroprozessor-Multimediaeinheit (MMU) implemen
tiert. Darüber hinaus weist bei einem bevorzugten Ausfüh
rungsbeispiel die Multiplizierereinheit 800 eine Zweitakt
zyklusoperation auf, was bedeutet, daß von dem Empfang
zweier Eingangsoperanden bis zu der Berechnung der Ergebnis
se für die Befehle (einschließlich der Manipulation der
Partialprodukte für die Eingangssignale zu dem Multiplizie
rer-CSA-Array für die vorzeichenbehaftete/vorzeichenlose
Multiplikation, das Addieren der Endsumme und des Endüber
trags für das CSA-Array, um das Endmultiplikationsergebnis
zu erzeugen (z. B. res[31:0]), das Schieben des Ergebnisses
mit einer Schiebeeinrichtung entsprechend den Befehlen der
Multiplizierereinheit, daraufhin das Treiben des geschobenen
Ergebnisses in das Umgehungsnetzwerk und das Rückkoppeln des
geschobenen Ergebnisses in die MMU-Röhre bzw. -Pipe, die
eine der sechs MMU-Funktionseinheiten ist, die bei einem am
meisten bevorzugten Ausführungsbeispiel implementiert sind)
die Multiplizierereinheit zwei Taktzyklen braucht, um die
notwendigen Befehle durchzuführen. Tatsächlich ist bei einem
am meisten bevorzugten Ausführungsbeispiel die MMU eine
Zweizyklenoperationseinheit.
Fig. 8 zeigt eine Übersicht der tatsächlichen physischen
Implementierung des Multiplizierers eines bevorzugten Aus
führungsbeispiels (der das Gerade-und-Ungerade-Linearsummie
rungs-Baugh-Wooley-Multiplizierer-CSA-Array verwendet, wie
es hierin im vorhergehenden beschrieben wurde). Wie es im
vorhergehenden beschrieben wurde, nimmt das CSA-Array die
modifizierten Partialprodukte von den Schaltungen entgegen,
die in Fig. 7A, 7B, 7C und 7D gezeigt sind, um eine Endsumme
und einen Endübertrag zu erzeugen. Die erste Zeile des CSA-
Arrays in Fig. 8 weist die Wertigkeit 16 bis Wertigkeit 1
(von links nach rechts) auf. Die erste Zeile von CSAs in
Fig. 8 addiert die ersten drei Zeilen (d. h. die 0. Zeile
bis 2. Zeile) von Partialprodukten in Fig. 3A. Die zweite
Zeile des CSA-Arrays in Fig. 8 weist die Wertigkeit 16 bis
Wertigkeit 2 (von links nach rechts) auf. Diese zweite Zeile
von CSAs in Fig. 8 addiert die zweiten drei Zeilen (d. h.
von der 3. Zeile bis zu der 5. Zeile) von Partialprodukten
in Fig. 3A. Es wird darauf hingewiesen, daß das CSA-Array
eines bevorzugten Ausführungsbeispiels ein statischer Ent
wurf ist.
Die ersten zwei Zeilen von CSAs in Fig. 8 umfassen 16 Spal
ten von CSAs. Dies bedeutet 16 mal 2. Von der 3. Zeile bis
zu der 14. Zeile gibt es lediglich 15 Spalten von CSAs. Dies
bedeutet 15 mal 12. Ein statischer 10-Bit-Addierer wird
verwendet, um die Summe SF[12:3] und den Übertrag CF[12:3]
zu addieren, um res[12:3] zu erzeugen. SF[30:0] ist die
Endsumme für das CSA-Array, wobei CF[30:0] der Endübertrag
von dem CSA-Array ist. Das CSA-Array erzeugt bei einem
bevorzugten Ausführungsbeispiel direkt, ohne die Hilfe des
Addierers res[2:0]. Res[30:0] ist das Endergebnis von dem
Multiplizierer (dem CSA-Array und den Addierern). Die Bits
res[2:0], SF[12:3] und CF[12:3] gehen aus dem rechten Rand
des Multiplizier-CSA-Arrays eines bevorzugten Ausführungs
beispiels, das in Fig. 8 gezeigt ist, hervor. SF[12:3] und
CF[12:3] sind Eingangssignale zu dem statischen 10-Bit-
Addierer, der res[12:3] erzeugt. Der 10-Bit-Addierer ist
physisch in die Spalte des rechten Rands des CSA-Bereichs
eines bevorzugten Ausführungsbeispiels eingepaßt. Die Bits
SF[30:13] und CF[30:13] gehen aus dem unteren Ende des CSA-
Arrays eines bevorzugten Ausführungsbeispiels, das in Fig. 8
gezeigt ist, hervor. Der statische 10-Bit-Addierer ist der
Übertragsausbreitungssummenauswahladdierer (carry-propagate
sum-select adder), der in der Technik wohl bekannt ist.
Da die Bits SF[12:3] und CF[12:3] früher als CF[26:13] und
SF[26:13] erzeugt werden (da bei einem bevorzugten Ausfüh
rungsbeispiel SF[3] und CF[3] erzeugt werden, daraufhin SF[4]
und CF[4] usw.), werden bei einem bevorzugten Ausführungs
beispiel die Bits res[12:3] zu dem selben Zeitpunkt wie
CF[26:13] und SF[26:13] erzeugt, was der Fall ist, wenn der
erste Taktzyklus endet. CF[30:27] und SF[30:27] werden in
den statischen 4-Bit-Addierer eingegeben, der unterhalb des
CSA-Arrays, das in Fig. 8 gezeigt ist, positioniert ist. Die
Bits res[30:27] werden zu dem selben Zeitpunkt erzeugt, da
res[12:3] und CF[26:13] und SF[26:13] erzeugt werden. Folg
lich werden mit dem Ende des ersten Taktzyklusses die Ergeb
nisse von res[30:27], CF[26:13], SF[26:13] und res[12:0]
erhalten.
Zu dem Beginn des zweiten Taktzyklusses addiert der dynami
sche 14-Bit-Addierer CF[26; 13] und SF[26:13], um res[26:13]
zu erzeugen. Der dynamische 14-Bit-Addierer ist unterhalb
des CSA-Arrays positioniert, wie es in Fig. 8 gezeigt ist.
Das Multiplikationsergebnis res[30:27] wird daraufhin der
Verschiebeeinrichtung bei der Multiplizierereinheit 800
(nicht gezeigt) zugeführt, um das Endergebnis der Einheit
entsprechend parallelen Multipliziererbefehlen (PMUL-Befeh
len) zu erzeugen.
Wie es in Fig. 9 gezeigt ist, sind bei dem PMUL-
Multiplizierer 900 eines am meisten bevorzugten Ausführungs
beispiels für einen 64-Bit-Datenweg und für 64-Bit-Eingangs
operanden (z. B. A[63:0] und B[63:0]) vier 16-mal-16-
Multiplizierarrays (gezeigt als Arrays 902, 904, 906 und
908) parallel vorhanden. Bei einem bevorzugten Ausführungs
beispiel sind in dem ersten Taktzyklus Latch-Schaltungen
vorgesehen, um res[30:27], SF[26:13], CF[26:13] und
res[12:0] zwischenzuspeichern. Zusätzlich liefert Fig. 10
ein exemplarisches Zeiteinteilungsdiagramm des CSA-Arrays
und der Addierer des Zweizyklenmultiplizierers eines am
meisten bevorzugten Ausführungsbeispiels. Wie es gezeigt
ist, ist die Partialprodukterzeugung und die Erzeugung von
SF[30:3], CF[30:3], res[2:0], res[12:3] (d. h. das Ergebnis
des 10-Bit-Addierers) und res[30:27] (d. h. das Ergebnis des
4-Bit-Addierers] mit dem Ende des ersten Taktzyklus'
abgeschlossen. Wie es ferner gezeigt ist, werden bei einem
am meisten bevorzugten Ausführungsbeispiel in dem zweiten
Taktzyklus das res[26:13] (d. h. das Ergebnis des dynami
schen 14-Bit-Addierers) und das Schieben der Ergebnisse und
Treiben der Ergebnisse zu dem Umgehungsnetzwerk durchge
führt.
In Anbetracht der vorhergehenden Beschreibung liefert ein
bevorzugtes Ausführungsbeispiel einen statischen Entwurf,
der ein Linearsummierungsarray mit einer Gerade-Und-
Ungerade-Struktur implementiert, um sowohl eine vorzeichen
behaftete als auch eine vorzeichenlose Multiplikation durch
zuführen. Genauer ausgedrückt verwendet ein bevorzugtes
Ausführungsbeispiel einen modifizierten Baugh-Wooley-
Algorithmus, um sowohl eine vorzeichenbehaftete als auch
eine vorzeichenlose Multiplikation durchzuführen. Ein Vor
teil des Verwendens der linearen Summierung mit einer Gera
de-Und-Ungerade-Struktur für sowohl die vorzeichenbehaftete
als auch die vorzeichenlose Multiplikation besteht darin,
daß dieselbe eine statische Struktur ermöglicht, die viel
einfacher als die herkömmlichen Booth-Codierungsstrukturen
sind, die eine Multiplex-Betrieb-Funktion mit mehr Komplexi
tät als derjenigen eines bevorzugten Ausführungsbeispiels
umfassen. Folglich ermöglicht ein bevorzugtes Ausführungs
beispiel einen viel einfacheren Entwurf mit weniger Fläche,
weniger Kosten und weniger Leistung, als dies für herkömmli
che Multiplizierer üblicherweise erforderlich ist, die eine
vorzeichenbehaftete und eine vorzeichenlose Multiplikation
durchführen. Folglich liefert ein bevorzugtes Ausführungs
beispiel einen Multiplizierer mit einem Multiplikationsar
ray, das eine geringere Schaltungsanordnungs- und eine
geringere Leiterführungskomplexität erfordert, als dies bei
herkömmlichen Multiplizierern für die vorzeichenbehaftete
Multiplikation erforderlich ist. Bei einem bevorzugten
Ausführungsbeispiel ergibt das Durchführen einer 16-Bit-mal-
16-Bit-Multiplikation beispielsweise ein 16-mal-14-
Multiplikationsarray anstatt des 22-mal-14-
Multiplikationsarrays, das für die vorzeichenbehaftete
Multiplikation bei Multiplizieren, die die Booth-Codierung
verwenden, erforderlich ist. Dementsprechend passen die 16
Spalten des resultierenden Multiplizierarrays exakt in die
Eingangsschaltungs- (wie z. B. Multiplexer, die Eingangssig
nale für die Multiplikation erzeugen) Datenwegsgröße in dem
Layout und in dem Silizium (oder zu dem "Eingangsabstand")
der Operanden.
Zusätzlich ergibt ein bevorzugtes Ausführungsbeispiel einen
Multiplizierer, der die Multiplikation zumindest genauso
schnell wie herkömmliche Hochgeschwindigkeitsmultiplizierer
durchführt, während es einen einfacheren, kleineren und
zuverlässigeren Multiplizierer mit einem statischen Entwurf
liefert. Der Multiplizierer eines am meisten bevorzugten
Ausführungsbeispiels ist beispielsweise mit einer Frequenz
von 1 Gigahertz oder mehr betreibbar. Darüber hinaus verwen
det ein bevorzugtes Ausführungsbeispiel eine Gerade-und-
Ungerade-Schaltungsanordnungsimplementierung in dem CSA-
Array, um die Geschwindigkeit der Durchführung der Multipli
kation weiter zu verbessern. Ferner liefert ein bevorzugtes
Ausführungsbeispiel einen statischen Entwurf, was die Leis
tung der Schaltungsanordnung reduzieren kann. Die kapazitive
Stromlast eines bevorzugten Ausführungsbeispiels kann bei
spielsweise um 60% oder mehr unter diejenige reduziert
werden, die typischerweise bei herkömmlichen Multiplizierern
erforderlich ist. Ferner erfordert ein bevorzugtes Ausfüh
rungsbeispiel kein Taktschema, das üblicherweise bei her
kömmlichen dynamischen Booth-Multiplizierern vorhanden ist.
Zusätzlich erfordert ein bevorzugtes Ausführungsbeispiel
eine viel weniger strenge Überprüfung während der Herstel
lung der Schaltungsanordnung verglichen zu herkömmlichen
Multiplizierern.
Es wird darauf hingewiesen, daß ein bevorzugtes Ausführungs
beispiel in einem Prozessor implementiert sein kann, der für
ein Computersystem, wie z. B. einen Personalcomputer (PC),
einen Laptop-Computer oder einen Personaldatenassistentvor
richtung (PDA; PDA = personal data assistent) (z. B. einen
Palmtop-PC) verwendet wird. Natürlich wird darauf hingewie
sen, daß die vorliegende Erfindung jeglichen anderen Typ von
Gerät ebenfalls umfassen soll, in das ein Multiplizierer
implementiert werden kann.
Es wird darauf hingewiesen, daß, obwohl die vorliegende
Erfindung und ihre Vorteile detailliert beschrieben worden
sind, verschiedene Änderungen, Ersetzungen und Veränderungen
hierin vorgenommen werden können, ohne den Schutzbereich der
Erfindung zu verlassen, wie er durch die beiliegenden An
sprüche definiert ist. Darüber hinaus soll der Schutzbereich
der vorliegenden Anmeldung nicht auf die speziellen Ausfüh
rungsbeispiele des Prozesses, der Maschine, der Herstellung,
der Stoffzusammensetzung, der Einrichtung, der Verfahren und
der Schritte, die in der Beschreibung beschrieben werden,
eingeschränkt sein. Wie es ein Fachmann ohne weiteres aus
der Offenbarung der vorliegenden Erfindung erkennen wird,
können Prozesse, Maschinen, eine Herstellung, Stoffzusammen
setzungen, Einrichtungen, Verfahren oder Schritte, die
derzeit existieren oder die später entwickelt werden, und
die im wesentlichen die selbe Funktion durchführen oder im
wesentlichen das selbe Ergebnis wie die entsprechenden
Ausführungsbeispiele, die hierin beschrieben sind, erzielen,
gemäß der vorliegenden Erfindung verwendet werden. Dement
sprechend sollen die anhängigen Ansprüche in ihrem Schutzbe
reich solche Prozesse, Maschinen, eine solche Herstellung,
solche Stoffzusammensetzungen, Einrichtungen, Verfahren oder
Schritte umfassen.
Claims (19)
1. Multiplizierer mit
einer Einrichtung (800) zum Empfangen zumindest zweier Operanden; und
einer Einrichtung (800) zum Erzeugen eines Produkts der zumindest zwei Operanden, wobei die Erzeugungseinrich tung ein Linearsummierungsarray (300) mit einer Gerade- Und-Ungerade-Struktur zum Summieren von Partialproduk ten der zumindest zwei Operanden aufweist, und wobei das Linearsummierungsarray (300) aufgebaut ist, um so wohl eine vorzeichenbehaftete als auch eine vorzeichen lose Multiplikation zu ermöglichen.
einer Einrichtung (800) zum Empfangen zumindest zweier Operanden; und
einer Einrichtung (800) zum Erzeugen eines Produkts der zumindest zwei Operanden, wobei die Erzeugungseinrich tung ein Linearsummierungsarray (300) mit einer Gerade- Und-Ungerade-Struktur zum Summieren von Partialproduk ten der zumindest zwei Operanden aufweist, und wobei das Linearsummierungsarray (300) aufgebaut ist, um so wohl eine vorzeichenbehaftete als auch eine vorzeichen lose Multiplikation zu ermöglichen.
2. Multiplizierer gemäß Anspruch 1, bei dem das Linearsum
mierungsarray (300) gemäß einem modifizierten Baugh-
Wooley-Algorithmus für die vorzeichenbehaftete Multi
plikation implementiert ist.
3. Multiplizierer gemäß Anspruch 2, bei dem der modifi
zierte Baugh-Wooley-Algorithmus für die vorzeichenbe
haftete Multiplikation ein Produkt der Operanden A und
B als ein Ergebnis von
((SA.SB.22N-2) + SA.(-1).2N-1.B') + (SB.(-1).2N-1.A') + (A'.B'))
erzeugt, wobei N die Anzahl von Bits in jedem Operan den, SA das Vorzeichenbit für den Operanden A, SB das Vorzeichenbit für den Operanden B, A' die Bits des Ope randen A ausschließlich seines Vorzeichenbits und B' die Bits des Operanden B ausschließlich seines Vorzei chenbits ist.
((SA.SB.22N-2) + SA.(-1).2N-1.B') + (SB.(-1).2N-1.A') + (A'.B'))
erzeugt, wobei N die Anzahl von Bits in jedem Operan den, SA das Vorzeichenbit für den Operanden A, SB das Vorzeichenbit für den Operanden B, A' die Bits des Ope randen A ausschließlich seines Vorzeichenbits und B' die Bits des Operanden B ausschließlich seines Vorzei chenbits ist.
4. Multiplizierer gemäß Anspruch 3, bei dem der modifi
zierte Baugh-Wooley-Algorithmus ferner konfiguriert
ist, um eine vorzeichenlose Multiplikation durchzufüh
ren, wobei der modifizierte Baugh-Wooley-Algorithmus
für die vorzeichenlose Multiplikation ein Produkt der
Operanden A und B als ein Ergebnis von
((SA.SB.22N-2) + (SA.2N-1.B') + (SB.2N-1.A') + (A'.B'))
erzeugt.
((SA.SB.22N-2) + (SA.2N-1.B') + (SB.2N-1.A') + (A'.B'))
erzeugt.
5. Multiplizierer gemäß einem der Ansprüche 2 bis 4, bei
dem der Baugh-Wooley-Algorithmus einen vorzeichenbehaf
teten Operanden in einen vorzeichenlosen Operanden über
setzt.
6. Multiplizierer gemäß einem der Ansprüche 1 bis 5, bei
dem die resultierenden Spalten des Linearsummierungsar
rays (300) dem Eingangsabstand der Operanden entspre
chen, die in den Multiplizierer eingegeben werden.
7. Multiplizierer gemäß Anspruch 6, wobei in den Multipli
zierer zwei Operanden mit jeweils 16 Bits eingegeben
werden, und wobei das Linearsummierungsarray (300), das
sich aus den zwei Operanden ergibt, eine Größe von 16
mal 14 aufweist.
8. Multiplizierer gemäß einem der Ansprüche 1 bis 7, bei
dem die Erzeugungseinrichtung (800) mit einem stati
schen Entwurf implementiert ist.
9. Multiplizierer gemäß einem der Ansprüche 1 bis 8, wobei
der Multiplizierer ein Hochgeschwindigkeitsmultiplizie
rer ist.
10. Multiplizierer gemäß Anspruch 9, wobei der Multiplizie
rer mit einer Frequenz von 1 GHz oder mehr betreibbar
ist.
11. Multiplizierer gemäß einem der Ansprüche 1 bis 10,
wobei der Multiplizierer betreibbar ist, um eine Multi
plikation durchzuführen, wenn für den Multiplizierer
eine Multiplikation freigegeben wird, und wobei der
Multiplizierer betreibbar ist, um eine Entnahmezählung
durchzuführen, wenn eine Entnahmezählung für den Mul
tiplizierer freigegeben ist.
12. System mit
einem Multiplizierer (800) zum Erzeugen eines Produkts
von zumindest zwei Operanden,
wobei der Multiplizierer ein Linearsummierungsarray
(300) mit einer Gerade-Und-Ungerade-Struktur zum Sum
mieren von Partialprodukten der zumindest zwei Operan
den aufweist, wobei das Linearsummierungsarray (300)
angeordnet ist, um sowohl eine vorzeichenbehaftete als
auch eine vorzeichenlose Multiplikation zu ermöglichen.
13. System gemäß Anspruch 12, das ferner zumindest einen
Prozessor aufweist.
14. System gemäß Anspruch 12 oder 13, bei dem das Linear
summierungsarray (300) gemäß einem modifizierten Baugh-
Wooley-Algorithmus zum Durchführen sowohl einer vorzei
chenbehafteten als auch einer vorzeichenlosen Multipli
kation implementiert ist.
15. System gemäß Anspruch 14, bei dem der modifizierte
Baugh-Wooley-Algorithmus für die vorzeichenbehaftete
Multiplikation ein Produkt der Operanden A und B als
ein Ergebnis von
((SA.SB.22N-2) + SA.(-1).2N-1.B') + (SB.(-1).2N-1.A') + (A'.B'))
erzeugt, wobei N die Anzahl von Bits in jedem Operan den, SA das Vorzeichenbit für den Operanden A, SB das Vorzeichenbit für den Operanden B, A' die Bits des Ope randen A ausschließlich seines Vorzeichenbits und B' die Bits des Operanden B ausschließlich seines Vorzei chenbits ist.
((SA.SB.22N-2) + SA.(-1).2N-1.B') + (SB.(-1).2N-1.A') + (A'.B'))
erzeugt, wobei N die Anzahl von Bits in jedem Operan den, SA das Vorzeichenbit für den Operanden A, SB das Vorzeichenbit für den Operanden B, A' die Bits des Ope randen A ausschließlich seines Vorzeichenbits und B' die Bits des Operanden B ausschließlich seines Vorzei chenbits ist.
16. System gemäß einem der Ansprüche 12 bis 15, bei dem das
Linearsummierungsarray (300) als eine Gerade-und-
Ungerade-Struktur mit einem statischen Entwurf imple
mentiert ist.
17. Verfahren zum Durchführen einer Multiplikation, mit
folgenden Schritten:
Empfangen von zumindest zwei Operanden in einem Mul tiplizierer (800);
Berechnen des Produkts der zumindest zwei Operanden, wobei die Berechnung das Eingeben von Partialprodukten der zumindest zwei Operanden in ein Linearsummierungs array (300) mit einer Gerade-Und-Ungerade-Struktur auf weist, das konfiguriert ist, um sowohl eine vorzeichen behaftete als auch eine vorzeichenlose Multiplikation zu ermöglichen.
Empfangen von zumindest zwei Operanden in einem Mul tiplizierer (800);
Berechnen des Produkts der zumindest zwei Operanden, wobei die Berechnung das Eingeben von Partialprodukten der zumindest zwei Operanden in ein Linearsummierungs array (300) mit einer Gerade-Und-Ungerade-Struktur auf weist, das konfiguriert ist, um sowohl eine vorzeichen behaftete als auch eine vorzeichenlose Multiplikation zu ermöglichen.
18. Verfahren gemäß Anspruch 17, bei dem der Schritt des
Berechnens ferner folgenden Schritt aufweist:
Erzeugen eines Ergebnisses gemäß einem modifizierten Baugh-Wooley-Algorithmus.
Erzeugen eines Ergebnisses gemäß einem modifizierten Baugh-Wooley-Algorithmus.
19. Verfahren gemäß Anspruch 18, bei dem eine vorzeichenbe
haftete Multiplikation durchgeführt wird, wobei der
Schritt des Erzeugens ferner folgenden Schritt auf
weist:
Erzeugen eines Produkts von Operanden A und B für die vorzeichenbehaftete Multiplikation als ein Ergebnis von
((SA.SB.22N-2) + SA.(-1).2N-1.B') + (SB.(-1).2N-1.A') + (A'.B'))
erzeugt, wobei N die Anzahl von Bits in jedem Operan den, SA das Vorzeichenbit für den Operanden A, SB das Vorzeichenbit für den Operanden B, A' die Bits des Ope randen A ausschließlich seines Vorzeichenbits und 5' die Bits des Operanden B ausschließlich seines Vorzei chenbits ist.
Erzeugen eines Produkts von Operanden A und B für die vorzeichenbehaftete Multiplikation als ein Ergebnis von
((SA.SB.22N-2) + SA.(-1).2N-1.B') + (SB.(-1).2N-1.A') + (A'.B'))
erzeugt, wobei N die Anzahl von Bits in jedem Operan den, SA das Vorzeichenbit für den Operanden A, SB das Vorzeichenbit für den Operanden B, A' die Bits des Ope randen A ausschließlich seines Vorzeichenbits und 5' die Bits des Operanden B ausschließlich seines Vorzei chenbits ist.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/510,274 | 2000-02-21 | ||
US09/510,274 US6708193B1 (en) | 2000-02-21 | 2000-02-21 | Linear summation multiplier array implementation for both signed and unsigned multiplication |
Publications (2)
Publication Number | Publication Date |
---|---|
DE10105945A1 true DE10105945A1 (de) | 2001-09-20 |
DE10105945B4 DE10105945B4 (de) | 2006-09-28 |
Family
ID=24030062
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10105945A Expired - Lifetime DE10105945B4 (de) | 2000-02-21 | 2001-02-09 | Multiplizierer mit Linearsummierungsarray sowohl zur vorzeichenbehafteten als auch zur vorzeichenlosen Multiplikation |
Country Status (2)
Country | Link |
---|---|
US (2) | US6708193B1 (de) |
DE (1) | DE10105945B4 (de) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040010536A1 (en) * | 2002-07-11 | 2004-01-15 | International Business Machines Corporation | Apparatus for multiplication of data in two's complement and unsigned magnitude formats |
US20050228845A1 (en) * | 2004-04-12 | 2005-10-13 | Mathstar, Inc. | Shift and recode multiplier |
US7672989B2 (en) * | 2005-05-09 | 2010-03-02 | Sandisk Il Ltd. | Large number multiplication method and device |
TW200830931A (en) * | 2007-01-08 | 2008-07-16 | Tatung Co Ltd | Method for manufacturing the spacer for field emission device and base material utilized for the spacer |
DE102007056104A1 (de) | 2007-11-15 | 2009-05-20 | Texas Instruments Deutschland Gmbh | Verfahren und Vorrichtung zur Multiplikation von Binäroperanden |
WO2009063050A1 (en) * | 2007-11-15 | 2009-05-22 | Texas Instruments Deutschland Gmbh | Method and apparatus for multiplying binary operands |
US7746109B1 (en) | 2009-04-02 | 2010-06-29 | Xilinx, Inc. | Circuits for sharing self-timed logic |
US7746111B1 (en) | 2009-04-02 | 2010-06-29 | Xilinx, Inc. | Gating logic circuits in a self-timed integrated circuit |
US7746102B1 (en) | 2009-04-02 | 2010-06-29 | Xilinx, Inc. | Bus-based logic blocks for self-timed integrated circuits |
US8706793B1 (en) | 2009-04-02 | 2014-04-22 | Xilinx, Inc. | Multiplier circuits with optional shift function |
US7746112B1 (en) | 2009-04-02 | 2010-06-29 | Xilinx, Inc. | Output structure with cascaded control signals for logic blocks in integrated circuits, and methods of using the same |
US7746103B1 (en) | 2009-04-02 | 2010-06-29 | Xilinx, Inc. | Multi-mode circuit in a self-timed integrated circuit |
US7746106B1 (en) | 2009-04-02 | 2010-06-29 | Xilinx, Inc. | Circuits for enabling feedback paths in a self-timed integrated circuit |
US7982496B1 (en) | 2009-04-02 | 2011-07-19 | Xilinx, Inc. | Bus-based logic blocks with optional constant input |
US7746104B1 (en) | 2009-04-02 | 2010-06-29 | Xilinx, Inc. | Dynamically controlled output multiplexer circuits in a programmable integrated circuit |
US7746108B1 (en) | 2009-04-02 | 2010-06-29 | Xilinx, Inc. | Compute-centric architecture for integrated circuits |
US7733123B1 (en) | 2009-04-02 | 2010-06-08 | Xilinx, Inc. | Implementing conditional statements in self-timed logic circuits |
US7948265B1 (en) | 2009-04-02 | 2011-05-24 | Xilinx, Inc. | Circuits for replicating self-timed logic |
US7746101B1 (en) | 2009-04-02 | 2010-06-29 | Xilinx, Inc. | Cascading input structure for logic blocks in integrated circuits |
US9002915B1 (en) | 2009-04-02 | 2015-04-07 | Xilinx, Inc. | Circuits for shifting bussed data |
US7746110B1 (en) | 2009-04-02 | 2010-06-29 | Xilinx, Inc. | Circuits for fanning out data in a programmable self-timed integrated circuit |
US7746105B1 (en) | 2009-04-02 | 2010-06-29 | Xilinx, Inc. | Merging data streams in a self-timed programmable integrated circuit |
US9411554B1 (en) * | 2009-04-02 | 2016-08-09 | Xilinx, Inc. | Signed multiplier circuit utilizing a uniform array of logic blocks |
US8527572B1 (en) | 2009-04-02 | 2013-09-03 | Xilinx, Inc. | Multiplier architecture utilizing a uniform array of logic blocks, and methods of using the same |
US8402164B1 (en) | 2010-10-27 | 2013-03-19 | Xilinx, Inc. | Asynchronous communication network and methods of enabling the asynchronous communication of data in an integrated circuit |
US9920219B2 (en) | 2015-06-22 | 2018-03-20 | Awi Licensing Llc | Soil and dirt repellent powder coatings |
US10831445B1 (en) | 2018-09-20 | 2020-11-10 | Groq, Inc. | Multimodal digital multiplication circuits and methods |
US10963220B2 (en) | 2018-11-12 | 2021-03-30 | Samsung Electronics Co., Ltd. | Signed multiplication using unsigned multiplier with dynamic fine-grained operand isolation |
CN113656751B (zh) * | 2021-08-10 | 2024-02-27 | 上海新氦类脑智能科技有限公司 | 无符号dac实现有符号运算的方法、装置、设备和介质 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US510271A (en) * | 1893-12-05 | Device for attaching handles to implements | ||
US510274A (en) * | 1893-12-05 | Awning | ||
US4495593A (en) * | 1982-07-01 | 1985-01-22 | Hewlett-Packard Company | Multiple bit encoding technique for combinational multipliers |
US4769219A (en) * | 1987-04-09 | 1988-09-06 | Hri, Inc. | Catalyst rejuvenation vessel assembly |
US4796219A (en) * | 1987-06-01 | 1989-01-03 | Motorola, Inc. | Serial two's complement multiplier |
US4989168A (en) | 1987-11-30 | 1991-01-29 | Fujitsu Limited | Multiplying unit in a computer system, capable of population counting |
US5121352A (en) * | 1990-02-06 | 1992-06-09 | Micron Technology, Inc. | Multiplier-accumulator circuit array operable in multiple modes |
US5303176A (en) * | 1992-07-20 | 1994-04-12 | International Business Machines Corporation | High performance array multiplier using four-to-two composite counters |
US5541865A (en) * | 1993-12-30 | 1996-07-30 | Intel Corporation | Method and apparatus for performing a population count operation |
US5734599A (en) * | 1995-07-07 | 1998-03-31 | Hewlett-Packard Company | Performing a population count using multiplication |
US5854757A (en) * | 1996-05-07 | 1998-12-29 | Lsi Logic Corporation | Super-compact hardware architecture for IDCT computation |
US5956265A (en) * | 1996-06-07 | 1999-09-21 | Lewis; James M. | Boolean digital multiplier |
US6029187A (en) * | 1997-10-28 | 2000-02-22 | Atmel Corporation | Fast regular multiplier architecture |
GB9727414D0 (en) * | 1997-12-29 | 1998-02-25 | Imperial College | Logic circuit |
US6366944B1 (en) * | 1999-01-15 | 2002-04-02 | Razak Hossain | Method and apparatus for performing signed/unsigned multiplication |
-
2000
- 2000-02-21 US US09/510,274 patent/US6708193B1/en not_active Expired - Lifetime
-
2001
- 2001-02-09 DE DE10105945A patent/DE10105945B4/de not_active Expired - Lifetime
-
2003
- 2003-07-25 US US10/627,279 patent/US20040024804A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20040024804A1 (en) | 2004-02-05 |
US6708193B1 (en) | 2004-03-16 |
DE10105945B4 (de) | 2006-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE10105945B4 (de) | Multiplizierer mit Linearsummierungsarray sowohl zur vorzeichenbehafteten als auch zur vorzeichenlosen Multiplikation | |
DE69821408T2 (de) | Multiplikationsverfahren und -vorrichtung | |
DE69632978T2 (de) | Multi-Operand-Addierer, der Parallelzähler benutzt | |
DE3927009A1 (de) | Addierschaltung | |
DE3686681T2 (de) | Parallelmultiplizierer. | |
DE3901995C2 (de) | ||
DE3700991A1 (de) | Digitaler uebertragsvorgriffsaddierer | |
DE2913327C2 (de) | Matrix-Multiplizierer | |
DE69731700T2 (de) | Arithmetischer Schaltkreis und arithmetisches Verfahren | |
DE3789132T2 (de) | Digitale Multipliziererarchitektur mit Dreifachgitter zur Summation von Teilprodukten. | |
DE1549476B2 (de) | Anordnung zur ausfuehrung von divisionen | |
DE2018452A1 (de) | Arithmetische Einrichtung | |
DE1956209A1 (de) | Schneller Multiplikator | |
DE4101004A1 (de) | Paralleler multiplizierer mit sprungfeld und modifiziertem wallac-baum | |
DE19781794C2 (de) | Verfahren und Einrichtung zur Division von Gleitkomma- oder ganzen Zahlen | |
DE1549508C3 (de) | Anordnung zur Übertragsberechnung mit kurzer Signallaufzeit | |
DE3434777C2 (de) | ||
DE2826773A1 (de) | Verfahren und schaltungsanordnung zum feststellen der wertigkeit von ziffern in arithmetischen operationen mit dezimalrechnern | |
EP0090298A1 (de) | In MOS-Technik integrierter schneller Multiplizierer | |
DE1241159B (de) | UEbertragschaltung fuer ein Schnelladdierwerk | |
EP0424410B1 (de) | Multiplizierer | |
DE3688434T2 (de) | Schneller bcd/binaer-addierer. | |
DE2800598A1 (de) | Parallel-addierwerk | |
EP0752130B1 (de) | Multiplizierer mit geringer laufzeit | |
EP1508087B1 (de) | Verfahren und integrierte schaltung zur durchführung einer multiplikation modulo m |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8127 | New person/name/address of the applicant |
Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, TE |
|
8364 | No opposition during term of opposition | ||
R081 | Change of applicant/patentee |
Owner name: SAMSUNG ELECTRONICS CO., LTD., KR Free format text: FORMER OWNER: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, US Effective date: 20110426 Owner name: SAMSUNG ELECTRONICS CO., LTD., SUWON-SI, KR Free format text: FORMER OWNER: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., HOUSTON, TEX., US Effective date: 20110426 |
|
R071 | Expiry of right |