DE69225638T2 - Abrundungsschaltung in einem Gleitkommamultiplizierer - Google Patents

Abrundungsschaltung in einem Gleitkommamultiplizierer

Info

Publication number
DE69225638T2
DE69225638T2 DE69225638T DE69225638T DE69225638T2 DE 69225638 T2 DE69225638 T2 DE 69225638T2 DE 69225638 T DE69225638 T DE 69225638T DE 69225638 T DE69225638 T DE 69225638T DE 69225638 T2 DE69225638 T2 DE 69225638T2
Authority
DE
Germany
Prior art keywords
mantissa
carry
bits
bit
adder
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
Application number
DE69225638T
Other languages
English (en)
Other versions
DE69225638D1 (de
Inventor
Grzegorz B. Sunnyvale California 94086 Zyner
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Application granted granted Critical
Publication of DE69225638D1 publication Critical patent/DE69225638D1/de
Publication of DE69225638T2 publication Critical patent/DE69225638T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/487Multiplying; Dividing
    • G06F7/4876Multiplying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49905Exception handling
    • G06F7/4991Overflow or underflow
    • G06F7/49915Mantissa overflow or underflow in handling floating-point numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • G06F7/49947Rounding

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Nonlinear Science (AREA)
  • Complex Calculations (AREA)

Description

    HINTERGRUND DER ERFINDUNG Gebiet der Erfindung
  • Die Erfindung bezieht sich auf Gleitkomma-Multiplizierer und insbesondere auf Verfahren und Einrichtungen zur Erhöhung der Rundungsgeschwindigkeit bei solchen Multiplizierern.
  • Geschichte des Stands der Technik
  • Es wurden verschiedene Anordnungen vorgeschlagen, um schnelle Multiplizierschaltungen für Computer zur Verfügung zu stellen. Das Produkt von zwei binären n-Bit-Operanden wird im wesentlichen durch Bestimmen einer Anzahl von Teilprodukten erhalten, von denen jedes in Bezug auf das vorhergehende Teilprodukt um ein Bit nach links verschoben ist. Die Teilprodukte werden anschließend addiert, um ein Ergebnis zu erhalten. Um die Teilprodukte schnell zu addieren, wurden Binärbaum-Anordnungen vorgeschlagen, bei denen die individuellen Teilprodukte in Paaren gruppiert werden und die Gruppen mittels übertragserhaltenden Addierern parallel addiert werden. Die Ergebnisse der Addition dieser Teilprodukte werden wiederum paarweise gruppiert, und die Gruppen werden in der gleichen Weise mit zusätzlichen übertragserhaltenden Addierern parallel addiert. Dieses Verfahren wird fortgesetzt, bis die letzten beiden Teilprodukte addiert werden, um ein Produkt zu liefern. High Speed Multiplier Using a Redundant Binary Adder Tree, Harata et al., IEEE Journal of Solid-State Circuits, Band SC-22, Nr. 1, Februar 1987, beschreibt eine solche Schaltung. Ein Addierer mit mitlaufendem Übertrag kann dazu verwendet werden, die Summen und Überträge der letzten beiden Teilprodukte der vorhergehenden Stufen des Binärbaum-Multiplizierers zu addieren.
  • Diese Schaltungen können entweder bei der Multiplikation von ganzen Zahlen oder zum Erzeugen der Mantisse bei der Gleitkomma-Multiplikation verwendet werden. Wird die Multiplizierschaltung in einer Anordnung zur Gleitkomma-Multiplikation verwendet, erzeugt sie normalerweise ein Ergebnis, das doppelt soviele Bits hat, wie die Maschine bearbeitet, so daß das Ergebnis oft aufgerundet werden muß. Der Standard für Binärzahlen mit doppelter Genauigkeit benötigt beispielsweise 53 Bits. Das Produkt von zwei Binärzahlen mit 53 Bits ist 106 Bits lang. Ein Ergebnis mit doppelter Genauigkeit verwendet nur die oberen 54 Bits dieses Produkts, wobei das höchstwertige Bit einen Überlauf anzeigt. Die unteren 53 Bits dienen nur dazu, festzustellen, ob ein Übertrag von den unteren Bits erzeugt wird, ob eine Rundung benötigt wird, und dazu, den genauen Rundungswert zu bestimmen.
  • Um das Produkt zu runden, muß zunächst die Mantisse normalisiert werden. Bei der binären Multiplikation von zwei normalisierten Operanden muß dazu die Mantisse höchstens um ein Bit nach rechts verschoben werden, so daß nur ein einziges signifikantes Bit links vom Binärpunkt liegt. Ferner muß die Potenz des Exponenten erhöht werden. Bis die Mantisse normalisiert ist, ist die Bitposition, auf der die Rundung durchgeführt wird, unbekannt. Obwohl die unteren Bits des Produkts nur dazu verwendet werden, einen Übertrag zu erzeugen und die Rundung zu bestimmen, muß das Übertragsergebnis für die unteren Bits erzeugt werden, bevor der Addierer mit mitlaufendem Übertrag für die oberen Bits seinen Betrieb aufnehmen kann. Da eine Mantisse abgeleitet wird und nur normalisiert werden kann, nachdem die Addition des mitlaufenden Übertrags der oberen Bits abgeschlossen ist, muß die Gesamtoperation normalerweise darauf warten, daß der untere Übertrag erzeugt wird und dieses Übertragsbit durch die oberen Bits läuft. Der Übertrag von den unteren Bits liegt daher im kritischen Pfad.
  • Es ist normal für solche Multiplizierer, daß die Rundungsbedingung erzeugt wird, sobald die Normalisierung stattgefunden hat, und daß ggfs. eine Eins zum geringstwertigen Bit der normalisierten Mantisse addiert wird, um das gerundete Ergebnis zu erhalten. Diese Vorgehensweise verwendet einen Addierer mit mitlaufendem Übertrag am Ausgang des Multiplizierbaums und zur Rundung einen Vorwärtszähler am Ausgang des Addierers. Eine übliche Vorgehensweise zum Beschleunigen der Operation der Anordnung besteht in dem Einsatz von zwei parallelgeschalteten Rundungsschaltungen, wie es in der US 4,849,923 offenbart ist. Eine Schaltung nimmt an, daß die Mantisse überlaufen wird, während die andere annimmt, daß dies nicht passiert. Das richtige Ergebnis wird ausgewählt, sobald das höchstwertige Bit der ungerundeten Mantisse zur Verfügung steht.
  • Auf jeden Fall wartet in üblichen bekannten Gleitkomma- Multiplizierern alles auf das Ergebnis des mitlaufenden Übertrags der unteren Bits.
  • Zusammenfassung der Erfindung
  • Aufgabe der vorliegenden Erfindung ist es daher, die Geschwindigkeit zu erhöhen, mit der Gleitkomma-Multiplizierschaltungen ein Ergebnis liefern können.
  • Es ist eine andere, speziellere Aufgabe der vorliegenden Erfindung, einen wesentlichen Teil der Verzögerung zu beseitigen, die bei einer Gleitkomma-Multiplizierschaltung dadurch verursacht wird, daß das Ergebnis des mitlaufenden Übertrags der unteren Bits abgewartet werden muß.
  • Diese und andere Aufgaben der vorliegenden Erfindung werden gelöst durch eine Rundungsschaltung zum Runden der Mantisse des Ergebnisses der abschließenden Addition in einem Binäraddiererbaum-Gleitkomma-Multiplizierer mit einer Einrichtung, die die oberen Bits der Mantisse unter der Annahme zur Verfügung stellt, daß kein einlaufender Übertrag von den unteren Bits auftritt; einer Einrichtung, die die oberen Bits der Mantisse unter der Annahme zur Verfügung stellt, daß ein einlaufender Übertrag von den unteren Bits auftritt; einer Einrichtung zum Zur-Verfügung-Stellen eines ersten Satzes der unteren Bits der Mantisse auf der Grundlage, eines tatsächlichen einlaufenden Übertrags von einem Addierer niedriger Ordnung und einer Rundungsbedingung, die keinen Mantissenüberlauf annimmt; einer Einrichtung zum Zur- Verfügung-Stellen eines zweiten Satzes der unteren Bits für die Mantisse auf der Grundlage eines tatsächlichen einlaufenden Übertrags von dem Addierer niedriger Ordnung und einer Rundungsbedingung, die einen Mantissenüberlauf annimmt; und einer Einrichtung zum Ausgeben der gerundeten Mantisse, indem die oberen Bits und die unteren Bits der Mantisse auf der Grundlage ausgewählt werden, ob ein einlaufender Übertrag von den unteren Bits der Mantisse auftritt und ob ein Mantissenüberlauf auftritt.
  • Diese und andere Ziele und Merkmale der Erfindung werden durch die folgende detaillierte Beschreibung in Verbindung mit den Zeichnungen deutlicher, in denen in den verschiedenen Darstellungen gleiche Elemente mit den gleichen Bezugszeichen bezeichnet sind.
  • Kurze Beschreibung der Zeichnungen
  • Fig. 1 zeigt ein Diagramm, das die Zustände veranschaulicht, die als Ergebnis der verschiedenen Überlauf-, einlaufender Übertrags- und Rundungsmöglichkeiten in einer Gleitkomma-Multiplizierschaltung möglich sind.
  • Fig. 2 zeigt ein Blockdiagramm, das eine erfindungsgemäß konstruierte Schaltung veranschaulicht.
  • Schreibweise und Terminologie
  • Einige Abschnitte der folgenden detaillierten Beschreibung sind in der Form von symbolischen Darstellungen von Operationen an Datenbits in einem Computerspeicher dargestellt. Diese Beschreibungen und Darstellungen sind die von den Fachleuten auf dem Gebiet der Datenverarbeitung verwendeten Mittel, um anderen Fachleuten den Inhalt ihrer Arbeit am effektivsten zu vermitteln. Die Schritte erfordern physikalische Bearbeitungen von physikalischen Größen. Normaler weise, wenn auch nicht notwendigerweise, haben diese Größen die Form von elektrischen oder magnetischen Signalen, die gespeichert, übertragen, kombiniert, verglichen und auf andere Weise bearbeitet werden können. Es hat sich manchmal als zweckmäßig erwiesen, hauptsächlich weil es so üblich ist, diese Signale als Bits, Werte, Elemente, Symbole, Zeichen, Ausdrücke, Zahlen oder ähnliches zu bezeichnen. Man sollte jedoch nicht vergessen, daß alle diese und ähnliche Ausdrücke den zugehörigen physikalischen Größen zugeordnet werden müssen und lediglich gebräuchliche Bezeichnungen für diese Größen darstellen.
  • Weiterhin werden die durchgeführten Bearbeitungen häufig mit Ausdrücken bezeichnet, wie addieren oder vergleichen, die üblicherweise mit geistigen Operationen eines menschlichen Bedieners assoziiert werden. Eine solche Fähigkeit eines menschlichen Bedieners ist weder nötig noch in den meisten Fällen wünschenswert bei allen hier beschriebenen Operationen, die Teil der vorliegenden Erfindung sind; bei den Operationen handelt es sich um von einer Maschine durchgeführte Operationen. Geeignete Maschinen zum Durchführen der erfindungsgemäßen Operationen sind digitale Universalrechner und ähnliche Einrichtungen. Auf jeden Fall sollte der Unterschied zwischen den Verfahrensschritten beim Betreiben eines Computers und dem Berechnungsverfahren selbst beachtet werden. Die vorliegende Erfindung bezieht sich auf eine Einrichtung zum Betreiben eines Computers beim Verarbeiten von elektrischen oder anderen (z. B. mechanischen, chemischen) physikalischen Signalen zum Erzeugen von anderen gewünschten physikalischen Signalen.
  • Detaillierte Beschreibung der Erfindung
  • Um die Geschwindigkeit zu erhöhen, mit der ein Gleitkomma-Multiplizierer ein abschließendes Ergebnis erzielt, entfernt die vorliegende Erfindung das Erzeugen des unteren Übertragsbits aus dem kritischen Pfad.
  • Um die Arbeitsweise zu verstehen, mit welcher dies gelingt, enthält Fig. 1 eine Anzahl von Diagrammen zum Verdeutlichen der verschiedenen Zustände der Ausgabe des zum Erzeugen des abschließenden Ergebnisses verwendeten Addierers mit mitlaufendem Übertrag. In jedem dieser Fälle ist dieses Produkt MAN_PR[105 : 52] die Ausgabe des Addierers mit mitlaufendem Übertrag, die durch Addieren der oberen Bits der Operanden (die als die beiden Operanden S1[105 : 52] und S2[105 : 52] angegeben sind) erzeugt wurde, wobei die Operanden ihrerseits durch die Binärbaum-Anordnung des Multiplizierers erzeugt wurden. Die ersten vier Fälle nehmen an, daß es keinen Mantissenüberlauf gibt, der eine Normalisierung erfordert, während die letzten vier Beispiele annehmen, daß es einen Mantissenüberlauf gibt. In jedem Fall ist der Mantissenwert als oberer Wert dargestellt, und die vier möglichen Zustände der beiden gerinstwertigen Bits sind darunter dargestellt.
  • Da es keinen Mantissenüberlauf gibt, muß die Mantisse in den Fällen 1 bis 4 nicht normalisiert werden (nach rechts verschoben, wobei ihr Exponent erhöht wird), so daß das Rundungsbit und das Übertragsbit, das vom Addierer mit mitlaufendem Übertrag durch die Addition der unteren Bits geliefert wird, an dergleichen Bitposition zur Verfügung gestellt werden. Im Fall 1 gibt es keinen Übertrag vom Bit 51 der unteren Bits, und eine Rundung ist nicht nötig. Infolgedessen ist die vom Addierer mit mitlaufendem Übertrag erzeugte Mantisse MAN_PR[105 : 52] bereits richtig. Im Fall 2 wird ein Übertragsbit (C51 = 1) von den unteren Bits des Addierers mit mitlaufendem Übertrag erzeugt, wobei eine Rundung nicht erforderlich ist, so daß kein Rundungsbit erzeugt wird. Wie man sieht, pflanzt sich der Übertrag von den unteren Bits nur in dem Fall über die Position des Bits 54 der Mantisse hinaus fort, in dem die beiden gerinstwertigen Bits der Mantisse MAN_PR[105 : 52] beide Einsen sind; dies ist in Fig. 1 durch eine nach links verlaufende Punktreihe im Ergebnis der Kombination des Übertrags und der Mantisse dargestellt. In folgedessen kann nur eine Mantisse MAN_PR[105 : 52] mit Einsen in den beiden untersten Bitpositionen durch ein Übertragsbit C51 zum Überlaufen gebracht werden.
  • Fall 3 (bei dem es kein Übertragsbit, jedoch ein Rundungsbit gibt) stimmt mit Fall 2 überein, da nur eine einzige Eins zu der geringstwertigen Bitposition der Mantisse addiert wird. Infolgedessen kann im Fall 3 nur eine Mantisse MAN_PR[105 : 52] mit Einsen an den beiden untersten Bitpositionen durch ein Übertragsbit C51 zum Überlaufen gebracht werden.
  • In Fall 4 werden durch die geringstwertigen Bits sowohl ein Übertragsbit C51 als auch ein Rundungsbit erzeugt. Das Addieren dieser beiden Bits liefert eine Eins, die an der zweituntersten Bitposition der Mantisse zu addieren ist. Wie man sieht, pflanzen nur Mantissenwerte mit einer Eins in der zweituntersten Bitposition den Übertrag über das Bit 54 der Mantisse hinaus fort. Diese Fälle sind in den Beispielen wiederum durch Punkte links von den beiden geringstwertigen Bits der Beispiele im Fall 4 gekennzeichnet.
  • Die Fälle 5 bis 8 nehmen an, daß ein Mantissenüberlauf auftritt, so daß die Mantisse normalisiert werden muß. Diese Normalisierung bewegt die Bits der Mantisse um eine Position nach rechts und bewirkt, daß das Rundungsbit des Addierers mit mitlaufendem Übertrag für die unteren Bits an der Stelle des Bits 53 der Mantisse eingebracht wird, während das Übertragsbit weiterhin an der Stelle des Bits 52 eingebracht wird.
  • Das Rundungsbit und das Übertragsbit werden daher an zwei verschiedenen Bitpositionen zur Verfügung gestellt. Im Fall 5 gibt es keinen Übertrag vom Bit 51 der unteren Bits, und eine Rundung ist nicht erforderlich. Infolgedessen ist die vom Addierer mit mitlaufendem Übertrag erzeugte Mantisse MAN_PR[105 : 52] bereits das richtige Ergebnis, wie auch immer die gerinstwertigen Bits dieser Mantisse sein mögen. Im Fall 6 wird jedoch ein Übertragsbit (C51 = 1) erzeugt, wohingegen kein Rundungsbit von den unteren Bits des Addierers mit mit laufendem Übertrag erzeugt wird. Wie man sieht, pflanzt sich der Übertrag von den unteren Bits nur in dem Fall über die Position des Bits 54 in der Mantisse hinaus fort, in dem die beiden geringstwertigen Bits der Mantisse MAN_PR [105 : 52] beide Einsen sind; dies ist in. Fig. 1 wiederum durch die nach links verlaufende Punktreihe im Ergebnis dargestellt. Daher kann nur eine Mantisse MAN_PR [105 : 52] mit Einsen in den beiden geringstwertigen Bitpositionen durch ein Übertragsbit C51 zum Überlaufen gebracht werden.
  • Fall 7 (bei dem es kein Übertragsbit aber ein Rundungsbit gibt) stimmt mit Fall 4 überein, bei dem eine einzige Eins an der zweituntersten Bitposition zur Mantisse addiert wird. Nur ein Mantissenwert MAN_PR[105 : 52] mit einer Eins in der zweituntersten Bitposition kann durch eine Eins in der zweituntersten Bitposition zum Überlaufen gebracht werden, so daß sich der Übertrag über das Bit 54 der Mantisse hinaus fortpflanzt.
  • Im Fall 8 gibt es sowohl ein Übertragsbit C51 als auch ein Rundungsbit. Das Addieren dieser beiden Bits führt zu Einsen in den beiden geringstwertigen Bitpositionen. Wie man sieht, pflanzt sich der Übertrag nur bei Mantissenwerten mit Nullen in den beiden niedrigstwertigen Bitpositionen nicht über das Bit 54 der Mantisse hinaus fort. Diese Fortpflanzung ist in den Beispielen wiederum durch Punkte links vn den beiden geringstwertigen Bits in den Beispielen des Falls 8 gekennzeichnet.
  • Man erkennt somit, daß durch Erzeugen eines Paars von Mantissen, eine ohne Übertrag jenseits Bit 54 und eine mit Übertrag jenseits Bit 54 alle in den oben beschriebenen Fällen dargestellten Zustände ohne weiteres erzeugt werden können. Diese Mantissen können erzeugt werden, ohne auf den Übertrag von den unteren Bits zu warten. Diese Mantissen können einer Reihe von Multiplexern zur Verfügung gestellt werden, deren Ausgangssignal durch die tatsächlich auftretende Rundung, den tatsächlich auftretenden unteren Übertrag und den tatsächlich auftretenden Überlauf ausgewählt werden, so daß eine beträchtliche Zeit beim Erzeugen eines Ergebnisses des Multiplizierers eingespart werden kann.
  • Fig. 2 zeigt ein Blockschaltbild der Schaltung zum Implementieren der vorliegenden Erfindung. Eine Schaltung 10 enthält einen ersten Addierer 12 mit mitlaufendem Übertrag und einen zweiten Addierer 13 mit mitlaufendem Übertrag. Der erste Addierer 12 empfängt als Eingabe ein Operandenpaar S1 [105 : 52] und S2 [105 : 52] und addiert diese beiden Werte, um einen Mantissenwert MAN_0 [53 : 0] zu erzeugen. Der Addierer 12 empfängt einen einlaufenden Übertrag von 0 von den unteren Bits und erzeugt daher eine Mantisse, die annimmt, daß es keinen Übertrag am Bit 51 gab. Der zweite Addierer 13 empfängt als Eingabe ein Operandenpaar S1 [105 : 54] und S2 105 : 54] und addiert diese beiden Werte, um einen Mantissenwert MAN_4[53 : 2] zu erzeugen. Der Addierer 13 empfängt einen einlaufenden Übertrag von Eins von den unteren Bits an der Bitposition 54 und erzeugt daher eine Mantisse, die annimmt, daß es einen sich über das Bit 53 hinaus fortpflanzenden Übertrag gab.
  • Die beiden Addierer mit mitlaufendem Übertrag erzeugen daher die Bits der Mantisse vom Bit 54 bis zum Bit 105 unter der Annahme, daß es keinen einlaufenden Übertrag am Bit 52 gab und daß ein einlaufender Übertrag sich bis zum Bit 54 fortgepflanzt hat. Die beiden geringstwertigen Bits der Mantisse des Addierers 12 werden fallengelassen und die verbleibenden Ziffern sowohl von Addierer 12 als auch von Addierer 13 werden jedem von zwei Multiplexern 15 und 16 als die beiden möglichen oberen Werte [53 : 2] einer abschließenden Mantisse zur Verfügung gestellt. Die Mantissenwerte mit Ausnahme der beiden geringstwertigen Bits stehen daher unmittelbar nach Abschluß der Operationen durch die Addierer mit mitlaufendem Übertrag 12 und 13 zur Verfügung, ohne daß auf den Übertrag aus der Addition der unteren Bits der Operanden gewartet wird. Die bei den Multiplexern 15 und 16 ausgewählten Werte werden von zusätzlichen Schaltungen gemäß Fig. 2 bestimmt.
  • Während der Operation der Addierer 12 und 13 zum Erzeugen der oberen Bits der beiden möglichen Mantissenwerte addiert ein kombinatorischer Logikblock 18 die unteren Bits S1_M [50 : 0] und S2_M [50 : 0] der beiden Operanden und liefert als Ausgabe das Übertragsbit 51 und ein Sticky-Bit bzw. Haftbit. Diese beiden Bits werden dazu verwendet, die in den oberen Bitpositionen erforderliche tatsächliche Rundung und den tatsächlichen Übertrag festzustellen. Der IEEE Standard 754 für binärer Gleitkomma-Arithmetik erzeugt einen Standardrundungsmodus "Runde zum nächsten" und in unentscheidbaren Fällen wird "Runde zum nächsten geraden" gewählt. Um einen unentscheidbaren Fall zu lösen, wird in Übereinstimmung mit dem IEEE 754 ein "Sticky-Bit" erzeugt. Das Sticky- Bit hat den Wert Eins, wenn irgendeines der unteren Bits jenseits der Schutzbitposition eines der beiden Operanden eine Eins ist; das Sticky-Bit ist Null, falls kein Bit eine Eins ist.
  • Der IEEE Standard liefert nicht nur den angegebenen Standardmodus, sondern bietet auch drei andere Modi an. Diese sind "runde nach Null, "runde nach plus unendlich" und "runde nach minus unendlich". Jeder der Rundungswerte für diese Rundungsmodi kann erzeugt werden, wenn der Wert des Sticky-Bits bekannt ist.
  • Die drei Bits [53 : 51] jedes der Operanden S1 und S2, die sich in Abhängigkeit von Rundung, Übertrag und Überlauf ändern können, werden an eine Drei-Bit-Addierschaltung 20 übertragen. Die Schaltung 20 empfängt auch den vom Addierer 18 erzeugten Übertrag C51 und das Sticky-Bit und ein Signal RND_MODE, das anzeigt, welcher der vier Rundungsmodi gewünscht wird. Der Addierer 20 addiert diese Signale in einer vom Rundungsmodus abhängigen Weise und erzeugt ein Ausgangssignal RN und ein Ausgangssignal RV. Das Signal RN stellt den zu verwendenden Rundungswert dar, falls kein Überlauf der Mantisse auftritt, wohingegen der Wert RV den zu verwendenden Rundungswert darstellt, falls ein Mantissenüberlauf auftritt.
  • Der RN-Wert wird an einen Zwei-Bit-Addierer 22 an der geringstwertigen Bitposition übertragen. Ferner werden an den Addierer 22 die beiden geringstwertigen Bits [52 : 51] (als MAN_0 [1 : 0] dargestellt) übertragen, die durch den Addierer mit mitlaufendem Übertrag 12 für die Mantisse erzeugt wurden und bei der Übertragung des Mantissenwerts zu den Multiplexern 15 und 16 fallengelassen wurden. Diese Werte und der Wert des Übertragsbits 51 werden kombiniert und erzeugen einen Wert RD0 [1 : 0] für die beiden geringstwertigen Bits einer abschließenden Mantisse. Die Kombination erzeugt ferner ein Signal CN. Der Wert des Signals CN zeigt an, ob es einen einlaufenden Übertrag für das Bit 2 der Mantisse gibt, und zwar für denjenigen Fall, bei dem kein Überlauf der Mantisse auftrat. Das Vorhandensein oder Fehlen dieses Signals CN wird dazu verwendet, das Ausgangssignal des Multiplexers 15 auszuwählen. Liegt ein Übertrag vor, wird der Wert
  • MAN 4_[53 : 52] ausgewählt, der vom Addierer 13 erzeugt wurde, der seinerseits einen einlaufenden Übertrag empfing; ist kein Übertrag vorhanden, wird der Wert MAN_0 [53 : 2] ausgewählt, der vom Addierer 12 ohne einlaufenden Übertrag erzeugt wurde. Das Signal CN vom Addierer 22 wählt somit korrekt eine der beiden Teilmantissen in Abhängigkeit davon aus, ob der einlaufende Übertrag sich bis zum Bit 2 der abschließenden Mantisse fortpflanzt oder nicht.
  • Auf ähnliche Weise wird der RV-Wert ab einen Zwei-Bit-Addierer 23 an der zweituntersten Bitposition übertragen, zusammen mit einer Eins an der geringstwertigsten Bitposition. Ferner werden an den Addierer 23 die beiden geringstwertigsten Bits [52 : 51] (hier als MAN_0 [1 : 0] dargestellt) übertragen, die vom Addierer mit mitlaufendem Übertrag 12 als Mantisse erzeugt wurden, jedoch nicht an die Multiplexer 15 und 16 übertragen wurden. Diese Werte und die Werte des Übertragsbits 51 werden kombiniert und erzeugen einen möglichen Wert RD4[1 : 0] für die beiden geringstwertigen Bitpositionen der Mantisse, der im Fall eines Mantissenüberlaufs zu verwenden ist. Die Kombination erzeugt ferner einen Wert CV, der anzeigt, ob es einen einlaufenden Übertrag am Bit 2 der Mantisse gibt, und zwar in dem Fall, in dem ein Mantissenüberlauf auftrat. Das Vorhandensein oder Fehlen des Signals CV wird dazu verwendet, das Ausgangssignal des Multiplexers 16 auszuwählen. Liegt ein Übertrag vor, so wird der vom Addierer 13, der einen einlaufenden Übertrag empfing, erzeugte Wert MAN_4 [53 : 2] ausgewählt; liegt kein Übertrag vor, wird der vom Addierer 12, ohne einlaufenden Übertrag erzeugte Wert MAN_0 [53 : 2] ausgewählt. Das Signal CV vom Addierer 23 wählt somit die beiden Teilmantissen in Abhängigkeit davon richtig aus, ob der einlaufende Übertrag sich bis zum Bit 2 der abschließenden Mantisse fortpflanzt.
  • Schließlich werden die vom Multiplexer 15 übertragenen oberen Bitwerte mit den beiden unteren Bits vom Addierer 22 verbunden und als ein Eingangssignal an einen dritten Multiplexer 25 übertragen. In ähnlicher Weise werden die vom Multiplexer 16 übertragenen oberen Bitwerte mit den vom Zwei- Bit-Addierer 23 übertragenen beiden unteren Bits verbunden und als weiteres Eingangssignal dem dritten Multiplexer 25 zugeführt. Das vom Multiplexer 25 erzeugte Ausgangssignal wird von dem logischen Ausdruck gesteuert, der zur Rechten dieses Multiplexers 25 gezeigt ist. Es ist klar, daß, falls ein Überlauf von der Mantisse des Addierers 12 ohne einlaufenden Übertrag auftritt, ein Überlauf von der Mantisse des Addierers 13 mit einem einlaufenden Übertrag von Eins auftreten muß. Andererseits ist die Umkehrung nicht wahr; der Überlauf des Addierers 13 kann wegen des einlaufenden Übertrags von Eins auftreten, obwohl der Addierer 12 nicht übergelaufen sein muß.
  • Falls das vom Addierer mit mitlaufendem Übertrag 12 erzeugte obere Bite eine Eins ist (was einen Mantissenüberlauf anzeigt), wird daher das von den Werten des Multiplexers 16 und des Addierers 23 erzeugte Ergebnis ausgewählt. In ähnlicher Weise wird, falls das vom Addierer mit mitlaufendem Übertrag 13 erzeugte obere Bit eine Eins ist (was einen Mantissenüberlauf anzeigt) und es einen einlaufenden Übertrag (CN = 1) am Bit 2 der abschließenden Mantisse gibt, das von den Werten des Multiplexers 16 und des Addierers 23 erzeugte Ergebnis ausgewählt. Tritt keiner dieser beiden Fälle auf, so wird die von dem Multiplexer 15 und dem Addierer 22 zur Verfügung gestellte Mantisse ausgewählt.
  • Es gibt einen Fall, in dem die Schaltung gemäß Fig. 2, wie sie bisher beschrieben wurde, das richtige Ergebnis erzeugt. Dies ist ein Zustand, bei dem alle Bits beider Operanden 51 und 52 unmittelbar links des Bits 51 Einsen sind. Wird eine Eins zum Bit 51 addiert, so sollte ein Übertrag sich durch die Stufen nach links fortpflanzen. Dies geschieht nicht, da die Fortpflanzung von der Addierschaltung nicht ausgeführt wird, die die Addition mit Bit 54 beginnt. Daher wird eine Schaltung 30 mit einer Reihe von Halbaddierern verwendet, um die anfänglichen Übertragsbits zu integrieren, falls das Ausgangssignal des Multiplizierbaums eine Zeichenkette mit lauter Einsen unmittelbar links von Bit 51 ist.
  • Wie für den Fachmann klar ist, erlaubt es die erfindungsgemäße Schaltung, unmittelbar nach Abschluß der Operation des Addierers mit mitlaufendem Übertrag für die oberen Bits alle außer den untersten Bits der möglichen Mantissen zu erzeugen und einen Überlauf zu bestimmen, ohne auf den Übertrag von den unteren Bits vor Beginn der Operation zu warten. Die Schaltung muß dann nur den Wert des einlaufenden Übertrags für das Bit 51, das Sticky-Bit und den Rundungsmodus für drei Bitpositionen bewerten, um die unteren Bits zu liefern. Das Übertragsbit 51 muß daher nur über drei Bitstufen fortgepflanzt werden, statt über alle Stufen des Addierers mit mitlaufendem Übertrag für die oberen Bits. Die erfindungsgemäße Schaltung liefert daher Ergebnisse sehr viel schneller, im wesentlichen indem das vom Addierer mit mitlaufendem Übertrag für die unteren Bits gelieferte Übertragsbit aus dem kritischen Pfad entfernt wird.
  • Obwohl die vorliegende Erfindung mit Bezug auf ein bevorzugtes Ausführungsbeispiel beschrieben wurde, sei ange merkt, daß verschiedene Modifikationen und Abwandlungen von Fachleuten durchgeführt werden können, ohne den Schutzbereich der Erfindung abzuweichen. Die Erfindung sollte daher an den folgenden Ansprüchen gemessen werden.

Claims (5)

1. Eine Rundungsschaltung zum Runden der Mantisse des Ergebnisses der abschließenden Addition in einem Binär-addiererbaum-Gleitkommamultiplizierer, gekennzeichnet durch eine Einrichtung (12), die die oberen Bits der Mantisse unter der Annahme zur Verfügung stellt, daß kein einlaufender Übertrag von den unteren Bits auftritt; eine Einrichtung (13), die die oberen Bits der Mantisse unter der Annahme zur Verfügung stellt, daß ein einlaufender Übertrag von den unteren Bits auftritt; eine Einrichtung (15) zum Zur-Verfügung-Stellen eines ersten Satzes der unteren Bits der Mantisse auf der Grundlage eines tatsächlichen einlaufenden Übertrags von einem Addierer (18) niedriger Ordnung und einer Rundungsbedingung, die keinen Mantissenüberlauf annimmt; eine Einrichtung (16) zum Zur-Verfügung-Stellen eines zweiten Satzes der unteren Bits für die Mantisse auf der Grundlage eines tatsächlichen einlaufenden Übertrags von dem Addierer (18) niedriger Ordnung und einer Rundungsbedingung, die einen Mantissenüberlauf annimmt; und eine Einrichtung (25) zum Ausgeben der gerundeten Mantisse, indem die oberen Bits und die unteren Bits der Mantisse auf der Grundlage ausgewählt werden, ob ein einlaufender Übertrag von den unteren Bits der Mantisse auftritt und ob ein Mantissenüberlauf auftritt.
2. Eine Rundungsschaltung für einen Binärbaum-Gleitkommamultiplizierer nach Anspruch 1, bei welchem die Einrichtung zum Auswählen eine Einrichtung (Select) zum Erfassen, ob ein auslaufender Übertrag von jeder der Einrichtungen zum Zur-Verfügung-Stellen eines Satzes der unteren Bits der Mantisse erzeugt wird, aufweist.
3. Eine Rundungsschaltung für einen Binärbaum-Gleitkommamultiplizierer nach Anspruch 2, bei welchem die Einrich tung zum Auswählen eine Einrichtung (Select) zum Bewerten des Zustands des höchstwertigen Bits der von jeder der Einrichtungen zum Zur-Verfügung-Stellen der oberen Bits der Mantisse zur Verfügung gestellten Bits aufweist.
4. Eine Rundungsschaltung für einen Binärbaum-Gleitkommamultiplizierer nach Anspruch 1, in welcher die Einrichtung zum Auswählen eine Einrichtung zum Bewerten des Zustands des höchstwertigen Bits der von jeder der Einrichtungen zum Zur- Verfügung-Stellen der oberen Bits der Mantisse zur Verfügung gestellten Bits aufweist.
5. Eine Rundungsschaltung für einen Binärbaum-Gleitkommamultiplizierer nach Anspruch 2, in welcher die Einrichtung zum Zur-Verfügung-Stellen eines ersten Satzes der unteren Bits der Mantisse einen ersten Addierer (22) aufweist zum Addieren der geringstwertigen Bits, die von der Einrichtung zum Zur-Verfügung-Stellen der oberen Bits der Mantisse unter der Annahme, daß kein einlaufender Übertrag auftritt, erzeugt worden sind, des von den unteren Bits (rn) unter der Annahme keines Mantissenüberlaufs erzeugten Rundungswerts und des einlaufenden Übertrags von den unteren Bits (C51); und in welcher die Einrichtung zum Zur-Verfügung-Stellen eines zweiten Satzes von unteren Bits der Mantisse einen zweiten Addierer (23) aufweist zum Addieren der geringstwertigen Bits, die von der Einrichtung zum Zur-Verfügung-Stellen der oberen Bits der Mantisse unter der Annahme, daß kein einlaufender Übertrag auftritt, erzeugt worden sind, des von den unteren Bits (rv) unter der Annahme eines Mantissenüberlaufs erzeugten Rundungswerts und des einlaufenden Übertrags von den niederen Bits.
DE69225638T 1991-05-03 1992-04-07 Abrundungsschaltung in einem Gleitkommamultiplizierer Expired - Fee Related DE69225638T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/695,423 US5150319A (en) 1991-05-03 1991-05-03 Circuitry for rounding in a floating point multiplier

Publications (2)

Publication Number Publication Date
DE69225638D1 DE69225638D1 (de) 1998-07-02
DE69225638T2 true DE69225638T2 (de) 1999-01-28

Family

ID=24792917

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69225638T Expired - Fee Related DE69225638T2 (de) 1991-05-03 1992-04-07 Abrundungsschaltung in einem Gleitkommamultiplizierer

Country Status (5)

Country Link
US (1) US5150319A (de)
EP (1) EP0512686B1 (de)
JP (1) JP3306497B2 (de)
KR (1) KR950006582B1 (de)
DE (1) DE69225638T2 (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5218564A (en) * 1991-06-07 1993-06-08 National Semiconductor Corporation Layout efficient 32-bit shifter/register with 16-bit interface
JPH06348455A (ja) * 1993-06-14 1994-12-22 Matsushita Electric Ind Co Ltd 乗算における丸め込み方法及び乗算回路
EP0678813B1 (de) * 1994-03-07 1997-10-15 Nec Corporation Gleitkommamultiplizierer
US5790446A (en) * 1995-07-05 1998-08-04 Sun Microsystems, Inc. Floating point multiplier with reduced critical paths using delay matching techniques
KR100290906B1 (ko) * 1998-03-10 2001-07-12 김영환 부동소수점곱셈기에서반올림과덧셈을동시에수행하는장치및방법
US20080028014A1 (en) * 2006-07-26 2008-01-31 Hilt Jason W N-BIT 2's COMPLEMENT SYMMETRIC ROUNDING METHOD AND LOGIC FOR IMPLEMENTING THE SAME
US9489174B2 (en) 2014-09-26 2016-11-08 Imagination Technologies Limited Rounding floating point numbers
CN109634555B (zh) * 2018-12-19 2022-11-01 深圳信息职业技术学院 一种基于注入值的浮点加法尾数快速舍入方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4849923A (en) * 1986-06-27 1989-07-18 Digital Equipment Corporation Apparatus and method for execution of floating point operations
US4922446A (en) * 1988-04-01 1990-05-01 Digital Equipment Corporation Apparatus and method for floating point normalization prediction
US4972362A (en) * 1988-06-17 1990-11-20 Bipolar Integrated Technology, Inc. Method and apparatus for implementing binary multiplication using booth type multiplication
US5027308A (en) * 1989-02-14 1991-06-25 Intel Corporation Circuit for adding/subtracting two floating point operands
US4926370A (en) * 1989-04-17 1990-05-15 International Business Machines Corporation Method and apparatus for processing postnormalization and rounding in parallel
US4941120A (en) * 1989-04-17 1990-07-10 International Business Machines Corporation Floating point normalization and rounding prediction circuit
US4977535A (en) * 1989-12-08 1990-12-11 Motorola, Inc. Method of computation of normalized numbers

Also Published As

Publication number Publication date
JPH05150948A (ja) 1993-06-18
JP3306497B2 (ja) 2002-07-24
KR950006582B1 (ko) 1995-06-19
EP0512686A2 (de) 1992-11-11
EP0512686A3 (en) 1993-05-19
DE69225638D1 (de) 1998-07-02
US5150319A (en) 1992-09-22
EP0512686B1 (de) 1998-05-27
KR920022667A (ko) 1992-12-19

Similar Documents

Publication Publication Date Title
DE68924477T2 (de) Gleitkommaeinheit mit gleichzeitiger Multiplikation und Addition.
DE69430838T2 (de) Schaltung und Verfahren zur parallelen Verschiebung und Addition
DE19540102C2 (de) Verfahren und Gleitkomma-Recheneinheit mit einer Logik für eine Vierfach-Präzisions-Arithmetik
DE19983175B4 (de) Verfahren, Prozessor und Einrichtung für Gleitkommaoperationen und Formatkonvertierungsoperationen
DE69131458T2 (de) Hardware-Anordnung zur Addition und Subtraktion von Gleitkommazahlen
DE68928058T2 (de) Gerät und verfahren zur prädiktion von gleitkommanormalisierung
DE69632978T2 (de) Multi-Operand-Addierer, der Parallelzähler benutzt
DE3144015C2 (de)
DE68926330T2 (de) Antizipator für die Anzahl vorhergehender Nullen/Einsen
DE3700991C2 (de) Digitaler Übertragsvorgriffsaddierer
DE69132517T2 (de) Gleitkommaprozessor
DE69821408T2 (de) Multiplikationsverfahren und -vorrichtung
DE69435047T2 (de) Schaltung und Verfahren zur parallelen Addition und Mittelwertbildung
DE69130510T2 (de) Arithmetisches Gerät zur Berechnung von transzendenten Elementarfunktionen
DE4403917C2 (de) Vorrichtung zum Berechnen einer Bit-Besetzungszählung
DE69321241T2 (de) Hochleistungsmantissendividierer.
DE3888230T2 (de) Einrichtung und Verfahren zur Durchführung einer Schiebeoperation mit einer Multipliziererschaltung.
DE3700323C2 (de)
DE69434806T2 (de) Verfahren, System und Vorrichtung zum automatischen Entwurf einer Multiplikatorschaltung und durch die Durchführung dieses Verfahrens entworfene Multiplikatorschaltung
DE3701599C2 (de)
DE69227348T2 (de) DIVIDIERSCHALTUNG FüR GLEITKOMMAZAHLEN
DE69225638T2 (de) Abrundungsschaltung in einem Gleitkommamultiplizierer
DE4101004A1 (de) Paralleler multiplizierer mit sprungfeld und modifiziertem wallac-baum
DE3852576T2 (de) Einrichtung und Verfahren für eine erweiterte Arithmetik-Logik-Einheit zur Beschleunigung der ausgewählten Operationen.
DE2405858A1 (de) Normalisierendes verschiebezaehlernetzwerk

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee