DE69131187T2 - Hochgeschwindigkeitsdividierer - Google Patents
HochgeschwindigkeitsdividiererInfo
- Publication number
- DE69131187T2 DE69131187T2 DE69131187T DE69131187T DE69131187T2 DE 69131187 T2 DE69131187 T2 DE 69131187T2 DE 69131187 T DE69131187 T DE 69131187T DE 69131187 T DE69131187 T DE 69131187T DE 69131187 T2 DE69131187 T2 DE 69131187T2
- Authority
- DE
- Germany
- Prior art keywords
- quotient
- operand
- register
- partial remainder
- adder
- 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
- 238000004364 calculation method Methods 0.000 claims description 22
- 238000001514 detection method Methods 0.000 claims description 16
- 238000010586 diagram Methods 0.000 description 11
- 238000000034 method Methods 0.000 description 11
- 238000004422 calculation algorithm Methods 0.000 description 6
- 241001562081 Ikeda Species 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000001360 synchronised effect Effects 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
- 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
- G06F7/537—Reduction of the number of iteration steps or stages, e.g. using the Sweeny-Robertson-Tocher [SRT] algorithm
- G06F7/5375—Non restoring calculation, where each digit is either negative, zero or positive, e.g. SRT
-
- 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/544—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 for evaluating functions by calculation
- G06F7/552—Powers or roots, e.g. Pythagorean sums
- G06F7/5525—Roots or inverse roots of single operands
-
- 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/552—Indexing scheme relating to groups G06F7/552 - G06F7/5525
- G06F2207/5526—Roots or inverse roots of single operands
- G06F2207/5528—Non-restoring calculation, where each result digit is either negative, zero or positive, e.g. SRT
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)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Complex Calculations (AREA)
- Fittings On The Vehicle Exterior For Carrying Loads, And Devices For Holding Or Mounting Articles (AREA)
- Inorganic Insulating Materials (AREA)
- Microwave Tubes (AREA)
- Vending Machines For Individual Products (AREA)
- Pulleys (AREA)
- Superconductors And Manufacturing Methods Therefor (AREA)
- Advance Control (AREA)
Description
- Die vorliegende Erfindung betrifft einen Gleitkomma-Prozessor für ein Computersystem und insbesondere einen Hochgeschwindigkeitsdividierer, der eine iterative Division ohne Bildung eines positiven Rests mit der Radix 4 durchführt. Die vorliegende Erfindung betrifft einen Hochgeschwindigkeitsdividierer, der eine iterative Division ohne Bildung eines positiven Rests mit der Radix 4 und Quadratwurzelberechnungen mit der Radix 2 durchführt.
- Verwandte Erfindungen sind in den mitanhängigen Anmeldungen EP-A-0 450 755, EP-A-0 450 752 und EP-A-0 450 751 beschrieben.
- Zahlreiche Computerprogramme erfordern eine große Zahl von arithmetischen Gleitkommaoperationen. Infolgedessen ist eine große Zahl der von einem Computer, in dem derartige Programme ablaufen, durchgeführten Befehle Gleitkomma-Befehle. Bei solchen Programmen gilt, daß je größer die Zahl der pro Zyklus ausführbaren arithmetischen Gleitkomma-Befehle ist, desto schneller ist die Betriebsgeschwindigkeit der Maschine. Daher wurden zahlreiche Bemühungen unternommen, die Gleitkomma-Verarbeitungszeit zu verkürzen. Beispielsweise offenbart das US-Patent 4 683 547 an DeGroot eine arithmetische Gleitkommaeinheit, die das Erzeugen von zwei Gleitkommaergebnissen pro Zyklus ermöglicht. Dasselbe Patent erörtert bekannte Lehren zu arithmetischen Einheiten, die das Ausführen mehrerer arithmetischer Operationen auf einmal ermöglichen. Ein weiterer Ansatz ist im US-Patent 4 075 705 an O'Leary dargelegt. Bei O'Leary sind der Gleitkomma-Addierer und der Gleitkomma-Dividierer Pipelineschaltungen mit mehreren Stufen, die zwischengefügte haltespeicher zum Einfangen von Teilergebnissen aufweisen, welche während eines Taktzyklus berechnet wurden und im nächsten Taktzyklus an die nächste Stufe weitergeleitet werden sollen. Ansätze, wie die in DeGroot und O'Leary diskutierten, konzentrieren sich hauptsächlich auf die Beschleunigung der Fähigkeit einer arithmetischen Gleitkommaeinheit zur Durchführung wiederholter Opera tionen und betrafen nicht die Erhöhung der Geschwindigkeit, mit der eine arithmetische Gleitkommaeinheit eine bestimmte Operation durchführen kann.
- Da es sich beim Dividieren um die komplexeste arithmetische Operation handelt und üblicherweise mehr Hardware und Rechenzeit erforderlich ist als bei anderen arithmetischen Operationen, beispielsweise Addition oder Multiplikation, ist die Geschwindigkeit, mit der eine Divisionsberechnung von einem Dividierer ausgeführt werden kann, von besonderer Wichtigkeit. Mit zunehmender Zahl der Ziffern in den Operanden die dividiert werden sollen ist beispielsweise eine zunehmend lange Zeitspanne für die Durchführung der gewünschten arithmetischen Operationen durch den Dividierer erforderlich. Des weiteren verwenden große Computer mit Hochgeschwindigkeitsmultiplizierern oft eine Multiplikationsart der Division, bei der das Dividieren durch das Wiederholen von Multiplikationen geschieht. Jedoch erfordert die Implementierung einer derartigen multiplizierenden Division durch komplementäre Schaltungen große Mengen an Hardwareelementen und ist daher unpraktisch.
- Divisionsverfahren können in "einen positiven Rest" und "keinen positiven Rest" bildende Verfahren unterteilt werden. Beim keinen positiven Rest bildenden Verfahren wird eine Reihe von Quotientenziffern mit den Werten:
- -((Beta)-1), ..., -2, -1, 1, 2, ..., ((Beta)-1) (1)
- wobei (Beta) die Radix des Divisors und k der Redundanzfaktor ist;
- vorab bestimmt und jede Ziffer des Quotienten wird aus der Gruppe von Quotienten nach einem iterativen Verfahren ausgewählt, das auch eine Reihe von Teilresten produziert, die zum Wählen der nächsten Quotientenziffer verwendet werden. Eine Variante der keinen positiven Rest bildenden Division wird im allgemeinen als "SRT" Division bezeichnet, die durch das Vorabbestimmen einer Reihe von Quotientenziffern im Bereich von:
- -(k(Beta)-1)), ..., -2, -1, 0, 1, 2, ..., (k(Beta)-1) (2)
- wobei (Beta) die Radix der Division ist;
- gekennzeichnet ist, aus dem jede Quotientenziffer gewählt ist.
- Ein kennzeichnendes Merkmal der keinen positiven Rest bildenden Dividierer ist die Verwendung einer negativen Zahl und einer positiven Zahl im Teilrest, der in einer vorherigen Operation gebildet wurde, bei der eine Ziffer des Quotienten bestimmt wird. Ein derartiger, keinen positiven Rest bildender Dividierer ist im US-Patent 4 722 069 an Ikeda offenbart. Ikeda offenbart einen keinen positiven Rest bildenden Dividierer, der aufweist: ein Divisorregister zum Speichern eines Divisors, einteilrestregister zum Speichern eines Dividenden oder eines Teilrests, eine Vorhersageeinrichtung zum Vorhersagen eines Teilquotienten, einen Multiplizierer zum Multiplizieren des Inhalts des Divisorregisters, einen ersten Addierer zum Subtrahieren des Ausgangssignals des Multiplizierers von dem Inhalt des Teilrestregisters und zum Berechnen des Teilrests derart, daß die Vorhersageeinrichtung den Teilquotienten aus oberen Ziffern des Divisorregisters und oberen Ziffern des Teilrests vorhersagt. Die Verwendung von Multiplizierern und mehreren Addierern beim Ikeda-Dividie rer, führt jedoch zu erheblichen Kostensteigerungen und erhöhtem Platzbedarf des Dividierers, aufgrund des relativ hardware-intensiven Designs.
- Ein anderer keinen positiven Rest bildender Dividierer ist im US-Patent 4 724 529 an Irukulla et al. beschrieben. Zwar verwendet der Dividierer nach Irukulla et al. einen Addierer/Subtrahierer, der einen Teilrest nach der Beziehung
- Pj+1 = (Beta)Pj - qjD (3)
- berechnet, jedoch verwendet dieser Dividierer kosten- und raumintensive Multiplikationsschaltungen zur Erzeugung von qjD. Schließlich offenbart der Artikel von Birman et al. mit dem Titel "Developing the WTL3170/3171 Sparc Floating-Point Coprocessors", IEEE Micro. S. 55-64 (Februar 1990) eine arithmetische Gleitkommaoperationseinheit zum Durchführen von keinen positiven Rest bildenden, Radix-4-Mantissen-Divisions- und Quadratwurzelberechnungen. Jedoch teilt sich die in dem Artikel von Birman et al. offenbarte Vorrichtung die Erst-Divisions-/Quadratwurzellogik und die "Mal-Drei"-Erzeugung mit einem Multiplizierer, wodurch der Gleitkommaprozessor daran gehindert ist, Multiplikationsoperationen während einer Divisionsoperation durchzuführen. Ferner ist die Vorrichtung nach dem Artikel von Birman et al. derart konfiguriert, daß sie die Erzeugung des Dreifachen des Divisors unter Verwendung von Multiplikationsschaltungen erfordert, bevor irgendein Quotientenbit bestimmt wird, wodurch die Berechnung des Quotienten verlangsamt wird.
- Das IBM technical disclosure bulletin, Band 30; Nummer 6, 11/87, Seiten 415 bis 419 "Radix 16 Divider" offenbart einen weiteren bekannten Radix-Dividierer.
- Ein Artikel von Milos D. Ercegovac und Tomas Lang, "On-The-Fly Conversion of Redundant into Conventional Representations", IEEE Transactions on Computers, Bd. C-36, Nr. 7, Juli 1987, offenbart einen bekannten Radix-2- Dividierer.
- Die vorliegende Offenbarung beschreibt einen Hochgeschwindigkeitsdividierer, der eine keinen positiven Rest bildende iterative Division mit der Radix 4 durchführt. Der Dividierer führt ferner Quadratwurzelberechnungen mit der Radix 2 aus.
- Der Dividierer minimiert die Menge der erforderlichen Logikschaltungen, während der Dividierer beschleunigt wird, um mit der Rate einer Iteration der Divisionsoperation pro Taktimpulsphase zu arbeiten.
- Die vorliegende Erfindung schafft einen Dividierer mit zwei parallelen Quotientenregistern zum Speichern einer auszugebenden Quotientenvorhersage und zum Speichern der Quotientenvorhersage minus eins zum Korrigieren fehlerhafter Quotientenvorhersagen vor dem Ausgeben.
- Nach einem Aspekt ist ein Dividierer zum Durchführen der Division eines ersten Operanden durch einen zweiten Operanden zur Erzeugung eines Ergebnisses vorgesehen, mit einer Einrichtung zum iterativen Erzeugen einer Reihe von Teilresten, einer Einrichtung zum iterativen Vorhersagen von Quotientenbitwerten, alternativ auch Quotienten genannt, einer Einrichtung zum Erzeugen von Vielfachen des zweiten Operanden und einer Einrichtung zum Wählen eines der erzeugten Vielfachen. Die Einrichtung zum Erzeugen einer Reihe von Teilresten wählt den zweiten Operanden als den ersten Teilrest. Die Quotienten vorhersageeinrichtung sagt einen ersten Quotientenwert auf der Basis des ersten Operanden und des zweiten Operanden und einen nächsten Quotientenwert auf der Basis der Reihe von Teilresten und des zweiten Operanden vorher. Die Wähleinrichtung wählt eines der erzeugten Vielfachen zum Erzeugen eines nächsten Teilrests basierend auf der nächsten Quotientenvorhersage. Ein nächster Teilrest wird sodann aus dem erzeugten Teilrest und dem ausgewählten Vielfachen des zweiten Operanden erzeugt.
- Nach einem anderen Aspekt ist eine Vorrichtung zum Dividieren eines Dividenden durch einen Divisor zum Erzeugen eines Ergebnisses vorgesehen, mit einem Teilrestregister, das zum Empfangen und Speichern von Teilresten verbunden ist, einem Divisorregister, das zum Empfangen und Speichern des Divisors verbunden ist, einer Quotientenvorhersageschaltung, die zum Empfangen des Divisors vom Divisorregister und einer Reihe Teilresten aus dem Teilrestregister verbunden ist, einem ersten Quotientenregister, das mit der Quotientenvorhersageeinrichtung verbunden ist, um die von der Quotientenvorhersageeinrichtung bestimmte Reihe von Quotientenwerten zu empfangen und zu speichern, einer Einrichtung zum Erzeugen von Vielfachen des Divisors, und einem speziellen Übertragspeicheraddierer der mit der Einrichtung zum Erzeugen von Vielfachen des Divisors und mit der Quotientenvorhersagelogik verbunden ist. Der Übertragspeicheraddierer wählt Vielfache des Divisors basierend auf den vorhergesagten Quotienten und bestimmt einen nächsten der Reihe von Teilresten basierend auf dem im Teilrestregister gespeicherten Teilrest und dem gewählten Divisorvielfachen. Die Quotientenvorhersagelogik empfängt sodann den nächsten Teilrest zur Bestimmung des nächsten aus der Reihe der Quotientenwerte.
- Die zugehörigen Zeichnungen zeigen als Beispiele:
- Fig. 1a - ein Blockschaltbild eines ersten Ausführungsbeispiels eines Hochgeschwindigkeitsdividierers zur Durchführung von keinen positiven Rest bildenden iterativen Divisionen mit der Radix 4, aufgebaut nach den Lehren der vorliegenden Erfindung;
- Fig. 1b - ein Blockschaltbild des Quotientenregisters von Fig. 1a;
- Fig. 1c - ein Blockschaltbild zusätzlicher Details des Quotientenregisters der Fig. 1a-b;
- Fig. 2 - eine graphische Wiedergabe der ersten Vorhersagelogik des Dividierers von Fig. 1;
- Fig. 3 - eine graphische Wiedergabe der Quotientenvorhersagelogik des Dividierers von Fig. 1;
- Fig. 4 - ein Blockschaltbild eines zweiten Ausführungsbeispiel eines Hochgeschwindigkeitsdividierers zur Durchführung einer keinen positiven Rest bildenden iterativen Division mit der Radix 4;
- Fig. 5 - ein Blockschaltbild des Hochgeschwindigkeitsdividierers von Fig. 4, der zum Durchführen von Quadratwurzelberechnungen mit der Radix 2;
- Fig. 6 - eine graphische Wiedergabe der Quadratwurzelvorhersagelogik des Dividierers von Fig. 5; und
- Fig. 7 - eine Darstellung der Phasenlogik.
- Unter Bezugnahme auf die Fig. 1 wird zunähst ein Hochgeschwindigkeitsdividierer 100 zur Durchführung einer keinen positiven Rest bildenden iterativen Division mit der Radix 4 näher beschrieben. Es ist vorgesehen, daß der hierin offenbarte Dividierer als ein Bestandteil einer Gleitkommaprozessoreinheit, beispielsweise einer der in den von der Anmelderin eingereichten mitanhängigen Europäischen Patentanmeldungen mit den Veröffentlichungsnummern EP-A-0 450 755, EP-A-0 450 752 und EP-A-0 450 751 beschriebenen Gleitkommaprozessoreinheiten ist.
- Wie in den genannten Anmeldungen im Detail ausgeführt, besteht ein Gleitkommaprozessor aus mehreren arithmetischen Gleitkommaoperationseinheiten, beispielsweise einem Addierer, einem Multiplizierer und einem Dividierer, zum Durchführen arithmetischer Operationen mit Eingabeoperanden. Wenn zwei Eingabeoperanden, beispielsweise der Operand A und der Operand B, in eine arithmetische Gleitkommaoperationseinheit eingegeben werden, führt die arithmetische Gleitkommaoperationseinheit die gewünschte arithmetische Operation an den eingegebenen Operanden durch und gibt die Ergebnisse auf einem Ergebnisbus aus. Üblicherweise kann der Prozessor sowohl Gleitkommazahlen, als auch ganze Zahlen verarbeiten. Zahlreiche verschiedene Gleitkommaformate können unterstützt werden, einschließlich 32 Bits (Einfach- Präzision) und 64 Bit (Doppel-Präzision). Darüber hinaus kann der Gleitkommaprozessor die Umwandlung von ganzen Zahlen in Gleitkommazahlen und umgekehrt vornehmen.
- Bei einer Divisionsoperation wird ein Dividend durch einen Divisor zum Erzeugen des Quotienten geteilt. Bei der vorliegenden Erfindung wird ein Dividend dem Dividierer 100 über einen A-Bus und ein Divisor dem Dividierer 100 über einen B-Bus zugeführt, und der Quotient vom Dividierer 100 über einen RESULT-Bus ausgegeben. Wie im folgenden noch genauer beschrieben, ist der Dividierer 100 durch eine Dividierersteuerung 110 gesteuert, die Befehle von einem I-Bus empfängt und, basierend auf den empfangenen Befehlen, während des Dividierens Steuersignale an die verschiedenen Elemente des Dividierers 100 erzeugt, d. h. eine erste Quotientenvorhersageeinrichtung 102, ein Teilrestregister 106, ein Divisorregister 108, ein erstes Quotientenregister 114a, ein zweites Quotientenregister 114b, ein 3x-Divisorregister 116, eine Nullerkennungseinrichtung 122 und eine Restvorzeichenerkennungseinrichtung 123.
- Der A-Bus ist mit einer ersten Quotientenvorhersageeinrichtung 102 und einem Teilrestregister 106 verbunden. In gleicher Weise ist der B-Bus mit der ersten Quotientenvorhersageeinrichtung 102, einem Schieber 103, einem ersten Eingang des Addierers 104 und einem Divisorregister 108 verbunden. Um einen Dividiervorgang zu beginnen, empfängt die Dividierersteuerung 110 einen Befehl von dem I-Bus, um die Divisionsoperationen zu beginnen. Die erste Stufe einer Divisionsoperation, im allgemeinen als "Pre-Overhead"-Stufe bezeichnet, beginnt, wenn ein Dividend, beispielsweise der Operand A der ersten Quotientenvorhersageeinrichtung 102 und dem Teilrestregister 106 über den A-Bus und ein Divisor, beispielsweise der Operand B, der ersten Quotientenvorhersageeinrichtung 102 und dem Divisorregister 108 über den B-Bus während einer ersten Phase eines von dem System erzeugten und verteilten zweiphasigen oszillierenden Taktimpulses zugeführt wird.
- Während der ersten Phase des Taktimpulses wird der Dividend A im Teilrestregister 106 und der Divisor B im Divisorregister 108 zwischengespeichert. Darüber hinaus werden der Dividend A und der Divisor B in die erste Quotientenvorhersageeinrichtung 102 eingegeben, in der ein durch Dividieren des Dividenden A durch den Divisor B erzeugtes erstes Bit q&sub1; des Quotienten Q bestimmt wird. Die erste Quotientenvorhersageeinrichtung 102 besteht aus kombinatorischen Logikschaltungen, die derart konfiguriert sind, daß je nach in die erste Quotientenvorhersageeinrichtung 102 eingegebenem Dividenden A und Divisor B, ein erstes Quotientenbit q&sub1; ermittelt wird.
- Fig. 2 stellt eine graphische Wiedergabe der kombinatorischen Logikschaltung dar, die die erste Quotientenvorhersageeinrichtung 102 aufweist. Genauer gesagt zeigt die Fig. 2 ein logisches PD-Diagramm, das zum Ableiten der kombinatorischen Logik für die erste Quotientenvorhersageeinrichtung 102 verwendet werden kann. In Fig. 2 sind mögliche Werte des in die erste Quotientenvorhersageeinrichtung 102 eingegebenen Divisors A entlang der Horizontalen und mögliche Werte des in die erste Quotientenvorhersageeinrichtung 102 eingegebenen Divisors B entlang der Vertikalen aufgetragen. Dementsprechend stellt jeder Punkt auf diesem Diagramm ein Paar aus einem Divisor und einem Dividenden. Da an dem Dividierer 100 ankommende Zahlen normalisiert werden müssen, und da der Dividend zu Anfang durch 4 geteilt wird, und da schließlich die erste Quotientenvorhersageeinrichtung 102 nur die obersten beiden Bits von jedem eingehenden Operanden empfängt, sind die einzigen in diesem Diagramm verwendeten Punkte: (1,00, 0,010), (1,00, 0,01), (1,01, 0,010), (1,01, 0,011), (1,10, 0,010), (1,10; 0,011), (1,11, 0,010) und (1,11, 0,011). Da jedoch der reale Wert des Divisors im Intervall [1,00, 10) und der reale Dividend im Intervall [0,01, 0.1) liegen kann, tritt in der ersten Quotien tenvorhersageeinrichtung 102 ein Quantisierungsfehler auf. Daher gibt die untere gestrichelte Linie in Fig. 2 die untere Grenze an, bei der ein erster "geratener" Quotient von zwei ausgewählt werden kann, ohne daß er dahingehend falsch ist, daß er um mehr als eins zu groß ist. In ähnlicher Weise zeigt die obere gestrichelte Linie die untere Grenze, bei der der geratene Quotient von drei gewählt werden kann, ohne um mehr als eins zu groß zu sein, und die obere Grenze, an der der Quotient von eins geraten werden kann. Schließlich zeigen die oberen und die unteren geraden Linien eine quantisierte Entscheidungsschwelle, die leicht in einer kombinatorischen Logik eingesetzt werden kann. Es ist für den Fachmann auf diesem Gebiet leicht erkennbar, daß, wenn die untere gerade Linie eine Schwelle angibt, bei oder oberhalb welcher ein Quotient eins geraten wird, und obere Linie eine Schwelle wiedergibt; bei oder oberhalb welcher ein Quotient von zwei geraten wird, die quantisierten Geratenen Werte gültig sind, ungeachtet der tatsächlichen Werte des Divisors und des Dividenden. In Fig. 2 bewirken sämtliche Punkte einen geratenen Quotienten von 1, außer (1,00, 0,011) und (1,01, 0,011), die einen geratenen Quotienten von 2 bewirken.
- Wie in Fig. 1 dargestellt, ist die erste Quotientenvorhersageeinrichtung 102 mit einer Quotientenvorhersageeinrichtung 112 und dem Quotientenregister 114 derart verbunden, daß nach der Schätzung von q&sub1; durch die erste Quotientenvorhersageeinrichtung, dieser Schätzwert von q&sub1; an die Quotientenvorhersageeinrichtung 112 gesandt wird. Die Quotientenvorhersageeinrichtung 112 sendet ihrerseits einem Wert q&sub1;, der entweder 0, 1, 2, oder 3 sein kann, und das entsprechende Vorzeichenbit an das Quotientenregister 114. Darüber hinaus sendet die erste Quotientenvorhersageeinrichtung 102 ein Signal an das Quotientenregister 114, um den Beginn des Dividierens anzuzeigen.
- Unter Bezugnahme auf die Fig. 1b sei im folgenden das Quotientenregister der Fig. 1a näher beschrieben. Das Quotientenregister 114 weist auf: ein erstes Quotientenregister (oder "Q") 114a zum Speichern des gegenwärtigen Schätzwertes des endgültigen Quotienten Q, ein zweites (oder "Q-1") Quotientenregister 114b zum Speichern des gegenwärtigen Schätzwerts des endgültigen Quotienten Q minus 1 von der gegenwärtigen Bitposition j, ein Schieberegister 114c zum Erzeugen gegenwärtiger Bitzeiger 1000, ein Steuersignal "Divide start" von der ersten Quotientenvorhersageeinrichtung 112; ein an die Dividierersteuerung 110 ausgegebenes Steuersignal "Divide end" 1016, einen q-Dekodierblock 114d zum Erzeugender gegenwärtigen Werte von q und q-1, die in die Quotientenregister 114a, 114b einzuschreiben sind, und eine (in Fig. 1c dargestellte) Einrichtung zum Schreiben des Inhalts des Q-Registers 114a in das Register Q-1 114b und zum Schreiben des Inhalts des Registers Q-1 114b in das Q-Register 114.
- Im folgenden werden die Quotientenregister 114a, 114b im einzelnen anhand der Fig. 1c beschrieben. Jedes Quotientenregister 114a, 114b besteht aus einer Reihe von Quotientenbitregistern 114a-0, ...; 114a-(i-1), 114a-i, 114b-0, ..., 114b-(i-1); 114b-i, die jeweils parallel verbunden sind. Das Schieberegister 114c empfängt das Divisionsstartsignal von der ersten Quotientenvorhersageeinrichtung 112 und beginnt Paare von Zeigern 1000 zu erzeugen, die mit Paaren der Quotientenbitsregister 114a-0, ..., 114a-(i-1), 114a-i, 1 14b-0, ..., 114b-(i-1), 114b-i verbunden sind, derart, daß die mit den beiden höchstwertigen Quotientenregisterbits verbundenen Zeiger als erste aktiviert werden. Nachfolgende Iterationen bewirken die Aktivierung jeweils geringerwertiger Zeigerpaare. Basierend auf dem Wert und dem Vorzeichen, die die zweite Quotientenvorhersageeinrichtung 112 sendet, erzeugt der q-Dekodiererblock 114d die in die Positionen der gegenwärtig gezeigten Quotientenbitregister einzuschreibenden Bitwerte.
- Während jeder beliebigen Iteration schreibt der q-Dekodierer 114d, wenn das q- Vorzeichen positiv ist, den q-Wert an die Position in den Quotientenbitregistern 114a, die gegenwärtig gezeigt werden, und den Wert q-1 an die Position in den Quotientenbitregistern 114b, die gegenwärtig gezeigt werden. Sämtliche verbleibenden Bitpositionen innerhalb des Registers Q-1 114b werden entsprechend den entsprechenden Bitpositionen im Register Q 114a beschrieben. Bei negativem Vorzeichenwert von q schreibt der q-Dekodierer 114a den entsprechenden q-Wert an die gegenwärtig angezeigte Position innerhalb des Quotientenbitregisters 114a und den Wert q-1 an die gegenwärtig angezeigten Positionen des Quotientenbitregisters 114b. Sämtliche verbleibenden Bitpositionen innerhalb des Q-Registers 114a werden entsprechend den Bitpositionen im Register Q-1 114b beschrieben. Wenn schließlich der Wert q Null ist, empfängt die Position im Quotientenbitregister 114a eine 0 und die Position innerhalb des Quotientenbitregisters 114b eine 3. Bestimmte Zeiger 1000 werden als Divisionsende-Indikatoren 1016 zur Verwendung durch die Dividierersteuerung 110 der Fig. 1 eingesetzt.
- Während der ersten Phase des ersten Taktimpulses empfängt ferner der Addierer 104 den Divisor an einem ersten Eingang und das Doppelte des Divisors an einem zweiten Eingang. Die Erzeugung des Doppelten des Divisors ist ein relativ einfacher Vorgang und kann von einem Schieberegister 103 durchgeführt werden, das den Divisor empfängt, das Doppelte des Divisors durch Schieben des Divisors über eine einzelne Binärstelle nach links erzeugt und das Doppelte des Divisors dem Addierer 104 zuführt. Das Divisorregister ist mit einem Divisormultiplexer 118 verbunden und der Divisor B wird dem Divisormultiplexer 118 erneut während der ersten Phase des ersten Taktimpulses zugeführt.
- Während einer zweiten Phase des ersten Taktimpulses beginnt die "Overhead"- Stufe der Divisionsoperation mit der Berechnung einer ersten Iteration der keinen positiven Rest bildenden Divisionsoperation. Zu diesem Zeitpunkt liefert das Teilrestregister 106 den Dividenden A und das Divisorregister 108 liefert den Divisor B an die Quotientenvorhersageeinrichtung 112. Dieser ähnlich, jedoch ein wenig komplizierter als die erste Quotientenvorhersageeinrichtung, ist die Quotientenvorhersageeinrichtung 112 eine kombinatorische Logikschaltung, die derart konfiguriert ist, daß je nach dem Dividenden A und dem Divisor B, die in die Quotientenvorhersageeinrichtung 112 eingegeben werden, ein Quotientenbit qj und ein Vorzeichenbit sj von der Quotientenvorhersageeinrichtung 112 gewählt werden.
- Fig. 3 zeigt eine graphische Darstellung der kombinatorischen Logikschaltung, die die Quotientenvorhersageeinrichtung 112 aufweist. Wie in Fig. 2 ist in Fig. 3 ein logisches PD-Diagramm dargestellt, das zum Ableiten kombinatorischer Logik, im vorliegenden Fall der kombinatorischen Logik, welche die Quotientenvorhersageeinrichtung 112 aufweist, verwendet werden kann. Ferner zeigt Fig. 2 einen kleinen Teil der Fig. 3. Daher sind die in Zusammenhang mit der graphischen Darstellung von Fig. 2 im Detail ausgeführten Prinzipien gleichermaßen anwendbar. Wie aus Fig. 3 ersichtlich bestimmt die Quotientenvorhersageeinrichtung 112 Q al eine der folgenden Zahlen:
- (-3), (-2), (-1), (-0), (+0), (+1), (+2), (+3);
- je nach dem Teilrest und dem Divisor, die in die Quotientenvorhersageeinrichtung 112 eingegeben werden. Wiederum wird das vorzeichenbehaftete Quotientenbit Qj nach dem Wählen an die Quotientenregister 114a, 114b zum Speichern in dem Register für das nächstwertige Quotientenbit übertragen.
- Des weiteren werden nach dem Wählen die Vorzeichen- und Quotientenbits von der Quotientenvorhersageeinrichtung 112 an einen Übertragspeicheraddierer 120 über Leitungen sj bzw. qj gesendet. Das Teilrestregister 106 gibt den Dividenden oder "ersten Teilrest" oder einen nächsten Teilrest an ein Schieberegister 107 aus, das den Teilrest um zwei Binärstellen nach links verschiebt, wodurch das Vierfache des Teilrests erzeugt wird, das wiederum vom Schieberegister 107 an den Übertragspeicheraddierer 120 geliefert wird. Die endgültigen Eingaben in den Übertragspeicheraddierer 120 sind die Eingänge +0, -0, +D, -D, +2D, -2D, +3D, -3D des Divisormultiplexers. Da jedoch das während der erste Iteration erzeugte Quotientenvorhersagebit qj nie +3 oder -3 sein kann, gibt der Divisormultiplexer +0, -0, +D. -D, +2D und -2D an den Übertragspeicheraddierer 120 aus. Da das Divisorregister 108 zuvor den Divisor an den Divisormultiplexer 118 ausgegeben hat, kann der Divisormultiplexer die genannten Ausgangssignale an den Übertragspeicheraddierer ohne Schwierigkeiten erzeugen.
- Als nächstes wählt der Übertragspeicheraddierer 120, der in der genannten mitanhängigen Anmeldung EP-A-0 450 751 im einzelnen beschrieben ist, denjenigen der Eingänge des Divisionsmultiplexers 118, d. h. +0, -0, +D, -D, +2D, -2D, der gleich dem Produkt des vorzeichenbehafteten Quotientenbits und dem Divisor zur Verwendung bei der Durchführung des folgenden rekursiven Algorithmus ist. Unter Verwendung des gewählten Ausgangs des Divisormulti plexers 118 und des Ausgangs des Schieberegisters 107 führt der Übertragspeicheraddierer anschließend eine erste iterative Berechnung durch, um einen nächsten Teilrest durch Anwendung des in der folgenden Gleichung (4) genannten rekursiven Algorithmus zu erzeugen:
- Pj+1, = 4Pj - qjD (4)
- wobei:
- Pj der im Teilrestregister 106 gespeicherte Teilrest ist;
- qj das vorzeichenbehaftete Quotientenbit, das von der Quotientenvorhersageeinrichtung 112 erzeugt wird, bezeichnet;
- D den Divisor angibt; und
- Pj+1 der nächste Teilrest ist.
- Auch während der zweiten Phase des ersten Taktimpulses, und überlappend mit der Berechnung der ersten Iteration von Pj+1, addiert der Addierer 104 den Divisor (D) und das Doppelte des Divisors (2D), um das Dreifache des Divisors (3D) zu erzeugen. Der Wert 3D wird sodann zum Speichern an das 3X Divisorregister 116 ausgegeben. Das 3X Divisorregister 116 gibt sodann den Wert 3D an den Divisormultiplexer 118 zum Erzeugen des +3D und des -3D Vielfachen des Divisors aus, die an den Übertragspeicheraddierer 120 zur möglichen Verwendung in nachfolgenden Iterationen der Teilrestberechnung ausgegeben werden.
- Nach der Berechnung des nächsten Teilrests in redundanter Form, die aus einer Vielzahl von Summen und Überträgen besteht, durch eines Vielfachen von D von 4Pj, gibt der Übertragspeicheraddierer 120 die fünf höchstwertigen Summenbits und die fünf höchstwertigen Übertragbits an die Quotientenvorhersageeinrichtung 112 zur Verwendung in einer nächsten iterativen Berechnung einer nächsten iterativen Vorhersage eines vorzeichenbehafteten Quotientenbits durch die Quotientenvorhersageeinrichtung 112 aus.
- Das sechst-höchstwertige Summen- bzw. Übertragsbit dienen der. Korrektur zweideutiger Quotientenbits der Quotientenvorhersageeinrichtung 112. Zur weiteren Erläuterung dieses Aspekts der Erfindung wird erneut auf Fig. 3 verwiesen. In zwei Bereichen des PD-Diagramms der Fig. 3 sind zwei kleine schraffierte Bereiche dargestellt. Diese beiden schraffierten Bereiche repräsentieren den Fehler, der durch Verwendung des Übertragspeicheraddierers 120 entsteht, wodurch es unmöglich wird, einen Quotienten innerhalb des theoretischen Fehlerlimits bei Verwendung einer 5-Bit-Teilrestschätzung vorherzusagen. Es ist jedoch sehr kostspielig, zum Schätzwert des Teilrests ein sechstes Bit hinzuzufügen. Unter Verwendung des NOR des sechsten Übertrags- und des sechsten Summenbits zum Schätzen des Fehlers im 5-Bit-Schätzwert, kann jedoch erfolgreich ein Quotient innerhalb theoretischer Grenzen geraten werden. Wenn das NOR des sechsten Summen- und des sechsten Übertragsbits eins ist, wird jeder Übertrag im sechsten Bit gelöscht, so daß der Unterschied zwischen dem Teilrestschätzwert, der aus dem Addieren der oberen fünf Bits der Summen zu den oberen 5 Bits der Überträge abgeleitet ist, und dem tatsächlichen Teilrest nicht größer als 2&supmin;&sup6; sein kann; somit kann der höhere der möglichen Quotientenvorhersagen sicher verwendet werden. Wenn im Gegensatz dazu das NOR des sechsten Summen- und des sechsten Übertragsbits Null ist, muß die Differenz zwischen dem Teilrestschätzwert und dem tatsächlichen Teilrest größer als 2&supmin;&sup7; sein; somit kann der niedrigere der möglichen vorhergesagten Quotienten verwendet werden, ohne Sorge, genau auf der Untergrenze des Bereichs anzukommen, wodurch man möglicherweise in Dreierwiederholungen gelangt.
- Der Dividierer 100 fährt mit der iterativen Erzeugung eines nächsten vorzeichenbehafteten Quotientenbits zur Speicherung im Quotientenregister 114 fort, wie zuvor beschrieben, gefolgt von einer iterativen Bestimmung eines nächsten Teilrests im Übertragspeicheraddierer 120 bis der gesamte Quotient Q erzeugt ist. Bei einer Einfach-Präzisionszahl erfordert die Berechnung des Quotienten Q 14 zusätzliche Iterationen des rekursiven Algorithmus, wobei jede Iteration des Algorithmus in einer Phase eine Taktzyklus abgeschlossen wird. Bei einer Doppel-Präzisionszahl erfolgt die Berechnung des Quotienten in 28 zusätzlichen Iterationen des Algorithmus. Die Divisionsoperation ist abgeschlossen, wenn das Quotientenregister 114 voll ist.
- Beim Eintritt in die "Post-Overhead"-Stufe der Divisionsoperation wird der in dem Teilrestregister 106 gespeicherte Teilrest nach Abschluß der vierzehnten Iteration des rekursiven Algorithmus, wenn eine Einfach-Präzisionsdivision durchgeführt wird, oder nach Abschluß der achtundzwanzigsten Iteration, wenn eine Doppel-Präzisionsdurchgeführt wird, an eine Nullerkennungseinrichtung 122, beispielsweise einen ersten Addierer von konventioneller Ausbildung, und eine Restvorzeichenerkennungseinrichtung 123, beispielsweise einen zweiten herkömmlich ausgebildeten Addierer, zum parallelen Bestimmen dieser Operationen ausgegeben. Die Restvorzeichenerkennungsoperation dient der Feststellung, ob der im Quotientenregister 114a gespeicherte Quotient um eins abweicht. Die Nullerkennungsoperation dient der Feststellung, ob die abge schlossene Division genau ist. Die Nullerkennungseinrichtung 122 und die Restvorzeichenerkennungseinrichtung 123 empfangen die verbleibenden Summen und Überträge, die von dem Teilrestregister 106 ausgegeben werden. Der Ausgangshaltespeicher 126 empfängt den Quotienten vom Quotientenregister 114, fügt das Null- oder "klebrige" Bit aus der Nullerkennungseinrichtung 122 an den vom Quotientenregister 114a empfangenen Quotienten, um den Quotienten mit einem Extrabit zum korrekten Runden in der Rundungseinheit des Gleitkommaprozessors zu versehen. Nahezu gleichzeitig mit der Nullbestimmung prüft die Restvorzeichenerkennungseinrichtung 123 das Vorzeichen der Addition der Summen und Überträge, die vom Teilrestregister 106 ausgegeben werden. Wenn das Vorzeichen der Addition der Summen und Überträge negativ ist, gibt die Restvorzeichenerkennungseinrichtung 123 ein Signal an den Ausgangshaltespeicher 126 aus, das angibt, daß der Quotient zu groß ist und das Q- 1-Register 114b verwendet werden soll. Der Ausgangshaltespeicher 126 verwendet sodann den Quotienten minus eins aus dem Quotientenregister 114b, fügt das Null- oder "klebrige" Bit aus der Nullerkennungseinrichtung 122 an den vom Quotientenregister 114a empfangenen Quotienten minus eins, um den Quotienten mit einem Extrabit zum korrekten Runden in der Rundungseinheit des Gleitkommaprozessors zu versehen.
- Schließlich wird beim Berechnen des Mantissenbereichs des Quotienten entsprechend dem vorgenannten iterativen Verfahren der Exponentenbereich des Quotienten durch eine Exponentenberechnungseinrichtung 124 berechnet. Genauer gesagt ist die Exponentenberechnungseinheit zum Empfangen des Dividenden A über den A-Bus und des Divisors B über den B-Bus verbunden. Beim Empfang eines Steuersignals der Dividierersteuerung 110 subtrahiert die Exponentenberechnungseinrichtung 124 den Divisorexponenten von dem Dividendenexponenten und gibt das Ergebnis an den Ausgangshaltespeicher 126 aus. Sobald der Ausgangshaltespeicher 126 den Mantissenquotienten vom Quotientenregister 114 und der Exponentenberechnungseinrichtung 124 empfangen hat, wird das Ergebnis der Divisionsoperation an die Gleitkommaprozessoreinheit über den RESULT-Bus ausgegeben.
- In Zusammenhang mit Fig. 4 wird im folgenden ein raumsparender Hochgeschwindigkeitsdividierer 300 zum Durchführen keinen positiven Rest bildender iterativer Divisionsoperationen mit der Radix 4 beschrieben. Der hier beschriebene raumsparende Hochgeschwindigkeitsdividierer ist in Konstruktion und Betrieb mit dem in Fig. 1 dargestellten Hochgeschwindigkeitsdividierer identisch, mit Ausnahme der nachfolgend genannten Merkmale. Der raumsparende Dividierer 300 weist wie der Dividierer 100 auf eine erste Quotientenvorhersageeinrichtung 302, einen Addierer 304, ein Teilrestregister 306, ein Schieberegister 307, ein Divisorregister 308, ein Schieberegister 309, eine Dividierersteuerung 310, eine Quotientenvorhersageeinrichtung 312, ein Quotientenregister 114, ein 3X-Divisorregister 316, einen Divisormultiplexer 318, einen Übertragspeicheraddierer 320, eine Exponentenberechnungseinrichtung 324 und ein Ausgangshaltespeicher 326, die in Verbindung und Betrieb mit denjenigen Komponenten des Dividierers 100 identisch sind. Im wesentlichen unterscheidet sich der raumsparende Hochgeschwindigkeitsdividierer 300 vom Hochgeschwindigkeitsdividierer 100 dadurch, daß das Schieberegister 103, die Nullerkennungseinrichtung 122 und die Resterkennungseinrichtung 123 entfallen. Bei diesem Ausführungsbeispiel jedoch, wird die zuvor von der Nullerkennungseinrichtung 122 durchgeführte Vorzeichen- und Nullerkennungsoperation vom Addierer 304 durchgeführt, der bei dem vorhergehenden Ausführungsbeispiel nur zum Kombinieren von D und 2D diente. Um den Addierer 304 in die Lage zu versetzen, mehrere Funktionen durchzuführen, ist ein Multiplexer 328 zum Steuern der Eingänge in den Addierer 304 vorgesehen.
- Die Eingänge des Multiplexers 328 sind zum Empfangen des Operanden A über den A-Bus, des Operanden B über den B-Bus, einer Reihe von Summen über einen dritten Ausgang des Teilrestregisters 306 und einer Reihe von Überträgen über einen vierten Ausgang des Teilrestregisters 306 verbunden. Ein fünfter Eingang des Multiplexers 328 wird im folgenden näher beschrieben. Während der Bestimmung des Dreifachen des Divisors nimmt der Multiplexer 328 nach Empfang eines Steuersignals von der Dividierersteuerung 310 den empfangenen Divisor B, verschiebt den empfangenen Divisor B um eine einzelne Dezimalstelle, um das Doppelte des Divisors zu erzeugen und gibt den Divisor und das Doppelte des Divisors an den ersten und den zweiten Eingang des Addierers 304 aus. Nach Empfang des Divisors und des Doppelten des Divisors durch den Addierer 304 arbeitet der raumsparende Hochgeschwindigkeitsdividierer 300 wie zuvor in Zusammenhang mit Fig. 1 beschrieben, bis die letzte iterative Bestimmung des Teilrests in dem Teilrestregister 306 gespeichert ist und der raumsparende Hochgeschwindigkeitsdividierer 300 in die Post-Overhead-Stufe eintritt.
- In der Post-Overhead-Stufe werden die verbleibenden Summen und Überträge an den Multiplexer 328 über den dritten und den vierten Ausgang des Teilrestregisters 306 geliefert. Zu diesem Zeitpunkt erzeugt die Dividierersteuerung 310 ein Steuersignal an den Multiplexer 328, so daß die Summen und die Überträge an den Addierer 304 über den ersten und den zweiten Addierereingang geliefert werden. Der Addierer 304 addiert die Summen und Überträge, die von dem Multiplexer 306 ausgegeben wurden, und gibt das Ergebnis der Addition an den Ausgangshaltespeicher 326. Anschließend gibt der Addierer 304 ein Signal, das ein positives oder negatives Vorzeichen angibt, über die Vorzeichenleitung an den Ausgangshaltespeicher 326 aus. Wenn die Addition der Summen und Überträge ein positives Vorzeichen des Rests zeigt, verwendet der Ausgangshaltespeicher 326 den Quotienten aus dem Quotientenregister 314a. Wenn jedoch die Addition der Summen und Überträge ein negatives Restvorzeichen angibt, verwendet der Ausgangshaltespeicher 326 den Inhalt des Registers Q-1. Der Ausgang des Addierers 304 wird ebenfalls dem fünften Eingang des Multiplexers 328 zugeleitet. Der Multiplexer 328 leitet sodann die Umkehrung des Addiererausgangssignals zurück in den Addierer 304 und addiert über die Übertrageingangsleitung 330 eins, um das Vorzeichen der ausgegebenen Summe zu bestimmen. Wie zuvor erläutert dient die Nullerkennung dem Setzen eines zusätzlichen Ergebnisbits im Ausgangshaltespeicher 326.
- Unter Bezugnahme auf Fig. 5 wird ein raumsparender Hochgeschwindigkeitsdividierer zum Durchführen einer keinen positiven Rest bildenden iterativen Division mit der Radix 4 und einer Quadratwurzelberechnung mit der Radix 2 beschrieben. Der hier beschriebene Dividierer ist in Aufbau und Betriebsweise dem in Fig. 4 dargestellten Hochgeschwindigkeitsdividierer ähnlich, mit Ausnahme der folgenden Unterschiede. Der Dividierer 500 zum Durchführen von Divisionen und Quadratwurzelberechnungen weist auf eine erste Quotientenvorhersageeinrichtung 502, einen Addierer 504, ein erstes Teilrestregister 506, ein Schieberegister 507, ein Divisorregister 508, ein Schieberegister 509, eine Dividierersteuerung 510, eine Quotientenvorhersageeinrichtung 512, ein Quotientenregister 514, das aus einem Quotientenregister Q 514a und einem Quotientenregister Q-1 514b besteht, ein 3X Divisorregister 516, einen Divisormultiplexer 518, einen Übertragspeicheraddierer 520, eine Exponentenberechnungs einrichtung 524, einen Ausgangshaltespeicher 526 und einen Multiplexer 528, die nach ihrer Verbindung und in ihrer Betriebsweise mit den entsprechenden Komponenten des raumsparenden Hochgeschwindigkeitsdividierers 300 nach Fig. 4 identisch sind. Im folgenden wird die Modifizierung des Hochgeschwindigkeitsdividierers 500 für die Durchführung von Quadratwurzeloperationen mit der Radix 2, bei der Wurzelbits aus der Gruppe -1, 0 und +1 gewählt werden können, und für die Durchführung von Divisionsoperationen mit der Radix 4.
- Anders als eine Divisionsoperation beinhaltet eine Quadratwurzeloperation die Eingabe eines einzelnen Operanden oder "Radikanden" und die Ausgabe eines Einzelergebnis, das die Quadratwurzel des eingegebenen Radikanden ist. Der eingegebene Radikand für den die Quadratwurzeloperation durchgeführt werden soll, wird in den Multiplexer 528 entweder über den A- oder den B-Bus eingegeben. Sobald die Dividierersteuerung 510 angibt; daß eine Quadratwurzeloperation mit dem Eingangssignal des A- oder B-Busses durchgeführt werden soll, wird der Radikand P um eine Dezimalstelle verschoben, um das Doppelte des Radikanden P zu erzeugen, und das Doppelte des Radikanden P wird über den Addierer 504 an die Quadratwurzelvorhersageeinrichtung 530 ausgegeben, die wie die erste Quotientenvorhersageeinrichtung 502 und die Quotientenvorhersageeinrichtung 512 eine Konfiguration herkömmlicher kombinatorischer Logikschaltungen ist, derart, daß, je nach dem Eingang 2P an die Quadratwurzelvorhersageeinrichtung 530, eine Vorhersage eines Quadratwurzelbits Q bestimmt werden soll.
- Fig. 6 ist eine graphische Darstellung der Quadratwurzelvorhersageeinrichtung 530. Das Vorhersageeinrichtungsdiagramm sieht für einen bestimmten Eingangswert 2Pj eine entsprechende Vorhersage des Werts des Quadratwurzelquo tientenbits qj vor. Während jeder Iteration bestimmt die Quadratwurzelvorhersageeinrichtung 530 ein Bit der Quadratwurzel und gibt das vorhergesagte Bit an das Q- und das Q-1-Register 514a, 514b entsprechend der zuvor beschriebenen Verfahrensweise aus. Die Quadratwurzelvorhersageeinrichtung 530 gibt ferner das vorhergesagte Quadratwurzelbit and den Multiplexer 528 zur Verwendung in der nächsten Iteration weiter. Iterationen werden wiederholt, bis das Quotientenregister mit einer Reihe von vorhergesagten Bits gefüllt ist, und der Dividierer 500 arbeitet wie in Zusammenhang mit Fig. 4 zuvor beschrieben. Wie in Fig. 7 gezeigt, sind bestimmte Veränderungen des in Fig. 1b dargestellen Quotientenregisters 114 erforderlich, um eine Radix 2 Quadratwurzelberechnung zu ermöglichen, die das Schreiben eines Bits in das Q-Register 114a und das Q-1-Register 114b pro Iteration erfordert. In einer Iteration-pro-Phase- Logik liefern Signale von einem bestimmten Haltespeicher Daten an einen Logikblock, der in derselben Phase seinerseits ein Ergebnis an denselben Haltespeicher liefert. Dies würde einen Wettlauf durch herkömmliche Haltespeicher bewirken, bei dem das Ergebnis den Haltespeicher durchläuft und die Logikeingänge verändern würde, so daß ein nicht vorhersagbares Ergebnis erzielt würde. Um das Durchlaufen zu verhindern und eine synchrone Operation zu ermöglichen, wurden sogenannte "Partner"-Haltespeicher entwickelt, wie sie in Fig. 7 dargestellt sind. Während einer Phase empfängt ein Partner Daten, während der andere Partner Daten überträgt. In jeder nachfolgenden Phase tauschen die Partner die Plätze. Um dynamische Logik verwenden zu können, mußten Schaltungen dupliziert werden, wobei ein Partner in Phase 1 vorlädt und in Phase 2 auswertet, während der andere Partner in Phase 2 vorlädt und in Phase 1 auswertet.
- Wie aus der vorhergehenden Beschreibung der vorliegenden Erfindung hervorgeht, ist eine arithmetische Operationseinheit geschaffen, die iterative Divisions- und Quadratwurzeloperationen mit hoher Geschwindigkeit durchführt, während sie die erforderlichen Schaltungen für die Divisionsoperationen minimiert. Die Pre-Overhead-Zeitspanne wird durch Überlappen der Berechnung einer ersten Iteration und der Bestimmung des Dreifachen des Divisors reduziert. Ferner eliminiert die Verwendung eines Addierers zum Erzeugen der Summe des Divisors und des verschobenen Divisors (des Doppelten des Divisors) die Notwendigkeit eines großen Multiplizierers. Durch Verwendung einfacher Quotientenvorhersagelogik und eines Multiplexers, der sämtliche möglichen Produkte des Quotienten Qj und des Teilrests Pj an die Einrichtung zum iterativen Erzeugen des nächsten Teilrests liefert, wird ein Übertragspeicheraddierer zum Erzeugen des nächsten Teilrests Pj+1 verwendet, wodurch die Notwendigkeit entfällt, daß die Multiplikationslogik die Berechnung pj+1 = 4Pj + QD durchführen muß, und der Übertragspeicheraddierer schnell P berechnen kann, so daß der Dividierer eine Iteration der Berechnung von Qj und Pj pro Taktimpuls durchführen kann. Die Post-Overhead-Zeitspanne wird durch parallele Nullerkennung und Restvorzeichenerkennung verkürzt. Schließlich entfällt die Notwendigkeit zusätzlicher Addiererschaltungen zum Bestimmen des endgültigen Quotienten durch das Vorsehen von Q- und Q-1-Registern zum parallelen Speichern des Quotienten und des Quotienten minus 1, derart, daß, wenn festgestellt wird, daß der Quotient um eins versetzt ist, der korrekte Quotient im parallelen Quotientenregister gespeichert ist und nicht berechnet werden muß. Bei dem raumsparenden Hochgeschwindigkeitsdividierer wird das Ausgangssignal des Teilrestregisters am Ende der iterativen Bestimmung des Quotienten dem 3D Addierer zugeführt, um das Vorzeichen des Teilrests festzustellen und zu ermitteln, ob der Teilrest gleich Null ist. Auf diese Weise werden die Nullerkennungseinrichtung und die Restvorzeichenerkennungseinrichtung eliminiert und Platz wird gespart.
- Dem Fachmann werden, außer den speziell genannten Techniken, zahlreiche Modifizierungen und Variationen der beschriebenen Technik ersichtlich sein, ohne dabei wesentlich vom Konzept der vorliegenden Erfindung abzuweichen. Es sei daher deutlich gesagt, daß die hier beschriebene Form der Erfindung nur Beispielcharakter hat und keine Einschränkung des Umfangs der Erfindung darstellt.
Claims (32)
1. Vorrichtung (100; 300; 500) zum Durchführen der Division eines ersten
Operanden durch einen zweiten Operanden zur Erzeugung eines aus einer Reihe
von Quotientenwerten bestehenden Ergebnisses, mit:
- einer Einrichtung (118, 120; 318, 320; 518, 520) zum iterativen Erzeugen
einer Reihe von Teilresten, wobei die Einrichtung zum iterativen Erzeugen einer
Reihe von Teilresten den ersten Operanden als einen ersten Teilrest wählt;
- einer Einrichtung (102, 112; 302, 312; 502, 512) zum iterativen Vorhersagen
von Quotientenwerten, wobei die Quotientenvorhersageeinrichtung einen ersten
Quotientenwert auf der Basis des ersten Operanden und des zweiten Operanden
und einen nächsten Quotientenwert auf der Basis der Reihe von Teilresten und
des zweiten Operanden vorhersagt; wobei die Quotientenvorhersageeinrichtung
ferner aufweist:
eine erste Quotientenvorhersageschaltung (102; 302; 502), die zum
Empfangen des ersten und des zweiten Operanden verbunden ist, wobei
die erste Quotientenvorhersageschaltung den ersten Quotientenwert
vorhersagt, wobei der erste Operand vor der Vorhersage des ersten
Quotientenwerts wenigstens durch 4 geteilt wird; und
eine zweite Quotientenvorhersageschaltung (112; 312; 512), die zum
Empfange des vorhergesagten ersten Quotientenwerts, des zweiten
Operanden und der Reihe der Teilreste verbunden ist, wobei die zweite
Quotientenvorhersageschaltung iterativ die Restwerte der Reihe von
Quotientenwerten vorhersagt;
- einem ersten Quotientenregister (114a), das mit der
Quotientenvorhersageeinrichtung verbunden ist, um die von der Quotientenvorhersageeinrichtung
bestimmte Reihe von Quotientenwerten zu empfangen und zu speichern;
- einem zweiten Quotientenregister (114b), das mit der
Quotientenvorhersageeinrichtung verbunden ist um die Reihe von Quotientenwerten zu empfangen
und die Reihe von Quotientenwerten minus eins zu speichern;
- einer Einrichtung (103, 104, 108, 116, 118; 328; 304, 308, 316, 318; 528, 504,
508, 516, 518) zum Erzeugen von Vielfachen des zweiten Operanden;
wobei die Einrichtung zum iterativen Erzeugen einer Reihe von Teilresten einen
nächsten Teilrest auf der Basis eines Teilrests aus der Reihe erzeugter Teilreste
und einem der Vielfachen des zweiten Operanden bestimmt;
wobei die Einrichtung zum iterativen Erzeugen einer Reihe von Teilresten
ferner eine Einrichtung (120; 320; 520) aufweist, die auf der Basis des nächsten
Quotientenwerts eines der erzeugten Vielfachen des zweiten Operanden zur
Erzeugung des nächsten Teilrests wählt.
2. Vorrichtung nach Anspruch 1, bei der die Einrichtung zum iterativen
Erzeugen einer Reihe von Teilresten des ersten Operanden den nächsten Teilrest nach
der folgenden Gleichung bestimmt:
PJ+1 = 4PJ + qjD
wobei
PJ = erster Teilrest;
PJ+1 = nächster Teilrest;
qj = vorhergesagter erster Quotient; und
D = zweiter Operand.
3. Vorrichtung nach Anspruch 2, bei der die Einrichtung (103, 104, 108, 116,
118; 328, 304, 308, 316, 318; 528, 504, 508, 516, 518) zum Erzeugen von
Vielfachen des zweiten Operanden ferner eine Einrichtung zum Erzeugen des
±0-, ±1-, ±2- und ±3-Fachen des zweiten Operanden aufweist.
4. Vorrichtung nach Anspruch 3, bei der die Einrichtung zum iterativen
Erzeugen einer Reihe von Teilresten des ersten Operanden ferner eine
Multiplexereinrichtung (118; 318; 518) zum Auswählen eines der erzeugten Vielfachen des
zweiten Operanden zum Erzeugen des nächsten Teilrests aufweist, wobei das
gewählte Vielfache des zweiten Operanden zu dem Produkt aus dem zweiten
Operanden und dem vorhergesagten Quotienten äquivalent ist.
5. Vorrichtung nach Anspruch 4, bei der die Einrichtung zum Erzeugen von
Vielfachen des zweiten Operanden ferner aufweist:
eine Einrichtung (103) zum Verschieben des zweiten Operanden, um das
Doppelte des zweiten Operanden zu erzeugen; und
einen Addierer (104) zum Addieren des zweiten Operanden und des erzeugten
Doppelten des zweiten Operanden, um das Dreifache des zweiten Operanden
während der Berechnung der ersten Iteration von PJ+1 zu erzeugen.
6. Vorrichtung nach Anspruch 1, bei der die Einrichtung zum iterativen
Erzeugen einer Reihe von Teilresten des ersten Operanden die Reihe von Teilresten
als eine Gruppe von Summen und Überträgen erzeugt.
7. Vorrichtung nach Anspruch 6, ferner mit einer Einrichtung (122, 123) zum
Feststellen, daß das Ergebnis erzeugt wurde.
8. Vorrichtung nach Anspruch 7, bei der die Einrichtung (122; 123) zum
Feststellen, daß das Ergebnis erzeugt wurde, ferner aufweist:
eine Einrichtung (123) zum Feststellen des Vorzeichens des ersten Teilrests; und
eine Einrichtung zum Anpassen des Ergebnisses auf der Basis des Vorzeichens
des ersten Teilrests.
9. Vorrichtung nach Anspruch 8, bei der die Einrichtung zum iterativen
Erzeugen einer Reihe von Teilresten des ersten Operanden den nächsten Teilrest nach
der folgenden Gleichung bestimmt:
PJ+1 = 4PJ + QD
wobei
PJ = erster Teilrest;
PJ+1 = nächster Teilrest;
Q = vorhergesagter erster Quotient; und
D = zweiter Operand.
10. Vorrichtung nach Anspruch 9, bei der die Einrichtung zum Erzeugen von
Vielfachen des zweiten Operanden ferner eine Einrichtung zum Erzeugen des
±0-, ±1-, ±2- und ±3-Fachen des zweiten Operanden aufweist.
11. Vorrichtung nach Anspruch 10, bei der die Einrichtung zum iterativen
Erzeugen einer Reihe von Teilresten ferner eine Multiplexereinrichtung (118;
318; 518) zum Auswählen eines der erzeugten Vielfachen des zweiten
Operanden zum Erzeugen des nächsten Teilrests aufweist, wobei das gewählte
Vielfache des Operanden zu dem Produkt aus dem zweiten Operanden und dem
vorhergesagten Quotienten äquivalent ist.
12. Vorrichtung nach Anspruch 11, bei der die Einrichtung zum Erzeugen von
Vielfachen des zweiten Operanden ferner aufweist:
eine Einrichtung (103) zum Verschieben des zweiten Operanden, um das
Doppelte des zweiten Operanden zu erzeugen; und
einen Addierer (104) zum Addieren des zweiten Operanden und des erzeugten
Doppelten des zweiten Operanden, um das Dreifache des zweiten Operanden
während der Berechnung der ersten Iteration von PJ+1 zu erzeugen.
13. Vorrichtung nach Anspruch 1, ferner mit:
einer Einrichtung zum Schreiben des Inhalts des ersten Quotientenregisters
(114a) in das zweite Quotientenregister; und
einer Einrichtung zum Schreiben des Inhalts des zweiten Quotientenregisters
(114b) in das erste Quotientenregister.
14. Vorrichtung nach Anspruch 1, ferner mit:
einem Teilrestregister (106; 306; 506), das zum Empfangen und Speichern des
ersten Operanden als ersten Teilrest verbunden ist;
einem Divisorregister (108; 308; 508), das zum Empfangen und Speichern des
zweiten Operanden verbunden ist;
wobei die Einrichtung (103, 104, 108, 116, 118; 328, 304, 308, 316, 318; 528,
504, 508, 516, 518) zum Erzeugen von Vielfachen des zweiten Operanden mit
einem Übertragspeicheraddierer (120; 320; 520) verbunden ist, und wobei:
der Übertragspeicheraddierer (120; 320; 520) zum Empfangen der Vielfachen
des zweiten Operanden von der Einrichtung zum Erzeugen von Vielfachen des
zweiten Operanden und des vorhergesagten Quotientenwertes von der
Quotientenvorhersageeinrichtung verbunden ist, wobei der Übertragssicherungsaddierer
einen nächsten Teilrest durch Auswahl eines der Vielfachen des zweiten
Operanden und durch Addieren desselben zu einem Vierfachen des ersten Teilrests
bestimmt, wobei das Teilrestregister (106; 306; 506) zum Empfangen und
Speichern des nächsten Teilrests anstelle des ersten Teilrests verbunden ist, und
wobei die Quotientenvorhersageeinrichtung zum Empfangen des nächsten
Teilrests verbunden ist, um einen nächsten Quotientenwert zu bestimmen.
15. Vorrichtung nach Anspruch 14, bei der der Übertragspeicheraddierer (120;
320; 520) den nächsten Teilrest als Gruppe von Summen und Überträgen
erzeugt, und die Vorrichtung ferner einen ersten Addierer (122) aufweist, der
zum Empfangen des nächsten Teilrests von dem Teilrestregister verbunden ist,
wobei der Addierer die Summen und Überträge addiert, um zu bestimmen, ob
das Ergebnis erzeugt wurde.
16. Vorrichtung nach Anspruch 15, ferner mit einem zweiten Addierer (123),
der zum Empfangen des nächsten Teilrests von dem Teilrestregister verbunden
ist, wobei das Ausgangssignal des zweiten Addierers zum Bestimmen des
Vorzeichens der Summen und Überträge verwendet wird.
17. Vorrichtung nach Anspruch 16, bei der die zweite
Quotientenvorhersageschaltung für jeden bestimmten Quotientenwert den Quotientenwert minus
eins bestimmt, und das zweite Quotientenregister (114b) zum Empfangen und
Speichern der von der Quotientenvorhersageschaltung bestimmen
Quotientenwerte minus eins verbunden ist.
18. Vorrichtung nach Anspruch 17, ferner mit:
einer Einrichtung (123) zum Bestimmen, ob der in dem ersten
Quotientenregister (114a) gespeicherte Quotientenwert inkorrekt ist; und
eine Einrichtung zum Ersetzen des in dem ersten Quotientenregister (114a)
gespeicherten Quotienten durch den in dem zweiten Quotientenregister (114b)
gespeicherten Quotienten minus eins.
19. Vorrichtung nach Anspruch 18, ferner mit einem Ausgangshaltespeicher
(126; 326; 526), der zum Empfangen des Quotienten vom ersten
Quotientenregister (114a) verbunden ist.
20. Vorrichtung nach Anspruch 19, bei der der erste Operand, der zweite
Operand und das Ergebnis jeweils aus einem Mantissenteil und einem
Exponententeil bestehen, wobei der Quotient durch Dividieren der Mantissen des ersten
Operanden und des zweiten Operanden gebildet wird, und die Vorrichtung
ferner eine Exponentenberechnungseinrichtung (124; 324; 524) aufweist, die
zum Empfangen der Exponenten des ersten Operanden und des zweiten
Operanden verbunden ist, wobei die Exponentenberechnungseinrichtung den
Exponenten des zweiten Operanden von dem Exponenten des ersten Operanden
subtrahiert, um den Ergebnisexponenten zu berechnen, wobei der
Ausgangshaltespeicher ferner zum Empfangen des Ergebnisexponenten von der
Exponentenberechnungseinrichtung verbunden ist.
21. Vorrichtung nach Anspruch 16, ferner mit:
einer ersten Schiebeeinrichtung (103), die zum Empfangen des zweiten
Operanden zum Erzeugen des Doppelten des zweiten Operanden verbunden ist;
einem dritten Addierer (104), der zum Empfangen des Doppelten des zweiten
Operanden von der ersten Schiebeeinrichtung und des zweiten Operanden
verbunden ist; und
einem zweiten Divisorregister (116), das zum Empfangen und Speichern des
Dreifachen des Divisors von dem zweiten Addierer verbunden ist.
22. Vorrichtung nach Anspruch 21, ferner mit einem ersten Multiplexer (118;
318; 518), der zum Empfangen des zweiten Operanden von dem Divisorregister
(108; 308; 508) und des Dreifachen des zweiten Operanden vom zweiten
Divisorregister (116; 316; 516) und zum Ausgeben des ±0-, ±1-, ±2- und ±3-
fachen des zweiten Operanden an den Übertragspeicheraddierer (120; 320; 520)
verbunden ist.
23. Vorrichtung nach Anspruch 22, bei der der Übertragspeicheraddierer (120;
320; 520) einen nächsten Teilrest nach der folgenden Gleichung bestimmt:
PJ+1 = 4PJ + qjD
wobei
PJ+1 = nächster Teilrest;
PJ = erster Teilrest;
qj= vorhergesagter erster Quotient; und
D = zweiter Operand.
24. Vorrichtung nach Anspruch 23, bei der der Übertragspeicheraddierer (120;
320; 520) ferner aufweist:
eine zweite Schiebeeinrichtung zum zweifachen Schieben des ersten Teilrests
zur Erzeugung des Vierfachen des Teilrests; und
eine Einrichtung zum Wählen eines der Eingangssignale des Multiplexer auf der
Basis der Vorhersage des ersten Quotienten.
25. Vorrichtung nach Anspruch 24, bei der Übertragspeicheraddierer (120; 320;
520) den nächsten Teilrest durch Addieren des zweifach verschobenen ersten
Teilrests erzeugt, um das Vierfache des ersten Teilrests und des
Multiplexereingangssignals zu erzeugen, das gleich dem Produkt des zweiten Operanden
und der Vorhersage des ersten Quotienten ist.
26. Vorrichtung nach Anspruch 14, ferner mit:
einem ersten Multiplexer, der zum Empfangen des zweiten Operanden
verbunden ist, wobei der Multiplexer eine Schiebeeinrichtung (103) zum Erzeugen des
Doppelten des zweiten Operanden aus dem Divisorregister aufweist; und
einem ersten Addierer (104), der zum Empfangen des Doppelten des zweiten
Operanden von der Multiplexereinrichtung und des zweiten Operanden
verbunden ist.
27. Vorrichtung nach Anspruch 26, ferner mit einem zweiten Divisorregister
(116; 316; 516), das zum Empfangen und Speichern des Dreifachen des zweiten
Operanden vom ersten Addierer verbunden ist.
28. Vorrichtung nach Anspruch 26, bei der der erste Multiplexer ferner zum
Empfangen einer Gruppe von Summen und Überträgen von dem Teilrestregister
(106; 306; 506) verbunden ist, wobei der Multiplexer derart konfiguriert ist, daß
er wahlweise entweder den zweitem Operanden an den ersten Addierer zum
Bestimmen des Dreifachen des zweiten Operanden oder die Gruppe von
Summen und Überträgen an den ersten Addierer zum Bestimmen des
Teilrestvorzeichens und einer Endteilrest-Null-Erkennung ausgibt;
wobei die Vorrichtung ferner eine Einrichtung zum Bereitstellen eines
Rückführpfades für die Addition der vom ersten Addierer ausgegebenen Summen
und Überträge zurück zum ersten Addierer aufweist, um das Vorzeichen des
ersten Teilrests zu bestimmen.
29. Vorrichtung nach Anspruch 28, ferner mit einem Ausgangshaltespeicher
(126; 326; 526), der zum Empfangen des Quotienten vom Quotientenregister
(114; 314; 514) verbunden ist, wobei der Ausgangshaltespeicher ferner zum
Empfangen von Signalen vom ersten Addierer verbunden ist, welche anzeigen,
ob der letzte Teilrest null ist.
30. Vorrichtung nach Anspruch 29, ferner mit einer Einrichtung zum Liefern
des ermittelten Vorzeichens des letzten Teilrests an den Ausgangshaltespeicher
(126; 326; 526).
31. Vorrichtung nach Anspruch 30, bei der die Quotientenregisterschaltung
ferner für jeden ermittelten Quotientenwert den Quotientenwert minus eins
bestimmt, wobei das zweite Quotientenregister (114b) zum Empfangen und
Speichern des von der Quotientenregisterschaltung bestimmten
Quotientenwertes minus eins verbunden ist.
32. Vorrichtung nach Anspruch 31, ferner mit:
einer Quadratwurzelvorhersagelogik (530), die zum Empfangen eines
Radikanden vom Addierer (504) verbunden ist, wobei die
Quadratwurzelvorhersagelogik einen vorhergesagten Wurzelwert auf der Basis des Radikanden bestimmt;
einer Einrichtung zum Liefern des vorhergesagten Wurzelwerts an das erste
Quotientenregister (514a) und den ersten Multiplexer (528);
wobei der Multiplexer (528) iterativ das Doppelte des vorhergesagten
Wurzelwertes an die Quadratwurzelvorhersagelogik zur Bestimmung eines nächsten
vorhergesagten Wurzelwerts liefert.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/504,324 US5128891A (en) | 1990-04-02 | 1990-04-02 | High speed divider with square root capability |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69131187D1 DE69131187D1 (de) | 1999-06-10 |
DE69131187T2 true DE69131187T2 (de) | 2000-01-05 |
Family
ID=24005778
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69131187T Expired - Fee Related DE69131187T2 (de) | 1990-04-02 | 1991-02-20 | Hochgeschwindigkeitsdividierer |
Country Status (5)
Country | Link |
---|---|
US (1) | US5128891A (de) |
EP (1) | EP0450754B1 (de) |
JP (1) | JP3144816B2 (de) |
AT (1) | ATE179809T1 (de) |
DE (1) | DE69131187T2 (de) |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5329176A (en) * | 1991-04-12 | 1994-07-12 | Hewlett-Packard Company | Self-timed clocking system and method for self-timed dynamic logic circuits |
US5278782A (en) * | 1991-06-03 | 1994-01-11 | Matsushita Electric Industrial Co., Ltd. | Square root operation device |
FR2690772A1 (fr) * | 1992-04-29 | 1993-11-05 | Philips Electronique Lab | Processeur neuronal muni de moyens pour calculer une norme ou une distance. |
US5237525A (en) * | 1992-06-01 | 1993-08-17 | Motorola, Inc. | In a data processor an SRT divider having a negative divisor sticky detection circuit |
US5239498A (en) * | 1992-08-31 | 1993-08-24 | Intel Corporation | Methods and apparatus for improved quotient correction in nonrestoring division computation circuits |
US5301139A (en) * | 1992-08-31 | 1994-04-05 | Intel Corporation | Shifter circuit for multiple precision division |
US5386376A (en) * | 1992-08-31 | 1995-01-31 | Intel Corporation | Method and apparatus for overriding quotient prediction in floating point divider information processing systems |
US5258944A (en) * | 1992-09-01 | 1993-11-02 | Cray Research, Inc. | High performance mantissa divider |
US5357455A (en) * | 1992-10-09 | 1994-10-18 | Intel Corporation | Floating point remainder generator for a math processor |
US5574928A (en) * | 1993-10-29 | 1996-11-12 | Advanced Micro Devices, Inc. | Mixed integer/floating point processor core for a superscalar microprocessor with a plurality of operand buses for transferring operand segments |
DE69429061T2 (de) * | 1993-10-29 | 2002-07-18 | Advanced Micro Devices, Inc. | Superskalarmikroprozessoren |
US5386375A (en) * | 1993-11-01 | 1995-01-31 | Motorola, Inc. | Floating point data processor and a method for performing a floating point square root operation within the data processor |
EP0685794A1 (de) * | 1994-06-01 | 1995-12-06 | Advanced Micro Devices, Inc. | System zum Erzeugen von Fliesskomma-Prüfvektoren |
US5632023A (en) * | 1994-06-01 | 1997-05-20 | Advanced Micro Devices, Inc. | Superscalar microprocessor including flag operand renaming and forwarding apparatus |
US5696955A (en) * | 1994-06-01 | 1997-12-09 | Advanced Micro Devices, Inc. | Floating point stack and exchange instruction |
EP0706117B1 (de) * | 1994-10-05 | 2002-12-04 | International Business Machines Corporation | Festkomma-Dividiervorrichtung ohne Rückstellung |
FR2728702A1 (fr) * | 1994-12-22 | 1996-06-28 | France Telecom | Composant electronique capable notamment d'effectuer une division de deux nombres en base 4 |
US5696712A (en) * | 1995-07-05 | 1997-12-09 | Sun Microsystems, Inc. | Three overlapped stages of radix-2 square root/division with speculative execution |
US5748516A (en) * | 1995-09-26 | 1998-05-05 | Advanced Micro Devices, Inc. | Floating point processing unit with forced arithmetic results |
US5878266A (en) * | 1995-09-26 | 1999-03-02 | Advanced Micro Devices, Inc. | Reservation station for a floating point processing unit |
US5761105A (en) * | 1995-09-26 | 1998-06-02 | Advanced Micro Devices, Inc. | Reservation station including addressable constant store for a floating point processing unit |
US5784307A (en) * | 1996-05-31 | 1998-07-21 | Intel Corporation | Division algorithm for floating point or integer numbers |
US5818745A (en) * | 1996-05-31 | 1998-10-06 | Intel Corporation | Computer for performing non-restoring division |
JP3660075B2 (ja) * | 1996-10-04 | 2005-06-15 | 株式会社ルネサステクノロジ | 除算装置 |
US6109777A (en) * | 1997-04-16 | 2000-08-29 | Compaq Computer Corporation | Division with limited carry-propagation in quotient accumulation |
JPH10307709A (ja) * | 1997-05-08 | 1998-11-17 | Mitsubishi Electric Corp | 開平回路及び浮動小数点開平装置 |
US6820107B1 (en) | 1997-05-08 | 2004-11-16 | Renesas Technology Corporation | Square root extraction circuit and floating-point square root extraction device |
US5910910A (en) * | 1997-06-23 | 1999-06-08 | Sun Microsystems, Inc. | Circuit and method for rapid calculation of quotients and square roots |
US6108723A (en) * | 1998-07-20 | 2000-08-22 | Hewlett-Packard Company | System for implementing hardware automated control of burst mode data transfer over a communication link between devices operating in a block mode |
US6360241B1 (en) * | 1999-02-01 | 2002-03-19 | Compaq Information Technologies Goup, L.P. | Computer method and apparatus for division and square root operations using signed digit |
US6732135B1 (en) * | 1999-02-01 | 2004-05-04 | Hewlett-Packard Development Company, L.P. | Method and apparatus for accumulating partial quotients in a digital processor |
US6751645B1 (en) * | 1999-02-17 | 2004-06-15 | Elbrus International Limited | Methods and apparatus for performing pipelined SRT division |
US7031996B2 (en) * | 2000-11-02 | 2006-04-18 | Seagate Technology Llc | Calculating square root of binary numbers with fixed-point microprocessor |
KR100407562B1 (ko) | 2001-11-21 | 2003-11-28 | 삼성전자주식회사 | 제산 및 제곱근 계산 장치 및 방법 |
JP4273071B2 (ja) | 2004-12-15 | 2009-06-03 | エヌイーシーコンピュータテクノ株式会社 | 除算・開平演算器 |
US9983850B2 (en) | 2015-07-13 | 2018-05-29 | Samsung Electronics Co., Ltd. | Shared hardware integer/floating point divider and square root logic unit and associated methods |
US10209959B2 (en) | 2016-11-03 | 2019-02-19 | Samsung Electronics Co., Ltd. | High radix 16 square root estimate |
JP6780522B2 (ja) | 2017-01-31 | 2020-11-04 | 株式会社島津製作所 | 材料試験機 |
JP2022121055A (ja) | 2021-02-08 | 2022-08-19 | キオクシア株式会社 | 演算装置及び演算回路 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4075704A (en) * | 1976-07-02 | 1978-02-21 | Floating Point Systems, Inc. | Floating point data processor for high speech operation |
JPS58132837A (ja) * | 1982-02-03 | 1983-08-08 | Hitachi Ltd | 10進除算装置 |
US4688186A (en) * | 1982-10-04 | 1987-08-18 | Honeywell Bull Inc. | Division by a constant by iterative table lookup |
CA1231455A (en) * | 1984-04-09 | 1988-01-12 | Masayuki Ikeda | Nonrestoring divider |
US4683547A (en) * | 1984-10-25 | 1987-07-28 | International Business Machines Corporation | Special accumulate instruction for multiple floating point arithmetic units which use a putaway bus to enhance performance |
US4724529A (en) * | 1985-02-14 | 1988-02-09 | Prime Computer, Inc. | Method and apparatus for numerical division |
US4939686A (en) * | 1987-05-18 | 1990-07-03 | Weitek Corporation | Method and apparatus for shared radix 4 division and radix 4 square root |
US4878190A (en) * | 1988-01-29 | 1989-10-31 | Texas Instruments Incorporated | Floating point/integer processor with divide and square root functions |
US4979142A (en) * | 1989-04-17 | 1990-12-18 | International Business Machines Corporation | Two-bit floating point divide circuit with single carry-save adder |
-
1990
- 1990-04-02 US US07/504,324 patent/US5128891A/en not_active Expired - Fee Related
-
1991
- 1991-02-20 EP EP91301355A patent/EP0450754B1/de not_active Expired - Lifetime
- 1991-02-20 AT AT91301355T patent/ATE179809T1/de not_active IP Right Cessation
- 1991-02-20 DE DE69131187T patent/DE69131187T2/de not_active Expired - Fee Related
- 1991-04-01 JP JP06841391A patent/JP3144816B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP3144816B2 (ja) | 2001-03-12 |
EP0450754B1 (de) | 1999-05-06 |
EP0450754A3 (en) | 1993-01-07 |
JPH04227535A (ja) | 1992-08-17 |
EP0450754A2 (de) | 1991-10-09 |
DE69131187D1 (de) | 1999-06-10 |
ATE179809T1 (de) | 1999-05-15 |
US5128891A (en) | 1992-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69131187T2 (de) | Hochgeschwindigkeitsdividierer | |
DE69132517T2 (de) | Gleitkommaprozessor | |
DE19540102C2 (de) | Verfahren und Gleitkomma-Recheneinheit mit einer Logik für eine Vierfach-Präzisions-Arithmetik | |
DE68929114T2 (de) | Gleitkomma-arithmetische Einheiten | |
DE10085322B4 (de) | Schaltungsanordnung, Verfahren und Datenverarbeitungs-Einrichtung zum Durchführen einer Ein-Zyklus-Addition oder -Subtraktion und eines Vergleichs bei einer Arithmetik redundanter Form | |
DE69032891T2 (de) | Verfahren und Gerät zur Ausführung mathematischer Funktionen mit Hilfe polynomialer Annäherung und eines Multiplizierers rechteckigen Seitenverhältnisses | |
DE69838390T2 (de) | Verbessertes gerät und verfahren für modulare multiplikation und exponentation basierend auf montgomerymultiplikation | |
DE69131736T2 (de) | Gleitkomma-Verarbeitungseinheit mit Normalisierung | |
DE3650335T2 (de) | Rechenverfahren und -gerät für endlichfeldmultiplikation. | |
DE69130623T2 (de) | Dividierer mit hoher Grundzahl | |
DE69030707T2 (de) | Arithmetisches Verarbeitungsgerät und dazu benütztes Verfahren | |
DE68924386T2 (de) | Verfahren und Gerät zur Radix-2**n-Division mit überlappender Quotientenbitauswahl und gleichzeitiger Rundung und Korrektur des Quotienten. | |
DE1956209C3 (de) | Multipliziervorrichtung | |
DE69130510T2 (de) | Arithmetisches Gerät zur Berechnung von transzendenten Elementarfunktionen | |
DE19758079A1 (de) | Verfahren und Vorrichtung zur Galoisfeld-Multiplikation | |
DE69321241T2 (de) | Hochleistungsmantissendividierer. | |
DE69129723T2 (de) | Prozessorelement für Datenakkumulationsrechnungen, Verarbeitungseinheit und Prozessor | |
DE2246968A1 (de) | Einrichtung zur kombination, insbesondere multiplikation, zweier gleitkommazahlen | |
DE2803425A1 (de) | Digitaleinrichtung zur ermittlung des wertes von komplexen arithmetischen ausdruecken | |
DE1549477B1 (de) | Einrichtung zur schnellen akkumulation einer anzahl mehr stelliger binaerer operanden | |
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 | |
DE69434806T2 (de) | Verfahren, System und Vorrichtung zum automatischen Entwurf einer Multiplikatorschaltung und durch die Durchführung dieses Verfahrens entworfene Multiplikatorschaltung | |
DE69227348T2 (de) | DIVIDIERSCHALTUNG FüR GLEITKOMMAZAHLEN | |
DE2816711A1 (de) | Divisionseinrichtung mit uebertrags- rettungsaddierwerk und nicht ausfuehrender vorausschau |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |