DE102014200493A1 - Verfahren und Vorrichtung zur Berechnung eines Ergebniswertes einer Division aus einem Dividenden und einem Divisor - Google Patents

Verfahren und Vorrichtung zur Berechnung eines Ergebniswertes einer Division aus einem Dividenden und einem Divisor Download PDF

Info

Publication number
DE102014200493A1
DE102014200493A1 DE102014200493.4A DE102014200493A DE102014200493A1 DE 102014200493 A1 DE102014200493 A1 DE 102014200493A1 DE 102014200493 A DE102014200493 A DE 102014200493A DE 102014200493 A1 DE102014200493 A1 DE 102014200493A1
Authority
DE
Germany
Prior art keywords
value
quotient
division
divisor
changed
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
DE102014200493.4A
Other languages
English (en)
Inventor
Alexander Uhl
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102014200493.4A priority Critical patent/DE102014200493A1/de
Priority to CN201510015444.7A priority patent/CN104778027A/zh
Publication of DE102014200493A1 publication Critical patent/DE102014200493A1/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/5355Using iterative approximation not using digit recurrence, e.g. Newton Raphson or Goldschmidt

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)

Abstract

Die Erfindung betrifft ein Verfahren (400) zur Berechnung eines Ergebniswertes (Q) einer Division aus einem Dividenden (X) und einem Divisor (D). Das Verfahren (400) umfasst einen Schritt des Setzens (410) eines Quotientenwertes (Q0, Qi) auf einen Initialwert (0) und eines Restwertes (r0, ri) auf einen vom Dividenden (X) abhängigen Initialwert (X). Ferner umfasst das Verfahren (400) einen Schritt des Bestimmens (420) eines Divisionswertes unter Verwendung des Restwertes (r0, ri) und des Divisors (D) sowie unter Verwendung zumindest einer Logarithmusfunktion. Auch umfasst das Verfahren (400) einen Schritt des Bildens (430) eines veränderten Quotientenwertes (Q1, Qi+1) und eines veränderten Restwertes (r1, ri+1) unter Verwendung des Quotientenwertes (Q0, Qi) und des Divisionswertes. Schließlich umfasst das Verfahren (400) einen Schritt des Ermittelns (440) des Ergebniswertes (Q) in Abhängigkeit vom veränderten Quotientenwert (Q1, Qi+1), wenn der veränderte Restwert (r1, ri+1) in einer vorbestimmten Beziehung zu dem Divisor (D) steht.

Description

  • Stand der Technik
  • Die vorliegende Erfindung bezieht sich auf ein Verfahren zur Berechnung eines Ergebniswertes einer Division aus einem Dividenden und einem Divisor, auf eine entsprechende Vorrichtung sowie auf ein entsprechendes Computerprogrammprodukt.
  • Für die Berechnung der Division existieren verschiedene Verfahren. Grundsätzlich kann hier unterschieden werden, ob die Division in Software oder in Hardware berechnet wird. In Mikroprozessoren bzw. Signalprozessoren, welche keine Hardware-Einheit (d. h. keinen Divisions-Befehl) zur Berechnung der Division besitzen kann die Division durch Software, d. h. durch eine Abfolge von Maschinenbefehlen (Addition, Subtraktion, Sprünge, ...) berechnet werden, was naturgemäß sehr langsam ist. Mikroprozessoren mit Hardware-Einheit für Division können die Division sehr viel schneller berechnen. Beispiele für Hardware-Dividierer sind sog. Restoring Dividierer und Nonrestoring Dividierer [siehe beispielsweise I. Koren, Computer Arithmetic Algorithms. AK Peter, 2001 oder B. Parhami, Computer Arithmetic – Algorithms and Hardware Designs. Oxford University Press, 200].
  • Diese sind in Bezug auf die benötigte Chipfläche sehr effizient allerdings dauert die Berechnung der Division länger als bei schnelleren Dividierern. Restoring bzw. Nonrestoring Dividierer benötigen zur Berechnung der Division eines binären 2n Bit Wortes durch ein binäres n Bit Wort n Takte.
  • Eine Klasse von schnelleren Dividierern sind sogenannte High-Radix Dividierer wie sie in den vorstehend genannten Schriften beschrieben wurden. Diese benötigen je nach Wahl des Radix m (m = 2k, z. B. m = 4,8,16, etc.) zur Berechnung der Division eines 2n Bit Wortes durch ein n Bit Wort ⌈ n / k ⌉ Takte.
  • Dementsprechend sind die Anforderungen an die Chipfläche verglichen mit den Restoring/Nonrestoring Dividierern größer. Je nach Implementierung benötigen High-Radix Dividierer zusätzliche ROMs zur Berechnung der Division.
  • Eine weitere Klasse von Algorithmen zur Divisionsberechnung benutzt Hardware welche in den meisten Mikroprozessoren vorhanden ist: Multiplizierer bzw. Multiplizier-Akkumulier-Einheiten (sog. MACs). Werden diese Algorithmen in Hardware implementiert, so hat dies den Vorteil, dass der zusätzliche Hardware-Aufwand verglichen mit schnellen Dividierern klein ist, diese Algorithmen aber dennoch eine sehr schnelle Divisionsberechnung ermöglichen. Diese Verfahren sind z. B. Division durch Multiplikative Normalisierung und Division durch Kehrwertbildung, wie sie beispielsweise in den vorstehend genannten Schriften offenbart sind. Beide Verfahren haben eine sehr schnelle Konvergenz allerdings haben beide Verfahren den Nachteil, dass das Ergebnis nicht exakt (beispielsweise nach Tabelle 1) berechnet wird, sondern Restfehler von –1 LSB im Ergebnis des Quotienten Q auftreten können, selbst wenn die Rechnung mit unbegrenzter Wortbreite ausgeführt wird.
  • Figure DE102014200493A1_0002
    Tabelle 1
  • Tabelle 1 zeigt dabei das korrekte Vorzeichen des Quotienten Q und des Divisionsrests R bei Division von Zahlen mit Vorzeichen (signed integer).
  • Werden die Verfahren auf Multiplizierern mit begrenzter Wortbreite ausgeführt (z. B. auf einem n·n → 2n Bit Multiplizierer für die Division von 2n / n Bit) so sind betragsmäßig größere Restfehler möglich. Einen Divisionsrest liefern diese Verfahren nicht direkt, er muss eventuell getrennt berechnet werden. Des Weiteren müssen die Operanden auf bestimmte Art normiert werden, bevor die Division berechnet werden kann.
  • Offenbarung der Erfindung
  • Vor diesem Hintergrund wird mit dem hier vorgestellten Ansatz ein Verfahren zur Berechnung eines Ergebniswertes einer Division aus einem Dividenden und einem Divisor, weiterhin eine Vorrichtung, die das dieses Verfahren verwendet sowie schließlich ein entsprechendes Computerprogrammprodukt gemäß den Hauptansprüchen vorgestellt. Vorteilhafte Ausgestaltungen ergeben sich aus den jeweiligen Unteransprüchen und der nachfolgenden Beschreibung.
  • Der vorliegende Ansatz schafft ein Verfahren zur Berechnung eines Ergebniswertes einer Division aus einem Dividenden und einem Divisor, wobei das Verfahren die folgenden Schritte aufweist:
    • – Setzen eines Quotientenwertes auf einen Initialwert und eines Restwertes auf einen vom Dividenden abhängigen Initialwert;
    • – Bestimmen eines Divisionswertes unter Verwendung des Restwertes und des Divisors unter Verwendung zumindest einer Logarithmusfunktion;
    • – Bilden eines veränderten Quotientenwertes und eines veränderten Restwertes unter Verwendung des Quotientenwertes und des Divisionswertes; und
    • – Ermitteln des Ergebniswertes in Abhängigkeit vom veränderten Quotientenwert, wenn der veränderte Restwert in einer vorbestimmten Beziehung zu dem Divisor steht.
  • Unter einem Quotientenwert kann ein Wert einer Division verstanden werden. Dabei kann der Quotientenwert zunächst auf einen Initialwert von beispielsweise 0 gesetzt werden. Unter einem Restwert kann beispielsweise ein Wert verstanden werden, der eine Differenz zwischen dem Dividenden und einem Produkt aus dem Quotientenwert und dem Divisor repräsentiert. Dabei kann der Restwert als verbleibender Fehler verstanden werden, wenn der Quotientenwert als tatsächliches Ergebnis der Division zwischen dem Dividenden und dem Divisor betrachtet wird. Unter einem veränderten Restwert oder einem veränderten Quotientenwert kann ein Restwert oder ein Quotienten verstanden werden, der unter Verwendung eines zuvor bestimmten Wertes aktualisiert oder angepasst wurde. Unter einem Ergebniswert kann ein Wert verstanden werden, der vom veränderten Quotientenwert abhängig ist. Dabei wird der Ergebniswert dann ermittelt, wenn der veränderte Restwert in einer vorbestimmten Beziehung zu dem Divisor steht.
  • Der hier vorgeschlagene Ansatz basiert auf der Erkenntnis, dass durch die Anpassung oder Veränderung des Quotientenwerts und einer nachfolgenden Verwendung dieses Quotientenwerts zur Bestimmung des Ergebniswerts eine sehr präzise und schnelle Berechnung eines Ergebnisses der Division aus dem Dividenden und dem Divisor möglich ist. Insbesondere lässt sich durch rekursive Ausführung von einzelnen Schritten unter entsprechender Anpassung des Restwerts und/oder des Quotientenwerts numerisch oder schaltungstechnisch sehr einfach die Berechnung einer Division durchführen. Auch lässt sich mit dem hier vorgestellten Ansatz eine für die Implementierung einer Vorrichtung zur Berechnung eines Ergebniswertes einer Division aus einem Dividenden und einem Divisor erforderliche Chipfläche in einer integrierten Schaltung sehr gering halten. In diesem Zusammenhang kann insbesondere eine Filtereinheit besonders effizient implementiert werden, die in Anwendungen der Signalverarbeitung oftmals einen zentralen Baustein darstellt. Eine solche Filtereinheit bietet in diesem Fall den Vorteil, ein sehr präzises Filterergebnis in sehr kurzer Verarbeitungszeit bereitstellen zu können.
  • Günstig ist eine Ausführungsform der vorliegenden Erfindung, bei der im Schritt des Ermittelns als Ergebniswert der veränderte Quotientenwert ermittelt wird, wenn der veränderte Restwert gleich null ist und/oder wenn der veränderte Restwert größer als Null und ein Absolutwert des veränderten Restwertes kleiner als ein Absolutwert des Divisors ist. Eine solche Ausführungsform der vorliegenden Erfindung bietet den Vorteil, dass eine weitere Verarbeitung des veränderten Quotientenwert nicht erforderlich ist, sodass der Ergebniswert mit einer sehr kurzen Verarbeitungszeit bereitgestellt werden kann.
  • Gemäß einer anderen Ausführungsform der vorliegenden Erfindung kann im Schritt des Ermittelns als Ergebniswert ein um den Wert von eins verminderter veränderter Quotientenwert ermittelt werden, wenn der veränderte Restwert kleiner als Null und ein Absolutwert des veränderten Restwertes kleiner oder gleich einem Absolutwert des Divisors ist und/oder wobei als Ergebniswert ein um den Wert von eins vergrößerter veränderter Quotientenwert ermittelt wird, wenn der veränderte Restwert größer als Null und ein Absolutwert des veränderten Restwertes gleich einem Absolutwert des Divisors ist. Eine solche Ausführungsform der vorliegenden Erfindung bietet den Vorteil, dass der veränderte Quotientenwert in bestimmten Situationen lediglich geringfügig geändert werden braucht, um als Ergebniswert der Division zwischen dem Dividenden und dem Divisor verwendet werden zu können. Auf diese Weise lässt sich ebenfalls eine sehr schnell arbeitende Divisionseinheit zu Bereitstellung des Ergebniswerts vorteilhaft realisieren.
  • Besonders präzise ist eine Ausführungsform der vorliegenden Erfindung, bei der ein Schritt des Neuzuweisens des Restwertes auf den Wert des veränderten Restwertes und des Quotientenwertes auf einen Wert des veränderten Quotientenwertes vorgesehen ist, wonach die Schritte des Bestimmens und des Bildens erneut ausgeführt werden. Eine solche Ausführungsform der vorliegenden Erfindung ermöglicht die rekursive Ausführung von einzelnen Schritten eines hier vorgestellten Verfahrens, insbesondere unter Verwendung von geänderten Eingangsparametern dieser Schritte, sodass mit diesem Rekursionszyklus eine weitere Verbesserung der Präzision bzw. Genauigkeit des Ergebnisses der Division realisiert werden kann.
  • In einer anderen Ausführungsform der vorliegenden Erfindung kann der Schritt des Neuzuweisens, des Bestimmens und des Bildens dann ausgeführt werden, wenn vor dem Schritt des Neuzuweisens der veränderte Restwert kleiner als Null und ein Absolutwert des veränderten Restwertes größer als ein Absolutwert des Divisors ist und/oder wenn vor dem Schritt des Neuzuweisens der veränderte Restwert größer als Null und ein Absolutwert des veränderten Restwertes größer als ein Absolutwert des Divisors ist. Eine solche Ausführungsform der vorliegenden Erfindung bietet den Vorteil, die erforderliche rekursive Ausführung von Teilschritten des Verfahrens lediglich dann durchzuführen, wenn diese anhand einer vordefinierten Bedingung auch zu einer Verbesserung der Präzision oder Genauigkeit des Ergebnisses der Division führt.
  • Gemäß einer besonders günstigen Ausführungsform der vorliegenden Erfindung können die Schritte des Neuzuweisens, des Bestimmens und des Bildens mehrfach hintereinander ausgeführt werden. Auf diese Weise kann vorteilhaft erreicht werden, dass mit jedem Ausführungszyklus der genannten Teilschritte die Präzision oder Genauigkeit des Ergebnisses der Division erhöht werden kann, bis beispielsweise ein exaktes Ergebnis der Division getroffen ist oder ein verbleibender Restfehler unterhalb einer bestimmten Schwelle liegt.
  • Technisch besonders effizient ist eine Ausführungsform der vorliegenden Erfindung umsetzbar, wenn im Schritt des Bestimmens ein Differenzwert unter Bildung eines Logarithmuswert des Dividenden und eines Logarithmuswerts des Divisors gebildet wird, wobei der Divisionswert unter Verwendung des Differenzwertes als Exponenten einer Basiszahl gebildet wird. Durch die Verwendung der Logarithmusfunktion lässt sich somit eine Division auf eine technisch sehr einfach umzusetzende Differenzbildung reduzieren.
  • Gemäß einer Ausführungsform der vorliegenden Erfindung kann auch im Schritt des Bildens der veränderte Quotientenwert durch Addition des Divisionswertes und des Quotientenwerts oder durch Subtraktion des Divisionswertes von dem Quotientenwert gebildet werden und/oder wobei der veränderte Restwert durch eine Subtraktion eines Produktes aus dem veränderten Quotientenwert und dem Divisor von dem Dividenden gebildet wird. Eine solche Ausführungsform der vorliegenden Erfindung bietet den Vorteil einer numerisch oder schaltungstechnisch sehr einfachen Bildung des veränderten Quotientenwertes, der nachfolgend als Basis zur Ermittlung des Ergebniswerts verwendet werden kann.
  • Günstig ist ferner eine Ausführungsform der vorliegenden Erfindung als Vorrichtung zur Berechnung eines Ergebniswertes einer Division aus einem Dividenden und einem Divisor, wobei das Verfahren die folgenden Schritte aufweist:
    • – einer Einheit zum Setzen eines Quotientenwertes auf einen Initialwert und eines Restwertes auf einen vom Dividenden abhängigen Initialwert;
    • – einer Einheit zum Bestimmen eines Divisionswertes unter Verwendung des Restwertes und des Divisors unter Verwendung zumindest einer Logarithmusfunktion;
    • – einer Einheit zum Bilden eines veränderten Quotientenwertes und eines veränderten Restwertes unter Verwendung des Quotientenwertes und des Divisionswertes; und
    • – einer Einheit zum Ermitteln des Ergebniswertes in Abhängigkeit vom veränderten Quotientenwert, wenn der veränderte Restwert in einer vorbestimmten Beziehung zu dem Divisor steht.
  • Beispielsweise kann eine solche Vorrichtung Teil einer Filtereinheit sein, in der eine besonders schnelle und genaue Verarbeitung von Signalen erforderlich ist, insbesondere wobei ein Signal als Dividend mit einem anderen Signal als Divisor verknüpft wird, um ein gefiltertes Signal zu erhalten. Auch durch eine solche Ausführungsform der vorliegenden Erfindung lässt sich der hier vorgestellte Ansatz effizient und kostengünstig implementieren.
  • Der hier vorgestellte Ansatz schafft somit eine Vorrichtung, die ausgebildet ist, um die Schritte einer Variante eines hier vorgestellten Verfahrens in entsprechenden Einrichtungen durchzuführen bzw. umzusetzen. Auch durch diese Ausführungsvariante der Erfindung in Form einer Vorrichtung kann die der Erfindung zugrunde liegende Aufgabe schnell und effizient gelöst werden.
  • Unter einer solchen Vorrichtung kann vorliegend ein elektrisches Gerät verstanden werden, das Sensor- und/oder Datensignale verarbeitet und in Abhängigkeit davon Steuer- und/oder Datensignale ausgibt. Die Vorrichtung kann eine Schnittstelle aufweisen, die hard- und/oder softwaremäßig ausgebildet sein kann. Bei einer hardwaremäßigen Ausbildung können die Schnittstellen beispielsweise Teil eines sogenannten System-ASICs sein, der verschiedenste Funktionen der Vorrichtung beinhaltet. Es ist jedoch auch möglich, dass die Schnittstellen eigene, integrierte Schaltkreise sind oder zumindest teilweise aus diskreten Bauelementen bestehen. Bei einer softwaremäßigen Ausbildung können die Schnittstellen Softwaremodule sein, die beispielsweise auf einem Mikrocontroller neben anderen Softwaremodulen vorhanden sind.
  • Von Vorteil ist auch ein Computerprogrammprodukt mit Programmcode, der auf einem maschinenlesbaren Träger wie einem Halbleiterspeicher, einem Festplattenspeicher oder einem optischen Speicher gespeichert sein kann und zur Durchführung des Verfahrens nach einer der vorstehend beschriebenen Ausführungsformen verwendet wird, wenn das Programmprodukt auf einem Computer oder einer Vorrichtung ausgeführt wird.
  • Auch wird mit dem hier vorgestellten Ansatz eine Signalverarbeitungsvorrichtung mit folgenden Merkmalen vorgestellt:
    • – einer Einleseschnittstelle zur Einlesen eines Signals, das eine physikalische Größe repräsentiert;
    • – einer Vorrichtung gemäß einer hier vorgestellten Variante, wobei von der Vorrichtung ausgebildet ist, um die physikalische Größe oder einen von der physikalischen Größe abgeleiteten Wert als Dividenden und/oder als Divisor zu verarbeiten; und
    • – eine Steuer- und/oder Signalisierungseinheit, die ausgebildet ist, um ein Steuersignal und/oder ein Datensignal unter Verwendung des Ergebniswertes bereitzustellen.
  • Die Einleseschnittstelle kann hierbei das die physikalische Größe repräsentierende Signal von einem Sensor einlesen. Unter einer physikalischen Größe kann vorliegend eine gemessene Spannung, ein gemessener Strom, ein gemessener Druck, eine gemessene Beschleunigung oder eine andere Größe verstanden werden, die mittels eines Sensors erfassbar ist und in einem entsprechenden Signal abgebildet ist. Auch kann in einer Ausführungsform der hier vorgestellten Vorrichtung der Sensor selbst Teil der Signalverarbeitungsvorrichtung sein. Denkbar ist beispielsweise ein Einsatz von einer Ausführungsform der vorliegenden Erfindung in Mikroprozessoren, Auch kann eine Ausführungsform der vorliegenden Erfindung einen Einsatz zur Filterberechnung finden. Somit kann ein Einsatz des Dividierers in modernen Signalverarbeitungsalgorithmen (z. B. Kalman-Filter) erfolgen. Auch kann ein Einsatz einer solchen Vorrichtung in Mikroprozessoren erfolgen, welche eine MAC besitzen und für eine bestimmte Anwendung mit einem Dividierer ausgerüstet werden sollen. Solche beispielhaften Ausführungsformen der vorliegenden Erfindung bieten ebenfalls den Vorteil, dass eine Signal- und/oder Datenverarbeitung auf der Basis der physikalischen Größe schnell, schaltungstechnisch und/oder numerisch einfach und zugleich kostengünstig ausgeführt werden kann.
  • Der hier vorgestellte Ansatz wird nachstehend anhand der beigefügten Zeichnungen beispielhaft näher erläutert. Es zeigen:
  • 1 ein Blockschaltbild einer Vorrichtung zur Berechnung der Division gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
  • 2 ein Blockschaltbild einer weiteren Vorrichtung zur Berechnung der Division gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
  • 3 ein Blockschaltbild einer Einheit zur Implementierung einer Ablaufsteuerung zur Verwendung in einem Ausführungsbeispiel der vorliegenden Erfindung; und
  • 4 ein Ablaufdiagramm eines Verfahrens gemäß einem Ausführungsbeispiel der vorliegenden Erfindung
  • In der nachfolgenden Beschreibung günstiger Ausführungsbeispiele der vorliegenden Erfindung werden für die in den verschiedenen Figuren dargestellten und ähnlich wirkenden Elemente gleiche oder ähnliche Bezugszeichen verwendet, wobei auf eine wiederholte Beschreibung dieser Elemente verzichtet wird.
  • Ein Ziel des hier vorgestellten Ansatzes ist die Bereitstellung eines Verfahrens und einer Schaltung zur schnellen Berechnung der Division unter Einsatz einer vorhandenen MAC-Einheit. Das Ergebnis der Berechnung von X / D ist exakt und besteht sowohl aus dem Quotient Q als auch aus dem Divisionsrest R, so dass Gleichung (1) erfüllt ist. X = Q·D + R (1)
  • Sind X und D ganze Zahlen mit Vorzeichen (signed integer), so sind der Quotient Q und der Divisionsrest D wie in Tabelle 1 dargestellt definiert. Ein Zahlenbeispiel für unterschiedliche Werte bei der Division von signed integer Zahlen ist in Tabelle 2 gegeben.
    X D Q R Fall
    234 12 19 6 I
    –234 12 –19 –6 II
    234 –12 –19 6 III
    –234 –12 19 –6 IV
    Tabelle 2
  • Der Vorteil des hier vorgestellten Ansatzes besteht darin, dass im Unterschied zu den zwei Verfahren welche Multiplizierer zur Berechnung der Division einsetzen (siehe beispielsweise die vorstehend genannten Schriften) das Ergebnis exakt berechnet wird. Des Weiteren ist am Ende der Berechnung der Divisionsrest in einem Register gespeichert, er liegt also als Ergebnis direkt vor. Des Weiteren müssen die Operanden nicht normiert vorliegen. Die Anzahl der Takte zur Berechnung kann durch die Genauigkeit der Log2-Approximation beeinflusst werden, somit ist die Geschwindigkeit der Divisionsberechnung einstellbar und schnell. Im Vergleich zu High-Radix-Dividierern ist der Bedarf an zusätzlicher Chip-Fläche klein.
  • Formel (2) zeigt eine bekannte Rechenregel für Logarithmen welche zur Berechnung einer Division, d. h. der Berechnung eines Quotienten Q = X / D (mit X > 0 und D > 0) herangezogen werden kann. log2(Q) = log2( X / D) = log2(X) – log2(D) (2)
  • Mit dieser Rechenregel lässt sich die Division in drei Schritten berechnen:
    • 1. Logarithmierung: Berechnung der Logarithmusfunktion (zur Basis 2) des Dividenden X und des Divisors D.
    • 2. Berechnung der Differenz Diff der Logarithmen: Diff = log2(X) – log2(D).
    • 3. Delogarithmierung: Berechnung der Exponentialfunktion (zur Basis 2) der Differenz Diff: Q = exp2(Diff) = 2Diff.
  • Die Realisierung der Logarithmusfunktion und der Exponentialfunktion durch Schaltungen, welche das Ergebnis in einem Takt bereitstellen, ist nur durch Einsatz von Näherungsverfahren möglich. Ein Beispiel für ein Näherungsverfahren zur Berechnung des log2 ist die sog. Mitchell-Approximation. Für dieses Näherungsverfahren existieren sehr effiziente Realisierungen als kombinatorische Schaltung. Aufgrund der Fehler der Näherungsverfahren sind mit dem oben dargestellten Divisionsverfahren berechnete Quotienten Q nicht exakt. Der Einsatz dieses Divisionsverfahrens wird im Folgenden als Logarithmische Division bezeichnet und in Gleichungen durch den Operator Log2-Div(X, D) ausgedrückt (Log2-Div(X, D) ≈ X / D ).
  • Das Prinzip des hier vorgestellten neuen Verfahrens sieht nun vor durch geschickte Kombination der oben dargestellten näherungsweisen Berechnung des Quotienten mittels Logarithmischer Division und dem Einsatz einer MAC-Einheit den Quotient exakt zu berechnen.
  • Eine MAC-Einheit (Multiply Accumulate Einheit) ist eine arithmetische Einheit, welche Bestandteil der meisten digitalen Signalprozessoren ist. Mit Hilfe einer MAC können Multiplikationen zweier Zahlen (B, C) ausgeführt werden und das Ergebnis zu einem bereits (im Akkumulator A) gespeicherten Wert hinzuaddiert und meist auch subtrahiert werden (siehe Formel (3)). A = A ± B·C (3)
  • Im Folgenden wird das neue Divisionsverfahren anhand der Division zweier positiver Zahlen X und D erläutert.
  • Als Startwert für den gesuchten Quotienten Q wird Q0 = 0 gewählt. Mit der MAC-Einheit kann geprüft werden ob Q0 dem exakten Quotienten entspricht, hierzu wird die Berechnung X = Q0·D in der MAC durchgeführt, siehe Formel (4). Das Ergebnis der Berechnung wird als Rest r0 bezeichnet und gibt Auskunft, ob der exakte Wert für Q gefunden wurde. Q0 = 0 r0 = X – Q0·D = X (4)
  • Ist |r0| > |D|, so ist der exakte Quotient noch nicht gefunden, ist dagegen |r0| ≤ |D|, so ist der Quotient gefunden. Die Bedeutung der verschiedenen Werte der Reste r ist in Tabelle 3 allgemein für den Rest ri im Rechenschritt i dargestellt (hier: i = 0).
    ri Bedeutung
    ri < 0 und |ri| ≤ |D| Quotient ist gefunden: Q = Qi – 1
    ri < 0 und |ri| > |D| Quotient ist noch nicht gefunden: Q < Qi
    ri = 0 Quotient ist gefunden: Q = Qi
    ri > 0 und |ri| < |D| Quotient ist gefunden: Q = Qi
    ri > 0 und |ri| = |D| Quotient ist gefunden: Q = Qi + 1
    ri > 0 und |ri| > |D| Quotient ist noch nicht gefunden: Q > Qi
    Tabelle 3
  • Ist der Quotient noch nicht gefunden, so wird der Rest r0 mittels Logarithmischer Division durch D geteilt und das Ergebnis zum aktuellen Quotient Q0 hinzuaddiert bzw. subtrahiert um diesen zu korrigieren. Die Entscheidung ob subtrahiert oder addiert wird hängt vom Vorzeichen des aktuellen Rests r0 ab. Ist der Rest r0 > 0, so bedeutet dies, dass der Quotient Q0 noch zu klein ist, d. h. das Ergebnis der Logarithmischen Division wird zu Q0 hinzuaddiert, ist r0 < 0, so wird subtrahiert (siehe Tabelle 3). Somit ergibt sich für den nächsten Berechnungsschritt:
    Figure DE102014200493A1_0003
  • Nun kann wieder mit der MAC geprüft werden, ob der Quotient Q gefunden wurde, hierzu wird r1 berechnet und anschließend mit den Bedingungen in Tabelle 3 verglichen. r1 = X – Q1·D (6)
  • Ist der Quotient noch nicht gefunden, so werden die zwei Berechnungsschritte solange weitergeführt, bis der Quotient gefunden ist. Die allgemeine Formulierung der zwei Rechenschritte ist hierfür durch Formel (7) gegeben. Jeweils nach Berechnung der beiden Schritte wird mit Hilfe der Bedingungen in Tabelle 3 geprüft, ob der Quotient gefunden ist.
  • Figure DE102014200493A1_0004
  • Die Berechnung erfolgt also abwechselnd durch eine Korrektur des aktuellen Quotienten Qi (Berechnung von Qi+1 siehe Formel (7)) und einer anschließenden Überprüfung von Qi+1 durch die Berechnung des Rests ri+1 in der MAC. Durch Prüfen der Abbruchbedingungen (Tabelle 3) wird festgestellt, ob die Berechnung des Quotient Q abgeschlossen ist. Die Startwerte Q0 und r0 sind durch Formel (4) gegeben.
  • 1 zeigt ein Blockschaltbild einer Vorrichtung 100 zur Realisierung des hier vorgestellten Verfahrens als Schaltung. Dabei ist in der 1 eine Schaltung zur Realisierung eines beispielhaften Ablaufs der Division (mit X > 0 und D > 0) wiedergegeben. Im Folgenden wird somit der beispielhafte Ablauf der Division zweier positiver Zahlen X und D (siehe Tabelle 1 Fall I) anhand der Schaltung in 1 beschrieben.
  • Zu Beginn wird Register MX mit dem Wert 0 initialisiert, Register MY mit dem Wert des Divisors D und Register MZ mit dem Wert des Dividenden X. Somit enthält das Register MX den Startwert für den Quotient Q0 = 0 und Register MZ den Startwert des Restes r0 = X – Q0·D = X. Die Steuerleitungen der Multiplexer und der anderen Blöcke werden vom Block Ablaufsteuerung AS erzeugt. Im ersten Takt der Berechnung befindet sich Multiplexer A in Stellung 0, sodass der Block Log2-Div mittels Logarithmischer Division eine Approximation für die Division
    Figure DE102014200493A1_0005
    berechnet. Der Block Quotient-Korrektur QK ist ein gesteuerter Addierer/Subtrahierer bzw. Inkrementer/Dekrementer, d. h. abhängig von den Steuerleitungen kann dieser Block die in Tabelle 4 dargestellten Operationen durchführen. Tabelle 4 erläutert dabei die Werte auf Steuerleitungen und die Operation des Blocks Quotient-Korrektur QK.
    Steuerleitungen S Operation
    A A + B
    S A – B
    I A + 1
    D A – 1
    Tabelle 4
  • Die Steuerleitungen haben im ersten Takt den Wert A, d. h. es wird die Summe der Logarithmischen Division Log2-Div(|r0|, D) und dem im Register MX gespeicherten Wert Q0 = 0 gebildet und am Ausgang bereitgestellt. Der Ausgangswert ist somit der erste korrigierte Quotient Q1 = Q0 + Log2-Div(|r0|, D). Der Enable-Eingang EN des Registers MX ist auf den Wert 1 gesetzt, somit wird am Ende des ersten Taktes Q1 in Register MX übernommen.
  • Im zweiten Takt wird überprüft, ob die erste Approximation Q1 schon dem gesuchten Quotienten Q entspricht. Die MAC berechnet hierzu die Operation: MZ – MX··MY = X – Q1·D gesteuert durch den Steuereingang Op der MAC. Das Ergebnis der Operation ist der Rest r1 = X – Q1·D, welcher darüber Auskunft gibt ob der exakte Quotient bereits gefunden ist (siehe Tabelle 3). Ist zum Beispiel der Fall r1 > 0, |r1| > IDI eingetreten, so bedeutet dies, dass Q, noch zu niedrig ist. Im dritten Takt wird deshalb Multiplexer A auf Stellung 1 gebracht, d. h. es wird durch den Block Log2-Div nun ein approximativer Wert für die Division
    Figure DE102014200493A1_0006
    berechnet. Das Ergebnis wird zu Q1 hinzuaddiert, die Steuerleitung für den Block Quotient-Korrektur QK werden deshalb auf Wert A gestellt (siehe Tabelle 4). Das Ergebnis stellt eine zweite Approximation Q2 für den Quotient Q dar und wird in Register MX übernommen.
  • Analog zum zweiten Takt wird im vierten Takt nun geprüft, ob der exakte Quotient Q nun gefunden ist. Wieder wird durch die MAC-Operation MZ – MX··MY der Rest berechnet: r2 = X – Q2·D. Nun ist z. B. der Fall r2 > 0, |r2| = IDI eingetreten, d. h. Q2 ist genau um 1 LSB zu klein (siehe Tabelle 3) und sollte korrigiert werden, der exakte Quotient Q ist dadurch gefunden.
  • Die Korrektur von Q2 wird im nächsten Takt, welcher somit der letzte Takt der Berechnung ist, gemacht. Die Steuerleitung für den Block Quotient-Korrektur QK hat den Wert I, sodass am Ausgang der Wert A + 1 = Q2 + 1 erzeugt wird. Dieser Wert wird in das Register MX übernommen. Um den korrekten Divisionsrest zu berechnen soll der Block Rest-Korrektur RK den Wert r2 am Ausgang der MAC korrigieren. Der Block Rest-Korrektur RK ist ein gesteuerter Addierer/Subtrahierer, dessen Operation in Tabelle 5 dargestellt ist. Tabelle 5 beschreibt dabei Werte auf Steuerleitungen und die zugehörigen Operation eines gesteuerten Addieres/Subtrahierers.
    Steuerleitung S Operation
    1 A + B
    0 A – B
    Tabelle 5
  • Da der Quotient Q2 um 1 erhöht wurde, soll der Wert am Ausgang der MAC r2 = X – Q2·D um den Wert des Divisors D erniedrigt werden um den korrekten Divisionsrest zu erhalten. Die Steuerleitung des Blocks Rest-Korrektur RK wird daher auf 0 gestellt und R = X – Q2·D – D berechnet. Multiplexer B ist in Stellung 1, der Enable-Eingang EN des Registers MZ ist 1 und das Ergebnis wird gespeichert. Somit ist der korrekte Quotient Q in Register MX und der korrekte Divisionsrest R in Register MZ gespeichert.
  • Die Schnelligkeit, d. h. die Anzahl der Takte, welche zur Berechnung der Division nötig sind hängen beim dargestellten Verfahren von der Genauigkeit der Logarithmischen Division und somit von den eingesetzten Näherungsverfahren zur Log2- und Exp2-Berechnung ab. Damit ist es möglich den Hardware-Bedarf der Schaltung an die benötigte Schnelligkeit der Division anzupassen.
  • Nachfolgend wird näher auf den zeitlichen Ablauf der Berechnung einer Division eingegangen. Wie im Ablauf der Berechnung oben dargestellt besteht die Berechnung aus jeweils 2 Schritten, welche in aufeinanderfolgenden Takten bearbeitet werden. In einem Takt wird durch die Blöcke Logarithmische Division und Quotient-Korrektur QK ein Wert für den Quotient Qi+1 berechnet. Im darauffolgenden Takt wird der Quotient Qi+1 durch Berechnung des Restes ri+1 in der MAC überprüft, gleichzeitig werden durch den Block Ablaufsteuerung AS die Abbruchbedingungen geprüft. Sind die Bedingungen noch nicht erfüllt, so wird ein weiterer Durchlauf durch die 2 Berechnungsschritte gestartet. Tabelle 6 zeigt den zeitlichen Ablauf der Berechnung und der Wertübernahme in die Register.
    Takt Beschreibung Aktualisierte Register I
    0 Anlegen der Werte an Register MX, MY und MZ MX, MY, MZ
    1 Berechnung des Blocks Log2-Div und Quotient-Korrektur: → Q1 MX
    2 Berechnung der MAC: → r1 -
    3 Berechnung des Blocks Log2-Div und Quotient-Korrektur: → Q2 MX
    4 Berechnung der MAC: → r2 -
    ... ... ...
    2k Berechnung der MAC: → rk -
    2k + 1 Berechnung des Blocks Quotient-Korrektur und Rest-Korrektur: → Q, R MX, MZ
    Tabelle 6
  • Nachfolgend wird die Implementierung des vorstehend beschriebenen Ansatzes für signed integer Zahlen vorgestellt. Eine Implementierung des beschriebenen Verfahrens für die Division zweier signed integer Zahlen X und D (beliebige Vorzeichen) ist in dem Blockschaltbild aus 2 dargestellt. Analog zu 1 sind rechts die Eingangsregister MX 1 und MY 2 der MAC 3 dargestellt. Beide Register haben beispielsweise eine Wortlänge von n Bit. Das Ausgangsregister der MAC ist MZ 4 und besitzt eine Wortlänge von beispielsweise 2n Bit. Die MAC kann die Operation MZ – MX··MY ausführen, gesteuert durch den Steuereingang Op. Multiplexer A aus 1 ist in 2 durch Block 5 dargestellt. Die Berechnung der Logarithmischen Division (Block Log2-Div in 1) ist in 2 durch die Blöcke 6 bis 11 dargestellt. Blöcke 6 und 7 berechnen je die Absolutbeträge der an ihren Eingängen anliegenden Werte, z. B. durch 2er-Komplementbildung, für den Fall dass die Eingangswerte negativ sind. Blöcke 8 und 9 berechnen eine Approximation für Funktionswerte der Log2-Funktion für die an den Blöcken anliegenden positiven Werte. Beispielsweise kann hierfür die sog. Mitchell-Approximation eingesetzt werden, welche sich leicht als kombinatorische Schaltung realisieren lässt. Block 10 bildet die Differenz seiner Eingänge A und B: A–B, z. B. durch Addition des 2er-Komplements von B zu A. Block 11 berechnet einen Approximation für den Funktionswert der Exponentialfunktion zur Basis 2 (2X). Der Eingangswert ist die durch Block 10 berechnete Differenz Diff. Abhängig von dem eingesetzten Verfahren zur Log2-Berechnung in den an Blöcken 8 und 9 werden in Block 11 beispielsweise die hierzu inversen Rechenoperationen durchgeführt. Der Block Quotient-Korrektur QK aus 1 ist in 2 durch die Blöcke 12 bis 14 dargestellt. Block 12 ist eine binär dargestellte Konstante mit dem Wert 1 LSB. Multiplexer 13 wählt aus, ob der Wert 1 LSB oder der Ausgang der Logarithmischen Division (Blöcke 6 bis 11) dem Eingang B des gesteuerten Addierers/Subtrahierers 14 zugeführt werden. Die Funktion des gesteuerten Addierers/Subtrahierers 14 ist in Tabelle 5 dargestellt. Der Block Rest-Korrektur aus 1 ist in 2 durch den gesteuertem Addierer/Subtrahierer 15 (siehe Tabelle 5) und den Multiplexer 16 realisiert. Die Steuerung der Multiplexer, der Addierer/Subtrahierer und der Wertübernahme in die Register übernimmt die Ablaufsteuerung AS 17. Sie besitzt vier Eingänge die jeweils mit den folgenden Komponenten verbunden sind: dem Register MY 2, dem Register MZ 4, dem Ausgang der MAC 3 und dem Ausgang des Subtrahierers 10. Die Ausgänge der Ablaufsteuerung AS sind die Steuersignale s0...s7. Eine mögliche Realisierung der Ablaufsteuerung AS ist im Blockschaltbild in 3 dargestellt.
  • Aus den Eingangssignalen werden drei Zwischensignale erzeugt, mit deren Hilfe sich die Funktionsweise sehr leicht darstellen lässt. Die Bezeichnungen der drei Zwischensignale sind Fall, Operation und Konvergenz. Die genaue binäre Codierung der Zustände der Zwischensignale wird im Folgenden nicht angegeben, da diese der Darstellung der Funktionsweise der Ablaufsteuerung dienen und nicht zwangsläufig exakt so realisiert werden brauchen. Der Block Fall-Überprüfung 17a ermittelt anhand der Vorzeichen des Dividenden X in Register MZ 4 und des Divisors D in Register MY 2 um welchen Fall aus Tabelle 1 es sich handelt. Der Ausgang des Blocks ist das Signal „Fall”, welches vier verschiedene Zustände annehmen kann (siehe Tabelle 7). Tabelle 7 beschreibt dabei die Funktion des Blocks Fall-Überprüfung 17a.
    MSB von MY MSB von MZ Fall
    0 0 I
    0 1 II
    1 0 III
    1 1 IV
    Tabelle 7
  • Das Ausgangssignal des Blocks ist in Tabelle 7 durch die doppelt eingefasste Spalte markiert. Der Block Vorzeichen-/Null-Überprüfung 17b ermittelt anhand des Ausgangswerts der MAC und dem Ausgang des Blocks Fall-Überprüfung 17a, ob der aktuell berechnete Rest ri der Division kleiner, größer oder gleich 0 ist und ob folglich der Wert der nächsten Logarithmischen Division vom aktuellen Wert in Register MX 1 subtrahiert oder addiert werden soll oder aber ob der Quotient schon exakt gefunden wurde. Das Ausgangssignal des Blocks kann drei Zustände annehmen und ist mit Operation bezeichnet, die Funktion ist in Tabelle 8 dargestellt. Tabelle 8 beschreibt dabei die Funktion des Blocks Vorzeichen/Null-Überprüfung 17b.
    Ausgang der MAC Fall Operation Erläuterung
    = 0 don't care Nop Qi·D = X
    > 0 I oder II Add Qi·D < X
    < 0 I oder II Sub Qi·D > X
    > 0 III oder IV Sub Qi·D > X
    < 0 III oder IV Add Qi·D < X
    Tabelle 8
  • Die Überprüfung, ob das aktuell in Register MX 1 gespeicherte Wort exakt dem Quotienten Q entspricht wird mit Hilfe der Signale Operation, Fall und Diff (Ausgang des Subtrahierers 10 in 2) durch den Block Konvergenz-Überprüfung 17c durchgeführt. Das Signal „Konvergenz” gibt somit an, ob die Berechnung des Quotienten (nach der eventuellen abschließenden Korrektur) abgeschlossen ist, siehe Tabelle 9. Tabelle 9 beschreibt dabei die Funktion des Blocks Konvergenz-Überprüfung.
    Operation Diff Fall Konvergenz Korrektur MX
    Nop don't care don't care 1 -
    Add = 0 I oder IV 1 MX = MX + 1
    Add < 0 I oder IV 1 -
    Sub = 0 I oder IV 1 MX = MX – 1
    Sub < 0 I oder IV 1 MX = MX – 1
    Add = 0 II oder III 1 MX = MX + 1
    Add < 0 II oder III 1 MX = MX + 1
    Sub = 0 II oder III 1 MX = MX – 1
    Sub < 0 II oder III 1 -
    Add oder Sub > 0 don't care 0 weiterer Durchlauf nötig
    Tabelle 9
  • Somit lassen sich die Steuersignale s0...s7 mithilfe der drei Signale folgendermaßen realisieren.
  • Steuersignal s0 steuert Multiplexer 5. Im ersten Takt der Berechnung wird der in Register MZ 4 gespeicherte Dividend X auf den Eingang der Logarithmischen Divisionsschaltung (Blöcke 6 bis 11) gelegt. In allen weiteren Takten wird jeweils der Ausgang der MAC auf diesen Eingang gelegt, siehe Tabelle 10. Tabelle 10 beschreibt dabei die Werte des Steuersignals s0 im jeweiligen Takt.
    Takt s0
    1 0
    alle anderen 1
    Tabelle 10
  • Mit Steuerleitung s1 wird ausgewählt, ob zur Korrektur des Wertes in Register MX 1 der Ausgang der logarithmischen Divisionsschaltung (Blöcke 6 bis 11) oder aber die Konstante 1 LSB benutzt werden soll, siehe Tabelle 11. Tabelle 11 beschreibt dabei die Werte des Steuersignals s1 sowie den zugehörigen Wert Diff.
    Diff s1
    > 0 0
    ≤ 0 1
    Tabelle 11
  • Steuerleitung s2 bestimmt ob die Korrektur des Wertes in Register MX 1 durch Addition oder durch Subtraktion des Wertes am Ausgang von Multiplexer 13 geschieht, siehe Tabelle 12. Tabelle 12 beschreibt dabei die Werte des Steuersignals s2 sowie die entsprechende Operation.
    Operation s2
    Add 1
    Sub 0
    Nop don't care
    Tabelle 12
  • Steuerleitungen s3 und s4 dienen der Korrektur des Divisionsrests im letzten Takt der Berechnung. s3 wählt den korrekten Divisionsrest abhängig von der nötigen Korrektur des Registers MX 1 aus (siehe Tabelle 9 und Tabelle 13). Tabelle 13 beschreibt dabei die Werte des Steuersignals s3 in Abhängigkeit von den Signalen Operation, Fall und Diff.
    Operation Fall Diff s3
    Nop don't care don't care 0
    Add I oder IV < 0 0
    Add alle anderen möglichen Kombinationen 1
    Sub II oder III < 0 0
    Sub alle anderen möglichen Kombinationen 1
    Tabelle 13
  • Steuerleitung s4 steuert den gesteuerten Addierer/Subtrahierer 15 abhängig vom Wert des Signals „Operation”, siehe Tabelle 14. Tabelle 14 zeigt dabei die Werte des Steuersignals s4 in Abhängigkeit von der gewählten Operation.
    Operation s4
    Add 0
    Sub 1
    Nop don't care
    Tabelle 14
  • Steuerleitung s5 steuert die Wertübernahme in das Register MZ 4, siehe Tabelle 15. Tabelle 15 zeigt dabei Werte des Steuersignals s5 in Abhängigkeit vom Signal Konvergenz.
    Konvergenz s5
    0 0
    1 1
    Tabelle 15
  • Wenn der Block Konvergenz-Überprüfung anzeigt, dass das korrekte Ergebnis gefunden wurde, dann kann der Divisionsrest in Register MZ 4 übernommen werden, d. h. Steuerleitung s5 ist identisch mit dem Signal Konvergenz. Steuerleitung s6 steuert die Wertübernahme in das Register MX 1. In jedem zweiten Takt (1, 3, ... ) wird ein korrigierter Wert in MX 1 übernommen, siehe auch Tabelle 6. Tabelle 16 zeigt die Werte des Steuersignals s6 in Abhängigkeit vom Takt, der Operation, dem Signal Diff sowie dem Fall.
    Takt Operation Diff Fall s6
    ungerade Nop don't care don't care 0
    ungerade Add < 0 I oder IV 0
    ungerade Sub < 0 II oder III 0
    ungerade Add oder Sub alle anderen möglichen Kombinationen 1
    gerade don't care don't care don't care 0
    Tabelle 16
  • Steuerleitung s7 wählt die Operation der MAC 3 aus und ist deshalb konstant, da ausschließlich die Operation MZ – MX··MY benötigt wird. Falls diese Operation in der MAC nicht verfügbar sein sollte, d. h. falls z. B. in der MAC ausschließlich die Operation MZ + MX··MY berechnet werden kann, so wäre das dargestellte Verfahren dennoch einsetzbar, wenn in Register MZ 4 der negierte Dividend –X geladen wird. In diesem Falle würde die Berechnung des Restes ri dann durch die Operation –X + Qi·D geschehen.
  • Für die weitere Verarbeitung mit den oben dargestellten Blöcken könnte dieser Rest ri dann z. B. durch 2er-Komplementbildung negiert werden. Das Verfahren ist somit auch in diesem Fall einsetzbar.
  • Der hier vorgestellte Ansatz kann dazu dienen in ASICs welche über eine MAC verfügen ein Verfahren bereitzustellen um mit einem kleinen Zusatzmodul (für die Logarithmische Division) die Berechnung der Division schnell und kosteneffizient zu lösen. Divisionsberechnungen werden insbesondere bei der Berechnung von aktuellen Algorithmen der Signalverarbeitung (z. B. Kalman-Filter) benötigt.
  • Die beschriebenen und in den Figuren gezeigten Ausführungsbeispiele sind nur beispielhaft gewählt. Unterschiedliche Ausführungsbeispiele können vollständig oder in Bezug auf einzelne Merkmale miteinander kombiniert werden. Auch kann ein Ausführungsbeispiel durch Merkmale eines weiteren Ausführungsbeispiels ergänzt werden.
  • Ferner können die hier vorgestellten Verfahrensschritte wiederholt sowie in einer anderen als in der beschriebenen Reihenfolge ausgeführt werden.
  • Umfasst ein Ausführungsbeispiel eine „und/oder”-Verknüpfung zwischen einem ersten Merkmal und einem zweiten Merkmal, so ist dies so zu lesen, dass das Ausführungsbeispiel gemäß einer Ausführungsform sowohl das erste Merkmal als auch das zweite Merkmal und gemäß einer weiteren Ausführungsform entweder nur das erste Merkmal oder nur das zweite Merkmal aufweist.
  • 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
    • I. Koren, Computer Arithmetic Algorithms. AK Peter, 2001 [0002]
    • B. Parhami, Computer Arithmetic – Algorithms and Hardware Designs. Oxford University Press, 200 [0002]

Claims (11)

  1. Verfahren (400) zur Berechnung eines Ergebniswertes (Q) einer Division aus einem Dividenden (X) und einem Divisor (D), wobei das Verfahren (400) die folgenden Schritte aufweist: – Setzen (410) eines Quotientenwertes (Q0, Qi) auf einen Initialwert (0) und eines Restwertes (r0, ri) auf einen vom Dividenden (X) abhängigen Initialwert (X); – Bestimmen (420) eines Divisionswertes unter Verwendung des Restwertes (r0, ri) und des Divisors (D) sowie unter Verwendung zumindest einer Logarithmusfunktion; – Bilden (430) eines veränderten Quotientenwertes (Q1, Qi+1) und eines veränderten Restwertes (r1, ri+1) unter Verwendung des Quotientenwertes (Q0, Qi) und des Divisionswertes; und – Ermitteln (440) des Ergebniswertes (Q) in Abhängigkeit vom veränderten Quotientenwert (Q1, Qi+1), wenn der veränderte Restwert (r1, ri+1) in einer vorbestimmten Beziehung zu dem Divisor (D) steht.
  2. Verfahren (400) gemäß Anspruch 1, dadurch gekennzeichnet, dass im Schritt des Ermittelns (440) als Ergebniswert (Q) der veränderte Quotientenwert (Q1, Qi+1) ermittelt wird, wenn der veränderte Restwert (r1, ri+1) gleich null ist und/oder wenn der veränderte Restwert (r1, ri+1) größer als Null und ein Absolutwert des veränderten Restwertes (r1, ri+1) kleiner als ein Absolutwert des Divisors (D) ist.
  3. Verfahren (400) gemäß einem der vorangegangenen Ansprüche, dadurch gekennzeichnet, dass im Schritt des Ermittelns als Ergebniswert (Q) ein um den Wert von eins verminderter veränderter Quotientenwert (Q1, Qi+1) ermittelt wird, wenn der veränderte Restwert (r1, ri+1) kleiner als Null und ein Absolutwert des veränderten Restwertes (r1, ri+1) kleiner oder gleich einem Absolutwert des Divisors (D) ist und/oder wobei als Ergebniswert ein um den Wert von eins vergrößerter veränderter Quotientenwert (Q1, Qi+1) ermittelt wird, wenn der veränderte Restwert größer als Null und ein Absolutwert des veränderten Restwertes (r1, ri+1) gleich einem Absolutwert des Divisors (D) ist.
  4. Verfahren (400) gemäß einem der vorangegangenen Ansprüche, dadurch gekennzeichnet, dass ein Schritt des Neuzuweisens des Restwertes (ri) auf den Wert des veränderten Restwertes (r1, ri+1) und des Quotientenwertes (Qi) auf einen Wert des veränderten Quotientenwertes (Qi, Qi+1) vorgesehen ist, wonach die Schritte des Bestimmens (420) und des Bildens (430) erneut ausgeführt werden.
  5. Verfahren (400) gemäß Anspruch 4, dadurch gekennzeichnet, dass der Schritt des Neuzuweisens, des Bestimmens (420) und des Bildens (430) dann ausgeführt werden, wenn vor dem Schritt des Neuzuweisens der veränderte Restwert (r1, ri+1) kleiner als Null und ein Absolutwert des veränderten Restwertes (r1, ri+1) größer als ein Absolutwert des Divisors (D) ist und/oder wenn vor dem Schritt des Neuzuweisens der veränderte Restwert (r1, ri+1) größer als Null und ein Absolutwert des veränderten Restwertes (r1, ri+1) größer als ein Absolutwert des Divisors (D) ist.
  6. Verfahren (400) gemäß einem der Ansprüche 4 oder 5, dadurch gekennzeichnet, dass die Schritte des Neuzuweisens, des Bestimmens (420) und des Bildens (430) mehrfach hintereinander ausgeführt werden.
  7. Verfahren (400) gemäß einem der vorangegangenen Ansprüche, dadurch gekennzeichnet, dass im Schritt des Bestimmens (420) ein Differenzwert (Diff) unter Bildung eines Logarithmuswert des Dividenden (X) und eines Logarithmuswerts des Divisors (D) gebildet wird, wobei der Divisionswert unter Verwendung des Differenzwertes (Diff) als Exponenten einer Basiszahl gebildet wird.
  8. Verfahren (400) gemäß einem der vorangegangenen Ansprüche, dadurch gekennzeichnet, dass im Schritt des Bildens (430) der veränderte Quotientenwert (Q1, Qi+1) durch Addition des Divisionswertes und des Quotientenwerts (Q0, Qi) oder durch Subtraktion des Divisionswertes von dem Quotientenwert (Q0, Qi) gebildet wird und/oder wobei der veränderte Restwert (r1, ri+1) durch eine Subtraktion eines Produktes aus dem veränderten Quotientenwert (Q1, Qi+1) und dem Divisor (D) von dem Dividenden (X) gebildet wird.
  9. Vorrichtung (100) zur Berechnung eines Ergebniswertes (Q) einer Division aus einem Dividenden (X) und einem Divisor (D), wobei das Verfahren (400) die folgenden Schritte aufweist: – einer Einheit (MX, MY, MZ) zum Setzen eines Quotientenwertes (Q0, Qi) auf einen Initialwert (0) und eines Restwertes (r0, ri) auf einen vom Dividenden (X) abhängigen Initialwert; – einer Einheit (Log2-Diff, 10) zum Bestimmen eines Divisionswertes unter Verwendung des Restwertes (r0, ri) und des Divisors (D) sowie unter Verwendung zumindest einer Logarithmusfunktion; – einer Einheit (QK, 14) zum Bilden eines veränderten Quotientenwertes (Q1, Qi+1) und eines veränderten Restwertes (r1, ri+1) unter Verwendung des Quotientenwertes (Q0, Qi) und des Divisionswertes; und – einer Einheit (AS, 17) zum Ermitteln des Ergebniswertes in Abhängigkeit vom veränderten Quotientenwert (Q1, Qi+1), wenn der veränderte Restwert (r1, ri+1) in einer vorbestimmten Beziehung zu dem Divisor (D) steht.
  10. Computer-Programmprodukt mit Programmcode zur Durchführung des Verfahrens (400) nach einem der Ansprüche 1 bis 8, wenn das Programmprodukt auf einer Vorrichtung (100) ausgeführt wird.
  11. Signalverarbeitungsvorrichtung mit folgenden Merkmalen: – eine Einleseschnittstelle zum Einlesen eines Signals, das eine physikalische Größe repräsentiert; – einer Vorrichtung (100) gemäß Anspruch 9, wobei von der Vorrichtung ausgebildet ist, um die physikalische Größe oder einen von der physikalischen Größe abgeleiteten Wert als Dividenden (X) und/oder als Divisor (D) zu verarbeiten; und – eine Steuer- und/oder Signalisierungseinheit, die ausgebildet ist, um ein Steuersignal und/oder ein Datensignal unter Verwendung des Ergebniswertes (Q) bereitzustellen.
DE102014200493.4A 2014-01-14 2014-01-14 Verfahren und Vorrichtung zur Berechnung eines Ergebniswertes einer Division aus einem Dividenden und einem Divisor Withdrawn DE102014200493A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102014200493.4A DE102014200493A1 (de) 2014-01-14 2014-01-14 Verfahren und Vorrichtung zur Berechnung eines Ergebniswertes einer Division aus einem Dividenden und einem Divisor
CN201510015444.7A CN104778027A (zh) 2014-01-14 2015-01-13 用于计算被除数和除数的除法的结果值的方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102014200493.4A DE102014200493A1 (de) 2014-01-14 2014-01-14 Verfahren und Vorrichtung zur Berechnung eines Ergebniswertes einer Division aus einem Dividenden und einem Divisor

Publications (1)

Publication Number Publication Date
DE102014200493A1 true DE102014200493A1 (de) 2015-07-16

Family

ID=53484924

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014200493.4A Withdrawn DE102014200493A1 (de) 2014-01-14 2014-01-14 Verfahren und Vorrichtung zur Berechnung eines Ergebniswertes einer Division aus einem Dividenden und einem Divisor

Country Status (2)

Country Link
CN (1) CN104778027A (de)
DE (1) DE102014200493A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107992284B (zh) * 2017-11-27 2022-12-23 中国航空无线电电子研究所 一种可编程器件的除法功能实现方法
CN111399803B (zh) * 2019-01-03 2022-07-15 北京小米松果电子有限公司 除法运算方法、装置、存储介质及电子设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1379323A (zh) * 2001-04-11 2002-11-13 北京国芯安集成电路设计有限公司 一种超长度的阵列式组合逻辑除法器
US8015231B2 (en) * 2004-11-30 2011-09-06 Arm Limited Data processing apparatus and method for performing floating point multiplication
US7519649B2 (en) * 2005-02-10 2009-04-14 International Business Machines Corporation System and method for performing decimal division
CN101986259B (zh) * 2010-11-25 2012-07-18 中国人民解放军国防科学技术大学 无符号定点除法器
US20140195581A1 (en) * 2013-01-08 2014-07-10 Analog Devices, Inc. Fixed point division circuit utilizing floating point architecture

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
B. Parhami, Computer Arithmetic - Algorithms and Hardware Designs. Oxford University Press, 200
I. Koren, Computer Arithmetic Algorithms. AK Peter, 2001

Also Published As

Publication number Publication date
CN104778027A (zh) 2015-07-15

Similar Documents

Publication Publication Date Title
DE112007001989B4 (de) Ausführung von Rundungsoperationen entsprechend einer Anweisung
DE2246968C2 (de) Einrichtung zur Multiplikation zweier Gleitkommazahlen
DE102014100108A1 (de) Festkomma-divisionschaltung unter verwendung einer gleitkomma-architektur
DE112019001799T5 (de) Erweitertes formatieren von binären gleitkommazahlen mit geringerer genauigkeit
DE102013213420A1 (de) Modellberechnungseinheit, Steuergerät und Verfahrenzum Berechnen eines datenbasierten Funktionsmodells
DE3609250C2 (de)
DE3926876C2 (de) Schaltung und Verfahren zum Vorhersagen eines Sticky-Bit-Wertes bei der Gleitkommamultiplikation
DE69925123T2 (de) Datenberechnungvorrichtung
DE102014225039A1 (de) Verfahren und Vorrichtung zum Bereitstellen von spärlichen Gauß-Prozess-Modellen zur Berechnung in einem Motorsteuergerät
DE102014200493A1 (de) Verfahren und Vorrichtung zur Berechnung eines Ergebniswertes einer Division aus einem Dividenden und einem Divisor
DE4409834A1 (de) Multiplizierschaltung und Divisionsschaltung
DE102013212840B4 (de) Modellberechnungseinheit und Steuergerät zur Berechnung eines datenbasierten Funktionsmodells mit Daten in verschiedenen Zahlenformaten
DE3340362C2 (de)
DE10200133B4 (de) Verfahren und Vorrichtung zur Berechnung von Modulo-Operationen
DE102018202093A1 (de) Verfahren und Vorrichtung zur Berechnung von Datenmodellen in sicherheitskritischen Systemen
DE102013209657A1 (de) FMA-Einheit, insbesondere zur Verwendung in einer Modellberechnungseinheit zur rein hardwarebasierten Berechnung von Funktionsmodellen
DE102009039430B4 (de) Vorrichtung und Verfahren mit ersten und zweiten Zeittakten
DE3132611C2 (de)
DE102014200465A1 (de) Vorrichtung und Verfahren zur Bestimmung eines Schätzwertes des Logarithmus einer Eingangsgröße
DE2855003A1 (de) Prozessor fuer ein datum darstellende daten
DE102014118905A1 (de) Verfahren zur Vor- und Nachverarbeitung einer schnellen Arkustangensberechnung
DE102009034100B3 (de) Integrierter Schaltkreis mit einer Signalverarbeitungsanordnung und Verfahren zur Signalverarbeitung
DE102014208379A1 (de) Verfahren und Vorrichtung zum Ermitteln eines Funktionswerts eines bezüglich einer Eingangsgröße invertierten datenbasierten Funktionsmodells
DE10050589B4 (de) Vorrichtung und Verfahren zur Verwendung beim Durchführen einer Gleitkomma-Multiplizier-Akkumulier-Operation
DE2432979C3 (de) Mit gemischter Zahlendarstellung arbeitende Einrichtung zum Multiplizieren zweier komplexer Zahlen und Addieren einer dritten komplexen Zahl zum Produkt

Legal Events

Date Code Title Description
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee