DE4414172C2 - Gleit-Komma-Arithmetikeinheit und Verfahren zur Division und Quadratwurzelberechnung, die eine modifizierte Newton-Raphson Technik verwendet - Google Patents

Gleit-Komma-Arithmetikeinheit und Verfahren zur Division und Quadratwurzelberechnung, die eine modifizierte Newton-Raphson Technik verwendet

Info

Publication number
DE4414172C2
DE4414172C2 DE4414172A DE4414172A DE4414172C2 DE 4414172 C2 DE4414172 C2 DE 4414172C2 DE 4414172 A DE4414172 A DE 4414172A DE 4414172 A DE4414172 A DE 4414172A DE 4414172 C2 DE4414172 C2 DE 4414172C2
Authority
DE
Germany
Prior art keywords
square root
reciprocal
bits
estimated
approximation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE4414172A
Other languages
English (en)
Other versions
DE4414172A1 (de
Inventor
Alan Karp
Dennis Brzezinski
Peter Markstein
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 DE4414172A1 publication Critical patent/DE4414172A1/de
Application granted granted Critical
Publication of DE4414172C2 publication Critical patent/DE4414172C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/535Dividing only
    • 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/544Methods 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 for evaluating functions by calculation
    • G06F7/552Powers or roots, e.g. Pythagorean sums
    • G06F7/5525Roots or inverse roots of single operands
    • 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
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/535Indexing scheme relating to groups G06F7/535 - G06F7/5375
    • G06F2207/5355Using iterative approximation not using digit recurrence, e.g. Newton Raphson or Goldschmidt
    • 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/535Indexing scheme relating to groups G06F7/535 - G06F7/5375
    • G06F2207/5356Via reciprocal, i.e. calculate reciprocal only, or calculate reciprocal first and then the quotient from the reciprocal and the numerator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/487Multiplying; Dividing
    • G06F7/4873Dividing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49936Normalisation mentioned as feature only
    • 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

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

Description

Die vorliegende Erfindung bezieht sich auf ein Datenverar­ beitungssystem mit einer Gleit-Komma-Arithmetikeinheit und insbesondere auf ein Verfahren und eine Vorrichtung zum Durchführen von Gleit-Komma-Divisions- und Quadratwurzel­ operationen.
Gleit-Komma-Arithmetikeinheiten sind seit langem dazu fähig, Divisions- und Quadratwurzeloperationen durchzuführen. Ob­ wohl zweckorientierte Divisions- und Quadratwurzelschal­ tungen bei Datenverarbeitungssystemen verwendet wurden, um Divisions- und Quadratwurzeloperationen durchzuführen, geht der derzeitige Trend dahin, diese Operationen unter Ver­ wendung einer Schaltung, die der Multiplikation und Addition zugeordnet ist, durchzuführen. Beispiele von Datenverarbei­ tungssystemen, die einen Multiplizierer und Addierer ver­ wenden, um eine Division oder Quadratwurzeloperation durch­ zuführen, sind in der Europäischen Patentanmeldung 89313402.3 (EPA-Veröffentlichungsnummer 0377992 A2), der Europäischen Patentanmeldung 85106938.5 (EPA-Veröffent­ lichungsnummer 0166999 A2) und in der Europäischen Pa­ tentanmeldung 82111929.4 (EPA-Veröffentlichungsnummer 0111587 A1) enthalten.
Durch das Ausschließen der zweckorientierten Divisions- und Quadratwurzelschaltung aus den Entwürfen von Gleit-Komma- Arithmetikeinheiten können Entwickler von Datenverarbei­ tungssystemen nicht nur die Kosten reduzieren, sondern eben­ falls Platz auf der Platine oder dem Baustein einsparen. Bei diesen Datenverarbeitungssystemen werden die Divisions- und Quadratwurzeloperationen unter Verwendung des Multiplizie­ rers und Addierers der Gleit-Komma-Arithmetikeinheit durch­ geführt. Dies ermöglicht es, mehr Entwurfszeit, Leistung und Fläche auf die wesentlich häufiger verwendete Addierer- und Multiplizierer-Hardware zu konzentrieren. Nachdem herausge­ funden wurde, daß etwa nur jede zehnte Operation, die in einem Datenverarbeitungssystem durchgeführt wird, eine Divi­ sions- oder Quadratwurzeloperation einschließt, sind solche Entwürfe realisierbar. Ein ständiges Problem bei diesem An­ satz besteht jedoch darin, daß Divisions- und Quadratwur­ zeloperationen eine erheblich längere Zeit zur Berechnung benötigen als dies Additions- und Multiplikationsoperationen tun. Dieser Unterschied der Berechnungszeit beruht auf der Tatsache, daß die Additions- und Multiplikationsoperationen direkt berechnet werden, während Divisions- und Quadratwur­ zeloperationen mittels einer iterativen Prozedur indirekt berechnet werden.
Iterative Prozeduren zur Division können abhängig von ihrem iterativen Operator in unterschiedliche Klassen eingeteilt werden. Eine Klasse verwendet die Subtraktion als iterativen Operator (z. B. nicht- umspeichernde Division), und eine an­ dere Klasse verwendet die Multiplikation als iterativen Ope­ rator. Die iterativen Prozeduren, die die Multiplikation als iterativen Operator verwenden, werden bevorzugt, weil sie die Ergebnisse wesentlich schneller berechnen. Genauer ge­ sagt werden für die Division diese iterativen Prozeduren verwendet, um einen Reziprokwert des Divisors zu erhalten und dann den Quotienten zu erhalten, wobei der sich erge­ bende Reziprokwert mit den Dividenden multipliziert wird. Es gibt zwei gut bekannte iterative Verfahren, die die Multi­ plikation als Iterativoperator verwenden, um den Reziprok­ wert zu bestimmen, nämlich die Serienerweiterung und Newton- Raphson. Von diesen iterativen Verfahren wird das Newton- Raphson-Verfahren am häufigsten verwendet. Eine allgemeine Beschreibung von iterativen Prozeduren zur Division kann bei Waser und Flynn, "Introduction to Arithmetic For Digital Sy­ stems Designers", New York, 1982, gefunden werden.
Das Newton-Raphson-Verfahren ist ein besonders attraktives Berechnungsverfahren für einen sehr schnellen Computer mit einem Gleit-Komma-Multiplizierer und einem Gleit-Komma- Addierer-Subtrahierer. Das Newton-Raphson-Verfahren wird nicht nur für die Division verwendet sondern ebenfalls für die Quadratwurzeloperation. Bei jeder Iteration konvergiert das Newton-Raphson-Verfahren quadratisch auf sein Ergebnis.
Herkömmlicherweise wird die Newton-Raphson-Iteration verwen­ det, um eine Näherung an den Nenner, im Fall der Division, oder die inverse Quadratwurzel, im Fall der Quadratwurzel, zu erreichen. Danach erhöht jede nachfolgende Newton-Raph­ son-Iteration die Genauigkeit des inversen Wertes. Sobald die erwünschte Genauigkeit erreicht ist, wird der inverse Wert mit dem Nenner, im Fall der Division, oder dem Ein­ gangsargument, im Fall der Quadratwurzeloperation, multipli­ ziert. Obwohl der herkömmliche Ansatz recht gut arbeitet, wenn die Ergebnisse auf eine Genauigkeit berechnet werden, die durch die der Addition und Multiplikation zugeordneten Hardware angeboten wird, ist der herkömmliche Ansatz unbe­ friedigend, wenn Ergebnisse mit höherer Präzision benötigt werden. Insbesondere erfordert es einen ungeheueren Zeitauf­ wand, um die abschließende Multiplikation (abschließender inverser Wert mal dem Nenner) für Resultate mit höherer Ge­ nauigkeit durchzuführen.
Es besteht folglich ein bestimmter Bedarf an einer verbes­ serten Technik zum Erhalten von sehr genauen Ergebnissen von Divisions- und Quadratwurzeloperationen, die mit einer er­ heblich höheren Geschwindigkeit arbeiten als der herkömm­ liche Ansatz.
Die EP 0,395,240 A2 offenbart einen numerischen Hochge­ schwindigkeitsprozessor für Divisions- und Quadratwurzelbe­ rechnungen mit einer Mehrzahl von Registern und einem Multi­ plizierer 38. Die Divisions- oder Quadratwurzelberechnung erfolgt derart, daß in einem ersten Schritt ein Startwert S ausgewählt wird, der das Ergebnis einer Multiplikation des Divisors mit dem Startwert Eins treibt. In den nachfolgenden Schritten erfolgt eine Iteration, die bewirkt, daß der aus­ gewählte Startwert so an einen Endwert angenähert wird, daß das Ergebnis einer Multiplikation von S mit dem Divisor Y näherungsweise 1 wird. Bei der Berechnung einer Quadratwur­ zel wird ein ausgewählter Startwert S an den Multiplizierer ausgegeben. Der numerische Prozessor über eine Operandensi­ gnalführung, eine Startwerterzeugungseinrichtung und eine Lo­ gikschaltung gesteuert.
Die US 5,157,624 betrifft ein Maschinenverfahren zum Durchführen von Newton-Iterationen für reziproke Quadratwur­ zeln. Eine Vorrichtung umfaßt eine Mehrzahl von Registern, Gleit-Komma-Multiplizierer, Gleit-Komma-Addierer und Sub­ trahierereinheiten zur Berechnung einer reziproken Quadrat­ wurzel. Die Berechnung gemäß dem Newton-Verfahren umfaßt das Auswählen eines Startwertes für den Reziprokwert der Qua­ dratwurzel und die Annäherung dieses ausgewählten Start­ wertes an einen Zielwert, wobei sich hierbei die Genauigkeit des angenäherten Wertes erhöht.
Die US 4,999,801 betrifft eine Gleit-Komma-Operationsein­ heit für Divisions- und Quadratwurzeloperationen, die die Betriebsgeschwindigkeit bei einer Divisions- oder Quadrat­ wurzeloperation durch eine Reduzierung der Anzahl von Zyklen durch Operationen erhöht.
Der vorliegenden Erfindung liegt die Aufgabe zugrunde, eine Vorrichtung und ein Verfahren zu schaffen, das die sehr ge­ naue und die sehr schnelle Erzeugung von Divisions- und Qua­ dratwurzeloperationen ermöglicht.
Diese Aufgabe wird durch eine Gleit-Komma-Arithmetikeinheit gemäß Anspruch 1 und Anspruch 2 sowie gemäß einem Verfahren nach Anspruch 7 oder Anspruch 8 gelöst.
Allgemein erzielt die Erfindung sehr genaue Divisions- und Quadratwurzelergebnisse, wobei eine modifizierte Form des Newton-Raphson-Verfahrens verwendet wird, bei dem keine Mul­ tiplikationen von Zahlen mit der Genauigkeit des Ergebnisses erforderlich sind.
Ein Ausführungsbeispiel der Erfindung führt Gleit-Komma- Divisions- und -Quadratwurzeloperationen in einem arith­ metischen Verarbeitungssystem mit einer Multipliziererein­ heit und einer Addierereinheit durch. Um die Divisions- und Quadratwurzel-Befehle auszuführen, schließt der Divisions- und Quadratwurzel-Mikrocode iterative Prozeduren ein, die sowohl auf der herkömmlichen Form des Newton-Raphson-Verfah­ rens und auch der modifizierten Form des Newton-Raphson-Ver­ fahrens basieren. Durch Verwendung der modifizierten Form des Newton-Raphson-Verfahrens erreicht die Erfindung eine wesentliche Verbesserung der Geschwindigkeit, mit der die Ergebnisse für eine sehr genaue Division und Quadratwurzel berechnet werden. Die Erfindung ermöglicht ebenfalls eine praktische Hardwareausführung, weil ein ungefähres Ergebnis mit fast 2N-Bits Genauigkeit ohne einen 2N-auf-2N breiten Multiplizierer erreicht werden kann.
Als Vorrichtung ist die Erfindung einer Gleit-Komma-Arithme­ tikeinheit zugeordnet. Die Erfindung ermöglicht es der Gleit-Komma-Arithmetikeinheit eine Gleit-Komma-Division eines Dividenden durch einen Divisor, um einen bestimmten Quotienten zu erzeugen, oder eine Gleit-Komma-Quadratwurzel­ operation eines Wertes, um eine bestimmte Quadratwurzel zu erzeugen, durchzuführen. Die Vorrichtung schließt ein Spei­ cherbauelement mit mehreren Anschlüssen zum Speichern von Daten, eine arithmetische Einrichtung zum Multiplizieren von zwei Zahlen, um ein Produkt zu erzeugen, und zum Addieren von zwei Zahlen, um eine Summe zu erzeugen, einen Divisions- und Quadratwurzel-Mikrocode, der die iterativen Prozeduren zum Durchführen der Dividierer- und Quadratwurzeloperationen enthält, eine Reziprokwertnäherungseinrichtung zum Enthalten der anfänglichen Näherungen der Reziprokwerte des Divisors und der Reziprokwerte der Quadratwurzel des Wertes, und eine Steuerungseinheit zum Steuern der Gleit-Komma-Einheit ein. Die iterativen Prozeduren, die in dem Divisions- und Qua­ dratwurzel-Mikrocode enthalten sind, führen die Divisions- und Quadratwurzel-Operationen aus, um den bestimmten Quo­ tienten und die Quadratwurzel mit einer Genauigkeit in der Nähe von 2N-Bits zu erzeugen, ohne daß 2N-mal-2N-Bit Multi­ plikationen erforderlich sind.
Als Verfahren führt die Erfindung eine Divisions- oder Qua­ dratwurzeloperation in einem Datenverarbeitungssystem aus, um ein sehr genaues Ergebnis zu erzeugen. Anfänglich wird eine Näherung eines Reziprokwertes erhalten. Die Näherung des Reziprokwertes kann zum Beispiel aus eines Reziprokwert­ näherungstabelle erhalten werden. Als nächstes werden eine oder mehrere Iterationen eines herkömmlichen Newton- Raphson-Verfahrens durchgeführt, um die Genauigkeit des Re­ ziprokwertes zu erhöhen. Danach wird eine zusätzliche Iteration unter Verwendung eines modifizierten Newton-Raph­ son-Verfahrens durchgeführt, um das sehr genaue Ergebnis zu erzeugen.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend unter Bezugnahme auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
Fig. 1 ein Blockdiagramm einer Gleit-Komma-Arithmetikein­ heit gemäß einem ersten Ausführungsbeispiel der Er­ findung;
Fig. 2 ein Blockdiagramm einer Gleit-Komma-Arithmetikein­ heit gemäß einem zweiten Ausführungsbeispiel der Erfindung;
Fig. 3 ein Flußdiagramm der grundsätzlichen Operationen, die durch eine Steuerungseinheit ausgeführt werden;
Fig. 4 ein Flußdiagramm der grundsätzlichen Operationen, die durch den Divisions- und Quadratwurzel-Mikro­ code ausgeführt werden;
Fig. 5 ein Flußdiagramm der detaillierten Operationen, die durch den Divisions-Mikrocode ausgeführt werden; und
Fig. 6 ein Flußdiagramm der detaillierten Operationen, die durch den Quadratwurzel-Mikrocode ausgeführt wer­ den.
Die Erfindung ist zur Verwendung in einer Gleit-Komma-Arith­ metikeinheit vorgesehen. Die Erfindung ermöglicht es einer Gleit-Komma-Arithmetikeinheit, Ergebnisse mit einer Genauig­ keit zu produzieren, die mindestens zweimal derjenigen ent­ spricht, die durch die Hardware angeboten wird. Bevorzugter­ weise erzeugt die Erfindung eine 2N-Bit Näherung (volle Ge­ nauigkeit) aus einer N-Bit Näherung (Halb-Genauigkeit). Wenn die Hardware zum Beispiel fähig ist, doppelt genaue Erge­ bnisse bereit zu stellen, wird die Erfindung vierfach genaue Ergebnisse erzeugen. Die Erfindung ist ebenso auf mehrfach genaue Zahlen anwendbar. Mehrfach genaue Zahlen sind Zahlen mit einer Genauigkeit größer als die Vierfachgenauigkeit. Diese Zahlen können in einem einfach genauen Gleit-Komma- Array gespeichert sein. Bei einer Ausführung ist das erste Wort in dem Array eine Gleit-Komma-Zahl mit ganzzahligem Wert, deren Absolutwert die Anzahl der Wörter in der Man­ tisse darstellt. Das Vorzeichen des ersten Worts ist das Vorzeichen der mehrfach genauen Zahl. Das nächste Wort ist eine Gleit-Komma-Zahl mit ganzzahligem Wert, die den Ex­ ponenten der Basis darstellt. Der Dezimalpunkt folgt dem ersten Mantissenwort. Bekannte Softwarebibliotheksroutinen sind erhältlich, um mathematische Operationen bezüglich dieser Zahlen auszuführen. Siehe zum Beispiel Bailey, "A Portable High Performance Multiprecision Package", RNR Technical Report RNR-90-022, NAS Applied Research Branch, NASA Ames Research Center, Moffett Field, Kalifornien, Mai 1992.
Ausführungsbeispiele der Erfindung werden im Folgenden in den Fig. 1 bis 6 beschrieben. Für Fachleute ist es jedoch offensichtlich, daß die hier gegebene detaillierte Beschrei­ bung bezüglich dieser Figuren aus erklärenden Gründen er­ folgt, nachdem sich die Erfindung über diese beschränkten Ausführungsbeispiele hinaus erstreckt.
Fig. 1 stellt ein erstes Ausführungsbeispiel einer Gleit- Komma-Arithmetikeinheit 100 dar. Dieses Ausführungsbeispiel speichert vierfach genaue Zahlen in einem Doppel-Doppel-For­ mat. Die Arithmetikeinheit 100 schließt eine getrennte Schaltung für die Multiplikation und Addition ein.
Eine Registerdatei 102 mit mehreren Anschlüssen schließt Leseanschlüsse A, B, C, D und E und Schreibanschlüsse F, G, H und I ein. Die Registerdatei 102 speichert Daten mit einer N-Bit Wortgröße. Eine Multiplikationseinheit 104 ist mit den Leseanschlüssen A und B verbunden, um jeweils einen Multi­ plikanden und einen Multiplikator zu empfangen. Die Multi­ plikationseinheit 104 stellt einem Übertragübergabeaddierer (CPA = Carry Propagate Adder) 106 ein hohes Teilprodukt und ein niedriges Teilprodukt bereit. Der CPA 106 addiert das hohe und das niedrige Teilprodukt. Die durch den CPA 106 er­ zeugte Summe wird dann durch einen Rundungsaufwärtszähler 108 auf 2N-Bits gerundet.
Das gerundete Ergebnis besteht aus zwei N-Bitabschnitten, die jeweils in einem Zwischenspeicher für ein hohes Produkt 110 und in einen Zwischenspeicher für ein niedriges Produkt 112 enthalten sind. Ein Multiplexer 114 empfängt die zwi­ schengespeicherten N-Bitabschnitte von den Zwischenspeichern 110, 112. Der Ausgang des Multiplexers 114 ist mit dem Schreibanschluß F der Registerdatei 102 verbunden, so daß die zwei N-Bitabschnitte der Multiplikationsoperationen in der Registerdatei 102 in zwei Schreiboperationen, eine für den hohen Abschnitt und eine für den niedrigen Abschnitt, gespeichert werden können.
Entsprechend stellen die Leseanschlüsse A und B der Multi­ plikationseinheit 104 den Multiplikanden und den Multipli­ kator bereit. Die Ergebnisse der Multiplikation bestehen aus zwei N-Bitwerten, die gerundet sind und an den Schreiban­ schluß F der Registerdatei 102 zur vorübergehenden Spei­ cherung weitergegeben werden.
Andere Anschlüsse der Registerdatei 102 sind der Additions­ schaltung der Gleit-Komma-Arithmetikeinheit 100 zugeordnet. Ein Synchronisationsschieber 116 empfängt die Summanden von den Leseanschlüssen C und D der Registerdatei 102 und syn­ chronisiert sie für die Addition. Ein Übertragübergabead­ dierer (CPA) 118 addiert dann die synchronisierten Werte und führt eine Summe einem Normalisierungsschieber 120 zu. Die normalisierte Summe wird dann durch einen Rundungsaufwärts­ zähler auf 2N-Bits gerundet, um eine gerundete Summe zu er­ zeugen. Die ersten N-Bits der gerundeten Summe werden in einem Zwischenspeicher 124 für eine hohen Abschnitt zwi­ schengespeichert und die zweiten N-Bits der gerundeten Summe werden in einem Zwischenspeicher 126 für einen niedrigen Abschnitt zwischengespeichert. Ein Multiplexer 128 empfängt die zwischengespeicherten Summen von den Zwischenspeichern 124, 126 als Eingangssignale und gibt die zwischengespei­ cherten Summen in zwei Durchgängen zurück an den Schreiban­ schluß G.
Eine Steuerungseinheit 130 empfängt auszuführende Befehle und gibt die notwendigen Steuerungssignale 132 an die ver­ schiedenen Schaltungen, die in Fig. 1 gezeigt sind. Die Steuerungseinheit 130 steuert daher die Multiplikations- und Additionsschaltung, um die Befehle auszuführen.
Um die Gleit-Komma-Arithmetikeinheit anzupassen, so daß sie Divisions- und Quadratwurzel-Befehle unter Verwendung ihrer Multiplikations- und Additionsschaltung ordnungsgemäß aus­ führt, kann durch die Steuerungseinheit 130 auf einen Divi­ sions- und Quadratwurzel-Mikrocode 134 zugegriffen werden. Die iterativen Prozeduren, die innerhalb des Divisions- und Quadratwurzel-Mikrocodes 134 enthalten sind, werden später genauer beschrieben. Nachdem die iterativen Prozeduren mit einem anfänglichen Schätzwert oder Näherung eines Reziprok­ wertes oder einer reziproken Quadratwurzel beginnen, sind Näherungstabellen 136 für den Reziprokwert oder die Rezi­ prokquadratwurzel innerhalb der Gleit-Komma-Arithmetik­ schaltung 100 eingeschlossen. Diese Näherungswerte werden der Registerdatei 102 zugeführt, so daß sie entweder in der Multiplikationsschaltung oder der Additionsschaltung ver­ wendet werden können.
Tabelle 1 zeigt einige Beispiele (im dezimalen Format) einer Reziprokwertnäherungstabelle und Tabelle 2 stellt dasselbe für eine Näherungstabelle für eine reziproke Quadratwurzel dar.
Tabelle 1 Division
A
Näherung
0.1 10.0
0.2 5.0
0.3 3.33
0.4 2.50
0.5 2.00
0.6 1.67
0,7 1.43
0,8 1.25
0.9 1.11
1.0 1.0
Tabelle 2 Quadratwurzel
A
Näherung √U/A
0.1 3.16
0.2 2.24
0.3 1.83
0.4 1.58
0.5 1.41
0.6 1.29
0,7 1.20
0,8 1.12
0.9 1.05
1.0 1.00
Die tatsächlichen Näherungstabellen würden viel mehr Ein­ träge in der hexadezimalen Darstellung enthalten, wie etwa im Anhang A der Europäischen Patentanmeldung 89313402.3 (EPA-Veröffentlichungsnummer 0377992 A2), deren Offenba­ rungsgehalt hiermit durch Bezugnahme aufgenommen ist.
In jedem Fall stellen die Näherungen, die in den Näherungs­ tabellen 136 gespeichert sind, lediglich die ersten wenigen Bits des erwünschten Reziprokwertes dar. Nachdem eine Ta­ belle für alle möglichen Gleit-Komma-Zahlen unpraktisch groß wäre, ist ein Exponenteinsteller 138 vorgesehen, um den Ex­ ponenten herauszuziehen und einzustellen. Der Exponentein­ steller 138 speichert und erhält Daten von der Registerdatei 102 über den Schreibanschluß I bzw. den Leseanschluß E. Durch getrenntes Behandeln des Exponenten- und Mantissen- Feldes der Gleit-Komma-Zahlen können die Näherungstabellen in einer verwaltbaren Größe aufgebaut werden. Für die Divi­ sion werden die Mantissenbits verwendet, um die entsprechen­ den Einträge aus den Näherungstabellen 136 auszuwählen und der Exponenteinsteller 138 zieht den Exponenten heraus und stellt ihn durch Verwenden des negativen Exponenten ein. Für die Quadratwurzeloperation wird wiederum die Mantisse ver­ wendet, um die geeigneten Einträge aus den Näherungstabellen 136 auszuwählen, der Exponenteinsteller ist aber kompli­ zierter. Wenn der Exponent gerade ist, reduziert der Expo­ nenteinsteller 138 den Exponenten um eine Hälfte. Wenn der Exponent ungerade ist, modifiziert der Exponenteinsteller 138 den Exponenten derart, daß vom Exponenten Eins abgezogen wird und der Exponent dann um die Hälfte reduziert wird. In jedem Fall ist der eingestellte Exponent mit der iterativen Prozedur verbunden, bevor die Näherung verwendet wird.
Fig. 2 ist ein Blockdiagramm einer Gleit-Komma-Arithmetik­ einheit 200 gemäß einem zweiten Ausführungsbeispiel der Erfindung. Die Gleit-Komma-Arithmetikeinheit 200, die in Fig. 2 dargestellt ist, weist einen verschmolzenen Multipli­ kations-Additionsentwurf auf (MAF = multiply-add-fused­ design). Das heißt, eine Multiplikationseinheit und ein Ad­ dierer sind zusammen verschmolzen, so daß die Multiplikation und die Addition als eine Operation auftreten können.
Eine Registerdatei mit mehreren Anschlüssen 202 schließt Le­ seanschlüsse A, B, C und D und Schreibanschlüsse E, F und G ein. Eine Multiplikationseinheit 204 empfängt einen Multi­ plikanden und einen Multiplikator von den Leseanschlüssen A und B und erzeugt ein Produkt. Ein Synchronisationsschieber 206 empfängt einen Summanden von dem Leseanschluß D und synchronisiert den Summanden gemäß dem Exponenten des Pro­ dukts, unter Verwendung eines Signals 207 von der Multipli­ kationseinheit 204.
Ein 3 : 2-Übertragsicherungsaddierer 208 empfängt Eingangs­ signale von der Multiplikationseinheit 204 und dem Synchro­ nisationsschieber 206 und stellt einem Übertragübergabead­ dierer 210 mindestens 2N-Bits eines Ausgangssignals bereit. Die Erfindung erfordert lediglich die Verwendung der füh­ renden 2N-Bits des Übertragsicherungsaddierers 208. Der Übertragübergabeaddierer 210 erzeugt ein 2N-Bit Ergebnis, das dann durch einen Normalisierungsschieber 212 normali­ siert wird und durch einen Rundungsaufwärtszähler 214 auf ein 2N-Bit Ergebnis gerundet wird. Das gerundete Ergebnis wird dann in zwei N-Bit Abschnitten einem Zwischenspeicher 216 für einen hohen Abschnitt bzw. einem Zwischenspeicher 218 für einen niedrigen Abschnitt zugeführt. Ein Multiplexer 220 empfängt die zwischengespeicherten N-Bit Abschnitte von den Zwischenspeichern 216, 218. Der Ausgang des Multiplexers 220 ist mit dem Schreibanschluß F der Registerdatei 202 ver­ bunden, so daß die zwei N-Bits Abschnitte in der Register­ datei 202 in zwei Schreiboperationen, eine für den hohen Abschnitt und eine für den niedrigen Abschnitt, gespeichert werden können.
Eine Steuerungseinheit 222 empfängt einen Befehl und führt diesen aus. Genauer gesagt steuert die Steuerungseinheit 222 die Schaltung der Gleit-Komma-Arithmetikeinheit 200 unter Verwendung verschiedener Steuerungssignale 224. Wenn der an der Steuerungseinheit 222 empfangene Befehl entweder ein Divisions-Befehl oder ein Quadratwurzel-Befehl ist, greift die Steuerungseinheit 222 auf den Divisions- und Quadratwur­ zel-Mikrocode 226 zu, um die iterativen Prozeduren auszufüh­ ren, die erforderlich sind, um die Divisions- und Quadrat­ wurzeloperation unter Verwendung der Multiplikations- und Additions-Schaltung durchzuführen.
Obwohl die erforderlichen iterativen Prozeduren später be­ schrieben werden, erfordern die iterativen Prozeduren die Verwendung von anfänglichen Näherungen oder Schätzwerten für einen Reziprokwert oder einen Reziprokwert für die Quadrat­ wurzel, die in den Näherungstabellen 228 für den Reziprok­ wert und die reziproke Quadratwurzel gespeichert sind. Ta­ belle 1 und 2 enthalten ein Beispiel einer Näherungstabelle für einen Reziprokwert und einer Näherungstabelle für eine reziproke Quadratwurzel. Die geeigneten Näherungen werden durch die Steuerungseinheit 222 (über die Steuerungssignale 224) ausgewählt und dem Schreibanschluß G zugeführt, so daß die Gleit-Komma-Arithmetikeinheit 200 die durch den Mikro­ code 226 angeforderten iterativen Prozeduren ausführen kann. Ein Exponenteinsteller 230 ist mit dem Leseanschluß C und dem Schreibanschluß E der Registerdatei 202 verbunden und ist genauso wirksam wie der oben beschriebene Exponentein­ steller 138.
Aus Verhaltensgründen können das erste und das zweite Aus­ führungsbeispiel (Fig. 1 und 2) unter Verwendung einer gut bekannten Schaltung weiter verbessert werden. Um zum Bei­ spiel die Verarbeitung von Befehlsfolgen zu vereinfachen, können zusätzliche Zwischenspeicher zwischen die Register­ datei und die Multiplikationseinheit oder den Synchronisie­ rungsschieber hinzugefügt werden. Es könnten ebenfalls Mul­ tiplexer zwischen die Registerdatei 102 und die Multiplika­ tionseinheit 104 und den Synchronisierungsschieber eingefügt werden, um die Multiplikationseinheit oder den Synchroni­ sierungsschieber schneller mit Eingangssignalen zu versor­ gen. Nichtsdestoweniger sind diese und zahlreiche andere gut bekannte Verbesserungen kein Teil der Erfindung, sondern sind hauptsächlich Entwurfsauswahlen für die Hardware und sind aus diesem Grund hier nicht weiter beschrieben.
Obwohl das erste und das zweite Ausführungsbeispiel (Fig. 1 und Fig. 2) mit Näherungstabellen 136, 228 für die Rezi­ prokwerte beschrieben sind, kann der anfängliche Schätzwert oder die Näherung eines Reziprokwertes oder einer reziproken Quadratwurzel auch durch andere Einrichtungen erhalten wer­ den. Es ist in Fachkreisen zum Beispiel bekannt, daß solche Näherungen unter Verwendung einer polynomen Gleichung er­ haltbar sind, um die Koeffizienten zu erhalten, die ver­ wendet werden, um die Näherung zu erzeugen. Siehe zum Bei­ spiel Cody und Waite, "Software Manual for the Elementary Functions", Seiten 17-27, 1980; A. Karp, "Speeding up N-Body Calculations on Machines without Hardware Square Root", IBM Scientific Center, Doc. No. G320-3565, April 1992.
Fig. 3 ist ein Flußdiagramm der grundsätzlichen Prozeduren, die durch die Steuerungseinheit 130, 222 durchgeführt oder gesteuert werden. Wenn die Steuerungseinheit 130, 222 einen Befehl empfängt, treten verschiedene Operationen in einer Gleit-Komma-Arithmetikeinheit auf. Anfänglich wird der Be­ fehl decodiert 302 und seine Operanden werden gelesen 304. Als nächstes wird eine Entscheidung 306 getroffen, die da­ rauf basiert, ob ein spezieller Fall existiert oder nicht. Ein spezieller Fall existiert, wenn die Operanden keine normalen Zahlen sind. Wenn die Operanden keine normalen Zahlen sind, erfolgt gemäß dem IEEE-Standard 754-1985 ein "Fix-up" 308 und die Flußsteuerung fährt fort, als ob die Zahlen anfänglich normal wären. Wenn zum Beispiel eine der Zahlen 0,02×10⁻3 ist, würde ein "Fix-up" auf 0,2×10⁻4 erfolgen (in diesem Fall normalisiert), bevor die Verarbei­ tung weiter geht.
Als nächstes wird eine Entscheidung getroffen 310, die dar­ auf basiert, ob der Befehl ein Divisions-Befehl ist oder nicht. Wenn der Befehl ein Divisions-Befehl ist, führt die Steuerungseinheit 130, 222 den Divisions-Mikrocode 156, 238 aus 312. Nach der Vollendung des Divisions-Mikrocodes 134, 226 kehrt die Flußsteuerung zum Schritt 302 zurück, um den nächsten Befehl zu decodieren.
Wenn die Entscheidung 310 feststellt, daß der Befehl kein Divisions-Befehl ist, wird eine Entscheidung 314 durchge­ führt, die darauf basiert, ob der Befehl ein Quadratwurzel- Befehl ist oder nicht. Wenn der Befehl ein Quadratwurzel-Be­ fehl ist, führt die Steuerungeinheit 130, 222 den Quadrat­ wurzel-Mikrocode 134, 226 aus, und der Steuerungsfluß kehrt dann zum Schritt 302 zurück, um den nächsten Befehl zu de­ codieren. Wenn andererseits erkannt wird 314, daß der Befehl kein Quadratwurzel-Befehl ist, dann wird eine Multiplika­ tionsoperation 318 und/oder eine Additionsoperation 320 auf herkömmliche Art durch die Multiplikationseinheit 104, 204 und den Addierer 118, 208, die in Fig. 1 und 2 dargestellt sind, ausgeführt. Danach wird ein Ergebnis zur vorübergehen­ den Speicherung in die Registerdatei 102, 202 zurückge­ schrieben 322.
Fig. 4 ist ein Flußdiagramm der grundsätzlichen Prozedur, die durch den Divisions- und Quadratwurzel-Mikrocode 134, 226 aufgerufen wird. Die Prozedur beginnt mit dem Erhalten eines genäherten Reziprokwertes 402. Die anfänglichen Rezi­ prokwerte für den Divisor im Fall der Division oder die Quadratwurzel selbst im Fall der Quadratwurzel sind in den Näherungstabellen 136, 228 für den Reziprokwert und die re­ ziproke Quadratwurzel gespeichert. Beispiele dieser Tabellen 136, 228 sind in den Tabellen 1 und 2 enthalten, die oben beschrieben wurden. Wenn ein Divisions- oder Quadratwurzel- Befehl durch die Steuerungseinheit 130, 222 empfangen wird, greift die Steuerungeinheit 103, 222 auf die Näherungsta­ bellen 136, 228 für den Reziprokwert oder die reziproke Qua­ dratwurzel zu, um einen genäherten Reziprokwert zu erhalten 402. Wenn zum Beispiel ein Befehl empfangen wird, um 1 durch 0,9 zu teilen, würde die Steuerungeinheit 130, 222 unter Verwendung des Divisors als Index auf die Tabelle 136, 228 zugreifen, um den Wert 1,11 auszulesen.
Als nächstes ist die Prozedur wirksam, um n Iterationen des Newton-Raphson-Verfahrens durchzuführen 404, um die Genauig­ keit des Reziprokwertes zu verbessern. Diese n Iterationen verwenden eine herkömmliche Form des Newton-Raphson-Verfah­ rens, die Fachleuten bekannt ist. Die Verbesserung der Ge­ nauigkeit des Reziprokwertes konvergiert unter Verwendung des Newton-Raphson-Verfahrens geometrisch. Sobald die ersten n Iterationen des Newton-Raphson-Verfahrens durchgeführt wurden, wird die letzte oder (n + 1)-te Iteration unter Ver­ wendung eines modifizierten Newton-Raphson-Verfahrens aus­ geführt 406. Diese letzte Operation ist direkt wirksam, um das Ergebnis zu erzeugen, das heißt, den Wert des Quotienten oder der Quadratwurzel.
Der Vorteil der Erfindung besteht darin, daß die letzte Ope­ ration wirksam ist, um zwei Zahlen mit halber Genauigkeit zu multiplizieren, wohingegen die herkömmliche Technik es er­ fordern würde, die Multiplikation von zwei Zahlen mit voll­ ständiger Genauigkeit als Trennungsschritt nach der letzten Iteration des Newton-Raphson-Verfahrens durchzuführen, das in dem herkömmlichen Fall lediglich den Reziprokwert schafft.
Die durch die Erfindung verwendete Prozedur, um einen Quo­ tienten oder eine Quadratwurzel zu erhalten, enthält ver­ schiedene Kombinationen von Genauigkeiten der Multiplika­ tionsoperationen. Einige dieser Kombinationen der Genauig­ keiten sind in Tabelle 3 dargestellt.
Tabelle 3
In der Tabelle 3 werden folgende Bezeichnungen verwendet. A und B sind Zahlen mit vollständiger Genauigkeit mit 2N Stel­ len, während a und b Zahlen mit halber Genauigkeit mit N Stellen sind. Der Index (kd) zeigt die Anzahl (k) von Wör­ tern mit halber Genauigkeit in dem Ergebnis an, wobei (d) die Hardwaregenauigkeit bezeichnet. Vd kann zum Beispiel hardwaremäßig berechnet sein, und U2d kann hardwaremäßig er­ hältlich sein, aber wenn dies nicht der Fall ist, kann eine Software (unten beschrieben) eine Einzel-Einzel Darstellung verwenden, um das gleiche zu erzeugen. Die Aufwandsab­ schätzungen, die in Tabelle 3 enthalten sind, sind für Ope­ rationen mit doppelter Genauigkeit, die Ergebnisse mit vier­ facher Genauigkeit, die hardwaremäßig (Qh) und softwaremäßig (Qs) erhalten wurden, zurückgeben. Zusätzlich sind die Auf­ wandsabschätzungen für herkömmliche Operationen mit mehr­ facher Genauigkeit bis zu einigen hundert Stellen (C) und für die schnelle Fouriertransformationsmultiplikation für Zahlen mit mehr als einigen hundert Stellen (F) angegeben. Der relative Aufwand ist relativ zu einer Halbgenauigkeit mal Halbgenauigkeits-Multiplikation, von der angenommen wird, während einer Zeiteinheit stattzufinden.
Die Operationen, die dem Divisions- und Quadratwurzel-Mikro­ code 134, 226 zugeordnet sind, werden im Folgenden getrennt beschrieben. Der Divisions-Mikrocode wird ausgeführt, um einen Divisions-Befehl auszuführen, während der Quadrat­ wurzel-Mikrocode ausgeführt wird, um einen Quadratwurzel-Be­ fehl durchzuführen.
Die durch den Divisions-Mikrocode durchgeführten Operationen werden im Folgenden in Fig. 5 beschrieben, die ein Flußdia­ gramm der detaillierten Operationen darstellt, die durch den Divisions-Mikrocode ausgeführt werden. Der Division-Mikro­ code schließt sowohl das herkömmliche Newton-Raphson-Ver­ fahren und das modifizierte Newton-Raphson-Verfahren ein, um die Vorteile der Erfindung zu erzeugen.
Um eine Division durchzuführen, bestimmt das Newton-Raphson- Verfahren zuerst einen Reziprokwert des Divisors und dann wird der sich ergebende Reziprokwert mit dem Dividenden multipliziert. Das Divisionsverfahren kann durch die folgen­ de Gleichung dargestellt werden.
Im allgemeinen kann jede Iteration für den Reziprokwert des Wertes (A) gemäß dem Newton-Raphson-Verfahren durch die folgende Gleichung ausgedrückt werden.
xn+1 = xn+xn(1-Axn)
Die ersten n Iterationen (d. h. alle außer der letzten Ite­ ration) einer Berechnung mit hoher Genauigkeit werden unter Verwendung der obigen Gleichung durchgeführt 404, wie es herkömmlich gemacht wird. Jede Iteration schließt folgende Operationen ein: Erhalten 502 eines anfänglichen Schätzwer­ tes für einen Reziprokwert des Divisors gemäß einer Rezi­ prokwerttabelle, wie sie in Tabelle 1 gezeigt ist, Bestimmen 504 eines Restfehlers für den Schätzwert und Erhöhen 506 der Genauigkeit des Schätzwertes auf der Grundlage des Restfeh­ lers und des vorhandenen Schätzwertes.
Die Anzahl der erforderlichen Iterationen, um das Ergebnis mit einer bestimmten Genauigkeit zu erzeugen, hängt von der Genauigkeit des anfänglichen Schätzwertes ab. Wenn der an­ fängliche Schätzwert aus der Reziprokwerttabelle zum Bei­ spiel auf 8-Bits genau ist und das Ergebnis 128 Bits sein soll, dann ist eine Gesamtheit von vier Iterationen notwen­ dig. In diesem Fall verwenden die ersten drei (d. h. n) Ite­ rationen das herkömmliche Newton-Raphson-Verfahren und die letzte und vierte Iteration verwendet das modifizierte New­ ton-Raphson-Verfahren. Nachdem sich die Genauigkeit bei je­ der Iteration verdoppelt, ist dann, wenn die Genauigkeit als größer oder gleich N-Bits festgestellt wird 508, nur eine weitere Iteration notwendig, um ein Ergebnis mit einer Ge­ nauigkeit von 2N-Bits zu erhalten. Mit Bezug auf das obige Beispiel können die Iterationen des herkömmlichen Newton- Raphson-Verfahrens eingestellt werden, wenn die Genauigkeit des Schätzwertes gleich 64 Bits ist oder diese überschrei­ tet.
Solange die Näherung ungenauer ist als das Basiszahlenformat (d. h. < N) verwenden frühe Iterationen bevorzugterweise die Hardware-Addition und -Multiplikation. Bei jeder Iteration nach dieser Genauigkeit wird die Anzahl der übertragenen Stellen verdoppelt, um mit der Genauigkeit der Näherung übereinzustimmen, siehe Bailey, "A Portable High Performance Multiprecision Package", RNR Technical Report RNR-90-022, NAS Applied Research Branch, NASA Ames Research Center, Moffett Field, Kalifornien, Mai 1992.
Die Erfindung modifiziert das herkömmliche Newton-Raphson- Verfahren durch Durchführen der Multiplikation mit dem Wert (B) vor der letzten Iteration ((n+1)-te Iteration) bei der Bestimmung des Reziprokwertes des Wertes (A). Die folgenden Gleichungen zeigen, wie die letzte Iteration für die Rezi­ prokwertberechnung durch das bevorzugte Ausführungsbeispiel der Erfindung modifiziert ist.
Herkömmlicherweise kann die letzte Iteration wie folgt aus­ gedrückt werden.
xn+1 = xn+xn(1-Axn)
Zu diesem Zeitpunkt, bevor die letzte Iteration ausgeführt wird, wie es herkömmlicherweise gemacht würde, wird die letzte Iteration mit dem Wert (B) multipliziert. Die letzte Iteration kann dann wie folgt ausgedrückt werden.
Bxn+1 = Bxn+Bxn(1-Axn)
Danach wird die obige Gleichung durch Hineinziehen des Wertes (B) in die Klammer vereinfacht. Als ein Ergebnis kann die obige Gleichung wie folgt geschrieben werden.
Bxn+1 = Bxn+xn(B-A(Bxn))
Die obige Gleichung kann durch Zuordnen von yn=Bxn weiter vereinfacht werden. Die abschließende Iteration nach New­ ton-Raphson für die Division gemäß der Erfindung kann dann durch die folgende Gleichung ausgedrückt werden.
yn+1 = yn+xn(B-Ayn)
Es ist wichtig, den Multiplikanden in die Klammern zu brin­ gen. Das Ergebnis ist nämlich, daß der Restfehler (B-Ayn) auf der Grundlage der Zahl, die korrigiert wird, d. h. yn, berechnet wird. Daher wird yn+1 mit fast 2N-Bits richtig sein, sogar wenn yn nur aus N-Bits berechnet ist.
Weiterhin ist yn+1 das erwünschte genäherte Endergebnis der Division von B/A, das fast bis zu der Anzahl von Stellen einer Zahl mit vollständiger Genauigkeit genau ist. Das End­ ergebnis ist speziell bis auf wenige hintere Stellen (ULP = Units in the Last Place) genau.
Die einzelnen Operationen für die abschließende Iteration des modifizierten Newton-Raphson-Verfahrens können gemäß der folgenden Schritte aus Tabelle 4 durchgeführt werden 406.
Tabelle 4
Bei einem verschmolzenen Multiplikations-Additions-Entwurf (MAF) (Fig. 2) können sowohl der Schritt 2 und der Schritt 3, als auch die Schritte 4 und 5 miteinander verschmolzen sein.
In Fig. 5 bestimmt der Schritt 1 510 einen abgeschätzten Quotienten (yn) unter Verwendung des Schätzwertes (xn) und des Dividenden (B). Dann bestimmen die Schritte 2 und 3 512 einen Restfehler (B-Ayn) für den abgeschätzten Quotienten. Bei den Schritten 4 und 5 wird abschließend die Genauigkeit des abgeschätzten Quotienten auf fast 2N-Bits erhöht 514.
Folglich liegt die einzige aufwendige Operation für die Division, die bei der letzten Iteration notwendig ist, beim Schritt 2, wo eine Zahl A mit vollständiger Genauigkeit mit einer Zahl yn mit halber Genauigkeit multipliziert wird, um ein Ergebnis mit vollständiger Genauigkeit zu erzeugen. Folglich erreicht das modifizierte Newton-Raphson-Verfahren erhebliche Zeiteinsparungen (der Verarbeitungszeit), weil die aufwendige Multiplikation von zwei Zahlen mit vollstän­ diger Genauigkeit (nämlich einer vollständig genauen Zahl xn+1 multipliziert mit einer vollständig genauen Zahl B), die herkömmlicherweise erforderlich war, vermieden wird. Folglich beschleunigt der modifizierte Ansatz der Erfindung die letzte Iteration um einen Faktor 10.
Die Operationen, die durch den Quadratwurzel-Mikrocode durchgeführt werden, werden im Folgenden mit Bezug auf Fig. 6 beschrieben, die ein Flußdiagramm der detaillierten Opera­ tionen ist, die durch den Quadratwurzel-Mikrocode ausgeführt werden. Der Quadratwurzel-Mikrocode verwendet sowohl das herkömmliche Newton-Raphson-Verfahren als auch das modifi­ zierte Newton-Raphton-Verfahren, um die Vorteile der Erfin­ dung zu erzeugen.
Um eine Quadratwurzel eines Wertes (A) zu bestimmen, be­ stimmt das Newton-Raphson-Verfahren zuerst einen Reziprok­ wert der Quadratwurzel des Wertes und der sich ergebende Reziprokwert wird dann mit dem Wert multipliziert. Das Qua­ dratwurzel-Verfahren kann durch die folgende Gleichung aus­ gedrückt werden.
Die Iterationen für den Reziprokwert der Quadratwurzel des Wertes (A) gemäß dem herkömmlichen Newton-Raphson-Verfahren können durch die folgende Gleichung ausgedrückt werden.
Die ersten n Iterationen (d. h., alle außer der letzten Ite­ ration) einer Berechnung mit hoher Genauigkeit werden unter Verwendung der obigen Gleichung durchgeführt 404, wie es herkömmlich gemacht wird. Die erste Iteration schließt fol­ gende Operationen ein: Erhalten 602 eines anfänglichen Schätzwertes für einen Reziprokwert der Quadratwurzel aus der Reziprokwerttabelle, wie zum Beispiel aus der oben ge­ zeigten Tabelle 2. Alle ersten n Iterationen schließen die folgenden Operationen ein: Bestimmen 604 eines Restfehlers für den Schätzwert und Erhöhen 606 der Genauigkeit des Schätzwertes auf der Grundlage des Restfehlers und des vor­ handenen Schätzwertes.
Wie im Fall der Division hängt die Anzahl der Iterationen, die erforderlich ist, um das Quadratwurzelergebnis mit einer bestimmten Genauigkeit zu erzeugen, von der Genauigkeit des anfänglichen Schätzwertes ab. Nachdem sich die Genauigkeit mit jeder Iteration verdoppelt, ist dann, wenn die Genauig­ keit als größer oder gleich N-Bits bestimmt wird 608, ledig­ lich eine weitere Iteration notwendig, um das Ergebnis mit einer Genauigkeit von 2N-Bits zu erhalten.
Solange die Näherung ungenauer als das Basiszahlenformat (d. h. < N) ist, verwenden die frühen Iterationen bevor­ zugterweise die Hardwareaddition und -Multiplikation. Bei jeder Iteration nach dieser Genauigkeit wird die Anzahl der übertragenen Stellen verdoppelt, um die Genauigkeit der Näherung anzupassen, siehe Bailey oben.
Die Erfindung modifiziert das herkömmliche Newton-Raphson- Verfahren durch Durchführen der Multiplikation mit A vor der letzten (n+1)-ten Iteration. Bevorzugterweise ist es die letzte Iteration des herkömmlichen Newton-Raphson-Verfahrens für die Reziprokwertberechnung, die durch die Erfindung mo­ difiziert ist. Vor dem Durchführen der letzten Iteration wird die letzte Iteration nämlich mit dem Wert (A) multi­ pliziert. Durch die Multiplikation mit dem Wert (A) wird die obige Gleichung für die letzte Iteration die Folgende.
Als nächstes wird der Wert (A) in die Klammern gezogen, wo­ durch die Gleichung wie folgt geschrieben werden kann.
Danach kann die Gleichung durch Zuordnung von yn = Axn ver­ einfacht werden. Die abschließende Iteration des Newton- Raphson-Verfahrens für die Quadratwurzel gemäß der Erfindung wird dann durch die folgende Gleichung ausgedrückt.
Wie im Fall der Division ist es bedeutend, den Multiplikan­ den in die Klammern zu bringen. Der Effekt besteht nämlich darin, daß der Restfehler (A-y2 n) auf der Grundlage der Zahl die korrigiert wird, d. h. yn, berechnet wird.
Die einzelnen Operationen für die abschließende Itertion des modifizierten Newton-Raphson-Verfahrens können dann gemäß den folgenden Schritten der Tabelle 5 durchgeführt werden 406.
Tabelle 5
Bei einem verschmolzenen Multiplikations-Additions-Entwurf (MAF, Fig. 2) können sowohl die Schritte 2 und 3 als auch die Schritte 4 und 5 miteinander verschmolzen sein.
Das Ergebnis, das im Schritt 5 erzeugt wird, ist die er­ wünschte Quadratwurzel, die fast so genau ist wie die Anzahl der Stellen einer Zahl mit vollständiger Genauigkeit. Insbe­ sondere ist das abschließende Ergebnis bis auf wenige hinte­ re Stellen (ULP) genau.
In Fig. 6 bestimmt der Schritt 1 610 eine geschätzte Qua­ dratwurzel (yn) unter Verwendung des Schätzwertes (xn) und des Wertes (A). Dann bestimmen die Schritte 2 und 3 612 einen Restfehler (A-y2 n) für die abgeschätzte Quadratwurzel. Abschließend wird in den Schritten 4 und 5 die Genauigkeit der abgeschätzten Quadratwurzel auf fast 2N-Bits erhöht 614.
Die einzig notwendige aufwendige Operation für die Quadrat­ wurzeloperation erfolgt folglich im Schritt 2, bei dem ein Produkt einer Zahl mit vollständiger Genauigkeit y2 n aus zwei Zahlen mit halber Genauigkeit erhalten wird. Daher wird die aufwendige Multiplikation einer Zahl xn+1 mit vollstän­ diger Genauigkeit mal einer Zahl A mit vollständiger Genau­ igkeit, wie es herkömmlich erforderlich ist, durch die Er­ findung vermieden.
Die Erfindung nimmt an, daß die Hardware sowohl alle Stellen in einem Produkt von zwei Zahlen mit Hardwaregenauigkeit als auch den führenden Teil einer Summe mit vierfacher Genauig­ keit (z. B. 2N) bereitstellen kann. Einige existierende Com­ puter haben Hardware-Befehle, die das Ergebnis mit vierfa­ cher Genauigkeit (d. h. alle Stellen) der Multiplikation von zwei doppelt genauen Zahlen zurückgeben, wohingegen andere Computer keine solche Befehle haben. Einige Computer (z. B. IBM S/370) haben Befehle, die den vierfach genauen Teil der Summe von zwei Zahlen zurückgeben.
Obwohl es bevorzugt ist, daß die Hardware diese Anforderung unterstützt, kann dann, wenn die Hardware eines Computers nicht fähig ist, diese Anforderungen zu unterstützen, Soft­ ware in Verbindung mit der Hardware verwendet werden, um selbige bereitzustellen. Ein Beispiel eines Codes, der ver­ wendet werden kann, um die Hardware zu vergrößern, um ein vierfach genaues Ergebnis des Produkts von zwei doppelt ge­ nauen Zahlen zurückzugeben, ist der Folgende. In diesem Fall sind die Variablen als einfach genaue Zahlen gespeichert. Der C-Programmiersprachencode zur Zurückgabe aller Bits eines Produkts mit doppelt genauen Zahlen, die in dem Ein­ fach-Einfach Format gespeichert sind, liest sich wie folgt.
Daher wird das Ergebnis als vier einfach genaue Zahlen zu­ rückgegeben. Dieser Ansatz nimmt an, daß das doppelt genaue Format mindestens zwei Stellen mehr als das Produkt von zwei einfach genauen Zahlen enthält, eine Bedingung, die durch IEEE-Vorschrift "Gleit-Komma" erfüllt wird.
Eine Summe kann eine sehr große Anzahl von Stellen enthal­ ten, wenn sich die Exponenten erheblich voneinander unter­ scheiden. Der führende vierfach genaue Teil (z. B. 2N-Bits) des Ergebnisses wird von der Erfindung benötigt. Nachdem die Hardware die Wiedergewinnung der führenden 2N-Bits nicht di­ rekt unterstützen kann, liest sich daher ein Beispiel eines C-Programmiersprachencodes, der verwendet werden kann, um den führenden vierfach genauen Teil der Summe von zwei dop­ pelt genauen Zahlen zurückzugeben, wie folgt.
Bei diesem Beispiel sind die höheren und niedrigeren Teile der Eingaben in getrennten einfach genauen Wörtern gespei­ chert, die hohen und niedrigen Teile werden dann addiert, wobei der Übertrag der niedrigen Ordnung auf die höhere Ord­ nung übertragen wird. Die Summe wird als vier einfach genaue Zahlen gespeichert.
Obwohl die Erfindung Zugriff auf alle Stellen in einem Pro­ dukt von zwei Hardware-genauen Zahlen als auch auf den füh­ renden 2N-Bits (z. B. vierfach) genauen Teil einer Summe er­ fordert, erfordert die Erfindung keine spezielle Hardware (nach der Multiplizierer- und Addierer-Subtrahierer-Einheit) innerhalb der Gleit-Komma-Arithmetikeinheit, weil die Soft­ ware die Defizite der Hardware ausgleichen kann. Die Ver­ wendung einer solchen Software wird jedoch das Verhalten verschlechtern.
Die Erfindung ist ebenfalls unabhängig vom Rundungsmodus. Nichtsdestotrotz gibt es, als Hintergrundinformation, vier gut bekannte Rundungsmoden. Der erste Modus wird als "Runde-auf-das-nächste" bezeichnet, der die nächstliegende, darstellbare Zahl in der Mantisse auswählt. Die zweite Möglichkeit ist ein "Runde-auf-Null", der die Teil-Bits, die nicht in die Mantisse passen, löscht. Diese zweite Möglich­ keit ist allgemein als Abschneiden bekannt. Ein dritter Run­ dungsmodus ist die "Runde-auf-Positive große Größe", was bedeutet, daß das Runden durch Runden auf die nächst größere, darstellbare Zahl erfolgt. Die vierte Möglichkeit ist die "Runde-auf-Negative große Zahl", was auf die nächst kleinere, darstellbare Zahl rundet. In der Praxis ist der Runde-aufnächsten-Modus der am schwierigsten ausführbare.
Eine Multiplikations-Additions-Operation kann weiterhin als eine Multiplikations-Operation gefolgt durch eine Additions- Operation, der eine Rundungsoperation zugeordnet ist, durch­ geführt werden. Wenn verschmolzene Multiplikations-Addi­ tions-Operationen durch die Gleit-Komma-Arithmetikeinheit unterstützt werden, ist alternativ nur eine Rundung not­ wendig.
Die Divisions- und Quadratwurzel-Prozeduren, die oben be­ schrieben wurden, sind auf verschiedene Arten ausführbar. Eine Art ist es, die Prozeduren in einem Mikrocode auszu­ führen, wie es oben beschrieben wurde. Wenn zum Beispiel ein Divisions- oder ein Quadratwurzel-Befehl ausgeführt werden soll, greift eine Steuerungseinheit auf den Divisions- und Quadratwurzel-Mikrocode zu, der innerhalb der Gleit-Komma- Arithmetikeinheit gespeichert ist. Ein weiterer Weg ist es, einen Compiler zu haben, der den Objektcode direkt unter Verwendung der gleichen Prozeduren erzeugt. Beim Compelieren des Codes würde zum Beispiel irgendeine Abfrage einer Divi­ dierer- oder Quadratwurzel-Operation durch die geeignete Folge von Additions- und Multiplikations-Operationen gemäß der herkömmlichen und modifizierten Form des Newton-Raph­ son-Verfahrens ersetzt.
Die Erfindung schafft eine verbesserte Technik zum Erhalten von sehr genauen Ergebnissen von Divisions- und Quadrat­ wurzel-Operationen, die mit einer erheblich höhere Ge­ schwindigkeit betrieben werden als beim herkömmlichen An­ satz. Dieser Erhöhung der Berechnungsgeschwindigkeit liegt hauptsächlich die Tatsache zugrunde, daß es die Erfindung einer Gleit-Komma-Einheit ermöglicht, ein Ergebnis mit einer Genauigkeit von fast 2N-Bits zu erzeugen, ohne irgendeine 2N-mal-2N Bit-Multiplikation durchführen zu müssen. Folglich macht die Erfindung die Gleit-Komma-Hardware praktischer, weniger komplex und weniger teuer als herkömmlicherweise erforderte, weil ein 2N-mal-2N Bit breiter Multiplizierer durch die Erfindung nicht erforderlich ist.

Claims (9)

1. Gleit-Komma-Arithmetikeinheit (100; 200) zum Durch­ führen einer Quadratwurzel-Operation eines Wertes, um eine geschätzte Quadratwurzel zu erzeugen, mit:
einem Speichergerät (102; 202) mit mehreren Anschlüssen zum Speichern von Daten;
einer Arithmetikeinrichtung (104; 118; 204; 208) zum Multiplizieren von zwei Zahlen, die jeweils in dem Speichergerät (102; 202) mit mehreren Anschlüssen ge­ speichert sind, um ein Produkt zu erzeugen, und zum Addieren von zwei Zahlen, die jeweils in dem Speicher­ gerät (102; 202) mit mehreren Anschlüssen gespeichert sind, um eine Summe zu erzeugen;
einer Reziprokwertnäherungseinrichtung (136; 228) zum Zuführen einer anfänglichen Näherung für einen Rezi­ prokwert der Quadratwurzel des Wertes zu dem Speicher­ gerät (102; 202) mit mehreren Anschlüssen;
einer Steuerungseinheit (130; 222), die durch einen Quadratwurzel-Mikrocode programmiert ist, zur Steuerung der Gleit-Komma-Arithmetikeinheit (100; 200); und
einem Quadratwurzel-Mikrocode (134; 226), der die ite­ rativen Prozeduren zum Durchführen einer Quadratwur­ zel-Operation enthält, wobei der Quadratwurzel-Mikro­ code folgende Merkmale aufweist:
eine Prozedur (602) zum Erhalt einer anfänglichen Nä­ herung für einen Reziprokwert für die Quadratwurzel des Wertes;
eine Prozedur (604) zur Veranlassung, daß ein erster Restfehler für die Näherung des Reziprokwertes der Quadratwurzel bestimmt wird;
eine Prozedur (606) zur Veranlassung, daß die Genauigkeit der Näherung für den Reziprokwert der Quadratwurzel unter Verwendung des ersten Restfehlers und der vorhandenen Näherung für den Reziprokwert der Quadratwurzel erhöht wird;
und die dadurch gekennzeichnet ist, daß
der Quadratwurzel-Mikrocode (134; 226), der die ite­ rativen Prozeduren zum Durchführen einer Quadratwur­ zel-Operation enthält, auch die folgenden Merkmale aufweist:
eine Prozedur (610) zur Veranlassung, daß eine abge­ schätzte Quadratwurzel unter Verwendung der revi­ dierten Näherung für den Reziprokwert der Quadrat­ wurzel und des Wertes bestimmt wird;
eine Prozedur (612) zur Veranlassung, daß ein zweiter Restfehler für die abgeschätzte Quadratwurzel unter Verwendung des Wertes und der abgeschätzten Quadrat­ wurzel bestimmt wird; und
eine Prozedur (614) zur Veranlassung, daß die Genauigkeit der abgeschätzten Quadratwurzel unter Verwendung der abgeschätzten Quadratwurzel, der revidierten Näherung für den Reziprokwert der Quadratwurzel und des zweiten Restfehlers für die abgeschätzte Quadratwurzel erhöht wird.
2. Gleit-Komma-Arithmetikeinheit (100; 200) zum Durch­ führen einer Divisions-Operation eines Wertes, um einen Dividenden durch einen Divisor zu teilen, um einen geschätzten Quotienten zu erzeugen, mit:
einem Speichergerät (102; 202) mit mehreren Anschlüssen zum Speichern von Daten;
einer Arithmetikeinrichtung (104; 118; 204; 208) zum Multiplizieren von zwei Zahlen, die jeweils in dem Speichergerät (102; 202) mit mehreren Anschlüssen ge­ speichert sind, um ein Produkt zu erzeugen, und zum Addieren von zwei Zahlen, die jeweils in dem Speicher­ gerät (102; 202) mit mehreren Anschlüssen gespeichert sind, um eine Summe zu erzeugen;
einer Reziprokwertnäherungseinrichtung (136; 228) zum Zuführen einer anfänglichen Näherung für einen Rezi­ prokwert des Divisors zu dem Speichergerät (102; 202) mit mehreren Anschlüssen;
einer Steuerungseinheit (130; 222), die durch einen Divisions-Mikrocode programmiert ist, zur Steuerung der Gleit-Komma-Arithmetikeinheit (100; 200); und
einem Divisions-Mikrocode (134; 226), der die iterati­ ven Prozeduren zum Durchführen einer Divisions-Opera­ tion enthält, wobei der Divisions-Mikrocode (134; 226) folgende Merkmale aufweist:
eine Prozedur (502) zum Erhalt einer anfänglichen Nä­ herung für einen Reziprokwert des Divisors;
eine Prozedur (504) zur Veranlassung, daß ein erster Restfehler für die Näherung des Reziprokwertes des Divisors bestimmt wird;
eine Prozedur (506) zur Veranlassung, daß die Genauigkeit der Näherung für den Reziprokwert des Divisors aufgrund des ersten Restfehlers und der vorhandenen Näherung für den Reziprokwert des Divisors erhöht wird;
und die dadurch gekennzeichnet ist, daß
der Divisions-Mikrocode (134; 226), der die iterativen Prozeduren zum Durchführen einer Divisions-Operation enthält, auch die folgenden Merkmale aufweist:
eine Prozedur (510) zur Veranlassung, daß ein abge­ schätzter Quotient unter Verwendung der revidierten Näherung für den Reziprokwert des Divisors und des Dividenden bestimmt wird;
eine Prozedur (512) zur Veranlassung, daß ein zweiter Restfehler für den abgeschätzten Quotienten unter Verwendung des Dividenden, des Divisors und des abge­ schätzten Quotienten bestimmt wird; und
eine Prozedur (514) zur Veranlassung, daß die Genauigkeit des abgeschätzten Quotienten unter Verwendung des abgeschätzten Quotienten, der revidierten Näherung für den Reziprokwert des Divisors und des zweiten Restfehlers für den abgeschätzten Quotienten erhöht wird.
3. Gleit-Komma-Arithmetikeinheit (100) nach Anspruch 1 oder 2, bei der das Speichergerät (102) mit mehreren Anschlüssen Daten speichert, die N-Bits breit sind, und bei dem die arithmetische Einrichtung folgende Merkmale aufweist:
einen Multiplizierer (104), der wirksam mit dem Spei­ chergerät (102) mit mehreren Anschlüssen verbunden ist, zum Multiplizieren von zwei N-Bit-Zahlen, um ein Pro­ dukt zu erzeugen;
einen ersten Rundungsaufwärtszähler (108), der mit dem Multiplizierer (104) wirksam verbunden ist, zum Runden des Produkts auf 2N-Bits;
einen ersten Zwischenspeicher (110) für einen hohen Ab­ schnitt, der wirksam mit dem ersten Rundungsaufwärts­ zähler (108) verbunden ist, zum Speichern der ersten N-Bits des Produkts;
einen ersten Zwischenspeicher (112) für den niedrigen Abschnitt, der wirksam mit dem ersten Rundungsaufwärts­ zähler (108) verbunden ist, zum Speichern der zweiten N-Bits des Produkts; und
einen ersten Multiplexer (114), der wirksam mit den Zwischenspeichern (110, 112) für den hohen und den nie­ drigen Abschnitt verbunden ist, zum Auswählen eines er­ sten Zwischenspeichers (110) für einen hohen Abschnitt oder eines ersten Zwischenspeichers (112) für einen niedrigen Abschnitt zum Speichern der ersten oder zwei­ ten N-Bits des Produkts in dem Speichergerät (102) mit mehreren Anschlüssen.
4. Gleit-Komma-Arithmetikeinheit (100) nach Anspruch 1, 2 oder 3, bei der die Arithmetikeinrichtung folgende Merkmale aufweist:
einen Synchronisationsschieber (116), der wirksam mit dem Speichergerät (102) mit mehreren Anschlüssen ver­ bunden ist, zum Synchronisieren des ersten und zweiten N-Bit Summanden, der von dem Speichergerät (102) mit mehreren Anschlüssen empfangen wird;
einen Addierer (118), der wirksam mit dem Synchronisa­ tionsschieber (116) verbunden ist, zum Addieren des er­ sten und zweiten N-Bit Summanden, um die Summe zu er­ zeugen;
einen zweiten Rundungsaufwärtszähler (122), der wirksam mit dem Addierer (118) verbunden ist, zum Runden der Summe auf 2N-Bits;
einen zweiten Zwischenspeicher (124) für den hohen Ab­ schnitt, der wirksam mit dem zweiten Rundungsaufwärts­ zähler (122) verbunden ist, zum Speichern der ersten N-Bits der Summe;
einen zweiten Zwischenspeicher (126) für den niedrigen Abschnitt, der wirksam mit dem zweiten Rundungsauf­ wärtszähler (122) verbunden ist, zum Speichern der zweiten N-Bits der Summe; und
einen zweiten Multiplexer (128), der wirksam mit den zweiten Zwischenspeichern (124, 126) für den hohen und niederen Abschnitt verbunden ist, zum Auswählen des zweiten Zwischenspeichers (124) für den hohen Abschnitt oder des zweiten Zwischenspeichers (126) für den nied­ rigen Abschnitt, zum Speichern der ersten oder zweiten N-Bits der Summe in dem Speichergerät (102) mit mehre­ ren Anschlüssen.
5. Gleit-Komma-Arithmetikeinheit (200) nach Anspruch 1 oder 2, bei der das Speichergerät (202) mit mehreren Anschlüssen Daten speichert, die N-Bits breit sind, und bei der die Arithmetikeinrichtung folgende Merkmale aufweist:
einen Multiplizierer (204), der wirksam mit dem Spei­ chergerät (202) mit mehreren Anschlüssen verbunden ist, zum Multiplizieren von zwei Zahlen, um das Produkt zu erzeugen;
einen Synchronisationsschieber (206), der wirksam mit dem Speichergerät (202) mit mehreren Anschlüssen ver­ bunden ist, zum Synchronisieren eines Summanden gemäß dem Exponenten des Produkts;
einen Addierer (208), der wirksam mit dem Multiplizie­ rer (204) und dem Synchronisationsschieber (206) ver­ bunden ist, zum Addieren des Produkts und des synchro­ nisierten Summanden, um ein Ergebnis zu erzeugen;
einen Rundungsaufwärtszähler (214), der wirksam mit dem Addierer (208) verbunden ist, zum Runden des Ergebnis­ ses auf 2N-Bits;
einen Zwischenspeicher (216) für den hohen Abschnitt, der wirksam mit dem Rundungsaufwärtszähler (214) ver­ bunden ist, um die ersten N-Bits des Ergebnisses zu speichern;
einen Zwischenspeicher (218) für den niedrigen Ab­ schnitt, der wirksam mit dem Rundungsaufwärtszähler (214) verbunden ist, zum Speichern der zweiten N-Bits des Ergebnisses; und
einen Multiplexer (220), der wirksam mit den Zwischen­ speichern (216, 218) für den hohen und den niedrigen Abschnitt verbunden ist, zum Auswählen des Zwischen­ speichers (216) für den hohen Abschnitt oder des Zwi­ schenspeichers (218) für den niedrigen Abschnitt zum Speichern der ersten oder zweiten N-Bits des Ergebnis­ ses in dem Speichergerät (202) mit mehreren Anschlüs­ sen.
6. Gleit-Komma-Arithmetikeinheit (100; 200) nach einem der Ansprüche 1 bis 5, bei dem der Divisions- und Quadrat­ wurzel-Mikrocode (134; 226) folgende Merkmale aufweist:
eine Prozedur (404) zum Durchführen von n Iterationen des Newton-Raphson-Verfahrens, um die Genauigkeit der Näherung des Reziprokwertes geometrisch zu verbessern; und
eine Prozedur (406) zum Durchführen einer zusätzlichen Iteration unter Verwendung eines modifizierten Newton- Raphson-Verfahrens, um das abschließende Näherungser­ gebnis zu erzeugen.
7. Verfahren zur Durchführung einer Gleit-Komma-Division eines Dividenden durch einen Divisor zur Erzeugung eines Quotienten mit einer Mantisse mit einer Genauigkeit von nahezu 2N-Bits, wobei das Verfahren in einer Gleit- Komma-Arithmetikeinheit durchgeführt wird und dabei zunächst folgende Schritte aufweist:
  • (a) Erhalt (502) eines derzeitigen Schätzwertes eines Reziprokwertes des Divisors;
  • (b) Erhöhung (506) der Genauigkeit des derzeitigen Schätzwertes des Reziprokwertes durch Berechnung (504) eines Fehlerparameters und Berechnung eines revidierten Schätzwertes des Reziprokwertes aus dem Fehlerparameter und dem derzeitigen Schätzwert des Reziprokwertes;
  • (c) Wiederholung (508) des Schrittes (b) bis die Genauigkeit des revidierten Schätzwertes des Reziprokwertes mindestens im wesentlichen nahe an N-Bits kommt;
    und dadurch gekennzeichnet ist, daß das Verfahren im weiteren noch die folgenden Schritte aufweist:
  • (d) Bestimmung (510) eines anfänglichen Schätzwertes des Quotienten aus dem revidierten Schätzwert des Rezi­ prokwertes mal dem Dividenden;
  • (e) Bestimmung (512) eines Restfehlers für den anfäng­ lichen Schätzwert des Quotienten auf der Grundlage des anfänglichen Schätzwertes des Quotienten; und
  • (f) Bestimmung (514) des Quotienten aus dem anfänglichen Schätzwert des Quotienten plus dem revidierten Schätzwert des Reziprokwertes mal dem Restfehler.
8. Verfahren zur Durchführung der Gleit-Komma-Quadratwurzel­ operation eines Wertes, um eine Quadratwurzel mit einer Mantisse mit einer Genauigkeit von fast 2N-Bits zu er­ zeugen, wobei das Verfahren in einer Gleit-Komma-Arithme­ tikeinheit ausgeführt wird und dabei zunächst folgende Schritte aufweist:
  • (a) Erhalt (602) eines derzeitigen Schätzwertes eines Reziprokwertes der Quadratwurzel;
  • (b) Erhöhung (606) der Genauigkeit des derzeitigen Schätzwertes des Reziprokwertes durch Berechnung (604) eines Fehlerparameters und Berechnen eines re­ vidierten Schätzwertes des Reziprokwertes aus dem Fehlerparameter und dem derzeitigen Schätzwert des Reziprokwertes;
  • (c) Wiederholung (608) des Schrittes (b) bis die Genauigkeit des revidierten Schätzwertes des Reziprokwertes mindestens im wesentlichen nahe an N-Bits kommt;
    und dadurch gekennzeichnet ist, daß das Verfahren im weiteren noch die folgenden Schritte aufweist:
  • (d) Bestimmung (610) eines anfänglichen Schätzwertes der Quadratwurzel aus dem revidierten Schätzwert des Re­ ziprokwertes mal dem Wert;
  • (e) Bestimmung (612) eines Restfehlers als dem anfäng­ lichen Schätzwert der Quadratwurzel auf der Grundla­ ge des Wertes und des anfänglichen Schätzwertes der Quadratwurzel; und
  • (f) Bestimmung (614) der Quadratwurzel aus dem anfäng­ lichen Schätzwert der Quadratwurzel plus einer Häl­ fte des Produkts des revidierten Schätzwertes des Reziprokwertes mal dem Restfehler.
9. Gleit-Komma-Arithmetikeinheit zur Durchführung des Ver­ fahrens gemäß Anspruch 7 oder 8, mit einer Additionsein­ heit (118; 208), einer Multiplikationseinheit (102; 204) und einer Steuerungseinheit (130; 222), die eine itera­ tive Newton-Raphson-Routine verwendet, um jeweils einen abgeschätzten Reziprokwert unter Verwendung der Addi­ tionseinheit (118; 208) und der Multiplikationseinheit (102; 204) zu erzeugen, wenn die Steuerungseinheit (130; 222) einen auszuführenden Divisions- oder Quadratwurzel- Befehl erfaßt, wobei die letzte Iteration der iterativen Newton-Raphson-Routine derart modifiziert ist, daß ein abschließender Näherungsquotient oder eine abschließende Näherungsquadratwurzel durch die letzte Iteration durch Abschätzen des Quotienten oder der Quadratwurzel und dann durch Verbessern der Genauigkeit des abgeschätzten Quo­ tienten oder der Quadratwurzel gemäß einem Restfehler er­ zeugt werden, der aufgrund des abgeschätzten Quotienten oder der Quadratwurzel erzeugt wird, wodurch der ab­ schließende Näherungsquotient oder die abschließende Qua­ dratwurzel erzeugt wird.
DE4414172A 1993-05-05 1994-04-22 Gleit-Komma-Arithmetikeinheit und Verfahren zur Division und Quadratwurzelberechnung, die eine modifizierte Newton-Raphson Technik verwendet Expired - Fee Related DE4414172C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/058,164 US5341321A (en) 1993-05-05 1993-05-05 Floating point arithmetic unit using modified Newton-Raphson technique for division and square root

Publications (2)

Publication Number Publication Date
DE4414172A1 DE4414172A1 (de) 1994-11-10
DE4414172C2 true DE4414172C2 (de) 1998-09-03

Family

ID=22015095

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4414172A Expired - Fee Related DE4414172C2 (de) 1993-05-05 1994-04-22 Gleit-Komma-Arithmetikeinheit und Verfahren zur Division und Quadratwurzelberechnung, die eine modifizierte Newton-Raphson Technik verwendet

Country Status (4)

Country Link
US (2) US5341321A (de)
JP (1) JP3626769B2 (de)
DE (1) DE4414172C2 (de)
GB (1) GB2278940B (de)

Families Citing this family (99)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5539684A (en) * 1993-12-10 1996-07-23 Motorola, Inc. Method and apparatus for calculating floating point exponent values
US5631859A (en) * 1994-10-27 1997-05-20 Hewlett-Packard Company Floating point arithmetic unit having logic for quad precision arithmetic
GB9501832D0 (en) * 1995-01-31 1995-03-22 Videologic Ltd Texturing and shading of 3-d images
US5729481A (en) * 1995-03-31 1998-03-17 International Business Machines Corporation Method and system of rounding for quadratically converging division or square root
US6643677B2 (en) * 1995-06-05 2003-11-04 Kabushiki Kaisha Toshiba Digital arithmetic integrated circuit
US6643765B1 (en) 1995-08-16 2003-11-04 Microunity Systems Engineering, Inc. Programmable processor with group floating point operations
US6240338B1 (en) 1995-08-22 2001-05-29 Micron Technology, Inc. Seed ROM for reciprocal computation
US5729724A (en) * 1995-12-20 1998-03-17 Intel Corporation Adaptive 128-bit floating point load and store operations for quadruple precision compatibility
US5764555A (en) * 1996-03-13 1998-06-09 International Business Machines Corporation Method and system of rounding for division or square root: eliminating remainder calculation
US5880983A (en) * 1996-03-25 1999-03-09 International Business Machines Corporation Floating point split multiply/add system which has infinite precision
US5790445A (en) * 1996-04-30 1998-08-04 International Business Machines Corporation Method and system for performing a high speed floating point add operation
US8908872B2 (en) * 1996-06-07 2014-12-09 That Corporation BTSC encoder
US5796842A (en) * 1996-06-07 1998-08-18 That Corporation BTSC encoder
US5768170A (en) * 1996-07-25 1998-06-16 Motorola Inc. Method and apparatus for performing microprocessor integer division operations using floating point hardware
US5847979A (en) * 1996-10-31 1998-12-08 Samsung Electronics Company, Ltd. Method and apparatus for generating an initial estimate for a floating point reciprocal of a square root
US5936627A (en) * 1997-02-28 1999-08-10 International Business Machines Corporation Method and system for performing perspective divide operations on three-dimensional graphical object data within a computer system
JP4313467B2 (ja) * 1998-06-23 2009-08-12 航 尾形 小容量メモリを用いた除算方式
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
US6735610B1 (en) * 1999-04-29 2004-05-11 Walter E. Pelton Apparatus, methods, and computer program products for determining the coefficients of a function with decreased latency
US6389443B1 (en) 1999-06-07 2002-05-14 Telefonaktiebolaget Lm Ericsson Method and apparatus for an efficient square-root computation
US6697832B1 (en) 1999-07-30 2004-02-24 Mips Technologies, Inc. Floating-point processor with improved intermediate result handling
US6714197B1 (en) 1999-07-30 2004-03-30 Mips Technologies, Inc. Processor having an arithmetic extension of an instruction set architecture
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
US6631392B1 (en) 1999-07-30 2003-10-07 Mips Technologies, Inc. Method and apparatus for predicting floating-point exceptions
US7346643B1 (en) 1999-07-30 2008-03-18 Mips Technologies, Inc. Processor with improved accuracy for multiply-add operations
JP3598096B2 (ja) * 1999-12-22 2004-12-08 航 尾形 ニュートンラフソン法を用いた演算方式
US6598065B1 (en) 1999-12-23 2003-07-22 Intel Corporation Method for achieving correctly rounded quotients in algorithms based on fused multiply-accumulate without requiring the intermediate calculation of a correctly rounded reciprocal
US6922712B2 (en) 2000-02-26 2005-07-26 Walter E. Pelton Apparatus, methods, and computer program products for accurately determining the coefficients of a function
US6996596B1 (en) 2000-05-23 2006-02-07 Mips Technologies, Inc. Floating-point processor with operating mode having improved accuracy and high performance
AU2001275444A1 (en) * 2000-06-09 2001-12-17 K. Walt Herridge Apparatus, methods and computer program products for performing high speed division calculations
US6820104B2 (en) * 2000-06-09 2004-11-16 Walter Eugene Pelton Apparatus, methods, and computer program products for reducing the number of computations and number of required stored values for information processing methods
US6654777B1 (en) * 2000-07-27 2003-11-25 International Business Machines Corporation Single precision inverse square root generator
CA2327924A1 (en) * 2000-12-08 2002-06-08 Ibm Canada Limited-Ibm Canada Limitee Processor design for extended-precision arithmetic
CA2329104C (en) 2000-12-20 2005-05-24 Sicon Video Corporation Method and apparatus for calculating a reciprocal
KR100456035B1 (ko) * 2002-10-11 2004-11-08 주식회사 모티스 나눗셈 장치
KR100480724B1 (ko) * 2002-10-31 2005-04-07 엘지전자 주식회사 가변 스텝사이즈 적응형 역수기
US7610407B2 (en) * 2003-12-11 2009-10-27 Hewlett-Packard Development Company, L.P. Method for exchanging information between at least two participants via at least one intermediary to limit disclosure between the participants
US20050228844A1 (en) * 2004-04-08 2005-10-13 International Business Machines Corporation Fast operand formatting for a high performance multiply-add floating point-unit
US7437538B1 (en) 2004-06-30 2008-10-14 Sun Microsystems, Inc. Apparatus and method for reducing execution latency of floating point operations having special case operands
US7890734B2 (en) * 2004-06-30 2011-02-15 Open Computing Trust I & II Mechanism for selecting instructions for execution in a multithreaded processor
US7426630B1 (en) 2004-06-30 2008-09-16 Sun Microsystems, Inc. Arbitration of window swap operations
US7941642B1 (en) 2004-06-30 2011-05-10 Oracle America, Inc. Method for selecting between divide instructions associated with respective threads in a multi-threaded processor
US7861063B1 (en) 2004-06-30 2010-12-28 Oracle America, Inc. Delay slot handling in a processor
US7478225B1 (en) 2004-06-30 2009-01-13 Sun Microsystems, Inc. Apparatus and method to support pipelining of differing-latency instructions in a multithreaded processor
US8225034B1 (en) 2004-06-30 2012-07-17 Oracle America, Inc. Hybrid instruction buffer
US7434000B1 (en) 2004-06-30 2008-10-07 Sun Microsystems, Inc. Handling duplicate cache misses in a multithreaded/multi-core processor
US7178005B1 (en) 2004-06-30 2007-02-13 Sun Microsystems, Inc. Efficient implementation of timers in a multithreaded processor
US7353364B1 (en) 2004-06-30 2008-04-01 Sun Microsystems, Inc. Apparatus and method for sharing a functional unit execution resource among a plurality of functional units
US7774393B1 (en) 2004-06-30 2010-08-10 Oracle America, Inc. Apparatus and method for integer to floating-point format conversion
US7747771B1 (en) 2004-06-30 2010-06-29 Oracle America, Inc. Register access protocol in a multihreaded multi-core processor
US7185178B1 (en) 2004-06-30 2007-02-27 Sun Microsystems, Inc. Fetch speculation in a multithreaded processor
US7383403B1 (en) 2004-06-30 2008-06-03 Sun Microsystems, Inc. Concurrent bypass to instruction buffers in a fine grain multithreaded processor
US7676655B2 (en) * 2004-06-30 2010-03-09 Sun Microsystems, Inc. Single bit control of threads in a multithreaded multicore processor
US7343474B1 (en) 2004-06-30 2008-03-11 Sun Microsystems, Inc. Minimal address state in a fine grain multithreaded processor
US7702887B1 (en) 2004-06-30 2010-04-20 Sun Microsystems, Inc. Performance instrumentation in a fine grain multithreaded multicore processor
US7373489B1 (en) 2004-06-30 2008-05-13 Sun Microsystems, Inc. Apparatus and method for floating-point exception prediction and recovery
US7216216B1 (en) 2004-06-30 2007-05-08 Sun Microsystems, Inc. Register window management using first pipeline to change current window and second pipeline to read operand from old window and write operand to new window
US8095778B1 (en) 2004-06-30 2012-01-10 Open Computing Trust I & II Method and system for sharing functional units of a multithreaded processor
US7370243B1 (en) 2004-06-30 2008-05-06 Sun Microsystems, Inc. Precise error handling in a fine grain multithreaded multicore processor
US7533248B1 (en) 2004-06-30 2009-05-12 Sun Microsystems, Inc. Multithreaded processor including a functional unit shared between multiple requestors and arbitration therefor
US7330988B2 (en) * 2004-06-30 2008-02-12 Sun Microsystems, Inc. Method and apparatus for power throttling in a multi-thread processor
US7401206B2 (en) * 2004-06-30 2008-07-15 Sun Microsystems, Inc. Apparatus and method for fine-grained multithreading in a multipipelined processor core
US7523330B2 (en) * 2004-06-30 2009-04-21 Sun Microsystems, Inc. Thread-based clock enabling in a multi-threaded processor
US7467174B2 (en) * 2004-09-23 2008-12-16 Wisconsin Alumni Research Foundation Processing unit having decimal floating-point divider using Newton-Raphson iteration
US7526340B2 (en) * 2004-10-29 2009-04-28 Medtronic, Inc. Division approximation for implantable medical devices
US20060129624A1 (en) * 2004-12-09 2006-06-15 Abdallah Mohammad A Method and apparatus for performing a divide instruction
US8037250B1 (en) 2004-12-09 2011-10-11 Oracle America, Inc. Arbitrating cache misses in a multithreaded/multi-core processor
US7539720B2 (en) * 2004-12-15 2009-05-26 Sun Microsystems, Inc. Low latency integer divider and integration with floating point divider and method
US20060179092A1 (en) * 2005-02-10 2006-08-10 Schmookler Martin S System and method for executing fixed point divide operations using a floating point multiply-add pipeline
EA014117B1 (ru) * 2005-03-15 2010-10-29 Шеврон Ю.Эс.Эй. Инк. Способ и устройство для моделирования имитатора коллектора
US7406589B2 (en) * 2005-05-12 2008-07-29 International Business Machines Corporation Processor having efficient function estimate instructions
US7873687B2 (en) * 2005-07-25 2011-01-18 International Business Machines Corporation Method for calculating a result of a division with a floating point unit with fused multiply-add
US20070055723A1 (en) * 2005-09-07 2007-03-08 Marius Cornea-Hasegan Method and system for performing quad precision floating-point operations in microprocessors
US7752250B2 (en) * 2006-01-12 2010-07-06 International Business Machines Corporation Rounding floating point division results
KR100901478B1 (ko) * 2006-12-07 2009-06-08 한국전자통신연구원 나눗셈기의 평균값 출력 장치 및 출력 방법
WO2008069390A1 (en) * 2006-12-07 2008-06-12 Electronics And Telecommunications Research Institute Apparatus and method for generating mean value
US8838663B2 (en) * 2007-03-30 2014-09-16 Intel Corporation Method and apparatus for performing multiplicative functions
US8024719B2 (en) 2008-11-03 2011-09-20 Advanced Micro Devices, Inc. Bounded hash table sorting in a dynamic program profiling system
US20100115494A1 (en) * 2008-11-03 2010-05-06 Gorton Jr Richard C System for dynamic program profiling
US8478948B2 (en) * 2008-12-04 2013-07-02 Oracle America, Inc. Method and system for efficient tracing and profiling of memory accesses during program execution
US8452831B2 (en) * 2009-03-31 2013-05-28 Oracle America, Inc. Apparatus and method for implementing hardware support for denormalized operands for floating-point divide operations
US8812575B2 (en) * 2010-07-06 2014-08-19 Silminds, Llc, Egypt Decimal floating-point square-root unit using Newton-Raphson iterations
US20120059866A1 (en) * 2010-09-03 2012-03-08 Advanced Micro Devices, Inc. Method and apparatus for performing floating-point division
US8681973B2 (en) * 2010-09-15 2014-03-25 At&T Intellectual Property I, L.P. Methods, systems, and computer program products for performing homomorphic encryption and decryption on individual operations
US8775494B2 (en) 2011-03-01 2014-07-08 Nvidia Corporation System and method for testing whether a result is correctly rounded
US9086890B2 (en) 2012-01-06 2015-07-21 Oracle International Corporation Division unit with normalization circuit and plural divide engines for receiving instructions when divide engine availability is indicated
US20140067894A1 (en) * 2012-08-30 2014-03-06 Qualcomm Incorporated Operations for efficient floating point computations
US9904512B1 (en) * 2013-05-31 2018-02-27 Altera Corporation Methods and apparatus for performing floating point operations
US9612800B2 (en) * 2014-08-05 2017-04-04 Imagination Technologies Limited Implementing a square root operation in a computer system
US9875083B2 (en) * 2014-08-05 2018-01-23 Imagination Technologies Limited Performing a comparison computation in a computer system
US9996320B2 (en) * 2015-12-23 2018-06-12 Intel Corporation Fused multiply-add (FMA) low functional unit
US9996319B2 (en) * 2015-12-23 2018-06-12 Intel Corporation Floating point (FP) add low instructions functional unit
US10706101B2 (en) 2016-04-14 2020-07-07 Advanced Micro Devices, Inc. Bucketized hash tables with remap entries
US10289386B2 (en) 2016-04-21 2019-05-14 Oracle International Corporation Iterative division with reduced latency
CN106775587B (zh) * 2016-11-30 2020-04-14 上海兆芯集成电路有限公司 计算机指令的执行方法以及使用此方法的装置
US10503473B1 (en) 2018-05-30 2019-12-10 Apple Inc. Floating-point division alternative techniques
GB2582146B (en) * 2019-03-11 2021-08-18 Graphcore Ltd Execution Unit for Evaluating Functions Using Newton Raphson Iterations
CN113407235B (zh) * 2021-06-28 2022-07-08 珠海一微半导体股份有限公司 一种基于硬件加速的运算电路系统及芯片

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0395240A2 (de) * 1989-04-26 1990-10-31 Texas Instruments Incorporated Hochgeschwindiger digitaler Prozessor
US4999801A (en) * 1988-07-15 1991-03-12 Fujitsu Limited Floating point operation unit in division and square root operations
US5157624A (en) * 1990-12-13 1992-10-20 Micron Technology, Inc. Machine method to perform newton iterations for reciprocal square roots

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3274164D1 (en) * 1982-12-23 1986-12-11 Ibm Method and apparatus for division operations
US4594680A (en) * 1983-05-04 1986-06-10 Sperry Corporation Apparatus for performing quadratic convergence division in a large data processing system
JPS6120134A (ja) * 1984-06-29 1986-01-28 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 平方根計算装置
US4999802A (en) * 1989-01-13 1991-03-12 International Business Machines Corporation Floating point arithmetic two cycle data flow
EP0377992B1 (de) * 1989-01-13 1996-04-17 International Business Machines Corporation Gleitkommadivisions-Verfahren und -Anordnung
US5042001A (en) * 1989-10-02 1991-08-20 Cyrix Corporation Method and apparatus for performing mathematical functions using polynomial approximation and a rectangular aspect ratio multiplier
US5220524A (en) * 1990-12-13 1993-06-15 Micron Technology, Inc. Machine method to perform newton iterations for reciprocals

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4999801A (en) * 1988-07-15 1991-03-12 Fujitsu Limited Floating point operation unit in division and square root operations
EP0395240A2 (de) * 1989-04-26 1990-10-31 Texas Instruments Incorporated Hochgeschwindiger digitaler Prozessor
US5157624A (en) * 1990-12-13 1992-10-20 Micron Technology, Inc. Machine method to perform newton iterations for reciprocal square roots

Also Published As

Publication number Publication date
DE4414172A1 (de) 1994-11-10
GB2278940B (en) 1997-11-19
GB2278940A (en) 1994-12-14
GB9408712D0 (en) 1994-06-22
US5515308A (en) 1996-05-07
JP3626769B2 (ja) 2005-03-09
US5341321A (en) 1994-08-23
JPH0749772A (ja) 1995-02-21

Similar Documents

Publication Publication Date Title
DE4414172C2 (de) Gleit-Komma-Arithmetikeinheit und Verfahren zur Division und Quadratwurzelberechnung, die eine modifizierte Newton-Raphson Technik verwendet
DE102019114243A1 (de) Architektur für tiefe neuronale Netze unter Verwendung stückweiser linearer Approximation
DE3144015C2 (de)
DE10085322B4 (de) Schaltungsanordnung, Verfahren und Datenverarbeitungs-Einrichtung zum Durchführen einer Ein-Zyklus-Addition oder -Subtraktion und eines Vergleichs bei einer Arithmetik redundanter Form
EP0377837B1 (de) Gleitkommaeinheit mit gleichzeitiger Multiplikation und Addition
DE60318494T2 (de) Verfahren, einrichtung und system zur durchführung von kalkulationsoperationen
US5220524A (en) Machine method to perform newton iterations for reciprocals
DE69435047T2 (de) Schaltung und Verfahren zur parallelen Addition und Mittelwertbildung
US5206823A (en) Apparatus to perform Newton iterations for reciprocal and reciprocal square root
DE2900324A1 (de) Mikroprogrammierbare arithmetische fliesskommaeinheit
DE112011103196T5 (de) Funktionseinheit für eine Multiply-ADD-Anweisung für ganzzahlige Vektoren
DE112018000140T5 (de) Verschmolzene Multiplikations-Additions-Gleitkommaoperationen auf 128 BIT breiten Operanden
DE112020003600T5 (de) Hardware für maschinelles lernen mit parameterkomponenten mit reduzierter genauigkeit für effiziente parameteraktualisierung
DE112011103206T5 (de) Multiplizieraddierfunktionseinheit zum Ausführen von Scale-, Round-, Getexp-, Round-, Getmant-,Reduce-, Range- und Class-Befehlen
DE102014100108A1 (de) Festkomma-divisionschaltung unter verwendung einer gleitkomma-architektur
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
DE19781794C2 (de) Verfahren und Einrichtung zur Division von Gleitkomma- oder ganzen Zahlen
DE10013068C2 (de) Potenzierungsoperationsvorrichtung
EP1499954B1 (de) Berechnung eines ergebnisses einer modularen multiplikation
DE19746054B4 (de) Verfahren und Vorrichtung zum Ausführen einer Operation mit doppelter Genauigkeit
DE112019000382T5 (de) GANZZAHLIGER MULTIPLIKATOR MIT MEHRFACHER GENAUIGKEIT DURCH MATRIX-MATRIX-MULTIPLIKATIONEN UNTER VERWENDUNG EINES 16-BIT-FLIEßKOMMA-MULTIPLIKATORS
DE60316342T2 (de) Multiplizierer mit nachschlagetabellen
EP1474741B1 (de) Vorrichtung und verfahren zum berechnen eines ergebnisses aus einer division
DE2523755C3 (de) Divisionsvorrichtung unter Verwendung einer Näherungsgleichung
DE112022002300T5 (de) Verarbeitung einer speicheränderung bei der programmereignisaufzeichnung für eine anweisung eines beschleunigers in einem neuronalen netzwerk

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