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 θ wird z. B. angenommen,
daß θ = p · π/4 + x (wobei p eine ganze Zahl ist) und
sin(x) und cos(x) in einen Bereich von 0 ≤ x < π/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 + δ) = f(a) + f(1)(a) · δ/1!
-
+ f(2)(a) · δ/2!
-
+ f(3)(a) · δ/3!
-
+ f(k)(a) · δ/k! ... (1)
-
Diese Taylor-Entwicklung ist insofern vorteilhaft, als
dann, wenn ein Absolutwert von δ groß ist, ein Fehler
groß wird und die Ordnungszahl "k" der Näherungsgleichung
groß wird. Wenn andererseits der Absolutwert von δ 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 δ 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 ≤ 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 "δ" der Gleichung (1).
-
wobei xk = {1, 0}
-
0 ≤ x < 4 (3)
-
Durch Einsetzen von a = H und δ = 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 ≤ x ≤ 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.