[go: up one dir, main page]

DE69130510T2 - Arithmetisches Gerät zur Berechnung von transzendenten Elementarfunktionen - Google Patents

Arithmetisches Gerät zur Berechnung von transzendenten Elementarfunktionen

Info

Publication number
DE69130510T2
DE69130510T2 DE69130510T DE69130510T DE69130510T2 DE 69130510 T2 DE69130510 T2 DE 69130510T2 DE 69130510 T DE69130510 T DE 69130510T DE 69130510 T DE69130510 T DE 69130510T DE 69130510 T2 DE69130510 T2 DE 69130510T2
Authority
DE
Germany
Prior art keywords
bits
function
elementary
multiplier
rom
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69130510T
Other languages
English (en)
Other versions
DE69130510D1 (de
Inventor
Takashi Tokyo Nakayama
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.)
NEC Electronics Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Publication of DE69130510D1 publication Critical patent/DE69130510D1/de
Application granted granted Critical
Publication of DE69130510T2 publication Critical patent/DE69130510T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • G06F1/03Digital function generators working, at least partly, by table look-up
    • G06F1/035Reduction of table size
    • G06F1/0356Reduction of table size by using two or more smaller tables, e.g. addressed by parts of the argument
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2101/00Indexing scheme relating to the type of digital function generated
    • G06F2101/04Trigonometric functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2101/00Indexing scheme relating to the type of digital function generated
    • G06F2101/08Powers or roots
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2101/00Indexing scheme relating to the type of digital function generated
    • G06F2101/10Logarithmic or exponential functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2101/00Indexing scheme relating to the type of digital function generated
    • G06F2101/12Reciprocal functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)

Description

    Hintergrund der Erfindung Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich auf eine arithmetische Operationsvorrichtung für Elementarfunktionen in Computern.
  • Beschreibung des Standes der Technik
  • Computer zum Handhaben numerischer Daten müssen numerische Funktionen besitzen, insbesondere Elementarfunktionen einschließlich einer Sinusfunktion sin(x), einer Cosinusfunktion cos(x), einer Arcustangensfunktion arctan(x), einer Exponentialfunktion ex, einer Logarithmusfunktion loge(x) und einer Kehrwertfunktion 1/x sowie einer Quadratwurzelfunktion x.
  • Als Verfahren zum Berechnen dieser Elementarfunktionen sind folgende Algorithmen bekannt:
  • (1) Näherungswertverfahren
  • Dieses Verfahren verwendet eine Polynomnäherung wie z. B. die Chebyshev-Erweiterung, die Taylor-Erweiterung und andere, sowie eine Rationalformelnäherung wie z. B. eine Fortsetzungsbrucherweiterung, die gewöhnlich zum Erhalten einer Elementarfunktion verwendet wurde. Welche der Erweiterungen ausgewählt werden sollte, hängt jedoch von einer zu erhaltenden Funktion ab. Im Fall der Berechnung der Elementarfunktion einer Gleitkommazahl mit doppelter Genauigkeit (Genauigkeit von 52 Stellen in einer Binär zahl), muß außerdem die Multiplikation und die Addition mehr als zehn Mal wiederholt werden, weshalb eine lange arithmetische Operationszeit erforderlich ist.
  • (2) CORDIC-Verfahren
  • Dieses wird verwendet, um eine trigonometrische Funktion und eine invertierte trigonometrische Funktion zu erhalten. Dieses kann einheitlich mehrere Elementarfunktionen berechnen. Zur Berechnung der Elementarfunktion in einer doppelten Genauigkeit (Genauigkeit von 52 Stellen in einer Binärzahl), müssen jedoch die Addition/Subtraktion und das Verschieben 52 · 3 Mal ausgeführt werden, weshalb eine lange arithmetische Operationszeit erforderlich ist.
  • (3) STL-Verfahren
  • Dieses wird für eine Exponentialfunktion und eine Logarithmusfunktion verwendet. Zur Berechnung der Elementarfunktion mit doppelter Genauigkeit (Genauigkeit von 52 Stellen in einer Binärzahl), müssen jedoch die Addition/Subtraktion und die Verschiebung 52 · 2 Mal ausgeführt werden, weshalb eine lange arithmetische Operationszeit erforderlich ist.
  • (4) Newton-Verfahren
  • Dieses kann nur für eine Quadratwurzel oder eine Kubikwurzel verwendet werden, wobei eine Berechnungsgleichung in Abhängigkeit von einer zu erhaltenden Funktion ausgewählt werden sollte. Ein Anfangswert ist in Form eines Näherungswertes gegeben, wobei die Addition/Subtraktion/Multiplikation/Division wiederholt wird, bis ein geforderter Genauigkeitsgrad erreicht wird. Wenn der Anfangswert eine relativ hohe Genauigkeit besitzt, kann die Wiederholung nach ein oder zwei Durchläufen abgeschlossen sein. Zur Berechnung der Elementarfunktion mit doppelter Genauigkeit (Genauigkeit von 52 Stellen in einer Binärzahl), kann das Verfahren durch einmaliges Auslesen eines Tabellen-ROM (Nur-Lese-Speicher) und drei- bis sechsmalige Addition/Subtraktion und Multiplikation verwirklicht werden. Eine erforderliche arithmetische Operationszeit ist somit relativ kurz.
  • In jedem der obenerwähnten herkömmlichen Verfahren ist es selten, daß der gleiche Algorithmus auf den vollen Bereich eines Arguments angewendet werden kann. Es ist daher üblich, das Argument zu konvertieren, so daß die Berechnung in einem beschränkten Bereich ausgeführt wird.
  • Im Fall der Berechnung von sin &theta; wird z. B. angenommen, daß &theta; = p · &pi;/4 + x (wobei p eine ganze Zahl ist) und sin(x) und cos(x) in einen Bereich von 0 &le; x < &pi;/4 berechnet werden. Eine Prozedur zum Beschränken eines Bereichs des Arguments wie in diesem Verfahren wird eine "Argumentreduktion" genannt.
  • Wie aus der obigen Beschreibung deutlich wird, sind die obenerwähnten Elementarfunktionsarithmetikoperationsverfahren hinsichtlich der folgenden Punkte nachteilig:
  • (1) Die arithmetische Operationszeit ist lang.
  • Die Multiplikation und die Addition müssen im Näherungswertverfahren mehr als 10 Mal wiederholt werden, während das Verschieben und die Addition/Subtraktion im CORDIC- Verfahren und im STL-Verfahren mehr als 10 Mal wiederholt werden müssen. Die arithmetische Operationszeitspanne ist somit sehr lang.
  • (2) Mehrere Elementarfunktionen können nicht einheitlich behandelt werden.
  • Ein optimaler Näherungswert ist verschieden, wenn die Elementarfunktion verschieden ist, weshalb das Nährungswertverfahren nicht einheitlich mehrere Elementarfunktionen verarbeiten kann. Andererseits sind das STL-Verfahren und das Newton-Verfahren in den Elementarfunktionen, die behandelt werden können, beschränkt. Das CORDIC-Verfahren kann einheitlich die trigonometrische Funktion und die invertierte trigonometrische Funktion behandeln, kann jedoch nicht die Exponentialfunktion und die Logarithmusfunktion behandeln.
  • "Digitale Multiplizierer in CMOS-Technik" von Taetow W., Elektronik, Bd. 32, Nr. 9, Mai 1983, S. 59-62, offenbart die Anwendung einer Taylor-Erweiterung für Interpolationszwecke. Das Speichern der Interpolationspunktwerte und der ersten Ableitung der Funktion an ihren Interpolationswerten und das anschließende Verwenden der Taylor- Erweiterung kann eine Näherung berechnet werden.
  • "High-Speed Floating-Point Multi-Function Generator", IBM Technical Disclosure Bulletin, Bd. 31, Nr. 2, Juli 1988, S. 331-334, beschreibt einen Funktionsgenerator für einen Signalprozessor. Ein Verfahren der kleinsten Quadrate wird im Algorithmus für die Funktionserzeugung verwendet. Zu diesem Zweck wird folgendes berechnet:
  • f(x) = A + Bx + Cx² oder f(x) = a + x(B + Cx)
  • Zu diesem Zweck erhalten ein Multiplizierer und ein nachfolgender Addierer einen Wert aus einem Speicher, wobei die Ausgabe anschließend erneut in den Eingang des Multiplizierers eingegeben wird.
  • Zusammenfassung der Erfindung
  • Es ist daher eine Aufgabe der vorliegenden Erfindung, eine Elementarfunktionsarithmetikoperation zu schaffen, die die obenerwähnten Nachteile des Standes der Technik beseitigt.
  • Es ist eine weitere Aufgabe der vorliegenden Erfindung, eine Elementarfunktionsarithmetikoperation zu schaffen, die eine Tabelle für eine Elementarfunktion f(x) und vorher berechnete Zahlen f(k)(x)/k! besitzt, die erhalten werden durch Multiplizieren einer Ableitung von f(H) kter Ordnung mit einer vorgegebenen Konstante, wobei die Elementarfunktionsarithmetikoperation die Elementarfunktionsarithmetikoperation f(x) durch einmaliges Durchsuchen der Tabelle, "k"-maliges Multiplizieren und "k"- maliges Addieren schnell und genau erhalten kann.
  • Die obigen und weitere Aufgaben der vorliegenden Erfindung werden gemäß der vorliegenden Erfindung gelöst durch eine arithmetische Operationsvorrichtung, wie sie im unabhängigen Anspruch 1 definiert ist. Der Anspruch 2 definiert eine bestimmte Ausführungsform der Erfindung. Sie kann verwendet werden, um eine differenzierbare Elementarfunktion arithmetisch zu verarbeiten, einschließlich wenigstens einer Sinusfunktion sin(x), einer Cosinusfunktion cos(x), eine Arcustangensfunktion arctan(x), eine Exponentialfunktion ex, einer Logarithmusfunktion loge(x), einer Kehrwertfunktion 1/x, einer Quadratwurzelfunktion x und einer Kehrwertfunktion einer Quadratwurzel 1/ x. Unter der Annahme von k = 3 kann in einer Ausführungsform die Elementarfunktion f(x) mit einer Genauigkeit von 4n Stellen durch dreimaliges Multiplizieren und dreimaliges Addieren erhalten werden. In einer weiteren Ausführungsform, die nicht durch die Erfindung, wie sie in den Ansprüchen definiert ist, abgedeckt ist, kann unter der Annahme von k = 3 die Elementarfunktionen f(x) mit einer Genauigkeit von 2n Stellen erhalten werden durch einmaliges Multiplizieren und einmaliges Addieren.
  • Im folgenden wird ein Prinzip der Elementarfunktionsarithmetikoperation gemäß der vorliegenden Erfindung beschrieben.
  • Es sei angenommen, daß die Elementarfunktion f(x) im Bereich eines gegebenen Arguments beliebig oft differenzierbar ist. Die Elementarfunktion f(x) kann in eine Taylor-Reihe entwickelt werden. Unter der Annahme von x = a kann die Taylor-Entwicklung wie folgt ausgedrückt werden:
  • f(a + &delta;) = f(a) + f(1)(a) · &delta;/1!
  • + f(2)(a) · &delta;/2!
  • + f(3)(a) · &delta;/3!
  • + f(k)(a) · &delta;/k! ... (1)
  • Diese Taylor-Entwicklung ist insofern vorteilhaft, als dann, wenn ein Absolutwert von &delta; groß ist, ein Fehler groß wird und die Ordnungszahl "k" der Näherungsgleichung groß wird. Wenn andererseits der Absolutwert von &delta; sehr klein gemacht wird, kann die Genauigkeit der Arithmetikoperation erhöht werden und die Ordnungszahl "k" der Näherungsgleichung kann auf einen Bereich von 1 bis 5 reduziert werden.
  • Die Elementarfunktionsarithmetikoperation gemäß der vorliegenden Erfindung soll den Bereich von &delta; so klein wie möglich machen und die Ordnungszahl "k" weitmöglichst senken durch vorheriges Berechnen der Werte von f(a), f(1)(a), f(2)(a), ... f(k)(a) für so viele Anfangszahlen "a" wie möglich in Gleichung (1).
  • Hier sei der Fall betrachtet, bei dem eine Elementarfunktion f(x) in einer Binärzahl von 4n Stellen aus einer gegebenen Zahl "x" gesucht wird, die dargestellt wird durch eine Binärzahl von 4n Stellen (0 &le; x < 1).
  • Zuerst wird die gegebene Zahl "x" in einen höherwertigen Stellenanteil H und einen niedrigerwertigen Stellenanteil L mit den Einheiten von "n" Stellen unterteilt. H und L entsprechen "a" und "&delta;" der Gleichung (1).
  • wobei xk = {1, 0}
  • 0 &le; x < 4 (3)
  • Durch Einsetzen von a = H und &delta; = L in die Gleichung (1) kann, da La < 2-n und H < 2-4n gilt, der Ausdruck von L&sup4; und die nachfolgenden Ausdrücke vernachlässigt oder ignoriert werden. Somit kann die Gleichung (1) mit ausreichender Genauigkeit durch Beschränken von k = 3 erhalten werden. Nämlich,
  • f(x) = f(H) + f(1)(H) · L + (1/2)f(2)(H) · L² + + (1/6)f(3)(H) · L³ (6)
  • Wenn diese Gleichung (6) minimiert wird, um die Anzahl der Multiplikationsoperationen zu minimieren, kann die folgende Gleichung (7) erhalten werden:
  • f(x) = f(H) + L · [f(1)(H) + L · {(1/2)f(2)(H) + + L · (1/6)f(3)(H)}]
  • Wenn in dieser Gleichung (7) ein Tabellen-ROM vorbereitet ist, der H als Eingabe annimmt und folgendes ausgibt:
  • b&sub0; = f(H)
  • Bk = f(k)(H)/k! (8)
  • (wobei k = 1, 2, 3),
  • kann die folgende Gleichung (9) erhalten werden:
  • f(x) = b&sub0; + L · {b&sub1; + L · (b&sub2; + L · b&sub3;)} (9)
  • Somit kann f(x) mit drei Multiplikationsoperationen und drei Additionsoperationen erhalten werden.
  • Unter der Annahme, daß f(x) keinen singulären Punkt innerhalb eines designierten Bereiches von "x" besitzt, wird der Wert von bk niemals groß. Da außerdem L < 2-n, L² < 2-2n und L³ < 2-3n gilt, ist die Konstantentabelle der Gleichung (9) ausreichend, wenn sie 4n Stellen für b0, 3n Stellen für b&sub1;, 2n Stellen für b&sub2; und n Stellen für b&sub3; enthält.
  • Um somit einen Wert der Elementarfunktion f(x) mit einer Genauigkeit von 4n Stellen zu erhalten, sind nur ein Tabellen-ROM von (4n + 3n + 2n + n) Stellen mal 2n Wörtern, sowie Multiplizierer und Addierer erforderlich. Da hier die Genauigkeit der Multiplikation von b&sub3; · L auf "n" Stellen begrenzt werden kann, können einige der benötigten Multiplizierer und Addierer eine reduzierte Genauigkeit aufweisen. Mit anderen Worten, alle erforderlichen Multiplizierer und Addierer müssen nicht den gleichen Genauigkeitsgrad von 4n Stellen aufweisen.
  • Außerdem besitzt eine bestimmte Elementarfunktion f(x) einen Argumentbereich von 1 &le; x &le; 2. Da jedoch ein Ganzzahlanteil von "x" auf "1" festgelegt ist, reicht es aus, wenn der Tabellen-ROM 2n Wörter besitzt. Die obigen und weitere Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden deutlich anhand der folgenden Beschreibung bevorzugter Ausführungsformen der Erfindung, die auf die beigefügten Zeichnungen Bezug nimmt.
  • Kurzbeschreibung der Zeichnungen
  • Fig. 1 ist ein Blockschaltbild einer Ausführungsform der Elementarfunktionsarithmetikoperationsvorrichtung gemäß der vorliegenden Erfindung; und
  • Fig. 2 ist ein Blockschaltbild einer weiteren Ausführungsform der Elementarfunktionsarithmetikoperationsvorrichtung gemäß der vorliegenden Erfindung.
  • Beschreibung der bevorzugten Ausführungsformen
  • In Fig. 1 ist ein Blockschaltbild einer Ausführungsform der Elementarfunktionsarithmetikoperationsvorrichtung gemäß der vorliegenden Erfindung gezeigt. Die gezeigte Vorrichtung enthält ein Register 1 zum Aufnehmen und Halten einer Eingangsvariablen "x". Dieses Register 1 besitzt eine Kapazität von 4n Bits oder mehr. Die höherwertigen "n" Bits eines Dezimalbruchanteils der Variablen "x", die im Register 1 gehalten werden, werden als H- Signal 2 ausgelesen, wobei die niedrigstwertigen "3n" Bits der Variablen "x", die im Register 1 gehalten werden, als ein L-Signal 3 ausgelesen werden. Die höherwertigen "2n" Bits der niedrigstwertigen "3n" Bits werden als ein L2-Signal 4 ausgegeben, wobei die höherwertigen "n" Bits der niedrigstwertigen "3n" Bits als ein L1- Signal 5 ausgegeben werden.
  • Außerdem enthält die gezeigte Vorrichtung einen ROM- (Nur-Lese-Speicher) 6 mit 4n Bits · 2n Wörtern zum Halten der Werte von f(H), einen ROM 7 mit 3n Bits · 2n Wörtern zum Halten der Werte von f(1)(H), einen ROM 8 mit 2n Bits · 2n Wörtern zum Halten der Werte von f(2)(H)/2 und einen ROM 9 mit n Bits · 2n Wörtern zum Halten der Werte von f(3) (H)/6. Ferner enthält die gezeigte Vorrichtung einen Multiplizierer 10 mit "n" Bits · "n" Bits, der das L1-Signal 5 und eine Ausgabe des ROM 9 zum Zweck der Berechnung eines Produkts des L1-Signals 5 und der Ausgabe des ROM 9 aufnimmt, sowie einen Addierer 11 von 2n Bits zum Addieren einer Ausgabe des ROM 8 mit den Daten, die erhalten werden durch Rechtsschieben einer Ausgabe des Multiplizierers 10 um "n" Bits. Ein Ausgang des Addierers 11 und das L2-Signal 4 werden einem weiteren Multiplizierer 12 mit "2n" Bits "2n" Bits zugeführt, der seinerseits ein Produkt des Ausgangs des Addierers 11 und des L2-Signals 4 ausgibt. Ein Ausgang des Multiplizierers 12 wird um "n" Bits nach rechts verschoben und in einen Eingang eines weiteren Addierers 13 mit 3n Bits eingegeben, dessen anderer Eingang mit einem Ausgang des ROM 7 verbunden ist. Ein Ausgang des Addierers 13 und das L-Signal 3 werden einem dritten Multiplizierer 14 mit 3n Bits · 3n Bits zugeführt, der seinerseits ein Produkt des Ausgangs des Addierers 13 und des L-Signals 3 ausgibt. Ein Ausgang des Multiplizierers wird um n Bits nach rechts verschoben und in einen Eingang eines dritten Addierers 15 mit 4n Bits eingegeben, dessen anderer Eingang mit einem Ausgang des ROM 6 verbunden ist, so daß der um n Bits nach rechts verschobene Ausgang des Multiplizierers 14 und der Ausgang des ROM 6 addiert werden. Ein Ausgang des Addierers 15 ist mit einem Ausgangsregister 16 mit 4n Bits verbunden. Die folgende Tabelle zeigt verschiedene Elementarfunktionen f(x), die mit der in Fig. 1 gezeigten Vorrichtung berechnet werden können und die somit im ROM 6 zu halten sind, die in den ROM 7, 8 und 9 zu haltenden Koeffizienten sowie den Bereich des Arguments "x". Tabelle 1
  • Wenn z. B. die Elementarfunktion f(x), die erhalten werden soll, sin(x) ist, wird aus Tabelle 1 deutlich, daß sin(H) im ROM 6 gespeichert ist, cos(H) im ROM 7 gespeichert ist und -sin(H)/2 und -cos(H)/6 in den ROMs 8 bzw. 9 gespeichert sind.
  • Wenn in der in Fig. 1 gezeigten Vorrichtung das Argument "x" in das Eingangsregister 1 eingegeben und registriert wird, wird das H-Signal 2, das aus den höherwertigen "n" Bits des Dezimalbruchanteils des Arguments "x", der im Register 1 gehalten wird, besteht, den ROMs 6 bis 9 als Adresse zugeführt. Andererseits führt der Multiplizierer 10 die Multiplikation des L1-Signals 5 und eines aus dem ROM 9 gelesenen Werts von f(3)(H)/6 aus. Ein vom Multiplizierer 10 ausgegebener Wert L f(3)(H)/6 wird zur Dezimalpunktangleichung um "n" Bits nach rechts verschoben und mit einem aus dem ROM 8 ausgelesenen Wert von f(2)(H)/2 mittels des Addierers 11 addiert. Der Multiplizierer 12 multipliziert einen Ausgangswert des Addierers 11 mit dem L2-Signal 4. Ein Ausgang des Multiplizierers 12 wird zur Dezimalpunktangleichung um "n" Bits nach rechts verschoben und mittels des Addierers 13 mit einem vom ROM 7 ausgelesenen Wert f(1)(H) addiert. Der Multiplizierer 14 multipliziert einen Ausgangswert des Addierers 13 mit dem L-Signal 3. Ein Ausgang des Multiplizierers 14 wird zur Dezimalpunktangleichung um "n" Bits nach rechts verschoben und mittels des Addierers 15 mit einem aus dem ROM 6 ausgelesenen Wert f(H) addiert.
  • Wie aus dem obigen deutlich wird, benötigt die Operation der Elementarfunktion f(x) nur eine Gesamtzeit von einer Zugriffszeit für die Tabellen-ROMs und eine Zeitspanne, die für drei Multiplikationsoperationen und drei Additionsoperationen benötigt wird.
  • Im Fall des Erhaltens eines Werts einer gegebenen Elementarfunktion f(x) mit einer Genauigkeit von 52 Stellen (n = 13),
  • hat der ROM 6 eine Speicherkapazität von 52 Bits · 8192 Wörtern;
  • hat der ROM 7 eine Speicherkapazität von 39 Bits · 8192 Wörtern;
  • hat der ROM 8 eine Speicherkapazität von 26 Bits · 8192 Wörtern;
  • hat der ROM 9 eine Speicherkapazität von 13 Bits · 8192 Wörtern;
  • ist der Multiplizierer 10 ein Multiplizierer für 13 Bits · 13 Bits;
  • ist der Multiplizierer 12 ein Multiplizierer für 26 Bits · 26 Bits;
  • ist der Multiplizierer 14 ein Multiplizierer für 39 Bits ·39 Bits;
  • ist der Addierer 11 ein Addierer für 26 Bits;
  • ist der Addierer 13 ein Addierer für 39 Bits; und
  • ist der Addierer 15 ein Addierer für 52 Bits.
  • Im obigen Fall beträgt die Gesamtspeicherkapazität der ROMs 1.064.960 Bits, was in Form eines LSI-Bausteins gemäß einer derzeitigen Halbleitertechnik verwirklicht werden kann. Wenn ferner jeder der Multiplizierer 10, 12 und 14 aus einem Übertragsicherungsaddierer und einem Übertragfortpflanzungsaddierer gebildet wird, können der Hardware-Aufwand und die Zeitspanne der Arithmetikoperation effektiv reduziert werden, indem jeder der Multiplizierer 10, 12 und 14 und die Addierer 11, 13 und 15 mittels des Übertragsicherungsaddierers gebildet werden und die Übertragfortpflanzungsaddierer nach dem Addierer 15 gesetzt werden.
  • In Fig. 2 ist ein Blockschaltbild einer weiteren Ausführungsform der Elementarfunktionsarithmetikoperationsvorrichtung gezeigt. Diese Ausführungsform fällt nicht in den Umfang der Erfindung, wie er in den Ansprüchen definiert ist, und wird hier nur beispielhaft beschrieben. Die erste Ausführungsform besitzt einen hohen Genauigkeitsgrad für Gleitkommadaten mit doppelter Genauigkeit (wie z. B. 52 Stellen in einer Binärnotation). Die zweite Ausführungsform ist für Gleitkommadaten mit einfacher Genauigkeit ausgelegt (wie z. B. 24 Stellen in einer Binärnotation). Genauer besitzt die erste Ausführungsform die Genauigkeit von 4n Stellen unter k = 3 in der Gleichung (3), während andererseits die zweite Ausführungsform die Genauigkeit von 2n Stellen unter k = 1 besitzt.
  • In der zweiten Ausführungsform kann daher die Gleichung (9) wie folgt ausgedrückt werden:
  • f(x) = b&sub0; + L · b&sub1; (10)
  • Somit kann f(x) mit einer Multiplikationsoperation und einer Additionsoperation erhalten werden. Da außerdem H < 1 und L < 2-n gilt, ist die Konstantentabelle für die Gleichung (10) ausreichend, wenn sie 2n Stellen für b&sub0; und n Stellen für b&sub1; besitzt.
  • Die zweite Ausführungsform enthält ein Register 1a von 2n Bits zum Empfangen und Halten einer Eingangsvariablen "x". Die höherwertigen "n" Bits eines Dezimalbruchanteils der Variablen "x", die im Register 1a gehalten werden, werden als ein H-Signal 2 ausgelesen, während die niedrigwertigen "n" Bits der Variable "x", die im Register 1 gehalten werden, als ein L-Signal 3a ausgelesen werden. Außerdem enthält die gezeigte Vorrichtung ein ROM 6a von 2n Bits · 2n Wörtern zum Halten der Werte von f(H) und einen ROM 7a von n Bits · 2n Wörtern zum Halten der Werte von f(1)(H), was die erste Ableitung von f(H) ist. Ferner enthält die gezeigte Vorrichtung einen Multiplizierer 10 mit n Bits · n Bits, der das L-Signal 3a und einen Ausgang des ROM 7a zum Zweck der Berechnung eines Produkts des L-Signals 3a und des Ausgangs des ROM 7a empfängt, sowie einen Addierer 11 mit 2n Bits zum Addieren eines Ausgangs des ROM 6a mit den Daten, die durch Rechtsschieben eines Ausgangs des Multiplizierers 10 um "n" Bits erhalten werden. Ein Ausgang des Addierers 6a ist mit einem Ausgangsregister 16a mit 2n Bits verbunden.
  • Wenn das Argument "x" in das Eingangsregister 1a eingegeben und registriert wird, wird das H-Signal 2, das aus den höherwertigen "n" Bits des Dezimalbruchanteils des im Register 1a gehaltenen Arguments "x" besteht, als eine Adresse den ROMs 6a und 7a zugeführt. Andererseits führt der Multiplizierer 10 die Multiplikation der niedrigerwertigen "n" Bits des Arguments "x" (das L-Signal 2a) und eines aus dem ROM 7a ausgelesenen Werts von f(1)(H) aus. Ein vom Multiplizierer 10 ausgegebener Wert von L · f(1)(H) wird zur Dezimalpunktangleichung um "n" Bits nach rechts verschoben und mit einem aus dem ROM 6a ausgelesenen Wert von f(H) mittels des Addierers 11 addiert. Der Addierer 11 gibt als Ergebnis f(x) = f(H) + L · f(1)(H) aus.
  • Wie aus dem Vorangehenden deutlich wird, erfordert die Arithmetikoperation der Elementarfunktion f(x) nur eine Gesamtzeit einer Zugriffszeit für die Tabellen-ROMs und eine Zeitspanne, die für eine Multiplikationsoperation und eine Additionsoperation erforderlich ist.
  • Im Fall des Erhaltens eines Werts einer gegebenen Elementarfunktion f(x) mit einer Genauigkeit von 24 Bits (n = 12), besitzt der ROM 6a eine Speicherkapazität von 24 Bits · 4096 Wörtern; der ROM 7a besitzt eine Speicherkapazität von 12 Bits · 4096 Wörtern, der Multiplizierer 10 ist ein Multiplizierer für 12 Bits 12 Bits; und der Addierer 11 ist ein Addierer für 24 Bits.
  • Die Gesamtspeicherkapazität der ROMs beträgt daher 147.456 Bits. Um somit die in Tabelle 1 gezeigten 8 Elementarfunktionen zu verwirklichen, ist eine Speicherkapazität von 1.179.648 Bits erforderlich, die in Form eines LSI verwirklicht werden kann.
  • Wie aus dem Vorangehenden deutlich wird, ist die Elementarfunktionsarithmetikoperationsvorrichtung gemäß der vorliegenden Erfindung hinsichtlich der folgenden zwei Punkte vorteilhaft:
  • (1) Die Arithmetikoperationszeit ist kurz.
  • In der ersten Ausführungsform der Elementarfunktionsarithmetikoperationsvorrichtung ist die erforderliche Verarbeitungszeit eine Gesamtzeit aus der Lesezeit des Tabellen-ROM, einer dreifachen Multiplikationszeit und einer dreifachen Additionszeit. In der zweiten Ausführungsform ist die erforderliche Verarbeitungszeit gleich einer Gesamtzeit aus der Lesezeit des Tabellen-ROM, der Multiplikationszeit und der Additionszeit.
  • Unter der Annahme, daß die Lesezeit des Tabellen-ROM 0,20 us beträgt, die Multiplikationszeit 0,20 us beträgt und die Additionszeit 0,05 us beträgt, ist die erforderliche Verarbeitungszeit gleich 0,95 us in der ersten Ausführungsform und gleich 0,45 us in der zweiten Ausführungsform.
  • (2) Es können mehrere Elementarfunktionen f(x) einheitlich behandelt werden.
  • Die Elementarfunktionsarithmetikoperationsvorrichtung gemäß der vorliegenden Erfindung kann die Elementarfunktion f(x) ändern durch Ändern der im Tabellen-ROM gespeicherten Daten. Wenn somit Tabellen-ROMs entsprechend den acht Arten von Elementarfunktionen, die in Tabelle 1 gezeigt sind, vorhanden sind, kann wahlweise eine der acht Arten von Elementarfunktionen sin(x), cos(x), arctan(x), ex, loge(x), 1/x, x und 1/ x berechnet werden.
  • Die Erfindung wurde mit Bezug auf spezielle Ausführungsformen gezeigt und beschrieben. Es ist jedoch klar, daß die vorliegende Erfindung keinesfalls auf Einzelheiten der dargestellten Strukturen beschränkt ist, vielmehr können daran Änderungen und Abwandlungen vorgenommen werden, ohne vom Umfang der beigefügten Ansprüche abzuweichen.

Claims (2)

1. Arithmetikoperationsvorrichtung zum arithmetischen Ausführen einer differenzierbaren elementaren Funktion, mit:
einer Unterteilungseinrichtung (1), die auf einen Anfangswert (*) mit 4n Bits anspricht, um den Anfangswert in einen Abschnitt H mit n Bits aus höherwertigen Stellen und in einen Abschnitt L mit 3n Bits aus niedrigerwertigen Stellen zu unterteilen (* = H + L), einer Speichereinrichtung (6, 7, 8, 9) mit 2n Wortspeichern, die an die Unterteilungseinrichtung angeschlossen ist, wobei jeder der Speicher im voraus berechnete Konstanten speichert, wobei ein erster der Speicher b&sub0; = F(H) über 4n Bits speichert und die anderen jeweils bk = (1/k!) · f(k)(H) über 3n, 2n, n Bits speichern, wobei k = 1, 2 bzw. 3 ist, wobei die Konstanten durch Multiplizieren einer Ableitung kter Ordnung von f(H) mit gegebenen Konstanten erhalten werden, einer Adresseneinrichtung, die jedem der Speicher entsprechend dem Abschnitt H aus höherwertigen Stellen des Anfangswerts (*) eine Adresse verleiht, einer Einrichtung, die auf die Adresse anspricht, um eine gespeicherte der im voraus berechneten Konstanten auszugeben, welche durch die Adresse bezeichnet werden, einer Arithmetikschaltungseinrichtung (10, ..., 15), die an die Unterteilungseinrichtung angeschlossen ist, wenigstens einen Multiplizierer und wenigstens einen Addierer enthält und auf den Abschnitt L aus niedrigerwertigen Stellen des Anfangswertes (*) und auf eine Ausgangssignal der Speicher anspricht, um das folgende Polynom auszuführen:
f(*) b&sub0; + L · {b&sub1; + L ... (bk-1 + bk · L) ... }
wobei k eine positive ganze Zahl größer als eins ist und die Arithmetikschaltungseinrichtung drei Multiplizierer (10, 12, 14) und drei Addierer (11, 13, 15) enthält, die miteinander verbunden sind, wobei
der erste, der zweite und der dritte Multiplizierer (10, 12, 14) die n, 2n bzw. 3n niedrigstwertigen Bits des Abschnitts L als einen Eingang empfangen und
der erste, der zweite und der dritte Addierer (11, 13, 15) den Ausgang des entsprechenden Multiplizierers als einen Eingang empfängt.
2. Arithmetikoperationsvorrichtung nach Anspruch 1, wobei die elementare Funktion wenigstens eine Sinusfunktion sin(x), eine Kosinusfunktion cos(x), eine Arcustangensfunktion arctan(x), eine Exponentialfunktion ex, eine Logarithmusfunktion loge(x), einen Kehrwert 1/x, eine Quadratwurzel x und einen Kehrwert einer Quadratwurzel 1/ x umfaßt.
DE69130510T 1990-01-08 1991-01-08 Arithmetisches Gerät zur Berechnung von transzendenten Elementarfunktionen Expired - Fee Related DE69130510T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001854A JPH03204720A (ja) 1990-01-08 1990-01-08 初等関数演算装置

Publications (2)

Publication Number Publication Date
DE69130510D1 DE69130510D1 (de) 1999-01-07
DE69130510T2 true DE69130510T2 (de) 1999-08-12

Family

ID=11513131

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69130510T Expired - Fee Related DE69130510T2 (de) 1990-01-08 1991-01-08 Arithmetisches Gerät zur Berechnung von transzendenten Elementarfunktionen

Country Status (4)

Country Link
US (1) US5235535A (de)
EP (1) EP0441121B1 (de)
JP (1) JPH03204720A (de)
DE (1) DE69130510T2 (de)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5359551A (en) * 1989-06-14 1994-10-25 Log Point Technologies, Inc. High speed logarithmic function generating apparatus
EP0596175A1 (de) * 1992-11-05 1994-05-11 International Business Machines Corporation Gerät zum Ausführen der Argumentreduktion in Exponentialberechnungen von IEEE-Norm-Gleitkommazahlen
EP0622727A1 (de) * 1993-04-29 1994-11-02 International Business Machines Corporation System für die Optimierung der Argumentreduzierung
JP3867279B2 (ja) * 1993-06-10 2007-01-10 日本テキサス・インスツルメンツ株式会社 n次関数演算装置
US5648924A (en) * 1995-04-18 1997-07-15 Motorola, Inc. Method and apparatus for finding arctangents
US5668749A (en) * 1995-05-04 1997-09-16 Motorola, Inc. Circuit for performing arithmetic operations in a demodulator
US6067088A (en) * 1995-05-18 2000-05-23 Canon Kabushiki Kaisha Image processing method and apparatus thereof
JP3110288B2 (ja) * 1995-07-21 2000-11-20 日本電気株式会社 指数対数変換回路
DE19621086C2 (de) * 1996-05-24 1998-12-10 Andreas Grimm Engineering Elek Funktionsgenerator
DE19738357B4 (de) * 1997-09-02 2005-01-05 Rohde & Schwarz Gmbh & Co. Kg Verfahren zum Betrieb eines digitalen Sinus-Generators
US6363405B1 (en) 1997-12-24 2002-03-26 Elbrus International Limited Computer system and method for parallel computations using table approximation methods
DE19854098A1 (de) * 1998-11-24 2000-05-25 Bosch Gmbh Robert Verfahren zur Erzeugung eines einstellbaren digitalen Signals sowie Anordnung
US6138131A (en) * 1998-11-27 2000-10-24 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Arc-tangent circuit for continuous linear output
US6480871B1 (en) * 1999-04-07 2002-11-12 Dhananjay S. Phatak Algorithm (Method) and VLSI architecture for fast evaluation of trigonometric functions
US6735610B1 (en) 1999-04-29 2004-05-11 Walter E. Pelton Apparatus, methods, and computer program products for determining the coefficients of a function with decreased latency
US6434582B1 (en) * 1999-06-18 2002-08-13 Advanced Micro Devices, Inc. Cosine algorithm for relatively small angles
US6922712B2 (en) 2000-02-26 2005-07-26 Walter E. Pelton Apparatus, methods, and computer program products for accurately determining the coefficients of a function
AU2001275444A1 (en) 2000-06-09 2001-12-17 K. Walt Herridge Apparatus, methods and computer program products for performing high speed division calculations
WO2001095142A2 (en) 2000-06-09 2001-12-13 Pelton Walter E Methods for reducing the number of computations in a discrete fourier transform
US6985372B1 (en) * 2002-04-23 2006-01-10 Alta Analog, Inc. Analog content addressable memory (CAM) employing analog nonvolatile storage
US6999986B2 (en) * 2002-06-24 2006-02-14 Oren Semiconductor Ltd. Calculating circuit and method for computing an N-th root and a reciprocal of a number
JP5426451B2 (ja) * 2010-03-30 2014-02-26 アズビル株式会社 位相出力回路
US9563402B2 (en) * 2011-09-01 2017-02-07 Advanced Micro Devices, Inc. Method and apparatus for additive range reduction
WO2013095463A1 (en) * 2011-12-21 2013-06-27 Intel Corporation Math circuit for estimating a transcendental function
CN103176948B (zh) * 2013-03-04 2016-06-29 浙江大学 一种低成本的单精度初等函数运算加速器
US9606796B2 (en) 2013-10-30 2017-03-28 Texas Instruments Incorporated Computer and methods for solving math functions

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4077063A (en) * 1976-08-11 1978-02-28 The Singer Company Apparatus for rapidly determining the trigonometric functions of an input angle
US4809205A (en) * 1986-11-19 1989-02-28 Rockwell International Corporation Digital sine conversion circuit for use in direct digital synthesizers
US5042001A (en) * 1989-10-02 1991-08-20 Cyrix Corporation Method and apparatus for performing mathematical functions using polynomial approximation and a rectangular aspect ratio multiplier

Also Published As

Publication number Publication date
EP0441121A2 (de) 1991-08-14
EP0441121B1 (de) 1998-11-25
EP0441121A3 (en) 1992-11-19
JPH03204720A (ja) 1991-09-06
DE69130510D1 (de) 1999-01-07
US5235535A (en) 1993-08-10

Similar Documents

Publication Publication Date Title
DE69130510T2 (de) Arithmetisches Gerät zur Berechnung von transzendenten Elementarfunktionen
DE69030707T2 (de) Arithmetisches Verarbeitungsgerät und dazu benütztes Verfahren
DE68928376T2 (de) Vorrichtung zum multiplizieren, teilen und ziehen der quadratwurzel
DE69032966T2 (de) Verfahren und Gerät zur Ausführung von Divisionen mit Hilfe eines Multiplizierers rechteckigen Seitenverhältnisses
DE69632978T2 (de) Multi-Operand-Addierer, der Parallelzähler benutzt
DE69032891T2 (de) Verfahren und Gerät zur Ausführung mathematischer Funktionen mit Hilfe polynomialer Annäherung und eines Multiplizierers rechteckigen Seitenverhältnisses
DE69132517T2 (de) Gleitkommaprozessor
DE68927121T2 (de) Absolutwertberechnende Schaltung mit einem einzigen Addierer
DE19540102C2 (de) Verfahren und Gleitkomma-Recheneinheit mit einer Logik für eine Vierfach-Präzisions-Arithmetik
DE69131458T2 (de) Hardware-Anordnung zur Addition und Subtraktion von Gleitkommazahlen
DE69326797T2 (de) Akkumulierende Multiplizierschaltung mit einer Hochgeschwindigkeitsausführung einer Multiplikation doppelter Genauigkeit
DE69430053T2 (de) Ganzzahldivisionsvorrichtung und -verfahren
DE69032890T2 (de) Verfahren und Gerät zur Ausführung der Quadratwurzelfunktion mit Hilfe eines Multiplizierers rechteckigen Seitenverhältnisses
DE68927154T2 (de) Arithmetische Reziprokwertschaltung mit Festwertspeichertabelle
DE69130623T2 (de) Dividierer mit hoher Grundzahl
DE3917059A1 (de) Cordic-anordnung zum multiplizieren von komplexen zahlen
DE19839627A1 (de) Digitaler Signalprozessor
DE68924386T2 (de) Verfahren und Gerät zur Radix-2**n-Division mit überlappender Quotientenbitauswahl und gleichzeitiger Rundung und Korrektur des Quotienten.
DE3700323C2 (de)
DE3853379T2 (de) Mit Pseudo-Division arbeitender arithmetischer Prozessor für trigonometrische Funktionen.
DE1549584B2 (de) Datenverarbeitungsanlage
DE69925123T2 (de) Datenberechnungvorrichtung
DE69425565T2 (de) Verfahren und vorrichtung in einem transponierten digitalen fir-filter zur multiplikation eines binären eingangssignals mit filterkoeffizienten und verfahren zum entwurf eines digitalen transponierten filters
DE19781794C2 (de) Verfahren und Einrichtung zur Division von Gleitkomma- oder ganzen Zahlen
DE10013068C2 (de) Potenzierungsoperationsvorrichtung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: NEC ELECTRONICS CORP., KAWASAKI, KANAGAWA, JP

8339 Ceased/non-payment of the annual fee