DE68926289T2 - Gleitkommadivisions-Verfahren und -Anordnung - Google Patents
Gleitkommadivisions-Verfahren und -AnordnungInfo
- Publication number
- DE68926289T2 DE68926289T2 DE1989626289 DE68926289T DE68926289T2 DE 68926289 T2 DE68926289 T2 DE 68926289T2 DE 1989626289 DE1989626289 DE 1989626289 DE 68926289 T DE68926289 T DE 68926289T DE 68926289 T2 DE68926289 T2 DE 68926289T2
- Authority
- DE
- Germany
- Prior art keywords
- reciprocal
- estimate
- quotient
- current
- divisor
- 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
Links
- 238000000034 method Methods 0.000 title claims description 44
- 230000004044 response Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000010977 unit operation Methods 0.000 description 1
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/52—Multiplying; Dividing
- G06F7/535—Dividing only
-
- 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/535—Indexing scheme relating to groups G06F7/535 - G06F7/5375
- G06F2207/5351—Multiplicative non-restoring division, e.g. SRT, using multiplication in quotient selection
-
- 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/535—Indexing scheme relating to groups G06F7/535 - G06F7/5375
- G06F2207/5355—Using iterative approximation not using digit recurrence, e.g. Newton Raphson or Goldschmidt
-
- 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/535—Indexing scheme relating to groups G06F7/535 - G06F7/5375
- G06F2207/5356—Via reciprocal, i.e. calculate reciprocal only, or calculate reciprocal first and then the quotient from the reciprocal and the numerator
-
- 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
- G06F7/487—Multiplying; Dividing
- G06F7/4873—Dividing
-
- 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
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Description
- Diese Erfindung bezieht sich auf ein Datenverarbeitungssystem und auf die Durchführung von Gleitkommaoperationen und insbesondere auf ein Datenverarbeitungssystem zur Durchführung einer Gleitkommadivisions-Operation.
- Herkömmliche Gleitkommadivisions-Operationen enthielten die Berechnung eines Quotienten in einem Computer, indem zuerst eine Schätzung des Reziprokwertes des Divisors erzeugt wird. Der Reziprokwert wird verfeinert, anders ausgedrückt, die Genauigkeit der Mantisse wird erhöht und eventuell mit dem Dividenden multipliziert, um einen Quotienten zu erzeugen. Dieses Verfahren wurde oft mit dem Problem konfrontiert, das letzte Bit in der Mantisse in allen Fällen der Division korrekt zu erhalten - oder vielmehr es gelang nicht, dieses konsequent zu erhalten.
- Computer, welche diese Technik in der Vergangenheit benutzten, waren bekannt dafür, daß nicht immer die erwarteten Ergebnisse erzielt wurden, und diese Abweichungen waren meistens in Situationen störend, in denen ein genauer Quotient erwartet wurde, aber die Hardware, welche die Art des in dem vorherigen Abschnitt beschriebenen Schemas benutzt, erhielt oftmals nur das letzte Bit falsch.
- Mit dem Institute of Electrical and Electronic Engineers, das einen Standard für eine Gleitkomma-Arithmetik herausbrachte, wurde der Standard festgelegt, welcher die korrekten Ergebnisse für Gleitkomma-Arithmetikoperationen beschreibt. Dieser Standard trägt die Überschrift "An American National Standard - IEEE Standard For Binary Floating-Point Arithmetic", ANSI/IEEE Std. 754-1985. Ein Computer, der behauptet, den IEEE Gleitkomma-Standard zu unterstützen, muß in allen Fällen die korrekten Ergebnisse erzielen.
- Electronic Vol. 35, number 17, 17/22 August 1986, pp 57-61, W. Taetow: "Schelle Glietkommadivision" beschreibt ein Verfahren und System zur Durchführung von Gleitkommaoperationen gemäß dem IEEE Standard.
- Mehrere Patente illustrieren die Techniken zur Durchführung einer Gleitkommadivisions-Operation.
- - Die US Patentschrift Nr. 4,442,492 beschreibt ein Datenverarbeitungssystem, das eine Technik enthält, um ein gerundetes Bit in das geeignete Bit der Gleitkomma-Mantisse einzusetzen.
- - Die US Patentschrift Nr. 4,413,326 beschreibt ein Mechanismus zur Durchführung von Gleitkommaberechnungen in einer variablen Anzahl von Schritten, der einen ersten Mikroprozessor und einen zweiten Mikroprozessor verwendet, wobei jeder Mikroprozessor seinen eigenen Festspeicher enthält. Gleitkommaoperationen schließen die Beteiligung von beiden Mikroprozessoren ein. Bei Ausführung der Divisionsoperation werden die Mantissen vorbehandelt, um normalisiert zu werden, wobei das höchstwertige Bit eine logische 1 ist. Die Operation wird fortgesetzt, bis das führende Bit der Mantisse 1 wird, was das Ende der Operation bedeutet.
- - Die US Patentschrift Nr. 4,481,600 beschreibt eine Technik zur Erzeugung von Quotienten aus aufeinanderfolgenden Wiederholungen.
- - Die US Patentschrift Nr. 4,707,798 beschreibt ein Divisionsverfahren, das einen ungefähren, Reziprokdivisor zur Berechnung des Quotienten verwendet, mit dem die Zeit abgekürzt werden kann, die erforderlich ist, um die Prüfung und Korrektur durchzuführen, nachdem die Zwischenquotienten mittels des aufeinanderfolgenden wiederholungsprozesses kalkuliert wurden.
- - Die US Patentschrift Nr. 3,508,038 beschreibt eine Anordnung, um einen gebrochenen binären Dividenden durch einen gebrochenen binären Divisor zu dividieren, wobei der Quotient entwickelt wird, indem aufeinanderfolgende Multiplikationen des Dividenden und der ungefähren Reziprokwerte des Divisors durchgeführt werden.
- - Die US Patentschrift Nr. 4,011,439 beschreibt ein beschleunigtes Verfahren, um Quotienten aus zwei Binärzahlen zu erzeugen. Ein Divisorfeld wird benutzt, um den Reziprokwert des binären Divisors wirksam zu bilden, und der Quotient wird durch Multiplikation des Reziprokwertes mit dem Dividenden bestimmt.
- - Die US Patentschrift Nr. 3,648,038 beschreibt ein Verfahren, um den Reziprokwert der Zahl mittels einer Durchflußtechnik zu erzielen. Bei diesem Verfahren wird der Reziprokwert des Divisors mit dem Dividenden multipliziert, um den gewünschten Quotienten zu erzeugen.
- - Die US Patentschrift Nr. 3,633,018 beschreibt ein Verfahren, das benutzt wird, um den Reziprokwert einer Zahl mit zwei Multiplikationen und den Quotienten der beiden Zahlen mit drei Multiplikationen zu finden.
- - Die US Patentschrift Nr. 3,777,132 beschreibt ein Verfahren zur Durchführung einer Binärdivision, indem der Reziprokwert eines Divisors mit einem Dividenden multipliziert wird. Der Quotient wird zur gleichen Zeit wie der Reziprokwert des Divisors erzeugt.
- Es ist ein Gegenstand der vorliegenden Erfindung, ein Verfahren bereitzustellen, um eine Gleitkommadivision gemäß dem IEEE Arithmetik-Standard durchzuführen, der implementiert werden kann, indem Schaltlogik zur Verarbeitung von Multiplikationsund Additionsdaten verwendet wird. Es ist ein weiterer Gegenstand der Erfindung, ein Verfahren bereitzustellen, um sicherzustellen, daß die Bits der Mantisse gemäß eines vorausgewählten Modus zum Runden von Werten korrekt sind, ohne daß eine Bedingungsprüfung erforderlich ist, um das endgültige Ergebnis einzustellen.
- Gemäß der vorliegenden Erfindung ein Verfahren, um die Gleitkommadivision eines Dividenden durch einen Divisor durchzuführen und einen Quotienten zu erzeugen, der eine Mantisse aus N Bits in einem Datenverarbeitungssystem mit Speicher hat, wobei das Verfahren Schritte enthält, um
- (1) eine anfängliche Schätzung eines Reziprokwertes des Divisiors zu bestimmen und in diesem Speicher zu speichern,
- und durch Schritte gekennzeichnet wird, um
- (2) eine anfängliche Schätzung des Quotienten zu berechnen, indem der Dividend mit dem Reziprokwert multipliziert und in diesem Speicher gespeichert wird,
- (3) die Genauigkeit der anfänglichen Schätzung des Reziprokwertes zu steigern, indem ein Fehlerparameter berechnet und in dem Speicher gespeichert wird, wobei der mit dem aktuellen Reziprokwert multiplizierte Divisior um eins reduziert wird, und Berechnung sowie Speicherung in diesem Speicher von einer neuen Schätzung des Reziprokwertes, indem der Fehlerparameter, der mit der aktuellen Schätzung des Reziprokwertes multipliziert wurde, zu der aktuellen Schätzung des Reziprokwertes addiert wird,
- (4) eine Teilungsrestschätzung zu berechnen und in diesem Speicher zu speichern, indem von dem Dividend der Divisor subtrahiert wird, der mit der aktuellen Schätzung des Quotienten multipliziert wurde,
- (5) die Genauigkeit der Mantisse von der anfänglichen Schätzung des Quotienten zu steigern, indem ein neuer aktueller Quotient aus dem aktuellen Quotienten plus Teilungsrestschätzung, die mit der neuen Schätzung des Reziprokwertes des Divisors multipliziert wurde, berechnet und in dem Speicher gespeichert wird,
- (6) die Schritte (3), (4) und (5) zu wiederholen, bis die Präzision der Reziprokwert- und der Quotientenschätzung N Bits überschreitet,
- (7) einen endgültigen Quotienten aus der letzten, aktuellen Quotientenschätzung plus der neuesten, aktuellen Reziprokwertschätzung, die mit der neuesten Teilungsrestschätzung multipliziert wurde, zu berechnen und in diesem Speicher zu speichern.
- Die vorliegende Erfindung liefert ebenfalls eine Anordnung, um ein solches Verfahren durchzuführen.
- In einer solchen Anordnung, die nachstehend beschrieben wird, werden sowohl ein Verfahren als auch eine Anordnung beschrieben, um eine Gleitkommadivision durchzuführen, wobei die Gleitkommadivision eine Division eines Dividenden durch einen Divisor ist, der einen Quotienten erzeugt, der eine Mantisse mit n Bits hat. Die Anordnung enthält einen Schaltkreis, um eine anfängliche Schätzung von einem Reziprokwert des Divisors zu berechnen. Ein Schaltkreis zur Berechnung einer anfänglichen Schätzung des Quotienten aus der anfänglichen Schätzung des Reziprokwertes ist ebenfalls enthalten. Schaltlogik, um die Genauigkeit der anfänglichen Schätzung der Reziprokwertschätzung zu erhöhen, indem ein Fehlerparameter berechnet wird, und eine Berechnung einer aktuellen Schätzung des Reziprokwertes aus dem Fehlerparameter und der anfänglichen Schätzung des Reziprokwertes ist ebenfalls vorgesehen. Ein Schaltkreis zur Erhöhung der Genauigkeit der Mantisse der anfänglichen Schätzung des Quotienten, indem ein aktueller Quotient aus der aktuellen Schätzung des Reziprokwertes berechnet wird, ist ebenfalls vorgesehen.
- Ein Schaltkreis zur Berechnung einer Teilungsrestschätzung aus der aktuellen Reziprokwertschätzung und der aktuellen Quotientenschätzung ist ebenfalls vorgesehen. Ein Schaltkreis zur Steigerung der Genauigkeit der Mantisse des Reziprokquotienten und des Teilungsrestes sind vorgesehen. Die Genauigkeit wird gesteigert, bis die Genauigkeit von dem Reziprokwert und dem Quotienten n Bits überschreitet. Schließlich ist ein Schaltkreis vorgesehen, der einen endgültigen Quotienten aus dem letzten aktuellen Quotienten plus den letzten aktuellen Reziprokzeiten des letzten Teilungsrestes berechnet. Anfänglich wird die Gleitkommadivision, wie zuvor beschrieben, durchgeführt, indem ein Schema zum Runden von Werten implementiert wird, wobei Operationen zum Runden auf den nächstliegenden Wert durchgeführt werden. Bei Durchführung der letzten Operation, d.h. die Berechnung des letzten Quotienten, können andere Schemata zum Runden von Werten benutzt werden, z.B. auf Null runden, auf negative Unendlichkeit runden oder auf positive Unendlichkeit runden sowie auf den nächstliegenden Wert runden.
- Die beschriebene Anordnung zur Durchführung der Gleitkommadivision eines Dividenden durch einen Divisor zur Erzeugung eines Quotienten, der eine gerundete Mantisse von einer Genauigkeit von N Bit hat, enthält Mittel, um eine anfängliche Schätzung eines Reziprokwertes des Divisors zu berechnen; Mittel, um eine anfängliche Schätzung des Quotienten aus der anfänglichen Schätzung des reziproken Rundens mittels einer Operation zum Runden auf den nächstliegenden Wert zu berechnen; Mittel, um die Genauigkeit der Mantisse von der anfänglichen Schätzung des Reziprokwertes zu steigern, indem ein Fehlerparameter berechnet wird und Berechnung einer aktuellen Schätzung des Reziprokwertes aus dem Fehlerparameter und der anfänglichen Schätzung des reziproken Rundens durch eine Operation zum Runden auf den nächstliegenden Wert; Mittel, um die Genauigkeit der Mantisse von der anfänglichen Schätzung des Quotienten zu steigern, indem ein aktueller Quotient aus der aktuellen Schätzung des reziproken Rundens durch eine Operation zum Runden auf den nächstliegenden Wert berechnet wird; Mittel, um eine Teilungsrestschätzung aus der aktuellen Reziprokwertschätzung zu berechnen und zum Runden der aktuellen Quotientenschätzung durch eine Operation zum Runden auf den nächstliegenden Wert; Mittel, um die Genauigkeit der Mantisse der aktuellen Schätzungen von Reziprokwert und Quotient zu steigern, bis die Genauigkeit der Reziprokwertschätzung und der Quotientenschätzung N Bits überschreitet; und Mittel, um einen endgültigen Quotienten aus der letzten aktuellen Quotientenschätzung plus der neuesten, aktuellen Reziprokwertschätzzeiten zu berechnen, wobei die neueste Teilungsrestschätzung durch eine andere Operation gerundet wird, als die zum Runden auf den nächstliegenden Wert. Es wird ebenfalls ein Mechanismus bereitgestellt, um anzuzeigen, wenn ein genauer Quotient berechnet wurde. Dies erfolgt, wenn der, der berechnet wurde, null ist.
- Die vorliegende Erfindung wird außerdem anhand von Beispielen mit Bezug auf ein Ausführungsbeispiel beschrieben, das in den beiliegenden zeichnungen illustriert ist, in denen
- Figur 1 ein Flußdiagramm zeigt, welches das Gleitkommadivisions-Verfahren darstellt;
- Figur 2 ein Flußdiagramm zeigt, das ein erstes, bevorzugtes Ausführungsbeispiel des Gleitkommadivisions-Verfahrens darstellt;
- Figur 3 ein Flußdiagramm zeigt, das ein zweites, bevorzugtes Ausführungsbeispiel der Gleitkommadivisions-Operation darstellt;
- Figur 4 ein Blockdiagramm zeigt, das die Gleitkomma- Arithmetikeinheit darstellt;
- Figur 5 ein Blockdiagramm zeigt, das die Operation der Steuerlogik für die Gleitkomma-Arithmetikeinheit darstellt; und
- Figur 6 ein Flußdiagramm zeigt, das die Operation der Gleitkommadivisions-Steuereinheit darstellt.
- Das Verfahren zur Durchführung der Gleitkommadivision, das erörtert werden wird, beschäftigt sich nur mit der Behandlung der Mantisse von Operanden und Ergebnissen. Die Behandlung von Exponenten ist in dem Stand der Technik bekannt und wird hier nicht näher erörtert. Die fünf Schritte der Division werden nun erläutert.
- 1. Zu Beginn wird eine Reziprokwertschätzung des Divisors ausgewählt. Für Divisoren, deren Mantisse insgesamt aus "1" Bits besteht, muß die Größe der anfänglichen Annäherung von dem Reziprokwert des Divisors größer als oder gleich der Größe des aktuellen Reziprokwertes des Divisors sein. In der beschriebenen Anordnung muß die Größe der anfänglichen Schätzung von dem Reziprokwert des Divisors größer als oder gleich der Größe des aktuellen Reziprokwertes des Divisors sein, der mit Hilfe einer Operation zum Runden auf den nächstliegenden Wert korrekt gerundet wurde. Das Runden wird zu einem späteren Zeitpunkt in dieser Spezifikation besprochen.
- 2. Für Divisoren, deren Mantisse insgesamt aus "1" Bits besteht, muß die Annäherung des Quotienten größer oder gleich in der Größe im Verhältnis zu der Größe des aktuellen Quotienten sein (korrekt gerundet mittels der Operation zum Runden auf den nächstliegenden Wert in dem bevorzugten Ausführungsbeispiel). Das Zeichen der Annäherung ist ein Exklusiv-oder von den Zeichen der Operanden.
- 3. Eine verbesserte Annäherung an den Reziprokwert wird aus einer früheren Annäherung erzeugt, indem ein Fehlerparameter berechnet wird. Der Fehlerparameter "e" ist wie folgt:
- e = 1.0 - b*y
- y' = y + e*y
- wobei y die verbesserte Annäherung ist. Alle Bits für die Produkte aus diesen Gleichungen müssen in Summen integriert sein, bevor auf die normale Mantissenlänge der Maschine gerundet wird.
- 4. Eine verbesserte Annäherung an den Quotienten "q'" wird erzeugt, indem die frühere Annäherung an den Quotienten mittels der folgenden Berechnungen benutzt wird:
- r = a - b*q
- q' = q + r*y,
- wobei y gemäß Schritt 3 berechnet wurde. Alle Bits aus den oben genannten Produkten müssen in Summen integriert sein, bevor auf die normale Mantissenlänge der Maschine gerundet wird.
- 5. Wenn eine Annäherung an einen Quotienten bekannt ist, um innerhalb einer Einheit in der letzten Stelle korrigiert zu werden, muß die Größe des Reziprokwertes von dem Divisor, der verwendet wird, um die Annäherung an den Quotienten zu verbessern, gleich der Größe des aktuellen Reziprokwertes von dem korrekt gerundeten Divisor sein (mit der Operation zum Runden auf den nächstliegenden Wert), ausgenommen der Divisor, dessen Mantisse insgesamt aus "1" Bits besteht, für welche die Größe der Annäherung auch kleiner als der Reziprokwert sein kann, der in der letzten Stelle um eine Einheit korrekt gerundet wurde. Der erforderliche Reziprokwert resultiert aus Wiederholungsanwendungen von Schritt 3.
- Um das erfundene Verfahren klar zu verstehen, müssen die Techniken zum Runden von Werten ebenfalls verstanden werden. Im allgemeinen gibt es vier Verfahren zum Runden von Werten. Das erste Verfahren zum Runden auf den nächstliegenden Wert wählt die Zahl aus, die in der Mantisse am nächsten repräsentabel ist. Die zweite Möglichkeit ist ein Runden auf null, bei der gebrochene Bits verworfen werden, die nicht in die Mantisse passen. Dies wird im allgemeinen als Abschneiden bezeichnet. Ein weiteres Verfahren ist das Runden auf positive Unendlichkeit, was bedeutet, daß auf die nächstgrößte, repräsentable Zahl gerundet wird. Im Gegensatz dazu steht das Runden auf negative Unendlichkeit, was bedeutet, daß auf die nächstkleinste, repräsentable Zahl gerundet wird. In der Praxis erweist sich die Operation zum Runden auf den nächstliegenden Wert als das schwierigste und das Runden auf null als das einfachste Verfahren. Das Runden auf positive bzw. negative Unendlichkeit liegt an Komplexität dazwischen.
- In der beschriebenen Anordnung führt die Gleitkomma-Arithmetikeinheit eine einfache Operation aus:
- A + B*C
- mit drei Variationen (a) -A + B*C; (b) -A - B*C; und (c) A - B*C mit jeder einfachen Operation, die nur mit einem Rundungsfehler (d.h. das Runden erfolgt in dem letzten Stadium der Berechnung) ausgeführt wird. Gewöhnliche Addition und Subtraktion werden durchgeführt, indem eine 1.0 für den C Operanden eingesetzt wird, und die einfache Multiplikation erfolgt, indem dem A Operanden der Wert von 0.0 gegeben wird.
- Die Operation der beschriebenen Anordnung mit Bezug auf Fig. 1 ist wie folgt:
- In Schritt 10 werden Zahlen, zum Beispiel Unendliche und Nullen zusammen mit Zahlen, die keine Ziffernwerte darstellen, aus der Berechnung entfernt. Anders ausgedrückt, wenn solche Zahlen berücksichtigt werden, werden die von dem IEEE Standard geforderten Ergebnisse zurückgegeben. In Schritt 12 wechselt der Modus zum Runden von Werten, unabhängig von dem aktuellen Modus zum Runden von Werten, in die Operation zum Runden auf den nächstliegenden Wert. In Schritt 14 wird eine anfängliche Schätzung von dem Reziprokwert des Divisors durchgeführt. Wenn die Mantisse des Divisors insgesamt "1" Bits ist, muß die Größe des Reziprokwertes größer als die aktuelle Größe von 1/b sein. In Schritt 16 wird der Reziprokwert y benutzt, um eine anfängliche Schätzung des Quotienten zu berechnen. In den Schritten 18 und 20 werden der Reziprokwert y und der Quotient q verbessert. Verbesserte Mittel, daß die Genauigkeit der Mantisse von Reziprokwert und Quotient gesteigert werden. In Schritt 18 wird der Fehlerglied e wie abgebildet berechnet. Dieses Fehlerglied wird dann benutzt, um die aktuelle Schätzung oder die Schätzung des Reziprokwertes y, wie abgebildet, neu zu berechnen. Ähnlich in Schritt 20, wo der Quotient "verbessert" wird, indem zuerst der Teilungsrest berechnet wird, wobei Dividend und Divisor zusammen mit der letzten Schätzung des Quotienten benutzt werden, und ein neuer Quotient geschätzt wird, indem der letzte Quotient von dem berechneten Teilungsrest und die letzte Schätzung des Reziprokwertes benutzt wird. Die Schritte 18 und 20 können wiederholt und in der jeweiligen Reihenfolge zueinander durchgeführt werden. Wenn der Reziprokwert y ist und der Quotient q wiederholt in dem Punkt verbessert wurde, wo dessen Genauigkeit die Genauigkeit der Mantisse überschreitet, bevor die Ergebnisse gerundet wurden, wird in Schritt 22 der endgültige Teilungsrest, wie abgebildet, berechnet. In Schritt 24 wird der Originalmodus zum Runden von Werten wiederhergestellt. In Schritt 25 wird der endgültige Quotient, wie abgebildet, berechnet.
- Mit Bezug auf Fig. 2 werden nicht-numerische Einheiten, Unendliche und Nullen herausgefiltert, indem die Ergebnisse, die von dern IEEE Standard diktiert werden, bereitgestellt werden. In Schritt 32 wird der aktuelle Modus zum Runden von Werten in eine Operation zum Runden auf den nächstliegenden Wert verändert. In Schritt 34 wird eine anfängliche Schätzung des Reziprokwertes y durchgeführt, indem auf eine Tabelle, wie in Anhang A dargestellt, zugegriffen wird. In Schritt 36 wird das Fehlerglied e, wie abgebildet, berechnet. In Schritt 38 wird die erste Schätzung des Quotienten q durchgeführt. In Schritt 40 werden Quotient q und Reziprokwert y "verbessert", indem die Berechnungen gemäß der gezeigten Sequenz durchgeführt werden. In Schritt 42 wird der ursprüngliche Modus zum Runden von Werten wiederhergestellt. In Schritt 44 wird der endgültige Quotient, wie abgebildet, berechnet.
- Figur 3 zeigt ein zweites bevorzugtes Ausführungsbeispiel des erfundenen Verfahrens. In Schritt 50 werden nicht-numerische Einheiten, Unendliche und Nullen wie zuvor herausgefiltert. In Schritt 52 wird der aktuelle Modus zum Runden von Werten in eine Operation zum Runden auf den nächstliegenden Wert verändert. In Schritt 54 wird die anfängliche Schätzung des Reziprokwertes gemäß der Tabelle in Anhang A durchgeführt. Der Reziprokwert wird dann durch Berechnung des Fehlerglieds e, wie abgebildet, und durch die folgenden Berechnungen des Reziprokwertes verfeinert. In Schritt 56 wird das Fehlerglied e neu berechnet, indem die neueste Schätzung des Reziprokwertes benutzt wird. In Schritt 58 erfolgt die Quotientenschätzung. In Schritt 60 werden die Mantisse des Reziprokwertes und des Quotienten, wie abgebildet, "verbessert", indem die dargestellten Berechnungen durchgeführt werden. In Schritt 62 wird der ursprüngliche Modus zum Runden von Werten wiederhergestellt. In Schritt 64 wird der endgültige Quotient berechnet.
- Es ist zu bemerken, daß in beiden bevorzugten Ausführungsbeispielen, die in dem letzten Schritt von der Berechnung des endgültigen Quotienten enthalten sind, eine Angabe gemacht wird, wenn der Quotient genau ist (d.h. wenn der Teilungsrest null ist). Die Angabe, die bezüglich der Exaktheit des Quotienten gemacht wird, ist ein Ergebnis der Quotientensumme, die als exakt charakterisiert wird.
- Figur 4 zeigt ein Blockdiagramm einer Gleitkomma-Arithmetikeinheit. Diese besondere Gleitkomma-Arithmetikeinheit sorgt für eine Multiplikations- und Additionsoperation, wenn diese parallel auftreten. Die Registerdatei 70 enthält 40 Gleitkomma- Arithmetikwörter. Unter der Steuerung der Steuerlogik 106 über die Steuerleitung 108 wird ein Gleitkomma-Arithmetikdatenwort in die A OPERATIONSVERRIEGELUNG 72 geladen. Ähnlich werden die Inhalte von B OPERATIONSVERRIEGELUNG 74 und C OPERATIONSVERRIEGELUNG 76 geladen. Die Inhalte der A OPERATIONSVERRIEGELUNG 72 und B OPERATIONSVERRIEGELUNG 74 werden an einen Multiplikator 82 geliefert. Die Inhalte der B OPERATIONSVERRIEGELUNG 74 gelangen zu einem Multiplexer 78, der später erklärt wird. Der Multiplikator 82 liefert ein Teilprodukt an die Verriegelung 86 und ein zweites Teilprodukt an die Verriegelung 88. Die C OPERATIONSVERRIEGELUNG 76 liefert die Gleitkommazahl über den Multiplexer 80 an einen Abgleichschieber 84. Der Ausgang des Abgleichschiebers 84 wird an die Addendverriegelung 90 geliefert. Es sollte klar sein, daß die Inhalte der Register, die über den Multiplikator 82 und den Abgleichschieber 84 funktionieren, die Mantisse der Gleitkommazahl sind. Die Operation der Multiplikation der Exponente wird an die Steuerlogik 106 geliefert und besteht aus Addition. Das Ergebnis der Exponentenberechnung liefert einen Eingang an den Abgleichschieber 84, um die Inhalte der C OPERATIONSVERRIEGELUNG korrekt zu verschieben, so daß diese dem Produkt aus der A OPERATIONSVERRIEGELUNG 72 und der B OPERATIONSVERRIEGELUNG 74 hinzugefügt werden können.
- Das 3:2 Übertragungssicherheits-Addierwerk 92 empfängt die Inhalte der Verriegelungen 86, 88 und 90. Zwei Ausgänge werden an das volle Addierwerk 94 geliefert. Die Inhalte des vollen Addierwerks 94 wird in dem Normalisierungsschaltkreis 96 normalisiert und dann in der Ergebnisverriegelung 98 gespeichert. Der Ausgang der Ergebnisverriegelung 98 wird an den Rundeninkrementierer 100 geliefert. Der Ausgang des Rundeninkrementierers 100 kann an die Registerdatei 70 oder als Ersatz für den Multiplexer 78 an den Multiplikator oder über den Multiplexer 80 an den Abgleichschieber 84 geliefert werden. Während diese Gleitkomma- Arithmetiklogikeinheit im Pipelinemodus arbeitet, indem Multiplexer 78 und 80 bereitgestellt werden, können Ergebnisse aus einem früheren Befehl für einen aufeinanderfolgenden Befehl benutzt werden, ohne in der Registerdatei 70 gespeichert zu werden.
- In der Divisionsoperation funktioniert die Steuerlogik 106 mit einem Steuerkreis 102 zur Mikrocodedivision über Leitung 104, um die Divisionsprozeduren, die in den Figuren 1, 2 und 3 dargestellt sind, zu implementieren.
- Figur 5 zeigt den Steuerfluß der Steuerlogik 106. Der Gleitkommabefehl wird zu Beginn in Schritt 200 decodiert und die Operanden werden in Schritt 202 (aus der Registerdatei 70) gelesen. In Schritt 204 erfolgt eine Bestimmung, ob die Operanden Normalzahlen (entsprechend Schritt 30, Figur 2, indem spezielle Fälle herausgefiltert werden) sind. Wenn die Operanden keine Normalzahlen sind, fährt der Steuerfluß mit Schritt 206 fort, um die Zahlen gemäß IEEE Standard zu fixieren, und der Steuerfluß kehrt zu Schritt 200 zurück. Wenn es sich jedoch um Normalzahlen handelt, fährt der Steuerfluß mit Schritt 208 fort, um festzulegen, ob ein Divisionsbefehl vorhanden ist. Wenn es keinen Divisionsbefehl gibt, fährt der Steuerfluß mit Schritt 216 fort. Wenn ein Divisionsbefehl vorhanden ist, fährt der Steuerfluß mit dem Divisionsmikrocode 210, der Schritt 212 enthält, fort, welcher die Mikrocode-Divisionsprozedur aufruft und Schritt 214, welcher den Mikrocode ausführt. Nach Schritt 214 fährt der Steuerfluß mit Schritt 216 fort, um eine Multiplikationsoperation auszuführen. Dann wird in Schritt 218 eine Additionsoperation durchgeführt. In Schritt 220 wird das Rückschreiben in die Registerdatei 70 ausgeführt. Schritt 216 (der Multiplikationsschritt) entspricht der Multiplikation des Teilungsrestes r durch den Reziprokwert in Schritt 44. Schritt 218 in Figur 5 entspricht der Addition des Quotienten zu den restlichen Zeiten, die in Schritt 44 reziprok sind. Das Rückschreiben in das Register in Schritt 220 entspricht dem Schreiben des endgültigen Quotienten in die Registerdatei 70.
- Figur 6 zeigt die Inhalte des Divisionsmerkercodes 210. Zu Beginn wird in Schritt 230 der Modus zum Runden von Werten auf die Operation zum Runden des nächstliegenden Wertes rückgestellt. In Schritt 232 wird der Reziprokwert y in der Nachschlagetabelle für die erste Einschätzung des Reziprokwertes nachgeschlagen. In Schritt 234 wird das Fehlerglied e erzeugt. In Schritt 236 wird die erste Annäherung an den Quotienten q durchgeführt. In Schritt 238 und 240 wird die Genauigkeit des Reziprokwertes y und des Quotienten q gesteigert, indem die Berechnungen durchgeführt werden, die in Schritt 240 aufgeführt sind. In Schritt 242 wird der ursprüngliche Modus zum Runden von Werten wiederhergestellt.
- Wie zuvor erörtert, entsprechen der Multiplikationsschritt 216, der Additionsschritt 218 und der Schritt zum Rückschreiben 220 der Berechnung und es folgt die Speicherung des endgültigen Quotienten (Schritt 44, Figur 2).
- Als ein Ergebnis der Operation mit der Gleitkommaeinheit befindet sich der Quotient, der aus der Gleitkommadivisions-Operation resultiert, in der gewünschten Position, ohne daß irgendwelche zusätzliche Schaltlogik erforderlich ist.
- Andere Aspekte von dieser Art von Anordnung werden in den gleichzeitig anhängigen Patentanmeldungen EP 0 377 991, EP 0 377 990 und EP 0 377 994 beschrieben.
- Dieser Anhang beschreibt die Erzeugung einer ersten Annäherung an den Reziprokwert einer Zahl, wie dies von den hier beschriebenen Anordnungen verlangt wird. Die Tabelle am Ende erzeugt Annäherungen in der gewünschten Art und Weise.
- Die Operation RECIP Y, B ist eine Gleitkommaoperation. Y und B sind beide Gleitkommaregister. Das Ergebnis der Operation ist, eine Annäherung an den Reziprokwert von B in das Register Y zu setzen. Eine Spezifikation für diese Operation folgt unten:
- Wenn B eine NaN ist, dann ist Y = B; sonst, wenn B eine Plus- oder Minus-Unendliche ist, dann ist Y plus oder
- minus null;
- sonst, wenn B plus oder minus null ist, dann ist Y plus oder minus Unendliche;
- sonst,
- wenn B entnormalisiert ist, dann stellt B die normalisierte interne Form dar.
- Zeichen von Y = Zeichen von B.
- Freier Exponent von Y = 1 - freier Exponent von B
- "Leading 9 fraction* bits" von Y = Tabelle ("leading 8 fraction* bits" von B).
- *Hinweis: "leading 8 fraction bits" oder "leading 9 fraction bits" schließen das "leading implied 1 bit" aus, das physisch nicht in dem IEEE Format dargestellt ist. Anders ausgedrückt, bei einer normalisierten Zahl sind "the leading 8 fraction bits" die Bits 12-19 des Doppelwortes in der üblichen IBM Bitnumerierung von links nach rechts, mit null beginnend.
- Mit der gegebenen Tabelle, 0 < = ABS (1 - BY) < =1/362, ausgenommen für die speziellen Fälle, bei denen Nullen, Unendliche und NaN enthalten sind. Insbesondere für den Divisor von allen "1", wobei der Aufbau der RECIP Operation die Größe des Reziprokwertes überschätzen wird, wie dies gefordert wird, um die Konvergenz in einem korrekt gerundeten Ergebnis zu garantieren.
- RECIP muß in der Computerarchitektur nicht exponiert werden sondern kann statt dessen nur für die Benutzung durch den DIVIDE Befehl zur Verfügung stehen. In diesem Fall ist es nicht erforderlich, mit Nans, Unendlichen oder Nullen fertig zu werden, da diese Fälle als Spezialfälle von der Hardware behandelt werden.
- Nachstehend findet sich in hexadezimal eine Tabelle, die benutzt werden kann, um den Bruch zu erstellen, der von der RECIP Operation für IEEE Zahlen im Langformat verlangt wird: (Tabellenpositionen und Inhalte werden hexadezimal angegeben. Die Tabellenwerte, 9 Bits lang, wurden so belassen)...........
- In diesem Anhang werden Divisionsbeispiele gezeigt, wie diese in den beschriebenen Anordnungen ausgeführt sind. Alle Zahlen werden hexadezimal angezeigt, wobei das Führungsbit das Kennzeichenbit darstellt, die nächsten 11 Bits stellen die Exzeß- 1023-Exponente dar, und die verbleibenden 52 Bits stellen die Mantisse (wobei das Führungsbit nicht für normalisierte Zahlen dargestellt wird) gemäß dem IEEE binären Gleitkommastandard dar.
- Jedes Beispiel beginnt mit der Anzeige von Zähler und Nenner sowie von dem Modus zum Runden eines Wertes. Die Werte, die von dem bevorzugten Ausführungsbeispiel erzeugt werden, werden auf der linken Seite gezeigt. Die Werte sollen es leichter machen, die aufeinanderfolgenden Annäherungen an Quotienten, Reziprokwerte, Teilungsreste und Fehler in dem Reziprokwert herauszufinden. Am Ende wird der Teilungsrest gezeigt, der für den Quotienten verbleibt, der in der beschriebenen Anordnung entwikkelt wurde, und der Teilungsrest, der von der Annäherung verbleibt, die dem Quotienten am nächsten kommt. Es ist zu bemerken, daß die Annäherung der beschriebenen Anordnung den Teilungsrest mit der kleineren Größen beläßt, so wie dies von dem IEEE Standard zum Runden auf den nächstliegenden Wert verlangt wird.
- Auf der rechten Seite von jedem Beispiel befindet sich eine leicht geänderte Berechnung, die angibt, wie ein Quotient irrt, wenn eine der Regeln nicht befolgt wird: 1. Beispiel Zähler: Nenner: Modus zum Runden: auf den nächstliegenden Wert Endgültiger Teilungsrest ist BC9FFFFFFFFFFFFE Wechselnder Teilungsrest ist 3CA0000000000000
- In diesem Beispiel, in der falschen Version auf der rechten Seite, wurde y3 benutzt, um qf anstatt y4 zu berechnen. Es ist zu bemerken, daß diese beiden Annäherungen an den Reziprokwert des Divisors sich nur um ein Bit unterscheiden. Obwohl y3 selbst bei über 64 Bits vor dem Runden korrekt war, wurde es nicht aus einer Annäherung an den Reziprokwert berechnet, der gut innerhalb 1 Einheit in der letzten Stelle war, wie dies von Regel 5 verlangt wird. Dadurch war dieser nicht ausreichend genau, um den endgültigen Quotienten zu berechnen. 2. Beispiel: Zähler: Nenner: Modus zum Runden: auf den nächstliegenden Wert Endgültiger Teilungsrest ist 3C9FFFFFFFFFFFFC Wechselnder Teilungsrest ist BC9FFFFFFFFFFFFE
- Dies ist der Fall, wenn die Mantisse des Divisors insgesamt aus "1" Bits besteht. Wenn die anfängliche Schätzung des Reziprokwertes und des Quotienten eher unter- als überschätzt wird, konvergiert die Wiederholung nicht in den korrekt gerundeten Quotienten, sogar obwohl die Unterschätzung eine weite Überschätzung von einem Gesichtspunkt aus gesehen, war.
- Die oben beiden Fälle sind Illustrationen von "harten Teilungsproblemen", in denen Implementierungen des wiederholten Reziprokverfahrens in der Vergangenheit nicht korrekt funktionierten. Das beschriebene Verfahren überwindet diese Schwierigkeiten. Es triff zu, daß die "harten Probleme" rar sind. Ohne das beschriebene Verfahren werden die meisten Divisionen korrekt ausgeführt, aber das beschriebene Verfahren ermöglicht es, daß alle Divisionen korrekt berechnet werden, und zwar im IEEE Standard, ungeachtet des Modus zum Runden von Werten und ohne zusätzliche Einstellungen am Ende.
- Desweiteren wird im Falle von genauen Quotienten die vorletzte Annäherung an den Quotienten bereits korrekt sein, so daß die Endkorrektur das Hinzufügen von Null an die korrekte Antwort, die bereits eine exakte Operation ist, enthält.
Claims (12)
1. Ein Verfahren, um die Gleitkommadivision eines Dividenden
durch einen Divisor durchzuführen und einen Quotienten zu
erzeugen, der eine Mantisse aus N Bits in einem
Datenverarbeitungssystem mit Speicher hat, wobei das Verfahren
Schritte enthält, um
(1) eine anfängliche Schätzung eines Reziprokwertes des
Divisiors zu bestimmen und in diesem Speicher zu
speichern,
und durch Schritte gekennzeichnet wird, um
(2) eine anfängliche Schätzung des Quotienten zu berechnen,
indem der Dividend mit dem Reziprokwert multipliziert
und in diesem Speicher gespeichert wird,
(3) die Genauigkeit der anfänglichen Schätzung des
Reziprokwertes zu steigern, indem ein Fehlerparameter
berechnet und in dem Speicher gespeichert wird, wobei der
mit dem aktuellen Reziprokwert multiplizierte Divisior
um eins reduziert wird, und Berechnung sowie
Speicherung in diesem Speicher von einer neuen Schätzung des
Reziprokwertes, indem der Fehlerparameter, der mit der
aktuellen Schätzung des Reziprokwertes multipliziert
wurde, zu der aktuellen Schätzung des Reziprokwertes
addiert wird,
(4) eine Teilungsrestschätzung zu berechnen und in diesem
Speicher zu speichern, indem von dem Dividend der
Divisor subtrahiert wird, der mit der aktuellen Schätzung
des Quotienten multipliziert wurde,
(5) die Genauigkeit der Mantisse von der anfänglichen
Schätzung des Quotienten zu steigern, indem ein neuer
aktueller Quotient aus dem aktuellen Quotienten plus
Teilungsrestschätzung, die mit der neuen Schätzung des
Reziprokwertes des Divisors multipliziert wurde,
berechnet und in dem Speicher gespeichert wird,
(6) die Schritte (3), (4) und (5) zu wiederholen, bis die
Präzision der Reziprokwert- und der Quotientenschätzung
N Bits überschreitet,
(7) einen endgültigen Quotienten aus der letzten, aktuellen
Quotientenschätzung plus der neuesten, aktuellen
Reziprokwertschätzung, die mit der neuesten
Teilungsrestschätzung multipliziert wurde, zu berechnen und in
diesem Speicher zu speichern.
2. Ein Verfahren wie in Anspruch 1 angemeldet, wobei Schritt
(1) Schritte enthält, um
(1a) zu bestimmen, wenn die Divisormantisse
insgesamt aus binären Einsen besteht und
(1b) wenn die Divisormantisse insgesamt aus binären
Einsen besteht, wobei die anfängliche Schätzung
aus einem Satz von Zahlen ausgewählt wird, der
gleich oder größer als eine aktuelle Größe des
Reziprokwertes ist.
3. Ein Verfahren wie in Anspruch 2 angemeldet, wobei Schritt
(1) außerdem einen Schritt enthält, um eine Operation zum
Runden der anfänglichen Schätzung des Reziprokwertes auf
den nächstliegenden Wert auszuwählen.
4. Ein Verfahren wie in irgendeinem vorhergehenden Anspruch
angemeldet, wobei jeder der Schritte (2) bis (6) einen
Schritt enthält, um einen Wert in einer Operation zum
Runden auf den nächstliegenden Wert zu runden.
5. Ein Verfahren wie in irgendeinem vorhergehenden Anspruch
angemeldet, wobei Schritt (7) einen Schritt enthält, um
einen Wert ohne das Verfahren zum Runden des nächstliegenden
Wertes zu runden.
6. Ein Verfahren wie in Anspruch 5 angemeldet, wobei Schritt
(7) einen Schritt enthält, um eine Angabe zu liefern, daß
der endgültige Quotient genau ist wenn, und nur wenn, die
Größe des Teilungsrestes null ist.
7. Ein System zur Durchführung der Gleitkommadivision eines
Dividenden durch einen Divisor zur Erzeugung eines
Quotienten, der eine Mantisse von N Bits in einem
Datenverarbeitungssystem hat, wobei das System enthält,
Mittel, um eine anfängliche Schätzung eines Reziprokwertes
des Divisiors zu bestimmen und in diesem Speicher zu
speichern,
und gekennzeichnet wird durch
Mittel, um eine anfängliche Schätzung des Quotienten zu
berechnen, indem der Dividend mit dem Reziprokwert
multipliziert und in diesem Speicher gespeichert wird,
Mittel, um wiederholt
die Genauigkeit der anfänglichen Schätzung des
Reziprokwertes zu steigern, indem ein Fehlerparameter
berechnet und in dem Speicher gespeichert wird, wobei der
mit dem aktuellen Reziprokwert multiplizierte Divisior
um eins reduziert wird, und Berechnung sowie
Speicherung in diesem Speicher von einer neuen Schätzung des
Reziprokwertes, indem der Fehlerparameter, der mit der
aktuellen Schätzung des Reziprokwertes multipliziert
wurde, zu der aktuellen Schätzung des Reziprokwertes
addiert wird,
eine Teilungsrestschätzung zu berechnen und in diesem
Speicher zu speichern, indem von dem Dividend der
Divisor subtrahiert wird, der mit der aktuellen Schätzung
des Quotienten multipliziert wurde,
die Genauigkeit der Mantisse von der anfänglichen
Schätzung des Quotienten zu steigern, indem ein neuer
aktueller Quotient aus dem akutellen Quotienten plus
Teilungsrestschätzung, die mit der neuen Schätzung des
Reziprokwertes des Divisors multipliziert wurde,
berechnet und in dem Speicher gespeichert wird;
bis die Präzision der Reziprokwert- und der
Quotientenschätzung N Bits überschreitet, und
Mittel, um einen endgültigen Quotienten aus der letzten,
aktuellen Quotientenschätzung plus der neuesten, aktuellen
Reziprokwertschätzung, die mit der neuesten
Teilungsrestschätzung multipliziert wurde, zu berechnen und in diesem
Speicher zu speichern.
8. Anordnung wie in Anspruch 7 angemeldet, wobei die Mittel
zur Bestimmung der anfänglichen Schätzung des
Reziprokwertes ein Mittel enthalten, um festzulegen, wenn die
Divisormantisse insgesamt aus Einsen besteht und Mittel, um die
anfängliche Schätzung aus einem Satz mit Zahlen
auszuwählen, die gleich oder größer als eine aktuelle Größe des
Reziprokwertes als Antwort hierauf sind.
9. Anordnung wie in Anspruch 8 angemeldet, wobei die Mittel
zur Bestimmung des anfänglichen Reziprokwertes außerdem
Mittel enthalten, um eine Operation auszuwählen, um den
anfänglichen Reziprokwert auf den nächstliegenden Wert zu
runden.
10. Anordnung wie in Anspruch 9 angemeldet, wobei die Mittel
zur Berechnung der aktuellen Schätzungen Mittel enthalten,
um den Wert auf den nächstliegenden Wert zu runden.
11. Anordnung wie in Anspruch 10 angemeldet, wobei die Mittel
zur Berechnung des endgültigen Quotienten Mittel enthalten,
um diesen mit einer anderen Operation als die des Rundens
auf den nächstliegenden Wert zu runden.
12. Anordnung wie in Anspruch 11 angemeldet, wobei die Mittel
zur Berechnung des endgültigen Quotienten Mittel enthalten,
um eine Angabe zu liefern, daß der endgültige Quotient
exakt ist, wenn und nur wenn, die Größe des Teilungsrestes
null ist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US29777189A | 1989-01-13 | 1989-01-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE68926289D1 DE68926289D1 (de) | 1996-05-23 |
DE68926289T2 true DE68926289T2 (de) | 1996-10-10 |
Family
ID=23147678
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE1989626289 Expired - Fee Related DE68926289T2 (de) | 1989-01-13 | 1989-12-20 | Gleitkommadivisions-Verfahren und -Anordnung |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP0377992B1 (de) |
JP (1) | JPH0687219B2 (de) |
DE (1) | DE68926289T2 (de) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5046038A (en) * | 1989-07-07 | 1991-09-03 | Cyrix Corporation | Method and apparatus for performing division using a rectangular aspect ratio multiplier |
EP0461240A4 (en) * | 1989-12-29 | 1993-08-11 | Motorola, Inc. | Methods and apparatus for efficient resource allocation for error and exception handling in convergent division |
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 |
GB2372353A (en) * | 2000-12-20 | 2002-08-21 | Sicon Video Corp | Method and apparatus for calculating a reciprocal |
US9146706B2 (en) | 2006-05-05 | 2015-09-29 | Qualcomm Incorporated | Controlled-precision iterative arithmetic logic unit |
US20120059866A1 (en) * | 2010-09-03 | 2012-03-08 | Advanced Micro Devices, Inc. | Method and apparatus for performing floating-point division |
US8775494B2 (en) * | 2011-03-01 | 2014-07-08 | Nvidia Corporation | System and method for testing whether a result is correctly rounded |
JP2020166661A (ja) * | 2019-03-29 | 2020-10-08 | 日本電気株式会社 | 除算装置、除算方法及びプログラム |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3828175A (en) * | 1972-10-30 | 1974-08-06 | Amdahl Corp | Method and apparatus for division employing table-lookup and functional iteration |
JPS54136147A (en) * | 1978-04-13 | 1979-10-23 | Panafacom Ltd | Divider |
JPS5520508A (en) * | 1978-06-29 | 1980-02-14 | Panafacom Ltd | Processor for division |
US4594680A (en) * | 1983-05-04 | 1986-06-10 | Sperry Corporation | Apparatus for performing quadratic convergence division in a large data processing system |
JPS60164837A (ja) * | 1984-02-07 | 1985-08-27 | Nec Corp | 除算装置 |
JPS61262930A (ja) * | 1985-05-17 | 1986-11-20 | Nec Corp | 除算装置 |
-
1989
- 1989-12-20 DE DE1989626289 patent/DE68926289T2/de not_active Expired - Fee Related
- 1989-12-20 EP EP19890313402 patent/EP0377992B1/de not_active Expired - Lifetime
-
1990
- 1990-01-12 JP JP2003659A patent/JPH0687219B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0377992B1 (de) | 1996-04-17 |
JPH0687219B2 (ja) | 1994-11-02 |
JPH02227726A (ja) | 1990-09-10 |
EP0377992A3 (de) | 1992-01-08 |
DE68926289D1 (de) | 1996-05-23 |
EP0377992A2 (de) | 1990-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69131187T2 (de) | Hochgeschwindigkeitsdividierer | |
DE19540102C2 (de) | Verfahren und Gleitkomma-Recheneinheit mit einer Logik für eine Vierfach-Präzisions-Arithmetik | |
DE69032891T2 (de) | Verfahren und Gerät zur Ausführung mathematischer Funktionen mit Hilfe polynomialer Annäherung und eines Multiplizierers rechteckigen Seitenverhältnisses | |
DE4243374C2 (de) | Rundungseinrichtung für eine Gleitkommazahl und Verfahren | |
DE4414172C2 (de) | Gleit-Komma-Arithmetikeinheit und Verfahren zur Division und Quadratwurzelberechnung, die eine modifizierte Newton-Raphson Technik verwendet | |
DE3144015C2 (de) | ||
DE69132597T2 (de) | Verfahren und Gerät zur Berechnung von Gleitkommadaten | |
DE3306084C2 (de) | ||
DE69032966T2 (de) | Verfahren und Gerät zur Ausführung von Divisionen mit Hilfe eines Multiplizierers rechteckigen Seitenverhältnisses | |
DE68928376T2 (de) | Vorrichtung zum multiplizieren, teilen und ziehen der quadratwurzel | |
DE69132517T2 (de) | Gleitkommaprozessor | |
DE69430053T2 (de) | Ganzzahldivisionsvorrichtung und -verfahren | |
DE69130510T2 (de) | Arithmetisches Gerät zur Berechnung von transzendenten Elementarfunktionen | |
DE69130623T2 (de) | Dividierer mit hoher Grundzahl | |
DE102014100108A1 (de) | Festkomma-divisionschaltung unter verwendung einer gleitkomma-architektur | |
DE69321241T2 (de) | Hochleistungsmantissendividierer. | |
DE2246968A1 (de) | Einrichtung zur kombination, insbesondere multiplikation, zweier gleitkommazahlen | |
DE68924386T2 (de) | Verfahren und Gerät zur Radix-2**n-Division mit überlappender Quotientenbitauswahl und gleichzeitiger Rundung und Korrektur des Quotienten. | |
DE69032890T2 (de) | Verfahren und Gerät zur Ausführung der Quadratwurzelfunktion mit Hilfe eines Multiplizierers rechteckigen Seitenverhältnisses | |
DE19781794C2 (de) | Verfahren und Einrichtung zur Division von Gleitkomma- oder ganzen Zahlen | |
DE68926289T2 (de) | Gleitkommadivisions-Verfahren und -Anordnung | |
EP1499954B1 (de) | Berechnung eines ergebnisses einer modularen multiplikation | |
DE3701599A1 (de) | Vielfunktions-arithmetisch-logische-schaltung | |
DE4019646C2 (de) | Vorrichtung und Verfahren zum Multiplizieren von Datenwörtern in Zweier-Komplement-Darstellung | |
DE102006025713B9 (de) | Kryptographie-Vorrichtung und Kryptographie-Verfahren zum Berechnen eines Ergebnisses einer modularen Multiplikation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |