DE69132807T2 - Verfahren und Gerät zur Berechnung von Gleitkommadaten - Google Patents

Verfahren und Gerät zur Berechnung von Gleitkommadaten

Info

Publication number
DE69132807T2
DE69132807T2 DE69132807T DE69132807T DE69132807T2 DE 69132807 T2 DE69132807 T2 DE 69132807T2 DE 69132807 T DE69132807 T DE 69132807T DE 69132807 T DE69132807 T DE 69132807T DE 69132807 T2 DE69132807 T2 DE 69132807T2
Authority
DE
Germany
Prior art keywords
bit
rounding
exponent
output
mantissa
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
DE69132807T
Other languages
English (en)
Other versions
DE69132807D1 (de
Inventor
Masato Suzuki
Hideyo Tsuruta
Mikako Yasutome
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Application granted granted Critical
Publication of DE69132807D1 publication Critical patent/DE69132807D1/de
Publication of DE69132807T2 publication Critical patent/DE69132807T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/485—Adding; Subtracting
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; 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
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/487—Multiplying; Dividing
    • G06F7/4876—Multiplying
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; 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/49936—Normalisation mentioned as feature only
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; 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/49942—Significance control
    • G06F7/49947—Rounding
    • G06F7/49957—Implementation of IEEE-754 Standard

Landscapes

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

Description

    HINTERGRUND DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich allgemein auf ein Verfahren und eine Vorrichtung zur Berechnung von Gleitkommadaten, die in Zentraleinheiten bzw. Central Processing Units und dergleichen von digitalen Computern verwendet werden und die insbesondere dafür konfiguriert sind, die vier Grundrechenarten für Gleitkommadaten auszuführen, und ferner auf die vier Grundrechenarten für Gleitkommadaten, Rundungs- und Normierungsberechnungen gemäß der ANSI/IEEE-Norm für Binary Floating Point Arithmetic P754.
  • Die herkömmliche Additionsvorrichtung für Gleitkommadaten ist im Blockschaltbild der Fig. 24 gezeigt. Die Additionsoperation zeigt die Addition, die bezüglich der Mantissendaten zur Zeit der Subtraktion mit unterschiedlichen Vorzeichen oder zur Zeit der Addition mit gleichen Vorzeichen ausgeführt wird. Die Subtraktion zeigt die Subtraktion, die bezüglich der Mantissendaten bei der Addition mit unterschiedlichen Vorzeichen oder der Subtraktion mit gleichen Vorzeichen ausgeführt wird. Die Addition oder Subtraktion wird vor der Operation festgelegt durch den Typ der Vorzeichen der Eingangsdaten und durch die Befehle. In den Zeichen ist das Bezugszeichen 151 ein Register, in welchem eine Mantisse von zwei Gleitkommadaten untergebracht ist, deren Exponent nicht kleiner ist; das Bezugszeichen 152 ist ein Register, in welchem eine Mantisse von zwei Gleitkommadaten, deren Exponent kleiner ist, in der Einheit auf den nicht kleineren Exponenten ausgerichtet und untergebracht ist; das Bezugszeichen 153 ist eine Komplementiereinrichtung, die das Einerkomplement des Ausgangs des Registers 152 zum Zeitpunkt der Subtraktion nimmt; das Bezugszeichen 154 ist ein Addierer, der, während der Übertragseingang (Cin) in das niedrigstwertige Bit zum Zeitpunkt der Addition gleich 0 ist, die Addition mit den Ausgängen des Registers 151 und der Komplementiereinrichtung 153, die die Eingänge sind, ausführt und der die Subtraktion ausführt, während der Übertragseingang (Cin) zum Zeitpunkt der Subtraktion gleich 1 ist; das Bezugszeichen 155 ist ein Register zum Unterbringen des Ausgangs des Addierers 154; das Bezugszeichen 156 ist eine Verschiebungszahl-Erzeugungsschaltung zum Erzeugen von Verschiebungszahlen für die Normierung des Ausgangs des Addierers 154; das Bezugszeichen 157 ist eine Trommelschiebevorrichtung, die dafür konfiguriert ist, um für die Normierung bezüglich des Ausgangs des Registers 155 die Bitanzahl, die die Verschiebungszahl-Erzeugungsschaltung 156 anzeigt, zu verschieben; das Bezugszeichen 158 ist ein Register zum Unterbringen des Ausgangs der Trommelschiebevorrichtung 157; das Bezugszeichen 159 ist eine Rundungswert-Erzeugungsschaltung, die dafür konfiguriert ist, das Vorhandensein der Rundungsaddition entsprechend dem im Register 158 gehaltenen Wert, dem Rundungsmodus und der Rundungsgenauigkeit festzustellen, um den Rundungsadditionswert mit dem niedrigstwertigen Bit (L), das der Rundungsgenauigkeit entspricht, gleich 1 und den anderen Bits gleich 0 zu erzeugen, wenn durch das Runden aufgerundet wird, und um den Rundungsadditionswert mit allen Bits gleich 0 zu erzeugen, wenn durch das Runden abgerundet wird; das Bezugszeichen 160 ist ein Addierer zum Addieren des Ausgangs des Registers 158 und des Ausgangs der Rundungswert-Erzeugungsschaltung 159; das Bezugszeichen 161 ist eine R1-Schiebevorrichtung zum Verschieben des Ausgangs des Addierers 160 in Richtung des niedrigstwertigen Bits (im folgenden mit rechts bezeichnet) um 1 Bit; und das Bezugszeichen 162 ist ein Register zum Unterbringen der Mantisse des Additions- oder Subtraktionsergebnisses, das vom Ausgang der R1-Schiebevorrichtung 161 erhalten wird.
  • Die herkömmliche Additions-Subtraktions-Vorrichtung für Gleitkommadaten, die wie oben beschrieben konstruiert ist, wird im folgenden mit ihrer Operation beschrieben.
  • Zuerst wird ein Fall betrachtet, in welchem der erste Summand, der Minuend und der zweite Summand, der Subtrahend vom Grundformat mit einfacher Genauigkeit nach ANSI-IEEE-Norm für Binary Floating Point Arithmetic P754 (im folgenden als einfache Genauigkeit bezeichnet) sind und die Summe oder Differenz ebenfalls auf einfache Genauigkeit gerundet wird.
  • (1) Vor dem Verarbeitungsschrittbeginn
  • Eine Mantisse, deren Exponent nicht kleiner ist, unter den Mantissen des ersten Summanden, des Minuenden sowie des zweiten Summanden, des Subtrahenden wird im Register 151 untergebracht. Eine Mantisse, deren Exponent kleiner ist, unter den Mantissen des ersten Summanden, des Minuenden sowie des zweiten Summanden, des Subtrahenden wird in der Einheit auf den Exponenten ausgerichtet, der nicht kleiner ist, und wird im Register 152 untergebracht. Die Bits, die bei der Ausrichtung weggenommen worden sind, werden im Register 152 zusammen aufgenommen als ein Rundungsbit (R) mit der Gewichtung 2&supmin;²&sup4; in dem Bit, das um eine Einheit des niedrigstwertigen Bits (L) niedriger ist, und ein Sticky Bit, das die logische Oder-Verknüpfung der Bits mit der Gewichtung 2&supmin;²&sup5; oder niedriger ist.
  • (2) Schritt 1
  • Die Komplementiereinrichtung 153 und der Addierer 154 addieren, subtrahieren zwei Mantissen, die im Register 151 und im Register 152 enthalten sind, um somit das Ergebnis im Register 155 unterzubringen. Zum Additionszeitpunkt gibt die Komplementiereinrichtung (Komplementierer) 153 in den Addierer 154 den Ausgang des Registers 152 unverändert ein, um somit Cin des Addierers 154 gleich 0 zu machen. Zum Subtraktionszeitpunkt nimmt die Komplementiereinrichtung 153 das Einerkomplement des Ausgangs des Registers 152, um dieses somit in den Addierer 154 einzugeben und Cin gleich 1 zu machen.
  • (3) Schritt 2
  • Die Verschiebungszahl-Erzeugungsschaltung 156 erzeugt die Verschiebungszahl für die Normierung des Ausgangs des Addierers 154. Die Trommelschiebevorrichtung 157 bewirkt die Verschiebung des Ausgangs des Registers 155 entsprechend dem Ausgang der Verschiebungszahl-Erzeugungsschaltung 156, um somit die Normierungsverschiebungsoperation bezüglich des Berechnungsergebnisses des Schritts 1 zu bewerkstelligen. Zu diesem Zeitpunkt erzeugt die Trommelschiebevorrichtung 157 die Verschiebungsergebnisse bis hinab zum niedrigstwertigen Bit (L), dem Rundungsbit (R) mit der Gewichtung 2&supmin;²&sup4;, die um eine Einheit kleiner ist als das niedrigstwertige Bit, einem Sticky Bit (S), welches die logische Oder-Verknüpfung der Bits mit der Gewichtung 2&supmin;²&sup5; oder niedriger ist, und bringt diese im Register 158 unter.
  • (4) Schritt 3
  • Die Rundungswert-Erzeugungsschaltung 159 erzeugt den Rundungsadditionswert mit dem im Register 158 gehaltenen niedrigstwertigen Bit (L), dem Rundungsbit (R), dem Sticky Bit (S), dem Rundungsmodus und der Rundungsgenauigkeit sowie dem Vorzeichen des Operationsergebnisses. Der Rundungsadditionswert, der erzeugt werden soll, weist einen Wert auf mit dem Bit mit der Gewichtung 2&supmin;²³ gleich 1 und den anderen Bits gleich 0, wenn das Rundungsadditionssignal gleich 1 ist, und weist einen Rundungswert mit allen Bits gleich 0 auf, wenn das Rundungsadditionssignal gleich 0 ist, entsprechend dem Eingang-Ausgang-Beziehungsdiagramm, das in Fig. 11 gezeigt ist. RM, RP, RN, RZ zeigen der Reihe nach die gerichtete Rundung in Richtung minus, die gerichtete Rundung in Richtung plus, die Rundung zur nächstliegenden glatten Zahl im Rundungsmodus, wie in der ANSI-IEEE-Norm für Binary Floating Point Arithmetic P754 festgelegt ist. Der Addierer 160 addiert den Ausgang des Registers 158 und den Ausgang der Rundungswert- Erzeugungsschaltung 159. Die R1-Schiebevorrichfiung 161 verschiebt den Ausgang des Addierers 160 um ein Bit nach rechts, wenn der Überlauf im Addierer 160 erzeugt worden ist, und bringt im anderen Fall den Ausgang des Addierers 160 unverändert im Register 162 unter, um somit die Verarbeitung abzuschließen.
  • Es folgt ein Fall, in welchem der erste Summand, der Minuend und der zweite Summand, der Subtrahend vom grundlegenden Format mit doppelter Genauigkeit nach ANSI-IEEE-Norm für Binary Floating Point Arithmetic P754 (im folgenden einfach als doppelte Genauigkeit bezeichnet) sind und die Summe oder Differenz ebenfalls auf doppelte Genauigkeit gerundet wird.
  • (1) Vor dem Verarbeitungsschrittbeginn
  • Eine Mantisse, deren Exponent nicht kleiner ist, unter den Mantissen des ersten Summanden, des Minuenden und des zweiten Summanden, des Subtrahenden wird im Register 151 untergebracht. Eine Mantisse, deren Index bzw. Exponent kleiner ist, unter den Mantissen des ersten Summanden, des Minuenden und des zweiten Summanden, des Subtrahenden wird in der Einheit auf den Exponenten ausgerichtet, der nicht kleiner ist, und im Register 152 untergebracht. Die Bits, die bei der Ausrichtung nach unten entnommen worden sind, werden im Register 152 zusammen aufgenommen als ein Rundungsbit (R) mit der Gewichtung 2&supmin;&sup5;³ des Bits, das um eine Einheit des niedrigstwertigen Bits (L) niedriger ist, und ein Sticky Bit (S), das die logische Oder-Verknüpfung der Bits mit der Gewichtung 2&supmin;&sup5;&sup4; oder niedriger ist.
  • (2) Schritt 1
  • Die Komplementiereinrichtung 153 und der Addierer 154 addieren, subtrahieren zwei Mantissen, die im Register 151 und im Register 152 enthalten sind, um das Ergebnis im Register 155 unterzubringen. Zum Additionszeitpunkt gibt die Komplementiereinrichtung 153 in den Addierer 154 den Ausgang des Registers 152 unverändert aus, um Cin des Addierers 154 gleich 0 zu machen. Zum Subtraktionszeitpunkt nimmt die Komplementiereinrichtung 153 das Einerkomplement des Ausgangs des Registers 152, um es somit in den Addierer 154 auszugeben und Cin umzudrehen.
  • (3) Schritt 2
  • Die Verschiebungszahl-Erzeugungsschaltung 156 erzeugt die Verschiebungszahl für die Normierung des Ausgangs des Addierers 154. Die Trommelschiebevorrichtung 157 bewirkt die Verschiebung des Ausgangs des Registers 155 entsprechend dem Ausgang der Verschiebungszahl-Erzeugungsschaltung 156, um somit die Normierungsschiebeoperation bezüglich des Operationsergebnisses des Schritts 1 zu bewerkstelligen. Zu diesem Zeitpunkt erzeugt die Trommelschiebevorrichtung 157 die Verschiebungsergebnisse bis hinab zum niedrigstwertigen Bit (L), dem Rundungsbit (R) mit der Gewichtung 2&supmin;&sup5;³, das um eine Einheit des niedrigstwertigen Bits niedriger ist, einem Sticky Bit (S), das die logische Oder-Verknüpfung der Bits mit der Gewichtung 2&supmin;&sup5;&sup4; oder niedriger ist, und bringt diese im Register 158 unter.
  • (4) Schritt 3
  • Die Rundungswert-Erzeugungsschaltung 159 erzeugt den Rundungsadditionswert mit dem im Register 158 gehaltenen niedrigstwertigen Bit (L), dem Rundungsbit (R), dem Sticky Bit (S), dem Rundungsmodus, der Rundungsgenauigkeit und dem Vorzeichen des Operationsergebnisses. Der Rundungsadditionswert, der als ein Wert mit einem Bit mit der Gewichtung 2&supmin;&sup5;&sup4; gleich 1 und den anderen Bits gleich 0 erzeugt werden soll, wenn das Rundungsadditionssignal gleich 1 ist, ein Rundungswert mit allen Bits gleich 0, wenn das Rundungsadditionssignal gleich 0 ist, entsprechend dem Eingang- Ausgang-Beziehungsdiagramm ist in Fig. 11 gezeigt. Der Addierer 160 addiert den Ausgang des Register 158 und den Ausgang der Rundungswert- Erzeugungsschaltung 159. Die R1-Schiebevorrichtung 161 verschiebt den Ausgang des Addierers 160 um ein Bit nach rechts, wenn der Überlauf im Addierer erzeugt worden ist, und bringt im anderen Fall den Ausgang des Addierers 160 unverändert im Register 162 unter, um somit die Verarbeitung abzuschließen.
  • Die herkömmliche Multiplikationsvorrichtung für Gleitkommadaten, ist im Blockschaltbild der Fig. 25 gezeigt. In Fig. 25 ist das Bezugszeichen 251 ein Multiplikandenregister zum Halten des Multiplikanden, der aus einem Vorzeichenabschnitt 251s mit einem Bit, einem Exponentenabschnitt 251e mit 11 Bits und einem Mantissenabschnitt 251f mit 53 Bits besteht. Das Bezugszeichen 252 ist ein Multiplikatorregister zum Halten des Multiplikators, der aus einem Vorzeichenabschnitt 252s mit einem Bit, einem Exponentenabschnitt 252e mit 11 Bits und einem Mantissenabschnitt 252f mit 53 Bits besteht. Die höchstwertigen Bits des Multiplikandenregister- Mantissenabschnitts 251f oder des Multiplikatorregister-Mantissenabschnitts 252f sind jeweils das sogenannte "verdeckte Bit" mit einer Gewichtung von und sind in der normierten Zahl gleich 1. Mit Ausnahme dieses Bits sind das Multiplikandenregister 251 und das Multiplikatorregister 252 beide konform mit dem Format mit doppelter Genauigkeit. Das Bezugszeichen 253 ist eine Vorzeichenerzeugungsschaltung zum Lesen der Vorzeichen des Multiplikanden und des Multiplikators vom Multiplikandenregister-Vorzeichenabschnitt 251s und vom Multiplikatorregister-Vorzeichenabschnitt 252s, um somit das Vorzeichen des Produkts zu erzeugen, während das Bezugszeichen 254 ein Exponentenaddierer mit 11 Bits zum Lesen der Exponenten des Multiplikanden und des Multiplikators vom Multiplikandenregister- Exponentenabschnitt 251e und vom Multiplikatorregister-Exponentenabschnitt 252e ist, um den Exponenten des Produkts zu berechnen; die Bezugszeichen 255, 256 sind Auswahlvorrichtungen mit 11 Bits zum jeweiligen Auswählen zweier Eingänge des Exponentenaddierers 254; das Bezugszeichen 257 ist ein Zwischenspeicher mit 11 Bits zum Halten des Ausgangs des Exponentenaddierers 254, um diesen in den Exponentenaddierer 254 über die Auswahlvorrichtung 255 erneut einzugeben; das Bezugszeichen 258 ist eine Vorgabekorrekturwert-Erzeugungsschaltung zum Erzeugen der Vorgabe (Abweichung) von 11 Bits in einem Schritt der Berechnung des Exponenten des Produkts; das Bezugszeichen 259 ist eine Normiert-Korrekturwert- Erzeugungsschaltung zum Erzeugen der Konstanten zum Erhöhen des Exponenten um 1 durch die Normierung der 1-Bit-Verschiebung der Mantisse des Produkts; das Bezugszeichen 260 ist eine Multiplikanden-Oben/Unten- Auswahlschaltung zum Lesen des Multiplikandenregister-Mantissenabschnitts 251f, Auswählen der oberen 27 Bits oder der unteren 27 Bits (das höchstwertige Bit ist zu diesem Zeitpunkt gleich 0), um diese auszugeben; das Bezugszeichen 261 ist eine Multiplikator-Oben/Unten-Auswahlschaltung zum Lesen des Multiplikatorregister-Mantissenabschnitts 252f und zum Auswählen der oberen 27 Bits oder der unteren 27 Bits (das höchstwertige Bit ist zu diesem Zeitpunkt gleich 0), um diese auszugeben; das Bezugszeichen 262 ist eine Multiplikationseinheit (Multiplizierer) zum Multiplizieren des Ausgangs der Multiplikanden-Oben/Unten-Auswahlschaltung 260 mit 27 Bits mit dem Ausgang der Multiplikator-Oben/Unten-Auswahlschaltung 261 mit 27 Bits, um somit entsprechend die Summe von 54 Bits und den Übertrag von 54 Bits auszugeben; die Bezugszeichen 263, 264 sind Zwischenspeicher mit 54 Bits zum Halten des Summenausgangs und des Übertragsausgangs der Multiplikationseinheit 262; das Bezugszeichen 265 ist ein Produkterzeugungsaddierer mit 54 Bits zum Addieren des Summenausgangs und des Übertragsausgangs der Multiplikationseinheit 262, die im Zwischenspeicher 263 und im Zwischenspeicher 264 gehalten werden; das Bezugszeichen 266 ist ein Zwischenspeicher mit 54 Bits zum Halten des Ausgangs des Produkterzeugungsaddierers 265; das Bezugszeichen 267 ist eine Rundungsadditionswert-Erzeugungsschaltung zum Erzeugen der Konstanten in der Additionsoperation zum Runden der Mantisse des Produkts auf einfache Genauigkeit oder doppelte Genauigkeit; das Bezugszeichen 268 ist eine Auswahlvorrichtung mit 54 Bits zum Auswählen des Ausgangs der Rundungsadditionswert-Erzeugungsschaltung 267 und des Werts des Zwischenspeichers 266; das Bezugszeichen 269 ist ein Mantissenaddierer mit 54 Bits zum Addieren des Ausgangs der Auswahlvorrichtung 268 und des Werts, der im Zwischenspeicher 273 gehalten wird, wie später beschrieben wird; das Bezugszeichen 270 ist ein logisches Oder-Gatter zum Berechnen der logischen Oder-Verknüpfung des Überlaufs vom höchstwertigen Bit des Produkterzeugungsaddierers 265 und des Überlaufs vom höchstwertigen Bit des Mantissenaddierers 269; das Bezugszeichen 271 ist eine Schiebevorrichtung mit 54 Bits zum Verschieben um 0 Bits, 1 Bit oder 26 Bits des Ausgangs des Mantissenaddierers 269 in Richtung des niedrigstwertigen Bits; das Bezugszeichen 272 ist eine Sticky-Bit-Erzeugungsschaltung zum Eingeben der unteren 30 Bits des Ausgangs des Mantissenaddierers 269 und des Verschiebungsüberlaufs vom niedrigstwertigen Bit der 26 Bits in der Schiebevorrichtung 271, um somit das Sticky Bit entsprechend der einfachen Genauigkeit oder der doppelten Genauigkeit in der Rundungsgenauigkeit zu erzeugen; das Bezugszeichen 273 ist ein Zwischenspeicher mit 54 Bits zum Halten des Ausgangs der Schiebevorrichtung 271; das Bezugszeichen 274 ist ein Produktregister zum Halten des Produkts, das aus einem Vorzeichenabschnitt 274s mit einem Bit, einem Exponentenabschnitt 274e mit 11 Bits und einem Mantissenabschnitt 274f mit 53 Bits besteht. Das höchstwertige Bit des Produktregister-Mantissenabschnitts 274f ist ebenfalls ein sogenanntes "verdecktes Bit" mit der Gewichtung 2 und ist in der normierten Zahl gleich 1. Mit Ausnahme dieses Bits ist das Produktregister 274 konform zum Format mit doppelter Genauigkeit. Fig. 26 ist ein Leistungserläuterungsdiagramm, das die Konstante zeigt, die die in Fig. 25 gezeigte Rundungsadditionswert-Erzeugungsschaltung 167 erzeugt, wobei ein Rundungsadditionswert D mit nur dem 24. Bit ausgehend vom höchstwertigen Bit gleich 1 und den anderen Bits gleich 0 und ein Rundungsadditionswert E mit nur dem zweiten Bit ausgehend vom höchstwertigen Bit gleich 1 und den anderen Bits gleich 0 erzeugt wird.
  • Die herkömmliche Multiplikationsvorrichtung für Gleitkommadaten, die wie oben beschrieben konstruiert ist, wird im folgenden in ihrer Operation beschrieben.
  • Zuerst wird im folgenden unter Verwendung des Operationsflußdiagramms der Multiplikation mit einfacher Genauigkeit, das in Fig. 27 gezeigt ist, ein Fall beschrieben, bei dem der Multiplikand und der Multiplikator einfache Genauigkeit aufweisen und das Produkt ebenfalls auf einfache Genauigkeit gerundet wird. Fig. 27 zeigt die Inhalte der Operation jedes der Verarbeitungsschritte des Exponentenaddierers 254, der Multiplikationseinheit 262, des Produkterzeugungsaddierers 265, des Mantissenaddierers 269 und der Schiebevorrichtung 271.
  • (1) Vor dem Verarbeitungsschrittbeginn
  • Der Multiplikand und der Multiplikator mit einfacher Genauigkeit werden auf doppelte Genauigkeit erweitert und jeweils im Multiplikandenregister 251 bzw. Multiplikatorregister 252 aufgenommen. Zu diesem Zeitpunkt werden der Multiplikandenregister-Exponentenabschnitt 251e und der Multiplikatorregister- Exponentenabschnitt 252e jeweils in den Vorgabeausdruck mit doppelter Genauigkeit umgesetzt (realer Exponentenwert = Exponentenwert - 1023(10)), wobei in die unteren 29 Bits des Multiplikandenregister-Mantissenabschnitts 251f und des Multiplikatorregister-Mantissenabschnitts 252f Nullen gefüllt werden. Der Zwischenspeicher 273 wird auf 0 zurückgesetzt. Hierbei weist (10) auf den Dezimalzahlausdruck im numerischen Wert hin.
  • (2) Schritt 1
  • Von der Auswahlvorrichtung 255 und der Auswahlvorrichtung 256 werden die Exponenten des Multiplikanden und des Multiplikators aus dem Multiplikandenregister-Exponentenabschnitt 251e und dem Multiplikatorregister-Exponentenabschnitt 252e in den Exponentenaddierer 254 eingegeben und addiert, um somit das Additionsergebnis im Zwischenspeicher 257 aufzunehmen. Die Multiplikanden-Oben/Unten-Auswahlschaltung 260 liest die oberen 27 Bits des Multiplikandenregister-Mantissenabschnitts 251f (alle effektiven Bits des Mantissenabschnitts des Multiplikanden sind darin enthalten) und gibt diese aus, während die Multiplikator-Oben/Unten-Auswahlschaltung 261 die oberen 27 Bits des Multiplikatorregister-Mantissenabschnitts 252 (alle effektiven Bits des Mantissenabschnitts des Multiplikators sind darin enthalten) liest und ausgibt. Der Multiplizierer 262 führt die Multiplikation entsprechend den Eingaben vom Multiplikanden-Oben/Unten- Auswahlabschnitt 260 und vom Multiplikator-Oben/Unten-Auswahlabschnitt 261 aus, um somit den Summenausgang und den Übertragsausgang entsprechend im Zwischenspeicher 263 und im Zwischenspeicher 264 aufzunehmen. Gleichzeitig werden in der Vorzeichenerzeugungsschaltung 253 die Vorzeichen des Multiplikanden und des Multiplikators vom Multiplikandenregister-Vorzeichenabschnitt 251s und vom Multiplikatorregister- Vorzeichenabschnitts 252s gelesen, um somit von beiden die Exklusiv-Oder- Verknüpfung zu bilden und das Vorzeichen des Produkts zu erzeugen, um dieses im Produktregister-Vorzeichenabschnitt 724s aufzunehmen.
  • (3) Schritt 2
  • Da der Wert des Zwischenspeichers 257 die Summe der Vorgabeexponenten des Multiplikanden und des Multiplikators hält, wird die Vorgabe doppelt angewendet. Somit wird von der Vorgabekorrekturwert-Erzeugungsschaltung 258 der Wert -1023 (es wird ein Zweierkomplementausdruck verwendet) ausgegeben. Von der Auswahlvorrichtung 255 und der Auswahlvorrichtung 256 werden der Wert des Zwischenspeichers 257 und der Ausgang der Vorgabekorrekturwert-Erzeugungsschaltung 258 im Exponentenaddierer 254 addiert und erneut im Zwischenspeicher 257 aufgenommen. Der Produkterzeugungsaddierer 265 addiert den Summenausgang und den Übertragsausgang der Multiplikationseinheit 262, die im Zwischenspeicher 263 und im Zwischenspeicher 264 enthalten sind, um somit das Additionsergebnis im Zwischenspeicher 266 aufzunehmen.
  • (4) Schritt 3
  • Der Mantissenaddierer 269 addiert den Wert, der im Zwischenspeicher 266 gehalten wird, und den Wert 0 des Zwischenspeichers 263 über die Auswahlvorrichtung 268. Wenn der Überlauf vom Produkterzeugungsaddierer 265 im Schritt 2 existiert, d.h. wenn das Produkt der Mantisse gleich 2 oder größer ist, verschiebt die Schiebevorrichtung 271 (zu diesem Zeitpunkt ist 1 im höchstwertigen Bit verdeckt) den Ausgang des Mantissenaddierers 269 für die Normierung in Richtung des niedrigstwertigen Bits um ein Bit, um das Ergebnis im Zwischenspeicher 273 aufzunehmen. Mittels der Auswahlvorrichtung 255 und der Auswahlvorrichtung 256 addiert der Exponentenaddierer 254 den Wert des Zwischenspeichers 257 und die Konstante 1 der Normiert- Korrekturwert-Erzeugungsschaltung 259 und gibt diesen aus, um ihn wieder im Zwischenspeicher 257 aufzunehmen. Wenn der Überlauf vom Produkterzeugungsaddierer 265 im Schritt 2 nicht existiert, d.h. wenn das Produkt des Mantissenabschnitts gleich 1 oder größer ist und kleiner als 2 ist,
  • nimmt die Schiebevorrichtung 271 diesen unverändert im Zwischenspeicher 273 ohne Verschiebung des Ausgangs vom Mantissenaddierer 269 auf, da die Normierung nicht ausgeführt werden muß. Mittels der Auswahlvorrichtung 255 und der Auswahlvorrichtung 256 gibt der Exponentenaddierer 254 den Wert des Zwischenspeichers 257 unverändert aus und nimmt ihn erneut im Zwischenspeicher 257 auf. Die Sticky-Bit-Erzeugungsschaltung 272 nimmt die logische Oder-Verknüpfung der unteren 30 Bits des Ausgangs des Mantissenaddierers 269, um die Ausgabe des Sticky Bits gleich 1 zu machen, wenn ein Bit mit dem Wert 1 in den 30 Bits vorhanden ist, und den Sticky-Bit- Ausgang gleich 0 zu machen, wenn alle 30 Bits den Wert 0 aufweisen.
  • (5) Schritt 4
  • Die Rundungsadditionswert-Erzeugungsschaltung 267 stellt die Notwendigkeit der Rundungsaddition mittels des Rundungsmodus, des Werts des 25. Bits ausgehend vom höchstwertigen Bit, welches ein Rundungsbit des im Zwischenspeicher 273 enthaltenen Wertes ist, des Vorzeichens des Produkts der Ausgänge der Vorzeichenerzeugungsschaltung 253 (erforderlich, wenn der Rundungsmodus ein Rundung-nach-Plus-Modus und ein Rundung nach- Minus-Modus ist) und des Wertes des Sticky Bits der Ausgänge der Sticky-Bit- Erzeugungsschaltung 272 fest, gibt den Rundungsadditionswert D wie in Fig. 26 gezeigt aus, wenn die Rundungsaddition erforderlich ist, und gibt 0 aus, wenn die Rundungsaddition nicht erforderlich ist. Mittels der Auswahlvorrichtung 268 addiert der Mantissenaddierer 269 den Rundungsadditionswert der Ausgänge der Rundungsadditionswert-Erzeugungsschaltung 267 und einen Wert, der im Zwischenspeicher 273 gehalten wird. Wenn zu diesem Zeitpunkt ein Überlauf im Mantissenaddierer 269 hervorgerufen wird, d.h. die Mantisse ist aufgrund einer Aufrundung gleich 2 oder größer, verschiebt die Schiebevorrichtung 271 den Ausgang vom Mantissenaddierer 269 für die Normierung erneut in Richtung des niedrigstwertigen Bits um ein Bit (zu diesem Zeitpunkt ist im höchstwertigen Bit eine 1 verdeckt). Mittels der Auswahlvorrichtung 255 und der Auswahlvorrichtung 256 addiert der Exponentenaddierer 254 den Wert des Zwischenspeichers 257 und die Konstante 1 in der Normiert-Korrekturwert-Erzeugungsschaltung 259. Wenn im Mantissenaddierer 269 kein Überlauf hervorgerufen wird, d.h. wenn der Mantissenwert gleich 1 oder größer, jedoch kleiner als 2 ist, gibt die Schiebevorrichtung 271 den Ausgang vom Mantissenaddierer 269 unverändert ohne Verschiebung aus, da keine Normierung ausgeführt werden muß. Mittels der Auswahlvorrichtung 255 und der Auswahlvorrichtung 256 gibt der Exponentenaddierer 254 ferner den Wert des Zwischenspeichers 257 unverändert aus. In jedem Fall wird der Ausgang des Exponentenaddierers 254 im Produktregister-Exponentenabschnitt 274e aufgenommen, wobei die unteren 29 Bits der 53 Bits mit Ausnahme des niedrigstwertigen Bits des Ausgangs der Schiebevorrichtung 271 in 0 maskiert werden und im Produktregister- Mantissenabschnitt 274f aufgenommen werden, um somit die Verarbeitung abzuschließen.
  • Im folgenden wird unter Verwendung des Operationsflußdiagramms für die Multiplikation mit doppelter Genauigkeit, wie in Fig. 28 gezeigt, ein Fall beschrieben, bei dem der Multiplikand und der Multiplikator doppelte Genauigkeit aufweisen und das Produkt ebenfalls auf doppelte Genauigkeit gerundet wird. Fig. 28 zeigt ferner die Inhalte der Operationen jedes Verarbeitungsschritts des Exponentenaddierers 254, der Multiplikationseinheit 262, des Produkterzeugungsaddierers 265, des Mantissenaddierers 269 und der Schiebevorrichtung 271.
  • (1) Vor dem Verarbeitungsschrittbeginn
  • Der Multiplikand und der Multiplikator mit doppelter Genauigkeit werden jeweils im Multiplikandenregister 251 und im Multiplikatorregister 252 aufgenommen. Zu diesem Zeitpunkt werden der Multiplikandenregister-Exponentenabschnitt 251e und der Multiplikatorregister-Exponentenabschnitt 252e beide in den Vorgabeausdruck mit doppelter Genauigkeit umgesetzt (realer Exponentenwert = Exponentenwert - 1023(10)). Der Zwischenspeicher 273 wird auf 0 zurückgesetzt.
  • (2) Schritt 1
  • Mittels der Auswahlvorrichtung 255 und der Auswahlvorrichtung 256 werden die Exponenten des Multiplikanden und des Multiplikators vom Multiplikandenregister-Exponentenabschnitt 251e und vom Multiplikatorregister-Exponentenabschnitt 252e in den Exponentenaddierer 254 eingegeben und addiert, um das Additionsergebnis im Zwischenspeicher 257 aufzunehmen. Die Multiplikanden-Oben/Unten-Auswahlschaltung 260 liest die unteren 27 Bits (das höchstwertige Bit ist gleich 0) des Multiplikandenregister-Mantissenabschnitts 251f und gibt diese aus, während die Multiplikator- Oben/Unten-Auswahlschaltung 261 die unteren 27 Bits (das höchstwertige Bit ist gleich 0) des Multiplikatorregister-Mantissenabschnitts 252f liest und ausgibt. Die Multiplikationseinheit 262 führt die Multiplikation entsprechend den Eingaben von der Multiplikanden-Oben/Unten-Auswahlschaltung 260 und der Multiplikator-Oben/Unten-Auswahlschaltung 261 durch, um den Summenausgang und den Übertragsausgang jeweils im Zwischenspeicher 263 bzw. im Zwischenspeicher 264 aufzunehmen. Gleichzeitig werden in der Vorzeichenerzeugungsschaltung 253 die Vorzeichen des Multiplikanden und des Multiplikators aus dem Multiplikandenregister-Vorzeichenabschnitt 251s und dem Multiplikatorregister-Vorzeichenabschnitt 252s gelesen, um von beiden die Exklusiv-Oder-Verknüpfung zu bilden und das Vorzeichen des Produkts zu erzeugen, um es im Produktregister-Vorzeichenabschnitt 274s aufzunehmen.
  • (3) Schritt 2
  • Da der Wert, den der Zwischenspeicher 257 hält, die Summe der Vorgabeexponenten des Multiplikanden und des Multiplikators ist, wird die Vorgabe doppelt angewendet. Von der Vorgabekorrekturwert-Erzeugungsschaltung 258 wird daher -1023 (es wird der Zweierkomplementausdruck verwendet) ausgegeben. Von der Auswahlvorrichtung 255 und der Auswahlvorrichtung 256 werden der Wert des Zwischenspeichers 257 und der Ausgang der Vorgabekorrekturwert-Erzeugungsschaltung 258 ausgegeben und im Exponentenaddierer 254 addiert und erneut im Zwischenspeicher 257 aufgenommen. Der Produkterzeugungsaddierer 265 addiert den Summenausgang und den Übertragsausgang der Multiplikationseinheit 262, die im Zwischenspeicher 263 und im Zwischenspeicher 264 gehalten werden um somit die Additionsergebnisse im Zwischenspeicher 266 aufzunehmen. Der im Zwischenspeicher 266 aufgenommene Wert ist das niedrigstwertige Partialprodukt. Gleichzeitig liest die Multiplikanden-Oben/Unten- Auswahlschaltung 260 die unteren 27 Bits (das höchstwertige Bit ist gleich 0) des Multiplikandenregister-Mantissenabschnitts 251f und gibt diese aus. Die Multiplikator-Oben/Unten-Auswahlschaltung 261 liest die oberen 27 Bits des Multiplikatorregister-Mantissenabschnitts 252f und gibt sie aus. Die Multiplikationseinheit 262 führt die Multiplikation entsprechend den Eingaben von der Multiplikanden-Oben/Unten-Auswahlschaltung 260 und der Multiplikator-Oben/Unten-Auswahlschaltung 261 aus, um somit den Summenausgang und den Übertragsausgang jeweils im Zwischenspeicher 263 und im Zwischenspeicher 264 aufzunehmen.
  • (4) Schritt 3
  • Der Mantissenaddierer 269 addiert den Wert, der im Zwischenspeicher 266 gehalten wird, und den Wert 0 des Zwischenspeicher 273 über die Auswahlvorrichtung 268. Die Schiebevorrichtung 271 verschiebt die Daten der 55 Bits, die 54 Bits des Additionsergebnisses im Mantissenaddierer 269 und ein Bit, das zur Seite des höchstwertigen Bits hinzugefügt ist, umfassen, in Richtung des niedrigstwertigen Bits um 26 Bits, wobei die logische Oder-Verknüpfung des Überlaufs vom Produkterzeugungsaddierer 265 im Schritt 2 und des Überlaufs vom Mantissenaddierer 269 im Schritt 3 im "Oder"-Gatter 270 genommen wird, um somit das Ergebnis im Zwischenspeicher 273 aufzunehmen. Der Produkterzeugungsaddierer 265 addiert den Summenausgang und den Übertragsausgang der Multiplikationseinheit 262, die im Zwischenspeicher 263 und im Zwischenspeicher 264 gehalten werden, um somit das Additionsergebnis aufzunehmen. Der im Zwischenspeicher 266 aufgenommene Wert ist ein erstes Zwischenpartialprodukt. Gleichzeitig liest die Multiplikanden-Oben/Unten-Auswahlschaltung 260 die oberen 27 Bits des Multiplikandenregister-Mantissenabschnitts 252f und gibt diese aus, während die Multiplikator-Oben/Unten-Auswahlschaltung 261 die unteren 27 Bits (das höchstwertige Bit ist gleich 0) des Multiplikatorregister-Mantissenabschnitts 252f liest und ausgibt. Die Multiplikationseinheit 262 führt die Multiplikation entsprechend den Eingaben von der Multiplikanden-Oben/Unten- Auswahlschaltung und der Multiplikator-Oben/Unten-Auswahlschaltung 261 aus, um somit den Summenausgang und den Übertragsausgang jeweils im Zwischenspeicher 263 und im Zwischenspeicher 264 aufzunehmen.
  • (5) Schritt 4
  • Der Mantissenaddierer 269 addiert den Wert, der im Zwischenspeicher 266 enthalten ist, und den im Zwischenspeicher 273 gehaltenen Ausgang der Schiebevorrichtung 271 über die Auswahlvorrichtung 268. Die Schiebevorrichtung 271 gibt die 54 Bits des Additionsergebnisses im Mantissenabschnitt 269 unverändert ohne Verschiebung aus, um sie im Zwischenspeicher 273 aufzunehmen. Der Produkterzeugungsaddierer 265 addiert den Summenausgang der Multiplikationseinheit 262, der im Zwischenspeicher 263 und im Zwischenspeicher 264 enthalten ist, und den Übertragsausgang, um somit das Additionsergebnis aufzunehmen. Der Wert, der im Zwischenspeicher 266 aufgenommen ist, ist ein zweites Zwischenpartialprodukt. Gleichzeitig liest die Multiplikanden-Oben/Unten-Auswahlschaltung 260 die oberen 27 Bits des Multiplikandenregister-Mantissenabschnitts 251f und gibt diese aus, während die Multiplikator-Oben/Unten-Auswahlschaltung 261 die oberen 27 Bits des Multiplikatorregister-Mantissenabschnitts 252f liest und ausgibt. Die Multiplikationseinheit 262 führt die Multiplikation gemäß den Eingaben von der Multiplikanden-Oben/Unten-Auswahlschaltung 260 und der Multiplikator- Oben/Unten-Auswahlschaltung 261 aus, um somit den Summenausgang und den Übertragsausgang jeweils im Zwischenspeicher 263 und im Zwischenspeicher 264 aufzunehmen.
  • (6) Schritt 5
  • Der Mantissenaddierer 269 addiert den im Zwischenspeicher 266 gehaltenen Wert und den im Zwischenspeicher 273 gehaltenen Ausgang der Schiebevorrichtung 271 über die Auswahlvorrichtung 268. Die Schiebevorrichtung 271 verschiebt die Daten von 55 Bits, die 54 Bits des Additionsergebnisses im Mantissenaddierer 269 und ein Bit, das auf der Seite des höchstwertigen Bits hinzugefügt ist, umfassen, in Richtung des niedrigstwertigen Bits um 26 Bits, wobei die logische Oder-Verknüpfung des Überlaufs vom Produkterzeugungsaddierer 265 im Schritt 4 und des Überlaufs vom Mantissenaddierer 269 im Schritt 5 im "Oder"-Gatter 270 genommen wird, um somit das Ergebnis im Zwischenspeicher 273 aufzunehmen. Der Produkterzeugungsaddierer 265 addiert den Summenausgang und den Übertragsausgang der Multiplikationseinheit 262, die im Zwischenspeicher 263 und im Zwischenspeicher 264 gehalten werden, um somit das Additionsergebnis unterzubringen. Der im Zwischenspeicher 266 aufgenommene Wert ist das höchstwertige Partialprodukt.
  • (7) Schritt 6
  • Der Mantissenaddierer 269 addiert den im Zwischenspeicher 266 gehaltenen Wert und den im Zwischenspeicher 273 gehaltenen Ausgang der Schiebevorrichtung 271 über die Auswahlvorrichtung 268. Wenn die logische Oder- Verknüpfung des Überlaufs vom Produkterzeugungsaddierer 265 im Schritt 3 und der Überlauf vom Mantissenaddierer 269 im Schritt 4, die im logischen Oder-Gatter 270 genommen wird, gleich 1 ist, d.h. das Produkt des Mantissenabschnitts ist gleich 2 oder größer, verschiebt die Schiebevorrichtung 271 den Ausgang des Mantissenaddierers 269 (zu diesem Zeitpunkt ist eine 1 im höchstwertigen Bit verdeckt) um ein Bit in Richtung des niedrigstwertigen Bits, um das Ergebnis im Zwischenspeicher 273 aufzunehmen. Der Exponentenaddierer 254 addiert den Wert des Zwischenspeichers 257 und die Konstante 1, die die Normiert-Korrekturwert-Erzeugungsschaltung 259 ausgibt, über die Auswahlvorrichtung 255 und die Auswahlvorrichtung 256, um diesen erneut im Zwischenspeicher 257 aufzunehmen. Wenn der Wert mit der logischen Oder-Verknüpfung, die im logischen Oder-Gatter 270 vorgenommen wird, gleich 0 ist, d.h. das Produkt des Mantissenabschnitts ist gleich 1 oder größer und kleiner als 2, wird der Ausgang vom Mantissenaddierer 269 ohne Verschiebung unverändert im Zwischenspeicher 273 aufgenommen, da die Normierung nicht durchgeführt werden muß. Der Exponentenaddierer 254 gibt den Wert des Zwischenspeichers 257 unverändert über die Auswahlvorrichtung 255 und die Auswahlvorrichtung 256 aus, um diesen erneut im Zwischenspeicher 257 aufzunehmen. Die Sticky-Bit-Erzeugungsschaltung 272 nimmt die logische Oder-Verknüpfung der 52 Bits, wobei der Verschiebungsüberlauf vom niedrigstwertigen Bit der 26 Bits in der Schiebevorrichtung 271 im Schritt 3 und der Verschiebungsüberlauf vom niedrigstwertigen Bit der 26 Bits in der Schiebevorrichtung 271 im Schritt 5 darin kombiniert werden. Der Sticky-Bit-Ausgang wird gleich 1 gesetzt, wenn ein Bit mit dem Wert 1 in den 52 Bits vorhanden ist, während der Sticky-Bit- Ausgang auf 0 gesetzt wird, wenn alle Bits der 52 Bits den Wert 0 aufweisen.
  • (8) Schritt 7
  • Die Rundungsadditionswert-Erzeugungsschaltung 267 stellt die Anforderungen fest anhand des Rundungsmodus, des Wertes des niedrigstwertigen Bits, welches das Rundungsbit des im Zwischenspeicher 273 gehaltenen Wertes ist, des Vorzeichens des Produkts der Ausgänge der Vorzeichenerzeugungsschaltung 253 (erforderlich, wenn der Rundungsmodus ein Rundung-nach-Plus-Modus und ein Rundung-nach-Minus-Modus ist) und des Wertes des Sticky Bits der Ausgänge der Sticky-Bit-Erzeugungsschaltung 272, gibt den in Fig. 26 gezeigten Rundungsadditionswert E aus, wenn die Rundungsaddition erforderlich ist, und gibt 0 aus, wenn die Rundungsaddition nicht erforderlich ist. Mittels der Auswahlvorrichtung 268 addiert der Mantissenaddierer 269 den Rundungsadditionswert, den die Rundungsadditionswerterzeugungsschaltung 267 ausgibt, über die Auswahlvorrichtung 268 und den Wert, den der Zwischenspeicher 273 hält. Wenn zu diesem Zeitpunkt ein Überlauf im Mantissenaddierer 269 hervorgerufen wird, d.h. die Mantisse ist gleich 2 oder größer durch das Aufrunden, verschiebt die Schiebevorrichtung 271 den Ausgang des Mantissenaddierers 269 für die Normierung erneut um ein Bit in Richtung des niedrigstwertigen Bits (zu diesem Zeitpunkt ist eine 1 im höchstwertigen Bit verdeckt). Mittels der Auswahlvorrichtung 255 und der Auswahlvorrichtung 256 addiert der Exponentenaddierer 254 den Wert des Zwischenspeichers 257 und die Konstante 1 der Normiert-Korrekturwert-Erzeugungsschaltung 259. Wenn im Mantissenaddierer 269 kein Überlauf hervorgerufen wird, d.h. die Mantisse ist gleich 1 oder größer und kleiner als 2, gibt die Schiebevorrichtung 1 den Wert des Ausgangs des Mantissenaddierers 269 ohne Verschiebung unverändert aus, da keine Normierung durchgeführt werden muß. Mittels der Auswahlvorrichtung 255 und der Auswahlvorrichtung 256 gibt der Exponentenaddierer 254 ferner den Wert des Zwischenspeichers 257 unverändert aus. In jedem Fall wird der Ausgang des Exponentenaddierers 254 im Produktregister-Exponentenabschnitt 274e aufgenommen, wobei die 53 Bits mit Ausnahme des niedrigstwertigen Bits des Ausgangs der Schiebevorrichtung 271 im Produktregister-Mantissenabschnitt 274f aufgenommen werden, um somit die Verarbeitung abzuschließen.
  • Auch in der herkömmlichen Divisionsvorrichtung für die Gleitkommadaten wird zuerst der Wert des Exponentenabschnitts des Divisors von dem Wert des Exponentenabschnitts des Dividenden subtrahiert, um den Exponentenabschnitt eines Quotienten zu erhalten. Da es sich bei den Subtraktionswerten um die Differenz zwischen den vorgegebenen oder verschobenen Exponenten handelt, wird die Vorgabe kompensiert. Daher wird der Vorgabewert zu dem Subtraktionswert hinzuaddiert, um einen korrekt vorgegebenen oder verschobenen Exponentenabschnitt des Quotienten zu bilden.
  • In der herkömmlichen Additions- und Subtraktionsvorrichtung für Gleitkommadaten ist jedoch die Position des niedrigstwertigen Bits (L) für das Addieren des Rundungsadditionswertes für das erste Mal nach der Normierungsverschiebung durch die Trommelschiebevorrichtung 157 fixiert und bezüglich der Eingabe, Ausgabe in den Addierer 154 nicht fixiert, was somit normalerweise zu dem Verarbeitungsablauf Addition oder Subtraktion, Normierung, Rundung führt. Die Addition und die Subtraktion von zwei Mantissen und die Addition des Rundungsadditionswertes müssen somit jeweils unabhängig bewerkstelligt werden. Es sind wenigstens vier Verarbeitungsschritte einschließlich der Ausrichtung erforderlich, wie in Fig. 8(a) gezeigt ist. Da ferner die Addition, Subtraktion der ersteren vom Addierer 154 und die Addition des letzteren vom Addierer 160 bewerkstelligt wird, sind zwei Addierer erforderlich.
  • Es ergibt sich das Problem, dass die Anzahl der Hardwareeinrichtungen zunimmt.
  • In der herkömmlichen Multiplikationsvorrichtung für Gleitkommadaten werden die Addition der Summe und des Übertrags von der Multiplikationseinheit 262, die Addition zum Akkumulieren der Partialprodukte und die Addition der Rundungsadditionswerte jeweils unabhängig bewerkstelligt, wobei vier Verarbeitungsschritte erforderlich sind im Fall einer Multiplikation mit einfacher Genauigkeit, und sieben Schritte im Fall einer Multiplikation mit doppelter Genauigkeit. Ferner wird die Addition der einen ersteren bewerkstelligt mit dem Produkterzeugungsaddierer 265, während die Addition der zwei letzteren vom Mantissenaddierer 269 bewerkstelligt wird, so dass zwei Addierer erforderlich sind und das Problem entsteht, dass die Anzahl der Hardwareeinrichtungen zunimmt.
  • Auch in der herkömmlichen Divisionsvorrichtung für die Gleitkommadaten wird zuerst der Subtraktionswert zum einfachen Subtrahieren des Exponentenabschnitts des Dividenden und des Exponentenabschnitts des Divisors hinsichtlich der Vorgabe kompensiert, wobei der Schritt des Korrigierens der Vorgabe erforderlich wird, mit dem Problem der Erhöhung des Hardwareaufwands für die Vorgabekorrektur.
  • In der Offenbarung Elektronik, Vol. 29, Nr. 9, April 1980, Seiten 50-54 ist eine Multiplikation zweier Gleitkommadaten mit um 128 verschobenen Exponenten beschrieben. In diesem Dokument wird das höchstwertige Bit eines der Exponenten invertiert, um den Wert Exponent-128 in einen der Eingänge des Exponentenaddierers einzugeben. Als Ergebnis der Addition ergibt sich ein in korrekter Weise um 128 verschobener Exponent.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Zur Lösung der vorgenannten Aufgabe betrifft eine erste Erfindung gemäß der Definition im unabhängigen Patentanspruch 1 ein Multiplikationsverfahren für die Gleitkommadaten, das angepasst ist zum Bewirken einer Operation zum Erhalten eines um 1 größeren Werts gegenüber einem Wert mit einer Addition des Exponentenabschnitts des Multiplikanten des Gleitkommaformats mit dem verschobenen Exponentenabschnitt und des Exponentenabschnitts des Multiplikators mit demselben Gleitkommaformat, Invertieren des höchstwertigen Bits des vorstehend beschriebenen Berechnungsergebnisses nach der vorstehend beschriebenen Berechnung.
  • Ein zweiter Aspekt der Erfindung gemäß dem unabhängigen Patentanspruch 3 betrifft eine Multiplikationsvorrichtung für die Gleitkommadaten mit einer Exponentenaddiereinrichtung zum Erhalten eines Werts, bei dem 1 hinzuaddiert wird zu der Summe aus den Exponentenabschnitten des Multiplikanten und des Multiplikators der Gleitkommadaten mit dem verschobenen Exponentenabschnitt, der Höchstwertbitkorrektureinrichtung zum Invertieren des höchstwertigen Bits der Ausgabe der vorstehend beschriebenen Exponentenaddiereinrichtung.
  • Eine weitere Aufgabe der vorliegenden Erfindung ist das Bereitstellen eines Verfahrens und einer Vorrichtung zum Dividieren der Gleitkommadaten, bei denen die Schritte des Korrigierens der Vorgabe oder Verschiebung des Exponentenabschnitts nicht erforderlich sind, bei denen der Hardwareaufwand verglichen mit der Dividiervorrichtung der herkömmlichen Gleitkommadaten geringer ist.
  • Zur Lösung dieser und anderer Aufgaben betrifft ein dritter Aspekt der Erfindung gemäß dem Patentanspruch 2 ein Verfahren zum Dividieren der Gleitkommadaten zum Bewirken der Berechnung zum Erhalten des Werts, der um 1 kleiner ist als der subtrahierte Wert des Exponentenabschnitts des Divisors der Gleitkommadaten mit verschobenem Exponenten von dem Exponentenabschnitt des Dividenden derselben Gleitkommadaten, um das höchstwertige Bit des vorstehend beschriebenen Berechnungsergebnisses nach der vorstehend beschriebenen Berechnung zu invertieren.
  • Ein vierter Aspekt der Erfindung gemäß dem unabhängigen Patentanspruch 5 betrifft eine Divisionsvorrichtung für die Gleitkommadaten mit einer Exponentensubtrahiereinrichtung zum Erhalten eines um 1 kleineren Werts gegenüber dem Wert, bei dem der Exponentenabschnitt des Divisors der Gleitkommadaten mit verschobenem Exponenten von dem Exponentenabschnitt des Dividenden derselben Gleitkommadaten reduziert ist, einer Höchstwertbitkorrektureinrichtung zum Invertieren des höchstwertigen Bits der Ausgabe der vorstehend beschriebenen Exponentensubtrahiereinrichtung.
  • Weitere Ausführungsformen der Erfindung werden in den beigefügten abhängigen Patentansprüchen spezifiziert.
  • KURZBESCHREIBUNG DER ZEICHNUNG
  • Diese und weitere Aufgaben sowie Merkmale der Erfindung werden deutlich an Hand der folgenden Beschreibung in Verbindung mit der bevorzugten Ausführungsform derselben mit Bezug auf die beigefügten Zeichnungen. Hierbei ist:
  • Fig. 1 ein Blockschaltbild einer Additions-Subtraktions-Vorrichtung für Gleitkommadaten;
  • Fig. 2 ein Blockschaltbild einer Additions-Subtraktions-Vorrichtung für Gleitkommadaten;
  • Fig. 3 ein Steuerungsbeziehungsdiagramm einer Rundungskorrekturwiederholungs-Steuerschaltung 109 beim Modus zum Runden auf die nächstliegende glatte Zahl der Additions-Subtraktions-Vorrichtung für Gleitkommadaten;
  • Fig. 4, 5 und 6 Steuerungsbeziehungsdiagramme der Rundungskorrekturwiederholungs-Steuerschaltung 109 im gerichteten Rundung nach-Plus- Modus oder im gerichteten Rundung-nach-Minus-Modus der Additions-Subtraktions-Vorrichtung für Gleitkommadaten;
  • Fig. 7 ein Steuerungsbeziehungsdiagramm der Übertragssteuervorrichtung 115 der Additions-Subtraktions-Vorrichtung für Gleitkommadaten;
  • Fig. 8 ein Verarbeitungsflußdiagramm der herkömmlichen Additions- Subtraktions-Vorrichtung für Gleitkommadaten und der Additions- Subtraktions-Vorrichtung für Gleitkommadaten;
  • Fig. 9 ein Eingang-Ausgang-Beziehungsdiagramm der Rundungswert-Erzeugungsschaltung 106 der Additions-Subtraktions-Vorrichtung für Gleitkommadaten;
  • Fig. 10 ein Vorzeichen- und Operationsbeziehungsdiagramm der Operation des Addierers und des Verfahrens zur Ermittlung des Vorzeichens des Berechnungsergebnisses der Additions-Subtraktions- Vorrichtung für Gleitkommadaten;
  • Fig. 11 ein erläuterndes Diagramm, das das Vorhandensein, die Abwesenheit der Rundungsaddition der herkömmlichen Additions- Subtraktions-Vorrichtung für Gleitkommadaten und der Additions- Subtraktions-Vorrichtung für Gleitkommadaten zeigt;
  • Fig. 12 ein Prinzipdiagramm der Übertragserzeugung zum Rundungsadditionszeitpunkt beim Modus des Rundens zur nächstliegenden glatten Zahl, beim positiv gerichteten Rundung-nach-Plus-Modus und beim gerichteten Rundung-nach-Minus-Modus der Additions- Subtraktions-Vorrichtung für Gleitkommadaten;
  • Fig. 13 eine Ausführungsformansicht der Addition, Subtraktion, die das Prinzip der Additions-Subtraktions-Vorrichtung für Gleitkommadaten wiedergibt;
  • Fig. 14 ein Blockschaltbild der Multiplikationsvorrichtung für Gleitkommadaten in einer ersten Ausführungsform der vorliegenden Erfindung;
  • Fig. 15 ein inneres Blockschaltbild der Multiplikanden-Oben/Unten- Auswahlschaltung 212 und der Multiplikator-Oben/Unten-Auswahlschaltung 213 in der Ausführungsform;
  • Fig. 16 eine Operationserläuterungsansicht der Rundungsadditionswerterzeugungsschaltung 217 in der Ausführungsform;
  • Fig. 17 ein Steuerungsbeziehungsdiagramm der Mantissenkorrektursteuerschaltung 224 in der Ausführungsform;
  • Fig. 18 ein Operationsflußdiagramm der Multiplikation mit einfacher. Genauigkeit in der gleichen Ausführungsform;
  • Fig. 19 eine Ausführungsformansicht der Addition und der Verschiebung zum Multiplikationszeitpunkt mit einfacher Genauigkeit in der Ausführungsform;
  • Fig. 20 ein Operationsflußdiagramm der Multiplikation mit doppelter Genauigkeit in der gleichen Ausführungsform;
  • Fig. 21 eine Ausführungsformansicht der Addition und der Verschiebung zum Multiplikationszeitpunkt mit doppelter Genauigkeit in der Ausführungsform;
  • Fig. 22 ein Blockschaltbild der Divisionsvorrichtung für Gleitkommadaten in einer zweiten Ausführungsform der vorliegenden Erfindung;
  • Fig. 23 ein Operationsflußdiagramm der Division in der gleichen Ausführungsform;
  • Fig. 24 ein Blockschaltbild der Additions-Subtraktions-Vorrichtung für herkömmliche Gleitkommadaten;
  • Fig. 25 ein Blockschaltbild der herkömmlichen Multiplikationsvorrichtung für Gleitkommadaten;
  • Fig. 26 eine Operationserläuterungsansicht der Rundungsadditionswerterzeugungsschaltung 267 in der herkömmlichen Multiplikationsvorrichtung;
  • Fig. 27 ein Operationsflußdiagramm der Multiplikation mit einfacher Genauigkeit in der herkömmlichen Multiplikationsvorrichtung; und
  • Fig. 28 ein Operationsflußdiagramm der Multiplikation mit doppelter Genauigkeit in der herkömmlichen Multiplikationsvorrichtung.
  • GENAUE BESCHREIBUNG DER ERFINDUNG
  • Vor der Beschreibung der vorliegenden Erfindung ist zu beachten, dass ähnliche Teile in den beigefügten Zeichnungen mit ähnlichen Bezugszeichen bezeichnet sind.
  • Fig. 1 zeigt ein Blockschaltbild der Additions-Subtraktions-Vorrichtung für Gleitkommadaten. In Fig. 1 ist das Bezugszeichen 101 ein Register zum Aufnehmen einer Mantisse, deren Exponent nicht kleiner ist, unter zwei Gleitkommadaten; das Bezugszeichen 102 ist ein Register zum Aufnehmen der Mantisse, deren Exponent kleiner ist und die auf den nicht kleineren Exponenten von den zwei Gleitkommadaten ausgerichtet ist; das Bezugszeichen 103 ist ein Multiplexierer zum Auswählen des Registers 110, das später beschrieben wird, wenn die Rundungskorrekturwiederholungs- Steuerschaltung 109, die später beschrieben wird, das Einfügen des neuen Verarbeitungsschrittes angewiesen hat, und des Registers 101 zur Normalberechnungszeit mit Ausnahme des obigen Falles; das Bezugszeichen 104 ist ein Multiplexierer zum Auswählen der konstanten 0, wenn die Rundungskorrekturwiederholungs-Steuerschaltung 109, die später beschrieben wird, das Einfügen des neuen Verarbeitungsschrittes angewiesen hat, und des Registers 102 zum normalen Berechnungszeitpunkt mit Ausnahme des obigen Falls; das Bezugszeichen 105 ist eine Komplementiereinrichtung (Komplementierer) zum Nehmen des Einerkomplements des Ausgangs des Multiplexierers 104 zum Subtraktionszeitpunkt; das Bezugszeichen 106 ist eine Rundungswert- Erzeugungsschaltung zum Bestimmen der Position der Rundungsaddition entsprechend der Exponentendifferenz der zwei Gleitkommadaten, des Operationstyps und des Rundungsmodus, um somit Daten mit dem gerundeten addierten Bit gleich 1 und den anderen Bits gleich 0 zu erzeugen; das Bezugszeichen 107 ist ein Addierer, der dafür konfiguriert ist, gleichzeitig die vorläufige Rundung und die Operation mittels Addition des Ausgangs des Multiplexierers 103, des Ausgangs der Komplementiereinrichtung 105 und des Ausgangs der Rundungswert-Erzeugungsschaltung 106 mit dem Übertragseingang (Cin) gleich 0 zum Additionszeitpunkt, den Übertragseingang (Cin) gleich 1 zum Subtraktionszeitpunkt auszuführen; das Bezugszeichen 108 ist eine LR1-Schiebevorrichtung, die den Ausgang des Addierers 107 in Richtung des niedrigstwertigen Bits (im folgenden mit rechts bezeichnet) um ein Bit verschiebt, wenn das Bit mit der Gewichtung 2¹ des Ausgangs des Addierers 107 gleich 1 ist, den Ausgang des Addierers 107 in Richtung des höchstwertigen Bits (im folgenden mit links bezeichnet) um ein Bit verschiebt, wenn das Bit mit der Gewichtung 2¹ und das Bit mit der Gewichtung 2&sup0; beide gleich 0 sind, und ansonsten den Ausgang des Addierers 107 unverändert ausgibt; das Bezugszeichen 109 ist eine Rundungskorrekturwiederholungs-Steuerschaltung, die beurteilt, ob die vom Addierer 107 bewerkstelligte Rundung korrekt ist, und die Aufnahme des korrigierten Wertes im Register 110 veranlaßt, das später beschrieben wird, und die Verarbeitung abschließt, wenn das korrekte Rundungsergebnis erhalten werden kann nur durch die Korrektur des niedrigstwertigen Bits oder des niedrigstwertigen Bits und eines höheren Bits, und das Einfügen der Verarbeitung anweist, wenn die Neuaddition des Rundungswertes erforderlich ist, um das korrekte Rundungsergebnis zu erhalten; das Bezugszeichen 110 ist ein Register zum Aufnehmen des Ausgangs der LR1-Schiebevorrichtung 108; das Bezugszeichen 111 ist eine Verschiebungszahl-Erzeugungsschaltung zum Erzeugen der Verschiebungszahl für die Normierung des im Register 110 gehaltenen Wertes; das Bezugszeichen 112 ist eine Trommelschiebevorrichtung, die dafür konfiguriert ist, eine Schiebeoperation um die von der Verschiebungszahl-Erzeugungsschaltung 111 angegebene Bitanzahl zu bewerkstelligen mit Bezug auf den Ausgang des Registers 110 für die Normierung; das Bezugszeichen 113 ist ein Register für die Aufnahme des Ausgangs der Trommelschiebevorrichtung 112. Fig. 3 ist ein Steuerungsbeziehungsdiagramm der Rundungskorrekturwiederholungs-Steuerschaltung 109, die in Fig. 1 gezeigt ist, wenn der Rundungsmodus der Modus der Rundung zur nächstliegenden glatten Zahl ist. Wenn die Addition der zwei Gleitkommadaten mit gleichem Vorzeichen oder die Subtraktion der zwei Gleitkommadaten mit unterschiedlichen Vorzeichen (im folgenden bezeichnet als Mantissenaddition) bewerkstelligt werden, wobei die Rundungsgenauigkeit die einfache Genauigkeit ist, werden die Notwendigkeit der Bitkorrektur des Ausgangs des Addierers 107 und die Notwendigkeit der Neuaddition des Rundungsadditionswertes anhand der Bits mit den Gewichtungen 2¹, 2&supmin;²² 2&supmin;²³, 2&supmin;²&sup4; der Ausgänge des Addierers 107 und des Sticky Bits S, das die logische Oder-Verknüpfung der Bits mit der Gewichtung 2&supmin;²&sup5; oder niedriger ist, wie in Fig. 3(a) gezeigt, ermittelt. Die Notwendigkeit der Bitkorrektur des Ausgangs des Addierers 107 und die Notwendigkeit der Neuaddition des Rundungsadditionswertes werden ermittelt anhand der Bits mit den Gewichtungen 2¹, 2&supmin;&sup5;¹, 2&supmin;&sup5;², 2&supmin;&sup5;³ des Ausgangsaddierers 107 und des Sticky Bits S, welches die logische Oder-Verknüpfung der Bits mit der Gewichtung 2&supmin;&sup5;&sup4; oder niedriger ist, wie in Fig. 3(b) gezeigt, wenn die Mantissenaddition ausgeführt wird und die Rundungsgenauigkeit die doppelte Genauigkeit ist. Die Notwendigkeit der Bitkorrektur des Ausgangs des Addierers 107 und die Notwendigkeit der Neuaddition des Rundungsadditionswertes werden ermittelt anhand der Bits mit den Gewichtungen 2&sup0;, 2&supmin;²³, 2&supmin;²&sup4;, 2&supmin;²&sup5; des Ausgangs des Addierers 107 und des Sticky Bits S, welches die logische Oder-Verknüpfung der Bits mit der Gewichtung 2&supmin;²&sup6; oder niedriger ist, wie in Fig. 3(c) gezeigt, wenn die Subtraktion der zwei Gleitkommadaten mit gleichem Vorzeichen oder die Addition der zwei Gleitkommadaten mit unterschiedlichem Vorzeichen (im folgenden bezeichnet als Mantissensubtraktion) ausgeführt werden, wobei die Rundungsgenauigkeit die einfache Genauigkeit ist. Die Notwendigkeit der Bitkorrektur des Ausgangs des Addierers 107 und die Notwendigkeit der Neuaddition des Rundungsadditionswertes werden ermittelt anhand der Bits mit den Gewichtungen 2&sup0;, 2&supmin;&sup5;², 2&supmin;&sup5;³, 2&supmin;&sup5;&sup4; des Addierers 107 und des Sticky Bits S, welches die logische Oder-Verknüpfung der Bits mit der Gewichtung 2&supmin;&sup5;&sup5; oder niedriger ist, wie in Fig. 3(d) gezeigt, wenn die Mantissensubtraktion ausgeführt wird, wobei die Rundungsgenauigkeit die doppelte Genauigkeit ist. Fig. 4 ist ein Steuerungsbeziehungsdiagramm einer Rundungskorrekturwiederholungs-Steuerschaltung 109, die in Fig. 1 gezeigt ist, wenn der Rundungsmodus der gerichtete Rundung-nach-Plus-Modus ist und das Vorzeichen des Berechnungsergebnisses positiv ist. Wenn die Mantissenaddition ausgeführt wird und die Rundungsgenauigkeit die einfache Genauigkeit ist, werden die Notwendigkeit der Bitkorrektur des Ausgangs des Addierers 107 und die Notwendigkeit der Neuaddition des Rundungsadditionswertes ermittelt anhand der Bits mit den Gewichtungen 2¹, 2&supmin;²², 2&supmin;²³, 2&supmin;²&sup4; des Ausgangs des Addierers 107 und des Sticky Bits 5, welches die logische Oder-Verknüpfung der Bits mit der Gewichtung 2&supmin;²&sup5; oder niedriger ist, wie in Fig. 4(a) gezeigt ist. Die Notwendigkeit der Bitkorrektur des Addierers 107 und die Notwendigkeit der Neuaddition des Rundungsadditionswertes werden ermittelt anhand der Bits mit den Gewichtungen 2¹, 2&supmin;&sup5;¹, 2&supmin;&sup5;² 2&supmin;&sup5;³ des Ausgangsaddierers 107 und des Sticky Bits S, welches die logische Oder- Verknüpfung der Bits mit der Gewichtung 2&supmin;&sup5;&sup4; oder niedriger ist, wie in Fig. 4(b) gezeigt, wenn die Mantissenaddition ausgeführt wird und die Rundungsgenauigkeit die doppelte Genauigkeit ist. Die Notwendigkeit der Bitkorrektur des Ausgangs des Addierers 107 und die Notwendigkeit der Neuaddition des Rundungsadditionswertes werden ermittelt anhand der Bits mit den Gewichtungen 2&sup0;, 2&supmin;²³, 2&supmin;²&sup4;, 2&supmin;²&sup5; des Ausgangs des Addierers 107 und des Sticky Bits S, welches die logische Oder-Verknüpfung der Bits mit der Gewichtung 2&supmin;²&sup6; oder niedriger ist, wie in Fig. 4(c) gezeigt, wenn die Mantissensubtraktion ausgeführt wird und die Rundungsgenauigkeit die einfache Genauigkeit ist. Die Notwendigkeit der Bitkorrektur des Ausgangs des Addierers 107 und die Notwendigkeit der Neuaddition des Rundungsadditionswertes werden ermittelt anhand der Bits mit den Gewichtungen 2&sup0;, 2&supmin;&sup5;², 2&supmin;&sup5;³, 2&supmin;&sup5;&sup4; des Ausgangs des Addierers 107 und des Sticky Bits S. welches die logische Oder-Verknüpfung der Bits mit der Gewichtung 2&supmin;&sup5;&sup5; oder niedriger ist, wie in Fig. 4(d) gezeigt, wenn die Mantissensubtraktion ausgeführt wird und die Rundungsgenauigkeit die doppelte Genauigkeit ist. Fig. 9 ist ein Eingang- Ausgang-Beziehungsdiagramm der Rundungswert-Erzeugungsschaltung 106, die in Fig. 1 gezeigt ist, und ermittelt den Rundungsadditionswert gemäß dem Rundungsmodus, den Vorzeichen des Berechnungsergebnisses, dem Typ der Operation und der Tatsache, ob der Schritt eine Rundungsneuaddition ist. Die Rundungswert-Erzeugungsschaltung 106 erzeugt den Rundungsadditionswert mit dem Wert des gewichteten Bits, den das Rundungsadditionsbit zeigt, gleich 1, und den anderen gleich 0 entsprechend Fig. 9(a), wenn die Rundungsgenauigkeit die einfache Genauigkeit ist, und entsprechend Fig. 9(b), wenn die Rundungsgenauigkeit die doppelte Genauigkeit ist.
  • Die Additions-Subtraktions-Vorrichtung für Gleitkommadaten in der vorliegenden Ausführungsform, die wie oben beschrieben konstruiert ist, wird im folgenden in ihrem Prinzip beschrieben. Hierbei wird ein Fall, bei dem die Rundungsgenauigkeit die einfache Genauigkeit ist, beispielhaft gezeigt, wobei die doppelte Genauigkeit auf der gleichen Denkweise beruht.
  • Es wird angenommen, dass die Mantissenabschnitte des ersten Summanden, des Minuenden und des zweiten Summanden, des Subtrahenden f1, f2 sind und die Exponentenabschnitte des ersten Summanden, des Minuenden und des zweiten Summanden, des Subtrahenden e1, e2 sind (wobei e1 ≤ e2 gilt) und der Mantissenabschnitt der Summe zum Mantissenadditionszeitpunkt ausgedrückt wird durch
  • A = f1 + 2-(e1-e2) f2
  • Wenn der Wertebereich der normierten Mantisse
  • 2&sup0; ≤ f1 ≤ 2¹ - 2²³ 2&sup0; ≤ f2 ≤ 2¹ - 2²³
  • betrachtet wird, gilt
  • 2&sup0; ≤ A ≤ 2¹ - 2²³ + 2¹ - 2²³ = 2² -2&supmin;²²
  • 2&sup0; ≤ A ≤ 2¹ + 2&sup0; - 2¹ + ... + 2&supmin;²²
  • 1. 0(2) < A < 11. 1111.... 11(2)
  • Die für die Normierung erforderliche Verschiebungszahl nach der Mantissenaddition wird maximal ein Bit nach rechts. (2) zeigt den binären digitalen Ausdruck im numerischen Wert. Ferner ist der Mantissenabschnitt A der Differenz zur Mantissensubtraktionszeit gezeigt durch
  • A = f1 - 2-(e1-e2)f2
  • Hierbei wird durch den Wert von e1 - e2
  • (1) Zeit von e1 - e2 = 0
  • 0 &le; A &le; 2¹ - 2²³ = 2&sup0; + 2¹ + 2&supmin;¹ + ... + 2&supmin;²² + 2&supmin;²³
  • 0 &le; A &le; 1.1111....11(2)
  • Die zur Normierung erforderliche Verschiebungszahl nach der Mantissensubtraktion wird minimal gleich 0 Bit und maximal gleich 23 Bits nach links.
  • (2) Zeit von e1 - e2 = 1
  • 2&sup0; - 2&supmin;¹ · (2¹ - 2&supmin;²³) &le; A &le; 2¹ - 2²³ - 2&supmin;¹ · 2&sup0;
  • 0.000...001(2) &le; A &le; 1.01111...111(2)
  • Die für die Normierung erforderliche Verschiebungszahl nach der Mantissensubtraktion wird minimal gleich 0 Bit und maximal gleich 24 Bits nach links.
  • (3) Zeit von e1 - e2 = 2
  • 2&sup0; - 2&supmin;² · (2¹ - 2&supmin;²³) &le; A &le; 2¹ - 2&supmin;²³ - 2&supmin;² · 2&sup0;
  • 0.100....001(2) &le; A &le; 1.10111....111(2)
  • Die für die Normierung erforderliche Verschiebungszahl nach der Mantissensubtraktion wird maximal gleich 1 Bit nach links.
  • (4) Zeit von e1 - e2 = 3
  • 2&sup0; - 2&supmin;³ · (2¹ - 2&supmin;²³) &le; A &le; 2¹ - 2²³ -2&supmin;³ · 2&sup0;
  • 0.110....001(2) &le; A &le; 1.11011....111(2)
  • Die für die Normierung erforderliche Verschiebungszahl nach der Mantissensubtraktion wird maximal gleich 1 Bit nach links. In ähnlicher Weise wie zum Zeitpunkt von e1 - e2 &ge; 4 wird die für die Normierung erforderliche Verschiebungszahl nach der Mantissensubtraktion maximal gleich 1 Bit nach links, und bei e1 - e2 &ge; 2 wird die für die Normierung erforderliche Verschiebungszahl nach der Mantissensubtraktion maximal gleich 1 Bit nach links.
  • Aufgrund der obenbeschriebenen Tatsache ist zum Zeitpunkt der Mantissenaddition oder zum Zeitpunkt der Mantissensubtraktion mit Ausnahme der Exponentendifferenzen 0, 1 die Verschiebung von 2 Bits oder mehr nach der Mantissenberechnung nicht erforderlich. Beim vorherigen Zeitpunkt wird das Ergebnis im Bit mit der Gewichtung 2&supmin;²² oder im Bit mit der Gewichtung 2&supmin;²³ vor der Normierung das niedrigstwertige Bit (L). Zum letzteren Zeitpunkt wird das Ergebnis im Bit mit der Gewichtung 2&supmin;²³ oder im Bit mit der Gewichtung 2&supmin;²&sup4; das niedrigstwertige Bit (L). Dementsprechend wird gleichzeitig mit der Addition, Subtraktion zum Zeitpunkt der Mantissenaddition oder zum Zeitpunkt der Mantissensubtraktion mit Ausnahme der Exponentendifferenz 0, 1 das Runden an den Positionen dieser Bits bewerkstellig, woraufhin die 1-Bit- Normierungs-Schiebeoperation nur nach rechts oder nach links bewerkstelligt werden muß. Nur zum Zeitpunkt der Mantissensubtraktion bei Exponentendifferenz 0 oder 1 wird die Verschiebung von 2 Bits oder mehr nach der Berechnung erforderlich. Zum Zeitpunkt der Exponentendifferenz 0 wird die Ausrichtungsschiebeoperation nicht vor der Berechnung bewerkstelligt, so dass der effektive Wert nicht kleiner als das niedrigstwertige Bit wird und die Rundung nicht erforderlich ist. Zum Zeitpunkt der Exponentendifferenz 1 ist die Ausrichtungsverschiebungszahl vor der Berechnung gleich 1 Bit, so dass der effektive Wert nur 1 Bit niedriger (Rundungshit R) des niedrigstwertigen Bits vorgesehen ist. Wenn das Bit mit der Gewichtung 2&sup0; gleich 1 ist, ist die Verschiebung zur Normierung unnötig, jedoch ist nur die Rundung erforderlich. Wenn das Bit mit dem Wert 2&sup0; gleich 0 ist, wird das Rundungsbit in das niedrigstwertige Bit oder das darüberliegende durch die Verschiebung für die Normierung bewegt, so dass die Rundung nach der Normierung nicht erforderlich ist. Wenn somit die Exponentendifferenz 0 oder 1 ist, muß bei der Mantissensubtraktion die Verschiebung zur Normierung oder Rundung höchstens nach der Berechnung bewerkstelligt werden. Die Position des niedrigstwertigen Bits (L) zum Mantissenadditionszeitpunkt ist in Fig. 13(a) gezeigt, während die Position des niedrigstwertigen Bits (L) zum Mantissensubtraktionszeitpunkt mit Ausnahme der Exponentendifferenzen 0, 1 in Fig. 13(b) gezeigt ist.
  • Ein Prinzip zur Verwirklichung der Rundung zur nächstliegenden glatten Zahl wird im folgenden gezeigt. Um den Wert auf den nächstliegenden Wert zu runden, wird die Existenz der Addition zum niedrigstwertigen Bit daran ermittelt, ob das zu addierende Bit, nämlich das Bit (Rundungsbit R) um 1 kleiner als das niedrigstwertige Bit (L), gleich 1 oder 0 ist. Wenn das Rundungsbit gleich 0 ist, sind die Daten vor dem Runden und die Daten nach dem Runden gleich. Wenn das Rundungsbit gleich 1 ist, wird 1 zum niedrigstwertigen Bit addiert. Die Rundungsaddition wird automatisch verwirklicht durch die Addition von 1 zum Rundungsbit, da der Übertrag vom Rundungsbit als zum niedrigstwertigen Bit addierter Wert dient. Wenn die Bits kleiner als das Rundungsbit bei diesem Verfahren nicht beurteilt werden, kann die Rundungsoperation um 1 größer bewerkstelligt werden mittels der Rundungsaddition, selbst wenn das Rundungsbit gleich 1 ist und die Bits kleiner als dieses gleich 0 sind, d.h. der Wert ist ein Bindewert. Jedoch legt die ANSI/IEEE-Norm für Binary Floating Point Arithmetic P754 fest, dass der Bindewert auf die glatte Zahl gerundet wird. Selbst wenn wie in der Spalte RN der Fig. 11 gezeigt das Rundungsbit gleich 1 ist, während das Sticky Bit, das den kleineren Abschnitt als das Rundungsbit zeigt, gleich 0 ist, was ein Bindewert ist, wird der Wert so gerundet, dass das niedrigstwertige Bit normalerweise geradzahlig sein kann. Genauer, wenn das niedrigstwertige Bit gleich 1 ist, wird die Rundungsaddition bewerkstelligt. Wenn das niedrigstwertige Bit gleich 0 ist, wird die Rundungsaddition nicht ausgeführt.
  • Eine bemerkenswerte Tatsache ist hierbei die Übertragsfortpflanzung des niedrigstwertigen Bits, wenn die Rundungsaddition zum Runden des Bits ausgeführt worden ist. Wenn das Rundungsbit gleich 1 ist, wird das Rundungsbit gleich 0 durch die Rundungsaddition und der von der Rundungsaddition erzeugte Übertrag wird zum niedrigstwertigen Bit addiert. Wenn das niedrigstwertige Bit gleich 1 ist, pflanzt sich der Übertragung zum höheren Bit fort, wie in Fig. 12(a) gezeigt ist. Wenn das niedrigstwertige Bit gleich 0 ist, pflanzt sich der Übertrag nicht fort, was zu einer 1 im niedrigstwertigen Bit führt, wie in Fig. 12(b) gezeigt ist. Wenn das Rundungsbit und das Sticky Bit beide gleich 0 sind, nachdem die Addition unbedingt mit dem Rundungsbit ausgeführt worden ist, können der Bindewert, der im Rundungsbit gleich 1 ist und im Sticky Bit gleich 0 ist, exakt auf die gerade Zahl gerundet werden durch die Korrektur des niedrigstwertigen Bits auf 0. Das heißt, wenn die Position des Rundungsbits vor der Operation ermittelt wird, können die Rundung und die Berechnung gleichzeitig ausgeführt werden.
  • Eine 1 wird vorübergehend zu dem Bit mit der Gewichtung 2&supmin;²&sup4; zum Mantissenadditionszeitpunkt addiert, wobei eine 1 vorübergehend zum Bit mit der Gewichtung 2&supmin;²&sup5; zum Subtraktionszeitpunkt mit Ausnahme der Exponentendifferenz 0, 1 addiert wird und die Operation ausgeführt wird. Anschließend wird das reale Rundungsbit ermittelt durch die Bits mit der Gewichtung 2¹ und 2&sup0; des Operationsergebnisses, um somit die Rundung durch die Korrektur der vorübergehend ausgeführten Rundungsergebnisse zu verwirklichen. Durch die Bits mit den Gewichtungen 2&supmin;²², 2&supmin;²³, 2&supmin;²&sup4; des vorübergehend gerundeten Ergebnisses und das eine Bit, das die logische Oder-Verknüpfung der Bits kleiner als diese zur Mantissenadditionszeit ist, die Bits mit den Gewichtungen 2&supmin;²³, 2&supmin;²&sup4;, 2&supmin;²&sup5; des vorläufig gerundeten Ergebnisses und das eine Bit, "das die logische Oder-Verknüpfung der Bits kleiner als diese zur Mantissensubtraktionszeit ist, wird folgendes beurteilt,
  • a) der Fall, in dem das korrekte Ergebnis erhalten wird,
  • b) der Fall, in dem das korrekte Ergebnis erhalten wird durch Korrektur des Bits mit der Gewichtung 2&supmin;²² oder 2&supmin;²³ oder
  • c) der Fall, in dem nur mit der Korrektur des Bits mit der Gewichtung 2&supmin;²² oder 2&supmin;²³ nicht das korrekte Ergebnis erhalten wird.
  • Im Fall b) wird das Bit korrigiert. Im Fall c) wird die gleiche Rundung erneut addiert, wobei das korrekte Berechnungsergebnis erhalten wird.
  • Die Additions-Subtraktions-Vorrichtung für Gleitkommadaten in der vorliegenden Ausführungsform, die wie oben beschrieben zusammengesetzt ist, wird im folgenden in ihrer Operation beschrieben. Die Beschreibung ist unterteilt in die Sequenz des Modus der Rundung auf die nächstliegende glatte Zahl, den gerichteten Rundung-nach-Plus-Modus und den gerichteten Rundung-nach-Minus-Modus, sowie den gerichteten Rundung nach-Null- Modus. Ferner wird in jedem dieser Modi die Rundungsgenauigkeit unterteilt in die einfache Genauigkeit und die doppelte Genauigkeit.
  • 1. Modus zum Runden zur nächstliegenden glatten Zahl
  • 1-1 Wenn der erste Summand, der Minuend und der zweite Summand, der Subtrahend vom Format mit einfacher Genauigkeit sind und die Summe oder Differenz auf einfache Genauigkeit gerundet wird.
  • (1) Vor dem Verarbeitungsschrittbeginn
  • Gemäß den Exponenten und den Vorzeichen der zwei Gleitkommadaten und in Abhängigkeit davon, ob der Befehl die Addition oder die Subtraktion ist, werden der Typ der Operation der Mantissenaddition oder Mantissensubtraktion und das Vorzeichen des Berechnungsergebnisses ermittelt, wie im Vorzeichen- und Operationsbeziehungsdiagramm der Fig. 10 gezeigt ist. Die Mantisse, deren Exponent nicht kleiner ist, unter den Mantissen des ersten Summanden, des Minuenden und des zweiten Summanden, des Subtrahenden wird im Register 101 aufgenommen. Die Mantisse, deren Exponent kleiner ist, unter den Mantissen des ersten Summanden, des Minuenden und des zweiten Summanden, des Subtrahenden wird auf den Exponenten ausgerichtet, der nicht kleiner ist, und im Register 102 aufgenommen. Die Bits, die bei der Ausrichtung abgespalten werden, werden im Register 102 zusammen aufgenommen als Rundungsbit (R) mit der Gewichtung 2&supmin;²&sup4; in einem Bit, das um 1 Bit des niedrigstwertigen Bits (L) niedriger ist, und als Sticky Bit (S), welches die logische Oder-Verknüpfung der Bits mit der Gewichtung 2&supmin;²&sup5; oder niedriger ist.
  • (2) Schritt 1 - Mantissenadditionszeitpunkt
  • Der Ausgang des Registers 101 wird vom Multiplexierer 103 ausgewählt, während der Ausgang des Registers 101 vom Multiplexierer 104 ausgewählt wird. In der Rundungswerterzeugungsschaltung 106 werden Daten mit dem Bit mit der Gewichtung 2&supmin;²&sup4; gleich 1 und den anderen Bits gleich 0 erzeugt. Die Komplementiereinrichtung 105 gibt den Ausgang des Multiplexierers 104 unverändert aus, wobei der Addierer 107 (Register 1) + (Register 2) + (Rundungsadditionswert) mit Cin gleich 0 ausgibt. Wenn das Bit mit der Gewichtung 2¹ des Ausgangs des Addierers 107 gleich 1 ist, bewirkt die LR1-Schiebevorrichtung 108 eine 1-Bit-Verschiebung nach rechts. Gemäß dem Befehl der Rundungskorrektur-Wiederholungssteuerschaltung 109 mittels der Bits mit der Gewichtung 2&supmin;²&sup5; des Ausgangs des Addierers 107 und des Sticky Bits wird der Ausgang der LR-Schiebevorrichtung 108 im Register 110 aufgenommen, wobei das Bit mit der Gewichtung 2&supmin;²³ invertiert wird, wenn das in Fig. 3(a) gezeigte Korrektursignal gleich 01 ist, und ohne Korrektur aufgenommen, wenn das Korrektursignal gleich 00 ist. Wenn das Neurundungssignal der Rundungskorrekturwiederholungs-Steuerschaltung 109 gleich 1 ist, wird das Einsetzen des neuen Schritts zum Ausführen der Neuaddition des Rundungswertes angewiesen. Wenn jedoch das Neurundungssignal gleich 0 ist, schließt dieser Schritt die Berechnungsoperation ab, wobei die Rundungsoperation entsprechend der Rundungsgenauigkeit bewerkstelligt wird.
  • - Mantissensubtraktionszeitpunkt mit Ausnahme der Exponentendifferenz 0, 1
  • Der Ausgang des Registers 101 wird vom Multiplexierer 103 ausgewählt, während der Ausgang des Registers 102 vom Multiplexierer 103 ausgewählt wird. In der Rundungswert-Erzeugungsschaltung 106 werden Daten mit dem Bit mit der Gewichtung 2&supmin;²&sup5; gleich 1 und den anderen Bits gleich 0 erzeugt. Die Komplementiereinrichtung 105 invertiert den Ausgang des Multiplexierers 104, um diesen in den Addierer 107 einzugeben, wobei der Addierer 107 (Register 1) - (Register 2) + (Rundungsadditionswert) mit Cin gleich 1 ausführt. Wenn das Bit mit der Gewichtung 2&sup0; des Ausgangs des Addierers 107 gleich 0 ist, bewirkt die LR1-Schiebevorrichtung 108 eine 1-Bit-Verschiebung nach links. Es wird ein Bit (S) erzeugt, das die logische Oder-Verknüpfung der Bits mit der Gewichtung 2&supmin;²&sup6; des Ausgangs des Addierers 107 oder niedriger ist. Gemäß dem Befehl der Rundungskorrekturwiederholungs- Steuerschaltung 109 mittels der Bits mit den Gewichtungen 2&sup0;, 2&supmin;²³, 2&supmin;²&sup4; 2&supmin;²&sup5; des Ausgangs des Addierers 107 und des S-Bits wird der Ausgang der LR1-Schiebevorrichtung 108 im Register 110 aufgenommen, wobei das Bit mit der Gewichtung 2&supmin;²³ invertiert wird, wenn das in Fig. 3(c) gezeigte Korrektursignal gleich 01 ist, und keine Korrektur vorgenommen wird, wenn das Korrektursignal gleich 00 ist. Wenn das Korrektursignal gleich 00 ist, wird der Ausgang der LR1-Schiebevorrichtung 108 unverändert im Register 110 aufgenommen. Wenn das Neurundungssignal der Rundungskorrekturwiederholungs-Steuerschaltung 109 gleich 1 ist, wird das Einfügen des neuen Schritts zum Ausführen der Neuaddition des Rundungswertes angewiesen. Wenn jedoch das Neurundungssignal gleich 0 ist, schließt dieser Schritt die Berechnungsoperation ab, wobei die Rundungsoperation entsprechend der Rundungsgenauigkeit bewerkstelligt wird.
  • - Mantissensubtraktionszeitpunkt mit Exponentendifferenz 0, 1
  • Der Ausgang des Registers 101 wird vom Multiplexierer 103 ausgewählt, während der Ausgang des Registers 102 vom Multiplexierer 104 ausgewählt wird. In der Rundungswert-Erzeugungsschaltung 106 werden Daten mit allen Bits gleich 0 erzeugt. Die Komplementiereinrichtung 105 invertiert den Ausgang des Multiplexierers 104, um diesen somit in den Addierer 107 einzugeben, wobei der Addierer 107 (Register 1) - (Register 2) mit Cin gleich 1 ausführt. Wenn das Bit mit der Gewichtung 2&sup0; des Ausgangs des Addierers 107 gleich 0 ist, bewirkt die LR1-Schiebevorrichtung 108 eine 1-Bit- Verschiebung nach links. In der Rundungskorrekturwiederholungs- Steuerschaltung 109 wird das Einfügen des Schritts zum Runden angewiesen, wenn die drei Bits mit den Gewichtungen 2&sup0;, 2&supmin;²³, 3&supmin;²&sup4; des Ausgangs des Addierers 1 jeweils gleich 1 sind. In der Verschiebungszahl- Erzeugungsschaltung 111 wird die Verschiebungszahl erzeugt, die zum Normieren des Ausgangs der LR1-Verschiebungsvorrichtung 108 erforderlich ist. Das Einfügen des Schritts zur Normierung wird angewiesen, wenn die Verschiebungsanzahl ungleich 0 ist. Wenn das Einfügen des Schritts zum Runden und das Einfügen des Schritts für die Normierung jeweils nicht veranlaßt werden, ist die Berechnung mit diesem Schritt abgeschlossen.
  • (3) Einfügungsschritt (nur wenn das Einfügen des Schritts angewiesen ist) - Mantissenadditionszeitpunkt
  • Der Ausgang des Registers 110 wird vom Multiplexierer 103 ausgewählt, während die Konstante 0 vom Multiplexierer 104 ausgewählt wird. Der Ausgang des Multiplexierers 103, der Ausgang der Komplementiereinrichtung 105 mit dem unverändert ausgegebenen Ausgang des Multiplexierers 104, die Daten mit dem Bit mit der Gewichtung 2&supmin;²&sup4;, das von der Rundungswert-Erzeugungsschaltung 106 des Schritts 1 erzeugt wird, gleich 1 und den anderen Bits gleich 0 werden vom Addierer 107 addiert. Wenn das Bit mit der Gewichtung 2¹ des Ausgangs des Addierers 107 gleich 1 ist, bewirkt die LR1-Verschiebungsvorrichtung 108 eine 1-Bit-Verschiebung nach rechts. Wenn das Bit mit der Gewichtung 2¹ gleich 0 ist, wird der Wert unverändert im Register 110 aufgenommen, um somit die Verarbeitung abzuschließen.
  • - Mantissensubtraktionszeitpunkt mit Ausnahme der Exponentendifferenz 0, 1
  • Der Ausgang des Registers 110 wird vom Multiplexierer 103 ausgewählt, während die Konstante 0 vom Multiplexierer 104 ausgewählt wird. Der Ausgang des Multipiexierers 103, der Ausgang der Komplementiereinrichtung 105 mit dem unverändert ausgegebenen Ausgang des Multiplexierers 104, die Daten mit den Bit mit der Gewichtung 2&supmin;²&sup5;, das von der Rundungswert-Erzeugungsschaltung 106 des Schritts 1 erzeugt wird, gleich 1 und den anderen Bits gleich 0 werden vom Addierer 107 addiert. Wenn das Bit mit der Gewichtung 2¹ des Ausgangs des Addierers 107 gleich 1 ist, bewirkt die LR1-Verschiebungsvorrichtung 108 eine 1-Bit-Verschiebung nach rechts. Wenn das Bit mit der Gewichtung 2¹ gleich 0 ist, wird der Wert unverändert im Register 110 aufgenommen, um somit die Verarbeitung abzuschließen.
  • - Mantissensubtraktionszeitpunkt mit Exponentendifferenz 0, 1
  • Wenn das Einfügen des Schritts für die Normierung von der Verschiebungszahl-Erzeugungsschaltung 111 angewiesen worden ist, gibt die Trommelschiebevorrichtung 112 das Register 110 ein, verschiebt es um die von der Verschiebungszahl-Erzeugungsschaltung 111 erzeugte Verschiebungszahl nach links, um es somit zum Abschluß der Verarbeitung im Register 113 unterzubringen.
  • Wenn das Einfügen des Schritts zum Runden von der Rundungskorrekturwiederholungs-Steuerschaltung 109 angewiesen worden ist, wird der Ausgang des Registers 110 vom Multiplexierer 103 ausgewählt und die Konstante 0 vorn Multiplexierer 104 ausgewählt. Der Ausgang des Multiplexierers 103, der Ausgang der Komplementiereinrichtung 105 mit dem unverändert ausgegebenen Ausgang des Multiplexierers 104 und die Daten mit dem Bit mit der Gewichtung 2&supmin;²³, das von der Rundungswert-Erzeugungsschaltung 106 erzeugt worden ist, gleich 1 und den anderen Bits gleich 0 werden vom Addierer 107 addiert. Wenn das Bit mit der Gewichtung 2¹ des Ausgangs des Addierers 107 gleich 1 ist, bewirkt die LR1-Schiebevorrichtung 108 eine 1-Bit- Verschiebung nach rechts. Wenn das Bit mit der Gewichtung 2¹ gleich 0 ist, wird der Wert unverändert im Register 110 aufgenommen, um somit die Verarbeitung abzuschließen.
  • 1-2 Wenn der erste Summand, der Minuend und der zweite Summand, der Subtrahend vom Format mit doppelter Genauigkeit sind und die Summe oder Differenz auf doppelte Genauigkeit gerundet wird
  • (1) Vor dem Verarbeitungsschrittbeginn
  • Gemäß den Exponenten und anderen Vorzeichen der zwei Gleitkommadaten und in Abhängigkeit davon, ob der Befehl eine Addition oder eine Subtraktion ist, werden der Typ der Operation der Mantissenaddition oder der Mantissensubtraktion und das Vorzeichen des Berechnungsergebnisses ermittelt, wie im Vorzeichen- und Operationsbeziehungsdiagramm der Fig. 10 gezeigt ist. Die Mantisse, deren Exponent nicht kleiner ist, unter den Mantissen des ersten Summanden, des Minuenden und des zweiten Summanden, des Subtrahenden wird im Register 101 untergebracht. Die Mantisse, deren Exponent kleiner ist, unter den Mantissen des ersten Summanden, des Minuenden und des zweiten Summanden, des Subtrahenden wird auf den Exponenten, der nicht kleiner ist, ausgerichtet und im Register 102 aufgenommen. Die Bits, die bei der Ausrichtung abgespalten werden, werden im Register 102 gemeinsam als Rundungsbit (R) mit der Gewichtung 2&supmin;&sup5;³ an eine n Bit, das um ein Bit des niedrigstwertigen Bits (L) niedriger ist, und als Sticky Bit (5), das die logische Oder-Verknüpfung der Bits mit der Gewichtung 2 oder niedriger ist, untergebracht.
  • (2) Schritt 1 - Mantissenadditionszeitpunkt
  • Der Ausgang des Registers 101 wird vom Multiplexierer 103 ausgewählt, während der Ausgang des Registers 102 vom Multiplexierer 104 ausgewählt wird. In der Rundungswert-Erzeugungsschaltung 106 werden die Daten mit dem Bit mit der Gewichtung 2&supmin;&sup5;³ gleich 1 und den anderen Bits gleich 0 erzeugt. Die Komplementiereinrichtung 105 gibt den Ausgang des Multiplexierers 104 unverändert aus, wobei der Addierer 107 (Register 1) + (Register 2) + (Rundungsadditionswert) mit Cin gleich 0 ausführt. Wenn das Bit mit der Gewichtung 2¹ des Ausgangs des Addierers 107 gleich 1 ist, bewirkt die LR1-Schiebevorrichtung 108 eine 1-Bit-Verschiebung nach rechts. Es wird ein Bit (S) erzeugt, welches die logische Oder-Verknüpfung der Bits mit der Gewichtung 2&supmin;&sup5;&sup4; des Ausgangs des Addierers 107 ist. Gemäß dem Befehl der Rundungskorrekturwiederholungs-Steuerschaltung 109 mittels der Bits mit den Gewichtungen 2¹, 2&supmin;&sup5;¹, 2&supmin;&sup5;², 2&supmin;&sup5;³ der Ausgänge des Addierers 107 und des S-Bits wird der Ausgang der LR1-Schiebevorrichtung 108 im Register 100 aufgenommen, wobei das Bit mit der Gewichtung 2&supmin;&sup5;² invertiert wird, wenn das in Fig. 3(b) gezeigte Korrektursignal gleich 01 ist, und keine Korrektur vorgenommen wird, wenn das Korrektursignal gleich 00 ist. Wenn das Neurundungssignal der Rundungskorrekturwiederholungs-Steuerschaltung 109 gleich 1 ist, wird das Einfügen des neuen Schritts zur Ausführung der Neuaddition des Rundungswertes angewiesen. Wenn jedoch das Rundungssignal gleich 0 ist, schließt dieser Schritt die Berechnungsoperation ab, wobei die Rundungsoperation entsprechend der Rundungsgenauigkeit bewerkstelligt wird.
  • - Mantissensubtraktionszeitpunkt mit Ausnahme der Exponentendifferenz 0, 1
  • Der Ausgang des Registers 101 wird vom Multiplexierer 103 ausgewählt, während der Ausgang des Registers 102 vom Multiplexierer 104 ausgewählt wird. In der Rundungswert-Erzeugungsschaltung 106 werden die Daten mit dem Bit mit der Gewichtung 2&supmin;&sup5;&sup4; gleich 1 und den anderen Bits gleich 0 erzeugt. Die Komplementiereinrichtung 105 invertiert den Ausgang des Multiplexierers 104, um diesen in den Addierer 107 einzugeben, und führt (Register 1) - (Register 2) + (Rundungsadditionswert) mit Cin gleich 1 aus. Wenn das Bit mit der Gewichtung von 2&sup0; des Ausgangs des Addierers 107 gleich 0 ist, bewirkt die LR1-Schiebevorrichtung 108 eine 1-Bit-Verschiebung nach links. Es wird ein Bit (S) erzeugt, das eine logische Oder-Verknüpfung der Bits mit der Gewichtung 2&supmin;&sup5;&sup5; des Ausgangs des Addierers 107 oder niedriger ist. Gemäß dem Befehl der Rundungskorrekturwiederholungs- Steuerschaltung 109 mittels der Bits mit den Gewichtungen 2&sup0;, 2&supmin;&sup5;², 2&supmin;&sup5;³, 2&supmin;&sup5;&sup4; der Ausgänge des Addierers 107 und des S-Bits wird der Ausgang der LR1-Schiebevorrichtung 108 im Register 110 aufgenommen, wobei das Bit mit der Gewichtung 2&supmin;&sup5;² invertiert wird, wenn das in Fig. 3(b) gezeigte Korrektursignal gleich 01 ist, und wird ohne Korrektur aufgenommen, wenn das Korrektursignal gleich 00 ist. Wenn das Neurundungssignal der Rundungskorrekturwiederholungs-Steuerschaltung 109 gleich 1 ist, wird das Einfügen des neuen Schritts zum Ausführen der Neuaddition des Rundungswerts angewiesen. Wenn jedoch das Neurundungssignal gleich 0 ist, schließt dieser Schritt die Berechnungsoperation ab, wobei die Rundungsoperation gemäß der Rundungsgenauigkeit bewerkstelligt wird.
  • - Mantissensubtraktionszeitpunkt mit Exponentendifferenz 0, 1
  • Der Ausgang des Registers 101 wird vom Multipiexierer 103 ausgewählt, während der Ausgang des Registers 102 vom Multiplexierer 104 ausgewählt wird. In der Rundungswert-Erzeugungsschaltung 106 werden die Daten mit allen Bits gleich 0 erzeugt. Die Komplementiereinrichtung 105 invertiert den Ausgang des Multiplexierers 104, um diesen somit in den Addierer 107 einzugeben, und führt (Register 1)- (Register 2) mit Cin gleich 1 aus. Wenn das Bit mit der Gewichtung 2&sup0; des Ausgangs des Addierers 107 gleich O ist, bewirkt die LR1-Schiebevorrichtung 108 eine 1-Bit-Verschiebung nach links. In der Rundungskorrekturwiederholungs-Steuerschaltung 109 wird das Einfügen des Schritts für die Rundung angewiesen, wenn die drei Bits mit den Gewichtungen 2&sup0;, 2&sup5;², 2&sup5;³ des Ausgangs des Addierers 107 jeweils gleich 1 sind. In der Verschiebungszahl-Erzeugungsschaltung 111 wird die Verschiebungszahl erzeugt, die für die Normierung des Ausgangs der LR1- Schiebevorrichtung 108 erforderlich ist. Das Einfügen des Schritts für die Normierung wird angewiesen, wenn die Verschiebungszahl ungleich 0 ist. Wenn das Einfügen des Schritts für die Rundung und das Einfügen des Schritts für die Normierung jeweils nicht veranlaßt werden, ist die Berechnung mit diesem Schritt abgeschlossen.
  • (3) Einfügungsschritt (nur wenn das Einfügen des Schritts angewiesen ist) - Mantissenadditionszeit
  • Der Ausgang des Registers 110 wird vom Multiplexierer 103 ausgewählt, während die Konstante 0 vom Multiplexierer 104 ausgewählt wird. Der Ausgang des Multiplizierers 103, der Ausgang der Komplementiereinrichtung 105 mit dem unverändert ausgegebenen Ausgang des Multiplexierers 104, die Daten mit dem Bit mit der Gewichtung 2&supmin;&sup5;&sup4;, das von der Rundungswert- Erzeugungsschaltung 106 des Schritts 1 erzeugt wird, gleich 1 und den anderen Bits gleich 0 werden vom Addierer 107 addiert. Wenn das Bit mit der Gewichtung 2¹ des Ausgangs des Addierers 107 gleich 1 ist, bewirkt die LR1-Schiebevorrichtung 108 eine 1-Bit-Verschiebung nach rechts. Wenn das Bit mit der Gewichtung 2¹ gleich 0 ist, wird der Wert unverändert im Register 110 aufgenommen, um somit die Verarbeitung abzuschließen.
  • - Mantissensubtraktionszeitpunkt mit Ausnahme der Exponentendifferenz 0, 1
  • Wenn das Einfügen des Schritts für die Normierung von der Verschiebungszahl-Erzeugungsschaltung 111 angewiesen worden ist, gibt die Trommelschiebevorrichtung 112 das Register 110 ein, verschiebt es um die von der Verschiebungszahl-Erzeugungsschaltung 111 erzeugte Verschiebungszahl nach links, um es somit im Register 113 aufzunehmen und die Verarbeitung abzuschließen.
  • Wenn das Einfügen des Schritts zum Runden von der Rundungskorrekturwiederholungs-Steuerschaltung 109 angewiesen worden ist, wird der Ausgang des Registers 110 vom Multiplexierer 103 ausgewählt, während die Konstante 0 vom Multiplexierer 104 ausgewählt wird. Der Ausgang des Multiplexierers 103, der Ausgang der Komplementiereinrichtung 105 mit dem unverändert ausgegebenen Ausgang des Multiplexierers 104, die Daten mit dem Bit mit der Gewichtung 2&supmin;&sup5;², das von der Rundungswert-Erzeugungsschaltung 106 erzeugt wird, gleich 1 und den anderen Bits gleich 0 werden vom Addierer 107 addiert. Wenn das Bit mit der Gewichtung 2¹ des Ausgangs des Addierers 107 gleich 1 ist, bewirkt die LR1-Schiebevorrichtung 108 eine 1-Bit-Verschiebung nach rechts. Wenn das Bit mit der Gewichtung 2¹ gleich 0 ist, wird der Wert unverändert im Register 110 aufgenommen, um die Verarbeitung abzuschließen.
  • 2 Gerichteter Rundung-nach-Plus-Modus und gerichteter Rundung-nach- Minus-Modus
  • 2-1 Wenn der erste Summand, der Minuend und der zweite Summand, der Subtrahend vom Format mit einfacher Genauigkeit sind und die Summe oder Differenz auf einfache Genauigkeit gerundet werden (1) Vor dem Verarbeitungsschrittbeginn
  • Entsprechend den Exponenten und den Vorzeichen der zwei Gleitkommadaten und in Abhängigkeit davon, ob der Befehl eine Addition oder eine Subtraktion ist, wird der Typ der Operation der Mantissenaddition oder der Mantissensubtraktion und die Vorzeichen des Berechnungsergebnisses ermittelt, wie im Vorzeichen- und Operationsbeziehungsdiagramm der Fig. 10 gezeigt ist. Wenn das Vorzeichen des Berechnungsergebnisses im gerichteten Rundung-nach-Plus-Modus negativ ist oder das Vorzeichen des Berechnungsergebnisses im gerichteten Rundung-nach-Minus-Modus positiv ist, wird die Operation entsprechend der Operation des gerichteten Rundungnach-Null-Modus ausgeführt, der später beschrieben wird. Wenn das Vorzeichen des Berechnungsergebnisses im gerichteten Rundung nach-Plus- Modus positiv ist oder das Vorzeichen des Berechnungsergebnisses im gerichteten Rundung-nach-Minus-Modus negativ ist, wird die Operation wie folgt bewerkstelligt. Die Mantisse, deren Exponent nicht kleiner ist, unter den Mantissen des ersten Summanden, des Minuenden und des zweiten Summanden, des Subtrahenden, wird im Register 101 aufgenommen. Die Mantisse, deren Exponent kleiner ist, unter den Mantissen des ersten Summanden, des Minuenden und des zweiten Summanden, des Subtrahenden, wird auf den Exponenten ausgerichtet, der nicht kleiner ist, und wird im Register 102 aufgenommen. Die Bits die bei der Ausrichtung abgespalten werden, werden gemeinsam im Register 102 als Rundungsbit (R) mit der Gewichtung 2&supmin;²&sup4; an einem Bit, das um ein Bit des niedrigstwertigen Bits (L) niedriger ist, und als Sticky Bit (S), das die logische Oder-Verknüpfung der Bits mit der Gewichtung 2&supmin;²&sup5; oder niedriger ist, aufgenommen.
  • (2) Schritt 1 - Mantissenadditionszeitpunkt
  • Der Ausgang des Registers 101 wird vom Multiplexierer 103 ausgewählt, während der Ausgang des Registers 102 vom Multiplexierer 104 ausgewählt wird. In der Rundungswert-Erzeugungsschaltung 106 werden die Daten mit dem Bit mit der Gewichtung 2&supmin;²&sup4; gleich 1 und den anderen Bits gleich 0 erzeugt. Die Komplementiereinrichtung 105 gibt den unveränderten Ausgang des Multiplexierers 104 aus, wobei der Addierer 107 (Register 1) + (Register 2) + (Rundungsadditionswert) mit Cin gleich 0 ausführt. Wenn das Bit mit der Gewichtung 2¹ des Ausgangs des Addierers 107 gleich 1 ist, bewirkt die LR1-Schiebevorrichtung 108 eine 1-Bit-Verschiebung nach rechts. Es wird ein Bit (S) erzeugt, das die logische Oder-Verknüpfung der Bits mit der Gewichtung 2&supmin;²&sup5; des Ausgangs des Addierers 107 oder niedriger ist. Entsprechend dem Befehl der Korrekturwiederholungs-Steuerschaltung 109 mittels der Bits mit den Gewichtungen 2¹, 2&supmin;²², 2&supmin;²³, 2&supmin;²&sup4; des Ausgangs des Addierers 107 und des S-Bits wird der Ausgang der LR1-Schiebevorrichtung 108 im Register 110 aufgenommen, wobei das Bit mit der Gewichtung 2&supmin;²³ invertiert wird, wenn das in Fig. 4(a) gezeigte Korrektursignal gleich 01 ist, und die Bits mit der Gewichtung 2&supmin;²², 2&supmin;²³ des Ausgangs der LR1-Schiebevorrichtung 108 invertiert werden, wenn das Korrektursignal gleich 10 ist, und keine Korrektur vorgenommen wird, wenn das Korrektursignal gleich 00 ist. Wenn das Neurundungssignal der Rundungskorrekturwiederholungs-Steuerschaltung 109 gleich 1 ist, wird das Einfügen des neuen Schritts zur Ausführung der Neuaddition des Rundungswerts angewiesen. Wenn jedoch das Neurundungssignal gleich 0 ist, schließt dieser Schritt die Berechnungsoperation ab, wobei die Rundungsoperation entsprechend der Rundungsgenauigkeit bewerkstelligt wird.
  • - Mantissensubtraktionszeitpunkt mit Ausnahme der Exponentendifferenz 0, 1
  • Der Ausgang des Registers 101 wird vom Multiplexierer 103 ausgewählt, während der Ausgang des Registers 102 vom Multiplexierer 104 ausgewählt wird. In der Rundungswert-Erzeugungsschaltung 106 werden die Daten mit dem Bit mit der Gewichtung 2&supmin;²&sup5; gleich 1 und den anderen Bits gleich 0 erzeugt. Die Komplementiereinrichtung 105 invertiert den Ausgang des Multiplexierers 104, um diesen in den Addierer 107 einzugeben, wobei der Addierer 107 (Register 1) - (Register 2) + (Rundungsadditionswert) mit Cin gleich 1 ausführt. Wenn das Bit mit der Gewichtung 2&sup0; des Ausgangs des Addierers 107 gleich 0 ist, bewirkt die LR1-Schiebevorrichtung 108 eine 1-Bit- Verschiebung nach links. Es wird ein Bit (S) erzeugt, das die logische Oder- Verknüpfung der Bits mit der Gewichtung 2&supmin;²&sup6; des Ausgangs des Addierers 107 oder niedriger ist. Gemäß dem Befehl der Rundungskorrekturwiederholungs-Steuerschaltung 109 mittels der Bits mit den Gewichtungen 2&sup0;, 2&supmin;²³, 2&supmin;²&sup4;, 2&supmin;²&sup5; des Ausgangs des Addierers 107 und des S-Bits wird der Ausgang der LR1-Schiebevorrichtung 108 im Register 110 aufgenommen, wobei das Bit mit der Gewichtung 2&supmin;²³ invertiert wird, wenn das in Fig. 4(c) gezeigte Korrektursignal gleich 01 ist, die Bits mit den Gewichtungen 2&supmin;²² und 2&supmin;²³ des Ausgangs der LR1-Schiebevorrichtung 108 invertiert werden, wenn das Korrektursignal gleich 10 ist, und keine Korrektur vorgenommen wird, wenn das Korrektursignal gleich 00 ist. Wenn das Neurundungssignal der Rundungskorrekturwiederholungs-Steuerschaltung 109 gleich 1 ist, wird das Einfügen des neuen Schritts zum Ausführen der Neuaddition des Rundungswerts angewiesen. Wenn das Neurundungssignal gleich 0 ist, schließt dieser Schritt die Berechnungsoperation ab, wobei die Rundungsoperation entsprechend der Rundungsgenauigkeit bewerkstelligt wird.
  • - Mantissensubtraktionszeitpunkt mit Exponentendifferenz 0, 1
  • Der Ausgang des Registers 101 wird vom Multiplexierer 103 ausgewählt, während der Ausgang des Registers 102 vom Multiplexierer 104 ausgewählt wird. In der Rundungswert-Erzeugungsschaltung 106 werden die Daten mit allen Bits gleich 0 erzeugt. Die Komplementiereinrichtung 105 invertiert den Ausgang des Multiplexierers 104, um diesen in den Addierer 107 einzugeben, wobei der Addierer 107 (Register 1) - (Register 2) mit Cin gleich 1 ausführt. Wenn das Bit mit der Gewichtung 2&sup0; des Ausgangs des Addierers 107 gleich 0 ist, bewirkt die LR1-Schiebevorrichtung 108 eine 1-Bit-Verschiebung nach links. In der Rundungskorrekturwiederholungs-Steuerschaltung 109 wird das Einfügen des Schritts zum Runden angewiesen, wenn die zwei Bits mit den Gewichtungen 2&sup0;, 2&supmin;²&sup4; des Ausgangs des Addierers 107 jeweils gleich 1 sind. In der Verschiebungszahl-Erzeugungsschaltung 111 wird die Verschiebungszahl erzeugt, die zum Normieren des Ausgangs der LR1- Schiebevorrichtung 108 erforderlich ist. Das Einsetzen des Schritts für die Normierung wird angewiesen, wenn die Verschiebungszahl ungleich 0 ist. Wenn das Einfügen des Schritts für das Runden und das Einfügen des Schritts für die Normierung jeweils nicht veranlaßt werden, wird die Berechnung mit diesem Schritt abgeschlossen.
  • (3) Einfügungsschritt (nur wenn die Einfügung des Schritts angewiesen ist) - Mantissenadditionszeitpunkt
  • Der Ausgang des Registers 110 wird vom Multiplexierer 103 ausgewählt, während die Konstante 0 vom Multiplexierer 104 ausgewählt wird. Der Ausgang des Multiplexierers 103, der Ausgang der Komplementiereinrichtung 105 mit dem unverändert ausgegebenen Ausgang des Multiplexierers 104 und die Daten mit dem Bit mit der Gewichtung 2&supmin;²&sup4;, das von der Rundungswert-Erzeugungsschaltung 106 des Schritts 1 erzeugt worden ist, gleich 1 und den anderen Bits gleich 0 werden vom Addierer 107 addiert. Wenn das Bit mit der Gewichtung 2¹ des Ausgangs des Addierers 107 gleich 1 ist, bewirkt die LR1-Schiebevorrichtung 108 eine 1-Bit-Verschiebung nach rechts. Wenn das Bit mit der Gewichtung 2¹ gleich 0 ist, wird der Wert unverändert im Register 110 aufgenommen, um somit die Verarbeitung abzuschließen.
  • - Mantissensubtraktionszeitpunkt mit Ausnahme der Exponentendifferenz 0, 1
  • Der Ausgang des Registers 110 wird vom Multiplexierer 103 ausgewählt, während die Konstante 0 vom Multiplexierer 104 ausgewählt wird. Der Ausgang des Multiplexierers 103, der Ausgang der Komplementiereinrichtung 105 mit dem unverändert ausgegebenen Ausgang des Multiplexierers 104 und die Daten mit dem Bit mit der Gewichtung 2&supmin;²&sup5;, das von der Rundungswert-Erzeugungsschaltung 106 des Schritts 1 erzeugt wird, gleich 1 und den anderen Bits gleich 0 werden vom Addierer 107 addiert. Wenn das Bit mit der Gewichtung 2¹ des Ausgangs des Addierers 107 gleich 1 ist, bewirkt die LR1-Schiebevorrichtung 108 eine 1-Bit-Verschiebung nach rechts. Wenn das Bit mit der Gewichtung 2¹ gleich 0 ist, wird der Wert unverändert im Register 110 aufgenommen, um somit die Verarbeitung abzuschließen.
  • - Mantissensubtraktionszeitpunkt mit Exponentendifferenz 0, 1
  • Wenn das Einfügen des Schritts für die Normierung von der Verschiebungszahl-Erzeugungsschaltung 111 angewiesen worden ist, gibt die Trommelschiebevorrichtung 112 das Register 10 ein, verschiebt es um die von der Verschiebungszahl-Erzeugungsschaltung 111 erzeugte Verschiebungszahl nach links und bringt den Wert im Register 113 unter, um die Verarbeitung abzuschließen.
  • Wenn das Einfügen des Schritts für die Rundung von der Rundungskorrekturwiederholungs-Steuerschaltung 109 angewiesen worden ist, wird der Ausgang des Registers 110 vom Multiplexierer 103 ausgewählt und die Konstante 0 vom Multiplexierer 104 ausgewählt. Der Ausgang des Multiplexierers 103, der Ausgang der Komplementiereinrichtung 105 mit dem unverändert ausgegebenen Ausgang des Multiplexierers 104 und die Daten mit dem Bit mit der Gewichtung 2&supmin;²³, das von der Rundungswert-Erzeugungsschaltung 106 erzeugt worden ist, gleich 1 und den anderen Bits gleich 0 werden vom Addierer 107 addiert. Wenn das Bit mit der Gewichtung 2&supmin;¹ des Ausgangs des Addierers 107 gleich 1 ist, bewirkt die LR1-Schiebevorrichtung 108 eine 1-Bit-Verschiebung nach rechts. Wenn das Bit mit der Gewichtung 2¹ gleich 0 ist, wird der Wert unverändert im Register 110 aufgenommen, um somit die Verarbeitung abzuschließen.
  • 2-2 Wenn der erste Summand, der Minuend und der zweite Summand, der Subtrahend vom Format mit doppelter Genauigkeit sind und die Summe oder die Differenz auf doppelte Genauigkeit gerundet werden
  • (1) Vor dem Verarbeitungsschrittbeginn
  • Entsprechend dem Exponenten und den Vorzeichen der zwei Gleitkommadaten und in Abhängigkeit davon, ob der Befehl eine Addition oder eine Subtraktion ist, werden der Typ der Operation der Mantissenaddition oder der Mantissensubtraktion und das Vorzeichen des Berechnungsergebnisses ermittelt, wie im Vorzeichen- und Operationsbeziehungsdiagramm der Fig. 10 gezeigt ist. Wenn das Vorzeichen des Berechnungsergebnisses im gerichteten Rundung-nach-Minus-Modus positiv ist, wird die Operation entsprechend der Operation des gerichteten Rundung nach-Null-Modus bewerkstelligt, wie später beschrieben wird. Wenn das Vorzeichen des Berechnungsergebnisses im gerichteten Rundung-nach-Plus-Modus positiv ist, oder wenn das Vorzeichen des Berechnungsergebnis im gerichteten Rundung nach-Minus- Modus negativ ist, wird die Operation wie folgt bewerkstelligt. Die Mantisse, deren Exponent nicht kleiner ist, unter den Mantissen des ersten Summanden, des Minuenden und des zweiten Summanden, des Subtrahenden wird im Register 101 aufgenommen. Die Mantisse, deren Exponent kleiner ist, unter den Mantissen des ersten Summanden, des Minuenden und des zweiten Summanden, des Subtrahenden wird auf den Exponenten ausgerichtet, der nicht kleiner ist, und wird im Register 102 aufgenommen. Die Bits, die zum Ausrichtungszeitpunkt abgespalten werden, werden gemeinsam im Register 102 aufgenommen als Rundungsbit (R) mit der Gewichtung 2&supmin;&sup5;³ in einem Bit, das um ein Bit des niedrigstwertigen Bits (L) niedriger ist, und als Sticky Bit (S), das die logische Oder-Verknüpfung der Bits mit der Gewichtung 2&supmin;&sup5;&sup4; oder niedriger ist.
  • (2) Schritt 1 - Mantissenadditionszeitpunkt
  • Der Ausgang des Registers 101 wird vom Multiplexierer 103 ausgewählt, während der Ausgang des Registers 102 vom Multiplexierer 104 ausgewählt wird. In der Rundungswert-Erzeugungsschaltung 106 werden die Daten mit dem Bit mit der Gewichtung 2&supmin;&sup5;³ gleich 1 und den anderen Bits gleich 0 erzeugt. Die Komplementiereinrichtung 105 gibt den Ausgang des Multiplexierers 104 unverändert auf, wobei der Addierer 107 (Register 1) + (Register 2) + (Rundungsadditionswert) mit Cin gleich 0 ausführt. Wenn das Bit mit der Gewichtung 2¹ des Ausgangs des Addierers 107 gleich 1 ist, bewirkt die LR1-Schiebevorrichtung 108 eine 1-Bit-Verschiebung nach rechts. Es wird ein Bit (S) erzeugt, das die logische Oder-Verknüpfung der Bits mit der Gewichtung 2&supmin;&sup5;&sup5; des Ausgangs des Addierers 107 oder niedriger ist. Gemäß dem Befehl der Rundungskorrekturwiederholungs-Steuerschaltung 109 mittels der Bits mit den Gewichtungen 2¹, 2&supmin;&sup5;¹, 2&supmin;&sup5;², 2&supmin;&sup5;³ des Ausgangs des Addierers 107 und des S-Bits wird der Ausgang der LR1-Schiebevorrichtung 108 im Register 110 aufgenommen, wobei das Bit mit der Gewichtung 2&supmin;&sup5;² invertiert wird, wenn das in Fig. 4(b) gezeigte Korrektursignal gleich 01 ist, und wobei die Bits mit der Gewichtung 2&supmin;&sup5;¹, 2&supmin;&sup5;² des Ausgangs der LR1- Schiebevorrichtung 108 invertiert werden, wenn das Korrektursignal gleich 01 ist, und wobei keine Korrektur vorgenommen wird, wenn das Korrektursignal gleich 00 ist. Wenn das Neurundungssignal der Rundungskorrekturwiederholungs-Steuerschaltung 109 gleich 1 ist, wird das Einfügen des neuen Schritts zur Ausführung der Neuaddition des Rundungswertes angewiesen. Wenn jedoch das Neurundungssignal gleich 0 ist, schließt dieser Schritt die Berechnungsoperation ab, wobei die Rundungsoperation gemäß der Rundungsgenauigkeit bewerkstelligt wird.
  • - Mantissensubtraktionszeitpunkt mit Ausnahme der Differenz 0, 1
  • Der Ausgang des Registers 101 wird vom Multiplexierer 103 ausgewählt, während der Ausgang des Registers 102 vom Multiplexierer 104 ausgewählt wird. In der Rundungswert-Erzeugungsschaltung 106 werden die Daten mit dem Bit mit der Gewichtung 2&supmin;&sup5;&sup4; gleich 1 und den anderen Bits gleich 0 erzeugt. Die Komplementiereinrichtung 105 invertiert den Ausgang des Multiplexierers 104, um diesen in den Addierer 107 einzugeben, wobei der Addierer 107 (Register 1) - (Register 2) + (Rundungsadditionswert) mit Cin gleich 1 ausführt. Wenn das Bit mit der Gewichtung 20 des Ausgangs des Addierers 107 gleich 0 ist, bewirkt die LR1-Schiebevorrichtung 108 eine 1-Bit- Verschiebung nach links. Es wird ein Bit (S) erzeugt, das die logische Oder- Verknüpfung der Bits mit der Gewichtung 2&supmin;&sup5;&sup5; des Ausgangs des Addierers 107 oder niedriger ist. Gemäß dem Befehl der Rundungskorrekturwiederholungs-Steuerschaltung 109 mittels der Bits mit den Gewichtungen 2&sup0;, 2&supmin;&sup5;², 2&supmin;&sup5;³, 2&supmin;&sup5;&sup4; des Ausgangs des Addierers 107 und des S-Bits wird der Ausgang der LR1-Schiebevorrichtung 108 im Register 110 aufgenommen, wobei das Bit mit der Gewichtung 2&supmin;&sup5;² invertiert wird, wenn das in Fig. 4(b) gezeigte Korrektursignal gleich 01 ist, und die Bits mit den Gewichtungen 2&supmin;&sup5;¹ und 2&supmin;&sup5;² des Ausgangs der LR1-Schiebevorrichtung 108 invertiert werden, wenn das Korrektursignal gleich 01 ist, und wobei keine Korrektur vorgenommen wird, wenn das Korrektursignal gleich 00 ist. Wenn das Neurundungssignal der Rundungskorrekturwiederholungs-Korrekturschaltung 109 gleich 1 ist, wird das Einfügen des neuen Schritts zum Ausführen der Neuaddition des Rundungswertes angewiesen. Wenn jedoch das Neurundungssignal gleich 0 ist, schließt dieser Schritt die Berechnungsoperation ab, wobei die Rundungsoperation gemäß der Rundungsgenauigkeit bewerkstelligt wird.
  • - Mantissensubtraktionszeitpunkt mit Exponentendifferenz 0, 1
  • Der Ausgang des Registers 101 wird vom Multiplexierer 103 ausgewählt, während der Ausgang des Registers 102 vom Multiplexierer 104 ausgewählt wird. In der Rundungswert-Erzeugungsschaltung 106 werden die Daten mit allen Bits gleich 0 erzeugt. Die Komplementiereinrichtung 105 invertiert den Ausgang des Multiplexierers 104, um diesen in den Addierer 107 einzugeben, wobei der Addierer 107 (Register 1) - (Register 2) mit Cin gleich 1 ausführt. Wenn das Bit mit der Gewichtung 2&sup0; des Ausgangs des Addierers 107 gleich 0 ist, bewirkt die LR1-Schiebevorrichtung 108 eine 1-Bit-Verschiebung nach links. In der Rundungskorrekturwiederholungs-Steuerschaltung 109 wird das Einfügen des Schritts zum Runden angewiesen, wenn die zwei Bits mit den Gewichtungen 2&sup0;, 2&supmin;&sup5;³ des Ausgangs des Addierers 107 jeweils gleich 1 sind. In der Verschiebungszahl-Erzeugungsschaltung 111 wird die Verschiebungszahl erzeugt, die zum Normieren des Ausgangs der LR1- Schiebevorrichtung 108 erforderlich ist. Das Einfügen des Schritts zur Normierung wird angewiesen, wenn die Verschiebungszahl ungleich 0 ist. Wenn das Einfügen des Schritts für die Rundung und das Einfügen des Schritts für die Normierung jeweils nicht veranlaßt werden, ist die Berechnung mit diesem Schritt abgeschlossen.
  • (3) Einfügungsschritt (nur wenn das Einfügen des Schritts angewiesen ist) - Mantissenadditionszeitpunkt
  • Der Ausgang des Registers 110 wird vom Multiplexierer 103 ausgewähit, während die Konstante 0 vom Multiplexierer 104 ausgewählt wird. Der Ausgang des Multiplexierers 103, der Ausgang der Komplementiereinrichtung 105 mit dem unverändert ausgegebenen Ausgang des Multiplexierers 104 und die Daten mit dem Bit mit der Gewichtung 2&supmin;&sup5;³, das von der Rundungswert-Erzeugungsschaltung 106 des Schritts 1 erzeugt worden ist, gleich 1 und der anderen Bits gleich 0 werden vom Addierer 107 addiert. Wenn das Bit mit der Gewichtung 2¹ des Ausgangs des Addierers 107 gleich 1 ist, bewirkt die LR1-Schiebevorrichtung 108 eine 1-Bit-Verschiebung nach rechts. Wenn das Bit mit der Gewichtung 2¹ gleich 0 ist, wird der Wert unverändert im Register 110 aufgenommen, um die Verarbeitung abzuschließen.
  • - Mantissensubtraktionszeitpunkt mit Ausnahme der Exponentendifferenz 0, 1
  • Der Ausgang des Registers 110 wird vom Multiplexierer 103 ausgewählt, während die Konstante 0 vom Multiplexierer 104 ausgewählt wird. Der Ausgang des Multiplexierers 103, der Ausgang der Komplementiereinrichtung 105 mit dem unverändert ausgegebenen Ausgang des Multiplexierers 104 und die Daten mit dem Bit mit der Gewichtung 2&supmin;&sup5;&sup5;, das von der Rundungswert-Erzeugungsschaltung 106 des Schritts 1 erzeugt worden ist, gleich 1 und den anderen Bits gleich 0 werden vom Addierer 107 addiert. Wenn das Bit mit der Gewichtung 2¹ des Ausgangs des Addierers 107 gleich 1 ist, bewirkt die LR1-Schiebevorrichtung 108 eine 1-Bit-Verschiebung nach rechts. Wenn das Bit mit der Gewichtung 2¹ gleich 0 ist, wird der Wert unverändert im Register 110 aufgenommen, um somit die Verarbeitung abzuschließen.
  • - Mantissensubtraktionszeitpunkt mit Exponentendifferenz 0, 1
  • Wenn das Einfügen des Schritts für die Normierung von der Verschiebungszahl-Erzeugungsschaltung 111 angewiesen worden ist, gibt die Trommelschiebevorrichtung 112 das Register 110 ein, verschiebt es um die von der Verschiebungszahl-Erzeugungsschaltung 111 erzeugte Verschiebungszahl nach links, um es im Register 113 aufzunehmen und die Verarbeitung abzuschließen.
  • Wenn das Einfügen des Schritts für das Runden von der Rundungskorrekturwiederholungs-Steuerschaltung 109 angewiesen worden ist, wird der Ausgang des Registers 110 vom Multiplexierer 103 ausgewählt und die Konstante 0 vom Multiplexierer 104 ausgewählt. Der Ausgang des Multiplexierers 103, der Ausgang der Komplementiereinrichtung 105 mit dem unverändert ausgegebenen Ausgang des Multiplexierers 104 und die Daten mit dem Bit mit der Gewichtung 2&supmin;&sup5;², das von der Rundungswerterzeugungsschaltung 106 erzeugt worden ist, gleich 1 und den anderen Bits gleich 0 werden vom Addierer 107 addiert. Wenn das Bit mit der Gewichtung 2¹ des Ausgangs des Addierers 107 gleich 1 ist, bewirkt die LR1-Schiebevorrichtung 108 eine 1-Bit-Verschiebung nach rechts. Wenn das Bit mit der Gewichtung 2¹ gleich 0 ist, wird der Wert unverändert im Register 110 aufgenommen, um somit die Verarbeitung abzuschließen.
  • 3 Null-Richtung-Rundungsmodus
  • (Die folgende Verarbeitung ist üblich, wenn der erste Summand, der Minuend und der zweite Summand, der Subtrahend vom Format mit einfacher Genauigkeit sind und die Summe oder Differenz auf einfache Genauigkeit gerundet wird und wenn der erste Summand, der Minuend und der zweite Summand, der Subtrahend vom Format mit doppelter Genauigkeit sind und die Summe oder Differenz auf doppelte Genauigkeit gerundet wird)
  • (1) Vor dem Verarbeitungsschrittbeginn
  • Gemäß dem Exponenten und den Vorzeichen der zwei Gleitkommadaten und in Abhängigkeit davon, ob der Befehl eine Addition oder eine Subtraktion ist, werden der Typ der Operation der Mantissenaddition oder der Mantissensubtraktion und das Vorzeichen des Berechnungsergebnisses ermittelt, wie im Vorzeichen- und Operationsbeziehungsdiagramm der Fig. 10 gezeigt ist. Die Mantisse, deren Exponent nicht kleiner ist, unter den Mantissen des ersten Summanden, des Minuenden und des zweiten Summanden, des Subtrahenden wird im Register 101 aufgenommen. Die Mantisse, deren Exponent kleiner ist, unter den Mantissen des ersten Summanden, des Minuenden und des zweiten Summanden, des Subtrahenden wird auf den Exponenten ausgerichtet, der nicht kleiner ist, und im Register 102 aufgenommen.
  • (2) Schritt 1 - Mantissenadditionszeitpunkt
  • Der Ausgang des Registers 101 wird vom Multiplexierer 103 ausgewählt, während der Ausgang des Registers 102 vom Multiplexierer 104 ausgewählt wird. In der Rundungswert-Erzeugungsschaltung 105 werden die Daten mit allen Bits gleich 0 erzeugt. Die Komplementiereinrichtung 105 gibt den unveränderten Ausgang des Multiplexierers 104 aus, um ihn in den Addierer 107 einzugeben, wobei der Addierer 107 (Register 1) + (Register 2) mit Cin gleich 0 ausführt. Wenn das Bit mit der Gewichtung 21 des Ausgangs des Addierers 107 gleich 1 ist, bewirkt die LR1-Schiebevorrichtung 108 eine 1-Bit- Verschiebung nach rechts, um somit die Berechnungsoperation abzuschließen.
  • - Mantissensubtraktionszeitpunkt mit Ausnahme der Exponentendifferenzen 0, 1
  • Der Ausgang des Registers 101 wird vom Multiplexierer 103 ausgewählt, während der Ausgang des Registers 102 vom Multiplexierer 104 ausgewählt wird. In der Rundungswert-Erzeugungsschaltung 106 werden die Daten mit allen Bits gleich 0 erzeugt. Die Komplementiereinrichtung 105 invertiert den Ausgang des Multiplexierers 104, um diesen in den Addierer 107 einzugeben, wobei der Addierer 107 (Register 1) - (Register 2) mit Cin gleich 1 ausführt. Wenn das Bit mit der Gewichtung 2&sup0; des Ausgangs des Addierers 107 gleich 0 ist, bewirkt die LR1-Schiebevorrichtung 108 eine 1-Bit-Verschiebung nach links, um somit die Berechnungsoperation abzuschließen.
  • - Mantissensubtraktionszeitpunkt mit Exponentendifferenz 0, 1
  • Der Ausgang des Registers 101 wird vom Multiplexierer 103 ausgewählt, während der Ausgang des Registers 102 vom Multiplexierer 104 ausgewählt wird. In der Rundungswert-Erzeugungsschaltung 106 werden die Daten mit allen Bits gleich 0 erzeugt. Die Komplementiereinrichtung 105 invertiert den Ausgang des Multiplexierers 104, um diesen in den Addierer 107 einzugeben, wobei der Addierer (Register 1) - (Register 2) mit Cin gleich 1 ausführt. Wenn das Bit mit der Gewichtung 2&sup0; des Ausgangs des Addierers 107 gleich 0 ist, bewirkt die LR1-Schiebevorrichtung 108 eine 1-Bit-Verschiebung nach links. In der Verschiebungszahl-Erzeugungsschaltung 111 wird die Verschiebungszahl erzeugt, die zum Normieren des Ausgangs der LR1-Schiebevorrichtung 108 erforderlich ist. Das Einfügen des Schritts für die Normierung wird angewiesen, wenn die Verschiebungszahl ungleich 0 ist. Wenn das Einfügen des Schritts für die Normierung nicht veranlaßt wird, ist die Berechnung mit diesem Schritt abgeschlossen.
  • (3) Einfügungsschritt (nur wenn das Einfügen des Schritts angewiesen ist) - Nur zum Mantissensubtraktionszeitpunkt mit Exponentendifferenz 0, 1
  • Die Trommelschiebevorrichtung 112 gibt das Register 110 ein, um es um die von der Verschiebungszahl-Erzeugungsschaltung 111 erzeugte Verschiebungszahl nach links zu verschieben und es unterzubringen, um somit die Verarbeitung abzuschließen.
  • Gemäß der vorliegenden Ausführungsform werden zum Mantissenadditionszeitpunkt oder zum Mantissensubtraktionszeitpunkt mit Ausnahme der Exponentendifferenzen 0, 1 die Dreiersumme der zwei Gleitkommadatenmantissen und des Rundungsadditionswerts oder die Zweiersumme der ersteren Differenz und der letzteren vom Addierer 107 gleichzeitig bewerkstelligt. Die Verarbeitung kann in den meisten Fällen abgeschlossen werden durch die Normierung des Ergebnisses mittels der LR1-Schiebevorrichtung 108. Selbst wenn die Korrektur des Ausgangs der LR1-Schiebevorrichtung 108 durch den Befehl der Rundungskorrekturwiederholungs-Steuerschaltung 109 erforderlich ist, kann der Abschluß der Operation ohne Erhöhung der Verarbeitungsschrittanzahl bewerkstelligt werden. Der Abschluß der Operation kann bewerkstelligt werden durch Einfügen eines Schritts der Verarbeitung nur dann, wenn die Addition des Rundungsadditionswerts mittels des Addierers 107 erneut erforderlich ist. Die Wahrscheinlichkeit der Notwendigkeit des Einfügens des Schritts 1 ist sehr klein, wobei sie 2132 im Modus zum Runden auf die nächste glatte Zahl und 3/32 zum Zeitpunkt des gerichteten Rundungnach-Plus-Modus oder des gerichteten Rundung-nach-Minus-Modus beträgt und 0 zum Zeitpunkt des gerichteten Rundung nach-Null-Modus beträgt (wenn das Bitmuster der Mantisse gleichmäßig verteilt angenommen wird). Als Ergebnis wird in den meisten Fällen (30/32 zum Zeitpunkt des Modus des Rundens zur nächstliegenden glatten Zahl, 29/32 zum Zeitpunkt des gerichteten Rundung-nach-Plus-Modus oder des gerichteten Rundung nach- Minus-Modus, 1 zum Zeitpunkt des gerichteten Rundung nach-Null-Modus) die für die Addition, Subtraktion erforderliche Verarbeitungsschrittanzahl auf 2 reduziert. Selbst zum Zeitpunkt des Mantissensubtraktionszeitpunkts der Exponentendifferenzen 0, 1 werden die Subtraktion der Mantisse der zwei Gleitkommadaten und die Addition der Rundungsadditionswerte vom Addierer 107 gleichzeitig bewerkstelligt. Ferner wird das Ergebnis durch die LR1- Schiebevorrichtung 108 normiert. Die Verarbeitung kann in den meisten Fällen abgeschlossen werden, wobei nur dann, wenn die Verschiebung von zwei Bits oder mehr zur Normierung durch die Trommelschiebevorrichtung 112 erforderlich ist oder die Verarbeitung durch Einfügen eines Schritts abgeschlossen werden kann, ist die Addition des Rundungsadditionswertes durch den Addierer 107 erforderlich, wobei die Anzahl der Verarbeitungsschritte, die in den meisten Fällen erforderlich sind, gleich 2 wird. Diese Verarbeitungsabläufe sind in Fig. 8(b) gezeigt. Selbst wenn in irgendeinem Fall die Addition, die Subtraktion der Mantissen und die Addition des Rundungsadditionswertes von einem einzelnen Addierer 107 ausgeführt werden, ist die erforderliche Hardware im Vergleich zur herkömmlichen Additions-Subtraktions-Vorrichtung für Gleitkommadaten kleiner.
  • Obwohl in der vorliegenden Ausführungsform beim gerichteten Rundungnach-Plus-Modus oder beim gerichteten Rundung-nach-Minus-Modus entsprechend den jeweiligen Fällen der Mantissenaddition mit Rundung mit einfacher Genauigkeit, der Mantissensubtraktion bei Exponentendifferenz 0 oder 1 mit Rundung mit einfacher Genauigkeit, der Mantissenaddition mit Rundung mit doppelter Genauigkeit, der Mantissensubtraktion bei Exponentendifferenz von 0 oder 1 mit Rundung mit doppelter Genauigkeit, die Daten so erzeugt werden, dass die Bits mit den Gewichtungen 2&supmin;²&sup4;, 2&supmin;²&sup5;, 2-53, 2 in der Rundungswert-Erzeugungsschaltung 106 gleich 1 sind und die anderen Bits gleich 0 sind, wird der Ausgang der LR1-Schiebevorrichtung 108 im Register 110 aufgenommen und die Bits mit den Gewichtungen 2&supmin;²³, 2&supmin;²³ 2&supmin;&sup5;², 2&supmin;&sup5;² werden invertiert, wenn das Korrektursignal gleich 01 ist, und die Bits mit den Gewichtungen 2&supmin;²² und 2&supmin;²³, 2&supmin;²² und 2&supmin;²³, 2&supmin;&sup5;¹ und 2&supmin;&sup5;², 2&supmin;&sup5;¹ und 2&supmin;&sup5;² werden invertiert, wenn das Korrektursignal gleich 10 ist, entsprechend den Steuerungsbeziehungsdiagrammen der Fig. 4(a), (b), (c), (d) mittels der Rundungskorrekturwiederholungs-Steuerschaltung 109, wobei das Einfügen des neuen Schritts zum erneuten Addieren des Rundungsadditionswertes, der von der Rundungswert-Erzeugungsschaltung 106 erzeugt worden ist, angewiesen wird, wenn das Neurundungssignal der Rundungskorrekturwiederholungs-Steuerschaltung 109 gleich 1 ist, wobei die Daten so erzeugt werden können, dass die Bits mit den Gewichtungen 2&supmin;²³, 2&supmin;²&sup4;, 2&supmin;&sup5;&sup4; 2&supmin;&sup5;³ in der Rundungswert-Erzeugungsschaltung 106 gleich 1 sind und die anderen Bits gleich 0 sind, wobei der Ausgang der LR1-Schiebevorrichtung 108 im Register 110 aufgenommen wird und die Bits mit der Gewichtung 2 2&supmin;²³, 2&supmin;&sup5;², 2&supmin;&sup5;² invertiert werden, wenn das Korrektursignal gleich 01 ist, und die Bits mit der Gewichtung 2&supmin;²² und 2&supmin;²³, (Einfügung) invertiert werden, wenn das Korrektursignal gleich 10 ist, entsprechend den Steuerungsbeziehungsdiagrammen der Fig. 5(a), (c), (b), (d) mittels der Rundungskorrekturwiederholungs-Steuerschaltung 109, wobei das Einfügen des neuen Schritts zum erneuten Addieren des Rundungsadditionswertes, der von der Rundungswert-Erzeugungsschaltung 106 erzeugt worden ist, angewiesen werden kann, wenn das Neurundungssignal der Rundungskorrekturwiederholungs- Steuerschaltung 109 gleich 1 ist und das Korrektursignal gleich 00 ist, und wobei das Einfügen des neuen Schritts zum Subtrahieren von dem Wert um im Register 110 den von der Rundungswert-Erzeugungsschaltung 106 erzeugten Rundungsadditionswert zu halten, angewiesen werden kann, wenn das Neurundungssignal gleich 1 ist und das Korrektursignal gleich 11 ist. Auf diese Weise wird die Wahrscheinlichkeit für die Notwendigkeit des Einfügens eines Schritts auf 2/32 reduziert, wodurch die Berechnungsgeschwindigkeit verbessert wird.
  • Obwohl in der vorliegenden Ausführungsform beim gerichteten Rundungnach-Plus-Modus oder beim gerichteten Rundung-nach-Minus-Modus gemäß den entsprechenden Fällen der Mantissenaddition mit Rundung mit einfacher Genauigkeit, der Mantissensubtraktion bei Exponentendifferenz von 0 oder 1 mit Rundung mit einfacher Genauigkeit, der Mantissenaddition mit Rundung mit doppelter Genauigkeit, der Mantissensubtraktion bei Exponentendifferenz 0 oder 1 mit Rundung mit doppelter Genauigkeit die Daten so erzeugt werden, dass die Bits mit den Gewichtungen 2&supmin;²&sup4;, 2&supmin;²&sup5;, 2&supmin;&sup5;³, 2&supmin;&sup5;&sup4; in der Rundungswert-Erzeugungsschaltung 106 gleich 1 sind und die anderen Bits gleich 0 sind, weist die Rundungskorrekturwiederholungs-Steuerschaltung 109 das Einfügen des Schritts zur Korrektur der Bits oder die Neuaddition des Rundungsadditionswerts gemäß dem Korrektursignal und dem Neurundungssignal an, wie in den Steuerungsbeziehungsdiagrammen der Fig. 4(a), (c), (b), (d) gezeigt ist. Die Daten können in der Rundungswert- Erzeugungsschaltung 106 so erzeugt werden, dass die Bits mit allen Gewichtungen von 2&supmin;²&sup4; und niedriger, mit allen Gewichtungen von 2&supmin;²&sup5; und niedriger, mit allen Gewichtungen von 2&supmin;&sup5;³ und niedriger, mit allen Gewichtungen von 2&supmin;&sup5;&sup4; und niedriger gleich 1 sind, und die anderen Bits gleich 0 sind. Die Rundungskorrekturwiederholungs-Steuerschaltung 109 kann das Einfügen des Schritts zur Korrektur der Bits oder der Neuaddition des Rundungsadditionswerts entsprechend dem Korrektursignal und dem Neurundungssignal anweisen, wie in den Steuerungsbeziehungsdiagrammen der Fig. 6(a), (c), (b), (d) gezeigt ist. Auf diese Weise wird die Wahrscheinlichkeit der Notwendigkeit des Einfügens eines Schritts auf 2/32 gesenkt, wodurch die Berechnungsgeschwindigkeit verbessert wird. Im gerichteten Rundung-nach-Plus-Modus oder im gerichteten Rundung-nach-Minus-Modus ist zu bemerken, dass die Addition von 1 für das Runden im niedrigstwertigen Bit (L) notwendig wird, wenn das Rundungsbit (R) oder das Sticky Bit (S) gleich 1 ist. Durch die Verwendung des Übertrags, der durch die Addition der Daten mit dem Rundungsbit und allen niedrigeren Bits gleich 1 in der Bitposition erzeugt worden ist, kann die Rundungsaddition im niedrigstwertigen Bit bewerkstelligt werden. Ein Fall, in welchem die Rundungsoperation nicht hervorgerufen wird, wobei das Rundungsbit und das Sticky Bit beide gleich 0 sind, ist in Fig. 12(c) gezeigt. Ein Fall, in welchem die Addition von 1 für die Rundung veranlaßt wird mit Ausnahme des obenerwähnten Falls, ist in den Fig. 12(d), (e), (f) gezeigt.
  • In der vorliegenden Ausführungsform sind sowohl die Genauigkeit des Formats als auch die Rundungsgenauigkeit des ersten Summanden, des Minuenden und des zweiten Summanden, des Subtrahenden vorgesehen als einfache Genauigkeit oder doppelte Genauigkeit. Selbst in einem Fall, in welchem die Genauigkeit des Formats und die Rundungsgenauigkeit des ersten Summanden, des Minuenden und des zweiten Summanden, des Subtrahenden unterschiedlich sind, ist der Rundungsadditionswert, der von der Rundungswert-Erzeugungsschaltung 106 erzeugt werden muß, gleich den Daten mit dem Rundungsbit entsprechend der Rundungsgenauigkeit gleich 1, wobei die Eingangsbitzahl des Addierers 107 auf die maximale Bitanzahl der Datenhandhabung gesetzt ist, so dass die Rundung, die der Rundungsgenauigkeit entspricht, verwirklicht werden kann unabhängig von der Genauigkeit des Formats des ersten Summanden, des Minuenden und des zweiten Summanden, des Subtrahenden.
  • Obwohl in der vorliegenden Ausführungsform entsprechend den jeweiligen Fällen der Mantissenaddition mit Rundung mit einfacher Genauigkeit, der Mantissensubtraktion bei Exponentendifferenz von 0 oder 1 mit Rundung mit einfacher Genauigkeit, der Mantissenaddition mit Rundung mit doppelter Genauigkeit und der Mantissensubtraktion bei Exponentendifferenz von 0 oder 1 mit Rundung mit doppelter Genauigkeit die Rundungskorrekturwiederholungs-Steuerschaltung 109 die Bits mit den Gewichtungen 2¹, 2&supmin;²², 2&supmin;²³, 2&supmin;²&sup4;, die Bits mit den Gewichtungen 2&sup0;, 2&supmin;²³, 2&supmin;²&sup4;, 2&supmin;²&sup5;, die Bits mit den Gewichtungen 2¹, 2&supmin;&sup5;¹, 2&supmin;&sup5;², 2&supmin;&sup5;³, die Bits mit den Gewichtungen 2&sup0;, 2&supmin;&sup5;² 2&supmin;&sup5;³, 2&supmin;&sup5;&sup4; des Ausgangs des Addierers 107 und das S-Bit untersucht, um somit die Korrektur der Bits mit den Gewichtungen 2&supmin;²² und 2&supmin;²³, 2&supmin;²² und 2&supmin;²³, 2&supmin;&sup5;¹ und 2&supmin;&sup5;², 2&supmin;&sup5;¹ und 2&supmin;&sup5;² anzuweisen, kann das untersuchte Bit und das korrigierte Bit in Richtung des höchstwertigen Bits erhöht werden. Die Wahrscheinlichkeit der Notwendigkeit des Einfügens eines Schritts wird für jede 1-Bit-Addition des untersuchten Bits und des korrigierten Bits halbiert, wodurch die Berechnungsgeschwindigkeit verbessert wird.
  • Fig. 2 zeigt ein Blockschaltbild der Additions-, Subtraktionsvorrichtung für Gleitkommadaten gemäß der zweiten Ausführungsform. Es ist zu beachten, dass ähnliche Teile in Fig. 2 mit den gleichen Bezugszeichen wie in Fig. 1 bezeichnet sind. In Fig. 2 ist das Bezugszeichen 114 ein Addierer mit zwei Eingängen, wobei das Bit mit der Gewichtung 2&supmin;²&sup4; mit einfacher Genauigkeit ein Übertragseingang (Cin) ist und das Bit mit der Gewichtung 2&supmin;&sup5;³ bei doppelter Genauigkeit ein Übertragseingang (Cin) ist; das Bezugszeichen 115 ist eine Übertragssteuervorrichtung zum Zuweisen des Übertragseingangs (Cin) des Addierers 114. Fig. 7 ist ein Steuerungsbeziehungsdiagramm der Übertragssteuerungsvorrichtung 115, in der der Übertragseingang (Cin), der in Fig. 7(a) gezeigt ist, wenn die Mantissenoperation ausgeführt wird und die Rundungsgenauigkeit die einfache Genauigkeit ist, in Fig. 7(b) gezeigt ist, wenn die Mantissenaddition ausgeführt wird und die Rundungsgenauigkeit die doppelte Genauigkeit ist, in Fig. 7(c) gezeigt ist, wenn die Mantissensubtraktion ausgeführt wird und die Rundungsgenauigkeit die einfache Genauigkeit ist, in Fig. 7(d) gezeigt ist, wenn die Mantissensubtrakion ausgeführt wird und die Rundungsgenauigkeit die doppelte Genauigkeit ist, in den Addierer 114 eingegeben wird.
  • Die Additions-, Subtraktionsvorrichtung für Gleitkommadaten in der vorliegenden Ausführungsform, die wie oben beschrieben konstruiert ist, wird im folgenden in ihrer Operation beschrieben. Statt der Ausführung der Addition, Subtraktion der Mantisse der zwei Gleitkommadaten und der Addition des Rundungsadditionswerts, der von der Rundungswert-Erzeugungsschaltung 106 erzeugt worden ist, mittels des Addierers 107 mit drei Eingängen in der in Fig. 1 gezeigten ersten Ausführungsform ist die vorliegende Ausführungsform so konfiguriert, dass sie den Übertragseingang (Cin) des Addierers 114 mit zwei Eingängen mittels der Übertragssteuerungsvorrichtung 115 verarbeitet, um somit die Addition, Subtraktion der Mantisse und die Addition der Rundungsadditionswerte zu bewerkstelligen. Im folgenden werden nur die Rundungsadditionswertes beschrieben, wobei die anderen Operationen die gleichen sind wie in der ersten Ausführungsform.
  • - Mantissenadditionszeitpunkt
  • Bei dem Modus der Rundung zur nächstliegenden glatten Zahl, oder wenn das Vorzeichen des Berechnungsergebnisses im gerichteten Rundung nach- Minus-Modus positiv ist oder das Vorzeichen des Berechnungsergebnisses im gerichteten Rundung-nach-Minus-Modus negativ ist, wird der Übertragseingang (Cin) irrelevant, in 1, für die Eingangsdaten gemacht, wie in den Spalten von RN, RP(+), RN(-) der Fig. 7(a), (b) gezeigt ist, so dass 2&supmin;²&sup4;, 2&supmin;&sup5;³ als Additionswerte addiert werden, in Abhängigkeit davon, ob die Rundungsgenauigkeit die einfache Genauigkeit oder die doppelte Genauigkeit ist.
  • Wenn das Vorzeichen des Berechnungsergebnisses im gerichteten Rundungnach-Plus-Modus negativ ist oder das Vorzeichen des Berechnungsergebnisses im gerichteten Rundung-nach-Minus-Modus positiv ist, oder bei gerichtetem Rundung-nach-Minus-Modus, müssen die Rundungsadditionswerte nicht addiert werden. Somit wird der Übertragseingang (Cin) irrelevant, in 0, für die Eingangsdaten gemacht, wie in den Spalten von RP(-), RM(+), RZ der Fig. 7(a), (b) gezeigt ist.
  • - Mantissensubtraktionszeitpunkt mit Ausnahme der Exponentendifferenz 0, 1
  • Beim Modus des Rundens zur nächstliegenden glatten Zahl, oder wenn das Vorzeichen des Berechnungsergebnis im gerichteten Rundung nach-Plus- Modus positiv ist oder das Vorzeichen des Berechnungsergebnisses im gerichteten Rundung-nach-Minus-Modus negativ ist, müssen 2&supmin;²&sup5;, 2&supmin;&sup5;&sup4; als Rundungsadditionswerte addiert werden, in Abhängigkeit davon ob die Rundungsgenauigkeit die einfache Genauigkeit oder die doppelte Genauigkeit ist, wobei eine 1 für das Zweierkomplement zur Position des Sticky Bits (S) addiert werden muß. Um diese Additionen zu verwirklichen, wenn wenigstens das Bit 2&supmin;²&sup5; der Daten (ausgerichtet und mittels 1 komplementiert) zu addieren ist und/oder das Sticky Bit (S) gleich 1 ist, oder wenigstens das Bit 2&supmin;&sup5;&sup4; und/oder das Sticky Bit (3) gleich 1 ist, wird der Übertragseingang (Gin) in 2&supmin;²&sup4;, 2&supmin;&sup5;³ gleich 1 gemacht. Wenn sowohl das Bit 2&supmin;²&sup5; der zu addierenden Daten als auch das Sticky Bit (S) gleich 0 sind, oder wenn sowohl das Bit 2&supmin;&sup5;&sup4; als auch das Sticky Bit (S) gleich 0 sind, wird der Übertragseingang (Gin) in 2&supmin;²&sup4;, 2&supmin;&sup5;³ gleich 0 gemacht. Dementsprechend wird der Übertragseingang (Cin) in Abhängigkeit von den Eingangsdaten erzeugt, wie in den Spalten RN, RP(+), RM(+) der Fig. 7(c), (d) gezeigt ist.
  • Wenn das Vorzeichen des Berechnungsergebnisses im gerichteten Rundungnach-Plus-Modus negativ ist oder das Vorzeichen des Berechnungsergebnisses im gerichteten Rundung-nach-Minus-Modus positiv ist, oder im gerichteten Rundung-nach-Null-Modus, muß in Abhängigkeit davon, ob die Rundungsgenauigkeit die einfache Genauigkeit oder die doppelte Genauigkeit ist, 1 für das Zweierkomplement zur Position des Sticky Bits (S) addiert werden. Um diese Addition zu verwirklichen, wenn wenigstens das Bit 2&supmin;²&sup5; der zu addierenden Daten (ausgerichtet und mit 1 komplementiert) und/oder das Sticky Bit (S) gleich 1 ist, oder wenn wenigstens das Bit 2&supmin;&sup5;&sup4; und/oder das Sticky Bit (S) gleich 0 ist, wird der Übertragseingang (Cin) in 2&supmin;²&sup4;, 2&supmin;&sup5;³ gleich 0 gemacht. Wenn sowohl das Bit 2&supmin;²&sup5; der zu addierenden Daten als auch das Sticky Bit (S) gleich 1 ist, oder wenn sowohl das Bit 2&supmin;&sup5;&sup4; und das Sticky Bit (S) gleich 1 ist, wird der Übertragseingang (Cin) in 2&supmin;²&sup4;, 2&supmin;&sup5;³ für deren Verwirklichung gleich 1 gemacht. Dementsprechend wird der Übertragseingang (Gin) in Abhängigkeit von den Eingangsdaten erzeugt, wie in den Spalten RP(-), RM(+), R2 der Fig. 7(c), (d) gezeigt ist.
  • - Mantissensubtraktionszeitpunkt mit Exponentendifferenz 0, 1
  • Die Rundung wird nicht gleichzeitig mit der Subtraktion der Mantissen ausgeführt. Entsprechend der einfachen Genauigkeit oder der doppelten Genauigkeit bei der Rundungsgenauigkeit muß jedoch 1 für das Zweierkomplement zur Position des Sticky Bits (S) addiert werden. Um somit diese Addition zu verwirklichen, wenn wenigstens das Bit 2&supmin;²&sup5; der zu addierenden Daten (ausgerichtet und mit 1 komplementiert) und/oder das Sticky Bit (S) gleich 0 ist, oder wenn wenigstens das Bit 2 und/oder das Sticky Bit (S) gleich 0 ist, wird der Übertragseingang (Gin) in 2&supmin;²&sup4;, 2&supmin;&sup5;³ gleich 0 gemacht. Wenn sowohl das Bit 2&supmin;²&sup5; der zu addierenden Daten als auch das Sticky Bit (S) gleich 1 sind, oder wenn sowohl das Bit 2&supmin;&sup5;&sup4; als auch das Sticky Bit (S) gleich 1 sind, wird der Übertragseingang (Cin) in 2-24, 2&supmin;&sup5;³ gleich 1 gemacht. Dementsprechend wird der Übertragseingang (Cin) in Abhängigkeit von den Eingangsdaten erzeugt, wie in den Spalten RP(-), RM(+), RZ der Fig. 7(c), (d) gezeigt ist.
  • Selbst in dem obenbeschriebenen einen Fall, kann die Rundung, die mit dem eingefügten Schritt bewerkstelligt werden soll, mit dem Übertragseingang (Cin) gleich 1 verwirklicht werden, um somit die Addition mit 2&supmin;²&sup4;, 2&supmin;&sup5;³ als Rundungsadditionswerte zu bewerkstelligen, in Abhängigkeit davor, ob die Rundungsgenauigkeit die einfache Genauigkeit oder die doppelte Ge nauigkeit ist.
  • Selbst mit der vorliegenden Ausführungsform werden zum Mantissenadditionszeitpunkt oder zum Mantissensubtraktionszeitpunkt mit Ausnahme der Exponentendifferenzen 0, 1 die Dreiersumme der zwei Gleitkommadatenmantissen und des Rundungsadditionswertes oder die Zweiersumme der ersteren Differenz und des letzteren gleichzeitig vom Addierer 114 bewerkstelligt. Als Ergebnis wird in den meisten Fällen (30/32 beim Mdus der Rundung zur nächstliegenden glatten Zahl, 29/32 beim gerichteten Rundungnach-Plus-Modus oder beim gerichteten Rundung-nach-Minus-Modu s, 1 beim gerichteten Rundung nach-Null-Modus) die für die Addition, Subtraktion erforderliche Arbeitsschrittanzahl auf 2 reduziert. Selbst zum Zeit unkt der Mantissensubtraktion der Exponentendifferenz 0, 1 werden die Subtraktion der Mantissen der zwei Gleitkommadaten und die Addition des Rundungsadditionswertes gleichzeitig vorn Addierer 114 bewerkstelligt, so dass die Anzahl der in den meisten Fällen erforderlichen Verarbeitungsschritte auf 2 Reduziert wird. Selbst in einem Fall, wenn die Addition, Subtraktion der Mantissen und die Addition der Rundungsadditionswerte vom einzelnen Addierer 114 ausgeführt wird, ist die benötigte Hardware kleiner als bei der herkömmlichen Additions-Subtraktions-Vorrichtung für Gleitkommadaten. Der Addierer 114, der zwei Eingänge umfaßt, wird bezüglich der Hardware sehr viel kleiner als in der ersten Ausführungsform.
  • Fig. 14 zeigt ein Blockschaltbild einer Multiplikationsvorrichtung für Gleitkommadaten in einer ersten Ausführungsform der vorliegenden Erfindung. In Fig. 14 ist das Bezugszeichen 201 ein Multiplikandenregister zum Halten des Multiplikanden, das aus einem Vorzeichenabschnitt 201s mit einem Bit, einem Exponentenabschnitt 201e mit elf Bits und einem Mantissenabschnitt 201f mit 53 Bits besteht. Das Bezugszeichen 202 ist ein Multiplikatorregister zum Halten des Multiplikators, der aus einem Vorzeichenabschnitt 202s mit einem Bit, einem Exponentenabschnitt 202e mit 11 Bits und einem Mantissenabschnitt 202f mit 53 Bits besteht. Das höchstwertige Bit den Multiplikandenregister-Mantissenabschnitts 201f und des Multiplikatorregister- Mantissenabschnitts 202f ist jeweils ein sogenanntes "verdecktes Bit" mit der Gewichtung 2, das bei der normierten Zahl gleich 1 ist, wobei sowohl das Multiplikandenregister 201 als auch das Multiplikatorregister 202 mit Ausnahme dieses Bits mit dem Format mit doppelter Genauigkeit konform sind. Das Bezugszeichen 203 ist eine Vorzeichenerzeugungsschaltung zum Lesen der Vorzeichen des Multiplikanden und des Multiplikators vom Multiplikandenregister-Vorzeichenabschnitt 201s und vom Multiplikatorregister-Vorzeichenabschnitt 202s, um das Vorzeichen des Produkts zu erzeugen während das Bezugszeichen 204 ein Exponentenaddierer mit elf Bits ist zum &submin;esen der Exponenten des Multiplikanden und des Multiplikators aus dem Multiplikandenregister-Exponentenabschnitt 201e und dem Multiplikatorregister- Exponentenabschnitt 202e, um den Exponenten des Produkts zu berechnen und die Addition des A-Eingangs, des B-Eingangs und des Übertragseingangs mit einem Bit Cin zu bewerkstelligen. Das Bezugszeichen 205 und das Bezugszeichen 206 sind jeweils Auswahlvorrichtungen mit 11 Bits zum Auswählen der zwei Eingänge des Exponentenaddierers 204, während das Bezugszeichen 207 die Höchstwertig-Bit-Korrekturschaltung zum Inviertieren des höchstwertigen Bits des Ausgangs des Exponentenaddierers 204 ist; das Bezugszeichen 208 ist ein Zwischenspeicher mit einem Bit zum Halten des Überlaufs vom höchstwertigen Bit bei der Addition des Exponentenaddierers 204; das Bezugszeichen 209 ist eine Ausnahmeerfassungsschaltung zum Erfassen des Überlaufs und des Unterlaufs des Produkts bezüglich der erfaßten Berechnungsgenauigkeit vom Ausgang des Exponentenaddierers 204 und dem Wert des Zwischenspeichers 208 ist; das Bezugszeichen 210 ist ein Zwischenspeicher mit 11 Bits zum Halten des Ausgangs des Exponentenaddierers 204, der im höchstwertigen Bit mittels der Höchstwertig-Bit- Korrekturschaltung 207 invertiert ist, um diesem erneut über die Auswahlvorrichtung 205 in den Exponentenaddierer 204 einzugeben; das Bezugszeichen 211 ist eine Normiert-Korrekturwert-Erzeugungsschaltung zum Erze gen der Konstanten zum Erhöhen des Exponenten um 1 durch die Normierung der 1- Bit-Verschiebung der Mantisse des Produkts; das Bezugszeichen 212 ist eine Multiplikanden-Oben/Unten-Auswahlschaltung zum Lesen des Multiplikandenregister-Mantissenabschnitts 201f, um die oberen 27 Bits oder die unteren 27 Bits (das höchstwertige Bit wird zu diesem Zeitpunkt mit 0 angenommen) auszuwählen und auszugeben; das Bezugszeichen 213 ist eine Multiplikator-Oben/Unten-Auswahlschaltung zum Lesen des Multiplikatorregister-Mantissenabschnitts 202f, um die oberen 27 Bits oder die unteren 27 Bits (das höchstwertige Bit wird zu diesem Zeitpunkt mit 0 angenommen) auszuwählen und auszugeben; das Bezugszeichen 214 ist eine Multiplikationseinheit zum Multiplizieren des Ausgangs der Multiplikanden-Oben/Unten- Auswahlschaltung 212 mit 27 Bits mit dem Ausgang der Multiplikator- Oben/Unten-Auswahlschaltung 213 mit 27 Bits, um jeweils die Summe und den Übertrag der 54 Bits auszugeben; die Bezugszeichen 215, 216 sind jeweils ein Zwischenspeicher mit 54 Bits zum Halten des Summenausgangs und des Übertragsausgangs der Multiplikationseinheit 214; das Bezugszeichen 217 ist eine Rundungsadditionswerterzeugungsschaltung zum Erzeugen der Konstanten, wenn die Addition zum Runden der Mantisse des Produkts mit einfacher Genauigkeit oder doppelter Genauigkeit bewerkstelligt wird; das Bezugszeichen 218 ist eine Auswahlvorrichtung mit 54 Bits zum Auswählen des Werts des Zwischenspeichers 216 und des Ausgangs der Rundungsadditionswert-Erzeugungsschaltung 217; das Bezugszeichen 219 ist eine Auswahlvorrichtung mit 54 Bits zum Auswählen des Ausgangs der Rundungsadditionswerterzeugungsschaltung 217 und des im Zwischenspeicher 225 zu haltenden Wertes, wie später beschrieben wird; das Bezugszeichen 220 ist ein Mantissenaddierer mit 54 Bits zum Addieren des im Zwischenspeicher 215 gehaltenen Wertes und des Ausgangs der Auswahlvorrichtung 218 und des Ausgangs der Auswahlvorrichtung 219; das Bezugszeichen 221 ist eine Schiebevorrichtung mit 54 Bits zum Verschieben des Ausgangs des Mantissenaddierers 220 in Richtung des niedrigstwertigen Bits um 0 Bit oder 1 Bit oder 26 Bit; das Bezugszeichen 222 ist eine t-Eit-Erzeugungsschaltung zum Eingeben von 22 Bits, die das 26. Bit bis 47. Bit ausgehend vom höchstwertigen Bit des Ausgangs des Mantissenaddierers 220 und dem Verschiebungsüberlauf vom niedrigstwertigen Bit der 26 Bits in der Schiebevorrichtung 221 umfassen, um somit das Sticky Bit in Abhängigkeit davon zu erzeugen, ob die Rundungsgenauigkeit die einfache Genauigkeit oder die doppelte Genauigkeit ist; das Bezugszeichen 223 ist eine Mantissenkorrekturschaltung zum Invertieren und bei Bedarf zum Ausgeben des 24. Bits ausgehend vom höchstwertigen Bit des Ausgangs der Schiebevorrichtung 221, wenn die Rundungsgenauigkeit die einfache Genauigkeit ist, uni des 53. Bits, wenn die Rundungsgenauigkeit die doppelte Genauigkeit ist; das Bezugszeichen 224 ist eine Mantissenkorrektur-Steuerschaltung mit sechs Bits vom 23. Bit ausgehend vom höchstwertigen Bit, dem dritten Bits bis zum niedrigstwertigen Bit, ausgehend vom niedrigstwertigen Bit, des Ausgangs des Mantissenaddierers 220, einem Bit des Überlaufs vom höchstwertigen Bit bei der Addition des Mantissenaddierers 220, dem von der Sticky-Bit- Erzeugungsschaltung 222 ausgegebenen Sticky Bit mit einem Bit, um somit die Invertierung der Bits, die von der Mantissenkorrekturschaltung 223 bewerkstelligt werden soll, und die Addition der Rundungsadditionswerte im Mantissenaddierer 220 in Abhängigkeit davon zu steuern, ob die Rundungsgenauigkeit die einfache Genauigkeit oder die doppelte Genauigkeit ist; das Bezugszeichen 225 ist ein Zwischenspeicher mit 54 Bits zum Halten des Ausgangs der Schiebevorrichtung 221; das Bezugszeichen 226 ist ein Produktregister zum Halten des Produkts, das einen Vorzeichenabschnitt 226s mit einem Bit, einen Exponentenabschnitt 226e mit 11 Bits und einen Mantissenabschnitt 226f mit 53 Bits umfaßt. Das höchstwertige Bit des Produktregister-Mantissenabschnitts 226 ist ein sogenanntes "verdecktes Bit" mit der Gewichtung 2&sup0; und ist zum Zeitpunkt der normierten Zahl gleich 1, wobei das Produktregister 226 mit Ausnahme dieses Bits konform ist zum Format für doppelte Genauigkeit. Fig. 15 ist ein inneres Blockschaltbild der Multiplikanden-Oben/Unten-Auswahlschaltung 212 und der Multiplikator- Oben/Unten-Auswahlschaltung 213, die in Fig. 14 gezeigt sind. Das Bezugszeichen 227 ist eine Auswahlvorrichtung zum Auswählen der oberen 27 Bits oder der 27 Bits mit 0, die am höchstwertigen Bit erweitert sind, für die unteren 26 Bits des Eingangs mit 53 Bits. Fig. 16 ist ein Operationerläuterungsdiagramm, das die Konstanten zeigt, die die in Fig. 14 gezeigte Rundungsadditionswerterzeugungsschaltung 217 erzeugt, wobei ein Rundungsadditionswert A mit nur dem 25. Bit ausgehend vom höchstwertigen Bit gleich 1 und den anderen Bits gleich 0, ein Rundungsadditionswert B mit nur dem zweiten Bit ausgehend vom höchstwertigen Bit gleich 1 und den anderen Bits gleich 0, eine Rundungsadditionswert C mit nur dem niedrigstwertigen Bit gleich 1 und den anderen Bits gleich 0 erzeugt werden. Fig. 17 ist ein Steuerungsbeziehungsdiagramm der Mantissenkorrektur-Steuerschaltung 224, die in Fig. 14 gezeigt ist, in der dann, wenn die Rundungsgenauigkeit die einfache Genauigkeit ist, wie in Fig. 17(a) gezeigt, die Notwendigkeit der Bitinversion der Mantisse und die Notwendigkeit der Neuaddition des Rundungsadditionswertes ermittelt werden anhand der Bits vom 23. Bit bis zum 25. Bit (Z&sub2;&sub2;, Z&sub2;&sub3;, Z&sub2;&sub4;) ausgehend vom höchstwertigen Bit des Ausgangs des Mantissenaddierers 220, des Sticky Bits (S), das die Sticky-Bit- Erzeugungsschaltung 222 ausgibt, und des Überlaufs (Cout) im Mantissenaddierer 220. Wenn ferner die Rundungsgenauigkeit die doppelte Genauigkeit ist, wie in Fig. 17(b) gezeigt, werden die Notwendigkeit für die Bitinversion der Mantisse und die Notwendigkeit der Neuaddition des Rundungsadditionswertes ermittelt anhand der Bits vom dritten Bit bis zum niedrigstwertigen Bit (Z&sub5;&sub1;, Z&sub5;&sub2;, Z&sub5;&sub3;) ausgehend vom niedrigstwertigen Bit des Ausgangs des Mantissenaddierers 220, des Sticky Bits (S), das von der Sticky-Bit-Erzeugungsschaltung 222 ausgegeben wird, und des Überlaufs (Cout) im Mantissenaddierer 220.
  • Die Multiplikationsvorrichtung für Gleitkommadaten in der vorliegenden Ausführungsform, die wie oben beschrieben zusammengesetzt ist, wird im folgenden in ihrer Operation beschrieben. Hierbei sind die Rundungsmodi anhand des Modus des Rundens zur nächstliegenden glatten Zahl vorgesehen.
  • Im folgenden wird ein Fall, in welchem der Multiplikand und der Multiplikator vom Format mit einfacher Genauigkeit sind und das Produkt auf einfache Genauigkeit gerundet wird, mit einem Operationsflußdiagramm der Multiplikation mit einfacher Genauigkeit, wie in Fig. 18 gezeigt, und mit der Ausführungsformdiagramm der Addition und der Verschiebung der Multiplikation mit einfacher Genauigkeit, das in Fig. 19 gezeigt ist, beschrieben. Fig. 18 zeigt Operationen für jeden der Verarbeitungsschritte des Exponentenaddierers 204, der Ausnahmeerfassungsschaltung 209, der Multiplikationseinheit 214, des Mantissenaddierers 220, der Schiebevorrichtung 221, der Mantissenkorrekturschaltung 223. Fig. 19 zeigt die Ausführungsform der genauen Operation im Mantissenaddierer 220 und der Schiebevorrichtung 221 unter diesen.
  • (1) Vor dem Verarbeitungsschrittbeginn
  • Der Multiplikand und der Multiplizierer mit einfacher Genauigkeit werden auf doppelte Genauigkeit erweitert und jeweils im Multiplikandenregister 201 und im Multiplikatorregister 202 aufgenommen. Zu diesem Zeitpunkt werden sowohl der Multiplikandenregister-Exponentenabschnitt 201e als auch der Multiplikatorregister-Exponentenabschnitt 202e in den Vorgabeausd ruck der obigen Genauigkeit umgesetzt (realer Exponentenwert = Wert des Exponentenabschnitts - 1023(10)), wobei 0 in die unteren 29 Bits des Miiltiplikandenregister-Mantissenabschnitts 201f und des Multiplikatorregister-Mantissenabschnitts 202f gefüllt wird.
  • (2) Schritt 1
  • Der Exponent des im, Multiplikandenregister-Exponentenabschnitt 201e gehaltenen Multiplikanden wird über die Auswahlvorrichtung 205 in den A- Eingang des Exponentenaddierers 204 eingegeben, während der Exponent des im Multiplikatorregister-Exponentenabschnitts 202e gehaltenen Multiplikators über die Auswahlvorrichtung 206 in den B-Eingang des Expanentenaddierers 204 eingegeben wird, um die Addition im Exponentenaddierer 204 mit dem Übertragseingang Cin gleich 1 zu bewerkstelligen. Das höchstwertige Bit des Additionsergebnisses wird von der Höchstwertig-Bit-Korrekturschaltung 207 invertiert. Das Additionsergebnis mit dem invertierten höchstwertigen Bit wird im Zwischenspeicher 210 aufgenommen. Die Tatsache, dass der im Zwischenspeicher 210 zu haltende Wert der Exponent des korrekt vorgegebenen Produkts ist, kann wie folgt bewiesen werden.
  • (Beweisbeginn)
  • In der ANSUIEEE-Norm für binäre Gleitkommaarithmetik P754 wird der Vorgabewert der doppelten Genauigkeit wie folgt angenommen (X ist die Inversion von X).
  • Vorgabe = 011 1111 1111(2)
  • dies kann firansformiert werden zu:
  • em = (e1-Vorgabe) + (e2-Vorgabe) + Vorgabe = e1 + e2·Vorgabe = e1 + e2 + Vorgabe + 1 = (e1 + e2 + 1) + &supmin;Vorgabe = (e1 + e2 + 1) + 100 0000 0000(2)
  • wobei
  • e1: vorgegebener Exponentenabschnitt des Multiplikanden (11 Bits)
  • e2: vorgegebener Exponentenabschnitt des Multiplikators (11 Bits)
  • em: vorgegebener Exponentenabschnitt des Produkts (11 Bits)
  • Die Addition von 1 des dritten Ausdrucks kann verwirklicht werden mit dem Übertragseingang Cin gleich 1. Die Addition von 100 0000 0000(2) des vierten Ausdrucks kann verwirklicht werden durch Inversion des höchstwertigen Bits.
  • (Beweisende)
  • Der Zwischenspeicher 208 hält den Überlauf im Exponentenaddierer 204 zu diesem Zeitpunkt. Die Multiplikanden-Oben/Unten-Auswahlschaltung 212 liest die oberen 27 Bits des Multiplikandenregister-Mantissenabschnitts 201f (den in Fig. 19(a) gezeigten Wert A mit allen effektiven Bits des Mantissenabschnitt des Multiplikanden darin enthalten und den unteren drei Bits gleich 0) und gibt diese aus. Die Multiplikator-Oben/Unten-Auswahlschaltung 213 liest die oberen 27 Bits des Multiplikatorregister-Mantissenabschnitts 202f (den in Fig. 19(a) gezeigten Wert B mit allen effektiven Bits des Mantissenabschnitts des Multiplikators darin enthalten und den unteren drei Bits gleich 0) und gibt diese aus. Die Multiplikationseinheit 214 führt die Multiplikation entsprechend den Eingaben von der Multiplikanden-Oben/Unten-Auswahlschaltung 212 und der Multiplikator-Oben/Unten-Auswahlschaltung 213 aus, um somit jeweils den Summenausgang und den Übertragsausgang im Zwischenspeicher 215 und im Zwischenspeicher 216 aufzunehmen. Gleichzeitig werden in der Vorzeichenerzeugungsschaltung 202 die Vorzeichen des Multiplikanden und des Multiplikators vom Multiplikandenregister-Vorzeichenabschnitt 201s und vom Multiplikatorregister-Vorzeichenabschnitt 202s gelesen, um von beiden die Exklusiv-Oder-Verknüpfung zu nehmen und das Vorzeichen des Produkts zu erzeugen, um dieses im Produktregister-Vorzeichenabschnitt 226s aufzunehmen.
  • (3) Schritt 2
  • Der Mantissenaddierer 220 addiert den Summenausgang (die unteren sieben Bits sind 0) der Multiplikationseinheit 214, der im Zwischenspeicher 215 enthalten ist, den Übertragsausgang (die unteren sieben Bits sind 0) der Multiplikationseinheit 214, der im Zwischenspeicher 216 enthalten ist, über die Auswahlvorrichtung 2113 und den Rundungsadditionswert A, den die Rundungsadditionswerterzeugungsschaltung 217 erzeugt, über die 1 Aswahlvorrichtung 219. Durch die Anwesenheit, Abwesenheit des Einheitsüberlaufs (Z&sub1;) vom Mantissenaddierer 220 zu diesem Zeitpunkt wird einer der folgenden Vorgänge ausgeführt.
  • - Wenn der Überlauf vom Mantissenaddierer 220 existiert, d.h. wenn das Produkt des Mantissenabschnitts gleich 2 oder größer ist
  • Die Schiebevorrichtung 221 verschiebt den Ausgang vom Mantissenaddierer 220 zur Normierung in Richtung des niedrigstwertigen Bits um ein Bit (zu diesem Zeitpunkt wird eine 1 in das höchstwertige Bit gefüllt). Der Exponentenaddierer 204 addiert den Wert des Zwischenspeichers 210, die von der Normiert-Korrekturwert-Erzeugungsschaltung 211 ausgegebene Konstante 1 über die Auswahlvorrichtung 205 und die Auswahlvorrichtung 206, um somit das Ergebnis im Produktregister-Exponentenabschnitt 226e aufzunehmen.
  • - Wenn der Überlauf vom Mantissenaddierer 220 nicht existiert, d.h. wenn das Produkt des Mantissenabschnitts gleich 1 oder größer und kleiner als 2 ist
  • Die Schiebevorrichtung 221 gibt den Ausgang des Mantissenaddierers 220 unverändert ohne Verschiebung aus, da die Normierung nicht erforderlich ist. Der Exponentenaddierer 204 gibt den Wert des Zwischenspeichers 210 unverändert über die Auswahlvorrichtung 205 und die Auswahlvorrichtung 206 aus, um diesen im Produktregister-Exponentenabschnitt 226e aufzunehmen.
  • Der Wert des Zwischenspeichers 208 kann sich nicht verändern. Die Ausnahmeerfassungsschaltung 209 erfaßt entsprechend der folgenden Logik den Überlauf (OVF) und den Unterlauf (UNF) des Produkts mit einfacher Genauigkeit mittels des Ausgangs (der mit E angenommen wird) des Exponentenaddierers 204.
  • wenn E &le; 128(10) dann OVF = 1 sonst OVF = 0
  • wenn E &le; 996(10) dann UNF = 1 sonst UNF = 0
  • Die Sticky-Bit-Erzeugungsschaltung 222 nimmt die logische Oder-Verknüpfung der 22 Bits vom 26. Bit zum 47. Bit (Z&sub2;&sub5;, ..., Z&sub4;&sub6;) ausgehend vom höchstwertigen Bit des Ausgangs des Mantissenaddierers 220, um somit den Sticky-Bit-Ausgang (S) gleich 1 zu machen, wenn ein Bit mit dem Wert nicht öfter als einmal in den 22 Bits existiert, und den Sticky-Bit-Ausgang (S) gleich 0 zu machen, wenn alle Bits der 22 Bits den Wert 0 aufweisen. Die Mantissenkorrektursteuerschaltung 224 steuert die Mantissenkorrekturschaltung 223 entsprechend den Bits vom 23. Bit bis zum 25. Bit (Z&sub2;&sub2;, Z&sub2;&sub3;, Z&sub2;&sub4;) ausgehend vom höchstwertigen Bit des Ausgangs des Mantissenaddierers 220 und dem Sticky Bit (S), das die Sticky-Bit- Erzeugungsschaltung 222 ausgibt, und dem Überlauf (Cout = Z&sub1;) im Mantissenaddierer. Die Mantissenkorrekturschaltung 223 invertiert das 24. Bit (R23) ausgehend vom höchstwertigen Bit des Ausgangs der Schiebevorrichtung 221, wenn die Spalte des Korrektursignals der Fig. 17(a) gleich 1 ist. Wenn die Spalte gleich 0 ist, bewirkt die Schaltung die Ausgabe ohne Invertierung. Wenn gleichzeitig die Spalte des Rundungsadditionssignals der Fig. 17(a) gleich 0 ist, wird der Ausgang im Produktregister- Mantissenabschnitt 226f aufgenommen, wobei die unteren 29 Bits der 53 Bits des Ausgangs der Mantissenkorrekturschaltung 23 mit Ausnahme des höchstwertigen Bits in 0 maskiert werden, um somit die Verarbeitung abzuschließen. Wenn die Spalte des Rundungsadditionssignals gleich 1 ist, wird der Ausgang der Mantissenkorrekturschaltung 223 im Zwischenspeicher 225 aufgenommen und anschließend der folgende Einfügungsschritt ausgeführt.
  • (3) Einfügungsschritt (nur wenn die Spalte des Rundungsadditionssignals gleich 1 ist)
  • Der Mantissenaddierer 220 addiert den Rundungsadditionswert A, den die Rundungsadditionswerterzeugungsschaltung 217 erzeugt, über die Auswahlvorrichtung 218 und den Wert, den der Zwischenspeicher 225 hält, über die Auswahlvorrichtung 219. Zu diesem Zeitpunkt wird der Überlauf von Mantissenaddierer 220 nicht hervorgerufen. Die Schiebevorrichtung 221 gibt den Ausgang des Mantissenaddierers 220 unverändert ohne Verschiebung aus, wobei die Mantissenkorrekturschaltung 223 ebenfalls den Ausgang der Schiebevorrichtung 221 unverändert ohne Invertierung ausgibt. Anschließend wird der Ausgang im Produktregister-Mantissenabschnitt 226f aufgenommen, wobei die unteren 29 Bits der 53 Bits des Ausgangs der Mantissenkorrekturschaltung 223 mit Ausnahme des höchstwertigen Bits in 0 maskiert werden, um somit die Verarbeitung abzuschließen.
  • Im folgenden wird ein Fall, in welchem der Multiplikand und der Multiplikator vom Format mit doppelter Genauigkeit sind und das Produkt mit doppelter Genauigkeit gerundet wird, anhand eines Operationsflußdiagsamms der Multiplikation mit doppelter Genauigkeit, wie in Fig. 20 gezeigt, und des Ausführungsformdiagramms der Addition und Verschiebung bei der Multiplikation mit doppelter Genauigkeit, wie in Fig. 21 gezeigt, beschrieben. Fig. 20 zeigt die Operationen für jeden der Verarbeitungsschritte des Exponentenaddierers 204, der Ausnahmeerfassungsschaltung 209, der Multiplikationseinheit 214, des Mantissenaddierers 220, der Schiebevorrichtung 221, der Mantissenkorrekturschaltung 223. Fig. 21 zeigt die Ausführungsform der genauen Operation im Mantissenaddierer 220 und der Schiebevorrichtung 221 hiervon.
  • (1) Vor dem Verarbeitungsschrittbeginn
  • Der Multiplikand und der Multiplikator mit doppelter Genauigkeit werden jeweils im Multiplikandenregister 201 und im Multiplikatorregister 202 aufgenommen. Zu diesem Zeitpunkt werden sowohl der Multiplikandenregister- Exponentenabschnitt 201e als auch der Multiplikatorregister-Exponentenabschnitt 202e in den Vorgabeausdruck (realer Exponentenwert = Wert des Exponentenabschnitts - 1023(10)) mit doppelter Genauigkeit umgesetzt.
  • (2) Schritt 1
  • Der Exponent des Multiplikanden, der im Multiplikandenregister-Exponentenabschnitt 201e enthalten ist, wird mittels der Auswahlvorrichtung 205 in den A- Eingang des Exponentenaddierers 204 eingegeben, während der Exponent des Multiplikators, der im Multiplikatorregister-Exponentenabschnitt 202e enthalten ist, mittels der Auswahlvorrichtung 206 in den B-Eingang des Exponentenaddierers 204 eingegeben wird, um somit die Addition im Exponentenaddierer 204 zu bewerkstelligen, wobei der Übertragseingang Cin gleich 1 vorgegeben ist. Das höchstwertige Bit des Additionsergebnisses wird von der Höchstwertig-Bit-Korrekturschaltung 207 invertiert. Das Additionsergebnis mit dem invertierten höchstwertigen Bit wird im Zwischenspeicher 210 aufgenommen. Die Tatsache, dass der im Zwischenspeicher 210 zu haltende Wert der Exponent des Produkts ist, das korrekt vorgegeben ist, ist in der Beschreibung der Multiplikation mit einfacher Genauigkeit bewiesen. Der Zwischenspeicher 208 enthält den Überlauf im Exponentenaddierer 204 zu diesem Zeitpunkt. Die Multiplikanden-Oben/Unten-Auswahlschaltung 212 liest die unteren 27 Bits des Multiplikandenregister-Mantissenabschnitts 201f und gibt diese aus (den in Fig. 21 (a) gezeigten Wert AL, wobei das höchstwertige Bit gleich 0 ist). Die Multiplikator-Oben/Unten-Auswahlschaltung 213 liest die unteren 27 Bits des Multiplikatorregister-Mantissenabschnitts 202f aus und gibt diese aus (den in Fig. 21 (a) gezeigten Wert BL, wobei das höchstwertige Bit gleich 0 ist). Die Multiplikationseinheit 214 führt die Multiplikation gemäß den Eingaben von der Multiplikanden-Oben/Unten-Auswahlschaltung 212 und der Multiplikator-Oben/Unten-Auswahlschaltung 213 aus, um somit jeweils den Summenausgang und den Übertragsausgang im Zwischenspeicher 215 und im Zwischenspeicher 216 aufzunehmen. Gleichzeitig werden in der Vorzeichenerzeugungsschaltung 203 die Vorzeichen des Multiplikanden und des Multiplikators aus dem Multiplikandenregister-Vorzeichenabschnitt 201s und dem Multiplikatorredister-Vorzeichenabschnitt 202s gelesen, um Somit von beiden eine Exklusiv-Oder-Verknüpfung zu nehmen und das Vorzeichen des Produkts zu erzeugen, um es im Produktregister-Vorzeichenabschnitt 226s aufzunehmen.
  • (3) Schritt 2
  • Der Mantissenaddierer 220 addiert den Summenausgang (obere zwei Bits und niedrigstwertiges Bit sind 0) der Multiplikationseinheit 214, der im Zwischenspeicher 215 enthalten ist, den Übertragsausgang (obere zwei Bits und niedrigstwertiges Bit sind 0) der Multiplikationseinheit 214, der im Zwischenspeicher 216 enthalten ist, über die Auswahlvorrichtung 218, und den Rundungsadditionswert B, den die Rundungsadditionswerterzeugungsschaltung 217 erzeugt, über die Auswahlvorrichtung 219. Der Überlauf vom Mantissenaddierer 220 wird zu diesem Zeitpunkt nicht hervorgerufen. Die Schiebevorrichtung 221 verschiebt den Ausgang des Mantissenaddierers 220 (W&sub0;, ..., W&sub5;&sub2;, 0) um 26 Bits in Richtung des niedrigstwertigen Bits (zu diesem Zeitpunkt wird oben 0 nachgefüllt), so dass das Ergebnis (0, ..., 0 W&sub0;, W&sub2;&sub7;) im Zwischenspeicher 225 aufgenommen wird. Der im Zwischenspeicher 225 aufgenommene Wert ist das niedrigstwertige Partialprodukt. Gleichzeitig liest die Multiplikanden-Oben/Unten-Auswahlschaltung 212 die unteren 27 Bits des Multiplikandenregister-Mantissenabschnitt 201f (den in Fig. 21 (a) gezeigten Wert AL, wobei das höchstwertige Bit gleich 0 ist) und gibt diese aus, während die Multiplikator-Oben/Unten-Auswahlschaltung 213 die oberen 27 Bits des Multiplikatorregister-Mantissenabschnitts 202f (den in Fig. 21 (a) gezeigten Wert BU) liest und ausgibt. Die Multiplikationseinheit 214 führt die Multiplikation entsprechend den Eingaben von der Multiplikanden- Oben/Unten-Auswahlschaltung 212 und der Multiplikator-Oben/Unten- Auswahlschaltung 213 aus, um somit jeweils den Summenausgang und den Übertragsausgang im Zwischenspeicher 215 und im Zwischenspeicher 216 aufzunehmen.
  • (4) Schritt 3
  • Der Mantissenaddierer 220 addiert den Summenausgang (das höchstwertige Bit und das niedrigstwertige Bit sind 0) der Multiplikationseinheit 214, der im Zwischenspeicher 215 enthalten ist, den Übertragsausgang (das höchstwertige Bit und das niedrigsiwertige Bit sind 0) der Multiplikationseinheit 214, der im Zwischenspeicher 216 enthalten ist, über die Auswahlvorrichtung 218 und den Ausgang der Schiebevorrichtung 221 (die oberen 26 Bits sind 0), der im Zwischenspeicher 225 enthalten ist, über die Auswahlvorrichtung 219. Der Überlauf vom Mantissenaddierer 220 wird zu diesem Zeitpunkt nicht hervorgerufen. Die Schiebevorrichtung 221 gibt den Ausgang des Mantissenaddierers 220 (X&sub0;, ..., X&sub5;&sub3;) unverändert ohne Verschiebung aus, um ihn im Zwischenspeicher 225 aufzunehmen. Der im Zwischenspeicher 225 aufgenommene Wert wird soweit akkumuliert wie das erste Zwischenpartialprodukt. Gleichzeitig liest die Multiplikanden-Oben/Unten-Auswahlschaltung 212 die oberen 27 Bits des Multiplikandenregister-Mantissenabschnitts 2011 (den in Fig. 21 (a) gezeigten Wert AU) und gibt diese aus, während die Multiplikator- Oben/Unten-Auswahlschaltung 213 die unteren 27 Bits des Multiplikatorregister-Mantissenabschnitts 202f (den in Fig. 21 (a) gezeigten Wert BL, wobei das höchstwertige Bit 0 ist) Liest und ausgibt. Die Multiplikationseinheit 214 führt die Multiplikation gemäß den Eingaben von der Multiplikanden- Oben/Unten-Auswahlschaltung 212 und der Multiplikator-Oben/Unten- Auswahlschaltung 213 aus, um somit jeweils den Summenausgang und den Übertragsausgang im Zwischenspeicher 215 und im Zwischenspeicher 216 aufzunehmen.
  • (5) Schritt 4
  • Der Mantissenaddierer 220 addiert den Summenausgang (das höchstwertige Bit und das niedrigstwertige Bit sind 0) der Multiplikationseinheit 214, der im Zwischenspeicher 215 enthalten ist, den Übertragsausgang (das höchstwertige Bit und das niedrigstwertige Bit sind 0) der Multiplikationseinheit 214, der im Zwischenspeicher 216 enthalten ist, über die Auswahlvorrichtung 218 und den Ausgang der Schiebevorrichtung 221, der im Zwischenspeicher 225 enthalten ist, über die Auswahlvorrichtung 219. Die Schiebevorrichtung 221 verschiebt die Daten mit 55 Bits (N&submin;&sub1;, Y&sub0;, ... Y&sub5;&sub3;), die den Ausgang mit 54 Bits (Y&sub0;, ... Y&sub5;&sub3;) umfassen, wobei der Überlauf mit einem Bit (Y&submin;&sub1;) vom Mantissenaddierer 220 auf die Seite des höchstwertigen Bits hinzugefügt ist, um 26 Bits in Richtung des niedrigstwertigen Bits (zu diesem Zeitpunkt ist oben eine 0 verdeckt). Der Ausgang des Mantissenaddierers 220 umfaßt das Ergebnis (0, ..., 0, Y&submin;&sub1;, Y&sub0;, ..., Y&sub2;&sub7;) und wird im Zwischenspeicher 225 aufgenommen. Die im Zwischenspeicher 225 aufgenommenen Wert werden so weit akkumuliert, wie das zweite Zwischenpartialprodukt. Gleichzeitig liest die Multiplikanden-Oben/Unten-Auswahlschaltung 212 die oberen 27 Bits des Multiplikandenregister-Mantissenabschnitts 201f (den in Fig. 21 (a) gezeigten Wert AU) und gibt diese aus, während die Multiplikator-Oben/Unten- Auswahlschaltung 213 die oberen 27 Bits des Multiplikatorregister- Mantissenabschnitts 202f (den in Fig. 21 (a) gezeigten Wert BU) liest und ausgibt. Die Multiplikationseinheit 214 führt die Multiplikation entsprechend den Eingaben von der Multiplikanden-Oben/Unten-Auswahlschaltung 212 und der Multiplikator-Oben/Unten-Auswahlschaltung 213 aus, um somit jeweils den Summenausgang und den Übertragsausgang im Zwischenspeicher 215 und im Zwischenspeicher 216 aufzunehmen.
  • (6) Schritt S
  • Der Mantissenaddierer 220 addiert den Summenausgang (das niedrigstwertige Bit ist 0), der Multiplikationseinheit 214, der im Zwischenspeicher 215 enthalten ist, den Übertragsausgang (das niedrigstwertige Bit ist 0) der Multiplikationseinheit 214, der im Zwischenspeicher 216 enthalten ist über die Auswahlvorrichtung 218, den Ausgang der Schiebevorrichtung 221 (die oberen 25 Bits sind 0), der im Zwischenspeicher 225 enthalten ist, über die Auswahlvorrichtung 219. Durch das Vorhandensein, die Abwesenheit des Überlaufs (Z&sub1;) vom Mantissenaddierer 220 zu diesem Zeitpunkt wird einer der folgenden Vorgänge ausgeführt.
  • - Wenn der Überlauf vom Mantissenaddierer 220 vorhanden ist, d. h. wenn das Produkt des Mantissenabschnitts gleich 2 oder größer ist
  • Die Schiebevorrichtung 221 verschiebt den Ausgang des Mantissenaddierers 220 für die Normierung um ein Bit (zu diesem Zeitpunkt wird eine 1 in das höchstwertige Bit gefüllt) in Richtung des niedrigstwertigen Bits. Der Exponentenaddierer 204 addiert den Wert des Zwischenspeichers 210, die Konstante 1, die von der Normiert-Korrekturwert-Erzeugungsschalung 211 ausgegeben wird, über die Auswahlvorrichtung 205 und die Auswahlvorrichtung 206, um somit das Ergebnis im Produktregister-Exponenter abschnitt 226e aufzunehmen.
  • - Wenn der Überlauf vom Mantissenaddierer 220 nicht vorhanden ist, d.h. wenn das Produkt des Mantissenabschnitts gleich 1 oder größer und kleiner als 2 ist
  • Die Schiebevorrichtung 221 gibt den Ausgang vom Mantissenaddierer 220 unverändert ohne Verschiebung aus, da die Normierung nicht erforderlich ist. Der Exponentenaddierer 204 gibt den Wert des Zwischenspeichers 210 unverändert über die Auswahlvorrichtung 205 und die Auswahlvorrichtung 206 aus, um ihn im Produktregister-Exponentenabschnitt 226e aufzunehmen. Der Wert des Zwischenspeichers 208 kann sich nicht ändern. Die Ausnahmeerfassungsschaltung 209 erfaßt anhand der folgenden logischen Formel den Überlauf (OVF) und den Unterlauf (UNF) des Produkts mit doppelter Genauigkeit mittels des Ausgangs (der angenommen wird als E&sub0;, ..., E&sub1;&sub0;) des Exponentenaddierers 204 und des Wertes des Zwischenspeichers 8 (der mit Ce angenommen wird).
  • OVF = Ce·&supmin;E&sub0; + E&sub0;·E&sub1; ·...·E&sub1;&sub0;
  • UNF = &supmin;Ce·E&sub0; + &supmin;(E&sub0; + E&sub1; + ... + E&sub1;&sub0;)
  • wobei &supmin;X die Inversion von X zeigt.
  • Die Sticky-Bit-Erzeugungsschaltung 222 nimmt die logische Oder-Verknüpfung der 52 Bits, wobei der Verschiebungsüberlauf (W&sub2;&sub8;, ... W&sub5;&sub2;, 0) vom niedrigstwertigen Bit der 26 Bits in der Schiebevorrichtung 221 im Schritt 2 und der Verschiebungsüberlauf (Y&sub2;&sub8;, ..., Y&sub5;&sub3;) vom niedrigstwertigen Bit der 26 Bits in der Schiebevorrichtung 221 im Schritt 4 kombiniert werden, um somit den Sticky-Bit-Ausgang (s) gleich 1 zu machen, wenn ein Bit mit dem Wert 1 nicht öfter als ein Mal in den 52 Bits vorhanden ist, und um den Sticky-Bit Ausgang (s) gleich 0 zu machen, wenn alle Bits der 52 Bits den Wert 0 aufweisen. Die Mantissenkorrektur-Steuerschaltung 224 steuert die Mantissenkorrekturschaltung 223 entsprechend den Bits vom dritten Bits bis zum niedrigstwertigen Bit (Z&sub5;&sub1;, Z&sub5;&sub2;, Z&sub5;&sub3;) ausgehend vom niedrigstwertigen Bit des Ausgangs des Mantissenaddierers 220, des Sticky Bits (s), das von der Sticky-Bit-Erzeugungsschaltung 222 ausgegeben wird, und des Überlaufs (Cout = Z&submin;&sub1;) im Mantissenaddierer 220. Die Mantissenkorrekturschaltung 223 invertiert das zweite Bit (R&sub5;&sub2;) ausgehend vom niedrigstwertigen Bit des Ausgangs der Schiebevorrichtung 221, wenn die Spalte des Korrektursignals der Fig. 17 (b) gleich 1 ist. Wenn die Spalte gleich 0 ist, bewirkt die Schaltung die Ausgabe desselben ohne Invertierung. Wenn gleichzeitig die Spalte des Rundungsadditionssignals der Fig. 17 (b) gleich 0 ist, werden die 53 Bits des Ausgangs der Mantissenkorrekturschaltung 223 mit Ausnahme des niedrigstwertigen Bits im Produktregister-Mantissenabschnitt 226f aufgenommen, um die Verarbeitung abzuschließen. Wenn die Spalte des Rundungsadditionssignals gleich 1 ist, wird der Ausgang der Mantissenkorrekturschaltung 223 im Zwischenspeicher 225 aufgenommen, woraufhin der folgende Einfügungsschritt ausgeführt wird.
  • (6) Einfügungsschritt (nur wenn die Spalte des Rundungsadditionssignals gleich 1 ist)
  • Der Mantissenaddierer 220 addiert den Rundungsadditionswert C, den die Rundungsadditionswerterzeugungsschaltung 217 erzeugt, über die Auswahlvorrichtung 218 und den Wert, den der Zwischenspeicher 225 hält, aber die Auswahlvorrichtung 219. Zu diesem Zeitpunkt wird der Überlauf vom Mantissenaddierer 220 nicht hervorgerufen. Die Schiebevorrichtung 221 gibt den Ausgang des Mantissenaddierers 220 ohne Verschiebung unverändert aus, wobei die Mantissenkorrekturschaltung 223 ebenfalls den Ausgang der Schiebevorrichtung 22 ohne Invertierung des Bits unverändert ausgibt. Anschließend werden die 53 Bits des Ausgangs der Mantissenkorrekturschaltung 223 mit Ausnahme des niedrigstwertigen Bits im Produktregister- Mantissenabschnitt 226f aufgenommen, um die Verarbeitung abzuschließen.
  • Gemäß der vorliegenden Ausführungsform, wie oben beschrieben worden ist, wird die Subtraktion des Vorgabewertes verwirklicht durch die Addition mit dem Übertragseingang Cin gleich 1 im Exponentenaddierer 204, wobei die Inversion des höchstwertigen Bits mittels der Höchstwertig-Bit-Korrekturschaltung 7 und der Vorgabeexponentenabschnitt des Produkts des Gleitkommaformats, das wie im Multiplikanden und im Multiplikator angewendet wird, mit einem einzelnen Verarbeitungsschritt erhalten werden können, so dass ein Schritt der Korrektur der Vorgabe des Exponentenabschnitts nicht erforderlich ist. Ferner kann die Höchstwertig-Bit-Korrekturschaltung 207 einfach mit dem Exklusiv-Oder-Gatter mit einem Bit verwirklicht werden, wobei die andere spezielle Hardware für die Vorgabekorrektur nicht erforderlich ist, wodurch die Hardware reduziert wird.
  • Gemäß der vorliegenden Ausführungsform werden im Mantissenabschnitt die Addition der Rundungsadditionswerte oder die Addition zum Akkumulieren der Partialprodukte und die Addition des Summenausgangs und des Übertragsausgangs von der Multiplikationseinheit 214 vom Mantissenaddierer 220 gleichzeitig bewerkstelligt. Nach der Normierung des Ergebnisses mittels der Schiebevorrichtung 221 kann die Verarbeitung in den meisten Fällen abgeschlossen werden. Selbst wenn die Korrektur in der Mantissenkorrekturschaltung 223 erforderlich ist, kann die Verarbeitung ohne Erhöhung der Verarbeitungsschrittanzahl abgeschlossen werden. Nur wenn die Addition der Rundungsadditionswerte durch den Mantissenaddierer 220 erneut erforderlich wird, kann die Verarbeitung durch Einfügen eines Schritts abgeschlossen werden. Die Wahrscheinlichkeit der Notwendigkeit des Einfügens des einen Schritts ist sehr klein und beträgt nur 2/32 (wenn angenommen wird, dass das Bitmuster der Mantisse gleichmäßig verteilt ist). Als Ergebnis wird in den meisten Fällen (nachweisbar 30/32) die Verarbeitungsschrittanzahl, die bei der Multiplikation mit einfacher Genauigkeit erforderlich ist, auf 2 reduziert und die Verarbeitungsschrittanzahl, die bei der Multiplikation mit doppelter Genauigkeit erforderlich ist, auf 5 reduziert. Da die Addition der Summe und des Übertrags, die Addition des Rundungsadditionswertes oder die Addition zum Akkumulieren der Partialprodukte von einem einzigen Mantissenaddierer 220 bewerkstelligt werden, ist die benötigte Hardware im Vergleich zur herkömmliche Multiplikationsvorrichtung für Gleitkommadaten kleiner.
  • Obwohl die vorliegende Ausführungsform das Beispiel der Verwirklichung des Modus der Rundung auf die nächstliegende glatte Zahl zeigt, können der gerichtete Rundung-nach-Plus-Modus, der gerichtete Rundung-nach-Minus- Modus und der gerichtete Rundung-nach-Null-Modus ebenfalls leicht behandelt werden durch Ändern der Steuerung der Rundungsadditionswerterzeugungsschaltung 217 und der Mantissenkorrektursteuerschaltung 224. Die Operation beim Runden in diesen Modi ist ähnlich derjenigen der ersten Ausführungsform, wobei die Inversion des Bits des Mantissenberechnungsergebnisses und die Steuerung des Einfügens des Verarbeitungsschritts gemäß den Steuerungsbeziehungsdiagrammen der Fig. 4, 5 und 6 bewerkstelligt werden.
  • Obwohl in der vorliegenden Ausführungsform ein Fall, in welchem der Multiplikand und der Multiplikator beide vom Format mit einfacher Genauigkeit sind und das Produkt auf einfache Genauigkeit gerundet wird, und ein Fall, in welchem der Multiplikand und der Multiplikator beide vom Format mit doppelter Genauigkeit sind und das Produkt auf doppelte Genauigkeit gerundet wird, beschrieben worden sind, kann das Produkt auf eine gegebene Genauigkeit gerundet werden durch die entsprechende Erzeugungslogik des Sticky Bits in der Sticky-Bit-Erzeugungsschaltung 222 in allen effektiven Bits unterhalb des Rundungsbits, sogar in beliebiger Kombination der Genauigkeit des Multiplikanden und des Multiplikators oder einer beliebigen Rundungsgenauigkeit des Produkts.
  • Obwohl in der vorliegenden Ausführungsform in Abhängigkeit von der einfachen Genauigkeit und der doppelten Genauigkeit bei der Rundungsgenauigkeit die Mantissenkorrektursteuerschaltung 224 die Bits vom 23. Bit bis zum 25. Bit ausgehend vom höchstwertigen Bit des Ausgangs des Mantissenaddierers 220 oder die Bits vom dritten Bit bis zum niedrigstwertigen Bit ausgehend vom niedrigstwertigen Bit und der Überlauf mit einem Bit ausgehend vom höchstwertigen Bit zum Additionszeitpunkt im Mantissenaddierer 220 und das Sticky Bit mit einem Bit, das von der Sticky-Bit- Erzeugungsschaltung 222 ausgegeben wird, untersucht und die Mantissenkorrekturschaltung 223 das 24. Bit oder das 53. Bit ausgehend vom höchstwertigen Bit des Ausgangs der Schiebevorrichtung 221 untersucht, können das untersuchte Bit und das invertierte Bit in Richtung des höchstwertigen Bits erhöht werden. Die Wahrscheinlichkeit der Notwendigkeit des Einfügens eines Schritts wird für jede Erhöhung des untersuchter Bits und des invertierten Bits um ein Bit halbiert, wodurch die Berechnungsgeschwindigkeit verbessert wird.
  • Fig. 22 zeigt ein Blockschaltbild der Divisionsvorrichtung für Gleitkommadaten in einer zweiten Ausführungsform der vorliegenden Erfindung. In Fig. 22 ist das Bezugszeichen 3011 ein Dividendenregister zum Halten des Dividenden, das aus einem Bit eines Vorzeichenabschnitts 301s einem Exponentenabschnitt 301e mit 11 Bits und 53 Bits eines Mantissenabschnitts 301f besteht. Das Bezugszeichen 302 ist ein Divisorregister zum Halten des Divisors, das aus einem Vorzeichenabschnitt 302s mit einem Bit, einem Exponentenabschnitt 302e mit 11 Bits und einem Mantissenabschnitt 302f mit 53 Bits besteht. Das höchstwertige Bit des Dividendenregister-Mantissenabschnitts 301f und des Divisormantissenabschnitts 302f sind sogenannte "verdeckte Bits", die jeweils die Gewichtung 2 aufweisen und zum Zeitpunkt der normierten Zahl gleich 1 sind, wobei sowohl das Dividendenregister 301 als auch das Divisorregister 302 mit Ausnahme dieses Bits konform sind zum Format mit doppelter Genauigkeit. Das Bezugszeichen 303 ist eine Vorzeichenerzeugungsschaltung zum Lesen der Vorzeichen des Dividenden und des Divisors aus dem Dividendenregister-Vorzeichenabschnitt 301s und dem Divisorregister-Vorzeichenabschnitt 302 s, um somit das Vorzeichen des Quotienten zu erzeugen; das Bezugszeichen 304 st ein Exponentensubstrahierer mit 11 Bits zum Lesen der Exponenten des Dividenden und des Divisors aus dem Dividendenregister-Exponantenabschnitt 301e und dem Divisorregister-Exponentenabschnitt 302e, um somit den Exponenten des Gluotienten zu berechnen, wobei die Addition des A- Eingangs, des B-Eingangs mit dem genommenen Einerkomplement und von Cin als Übertragseingang mit einem Bit bewerkstelligt wird. Das Bezugszeichen 305 und das Bezugszeichen 306 sind jeweils Auswahlvorrichtungen mit 11 Bits zum Auswählen der zwei Eingänge des Exponentensubtrahierers 304; das Bezugszeichen 307 ist eine Höchstwertig-Bit-Korrekturschaltung zum Invertieren des höchstwertigen Bits des Ausgangs des Exponentensubtrahierers 304; das Bezugszeichen 308 ist ein Zwischenspeicher mit einem Bit zum Halten des Überlaufs vom höchstwertigen Bit zum Additionszeitpunkt im Subtrahierer-Addierer 304; das Bezugszeichen 309 ist eine Ausnahmeerfassungsschaltung zum Erfassen des Überlaufs und des Unterlaufs des Quotienten bezüglich der Berechnungsgenauigkeit, die anhand des Werts des Ausgangs des Exponentensubtrahierers 304 und des Werts c es Zwischenspeichers 308 erfaßt werden; das Bezugszeichen 310 ist ein Zwischenspeicher mit 11 Bits zum Halten des Ausgangs des Exponentensubtrahierers 304, dessen höchstwertiges Bit von der Höchstwertig-Bit-Korrekturschaltung 307 invertiert worden ist, um diesen somit erneut über die Auswahlvorrichtung 305 in den Exponentensubtrahierer 304 einzugeben; das Bezugszeichen 311 ist eine Normiert-Korrekturwert-Erzeugungsschaltung zum Erzeugen der Konstanten zum Reduzieren des Exponenten um 1 durch die Normierung der 1-Bit = Verschiebung der Mantisse des Quotienten; das Bezugszeichen 312 ist eine Mantissenberechnungseinheit des Star des der Technik zum Lesen des Dividendenregister-Mantissenabschnitt 301f und des Divisorregister-Mantissenabschnitt 302f, um somit die Mantisse des Quotienten zu erhalten, und eines Signals, ob dieser eine Normierung erfordert; das Bezugszeichen 313 ist ein Quotientenregister zum Halten des Quotierten, das aus einem Vorzeichenabschnitt 313s mit einem Bit, einem Exponentenabschnitt 313e mit 11 Bits und einem Mantissenabschnitt 313f mit 53 Bits besteht. Das höchstwertige Bit des Quotientenregister-Mantissenabschnitts 313f ist ein sogenanntes "verdecktes Bit" mit der Gewichtung 2&sup0; und ist zum Zeitpunkt der normierten Zahl gleich 1, wobei das Quotientenregister 313 mit Ausnahme dieses Bits konform ist zum Format mit doppelter Genauigkeit.
  • Die Divisionsvorrichtung für Gleitkommadaten in der vorliegenden Ausführungsform, die wie oben beschrieben zusammengesetzt ist, wird im folgenden unter Verwendung des Operationsflußdiagramms der Division, das in Fig. 23 gezeigt ist, in ihrer Operation beschrieben. Fig. 23 zeigt die Operationen für alle Verarbeitungsschritte des Exponentensubtrahierers 304, der Ausnahmeerfassungsschaltung 309 und der Mantissenberechnungseinheit 312.
  • (1) Vor dem Verarbeitungsschrittbeginn
  • Wenn der Dividend und der Divisor vom Format mit einfacher Genauigkeit sind, werden sie auf das Format mit doppelter Genauigkeit erwe tert und jeweils im Dividendenregister 301 und im Divisorregister 302 aufgenommen. Wenn der Dividend und der Divisor das Format mit doppelter Genauigkeit aufweisen, werden sie unverändert im Dividendenregister 301 und im Divisorregister 302 aufgenommen. In jedem Fall werden der Divider denregister-Exponentenabschnitt 301e und der Divisorregister-Exponentenabschnitt 302e beide in den Vorgabeausdruck mit doppelter Genauigkeit uingesetzt (realer Exponentenwert = Wert des Exponentenabschnitts - 1023(10)).
  • (2) Schritt 1
  • Der Exponent des im Dividendenregister-Exponentenabschnitt 301e gehaltenen Dividenden wird in den A-Eingang des Exponentensubtrahierers 304 über die Auswahlvorrichtung 305 eingegeben, während der Exponent des im Divisorregister-Exponentenabschnitt 302e gehaltenen Divisors über die Auswahlvorrichtung 306 in den B-Eingang des Exponentensubtrahierars 304 eingegeben wird, um somit die Addition A + &supmin;B + Cin im Exponenterrsubtrahierer 304 mit Übertragseingang Cin gleich 0 auszuführen (&supmin;B ist das Einerkomplement von B. Bei Cin = 0 ist diese Addition äquivalent zu A - B -1). Das höchstwertige Bit des Additionsergebnisses wird von der Höchstwertig-Bit- Korrekturschaltung 307 invertiert. Das Additionsergebnis mit dem invertierten höchstwertigen Bit wird im Zwischenspeicher 310 aufgenommen. Die Tatsache, dass der im Zwischenspeicher 310 zu haltende Wert der Exponent des korrekt vorgegebenen Quotienten ist, kann wie folgt bewiesen werden. (Beweisbeginn)
  • In der ANSI/IEEE-Norm für binäre Gleitkommaarithmetik P754 wird der Vorgabewert der doppelten Genauigkeit wie folgt angenommen (&supmin;X ist die Inversion von X).
  • Vorgabe = 011 1111 1111(2)
  • dies kann transformiert werden zu:
  • ed = (e1-Vorgabe) - (e2-Vorgabe) + Vorgabe = e1 - e2 + Vorgabe = e1 + &supmin;e2 + 1 + Vorgabe = (e1 + &supmin;e2) + (Vorgabe + 1) = (e1 + &supmin;e2) + 100 0000 0000(2)
  • wobei
  • e1: vorgegebener Exponentenabschnitt des Dividenden (11 Bits)
  • e2: vorgegebener Exponentenabschnitt des Divisors (11 Bits)
  • ed: vorgegebener Exponentenabschnitt des Quotienten (11 Bits )
  • Die Addition von 100 0000 0000(2) des dritten Ausdrucks kann mit der Inversion des höchstwertigen Bits verwirklicht werden.
  • (Beweisende)
  • Der Zwischenspeicher 308 enthält den Überlauf im Exponentensubtrahierer 304 zu diesem Zeitpunkt. Die Mantissenberechnungseinheit 312 liest die Mantissen des Dividenden und des Divisor aus dem Dividendenregister- Mantissenabschnitt 301f und dem Divisorregister-Mantissenabschnitt 302f, um die Division zu starten. Gleichzeitig werden in der Vorzeichenerzeugungsschaltung 203 die Vorzeichen des Dividenden und des Divisors aus dem Dividendenregister-Vorzeichenabschnitt 301s und dem Divisorregister- Vorzeichenabschnitt 302s gelesen, um die Exklusiv-Oder-Verknüpfung der beiden zu nehmen und das Vorzeichen des Quotienten zu erzeugen, um es im Quotientenregister-Vorzeichenabschnitt 313s aufzunehmen.
  • (3) Schritt 2
  • Die Mantissenberechnungeinheit 312 erzeugt den Mantissenabschnitt des Quotienten und bewirkt: die Rundung. Wenn der Mantissenabschnitt des erzeugten Quotienten eine entnormierte Zahl ist, d.h. der Wert ist 0,5 oder größer und kleiner als 1, verschiebt die Mantissenberechnungseinheit 312 den erzeugten Mantissenabschnitt des Quotienten um ein Bit in Richtung des höchstwertigen Bits, um diesen zu normieren, wobei der Exponentensubtrahierer 304 die Konstante 1, die von der Normiert-Korrekturwert-Erzeugungsschaltung 311 ausgegeben wird, vom Wert des Zwischenspeichers 310 über die Auswahlvorrichtung 305 und die Auswahlvorrichtung 306 subtrahiert.
  • Wenn der Mantissenabschnitt des erzeugten Quotienten eine normierte Zahl ist, d.h. wenn der Wert gleich 1 oder größer und kleiner als 2 ist, gibt die Mantissenberechnungseinheit 312 den Mantissenabschnitt des erzeugten Quotienten unverändert aus, wobei ferner der Exponentensubtrahierer 304 ebenfalls den Wert des Zwischenspeichers 310 unverändert über die Auswahlvorrichtung 305 ausgibt. In jedem Fall nimmt die Mantissenberechnungseinheit 312 das Ergebnis mit den unteren 29 Bits der 53 Bits des Ergebnisses mit Ausnahme des niedrigstwertigen Bits, das in 0 maskiert ist, wenn die Rundungsgenauigkeit die einfache Genauigkeit ist, und das Ergebnis der 53 Bits mit Ausnahme des niedrigstwertigen Bits, wenn die Rundungsgenauigkeit die doppelte Genauigkeit ist, im Quotientenregister- Mantissenabschnitt 313f auf. Der Exponentensubtrahierer 304 nimmt das Ergebnis im Quotientenexponentenabschnitt 313e auf. Der Wert des Zwischenspeichers 308 kann sich nicht verändern. Die Ausnahmeerfassungsschaltung 309 erfaßt entsprechend der folgenden Logik den Überlauf (OVF) und den Unterlauf (UNF) des Quotienten anhand des Ausgangs (der mit E angenommen wird) des Exponentenaddierers 304, wenn die Rundungsgenauigkeit die einfache Genauigkeit ist.
  • wenn E &ge; 128(10) dann OVF = 1 sonst OVF = 0
  • wenn E &le; 996(10) dann UNF = 1 sonst UNF = 0
  • Wenn die Rundungsgenauigkeit die doppelte Genauigkeit ist, werden gemäß der folgenden logischen Formel der Überlauf (OVF) und der Unterlauf (UNF) des Quotienten anhand des Ausgangs (der angenommen wird mit E&sub0;, ..., E&sub1;&sub0;) des Exponentensubtrahierers 304 und des Wertes des Zwischenspeichers 308 (der mit Ce angenommen wird) erfaßt.
  • OVF = Ce·&supmin;E&sub0; + E&sub0;·E&sub1; ·...E&sub1;&sub0;
  • UNF = &supmin;Ce·E&sub0; + &supmin;(E&sub0; + E&sub1; + ... + E&sub1;&sub0;)
  • wobei &supmin;X die Inversion von X anzeigt.
  • Gemäß der vorliegenden Ausführungsform, wie oben beschrieben ist, wird die Addition des Vorgabewertes verwirklicht mit der Subtraktion von (Exponent des Dividenden) - (Exponent des Divisors) - 1 durch den Exponentensubtrahierer 304 mit dem Übertragseingang Cin gleich 0 und der Inversion des höchstwertigen Bits mit der Höchstwertig-Bit-Korrekturschaltung 307, wobei der Vorgabeexponentenabschnitt des Quotienten des Gleitkommaformats, der wie im Dividenden und im Divisor angewendet wird, mit einem einzigen Verarbeitungsschritt erhalten werden kann, so dass ein Schritt der Korrektur der Vorgabe des Exponentenabschnitts nicht erforderlich ist. Ferner kann die Höchstwertig-Bit-Korrekturschaltung 307 einfach durch das Exklusiv-Oder- Gatter mit einem Bit verwrklicht werden, wobei andere spezielle Hardware für die Vorgabekorrektur nicht erforderlich ist, wodurch die Hardware reduziert wird.
  • Wie oben beschrieben ist, kann gemäß der vorliegenden Erfindung die Verarbeitungsschrittanzahl, die zum Erhalten des Mantissenabschnitts der Summe, der Differenz und des Produkts der Gleitkommadaten, die mit dem spezifizierten Rundungsmodus und der Rundungsgenauigkeit gerundet werden, erforderlich ist, reduziert werden. Ferner kann im Vergleich zur herkömmlichen Berechnungsvorrichtung für Gleitkommadaten weniger Hardware verwendet werden, mit größeren Wirkungen in der praktischen Verwendung.
  • Gemäß der vorliegenden Erfindung kann die Verarbeitungsschrittanzahl, die zum Erhalten des Exponentenabschnitts des Produkts und des Quotienten der vorgabekorrigierten Gleitkommadaten erforderlich ist, reduziert werden. Ferner kann im Vergleich zur herkömmlichen Berechnungsvorrichtung für Gleitkommadaten weniger Hardware verwendet werden, mit größeren Wirkungen in der praktischen Verwendung.
  • Obwohl die Erfindung beispielhaft unter Bezugnahme auf die beigefügten Zeichnungen vollständig beschrieben wurde, soll hier angemerkt sein, dass verschiedene Änderungen und Modifikationen für den Fachmann ersichtlich sind. Daher sollen solche Änderungen und Modifikationen, soweit sie nicht vom Umfang der vorliegenden Erfindung in ihrer beanspruchten Fassung abweichen, als darin enthalten erachtet werden.

Claims (6)

1. Verfahren zum Multiplizieren zweier Gleitkommadaten mit den Schritten
- Bewirken einer Operation zum Erhalten eines um 1 größeren Werts gegenüber einem der Summe des verschobenen Exponentenabschnitts des Multiplikanten und des in gleicher Weise verschobenen Exponentenabschnitt des addierten Multiplikators, entsprechenden Wert,
- Invertieren des höchstwertigen Bits des Operationsergebnisses nach der Operation, um einen in gleicher Weise verschobenen Exponentenabschnitt des Produkts der Gleitkommadaten wie in dem Mulitplikanten und dem Multiplikator zu erhalten.
2. Verfahren zum Dividieren zweier Gleitkommadaten mit den Schritten:
- Bewirken einer Operation zum Erhalten eines um 1 kleineren Werts gegenüber einem der Substraktion eines verschobenen Exponentenabschnitts des Divisors von einem in gleicher Weise verschobenen Exponentenabschnitts des Dividenden entsprechenden Wert,
- Invertieren des höchstwertigen Bits des Operationsergebnisses nach der Operation um einen in gleicher Weise verschobenen Exponentenabschnitt des Quotienten des Gleitkommatyps wie bei dem Dividendem und dem Divisor zu erhalten.
3. Mulipliziervorrichtung für Gleitkommadaten mit
- einer Exponentenaddiereinrichtung zum Erhalten des Werts, bei dem 1 zu der Summe der jeweiligen Exponentenabschnitte des Multiplikanten und des Multiplikators des Gleitkommatyps mit dem verschobenen Exponentenabschnitt addiert wird,
- einer Höchstwertbitkorrektureinrichtung zum Invertieren des höchstwertigen Bits der Ausgabe der Exponentenaddiereinrichtung, wobei die Verschiebekorrektur nach der Addition der Exponentenwerte der beiden Gleitkommadaten bewirkt wird, um den Exponentenabschnitt des Produkts des Gleitkommatyps zu erhalten, der in gleicher Weise wie der Multiplikant und der Multiplikator verschoben ist.
4. Multipliziervorrichtung für Gleitkommadaten gemäß Anspruch 3, weiterhin umfassend:
eine Normalisierexponentkorrektureinrichtung zum Addieren, Subtrahieren der mit den Verschiebebitnummern übereinstimmenden Nummern zur Normalisierung des Produkts gegenüber der Ausgabe der Exponentenaddiereinrichtung, wobei das höchstwertige Bit durch die Höchstwertbitkorrektureinrichtung invertiert wird, und
- eine Ausnahmeerfassungseinrichtung zum Erfassen des Überlaufs und des Unterlaufs des Produkts, wobei die Übertragsausgabe den Übertrag von dem höchstwertigen Bit der Exponentenaddiereinrichtung und der Ausgabe der Normalisierexponentenkorrektureinrichtung zeigt, wobei der Überlauf und der Unterlauf des Produkts nach der Normalisierung des Mantissenabschnitts des Produkts erfasst werden.
5. Die Dividiervorrichtung für Gleitkommadaten mit
- einer Exponentensubstraktionseinrichtung zum Erhalten eines um 1 kleineren Werts gegenüber einem Wert mit einem Exponentenabschnitt des Divisors des Gleitkommatyps aus dem Exponentenabschnitt des Dividenden des Gleitkommatyps mit dem verschobenen Exponentenabschnitt,
eine Höchstwertbitkorrektureinrichtung zum Invertieren des höchstwertigen Bits der Ausgabe der Exponentensubstraktionseinrichtung, wobei die Verschiebekorrektur bewirkt wird nach der Substraktion der Exponentenwerte der beiden Gleitkommadaten, um den Exponentenabschnitt des Quotienten des Gleitkommatyps mit gleicher Verschiebung wie der Dividend und der Divisor zu erhalten.
6. Dividiervorrichtung für Gleitkommadaten nach Anspruch 5, weiterhin umfassend,
- eine Normalisierexponentkorrektureinrichtung zum Addieren, Subairahieren der mit den Verschiebebitnummern übereinstimmenden Nummern zur Normalisierung des Quotienten bezüglich der Ausgabe der Exponentensubtrahiereinrichtung, die in dem höchstwertigen Bit durch die Höchstwertbitkorrektureinrichtung invertiert wird, und
- eine Ausnahmeerfassungseinrichtung zum Erfassen des Überlaufs und des Unterlaufs des Quotienten, wobei die Übertragsausgabe den Übertrag von dem höchstwertigen Bit der Exponentensubtrahiereinrichtung und der Ausgabe der vorstehend beschriebenen Normalisierexponentenkorrektureinrichtung zeigt, wobei der Überlauf und der Unterlauf des Quotienten nach der Normalisieren des Mantissenabschnitts des Quotienten erfasst werden.
DE69132807T 1990-08-24 1991-08-20 Verfahren und Gerät zur Berechnung von Gleitkommadaten Expired - Fee Related DE69132807T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP22276390 1990-08-24
JP29383690 1990-10-30

Publications (2)

Publication Number Publication Date
DE69132807D1 DE69132807D1 (de) 2001-12-13
DE69132807T2 true DE69132807T2 (de) 2002-06-27

Family

ID=26525068

Family Applications (3)

Application Number Title Priority Date Filing Date
DE69132807T Expired - Fee Related DE69132807T2 (de) 1990-08-24 1991-08-20 Verfahren und Gerät zur Berechnung von Gleitkommadaten
DE69132597T Expired - Fee Related DE69132597T2 (de) 1990-08-24 1991-08-20 Verfahren und Gerät zur Berechnung von Gleitkommadaten
DE69133072T Expired - Fee Related DE69133072T2 (de) 1990-08-24 1991-08-20 Verfahren und Gerät zur Berechnung von Gleitkommadaten

Family Applications After (2)

Application Number Title Priority Date Filing Date
DE69132597T Expired - Fee Related DE69132597T2 (de) 1990-08-24 1991-08-20 Verfahren und Gerät zur Berechnung von Gleitkommadaten
DE69133072T Expired - Fee Related DE69133072T2 (de) 1990-08-24 1991-08-20 Verfahren und Gerät zur Berechnung von Gleitkommadaten

Country Status (6)

Country Link
US (1) US5276634A (de)
EP (3) EP0820005B1 (de)
KR (1) KR950001941B1 (de)
DE (3) DE69132807T2 (de)
HK (1) HK1007907A1 (de)
TW (1) TW199927B (de)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5553015A (en) * 1994-04-15 1996-09-03 International Business Machines Corporation Efficient floating point overflow and underflow detection system
KR0139733B1 (ko) * 1994-04-29 1998-07-01 구자홍 부동 소수점 덧셈/뺄셈 연산기의 반올림 방법 및 장치
US5463575A (en) * 1994-06-24 1995-10-31 Rockwell International Corporation Reduced quantization noise from single-precision multiplier
US5563818A (en) * 1994-12-12 1996-10-08 International Business Machines Corporation Method and system for performing floating-point division using selected approximation values
DE69626596T2 (de) * 1995-10-20 2003-12-18 Kabushiki Kaisha Toshiba, Kawasaki Logische Schaltung, die nach dem Carry select Prinzip arbeitet
US5844830A (en) * 1996-08-07 1998-12-01 Sun Microsystems, Inc. Executing computer instrucrions by circuits having different latencies
US5841683A (en) * 1996-09-20 1998-11-24 International Business Machines Corporation Least significant bit and guard bit extractor
US6006316A (en) * 1996-12-20 1999-12-21 International Business Machines, Corporation Performing SIMD shift and arithmetic operation in non-SIMD architecture by operation on packed data of sub-operands and carry over-correction
EP0869432B1 (de) * 1997-04-01 2002-10-02 Matsushita Electric Industrial Co., Ltd. Multiplizierverfahren und Multiplizierschaltung
US6263420B1 (en) * 1997-09-17 2001-07-17 Sony Corporation Digital signal processor particularly suited for decoding digital audio
US7043516B1 (en) * 1998-03-13 2006-05-09 Hewlett-Packard Development Company, L.P. Reduction of add-pipe logic by operand offset shift
GB2339936B (en) * 1998-05-27 2002-09-25 Advanced Risc Mach Ltd Data processing apparatus and method for performing multiply-accumulate operations
US6282634B1 (en) * 1998-05-27 2001-08-28 Arm Limited Apparatus and method for processing data having a mixed vector/scalar register file
US7890566B1 (en) * 2000-02-18 2011-02-15 Texas Instruments Incorporated Microprocessor with rounding dot product instruction
US6633896B1 (en) * 2000-03-30 2003-10-14 Intel Corporation Method and system for multiplying large numbers
US6629120B1 (en) * 2000-11-09 2003-09-30 Sun Microsystems, Inc. Method and apparatus for performing a mask-driven interval multiplication operation
US20030028696A1 (en) * 2001-06-01 2003-02-06 Michael Catherwood Low overhead interrupt
US6952711B2 (en) * 2001-06-01 2005-10-04 Microchip Technology Incorporated Maximally negative signed fractional number multiplication
US6976158B2 (en) * 2001-06-01 2005-12-13 Microchip Technology Incorporated Repeat instruction with interrupt
US7007172B2 (en) * 2001-06-01 2006-02-28 Microchip Technology Incorporated Modified Harvard architecture processor having data memory space mapped to program memory space with erroneous execution protection
US6985986B2 (en) * 2001-06-01 2006-01-10 Microchip Technology Incorporated Variable cycle interrupt disabling
US20030023836A1 (en) * 2001-06-01 2003-01-30 Michael Catherwood Shadow register array control instructions
US6934728B2 (en) * 2001-06-01 2005-08-23 Microchip Technology Incorporated Euclidean distance instructions
US7467178B2 (en) * 2001-06-01 2008-12-16 Microchip Technology Incorporated Dual mode arithmetic saturation processing
US7020788B2 (en) * 2001-06-01 2006-03-28 Microchip Technology Incorporated Reduced power option
US20030005268A1 (en) * 2001-06-01 2003-01-02 Catherwood Michael I. Find first bit value instruction
US6604169B2 (en) 2001-06-01 2003-08-05 Microchip Technology Incorporated Modulo addressing based on absolute offset
US6975679B2 (en) * 2001-06-01 2005-12-13 Microchip Technology Incorporated Configuration fuses for setting PWM options
US20030005269A1 (en) * 2001-06-01 2003-01-02 Conner Joshua M. Multi-precision barrel shifting
US6552625B2 (en) 2001-06-01 2003-04-22 Microchip Technology Inc. Processor with pulse width modulation generator with fault input prioritization
US6937084B2 (en) * 2001-06-01 2005-08-30 Microchip Technology Incorporated Processor with dual-deadtime pulse width modulation generator
US6728856B2 (en) 2001-06-01 2004-04-27 Microchip Technology Incorporated Modified Harvard architecture processor having program memory space mapped to data memory space
US7003543B2 (en) * 2001-06-01 2006-02-21 Microchip Technology Incorporated Sticky z bit
US20020184566A1 (en) * 2001-06-01 2002-12-05 Michael Catherwood Register pointer trap
US6601160B2 (en) 2001-06-01 2003-07-29 Microchip Technology Incorporated Dynamically reconfigurable data space
US20040021483A1 (en) * 2001-09-28 2004-02-05 Brian Boles Functional pathway configuration at a system/IC interface
US6552567B1 (en) 2001-09-28 2003-04-22 Microchip Technology Incorporated Functional pathway configuration at a system/IC interface
US7558816B2 (en) * 2001-11-21 2009-07-07 Sun Microsystems, Inc. Methods and apparatus for performing pixel average operations
US6941335B2 (en) * 2001-11-29 2005-09-06 International Business Machines Corporation Random carry-in for floating-point operations
US9146706B2 (en) 2006-05-05 2015-09-29 Qualcomm Incorporated Controlled-precision iterative arithmetic logic unit
US9405728B2 (en) * 2013-09-05 2016-08-02 Altera Corporation Floating-point adder circuitry
US9483232B2 (en) * 2014-03-07 2016-11-01 Arm Limited Data processing apparatus and method for multiplying floating point operands
US9823897B2 (en) * 2015-09-25 2017-11-21 Arm Limited Apparatus and method for floating-point multiplication
US11537323B2 (en) 2020-01-07 2022-12-27 SK Hynix Inc. Processing-in-memory (PIM) device
US11422803B2 (en) * 2020-01-07 2022-08-23 SK Hynix Inc. Processing-in-memory (PIM) device
US12596527B1 (en) * 2022-01-14 2026-04-07 The United States Of America As Represented By The Secretary Of The Navy Clockless parallel multiplication circuit
US12118332B2 (en) * 2022-09-20 2024-10-15 Apple Inc. Execution circuitry for floating-point power operation

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59117637A (ja) * 1982-12-24 1984-07-07 Toshiba Corp 浮動小数点乗算装置
JPS61213927A (ja) * 1985-03-18 1986-09-22 Hitachi Ltd 浮動小数点演算処理装置
JPH01302425A (ja) * 1988-05-31 1989-12-06 Toshiba Corp 浮動小数点加減算回路
JP3076046B2 (ja) * 1989-01-31 2000-08-14 日本電気株式会社 例外検出回路
US4975868A (en) * 1989-04-17 1990-12-04 International Business Machines Corporation Floating-point processor having pre-adjusted exponent bias for multiplication and division
US4926370A (en) * 1989-04-17 1990-05-15 International Business Machines Corporation Method and apparatus for processing postnormalization and rounding in parallel
US5040138A (en) * 1989-08-02 1991-08-13 Cyrix Corporation Circuit for simultaneous arithmetic calculation and normalization estimation
US5111421A (en) * 1990-02-26 1992-05-05 General Electric Company System for performing addition and subtraction of signed magnitude floating point binary numbers

Also Published As

Publication number Publication date
EP0472148A2 (de) 1992-02-26
HK1023424A1 (en) 2000-09-08
KR950001941B1 (ko) 1995-03-07
EP0973089B1 (de) 2002-07-17
EP0973089A2 (de) 2000-01-19
HK1007907A1 (en) 2003-04-24
TW199927B (de) 1993-02-11
EP0472148B1 (de) 2001-05-09
EP0973089A3 (de) 2000-01-26
DE69133072D1 (de) 2002-08-22
EP0820005A1 (de) 1998-01-21
DE69132807D1 (de) 2001-12-13
DE69132597D1 (de) 2001-06-13
EP0472148A3 (en) 1993-07-21
DE69132597T2 (de) 2002-04-18
US5276634A (en) 1994-01-04
EP0820005B1 (de) 2001-11-07
KR920004960A (ko) 1992-03-28
DE69133072T2 (de) 2003-03-20
HK1013343A1 (en) 1999-08-20

Similar Documents

Publication Publication Date Title
DE69132597T2 (de) Verfahren und Gerät zur Berechnung von Gleitkommadaten
DE69131458T2 (de) Hardware-Anordnung zur Addition und Subtraktion von Gleitkommazahlen
DE69130653T2 (de) &#34;Pipelined&#34; Verarbeitungseinheit für Fliesskommazahlen
DE69131736T2 (de) Gleitkomma-Verarbeitungseinheit mit Normalisierung
DE4414172C2 (de) Gleit-Komma-Arithmetikeinheit und Verfahren zur Division und Quadratwurzelberechnung, die eine modifizierte Newton-Raphson Technik verwendet
DE69132517T2 (de) Gleitkommaprozessor
DE68928376T2 (de) Vorrichtung zum multiplizieren, teilen und ziehen der quadratwurzel
DE19540102C2 (de) Verfahren und Gleitkomma-Recheneinheit mit einer Logik für eine Vierfach-Präzisions-Arithmetik
DE3144015C2 (de)
DE68927966T2 (de) Prozessor für Gleitkommazahlen und ganze Zahlen mit Dividier- und Quadratwurzelfunktionen
DE3143223C2 (de)
US4943940A (en) Floating point add/subtract and multiplying assemblies sharing common normalization, rounding and exponential apparatus
DE69029098T2 (de) Fliessband-Gleitkomma-Addierer für Digitalrechner
HK1007907B (en) Method and apparatus for computing floating point data
DE69324730T2 (de) Multiplizier-Akkumulator
DE68924386T2 (de) Verfahren und Gerät zur Radix-2**n-Division mit überlappender Quotientenbitauswahl und gleichzeitiger Rundung und Korrektur des Quotienten.
DE1162111B (de) Gleitkomma-Recheneinrichtung
DE69227348T2 (de) DIVIDIERSCHALTUNG FüR GLEITKOMMAZAHLEN
DE19781794C2 (de) Verfahren und Einrichtung zur Division von Gleitkomma- oder ganzen Zahlen
DE3852576T2 (de) Einrichtung und Verfahren für eine erweiterte Arithmetik-Logik-Einheit zur Beschleunigung der ausgewählten Operationen.
US3736413A (en) Pre-conditioned divisor trial quotient divider
DE19746054B4 (de) Verfahren und Vorrichtung zum Ausführen einer Operation mit doppelter Genauigkeit
DE4019646A1 (de) Vorrichtung fuer echtzeitmultiplikation in 2er-komplement-darstellung in einem digitalen signalprozessorsystem und ein verfahren dafuer
DE68926563T2 (de) Arithmetische Einheit für logarithmische Funktionen, versehen mit Mitteln zur gesonderten Verarbeitung von Pseudodivision und -multiplikation
DE69030169T2 (de) Hochleistungsaddierer mit Carry-Vorhersage

Legal Events

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