DE69032391T2 - Mehrere Bit umkodierender Multiplizierer - Google Patents
Mehrere Bit umkodierender MultipliziererInfo
- Publication number
- DE69032391T2 DE69032391T2 DE1990632391 DE69032391T DE69032391T2 DE 69032391 T2 DE69032391 T2 DE 69032391T2 DE 1990632391 DE1990632391 DE 1990632391 DE 69032391 T DE69032391 T DE 69032391T DE 69032391 T2 DE69032391 T2 DE 69032391T2
- Authority
- DE
- Germany
- Prior art keywords
- multiplier
- complement
- multiplicand
- carry
- bit
- 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 - Fee Related
Links
- 239000000047 product Substances 0.000 claims description 276
- 230000000295 complement effect Effects 0.000 claims description 218
- 239000012467 final product Substances 0.000 claims description 18
- 230000004048 modification Effects 0.000 claims description 17
- 238000012986 modification Methods 0.000 claims description 17
- 230000015572 biosynthetic process Effects 0.000 claims description 6
- 239000003795 chemical substances by application Substances 0.000 claims 8
- 230000001174 ascending effect Effects 0.000 claims 1
- 238000000034 method Methods 0.000 description 35
- 238000007792 addition Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 5
- 238000012937 correction Methods 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 238000003169 complementation method Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
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/533—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
- G06F7/5334—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product
- G06F7/5336—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm
- G06F7/5338—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm each bitgroup having two new bits, e.g. 2nd order MBA
-
- 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/4806—Computations with complex numbers
- G06F7/4812—Complex multiplication
-
- 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/544—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 for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- 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
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
- Logic Circuits (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Error Detection And Correction (AREA)
Description
- Die vorliegende Erfindung bezieht sich auf Multiplizierer wie im Oberbegriff der unabhängigen Ansprüche beschrieben.
- Alle modernen schnellen binären Multiplizierer verwenden einige Varianten der grundlegenden Technik der Erzeugung von Partialprodukten, die zuerst von Seymour Cray angewandt wurde, und normalerweise als "kombinatorisch", "Papier und Bleistift" oder "flow-through" bezeichnet wird. In ihrer gewöhnlichsten Form involviert die Technik einfach aufeinander folgende Multiplikationen eines K Zeichen langen Operanden A (Multiplikand) mit einer einzelnen Ziffer B(m) des M Zeichen langen Operanden B (Multiplikator) und dann ein Verschieben des resultierenden Partialprodukts P(m) nach links um eine der Position des Zeichens B(m) im Multiplikanden entsprechende Zahl von Stellen. In diesem speziellen Fall wird angenommen, dass die Zahl der Stellen, um die das Partialprodukt verschoben werden soll, direkt gleich m ist. Die Verschiebeoperation ist eigentlich äquivalent zur Multiplikation des Multiplikanden mit dem Gewicht des dezimalen (oder binären) Zeichens B(m).
- Nach Erzeugung aller M Partialprodukte werden sie nacheinander summiert, um das (M+K) Ziffern lange Endprodukt von A und B zu ergeben. Diese Technik, die für die Multiplikation von Dezimalzahlen verwendet wird, kann auch direkt auf das Prinzip der binären Multiplikation zweier Zahlen A und B angewandt werden, deren entsprechende binären Breiten K und M sind. Das Beispiel für die Multiplikation zweier solcher 4-Bit Operanden A=0111=7 und B=0011=3 ist in Tabelle 1 gegeben. Tabelle 1: "Papier-und-Bleistift"- Multiplikation zweier 4-Bit Operanden.
- Die Fähigkeit zum Multiplizieren vorzeichenbehafteter Zahlen ist schwieriger. In der Zweierkomplement-Notation liegt, wenn das höchstwertige Bit eine Null ist, eine positive Zahl vor, während eine negative Zahl vorliegt, wenn das höchstwertige Bit eine 1 ist. Eine Möglichkeit zur Ausführung einer Multiplikation von zwei Zweierkomplement-Zahlen ist die Konversion der negativen Zahlen in deren positive Binärdarstellung, die Multiplikation der positiven oder vorzeichenlosen Versionen und das Anhängen des richtigen Vorzeichens unter Verwendung des Gesetzes der Vorzeichen. Falls beide Operanden das gleiche Vorzeichen haben, dann wäre das vorzeichenlose Produkt das Produkt, das es positiv ist. Falls einer der Operanden negativ ist, muss die Zweierkomplement-Negation des Produkts durchgeführt werden.
- Eine Alternative zur Umwandlung in vorzeichenlose Grössen und Zurückwandlung des Endprodukts wird in Tabelle 2 dargestellt. Tabelle 2: Multiplikation zweier Zweierkomplement- Operanden mit Vorzeichenerweiterung
- Die ersten drei Partialprodukte werden mit Vorzeichenerweiterung durchgeführt. Das vierte Partialprodukt, welches das Vorzeichenbit ist, wird in Zweierkomplement-Notation umgewandelt, bevor die Addition mit den anderen Partialprodukten durchgeführt wird. Dies dient zur Korrektur des negativen Vorzeichenbits in Kombination mit der Vorzeichenerweiterung.
- Wie ersichtlich aus Tabellen 1 und 2, wird, nebst Eingangs- und Ausgangs-Reformatierung der Operanden und des Endprodukts, der Grossteil der Multiplikationszeit, selbst in der einfachsten Form, von den M-1 Additionen zur Erzeugung der Summe der Partialprodukte benötigt. Tatsächlich haben alle algorithmischen Geschwindigkeitsverbesserungen, die in das Design paralleler Multiplizierer eingebracht worden sind, eine Reduktion der Zahl der zur Erzeugung des Endprodukts nötigen Additionen umfasst, sowie die Beschleunigung der nötigen Additionen (Verwendung von "Carry-save" Addierern). Die normalsten heute verwendeten Techniken wenden algorithmische Verfeinerungen des oben beschriebenen Grundkonzepts an: Sie sind bekannt als "Wallace Tree Partial Product Reduction" und "Modified Booth Algorithm".
- Anwendung dieser zwei Techniken kombiniert führt zur potentiellen Reduzierung der nötigen Zahl von Partialprodukt-Additionen auf eine Hälfte der Zahl von Bits des Multiplikators. Entsprechend wird auch die Zeit halbiert, die die Partialprodukte benötigen, um durch das Addierarray zu gehen. Dies wird jedoch auf Kosten der Verwendung eines relativ komplexen Booth-Dekodierers erreicht.
- Booth-Algorithmen, verglichen mit der vorliegenden Erfindung, führen nicht nur zu zusätzlichen Verzögerungen, die von einem komplexeren Booth-Dekodierer bewirkt werden, sondern resultieren auch in vergrösserter Schaltungsgrösse wegen der Notwendigkeit, die Vorzeichenerweiterung durch den CSA (Carry Save Adder) Array zu führen. Dies führt auch zu schlechterer Geschwindigkeitsleistung. Zum Beispiel würden in Tabelle 1 die Partialprodukte 1, 2 und 3 drei, zwei bzw. ein Vorzeichenerweiterungsbits benötigen.
- Somit vergrössert sich, bei Verwendung des Beispiels 1, die Booth-Multiplikation generell quadratisch mit der Zahl von Partialprodukten, die durchgeführt werden müssen, während die kombinatorische Multiplikation von Tabelle 1 linear mit der Zahl von Bits variiert.
- Der originale Booth-Algorithmus und der modifizierte Booth-Algorithmus umfassen die Suche nach und die Bestimmung von Zeichenketten von Nullen oder Einsern im Multiplikator und die Ausführung einer Addition oder Subtraktion für die verschiedenen Partialprodukte abhängig von einer Bestimmung des Anfangs, Endes oder der Mitte der Zeichenkette.
- In der kombinatorischen Multiplikation wird zwischen dem Multiplikanden und der Teilsumme immer eine relative Verschiebung um ein Zeichen durchgeführt, unabhängig davon, ob eine Addition erfolgt ist oder nicht. Der Booth Algorithmus erlaubt mehr als eine Verschiebung pro Mal, abhängig von der Gruppierung von Einsern und Nullen im Multiplikator Bit per Bit, ausgehend vom tiefstwertigen Bit (LSB), und Verschiebung des Partialprodukts relativ zum Multiplikanden während jedes Bit untersuchtwird. Subtrahiere den Multiplikanden vom Partialprodukt, wenn du die erste Eins in einer Kette von Einsern findest. Ahnlich, beim Finden einer ersten Null in einer Kette von Nullen, addiere den Multiplikanden zum Partialprodukt. Führe keine Operation durch, wenn das untersuchte Bit gleich dem vorhergehenden Bit des Multiplikators ist.
- Üblicher ist die Verwendung einer modifizierten Version des Booth-Algorithmus. Der Unterschied zwischen dem Booth- und dem modifizierten Booth-Algorithmus ist wie folgt: Der modifizierte Booth-Algorithmus erzeugt immer m/2 unabhängige Partialprodukte, während der originale Booth eine variable (maximal m/2) Zahl von Partialprodukten erzeugt, abhängig vom Bitmuster des Multiplikators. Natürlich ist parallele Implementation von Hardware nur für die fixe unabhängige Zahl von Partialprodukten geeignet Das modifizierte Booth-Kodierungsschema kodiert 2-Bit-Guppen und erzeugt fünf Partialprodukte für einen 8-Bit Multiplikator, wobei das fünfte Partialprodukt eine Konsequenz der Tatsache ist, dass der Algorithm nur Zweierkomplementzahlen bearbeitet.
- Das konventionellste modifizierte Booth Schema betrachtet ein Bitpaar in jedem Schritt, d.h. Bitpaar-Rekodierung. Die Bits des Multiplikators werden in 2-Bit-Paare aufgeteilt und 3 Bits (ein Triplet) werden pro Mal eingelesen, zwei Bits von laufenden Paar und das dritte Bit (das Überlappungsbit) vom hochwertigen Bit des angrenzenden tieferwertigen Paars. Nach Prüfung jedes Bitpaars konvertiert sie der Algorithmus in einen Satz von 5 vorzeichenbehafteten Zahlen 0, +1, +2, -1 und -2. Gemäss der Bool'schen Wahrheitstabelle, die in Tabelle 3 gezeigt wird, führt jede rekodierte Zahl lediglich eine vereinfachte Operation auf den Multiplikanden aus, wie zum Beispiel Addieren, Subtrahieren oder Verschieben Tabelle 3: Wahrheitstabelle für den modifizierten Booth-Algorithmus mit Bitpaar-Rekodierung
- Die Anwendung des modifizierten Booth- Algorithmus auf das Beispiel nach Tabelle 1 wird in Tabelle 4 gezeigt. Wie erwartet ist das Endprodukt das gleiche. Tabelle 4: Multiplikation mit dem modifizierten Booth
- State-of-the-art Multiplizierer, wie diejenigen, die in DSP- (Digitalen Signalprozessor-) Architekturen eingesetzt werden, sollten auch fähig sein, eine Akkumulierung der Produkte durchzuführen, und auch fähig sein, sowohl mit vorzeichenlosen Ganzahlwerten als auch mit binären Zweierkomplement-Worten zu arbeiten.
- Somit ist es ein Ziel der vorliegenden Erfindung, ein Rekodierungsschema bereitzustellen, dass eine Verbesserung gegenüber dem modifizierten Booth- Algorithmus ist.
- Ein anderes Ziel der vorliegenden Erfindung liegt darin, ein Rekodierungsschema bereitzustellen, das fähig ist, vorzeichenbehaftete und vorzeichenlose Zahlen ohne wesentliche Vorverarbeitung zu verarbeiten.
- Ein noch anderes Ziel der vorliegenden Erfindung ist es, eine Vorzeichenerweiterung bereitzustellen, die weniger Hardware benötigt.
- Ein noch anderes Ziel der vorliegenden Erfindung liegt darin, die Grösse des Addierarrays durch selektive Voraddition zu verringern.
- Ein noch anderes Ziel der vorliegenden Erfindung liegt darin, einen Multiplikator/Akkumulator mit Produktvorzeichen-Erweiterung bereitzustellen.
- Ein sogar noch anderes Ziel der vorliegenden Erfindung liegt darin, verbesserte Mechanismen zur Erzeugung von Zweierkomplementen von Multiplikanden und Multiplikatoren als auch zur Konversion von Sign-Magnitude Zahlen in Zweierkomplenent-Zahlen bereitzustellen.
- Ein sogar noch anderes Ziel der vorliegenden Erfindung liegt darin, einen verbesserten komplexen Multiplikator bereitzustellen, der weniger Register und Multiplexer benötigt.
- Diese und andere Ziele der Erfindung werden durch die Multiplizierer erreicht, die in den unabhängigen Ansprüchen beschrieben werden.
- Das Rekodierschema mittels speziellem Rekodieren und Kontrolle des Übertrags des höchstwertigen Bits erlaubt es dem Rekodierschema, negative Zweierkomplement-Multiplikatoren zu aufzunehmen. Das Rekodierschena kann in 2-Bit, 3-Bit, 4-Bit Gruppen, etc. arbeiten. Für die drei Bits werden nur zwei zusätzliche vorzeichenbehaftete Ziffern verwendet, währen für ein 4-Bit Rekodierungsschema vier zusätzliche Vorzeichenbits verwendet werden. Der Ausgangs-Übertrag der Dreibit und Vierbit Rekodierungsschemen ist vom Eingangs-Übertrag unabhängig.
- Die Vorzeichenerweiterung der Partialprodukte wird verbessert, indem ein einziges Vorzeichenerweiterungswort für alle Vorzeichenerweiterungen verwendet wird. Das Vorzeichenerweiterungswort SEW wird gebildet als Vielzahl negativer Bits (1), anfangend mit dem Vorzeichenbit des ersten negativen Partialprodukts und die Länge des Multiplikators verlängernd, ausser für ein positives Vorzeichenbit (0) für ein Vorzeichenbit folgender negativer Partialprodukte, das für das entsprechende negative Vorzeichenbit des Vorzeichenerweiterungsworts SEW eingesetzt wird. Das einfache Vorzeichenswort SEW wird durch Bestimmung und Zusammenstellung der Vorzeichenbits SE der Partialprodukte als ein Vorzeichenwort erzeugt, und durch Zweierkomplementierung des Vorzeichenworts zur Erzeugung des Vorzeichenerweiterungsworts SEW.
- Die Zahl der Partialprodukte, die den rekodierten Multiplikator verwenden, benötigt ein zusätzliches oder Übertrags-Partialprodukt für den Ausgangs- Übertrag der höchstwertigen rekodierten Gruppe. Ist dieses zusätzliche Partialprodukt negativ, umfasst die Komplementierung die Addition eines Komplementierungs- Übertrags. Wie auch vorhergehend diskutiert, ist das Vorzeichenerweiterungswort eine komplementierte Operation und deshalb muss ebenfalls ein Komplementierungs-Übertrag hinzuaddiert werden. Um die Grösse des Arrays zu reduzieren, bestimmt das vorliegende Schema die Position des Komplementierungs-Übertrags für das Vorzeichenerweite rungswort und das Vorhandensein eines Komplementierungs- Übertrags für das zusätzliche Partialprodukt und addiert diese zwei Überträge im voraus zum Multiplikanden einer der Partialprodukte vor dem Array. Dieser Wert wird dann zurückbehalten, bis er gebraucht wird. Diese Operation wird parallel mit den mehrfachen Rekodierungsmitteln durchgeführt.
- In Multiplizierern/Akkumulatoren ist der Ausgang des Addierarrays eine Summe S und ein Übertrag C von N Bits und das Vorzeichen muss auf die Kapazität des Akkumulatorregisters erweitert werden. Der vorliegende Multiplizierer/Akkumulator erzeugt ein Produktvorzeichen- Erweiterungswort PSEW als Funktion des Multiplikanden und Multiplikators, um die Summe S und den Übertrag C auf die Länge des Akkumulators zu erweitern. Das Produktvorzeichen-Erweiterungswort PSEW wird parallel mit den Partialprodukten und dem Addierarray erzeugt. Ein Endaddierer addiert die Summe S, den Übertrag C, das Produktvorzeichen-Erweiterungswort PSEW und die höchstwertigen Bits des Akkumulatorregisters. Die Endaddierer besitzt die Fähigkeit, die Summe S, den Übertrag C, das Produktvorzeichen-Erweiterungswort und die höchstwertigen Bits in zwei Kombinationsworte zu verschmelzen und einen einfachen Addierer zur Addition der zwei Kombinationsworte. Das Produktvorzeichen-Erweiterungswort PSEW wird eindeutig aus zwei möglichen Alternativen ausgewählt um mit der Summe S, dem Übertrag C und den höchstwertigen Bits des Akkumulatorregisters zu verschmelzen. Das tiefstwertige Bit des Produktvorzeichen-Erweiterungsworts kann eine Eins oder eine Null haben.
- Ein Zweierkomplement kann durch Addition einer Eins zum Einerkomplement wie folgt gebildet werden:
- oder durch Addieren des Komplements des ersten Bits zum Einerkomplements der übrigen Bits, wobei das erste Bit nicht komplementiert ist, wie folgt:
- Durch Bereitstellen der richtigen Auswahl, welcher der beiden Komplementierungsmethoden verwendet werden soll, wird der Komplementierungs-Übertrag, der entweder eins oder &sub0; sein wird, in der gleichen Position im Addierarray bereitgestellt. Die Auswahl der Methode hängt von der Position des Partialprodukts ab, das vom rekodierten Multiplikator erzeugt wird. Wenn der rekodierte Multiplikator zwei ist, dann wird die erste Methode verwendet, und wenn der rekodierte Multiplikator eins ist, dann wird die zweite Methode verwendet.
- Die Fähigkeit, die Methode zur Komplementierung auszuwählen, erlaubt es dem vorliegenden Systems, ohne wesentliche Vorverarbeitung Sign-Magnitude Zahlen zu zu handhaben. Für eine negative Sign-Magnitude Zahl wird der absolute Wert im Multiplikandenregister als Einerkom plement gespeichert. Ob der Ausgang Q oder des Registers ausgewählt wird, ist eine Funktion des negativen oder positiven Partialprodukts und wird lediglich erfordern, dass ein richtiger Komplementierungs-Übertrag bereitgestellt wird. Dies ist die einzige benötigte Verarbeitung. Für einen negativen Sign-Magnitude Multiplikator kann das Einerkomplement des Absolutwerts des Multiplikators im Multiplikatorregister bereitgestellt werden und eine Eins wird während dem Rekodierungsprozess zum tiefstwertigen Bit hinzuaddiert.
- Der Multiplizierer umfasst einen Komplementierer, der Zweierkomplemente des Multiplikanden durch Laden des Multiplikanden oder des Einerkomplements des Multiplikanden in das Multiplikandenregister erzeugt, abhängig vom Eingangsformat des Multiplikanden, Multipkitators und vom Ausgangsformat des Produkts. Der Komplementierer bildet das Zweierkomplement durch Addieren eines Komplementierungs-Übertrags, wenn der Multiplikand als Einerkomplement in das Multiplikandenregister geladen wurde und die rekodierte Multiplikatorgruppe positiv ist. Der Komplementierer bildet auch das Zweierkomplement durch Addieren einen Komplementierungs-Übertrags, wenn der Multiplikand nicht komplementiert in das Multiplikandenregister geladen wurde und die rekodierte Multiplikatorgruppe negativ ist. Die Abspeicherung eines Einerkomplements des negativen Multiplikanden im Multiplikandenregister erlaubt es, dass diese Umkehrung stattfindet.
- Die Fähigkeit, das Zweierkomplement einer Zahl für positive und negative Partialprodukte zu formen, reduziert die Hardware, die in einem komplexen Multiplizierer zur Multiplikation komplexer zahlen (A+jB) und (C+jB) benötigt wird. Die Struktur erfordert vier Register mit vier Partialprodukt-Multiplexern mit Voraddierem und einem Paar von Addierarrays.
- Andere Ziele, Vorteile und neue Eigenschaften der vorliegenden Erfindung ergeben sich aus der folgenden detaillierten Beschreibung der Erfindung unter Berücksichtigung der beiliegenden Figuren.
- Figur 1 ist ein Blockdiagramm eines Multiplizierers gemäss den Prinzipien der vorliegenden Erfindung.
- Figur 2 ist ein Logikdiagramm eines Rekodierers gemäss den Prinzipien der vorliegenden Erfindung.
- Figur 3 ist ein Logikdiagramm des Multiplexers des ersten Partialprodukts P&sub0; gemäss den Prinzipien der vorliegenden Erfindung.
- Figur 4 zeigt andere Multiplexer für Partialprodukte P&sub1; und P&sub2; gemäss den Prinzipien der vorliegenden Erfindung.
- Figur 5 ist ein Logikdiagramm eines zusätzlichen Multiplexers für Produkt P&sub4; mit einem Voraddierer gemäss den Prinzipien der vorliegenden Erfindung.
- Figur 6 ist ein Logikdiagramm eines Vorzeichenerweiterungs-Multiplexers gemäss dem Prinzipien der vorliegenden Erfindung.
- Figur 7 ist ein Blockdiagramm, dass einen komplexen Multiplizierer gemäss den Prinzipien der vorliegenden Erfindung zeigt.
- Figur 8 ist ein Blockdiagramm eines Multiplizierers/Akkumulators gemäss den Prinzipien der vorliegenden Erfindung.
- Figuren 8a und 8b sind Modifikationen des Akkumulatorteils von Figur 8 mit Pipelining gemäss dem Prinzipien der vorliegenden Erfindung.
- Figuren 9a und 9b sind logische Blockdiagramne von X- und Y-Multiplexern für einen 4-Bit Dekoder gemäss den Prinzipien der vorliegenden Erfindung.
- Figuren 10a und 10b sind logische Blockdiagramme von alternativen X- und Y-Multiplexern für ein 4- Bit Rekodierschema gemäss den Prinzipien der vorliegenden Erfindung.
- Figur 11 ist ein Logikdiagramm für einen 4- Bit Rekodierer gemäss den Prinzipien der vorliegenden Erfindung.
- Figuren 12a und 12b sind Logikdiagramme für die Steuerung des Komplementierungs-Übertrags für das Partialprodukt gemäss den Prinzipien der vorliegenden Erfindung.
- Figur 1 zeigt einen Multiplizierer 10 gemäss der vorliegenden Erfindung mit einen Eingangsport 12 für dem Multiplikanden A, einem Eingangsport 14 für die Steuerung des Multiplikandenformats TCA, einem Eingangsport 16 für dem Multiplikator B und einem Eingangsport 18 für die Steuerung des Multiplikatorformats TCB. TCA und TCB stehen für Two's Complenent Format und sind Null, wenn die Zahlen vorzeichenlose Zahlen sind oder 1 wenn die Zahlen Zweierkomplement-Zahlen sind. Das Eingangsport für dem Multiplikanden A ist mit einem Multiplikandenregister 20 und einem Voraddierer 30 verbunden. Das Port 14 für die Steuerung des Multiplikandenformats ist auch mit dem Voraddierer 30 verbunden. Das Multiplikatorport 16 und das Port 18 für die Steuerung des Multiplikandenformats sind beide mit einem Rekodierer 50 verbunden. Der Ausgang des Rekodierers so ist mit einem Multiplikatorregister 60 und dem Voraddierer 30 verbunden und der Ausgang des Voraddierers 30 ist mit dem Voraddierer-Register 40 verbunden. Ein Multiplexerarray 70 erhält Signale vom Ausgang des Multiplikandenregisters 20, des Voraddierer- Registers 40 und des Registers 60 für dem rekodierten Multiplikator. Das Register 60 für dem rekodierten Multiplikatorstellt die Steuerungen für das Multiplexerarray 70 bereit. Der Output des Multiplexerarrays 70 sind Partialprodukte, welche dem Addierarray 80 zur Verfügung gestellt werden, das zum Beispiel ein Wallace-Tree sein kann, obwohl andere Arrays bereitgestellt werden können.
- Der Output des Addierarrays 80, welcher normalerweise ein Übertrag und eine Summe ist, werden in einem Endaddierer 90 addiert, welcher ein Endprodukt an einem Output-Port 92 zur Verfügung stellt.
- Wie weiter unten in einzelnen Abschnitten vollständiger diskutiert wird, rekodiert der Rekodierer 50 zwei oder mehr Bitgruppen des Multiplikators, um dem Satz vorzeichenbehafteter Ziffern auf vier inklusive Null zu beschränken, während die Zahl der Partialprodukte auf die Hälfte reduziert wird. Der Voraddierer 30 erlaubt die Reduktion des Arrays um eine zusätzliche Stufe. Einzigartige Komplementierungsschemen erlauben die Reduktion in Array.
- Im die Zahl der Partialprodukte zu halbieren, wird ein Paar von Bits so rekodiert, dass es nur eine Multiplikation oder ein Partialprodukt für das Bitpaar gibt. Tabelle 5
- Wie aus Tabelle 5 ersichtlich, ist der einzige Fall, in welchem es tatsächlich notwendig ist, die beiden verschobenen A Operanden zu addieren, der Wert 3, wo beide Bits in der Gruppe gleich 1 sind. Es ist somit wünschbar, die Zahl der möglichen 1 im Multiplikator auf ein absolutes Minimum zu reduzieren, in solcher Weise, dass immer noch ein richtiges Resultat der Multiplikation erreicht werden kann. Die Zwei-Bit Rekodierungstechnik rekodiert diese (1, 1) Binärkombination in eine andere Kombination, in der nur ein Partialprodukt innerhalb der Gruppe erzeugt werden wird. Dieses Verfahren basiert auf der einfachen Beobachtung, dass der Wert einer Zwei-Bit Gruppe (2M+1, 2m) ebenfalls dargestellt werden kann als (2m+2, -2m) (z. B. A x 3 = A x (4-1)). Nach einer solchen Rekodierung kann sodann eine Gruppe von zwei 1 durch ein einziges -1 in der tieferwertigen Position der Gruppe ersetzt werden, während eine andere 1 in die tieferwertige Position der nächsten Gruppe übertragen wird. Tabelle 6 zeigt ein Beispiel des Rekodierungsprozesses angewandt auf zwei vorzeichenlose Vierbit Zahlen: Tabelle 6
- Das erste Bitpaar 11 ist gleich -1 mit 1 Übertrag. Dies erzeugte das erste Partialprodukt als Zweierkomplement von 7 mit Vorzeichenerweiterung. Der Übertrag vom ersten Bitpaar erzeugt eine 1 im zweiten Bitpaar.
- Die Kodierung von Tabelle 5 kann betrachtet werden als der Wert der Multiplikatorbits nachdem der Übertrag vom vorhergehenden Bitpaar hinzuaddiert wurde. Eine vollständigere Kodierung, die die Bitpaar-Werte mit und ohne einen Übertrag und die resultierenden Multiplexersteuerungen zeigen, werden in Tabelle 7 illustriert. Tabelle 7
- Wie in Tabelle 7 gezeigt, benötigt die Rekodierungslogik die folgenden vier Multiplexerkontrolsignale, um die Partialprodukte in das Addierarray einzuspeisen:
- SH0: speise dem nicht verschobenen Multiplikanden A in die Addierzeile
- SH1: speise dem um eine Stelle nach links verschobenen Multiplikanden A in die Addierzeile
- TC: Speise dem nicht verschobenen, negierten (Zweierkomplement) Wert von A in die Addierzeile
- C: Addiere 1 zur tieferwertigen Bitposition der nächsten Gruppe
- Analyse der Kontrollsignale von Tabelle 7 erzeugt die folgenden Gleichungen [1a] - [1d] für das erste Bitpaar und [2a] - [2d] für die folgenden Bitpaare:
- Die Fähigkeit der Rekodierungstechnik nach Tabelle 7, mit Zweierkomplement-Zahlen verwendet zu werden, wird unter Hinweis auf Tabelle 8 erklärt, die die Vorzeichenkorrekturtechnik verwendet, welche im U.S. Patent US 4 868 778, No. 07/132,186, eingereicht am 14. Dezember 1987, für Disbrow et al.,beschrieben ist. Tabelle 8: Multiplikation unter Verwendung von Zweibit-Rekodierung mit Korrekturen
- Das erste Bitpaar wird als eine 1 rekodiert und erzeugt ein erstes Partialprodukt PPL. Das zweite Bitpaar wird als -1 rekodiert und erzeugt das zweite Partialprodukt PP2 mit einem Übertrag von 1, welcher das dritte Partialprodukt PP3 erzeugt. Da das zweite Partialprodukt -1 ist, wird es als negatives Partialprodukt betrachtet und sein Vorzeichen wird deshalb erweitert. Dies wird unter Ignorieren des Vorzeichens von A durchgeführt oder unter der Annahme, dass der negative Multiplikand A eine positive Zahl ist. Unter Verwendung der Korrektur des Patents von Disbrow et al. wird ein negatives A addiert, da der Multiplikator B negativ ist, und ein negatives B wird addiert, da der Multiplikand B negativ ist. Das Endprodukt ist eine positive 21.
- Anstelle der Verwendung der Disbrow- Korrekturen, können die spezifischen Vorzeichen des Multiplikanden A und des Multiplikators B bei der Erzeugung der Rekodierung und der Partialprodukte erkannt werden. Wie Sie merken werden, wird die Multiplikation von Tabelle 8 in Tabelle 9 durchgeführt werden, indem spezifische Vorzeichenerkennung verwendet wird. Tabelle 9: Multiplikation unter Verwendung von Zweibit-Rekodierung mit Vorzeichenerkennung
- Es ist offensichtlich, dass Tabelle 9 wesentlich einfacher als Tabelle 8 ist und nur zwei anstelle von drei Partialprodukten und zwei Korrekturworte benötigt. Obwohl der Multiplikator der ersten und zweiten Partialprodukte der gleiche ist in Tabelle 8 und 9, ist die Vorzeichenerweiterung unterschiedlich. In der Technik nach Tabelle 9 gilt das Vorzeichengesetz und erkennt das Vorzeichen des Multiplikanden A wie auch das Vorzeichen des rekodierten Multiplikators b. Für das erste Partialprodukt mit dem negativen Multiplikator A ist der Multiplikand b = +1 ein negatives Partialprodukt und wird somit in Vorzeichen erweitert. Da der zweite Multiplikator b = -1, erzeugt das Vorzeichengesetz ein positives Partialprodukt und keine Vorzeichenerweiterung.
- Das höchstwertige Bitpaar (1, 1) hat einen Wert von 3 und ist gleich einem Multiplikator bm = -1 mit einem Ausgangs-Übertrag. In Zweierkomplement-Zahlen gibt ein höchstwertiges Bit von 1 an, dass es sich um eine negative Zahl handelt und die 1 hat einen Wert von -1 für die Bitposition, in welcher es sich befindet. Deshalb, wenn das letzte Bitpaar einer Zweierkomplenent-Zahl (1, 1) ist, entspricht dies einem -2 + 1, welches gleich -1 ohne Übertrag ist. Somit erzeugt, bei Verwendung der Technik illustriert in Tabelle 9, die Logik zur Bestimmung des Multiplikators b für das höchstwertige Bit die gleichen Resultate, wobei das Bitpaar (1, 1), unabhängig davon, ob es eine Zweierkomplement-Zahl oder eine vorzeichenlose Zahl ist. Der Unterschied ist für eine Zweierkomplement-Zahl, dass der Ausgangs-Übertrag unterdrückt wird, da das Vorzeichenbit einer Zweierkomplement-Zahl keinen Übertrag erzeugen kann.
- Andere Variationen im Kodierungsschema für das höchste Bitpaar mit Zweibit-Rekodierung mit Vorzeichenerkennung, wobei der Multiplikator eine Zweierkomplement-Zahl ist, wird in Tabelle 10 illustriert. Tabelle 10
- Der Vergleich zwischen Tabellen 10 und 7 illustriert, dass für die letzten drei rekodierten Zahlen in Tabelle 10 die Überträge unterdrückt werden. Auch erzeugt der fünfte rekodierte Eintrag in der Tabelle einen negativen Übertrag. Da im Array ein zusätzliches Partialprodukt für die vorzeichenlose Rekodierung vorgesehen werden muss, wird dieser zusätzliche negative Übertrag die Schaltungsmenge nicht erhöhen. Mit Hinblick auf das Kodierungsschema von Tabelle 10, wenn verglichen mit Tabelle 7, sind die Multiplikatoren b für die höchstwertigen Bits gleich, unabhängig davon, ob es ein Zweierkomplement- oder ein vorzeichenloser Multiplikator ist. Die Unterschiede liegen in dem erzeugten Übeträgen. Es sollte in Tabelle 7 und 10 auch bemerkt werden, dass der rekodierte Multiplikator b der gleiche ist für die Zahl oder dem Wert des Bitpaars, falls kein Eingangs-Übertrag vorliegt und für dem gleichen Wert, nachdem ein Eingangs- Übertrag addiert worden ist. Zum Beispiel hat das Bitpaar (0, 0) mit einem Eingangsübertrag von 1 einen Multiplikator b = 1, wie auch das Bitpaar (0, 1) wenn kein Eingangs-Übertrag vorliegt.
- Es sollte bemerkt werden dass, obwohl das höchstwertige Bitpaar für einen Multiplikator mit einer geradenzahl von Bits von (1, 0) ohne Eingangs-Übertrag durch eine -2 in Tabelle 10 dargestellt werden kann. Dies ist nicht erwünscht, da es fünf Vorzeichenziffern inklusive Null erfordern würde, wie im modifizierten Booth, gegenüber den vier inklusive Null gemäss der vorliegenden Rekodierung von Tabelle 7 und 10. Da diese zusätzliche Ziffer nur mit dem höchstwertigen Bitpaar gegenüber dem anderen Bitpaaren involviert wäre, kann es für wesentliche Einsparungen gegenüber dem modifizierten Booth verwendet werden. Für Multiplizierer, die sowohl Zweierkomplement- als auch vorzeichenlose Zahlen erlauben, ist die Hardware für das zusätzliche Produkt für vorzeichenlose Zahlen bereits vorhanden. Das zusätzliche Produkt, welches durch +2 und einen Ausgangs-Übertrag von -1 für das höchstwertige Bit erzeugt wird, wird die Implementation nach Tabelle 10 bevorzugt.
- Für eine ungerade Bitzahl des Multiplikators B wird das Rekodierungsschema des höchstwertigen Bits für vorzeichenlose ungerade Multiplikatoren in Tabelle 11 gezeigt, während das Kodierungsschena für Zweierkomplementmultiplikatoren ungerader Bitzahl in Tabelle 12 illustriert wird. Tabelle 11 Tabelle 12
- Die Durchsicht von Tabelle 11 und 12 zeigt, dass keine Überträge erzeugt werden, da das Endpaar von einem Bit entweder ein 0, -1 oder 2 erzeugt. Somit resultiert ein einzelnes Partialprodukt ohne Übertrag. Wird dies erkannt, so benötigt eine gerade Bitzahl in einen vorzeichenlosen Multiplikator B M/2+1 Partialprodukte, während eine ungerade Bitzahl im Multiplikator B (M+1)/2 Partialprodukte benötigt. Somit benötigt zum Beispiel ein 8-Bit vorzeichenloser Multiplikator B die gleichen fünf Partialprodukte wie ein 9-Bit Multiplikator.
- Im Falle eines Zweierkomplement- Multiplikators, wird die Zahl von erzeugten Partialprodukten M/2 sein, wenn die Bitzahl des Multiplikators gerade ist, und (M+1)/2, wenn die Bitzahl im Multiplikator ungerade ist.
- Ein Beispiel, das die 2-Bit Rekodierung von Tabelle 10 verwendet, wird in Tabelle 13 illustriert. Tabelle 13
- Da der Multiplikand A positiv ist und die ersten zwei Partialprodukte positiv sind, gibt es keine Vorzeichenerweiterung. Die höchstwertigen Bits des Multiplikators werden rekodiert, um das zweite Partialprodukt von zwei mal dem Multiplikanden mit negativen Übertrag zu erzeugen. Somit ist das zusätzliche oder Übertrags- Partialprodukt eine -1. Die Addition von drei Partialprodukten erzeugt eine -21, die das Produkt von 3 x -7 ist.
- Eine andere Modifikation der 2-Bit- Rekodierung von Tabelle 7 und 10 wird in Tabelle 14 illustriert. Tabelle 14
- Beim Vergleichen von Tabelle 14 mit Tabelle 7 werden Sie feststellen, dass der vierte und fünfte Eintrag dem Multiplikator bm von +2 ohne Übertrag auf minus 2 mit Übertrag geändert hat. In der 2-Bit-Rekodierung von Tabelle 14 werden für das höchstwertige Bit einer negativen Zweierkomplement-Zahl alle Überträge unterdrückt. Die letzten vier Einträge von Tabelle 14 würden eine negative Zahl anzeigen, wenn der Multiplikator B ein Zweierkomplement wäre, somit werden die letzten vier Überträge unterdrückt. Der Übertrag der vierten Zeile ist für eine positive Zweierkomplement-Zahl und somit würde dieser Übertrag nicht unterdrückt. Dies würde für einen negativen Zweierkomplement-Multiplikator eine Vereinfachung gegenüber der Rekodierung nach Tabelle 10 bedeuten, indem Überträge in dem letzten drei Einträgen der Tabelle unterdrückt werden, während ein spezieller Übertrag in der fünften Zeile erzeugt wird.
- Die Rekodierungs-Operation von Tabelle 14 wird in dem zwei Beispielen von Tabelle 15 illustriert. Tabelle 15
- Der Vorgang der Vervielfältigung des höchsten Bits einer Zweierkomplementzahl über die Breite derer erweiterten Genauigkeit wird Vorzeichenerweiterung einer Zweierkomplement-Zahl genannt. Die Notwendigkeit, potentielle Vorzeichenerweiterungen aller Partialprodukte durch dem Addierarray des Multiplizierers fortzupflanzen, trägt wesentlich zur Grösse des Addierarrays bei, und die zur Geschwindigkeit, mit der die höherwertigen Bits des Resultats berechnet werden können.
- Eine vorzeichenerweiterte, negative ganzzahlige N-Bit Zahl kann als Verkettung eines um m Bitpositionen nach links verschobenen Zweierkomplements der Zahl mit einer N-m langen Kette von 1 betrachtet werden. Somit entspricht diese Operation arithmetisch der Verknüpfung der verschobenen negativen Ganzzahl mit einer anderen Ganzzahl, gleich:
- Pm = (22N -1) × Bm -(2N+m-1) × Bm +A × Bm×2m [3]
- Die Gleichung [3] nimmt an, dass keine Rekodierung auf die Bits Bm des Multiplikators angewandt worden ist und somit wird die Vorzeichenerweiterung auf einen negativen Multiplikanden A< 0 jedes Mal ausgeführt, wenn Bm gleich 1 ist. Gleichung [3] kann in einer vereinfachten Form ungeschrieben werden als:
- Pm = 22N × Bm -2N+m × Bm + A × Bn × 2m [3a]
- Die Gleichung [3a] beschreibt somit dem Wert doppelter Genauigkeit eines einfachen Partialprodukts Pm, das dem m-ten Bit des Multiplikators entspricht. Demzufolge wird die Summe aller M Partialprodukte (wobei M die Zahl von Bits im Multiplikator B ist) dem Endwert des Produkts der Multiplikation liefern:
- Die Summe von Gleichung [4] kann in drei unabhängige Elemente aufgeteilt werden:
- Der erste Term von Gleichung [5] stellt eine Summe dar, deren Wert jenseits des numerischen Bereichs des Endprodukts fallen wird und deshalb weggelassen werdem kann. Der dritte Term von Gleichung [5] stellt einen verschobenen Multiplikandern A dar, als wie wenn keine Vorzeichenerweiterung durchgeführt worden wäre (d.h. als wenn es eine mit Nullen aufgefüllte positive Zahl wäre) Der mittlere Term stellt ein einziges Binärwort dar, das als Vorzeichenerweiterungswort SEW bezeichnet wird, wobei
- Die Gleichung [6] stellt dem zweierkomplementierten Wert des Multiplikators B dar, der um N Binärpositionen nach links geschoben worden ist. Somit ist das Endprodukt der Multiplikation die Summe des Produkts der nicht-vorzeichenerweiterten Multiplikation oder des dritten Terms von Gleichung [5] und des Vorzeichenerweiterungsworts von Gleichung [6].
- Im Falle der Rekodierung wird sich die Gleichung [6] auf eine modifizierte Form von SEW beziehen, da die Vorzeichenerweiterungs-Operation auf das m-te Partialprodukt in einem von zwei Fällen angewandt werden kann: entweder ist der Multiplikand A eine negative Zahl und das rekodierte Bit bm(SHOM oder Sh1m) ist gleich 1, oder der Multiplikand A ist eine positive ganze Zahl und das rekodierte Bit bm ist negativ (d.h. TCM = 1). In der Praxis wird eine Mischung beider Fälle auftreten. Als Konsequenz werden die Werte der Bits Bm in Gleichung [6] modifiziert und das SEW wird im allgemeinen nicht mehr gleich dem negierten Wert von B sein. Diese modifizierten Werte von Bm, bezeichnet als Em, werden immer noch einen neuen Wert von SEW bilden:
- welcher sodann zweierkomplementiert, um N Stellen nach links verschoben und zu dem übrigen Partialprodukten Pm addiert werden muss:
- Tabelle 16 zeigt die Wahrheitstabelle für die Bildung von 2-Bit Gruppen von SEW abhängig vom 2-Bit Rekodierungsgruppenwert (Bm+1, Bm) und vom Vorzeichen des Multiplikanden A. Tabelle 16
- Tabelle 16 zeigt somit an, dass SEW durch Zusammenhängen von 2-Bit Gruppen SE (Em+1,Em) erzeugt wird, die jeder Stelle der rekodierten 2-Bit-Gruppen entsprechen. Bit Em wird immer dann auf 1 gesetzt, wenn entweder das Vorzeichen von A negativ ist und der Mulitplikator- Wert der Gruppe 1 ist (Gruppe (0,1)), oder wenn auf der (Bm+1,Bm) Gruppe (1,1) 2-Bit-Rekodierung durchgeführt worden ist, wodurch ein Multiplikator 3 in -1 und einen Übertrag auf die nächste 2-Bit-Rekodierungsgruppe rekodiert wird, wenn A positiv ist. Das Bit Em+1 wird nur auf 1 gesetzt, wenn A negativ ist und der Multiplikatorwert der (Bm+1,Bm) Gruppe 2 (1,0) ist. Eine andere Interpretation der Tabelle 16 ist, dass ein Multiplikatorgruppenwert von Null oder ein Multiplikator von Null als positiv betrachtet wird und die Vorzeichenerweiterung SE dem Gesetz der Vorzeichen folgt, wobei eine 0 wie Vorzeichen und eine 1 nicht wie Vorzeichen gilt, ausser für einen rekodierten Multiplikator von Null, der unabhängig vom Wert oder Vorzeichen des Multiplikanden A einen SE von hat.
- Ein Beispiel zur Bildung einer einzelnen Vorzeichenerweiterung SEW wird in Tabelle 17 illustriert. Tabelle 17
- Da jeder der rekodierten Werte b positiv ist und der Multiplikand A negativ ist, ist jedes der Vorzeichenerweiterungs-Bitpaare entweder in der Position eins oder zwei für die entsprechenden Bitpaare. Zeile 9 ist die Summe der Vorzeichenerweiterungsbits SE und Zeile 10 ist das Zweierkomplement von Zeile 9, das das Vorzeichenerweiterungswort SEW erzeugt. Das Vorzeichenerweiterungswort SEW wird zu dem drei Partialprodukten addiert, um das Endprodukt zu erzeugen. Die Multiplikation von -29 mal 37 ist gleich -1073. Die Position der einzelnen Ziffer für das Vorzeichenerweiterungswort SE wird für jedes Partialprodukt so positioniert, dass sie das nächst folgende Bit des höchstwertigen Bits des Partialprodukts ist.
- Bei der Durchsicht der Summe der Vorzeichenerweiterung SE in Tabelle 17 im Hinblick auf deren Zweierkomplementierung oder das Vorzeichenerweiterungswort SEW wird festgestellt, dass das Vorzeichenerweiterungswort SEW eine 1 besitzt, die sich vom ersten Bit des Vorzeichenerweiterungsworts zum Ende erstreckt, ausser für diejenigen Positionen, wo für das Vorzeichen der Partialprodukte eine Vorzeichenerweiterung SE von 1 benötigt wurde, in welchem Falle eine 0 eingesetzt wurde. Somit erzeugten die Einer in der dritten und sechsten Position der Summe der Vorzeichenerweiterungen SE eine 0 im Vorzeichenerweiterungswort SEW.
- Generell können zwei Verfahren zur Erzeugung des Zweierkomplements einer Zahl verwendet werden. Im ersten nehmen wir an, dass A der Multiplikand ist: N-1, AN-2 ... A&sub1;, A&sub0;, und dessen Einerkomplement: N-1, N-2 ... &sub1;, &sub0; ist. Somit ist das Zweierkomplenent = Einerkomplement + 1.
- Zweierkomplement von Übertrag Sum
- ist ein anderer Ausdruck für das Zweierkomplement von A:
- Zweierkomplement von
- Die Erzeugung des zweierkomplementierten Werts eines verschobenen Multiplikanden unter Verwendung des Einerkomplements ausser für dem wirklichen Wert von dessen LSB A&sub0;, und die Addition eines Übertrags &sub0; in die zweittiefste Position A&sub1; (Gleichung [13]) ist nur nützlich, wenn der Wert der rekodierten Multiplikatorgruppe 1 oder -1 ist. In Fällen, wo der rekodierte Wert der Multiplikatorgruppe 2 ist, sollte die Zweierkomplementierungs-Methode von Gleichung [9] verwendet werden, wo ein verschobener Mul tiplikand einerkomplementiert wird und dann eine 1 zu dessen tiefstwertiger invertierter Bitposition &sub0; addiert wird. Zum Beispiel, wenn man annimmt, dass das Multiplikandenregister dem wahren Wert des Multiplikanden A enthält, dann: Tabelle 18
- Durch Auswahl von einer der zwei Methoden zur Erzeugung des Zweierkomplements wird der Komplementierungs-Übertrag zur Erzeugung der Zweierkomplementierung immer an der zweiten Bitstelle sein. Der Typ der Komplementierung und der Typ des Komplementierungs-Übertrags werden aufgrund des rekodierten Multiplikatorbits b gewählt. Sie werden aufgrund des Obigen feststellen, dass die Multiplikatoren b von +1, -1, +2, -2 in der Diskussion der Zweierkomplementierung vorgebracht werden um zu illustrieren, dass diese Auswahlmethode des Zweierkomplement-Verfahrens derart, dass der Komplementierungs Übertrag immer in der gleichen Position erzeugt wird, mit jedem Rekodierungsprozess verwendet werden kann.
- In gewissen, weiter unten zu diskutierenden Situationen, wo der Multiplikand oder Multiplikator vor der Multiplikation zweierkomplementiert werden muss, zum Beispiel beim Verarbeiten von Sign-Magnitude Zahlen wie auch bei komplexer Multiplikation, erlaubt die Möglichkeit, zwischen zwei verschiedenen Zweierkomplementierungs-Verfahren zu wählen, die Verwendung des Inputs ohne zusätzliche Vormanipulations-Zyklen und, falls überhaupt, wenig Logik. In diesen Fällen wird, wie unten vollständig diskutiert wird, das Einerkomplement der Zahl in das Multiplikandenregister eingeführt. In der Notation von Tabelle 19 bezeichnen A und die Q- und -Seiten des Multiplikandenregisters, welches das Einerkomplement enthält und nicht A und A des eingegebenen Werts. Tabelle 19
- Für positive Partialprodukte oder Multiplikation mit positiven rekodierten Bits muss die Zweierkomplementierung des Multiplikanden ausgeführt werden und deshalb wird der Komplementierungs-Übertrag zum Inhalt des Multiplikandenregisters addiert, welches schon das Einerkomplement des Multiplikanden A enthält. Für negative Partialprodukte oder Multiplikation mit negativen rekodierten Bits ist das Zweierkomplement des Multiplikanden das geforderte Resultat.
- Der Ausgang des Multiplikandenregisters ist das geforderte Zweierkomplement, da der Input das Zweierkomplement des Multiplikanden war und das Einerkomplement des Inputs im Multiplikandenregister gespeichert wurde.
- Somit führt das Schema nach Tabelle 19 zu einer Verzögerung der Fertigstellung des Zweierkomplement des Eingangs-Multiplikanden, da einige der Partialprodukte die Vor-Zweierkomplementierung nicht benötigen würden und somit verschwendete Schritte wären. Somit, durch Bereitstellen des Einerkomplements einer Zahl, die Vor- Zweierkomplementierung benötigt, wird der Wert im Multiplikandenregister in einfacher Weise in das richtige Partialprodukt umgewandelt, ohne Zeitverzögerung und weitere Manipulation. Es sollte festgehalten werden dass, wie in Tabelle 18, der Komplenentierungs-Übertrag ebenfalls immer im zweiten Bit des Partialprodukts ist. Dies folgt aus der Auswahl der richtigen Konplementierungsmethode.
- Ein praktischer Aspekt der Implementierung eines 9x9 Bit Zweierkomplement-Multiplizierers wird die Verfahren zur Beschleunigung des Prozesses der Addition von Partialprodukten im Wallace-Tree-Addierarray 80 zeigen. Rekodierung des 9-Bit Multiplikators wird, wie in Tabelle 20 gezeigt, fünf Partialprodukte erzeugen, wobei S die Vorzeichenerweiterung SE, P die Partialprodukte und C der Komplementierungs-Übertrag 1 oder A&sub0; sind. Tabelle 20
- Diese Partialprodukte werden in Wallace-Tree- Addiererarray 80 in parallele Summen und Übertragsworte aufgelöst, die sich durch die vier Ebenen von Carry-Save Addierern fortpflanzen. Das Vorzeichenerweiterungswort SEW und das höchstwertige oder zusätzliche Partialprodukt P&sub4; benötigen beide, dass ein Komplementierungs-Übertrag zu jedem addiert wird, wenn deren Zweierkomplement-Wert gebildet wird. Dies ist beim SEW immer der Fall,
- da anfänglich nur ein Einerkomplement Wert während der Rekodierung gebildet wird. Im Falle des höchstwertigen Produkts P&sub4; wird der Komplementierungs- Übertrag nur addiert, wenn dessen Zweierkomplement-Wert für einen vom höchstwertigen Bitpaar erzeugten Rekodierungs-Übertrag benötigt wird. Diese zwei Überträge könnten direkt im Wallace-Tree Array addiert werden. Dies würde jedoch eine zusätzliche (vierte) Stufe des Addierarrays beginnend mit der achten Bitposition 28 bedingen.
- Auf der anderen Seite würde eine Addition dieser zwei Überträge zu dem tiefstwertigen Bits des höchstwertigen Partialprodukts während der Rekodierungszeit keinen Effekt auf die Latenz des Multiplizierers und die Zahl des Addierarrays haben. Dieser Vorgang wird Übertrags-Voraddition genannt.
- Tabelle 21 führt modifizierte Werde des Multiplikanden A (vor der Verschiebung) als Funktion des Vorzeichens des Multiplikators B und B's zwei tiefstwertige Bits B0 und B1 für 8x8- und 9x9-Bit Multiplizierer auf. Die Zahlen in Tabelle 21 stellen die Werte des zusätzlichen Partialprodukts P&sub4; dar, die zu A addiert werden. Falls kein Partialprodukt vorliegt, werden die Werte für das positive Vorzeichen von B (1 und 2 für 8x8 und 2 und 4 für 9x9) addiert, um die Vorzeichenerweiterung SE zu komplementieren. Wenn der rekodierte Multiplikator oder der Übertrag für das zusätzliche Partialprodukt 2 ist, dann werden die Werte zu 2A oder zu dem um ein Bit verschobenen A addiert. Tabelle 21
- Wenn B positiv ist und das erste Partialprodukt, das durch Rekodierung des tiefstwertigen Bitpaars des Multiplikators B&sub1; * &sub0; 10 erzeugt wurde, A multipliziert mit 2 ist; deshalb endet das erste Partialprodukt bei Bit N oder 2&sup9; und das SEW beginnt bei Bit N+1 oder 2¹&sup0;. Deshalb muss dass Komplementierungsbit für das SEW bei Bit N+1 oder 2¹&sup0; in Tabelle 20 addiert werden. Sonst wird der Übertrag bei der N-ten oder 2&sup9;-ten Position addiert, da das SEW bei Bit N oder 2&sup9; beginnt und das erste Partialprodukt bei N-1 oder 2&sup8; in Tabelle 20 endet.
- Wenn B negativ ist, dann wird A einerkomplementiert um A zu bilden, und ein Komplementierungs- Übertrag muss an seiner ersten Bitposition addiert werden, um dem Zweierkomplementwert für das zusätzliche Partialprodukt P&sub4; zu erzeugen. Für Tabelle 20 würde der Komplementierungs-Übertrag an der Position 28 addiert. Dies addiert eins zum Wert, der von der Position vom Anfang des SEW addiert worden ist. Somit wählt das Vorzeichen von B entweder A (wenn B positiv ist) oder das Zweierkomplement von A (wenn B negativ ist).
- Eine nähere Untersuchung der Ausrichtung der Partialprodukte im Addierarray enthüllt, dass die erste für einen Konplementierungs-Übertrag C&sub4; zur Verfühgung stehende Bitposition im Addierarray die Bitposition 2¹² ist. Entsprechend muss die Voraddition über die ersten vier Bits des zusätzlichen Partialprodukts P&sub4; ausgeführt werden (8, 9, 10 und 11), wenn zum Array keine zusätzlichen Stufen hinzugefügt werden sollen. Das Resultat der Voraddition wird als "active-low" Summenbits (d.h. C&sub2;, &sub2;, &sub1; und &sub0;) erzeugt, um die Verwendung von invertierenden Multiplexern des NOR-Typs zu erlauben. Die Summenbits der Voraddition bilden die tiefstwertigen Bits des höchstwertigen Partialprodukts P4. Die höchstwertigen Bits kommen von A wenn B positiv ist oder von A wenn B negativ ist. Das Übertragsbit C&sub4; von der Voraddition wird im Addierarray in Position N+3 (Position 2¹²) addiert, wenn das höchstwertige Partialprodukt nicht Null ist. Wenn das höchstwertige Partialprodukt Null ist, dann wird der SEW Komplementierungs-Übertrag entweder zur N-ten Position 2&sup9; (wenn
- oder zur N+1-ten Position 2¹&sup0; (wenn B&sub1; * &sub0;) addiert, um dem wahren Wert von SEW zu bilden.
- Der oben beschriebene Fall ist dort anzuwenden, wo sowohl Multiplikand, als auch Multiplikator eine ungerade Bitzahl haben und er Multiplikator eine Zweierkomplement-Zahl ist. Wenn der Multiplikator B eine vorzeichenlose Zahl ist, hätte das höchstwertige Partialprodukt P&sub4; eine zusätzliche Position bei 2¹&sup7; in Tabelle 20, da die rekodierte Multiplikatorgruppe 0, 1 oder 2 sein kann, während für Zweierkonplement-Multiplikatoren die rekodierte Multiplikatorgruppe nur 1, 0 oder -1 sein kann. Tabelle 22 illustriert die Ausrichtung der Partialprodukte für dem Fall eines 8x8 (gerade x gerade) Multiplikators. Tabelle 22
- Die Logik-Implementation wird jene der Kodierung der Tabelle 7 und 10 und der Gleichungen [1] und [2] sein, das Vorzeichenerweiterungswort SEW von Tabelle 16 und Gleichung [8], die Zweierkomplementierung von Tabelle 18 und Gleichungen [9] und [13], ein Multiplexerarray gemäss Tabelle 20, und ein Voraddierer gemäss Tabelle 21.
- Ein Beispiel des Rekodierers 50, der die Rekodierung der Tabelle 7 und der Gleichungen [1] und [2] implementiert, wird in Figur 2 illustriert. Ein 9-Bit Zweierkomplement-Multiplikator B0-B8 wird als Eingang zum Rekodierer 50 bereitgestellt. Gatter G1 erzeugt dem Übertrag C0 des ersten Bitpaars, der auch gleich TC&sub0; ist, wie von Gleichungen [1c] bzw. [1d] beschrieben. Die Gatter G2 und G3 erzeugen die Verschiebungen SH0&sub0; bzw. SH1&sub0;, wodurch Gleichungen [1a] bzw. [1b] implementiert werden.
- Gatter 4 empfängt als Eingangssignale , B3 und erzeugt die Ausgangssignale TC&sub1; SH0&sub1; und SH1&sub1;. Gatter G5 erzeugt nicht nur dem ersten Übertrag, sondern zusammen mit G6 erzeugt es einen Übertrag C2 des zweiten Bitpaars und stellt es durch einen Invertierer als ein Eingangssignal dem Gatter G7 zur Verfügung. Die anderen Eingänge von Gatter G7 sind und B5, was die Ausgangssignale TC&sub2;, SH0&sub2; und SH1&sub2; erzeugt. Das Gatter G8 empfängt das Ausgangssignal von G6 oder dem Übertrag C3 und erzeugt dem Übertrag als Eingangssignal für Gatter G9, dessen andere Eingänge und B7 sind. G9 stellt die Ausgangssignale TC&sub3; SH0&sub3; und SH1&sub3; zur Verfügung. Die Gatter G4, G7 und G9 sind identisch und nur die Details von G7 werden gezeigt, das die Gleichungen [2a], [2b] und [2d] implementiert.
- Die Gatter G10, G11 und G12 erzeugen einen Ausgangs-Übertrag C7, der zusammen mit B8 von dem Gattern G13 und G14 in TC&sub4; und SH0&sub4; für das zusätzliche oder Ausgangsübertrag-Partialprodukt P4 umgewandelt wird.
- Gatter G15 hat die Eingänge C7, C7 und und erzeugt ein Ausgangssignal P4Z, welches anzeigt, dass das Partialprodukt P&sub4; nicht benötigt oder Null ist, und somit wird der SEW-Komplementierungs-Übertrag dem Platz des Partialprodukts P&sub4; im Wallace-Tree-Addierarray benutzen. P4Z wird verwendet, um dem Ausgang des Voraddier- Registers oder des SEW-Komplementierungs-Übertrags durch dem P&sub4;-Multiplexer in Figur 5 zu steuern.
- Die Logik oder das Schema für dem Multiplexer für das erste Partialprodukt P&sub0;, für die anderen Partial produkte P&sub1;, P&sub2; und für das zusätzliche Partialprodukt P&sub4; werden in dem Figuren 3, 4 bzw. 5 dargestellt. Der Eingang des Multiplexers für P&sub0;, P&sub1;, P&sub2; in Figur 3 und 4 umfasst A und von Multiplikandenregister 20 und die Kontrollbits , und von Register 60 des rekodierten Multiplikators. Jedes der logischen Ausgangsgatter für das zweite bis neunte Bit des Partialprodukts umfasst drei Eingänge von n, An und n-1, verglichen mit nur zwei Bits An und n im zusätzlichen Multiplexer für P&sub4; von Figur 5. Im zusätzlichen Multiplexer von Figur 5 ist das Partialprodukt entweder der positive oder negative Wert, während im Multiplexer von Figuren 3 und 4 der Multiplikator plus und minus eins wie auch zwei sein kann, weshalb eine Verschiebung benötigt wird.
- Es sollte auch festgehalten werden, dass der Multiplexer P&sub1; und P&sub2; von Figur 4 ein zehntes Ausgangsbit P&sub9; für einen 9x9-Multiplizierer gemäss Tabelle 20 besitzt. Das zehnte Bit 2&sup9; des ersten Partialprodukts P&sub0; in Tabelle 20 teilt eine Array-Bitstelle mit dem ersten Bit des Vorzeichenerweiterungsworts SEW, obwohl nur eines gleichzeitig vorhanden sein wird. Somit wird das zehnte Bit des ersten Partialprodukts P&sub0; im Vorzeichenerweiterungswort-Multiplikator von Fig. 6 berücksichtigt, wie dies unten diskutiert wird.
- Eine Durchsicht der Tabelle 20 und 22 zeigt, dass der Komplementierungs-Übertrag, ausser für das zusätzliche Partialprodukt, immer in der in bezug auf das entsprechende Partialprodukt zweiten Bitposition angeordnet ist. Die Multiplexer, die die Rekodierung von Tabelle 7 implementieren, haben nur ein negatives Partialprodukt für das rekodierte -1. Unter Verwendung der Komplementierung, die in Tabelle 18 für -1 illustriert wird, ist das erste bit ein A0 mit dem übrigen Bits komplementiert, und der Komplementierungs-Übertrag C0 an der zweiten Bitposition ist . In Figur 3 und 4 ist das erste Gatter rechts unter der Kontrolle von und erzeugt für dem Komplementierungs-Übertrag C. Das zweite logische Gatter von rechts erzeugt A0 für das Zweierkomplement sowie die Verschiebung von SH1, während die anderen Gatter das jeweihg richtige Eingangssignal A als Ausgangssignal unter der Kontrolle von , und erzeugen.
- Das Schema des Voraddierers 30 in Kombination mit dem Voraddierer-Register 40 und dem Multiplexer für das zusätzliche oder höchstwertige Partialprodukt P&sub4; wird in Figur 5 illustriert. Der Eingang zum Voraddierer 30 umfasst das Komplement des "shift one" Signals für das erste Partialprodukt
- und das Vorzeichen oder achte Bit des Multiplikators B8 (TCB), sowie die ersten vier Bits direkt vom Eingangsport 12 anstatt vom Multiplikan denregister 20. Die Logik des Voraddierers 30 ist in Tabelle 21 definiert und erzeugt das zweite, dritte und vierte Bit mit voraddierten Komplementierungs-Überträgen für das Voraddierer-Register 40, welches einen Takt- und einen Reset-Eingang besitzt. Der Ausgang des Voraddierers 40 wird vom Voraddierer-Register dem zusätzliche Produktmultiplizierer zur Verfügung gestellt. Die anderen Eingänge des zusätzlichen Produktmultiplizierers sind der Wert und das Einerkomplement des Werts, der im Multiplikandenregister 20 gespeichert ist, und bedeuten A und . Die Steuersignale für dem zusätzlichen Produktmultiplizierer umfassen Kontrollsignale P4Z und P4Z, SH0&sub4; und TC4 vom Rekodierer 50. Zusätzlich empfangen die Positionen des dritten und vierten logischen Bits ebenfalls vom Rekodierer 50 auch das "shift 1" Signal und dessen Inverse SH1&sub0; und
- des ersten Partialprodukts.
- Die erste, mit dem Vorzeichenbit B8 des Multiplikators verbundene Gatterstufe des Voraddierers 30 gibt die ersten vier Bits des Multiplikanden A für einen positiven Zweierkomplement-Multiplikator (B8=0) unverän dert weiter, oder gibt 1 plus das Einerkomplement der ersten vier Bits des Multiplikanden A für einen negativen Zweierkomplement-Multiplikator (B8=1) weiter. Die zweite Gatterstufe des Voraddierers 30, die mit dem Ausgang der Gatter der ersten Stufe und mit dem "shift one" Signal
- verbunden ist, addiert 4 zu dem Resultaten der ersten Stufe wenn der rekodierte Multiplikator für das erste Partialprodukt B&sub1;B&sub0; = 10 oder zwei ist, und addiert 2 wenn der rekodierte Multiplikator für das erste Partialprodukt 1, -1 oder 0 ist. Somit trägt die erste Stufe dem Komplementierungs-Übertrag des Produkts Rechnung, während die zweite Stufe der Verschiebung des Komplementierungs- Übertrags für das Vorzeichenerweiterungswort SEW Rechnung trägt.
- Das Multiplexerarray 70 von Figur 1 umfasst einen TC4 Vorzeichenerweiterungs-Multiplexer, der in Figur 6 dargestellt ist. Das neunte Bit A8 des Multiplikandem ist das Vorzeichenbit des Zweierkonplements und wird mit dem Steuersignalen , und vom Multiplikatorregister 60 verwendet, um das richtige Einerkomplenent der Bitpaare SE0 bis SE8 zu erzeugen. Mit der Addition des Vorzeichenerweiterungs-Komplementierübertrags im Voraddierer 30 wird das Einerkomplement von SE0 bis SE8 in das Vorzeichenerweiterungswort SEW als Zweierkomplement von SE0 bis SE8 umgewandelt.
- Wie diskutiert sind die Schaltungsimplementation der Figuren 2 bis 6 für einen 9 Bit mal 9 Bit Zweierkomplement Multiplikator und Multiplikand unter Verwendung der Tabelle 20. Da das zehnte Bit entweder das neunte Bit eines ersten Produkts für einen Multiplikator von 2 oder der Anfang des Vorzeichenerweiterungsworts sein kann, enthält das zehnte Bit des Multiplexers des ersten Partialprodukts von Figur 3 die Position des zehnten Bits verglichen mit dem Multiplexer von Figur 4 nicht. Dieses zehnte Bit wird in der Position des ersten Bits des Vorzeichenerweiterungsworts-Multiplexers von Figur 6 gebildet. Sie werden feststellen, dass das erste Gatter sechs anstatt vier Eingänge aufweist, um entweder das höchstwertige Bit des ersten Partialprodukts P0 oder das erste Bit oder tiefstwertige Bit des Vorzeichenerweiterungsworts SEW vor dem Komplementierungs-Übertrag, welcher im Voraddierer 30 verrechnet wird, zu erzeugen.
- Im Sign-Magnitude Format stellt das höchstwertige Bit MSB eines Operanden dessen Vorzeichen dar und die übrigen Bits stellen seinen absoluten Wert oder seine Grösse dar. In dem Fällen, in denen einer oder beide der Operanden unter Verwendung des Sign-Magnitude Formats dargestellt werden, benötigt der oben beschriebene Algorithmus kleinere Anderungen. Diese Anderungen hängen davon ab, welcher der Operanden in Sign-Magnitude Format vorliegt und ob das Resultat der Multiplikation im Sign- Magnitude oder Zweierkomplement-Format darzustellen ist.
- Wenn das Resultat der Multiplikation im Sign- Magnitude Format sein soll, werden die Vorzeichenbits der beiden Operanden von dem Grössen der Operanden getrennt und zum Bestimmen der Vorzeichenbits des Produkts verwendet. Das Vorzeichenbit des Resultats ist negativ, wenn die Vorzeichenbits umgekehrte Werte haben, sonst ist das Vorzeichenbit gemäss der Gesetz der Vorzeichen positiv. Das Vorzeichenbit des Resultats ist ein exklusives Oder der Vorzeichenbits beider Operanden. Die Multiplikation der Grössen wird identisch zu jener vorzeichenloser Ganzzahlen durchgeführt und das Resultatvorzeichenbit wird dann mit dem Endprodukt zusammengehängt. Eine Konsequenz der Sign-Magnitude Darstellung ist, dass die Zahl mit Grösse Null entweder ein positives oder ein negatives Vorzeichen haben kann, ein Merkmal, das der Sign-Magnitude Darstellung inhärent ist.
- Soll eine Multiplikation eines Sign-Magnitude Multiplikanden mit einer Zweierkomplement-Multiplikator durchgeführt werden, so wird eine Anderung nur für dem Fall eines negativen Multiplikanden benötigt. In diesem Fall muss der Wert des Multiplikanden in ein negatives Zweierkomplement-Format verwandelt werten, bevor er für die Erzeugung von Partialprodukten verwendet wird.
- Die Zweierkomplementierung des Multiplikanden wird in einem Prozess von zwei Schritten erreicht. Im ersten Schritt wird das Einerkomplement (Inversion) des Multiplikanden in das Multiplikandenregister 20 geladen. Unter Bezug auf die vorher diskutierte Tabelle 19 wird der Komplementierungs-Übertrag C, der benötigt wird, um ein Einerkomplement-Format in ein Zweierkomplement-Format umzuwandeln, sodann in die zweittiefste Bitstelle der Partialprodukte eingefügt, wenn keine Verschiebung (SH0) durchgeführt wird, oder das tiefste Bit LSB, wenn eine einfache Verschiebung (SH1) durchgeführt wird. Es wird kein Komplementierungs-Übertrag C eingefügt, wenn der Multiplikator eine Null erzeugt, oder wenn ein negatives (TC) Partialprodukt erzeugt wird. Die Erzeugung eines negativen Partialprodukts ist äquivalent zur doppelten Negation des Multiplikanden und erzeugt somit die ursprüngliche positive Grösse des Multiplikanden. Somit werden die Komplementierungs-Übertäge C in die gleichen Stellen eingefügt wie der Komplementierungs-Übertrag, der während der Negation von Zweierkomplement-Multiplikanden addiert wird (alle Fälle von TC). Der Übertrag kann im Array die gleiche Stelle besetzen, weil er durch die obigen sich gegenseitig ausschliessenden Bedingungen erzeugt wird. Immer wenn eine Voraddition durchgeführt wird, wird die Komplementierung von A durch das exklusive Oder der Tatsache, dass A eine negative Zahl, und der Tatsache, dass das Vorzeichen von B positiv ist, bestimmt. Die Summe und der Ausgangs-Übertrag der Voraddition sind somit immer korrekt. Bei Vergleich von Tabelle 18 und 19 besteht der einzige Unterschied darin, dass die Logik für die Addition des Komplementierungs-Übertrags invertiert wird.
- Ein negativer Multiplikator, der in Sign- Magnitudeformat dargestellt ist, wird vor seiner Rekodierung einerkomplementiert. Der Komplementierungs- Übertrag, der für die Konvertierung in das volle Zweierkomplement-Format benötigt wird, wird sodann in die rekodierte Zelle des tiefstwertigen Bitpaars eingefügt, in einer Weise, die jener ähnlich ist, die in dem rekodierten Zellen der höherwertigen Bitpaare verwendet wird.
- Die Entscheidung, das Einerkomplement im Multiplikandenregister zu speichern, ist eine Funktion der Formate des eingegebenen Multiplikanden A und Multiplikators B und des gewünschten Formats des Ausgangsprodukts P. Eine Analyse der verschiedenen Permutationen und Kombinationen dieser Formate und der Vorzeichen kann wie folgt auf eine Entscheidung SC zum Abspeichern des Einerkomplements reduziert werden:
- Wobei T das Zweierkomplement-Format, [14]
- U das vorzeichenlose Format,
- S das Sign-Magnitude Format ist,
- Index p ist das Produkt-Format,
- Index A ist das Multiplikanden-Format,
- Index B ist das Multiplikator-Format,
- Hochgestellter Index + ist eine positive Zahl,
- Hochgestellter Index - ist eine negative Zahl
- Somit kann der Multiplizierer durch Bereitstellen der Richtigen Formatierungs-Eingangssignale jede Kombination von Eingangs- und Ausgangs-Formaten verarbeiten und ist nicht auf eine fixe oder vorgegebene Kombination beschränkt.
- Die Fähigkeit, dem Multiplikanden während der Verarbeitung zu negieren, wie sie in Tabelle 19 dargestellt ist, erlaubt auch eine effizientere Hardware- Implementation eines Multiplexers, der für die Ausführung der Multiplikation zweier komplexer Zahlen der folgenden Form vorgesehen ist:
- P= (A + jB) x (C + jD)
- die die folgenden zwei Produkte ergibt: reell imaginär
- Die Negierung des Multiplikanden B während der Verarbeitung erlaubt die Subtraktion des Produkts BD, die im Wallace-Tree Addierarray durchgeführt wird, wie es in Figur 7 gezeigt wird. Wenn die komplexen Multiplizierer die Voraddition in vier parallelen Voraddierern durchführen, um die Zahl der Stufen im Addierarray zu reduzieren, wird ein Voraddierer für jedes der vier Kompositprodukte AC, -BD, AD und BC benötigt.
- Die zwei Multiplikandenregister A und B und die zwei Multiplikator-Rekodierregister C und D sind jeweils mit mindestens zwei Multiplexern verbunden. Der erste Multiplexer empfängt dem Multiplikanden A und die rekodierte Multiplexer-Kontrollsignale vom Multiplikatorregister C.
- Der zweite Multiplexer empfängt dem Multiplikanden -B von dem Q-Seite des Multiplikandenregisters B und die Multiplexer-Kontrollsignale vom Multiplikatorregister D. Der dritte Multiplexer empfängt das Ausgangssignal des Multiplikandenregisters B und die Multiplexer Kontrollsignale vom Multiplikatorregister C. Der vierte Multiplexer empfängt dem Multiplikanden vom Multiplikandenregister A und die Multiplexer-Kontrollsignale vom Multiplikatorregister D. Die Ausgangssignale der ersten zwei Multiplexer werden in einem einzigen Wallace-Tree kombiniert, dessen Ausgangssignale einem ersten Endaddierer zugeführt werden, um die Realkomponenten R = AC-BD der komplexen Multiplikation zu erzeugen. Der dritte und der vierte Multiplexer erzeugt das Eingangssignal eines einzelnen Wallace-Trees, dessen Ausgangssignale in einem Endaddierer addiert werden, um dem imaginären Ausgang I = AD+BC zu erzeugen.
- Der komplexe Multiplizierer gemäss Stand der Tecbnik würde vier Multiplizierer zur Berechnung von AC, BD, AD und BC benötigen. Dann würde ein Subtrahierer dem Realteil AC-BD und ein Addierer dem Imaginärteil AD+BC berechnen. Jeder Multiplizierer würde ein Multiplikandenund ein Multiplikatorregister und einen Endaddierer umfassen, insgesamt acht Register, fünf Endaddierer und einen Subtrahierer. Die vorliegende Lösung spart vier Regi ster, drei Endaddierer und einen Subtrahierer. Auch benötigte der Stand der Technik vier Wallace-Tree-Addierarrays, welche im vorliegenden Design in zwei kombiniert werden, eines für dem Real- und das andere für dem Imaginärteil. Obwohl von der neuen Lösung zwei zusätzliche carry-save-add Stufen benötigt werden, ist die von ihnen erzeugte Verzögerung wesentlich kleiner als die Verzögerung der Endaddierer, die sie ersetzen. Somit spart die neue Lösung sowohl Zeit als auch Hardware.
- Ein Multiplizierer/Akkumulator ist ein Multiplizierer, der einen Akkumulator am Ausgang besitzt. Der Wert des Akkumulators wird zum/vom Ausgang des Multiplizierers addiert/subtrahiert. Da der Akkumulator eine grössere Breite als der Multiplizierer besitzt, muss das Vorzeichen des Multiplizierers für die richtige Addition/Subtraktion erweitert werden. Da die Breite des Ausgangs des Multiplizierers die Summe der Bits des Multiplikanden und des Multiplikators ist, kann das Vorzeichen des Produkts erweitert werden, indem das Vorzeichen des Multiplikators oder des Multiplikanden oder beider erweitert wird.
- Die Erweiterung des Vorzeichen des Produkts bedingt zuerst die Fertigstellung des Produkts und dann dessen Vorzeichenerweiterung. Dies erzeugt zusätzliche Verzögerungen und ist somit nicht ein bevorzugtes Verfahren.Die Erweiterung des Vorzeichens des Multiplikanden bedingt die Erweiterung der Breite jedes Partialprodukts und benötigt zusätzliche Hardware im Addierarray. Eine Erweiterung des Vorzeichens des Multiplikators scheint die Zahl der Partialprodukte zu vergrössern. Aber unter Verwendung des im folgenden beschriebenen Verfahrens kann das Produktvorzeichen-Erweiterungswort PSEW in der Logik entwickelt und parallel mit der Operation des Wallace- Trees oder Addierarrays dem Endaddierer zur Verfügung gestellt werden.
- Wie aus dem folgenden erkennbar ist, ist die Vorzeichenerweiterung des Multiplikators ein Produktvorzeichen-Erweiterungswort aus lauter Einsern, bis auf das tiefstwertige Bit, welches eine 0 oder eine 1 sein kann, abhängig vom Vorzeichen des Multiplikanden A und dem Vorzeichen des höchstwertigen Partialprodukts, das vom Multiplikator B erzeugt wird.
- Wenn der Multiplikator B eine vorzeichenlose Zahl ist, erzeugt dessen Vorzeichenerweiterung mit Nullen keine zusätzlichen Partialprodukte im Rekodierungsschema. Die Vorzeichenerweiterung SB dieser zusätzlichen Partialprodukte wären alle Null und würden deshalb beim Zusam menstellen in ein Vorzeichenerweiterungswort alle eins erzeugen. Da das zusätzliche Partialprodukt, das vom Ausgangs-Übertrag des höchstwertigen Bitpaars eines Multiplikators gerader Länge oder vom Ausgangs-Übertrag des höchstwertigen Bits eines Multiplikators ungerade Länge erzeugt wird, sich bis zum Ende des Bereichs des Multiplizierers erstreckt, wurde keine Vorzeichenerweiterung für das zusätzliche oder höchstwertige Partialprodukt erzeugt. Mit der Vorzeichenerweiterung des Multiplikators muss die Vorzeichenerweiterung dieses zusätzlichen Partialprodukts berücksichtigt werden. Wenn der Multiplikand positiv ist, wird der vorzeichenlose Multiplikand B immer ein positives Partialprodukt erzeugen, und deshalb wäre seine Vorzeichenerweiterung Null. Somit wäre das tiefstwertige Bit des Vorzeichenerweiterungsworts PSEW eine Eins. Wenn A negativ ist und ein zusätzliches Produkt erzeugt wird, wäre die Vorzeichenerweiterung SE eine Eins, und wenn sie komplementiert wird, wird sie eine Null, und somit wäre das tiefstwertige Bit der Vorzeichenerweiterung PSEW eine Null.
- Für positive Zweierkomplementzahlen, würde der Multiplikator mit lauter Nullen erweitert werden, was eine Produktvorzeichen-Erweiterung PSEW von lauter Einsen erzeugen wird. Da das höchstwertige Bit der positiven Zweierkomplementzahlen Null ist, erzeugt die Kodierung des höchstwertigen Bits keinen Übertrag und kein zusätzliches Partialprodukt, und deshalb ist das tiefstwertige Bit des Vorzeichenerweiterungsworts PSEW eine Eins.
- Für negative Zweierkomplementzahlen wird der Multiplikator B mit lauter Einsern erweitert. Wenn das höchstwertige Bitpaar eines Multiplikators B gerader Länge 1 1 ist und ein Eingangs-Übertrag vorliegt, wird dies zu einer Null mit Ausgangs-Übertrag rekodiert. Der Ausgangs-Übertrag bewirkt, dass die erweiterten Einer zu Nullen werden, die keine Partialprodukte erzeugen, und somit eine Vorzeichenerweiterung aus Nullen und ein Vorzeichenerweiterungswort PSEW aus lauter Einsern. Ist das höchstwertige Bitpaar eine 1 1 ohne Eingangs-Übertrag oder eine 1 0 mit Eingangs-Übertrag, werden beide rekodiert als eine -1 mit Ausgangs-Übertrag. Der Ausgangs- Übertrag bewirkt, dass die erweiterten Einer zu Nullen werden, erzeugt Vorzeichenerweiterungen SE aus Nullern und ein Produktvorzeichen-Erweiterungswort PSEW aus lauter Einsern.
- Wenn das höchstwertige Bitpaar einer negativen Zweierkomplement-Zahl gerader Länge eine 1 0 ohne Eingangs-Übertrag ist, wird dies als eine Multiplikation mit 2 rekodiert. Das nächste Paar von Einsern des erweiterten Vorzeichens werden als eine -1 plus Ausgangs- Übertrag rekodiert. Das -1 bewirkt, dass das zusätzliche Partialprodukt erzeugt wird. Ist der Multiplikand A negativ, wäre die Vorzeichenerweiterung SE des zusätzlichen Partialprodukts 0 0 und würde zum Produktvorzeichen- Erweiterungswort PSEW von lauter Einsern invertieren. Wenn der Multiplikand A positiv ist, wäre die vom zusätzlichen Partialprodukt erzeugte Vorzeichenerweiterung SE 0 1. Dies würde zu einer 1 0 invertiert, die eine Null im tiefstwertigen Bit des Produktvorzeichen-Erweiterungswort PSEW erzeugt. Wie früher diskutiert, bewirkt der von der -1 erzeugte Übertrag, dass die übrigen Vorzeichenerweiterungen der Multiplikatoren Nullen werden, was die übrigen Einser des Produktvorzeichen-Erweiterungswortes PSEW nicht beeinflussen würde.
- Ist der Multiplikator B eine negative Zweierkomplement-Zahl mit einer ungeraden Bitzahl, ist das höchstwertige Bit eine Eins und das höchstwertige Bitpaar, mit einer Eins von der Vorzeichenerweiterung, wäre 1 1. Dies würde in -1 plus einen Ausgangs-Übertrag rekodiert. Das Vorzeichen des Partialprodukts, das von -1 erzeugt wird, wäre in der höchstwertigen Bitposition des SEW. Der Ausgangs-Übertrag würde bewirken, dass die übrigen Erweiterungs-Einser im Multiplikanden Null würden und somit keine zusitzlichen Partialprodukte mehr erzeugen. Somit ist PSEW lauter Einer.
- Zusammenfassend, wenn der Multiplikator B eine gerade oder ungerade vorzeichenlose Zahl ist und ein zusätzliches Produkt erzeugt und der Multiplikand A negativ ist, dann ist das tiefstwertige Bit der Vorzeichenerweiterung Null. Auch wenn der Multiplikand B eine Zweierkomplement-Zahl mit geraden Bits ist und ein höchstwertiges Bitpaar von 10 ohne Eingangs-Übertrag hat, das als zwei rekodiert wird und ein zusätzliches Partialprodukt von -1 erzeugt wird, und wenn der Multiplikand A positiv ist, dann ist das tiefstwertige Bit des Produktvorzeichen-Erweiterungswort PSEW Null. In allen anderen Fällen wäre das Produktvorzeichen-Erweiterungswort PSEW lauter Einser inklusive das tiefstwertige Bit.
- Einmultiplizierer/Akkumulator wird in Figur 8 dargestellt, wobei die Elemente mit der gleichen Operation und Funktion wie in Figur 1 die gleichen Zahlen besitzen. Zusätzlich zum Multiplikandenregister 20, dem Voraddierer 30, dem Voraddierer-Register 40, dem Rekodierer 50, dem Multiplikator-Register 60, dem Multiplexer- Array 70, dem Addierarray 80 und dem Endaddierer 90, umfasst der Multiplizierer/Akkumulator ein Akkumulator- Register 100 am Ausgang des Endaddierers 90, und dessen Ausgang ist mit der Summe der Produkte 102 verbunden. Das Addierarray 80 erzeugt ein Q-Bit Produkt,wobei Q = M+N, und das Akkumulatorregister 100 hat eine Kapazität von R, welche grösser als Q ist. Die tieferwertigen Q Bits des Ausgangs vom Akkumulator 100 werden auch durch Gatter 104 zum Addierarray 80 und dem Endaddierer 90 zurückgeführt. Auch vorgesehen ist der Produktvorzeichen-Erweiterungs- Multiplexer 106, welcher von der Steuerung 14 des Multiplikandenformats das Eingangssignal TCA erhält, TCB von der Steuerung 18 des Multiplikatorformats, dem out-ofrange Übertrag vom Addierarray 80, die Multiplexersteuerung für das höchstwertige Bitpaar vom Mulitplikatorregister 60, und das höchstwertige Bit AN-1 des Multiplikanden vom Multiplikandenregister 20. Der Produktvorzeichen- Erweiterungs-Multiplexer 106 bestimmt dem Wert des tiefstwertigen Bits der Produktvorzeichen-Erweiterung PSEW.
- Figuren 8a und 8b zeigen zwei Pipeline-Modifikationen des Multiplizierers/Akkumulators von Figur 8. In Figur 8a wird der Ausgang eines Registers 84, welches zwischen dem Addierarray 80 und dem Endaddierer 90 liegt, über Gatter 104 zum Addierarray 80 zurückgeführt. In Figur 8b kombiniert ein Carry-Save-Addierer 86, welcher zwischen dem Register 84 und dem Endaddierer 90 ist, dem Ausgang des Registers 84 mit dem Ausgang des Akkumulators 100, der durch Gatter 104 zurückgeführt wird.
- Die Tabelle 23 illustriert die verschiedenen Eingänge zum Endaddierer 90. Tabelle 23
- Das Addierarray 80 stellt einen Summenausgang S und einen Übertragsausgang C zur Verfügung. Die höchstwertigen Bits X vom Akkumulatorregister 100 werden zur Verfügung gestellt, wie auch das Produktvorzeichen- Erweiterungswort PSEW vom Vorzeichen-Erweiterungs-Multiplexer 106. Die Fähigkeit, einen Endaddierer 90 zu verwenden, macht es notwendig, dass nur zwei Bits pro Bitposition zur Verfügung gestellt werden.
- Wenn das tiefstwertige Bit des Produktvorzeichen-Erweiterungswort PSEW eine Null ist, dann gibt es keine Konkurrenz für die N-te Position. Die Vorzeichenerweiterung mit lauter Einsern, unter Weglassung der Null, kann mit dem Übertrag C vom Addierarray verschmolzen werden, während die höchstwertigen Bits X vom Akkumulator mit der Summe vom Array verschmolzen werden können. Dies erzeugt zwei verschmolzene Worte für dem Endaddierer.
- Wenn das tiefstwertige Bit des Produktvorzeichen-Erweiterungswort PSEW eins ist, dann gibt es drei Bits, welche in der N-ten Bitposition addiert werden müssen.
- Verwendung der Gleichungen [10] und [11], was zeigt, dass die Addition von 1 zu einem Bit das Komplement des Bits plus einen Übertrag erzeugt, und dass der Übertrag das Originalbit ist. Somit, wenn die Einser von der Produktvorzeichen-Erweiterung zu dem höchstwertigen x Bits vom Akkumulatorregister 100 voraddiert werden, würde diese zwei Worte erzeugen, die dargestellt werden als die Summe des PSEW aus lauter Einsern plus des Akkumulatorwerts X als die Summe, welches die Inverse k des Akkumulationswertes plus ein Übertrag des Akkumulatorbits X ist. Tabelle 24
- Wie in Tabelle 24 illustriert, werden die Einerkomplement- oder invertierten Akkumulatorbits X mit dem Summen vom Array verschmolzen, während der Übertrag, welcher die höchstwertigen Bits X vom Akkumulatorregister ist, sind die Aquivalente der um einen Platz nach links und mit dem Überträgen C vom Addierarray verschmolzenen höchstwertigen Bits X. Somit kann eigentlich die Produktsummenerweiterung PSEW, welche dem Endaddierer 90 zur Verfügung gestellt wird, als Einerkomplement der höchstwertigen Bits des Akkumulatorregisters betrachtet werden, und die höchstwertigen Bits X, ebenfalls um ein Bit nach links verschoben, ist das andere zu verschmelzende Eingangssignal. Alternativ kann die Vorzeichenerweiterung PSEW als die um ein Bit verschobenen höchstwertigen Bits vom Akkumulatorregister betrachtet werden, und die Inverse von als Akkumulatorregister oder die nicht-wahren Ausgänge, die dem Endaddierer zur Verfügung gestellt werden.
- Ein alternatives Verfahren um dem Konflikt beim Q-ten Bit zu lösen, ist die Addition des letzten Übertrags CQ-1 zum Produktvorzeichen-Erweiterungswort PSEW, wiederum unter Verwendung der Gleichungen [10] und [11]. Die Addition von CQ-1 mit 1 erzeugt CQ-1 mit einem Übertrag von CQ-1. Dieser Übertrag wird dann mit dem nächsten addiert, invertiert diesen und erzeugt einen Übertrag über die ganze Reihe. So ist es in Tabelle 25 illustriert. Tabelle 25
- Die Voraddition des Produktvorzeichen- Erweiterungswortes PSEW und des höchstwertigen Übertrags CQ-1 erzeugt ein Vorzeichenerweiterungswort von CQ-1 Dieses wird mit dem Summen vom Addierarray als einer der Eingänge des Endaddierers verschmolzen, während die übri gen Überträge C mit dem höchstwertigen Bits vom Akkumulatorregister als zweiter Eingang des Arrays verschmolzen werden. Somit kann das Produktvorzeichen-Erweiterungswort PSEW als eine Zeichenkette des Einerkomplements des höchstwertigen Übertrags CQ-1 betrachtet werden. Die Auswahl des Verschmelzungsverfahrens in Tabelle 24 und 25, das als Eingangssignal für dem Endaddierer 90 verwendet wird, wird durch die Belastung des CQ-1-Ausgangs bestimmt. Wenn die Ausgangsbelastung eine grössere Pufferung verlangt, dann wird die erste Form von Tabelle 24 bevorzugt.
- Einer der Vorteile, die ein modifizierter Booth-Operator gegenüber der Rekodierung der Tabelle 7 und 14 besitzt, ist, dass der Booth-Operator so aufgebaut ist, dass er ein vorhergehendes Bit prüfen kann, um dessen rekodierten Wert festzustellen und somit keinem Ripple-Effekt unterliegt. In der Rekodierung gemäss Tabellen 7 und 14 kann man das Bit bm+1 nicht prüfen um zu bestim men, ob ein Übertrag erzeugt wird. In Tabelle 7 wird für dem Bitpaar-Wert von Bm+1,Bm = 10 der Ausgangs-Übertrag Cm+1 nur erzeugt, wenn ein Eingangs-Übertrag Cm-1 vorliegt. Ahnlich wird in Tabelle 14 für das Bitpaar Bm+1,Bm = 01 der Ausgangs-Übertrag Cm+1 nur erzeugt, wenn ein Eingangs-Übertrag Cm-1 empfangen wird.
- Als eine Erweiterung des vorher beschriebenen 2-Bit-Rekodierungsschemas, wird eine 4-Bit Kodierung beschrieben werden, welche die Menge der Hardware und Logik reduziert, die Verzögerung reduziert, und dem Ausgangs- Übertrag unempfindlich gegenüber dem Eingangs-Übertrag macht und deshalb ein Rekodierverfahren ohne Ripple erzeugt. Tabelle 26
- Wie in Tabelle 26 illustriert, werden zwei Multiplexer verwendet, mit dem X-Multiplexer für die zwei höherwertigen Bits und dem Y-Multiplexer für die zwei tieferwertigen Bits. Der Y-Multiplexer verwendet ein Rekodierschema, welches jenes von Tabelle 10 ist, in einem sich wiederholenden Muster unter Verwendung von fünf Multiplikatoren umfassend 0, +1, -1, +2, -2. Der X-Multiplexer, welcher keinen Eingangsübertrag Cm-1 empfängt, ist auch eine Abfolge oder ein Muster ähnlich zu jenem nach Tabelle 5, da der X-Multiplexer keinen Eingangs- Übertrag besitzt. Der Mulitplikatorwert in Tabelle 26 ist ohne oder vor Übertrag. Der Ausgangs-Übertrag ist eine Funktion dieses Multiplikatorwerts und wird vom Eingangs- Übertrag nicht beeinflusst.
- Die Abhängigkeit zwischen dem 4-Bit Binärcode und dem Eingangs-Übertrag Cm-1 zur Erzeugung der Multiplexer-Kontrollsignale und dem Ausgangs-Übertrag Cm+3 ist in Tabelle 27 illustriert. Tabelle 27
- Der Ausgangs-Übertrag Cm+3 ist eine Funktion der Bits Bm+1, Bm+2, Bm+3 und hängt nicht vom Eingangs- Übertrag Cm-1 des 4-Bit-Rekodierers ab. Eine Analyse der Tabelle 26 erzeugt die folgenden Rekoder-Gleichungen:
- Die Figuren 9a und 9b zeigen einen 3-zu-1 bzw. einen 4-zu-1 Multiplexer, die die rekodierten Signale der Gleichungen [15a] bis [15g] verwenden.
- Als Alternative kann Tabelle 26 die Gleichungen [16a] bis [16g] wie folgt erzeugen:
- Die Gleichungen [16a] bis [16d] erzeugen die rekodierten Bits 8, 4 2 und 1 unabhängig vom Vorzeichen. Diese werden mit dem Kontrollsignalen X und Y von Gleichungen [16e] und [16f] verwendet, um das Vorzeichen der Multiplikatoren 8, 4, 2 und 1 zu bestimmen. Eine Implementation eines Multiplexers, der die rekodierten Kontrollsignale von Gleichungen [16a] bis [16f] verwendet, wird in Figur 10a für dem X-Multiplexer und in Figur 10b für dem Y-Multiplexer gezeigt. Ein Rekodierer, der die Gleichungen [16a] bis [16f] implementiert, wird in Figur 11 gezeigt.
- Das 4-Bit Rekodierungsschema der Tabellen 26 und 27 gilt für alle ausser dem höchstwertigen Bit, welches mit irgend einer der oben beschriebenen Techniken behandelt würde, wenn der Multiplikand B eine negative Zweierkomplement-Zahl ist. Obwohl die vorliegende Erfindung in Bezug auf Zwei- und Vierbit Rekodierung beschrieben worden ist, kann jede Zahl von Bits mit jedem der hier gezeigten Schemata rekodiert werden. Ein Dreibit Rekodierer, der zwei Multiplexer X und Y verwendet, wird in Tabelle 28 illustriert. Tabelle 28
- Die Logik zur Implementierung eines Partialprodukt-Komplementierungs-Übertrags Cm, die das Signal SC zum Abspeichern des Einerkomplements von Gleichung [14] verwendet, wird in Figur 12a für ein 2-Bit Rekodierungsschema und in Figur 12b für ein 4-Bit Rekodierungsschema gezeigt. ist das Speichern des Einerkomplements gemäss Gleichung [14]. A&sub0; ist das erste Bit des Multiplikanden und Y ist das Multiplexer-Kontrollsignal von Gleichung [16f].
- Eine Durchsicht der Tabellen 27 und 28 zeigt ein Muster zur Rekodierung von Bitgruppen beliebiger Grösse K oder Bm+K-1 -- Bm+1, Bm in L rekodierte Multiplikatorstufen Ji und einen Ausgangsübertrag Cm+K-1, wobei L = K/2 für gerades K und (K+1)/2 für ungerades K und i ungerade von 1 bis 2L-1 ist. Somit gibt es für K=4 für Tabelle 27 und K=3 für Tabelle 28 zwei Stufen oder Multiplexer (L=2), nämlich J&sub1;=Y und J&sub3; = X. Für Bitgruppen von 5 oder 6 gäbe es drei Stufen oder Multiplexer J&sub1;, J&sub3;, J&sub5;. Die erste Stufe wird so rekodiert, dass sie das sich wiederholende Muster für die Länge des Rekodierungsschemas von Tabelle 29 hat. Tabelle 29
- Das Muster von J&sub1; wird 2K-2 mal oder zweimal für K=3 und viermal für K=4 wiederholt.
- Die Stufen höherer Ordnung J&sub3; bis JK-1 für gerades K und J&sub3; bis JK-2 für ungerades K haben das sich wiederholende Muster von Tabelle 30 für die angegebene Länge, ausser für dem tiefst- und höchstwertigen Satz von Nullen. Tabelle 30
- Die Länge des tiefstwertigen Satzes von Nullen ist 2² + 2&sup4; ... 2i-1 und für dem höchstwertigen Satz von Nullen ist sie 2² + 2³ + 2&sup5; ... 2i-2 Somit hat der tiefstwertige Satz von Nullen in Tabelle 27, wo K 4, L = 2, i = 3, eine Länge von 22 oder 4 für die zweite Stufe J&sub3; oder X. Als weiteres Beispiel ist die zweite Stufe J&sub3; für K = 6, L = 3 die gleiche mit 4 höchst- und tiefstwertigen Nullen und die dritte Stufe J&sub5; mit i = 5 hätte 2² + 2&sup4; = 20 tiefstwertige Nullen und 2² + 2³ = 12 höchstwertige Nullen.
- Die höchstwertige Stufe JK-1 für ungerades K hat das Muster von Tabelle 31 für die angegebene Länge Tabelle 31
- Dies ist Tabelle 28, wobei K =3, L = 2, i = 3, das Muster für dem zweiten Schritt J&sub3; ist 2² oder 4 Nullen, gefolgt von 2³ oder 8 Einsern, gefolgt von 2² oder 4 Nullen. Für K =5, L =3, i = 5 ist das Pattern für die dritte Stufe J&sub5; 2² + 2&sup4; oder 20 Nullern, gefolgt von 2&sup5; oder 32 Einsern, gefolgt von 2² + 2³ oder 12 Nullen. Beachten Sie, dass die Zahl der tiefst- und höchstwertigen Nullen die gleiche für eine gegebene Stufe ist, unabhängig davon, ob die Bitgruppierung gerade oder ungerade ist. Der einzige Unterschied für gerade oder ungerade ist das Muster zwischen diesen Nullen in der höchstwertigen Stufe.
- Ein Ausgangs-Übertrag Cm+K-1 wird für die rekodierte Musterposition grösser als 2² + 2&sup4; -2K für gerades K und 2² + 2&sup4; + 2K-1 + 2K für ungerades K erzeugt, ausser dass kein Ausgangs-Übertrag für die höchstwertige Bitgruppe eines negativen Zweierkomplement-Multiplikators B erzeugt wird. Somit beginnt der Übertrag Cm+3 bzw. Cm+2 in Tabelle 27 für K=4, i = 3 und Tabelle 28 für K=3, i=3 nach Position 2² + 2&sup4; oder 20 bzw. 2² + 2&sup4; oder 12. Für K = 6, i = 5 und K = 5, i = 5 beginnt der Übertrag Cm+5 bzw. Cm+4 nach 2² + 2&sup4; + 2&sup6; oder 84 bzw. 2² + 2&sup4; + 2&sup5; oder 52 Positionen.
- Somit kann die Rekodierung der Tabelle 27 und 28 auf jeden Wert oder jede Grösse der Bitgruppe K verallgemeinert werden.
Claims (29)
1. Ein Multiplizierer zum Multiplizieren
eines N-Bit Multiplikanden A mit einem M-Bit Multiplikator
B, wobei die kodierten oder rekodierten A und B
Zweierkomplement- oder vorzeichenlos formatierte Zahlen sind,
umfassend
Formatierungsmittel (14, 18) zur Bestimmung
der Formate des Multiplikanden A und des Multiplikators
B,
Partialproduktmittel (70) zur Bildung von
Partialprodukten,
Addiermittel (80) zum Addieren der
Partialprodukte,
charakterisiert durch
ein Rekodiermittel (50) zum Rekodieren
nichtüberlappender 2-Bit Gruppen Bm+1, Bm des Multiplikators B
und eines Eingangs-Übertrags Cm-1 in einen rekodierten
Gruppenmultiplikator bm und einen Ausgangs-Übertrag Cm+1
gemäss einem ersten Kodierungsschema für alle Bitpaare
des vorzeichenlosen Multiplikators B und alle ausser dem
höchstwertigen Bitpaar eines negativen Zweierkomplement-
Multiplikators B oder, falls das Formatierungsmittel
anzeigt, dass der Multiplikator B eine negative
Zweierkonplement-Zahl ist, gemäss einer Modifikation des ersten
Kodierungsschemas für das höchstwertige Bitpaar des
Multiplikators B, und
Vorzeichenerweiterungsmittel (106) zur
Erzeugung einer Vorzeichenerweiterung negativer
Partialprodukte, und
wobei das Partialproduktmittel (70) zur
Bildung der Partialprodukte Pm = bm×A×2M für jeden
rekodierten Multiplikator bm und eines Übertrags-Partialprodukts
Pc = CM-1×A×2M für dem Ausgangs-Übertrag des
höchstwertigen rekodierten Bits ist, und wobei das Addiermittel (80)
zum Addieren der Partialprodukte Pm und PC und der
Vorzeichenerweiterung zur Erzeugung eines Endprodukts ist.
2. Ein Multiplizierer gemäss Anspruch 1,
wobei die Modifikation aus einer Anderung des Ausgangs-
Übertrags Cm+1 des ersten Kodierungsschemas für das
höchstwertige Bitpaar eines negativen Zweierkomplement-
Multiplikators B besteht.
3. Ein Multiplizierer gemäss Anspruch 1,
wobei das erste Kodierungsschema ist:
4. Ein Multiplizierer gemäss Anspruch 1,
wobei das erste Kodierungsschema ist:
und die Modifikation des ersten
Kodierungsschemas ist:
5. Ein Multiplizierer nach Anspruch 1, wobei
das erste Kodierschema ist
und die Modifikation des ersten
Kodierungsschemas ist:
6. Ein Multiplizierer nach Anspruch 1, wobei
das erste Kodierungsschema ist:
und die Modifikation darin besteht, dass kein
Ausgangs-Übertrag für das höchstwertige Bitpaar eines
negativen Zweierkomplement-Multiplikators B erzeugt wird.
7. Ein Multiplizierer gemäss Anspruch 1,
wobei das erste Kodierungsschema ist:
und die Modifikation darin besteht, dass kein
Ausgangs-Übertrag für das höchstwertige Bitpaar eines
negativen Zweierkomplement-Multiplikators B erzeugt wird.
8. Ein Multiplizierer zum Multiplizieren
eines N-Bit Multiplikanden A mit einem M-Bit Multiplikator
B, wobei die kodierten oder rekodierten A und B
Zweierkomplement- oder vorzeichenlos formatierte Zahlen sind,
umfassend
Formatierungsmittel (14, 18) zur Bestimmung
der Formate des Multiplikanden A und des Multiplikators
B,
Partialproduktmittel (70) zur Bildung von
Partialprodukten,
Addiermittel (80) zum Addieren der
Partialprodukte,
charakterisiert durch
ein Rekodiermittel (50) zum Rekodieren
nichtüberlappender drei-Bit Gruppen Bm+2, Bm+1, Bm des
Multiplikators B und eines Eingangs-Übertrags Cm-1 in zwei
rekodierte Gruppenmultiplikatoren Xm, Ym und einen
Ausgangs-Übertrag Cm+2 gemäss einem ersten Kodierungsschema
für alle Bitgruppen des vorzeichenlosen Multiplikators B
und alle ausser der höchstwertigen Bitgruppe eines
negativen Zweierkomplement-Multiplikators B wie folgt:
oder, falls das Formatierungsmittel anzeigt, dass der
Multiplikator B eine negative Zweierkomplement-Zahl ist,
gemäss einer Modifikation des ersten Kodierungsschemas
für die höchstwertige Bitgruppe des Multiplikators B,
wobei die Modifikation darin besteht, dass kein Ausgangs-
Übertrag für die höchstwertige Bitgruppe eines negativen
Zweierkomplement-Multiplikators B erzeugt wird,
wobei der Multiplizierer weiter
charakterisiert ist durch Vorzeichenerweiterungsmittel zur
Erzeugung einer Vorzeichenerweiterung negativer
Partialprodukte, und
wobei das Partialproduktmittel (70) zur
Bildung der Partialprodukte Pm für jeden rekodierten
Multiplikator Xm, Ym und eines Übertrags-Partialprodukts Pc
für dem Ausgangs-Übertrag der höchstwertigen rekodierten
Bitgruppe ist, und wobei das Addiermittel zum Addieren
der Partialprodukte Pm und PC und der
Vorzeichenerweiterung zur Erzeugung eines Endprodukts ist.
9. Ein Multiplizierer zum Multiplizieren
eines N-Bit Multiplikanden A mit einem M-Bit Multiplikator
B, wobei die kodierten oder rekodierten A und B
Zweierkomplement- oder vorzeichenlos formatierte Zahlen sind,
umfassend
Formatierungsmittel (14, 18) zur Bestimmung
der Formate des Multiplikanden A und des Multiplikators
B,
Partialproduktmittel (70) zur Bildung von
Partialprodukten,
Addiermittel (80) zum Addieren der
Partialprodukte,
charakterisiert durch
ein Rekodiermittel (50) zum Rekodieren nicht-
überlappender Vierbit-Gruppen Bm+3, Bm+2, Bm+1, Bm des
Multiplikators B und eines Eingangs-Übertrags Cm-1 in
zwei rekodierte Gruppenmultiplikatoren Xm, Ym und einen
Ausgangs-Übertrag Cm+2 gemäss einem ersten
Kodierungsschema für alle Bitgruppen des vorzeichenlosen
Multiplikators
B und alle ausser der höchstwertigen Bitgruppe
eines negativen Zweierkomplement-Multiplikators B wie
folgt:
oder, falls das Formatierungsmittel anzeigt, dass B eine
negative Zweierkomplement-Zahl ist, gemäss einer
Modifikation des ersten Kodierungsschemas für die höchstwertige
Bitgruppe eines negativen Zweierkomplement-Multiplikators
B, wobei die Modifikation darin besteht, dass kein
Ausgangs-Übertrag für die höchstwertige Bitgruppe eines
negativen Zweierkomplement-Multiplikators B erzeugt wird,
wobei der Multiplizierer weiter
charakterisiert ist durch Vorzeichenerweiterungsmittel zur
Erzeugung einer Vorzeichenerweiterung negativer
Partialprodukte, und
wobei das Partialproduktmittel (70) zur
Bildung der Partialprodukte Pm für jeden rekodierten
Multiplikator Xm, Ym und eines Übertrags-Partialprodukts Pc
für dem Ausgangs-Übertrag der höchstwertigen rekodierten
Bitgruppe ist, und wobei das Addiermittel (80) zum
Addieren der Partialprodukte Pm und PC und der
Vorzeichenerweiterung zur Erzeugung eines Endprodukts ist.
10. Ein Multiplizierer zum Multiplizieren
eines N-Bit Multiplikanden A mit einem M-Bit Multiplikator
B, wobei die kodierten oder rekodierten A und B
Zweierkomplement-
oder vorzeichenlos formatierte Zahlen sind,
umfassend
Formatierungsmittel (14, 18) zur Bestimmung
der Formate des Multiplikanden A und des Multiplikators
B,
Partialproduktmittel (70) zur Bildung von
Partialprodukten,
Addiermittel (80) zum Addieren der
Partialprodukte,
charakterisiert durch
ein Rekodiermittel (50) zum Rekodieren nicht-
überlappender K-Bit-Gruppen Bm+K-1... Bm+1; Bm des
Multiplikators B und eines Übertrags Cm-1, wobei K grösser als
2 ist, in L rekodierte Multiplikatorstufen Ji und einen
Ausgangs-Übertrag Cm+K-1, wobei L = K/2 für gerade K und
(K+1)/2 für ungerade K und i ungerade ist von 1 bis 2L-1,
wie folgt:
a) die rekodierte Multiplikatorstufe Ji wird
wie folgt aus Cm-1, Bm und Bm+1 bestimmt:
b) die rekodierte Multiplikatorstufe Ji mit i
= 3 bis K-1 für gerade K und i = 3 bis K-2 für ungerade K
wird gemäss dem folgenden, sich wiederholenden Muster für
aufsteigende Werte der Bits Bm+K-1 ... Bm, Cm-1 bestimmt:
Ji = 0 für 2i Werte von Bm+K-1 ... Bm, Cm-1
Ji = 1 für 2i Werte von Bm+K-1 ... Bm, Cm-1
Ji = 2 für 2i Werte von Bm+K-1 ... Bm, Cm-1
Ji = -1 für 2i Werte von Bm+K-1 ... Bm, Cm-1
Ji = 0 für 2i Werte von Bm+K-1 ... Bm, Cm-1
ausser für die tiefst- und höchstwertigen Sätze von
Nullen, welche eine Länge von 2² + 2&sup4; ... 2i-1 für die
tiefstwertigen Sätze von Nullen und eine Länge von 2²
+
2³ + 2&sup5; ... 2i-2 für die höchstwertigen Sätze von Nullen
haben,
c) die rekodierte Multiplikatorstufe Ji mit i
= K-1 für ungerade K wird gemäss dem folgenden, sich
wiederholenden Muster für aufsteigende Werte der Bits Bm+K-1
... Bm, Cm-1 bestimmt:
Ji = 0 für 2²+2&sup4;+2i-1 Werte von Bm+K-1 ... Bm, Cm-1
Ji = 1 für 2i Werte von Bm+K-1 ... Bm, Cm-1
Ji = 0 für 2²+2³+2&sup5;+2i-2 Werte von Bm+K-1 ... Bm, Cm-1
d) erzeuge einen Ausgangs-Übertrag Cm+K-1 für
rekodierte Musterposition grösser als 2² + 2&sup4; ... 2K für
gerade K und 2² + 2&sup4; ... 2K-1 + 2K für ungerade K ausser
dass kein Ausgangs-Übertrag erzeugt wird für die
höchstwertige Bitgruppe eines negativen
Zweiekomplement-Multiplikators B;
wobei der Multiplikator weiter
charakterisiert ist durch Vorzeichenerweiterungsmittel zur Erzeugung
einer Vorzeichenerweiterung negativer Partialprodukte,
und
wobei das Partialproduktmittel (70) zur
Bildung der Partialprodukte Pm für jeden rekodierten
Multiplikator und eines Übertrags-Partialprodukts Pc für dem
Ausgangs-Übertrag der höchstwertigen rekodierten
Bitgruppe ist, und wobei die Addiermittel zum Addieren der
Partialprodukte Pm und PC und der Vorzeichenerweiterung zur
Erzeugung eines Endprodukts sind.
11. Ein Multiplikator gemäss einer der
Ansprüche 1 - 10, wobei das Vorzeichenerweiterungsmittel
(106) ein einzelnes Vorzeichenerweiterungswort SEW als
Zweierkomplement einer Sammlung von Vorzeichenbits der
Partialprodukte bildet.
12. Ein Multiplikator nach Anspruch 1,
welcher weiter einen Akkumulator aufweist:
mit Akkumulatorregistermitteln (100) mit
einer Kapazität von R Bits, wobei R grösser als Q ist,
wobei Q = M+N;
mit Arraymitteln (80, 90) zum Addieren der
Vielzahl von Partialprodukten und der tiefstwertigen Bits
vom Akkumulatorregistermittel und zur Bereitstellung
einer Summe S und eines Übertrags C von je N Bits,
wobei das Vorzeichenerweiterungsmittel
Produktvorzeichen-Erweiterungsmittel (106) aufweist, die
parallel zum Teilproduktmittel arbeiten und Arraymittel
zur Bereitstellung eines
Produktvorzeichen-Erweiterungswortes PSEW als Funktion des Multiplikanden A und des
Multiplikators B um die Summe S und dem Übertrag C auf R
Bits zu erweitern; und
wobei das Addiermittel ein Endaddiermittel
(90) aufweist, um die Summe S, dem Übertrag C, das
Produktvorzeichen-Erweiterungswort PSEW und die
höchstwertigen Bits XR-1 ...XQ der Akkumulatorregistermittel zu
addieren.
13. Ein Multiplizierer gemäss Anspruch 12,
wobei das Endaddiermittel (90) Zusammenführungsmittel zum
Zusammenführen der Summe S, des Übertrags C, des
Produktvorzeichen-Erweiterungsworts PSEW und der höchstwertigen
Bits XR-1 ...XQ in zwei zusammengeführte Worte von R
Bits, und einem Addierer zum Addieren der beiden
zusammenge führten Worte.
14. Ein Multiplizierer gemäss Anspruch 12,
wobei das Produktvorzeichen-Erweiterungsmittel (106) eine
Produktvorzeichen-Erweiterung PSEW bestimmt, die ein
tiefstwertiges Bit von 0 hat für
a) einen negativen Zweierkomplement-Multipli
kanden A und einen vorzeichenlosen Multiplikator B,
dessen höchstwertige Bitgruppe, mit Bitgruppenkodierung,
einen Übertrag erzeugt; und
b) einen positiven Multiplikanden A und einen
negativen Zweierkomplement-Multiplikator B, dessen
höchstwertige Bitgruppe, mit Bitgruppenkodierung, einen
Übertrag erzeugt.
15. Ein Multiplikator nach Anspruch 1
beinhaltend:
erste Komplementierungsmittel zum Addieren
eines komplementären Übertrags eines Einerkomplements des
tiefstwertigen Bits des Multiplikanden A zum
zweittiefstwertigen Bit eines Einerkomplements aller Bits von A
ausser dem nichtkomplementierten tiefstwertigen Bit von A
wie folgt:
Zweierkomplement von
um ein Zweierkomplement von A für ein negatives
Partialprodukt zu bilden; und Addiermittel zum Addieren der
Mehrzahl von Partialprodukten zum Erzeugen eines
Endprodukts.
16. Ein Multiplizierer nach Anspruch 15
umfassend:
zweite Komplementierungsmittel zum Addieren
eines Komplementier-Übertrags von eins zum tiefstwertigen
Bits eines Einerkomplements aller Bits des Multiplikanden
A; und
Auswahlmittel zum Auswählen der ersten oder
zweiten Komplementierungsmittel zum Erzeugen eines
Zweierkomplements von A für ein negatives Partialprodukt.
17. Ein Multiplizierer nach Anspruch 16,
wobei das Auswahlmittel das erste Komplementierungsmittel
zum Erzeugen eines Zweierkomplements des Multiplikanden A
für ein kodiertes oder rekodiertes Multiplikatorbit von
-1 auswählt, und das zweite Komplementierungsmittel zum
Erzeugen eines Zweierkomplements des Multiplikanden A für
ein kodiertes oder rekodiertes Multiplikatorbit von -2
auswählt.
18. Ein Multiplikator nach Anspruch 16, wobei
das Auswahlmittel das erste oder zweite
Komplementierungsmittel so auswählt, dass der
KomplementierungsÜbertrag immer zum zweittiefsten Bit des Partialprodukts
Pm addiert wird.
19. Ein Multiplizierter nach Anspruch 1:
umfassend ein Multiplikandenregistermittel
(20) zum Speichern eines Multiplikanden A;
umfassend ein Multiplikatorregistermittel
(60) zum Speichern eines rekodierten Multiplikators B;
wobei das Formatierungsmittel (14, 18)
Zweierkomplement, Sign-Magnitude oder vorzeichenlos
formatierte Zahlen bestimmt und dem Multiplikanden A oder ein
Einerkomplement des Multiplikanden A im
Multiplikandenregistermittel (20) als Funktion der bestimmten
Formate abspeichert; und
umfassend Komplementierungsmittel zum
Erzeugen eines Zweierkomplements des Multiplikanden A im
Multiplikandenregistermittel (20) als negative
Partialprodukte, und zum Erzeugen des Zweierkomplements des
Multiplikanden im Multiplikandenregistermittel (20) als
positive Partialprodukte.
20. Ein Multiplizierer nach Anspruch 19,
wobei das Formatierungsmittel (14, 18) für einen
Multiplikator B mit negativen Vorzeichen ein Einerkomplement
mit Absolutwertbits des Multiplikators B erzeugt und eins
zum tiefstwertigen Bit von B während der Rekodierung
addiert.
21. Ein Multiplizierer nach Anspruch 19,
wobei das Formatierungsmittel (14, 18) für einen
Multiplikator A mit negativen Vorzeichen die Absolutwertbits von
oder eines Einerkomplements des Multiplikanden A im
Multiplikatorregistermittel (20) speichert.
22. Ein Multiplizierer nach Anspruch 19,
wobei das Formatierungsmittel (14, 18) für einen
Multiplikanden A, Multiplikator B und Produkt P im Sign-Magnitude
Format die Absolutwertbits des Multiplikanden A und des
rekodierten Multiplikators B in ihren entsprechenden
Registermitteln (20, 60) bildet und dem Produkt ein
Vorzeichen gemäss Vorzeichengesetz hinzufügt.
23. Ein Multiplizierer nach Anspruch 19,
wobei das Komplementierungsmittel ein Einerkomplement des
Multiplikanden bildet, der im Multiplikandenregister
(20) ist, als negative Partialprodukte.
24. Ein Multiplizierer nach Anspruch 19,
wobei das Komplementierungsmittel einen Komplementierungs-
Übertrag zu einem Einerkomplement des Multiplikanden A
addiert, der im Multiplikandenregistermittel (20) ist, um
ein Zweierkomplement als negative Partialprodukte zu
bilden, und einen Komplementierungs-Übertrag zum
Multiplikanden addiert, der im Multiplikandenregistermittel
(20) ist, um ein Zweierkomplement als positives
Partialprodukt zu bilden.
25. Ein Multiplizierer nach Anspruch 19,
wobei das Formatierungsmittel (14, 18) ein Einerkomplement
im Multiplikandenregister (20) speichert, wenn der
folgende Bool'sche Ausdruck wahr ist:
Wobei T ein Zweierkomplement-Format ist,
U ist ein vorzeichenloses Format
S ist ein Sign-Magnitude Format
Index p ist das Produkt-Format
Index A ist das Multiplikanden-Format
Index B ist das Multiplikator-Format
Hochgestellter Index + ist eine positive Zahl
Hochgestellter Index - ist eine negative Zahl.
26. Ein Multiplizierer zum Multiplizieren ei
nes komplexen Multiplikanden A+jB und eines komplexen
Multiplikators C+jD, wobei die kodierten oder rekodierten
A, B, C, D Zweierkomplement- oder vorzeichenlos
formatierte Zahlen sind, gekennzeichnet durch:
Formatierungsmittel zum Bestimmen der Formate
von A, B, C und D;
erste Rekodierungsmittel zum Rekodieren
nicht-überlappender Zweibit-Gruppen Cm+1; Cm des
Realteils C des Multiplikators und eines ersten Eingangs-
Übertrags in einen rekodierten Gruppenmultiplikator cm
und einen ersten Ausgangsübertrag gemäss einem ersten
Kodierungsschema für alle Bitpaare eines vorzeichenlosen
Realteils C des Multiplikators und alle ausser dem
höchstwertigen Bitpaar eines negativen Zweierkomplement-
Realteils C des Multiplikators und, wenn das
Formatierungsmittel angibt, das der Realteil C des Multiplikators
eine negative Zweierkomplement-Zahl ist, gemäss einer
Modifizierung des ersten Kodierungsschemas, bestimmt durch
das Formatierungsmittel, für das höchstwertige Bitpaar
des Realteils C des Multiplikators,
zweite Rekodierungsmittel zum Rekodieren
nicht-überlappender Zweibit-Gruppen Dm+1; Dm des
Imaginärteils D des Multiplikators und eines zweiten Eingangs-
Übertrags in einen rekodierten Gruppenmultiplikator dm
und einen zweiten Ausgangsübertrag gemäss dem ersten
Kodierungsschema für alle Bitpaare eines vorzeichenlosen
Imaginärteils D des Multiplikators und alle ausser dem
höchstwertigen Bitpaar eines negativen Zweierkomplement-
Imaginärteils D des Multiplikators und, wenn das
Formatierungsmittel angibt, das der Imaginärteil D des
Multiplikators eine negative Zweierkomplement-Zahl ist, gemäss
der Modifizierung des ersten Kodierungsschemas für das
höchstwertige Bitpaar des Imaginärteils D des
Multiplikators,
erste Partialproduktmittel zur Bildung einer
ersten Mehrzahl von Partialprodukten PmAC A×cm×2m;
zweite Partialproduktmittel zur Bildung einer
zweiten Mehrzahl von Partialprodukten PmBD = -B×Dm×2m;
dritte Partialproduktmittel zur Bildung einer
dritten Mehrzahl von Partialprodukten PmAD = A×Dm×2m;
vierte Partialproduktmittel zur Bildung einer
vierten Mehrzahl von Partialprodukten PmBC = B×cm×2m;
erste Komplementierungsmittel zur Bildung
eines Zweierkomplements von A als negative Partialprodukte
PmAC;
zweite Komplementierungsmittel zur Bildung
eines Zweierkomplements von B als positive
Partialprodukte PmBD;
dritte Komplementierungsmittel zur Bildung
eines Zweierkomplements von A als negative
Partialprodukte PmAD;
vierte Komplementierungsmittel zur Bildung
eines Zweierkomplements von B als negative
Partialprodukte PmBC
erste Addiermittel zum Addieren der ersten
und zweiten Mehrzahl von Partialprodukten zum Bilden
eines ersten Endprodukts PR = AC-BD; und
zweite Addiermittel zum Addieren der dritten
und vierten Mehrzahl von Partialprodukten zum Bilden
eines zweiten Endprodukts PI = AD+BC.
27. Ein komplexer Multiplizierer nach
Anspruch 26, wobei:
das Formatierungsmittel das Format der
Multiplikanden A und B, Multiplikatoren C und D und
Endprodukte PR und PI bestimmt und das Abspeichern der
Multiplikanden A und B oder der Einerkomplemente , der
Multiplikanden A, B in dem ersten und zweiten
Multiplikandenregistermitteln als Funktion der bestimmten Formate;
die ersten, dritten und vierten
Komplementierungsmittel bilden ein Zweierkomplement von , , die in
einem entsprechenden der ersten und zweiten
Multiplikandenregistermittel sind, als positive Partialprodukte; und
die zweiten Komplementierungsmittel bilden
ein Zweierkomplement von B, welches im zweiten
Multiplikandenregistermittel ist, als negative Partialprodukte.
28. Ein komplexer Multiplizierer nach
Anspruch 27, wobei die ersten, dritten und vierten
Komplementierungsmittel ein Einerkomplement der Multiplikanden
A und B bilden, die in einem entsprechenden der
Mulitplikandenregistermittel sind, als negative Partialprodukte;
und
die zweiten Komplementierungsmittel ein
Einerkomplement des Multiplikanden B bilden, der im
zweiten Multiplikandenregistermittel ist, als positives
Partialprodukt.
29. Ein komplexer Multiplizierer nach
Anspruch 27, wobei
das erste, zweite und vierte
Komplementierungsmittel einen Komplementierungs-Übertrag zu einem
Einerkomplement des Multiplikanden A, B addiert, alle in
einem entsprechenden der Mulitplikandenregistermittel, um
ein Zweierkomplement als negative Partialprodukte zu
bilden, und einen Komplementierungs-Übertrag zu dem
Multiplikanden , addieren, alle in einem entsprechenden
der Mulitplikandenregistermittel, um ein Zweierkomplement
als positives Partialprodukt zu bilden; und
das zweite Komplementierungsmittel einen
Komplenentierungs-Übertrag zu einem Einerkomplement des
Multiplikanden B addiert, der im zweiten
Multiplikandenregistermittel ist, um ein Zweierkomplement als positive
Partialprodukte zu bilden, und einen Komplementierungs-
Übertrag zum Multiplikanden addiert, der im zweiten
Multiplikandenregistermittel ist, um ein Zweierkomplement
als negatives Partialprodukt zu bilden.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US43479889A | 1989-11-13 | 1989-11-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69032391D1 DE69032391D1 (de) | 1998-07-16 |
DE69032391T2 true DE69032391T2 (de) | 1998-10-29 |
Family
ID=23725750
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE1990632391 Expired - Fee Related DE69032391T2 (de) | 1989-11-13 | 1990-11-08 | Mehrere Bit umkodierender Multiplizierer |
Country Status (3)
Country | Link |
---|---|
EP (2) | EP0813143A3 (de) |
JP (1) | JP3297683B2 (de) |
DE (1) | DE69032391T2 (de) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5268858A (en) * | 1991-08-30 | 1993-12-07 | Cyrix Corporation | Method and apparatus for negating an operand |
JPH05150950A (ja) * | 1991-11-29 | 1993-06-18 | Sony Corp | 乗算回路 |
US5521855A (en) * | 1991-11-29 | 1996-05-28 | Sony Corporation | Multiplying circuit |
DE4317074C1 (de) * | 1993-05-21 | 1994-06-23 | Itt Ind Gmbh Deutsche | Multiplizierer für reelle und komplexe Zahlen |
JP3637073B2 (ja) * | 1993-10-21 | 2005-04-06 | 株式会社東芝 | 倍精度・単精度・内積演算および複素乗算が可能な乗算器 |
DE60027149D1 (de) | 2000-08-01 | 2006-05-18 | St Microelectronics Sa | Aritmetik Einheit |
US7191203B2 (en) * | 2002-09-25 | 2007-03-13 | Broadcom Corporation | Method and system for high-speed multiplication |
CN100405288C (zh) * | 2004-05-27 | 2008-07-23 | 扬智科技股份有限公司 | 乘法器的符号延伸方法及结构 |
US8566385B2 (en) | 2009-12-02 | 2013-10-22 | International Business Machines Corporation | Decimal floating point multiplier and design structure |
CN109121435A (zh) | 2017-04-19 | 2019-01-01 | 上海寒武纪信息科技有限公司 | 处理装置和处理方法 |
CN117933327A (zh) | 2017-04-21 | 2024-04-26 | 上海寒武纪信息科技有限公司 | 处理装置、处理方法、芯片及电子装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4130878A (en) * | 1978-04-03 | 1978-12-19 | Motorola, Inc. | Expandable 4 × 8 array multiplier |
US4575812A (en) * | 1984-05-31 | 1986-03-11 | Motorola, Inc. | X×Y Bit array multiplier/accumulator circuit |
US4700323A (en) * | 1984-08-31 | 1987-10-13 | Texas Instruments Incorporated | Digital lattice filter with multiplexed full adder |
US4868778A (en) * | 1987-05-19 | 1989-09-19 | Harris Corporation | Speed enhancement for multipliers using minimal path algorithm |
EP0295621A3 (de) * | 1987-06-15 | 1991-01-09 | Nec Corporation | Schnelle Summierschaltung |
US5038315A (en) * | 1989-05-15 | 1991-08-06 | At&T Bell Laboratories | Multiplier circuit |
-
1990
- 1990-11-08 DE DE1990632391 patent/DE69032391T2/de not_active Expired - Fee Related
- 1990-11-08 EP EP97114809A patent/EP0813143A3/de not_active Withdrawn
- 1990-11-08 EP EP90121386A patent/EP0428942B1/de not_active Expired - Lifetime
- 1990-11-13 JP JP30422890A patent/JP3297683B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
DE69032391D1 (de) | 1998-07-16 |
EP0428942A3 (en) | 1993-02-03 |
EP0813143A2 (de) | 1997-12-17 |
JP3297683B2 (ja) | 2002-07-02 |
EP0428942A2 (de) | 1991-05-29 |
JPH03211618A (ja) | 1991-09-17 |
EP0428942B1 (de) | 1998-06-10 |
EP0813143A3 (de) | 1998-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE68923262T2 (de) | Zweierkomplementmultiplikation mit einem Vorzeichen-/Grössen-Multiplizierer. | |
DE60318494T2 (de) | Verfahren, einrichtung und system zur durchführung von kalkulationsoperationen | |
DE69032891T2 (de) | Verfahren und Gerät zur Ausführung mathematischer Funktionen mit Hilfe polynomialer Annäherung und eines Multiplizierers rechteckigen Seitenverhältnisses | |
DE69130652T2 (de) | Digitaler paralleler Hochgeschwindigkeitsmultiplizierer | |
DE69416283T2 (de) | Überlaufsteuerung für arithmetische Operationen | |
DE69424626T2 (de) | Parallele Datenverarbeitung in einem Einzelprozessor | |
DE69632978T2 (de) | Multi-Operand-Addierer, der Parallelzähler benutzt | |
DE69811877T2 (de) | ARITHMETISCHER PROZESSOR, der endliche Felder Arithmetik und ganzzahlige modular Arithmetik kombiniert. | |
DE69430838T2 (de) | Schaltung und Verfahren zur parallelen Verschiebung und Addition | |
DE68924477T2 (de) | Gleitkommaeinheit mit gleichzeitiger Multiplikation und Addition. | |
DE69130653T2 (de) | "Pipelined" Verarbeitungseinheit für Fliesskommazahlen | |
DE19540102C2 (de) | Verfahren und Gleitkomma-Recheneinheit mit einer Logik für eine Vierfach-Präzisions-Arithmetik | |
DE68927966T2 (de) | Prozessor für Gleitkommazahlen und ganze Zahlen mit Dividier- und Quadratwurzelfunktionen | |
DE69132517T2 (de) | Gleitkommaprozessor | |
DE3854321T2 (de) | Populationszählung in Rechnersystemen. | |
DE68928376T2 (de) | Vorrichtung zum multiplizieren, teilen und ziehen der quadratwurzel | |
DE69716331T2 (de) | Schaltung für Modulo-Multiplikations- und Exponentiationsarithmetik | |
DE3650335T2 (de) | Rechenverfahren und -gerät für endlichfeldmultiplikation. | |
DE69131187T2 (de) | Hochgeschwindigkeitsdividierer | |
DE69132129T2 (de) | In der Grundzahl 4 arbeitende Übertragvorgriffsbäume | |
DE19758079A1 (de) | Verfahren und Vorrichtung zur Galoisfeld-Multiplikation | |
DE102020113922A1 (de) | Multipliziererschaltungsanordnung mit reduzierter latenz für sehr grosse zahlen | |
DE4414172A1 (de) | Gleit-Komma-Arithmetikeinheit zur Division und Quadratwurzelberechnung, die eine modifizierte Newton-Raphson Technik verwendet | |
DE69032391T2 (de) | Mehrere Bit umkodierender Multiplizierer | |
DE68924386T2 (de) | Verfahren und Gerät zur Radix-2**n-Division mit überlappender Quotientenbitauswahl und gleichzeitiger Rundung und Korrektur des Quotienten. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |