DE2140386A1 - Digitalrechengerat - Google Patents

Digitalrechengerat

Info

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
Application number
DE19712140386
Other languages
English (en)
Inventor
Christopher Edmund Gervaise Cranleigh Surrey Bailey (Großbritannien)
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.)
Gemalto Terminals Ltd
Original Assignee
Solartron Electronic Group Ltd
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 Solartron Electronic Group Ltd filed Critical Solartron Electronic Group Ltd
Publication of DE2140386A1 publication Critical patent/DE2140386A1/de
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods 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/552Powers or roots, e.g. Pythagorean sums
    • G06F7/5525Roots or inverse roots of single operands
    • 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/0307Logarithmic 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
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
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
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 χ
Progression - exponentiell, N = 1 Ziel - 1,0
' Nebenspeicher: Anfangswert y
Progression - exponentiell, M * 1 Endergebnis - 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
Progression - exponentiell, M = 1
Endergebnis - A
Es gilt somit: (1,0) ·Ε = χ und yE = A
A
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
Progression - exponentiell, M - 1 Endergebnis - A
'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
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 '
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
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.
Die Fig. 1 zeigt als Blockschaltbild eine AusfUh
rungsform der Erfindung zum Quadratwurzelziehen mit binärcodierten Dezimalzahlen.
Die Fig. 2 veranschaulicht die Organisation eines
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
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-
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:
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)

  1. -24- 2H0386
    Patentansprüche
    1. 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/1747
    3. 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.
    2H0386
    S. 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/Gu
    209808/1747
    , ZT-..
    Leerseite
DE19712140386 1970-08-13 1971-08-12 Digitalrechengerat Pending DE2140386A1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3649821A (en) * 1970-06-15 1972-03-14 Philco Ford Corp Digital multiple-tone generator

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