DE102014100108A1 - Festkomma-divisionschaltung unter verwendung einer gleitkomma-architektur - Google Patents

Festkomma-divisionschaltung unter verwendung einer gleitkomma-architektur Download PDF

Info

Publication number
DE102014100108A1
DE102014100108A1 DE102014100108.7A DE102014100108A DE102014100108A1 DE 102014100108 A1 DE102014100108 A1 DE 102014100108A1 DE 102014100108 A DE102014100108 A DE 102014100108A DE 102014100108 A1 DE102014100108 A1 DE 102014100108A1
Authority
DE
Germany
Prior art keywords
quotient
bit
divisor
circuit
dividend
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.)
Withdrawn
Application number
DE102014100108.7A
Other languages
English (en)
Inventor
Paul S. Wilkins
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Analog Devices Inc
Original Assignee
Analog Devices Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Analog Devices Inc filed Critical Analog Devices Inc
Publication of DE102014100108A1 publication Critical patent/DE102014100108A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/535Dividing only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/535Indexing scheme relating to groups G06F7/535 - G06F7/5375
    • G06F2207/5352Non-restoring division not covered by G06F7/5375
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49905Exception handling
    • G06F7/4991Overflow or underflow
    • G06F7/49921Saturation, i.e. clipping the result to a minimum or maximum value
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49905Exception handling
    • G06F7/49926Division by zero
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49936Normalisation mentioned as feature only

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)
  • Executing Machine-Instructions (AREA)

Abstract

Ein System, ein Verfahren und ein Computerprogrammprodukt zum Dividieren von zwei binären Zahlen. Der Teiler setzt eine Festkomma-Divisionsfunktion unter Verwendung einer Gleitkomma-Normierungsarchitektur um, um die nächstgelegene anfängliche Quotientennäherung zu ergeben. Der Teiler normiert den Eingabe-Dividenden und Divisor auf einen Bereich von [0,5, 1,0), indem er jeden mit den notwendigen Faktoren Zwei skaliert. Die normierten Eingaben werden einem Teilerkern vorgelegt, der zum Dividieren von Eingaben solcher begrenzten Bereiche optimiert sein kann. Die Teilerkernausgabe wird dann um einen geeigneten Faktor Zwei umskaliert, mit einem entsprechenden Vorzeichen versehen und in Sättigungsregister zur Ausgabe in diversen Formaten eingegeben. Der Teilerkern gibt nach und nach Quotientenbits in abnehmender Reihenfolge der Wertigkeit aus, bis ein vorbestimmtes Präzisionsniveau erreicht ist, typischerweise mit einer geringeren Bitanzahl als in einem vollständigen Quotienten, für eine schnellere Ausgabe. Eine Ausführungsform generiert die sechs höchstwertigen Quotientenbits in einem einzigen Taktzyklus.

