DE19540102A1 - Gleitkomma-Recheneinheit mit einer Logik für eine Vierfach-Präzisions-Arithmetik - Google Patents

Gleitkomma-Recheneinheit mit einer Logik für eine Vierfach-Präzisions-Arithmetik

Info

Publication number
DE19540102A1
DE19540102A1 DE19540102A DE19540102A DE19540102A1 DE 19540102 A1 DE19540102 A1 DE 19540102A1 DE 19540102 A DE19540102 A DE 19540102A DE 19540102 A DE19540102 A DE 19540102A DE 19540102 A1 DE19540102 A1 DE 19540102A1
Authority
DE
Germany
Prior art keywords
precision
double
expanded
bit
quadruple
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.)
Granted
Application number
DE19540102A
Other languages
English (en)
Other versions
DE19540102C2 (de
Inventor
Peter Markstein
Clemens Roothaan
Dennis Brzezinski
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.)
HP Inc
Original Assignee
Hewlett Packard Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of DE19540102A1 publication Critical patent/DE19540102A1/de
Application granted granted Critical
Publication of DE19540102C2 publication Critical patent/DE19540102C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/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
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3812Devices capable of handling different types of numbers
    • G06F2207/382Reconfigurable for different fixed word lengths
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • G06F7/49947Rounding
    • G06F7/49957Implementation of IEEE-754 Standard

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 vorliegende Erfindung bezieht sich auf ein Datenverar­ beitungssystem mit einer Gleitkomma-Recheneinheit und ins­ besondere auf ein Verfahren und eine Vorrichtung zum Durch­ führen von Vierfach-Präzisions-Gleitkomma-Rechenoperationen auf einer Hardware, die für eine geringere als eine Vier­ fach-Präzision (quad precision) implementiert ist.
Das Auftreten von Computern hat die Fähigkeiten, komplexe numerische Berechnungen schnell durchzuführen, revolutio­ niert. Beispielsweise war vor der Verfügbarkeit von Compu­ tern die Wettervorhersage praktisch unmöglich. Obwohl theo­ retisch möglich, erfordert eine solche Vorhersage viele Be­ rechnungen und braucht daher ohne die Verwendung von Compu­ tern so viel Zeit, daß die Vorhersagen veraltet sind, lange bevor die Berechnungen beendet sein könnten. Jedoch macht die Verfügbarkeit von Computern bestimmte Berechnungen, wie z. B. eine Wettervorhersage, möglich, die ohne Computer sinn­ los gewesen wären.
Trotzdem waren selbst mit frühen Computern einige Berechnun­ gen zu zeitaufwendig, um durchführbar zu sein. Andere Be­ rechnungen, selbst wenn sie auf Spezialcomputern mit ausrei­ chend hohen Geschwindigkeiten ausführbar sind, wären auf Universalcomputern zu langsam. Mit der Verbesserung des Mi­ kroprozessorverhaltens kann jedoch eine viel größere Anzahl von Berechnungstypen innerhalb einer vernünftigen Zeitdauer ausgeführt werden. Während der späten achtziger Jahre verbes­ serte sich das Verhalten von auf Mikroprozessoren basieren­ den Maschinen mit einer Rate von 1,5- bis 2mal pro Jahr. Es ist wahrscheinlich, daß sich dieser Trend fortsetzt. Es ist daher nun möglich, Berechnungen durchzuführen, die vor nur ein paar Jahren übermäßig langsam gewesen wären oder nur auf Supercomputern oder anderen Spezialcomputern möglich gewesen wären.
Viele zeitaufwendige Berechnungen sind iterative Prozeduren. Iterative Prozeduren sind aufgrund der Akkumulation eines Abrundungsfehlers anfällig für ungenaue Ergebnisse. Bei ei­ ner Gleitkomma-Arithmetik kann jede Berechnung einen be­ stimmten Betrag eines Abrundungsfehlers einführen. Ein ge­ ringer Präzisionsverlust aufgrund eines Abrundungsfehlers kann zu einer großen Ungenauigkeit nach mehreren Iterationen anwachsen.
Ein Beispiel eines Abrundungsfehlers ist die Wirkung des Darstellens von irrationalen Zahlen in einer festen Bitan­ zahl. Der Grad der Präzision in einem abschließenden Er­ gebnis ist proportional zu der Anzahl der Stellen des Signi­ fikanden (bzw. der Mantisse), der für Zwischenergebnisse verwendet wird. Da moderne Architekturen stark iterative Prozeduren möglich machen, ist es erwünscht, die Präzision der Ergebnisse dieser Prozeduren beizubehalten, indem ermög­ licht wird, daß die Zwischenergebnisse derselben in einem Format gespeichert werden, das viele Signifikandenstellen aufweist.
Eine zusätzliche Motivation für lange Signifikanden ist das Problem der arithmetischen Operationen, die Größen stark un­ terschiedlicher Größenordnungen einschließen, beispielsweise die Addition einer sehr kleinen Größe und einer sehr großen Größe. Prozeduren für eine Gleitkomma-Addition richten den Signifikanden jedes Operanden üblicherweise derart aus, daß beide Größen den gleichen Exponenten aufweisen. Diesem Schritt folgt das Addieren der Signifikanden. Wenn die Si­ gnifikandenaddition einen Überlauf zur Folge hat, inkremen­ tiert die Prozedur als nächstes den Exponenten des Ergebnis­ ses. Die Signifikanden-Ausrichtungsprozedur erfordert das Verschieben eines (oder beider) Signifikands(en). Das Ver­ schieben eines Signifikanden kann zur Folge haben, daß eini­ ge Bits des Signifikanden verloren werden. Derartige Verlu­ ste sind eine Folge des Schiebens des Signifikanden über das Feld, das zur Speicherung des Signifikanden verfügbar ist, hinaus. Es ist daher erwünscht, durch das Erweitern des Be­ reichs, in dem Verschiebungen ohne einen übermäßigen Präzi­ sionsverlust durchgeführt werden können, größere Signifikan­ den zu ermöglichen.
Der IEEE-Standard 754 spezifiziert ein Bruchzahlfeld von 32 Bit für eine einfache Präzision und ein Bruchzahlfeld von 52 Bit für eine zweifache Präzision. Diese Formate entsprechen näherungsweise sieben bzw. siebzehn signifikanten Dezimal­ stellen. Es gibt Berechnungen, die ungenau sind, selbst wenn eine zweifache Präzision verwendet wird. Es ist daher er­ wünscht, eine Einrichtung für Gleitkomma-Berechnungen mit einer noch höheren Präzision zu schaffen.
Es ist möglich, eine Hardware für eine Vierfachpräzision zu schaffen, wobei eine solche Hardware jedoch im allgemeinen nicht erwünscht ist. Eine Vierfach-Präzisions-Hardware würde Datenwege und arithmetische Logikeinheiten einer Breite von 128 Bit erfordern. Diese Datenwege und diese großen ALUs (ALU = Arithmetic Logic Unit = arithmetische Logikeinheit) verwenden eine Fläche auf Mikroprozessor-Chips, die für an­ dere Funktionen verwendet werden könnte. Außerdem verbrau­ chen breitere Datenwege und ALUs größere Chipflächen, und breitere Datenwege und ALUs bringen längere Ausführungsver­ zögerungen mit sich. Obwohl für bestimmte Berechnungen eine Vierfachpräzision entweder erwünscht oder notwendig ist, ist für andere Berechnungen eine zweifache Präzision oder eine einfache Präzision adäquat. Aufgrund der breiteren Datenwege auf tatsächlichen Vierfach-Präzisions-Prozessoren wären die Berechnungen mit doppelter und einfacher Präzision auf einer derartigen Hardware langsamer als auf einer Einfach- und Zweifach-Präzisions-Hardware.
Es ist daher erwünscht, schnelle Vierfach-Präzisions-Berech­ nungen zu liefern, ohne Zweifach- und Einfach-Präzisions-Be­ rechnungen übermäßig zu verlangsamen.
Es ist möglich, Vierfach-Präzisions-Berechnungen auf einer Zweifach-Präzisions-Hardware ohne eine Modifikation der Hardware zu liefern. Jedoch sind solche Implementierungen unerwünscht langsam, da sich dieselben zum Ausführen der Vierfach-Präzisions-Berechnungen stark auf die Software stützen.
Ausgehend von dem genannten Stand der Technik liegt die Auf­ gabe der vorliegenden Erfindung darin, ein Verfahren und ei­ ne Vorrichtung zu schaffen, um Berechnungen mit einer hohen Präzision zu ermöglichen, ohne Berechnungen mit einer gerin­ geren Präzision zu verlangsamen.
Diese Aufgabe wird durch Verfahren gemäß Patentanspruch 1 und 6 sowie eine Vorrichtung gemäß Patentanspruch 8 gelöst.
Allgemein gesprochen ermöglicht die Erfindung Vierfach-Prä­ zisions-Berechnungen auf einem Zweifach-Präzisions-Prozes­ sor. Die Erfindung weist eine Gleitkomma-Einheit zum Mani­ pulieren von Gleitkomma-Zahlen in einem zweifach-erweiterten Format auf. Die Gleitkomma-Einheit ist wirksam, um Befehle für eine Umwandlung zwischen einer tatsächlichen Vierfach- Präzisions-Darstellung und einer doppelten zweifach-erwei­ terten Darstellung auszuführen, bei der sich ein Paar von Zahlen in einem zweifach-erweiterten Format zu exakt einer äquivalenten Vierfach-Präzisions-Zahl addieren. Die Gleit­ komma-Einheit führt ferner Befehle aus, um Gleitkomma-Zahlen in der doppelten zweifach-erweiterten Darstellung korrekt auf einen beliebigen der IEEE-754-spezifizierten Rundungs­ modi zu runden.
Die Erfindung liefert Benutzern Werkzeuge zum Umwandeln von Vierfach-Präzisions-Zahlen in Paare von Zweifach-Präzi­ sions-Zahlen. Eine definierende Eigenschaft der Paare von Zahlen mit zweifach-erweiterter Präzision besteht darin, daß, wenn ein Paar von Zahlen mit zweifach-erweiterter Prä­ zision addiert wird, wenn dieselben mit einer unbegrenzten Präzision addiert werden, die resultierende Summe exakt gleich der entsprechenden Vierfach-Präzisions-Zahl ist. Eine zweite definierende Eigenschaft der doppelten zweifach-er­ weiterten Zahlen besteht darin, daß der Exponent der größe­ ren Ordnung der zwei Zahlen einen Exponent aufweist, der zu­ mindest um n größer als die kleinere Zahl ist, wobei n die Anzahl von Bits in dem Signifikanden eines zweifach-erwei­ terten Worts ist.
Nach dem Umwandeln einer Vierfach-Präzisions-Zahl in eine doppelte zweifach-erweiterte Darstellung kann der Benutzer arithmetische Operationen unter Verwendung einer zweifach- erweiterten Hardware auf den zwei Zahlen mit zweifach-erwei­ terter Präzision durchführen. Das Ergebnis dieser arithmeti­ schen Operationen ist ein weiteres Paar von Zahlen mit zwei­ fach-erweiterter Präzision. Die Erfindung liefert ferner Werkzeuge zum Umwandeln dieses resultierenden Paars von Zah­ len mit zweifach-erweiterter Präzision in eine gemäß IEEE- 754 ordnungsgemäß gerundete Vierfach-Präzisions-Zahl.
Jede der zweifach-erweiterten Zahlen weist ein Exponenten­ feld auf, das zumindest ein Bit breiter ist als das Expo­ nentenfeld einer Vierfach-Präzisions-Zahl. Außerdem weist bei der vorliegenden Erfindung jede der Zahlen mit zwei­ fach-erweiterter Präzision zusätzlich zu den Bits, die üb­ licherweise in einer Zahl mit zweifach-erweiterter Präzision enthalten sind, ein zusätzliches Bit auf, das Kritisch-Bit (sticky bit). Das Kritisch-Bit ist verwendet, um Vierfach- Präzisions-Ergebnisse ordnungsgemäß gemäß den IEEE-754-Run­ dungsmodi zu runden.
Als eine Vorrichtung ist die Erfindung einer Gleitkomma-Re­ cheneinheit zugeordnet. Die Erfindung ermöglicht, daß die Gleitkomma-Recheneinheit eine Vierfach-Präzisions-Arithmetik auf einer Hardware ausführt, die für eine zweifach-erweiter­ te Präzision entwickelt ist. Die Vorrichtung weist folgende Merkmale auf: eine Mehrtor-Speichervorrichtung zum Speichern von Daten, eine Recheneinrichtung zum Multiplizieren zweier Zahlen, um ein Produkt zu erzeugen, und zum Addieren zweier Zahlen, um eine Summe zu erzeugen; einen Mikrocode für eine Vielzahl von Vierfach-Präzisions-Rechenoperationen, welche Multiplizieren, Addieren, Subtrahieren, Dividieren und Qua­ dratwurzelziehen einschließen.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend bezugnehmend auf die beiliegenden Zeich­ nungen näher erläutert. Es zeigt
Fig. 1 ein Blockdiagramm eines Prozessors mit einer Gleit­ komma-Einheit gemäß einem bevorzugten Ausführungs­ beispiel der Erfindung;
Fig. 2 ein Blockdiagramm einer Gleitkomma-Recheneinheit gemäß einem bevorzugten Ausführungsbeispiel der Er­ findung;
Fig. 3 verschiedene Gleitkomma-Formate;
Fig. 4 eine Darstellung eines Computerspeichers, der ver­ schiedene Gleitkomma-Formate speichert; und
Fig. 5 ein Flußdiagramm der elementaren Operationen, die durch eine Steuereinheit durchgeführt werden.
Die Erfindung ist zur Verwendung in einer Gleitkomma-Rechen­ einheit bestimmt. Die Erfindung ermöglicht, daß eine Gleit­ komma-Recheneinheit korrekte IEEE-754-Ergebnisse mit einer Präzision erzeugt, die bis zu zweimal so hoch ist wie die, die durch die Hardware geboten wird. Vorzugsweise ergibt die Erfindung eine 2N-Bit-Näherung (volle Präzision) aus einer N-Bit-Näherung (halbe Präzision). Wenn die Hardware bei­ spielsweise in der Lage ist, die Zweifach-Präzisions-Ergeb­ nisse zu liefern, wird die Erfindung die Vierfach-Präzi­ sions-Ergebnisse liefern. Die Erfindung ist gleichermaßen auf Multi-Präzisions-Zahlen anwendbar. Multi-Präzisions-Zah­ len sind Zahlen, die eine Präzision aufweisen, die größer als die vierfache Präzision ist. Diese Zahlen können in ei­ nem Einfach-Präzisions-Gleitkomma-Array gespeichert sein. Bei einer Implementierung ist das erste Wort in dem Array eine ganzzahlige Gleitkomma-Zahl, deren absoluter Wert die Anzahl von Worten in der Mantisse darstellt. Das Vorzeichen des ersten Worts ist das Vorzeichen der Multi-Präzisions- Zahl. Das nächste Wort ist eine ganzzahlige Gleitkomma-Zahl, die den Exponenten der Basis der Zahl darstellt. Der Dezi­ malpunkt folgt dem ersten Mantissenwort. Bekannte Software- Bibliotheksroutinen sind verfügbar, um auf diesen Zahlen ma­ thematische Operationen durchzuführen. Siehe beispielsweise Bailey, A Portable High Performance Multiprecision Package, RNR Technical Report RNR-90-022, NASA Applied Research Branch, NASA Ames Research Center, Moffett Field, Califor­ nia, Mai 1922.
Ausführungsbeispiele der Erfindung werden nachfolgend bezug­ nehmend auf die Fig. 1 bis 5 erörtert. Es ist für Fachleute jedoch ohne weiteres offensichtlich, daß die hierin gegebe­ ne, detaillierte Beschreibung bezüglich dieser Figuren er­ klärenden Zwecken dient, da sich die Erfindung über diese begrenzten Ausführungsbeispiele hinaus erstreckt.
Fig. 1 ist ein Blockdiagramm eines Prozessors 100, der eine Gleitkomma-Einheit zum Durchführen von Vierfach-Präzisions- Berechnungen unter Verwendung einer erweiterten Zweifach- Präzisions-Hardware aufweist. Der Prozessor 100 weist eine zentrale Verarbeitungseinheit (CPU) 101 auf, die mit zumin­ dest einer Spezialeinheit 103 (SFU = special function unit) verbunden ist. Die CPU 101 ist über einen Bus 111 ferner mit einem Übersetzungs-Querverweis-Puffer (TLB; TLB = transla­ tion lookaside buffer) 105, einem Cache 107 und einer Gleit­ komma-Einheit (FPU; FPU = floating point unit) 109 verbun­ den. Bei einem bevorzugten Ausführungsbeispiel ist die FPU 109 eine FPU eines verschmolzenen Multiplizier-Addier-Ent­ wurfs (MAF-Entwurfs; MAF = multiply-add-fused). Die FPU 109 wird detaillierter in Verbindung mit den Fig. 2 bis 5 er­ läutert.
Der Prozessor 100 ist über einen Hauptbus 113, der mit dem Cache 107 und dem TLB 105 verbunden ist, mit weiteren Pro­ zessoren und Peripherie-Geräten verbunden.
Fig. 2 ist ein Blockdiagramm der Gleitkomma-Recheneinheit 109 gemäß einem bevorzugten Ausführungsbeispiel der Erfin­ dung. Die Gleitkomma-Recheneinheit 109, die in Fig. 2 dar­ gestellt ist, ist eine verschmolzene Multiplizier-Addier-FPU (MAF-FPU). Das heißt, daß eine Multiplikationseinheit und ein Addierer zusammen verschmolzen sind, derart, daß eine Multiplikation und eine Addition als eine kleinste (atomic) Operation stattfinden können, das heißt, daß die elementare Operation a + b * c ist. Eine Addition wird als a + 1 * c durchgeführt und eine Multiplikation als 0 + b * c.
Der Prozessor 100 besitzt eine Arbeits-Präzision von N Bits. Bei einem bevorzugten Ausführungsbeispiel ist die Arbeits­ präzision des Prozessors 100 die IEEE-754-Zweifach-Präzi­ sion. Die Fig. 3(a), 3(b) und 3(c) zeigen verschiedene Gleitkomma-Datentypen, während Fig. 3(d) ein spezielles Da­ tenformat zeigt, das von dem Prozessor 100 verwendet wird. Fig. 3(a) zeigt die Felder eines IEEE-754-Standard-Einfach- Präzisions-Gleitkomma-Formats. Dasselbe weist ein einzelnes Vorzeichenbit, einen 8-Bit-Exponenten und eine 23-Bit-Bruch­ zahl auf. Fig. 3(b) zeigt ein IEEE-754-Zweifach-Präzisions- Format. Dasselbe weist ein einzelnes Vorzeichenbit, einen 11-Bit-Exponenten und eine 52-Bit-Bruchzahl auf. Fig. 3(c) zeigt ein Vierfach-Präzisions-Format. Dasselbe weist ein einzelnes Vorzeichenbit, einen 15-Bit-Exponenten und eine 112-Bit-Bruchzahl auf. Der Prozessor 100 speichert eine Vierfach-Präzisions-Zahl in zwei benachbarten 64-Bit-Worten im Speicher. Fig. 3(d) zeigt das Format einer zweifach-er­ weiterten 81-Bit-Gleitkomma-Darstellung. Das zweifach-erwei­ terte Format weist ein einzelnes Vorzeichenbit auf, einen 16-Bit-Exponenten, ein explizites Integer-Bit und eine 63- Bit-Bruchzahl. Das Format von Fig. 3(d) weist ferner ein Kritisch-Bit (SB; SB = Sticky Bit) auf, das nachfolgend de­ taillierter beschrieben wird.
Zu darstellenden Zwecken wird die vorliegende Erfindung be­ züglich der zweifach-erweiterten IEEE-754-Präzision als Ar­ beitspräzision beschrieben, d. h. einer Wortbreite von 81 Bit, und einer erweiterten Präzision, die gleich der vierfa­ chen Präzision ist, wie sie oben in Fig. 3(d) definiert ist. Ein Fachmann wird viele Alternativen zu diesem Beispiel er­ kennen, wobei die vorliegende Erfindung aufgefaßt werden sollte, um alle solche Alternativen in dem Bereich der An­ sprüche einzuschließen.
Fig. 4 zeigt einen Abschnitt eines linearen Computerspei­ chers 400. Wie gezeigt ist, ist der Speicher 64 Bit breit, beispielsweise entspricht jede Speicheradresse einer 64- Bit-Größe. Bei einem alternativen Ausführungsbeispiel ent­ spricht jede Speicheradresse einer 8-Bit-Größe (einem Byte) und jedes 64-Bit-Wort befindet sich 8 Adressorte von dem nächsten oder vorherigen 64-Bit-Wort.
Am Speicherplatz 401 ist eine Einfach-Präzisions-Größe ge­ speichert, wobei das Vorzeichenbit, der Exponent und die Bruchzahl die halbe Breite des Speichers besetzen. Im Fall der IEEE-754-Standard-Einfachpräzision entspricht dies 32 Bits aus einem 64-Bit breiten Speicher. Der Speicherort 403 zeigt eine IEEE-754-Zweifach-Präzisions-Zahl. Die Speicher­ orte 405 und 407 entsprechen einer Vierfach-Präzisions-Zahl. Der erste Speicherort der Vierfach-Präzisions-Zahl enthält das Vorzeichenbit, den Exponenten und den signifikantesten Teil der Bruchzahl, während der zweite Speicherort den Rest der Bruchzahl enthält. Wenn die zwei Speicherorte folglich verknüpft werden, entsprechen sie der Vierfach-Präzisions- Darstellung einer Zahl.
Wie wiederum in Fig. 2 gezeigt ist, ist die FPU 109 mit ei­ nem Speichersystem 228 verbunden, um Informationen in eine Registerdatei 202 zu laden und um Informationen von der Re­ gisterdatei 202 zu speichern. Die Registerdatei speichert Informationen in einem Format mit erweiterter zweifacher Präzision, wie es in Fig. 3(d) gezeigt ist. Folglich ist bei dem bevorzugten Ausführungsbeispiel jedes Register in der Registerdatei 202 82 Bit breit. Es sei bemerkt, daß jedes Register in der Registerdatei 202 ein Bit enthält, das als das "Kritisch-Bit" (SB) bezeichnet wird, welches zum korrek­ ten Runden von Zahlen, die in den Registern gehalten sind, verwendet wird. Das "Kritisch-Bit" und das Runden werden de­ tailliert nachfolgend erörtert.
Eine Operation, um eine Vierfach-Präzisions-Größe von dem Speicher 228 in die Registerdatei 202 zu laden, bewirkt eine Übertragung des ersten 64-Bit-Worts der Vierfach-Präzi­ sions-Größe von dem Speicher in die niederstwertigen 64 Bits eines Registers und des zweiten 64-Bit-Worts der Vierfach- Präzisions-Größe von dem Speicher in die niederstwertigen 64 Bits eines zweiten Registers. Bei dem bevorzugten Ausfüh­ rungsbeispiel werden diese Übertragungen üblicherweise mit zwei Befehlen durchgeführt, um bei der Registerspezifikation eine volle Flexibilität zu ermöglichen. Bei einem alternati­ ven Ausführungsbeispiel wird die Übertragung jedoch mit ei­ nem einzigen Befehl und einer erzwungenen Gerade/Ungerade- Adressregister-Paarbildung erreicht.
Die Mehrtor-Registerdatei 202 weist Lesetore A, B, C und D und Schreibtore E, F und G auf. Eine Multiplikationseinheit 204 empfängt einen Multiplikanden und einen Multiplikator von den Lesetoren A und B und erzeugt ein Produkt. Ein Aus­ richtungsschieber 206 empfängt einen Summanden von dem Le­ setor D und richtet unter Verwendung eines Signals 207 von der Multiplikationseinheit 204 den Summanden gemäß dem Expo­ nenten des Produkts aus.
Ein 3 : 2-Übertrag-Speicherungs-Addierer 208 empfängt Eingaben von der Multiplikationseinheit 204 und dem Ausrichtungs­ schieber 206 und liefert eine Ausgabe von zumindest 2N Bit zu einem Übertrag-Ausbreitungs-Addierer 210. Die Erfindung erfordert nur die Verwendung der vorderen 2N Bit von dem Übertrag-Speicherungs-Addierer 208. Der Übertrag-Ausbrei­ tungs-Addierer 210 erzeugt ein 2N-Bit-Ergebnis, das in eine Anzahl von Multiplexern (muxes) geführt wird, die kollektiv als Vierfach-Daten-Multiplexer 232 bezeichnet sind. Die Vierfach-Daten-Multiplexer 232 liefern eine Abbildung zwi­ schen verschiedenen Datenformaten. Die Abbildungen werden nachfolgend in Verbindung mit den Fig. 3 und 4 erläutert. Die neu-abgebildete Ausgabe von den Vierfach-Daten-Multi­ plexern 232 wird dann durch einen Normier-Schieber 212 nor­ miert und durch einen Rundungsinkrementierer 214 auf ein 2N-Bit-Ergebnis gerundet. Das gerundete Ergebnis wird dann in zwei N-Bit-Abschnitten einem Hoch-Abschnitt-Latch 216 bzw. einem Niedrig-Abschnitt-Latch 218 geliefert. Ein Multi­ plexer 220 empfängt die zwischengespeicherten N-Bit-Ab­ schnitte von den Latches 216, 218. Der Ausgang des Multiple­ xers 220 ist mit dem Schreibtor F der Registerdatei 202 ver­ bunden, derart, daß die zwei N-Bit-Abschnitte in zwei Schreiboperationen, einer für den hohen Abschnitt und einer für den niedrigen Abschnitt, in der Registerdatei 202 ge­ speichert werden können.
Eine Steuereinheit 222 empfängt Befehle und führt dieselben aus. Spezieller steuert die Steuereinheit 222 die Schaltung der Gleitkomma-Recheneinheit 109 unter Verwendung verschie­ dener Steuersignale 224. Die Steuereinheit 222 erzeugt die Steuersignale 224 basierend auf Mikrocode-Befehlen, die in einem Mikrocode-Speicher 226 gespeichert sind. Die Gleit­ komma-Recheneinheit 109 ist wirksam, um automatisch eine An­ zahl von Befehlen auszuführen, die auf Zahlen mit zweifach- erweiterter Präzision arbeiten. Diese schließen das Berech­ nen des Reziprokwerts einer Zahl (RECIP), die Multiplikation zweier Zahlen (FMPY), die Addition (FADD) und die Subtrak­ tion (FSUB) zweier Zahlen, eine verschmolzene Multiplikation und Addition (FMPYADD), eine verschmolzene Multiplikation und Subtraktion (FMPYSUB) und die Negierung von FMPYADD und FMPYSUB ein.
Der Mikrocodespeicher 226 enthält ferner Instruktionen für die Vierfach-Präzisions-Befehle zum Teilen 226a, Quadratwur­ zelziehen 226b, Multiplizieren 226c, Addieren 226d und Sub­ trahieren 226e. Diese Vierfach-Präzisions-Rechenbefehle sind aus einer Vielzahl von zweifach-erweiterten Befehlen aufge­ baut und erfordern mehr als einen Zyklus. Der Mikrocodespei­ cher 226 enthält ferner Befehle für eine Umwandlung zwischen vierfachen und doppelten zweifach-erweiterten Formaten 226f und für ein Vierfach-Präzisions-Runden 226g.
Fig. 5 ist ein Flußdiagramm der elementaren Prozeduren, die durch die Steuereinheit 222 durchgeführt oder gesteuert wer­ den. Wenn die Steuereinheit 222 einen Befehl empfängt, fin­ den in der Gleitkomma-Recheneinheit 109 verschiedene Opera­ tionen statt. Anfänglich wird der Befehl decodiert 502 und seine Operanden werden gelesen 504. Als nächstes wird basie­ rend darauf, ob ein Spezialfall existiert oder nicht, eine Entscheidung 506 getroffen. Ein Spezialfall existiert, wenn die Operanden keine Normalzahlen sind. Wenn die Operanden keine Normalzahlen sind, werden die Operationen gemäß dem IEEE-Standard 754-1985 "manipuliert" ("fixed up"), woraufhin die Flußsteuerung fortfährt, als wären die Zahlen anfänglich normal. Wenn beispielsweise eine der Zahlen 0,02 × 10-3 ist, dann würde sie auf 0,2 × 10-4 "manipuliert" (in diesem Fall normiert) werden, bevor sich die Bearbeitung fortsetzt.
Als nächstes wird eine Entscheidung 509 getroffen, ob der Befehl ein Vierfach-Rechenbefehl ist oder nicht. Wenn der Befehl kein Vierfach-Rechenbefehl ist, wird ein Mikrocode, der dem Nicht-Vierfach-Befehl entspricht, ausgeführt 511. Wenn beispielsweise bestimmt wird, daß der Befehl eine Ad­ dier- oder eine Multiplizier-Operation ist, werden durch die Multiplikationseinheit 204 und den Addierer 210, die in Fig. 2 gezeigt sind, eine Multiplizieroperation und/oder eine Addieroperation durchgeführt. Andernfalls wird der Typ des Vierfach-Befehls bestimmt 510a, 510b, 510c, 510d, 510e, 510f und 510g. Wenn der Befehl ein Divisions-Befehl ist, führt die Steuereinheit 222 den Divisions-Mikrocode 226a aus. Nach dem Abschluß des Divisions-Mikrocodes 226a springt der Steu­ erfluß zum Schritt 502 zurück, um den nächsten Befehl zu de­ codieren. In gleicher Weise führt die Steuereinheit 222 den Quadratwurzel-Mikrocode 226b aus, wenn der Befehl ein Qua­ dratwurzel-Befehl ist, woraufhin der Steuerfluß zum Schritt 502 zurückspringt, um den nächsten Befehl zu decodieren. Danach wird ein Ergebnis zur temporären Speicherung in die Registerdatei 202 zurückgeschrieben 522.
Wenn der Befehl, der in der Steuereinheit 222 empfangen wird, entweder ein Divisions-Befehl oder ein Quadratwur­ zel-Befehl ist, greift die Steuereinheit 222 auf den Divi­ sions- bzw. den Quadratwurzel-Mikrocode 226a und 226b zu, um die iterativen Prozeduren auszuführen, die erforderlich sind, um Divisions- und Quadratwurzel-Operationen unter Ver­ wendung der Multiplikations- und Additions-Schaltung durch­ zuführen. Divisions- und Quadratwurzel-Operationen mit Vier­ fach-Präzisions-Zahlen unter Verwendung einer Zweifach-Prä­ zisions-Hardware sind in der ebenfalls anhängigen Patentan­ meldung mit dem Titel FLOATING POINT ARITHMETIC UNIT USING MODIFIED NEWTON-RAPHSON TECHNIQUE FOR DIVISION AND SQUARE ROOT beschrieben, die hiermit durch Bezugnahme aufgenommen ist.
Wenn bestimmt wird, daß der Befehl einer der Umwandlungsbe­ fehle 510f ist, wird der zugehörige Umwandlungs-Mikrocode 226f ausgeführt 524. Die Gleitkomma-Recheneinheit ist durch die Vierfachdaten-Multiplexer 232 wirksam, um eine Umwand­ lung zwischen einer Vierfach-Darstellung und einer doppelten zweifach-erweiterten Darstellung durchzuführen. Die Vier­ fachdarstellung des bevorzugten Ausführungsbeispiels ist ein 128-Bit-Datenformat, das in Fig. 3(c) gezeigt ist. Um Vier­ fach-Präzisions-Rechenoperationen durchzuführen, wird jede Vierfach-Präzisions-Größe Q in zwei Größen mit zweifach-er­ weiterter Präzision umgewandelt, wie in Fig. 3(d) gezeigt ist, ein Wort hoher Ordnung X und ein Wort niedriger Ordnung y, derart, daß X + Y, wenn sie mit unendlicher Präzision ad­ diert werden, exakt gleich Q wäre. Das zweifach-erweiterte Wort X hoher Ordnung weist einen Exponenten, der um zumin­ dest N größer als Y ist, auf, wobei N die Anzahl von Bits in dem Signifikanden eines zweifach-erweiterten Worts ist. Bei dem bevorzugten Ausführungsbeispiel ist N 64.
Die Umwandlung von einer Vierfach-Darstellung in zwei Größen mit zweifach-erweiterter Präzision wird durch die Vierfach­ daten-Multiplexer 232 und die Exponenten-Einstellvorrichtung 230 als Reaktion auf zwei Befehle durchgeführt: QCNVTF (Q, X) und QCNVTFL (Q, Y). Als Reaktion auf diese Befehle sendet die Steuereinheit 222 Signale 224 zu den Vierfachdaten-Mul­ tiplexern 232 und der Exponenten-Einstellvorrichtung 230, um die entsprechenden Umwandlungen zu bewirken. Der Befehl QCNVTF (Q, X) weist die Vierfachdaten-Multiplexer 232 und die Exponenten-Einstellvorrichtung 230 an, das Wort hoher Ordnung X der doppelten zweifach-erweiterten Darstellung von Q zu erzeugen. Der Befehl QCNVTFL (Q, Y) weist die Vierfach­ daten-Multiplexer 232 und die Exponenten-Einstellvorrichtung 230 an, das Wort niedriger Ordnung Y der doppelten zwei­ fach-erweiterten Darstellung von Q zu erzeugen.
Als Reaktion auf den Befehl QCNVTF bilden die Vierfachda­ ten-Multiplexer 232 das Vorzeichenbit von Q auf das Vorzei­ chenbit von X ab, bilden die hohen 64 Bit des Signifikanden von Q auf die 64 Bit der Bruchzahl X ab und setzen das Kri­ tisch-Bit von X auf Null. Die Exponenten-Einstellvorrichtung 230 bildet den Exponenten von Q auf die unteren 15 Bit des Exponenten von X ab. Die hohen 64 Bits des Signifikanden von Q weisen das versteckte Bit (impliziert) und die 63 hohen Bits der Bruchzahl von Q auf, welche explizit dargestellt sind.
Als Reaktion auf den Befehl QCNVTFL bilden die Vierfachda­ ten-Multiplexer 232 das Vorzeichenbit von Q auf das Vorzei­ chenbit von Y ab, bilden die unteren 49 Bit des Signifikan­ den von Q auf die hohen 49 Bit der Bruchzahl von Y ab, set­ zen die verbleibenden 15 Bit der Bruchzahl von Y auf Null und setzen das Kritisch-Bit von Y auf Null. Die Exponen­ ten-Einstellvorrichtung 230 stellt den Exponenten von Y ein, um kleiner zu sein als der Exponent von X und bildet die Größe auf Y ab. Die Umwandlung von zwei Größen mit zwei­ fach-erweiterter Präzision in eine Vierfachdarstellung wird durch die Vierfachdaten-Multiplexer 232 und die Exponenten- Einstellvorrichtung 230 als Reaktion auf zwei Befehle durch­ geführt: FCNVTQ (X, Y, QH) und FCNVTQL (X, Y, QL). Als Reak­ tion auf diese Befehle sendet die Steuereinheit 222 Signale zu den Vierfachdaten-Multiplexern 232 und der Exponenten- Einstellvorrichtung 230, um die entsprechenden Umwandlungen zu bewirken. Der Befehl FCNVTQ (X, Y, QH) weist die Vier­ fachdaten-Multiplexer 232 und die Exponenten-Einstellvor­ richtung 230 an, das Wort hoher Ordnung QH der Vierfachdar­ stellung von Q zu erzeugen. Das Wort hoher Ordnung QH ent­ hält das Vorzeichenbit, den 15-Bit-Exponenten und die ersten 48 Bits der Bruchzahl. Der Befehl FCNVTQL (X, Y, QL) weist die Vierfachdaten-Multiplexer 232 und die Exponenten-Ein­ stellvorrichtung 230 an, das Wort niedriger Ordnung QL der Vierfach-Präzisions-Darstellung von Q zu erzeugen. Das Wort niedriger Ordnung QL enthält die unteren 64 Bits der Bruch­ zahl der Vierfachdarstellung von Q. Folglich ist die Ver­ knüpfung von QH und QL äquivalent zu der Standard-Vierfach­ darstellung von Q.
Als Reaktion auf den Befehl FCNVTQ weist die Steuereinheit 222 unter Verwendung des Signals 224 die Multiplikations­ einheit 204, den Ausrichtungsschieber 206, den 3 : 2-Über­ trag-Speicherungs-Addierer 206 und den Übertrag-Ausbrei­ tungs-Addierer 210 an, die zwei Größen X und Y mit zwei­ fach-erweiterter Präzision zu addieren. Die Vierfachdaten- Multiplexer 232 bilden das Vorzeichenbit der resultierenden Größe auf das Vorzeichenbit von QH ab und bilden die hohen 49 Bits des resultierenden Signifikanden auf das Bruchzahl- Feld von QH ab (48 Bits, die ein implizit Führendes ermög­ lichen, wie das 49. Bit). Die Exponenten-Einstellvorrichtung 230 bildet den Exponenten des Ergebnisses von der Addition auf die unteren 15 Bits des Exponenten von QH ab.
Als Reaktion auf den Befehl FCNVTQL weist die Steuereinheit 222 unter Verwendung des Signals 224 die Multiplikations­ einheit 204, den Ausrichtungsschieber 206, den 3 : 2-Über­ trag-Speicherungs-Addierer 208 und den Übertrag-Ausbrei­ tungs-Addierer 210 an, die zwei Größen X und Y mit zwei­ fach-erweiterter Präzision zu addieren. Die Vierfachdaten- Multiplexer 232 bilden die niederstwertigen 64 Bits des Er­ gebnisses auf QL ab.
Wenn bestimmt wird, daß der Befehl ein Vierfach-Präzisions- Additionsbefehl 510d ist, wird der Vierfach-Präzisions-Addi­ tions-Mikrocode 226d ausgeführt 520. Die Addition der zwei Vierfach-Präzisions-Größen QX und QY beginnt mit der Umwand­ lung, unter Verwendung von QCNVTF und QCNVTFL, in vier Worte mit zweifach-erweiterter Präzision, lo_x, hi_x, lo_y und hi_y, wobei, wenn dieselben mit unendlicher Präzision ad­ diert werden, gilt:
QX = hi_x + lo_x (1)
QY = hi_y + lo_y (2)
Die Addition von QX und QY (QX + QY = sum) wird unter Ver­ wendung der folgenden Gleichung erreicht:
hi_sum + lo_sum = lo_x + lo_y + hi_x + hi_y (3)
Das Kritisch-Bit, das dem zweifach-erweiterten Format hin­ zugefügt wird, wird verwendet, um ein ordnungsgemäßes Runden des Ergebnisses jeder Vierfach-Präzisions-Rechenoperation gemäß den IEEE-754-Rundungsmodi sicherzustellen. Wenn irgen­ deine Operation, die eine zweifach-erweiterte Größe erzeugt, als Ergebnis ein Bit einer niedrigeren Wertigkeit als das niederstwertige Bit, das Eins ist, aufweist, wird das Kri­ tisch-Bit auf Eins gesetzt. Diese Verwendung des Kritisch- Bits wird am besten unter Verwendung eines vereinfachten Beispiels veranschaulicht. Zu veranschaulichenden Zwecken wird ein Gleitkomma-Format mit einem Vorzeichenbit, zwei Exponenten-Bits, fünf Bruchzahl-Bits und einem Kritisch-Bit verwendet. Es sei die Addition der zwei binären Gleitkomma- Größen angenommen:
100,00
001,0001
In dem beschriebenen Format würden diese Größen wie folgt dargestellt werden (ohne Kritisch-Bit):
Eine Additionsoperation würde zuerst die zwei Exponenten durch Verschieben der Bruchzahl der zweiten Zahl um zwei binäre Stellen einstellen:
Folglich wird die niederstwertige Eins der zweiten Zahl aus dem Bereich des Bruchzahl-Felds des gegebenen Gleitkomma- Formats geschoben. Die zwei Bruchzahlen werden addiert, um das folgende Ergebnis zu erzeugen:
Da das Ergebnis eine Eins an einer Position gesetzt hat, die niederwertiger als das niederstwertige Bit des Bruchzahl­ felds des Formats ist, wird das Kritisch-Bit des Ergebnisses gesetzt.
Das Kritisch-Bit wird während Rundungsoperationen von Vier­ fach-Präzisions-Größen, die durch zwei zweifach-erweiterte Worte dargestellt sind, verwendet. Die vorliegende Erfindung schließt zwei Rundungsbefehle ein: QRND(x, y, u, MODE) und QRNL (x, y, v, MODE). Am Schluß der Berechnung auf den Paa­ ren von zweifach-erweiterten Zahlen wird das Ergebnis auf die Anzahl von Bits des Signifikanden gerundet, die eine Vierfach-Präzisions-Zahl enthält. Der Signifikand einer Vierfach-Präzisions-Zahl erfordert weniger als die doppelte Anzahl von Bits, die in einer zweifach-erweiterten Zahl ent­ halten sind. Die Rundungsoperationen geben das Ergebnis als ein weiteres Paar von zweifach-erweiterten Zahlen zurück, indem die Gesamtzahl der Signifikanden-Bits der Anzahl der Bits gleicht, die in einer Vierfach-Format-Zahl erlaubt sind, und wobei die niedrigen Bits gemäß einem spezifizier­ ten Rundungsmodus gerundet wurden. Die Kritisch-Bits, die in jeder zweifach-erweiterten Zahl enthalten sind, werden ver­ wendet, um gemäß dem spezifizierten Modus richtig zu runden.
Die doppelte zweifach-erweiterte Darstellung der vorliegen­ den Erfindung kombiniert zwei zweifach-erweiterte Worte. Je­ des zweifach-erweiterte Wort enthält 64 Bits eines Signifi­ kanden, nämlich ein explizit vorderes Bit und 63 Bits der Bruchzahl. Der kombinierte Signifikand für die doppelte zweifach-erweiterte Darstellung ist 128 Bits. Jedoch erfor­ dert die Vierfachdarstellung von Fig. 3(c) nur 113 Bits des Signifikanden, nämlich ein implizit vorderes Bit und 112 Bits der Bruchzahl. Die zusätzlichen 15 Bits des Signifi­ kanden in der doppelten zweifach-erweiterten Darstellung sind Schutzbits.
Während Rechenoperationen werden Operanden-Signifikanden verschoben und Operanden-Exponenten derart eingestellt, daß alle Additions- und Subtraktions-Operanden den gleichen Ex­ ponent aufweisen. Da ein Signifikand nach rechts verschoben wird, halten die Schutzbits den Abschnitt des Signifikanden, der aus dem Bereich des gegebenen Datenformats geschoben wird. Das niederstwertige Schutzbit wird in das Kritisch-Bit geschoben. Wenn das Kritisch-Bit auf Eins gesetzt ist, auf­ grund einer Verschiebung einer Eins aus der niederstwertigen Schutzstelle in das Kritisch-Bit, bleibt das Kritisch-Bit auf Eins gesetzt.
Die Schutzbits und das Kritisch-Bit werden während des Run­ den-zur-Nächsten-Rundungsmodus verwendet. Es gibt zwei Typen des Runden-zur-Nächsten: Runden-zur-nächsten-Geraden und Runden-zur-nächsten-Ungeraden. Der Unterschied zwischen die­ sen zwei Modi besteht darin, ob eine Verbindung zu der näch­ sten geraden oder ungeraden Zahl aufgelöst wird. In den mei­ sten Fällen wird das Runden-zur-nächsten-Geraden verwendet. Tabelle 1 zeigt die Aktionen, die basierend auf dem Wert des niederstwertigen Bits des Signifikanden (L), des Rundungsbit (R), der Schutzbits (G) und des Kritisch-Bits (S) durchge­ führt werden. Das Aktionsbit (A) ist das Bit, das zu R ad­ diert werden soll, um das ordnungsgemäße Runden zu erhalten. In Tabelle 1 bedeutet "X" "gleichgültig" ("don′t care"), das heißt der Wert des Bits ist nicht wichtig, und "*", bedeutet, daß zumindest eines der Schutzbits den Wert Eins hat.
Tabelle 1
Wenn die Steuereinheit 222 auf einen Rundungsbefehl 510g trifft, wird der Rundungsmikrocode 226g ausgeführt, indem zugehörige Steuersignale 224 zu der Registerdatei 202 ge­ sendet werden, um die zwei zweifach-erweiterten Größen auf geeigneten Ausgangstoren zu plazieren, um zu bewirken, daß die Multiplikationseinheit 204, der Ausrichtungsschieber 206, der 3 : 2-Übertrag-Speicherungs-Addierer 208 und der Übertrag-Ausbreitungs-Addierer 210 die Addition der zwei zweifach-erweiterten Größen 525 bewirken.
Als nächsten leiten die Vierfachdaten-Multiplexer 232 das Ergebnis der Addition zu dem Normierungsschieber 212, wo das Ergebnis normiert wird. Das normierte Ergebnis wird dann durch den Rundungsinkrementierer 214 verarbeitet. Der Run­ dungsinkrementierer 214 weist eine Kritisch-Steuerlogik 215 auf. Wenn irgendein Operand ein Kritisch-Bit enthält oder die Summe ein Nicht-Null-Bit enthält, das in den Ausgaben des Addierers 210 oder des Normierungsschiebers 212 nicht dargestellt werden kann, wird das niederwertige Eingabebit in den Rundungsinkrementierer 214 auf Eins gesetzt.
Es gibt ferner vier IEEE-754-Rundungsmodi: Runden-zur-Näch­ sten, Runden-zu-Unendlich, Runden-zu-minus-Unendlich und Runden-zu-Null. Der erste Modus, Runden-zur-Nächsten, rundet zu der nächsten darstellbaren Zahl in dem Signifikanden und rundet zu einem geraden Wert, wenn der Rest exakt 0,5 ist. Runden-zu-Null entfernt die partiellen Bits, die nicht in den Signifikanden passen. Diese zweite Möglichkeit ist üb­ licherweise als Abschneiden bekannt. Ein dritter Rundungs­ modus ist der Runden-zu-plus-Unendlich, was bedeutet, daß das Runden durch ein Runden zu der nächstgrößeren darstell­ baren Zahl erreicht wird. Die vierte Möglichkeit ist Run­ den-zu-minus-Unendlich, welches zu der nächstkleineren dar­ stellbaren Zahl rundet. In der Praxis ist der Runden-zur- nächsten-Modus am schwierigsten zu implementieren. Diese Modi sind in den Rundungsbefehlen als der MODE-Operand spe­ zifiziert.
Als nächstes wird das gerundete Ergebnis auf den Hoch-Ab­ schnitt-Latch 216 und den Niedrig-Abschnitt-Latch 218 abge­ bildet. Wenn die Steuereinheit 222 einen Befehl QRND verar­ beitet, speichert der Multiplexer 220 auf die Steuerung des Steuersignals 224 hin den Inhalt des Hoch-Abschnitt-Latch zurück in die Registerdatei 202. Wenn die Steuereinheit 222 einen Befehl QRNL verarbeitet, speichert der Multiplexer 220 auf die Steuerung des Steuersignals 224 hin den Inhalt des Niedrig-Abschnitt-Latchs 218 zurück in die Registerdatei 202.
Zurückkehrend zu einer Vierfach-Präzisions-Addition, ist Gleichung (3) unter Verwendung der folgenden Befehlssequenz implementiert:
Tabelle 2
Jeder der Befehle, die die Vierfach-Präzisions-Addition im­ plementieren, setzt das Kritisch-Bit seiner jeweiligen Zwi­ schenergebnisse. Die Reihenfolge der Befehle ist wichtig, um die ordnungsgemäße Ausbreitung des Kritisch-Bits von dem niederstwertigen Abschnitt der Terme der Addition zu dem niederen Abschnitt des Ergebnisses herzustellen.
Jeder Befehl wird in einem speziellen Rundungsmodus ausge­ führt. Es sei bemerkt, daß alle Zwischenoperationen in einem Runde-auf-Null-Modus (RZ) ausgeführt werden. Dies stellt ei­ ne Monotonie sicher und ermöglicht die Kritisch-Steuerlogik 215.
Wenn eine Operation im RZ-Modus durchgeführt wird, setzt die Kritisch-Steuerlogik 215 das Kritisch-Bit des Ergebnisses auf Eins, wenn entweder der Operand ein Nicht-Null-Kri­ tisch-Bit aufweist oder wenn das Ergebnis nicht exakt ist. Wenn der Rundungsmodus ein vom Runden-auf-Null verschiedener Modus ist, wird das Kritisch-Bit des Ergebnisses auf Null gesetzt.
Wenn bestimmt wird, daß der Befehl ein Vierfach-Präzisions- Subtraktionsbefehl 510e ist, wird der Vierfach-Präzisions- Subtraktions-Mikrocode 226e ausgeführt 518. Die Subtraktion der zwei Vierfach-Präzisions-Größen QX und QY beginnt mit der Umwandlung, unter Verwendung von QCNVTF und QCNVTFL, in vier Worte mit zweifach-erweiterter Präzision, lo_x, hi_x, lo_y und hi_y, wobei, wenn dieselben mit unendlicher Präzi­ sion addiert werden, gilt:
QX = hi_x + lo_x (4)
QY = hi_y + lo_y (5)
Die Subtraktion von QX und QY (QX - QY = rem) wird unter Verwendung der folgenden Gleichung erreicht:
hi_rem + lo_rem = lo_x - lo_y + hi_x - lo_y (6)
Die Gleichung (6) wird unter Verwendung der folgenden Be­ fehlssequenz implementiert:
Tabelle 3
Wenn bestimmt wird, daß der Befehl ein Vierfach-Präzisions- Multiplikationsbefehl 510c ist, wird der Vierfach-Präzi­ sions-Multiplikationsmikrocode 226c ausgeführt. Die Multi­ plikation der zwei Vierfach-Präzisions-Größen QX und QY be­ ginnt mit der Umwandlung, unter Verwendung von QCNVTF und QCNVTFL, in vier Worte mit zweifach-erweiterter Präzision, lo_x, hi_x, lo_y und hi_y, wobei, wenn dieselben mit unend­ licher Präzision addiert werden, gilt:
QX = hi_x + lo_x (7)
QY = hi_y + lo_y (8)
Die Multiplikation von QX und QY (QX * QY = p) wird unter Verwendung der folgenden Gleichung erreicht:
hi_p+lo_p=lo_x*lo_y+hi_x*lo_y+lo_x*hi_y+hi_x*hi_y (9)
Die Gleichung (9) ist unter Verwendung der folgenden Be­ fehlssequenz implementiert:
Tabelle 4
Zusätzliche Befehle, die oben nicht erläutert wurden, können im Schritt 527 ebenfalls mit vierfacher Präzision ausgeführt werden.
Aus Verhaltensgründen kann das Ausführungsbeispiel der Fig. 1 und 2 unter Verwendung eines bekannten Schaltungsaufbaus weiter verbessert werden. Beispielsweise können zur Verein­ fachung der Pipeline-Verarbeitung zusätzliches Latches zwi­ schen der Registerdatei und der Multiplikationseinheit oder dem Ausrichtungsschieber hinzugefügt werden. Ferner könnten Multiplexer zwischen der Registerdatei 202 und der Multi­ plikationseinheit 204 und dem Ausrichtungsschieber 206 ein­ gefügt werden, um der Multiplikationseinheit oder dem Aus­ richtungsschieber schneller Eingaben zuzuführen. Trotzdem sind diese und zahlreiche weitere gut bekannte Verbesserun­ gen kein Teil der Erfindung, sondern primär Entwurfsauswah­ len für die Hardware, wobei sie aus diesem Grund hierin nicht weiter erläutert werden.
Die Erfindung nimmt an, daß die Hardware alle Stellen in einem Produkt von zwei Hardware-Präzisions-Zahlen, ebenso wie den vorderen Vierfach-Präzisions-Teil (beispielsweise 2N) einer Summe liefern kann. Einige existierende Computer weisen Hardware-Befehle auf, die das Vierfach-Präzisions- Ergebnis (d. h. alle Stellen) des Multiplizierens zweier Zweifach-Präzisions-Zahlen zurückgeben, während andere Com­ puter keine derartigen Befehle aufweisen. Einige Computer (beispielsweise der IBM 5/370) weisen Befehle auf, die den Vierfach-Präzisions-Teil der Summe als zwei Zahlen zurück­ geben.

Claims (10)

1. Verfahren zum Durchführen einer Vierfach-Präzisions- Arithmetik in einem Computer, der einen Speicher (228) mit einer Mehrzahl von Zellen aufweist, wobei jede Zel­ le einen Wert speichert, mit folgenden Schritten:
  • (a) Umwandeln einer ersten Vierfach-Präzisions-Größe in ein erstes Paar von Größen mit zweifach-erweiterter Präzision und Speichern des ersten Paars von Größen mit zweifach-erweiterter Präzision in einen ersten und einen zweiten Behälter mit zweifach-erweiterter Präzision;
  • (b) Durchführen zumindest einer zweifach-erweiterten Rechenoperation (512, 516, 518, 520, 522) auf dem ersten Paar von Größen mit zweifach-erweiterter Präzision, wodurch ein zweites Paar von Größen mit zweifach-erweiterter Präzision erzeugt wird, und Speichern der Ergebnisse in einem dritten und einem vierten Behälter mit zweifach-erweiterter Präzi­ sion; und
  • (c) Umwandeln des zweiten Paars von Größen mit zwei­ fach-erweiterter Präzision in eine zweite Vier­ fach-Präzisions-Größe.
2. Verfahren gemäß Anspruch 1, bei dem die erste Vier­ fach-Präzisions-Größe ein Vorzeichenbit, eine Mehrzahl von Exponentenbits und eine Mehrzahl von Bruchzahlbits aufweist, wobei der Schritt (a) des Umwandelns der er­ sten Vierfach-Präzisions-Größe folgende Schritte auf­ weist:
  • (a.1) Zuweisen des Werts des Vorzeichenbits zu einem Vorzeichenbit der ersten zweifach-erweiterten Größe und zu einem Vorzeichenbit des dritten zweifach-erweiterten Behälters;
  • (a.2) Zuweisen des Werts des Exponenten der Vierfach- Präzisions-Größe zu einem Exponentenfeld des er­ sten zweifach-erweiterten Behälters;
  • (a.3) Zuweisen des Werts eines ersten Abschnitts der Bruchzahl zu einem Bruchzahlfeld des ersten zweifach-erweiterten Behälters;
  • (a.4) Subtrahieren der Länge des Bruchzahlfelds von dem Exponenten der Vierfach-Präzisions-Größe und Speichern des Ergebnisses in einem Exponenten­ feld des zweiten zweifach-erweiterten Behälters;
  • (a.5) Zuweisen des Werts eines zweiten Abschnitts der Bruchzahl zu einem Bruchzahlfeld des zweiten zweifach-erweiterten Behälters; und
  • (a.6) Zuweisen des Werts Null zu einem Kritisch-Bit des ersten zweifach-erweiterten Behälters und zu einem Kritisch-Bit des zweiten zweifach-erwei­ terten Behälters.
3. Verfahren gemäß Anspruch 1 oder 2, bei dem der Schritt (c) des Umwandelns des zweiten Paars von Größen mit zweifach-erweiterter Präzision folgende Schritte auf­ weist:
  • (c.1) Umwandeln des zweiten Paars von Größen mit zwei­ fach-erweiterter Präzision in einen Hoch-Ab­ schnitt einer Vierfach-Präzisions-Größe durch Addieren des Paars von Größen mit zweifach-er­ weiterter Präzision zueinander, wodurch eine Summe mit einem Vorzeichenbit, einem Exponenten und einer Bruchzahl erzeugt wird;
  • (c.2) Speichern des Vorzeichenbits, des Exponenten und eines höchstwertigen Abschnitts der Bruchzahl der Summe in einem Zweifach-Präzisions-Behälter; und
  • (c.3) Umwandeln des zweiten Paars von Größen mit zwei­ fach-erweiterter Präzision in einen Niedrig-Ab­ schnitt einer Vierfach-Präzisions-Größe durch Addieren des Paars von Größen mit zweifach-er­ weiterter Präzision zueinander, wodurch eine Summe mit einem Vorzeichenbit, einem Exponenten und einer Bruchzahl erzeugt wird; und
  • (c.4) Speichern eines niederstwertigen Abschnitts der Bruchzahl der Summe in einem Zweifach-Präzi­ sions-Behälter.
4. Verfahren gemäß einem der Ansprüche 1, 2 oder 3, bei dem der Schritt (b) ferner folgende Schritte aufweist:
  • (b.1) Setzen des Kritisch-Bits des dritten zweifach- erweiterten Behälters, wenn zumindest eine der Rechenoperationen den Wert ändert, der in dem dritten zweifach-erweiterten Behälter gespei­ chert ist, und wenn die Rechenoperation ein Er­ gebnis erzeugt, das eine signifikante Stelle über den Bereich des dritten zweifach-erweiter­ ten Behälters hinaus aufweist; und
  • (b.2) Setzen des Kritisch-Bits des vierten zweifach- erweiterten Behälters, wenn zumindest eine der Rechenoperationen den Wert ändert, der in dem vierten zweifach-erweiterten Behälter gespei­ chert ist, und wenn die Rechenoperation ein Er­ gebnis erzeugt, das eine signifikante Stelle über den Bereich des vierten zweifach-erweiter­ ten Behälters hinaus aufweist.
5. Verfahren gemäß einem der Ansprüche 1 bis 4, das ferner folgende Schritte aufweist:
  • (d) Verwenden des Kritisch-Bits, um eine Vierfach-Prä­ zisions-Größe, die durch ein Paar von zweifach-er­ weiterten Größen dargestellt ist, unter Verwendung eines einer Mehrzahl von Rundungsmodi zu runden, welche aus der Gruppe ausgewählt sind, die aus Runden-auf-Nächste, Runden-auf-Null, Runden-auf- plus-Unendlich und Runden-auf-minus-Unendlich be­ steht, wobei der Schritt des Verwendens des Kri­ tisch-Bits, um eine Vierfach-Präzisions-Größe, die durch ein Paar von zweifach-erweiterten Größen dargestellt ist, zu runden, folgende Schritte auf­ weist:
    Addieren des Paars von zweifach-erweiterten Größen, um ein Vierfach-Präzisions-Ergebnis mit einem Vorzeichenbit, einem Exponenten, einer Bruchzahl und einem Kritisch-Bit zu erzeugen;
    Speichern des Vorzeichenbits, des Exponenten und eines höchstwertigen Abschnitts der Bruchzahl des Vierfach-Präzisions-Ergebnisses in einem ersten zweifach-erweiterten Behälter;
    Speichern des niederstwertigen Abschnitts der Bruchzahl des Vierfach-Präzisions-Ergebnisses in einem zweiten zweifach-erweiterten Behälter; und
    für das Runden-auf-Nächste, Setzen des niederst­ wertigen Bits des zweiten zweifach-erweiterten Behälters auf Eins, wenn das Kritisch-Bit von einer des Paars von zweifach-erweiterten Größen Eins ist.
6. Verfahren zum Bewirken einer Vierfach-Präzisions-Arith­ metik auf einem Computer mit einer Zweifach-Präzi­ sions-Hardware, der einen Zweifach-Präzisions-Speicher (228), Zweifach-Präzisions-Busse (111), eine Gleitkom­ ma-Einheit mit Registern (202) mit zweifach-erweiterter Präzision und eine zweifach-erweiterte arithmetische Logikeinheit aufweist, welche eine Multiplikationsein­ heit (204), einen Ausrichtungsschieber (206), einen Übertrag-Speicherungs-Addierer (208) und einen Über­ trag-Ausbreitungs-Addierer (210) aufweist, mit folgen­ den Schritten:
  • (a) Umwandeln eines ersten Abschnitts einer Vierfach- Präzisions-Größe in ein erstes Wort niedriger Ord­ nung einer doppelten zweifach-erweiterten Darstel­ lung der Vierfach-Präzisions-Größe;
  • (b) Umwandeln eines zweiten Abschnitts der Vierfach- Präzisions-Größe in ein erstes Wort hoher Ordnung der doppelten zweifach-erweiterten Darstellung der Vierfach-Präzisions-Größe;
  • (c) Verwenden der arithmetischen Logikeinheit mit zweifach-erweiterter Präzision, um zumindest eine Rechenoperation mit zweifach-erweiterter Präzision auf dem ersten Wort hoher Ordnung und dem ersten Wort niedriger Ordnung unter Verwendung eines Al­ gorithmusses zum Erhalten von Vierfach-Präzi­ sions-Ergebnissen, die durch eine zweite Zahl nie­ driger Ordnung mit zweifach-erweiterter Präzision und eine zweite Zahl hoher Ordnung mit zweifach- erweiterter Präzision dargestellt sind, durchzu­ führen;
  • (d) Umwandeln des zweiten Worts niedriger Ordnung und des zweiten Worts hoher Ordnung in einen hohen Teil einer resultierenden Vierfach-Präzisions- Größe; und
  • (e) Umwandeln des zweiten Worts niedriger Ordnung und des zweiten Worts hoher Ordnung in einen niedrigen Teil der resultierenden Vierfach-Präzisions-Größe.
7. Verfahren gemäß Anspruch 6, das ferner folgende Schrit­ te aufweist:
  • (a.1) Laden des ersten Worts niedriger Ordnung in ein erstes der zweifach-erweiterten Register mit dem Inhalt eines ersten Worts in dem Speicher (228); und
  • (a.2) Laden des ersten Worts hoher Ordnung in ein zweites der zweifach-erweiterten Register mit dem Inhalt eines zweiten Worts in dem Speicher (228);
    wobei das erste Wort und das zweite Wort kombi­ niert eine Vierfach-Präzisions-Größe darstellen.
8. Vorrichtung (109) zum Durchführen einer Vierfach-Präzi­ sions-Arithmetik, welche mit einem Speicher (228) mit einer Zweifach-Präzisions-Wortbreite verbunden ist, wo­ bei die Vorrichtung (109) folgende Merkmale aufweist:
  • (a) eine Registerdatei (202) mit einer zweifach-erwei­ terten Wortbreite, wobei jede Gleitkomma-Größe, die in der Registerdatei (202) gespeichert ist, ein Kritisch-Bit aufweist;
  • (b) eine Ladeeinheit, die wirksam ist, um Werte von dem Speicher zu der Registerdatei zu übertragen;
  • (c) eine arithmetische Logikeinheit (ALU), die eine Multiplikationseinheit (204), einen Ausrichtungs­ schieber (206), einen Übertrag-Speicherungs-Addie­ rer (208) und einen Übertrag-Ausbreitungs-Addierer (210) aufweist, wobei die ALU wirksam ist, um Re­ chenoperationen auf zweifach-erweiterten Größen, die in der Registerdatei (202) gespeichert sind, durchzuführen, wobei die arithmetische Logikein­ heit wirksam ist, um das Kritisch-Bit zu setzen, wenn eine arithmetische Operation ein Ergebnis mit binär signifikanten Stellen über diejenigen hi­ naus, die in einem Wort mit zweifach-erweiterter Präzision darstellbar sind, bewirkt;
  • (d) einen Satz von Multiplexern (232), die mit der arithmetischen Logikeinheit verbunden sind und wirksam sind, um selektiv Bits zwischen einem Vierfach-Präzisions-Format und einem doppelten zweifach-erweiterten Format umzuwandeln;
  • (e) eine Steuereinheit (224), die mit der Registerda­ tei (202), der arithmetischen Logikeinheit und den Multiplexern (232) verbunden ist;
  • (f) eine Exponenten-Einstellvorrichtung (230), die von der Steuereinheit gesteuert wird, die mit der Re­ gisterdatei (202) verbunden ist, und die wirksam ist, um einen Exponenten einer Größe, die in der Registerdatei (202) gespeichert ist, zu verschie­ ben;
  • (g) einen Normierungsschieber (212), der mit dem Satz von Multiplexern (234) verbunden ist und wirksam ist, um einen Exponenten, der in der Registerdatei gespeichert ist, zu verschieben; und
  • (h) einen Mikrocode-Speicher (226), der mit der Steu­ ereinheit verbunden ist und Befehle enthält, um eine Vierfach-Präzisions-Größe in ein Paar von zweifach-erweiterten Größen umzuwandeln.
9. Vorrichtung (109) gemäß Anspruch 8, die ferner folgende Merkmale aufweist:
  • (j) eine Rundungslogik (214), die mit dem Normierungs­ schieber (212) verbunden ist, die unter der Steue­ rung der Steuereinheit (222) ist, und die wirksam ist, um eine Gleitkomma-Größe entsprechend einer Mehrzahl von Rundungsmodi zu runden; wobei der Mi­ krocodespeicher (226) Befehle zum Durchführen von Vierfach-Präzisions-Rechenoperationen auf zwei Operanden (226a, 226b, 226c, 226d, 226e) aufweist, und ferner Rundungsbefehle (226g) aufweist, um zu bewirken, daß die Rundungslogik (214) die Ergeb­ nisse von den Rechenoperationen entsprechend einem einer Mehrzahl von Rundungsmodi rundet, wodurch eine Vierfach-Präzisions-Zahl erzeugt wird.
10. Vorrichtung (109) gemäß Anspruch 9, bei der die Mikro­ codebefehle zum Durchführen einer Vierfach-Präzisions- Rechenoperation auf zwei Vierfach-Präzisions-Operanden, wobei die Operation, wenn sie mit einer unendlichen Präzision durchgeführt wird, einen Wert Q zur Folge ha­ ben würde, folgende aufweisen:
Befehle zum Umwandeln einer Vierfach-Präzisions-Größe in zwei Größen (226f) mit zweifach-erweiterter Präzi­ sion, wobei die Summe der zwei Größen mit zweifach-er­ weiterter Präzision im wesentlichen gleich der Vier­ fach-Präzisions-Größe ist;
Befehle zum Durchführen von Rechenoperationen auf den zwei Größen mit zweifach-erweiterter Präzision, bei­ spielsweise um zwei resultierende Größen mit zweifach- erweiterter Präzision zu erzeugen, wobei die Summe der zwei resultierenden Größen mit zweifach-erweiterter Präzision im wesentlichen gleich Q ist; und
Befehle zum Umwandeln der zwei resultierenden Größen mit zweifach-erweiterter Präzision in eine Vierfach- Präzisions-Größe, die in Zweifach-Präzisions-Worten gespeichert ist.
DE19540102A 1994-10-27 1995-10-27 Verfahren und Gleitkomma-Recheneinheit mit einer Logik für eine Vierfach-Präzisions-Arithmetik Expired - Fee Related DE19540102C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/330,391 US5631859A (en) 1994-10-27 1994-10-27 Floating point arithmetic unit having logic for quad precision arithmetic

Publications (2)

Publication Number Publication Date
DE19540102A1 true DE19540102A1 (de) 1996-05-02
DE19540102C2 DE19540102C2 (de) 1998-11-12

Family

ID=23289556

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19540102A Expired - Fee Related DE19540102C2 (de) 1994-10-27 1995-10-27 Verfahren und Gleitkomma-Recheneinheit mit einer Logik für eine Vierfach-Präzisions-Arithmetik

Country Status (4)

Country Link
US (1) US5631859A (de)
JP (1) JPH08185309A (de)
DE (1) DE19540102C2 (de)
GB (1) GB2294565A (de)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6370623B1 (en) * 1988-12-28 2002-04-09 Philips Electronics North America Corporation Multiport register file to accommodate data of differing lengths
US6643677B2 (en) * 1995-06-05 2003-11-04 Kabushiki Kaisha Toshiba Digital arithmetic integrated circuit
US6070180A (en) * 1995-06-05 2000-05-30 Kabushiki Kaisha Toshiba Digital arithmetic integrated circuit
US5768169A (en) * 1995-10-02 1998-06-16 Intel Corporation Method and apparatus for improved processing of numeric applications in the presence of subnormal numbers in a computer system
US5729724A (en) * 1995-12-20 1998-03-17 Intel Corporation Adaptive 128-bit floating point load and store operations for quadruple precision compatibility
US5740093A (en) * 1995-12-20 1998-04-14 Intel Corporation 128-bit register file and 128-bit floating point load and store for quadruple precision compatibility
US8583895B2 (en) * 1996-05-15 2013-11-12 Nytell Software LLC Compressed instruction format for use in a VLIW processor
US5901316A (en) * 1996-07-01 1999-05-04 Sun Microsystems, Inc. Float register spill cache method, system, and computer program product
US6289365B1 (en) * 1997-12-09 2001-09-11 Sun Microsystems, Inc. System and method for floating-point computation
US6138135A (en) * 1998-08-27 2000-10-24 Institute For The Development Of Emerging Architectures, L.L.C. Propagating NaNs during high precision calculations using lesser precision hardware
US6205461B1 (en) 1998-09-18 2001-03-20 Ati International Srl Floating point arithmetic logic unit leading zero count using fast approximate rounding
US6199089B1 (en) 1998-09-18 2001-03-06 Ati International Srl Floating point arithmetic logic unit rounding using at least one least significant bit
US6384748B1 (en) 1998-12-21 2002-05-07 Base One International Corporation Method of encoding numeric data and manipulating the same
US7242414B1 (en) 1999-07-30 2007-07-10 Mips Technologies, Inc. Processor having a compare extension of an instruction set architecture
US6732259B1 (en) 1999-07-30 2004-05-04 Mips Technologies, Inc. Processor having a conditional branch extension of an instruction set architecture
JP2000293494A (ja) 1999-04-09 2000-10-20 Fuji Xerox Co Ltd 並列計算装置および並列計算方法
US6714197B1 (en) 1999-07-30 2004-03-30 Mips Technologies, Inc. Processor having an arithmetic extension of an instruction set architecture
US6631392B1 (en) 1999-07-30 2003-10-07 Mips Technologies, Inc. Method and apparatus for predicting floating-point exceptions
US6697832B1 (en) 1999-07-30 2004-02-24 Mips Technologies, Inc. Floating-point processor with improved intermediate result handling
US6912559B1 (en) 1999-07-30 2005-06-28 Mips Technologies, Inc. System and method for improving the accuracy of reciprocal square root operations performed by a floating-point unit
US7346643B1 (en) * 1999-07-30 2008-03-18 Mips Technologies, Inc. Processor with improved accuracy for multiply-add operations
US6748107B1 (en) * 1999-08-05 2004-06-08 Microsoft Corporation Implementation and uses of XsRGB
US6996596B1 (en) 2000-05-23 2006-02-07 Mips Technologies, Inc. Floating-point processor with operating mode having improved accuracy and high performance
GB2364079B (en) * 2000-06-28 2004-11-17 Renovus Ltd Drill bits
CA2327924A1 (en) * 2000-12-08 2002-06-08 Ibm Canada Limited-Ibm Canada Limitee Processor design for extended-precision arithmetic
US7299170B2 (en) * 2003-06-28 2007-11-20 Transitive Limited Method and apparatus for the emulation of high precision floating point instructions
GB0315350D0 (en) * 2003-06-28 2003-08-06 Transitive Ltd Method and apparatus for the emulation of high precision floating point instructions
US7284117B1 (en) * 2003-11-04 2007-10-16 Advanced Micro Devices, Inc. Processor that predicts floating point instruction latency based on predicted precision
US7730117B2 (en) * 2005-02-09 2010-06-01 International Business Machines Corporation System and method for a floating point unit with feedback prior to normalization and rounding
US20060179096A1 (en) * 2005-02-10 2006-08-10 International Business Machines Corporation System and method for a fused multiply-add dataflow with early feedback prior to rounding
DE102005020233A1 (de) * 2005-04-30 2006-11-09 Carl Zeiss Jena Gmbh Head-Up-Display
US7500390B2 (en) 2005-06-29 2009-03-10 Weatherford/Lamb, Inc. Method for estimating pump efficiency
US7489315B1 (en) * 2006-02-01 2009-02-10 Nvidia Corporation Pixel stream assembly for raster operations
US7477260B1 (en) * 2006-02-01 2009-01-13 Nvidia Corporation On-the-fly reordering of multi-cycle data transfers
US8024394B2 (en) * 2006-02-06 2011-09-20 Via Technologies, Inc. Dual mode floating point multiply accumulate unit
US9223751B2 (en) * 2006-09-22 2015-12-29 Intel Corporation Performing rounding operations responsive to an instruction
US20080209185A1 (en) * 2007-02-28 2008-08-28 Advanced Micro Devices, Inc. Processor with reconfigurable floating point unit
US7565513B2 (en) * 2007-02-28 2009-07-21 Advanced Micro Devices, Inc. Processor with power saving reconfigurable floating point unit decoding an instruction to single full bit operation or multiple reduced bit operations
US8495121B2 (en) * 2008-11-20 2013-07-23 Advanced Micro Devices, Inc. Arithmetic processing device and methods thereof
US20100125621A1 (en) * 2008-11-20 2010-05-20 Advanced Micro Devices, Inc. Arithmetic processing device and methods thereof
US8150902B2 (en) * 2009-06-19 2012-04-03 Singular Computing Llc Processing with compact arithmetic processing element
US8407271B2 (en) * 2009-08-28 2013-03-26 Advanced Micro Devices, Inc. Method for floating point round to integer operation
US8990282B2 (en) * 2009-09-21 2015-03-24 Arm Limited Apparatus and method for performing fused multiply add floating point operation
US8463834B2 (en) * 2009-11-03 2013-06-11 Arm Limited Floating point multiplier with first and second partial product shifting circuitry for result alignment
US8965945B2 (en) 2011-02-17 2015-02-24 Arm Limited Apparatus and method for performing floating point addition
JP5668557B2 (ja) * 2011-03-18 2015-02-12 富士通株式会社 数値丸め方法,数値丸めプログラム,コンピュータおよびコンパイルプログラム
US9600278B1 (en) 2011-05-09 2017-03-21 Altera Corporation Programmable device using fixed and configurable logic to implement recursive trees
US9098332B1 (en) 2012-06-01 2015-08-04 Altera Corporation Specialized processing block with fixed- and floating-point structures
US9189200B1 (en) * 2013-03-14 2015-11-17 Altera Corporation Multiple-precision processing block in a programmable integrated circuit device
US9348795B1 (en) 2013-07-03 2016-05-24 Altera Corporation Programmable device using fixed and configurable logic to implement floating-point rounding
US9817662B2 (en) * 2015-10-24 2017-11-14 Alan A Jorgensen Apparatus for calculating and retaining a bound on error during floating point operations and methods thereof
US10073676B2 (en) 2016-09-21 2018-09-11 Altera Corporation Reduced floating-point precision arithmetic circuitry
US10503473B1 (en) * 2018-05-30 2019-12-10 Apple Inc. Floating-point division alternative techniques
KR20210085461A (ko) 2019-12-30 2021-07-08 삼성전자주식회사 프로세싱 장치 및 프로세싱 장치에서 부동 소수점 연산을 처리하는 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0468820A2 (de) * 1990-07-26 1992-01-29 Fujitsu Limited Datenverarbeitungssystem für Daten mit einfacher Präzision und mit doppelter Präzision

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3930232A (en) * 1973-11-23 1975-12-30 Raytheon Co Format insensitive digital computer
US4041292A (en) * 1975-12-22 1977-08-09 Honeywell Information Systems Inc. High speed binary multiplication system employing a plurality of multiple generator circuits
JPH061438B2 (ja) * 1984-04-26 1994-01-05 日本電気株式会社 倍精度乗算器
US5341321A (en) * 1993-05-05 1994-08-23 Hewlett-Packard Company Floating point arithmetic unit using modified Newton-Raphson technique for division and square root

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0468820A2 (de) * 1990-07-26 1992-01-29 Fujitsu Limited Datenverarbeitungssystem für Daten mit einfacher Präzision und mit doppelter Präzision

Also Published As

Publication number Publication date
JPH08185309A (ja) 1996-07-16
GB2294565A (en) 1996-05-01
GB9521847D0 (en) 1996-01-03
DE19540102C2 (de) 1998-11-12
US5631859A (en) 1997-05-20

Similar Documents

Publication Publication Date Title
DE19540102C2 (de) Verfahren und Gleitkomma-Recheneinheit mit einer Logik für eine Vierfach-Präzisions-Arithmetik
DE4414172C2 (de) Gleit-Komma-Arithmetikeinheit und Verfahren zur Division und Quadratwurzelberechnung, die eine modifizierte Newton-Raphson Technik verwendet
DE102008059371B4 (de) Funktionseinheit für verschmolzenes Multiplizieren und Addieren
DE69233361T2 (de) Ein-Chip-Mikrocomputer
DE112011103206B4 (de) Prozessor und Rechensystem mit einer Multiplizieraddierfunktionseinheit zum Ausführen von Scale-, Round-, Getexp-, Round-, Getmant-, Reduce-, Range- und Class-Befehlen und Verfahren hierfür
DE112008002158B4 (de) Verfahren und System zur Multiplikation großer Zahlen
DE10085322B4 (de) Schaltungsanordnung, Verfahren und Datenverarbeitungs-Einrichtung zum Durchführen einer Ein-Zyklus-Addition oder -Subtraktion und eines Vergleichs bei einer Arithmetik redundanter Form
DE3144015C2 (de)
DE2724125C2 (de)
DE102019114243A1 (de) Architektur für tiefe neuronale Netze unter Verwendung stückweiser linearer Approximation
DE212007000102U1 (de) Rekonfigurierbarer Array-Prozessor für Gleitkomma-Operationen
DE2900324A1 (de) Mikroprogrammierbare arithmetische fliesskommaeinheit
DE3306084A1 (de) Rechnerarchitektur zur gleitkomma -addition
DE102013111605A1 (de) Reduzierung des Leistungsverbrauchs in einer fusionierten Multiplizier-Addier-(FMA)-Einheit in Reaktion auf Eingangsdatenwerte
DE102019120838A1 (de) Dynamische Gleitkommabereichserweiterung
DE19735348A1 (de) Einzelbefehl-Mehrdaten-Verarbeitung unter Verwendung von mehreren Bänken von Vektorregistern
DE102014100108A1 (de) Festkomma-divisionschaltung unter verwendung einer gleitkomma-architektur
DE102018110607A1 (de) Verallgemeinerte Beschleunigung von Matrix-Multiplikations-und-Akkumulations-Operationen
DE112018000140T5 (de) Verschmolzene Multiplikations-Additions-Gleitkommaoperationen auf 128 BIT breiten Operanden
DE112011103195T5 (de) Funktionseinheit zur Berechnung von führenden Nullen von Vektoren, von abschließenden Nullen von Vektoren, der Anzahl von Einsen von Vektoroperanden und der Vektorparität
DE2902496A1 (de) Digitale datenmultiplikationsanordnung
DE19781794C2 (de) Verfahren und Einrichtung zur Division von Gleitkomma- oder ganzen Zahlen
DE102014002510A1 (de) Präzise Ausnahmesignalisierung für Mehrfachdatenarchitektur
DE3701599A1 (de) Vielfunktions-arithmetisch-logische-schaltung
DE2830334C2 (de)

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee