DE10105945B4 - Multiplizierer mit Linearsummierungsarray sowohl zur vorzeichenbehafteten als auch zur vorzeichenlosen Multiplikation - Google Patents

Multiplizierer mit Linearsummierungsarray sowohl zur vorzeichenbehafteten als auch zur vorzeichenlosen Multiplikation Download PDF

Info

Publication number
DE10105945B4
DE10105945B4 DE10105945A DE10105945A DE10105945B4 DE 10105945 B4 DE10105945 B4 DE 10105945B4 DE 10105945 A DE10105945 A DE 10105945A DE 10105945 A DE10105945 A DE 10105945A DE 10105945 B4 DE10105945 B4 DE 10105945B4
Authority
DE
Germany
Prior art keywords
multiplier
array
multiplication
preferred
operands
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.)
Expired - Lifetime
Application number
DE10105945A
Other languages
English (en)
Other versions
DE10105945A1 (de
Inventor
Richard B. Fort Collins Zeng
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of DE10105945A1 publication Critical patent/DE10105945A1/de
Application granted granted Critical
Publication of DE10105945B4 publication Critical patent/DE10105945B4/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • G06F7/5318Multiplying 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49994Sign extension

Abstract

Multiplizierer mit
einer Einrichtung (800) zum Empfangen zumindest zweier Operanden; und
einer Einrichtung (800) zum Erzeugen eines Produkts der zumindest zwei Operanden, wobei die Erzeugungseinrichtung ein Linearsummierungsarray (300) mit einer Gerade-Und-Ungerade-Struktur zum Summieren von Partialprodukten der zumindest zwei Operanden aufweist, und wobei das Linearsummierungsarray (300) aufgebaut ist, um sowohl eine vorzeichenbehaftete als auch eine vorzeichenlose Multiplikation zu ermöglichen.

Description

  • Diese Erfindung bezieht sich allgemein auf Multiplizierer und insbesondere auf einen Multiplizierer, der ein Linearsummierungsarray zum Durchführen sowohl einer vorzeichenbehafteten als auch einer vorzeichenlosen Multiplikation unter Verwendung eines modifizierten Baugh-Wooley-Algorithmusses aufweist.
  • Eine Schaltungsanordnung zum Multiplizieren zweier oder mehr Operanden ist üblicherweise in vielen elektronischen Schaltungen des Stands der Technik implementiert. Mikroprozessoren umfassen beispielsweise typischerweise einige Multipliziererschaltungsanordnungstypen. Bei herkömmlichen Multiplizierern ist üblicherweise der wohlbekannte „Booth"-Codieralgorithmus implementiert, um eine vorzeichenbehaftete und vorzeichenlose Multiplikation durchzuführen. Der Booth-Codieralgorithmus ist jedoch eine dynamische Lösung. Hochgeschwindigkeitsmultiplizierer 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 dynamischer Multiplizierer mehr Leistung, fügt erhebliche Taktlast hinzu und erfordert viel mehr Entwurfsaufwand, um die elektrische Zuverlässigkeit zu implementieren und zu überprü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 Partialprodukte 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 Standardimplementierung 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 durchzuführen. Als ein einfaches Beispiel ist in 1 ein Multiplizierarray 40 gezeigt, das sich aus der Multiplikation von Operanden X[3:0] und Y[3:0] ergibt. Wie es gezeigt ist, umfaßt das Multiplizierarray von 1 die Partialproduktelemente 42 der Operanden und eine Vorzeichenerweiterung 44 für die vorzeichenbehaftete Multiplikation. Wie es in der Technik wohlbekannt ist, umfaßt ein Multiplizierer typischerweise 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übertragausgabe) zu erzeugen. Die Endausgabe für die Multiplikation (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 Hochgeschwindigkeitsparallelmultipliktion zu erzielen.
  • Ein Linearsummierungsmultiplizierer verwendet ein CSA-Array direkt, ohne eine Booth-Codierung. Wie es beispielsweise in 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 empfangen, um ein Element des Multipliziererarrays 40 als Eingangssignal zu erzeugen. Das UND-Gatter 36 kann beispielsweise 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 Multiplizierarrays 40 als sein Ausgangssignal zu erzeugen. Dementsprechend 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 2A gezeigt ist, werden die Partialprodukte einem CSA-Array des Multiplizierers, die CSAs, wie z. B. den CSA 38, umfassen, zugeführt, um die Partialprodukte 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 ausgegeben werden soll. Wie es beispielsweise in 2B gezeigt ist, besteht ein Linearsummierungsmultiplizierer aus zwei Komponenten, d. h. einem Multiplizier-CSA-Array 200 und einem Addierer 202. Bei einem solchen Linearsummierungsmultiplizierer 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 2C ein Beispiel eines Booth-Codierungsmultiplizierers gezeigt. 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 exemplarische Booth-Codierungsmultiplizierer von 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 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 1) zusätzlich zu den 16 Spalten von CSA für die Partialproduktelemente (z. B. die Elemente 42 von 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 demselben „übereinstimmen"). Dies führt zu einem unterschiedlichen Layoutabstand für die CSA als demjenigen für die Eingangsschaltungsanordnung und ergibt eine sehr komplexe Führung in dem Layout für die Eingangsoperandensignale.
  • Die herkömmliche dynamische Multipliziererschaltungsanordnung, die die Booth-Codierung verwendet, ist aus mehreren Gründen problematisch. Zunächst ist bei dem Multiplizierarray 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 Multiplizierer 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 Multipliziererschaltungsanordnung aufgrund der relativ hohen Anzahl von Komponenten, die bei einer herkömmlichen dynamischen Multipli ziererschaltungsanordnung erforderlich sind, einen unerwü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 bekannt und ist überlicherweise bei Multiplizierern zum Durchführen einer vorzeichenbehafteten Multiplikation implementiert. 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 zu schaffen, mit dem sowohl eine vorzeichenbehaftete als auch vorzeichenlose Multiplikation mit weniger Aufwand erzielt werden kann.
  • Diese Aufgabe wird durch einen Multiplizierer gemäß Anspruch 1 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 Multiplizierer mit einem statischen Entwurf. Es existiert ein weiterer Wunsch nach einem Multiplizierer, der den Grad an Schaltungsanordnungs- und Führungs-Komplexität von herkömmlichen Multiplizierern reduziert.
  • Diese und weitere Aufgaben, Merkmale und technischen Vorteile 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 modifizierten Baugh-Wooley-Algorithmus, um ein optimales Gerade- und Ungerade-Linearsummierungsarray zum Durchführen von sowohl einer vorzeichenbehafteten als auch vorzeichenlosen Hochgeschwindigkeitsmultiplikation zu ermöglichen. Das heißt, daß ein bevorzugtes Ausführungsbeispiel ein Linearsummierungsarray ermöglicht, das kleiner an Größe und einfacher im Entwurf ist als die Multiplizierarrays, die im Stand der Technik typischerweise für die vorzeichenbehaftete Multiplikation implementiert sind. Angenommen, beispielsweise, eine 16-Bit-mal-16-Bit-Multiplikation wird durchgeführt, verwendet ein bevorzugtes Ausführungsbeispiel ein Linearsummierungsarray, das 16 mal 14 groß ist, und nicht, wie die herkömmlichen Multiplizierarrays, die wegen den zusätzlichen Vorzeichenerweiterungsspalten, die bei herkömmlichen Entwürfen verwendet werden, typischerweise 22 mal 14 groß sind.
  • Folglich passen die resultierenden Spalten des Multiplizierarrays eines bevorzugten Ausführungsbeispiels exakt zu dem Eingangsabstand der Operanden, was die Anzahl von Schaltungsanordnungskomponenten, 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ührungsbeispiel 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 reduziert. Der modifizierte Baugh-Wooley-Algorithmus eines bevorzugten Ausführungsbeispiels übersetzt einen vorzeichenbehafteten 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 vorzeichenlose 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 Linearsummierungsarray zum Durchführen von sowohl einer vorzeichenbehafteten als auch einer vorzeichenlosen Multiplikation aufweist. Insbesondere verwendet ein bevorzugtes Ausführungsbeispiel den Baugh-Wooley-Algorithmus, um sowohl eine vorzeichenbehaftete als auch eine vorzeichenlose Multiplikation durchzuführen. Darüber hinaus liefert ein bevorzugtes Ausführungsbeispiel einen statischen Entwurf zum Durchführen von sowohl einer vorzeichenbehafteten als auch einer vorzeichenlosen 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 Multiplikation verwendet wird, was eine statische Struktur ermöglicht, die viel einfacher als die herkömmlichen Booth-Codierungsstrukturen zum Durchführen einer vorzeichenbehafteten Multiplikation ist. Die lineare Summierung mit einer Gerade-Und-Ungerade-Struktur ermöglicht einen statischen Hochgeschwindigkeitsmultipliziererentwurf, der der dynamischen Booth-Codierungsmultiplizierergeschwindigkeit ähnlich ist. Folglich besteht ein Vorteil eines Aspekts der vorliegenden 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 durchführen. Folglich besteht ein Vorteil eines Aspekts der vorliegenden Erfindung darin, daß ein Multiplizierer offenbart wird, der ein Multiplikationsarray aufweist, das weniger Schaltungsanordnungs- und weniger Führungskomplexität erfordert, als dies für eine vorzeichenbehaftete Multiplikation bei herkömmlichen Multiplizierern erforderlich ist. Darüber hinaus besteht ein Vorteil eines Aspekts der vorliegenden Erfindung darin, daß ein statischer Entwurf für einen Multiplizierer offenbart wird, der die Leistung der Schaltungsanordnung 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ömmlichen Multiplizierern erforderlich ist. Zusätzlich besteht ein weiterer Vorteil eines Aspekts der vorliegenden Erfindung 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ührungsbeispiels ist beispielsweise mit einer Frequenz von 1 Gigahertz oder mehr betreibbar.
  • Die vorhergehende Beschreibung hat die Merkmale und technischen Vorteile der vorliegenden Erfindung eher grob erläutert, damit die folgende detaillierte Beschreibung der Erfindung besser verstanden werden kann. Zusätzliche Merkmale und Vorteile der Erfindung, die den Gegenstand der Ansprüche der Erfindung bilden, werden im folgenden beschrieben. Von Fachleuten sollte erkannt werden, daß die offenbarte Konzeption und das offenbarte spezifische Ausführungsbeispiel 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 Aufbauten den Schutzbereich der Erfindung, wie er in den beiliegenden Ansprüchen definiert ist, nicht verlassen.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend bezugnehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
  • 1 ein exemplarisches Multiplizierarray, das sich aus der Multiplikation von Operanden X[3:0] und Y[3:0] ergibt;
  • 2A eine Schaltungsanordnung zum Erzeugen der Partialprodukte eines Multiplizierarrays und Eingeben solcher Partialprodukte in ein CSA-Array, um eine Endsumme und einen Endübertrag zu erzeugen;
  • 2B eine Schaltungsanordnung zum Erzeugen eines Ausgangssignals eines Multiplizierers;
  • 2C eine Schaltungsanordnung eines herkömmlichen Multiplizierers, der den Booth-Codierungsalgorithmus verwendet;
  • 3A ein Beispiel von Partialprodukten bei einem Multiplizierarray für eine 16-Bit-mal-16-Bit-Multiplikation;
  • 3B ein exemplarisches CSA-Array, das bei einem bevorzugten Ausführungsbeispiel implementiert sein kann;
  • 3C eine physische Position in einem Layout der CSA-Arrayanordnung eines bevorzugten Ausführungsbeispiels;
  • 4 Gleichungen für einen modifizierten Baugh-Wooley-Algorithmus eines bevorzugten Ausführungsbeispiels, der sowohl eine vorzeichenbehaftete als auch eine vorzeichenlose Multiplikation ermöglicht;
  • 5 ein Multiplizierarray, das bei einem bevorzugten Ausführungsbeispiel verwendet wird, um sowohl eine vorzeichenbehaftete als auch eine vorzeichenlose Multiplikation zu ermöglichen;
  • 6 detaillierter die Implementierung eines Eckbits des Multiplizierarrays von 5;
  • 7A ein bevorzugtes Ausführungsbeispiel zum Erzeugen von Partialprodukten, die in das CSA-Array in eine Spalte des exemplarischen Multiplizierarrays von 5 eingegeben werden sollen;
  • 7B ein bevorzugtes Ausführungsbeispiel zum Erzeugen von Partialprodukten, die in das CSA-Array in einer Zeile des exemplarischen Multiplizierarrays von 5 eingegeben werden sollen;
  • 7C ein bevorzugtes Ausführungsbeispiel zum Erzeugen eines Partialprodukts, das in das CSA-Array des Bereichs 502 des exemplarischen Multiplizierarrays von 5 eingegeben werden soll;
  • 7D ein bevorzugtes Ausführungsbeispiel zum Erzeugen eines Bits eines Bereichs 508 des exemplarischen Multiplizierarrays von 5;
  • 8 eine exemplarische Übersicht der tatsächlichen physischen Implementierung des Multiplizierers eines bevorzugten Ausführungsbeispiels;
  • 9 eine exemplarische parallele Implementierung von vier 16-mal-16- Multiplizierarrays, bei dem Multiplizierer eines am meisten bevorzugten Ausführungsbeispiels; und
  • 10 ein exemplarisches Zeiteinteilungsdiagramm eines Zweitaktzyklus-Multiplizierers eines am meisten bevorzugten Ausführungsbeispiels.
  • Ein bevorzugtes Ausführungsbeispiel der vorliegenden Erfindung 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 Hochgeschwindigkeits- (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 bevorzugtes Ausführungsbeispiel ein Multiplizierarray, das der Größe der Operanden näher entspricht, was den Grad an Schaltungsanordnung, die implementiert werden muß, und die Komplexität beim Durchführen der Führung innerhalb des Multiplizierarrays gegenüber typischen herkömmlichen Implementierungen reduziert.
  • Sich den 3A und 3B zuwendend wird ein exemplarisches CSA-Array 300 beschrieben, das bei einem bevorzugten Ausführungsbeispiel 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 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. 3A zeigt die Partialprodukte in der Reihenfolge der Wertig keit. Die Partialprodukte in der selben vertikalen Spalte weisen die selbe Wertigkeit auf. 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 Linearsummierungsmultiplizierers (d. h. verringert die Zeitdauer, die für seine Operation erforderlich ist, um die Hälfte), verglichen zu dem üblichen seriellen CSR-Array. 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.
  • 3B liefert ein einfaches Beispiel eines Linearsummierungs-CSA-Arrays mit einer Gerade-Und-Ungerade-Struktur für die Wertigkeit 12. Wie es in 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 Wertigkeit 12 (d. h. X12·Y0, X11·Y1 und X10·Y2) als drei Eingangssignale entgegen. Der zweite CSA in dem Layout von 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 entgegen 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 Übertrag 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 eingegeben. Das CSA 314 erzeugt eine Summe S5 und einen Übertrag 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 zusammen mit einem Übertrag C8, der von der vorhergehenden ungeraden 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 Überträ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öglichen, daß ein solches bevorzugtes Ausführungsbeispiel das erwünschte Geschwindigkeitsziel mit einem statischen Schaltungsentwurf 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 Multiplikation eines N-Bit-Operanden A und eines N-Bit-Operanden B zu beschreiben, wobei dieselben ferner in 4 gezeigt sind:
    Figure 00130001
    Figure 00140001
  • Wie es im vorhergehenden gezeigt ist, sind die zwei Operanden (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ührungsbeispiels 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 4 dargestellt ist. Der erste Teil des Terms ist SA·SB·22N–2, was die Eckzelle 508 des Multiplizierarrays eines am meisten bevorzugten Ausführungsbeispiels ist, das in 5 gezeigt ist. Der zweite Teil des Terms ist (SA·(–1)·2N–1·B'), was die Spalte 504 des Multiplizierarrays von 5 ist. Der dritte Term ist (SB·(–1)·2N 1·A'), was die Zeile 506 des Multiplizierarrays von 5 ist. Der vierte Term ist (A'·B'), was der vorzeichenlose Arraykern 502 des Multiplizierarrays von 5 ist.
  • Der zweite Teil des Terms, der in 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 4 gezeigt ist (d. h. SB·(–1)·2N 1·A'), übersetzt den Operanden B von einem vorzeichenbehafteten Operanden in einen vorzeichenlosen Operanden. Das bedeutet, daß, falls das Vorzeichenbit des Operanden 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 vorzeichenlose Multiplikation übersetzt, um Vorzeichenerweiterungen bei dem Multiplizierarray zu vermeiden.
  • Darüber hinaus implementiert ein bevorzugtes Ausführungsbeispiel 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:
    Figure 00150001
  • Wie es in der vorhergehenden Gleichung gezeigt ist, besteht der Unterschied zwischen der vorzeichenbehafteten Multiplikation 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 Multiplizierarrays 500 von 5 entsprechen). Da eine Vorzeichen(sign) Erweiterung für die vorzeichenbehaftete Multiplikation in das Bit des Bereichs 508 von 5 vorhanden ist, werden, wenn eine oder beide von SA und SB 1 ist (was anzeigt, 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 vorzeichenbehaftete Multiplikation das Bit 508 gleich (SA+SB) ist (wie es vollständiger bezugnehmend auf 6 und 7D erörtert wird).
  • Um mit dem selben Multiplizier-CSA-Array, das in dem modifizierten Baugh-Wooley-Algorithmus implementiert ist, der im vorhergehenden zur Durchführung der vorzeichenbehafteten Multiplikation beschrieben wurde, eine vorzeichenlose Multiplikation zu ermöglichen, wird eine spezielle Schaltungsanordnung verwendet, um das Partialprodukt zu manipulieren, das in das CSA-Array des Multiplizierers eingegeben wird, was bezugnehmend auf 7A7D detaillierter erörtert wird. Das CSA-Array eines bevorzugten Ausführungsbeispiels ist implementiert, um ein Multiplizierarray 500 zu erzeugen, wie es in 5 gezeigt ist. Wie es gezeigt ist, umfaßt das Multiplizierarray 500 die Terme, die für den Algorithmus von 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 4 genügt. Das Multiplizierarray 500 umfaßt ferner eine Spalte 504, die bei einem bevorzugten Ausführungsbeispiel die äußerste linke Spalte des Multiplizierarrays ist, und die dem Term (SA·(–1)·2N–1·B') der Gleichung von 4 genügt. Darüber hinaus umfaßt das Multiplizierarray 500 bei einem bevorzugten Ausführungsbeispiel die untere Zeile 506, die dem Term (SB·(–1)·2N–1·Α') der Gleichung von 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 4 genügt.
  • Dementsprechend erzeugt das Summieren dieser vier Terme der Gleichung von 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 Multiplikation durchzuführen, wobei die vorzeichenlose Multiplikation 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 7A und 7B gezeigt, die detaillierter im folgenden beschrieben werden.
  • Zusätzlich ist das Multiplizierarray 500 eines bevorzugten Ausführungsbeispiels relativ zu herkömmlichen Multiplizierarrays zum Durchführen einer vorzeichenbehafteten Multiplikation kleiner. Insbesondere beseitigt das Multiplizierarray 500 eines bevorzugten Ausführungsbeispiels das Erfordernis, eine Vorzeichenerweiterung, wie z. B. eine Vorzeichenerweiterung 44 des Arrays 40, die in 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 Multiplizierer 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 Implementierungen, die die Booth-Codierung für die vorzeichenbehaftete Multiplikation verwenden, typischerweise erforderlich ist. Als ein Ergebnis ist die Schaltungsanordnung, die zur Implementierung des Multiplizierarrays 500 eines bevorzugten Ausführungsbeispiels erforderlich ist, reduziert, wodurch die Komplexität der Führung innerhalb des Multiplizierarrays, der Oberflächenbereich, der durch das Multiplizierar ray eingenommen wird, die Leistung, die durch das Multiplizierarray verbraucht wird, und die Kosten der Implementierung des Multiplizierarrays reduziert werden.
  • Die Funktionsweise des Eckbits von 508 des Multiplizierarrays 500 bei einem bevorzugten Ausführungsbeispiel ist detaillierter in 6 gezeigt. Wie es in 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 6 veranschaulicht, auf einen logisch hohen Zustand eingestellt (z. B. eine logische 1), falls sich entweder eines der beiden oder beide der Vorzeichenbits 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 Vorzeichenbits in einem logisch niedrigen Zustand befinden.
  • Es wird sich nun 7A und 7B zugewandt. Es ist ein bevorzugtes 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ührungsbeispiel 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 Vorzeichen des Operanden A. Vielmehr ist SA das höchstwertige Bit („MSB") des Operanden A. Für die vorzeichenlose Multiplikation lautet die Gleichung für den Bereich 504 (SA·2N–1·B'). Im Vergleich dazu lautet die Gleichung für den Bereich 504 bei der vorzeichenbehafteten Multiplikation (SA·(–1)·2N–1·B'). Bei der Implementierung der vorzeichenlosen 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 Multiplikation 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 Durchführung von sowohl der vorzeichenbehafteten als auch der vorzeichenlosen Multiplikation verwendet wird. Dementsprechend wird der modifizierte Baugh-Wooley-Multiplizierer für die vorzeichenbehaftete Multiplikation eines bevorzugten Ausführungsbeispiels verwendet, um ebenfalls die vorzeichenlose Multiplikation durchzuführen.
  • Ein bevorzugtes Ausführungsbeispiel verwendet ein Vorzeichensteuerungsbit, um das modifizierte Baugh-Wooley-Multiplizierarray zu steuern, um entweder eine vorzeichenbehaftete Multiplikation oder eine vorzeichenlose Multiplikation durchzuführen. Genauer ausgedrückt wird, wenn eine vorzeichenbehaftete Multiplikation durchgeführt wird, das Vorzeichensteuerungsbit bei einem bevorzugten Ausführungsbeispiel auf 1 eingestellt bzw. gesetzt. Wie es in 7A gezeigt ist, wird das Vorzeichensteuerungsbit mit dem Rest des Operanden in ein Exklusiv-ODER- (XOR-) Gatter 702 eingegeben. Wenn das Vorzeichensteuerungsbit auf 1 eingestellt ist, wird die vorzeichenbehaftete Multiplikation freigegeben. Dementsprechend wird Y[14:0] durch das XOR 702 invertiert. Das invertierte Y[14:0] wird daraufhin mit dem Vorzeichenbit 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 vorhergehenden 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) beschrieben 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 vorzeichenlose Multiplikation eingegeben werden.
  • Wie es ferner in 7A gezeigt ist, wird das Ausgangssignal des XOR-Gatters 702 mit dem Vorzeichenbit des Operanden X (d. h. SX) in ein UND-Gatter 704 eingegeben. Dementsprechend unterzieht das UND-Gatter 704, wenn die vorzeichenbehaftete 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 Multiplikation 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 vorzeichenlose Multiplikation erwünscht ist.
  • In der 7B ist die Schaltung zum Erzeugen des Partialprodukts gezeigt, das in das CSA-Array des Bereichs 506 von 5 eingegeben werden soll. Wie es gezeigt ist, ist die Schaltungsanordnung zu derjenigen von 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 Partialprodukte zu erzeugen, die abhängig von dem Vorzeichensteuerungsbit für die vorzeichenbehaftete Multiplikation und die vorzeichenlose Multiplikation als Eingangssignale in die CSA des Bereichs 506 von 5 verwendet werden sollen. Wie es in 7C gezeigt ist, werden UND-Gatter, wie z. B. das UND-Gatter 732, verwendet, um die Partialprodukte für die CSA-Eingänge des Bereichs 502 des Multiplizierarrays 500 von 5, d. h. dem vorzeichenlosen Arraykern, zu erzeugen. Ein Vorteil eines Baugh-Wooley-Multiplizierers eines bevorzugten Ausführungsbeispiels 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ührungsbeispiels werden, wenn das Vorzeichensteuerungsbit 1 ist (was anzeigt, daß eine vorzeichenbehaftete Multiplikationsoperation durchgeführt wird), die Operanden entweder invertiert, wenn das Vorzeichenbit des anderen Eingangsoperanden 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 5. Wann immer ein Operand invertiert wird, addiert ein bevorzugtes Ausführungsbeispiel 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ührungsbeispiel 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 befindet, 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 bearbeitbaren Position innerhalb des CSA-Arrays implementiert, die jegliche bearbeitbare Position bei verschiedenen Implementierungen sein kann.
  • Wie es im vorhergehenden erörtert wurde, liegt der Unterschied zwischen der vorzeichenbehafteten Multiplikation und der vorzeichenlosen Multiplikation bei dem modifizierten Baugh-Wooley-Multiplizierer des bevorzugten Ausführungsbeispiels in den Bereichen 504, 506 und 508 des Multiplizierarrays von 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-Algorithmusses eines bevorzugten Ausführungsbeispiels. 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 bevorzugten 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 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 liefern, 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.
  • 8 zeigt eine Übersicht der Multiplizierereinheit 800 eines bevorzugten Ausführungsbeispiels. Bei einem bevorzugten Ausführungsbeispiel ist die Multiplizierereinheit in einer IA64-Mikroprozessor-Multimediaeinheit (MMU) implementiert. Darüber hinaus weist bei einem bevorzugten Ausführungsbeispiel die Multiplizierereinheit 800 eine Zweitaktzyklusoperation auf, was bedeutet, daß von dem Empfang zweier Eingangsoperanden bis zu der Berechnung der Ergebnisse für die Befehle (einschließlich der Manipulation der Partialprodukte für die Eingangssignale zu dem Multiplizierer-CSA-Array für die vorzeichenbehaftete/vorzeichenlose Multiplikation, das Addieren der Endsumme und des Endübertrags 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.
  • 8 zeigt eine Übersicht der tatsächlichen physischen Implementierung des Multiplizierers eines bevorzugten Ausführungsbeispiels (der das Gerade-und-Ungerade-Linearsummierungs-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 7A, 7B, 7C und 7D gezeigt sind, um eine Endsumme und einen Endübertrag zu erzeugen. Die erste Zeile des CSA-Arrays in 8 weist die Wertigkeit 16 bis Wertigkeit 1 (von links nach rechts) auf. Die erste Zeile von CSAs in 8 addiert die ersten drei Zeilen (d. h. die 0. Zeile bis 2. Zeile) von Partialprodukten in 3A. Die zweite Zeile des CSA-Arrays in 8 weist die Wertigkeit 16 bis Wertigkeit 2 (von links nach rechts) auf. Diese zweite Zeile von CSAs in 8 addiert die zweiten drei Zeilen (d. h. von der 3. Zeile bis zu der 5. Zeile) von Partialprodukten in 3A. Es wird darauf hingewiesen, daß das CSA-Array eines bevorzugten Ausführungsbeispiels ein statischer Entwurf ist.
  • Die ersten zwei Zeilen von CSAs in 8 umfassen 16 Spalten 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ührungsbeispiels, das in 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 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ührungsbeispiel SF[3] und CF[3] erzeugt werden, daraufhin SF[4] und CF[4] usw.), werden bei einem bevorzugten Ausführungsbeispiel 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 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. Folglich werden mit dem Ende des ersten Taktzyklusses die Ergebnisse von res[30:27], CF[26:13], SF[26:13] und res[12:0] erhalten.
  • Zu dem Beginn des zweiten Taktzyklusses addiert der dynamische 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 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-Befehlen) zu erzeugen.
  • Wie es in 9 gezeigt ist, sind bei dem PMUL-Multiplizierer 900 eines am meisten bevorzugten Ausführungsbeispiels für einen 64-Bit-Datenweg und für 64-Bit-Eingangsoperanden (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ührungsbeispiel 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 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 Taktzyklusses 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 dynamischen 14-Bit-Addierers) und das Schieben der Ergebnisse und Treiben der Ergebnisse zu dem Umgehungsnetzwerk- durchgefü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 vorzeichenbehaftete als auch eine vorzeichenlose Multiplikation durchzufü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 Vorteil des Verwendens der linearen Summierung mit einer Gerade-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 Komplexität als derjenigen eines bevorzugten Ausführungsbeispiels umfassen. Folglich ermöglicht ein bevorzugtes Ausführungsbeispiel einen viel einfacheren Entwurf mit weniger Fläche, weniger Kosten und weniger Leistung, als dies für herkömmliche Multiplizierer üblicherweise erforderlich ist, die eine vorzeichenbehaftete und eine vorzeichenlose Multiplikation durchführen. Folglich liefert ein bevorzugtes Ausführungsbeispiel einen Multiplizierer mit einem Multiplikationsarray, 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 Eingangssignale 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 verwendet ein bevorzugtes Ausführungsbeispiel eine Gerade-und-Ungerade-Schaltungsanordnungsimplementierung in dem CSA-Array, um die Geschwindigkeit der Durchführung der Multiplikation weiter zu verbessern. Ferner liefert ein bevorzugtes Ausführungsbeispiel einen statischen Entwurf, was die Leistung der Schaltungsanordnung reduzieren kann. Die kapazitive Stromlast eines bevorzugten Ausführungsbeispiels kann beispielsweise um 60% oder mehr unter diejenige reduziert werden, die typischerweise bei herkömmlichen Multiplizierern erforderlich ist. Ferner erfordert ein bevorzugtes Ausführungsbeispiel kein Taktschema, das üblicherweise bei herkömmlichen dynamischen Booth-Multiplizierern vorhanden ist. Zusätzlich erfordert ein bevorzugtes Ausführungsbeispiel eine viel weniger strenge Überprüfung während der Herstellung der Schaltungsanordnung verglichen zu herkömmlichen Multiplizierern.
  • Es wird darauf hingewiesen, daß ein bevorzugtes Ausführungsbeispiel in einem Prozessor implementiert sein kann, der für ein Computersystem, wie z. B. einen Personalcomputer (PC), einen Laptop-Computer oder einen Personaldatenassistentvorrichtung (PDA; PDA = personal data assistent) (z. B. einen Palmtop-PC) verwendet wird. Natürlich wird darauf hingewiesen, 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 Ansprüche definiert ist. Darüber hinaus soll der Schutzbereich der vorliegenden Anmeldung nicht auf die speziellen Ausführungsbeispiele 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, Stoffzusammensetzungen, 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. Dementsprechend sollen die anhängigen Ansprüche in ihrem Schutzbereich solche Prozesse, Maschinen, eine solche Herstellung, solche Stoffzusammensetzungen, Einrichtungen, Verfahren oder Schritte umfassen.

Claims (11)

  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 Erzeugungseinrichtung ein Linearsummierungsarray (300) mit einer Gerade-Und-Ungerade-Struktur zum Summieren von Partialprodukten der zumindest zwei Operanden aufweist, und wobei das Linearsummierungsarray (300) aufgebaut ist, um sowohl eine vorzeichenbehaftete als auch eine vorzeichenlose Multiplikation zu ermöglichen.
  2. Multiplizierer gemäß Anspruch 1, bei dem das Linearsummierungsarray (300) gemäß einem modifizierten Baugh-Wooley-Algorithmus für die vorzeichenbehaftete Multiplikation implementiert ist.
  3. Multiplizierer gemäß Anspruch 2, 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 Operanden, SA das Vorzeichenbit für den Operanden A, SB das Vorzeichenbit für den Operanden B, A' die Bits des Operanden A ausschließlich seines Vorzeichenbits und B' die Bits des Operanden B ausschließlich seines Vorzeichenbits ist.
  4. Multiplizierer gemäß Anspruch 3, bei dem der modifizierte 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.
  5. Multiplizierer gemäß einem der Ansprüche 2 bis 4, bei dem der Baugh-Wooley-Algorithmus einen vorzeichenbehafteten Operanden in einen vorzeichenlosen Operanden übersetzt.
  6. Multiplizierer gemäß einem der Ansprüche 1 bis 5, bei dem die resultierenden Spalten des Linearsummierungsarrays (300) dem Eingangsabstand der Operanden entsprechen, die in den Multiplizierer eingegeben werden.
  7. Multiplizierer gemäß Anspruch 6, wobei in den Multiplizierer 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 statischen Entwurf implementiert ist.
  9. Multiplizierer gemäß einem der Ansprüche 1 bis 8, wobei der Multiplizierer ein Hochgeschwindigkeitsmultiplizierer ist.
  10. Multiplizierer gemäß Anspruch 9, wobei der Multiplizierer 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 Multiplizierer freigegeben ist.
DE10105945A 2000-02-21 2001-02-09 Multiplizierer mit Linearsummierungsarray sowohl zur vorzeichenbehafteten als auch zur vorzeichenlosen Multiplikation Expired - Lifetime DE10105945B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/510,274 US6708193B1 (en) 2000-02-21 2000-02-21 Linear summation multiplier array implementation for both signed and unsigned multiplication
US09/510,274 2000-02-21

Publications (2)

Publication Number Publication Date
DE10105945A1 DE10105945A1 (de) 2001-09-20
DE10105945B4 true 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)

* Cited by examiner, † Cited by third party
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
WO2009063050A1 (en) * 2007-11-15 2009-05-22 Texas Instruments Deutschland Gmbh Method and apparatus for multiplying binary operands
DE102007056104A1 (de) 2007-11-15 2009-05-20 Texas Instruments Deutschland Gmbh Verfahren und Vorrichtung zur Multiplikation von Binäroperanden
US7982496B1 (en) 2009-04-02 2011-07-19 Xilinx, Inc. Bus-based logic blocks with optional constant input
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
US9411554B1 (en) * 2009-04-02 2016-08-09 Xilinx, Inc. Signed multiplier circuit utilizing a uniform array of logic blocks
US7746109B1 (en) 2009-04-02 2010-06-29 Xilinx, Inc. Circuits for sharing self-timed logic
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
US7948265B1 (en) 2009-04-02 2011-05-24 Xilinx, Inc. Circuits for replicating self-timed logic
US7746104B1 (en) 2009-04-02 2010-06-29 Xilinx, Inc. Dynamically controlled output multiplexer circuits in a programmable integrated circuit
US7746103B1 (en) 2009-04-02 2010-06-29 Xilinx, Inc. Multi-mode circuit in a self-timed integrated circuit
US9002915B1 (en) 2009-04-02 2015-04-07 Xilinx, Inc. Circuits for shifting bussed data
US8706793B1 (en) 2009-04-02 2014-04-22 Xilinx, Inc. Multiplier circuits with optional shift function
US7746111B1 (en) 2009-04-02 2010-06-29 Xilinx, Inc. Gating logic circuits 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
US7733123B1 (en) 2009-04-02 2010-06-08 Xilinx, Inc. Implementing conditional statements in self-timed logic circuits
US7746108B1 (en) 2009-04-02 2010-06-29 Xilinx, Inc. Compute-centric architecture for integrated circuits
US7746102B1 (en) 2009-04-02 2010-06-29 Xilinx, Inc. Bus-based logic blocks for self-timed integrated circuits
US7746105B1 (en) 2009-04-02 2010-06-29 Xilinx, Inc. Merging data streams in a self-timed programmable integrated circuit
US7746101B1 (en) 2009-04-02 2010-06-29 Xilinx, Inc. Cascading input structure for logic blocks in integrated circuits
US7746110B1 (en) 2009-04-02 2010-06-29 Xilinx, Inc. Circuits for fanning out data in a programmable self-timed integrated circuit
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实现有符号运算的方法、装置、设备和介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4495593A (en) * 1982-07-01 1985-01-22 Hewlett-Packard Company Multiple bit encoding technique for combinational multipliers
US5303176A (en) * 1992-07-20 1994-04-12 International Business Machines Corporation High performance array multiplier using four-to-two composite counters
US6029187A (en) * 1997-10-28 2000-02-22 Atmel Corporation Fast regular multiplier architecture

Family Cites Families (12)

* Cited by examiner, † Cited by third party
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
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
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
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4495593A (en) * 1982-07-01 1985-01-22 Hewlett-Packard Company Multiple bit encoding technique for combinational multipliers
US5303176A (en) * 1992-07-20 1994-04-12 International Business Machines Corporation High performance array multiplier using four-to-two composite counters
US6029187A (en) * 1997-10-28 2000-02-22 Atmel Corporation Fast regular multiplier architecture

Also Published As

Publication number Publication date
US6708193B1 (en) 2004-03-16
US20040024804A1 (en) 2004-02-05
DE10105945A1 (de) 2001-09-20

Similar Documents

Publication Publication Date Title
DE10105945B4 (de) Multiplizierer mit Linearsummierungsarray sowohl zur vorzeichenbehafteten als auch zur vorzeichenlosen Multiplikation
DE69838877T2 (de) Architektur eines schnellen regulären multiplizierers
DE3927009A1 (de) Addierschaltung
DE69632978T2 (de) Multi-Operand-Addierer, der Parallelzähler benutzt
DE69821408T2 (de) Multiplikationsverfahren und -vorrichtung
DE2913327C2 (de) Matrix-Multiplizierer
DE69731700T2 (de) Arithmetischer Schaltkreis und arithmetisches Verfahren
DE3901995C2 (de)
DE3700991A1 (de) Digitaler uebertragsvorgriffsaddierer
DE102006004557A1 (de) Kryptografische Logikschaltung und Kryptografieverfahren
DE19839627A1 (de) Digitaler Signalprozessor
DE4101004C2 (de) Paralleler Multiplizierer mit Sprungfeld und modifiziertem Wallac-Baum
DE2946846A1 (de) Rundungs-korrekturlogik fuer multiplizierer fuer modifizierten booth-algorithmus
DE3434777C2 (de)
DE2826773A1 (de) Verfahren und schaltungsanordnung zum feststellen der wertigkeit von ziffern in arithmetischen operationen mit dezimalrechnern
DE3836205C2 (de)
EP0090298A1 (de) In MOS-Technik integrierter schneller Multiplizierer
DE1241159B (de) UEbertragschaltung fuer ein Schnelladdierwerk
EP0424410B1 (de) Multiplizierer
EP0752130B1 (de) Multiplizierer mit geringer laufzeit
DE10050589B4 (de) Vorrichtung und Verfahren zur Verwendung beim Durchführen einer Gleitkomma-Multiplizier-Akkumulier-Operation
EP1508087B1 (de) Verfahren und integrierte schaltung zur durchführung einer multiplikation modulo m
DE10059492A1 (de) Vorrichtung und Verfahren zum Erhöhen der Leistung von Multiplizierern
DE10139099C2 (de) Carry-Ripple Addierer
DE1774483A1 (de) Binaeres Multiplizierwerk

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