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-ArithmetikInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/3808—Details concerning the type of numbers or the way they are handled
- G06F2207/3812—Devices capable of handling different types of numbers
- G06F2207/382—Reconfigurable for different fixed word lengths
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49942—Significance control
- G06F7/49947—Rounding
- G06F7/49957—Implementation of IEEE-754 Standard
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- 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
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.
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:
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:
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:
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.
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.
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)
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)
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)
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 |
-
1994
- 1994-10-27 US US08/330,391 patent/US5631859A/en not_active Expired - Lifetime
-
1995
- 1995-10-05 JP JP7258341A patent/JPH08185309A/ja active Pending
- 1995-10-25 GB GB9521847A patent/GB2294565A/en not_active Withdrawn
- 1995-10-27 DE DE19540102A patent/DE19540102C2/de not_active Expired - Fee Related
Patent Citations (1)
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 |