DE3931545A1 - Gleitkommaprozessor - Google Patents

Gleitkommaprozessor

Info

Publication number
DE3931545A1
DE3931545A1 DE19893931545 DE3931545A DE3931545A1 DE 3931545 A1 DE3931545 A1 DE 3931545A1 DE 19893931545 DE19893931545 DE 19893931545 DE 3931545 A DE3931545 A DE 3931545A DE 3931545 A1 DE3931545 A1 DE 3931545A1
Authority
DE
Germany
Prior art keywords
exponent
multiplier
multiplicand
output
bit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE19893931545
Other languages
English (en)
Inventor
Masaji Kume
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of DE3931545A1 publication Critical patent/DE3931545A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49936Normalisation mentioned as feature only

Landscapes

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

Description

Die Erfindung betrifft einen in digitalen Computern verwendeten Gleitkommaprozessor und insbesondere einen Multiplizierer/Dividierer-Baustein, der mit hoher Geschwindigkeit einen Exponentenüberlauf oder -unterlauf ermitteln kann und außerdem ein Produkt oder einen Quotienten mit hoher Geschwindigkeit berechnen kann.
Aus JP 62-49 540-A ist ein Gleitkommadividierer mit einer Überlauf- und einer Unterlaufermittlungsfunktion bekannt.
Bei der herkömmlichen Gleitkommamultiplikation werden der Multiplikand und der Multiplikator, die beide als Gleitkommazahlen gegeben sind, derart normalisiert, daß der Mantissenteil sowohl des Multiplikanden als auch des Multiplikators Ziffer für Ziffer so lange nach links verschoben wird, bis der Wert der am weitesten links stehenden Ziffer (d. h. der vier am weitesten links stehenden Bits) des Mantissenteils von 0 verschieden ist, daß sowohl beim Multiplikanden als auch beim Multiplikator die Anzahl der verschobenen Ziffern vom jeweiligen Exponententeil subtrahiert wird und daß dann die Gleitkommamultiplikation ausgeführt wird, d. h. daß die jeweiligen Exponententeile des Multiplikanden und des Multiplikators addiert werden, während die Mantissenteile des Multiplikanden und des Multiplikators miteinander multipliziert werden. Es wird festgestellt, daß als Basis des Exponententeils der Wert 16 benutzt wird. Wenn die am weitesten links stehende Ziffer des Mantissenteils des auf diese Weise gewonnenen Zwischenproduktes den Wert "0" besitzt, wird der Mantissenteil um eine Ziffer nach links verschoben und der Exponententeil dieses Zwischenproduktes um eins vermindert. Daher ist sowohl die Ausführung der Schiebeoperation als auch die Ausführung der Subtraktion am Exponententeil mindestens dreimal erforderlich.
Damit beim Multiplikationsergebnis ein Exponentenüberlauf oder ein Exponentenunterlauf ermittelt werden kann, wird am linken Ende des aus dem ersten bis siebten Bit gebildeten Exponententeils ein Zweibit-Erweiterungsbereich addiert, was einen 9-Bit-Exponententeil ergibt; die Werte der beiden am weitesten links stehenden Bits des Ergebnisses der den 9-Bit-Exponententeil verwendenden Multiplikation werden für die Ermittlung eines Exponentenüberlaufes oder eines Exponentenunterlaufes benutzt.
Folglich reicht für die Ausführung der Addition zwischen den Exponententeilen des Multiplikanden und des Multiplikators ein 1-Byte-Addierer nicht aus, so daß ein 4-Byte-Addierer verwendet wird. Daraus ergeben sich verschiedene Probleme, die weiter unten beschrieben werden.
Eine normalisierte Gleitkommazahl weist einen Vorzeichenteil, der angibt, ob die Zahl positiv oder negativ ist, einen Exponententeil und einen Mantissenteil auf. Nun wird der Fall betrachtet, in dem der Vorzeichenteil aus einem Bit gebildet wird, wobei die logischen Werte "0" und "1" dieses Bits die Positivität bzw. die Negativität der jeweiligen Zahl angeben; ferner wird der Exponententeil durch sieben Bits gebildet und durch einen Exzeß-64-Ausdruck dargestellt, während der Mantissenteil beispielsweise von 24 Bits gebildet wird. In diesem Fall wird eine Gleitkommazahl aus 1 + 7 + 24 = 32 Bits gebildet. In Fig. 2 ist ein Beispiel für einen Exzeß-64-Ausdruck gezeigt.
Bei der Addition der Exponententeile werden der Multiplikator und der Multiplikand um 24 Bits nach rechts verschoben, damit die Mantissenteile aus dem Multiplikator und dem Multiplikanden beseitigt werden; anschließend werden Multiplikator und Multiplikand in Arbeitsregistern WK 0 und WK 1 gespeichert. Auf diese Weise werden die Exponententeile des Multiplikators und des Multiplikanden vornormalisiert und in den rechten Endabschnitten der Arbeitsregister WK 0 bzw. WK 1 gespeichert. In diesem Moment werden in den drei linken Bytes (also in den 24 linken Bits) eines jeden Arbeitsregisters Nullen gespeichert. Danach werden die Inhalte der Arbeitsregister WK 0 und WK 1 mittels eines 4-Byte-Addierers zueinander addiert und das Additionsergebnis in einem Arbeitsregister WK 2 gespeichert. Währenddessen wird zwischen den Mantissenteilen des Multiplikanden und des Multiplikators die Multiplikation ausgeführt, wobei überprüft wird, ob eine Nachnormalisierungsoperation für das Multiplikationsergebnis notwendig ist oder nicht. Wenn die Nachnormalisierungsoperation notwendig ist, wird der Mantissenteil des Multiplikationsergebnisses um eine Ziffer nach links verschoben, während die Inhalte des Arbeitsregisters WK 2 um 1 verringert werden. Der Wertebereich des so gewonnenen Exponententeils ist in Fig. 3 gezeigt. Wie in Fig. 3 gezeigt, wird dann, wenn das 23. Bit des Arbeitsregisters WK 2 den Wert "1" besitzt, geurteilt, daß ein Exponentenunterlauf erzeugt worden ist. Wenn andererseits das 23. bzw. 24. Bit des Arbeitsregisters WK 2 die Werte "0" bzw. "1" besitzen, wird geurteilt, daß ein Exponentenüberlauf erzeugt worden ist.
In der oben beschriebenen Gleitkommamultiplikationsverarbeitung wird eine Normalisierungsoperation mindestens dreimal ausgeführt, außerdem wird für die Ermittlung eines Exponentenüberlaufes oder eines Exponentenunterlaufes ein 4-Byte-Addierer verwendet. Ferner muß zur Beseitigung des Mantissenteils einer Gleitkommazahl diese Zahl z. B. um 24 Bits nach rechts verschoben werden. Aus diesem Grund ist die Erhöhung der Betriebsgeschwindigkeit schwierig.
Es ist daher die Aufgabe der vorliegenden Erfindung, einen Gleitkommaprozessor zu schaffen, bei dem die Betriebsgeschwindigkeit einer Gleitkommamultiplikation und einer Gleitkommadivision verbessert werden kann.
Es ist eine weitere Aufgabe der vorliegenden Erfindung, einen Gleitkommaprozessor zu schaffen, der einen Exponentenüberlauf und einen Exponentenunterlauf ohne Vornormalisierung eines Multiplikanten und eines Multiplikators ermitteln kann, um die Gleitkommamultiplikationsverarbeitung in hohem Maß zu verbessern.
Es ist eine weitere Aufgabe der vorliegenden Erfindung, einen Gleitkommaprozessor zu schaffen, bei dem die Normalisierung eines Multiplikanden und eines Multiplikators nicht erforderlich ist, bei dem die Addition der Exponententeile und die Ermittlung sowohl eines Exponentenüberlaufes als auch eines Exponentenunterlaufs mittels eines 1-Byte-Addierers ausgeführt werden kann und bei dem die in der herkömmlichen Multiplikationsverarbeitung notwendige Schiebeoperation nicht notwendig ist.
Diese Aufgaben werden erfindungsgemäß gelöst durch einen Gleitkommaprozessor, der einen Addierer/Subtrahierer mit einer Operationsbreite, die gleich derjenigen Datenbreite ist, die durch die Addition eines Erweiterungsbits zum linken Ende des Exponententeils sowohl des Multiplikators/Divisors als auch des Multiplikanden/Dividenden erhalten wird, zur Ausführung eomer arithmetischen Operation an den Exponententeilen, eine Recheneinrichtung, die auf die Mantissenteile des Multiplikators/Divisors und des Multiplikanden/Dividenden angewendet wird und eine Ausgabebreite besitzt, die größer ist als die aus der Datenbreite des Mantissenteils des Multiplikators/Divisors und der Datenbreite des Mantissenteils des Multiplikanden/Dividenden gebildete Summe, zur Gewinnung des Produktes der Mantissenteile ohne Rundung des Produkts und zur Gewinnung des aus dem Mantissenteil des Dividenden und dem Mantissenteils des Divisors gebildeten Quotienten, eine Verschiebeeinrichtung mit einer Operationsbreite, die größer oder gleich der Ausgabebreite der Recheneinrichtung ist, eine Schaltung zur Erzeugung einer Exklusiv-ODER-Verknüpfung der Werte des nullten und ersten Bits der Ausgabe des Addierers/Subtrahierers, eine Auffangschaltung (Latch-Schaltung) zum Auffangen des Ergebnisses der Exklusiv-ODER-Verknüpfung, eine Schaltung zum Liefern des Wertes des nullten Bits des Exponententeils des normalisierten Operationsergebnisses, eine Schaltung zum Vergleichen der Inhalte der Auffangschaltung mit dem Wert des nullten Bits des Exponententeils des normalisierten Ergebnisses und eine Schaltung, die entscheidet, ob das Ergebnis der Multiplikations/Divisionsverarbeitung normal ist oder ob ein Exponentenüberlauf oder ein Exponentenunterlauf erzeugt worden ist, auf.
Genauer wird ein aus einem Bit gebildeter Exponentenerweiterungsbereich zum linken Ende des Exponententeils sowohl des Multiplikators als auch des Multiplikanden addiert und als Wert dieses hinzuaddierten Bits "0" gesetzt. Danach werden die so gebildeten Exponententeile in den Addierer/Subtrahierer eingegeben, um die Exponententeile zueinander zu addieren. Wenn ein Exponentenwert modifiziert ist, wenn der Exponentenwert z. B. als Exzeß-64-Ausdruck dargestellt wird, wird vom Additionsergebnis ein Modifikationswert subtrahiert. Währenddessen werden die Mantissenteile des Multiplikators und des Multiplikanden ohne vorherige Normalisierung in die Recheneinrichtung eingegeben, anschließend wird das aus den Mantissenteilen gebildete Produkt ohne Rundung aus der Recheneinrichtung ausgegeben. Da weder der Multiplikator noch der Multiplikand normalisiert ist, werden am linken Ende des aus den Mantissenteilen gebildeten Produkts ständig mehrere Null-Ziffern (also Ziffern, die jeweils aus Nullen gebildet werden) erzeugt.
Danach wird die Anzahl der Null-Ziffern, die am linken Ende des oben genannten Produkts ständig erzeugt werden, von einer Schaltung zum Hochzählen der Null-Ziffern, die ständig am linken Ende der Ausgabe der Recheneinrichtung erscheinen, ermittelt. Das Produkt der Mantissenteile und die Anzahl der Null-Ziffern werden in die Verschiebeeinrichtung eingegeben, wo das Produkt um die Anzahl der Null-Ziffern nach links verschoben wird, wodurch das Produkt normalisiert wird. Ferner wird das Ergebnis der Addition der Exponententeile und die Anzahl der Null-Ziffern in den Addierer/Subtrahierer eingegeben, um die Anzahl der Null-Ziffern vom Additionsergebnis zu subtrahieren, wodurch das Ergebnis der Addition der Exponententeile in Übereinstimmung mit der obigen Normalisierung korrigiert wird. Wenn das nullte Bit des korrigierten Wertes des Additionsergebnisses den Wert "1" besitzt, wird ein Exponentenüberlauf oder ein Exponentenunterlauf erzeugt. Ferner wird anhand der Werte des nullten und des ersten Bits des unkorrigierten Additionsergebnisses beurteilt, ob ein Exponentenüberlauf oder ein Exponentenunterlauf erzeugt worden ist. Genauer wird geurteilt, daß die Möglichkeit der Erzeugung eines Exponentenüberlaufs besteht, wenn die Exklusiv-ODER-Verknüpfung der Werte des nullten und des ersten Bits den Wert "1" ergibt. Die durch die Normalisierung sich ergebende Korrektur des Additionsergebnisses wird ausgeführt, um das Additionsergebnis zu verkleinern. Auch in dem Fall, in dem Multiplikator und Multiplikand jeweils von einer doppelt genauen Gleitkommazahl gebildet werden, beträgt der Korrekturwert höchstens 27, da die Mantissenteile sowohl des Multiplikators als auch des Multiplikanden aus 14 (= 3 + 4 + 7) Bytes gebildet werden. Folglich wird die aus der Normalisierung sich ergebende Korrektur auch dann niemals einen Exponentenunterlauf erzeugen, wenn anhand des unkorrigierten Additionsergebnisses geurteilt wird, daß die Möglichkeit der Erzeugung eines Exponentenüberlaufs besteht, d. h. wenn die Exklusiv-ODER-Verknüpfung der Werte des nullten und ersten Bits des unkorrigierten Additionsergebnisses den Wert "1" ergibt. Außerdem erzeugt die aus der Normalisierung sich ergebende Korrektur des Additionsergebnisses niemals einen Exponentenüberlauf, wenn geurteilt wird, daß die Möglichkeit der Erzeugung eines Exponentenunterlaufs besteht, d. h. wenn die Exklusiv-ODER-Verknüpfung der Werte des nullten und ersten Bits des unkorrigierten Additionsergebnisses den Wert "0" ergibt.
Wie erwähnt, kann die Multiplikation erfindungsgemäß ohne Vornormalisierung eines Multiplikanden und eines Multiplikators ausgeführt werden, andererseits wird die Nachnormalisierungsoperation nur einmal ausgeführt. Ferner kann ein Exponentenüberlauf und ein Exponentenunterlauf mittels eines 1-Byte-Addierers/Subtrahierers ermittelt werden. Außerdem ist vor dem Erhalt des Endwertes des Produktes des Multiplikators und des Multiplikanden bekannt, ob ein Exponentenüberlauf oder ein Exponentenunterlauf erzeugt werden kann. Daher kann die Operationsgeschwindigkeit der Multiplikation in hohem Maß gesteigert werden.
Wenn eine Division ausgeführt wird, wird zum Gleitkommaprozessor, der die Multiplikation ausführt, eine Quotientenerzeugungsschaltung hinzugefügt. Hierbei wird die Operation des Subtrahierens eines ausgewählten Vielfachen des Mantissenteils des Divisors vom Mantissenteil des Dividenden, wodurch jeweils ein Zwischen-Quotientenbit erhalten wird, gegebenenfalls mehrfach nacheinander ausgeführt. Es wird festgestellt, daß die Multiplikation und die Devision eine Registergruppe, die Verschiebeeinrichtung, den Addierer/Subtrahierer und die Recheneinrichtung gemeinsam benutzen.
Die Erfindung wird im folgenden anhand von Ausführungsbeispielen unter Bezug auf die Zeichnungen näher erläutert; es zeigt
Fig. 1 ein Blockschaltbild einer Ausführungsform des erfindungsgemäßen Gleitkommaprozessors;
Fig. 2 ein Tabelle, die ein Beispiel eines Exzeß-64-Ausdrucks darstellt;
Fig. 3 eine Tabelle, die das Ergebnis einer herkömmlichen Operation für die Exponententeile darstellt;
Fig. 4 eine Tabelle, die das unnormalisierte Ergebnis der erfindungsgemäßen Operation für die Exponententeile darstellt;
Fig. 5 eine schematische Darstellung, in der ein Beispiel der erfindungsgemäßen Operation für die Mantissenteile angegeben wird;
Fig. 6 eine Tabelle, die das normalisierte Ergebnis der erfindungsgemäßen Operation für die Exponententeile darstellt; und
Fig. 7 ein Blockschaltbild einer weiteren Ausführungsform des erfindungsgemäßen Gleitkommaprozessors.
Nun wird eine Ausführungsform des erfindungsgemäßen Gleitkommaprozessors beschrieben.
In Fig. 1 ist ein Blockschaltbild dieser Ausführungsform gezeigt. Der Gleitkommaprozessor weist Zwischenprodukt-Speicherregister 10 und 11 zum Speichern eines Zwischenproduktes der Mantissenteile, eine Verschiebeeinrichtung 20, eine Recheneinheit 21 für die Mantissenteile, eine Registergruppe 30 zum Speichern eines unnormalisierten Multiplikanden und seiner Vielfachen, ein Multiplikatorspeicherregister 40, eine Vielfachwahlschaltung 50 für die Wahl eines Registers aus der Registergruppe 30 entsprechend dem Wert der 4 am weitesten rechts stehenden Bits des Multiplikatorspeicherregisters 40, eine Verschiebeeinrichtung 60 zum Verschieben eines Multiplikators nach rechts um 4 Bits, ein 8-Bit-Register 70 zum Speichern einer 8-Bit-Zahl, die durch Addition eines den Wert "0" anzeigenden Bits zum linken Ende des Exponententeils des Multiplikators erhalten wird, ein 8-Bit-Register 80 zum Speichern einer 8-Bit-Zahl, die durch Addition eines den Wert "0" anzeigenden Bits zum linken Ende des Exponententeils des Multiplikanden erhalten wird, eine Recheneinrichtung 90 für die Exponententeile (d. h. einen Addierer/Subtrahierer), eine Zählerschaltung 100 zum Hochzählen der am linken Ende der Daten erscheinenden Null-Ziffern und eine Exklusiv-ODER-Schaltung 110 auf.
Zu Beginn wird in allen Bits der Register 10 und 11 der Wert "0" gesetzt. Mittels der Vielfachenwahlschaltung 50 wird entsprechend dem Wert der 4 am weitesten rechts stehenden Bits des Multiplikatorspeicherregisters 40 (d. h. entsprechend dem Wert der am weitesten links stehenden Ziffer des Multiplikators) ein geeignetes Vielfaches des Multiplikanden aus der Registergruppe 30 ausgelesen. Dieses ausgelesene Vielfache wird zu einem Wert, der durch Verschieben der Inhalte des Zwischenprodukt-Speicherregisters 10 nach rechts um 4 Bits erhalten wird, mittels der Recheneinrichtung 21 addiert. Das Additionsergebnis wird im Register 10 gesetzt. Weiterhin werden in der Verschiebeeinrichtung 20 die Inhalte des Registers 11 um 4 Bits nach rechts verschoben und im Register 11 gespeichert. Der im Multiplikatorspeicherregister 40 gespeicherte Multiplikator wird durch die Verschiebeeinrichtung 60 um 4 Bis nach rechts verschoben. Die oben beschriebene Verarbeitung wird für sämtliche Ziffern des im Register 40 gespeicherten Multiplikators ausgeführt. Daher wird in den Registern 10 und 11 der Mantissenteil eines Zwischenproduktes gespeichert. Nun wird angenommen, daß der Mantissenteil sowohl des Multiplikators als auch des Multiplikanden aus N Bits gebildet ist. In diesem Fall wird das Produkt der Mantissenteile aus mindestens 2N Bits gebildet. Im allgemeinen werden am linken Endabschnitt des obigen Produktes ununterbrochen einige Null-Ziffern erzeugt, da weder der Multiplikator noch der Multiplikand normalisiert ist. In Fig. 5 ist ein Beispiel einer Operation gezeigt, mit der der Mantissenteil des Multiplikanden mit dem Mantissenteil des Multiplikators multipliziert wird. Der Exponententeil des Multiplikators wird im Register 70 gespeichert, während der Exponententeil des Multiplikanden im Register 80 gespeichert wird. Diese Exponententeile werden durch die Recheneinrichtung (d. h. durch den 1-Byte-Addierer/Subtrahierer) 90 zueinander addiert. Wenn der in Fig. 2 gezeigte Exzeß-64-Ausdruck verwendet wird, wird der Wert "64" vom Additionsergebnis subtrahiert. Der Exponententeil des so erhaltenen Zwischenproduktes wird an das Register 80 geschickt und dort gespeichert. Unter der Voraussetzung, daß das nullte und das erste Bit des Exponententeils des Zwischenproduktes den Wert "10" oder "01" besitzen, wird zu diesem Zeitpunkt ein EXP-OV-Zustandsbit gesetzt. In Fig. 4 ist der Bereich des Exponententeils des Zwischenproduktes gezeigt, wenn der Exzeß-64-Ausdruck verwendet wird.
Danach wird von der Zählerschaltung 100 geprüft, wieviele Null-Ziffern im linken Endabschnitt der Register 10 und 11 ununterbrochen erzeugt werden. Der von der Zählerschaltung 100 gezählte Wert wird an die Verschiebeeinrichtung 20 geschickt, um die Inhalte der Register 10 und 11 Ziffer für Ziffer so lange nach links zu verschieben, bis am linken Ende der genannten Registerinhalte keine Null-Ziffer mehr steht. Ferner wird der von der Zählerschaltung 100 gezählte Wert zur 1-Byte-Recheneinrichtung 90 geschickt, um ausgelöst durch die oben erwähnte Normalisierungsoperation den Wert des Exponententeils des Zwischenproduktes (also den im Register 80 gespeicherten Wert) zu korrigieren. In Fig. 6 ist der Bereich des korrigierten Wertes des Exponententeils des Zwischenproduktes für den Fall gezeigt, daß sowohl der Multiplikand als auch der Multiplikator von erweiterter Genauigkeit sind, also jeweils einen 1-Bit-Vorzeichenteil, eine 7-Bit-Exponententeil und einen 56-Bit-Mantissenteil enthalten.
Wenn das nullte Bit EXP₀ des korrigierten Wertes des Exponententeils des Zwischenproduktes den Wert "1" besitzt, wird angezeigt, daß ein Exponentenüberlauf oder -unterlauf erzeugt wird.
Wenn das Bit EXP₀ den Wert "1" hat und das EXP-OV-Zustandsbit gesetzt ist, wird angezeigt, daß ein Exponentenüberlauf erzeugt wird. Wenn das Bit EXP₀ den Wert "1" besitzt, jedoch das EXP-OV-Zustandsbit nicht gesetzt ist, wird angezeigt, daß ein Exponentenunterlauf erzeugt wird.
Der Wert des das Vorzeichen des Produktes angebenden Bits, die Inhalte des Registers 80, in dem der Exponententeil des Produkts gespeichert ist und die Inhalte der Register 10 und 11, in denen der Mantissenteil des Produktes gespeichert ist, werden zu einer Gleitkommazahl gemischt, durch die das Produkt ausgedrückt wird.
Das oben beschriebene Verfahren zur Ermittlung eines Exponentenüberlaufs und eines Exponentenunterlaufs kann auch in einer Gleitkommadivisionsverarbeitung verwendet werden.
Die Gleitkommadivision wird so ausgeführt, daß der Exponententeil des Divisors vom Exponententeil des Dividenden subtrahiert wird und der Mantissenteil des Dividenden durch den Mantissenteil des Divisors dividiert wird. Vor der Ausführung der Division werden der Divident und der Divisor normalisiert; als Exponententeil eines Zwischenquotienten wird in dem Fall, daß der in Fig. 2 gezeigte Exzeß-64-Ausdruck verwendet wird, ein Wert benutzt, der durch Addition des Wertes "64" zur aus den Exponententeilen des Dividenden und des Divisors gebildeten Differenz erhalten wird. Der Zwischenquotient kann nach ausgeführter Division um eine Ziffer nach rechts verschoben werden. Wenn die obige Verschiebeoperation ausgeführt wird, wird der Exponententeil des Zwischenquotienten um eins erhöht.
Nun wird mit Bezug auf Fig. 7 eine weitere Ausführungsform des erfindungsgemäßen Gleitkommaprozessors beschrieben, die eine Gleitkommadivision ausführen kann.
In dieser Ausführungsform des erfindungsgemäßen Gleitkommaprozessors wird eine 8-Bit-Zahl, die durch die Addition eines den Wert "0" besitzenden Bits zum linken Ende des Exponententeils des Divisors erhalten wird, im Register 70 gespeichert, während eine 8-Bit-Zahl, die durch Addition eines den Wert "0" besitzenden Bits zum linken Ende des Exponententeils des Dividenden erhalten wird, im Register 80 gespeichert wird. Der im Register 70 gespeicherte Exponententeil wird vom im Register 80 gespeicherten Exponententeil mittels der Recheneinrichtung 90 subtrahiert. Wenn der in Fig. 2 gezeigte Exzeß-64-Ausdruck verwendet wird, wird zu der aus den Exponententeilen gebildeten Differenz mittels der Recheneinrichtung 90 der Wert "64" addiert. Der so erhaltene Exponententeil eines Zwischenquotienten wird im Register 80 gesetzt. Unter der Voraussetzung, daß das nullte und das erste Bit der Ausgabe der Recheneinrichtung 90 den Wert "10" oder den Wert "01" besitzen, wird wie in der Multiplikationsverarbeitung zu diesem Zeitpunkt das EXP-OV-Zustandsbit gesetzt.
Im Register 10 wird der Mantissenteil des Divisors gesetzt, und durch die Zählerschaltung 100 wird geprüft, wieviele Null-Ziffern im linken Endabschnitt des Registers 10 ununterbrochen erzeugt werden. Der von der Zählerschaltung 100 gezählte Wert wird an die Verschiebeeinrichtung 20 geschickt, um die Inhalte des Registers 10 so lange Ziffer für Ziffer nach links zu verschieben, bis am linken Ende der genannten Inhalte keine Null-Ziffern mehr existieren, wodurch der Divisor normalisiert wird. Der normalisierte Wert des Mantissenteils des Divisors wird von der Verschiebeeinrichtung 20 an das Register 40 geschickt und dort gespeichert. Der im Register 40 gespeicherte normalisierte Mantissenteil und seine Vielfachen werden in der Registergruppe 30 gesetzt. Ferner wird der durch die Zählerschaltung 100 gezählte Wert zur Recheneinrichtung 90 geschickt, um entsprechend der oben erwähnten Normalisierungsoperation den Wert des Exponententeils des Zwischenquotienten (d. h. den im Register 80 gespeicherten Wert) zu korrigieren. Der korrigierte Wert des Exponententeils des Zwischenquotienten wird an das Register 80 geschickt und dort gespeichert.
Danach wird der Mantissenteil des Dividenden im Register 10 gesetzt. Wie beim Divisor wird der Mantissenteil des Dividenden normalisiert und dessen Exponententeil korrigiert. Der normalisierte Wert des Mantissenteils des Dividenden wird von der Verschiebeeinrichtung 20 an das Register 10 geschickt und dort gespeichert. Der korrigierte Wert des Exponententeils des Zwischenquotienten wird von der Recheneinrichtung 90 berechnet und im Register 80 gesetzt.
Unter Berücksichtigung des im Register 40 gesetzten Mantissenteils des Divisors, des im Register 10 gesetzten Mantissenteil des Dividenden und eines Übertragssignales von der Recheneinheit 21 wird aus der Registergruppe 30 ein Vielfaches des Divisors ausgelesen. Das ausgelesene Vielfache wird von der Recheneinheit 21 von einem Wert subtrahiert, der dadurch erhalten wird, daß der im Register 10 gesetzte Mantissenteil des Dividenden in der Verschiebeeinrichtung um 2 Bits nach links verschoben wird, das Subtraktionsergebnis wird im Register 10 gesetzt. Weiterhin werden im Register 11 ein Wert, der dadurch erhalten wird, daß die Inhalte des Registers 11 in der Verschiebeeinrichtung um 2 Bits nach links verschoben werden, und ein 2-Bit-Quotient, der von einer Quotientenerzeugungsschaltung 130 erzeugt wird, ersetzt.
Indem die oben beschriebene Verarbeitung jedesmal ausgeführt wird, wenn die Inhalte der Register 10 um 2 Bits nach links verschoben werden, wird der Mantissenteil des Zwischenquotienten im Register 11 gesetzt.
Von der Zählschaltung 100 wird geprüft, ob der im Register 11 gesetzte Mantissenteil des Zwischenquotienten um eine Ziffer nach rechts verschoben werden muß. Wenn geurteilt wird, daß dieser Mantissenteil verschoben werden muß, wird er in der Verschiebeeinrichtung 20 um eine Ziffer nach rechts verschoben, anschließend wird der im Register 80 gesetzte Exponententeil des Zwischenquotienten mittels der Recheneinrichtung 90 korrigiert, d. h. der Wert des Exponententeils wird um eins erhöht.
Wenn das nullte Bit EXP₀ des korrigierten Wertes des Exponententeils des Zwischenquotienten den Wert "1" besitzt, wird die Erzeugung eines Exponentenüberlaufs oder -unterlaufs angezeigt.
Wenn das Bit EXP₀ den Wert "1" besitzt und das EXP-OV-Zustandsbit gesetzt ist, wird angezeigt, daß ein Exponentenüberlauf erzeugt wird. Wenn das Bit EXP₀ den Wert "1" besitzt, jedoch das EXP-OV-Zustandsbit nicht gesetzt ist, wird angezeigt, daß ein Exponentenunterlauf erzeugt wird.

Claims (9)

1. Gleitkommaprozessor, gekennzeichnet durch
eine Addier/Subtrahiereinrichtung (90), die Daten mit einer Datenbreite verarbeiten kann, die durch Addition eines Bits zum linken Ende des Exponententeils sowohl eines Multiplikators/Divisors als auch eines Multiplikanden/Dividenden erhalten wird, und für die Exponententeile des Multiplikators/Divisors und des Multiplikanden/Dividenden eine Rechenoperation ausführt;
eine Recheneinrichtung (21), deren Ausgabebreite größer ist als die aus der Datenbreite des Mantissenteils des Multiplikators/Divisors und der Datenbreite des Mantissenteils des Multiplikanden/Dividenden sich ergebende Summe, und das Produkt der Mantissenteile des Multiplikanden und des Multiplikators und den Quotienten des durch den Mantissenteil des Divisors dividierten Mantissenteil des Dividenden erzeugt;
eine Verschiebeeinrichtung (20) zum bitweisen Verschieben der Ausgabe der Recheneinrichtung (21);
eine Decoderschaltung (110), die entsprechend den Werten des nullten und ersten Bits der Ausgabe der Addier/Subtrahiereinrichtung (90) eine decodierte Ausgabe liefert; und
eine Auffangschaltung (120) zum Auffangen der Ausgabe der Decoderschaltung.
2. Gleitkommaprozessor gemäß Anspruch 1, gekennzeichnet durch eine Entscheidungsschaltung (140), die entsprechend der Kombination des Wertes des nullten Bits der Ausgabe der Addier/Subtrahiereinrichtung (90) und des Wertes der Ausgabe der Auffangschaltung (120) eine Ausgabe liefert.
3. Gleitkommaprozessor gemäß Anspruch 1, dadurch gekennzeichnet, daß die Decoderschaltung (110) eine Exklusiv-ODER-Schaltung für die Erzeugung einer Exklusiv-ODER-Verknüpfung der Werte des nullten und des ersten Bits der Ausgabe der Addier/Subtrahiereinrichtung (90) aufweist.
4. Gleitkommaprozessor gemäß Anspruch 2, gekennzeichnet durch eine Schaltung (100, 10, 11) zur Ermittlung der Anzahl der Null-Ziffern, die ununterbrochen im linken Endabschnitt der Ausgabe der Recheneinrichtung (21) erscheinen.
5. Gleitkommaprozessor gemäß Anspruch 4, gekennzeichnet durch eine Quotientenerzeugungsschaltung (130), die mit der Ermittlungsschaltung (100, 10, 11) und der Recheneinrichtung (21) verbunden ist, um nacheinander Werte zu erzeugen, die den dem Dividenden und dem Divisor entsprechenden Quotienten angeben.
6. Gleitkommaprozessor, gekennzeichnet durch
eine Addier/Subtrahiereinrichtung (90), die Daten mit einer Datenlänge verarbeiten kann, die durch Addition eines Bits zum linken Ende des Exponententeils sowohl eines Multiplikators als auch eines Multiplikanden erhalten wird, und eine Rechenoperation für die Exponententeil des Multiplikators und des Multiplikanden ausführt;
eine Recheneinrichtung (21) mit einer Ausgabebreite, die größer ist als die aus der Datenbreite des unnormalisierten Mantissenteils des Multiplikators und aus der Datenbreite des unnormalisierten Mantissenteils des Multiplikanden gebildete Summe, und das Produkt der unnormalisierten Mantissenteile des Multiplikanden und des Multiplikators erzeugt;
eine Verschiebeeinrichtung (20), die bitweise die Ausgabe der Recheneinrichtung (21) verschiebt;
eine Decoderschaltung (110), die entsprechend den Werten des nullten und des ersten Bits der Ausgabe der Addier/Subtrahiereinrichtung (90) eine decodierte Ausgabe liefert; und
eine Auffangschaltung (120), die die Ausgabe der Decoderschaltung (110) auffängt.
7. Gleitkommaprozessor gemäß Anspruch 6, gekennzeichnet durch eine Normalisierungsschaltung (10, 11, 20, 21, 90), die mit der Recheneinrichtung (21) und der Addier/Subtrahiereinrichtung (90) verbunden ist, um die Ausgaben der Recheneinrichtung (21) und der Addier/Subtrahiereinrichtung (90) entsprechend der Anzahl der Null-Ziffern, die ununterbrochen am linken Endabschnitt des von der Recheneinrichtung (21) erzeugten Produktes erscheinen.
8. Gleitkommaprozessor gemäß Anspruch 7, gekennzeichnet durch eine Überlauf/Unterlauf-Ermittlungsschaltung (140), die entsprechend der Kombination des Ausgabewertes der Auffangschaltung (120) und des Wertes des nullten Bits derjenigen Ausgabe, die von der Addier/Subtrahiereinrichtung (90) ausgelöst durch die Normalisierungsoperation der Normalisierungsschaltung (10, 11, 20, 21, 90) ausgegeben wird, einen Code ausgibt.
9. Gleitkommamultiplikationsvorrichtung, gekennzeichnet durch
eine Addier/Subtrahiereinrichtung (90) mit einer Operationsbreite, die gleich der Datenbreite ist, die durch Addition eines Bits zum linken Ende des Exponententeils sowohl eines Multiplikators als auch eines Multiplikanden erhalten wird, und für die Exponententeile des Multiplikators und des Multiplikanden eine Rechenoperation ausführt;
eine Multiplikationsvorrichtung (10, 11, 21, 30, 40, 50), in die die Mantissenteile des Multiplikators und des Multiplikanden eingegeben werden und die das Produkt der Mantissenteile des Multiplikators und des Multiplikanden ausgibt;
eine Verschiebeeinrichtung (20), in die das Produkt der Mantissenteile eingegeben wird,
eine Null-Ermittlungsschaltung (100), die die Anzahl der Null-Ziffern, die ununterbrochen im linken Endabschnitt des Mantissenteils eines letzten Zwischenproduktes des Multiplikanden und des Multiplikators erscheinen; und
eine Decoderschaltung (110), in die das nullte und das erste Bit der Ausgabe der Addier/Subtrahiereinrichtung (90) eingegeben wird, um einen der Kombination der Werte des nullten und des ersten Bits entsprechenden Code auszugeben, wobei ein Exponentenüberlauf und ein Exponentenunterlauf derart ermittelt werden kann, daß ein den Wert "0" besitzendes Bit zum linken Ende des Exponententeils sowohl eines unnormalisierten Multiplikators als auch eines unnormalisierten Multiplikanden addiert wird, um erweiterte Exponententeile zu bilden, daß die Summe der erweiterten Exponententeile des Multiplikators und des Multiplikanden und das Produkt der Mantissenteile des Multiplikators und des Multiplikanden berechnet werden, daß der Mantissenteil des letzten Zwischenproduktes des Multiplikanden und des Multiplikators in die Null-Ermittlungsschaltung (100) eingegeben wird, um die Anzahl der Null-Ziffern zu ermitteln, daß der Mantissenteil des letzten Zwischenproduktes in der Verschiebeeinrichtung (20) um die ermittelte Anzahl von Null-Ziffern nach links verschoben wird, und die ermittelte Anzahl von Null-Ziffern vom Exponententeil des letzten Zwischenproduktes mittels der Addier/Subtrahiereinrichtung (90) subtrahiert wird, um den Mantissenteil und den Exponententeil des Produkts zu bestimmen, und daß ein Exponentenüberlauf und ein Exponentenunterlauf auf der Grundlage des Wertes des nullten Bits des bestimmten Exponententeils des Produktes und des Wertes des nullten und des ersten Bits des Exponententeils des letzten Zwischenproduktes ermittelt wird.
DE19893931545 1988-09-21 1989-09-21 Gleitkommaprozessor Withdrawn DE3931545A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP23716188A JPH0283728A (ja) 1988-09-21 1988-09-21 浮動小数点乗算装置

Publications (1)

Publication Number Publication Date
DE3931545A1 true DE3931545A1 (de) 1990-03-22

Family

ID=17011295

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19893931545 Withdrawn DE3931545A1 (de) 1988-09-21 1989-09-21 Gleitkommaprozessor

Country Status (2)

Country Link
JP (1) JPH0283728A (de)
DE (1) DE3931545A1 (de)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5195052A (en) * 1991-12-13 1993-03-16 International Business Machines Corporation Circuit and method for performing integer power operations
EP0677806A1 (de) * 1994-04-15 1995-10-18 International Business Machines Corporation Detektionssystem für Gleitkomma-Über- und Unterlauf
DE19623465A1 (de) * 1995-10-16 1997-04-24 Mitsubishi Electric Corp Normalisierungsschaltung einer Gleitkommaberechnungsvorrichtung
US20130254516A1 (en) * 2012-03-22 2013-09-26 Fujitsu Limited Arithmetic processing unit
CN112292663A (zh) * 2018-06-19 2021-01-29 罗伯特·博世有限公司 使至少两个被乘数相乘的计算单元、方法和计算机程序

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0645699A1 (de) * 1993-09-29 1995-03-29 International Business Machines Corporation Instruktionsfolge zur Hochgeschwindigkeits-Multiplizierung-Addierung in einem Pipeline-Gleitkommaprozessor

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3143223C2 (de) * 1980-10-31 1988-06-01 Hitachi, Ltd.

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3143223C2 (de) * 1980-10-31 1988-06-01 Hitachi, Ltd.

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
US-Z.: IBM Technical Disclosure Bulletin, Vol. 20, No. 5, Oct. 1977, S. 1726-1727 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5195052A (en) * 1991-12-13 1993-03-16 International Business Machines Corporation Circuit and method for performing integer power operations
EP0677806A1 (de) * 1994-04-15 1995-10-18 International Business Machines Corporation Detektionssystem für Gleitkomma-Über- und Unterlauf
US5553015A (en) * 1994-04-15 1996-09-03 International Business Machines Corporation Efficient floating point overflow and underflow detection system
DE19623465A1 (de) * 1995-10-16 1997-04-24 Mitsubishi Electric Corp Normalisierungsschaltung einer Gleitkommaberechnungsvorrichtung
DE19623465C2 (de) * 1995-10-16 1998-05-20 Mitsubishi Electric Corp Normalisierungsschaltung einer Gleitkommaberechnungsvorrichtung
US20130254516A1 (en) * 2012-03-22 2013-09-26 Fujitsu Limited Arithmetic processing unit
CN112292663A (zh) * 2018-06-19 2021-01-29 罗伯特·博世有限公司 使至少两个被乘数相乘的计算单元、方法和计算机程序
CN112292663B (zh) * 2018-06-19 2023-12-12 罗伯特·博世有限公司 使至少两个被乘数相乘的计算单元、方法和计算机程序

Also Published As

Publication number Publication date
JPH0283728A (ja) 1990-03-23

Similar Documents

Publication Publication Date Title
DE69132807T2 (de) Verfahren und Gerät zur Berechnung von Gleitkommadaten
DE69131458T2 (de) Hardware-Anordnung zur Addition und Subtraktion von Gleitkommazahlen
DE69132517T2 (de) Gleitkommaprozessor
DE69130653T2 (de) "Pipelined" Verarbeitungseinheit für Fliesskommazahlen
DE69131187T2 (de) Hochgeschwindigkeitsdividierer
DE69416283T2 (de) Überlaufsteuerung für arithmetische Operationen
DE68929114T2 (de) Gleitkomma-arithmetische Einheiten
DE2246968C2 (de) Einrichtung zur Multiplikation zweier Gleitkommazahlen
DE69032891T2 (de) Verfahren und Gerät zur Ausführung mathematischer Funktionen mit Hilfe polynomialer Annäherung und eines Multiplizierers rechteckigen Seitenverhältnisses
DE69131736T2 (de) Gleitkomma-Verarbeitungseinheit mit Normalisierung
DE68928376T2 (de) Vorrichtung zum multiplizieren, teilen und ziehen der quadratwurzel
DE68926330T2 (de) Antizipator für die Anzahl vorhergehender Nullen/Einsen
DE69430053T2 (de) Ganzzahldivisionsvorrichtung und -verfahren
DE1956209C3 (de) Multipliziervorrichtung
DE69130510T2 (de) Arithmetisches Gerät zur Berechnung von transzendenten Elementarfunktionen
DE68924386T2 (de) Verfahren und Gerät zur Radix-2**n-Division mit überlappender Quotientenbitauswahl und gleichzeitiger Rundung und Korrektur des Quotienten.
DE69032890T2 (de) Verfahren und Gerät zur Ausführung der Quadratwurzelfunktion mit Hilfe eines Multiplizierers rechteckigen Seitenverhältnisses
DE69227348T2 (de) DIVIDIERSCHALTUNG FüR GLEITKOMMAZAHLEN
DE19781794C2 (de) Verfahren und Einrichtung zur Division von Gleitkomma- oder ganzen Zahlen
DE3853379T2 (de) Mit Pseudo-Division arbeitender arithmetischer Prozessor für trigonometrische Funktionen.
DE3701599C2 (de)
DE2816711A1 (de) Divisionseinrichtung mit uebertrags- rettungsaddierwerk und nicht ausfuehrender vorausschau
DE69808362T2 (de) Multiplizierverfahren und Multiplizierschaltung
DE2222197B2 (de) Anordnung zum Auf- bzw. Abrunden von Binärzahlen
DE4019646C2 (de) Vorrichtung und Verfahren zum Multiplizieren von Datenwörtern in Zweier-Komplement-Darstellung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8130 Withdrawal