Description

  • ALLGEMEINER STAND DER TECHNIK
  • Die vorliegende Erfindung betrifft ein System, ein Verfahren und ein Computerprogrammprodukt für einen Teiler, der zwei Zahlen dividiert, die in binärer Form dargestellt sind. Der Teiler kann in einer integrierten Schaltung umgesetzt sein.
  • Eine Division ist eine arithmetische Operation, die man als das Gegenteil einer Multiplikation ansehen kann, und wird benötigt, um viele verschiedene Probleme zu lösen. Konzeptuell kann ein Quotient angeben, wie oft ein Dividend einen Divisor ganz enthalten kann. Falls ein Dividend nicht geradzahlig durch einen Divisor teilbar ist, bleibt ein Rest übrig und kann verschiedenartig ausgedrückt werden. Somit gilt im Allgemeinen DIVIDEND = (QUOTIEN·DIVISOR) + REST. Das Vorzeichen eines Quotienten ist von den Vorzeichen des Dividenden und des Divisors abhängig, d. h. der Quotient ist positiv, falls der Dividend und der Divisor die gleichen Vorzeichen aufweisen, doch der Quotient ist negativ, falls sie entgegengesetzte Vorzeichen aufweisen. Eine Division durch Null ist undefiniert.
  • Die bekannte manuelle Operation des Dividierens von zwei Zahlen umfasst die wiederholte Subtraktion des Divisors vom Dividenden. Der Quotient dient im Wesentlichen als Zähler dafür, wie oft der Divisor ganz von dem Dividenden subtrahiert werden kann. Die Division der Eingangszahlen kann aufhören, wenn der Rest kleiner als der Divisor ist, doch im Allgemeinen kann der Prozess fortfahren, um den Rest als Bruchzahl auszuwerten.
  • Die Division von Zahlen, die in binärer Form dargestellt werden, ist ebenfalls für diverse Zwecke erforderlich. Beispielsweise verfügen digitale Computer über Mikroprozessoren, die unter anderen Operationen eine binäre Division in ihren arithmetischen Logikeinheiten ausführen. Die digitalen Signalverarbeitungsschaltungen erfordern häufig ebenfalls eine binäre Division. Herkömmliche binäre Teiler befolgen den bekannten Algorithmus der „wiederholten Subtraktion” und weisen daraufhin eine Reihe von Nachteilen auf, und zwar hauptsächlich die Tatsache, dass ihr Betrieb sehr zeitraubend sein kann.
  • Entsprechend hat der Erfinder einen Bedarf für einen verbesserten binären Teiler in der Technik identifiziert.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Es zeigen:
  • 1 ein Schema, das ein Schaltbild eines beispielhaften schnellen Teilers gemäß einem Aspekt der vorliegenden Erfindung abbildet.
  • 2 ein Ablaufschema, das eine Methodik eines beispielhaften schnellen Teilers gemäß einem Aspekt der vorliegenden Erfindung abbildet.
  • 3 ein Schema, das ein Schaltbild eines beispielhaften Teilerkerns gemäß einem Aspekt der vorliegenden Erfindung abbildet.
  • 4 ein Schema, das ein Schaltbild eines beispielhaften mehrformatigen ganzen Teilers gemäß einem Aspekt der vorliegenden Erfindung abbildet.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die Ausführungsformen der Erfindung stellen ein System, ein Verfahren und ein Computerprogrammprodukt zum Dividieren von zwei binären Zahlen bereit. In manchen Fällen kann es sein, dass gar kein ganzer Quotient berechnet werden muss, da ein Teilquotient für manche Zwecke ausreichen kann. Die schnelle Erzeugung eines Teilquotienten kann bei bestimmten Anwendungen, wie etwa bei der digitalen Signalverarbeitung, besonders nützlich sein.
  • Es wird daher eine Ausführungsform eines schnellen Teilers bereitgestellt, der schnell einen Teilquotienten berechnen kann, der nur eine Näherung des ganzen Quotientenwertes ist. Beispielsweise kann man nur 24 Bits eines ganzen 64-Bit-Quotienten berechnen, doch sind diese 24 Bits die höchstwertigen. Eine derartige Ausführungsform kann ein schnelles Ergebnis begrenzter Genauigkeit, jedoch mit einem großen dynamischen Bereich bereitstellen. Es wird auch eine alternative Ausführungsform beschrieben, die einen ganzen Quotienten in diversen binären Formaten bereitstellt.
  • Wie es nachstehend beschrieben wird, kann der schnelle Teiler eine Festkomma-Divisionsfunktion unter Verwendung einer Gleitkomma-Normierungsarchitektur umsetzen, um die nächstgelegene anfängliche Näherung des Quotienten zu ergeben. Kurz gesagt kann der schnelle Teiler seine Eingaben normieren, eine 24-Bit-Divisionsoperation ausführen, und die Ausgabe zu ihrem richtigen Wert multiplizieren/verschieben. Das Normieren der Eingaben ermöglicht einen hoch optimierten Teilerkern, da die Eingaben, die er handhabt, auf den Bereich [0,5, 1,0), d. h. von einschließlich der Hälfte bis zu nahezu Eins, eingeschränkt sein können.
  • Ferner kann der Quotient gewünschter Präzision von einem Teilerkern berechnet werden, der Ergebnisse in Teilen oder Quotienten-Teilmengen ausgibt. Eine schnelle Generierung selbst eines anfänglichen Teils eines Teilquotienten kann unter Umständen sehr nützlich sein. Die beschriebenen Ausführungsformen des Teilers können daher schnell die höchstwertigen Bits einer Quotienten-Teilmenge erzeugen und dann damit fortfahren, zusätzliche Quotientenbits geringerer Wertigkeit in weiteren Taktzyklen zu generieren, bis eine vorbestimmte Quotientenpräzision erreicht ist.
  • 1 ist ein Funktionsschema, das einen beispielhaften schnellen Teiler 100 gemäß einem Aspekt der vorliegenden Erfindung abbildet. Der schnelle Teiler 100 kann als integrierte Schaltung hergestellt werden. Der Dividend 102 und Divisor 104 sind die Eingaben für den schnellen Teiler. Bei einer beispielhaften Ausführungsform kann der Dividend eine 64-Bit-Binärzahl sein, und der Divisor kann eine 32-Bit-Binärzahl sein. Die Tatsache, dass der Divisor dem schnellen Teiler 100 vorgelegt wird, kann bei einer Ausführungsform die Operation des schnellen Teilers auslösen.
  • Bei einer Ausführungsform können der Dividend 102 und der Divisor 104 Zahlen mit Vorzeichen sein, so dass der schnelle Teiler 100 dann den absoluten Wert jeder Eingabe an den Blöcken 106 und 108 nehmen kann und ein Dividenden-Vorzeichenbit 110 und ein Divisor-Vorzeichenbit 112 zur weiteren Verwendung abtrennen kann. Die Vorzeichenbits 110 und 112 können das geeignete Vorzeichen des Quotienten bestimmen, was noch beschrieben wird.
  • Der schnelle Teiler 100 kann die Blöcke 114 und 116 umfassen, um jeweils den Dividenden 102 und den Divisor 104, nun ohne Vorzeichen, zu normieren, so dass jede Zahl einen Wert in einem Bereich von [0,5, 1,0), d. h. einschließlich der Hälfte bis zu, jedoch ausschließlich Eins, aufweisen kann. Bei einer Ausführungsform können die Eingaben dadurch normiert werden, dass jede Zahl um einen notwendigen Faktor Zwei skaliert wird, bis eine höchstwertige Bitposition jeder Zahl eine „1” ist. Die binären Zahlen können ohne Weiteres im Wert um einen Faktor Zwei geändert werden, indem die Stellen um ein Bit verschoben werden. Die Schaltungsblöcke 114 und 116 können somit den Dividenden 102 und den Divisor 104 je nach Bedarf verschieben, so dass der skalierte Wert jeweils in dem gewünschten Bereich liegt. Die Daten, die Exponenten beschreiben, die daraus erzielt werden, können an einen Addierer 118 weitergegeben werden. Der Addierer 118 kann die Exponenten (z. B. Zweierpotenzen), die bei jeder Normierung verwendet wurden, subtrahieren (z. B. den Skalierungsfaktor 120 für den Dividenden 102 von dem Skalierungsfaktor 122 für den Divisor 104), um einen Quotienten-Umskalierungsfaktor 124 zu ergeben, der noch beschrieben wird.
  • Bei einer Ausführungsform kann der normierte Dividend eine 45-Bit-Zahl sein, während der normierte Divisor eine 23-Bit-Zahl sein kann. Die normierten Eingaben können einem Teilerkern 126 vorgelegt werden, der die Division ausführt. Es werden nachstehend mit Bezug auf 4 verschiedene Ausführungsformen des Teilerkerns 126 beschrieben. Verschiedene Ausführungsformen können verschiedene Divisorbreiten und verschiedene Durchsätze (z. B. berechnete Quotientenbits) pro Taktzyklus aufweisen. Ein Nulldivisions-Flag BY0, 128, kann von dem Teilerkern generiert werden; eine Nulldivision ist undefiniert und kann als Fehlerzustand behandelt werden, der die Operation anhalten und eine Ausgabe eines bestimmten vorbestimmten Quotientenwertes auslösen kann. Bei einer Ausführungsform kann der Teilerkern 126 mit seiner Operation beginnen, wenn er ein Taktsignal 130 empfängt, das ein Taktsignal eines fortgeschrittenen Hochleistungsbusses (AHB) sein kann. Der AHB ist Teil des Protokolls der fortgeschrittenen Mikrocontroller-Busarchitektur (AMBA), einer Offenstandard-, On-Chip-Zusammenschaltungsspezifikation, die auf dem Gebiet des Mikrocontroller-Designs wohlbekannt ist.
  • Die Ausgabe 132 des Teilerkerns 126 ist ein Quotient des normierten Dividenden und des normierten Divisors. Bei einer Ausführungsform kann die Ausgabe des Systems eine 24-Bit-Zahl sein, die einen Quotienten der normierten Eingaben darstellt. Der Quotient kann aus einer Speichereinheit innerhalb des Teilerkerns 126 abgerufen werden, die den Quotienten speichert. Bei anderen Ausführungsformen kann die Ausgabe 132 des Teilerkerns über mehrere Operationstaktzyklen ermittelt werden, wobei eine vorbestimmte Anzahl bzw. ein „Teil” der gesamten Anzahl gewünschter Quotientenbits pro Taktzyklus berechnet werden kann.
  • Wie es noch beschrieben wird, kann ein erster Teil der zu berechnenden Quotientenbits von dem Teilerkern 126 recht schnell generiert werden, z. B. innerhalb eines einzigen Bustaktzyklus. Diese Teilmenge der Quotientenbits kann die höchstwertigen Quotientenbits umfassen, so dass eine möglichst genaue Näherung des Quotienten als anfängliche Ausgabe erzeugt werden kann. Zusätzliche Bits geringerer Wertigkeit können später generiert werden, wobei dieser Prozess fortfahren kann, bis ein gewünschtes Niveau der Quotientenpräzision erreicht ist. Der Teilerkern 126 kann somit ausgelegt sein, um bestimmte Bedürfnisse zu erfüllen, indem die Quotientenbits nach und nach in abnehmender Wertigkeitsfolge ausgegeben werden. In einem System, das beispielsweise sechs Quotientenbits pro Taktzyklus berechnet, wären die sechs höchstwertigen Bits nach einem Taktzyklus verfügbar, die zwölf höchstwertigen Bits nach zwei Taktzyklen, und so weiter. Alle vierundzwanzig beispielhaften Quotientenbits wären nach vier Taktzyklen verfügbar.
  • Die Ausgabe 132 des Teilerkerns 126 kann um den Quotienten-Umskalierungsfaktor 124 skaliert werden, um eine eventuelle frühere Eingangsskalierung während der Normierung auszugleichen. Wie bei den zuvor definierten Normierungsschaltungen kann ein Schieberegister 134 die Teilerkernausgabe um Zweierpotenzen skalieren, indem es die Ausgabe um eine geeignete Bitanzahl in die entsprechende Richtung verschiebt. Bei einer Ausführungsform kann die skalierte Ausgabe eine 64-Bit-Zahl sein.
  • Die skalierte Ausgabe kann in eine Zahl mit Vorzeichen konvertiert werden, wie es für eine Vorzeichenschaltung 136 basierend auf dem Dividenden-Vorzeichenbit 110 und dem Divisor-Vorzeichenbit 112 notwendig ist. Bei einer Ausführungsform führt die Logik 138 eine Exklusiv-ODER-Operation an dem Dividenden-Vorzeichenbit 110 und dem Divisor-Vorzeichenbit 112 aus, um das Quotienten-Vorzeichen zu bestimmen, z. B. falls nur einer von dem Dividenden und dem Divisor negativ ist, dann muss der Quotient negativ sein, ansonsten ist er positiv. Die skalierte Ausgabe mit Vorzeichen kann in einem Register 140 gespeichert werden.
  • Die skalierte Ausgabe mit Vorzeichen kann auch in einen Sättigungs-Akkumulator 142 zur Ausgabe als Quotient geladen werden. Die Sättigungs-Arithmetik begrenzt oder „blockiert” die Werte der verarbeiteten Zahlen auf maximale oder minimale Bereichsgrenzen während der arithmetischen Operationen. Dieses Verhalten kann die häufig unrealistisch drastischen Änderungen des numerischen Wertes verhindern, die sich aus dem modularen arithmetischen „Übertrag” ergeben können. Beispielsweise stehen in einem 8-Bit-Register 256 numerische Werte zur Verfügung, um eine physische Messung zu beschreiben, die normalerweise von Null bis höchstens 255 reicht. Falls die Messung über den erwarteten Bereich hinausgeht, kann das Register beispielsweise bei einem Überlauf auf Null „umschlagen”, wodurch eine höchst irreführende numerische Beschreibung erzeugt wird, weil das wahre höchstwertige Bit abgestrichen wird. Ähnliche Probleme können mit einem Unterlauf und dem Speichern von negativen numerischen Werten auftreten. Der Sättigungs-Akkumulator 142 kann daher die skalierte Ausgabe mit Vorzeichen effektiv umformatieren, um den Quotientenwert mit der verfügbaren Registergröße am besten darzustellen. Die Verwendung des Sättigungs-Akkumulators ist optional.
  • 1 stellt ein Funktionsschema dar, das Schaltungen aufweisen kann, die jedem Block gewidmet sind. Die Schaltungen können je nach Bedarf zusammengefasst werden, wie etwa für Geschwindigkeit und Leistungseffizienz. Einige Funktionen können von Controllern ausgeführt werden, wie es in der Technik bekannt ist.
  • Es wird nun mit Bezug auf 2 ein Ablaufschema gezeigt, das eine beispielhafte schnelle Teilermethodik 200 gemäß einem Aspekt der vorliegenden Erfindung abbildet. Der Dividend und der Divisor können in Schritt 202 eingegeben werden. Diese Eingaben können in getrennten Schritten erfolgen, und die Eingabe des Divisors kann bei einigen Ausführungsformen den Beginn der Methodik auslösen.
  • In Schritt 204 kann der absolute Wert des Divisors genommen werden, wobei die Vorzeicheninformationen zur späteren Verwendung bei der Berechnung des Quotienten-Vorzeichens behalten werden. In Schritt 206 kann der absolute Wert des Dividenden genommen werden, wobei die Divisor-Vorzeicheninformationen ähnlich behalten werden. Die Verarbeitung der Vorzeichen kann bei einigen Ausführungsformen gleichzeitig ausgeführt werden.
  • Der Divisor kann in Schritt 208 normiert werden, wozu das Bitverschieben des Divisors um eine ausreichende Zweierpotenz gehören kann, so dass sein skalierter Wert in dem Bereich von [0,5, 1,0), d. h. von einschließlich der Hälfte bis zu Eins, ohne diese jedoch tatsächlich einzuschließen, liegt. Ähnlich kann der Dividend in Schritt 210 normiert werden; das Normieren des Divisors und des Dividenden muss nicht in der beschriebenen beispielhaften Reihenfolge erfolgen und kann in der Tat gleichzeitig ausgeführt werden.
  • In Schritt 212 kann der Teilerkern damit beginnen, die Division des verarbeiteten Dividenden und des Divisors zu berechnen. Der Teilerkern kann in Schritt 214 ein Nulldivisions-Flag generieren, das eine spezielle Handhabung der Ausgabe auslösen kann, um einen Fehlerzustand zu bezeichnen. Beispielsweise kann der Teiler 200 einen bestimmten endgültigen Wert ausgeben, um den Nulldivisions-Fehlerzustand zu bezeichnen. Der Teilerkern kann ansonsten in Schritt 216 einen Quotienten oder einen Quotiententeil generieren.
  • In Schritt 218 kann das Verfahren die Normierungsfaktoren des Dividenden und des Divisors kombinieren, um einen Umskalierungs- oder Denormierungs-Faktor zu generieren, der auf den Quotienten anzuwenden ist. In Schritt 220 kann der Quotient beispielsweise um eine geeignete Zweierpotenz durch Bitverschiebung skaliert werden. In Schritt 222 kann das Vorzeichen des Quotienten aus dem Vorzeichen des Divisors und dem Vorzeichen des Dividenden berechnet werden, z. B. ergeben unterschiedliche Zeichen einen negativen Quotienten. In Schritt 224 kann der Quotient (oder ein Quotienten- „Teil”, z. B. eine nach und nach generierte Quotienten-Teilmenge) mit dem richtigen Vorzeichen ausgegeben werden.
  • In Schritt 226 kann das Verfahren bestimmen, ob alle erforderlichen Quotientenbits berechnet wurden. Bei einer Ausführungsform kann eine erste Teilmenge der zu berechnenden Quotientenbits innerhalb eines Bustaktzyklus generiert werden; dabei kann es sich um die höchstwertigen Quotientenbits handeln. Zusätzliche erforderliche Bits, im Allgemeinen geringerer Wertigkeit, können generiert werden, wenn das Verfahren die Operation selektiv zu dem Teilerkern zurückbringen kann, um in Schritt 226 zusätzliche Berechnungen auszuführen. Dieser Berechnungsprozess kann fortfahren, bis ein gewünschtes Präzisionsniveau des ausgegebenen Quotienten erreicht ist.
  • Es wird nun mit Bezug auf 3 ein Schema gezeigt, das einen beispielhaften Teilerkern gemäß einem Aspekt der vorliegenden Erfindung abbildet. Dieser Teilerkern 300 kann mit der zuvor beschriebenen Ausführungsform des schnellen Teilers oder mit einer alternativen Ausführungsform des Teilers, die noch mit Bezug auf 4 beschrieben wird, verwendet werden. Andere Teilerkerne, wie sie auf diesem Gebiet bekannt sein können, können ebenfalls verwendet werden, wie etwa die iterative Array-Teiler-(IAD)Schaltung, die in "An Augmented Iterative Array for High-Speed Binary Division" von Maurus Cappa und V. Carl Hamacher in IEEE Transactions on Computers, Bd. C-22, Nr. 2, Februar 1973, beschrieben wird, die hiermit zur Bezugnahme vollständig übernommen wird.
  • Der Teilerkern 300 kann eine Reihe von Verschiebe-/Addier-Blöcken 302 umfassen. Jeder Verschiebe-/Addier-Block 302 kann diese Operation ausführen:
    Figure DE102014100108A1_0002
  • Jeder Verschiebe-/Addier-Block 302 berechnet somit ein Ausgangsübertragsbit carry_out und ein Ausgangssummenbit sum_out. Die Bits carry_out und sum_out werden aus einem Eingangsübertragsbit carry_in, einem Eingangssummenbit sum_in, einem Dividendenbit und dem Divisor berechnet. Falls das Bit carry_in gleich Eins ist, dann wird der Divisor zu dem Dividendenbit und zweimal dem Bit sum_in addiert. Falls ansonsten das Bit carry_in gleich Null ist, dann wird der Divisor von dem Dividendenbit und zweimal dem Bit sum_in subtrahiert.
  • Das Bit carry_out aus einem Verschiebe-/Addier-Block 302 kann ein Quotientenbit sein. Somit wären zur Verarbeitung eines 64-Bit-Quotienten in einer einzigen Schaltung 64 Verschiebe-/Addier-Blöcke notwendig. Bei einer beispielhaften Umsetzung können nur sechs Verschiebe-/Addier-Blöcke ihre Operation innerhalb eines einzigen Taktzyklus beenden. Daher umfasst bei dieser Ausführungsform der Teilerkern 300 eine sequenzielle Maschine, die wie gezeigt mit einem Satz von sechs Verschiebe-/Addier-Blöcken 302, um einen Teil von sechs Quotientenbits während eines Taktzyklus zu generieren, und den Registern 308 und 310 zum Enthalten der endgültigen Übertrags- und Summenwerte vom Ende jedes Durchgangs aufgebaut ist.
  • Zu Beginn jeder nachfolgenden Taktperiode können die vorherigen endgültigen Übertrags- und Summenwerte zurück in den Satz von Verschiebe-/Addier-Blöcken 302 gegeben werden, so dass ein weiterer Teil von sechs weiteren Quotientenbits berechnet werden kann. Die richtigen Dividendenbits und Quotientenbits können nacheinander durch die Schieberegister 304 und 306 gegeben werden. Die Register können alle durch eine einfache (nicht gezeigte) Zustandsmaschine gesteuert werden.
  • Es wird nun mit Bezug auf 4 ein Schema gezeigt, das einen beispielhaften mehrformatigen ganzen Teiler gemäß einem Aspekt der vorliegenden Erfindung abbildet. Diese Ausführungsform ist ähnlich wie die zuvor besprochene Ausführungsform des schnellen Teilers, erfordert jedoch eine größere Anzahl von Taktzyklen, um den gesamten Quotienten gegenüber einer einfachen Näherung des richtigen ganzen Quotientenwertes zu berechnen. Der Teilerkern mit einer Verschiebe-/Addier-Architektur von sechs Bits pro Taktzyklus aus 3 kann mit diesem Teiler verwendet werden.
  • Die Eingangsbussignale 402 können von einem Decodierer 404 verarbeitet werden, um einen Dividenden und einen Divisor zu ergeben, die jeweils in den Registern 406 und 408 gespeichert werden. Der AHB ist eine beispielhafte Art von Bus, obwohl auch andere Busse, die auf diesem Gebiet bekannt sind, anwendbar sind. Die Betriebsart des ganzen Teilers 400 kann von der Steuerlogik 410 gemäß der Reihenfolge ausgewählt werden, in der die Register beschrieben werden, z. B. kann das zuletzt beschriebene Dividendenregister bestimmen, welche Daten für den Dividenden 412 verwendet werden. Ähnlich kann das Schreiben in dem Divisorregister 408 ein Startsignal 414 auslösen, um den Teilerkern 416 anzuweisen, mit seinen Operationen zu beginnen.
  • Der Teilerkern 416 kann den Dividenden und den Divisor berechnen und einen Quotienten sowie einen Rest, ein Divisionsende-Signal und ein mögliches Nulldivisions-Fehlersignal ergeben. Die beispielhaften Ein- und Ausgänge des Teilerkerns, die entsprechenden Registernamen und die Datenformate können in der folgenden Tabelle zusammengefasst werden:
    NAME FUNKTION ADRESSE BREITE ZUGRIFF
    DIV_DIVIDEND_DP DOPPELTGENAUER DIVIDEND FÜR FESTKOMMA-DIVISION 0 8,56 R/W
    DIV_DIVIDEND_SP EINFACHGENAUER DIVIDEND FÜR FESTKOMMA-DIVISION 4 8,24 R/W
    DIV_DIVISOR_SP EINFACHGENAUER DIVISOR 5 8,24 R/W
    DIV_REMAINDER GANZZAHLIGER REST 18 32 R
    DIV_QUOTIENTEN_SP GESÄTTIGER EINFACHGENAUER QUOTIENT 7 8,24 R
    DIV_QUOTIENTEN_INT GANZZAHLIGER QUOTIENT 8 64 R
    DIV_QUOTIENTEN_DP GESÄTTIGTER DOPPELTGENAUER QUOTIENT 10 8,56 R
    DIV_QUOTIENTEN_ACC QUOTIENT MIT GESÄTTIGTER AKKUMULATORPRÄZISION 12 23,56 R
    DIV_DONE DIVISION BEENDET 17 1 R
    DIV_BY0 NULLDIVISION ERFOLGT 16 1 R
  • Der mehrformatige ganze Teiler 400 kann in Festkomma-Divisionsbetriebsarten oder in einer ganzzahligen Divisionsbetriebsart funktionieren. In der Festkomma-Betriebsart kann der ganze Teiler die Division entweder von zwei einfachgenauen (SP) Zahlen oder die Division einer doppeltgenauen (DP) Zahl durch eine einfachgenaue Zahl unterstützen, wobei die Ergebnisse in ein erweitertes doppeltgenaues Register (ACC) gesetzt werden.
  • FESTKOMMA-DIVISION:
  • Wenn er eine einfachgenaue Division ausführt, kann der ganze Teiler 400 Operationen in den folgenden Formaten unterstützen, wobei x, y die Anzahl der Bits x vor dem Binärkomma und die Anzahl der Bits nach dem Binärkomma angibt:
    8,24 = 8,24/8,24
    8,56 = 8,24/8,24
    24,56 = 8,24/8,24
  • Wenn er eine doppeltgenaue Division ausführt, kann der ganze Teiler 400 Operationen in den folgenden Formaten unterstützen:
    8,24 = 8,56/8,24
    8,56 = 8,56/8,24
    24,56 = 8,56/8,24
  • Die Ausführung einer Division 8,24/8,24 ergibt möglicherweise eine Zahl 33,28. Die sich ergebende Zahl kann somit in einem Sättigungs-Akkumulator (24,56), einem gesättigten doppeltgenauen Registerformat (8,56) und einem gesättigten einfachgenauen Registerformat (8,24) abgebildet werden. In dem einfachgenauen Register können eventuelle überflüssige Bruchzahlbits gekürzt werden.
  • Das Ausführen einer Division 8,56/8,24 ergibt möglicherweise eine Zahl 33,28. Wie für den Fall des Dividierens von zwei einfachgenauen Zahlen kann die sich ergebende Zahl somit in einem Sättigungs-Akkumulator (24,56), einem gesättigten doppeltgenauen Register (8,56) und einem gesättigten einfachgenauen Registerformat (8,24) abgebildet werden. Bei dem einfachgenauen Register können eventuelle überflüssige Bruchzahlbits wieder gekürzt werden. Bei der Festkomma-Betriebsart kann es einen Rest geben.
  • GANZZAHLIGE DIVISION:
  • Bei einer Betriebsart der ganzzahligen Division kann der ganze Teiler 400 die Division einer 64-Bit-Zahl mit Vorzeichen mit einer 32-Bit-Zahl mit Vorzeichen unterstützen. Das Ergebnis kann eine 64-Bit-Zahl sein. In der ganzzahligen Betriebsart kann es einen 32-Bit-Rest geben.
  • VERWENDUNG UND HANDHABUNG VON NULLDIVISIONEN:
  • Der ganze Teiler kann als Teiler mit Vorzeichen konfiguriert sein. Die verschiedenen Betriebsarten des ganzen Teilers können als eine Anzahl von virtuellen Registern abgebildet sein, die auf einer kleineren Anzahl von reellen Registern liegen.
  • Für den Fall einer Nulldivision kann das Ergebnis ein gesättigter Ausgangsquotient von mehr oder weniger einem maximalen numerischen Wert sein, mit einem Rest gleich Null. In der ganzzahligen Betriebsart kann eine derartige Ausgabe eine von 263–1 und –263 sein. In der Festkomma-Betriebsart kann eine derartige gesättigte Ausgabe mehr oder weniger der maximale Wert einer formatierten Zahl 8,56 oder 24,56 sein.
  • Das Quotientenregister 418 und das Restregister 420 können nur aktualisiert werden, wenn der ganze Teiler meldet, dass er seine Operationen beendet hat. Die zuletzt geschriebenen Dividendendaten können behalten werden, wenn eine Division beendet ist, so dass falls sich die Dividendendaten nicht geändert haben, der Benutzer den Dividenden für die nächste Divisionsoperation nicht neu schreiben muss.
  • Obwohl bestimmte Ausführungsformen der vorliegenden Erfindung beschrieben wurden, versteht es sich, dass diverse andere Änderungen in Umfang und Geist der Erfindung möglich sind. Die Erfindung ist nur durch den Umfang der beiliegenden Ansprüche eingeschränkt.
  • Wie zuvor beschrieben betrifft ein Aspekt der vorliegenden Erfindung einen schnellen binären Teiler. Die bereitgestellte Beschreibung wird vorgelegt, um es einem Fachmann auf dem Gebiet zu ermöglichen, die Erfindung umzusetzen und zu verwenden. Zum Zweck der Erklärung werden spezifische Fachausdrücke dargelegt, um ein umfassendes Verständnis der vorliegenden Erfindung bereitzustellen. Die Beschreibungen spezifischer Anwendungen und Verfahren werden rein beispielhaft bereitgestellt. Diverse Änderungen an den bevorzugten Ausführungsformen werden für den Fachmann auf diesem Gebiet ohne Weiteres hervorgehen, und die hier definierten allgemeinen Grundlagen sind auf andere Ausführungsformen und Anwendungen anwendbar, ohne Geist und Umfang der Erfindung zu verlassen. Somit ist die vorliegende Erfindung nicht dazu gedacht, auf die gezeigten Ausführungsformen eingeschränkt zu sein, sondern ist in Übereinstimmung mit den hier offenbarten Grundlagen und Schritten im weitesten Sinne zu verstehen.
  • Wie sie hier verwendet werden, bedeuten die Begriffe „ein, eine, ein” ein oder mehr als ein Element. Der Begriff „Vielzahl” bedeutet zwei oder mehr als zwei Elemente. Die Begriffe „ein anderer, eine andere, ein anderes” werden als ein zweites oder weitere Elemente definiert. Die Begriffe „umfassend” und/oder „aufweisend” sind unbestimmt (z. B. einschließend). In der gesamten vorliegenden Druckschrift wird auf „eine Ausführungsform” oder „bestimmte Ausführungsformen” Bezug genommen, wobei „eine Ausführungsform” oder ähnliche Begriffe bedeuten, dass ein bestimmtes Merkmal, eine Struktur oder ein Kennzeichen, die in Verbindung mit der Ausführungsform beschrieben werden, in mindestens einer Ausführungsform enthalten sind. Somit bezieht sich das Vorkommen derartiger Ausdrücke an verschiedenen Stellen in der gesamten vorliegenden Beschreibung nicht unbedingt immer auf die gleiche Ausführungsform. Ferner können die bestimmten Merkmale, Strukturen oder Kennzeichen auf beliebige geeignete Art und Weise bei einer oder mehreren Ausführungsformen ohne Einschränkung kombiniert werden. Der Begriff „oder”, wie er hier verwendet wird, ist als einschließlich oder eine beliebige oder jede Kombination bedeutend auszulegen. Daher bedeutet „A, B oder C” eines von „A; B; C; A und B; A und C; B und C; A, B und C”. Eine Ausnahme dieser Definition besteht nur, wenn in einer Kombination Elemente, Funktionen, Schritte oder Aktionen auf bestimmte Art und Weise an sich gegenseitig ausschließlich ist.
  • In Übereinstimmung mit den Gewohnheiten der Fachleute auf dem Gebiet der Computerprogrammierung werden die Ausführungsformen mit Bezug auf Operationen beschrieben, die von einem Computersystem oder einem ähnlichen elektronischen System ausgeführt werden können. Solche Operationen werden manchmal als computerausgeführt bezeichnet. Es versteht sich, dass die Operationen, die symbolisch dargestellt werden, die Handhabung durch einen Prozessor, wie etwa eine Zentraleinheit, von elektrischen Signalen, die Datenbits darstellen, und das Pflegen von Datenbits an Speicherstellen, wie etwa in einem Systemspeicher, sowie eine andere Verarbeitung von Signalen umfassen. Die Speicherstellen, an denen die Datenbits gepflegt werden, sind physische Stellen, die bestimmte elektrische, magnetische, optische oder organische Eigenschaften aufweisen, die den Datenbits entsprechen.
  • Wenn sie als Software umgesetzt werden, sind die Elemente der Ausführungsformen im Wesentlichen Code-Segmente, um die notwendigen Aufgaben auszuführen. Die nicht vorübergehenden Code-Segmente können in einem prozessorlesbaren Medium oder einem computerlesbaren Medium gespeichert werden, das ein beliebiges Medium umfassen kann, das Informationen speichern oder übertragen kann. Beispiele derartiger Medien umfassen eine elektronische Schaltung, eine Halbleiter-Speichervorrichtung, einen Festspeicher (ROM), einen Flash-Speicher oder einen anderen nicht flüchtigen Speicher, eine Diskette, eine CD-ROM, eine optische Platte, eine Festplatte, ein Lichtleitfasermedium usw. Die Benutzereingabe kann eine beliebige Kombination aus einer Tastatur, einer Maus, einem Berührungsbildschirm, einer Sprachsteuerung usw. umfassen. Die Benutzereingabe kann ähnlich verwendet werden, um eine Browser-Anwendung, die auf einer Computervorrichtung des Benutzers abläuft, auf ein oder mehrere Netzwerk-Ressourcen, wie etwa Web-Seiten, zu richten, von denen man auf Computer-Ressourcen zugreifen kann.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • ”An Augmented Iterative Array for High-Speed Binary Division” von Maurus Cappa und V. Carl Hamacher in IEEE Transactions on Computers, Bd. C-22, Nr. 2, Februar 1973 [0031]

Claims (24)

  1. Schaltung zum Dividieren von zwei binären Eingabe-Zahlen, umfassend: einen Normierer zum Normieren eines Eingabe-Divisors und eines Eingabe-Dividenden; einen Teilerkern zum Dividieren der normierten Eingaben, um mindestens einen Teilquotienten zu erzeugen; einen Skalierer zum Umkehren der Normierung; und mindestens ein Ausgangsregister zum Ausgeben mindestens des Teilquotienten.
  2. Schaltung nach Anspruch 1, wobei die Schaltung über einen fortgeschrittenen Hochleistungsbus (AHB) kommuniziert.
  3. Schaltung nach Anspruch 1 oder 2, wobei die Schaltung durch den Empfang des Divisors ausgelöst wird.
  4. Schaltung nach einem der vorhergehenden Ansprüche, wobei die Schaltung mindestens eines von einem Nulldivisions-Flag und einem vorbestimmten Quotientenwert ausgibt, wenn ein Nulldivisionsereignis vorkommt.
  5. Schaltung nach einem der vorhergehenden Ansprüche, wobei das bestimmte Register, in das der Dividend geschrieben wird, mindestens eines von einer Betriebsart und einem Datenformat bestimmt.
  6. Schaltung nach einem der vorhergehenden Ansprüche, wobei der Normierer die Divisorbits und die Dividendenbits verschiebt, und der Skalierer die Verschiebungen des Dividenden und des Divisors vergleicht und die Quotientenbits entsprechend verschiebt.
  7. Schaltung nach einem der vorhergehenden Ansprüche, wobei der Normierer den Divisor und den Dividenden normiert, so dass sie jeweils in dem Bereich [0,5, 1,0) liegen.
  8. Schaltung nach einem der vorhergehenden Ansprüche, wobei die Schaltung mindestens einen von einem ganzen Quotienten und einem Teilquotienten berechnet.
  9. Schaltung nach Anspruch 8, wobei der ganze Quotient 64 Bits umfasst und der Teilquotient 24 Bits umfasst.
  10. Schaltung nach einem der vorhergehenden Ansprüche, wobei der Teilerkern zum Dividieren der normierten Eingaben optimiert ist.
  11. Schaltung nach einem der vorhergehenden Ansprüche, wobei der Teilerkern Quotiententeile in abnehmender Reihenfolge der Bitwertigkeit berechnet.
  12. Schaltung nach Anspruch 1, wobei der Teilerkern eine Vielzahl von Quotiententeilbits pro Bustaktzyklus berechnet.
  13. Schaltung nach einem der vorhergehenden Ansprüche, wobei der Teilerkern Quotiententeile berechnet, bis ein vordefiniertes Präzisionsniveau des Quotienten erreicht ist.
  14. Schaltung nach einem der Ansprüche 11 bis 13, wobei die Quotiententeile sechs Bits umfassen.
  15. Schaltung nach einem der vorhergehenden Ansprüche, wobei der Teilerkern einen iterativen Array-Teiler (IAD) nach Cappa umfasst.
  16. Schaltung nach einem der vorhergehenden Ansprüche, wobei der Teilerkern Schieberegister umfasst, die über einen Verschiebe-/Addier-Block mindestens ein Divisorbit nacheinander eingeben und mindestens ein Quotientenbit nacheinander ausgeben, wobei der erste Verschiebe-/Addier-Block anfänglich den Dividenden enthält, wobei jeder Verschiebe-/Addier-Block ein Ausgangsübertragsbit und ein Ausgangssummenbit berechnet, die jeweils zweimal ein Eingangssummenbit plus einem Dividendenbit plus einem Divisorbit mit einem Vorzeichen gemäß einem Eingabe-Übertragsbitwert sind, wobei das Quotientenbit das Ausgangsübertragsbit ist, und wobei das Ausgangsübertragsbit und das Ausgangssummenbit mindestens eines werden von: an einen folgenden Verschiebe-/Addier-Block weitergegeben und zu dem ersten Verschiebe-/Addier-Block zurückgeführt zum Berechnen eines anderen Quotientenbits.
  17. Schaltung nach einem der vorhergehenden Ansprüche, wobei die Schaltung ferner einen Vorzeichenregler umfasst, der ein Quotienten-Vorzeichenbit aus einem exklusiven ODER eines Dividenden-Vorzeichenbits und eines Divisor-Vorzeichenbits berechnet.
  18. Schaltung nach einem der vorhergehenden Ansprüche, wobei das Ausgangsregister ein Sättigungs-Akkumulator ist.
  19. Verfahren zum Dividieren von zwei binären Eingabe-Zahlen, umfassend folgende Schritte: Normieren eines Divisors und eines Dividenden; Dividieren der normierten Eingaben, um mindestens einen Teilquotienten zu erzeugen; Umkehren der Normierung; und Ausgeben des mindestens einen Teilquotienten.
  20. Verfahren nach Anspruch 19, wobei die Normierung den Divisor und den Dividenden skaliert, damit sie jeweils in dem Bereich von [0,5, 1,0) liegen.
  21. Verfahren nach Anspruch 19 oder 20, wobei das Dividieren nach und nach Quotiententeile in abnehmender Reihenfolge der Bitwertigkeit ergibt, bis ein vordefiniertes Präzisionsniveau des Quotienten erreicht ist.
  22. System zum Dividieren von zwei binären Eingabe-Zahlen, umfassend: Mittel zum Normieren eines Divisors und eines Dividenden; Mittel zum Dividieren der normierten Eingaben, um mindestens einen Teilquotienten zu erzeugen; Mittel zum Umkehren der Normierung; und Mittel zum Ausgeben des mindestens einen Teilquotienten.
  23. System nach Anspruch 22, wobei das Mittel zum Normieren den Divisor und den Dividenden skaliert, damit sie jeweils in dem Bereich von [0,5, 1,0) liegen.
  24. System nach Anspruch 22 oder 23, wobei das Mittel zum Dividieren nach und nach Quotiententeile in abnehmender Reihenfolge der Bitwertigkeit ergibt, bis ein vordefiniertes Präzisionsniveau des Quotienten erreicht ist.
DE102014100108.7A 2013-01-08 2014-01-07 Festkomma-divisionschaltung unter verwendung einer gleitkomma-architektur Withdrawn DE102014100108A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/736,677 2013-01-08
US13/736,677 US20140195581A1 (en) 2013-01-08 2013-01-08 Fixed point division circuit utilizing floating point architecture

Publications (1)

Publication Number Publication Date
DE102014100108A1 true DE102014100108A1 (de) 2014-07-10

Family

ID=51019306

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014100108.7A Withdrawn DE102014100108A1 (de) 2013-01-08 2014-01-07 Festkomma-divisionschaltung unter verwendung einer gleitkomma-architektur

Country Status (3)

Country Link
US (1) US20140195581A1 (de)
CN (1) CN103914276A (de)
DE (1) DE102014100108A1 (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9218157B2 (en) * 2012-09-20 2015-12-22 Oracle International Corporation Performing a division operation using a split division circuit
DE102014200493A1 (de) * 2014-01-14 2015-07-16 Robert Bosch Gmbh Verfahren und Vorrichtung zur Berechnung eines Ergebniswertes einer Division aus einem Dividenden und einem Divisor
JP2016062404A (ja) * 2014-09-19 2016-04-25 サンケン電気株式会社 演算処理方法及び演算処理装置
US9753694B2 (en) * 2015-04-21 2017-09-05 Qualcomm Incorporated Division and root computation with fast result formatting
CN106020769B (zh) * 2016-06-22 2018-09-14 上海兆芯集成电路有限公司 浮点除法器以及浮点除法器操作方法
US10216479B2 (en) * 2016-12-06 2019-02-26 Arm Limited Apparatus and method for performing arithmetic operations to accumulate floating-point numbers
GB2558911B (en) * 2017-01-19 2019-12-25 Imagination Tech Ltd Formal verification of integrated circuit hardware designs to implement integer division
US10671345B2 (en) * 2017-02-02 2020-06-02 Intel Corporation Methods and apparatus for performing fixed-point normalization using floating-point functional blocks
CN107766031B (zh) 2017-11-14 2020-06-19 京东方科技集团股份有限公司 分段式除法器、分段式除法运算方法、以及电子设备
JP7036075B2 (ja) * 2019-03-26 2022-03-15 日本電産株式会社 整数除算装置およびモータ制御装置
US11301247B2 (en) * 2019-12-19 2022-04-12 Marvell Asia Pte Ltd System and method for handling floating point hardware exception
CN113312021A (zh) * 2020-02-27 2021-08-27 南京航空航天大学 基于阵列和对数除法器的近似混合除法器电路
GB2607369B (en) * 2021-11-30 2023-07-12 Imagination Tech Ltd Truncated array for performing division

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61213927A (ja) * 1985-03-18 1986-09-22 Hitachi Ltd 浮動小数点演算処理装置
US5140545A (en) * 1991-02-13 1992-08-18 International Business Machines Corporation High performance divider with a sequence of convergence factors
US5301139A (en) * 1992-08-31 1994-04-05 Intel Corporation Shifter circuit for multiple precision division
US5828591A (en) * 1992-11-02 1998-10-27 Intel Corporation Method and apparatus for using a cache memory to store and retrieve intermediate and final results
US5825681A (en) * 1996-01-24 1998-10-20 Alliance Semiconductor Corporation Divider/multiplier circuit having high precision mode
US8706790B1 (en) * 2009-03-03 2014-04-22 Altera Corporation Implementing mixed-precision floating-point operations in a programmable integrated circuit device
US8452831B2 (en) * 2009-03-31 2013-05-28 Oracle America, Inc. Apparatus and method for implementing hardware support for denormalized operands for floating-point divide operations
TWI444889B (zh) * 2011-03-31 2014-07-11 Realtek Semiconductor Corp 複數除法器及其相關方法
CN102231101B (zh) * 2011-07-29 2015-02-25 电子科技大学 一种除法器及除法处理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"An Augmented Iterative Array for High-Speed Binary Division" von Maurus Cappa und V. Carl Hamacher in IEEE Transactions on Computers, Bd. C-22, Nr. 2, Februar 1973

Also Published As

Publication number Publication date
CN103914276A (zh) 2014-07-09
US20140195581A1 (en) 2014-07-10

Similar Documents

Publication Publication Date Title
DE102014100108A1 (de) Festkomma-divisionschaltung unter verwendung einer gleitkomma-architektur
DE3144015C2 (de)
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
DE112007001989B4 (de) Ausführung von Rundungsoperationen entsprechend einer Anweisung
DE68924477T2 (de) Gleitkommaeinheit mit gleichzeitiger Multiplikation und Addition.
DE3855497T2 (de) Datenverarbeitungsgerät zur Berechnung eines multiplikativ invertierten Elements eines endigen Körpers
DE69821408T2 (de) Multiplikationsverfahren und -vorrichtung
DE69130510T2 (de) Arithmetisches Gerät zur Berechnung von transzendenten Elementarfunktionen
DE69321241T2 (de) Hochleistungsmantissendividierer.
DE112020003600T5 (de) Hardware für maschinelles lernen mit parameterkomponenten mit reduzierter genauigkeit für effiziente parameteraktualisierung
DE19758079A1 (de) Verfahren und Vorrichtung zur Galoisfeld-Multiplikation
DE60131247T2 (de) Dezimal-Binär Kodierer/Dekodierer
DE69032890T2 (de) Verfahren und Gerät zur Ausführung der Quadratwurzelfunktion mit Hilfe eines Multiplizierers rechteckigen Seitenverhältnisses
DE112019001799T5 (de) Erweitertes formatieren von binären gleitkommazahlen mit geringerer genauigkeit
DE68924386T2 (de) Verfahren und Gerät zur Radix-2**n-Division mit überlappender Quotientenbitauswahl und gleichzeitiger Rundung und Korrektur des Quotienten.
DE102015114162A1 (de) Effiziente Interpolation
DE102014114074A1 (de) Hochleistungs-Gleitkomma-Addierer mit vollständiger In-Line-Denormal/Subnormal-Unterstützung
DE102013204515A1 (de) Schnelle Prädikattabellensuchen unter Verwendung einer Architektur mit einer Einzelanweisung und mehrfachen Daten
DE69326793T2 (de) Parallelisierter Grössevergleicher zum Vergleichen einer Binärzahl mit einer bestimmten Zahl
DE2222197C3 (de) Anordnung zum Auf- bzw. Abrunden von Binärzahlen
EP1499954B1 (de) Berechnung eines ergebnisses einer modularen multiplikation
DE102014225039A1 (de) Verfahren und Vorrichtung zum Bereitstellen von spärlichen Gauß-Prozess-Modellen zur Berechnung in einem Motorsteuergerät
DE2830334C2 (de)
DE102013212840B4 (de) Modellberechnungseinheit und Steuergerät zur Berechnung eines datenbasierten Funktionsmodells mit Daten in verschiedenen Zahlenformaten

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee