DE2140386A1 - Digitalrechengerat - Google Patents
DigitalrechengeratInfo
- Publication number
- DE2140386A1 DE2140386A1 DE19712140386 DE2140386A DE2140386A1 DE 2140386 A1 DE2140386 A1 DE 2140386A1 DE 19712140386 DE19712140386 DE 19712140386 DE 2140386 A DE2140386 A DE 2140386A DE 2140386 A1 DE2140386 A1 DE 2140386A1
- Authority
- DE
- Germany
- Prior art keywords
- register
- memory
- content
- computing device
- digital computing
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/552—Powers or roots, e.g. Pythagorean sums
- G06F7/5525—Roots or inverse roots of single operands
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/02—Digital function generators
- G06F1/03—Digital function generators working, at least partly, by table look-up
- G06F1/0307—Logarithmic or exponential functions
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- Complex Calculations (AREA)
Description
Patentanwälte
6 Frankiuri a M.
ki-e. i J
ki-e. i J
6784
THE SOLARTRON ELECTRONIC GROUP LIMITED, Farnborough, England
Digitalrechengerät
Die Erfindung bezieht sich auf ein Digitalrechengerät, das in der Lage ist, eine Vielzahl von Funktionen mit einer oder mehreren
unabhängigen Variablen zu berechnen. Die Aufgabe der Erfindung besteht darin, ein Digitalrechengerät zu schaffen,
das auf der Verwendung von Schieberegistern beruht, da derartige Register mit der Weiterentwicklung der MOS- und von anderen
integrierten Schaltungstechniken zunehmend äußerst preiswert hergestellt werden können. Es ist daher erwünscht,
derartige Register zum Aufbau von kostenmäßig wirtschaftlichen Digitalrechengeräten zu verwenden.
Unter einem Schieberegister versteht man im allgemeinen eine einzige Kette von Binärstufen, deren Bits durch Zuführen von
Schiebeimpulsen in einer vorgegebenen Richtung durch das Register geschoben werden können. Im vorliegenden Fall kommt
dem Ausdruck "Schieberegisterspeicher11 eine allgemeinere Bedeutung zu, die nicht nur elementare Binärschieberegister umfaßt,
sondern auch eine Vielzahl von elementaren Schiebere-
209808/1747
gistern, die parallel arbeiten, Eine Stufe eines derartigen Speichers enthält die entsprechenden Binärstufen von allen
elementaren Registern und beinhaltet eine Ziffer einer nichtbinären Zahl, die durch die Bits binär codiert ist. Das
herausragende Beispiel einer derartigen Organisation ist die binärcodierte Dezimalzahl. Ein.solches Beispiel wird noch im
einzelnen beschrieben.
Die Zahl in einem Schieberegisterspeicher kann man veranlassen, von einem Anfangsv/ert zu einem Endwert fortzuschreiten,
und zwar entweder durch Linearprogression oder Exponentialprogression. Bei der Linearprogression wird dem Speicherin-
* halt wiederholt eine Folge von abnehmenden Tennen hinzuaddiert oder von ihm subtrahiert. Dabei kann es sich um gespeicherte
Terme handeln, die beispielsweise in einem Festwertspeicher gespeichert sind, oder aber auch um eine logische Folge von
Zahlen, beispielsweise abnehmende Potenzen der Basis des verwendeten Zahlensystems. Wenn man beispielst/eise das Dezimalsystem
verwendet, können die Terme mit 1 beginnen und dann in der folgenden Weise fortschreiten:
10° = 1, 1O~1 =0,1, 1O-2 = 0,01, usw.
Wenn man diese Terme verwendet, kann man von 3,00 bis 6,42
wie folgt fortschreiten:
a) Addiere Inkremente von 1, bis der geforderte Wert
erreicht oder überschritten ist.
3,00+1+1 +1+1.«7
(vier Additionen mit 1)
b) Subtrahiere Inicremente von 0,1, bis der geforderte
Wert erreicht oder .überschritten ist
7,00 - 0,1 - 0,1 - 0,1 - 0,1 - 0,1 - 0,1 = 6,40 (sechs Subtraktionen mit 0,1)
c) Addiere Inkremente von 0,01, bis der geforderte Wert erreicht oder überschritten ist
6,40 + 0*01 + 0,01 a
(zwei Additionen mit 0,01)
209808/1747
-3- 2U0386
Eine davon abweichende Progression ist die folgende:
3,00 + 1 + 1 + 1 = 6,00
6,00 + 0,1 + 0,1 + 0,1 + 0,1 = 6,40 6,40 + 0,01 + 0,01 = 6,42
Dies kann man dadurch ausführen, daß man zunächst bis 7 vorschreitet
und dann auf 6 zurückgeht, bevor man die Schritte oder Inkremente von 0,1 hinzuaddiert. Bei den nächst kleineren
Inkrementen kann man dann in entsprechender Weise verfahren. Abweichend davon kann man aber auch eine zusätzliche
Logik verwenden, die jeweils um einen Schritt vorausschaut und die Additionen unterbricht, bevor der geforderte Wert
überschritten wird.
Bei der Exponentialprogression wird.dem Speicherinhalt der
eigene Inhalt hinzuaddiert oder von ihm abgezogen, wobei jedoch der zu addierende oder subtrahierende Inhalt durch eine
Folge von zunehmenden Potenzen der Basis des verwendeten Zahlensystems dividiert wird. Es soll wiederum das Dezimalsystem
betrachtet werden, wobei von 3,00 auf 6,42 fortgeschritten werden soll:
a) Addiere zu der Zahl ihren eigenen Wert, bis der geforderte Wert erreicht oder überschritten ist
3,00 + 3,00 = 6,00
6,00 + 6,00 = 12,00
6,00 + 6,00 = 12,00
b) Subtrahiere von der Zahl ein Zehntel ihres Wertes, bis der geforderte Wert erreicht oder überschritten
ist
12,00 - 1,20 = 10,80
10,80 - 1,08 = 9,72
10,80 - 1,08 = 9,72
9,72 - 0,97 = 8,75
8,75 - 0,88 = 7,87
7,87 - 0,79 = 7,08
7,08 - 0,71 = 6,37
0980871747
2K0386
c) Addiere zu der Zahl ein Hundertstel ihres Wertes, bis der geforderte Wert erreicht oder überschritten
ist
6,37 + 0,06 = 6,43
d) Fahre fort, bis die gewünschte Auflösung erreicht ist.
Jeder Schritt der obigen Progression ist in Wirklichkeit eine Multiplikation, d.h. eine Multiplikation mit (1 + 1), mit
(1 - 0,1) und mit (1 + 0,01) bei a), b) bzw. c).
fc Die Gesamtprogression kann man daher wie folgt ausdrücken:
3,00 · 22 . (0,9)6 · (1,0I)1 = 6,43.
Das im folgenden eingeführte Symbol E stellt das effektive Gesamtprodukt aller Schritte der Exponentialprogression dar,
also 3,00 · E = 6,43. ·
Mit diesem Hintergrund kann man die vorliegende Erfindung angeben. Gemäß der Erfindung ist ein Digitalrechengerät dadurch
gekennzeichnet, daß zwei Schieberegisterspeicher und eine Einrichtung zur Eingabe von Anfangswerten in die Speicher
vorgesehen sind, daß jeder Speicher in eine Umlaufschleife mit einer Vereinigungsschaltung geschaltet ist, die derart
" ausgebildet ist, daß sich die Zahl bei aufeinanderfolgenden Umläufen, die unter der Wirkung einer Steuereinrichtung ausgeführt
werden, gemäß einer Linearprogression oder einer Exponent-ialprogression
ändert, wie es oben beschrieben ist, und daß die Steuereinrichtung veranlaßt, daß die eine Schleife
Gruppen von N Addier- oder Subtrahierzyklen ausführt, wobei
N gleich 1 oder eine andere ganze Zahl ist, daß die andere Schleife Gruppen von M Addier- oder Subtrahierzyklen ausführt,
wobei M eine ganze Zahl ist, die gleich oder kleiner als N ist, und daß die Zahl in einem der Speicher auf einen
vorgegebenen Endwert hin konvergiert. Die geforderte Antwort
befindet sich dann in dem anderen Speicher.
209808/1747
Es ist zweckmäßig, den Speicher, für den der Endwert vorgegeben
ist, den Hauptspeicher und den anderen Speicher den Nebenspeicher zu nennen. Der Endwert wird auch als Ziel bezeichnet.
Die folgenden Beispiele zeigen die Flexibilität des Erfindungsgegenstandes
beim Erzeugen von vielen Funktionen. Die aufgeführte Liste ist keineswegs erschöpfend.
Division: Gegeben χ und y. Zu finden y/x = A
Hauptspeicher: Anfangswert χ
Hauptspeicher: Anfangswert χ
Progression - exponentiell, N = 1 Ziel - 1,0
' Nebenspeicher: Anfangswert y
' Nebenspeicher: Anfangswert y
Progression - exponentiell, M * 1 Endergebnis - A
Es gilt: χ·Ε = 1,0 und yE » A
Es gilt: χ·Ε = 1,0 und yE » A
Daher gilt: E=^ = ^ und A = £ .
Multiplikation: Gegeben χ und y. Zu' suchen x«y.
Hauptspeicher: Anfangswert 1,0
Progression - exponentiell, N = 1
Ziel χ
Nebenspeicher: Anfangswert y
Nebenspeicher: Anfangswert y
Progression - exponentiell, M = 1
Endergebnis - A
Es gilt somit: (1,0) ·Ε = χ und yE = A
A
Daher gilt: E = χ = — und A = x«y.
Daher gilt: E = χ = — und A = x«y.
Vereinigte Multiplikation und Division: Gegeben x»y und z.
Zu suchen xy/z. Hauptspeicher: Anfangswert ζ
Progression - exponentiell, N = 1 Ziel χ
Nebenspeicher: Anfangswert y
Nebenspeicher: Anfangswert y
Progression - exponentiell, M - 1 Endergebnis - A
'Somit £ilt: z-E - χ und yE · Δ
'Somit £ilt: z-E - χ und yE · Δ
Hieraus folgt: E * ^ ■ A und A ■ xy/z.
Somit gilt: (1,0)·Ε2 = χ und (1,Ο)·Ε = A
Quadratwurzel aus x
Hauptspeicher: Anfangswert 1,0
Progression - exponentiell, N = 2
Ziel χ
Nebenspeicher: Anfangswert 1,0
Nebenspeicher: Anfangswert 1,0
Progression - exponentiell, M = 1
Endergebnis A
Die Wirkung der Verwendung von N = 2 besteht darin, mit E
anstatt mit E zu multiplizieren, wohingegen M lediglich 1 ist. Somit gilt: (1,0)·Ε2 = χ ur
Hieraus folgt: E = A = \/x '
Hieraus folgt: E = A = \/x '
Dieser Algorithmus arbeitet gleichermaßen, wenn beide Anfangswerte χ sind und das Hauptspeicherziel 1,0 ist.
Es gilt dann: χ·Ε2 = 1 und χ·Ε = A
Hieraus folgt: E » 1/ -Jx = A/x und A = >/x.
Diese Variante wird noch im einzelnen beschrieben.
Den obigen Algorithmus, der mit den Anfangswerten von 1,0 beginnt,
kann man zum Ausziehen der Kubikwurzel und höherer Wurzeln ausdehnen, wenn man M gleich 1 hält und N gleich 3 usw.
macht.
log von x, d.h., log1Qx
Hauptspeicher: Anfangswert 1,0
Progression - exponentiell, N = 1 Ziel χ
Nebenspeicher: Anfangswert Null
Nebenspeicher: Anfangswert Null
Progression - linear, M = 1 Endergebnis - A
Bei der Linearprogression sind die nacheinander benutzten Terme die folgenden: log1Q2, Iog100,9, log1Q0,01, usw.
A ist daher gleich
a log1Q2 + b 1Og10O,9 + c Iog101,01 +.....
209808/1747
_ 7-
Dabei sind a, b und c die Zahlen der Additionen lind Subtraktionen
der aufeinanderfolgenden Terme. Das "bedeutet bei der Exponentialprogression
E = 2a ·· (O,9)b · (1,01)c ·
Eine Überprüfung ergibt, daß der Ausdruck für A gleich log E
ist. . ·
Hieraus folgt: (1,O)*E = χ und log^E = A, somit A = log.QX.
Das erfindungsgemäße Digitalrechengerät kann man auch derart ausbilden, daß es unter Verwendung des bekannten Cordischen
Algorithmus Kreisfunktionen erzeugt. Wenn man somit ein und dasselbe Gerät passend programmiert, kann man sowohl alle
Kreis- und Hyperbelfunktionen erzeugen als auch Wurzeln· ziehen sowie Multiplikationen und Divisionen als auch Additionen
und Subtraktionen durchführen.
Wenn eine Umlaufschleife eine Exponentialprogression durch-
führt, wird zu dem Inhalt des Speichers der durch R dividierte Inhalt hinzuaddiert oder von ihm subtrahiert. Dabei ist
R die Basis des Zahlensystems. P ist anfangs O"und wird nach
jeder Gruppe von N Zyklen um jeweils 1 erhöht,wenn diese Gruppe zur Folge hat oder, falls sie mit unverändertem P ausgeführt
wird, zur Folge hätte,daß die in dem Speicher dieser Umlaufschleife
befindliche Zahl den vorgegebenen Endwert durchläuft. Zwei Ausführungsbeispiele der Erfindung werden im folgenden
an Hand des Quadratwurzelziehens im einzelnen beschrieben. Bei dem einen Ausführungsbeispiel handelt es sich um reine
Binärzahlen, so daß die Basis 2 ist. Bei dem anderen Ausführungsbeispiel handelt es sich um binärcodierte Dezimalzahlen,
so daß die Basis 10 ist. Bei dem binären Ausführungsbeispiel
wird jedes Register in Parallelschaltung dupliziert. Die Registerpaare- verden mit den beiden Eingängen der Vereinigungsschaltungen verbunden. Eine Verschiebung um P Ordnungen, was
einer Division durch 2 äquivalent ist, wird dadurch ausgeführt, daß vor jedem Addier- oder Subtrahierzyklus der Inhalt
des eintn Registers in Richtung abnehmender Wertigkeit um P
Bits vcrcchoten wird. Bei dem binärdezimalcodierten Ausfüh-
2 0 9808/1747
2H0386
rungsbeispiel enthält jedes Register in an sich bekannter Weise
vier parallele Schieberegister, die in jeder Dekade die Bits mit den-Wertigkeiten 1, 2, 4 und 8 enthalten. Die Divi-
sion mit 10 wird dadurch ausgeführt, daß zu dem zweiten Eingang
eines bekannten binärdezimalcodierten Addierers die (P + 1)ten Stufen der vier Register durchgeschaltet werden,
wobei vom niedrigstwertigen Ende aus gezählt wird. Die in Verbindung mit dem binären Ausführungsbeispiel beschriebenen
Alternativen können auch bei dem binärdezimalcodierten Ausführungsbeispiel angewendet werden und umgekehrt. Obwohl die ·
reine Binärcodierung und Binärdezimalcodierung praktische Alternativen sind, kann der Betrieb auch auf der Grundlage eines
anderen Binärcodes vorgenommen werden.
Bei beiden Ausführungsbeispielen wird die Quadratwurzel gezogen. Dabei ist N = 2 und M =*1. Bei beiden Ausführungsbeispielen
wird mit χ in beiden Speichern begonnen, und das Ziel des Hauptspeichers ist 1,0. Wenn für diesen Fall N = 3 und
M = 2 ist, wird die Kubikwurzel gezogen. Die erfindungsgemäßen Ausführungsbeispiele können daher auf andere Wurzeln ausgedehnt
werden.
Ein weiteres beiden Ausführungsbeispielen gemeinsames Merkmal besteht darin, daß das Auftreten eines Überlaufs erlaubt
'ist. Wenn dies der Fall·ist, wird in den folgenden Gruppen
eine Subtraktion vorgenommen, bis wieder ein Zustand ohne Überlauf erreicht ist, und wenn Additionen ausgeführt werden,
bis wieder ein Überlauf auftritt. Analog zu bekannten Divisionsverfahren sind zwei andere Alternativen möglich. Wenn
bei der einen Alternative ein Überlauf vorkommt, folgt eine weitere Subtrahiergruppe mit unverändertem P und anschließend
wird P erhöht und Additionen vorgenommen. Bei der zweiten Alternative wird, wenn eine Gruppe mit Additionszyklen ausgeführt
wird, im Voraus eine Versuchsgruppe durchgeführt, und zwar um im Voraus festzustellen, ob ein überlauf auftreten
wird oder nicht. Falls dabei ein Überlauf auftritt, wird F um 1 erhöht, bevor die nächste Gruppe tatsächlich ausgeführt
wird.
2 0 9808/1747
2H0386
Ein Zahlenbeispiel, das das Verfahren abwechselnder Additionen und Subtraktionen darstellt, wird im folgenden für
den Fall gegeben, daß aus 0,49 die Quadratwurzel gezogen werden soll.
I Gruppe von Zyklen |
• | 6. | Wert von P |
Erste Schleife N = 2 |
Zweite Schleife M = 1 |
• | 0,72 |
0 | 0,49 | 0,49 | |||||
+ 0t49 | |||||||
0,98 | |||||||
+ iÜ "" Verlauf | + %M | ||||||
2. | 1 | " V 7b ** (abgerundet) | |||||
— 0,18 T758 |
- 0,10 "UTES |
||||||
1 | |||||||
3. | |||||||
- 0,14 T728 |
|||||||
4. | 1 | - 0.13 T7T5 |
|||||
- 0,12 ■ TTD3 |
" °*2^ | ||||||
1 | - 0,10 | ||||||
5. | 0,93 - Überlauf beseitigt |
||||||
- 0,09 | - o.oj | ||||||
2 | + Q.Q1 | ||||||
+ O 01 | + 0,01 | ||||||
(14 v/eitere Gruppen) | |||||||
1,00 |
209808/1747
-ίο- 2U0386
Die erhaltene Antwort ist 0,72 im Vergleich mit der richtigen Antwort von 0,70. Der Fehler liegt innerhalb der Genauigkeitsgrenzen, wenn man mit nur 2 Dezimalen arbeitet. Bei praktisch
auszuführenden Beispielen kann man mehr Dezimalen verwenden.
Es soll bemerkt werden, daß in der fünften Gruppe, obwohl der Überlauf bei dem ersten Subtraktionszyklus in der ersten Umlaufschleife entfernt wird, die Gruppe vervollständigt wird,
bevor P auf 2 erhöht und zur Addition übergegangen wird.
Weitere Einzelheiten der Erfindung' werden an Hand von in Fife guren dargestellten Ausführungsbeispielen beschrieben.
rungsform der Erfindung zum Quadratwurzelziehen mit binärcodierten Dezimalzahlen.
bei «der Ausführungsform nach der Fig.1 verwendeten Registers.
Die Fig. 3 zeigt Taktdiagramme für die in der
Fig. 1 dargestellten Ausführungsform.
Die Fig. 4 zeigt als Blockschaltbild eine weitere
Ausführungsform der Erfindung zum Quadratwurzelziehen mit Binärzahlen.
Die Fig. 5 zeigt Taktdiagramme für die Ausführungs
form nach der Fig. 4.
Die Fig. 6 ist ein Schaltbild als Zusatz zu dem in
der Fig. 4 dargestellten Blockschaltbild zur Verschiebung des Binärpunktes.
Die Fig. 7 zeigt als Blockschaltbild eine Ausfüh
rungsform der Erfindung zum Berechnen von log10x. ■ -
209803/1747
Die Figuren 8 land 9 sind schematische Darstellungen des
erfindungsgemäßen Digitalrechengeräts zum Durchführen des Cordischen
Algorithmus auf zwei verschiedene Betriebsarten.
In den Figure.n 1, 4 und 6 werden Doppelkopf pfeile benutzt, um
die Schiebeeingänge zu den Registern zu kennzeichnen. In den Figuren 1
und 7 stellen dick ausgezogene Linien parallele 4-Bit-Leitungen dar.
Eine in der Fig. 1 dargestellte erste Umlaufschleife 10 enthält
ein Schieberegisterspeicher 12, der aus vier parallelbetriebenen Schieberegistern besteht, um in an sich bekannter
Weise eine binärcodierte Dezimalzahl zu speichern. Die Organisation des Speichers ist in der Fig. 2 dargestellt. Dabei
ist lediglich der wichtigste, linke Teil des Speichers gezeigt, wobei der Dezimalpunkt oder das Dezimalkomma durch eine
Linie 13 dargestellt ist. Die Umlaufschleife 10 wird durch
einen ersten und zweiten Volladdierer 14 und 16. vervollständigt, die die vier Bits jeder Dezimalziffer parallel verarbeiten.
Die beiden Addierer haben erste Eingänge 14(1) und 16(1), die in der Schleife liegen, und zweite Eingänge 14(2)
und 16(2). Der Eingang 14(1) ist an das niedrigstwertige Ende
des Registers 12 angeschlossen. Die Ableitung der Zahlen, die dem zweiten Eingang 14(2) zugeführt werden, wird noch beschrieben.
Der erste Addierer 14 addiert die beiden an seinen Eingängen 14(1) und 14(2) auftretenden binärcodierten Dezimalzahlenziffern
und führt die Summenziffer dem Eingang 16(1) des zweiten Addierers zu. Wenn die Summe kleiner als 10 ist,
führt der Addierer 16 die Summenziffer dem höchstwertigen Ende
des Registers 12 zu. Wenn die Summe 10 oder größer ist, d.h., wenn der Addierer 14 einen Überlauf erzeugt (Summe größer als
15), oder wenn die Summenziffer'aus 8 UIO (2 ODER 4) besteht,
führt eine Schaltung 18 dem zweiten Eingang 16(2) des zweiten Addierers 16 eine binärcodierte Dezimalzahl 6 zu. Wenn dann
dieser Addierer eine Überlaufziffer erzeugt, wird sie zur Verwendung
durch den Addierer 14 im nächsten Zyklus gespeichert.
209801/1747
2H0386
Das Ergebnis dieser Operationen wird an Hand von zwei Beispielen veranschaulicht:
6 + 7 = 13 erscheint als 8, 4, 1 am Ausgang des ersten Addierers
14. Die Schaltung 18 veranlaßt, daß der zweite Addierer . eine 6 hinzuzählt, so daß 13 + 6 = 19 als 3( « 2,1) am Ausgang
des zweiten Addierers erscheint. Dieser Überlauf wird für die nächste De'zimalziffer gespeichert.
9 + 9 = 18 erscheint als 2 am Ausgang des ersten Addierers 14, und der Überlauf wird für die nächste Dezimalziffer gespeichert«
Die Schaltung 18 stellt den Überlauf fest und veranlaßt, daß der zweite Addierer eine 6 hinzuzählt, d.h. 2 + 6 = 8.
" Diese kurze Beschreibung der Arbeitsweise der Addierer 14 und
16 dürfte genügen, da das Additionsverfahren 'für binärcodierte
Dezimalzahlen an sich bekannt ist. Weiterhin sind auch die entsprechenden Regeln zum Ausführen von Subtraktionen bekannt.
Für den vorliegenden Fall genügt es zu erwähnen, daß, wenn ein Signal an einer Leitung 20 anliegt, die Schaltungen 14,*
16 und 18 die Ziffer am Eingang 14(2) von der Ziffer am Eingang 14(1) subtrahieren. Wenn dieses Signal nicht vorhanden
ist, werden die beiden Ziffern addiert.
Anfangs werden die dem Eingang 14(2) zugeführten Ziffern von der niedrigstwertigen Dekade des Registers 12 Über ein Tor 22
k abgeleitet, das von einem Bit in der ersten Stufe eines Umlauf Schieberegisters 24 durchgeschaltet ist. Diese Stufe ist
in Übereinstimmung mit der obigen Schreibweise mit P=O bezeichnet. Bei jedem Umlauf der Schleife 10 wird daher die Zahl
im Register 12 zu ihrem eigenen Wert hinzuaddiert.
Wenn das Bit in dem Register 24 zur nächsten Stufe, P = 1, verschoben wird, wird ein Tor 26 durchgeschaltet, um die
zweitniedrigstwertige Dekade des Registers 12 mit dem Eingang 1.4(2) zu koppeln. Dabei wird, wie noch im einzelnen erläutert
wird, bei jedem Umlauf von der Zahl im Register 12 ein Zehn-r
tel ihres. Wertes subtrahiert. Wenn P = 2, wird bei jedem Umlauf ein Hundertstel der Zahl im Register 12 zu dieser Zahl
209808/1747
selbst hinzuaddiert. Dieser Vorgang wird in entsprechender Weise weitergeführt. Die Tore 22, 26 usw. stellen Vielfachtore
dar, die parallel 4 Bits verarbeiten können.
Die Umläufe der Schleife werden von einem Impulstaktgeber 28 gesteuert. Wenn ein bistabiles Flipflop 30 von einem Startimpuls
gesetzt wird, schaltet es ein Tor 32 durch, so daß Taktimpulse C (Fig. 3) zu dem Register 12 gelangen. Die Impulse
C werden von einer Schaltung 34 durch η dividiert, um Abschlußimpulse D zu erzeugen. Die Zahl η ist die Anzahl der
Dekaden in dem Register 12 und um zwei Ziffern größer als die benötigte Anzahl der Dezimalen hinter dem Punkt bzw. Komma.
Diese Extraziffern sind die Überlaufeinheitenziffer und die
niedrigstwertige Ziffer, die verwendet wird, um die Abrundungsfehler
so gering wie möglich zu halten. Die Impulse D werden von einem Flipflop 36 durch 2 dividiert, um ein Signal
E zu erzeugen, das ungerade und gerade Impulszüge mit N Impulsen kennzeichnet. Das Signal E schaltet ein Tor 38 durch,
um lediglich die geradzahligen Impulszüge der Taktimpulse durchzulassen, also die in der Fig. 3 dargestellten Impulse F.
Diese Impulse werden dazu benutzt, eine zweite Umlaufschleife
40 zu steuern, die noch beschrieben wird. Wenn das Bit in dem Schieberegister 24 wieder in die Ausgangsstufe, P=O,
gelangt, wird das Flipflop 30 zurückgesetzt, um die Operation zu beenden. Die Länge des Registers 24 ist dem Wert P
angepaßt, bis zu dem die Berechnung ausgeführt werden soll. ,
Als nächstes wird die Schaltungsanordnung beschrieben, die das P-Bit in dem Register 24 verschiebt und die bestimmt,
ob die Addierer 14 und 16 addieren oder subtrahieren sollen. Ein ODER-Tor 42 überprüft die höchstwertige Dekade, also die
Einerdekade des Registers 12 im Hinblick auf eine Überlaufziffer. Dieses Tor weist in dieser Dekade irgendein Bit = 1
nach. Der Ausgang des Tores 42 wird einem UND-Tor 44 zügeführt, das von dem am Ende eines Impulszuges auftretenden
Abschlußbit D nur durchgeschaltet wird, wenn ein Signal E vorhanden ist, also lediglich am Ende der geraden Umläufe.
Wenn eine Überlaufziffer auftritt, wird ein Flipflop 46 ge-
209808/1747
" setzt (Setzeingang S). Das Ausgangssignal des UND-Tors 44
wird von einem Negator 48 invertiert, dessen Ausgangssignal
dem Rücksetzeingang R zugeführt wird» so daß das Flipflop -46 zurückgesetzt wird, wenn eine überlaufziffer verschwindet.
Der Q-Ausgang des Flipflop 46 ist mit der Leitung 20 verbunden,
um zu veranlassen, daß die Addierer 14 und 16 subtrahieren, wenn das Flipflop gesetzt ist. Weiterhin sind die
Q- und ZI-Ausgänge des Flipflop mit einem Differenzierglied 50 verbunden, das stets einen Impuls abgibt, wenn das Flipflop seinen Zustand ändert. Dieser Impuls wird als Schiebeimpuls
für das Register 24 verwendet.
Die Zahl, deren Wurzel gezogen werden soll, wird einem Gleitkomma-
oder Gleitpunktvorgang unterworfen, so daß sie stets in einem Bereich von 0,010... bis 0,999... liegt. Gleitkommaoperationen
sind bei Digitalrechengeräten bekannt, und es ist somit nicht notwendig, diesen Vorgang im einzelnen zu beschreiben;
Es sei jedoch erwähnt, daß die Gleitkomma- bzw. Gleitpunktoperation in dem Register 12 selbst ausgeführt wird.
Hierzu wird auf die noch kommenden Ausführungen im Zusammenhang
mit der zweiten Ausführungsform verwiesen. Ferner wird unterstellt, daß irgendein herkömmliches Verfahren angewendet
wird, so daß anfangs das Flipflop 46 stets zurückgesetzt ist.
Die Arbeitsweise der Schleife 10 erfolgt somit in Übereinstimmung mit dem Schema für die "Erste Schleife", exemplifiziert
durch das numerische Beispiel zum Ziehen der oben angegebenen Wurzel. Anfangs tritt eine Gruppe von zwei Additionen
mit P J= 0 auf. Wenn diese Gruppe einen Überlauf zur
Folge hat, wird das Flipflop 46 gesetzt, wobei P nach 1 verschoben und die Subtraktionsleitung 20 erregt wird. Wenn die
erste Gruppe keinen Überlauf erzeugt, findet eine zweite Gruppe von Additionen mit P=O statt (und falls notwendig,
eine dritte·Gruppe usw.), bis ein Überlauf auftritt. Wenn
ein Überlauf aufgetreten ist, werden eine oder mehrere Gruppen von zwei Subtraktionen mit P = 1 durchgeführt, bis der
Überlauf beseitigt ist. Daraufhin werden eine oder mehrere
20980Ö/1747
Gruppen von Additionen mit P - 2 durchgeführt usw«
Die »Zweite Schleife" des numerischen Beispiels ist die Schleife 40, für deren Teile die gleichen Bezugsgeichen wie/bei der
Schleife 10 verwendet werden, allerdings mit einen Strichindex.
Der einzige Unterschied besteht darin9 daß gum Schieben
des Registers'12' der Schleife 40 anstelle .der Impulse C die
Impulse F verwendet werden« Auf ©ine Gruppe von sw@i Additionen
oder Subtraktionen in der Schleife 1 findet daher in der Schleife 40 lediglich eine Addition ©der Subtraktion statt.
Am Ende des Vorganges ist somit die Zahl in dem Register 12· die Quadratwurzel aus derjenigen Zahl5 die ursprünglich in
den beiden Registern 12 und 12* gespeichert war„
Bei der in der Fig. 4 dargestellten rein binären Ausführungsform der Erfindung sind die erste und die sweit© Schleife mit
60 und 62 bezeichnet, die den Schleifen 10 und 40 der Fig, 1 entsprechen. Da der Aufbau der Schleifen wiederum der gleiche
ist, wird lediglich eine von ihnen
Die Schleife 60 enthält zwei parallele Schieberegister 64 und 66,
die jeweils eine Länge von η Bits ha"beBs wobei n/2 die Anzahl
der Bits ist, bis^u denen eine Verarbeitung gefordert wird. Die
beiden höchstwertigen Stufen haben die Wertigkeit Z bzw, 1.
Alle anderen Stufen befinden sich hinter dem Binärpunkt bzw«, Binärkommä. Die beiden Register speisen die beiden Eingänge
eines herkömmlichen seriellen Yolladdierers 68, dessen Ausgang
zu den Registern zurückgeführt ist. Allerdings ist zwischen das Register 66 und den Addierer 68 eine invertierende/nichtinvertierende
Schaltung 70 geschaltetf die über eine Leitung
72 angesteuert wird, die der Leitung 20 in der PIg* 1 entspricht. Wenn an der Leitung 72 kein' Signal anliegt9 invertiert
die Schaltung 70 nicht, so daß der Addierer 68 den Inhalt der "beiden Register einfach, addiert« Wenn jedoch an der Leitung 72
ein Signal anliegt, führt die Schaltung 70 eine Inversion durch, um das Komplement der Zahl in dem Register 66 zu bilden,
so daß diese Zahl von der Zahl im Register '64 in an sich
209808/1747
2K0386
Weise subtrahiert wird. Die Schaltung, die das Signal für die
Leitung 72 liefert, ist im wesentlichen in der gleichen Weise aufgebaut wie bei der Anordnung nach der Fig. 1, wobei
in der Fig. 4 dieselben Bezugszahlen 42, 44, 46, 48 und 50 verwendet werden.
Bevor jede Gruppe von zwei Additionen oder Subtraktionen auftritt,
wird der Inhalt des Registers 66 durch 2 dividiert, und zwar dadurch, daß P Schiebeimpulse dem Register 66 zugeführt
v/erden, wobei P anfangs 0 ist und stets um 1 zunimmt, wenn das Differenzierglied 50 einen Impuls abgibt, und zwar
bis n/2. Die Schaltungsanordnung wird von einer Zeitgeberschaltung gesteuert, die die in den Figuren 5 dargestellten
V/ellenformen erzeugt und einen Taktgeber 74 enthält, dessen
Ausgangsimpulse als Taktimpulse C über ein Tor 76 laufen,
wenn ein Flipflop 78 durch einen Startimpuls gesetzt ist. Die Impulse C werden von einer Schaltung 80 durch n/2 dividiert,
um AbSchlußimpulse D zu liefern, die wiederum einen 6-Stufen-Ringzähler
82 ansteuern, der Rechteckschwingungen 0. bis 0g
liefert, die zyklisch wiederkehrende Impulszüge mit n/2 Taktimpulsen kennzeichnen. Die Rechteckschwingung 0. wird benutzt,
wie noch beschrieben wird, um die P-VerSchiebungen im Register
66 vorzunehmen. Die Recht eck schwingungen 0£ ^*1*^ Φ- wer*~
den benutzt, um einen vollständigen Umlauf der Schleife 60
zu bewirken. Die Rechteckschwingung 0^ wird benutzt, um P-Verschiebungen
sowohl des Registers 66 als auch des entsprechenden Registers 66' in der Schleife 62 vorzunehmen. Die Rechteckschwingungen
0K und 0£ werden benutzt, um einen vollständigen
Umlauf sowohl der Schleife 60 als auch der Schleife 62 durchzuführen. Die Betriebsweise der UND- und ODER-Tore,
über die die Schiebeimpulse den Registern zugeführt werden, geht aus der Fig. 4 hervor, so daß eine Beschreibung entfallen
kann. Dabei sei erwähnt, daß das Tor 44 von dem Impuls D (Abschlußimpuls am Ende eines Impulszuges) und von der Rechteckschwingung
0g durchgeschaltet wird. In der Fig. 5 ist der ■
Einfachheit halber n/2 = 4 gewählt. Bei einem praktischen Ausführungsbeispiel
wäre allerdings eine 4-Bit-Genauigkeit zu gering, und"n/2 wäre beispielsweise 10.
209808/1747
Während der Rechteckschwingung 0. und der Rechteckschwingung 0>
werden die Taktimpulse einem weiteren Umlaufschieberegister zugeführt, das anfangs leer ist. Die Ausgangssignale dieses
Schieberegisters werden als Schiebeimpulse während 0.. und 0. dem Register 66 und während 0, dem Register 66· zugeführt.
Wenn das Register leer ist, v/erden während 0,, oder 0; keine
Impulse zugeführt. Immer wenn das Flipflop 46 seinen Zustand ändert, gibt das Differenzierglied 50 eine 1 in das Eingangsende
des Registers 84. Die darin angesammelten Signale 1 wirken auf die Register 66 und 66' als Schiebeimpulse mit der
Zahl P. Der Inhalt der Register 66 und 66' wird daher durch 2
dividiert, bevor er dem Inhalt in den Registern 64 und 64· hinzuaddiert oder von ihm subtrahiert wird. Die in der Fig. 4
gezeigte Schaltungsanordnung führt daher die erforderlichen mathematischen Operationen aus, die oben als Beispiel angegeben
sind. Ein Tor 86 stellt fest, ob während 0- beim Auftreten
des Abschlußimpulses D ein Bit an der Ausgangsstufe des Registers
84 auftritt. Sofern dies der Fall ist, wird das Flipflop 78 zurückgesetzt, um die Operation zu beenden.
Im folgenden wird ein bevorzugtes Verfahren zum richtigen Verschieben
oder Gleitenlassen des Binärpunktes beschrieben. Die dazu verwendete zusätzliche Steuerschaltung ist in der Fig. 6
dargestellt. Die binäre Mantisse, aus der die Wurzel gezogen werden soll, wird anfangs lediglich in die Register 64 und 64·
gegeben, und bei dem Gleitkomma- oder Gleitpunktvorgang werden lediglich diesen Registern Schiebeimpulse zugeführt. Die Register
66 und 66' bleiben daher leer. Die Gleitkommaoperation wird dadurch eingeleitet, daß ein Flipflop 88 gesetzt wird, das
ein Tor 90 durchschaltet, so daß von dem Taktgeber 74 Taktimpulse zu dem Register 64' und über ein weiteres Tor 92 zu dem
Register 64 gelangen können. Ferner werden diese Impulse einem Umlaufschieberegister 94 zugeführt, das η - 1 Stufen hat und
in dem ein einziges Bit umläuft. Dieses Bit befindet sich anfangs in der letzten Stufe. Das Tor 92 wird anfangs von einem
Flipflop 96 durchgeschaltet, das nach η - 2 Taktimpulsen über
einen Ausgang 95 von der vorletzten Stufe des Registers 94 ge-
209808/1747
2H0386
setzt wird, um das Tor 92 zu sperren. Von dem Ausgang der
letzten Stufe des Registers 94 wird das Flipflop 96 wieder zurückgesetzt, so daß dann das Tor 92 erneut durchgeschaltet
ist. Die Wirkung dieser Anordnung besteht darin, Gruppen von n-1 Schiebeimpulsen, die dem Register 64f zugeführt werden,
und entsprechende Gruppen von η - 2 Schiebeiinpulsen, die dem
Register 64 zugeführt werden, abzugrenzen. Jede Gruppe von n-1 Schiebeimpulsen verschiebt den Inhalt des Registers 64'
um einen Schritt in Richtung zunehmender Wertigkeit, während jede Gruppe von n-1 Schiebeimpulsen den Inhalt des Registers
64 um zwei Schritte in Richtung zunehmender Wertigkeit verschiebt.
Die Aufgabe besteht darin, das erstwertige Bit im Register 64 in die erste oder zweite Stufe dieses Registers unterhalb des
Binärpunktes zu bringen. Das Vorhandensein eines derartigen Bit wird durch ein ODER-Tor 98 festgestellt, dessen Ausgang
einem UND-Tor 100 zugeführt wird, das lediglich durchgeschaltet ist, wenn das Flipflop 96 gesetzt ist, so daß die Prüfung zu einem richtigen Zeitpunkt vorgenommen wird. Das Ausgangssignal
des UND-Tors 100 setzt das Flipflop 88 zurück, um die Gleitkommaoperation zu beenden. Jetzt kann man dem in
der Fig. 4 dargestellten Flipflop 78 den Startimpuls zuführen. Während des ersten Zyklus 0. bis 0g wird der Inhalt der
} Register 64 und 64· in die Register 66 bzw. 66· gebracht, und
anschließend der erste Addierzyklus durchgeführt.
Ein Beispiel für die Gleitkommaoperation zeigt, daß dabei der Binärpunkt oder das Binärkomma im Endergebnis an der richtigen
Stelle erscheint. Für das ausgewählte Beispiel gilt (0,000001)1/2 = (1/64)1'2, wobei sich die bekannte Antwort
zu 0,001 =1/8 ergibt.
209808/1747
2U0386
Erste Zweite
Schleife Schleife
Schleife Schleife
0,000001 0,000001
n-2 Schiebeimpulse 0,000100 0,000010 n-1 Schiebeimpulse
n-2 Schiebeimpulse 0,010000 0,000100 n-1 Schiebeimpulse
Gleitkommaoperation vervollständigt Addiere, P=O 0,100000
1,000000 0,00100
Stopp, da die Zahl in der ersten Schleife genau 1 ist. Die
Antwort in der zweiten Schleife mit 0,001000 ist richtig. Bei einem praktischen Fall würde das Ausführungsbeispiel der Fig.4
nicht hier enden, sondern mit P = 1, P= 2 usw. fortgeführt werden, und die Zahl in der zweiten Scheife würde um 0,001000
fluktuieren.
In den bisher beschriebenen Ausführungsbeispielen ist das Ziel des Hauptspeichers 1,0. Man kann daher leicht bestimmen,
wenn P zu inkrementieren ist, indem man beobachtet, wenn ein Überlauf und "Unterlauf" auftritt. Wenn jedoch _das Ziel χ ist,
wie es bei dem alternativen Y/urzelalgorithmus, dem Multiplikationsalgorithmus
und dem Algorithmus log χ der Fall ist, ist es lediglich erforderlich, ein Register zum Speichern des
Zielwertes und einen Vergleicher vorzusehen, der bestimmt, ob nach jeder Addition oder Subtraktion die Zahl in dem Hauptspeicher
gleich, kleiner oder größer als die Zahl in dem Zielregister ist.
Ein weiteres Ausführungsbeispiel der Erfindung zeigt die Fig. 7, die eine vereinfachte Darstellung eines Digitalrechengeräts
wiedergibt, das log^x erzeugt. Der Einfachheit halber
werden die Einzelheiten bezüglich der Erzeugung der Schiebeimpulse und bezüglich der Logik, die die Additionen und Subtraktionen
steuert, nicht wiederholt und in diesem Zusammenhang auf die Darstellungen und Beschreibungen der Figuren 1 und 4
verwiesen. Die Speicher und Addierer sind als einzelne Blöcke dargestellt, ohne daß dabei auf Einzelheiten. Rücksicht genom-
209808/174-7.-
- 20 - 2H0386
men wird, die sich auf die Tatsache beziehen, daß die Anordnung mit binärcodierten Dezimalzahlen arbeitet. Hierzu wird
auf die Darstellung der Fig. 1 verwiesen.
Der Hauptspeicher 12 und seine Addierer 14, 16 und 18 sind mit
Toren 22, 26 usw, verbunden, wie es in der Fig. 1 gezeigt ist. Diese Tore werden von dem P-Register 24 gesteuert. Ein Zielregister
102 und ein Vergleicher 104 dienen zum Vergleich des Inhalts des Hauptspeichers 12 mit dem Inhalt des Zielregisters
am Ende jedes Umlaufs. Der Vergleicher hat die folgenden drei Ausgänge:
Ausgang 105 - Hauptspeicherinhalt = Zielwert "= Stopp
Ausgang 106 ξ Hauptspeicherinhalt < Zielwert ξ ADDIERE
Ausgang 108 ξ Hauptspeicherinhalt 7- Zielwert = SUBTRAHIERE
Die Addier- und Subtrahierausgänge 106 und 108 steuern die Additionen und Subtraktionen der Hauptspeicherschleife und
der Nebenspeicherschleife und werden von einem ODER-Tor 110 vereinigt, das das UND-Tor 44 speist. Dieses Tor wird von D
allein durchgeschaltet, da N=1 und die Elemente 48, 46 und 50 das P-Register 24 inkrementieren, wie bei der Anordnung nach
der Fig. 1.
Der Nebenspeicher 12» und seine Addierer 141, 16' und 18· sind
in der gleichen Y/eise angeordnet wie bei der Anordnung nach der Fig. 1. Die Tore 22·, 26' usw. sind jedoch durch Tore 112
ersetzt, die mit Schieberegistern 114 verbunden sind, die einen Lesespeicher oder Festwertspeicher 116 bilden. Diese Register
speichern 1Og1Q 2, log1Q 0,9, log10 1»01 usw* "1^ sind alle
als Umlaufschleife geschaltet, so daß das Lesen nicht zerstörend
ist. Da N=M=I werden diesen Schieberegistern sowie den Schieberegistern des Hauptspeichers 12 und des Nebenspeichers
12' die Schiebeimpulse C zugeführt.
Das erfindungsgemäße Digitalrechengerät kann man auch derart einrichten, daß der bekannte Cordische Algorithmus ausgeführt
wird. Bezüglich dieses Algorithmus wird beispielsweise auf
20980Ö/1747
- 21 - 2U0386
eine Vorveröffentlichung von J.E. Voider mit dem Titel "The CORDIC Trigonometrie Computing Technique" in IRE Trans, on
Electronic Computers, September 1959, Seiten 330-334 verwiesen.
Menu, wie'es aus der Fig. 8 hervorgeht sin θ und cos θ in
Registern 120. und 122 vorhanden sind und θ um α zu ändern ist, gilt:
sin (θ + α ) = sin θ cos« + cos θ sin α (1)
cos (θ + α) = cos θ cos α - sin θ sin α (2)
Daraus folgt: —-~ : "
—-~— sin (θ + α ) = sin θ + con θ · tan a (3)
cos ( θ+ α) = cos θ - sin θ * tan α (4)
Der .Cordische Algorithmus beruht darauf, daß erauf Inkremente
beschränkt wird, deren Tangensfunktionen 1,0, 0,1, 0,001 usw. sind. Dabei gilt 1,0 = R°, 0,1 = R"1, 0,01 = R~2 usw. R ist die
Basis des der Berechnung zugrundeliegenden Zahlensystems. Im allgemeinen ist R=10. Dies braucht jedoch nicht zu sein. Die
α-Inkremente oder α-Schritte werden, wie gefordert, addiert
und subtrahiert, um auf den erforderlichen Wert von θ zu konvergieren. Dies ist schematisch in der Fig. 8 dargestellt.
Dabei führen Addierer 124 und 126 die Gleichungen (3) und (4)
aus. · · ·
Die Einrichtungen zum Ausführen der Dezimalverschiebungen, die
den Multiplikationen mit tan ο = 1, 0,1, 0,01 usw. entsprechen, sind nicht dargestellt. Die Verschiebungen werden jedoch
in der gleichen Weise ausgeführt, wie es in der Fig. 1 gezeigt ist. Das Abstufen wird von einem Block 127 gesteuert, der die
β-Inkremente aufsammelt und bestimmt, ob zu addieren oder zu subtrahieren ist. Dabei wird α veranlaßt, gegen θ zu konvergieren,
das in einem Register 25 gespeichert ist. Einzelheiten des Blocks 127 sind nicht dargestellt, da er in der gleichen
209808/1747
"Weise arbeitet wie bei bekannten Cordischen Rechnern und den
Teilen 102, 104 und 12 in der Fig. 7 entspricht, wobei das Register 12 die °-Inkremente von einem Lesespeicher 129 sammelt,
der in der Fig. 8 dargestellt ist.
Der grundsätzliche Nachteil des Cordischen Algorithmus besteht darin, daß die erzeugten V/erte durch den Wert cos <*
(siehe Gleichung (3) und (4)) geteilt werden. Dieser unerwünschte Term muß ausmultipliziert werden. Dazu ist ein Verfahren
bekannt, bei dem der Algorithmus ohne Ausnahme gezwungen wird, die gesamte Folge von ο -Werten zu verwenden, und
zwar von α . bis α , wobei dann die Antworten mit einer Konstanten
zu multiplizieren sind, und zwar mit der Konstanten
i=n
K = J ] cos α 4. Dadurch ist in den Registern eine Überkapazi-
K = J ] cos α 4. Dadurch ist in den Registern eine Überkapazi-
tat erforderlich, um die vorgegebene Genauigkeit für sin θ
und cos θ zu erhalten.
Diese Schwierigkeit wird gemäß der Erfindung umgangen. Dabei ist der erste α-Wert nicht arctan 1, sondern arctan 0,1. Ferner
wird der Algorithmus in Doppelschritten ausgeführt. Aus den Gleichungen (3) und (4) kann man die folgenden Beziehungen
ableiten:
—- sin (Θ + 2a) = ( 1 + tan 2a) sin (Θ + 2a) (5)
cos a
—1~2 cos (Θ + 2a) = ( 1 + tan 2a) cos (θ + 2α) (6)
cos a
Wenn nun von dem Inhalt jedes der Register der 0,01-fache Wert des Inhalts subtrahiert wird, ist dies einer Multiplika-
tion mit (1 - tan α) äquivalent, da tan α = 0,1, und daher
für den Ihalt der Register folgendes gilt:
(1 - tan 4o) sin (Θ + 2a) (7)
(1 - tan 4a) cos (Θ + 2a) (8)
209808/1747
-J
-23- 2H0386
■ 4
Der durch tan α eingeführte Fehler ist vernachlässigbar. Falls dies nicht möglich ist, wird der Inhalt jedes Registers mit 0,0001 multipliziert und dieser V/ert dem Inhalt hinzuaddiert. Das entspricht einer Multiplikation mit (1 + tan α). Der Inhalt der Register beträgt jetzt (1 - tan «) mal dem erforderlichen Wert. Die achte Potenz stellt sicher, daß der Fehler vernachlässigbar ist. Wenn eine Genauigkeit von einem Teil aus 10 Teilen gefordert wird, können die folgenden Korrekturbedingungen aufgestellt werden:
Der durch tan α eingeführte Fehler ist vernachlässigbar. Falls dies nicht möglich ist, wird der Inhalt jedes Registers mit 0,0001 multipliziert und dieser V/ert dem Inhalt hinzuaddiert. Das entspricht einer Multiplikation mit (1 + tan α). Der Inhalt der Register beträgt jetzt (1 - tan «) mal dem erforderlichen Wert. Die achte Potenz stellt sicher, daß der Fehler vernachlässigbar ist. Wenn eine Genauigkeit von einem Teil aus 10 Teilen gefordert wird, können die folgenden Korrekturbedingungen aufgestellt werden:
tan α = 0,1 Doppelkorrektur erforderlich, wie oben;
tan α= 0,01 Einfachkorrektur mit einem Multiplika
tionsfaktor von 0,0001;
tan« = 0,001 Einfachkorrektur mit einem Multiplikationsfaktor·
von 0,000001;
tan ο = 0,0001, usw. Keine Korrektur erforderlich.
Um die Korrektur durchzuführen, wird das Gerät abwechselnd gemäß
der Anordnung nach der Fig. 8 und gemäß der Anordnung nach der Fig. 9 betrieben. Gemäß der Fig. 8 wird der- grundsätzliche
Algorithmus ausgeführt, wie oben erläutert. Gemäß der Fig. 9 wird die Korrektur vorgenommen.
Weiterhin kann man das nach der Erfindung aufgebaute Digitalrechengerät
zum Umwandeln von Cartesischen Koordinaten x, y in Polarkoordinaten r, θ verwenden, wie es in dem oben erwähnten
Aufsatz von J.E. Voider beschrieben ist. In diesem Fall sind die in die Register 120 und 122 eingegebenen Anfangswerte χ und y.
209808/1747
Claims (1)
- -24- 2H0386Patentansprüche1. Digitalrechengerät,dadurch gekennzeichnet, daß zwei Schieberegisterspeicher und eine zur Eingabe von Anfangswerten in die Speicher dienende Eingabeeinrichtung vorgesehen sind, daß jeder Speicher in eine eigene Umlaufschleife eingeschaltet ist, die eine derart ausgebildete Vereinigungsschaltung enthält, daß die im Speicher befindliche Zahl bei aufeinanderfolgenden Umläufen, die von einer Steuereinrichtung bewirkt werden, durch Linearprogression oder Exponentialprogression geändert wird, und daß die Steuereinrichtung veranlaßt, daß die eine Schleife Gruppen von N Addier- oder Subtrahierzyklen vornimmt, wobei N gleich 1 oder eine andere ganze Zahl ist, daß die andere Schleife Gruppen von M Addieroder Subtrahierzyklen vornimmt, wobei M eine ganze Zahl ist, die gleich oder kleiner als N ist, und daß die in einem der Speicher befindliche Zahl gegen einen vorgegebenen Endwert konvergiert..2. Digitalrechengerät nach Anspruch 1, dadurch gekennzeichnet, daß mindestens die eine Umlaufschleife derart ausgebildet ist, daß sie eine Exponentialprogression durchführt, und daß die dazugehörige Vereinigungsschaltung derart ausgebildet ist, daßsie zu dem Inhalt des zugehörigen Speichers den durch R geteilten Inhalt desselben Speichers addiert oder von ihm subtrahiert, wobei R die Basis des der Berechnung zugrundeliegenden Zahlensystems ist und P, dessen Anfangswert 0 ist, stets nach einer solchen Gruppe von N Zyklen um jeweils 1 erhöht wird, die zur Folge hat oder die zur Folge haben könnte, falls sie mit unverändertem P auftreten würde, daß die in dem Speicher befindliche Zahl den vorgegebenen Endwert durchläuft.209808/17473. Digitalrechengerät nach Anspruch 2, dadurch gekennzeichnet, daß die Schleifen von beiden Speichern eine Exponentialprogression durchführen, wobei M=1 und N größer als 1 ist.4. Digitalrechengerät nach Anspruch 2, dadurch, gekennzeichnet, daß die Schleifen beider Speicher eine Exponentialprogression durchführen, wobei M=1 und N=2.5. Digitalrechengerät nach Anspruch 2, dadurch gekennzeichnet, daß die Schleifen beider Speicher eine Exponentialprogression durchführen, wobei M=2 und N=3.6. Digitalrechengerät nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß die Umlaufschleife eines der Speicher derart angeordnet ist, daß sie eine Linearprogression vornimmt, und daß die zugehörige Vereinigungsschaltung derart eingerichtet ist, daß sie zu dem Inhalt dieses Speichers eine Reihe von Termen addiert oder von ihm subtrahiert und im Anschluß an jede Gruppe von N Zyklen von einem Term zu dem nächsten Term übergeht, die zur Folge hat oder zur Folge haben könnte, falls sie mit demselben Term durchgeführt werden würde, daß die in dem Speicher befindliche Zahl durch den vorgegebenen Endwert läuft.7. Digitalrechengerät nach Anspruch 6, dadurch gekennzeichnet, daß die Terme log1Q2, log1Q(0,9), log1Q(1,01) usw. sind.8. Digitalrechengerät nach einem der Ansprüche 1 bis 7» dadurch gekennzeichnet, daß ein Register den vorgegebenen Endwert speichert und daß "ein Vergleicher bestimmt, ob der Inhalt eines Speichers kleiner oder größer als der Inhalt des Endwertregisters ist, und in einsprechender V/eise die Additionen und Subtraktionen steuert.2H0386S. Digitalrechengerät,dadurch gekennzeichnet, daß zur Durchführung des Cordischen Algorithmus zwei Register "zwei Anfangswerte aufnehmen, daß eine in einer Folge von Zyklen wirksame Einrichtung zu dem Inhalt jedes Registers den—1 —2 in aufeinanderfolgenden Zykluspaaren mit Brüchen R , R , R usw. multiplizierten Inhalt des anderen Registers addiert oder wahlweise von ihm subtrahiert, wobei R die vorgegebene Basis des verwendeten Zahlensystems ist, und daß eine im Anschluß an mindestens das erste Zykluspaar wirksame Einrichtung zur Korrektur des Inhalts der Register von dem Inhalt jedes Registers den mit dem Quadrat des in dem gerade durchgeführten Zyklus verwendeten Bruchs multiplizierten eigenen Inhalt subtrahiert .10. Digitalrechengerät nach Anspruch 9, dadurch gekennzeichnet, daß die im Anschluß an mindestens das erste Zykluspaar wirksame Einrichtung nach der korrigierenden Subtraktion eine korrigierende Addition ausführt, bei der zu dem Inhalt jedes Registers der mit der vierten Potenz des in dem gerade durchgeführten Zyklus verv/endeten Bruchs multiplizierte eigene Inhalt addiert wird.11. Digitalrechengerät nach Anspruch 9 oder 10, dadurch gekennzeichnet, daß die Basis 10 ist.Re/Li/Gu209808/1747, ZT-..Leerseite
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB3912370 | 1970-08-13 |
Publications (1)
Publication Number | Publication Date |
---|---|
DE2140386A1 true DE2140386A1 (de) | 1972-02-17 |
Family
ID=10407760
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19712140386 Pending DE2140386A1 (de) | 1970-08-13 | 1971-08-12 | Digitalrechengerat |
Country Status (4)
Country | Link |
---|---|
US (1) | US3746849A (de) |
DE (1) | DE2140386A1 (de) |
FR (1) | FR2104267A5 (de) |
GB (1) | GB1321067A (de) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3976869A (en) * | 1974-09-27 | 1976-08-24 | The Singer Company | Solid state resolver coordinate converter unit |
US3952187A (en) * | 1975-06-27 | 1976-04-20 | Ford Motor Company | Circuit for transforming rectangular coordinates to polar coordinates |
GB2174221A (en) * | 1985-04-16 | 1986-10-29 | Norman Henry Gale | Improvements in means whereby a binary manipulative system may derive a square root |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3649821A (en) * | 1970-06-15 | 1972-03-14 | Philco Ford Corp | Digital multiple-tone generator |
-
1970
- 1970-08-13 GB GB3912370A patent/GB1321067A/en not_active Expired
-
1971
- 1971-08-12 FR FR7129509A patent/FR2104267A5/fr not_active Expired
- 1971-08-12 DE DE19712140386 patent/DE2140386A1/de active Pending
- 1971-08-12 US US00171223A patent/US3746849A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
GB1321067A (en) | 1973-06-20 |
US3746849A (en) | 1973-07-17 |
FR2104267A5 (de) | 1972-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2246968C2 (de) | Einrichtung zur Multiplikation zweier Gleitkommazahlen | |
DE2523860C3 (de) | Vorrichtung zur digitalen, linearen Interpolation einer fabulierten Funktion | |
DE2162486A1 (de) | Digital gesteuerter Impulsgenerator | |
DE2160528B2 (de) | Digitaler differential-integrator | |
DE1115488B (de) | Datenverarbeitungssystem | |
DE1114050B (de) | Elektronischer Gleitkomma-Rechner | |
DE2743575A1 (de) | Verfahren und einrichtung zur multiplikation einer ersten zahl mit einer zweiten zahl | |
DE2728890C2 (de) | Nicht-rekursives diskretes Filter | |
DE1107431B (de) | Programm-UEberspringungs- und Wiederholungsschaltung | |
DE2140386A1 (de) | Digitalrechengerat | |
DE2426253C3 (de) | Vorrichtung zunv ZAehen det Quadratwurzel aus einer binären Zahl | |
DE1103646B (de) | Inkrement-Rechenmaschine | |
DE2321298A1 (de) | Dezimal-binaer-umsetzer | |
DE1549485C3 (de) | Anordnung zur Division binärer Operanden ohne Rückstellung des Restes | |
DE2227958A1 (de) | Elektrische Schaltanordnung zur Synchronisation des Arbeitszyklus einer Maschine mit einem Sollwert | |
DE1549461C3 (de) | ||
DE1116923B (de) | Divisionsanordnung fuer Ziffernrechner | |
DE2203034A1 (de) | Steuerungssystem fuer eine numerisch gesteuerte Werkzeugmaschine,insbesondere Formfraesmaschine | |
DE1774483A1 (de) | Binaeres Multiplizierwerk | |
DE2238409A1 (de) | Elektronische serienaddier/subtrahiereinrichtung insbesondere fuer dezimale binaercodes | |
DE1035943B (de) | Einrichtung zur Konvertierung von Dezimalzahlen in Binaerzahlen oder umgekehrt | |
DE2549032A1 (de) | Logisches geraet zur multiplikation von digitalen operanden mit vorzeichen | |
DE1269392B (de) | Einrichtung zur Division von Dezimalziffern | |
DE2704258B2 (de) | Digital-Analog-Wandler | |
DE2238408C2 (de) | Steuereinrichtung zur Synchronisation der Übertragung von Daten aus mehreren Daten-Schieberegistern |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OHJ | Non-payment of the annual fee |