DE1190700B - Arithmetische Einheit fuer einen programmgesteuerten Digitalrechner - Google Patents

Arithmetische Einheit fuer einen programmgesteuerten Digitalrechner

Info

Publication number
DE1190700B
DE1190700B DEJ22379A DEJ0022379A DE1190700B DE 1190700 B DE1190700 B DE 1190700B DE J22379 A DEJ22379 A DE J22379A DE J0022379 A DEJ0022379 A DE J0022379A DE 1190700 B DE1190700 B DE 1190700B
Authority
DE
Germany
Prior art keywords
register
arithmetic unit
change
operand
change value
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
DEJ22379A
Other languages
English (en)
Inventor
John E Meggitt
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE1190700B publication Critical patent/DE1190700B/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/491Computations with decimal numbers radix 12 or 20.
    • G06F7/498Computations with decimal numbers radix 12 or 20. using counter-type accumulators

Landscapes

  • Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)
  • Executing Machine-Instructions (AREA)

Description

BUNDESREPUBLIK DEUTSCHLAND
DEUTSCHES
PATENTAMT
AUSLEGESCHRIFT
190 700 Int. CL:
Nummer:
Aktenzeichen:
Anmeldetag:
Auslegetag:
G06f
Deutsche KL: 42 m-14
1190 700
J 22379IX c/42 m
13. September 1962
8. April 1965
Die Erfindung bezieht sich auf eine arithmetische E nheit für einen programmgesteuerten Digitalrechner mit mehreren Operanden- und Resultatregistem, mit mindestens einer Addier-Subtrahier-Einheit und mit einer Steuereinheit zur Ausführung von Divisionen und/oder Multiplikationen zwischen zwei Operanden nach dem Prinzip der fortgesetzten Subtraktion bzw. Addition.
Bei programmgesteuerten Rechenautomaten ist es üblich, ein Rechenwerk zu verwenden, das addieren, subtrahieren, multiplizieren und eventuell dividieren kann. Für die Ausführung komplizierter Operationen werden gewöhnlich Programme aufgestellt, die diese Grundrechenoperationen verwenden und zu einer Zeit jeweils ein Datenwort verarbeiten. Solche Programme beanspruchen jedoch gewöhnlich einen großen Aufwand an Rechner-Speicherraum sowie eine beträchtliche Programmzeit.
Es ist bei derartigen Rechenmaschinen bekannt, Indexregister zu verwenden, mit deren Inhalt in den einzelnen Rechenoperationen die Adressen der Programmbefehle veränderbar sind. Es wird auf diese Weise eine Vereinfachung des Programmaufbaues und eine Verkürzung der Rechenzeit erreicht. Ferner ist bereits vorgeschlagen worden, bei Rechenwerken mit Mikroprogrammierung ein zusätzliches Register zu verwenden, dessen einzelne Binärstellen je einer Werts eile des Rechenwerkes über ein logisches Netzwerk derart zugeordnet sind, daß die Anwendung von Mikrooperationen auf bestimmte durch den Inhalt des Verknüpfungsregisters festgelegte Wertstellen der Pechenregister beschränkt wird. Diese Anordnung hat den Zweck, ein binäres Rechenwerk für verschiedene Codearten verwendbar zu machen und eine Solittung des Rechenwerkes unter Vermeidung zusätzlicher Arbeitstakte zu gestatten.
Aufgabe der vorliegenden Erfindung ist es, eine arithmetische Einheit zu entwickeln, die es gestattet, relativ komplexe Funktionen mit weniger Programminstruktionen und Programmzeit zu lösen, als dies mit den bekannten Einrichtungen möglich ist. Erfindungsgemäß wird dies dadurch erreicht, daß ein Operandenänderungsregister vorgesehen ist, dessen Inhalt zur wiederholten additiven oder subtraktiven Veränderung der Operanden innerhalb eines Divisionsoder Multiplikationszyklus dient und durch Teilergebnisse der Divisions- oder Multiplikationsoperationen, durch die Veränderungsrechnungen selbst und/ oder durch zugeführte Änderungswerte bestimmt wird.
Weitere Merkmale der Erfindung sind aus den Ansprüchen in Verbindung mit den nachfolgend an Arithmetische Einheit für einen programmgesteuerten Digitalrechner
Anmelder:
International Business Machines Corporation,
Armonk,N.Y. (V. St. A.)
Vertreter:
Dipl.-Ing. H. E. Böhmer, Patentanwalt,
Böblingen (Württ), Sindelfinger Str. 49
Als Erfinder benannt:
lohn E. Meggitt, Winchester (Großbritannien)
Beanspruchte Priorität:
Großbritannien vom 20. September 1961
(33 721)
Hand von Zeichnungen beschriebenen Ausführungs- bzw. Anwendungsbeispielen zu entnehmen. Es zeigt F i g. 1 ein Rechenwerk nach der Erfindung in Form eines Blockdiagramms,
F i g. 1 (a) ein Datenflußdiagramm, das die Wirkungsweise der Schaltung von F i g. 1 während einer Divisionsoperation darstellt, und die
F i g. 2 (a), 2 (b), 2 (c) und 2 (d) Datenflußdia-
gramme, die andere Rechenoperationen darstellen.
Die nachfolgende Beschreibung befaßt sich mit
Operationen im Dezimalsystem. Dem Fachmann dürfte es klar sein, daß das nicht als Einschränkung ausgelegt werden kann und daß bei entsprechenden Änderungen auch Rechnungen in jedem anderen beliebigen Zahlensystem ausgeführt werden können. Das Arbeiten im Dezimalsystem ist jedoch besonders vorteilhaft in einer kleinen Maschine, in der eine Dezimal-Binär-Wandlung unzweckmäßig sein kann.
Eine zur Realisierung der Erfindung geeignete
Ausführungsform des Rechenwerks ist in F i g. 1 dargestellt. Es besteht aus einer Steuereinheit 1, die zweckmäßigerweise die Form einer Matrix hat, drei Registern A, B und M, von denen A und M ein vollständiges Wort und B ein vollständiges Wort und zwei zusätzliche Ziffern aufnehmen können, einem Resultatregister Q, einem Zähler 7, einer Addier-Subtrahier-Einheit 3 und einer Zustandsprüfeinheit 4. Zwischen den verschiedenen Elementen des Rechenwerks sind Datenpfade vorgesehen, die jeder durch
509 538/369
ein Tor gesteuert werden, das in der Zeichnung durch Register A den Dividenden und das Register B den
einen quer über den Datenpfad verlaufenden Balken Divisor, und das Register Q und der Zähler 7 stehen
dargestellt ist. Diese Tore werden durch die Steuer- auf Null.
einheit 1 gesteuert, wenn auch zur Vereinfachung der Zuerst wird der Inhalt von B vom Inhalt von A Zeichnung die eigentlichen Steuerpfade weggelassen 5 in der Einheit 3 subtrahiert. Die Steuereinheit gibt an, worden sind. Die Aufgabe der Steuereinheit besteht daß der Ausgang der Einheit 3 auf einen Borgvorgang darin, eine Anzahl von Mehr-Bit-Wörtern zu erzeugen, hin zu prüfen ist. Wenn keine Borgvorgang auftritt, bei denen jedes Bit der Einstellungeines der Steuertore wird der Zähler um Eins weitergeschaltet und der entspricht. Wenn also an einer bestimmten Stelle Subtraktionsvorgang fortgesetzt, wobei der Inhalt in einem Steuerwort ein Eins-Bit vorliegt, wird das io von B von dem von A zum zweiten Mal subtrahiert entsprechende Tor geöffnet, während bei Vorliegen wird usw., bis ein Borgvorgang auftritt,
eines Null-Bits das entsprechende Tor geschlossen Die erforderlichen Tore (in diesem Falle die Tore gl, wird. Die Bits des Steuerwortes können je nach der g2 und g3) werden zu den entsprechenden Zeitfür die Tore erforderlichen relativen Zeitsteuerung punkten durch die Steuereinheit eingestellt. Die gleichzeitig oder nacheinander ausgelesen werden. 15 Schaltung von F i g. 1 ist so angeordnet, daß beim
Zusätzlich zu den Bits für das Steuern der verschie- Eintritt eines Borgvorganges die von der Steuereinheit
denen Tore erzeugt die Steuereinheit Adreßinforma- vorgeschriebene Bedingung erfüllt ist und das Adreß-
tionen für ein nachfolgendes Steuerwort. Diese Adreß- register 5 ein neues Steuerwort für die Steuerung des
informationen werden über einen Pfad 6 dem Steuer- nächsten Schrittes in der Division auswählt. Bei
matrix-Adreßregister 5 zugeleitet, das außerdem In- 20 diesem Schritt geschehen mehrere Dinge. Zunächst wird
formationen aus einer Prüfeinheit 4 empfängt. Die der Inhalt von B wieder zum Inhalt von A addiert, da
Anordnung ist so getroffen, daß in dem Falle, daß die der Borgvorgang angezeigt hat, daß B einmal zu viel
Prüfeinheit kein Ausgangssignal erzeugt, die Adresse subtrahiert worden ist. Zweitens wird der Inhalt des
des nächsten Steuerwortes die durch das vorhergehende Zählers 7 in die erste Ziffernstelle des Registers Q
Steuerwort angegeben ist, dagegen bei Erzeugung 25 eingegeben und Q eine Stelle nach links verschoben,
eines Ausgangssignals durch die Prüfeinheit die von Drittens wird der Inhalt des Registers A eine Stelle
dem vorhergehenden Steuerwort erzeugte Adresse nach links verschoben. Nach Abschluß aller dieser
abgeändert wird, bevor sie der Steuereinheit zugeführt Vorgänge wird der ursprüngliche Subtraktions-
wird. Eine weitere Gruppe von Bits des Steuerwortes Vorgang wieder aufgenommen, und zwar wird B
wird der Prüfeinheit selbst über Pfad 2 zugeleitet und 30 jetzt vom mit zehn multiplizierten Inhalt von A
dient zur Angabe eines zu prüfenden Zustandes. subtrahiert. Im Laufe der Operationsfolge werden
Die Addier-Subtrahier-Einheit 3 hat zwei Ausgangs- also die aufeinanderfolgenden Ziffern des Quotienten leitungen 8 und 9, und zwar liefert die Leitung 8 gebildet, und durch entsprechend häufige WiederInformationen darüber, ob ein Borgvorgang oder ein holung des Vorganges kann man jede gewünschte Übertrag aufgetreten ist, und die Leitung 9 enthält 35 Genauigkeit erlangen.
das Resultat einer Addition oder einer Subtraktion. Bei der nachstehenden Beschreibung werden die bei Außerdem weist die Einheit drei Eingangsleitungen 10, dem Rechenwerk von F i g. 1 beschriebenen Operall und 12 auf, von denen die Leitungen 10 und 11 tionen an Hand von Flußdiagrammen, die in Verso steuerbar sind, daß sie je nach der Einstellung ihrer bindung mit F i g. 1 betrachtet werden müssen, Tore einen echten oder komplementären Eingangswert 40 schrittweise entwickelt. Ein Flußdiagramm für den eingeben, und die Leitung 12 einen Eingangswert direkt Divisionsvorgang ist in F i g. 1 (a) dargestellt, und um in die Einheit einführt. Diese Einheit kann einem ein einfaches Operationsbeispiel zu geben, wird der beliebigen herkömmlichen Typ angehören, hat aber oben in Verbindung mit F i g. 1 erläuterte Divisionsvorzugsweise die Form einer gespeicherten Tabelle. prozeß jetzt an Hand von F i g. 1 (a) beschrieben.
Der Zähler 7 zählt unter der Steuerung der Steuer- 45 Anfänglich enthält das Register A ein «-stelliges
einheit jeweils eine Ziffer aufwärts oder abwärts. Wort y und das Register B ein «-stelliges Wort x.
Sein Ausgangssignal wird dem Quotientregister Q auf X wird so oft wie möglich von y subtrahiert, bis A
einen Impuls aus der Steuereinheit hin immer dann so klein wird, wie es werden kann, ohne negativ zu
zugeführt, wenn in dem Zähler eine bestimmte erf order- werden. Diese Anzahl von Malen wird in einem
liehe Ziffer aufgelaufen ist. Gleichzeitig mit einer 50 Zähler aufgezeichnet, dessen Inhalt zu einem Schiebe-
Eingabe in Q erfolgt eine Stellenverschiebung, damit register Q übertragen wird. (Es wird eine Subtraktion
eine nachfolgende Ziffer in die nächste Stelle von Q zu viel ausgeführt, und daher ist eine nachfolgende
eingeführt werden kann. Addition nötig.) Jetzt wird A mit 10 multipliziert und
Die in Fig. 1 gezeigte Anordnung kann mehrere der Vorgang wiederholt. Wenn er «-mal wiederholt
" »orden is,, S,«Hen i„2 die, Zfflem A
drückliche Vorkehrungen getroffen sind. Die einzige Damit die Stellenzahl des Ergebnisses unter 10
Einschränkung bezüglich der ausgeführten Funktionen ,, .,. , . ,. ,. c. , .. , , „ y „
ν * t* j · j ο · · t * · Ti-I. AJj- bleibt, besteht die Einschränkung, daß — < 10 sein
besteht dann, daß sie sich auf eine Reihe von Addi- 6 χ
tionen, Subtraktionen, Stellenverschiebungen und 60 muß. Das Register ^t muß eine Länge «+1 haben,
Übertragungen reduzieren lassen müssen. Bevor nun damit die Linksverschiebung möglich ist. Die Antwort
die komplexeren Funktionen besprochen werden, mit ist natürlich genau (abgesehen von einem im Register A
denen sich die Erfindung in erster Linie befaßt, sei verbleibenden Rest).
zunächst ein relativ einfaches Operationsbeispiel Jetzt soll an Hand von F i g. 2 (a) die Auswertung beschrieben, und zwar eine Division. 65 verschiedener Funktionen beschrieben werden, welche
Eine Division kann auf eine Reihe von Subtrak- das Änderungswertregister M nach der Erfindung
tionen und Stellenverschiebungen reduziert werden, benutzen. Bei allen diesen Prozessen wird das Register
wobei wie folgt vorgegangen wird: Anfangs erhält das M während jedes Subtraktionsganges unmittelbar vor
der Subtraktion gefüllt. Nach jeder Subtraktion wird der in B stehende Pseudodivisor dadurch auf den laufenden Stand gebracht, daß zu dem Divisor der Inhalt des um j Stellen nach rechts verschobenen Änderungswertregisters M addiert wird, wobei die Q+l)-te Quotientziffer qj gebildet wird.
Die verschiedenen Programme unterscheiden sich nur dadurch, daß in das Änderungswertregister die Inhalte verschiedener Register eingegeben werden. Nachstehend wird nun genau beschrieben, wie die verschiedenen Programme wirken. Flußdiagramme für alle sind zusammen in F i g. 2 (a) dargestellt.
Das Verfahren besteht darin, die Ziffern qj so zu wählen, daß
Die y-Werte werden immer kleiner. Um die Genauigkeit beizubehalten, ist es zweckmäßig, das zu tun, was im Falle einer echten Division getan wird, und
ZU) _ lOi j/y)
setzen. Für jedes j gelten dann die Bestimmungsrelationen
zu) _ zü) _ xo") o + 1 a a
+ 1
χψ+\ -
und dies sind die Gleichungen für die Bewertung von qj. qj wird definiert durch:
α)
15
worin y und χ gegebene n-stellige positive Zahlen sind. Die Berechnung von qj wird einer Division angeglichen. Wenn das geschehen ist, ist ao
in-1
log j 1 + — ] = 'S] qj log (1 + 10~')·
\ χ j j
(2)
Die Berechnung wird in zwei Teile aufgeteilt. Im as ersten Teil wird qj errechnet. Im zweiten wird der Logarithmus aus (2) unter Verwendung gespeicherter Werte für log (1 + 10-') berechnet Diese letztgenannte Berechnung erweist sich als Pseudomultiplikation.
Teil I der Berechnung Es wird angenommen, daß
Hier handelt es sich nun um einen Pseudodivisions-Vorgang, z^ ist der Pseudorest und x® der Pseudodivisor. Der einzige Unterschied besteht darin, daß der Pseudodivisor ständig dadurch auf den laufenden Stand gebracht wird, daß 10"'xf addiert wird, anstatt konstant gehalten zu werden.
Wenn qj gefunden ist, ist es klar, daß die Anfangsbedingungen für die Bewertung von yi+x wie folgt sind:
y-χ\Ώ.ο-
35
errechnet worden ist, worin q, q^ Ziffern sind, die bereits gebildet worden sind, und daß jetzt qj gefunden werden muß.
Hierfür werden aufeinanderfolgende Berechnungen von
Wenn daher qj gefunden ist, wird der Prozeß für die Radizierung von ^1 fortgesetzt, wobei der Pseudorest z™ mit 10 multipliziert wird. Dies ähnelt dem, was im Falle einer echten Division geschieht.
Zu Anfang des Prozesses ist es auch klar, daß
zo y->
JC^ = X.
_ v-xJPfTfI -1- 10-*Λ1π 4- 10-Ύ -y *1 JLJL*·1 + iU J \KL -Ir ιυ j -
1 JLJL
I
(3) für a =0,1,2 ... qj ausgeführt, qj wird definiert durch
> 0 > yV) + 1.
Dann wird festgestellt, welche Wirkung der Ein-Schluß weiterer Faktoren (1 + 10~J) hat, wobei es das Ziel ist, yf positiv zu halten, es aber klein zu machen. Es gilt
Daher wird der folSende Algorithmus festgelegt:
Wenn j, durch χ unter Verwendung eines langen Divisionsprozesses mit wiederholter Subtraktion dividiert wird, wobei der Divisor χ ständig dadurch auf den laufenden Stand gebracht wird, daß 10-i χ während der Bildung der Quotientziffer qj zu ihm addiert wird, dann ist der Pseudoquotient q0, q±, qz... so beschaffen,
logfl
= Υ, q. log(l
/t }
(11)
55
Π -u in-fc^f \n -L ιη-Λβ (a\
Die aufeinanderfolgenden y- und x-Werte können aus (3) und (4) durch die Bestimmungsrelationen
VO) — v
'a + l ~ 'α
i(Wyü)
1U Xa > Das Flußdiagramm in F i g. 2 (a) enthält diesen Prozeß und zeigt ihn ausführlich. Er ist in diesem Fall identisch mit dem in F i g. 1 (a) für eine echte Division gezeigten mit Ausnahme der Verwendung des Änderungswertregisters M, dessen Inhalt den Divisor auf den laufenden Stand bringt. Bei jeder Ausführung einer Subtraktion wird der Änderungswert mit dem Divisor selbst eingestellt, so daß die Bestimmungsrelationen 7 erfüllt sind.
g5
χω i =
errechnet werden.
Größen von x und y Zweckmäßigerweise sollen alle Quotientziffern kleiner als 10 sein.
7 8
Wie im Falle einer echten Division bedeutet dies Nach der Bildung von qn-% enthält^ einen Fehler
eine Begrenzung von — nach oben, und zwar muß „
für?0<10 + (ΙΟ»-3 q2 + 10»-* q3
2<2io_i +qn-1)$x1 + öxi + ..
χ Im ungünstigsten Falle ist q1 = q2 = q3 ... =9
sein. Ox1=Ox, = ... =3.
Es stellt sich dann heraus, daß
Für nachfolgende Ziffern wird die Bedingung auto- io , _ _
matiscn erfüllt, weil sie für eine echte Division be- ^71"1 ~ ' ' ^
stimmt erfüllt ist und bei der Pseudodivision der Die Auswirkung von Rundungsfehlern, die bei der
Divisor ständig vergrößert wird. Bildung von q2 auftreten, ist dieselbe, nur ist sie
,,. y ,, . . , „. . . , ,. „ , . zehnmal kleiner, usw. Im ungünstigsten Falle besteht
Wenn £ Wem ist, nähert sich die Berechnung einer i{. alg0 die wifkung a]ler RunJungsfehler darin> in A
echten Division, und es überrascht nicht, daß nach der Bildung von qn-i einen Gesamtfehler von
, y\ y <5 J^1= 45 · 10»-2 <5(1+ 10-!+10-*+...)
1 -+- — j — —. =50·10»-2<5 16
ao zu erzeugen.
Registerlängen Wenn ?»-i gebildet worden ist, gilt
β ^, y _f_ χ
x und y sind beide «-stellige Zahlen, von denen angenommen wird, daß ihre Kommas an der gleichen wird qn-x durch die echte Division von A durch B Stelle stehen. Da jedoch die in B enthaltene Zahl 25 gefunden, da in dieser Phase die Wirkung des Ändewährend des Rechnens größer wird, kann es sein, daß rungswertes vernachlässigbar ist. Der Fehler in A ist das Register B langer als η sein muß. Der Inhalt von deutlich vorherrschend, und infolgedessen ist in qn-x B ist tatsächlich am Ende der Rechnung: ein Fehler enthalten von
xmi + io-V-y + x. 30 5°-10^2T+T- (17)
Wegen des Rundens bei der Addition, und weil
so daß offensichtlich ein Register der Länge η + 1 angenommen wird, daß mindestens einer der Werte y für B ausreichend ist. Auch das Restregister A braucht oder χ η-gültige Ziffern enthält, gilt
niemals eine Zahl zu enthalten, die größer ist als das 35 δ
Zehnfache der in B stehenden Zahl. Daher hat das —~r 5' 1O-". (18)
Register A die Länge η + 2. y + x
Q hat die Länge n, und der Pseudoquotient wird Daher ist der ungünstigste Fehler in qn-i kleiner als 2,5. auf η Stellen berechnet. Genauigkeitsüberlegungen Die letzte Ziffer des Quotienten ist also niemals um
haben gezeigt, daß es sich nicht lohnt, mehr Stellen 40 mehr als 2,5 falsch. Da jedoch die Wahrscheinlichkeit auszurechnen. besteht, daß Rundungsfehler sich ausgleichen, ist
. qn-i gewöhnlich in typischen Berechnungen genau
Genauigkeit richtig. (Die Wahrscheinlichkeit dessen läßt sich sogar
Die einzigen vorkommenden Approximationen berechnen.) Das Verfahren ist daher von Natur aus treten auf, wenn der stellenverschobene Änderungs- 45 genau.
wert zum Divisor addiert wird. Man kann aber leicht -pgjj jj ,jer Berechnung
die Wirkung der bei dieser Verschiebung fallengelassenen Ziffern erkennen. Es wird angenommen, daß Der zweite Teil der Berechnung besteht darin,
die fallengelassenen Ziffern bei der Addition zum χ Λ + i^) von (H) zu finden. Die Basis, nach der der Runden verwendet werden. 50 \ χ) κ
Die ersten Abrundungsfehler treten bei der Berech- Logarithmus berechnet wird, wird bestimmt durch
nung von qx auf. δχ* sei der bei der Ä>ten Abrundung die Basis, nach der die Konstanten von log (1 + 10^J")
eingeführte Rundungsfehler. Wenn qx gebildet worden errechnet werden,
ist, enthält A die Abweichung Man beachte, daß
(&-2)ό*,+ ... (12) 55
und B die Abweichung Die Dezimalzahl
Sx1 + δχζ +... δ xgi. (13)
Bevor qt gebildet wird, wird A nach links verschoben. 60 ist daher bereits eine ziemlich nahe Approximation an £ die bci
r wirkt sogar nur die erste Hälfte des q] die Durch-
<3 y* = 10 [(ft - 1) δ X1 + (ft - 2) δ χ2 + ... j führung von Korrekturen.
+ ΐΛδΧι + ■·· δ X11) 6s Die Bildung des log (l + -^) von (11) ähnelt deutlich
14) einer Multiplikation. Die Zahl in Q ist der Multi-
in A vor, wenn qa gefunden ist, usw. plikator, während der Multiplikand den Wert
log (1 + 10~·0 erhält, solange die Multiplikation mit der Ziffer qj stattfindet. Es ist daher zweckmäßig, für diese Operationen einen Pseudomultiplikator zu benutzen. Die Operation gleicht einer gewöhnlichen Multiplikation, nur wird der Multiplikand von irgendeinem Speicher, aus dem nur gelesen wird, auf den erforderlichen Wert eingestellt, während jede Stelle des Multiplikators verarbeitet wird.
F i g. 2(b) zeigt den Prozeß ausdrücklich und stellt außerdem dar, wie er mit einer echten Multiplikation io der genau ist. kombiniert wird.
Es genügt natürlich,
Dies führt nach einer Pseudomultiplikation zu
^j = 1,4919.
Bei Fortsetzung des Prozesses erhält man einen Wert
logfl + j-\ =1,4919240,
log ζ
1(VlOg(I + ΙΟ-'") = 1
(19)
einzustellen, während die niedrigste Hälfte der Multiplikatorstellen verarbeitet wird. Damit werden Einsparungen bei der Anzahl von gespeicherten Konstanten erzielt.
Es ist beabsichtigt, daß dieses Programm nicht mehr als ein bestimmter Modus des Multiplikations-Programms sein soll. Natürlich stimmt es, daß die Pseudomultiplikation und -division zu einem einzigen Prozeß kombiniert werden können. Sie sind jedoch so aufgespalten worden, daß sie mit der echten Multiplikation und Division kombiniert werden können.
Rechenzeiten
Für die Bildung des log (1 + —) werden nach diesem
Verfahren etwa drei Multiplizierzeiten benötigt, und dazu gehört natürlich die Division von y durch x, die herkömmlicherweise vor der Berechnung des Logarithmus durchgeführt worden wäre.
Nachstehend wird ein Zahlenbeispiel für die Berechnung von logil + —) gegeben.
y = 67 719
Soll der log ζ errechnet werden, wobei ζ eine /2-steliige Zahl ist, bei der das Komma links steht, muß das Komplement von ζ in A und ζ selbst in B eingebracht werden, bevor der Prozeß eingeleitet wird.
Dann ist y = 1 — z, so daß
log ■£) = logil +
= -log ζ. (20)
35 — ist nicht zu groß, wenn ζ nicht zu klein ist. Dies
ist ein ausgezeichnetes Verfahren zur Feststellung von log z, wenn 0,1 < ζ < 1, und daher kann man nach diesem Verfahren den Logarithmus des Bruchteils einer Zahl mit gleitendem Komma feststellen.
Bildung des tg-1
Gesucht werden solche ganzzahlige Werte von qj, daß
(χ + iy) Π (! - * 10~0β' = R. (21)
J=O
χ = 21 608
j B A Zähler
stand
Q
0 21608
21608
67719
21608
1
43216
43216
46111
43216
1
2
86432
86432
86432
864
2895
28950
289500
86432
2 00002
00020
87296
873
203068
87296
1
88196
882
115772
88169
2
3 89051
89051
89
27603
276030
89051
3 00203
89140
89
186979
89140
1
89229
89
97839
89229
2
4 89318
89318
8610
86100
3 02033
20330
40 wobei χ und y n-stellige positive Zählen und R eine reelle Zahl sind. Wenn das der Fall ist, ist
log (χ + iy) = log R - ~Σ qi log (1 - i IQr1). (22)
j=o
Der imaginäre Teil dieser Gleichung ergibt, daß
10-'. (23)
* x
45 J=O
Wieder wird die Rechnung in zwei Teile aufgeteilt. Im ersten werden ganzzahlige Werte von qj durch einen Pseudodivisionsprozeß errechnet. Im zweiten
wird tg"1— durch eine Pseudomultiplikation festgestellt, wobei für tg"110"' gespeicherte Werte verwendet werden.
Teil I der Berechnung
Es sei angenommen, daß
(x + iy) JJ (1 — i 10"fc) fc
berechnet worden ist, worin q0 ... qj-x Ziffern sind, die bereits gefunden worden sind, und es muß überlegt werden, was zum Finden von qj nötig ist. Hierfür werden aufeinanderfolgende Berechnungen von
J-I
r*
—fio-oe,
(24)
509 538/369
ausgeführt für a = O, 1, 2 ... qj. qj wird definiert durch
y&> wird so klein wie möglich gemacht und dabei positiv gehalten.
Registerlänge
χ und y sind jeweils «-stellige Zahlen, deren Kommas an der gleichen Stelle stehen. Am Ende des Prozesses enthält B etwa die Zahl R aus (21), und
R = χ + iylYl]! —HO
(25)
Planmäßig werden die y -Werte bei Fortsetzung des Prozesses kleiner.
Um die Genauigkeit beizubehalten, ist es daher zweckmäßig, zu schreiben:
zu) = lV/p (26)
-~ sa ■ (26)
Die Bestimmungsrelationen werden dann
Za + 1 = Z a Xa >
JJ) JJ) ι ιλ_a Jt JJ) /OTV
Xa + 1 Xa T-I" JZa . (J./)
Diese werden wiederholt befolgt, bis
Ze^ > 0 > zQ} + 1. (28)
Auch dies ist wieder eine Pseudodivision, bei der z*j? der Pseudorest und x% der Pseudodivisor sind. In diesem Falle wird jedoch der Pseudodivisor wiederholt durch 10~ 2^ Z0J auf den laufenden Stand gebracht.
Wie bei Logarithmen ist es klar, daß bei Einleitung der Iteration für qj+1 die Ausgangsbedingungen folgende sind:
S ^ (29)
1
so daß der Pseudorest eine Stelle nach links verschoben werden muß.
Außerdem sind zu Beginn des Gesamtprozesses
40
=x.
(30)
Daher wird der folgende Algorithmus festgelegt: Wenn y durch χ unter Verwendung eines langen Divisionsprozesses mit wiederholter Subtraktion dividiert wird, bei dem der Divisor dadurch ständig auf den laufenden Stand gebracht wird, daß 102^z (ζ ist der Rest) dazuaddiert wird, während die Quotientziffer qj gebildet wird, ist der Pseudoquotient q0 qx ... so beschaffen, daß
= Σ ©tr1
(31)
Das Flußdiagramm in F i g. 2(a) stellt den Prozeß deutlich dar, und er unterscheidet sich von dem zu Bildung des log (l + —j nur dadurch, daß M gleich 10""' A anstatt gleich B eingestellt wird.
Größen von χ und y
60
Da 0 < tg-x — < -=-, ist es offensichtlich, daß χ i.
<7o<2.
Da der Divisor ständig vergrößert wird, ist es außerdem klar, daß alle anderen Pseudoquotientziffern kleiner als 10 sind.
Daher sind alle Quotientziffern kleiner als 10, und
für das Verhältnis — bestehen keine Beschränkungen.
(32)
womit sich zeigen läßt, daß
R<2\x + iy\<2flMsii(x,y). (33) Daher ist ein Register der Länge η + 1 bestimmt ausreichend, um R aufzunehmen. Bei dem Logarithmusprogramm genügt es daher, dem Register B die Länge η + 1 und dem Register A die Länge η + 2 zu geben.
Nachstehend wird ein Zahlenbeispiel für die Bildung
von tg-1— gegeben.
y = 30912
χ = 59438
/ B A Zähler
stand
Q
0
1
59438
59438
3091
30912
309120
59438
00000
62529
2497
249682
62529
1
65026
1872
187153
65026
2
66898
1221
122127
66898
3
2 68119
68119
55
55229
552290
68119
4 00004
68174
48
484171
68174
1
68222
42
415997
68222
2
68264
35
347775
68264
3
68299
28
279511
68299
4
68327
21
211212
68327
5
68348
14
142885
68348
6
68362
7
74537
68362
7
3
4
68369
68369
68369
6175
61750
617500
68369
8 00048
00480
In diesem
tige Divisi(
549131
Stadium wird
an mit dem R
1
hieraus e
esultat:
ine rich-
68369 2179 9 04809
Dies führt nach Ausführung einer Pseudomultiplikation zu einem Wert tg"1— = 0,4796.
Bei Fortsetzung dieses Prozesses ergib sich:
tg"1^ = 0,479578.
Das richtige Ergebnis ist 0,479574.
Genauigkeit
Die Besprechung der Genauigkeit gleicht praktisch der der Logarithmen, da auch hier die einzigen Fehler auftreten, wenn der Inhalt des Änderungswertregisters stellenverschoben und addiert wird, um den Divisor auf den laufenden Stand zu bringen. Fehler treten auf wegen der fallengelassenen Ziffern. Die vorhergehende Besprechung traf auf alle Pseudodivisionsprozesse dieser Art zu.
Das Ergebnis ist daher, daß der maximale Fehler in der letzten Stelle des Quotienten qn—i den Wert
10 *
Man sieht, daß der einzige Unterschied gegenüber den früheren Programmen darin besteht, daß das Änderungswertregister auf eine Konstante eingestellt wird, während der Pseudodivisor zwischen dem Ziehen aufeinanderfolgender Ziffern verändert wird.
Verfahren
Es werden solche ganzzahligen Werte von qj gefunden, daß
y ~ χί'Σ^ί 10"
\j=.o
so daß
J
Hier wird angenommen, daß q0 ... q^ gefunden worden sind und daß qj gefunden werden muß. Das geschieht, indem nacheinander
Auch in diesem Falle ist daher der Fehler im ungünstigsten Fall gleich 2,5 in der letzten Stelle des Pseudoquotienten, und wegen der gegenseitigen Aufhebung von Fehlern ist qn-i natürlich gewöhnlich richtig.
Teil II der Berechnung
tg"1— wird jetzt aus (31) errechnet. Das geschieht
durch eine Pseudomultiplikation und läuft genauso ab, wie es für Logarithmen beschrieben worden ist, und ist in Fig. 2(b) dargestellt. Jedoch wird für aufeinanderfolgende Werte von j der Multiplikand auf lCtg"110 ·'■ anstatt auf 10''log (1 + 10~0 eingestellt. Für etwa zwei Drittel der Werte von j ist es genau genug,
10' tg"110"' = 1
zu setzen, und dadurch spart man daher gespeicherte Konstanten ein.
Σί*10 k + al°
berechnet wird für a = 0, 1, 2 ... Die Absicht ist wieder, j#} so klein wie möglich zu machen, es aber positiv zu halten. Man definiere
4Λ =
»ΙΟ-* + a 10-'j + χ 10"'.
Dies läßt sich errechnen aus der Bestimmungsrelation
x"+1 =
φ .
Xa + 2χΐυ ·
Ausgedrückt in
®, sieht man daß
= VU) _ 10-' XU) a ° '
(42)
W.ie mvo1' ist es um der Genauigkeit wfflen zweck maßi§»
Ausführungszeiten
Um nach diesem Verfahrentg-^ zu bilden, werden
etwa drei Multiph'zierzeiten benötigt, und außerdem gewinnt man hierbei natürlich eine Division.
Um tg-1 ζ zu bilden, ist es sehr einfach,
und
S° die folSenden Bestimmungsrelationen
zü) = l0'jü>,
.." ,. a '
zJ a+1 — za x'a ,
*i = x( + 2^
(43)
χ = 10a
für einen passenden Maßstabsfaktor 10« zu setzen, obwohl dann natürlich die zusätzliche Divisionsmöglichkeit verschwendet wird.
isewertung
Die beiden beschriebenen Programme ergeben
genaue Werte von logfl + *-) und tg-iJL
& B\ χ) e χ
Multiplizierzeiten, was schneller ist als irgendeines der Verfahren mit Unterprogramm. Sie haben den Vorteil der Einfachheit, da sie lediglich Pseudodivisoren und Pseudomultiplikatoren verwenden. Außerdem sind sie nicht unnötig verschwenderisch in bezug auf gespeicherte Konstanten.
Diese Gleichungen werden iteriert, bis z°2 negativ wird· Das heißt' daß © definiert wird durch '
(44)
Diese Gleichungen gleichen wiederum denjenigen, ^j6 jQ ejnem Divisionsprozeß entstehen, z^ ist der Rest, und X^ ist der Pseudodivisor, der ständig in drei 55 durch die Addition der Konstanten 2χ verschoben um j Stellen, auf den laufenden Stand gebracht wird. Die Anfangsbedingungen für die Extraktion von sind jedoch komplizierter. Eindeutig ist
O" + D
Jedoch ist
x(Jo
== x^ — x 10-' + x
Quadratwurzeln /
65 Vor der Berechnung von q;+x muß daher der Pseudo-Das in Fig. 1 gezeigte Rechenwerk kann auch divisor dadurch auf den laufenden Stand gebracht
subtrahiert wird, und
zum Ziehen von Quadratwurzeln benutzt werden, wie es F i g. 2 (a) zeigt.
werden, daß es von 9
dies stellt die zusätzliche Komplikation dar.
I 190
Zu Beginn des Prozesses sind
yf> = y,
χΦ) = x
Man erhält daher den folgenden Algorithmus: Wenn eine Pseudodivision von y durch χ ausgeführt wird, wobei der Änderungswert konstant auf 2 χ gehalten wird, und wenn zwischen der Berechnung der aufeinanderfolgenden Ziffern 9 · 10"'-1X vom Divisor subtrahiert wird, ist der Quotient gleich ]/—.
Dies Programm sieht wahrscheinlich bekannter aus, wenn es mit χ = 1 ausgeführt wird.
Es ist sehr leicht, den Änderungswert in einer binären Maschine auf 2 λ: einzustellen, und in einer binären Maschine den Faktor 9, der im Subtraktor auftritt, durch den Faktor 1 zu ersetzen.
Zahlengrößen
Es ist zweckmäßig, anzunehmen, daß y und χ Zahlen mit « bedeutsamen Stellen sind und daß ihre Kommas entweder an derselben Stelle stehen oder um eine Stelle voneinander abweichen. Wenn sie an derselben Stelle stehen, besagt das, daß
10>*->J_.
χ 10
Wenn sie abweichen, wird y vor Beginn des Rechenvorgangs eine Stelle nach links verschoben. Im letztgenannten Fall gilt
Da planmäßig χ und y jedes mindestens η bedeutsame Ziffern enthalten, ist
-L-< 5· 10-». (51)
Mχ y
Dies führt dazu, daß im ungünstigsten Fall in qn-^ ein Fehler von 1,5 auftreten kann, und daher hat dieses Programm den gleichen Genauigkeitsgrad wie die anderen.
Nachstehend wird ein Zahlenbeispiel für die Bildung einer Quadratwurzel mit Hilfe der erfindungsgemäßen Anordnung gegeben.
y = 77208 χ = 16804
100 >
> 1
In beiden Fällen sind alle Quotientziffern kleiner
als 10.
Größe der Register
Am Ende des Prozesses enthält B etwa
x<C, die größte κ-stellige Zahl, (47)
y < IOC.
Daher ist
2]/x~y < 2]/iOC. (48) 4g
Wie zuvor reicht also ein Register der Länge η + 1 für B und ein Register der Länge η + 2 für A aus.
Genauigkeit
Fehler kommen vor, wenn der stellenverschobene Änderungswert den Divisor auf den laufenden Stand bringt und Ziffern fallengelassen werden und auch dann, wenn der Divisor zwischen der Extraktion aufeinanderfolgender Ziffern auf den laufenden Stand gebracht wird. Die ersten Fehler sind die auch vorher schon angetroffenen. Die anderen gehören zum gleichen Typ, treten aber im schlimmsten Falle nur mit einem Zehntel der Häufigkeit auf. Bei (16) ist also im schlimmsten Falle ein Fehler von
60
55
(49)
in A zu erwarten, wenn qn-x gebildet worden ist.
qn-i ist im wesentlichen durch die Division von A durch B erlangt worden. B enthält jetzt 2~\[x^y. Daher ist in qn-i der im ungünstigsten Fall auftretende Fehler gleich
" ™. (50)
F y
j B A Zähler
stand
Q
0 16804
33608
77208
16804
00000
50412
33608
60404
50412
1
84020
15124-
9992 2
1 68896
3361
99920
68896
00002
72257
1512-
31024 1
2 70745
336
310240
70745
00021
71081
336
239495
71081
1
71417
336
168414
71417
2
71753
336
96997
71753
3
72089
151-
25244 4
3 71938
34
252440
71938
00214
71972
34
180502
71972
1
72006
34
108530
- 72006
2
72040
15-
36524 3
4 72025
3
365240
72025
02143
72028
3
293215
72028
1
72031
3
221187
72031
2
72034
3
149156
72034
3
72037
3
77122
72037
4
72040 5085 5 21435
55 · 10«-
Die Antwort ist daher: 21435
Bei Fortsetzung des
Prozesses ergibt sich: 21435070
Richtige Antwort: 21435066
17 18
Die oben beschriebenen Prozesse können umgekehrt Konstanten werden als κ-stellige Zahlen gespeichert,
werden, um Exponenten, Tangensfunktionen und wobei das Komma links steht. Daher muß die Zahl
Quadrate festzustellen. In den umgekehrten Prozessen vor Beginn des Prozesses wenn nötig stellenverschoben
werden Multiplikationen zu Divisionen und Divisionen werden. Es werden η Pseudoquotientziffern errechnet,
zu Multiplikationen. In den resultierenden Multipli- 5 Die Genauigkeit, mit welcher ρ gekannt ist, macht die
kationen wird natürlich erwartet, daß die niedrigste Berechnung weiterer Ziffern unnötig.
Stelle des Multiplikators als erste verarbeitet wird und
daß die Antwort als das Verhältnis der Inhalte der „
Register^ und B erlangt wird. Das besagt, daß eine
letzte zusätzliche Division nötig ist. io Um
Diese abschließende Division läßt sich jedoch bei [π π ιη-η 1
Exponenten und Quadraten vermeiden, wenn die x\lIC1 + 10 ')Q3-i\
Reihenfolge der Multiplikation verändert und die Ly==0 J
höchste Multiplikatorstelle als erste verarbeitet wird.
Beim Tangens ist jedoch das Verfahren die genaue 15 zu berechnen, wird eine Pseudomultiplikation aus-
Umkehrung des Verfahrens für den Arkustangens. geführt, die q0 ... qn-% als Pseudomultiplikator ver-
Dadurch unterscheiden sich die Verfahren leicht von- wendet und mit der höchsten Stelle q0 beginnt,
einander. Hierfür sei angenommen, daß
Bildung von Exponenten _ p—1
Nach dem zu beschreibenden Verfahren läßt sich ifc=o
χ (pe — 1) für gegebene positive Zahlen ρ und χ
berechnen, ρ wird für ganzzahlige Werte qj ausgedrückt schon errechnet worden ist und daß jetzt qj verarbeitet
als werden muß. Es sei definiert, daß
j=o 3 fp = χ pfj(i + ίο-«)«* (l + io-'T - 1],
U=o J
* nc1 + 10"*)**"1 (56)
Dann ist
x(e3>-l)=x[JT(l+10-0^-il·
Wenn ρ negativ wäre, wäre es möglich, eine Er-
(57)
weiterung von p, ausgedrückt durch log (1 — 10"'), Für aufeinanderfolgende α-Werte werden dann die
vorzunehmen. Dies wäre die Umkehrung des Ver- Bestimmungsrelationen
f ahrens für die Feststellung von log (1 — —) für positive y^+x = J^ + 10"'*β'} >
Werte von χ und y. Dies ist oben nicht ausdrücklich q) _ ^) , «« ,· φ ,,-^,
behandelt worden, aber man beachte, daß der einzige xa + i — xa ~r x a \ J
Unterschied für diesen Fall darin besteht, daß der gewonnen, und diese werden bei einer Iteration für
Pseudodivisor durch eine Subtraktion anstatt durch a = 0 ... qj verwertet.
eine Addition auf den laufenden Stand gebracht werden 40 Es ist zweckmäßig,
muß.
Bei Anwendungen mit gleitendem Komma genügt z(P ,= 10'J^ (59)
es aber wahrscheinlich, daß ρ positiv ist, und daher
wird hier nur dieser Fall besprochen. einzusetzen; dann werden die Bestimmungsrelationen zu
Die Berechnung wird in zwei Teile aufgeteilt. Im 45 r) {/> y)
sten werden ganzzahlige Werte von q3- durch eine za+i = za ~l· xa >
ersten werden ganzzahlige Werte von q3- durch eine za+i
Pseudodivision festgestellt, und im zweiten wird der (. ... _. ..,
Exponent durch eine Pseudomultiplikation bestimmt. xa + i — xa + 10 ' XL (60)
50 Diese Gleichungen ersetzen eine Multiplikation.
Um ganzzahlige Werte für qj festzustellen, wird eine z® ist die Zwischensumme, während xf der MultiDivision von ρ durchgeführt. Der Divisor wird von plikand ist, der ständig dadurch auf den laufenden einem Speicher, aus dem nur gelesen wird, auf log Stand gebracht wird, daß er mit einer Verschiebung (1 + 10 ') eingestellt, während die Ziffer q3- gebildet von/ Stellen zu sich selbst addiert wird,
wird. Die F i g. 2 (c) zeigt den Prozeß deutlich bei 55 ist der Multiplikator,
dem es sich um eine Umkehrung des in Fig. 2 (b)
gezeigten handelt. Natürlich werden die Konstanten Wenn qj verarbeitet worden ist, sind die Anfangs-
10'log(l + 10~0 aus demselben Speicher entnommen. bedingungen für die Verarbeitung von ^+1 folgende:
Die Größe von ρ 6o ζ α 0 +ΐ) = 10ζω,
Alle Ziffern qj müssen kleiner als 10 sein. Das
bedeutet, daß ρ < 10 Iog2 für q0 < 10, während diese 0 +1) = χψ . (61)
Bedingung für andere Ziffern automatisch erfüllt wird, }
da Es erfolgt daher eine Linksverschiebung des Zwi-
log (i _j_ io~J) < 10 log (1 + 10""7'"1) . (55) 65 schenproduktes zwischen der Verarbeitung aufeinanderfolgender Ziffern, und genau dasselbe geschieht
Die Kommas von ρ und den Konstanten l& log bei einer echten Multiplikation, bei der die höchste
(l+10~') müssen an der gleichen Stelle stehen. Die Stelle zuerst verarbeitet wird.
509 558/369
Bei Beginn des Prozesses sind
4» =o,
(62)
Daher wird eine Pseudomultiplikation ausgeführt, bei der χ der Pseudomultiplikand, der wiederholt auf den laufenden Stand gebracht wird, und q0 ... qn-i der Multiplikator ist.
Das Flußdiagramm in F i g. 2 (d) zeigt diesen Prozeß. Er ist identisch mit dem für eine echte Multiplikation (Multiplikation von links aus) mit Ausnahme der Verwendung des Änderungswertregisters, das den Pseudomultiplikanden nach jeder aufeinanderfolgenden Addition auf den laufenden Stand bringt.
Wenn xe? anstatt χ (eJ> — 1) berechnet werden muß, muß das Zwischensummenregister A anfangs auf χ eingestellt sein. Natürlich kann χ für die Berechnung von e? auf 1 eingestellt werden, aber es ist verlockend, ao die volle Wirkungskraft des Verfahrens auszunutzen.
Registergrößen
Im Laufe der Berechnung wird der Pseudomultiplikand größer. Schließlich ist er etwa gleich xeJ>, und daher muß darauf geachtet werden, daß das Register B nicht überläuft. In einer Anwendung mit Gleitkomma-Arithmetik ist es wahrscheinlich, daß χ eine Zahl mit η bedeutsamen Ziffern ist und daß 1 < e3' < 10. In diesem Falle muß das Register B eine Länge η + 1 haben.
Am Ende des Prozesses enthält A eine Zahl ähnlicher Größe, die aber η — 1-mal nach links verschoben worden ist. Daher muß das Register .4 die Länge 2« haben. Es ist bedauerlich, daß A ein so langes Register sein muß. Es kann aber, wie es häufig geschieht, mit Q zusammengelegt werden, da die Stellenzahl in Q mit der Zunahme der Stellenzahl in A abnimmt.
Genauigkeit
Die am Ende des Prozesses in A stehende Zahl ist die erforderliche Antwort, und es muß festgestellt werden, wieviele Stellen davon genau richtig sind. Ungenauigkeiten treten im Pseudomultiplikationsprozeß durch das Fallenlassen von Ziffern auf, wenn der Pseudomultiplikand 'auf den laufenden Stand gebracht wird. Hierdurch wird der Inhalt von A in genau derselben Weise beeinflußt, wie er in dem entsprechenden Pseudodivisionsprozeß beeinflußt worden ist. Daher ist nach (16) der Fehler in A, wenn qn-i verarbeitet worden ist, im schlimmsten Falle gleich Nachstehend wird ein Zahlenbeispiel für die Berechnung von χ (e?'—1) gegeben.
χ = 21608 ρ = 14192
Eine Pseudodivision von ρ ergibt (Q) = 20330.
J B " A Zähler
stand
Q
0 21608
21608
43216
43216
00000
21608
21608
43216
2
1
03300
1
2
86432
86432
86432
864
64824
648240
6482400
86432
0
0
3
33000
30000
87296
873
6568832
87296
2
88169
882
6656128
88169
1
3 89051
89051
89
6744297
67442970
89051
0
3
00000
89140
89
67532021
89140
2
89229
89
67621161
89229
1
89318 67710390 0
Das Verfahren führt daher zu dem Ergebnis:
Das richtige Ergebnis ist:
67710 677154
50 · ΙΟ»-2 · δ
(63)
Wegen der Abrundung in der Modifikation ist δ =■ 0,5. Es liegt daher in A ein Fehler von etwa 2,5 in der η — 1-ten Ziffer von rechts vor. Der Inhalt von Λ wird daher n — l Stellen nach rechts verschoben. A enthält nun eine Zahl der Länge η + 1, deren Komma an der gleichen Stelle steht wie das in der Zahl x. Ihre niedrigststellige Ziffer weicht um höchstens 3 vom richtigen Wert ab.
Außerdem treten Ungenauigkeiten auf, weil in der vorläufigen Division nur η Ziffern des Pseudoquotienten berechnet worden sind. Wie schon erklärt, ist dies jedoch die gerechtfertigte Ungenauigkeit, und diese Ungenauigkeit ist eine Eigenart des verwendeten Zahlensystems.
An sich ist dies daher ein genaues Verfahren.
Es scheint ein großer Fehler vorzuliegen. Dieser verschwindet aber, wenn der Inhalt von Q auf sechs Stellen anstatt auf fünf berechnet wird und der Prozeß eine Stufe weitergeführt wird. Wenn ρ jedoch nur bis zu der angegebenen Stellenzahl bekannt ist, ist diese weitere Genauigkeit unecht.
Ausführungszeiten
xep oder χ (e» — 1) wird in etwa drei Multiplizierzeiten gebildet.
Bildung von Tangensfunktionen
Das beschriebene Verfahren ermöglicht die Berechnung von tg£. Das Ergebnis wird als Verhältniszahl erlangt und, wie schon erklärt, ist eine abschließende Division erforderlich.
Es wird angenommen, daß 0 < ρ < -=- . ρ wird für ganzzahlige Werte von q$ ausgedrückt als SIO"'. (64)
(65)
Dann wird für einen reellen Wert R
χ+ ty = RjJ(I
berechnet.
Natürlich ist dann plikand durch Subtraktion auf den laufenden Stand
y gebracht wird.
t-SP — —· (66) Das Flußdiagramm für diesen Prozeß ist auch in
F i g. 2 (d) gezeigt.
Die ganzzahligen Werte von q3- werden durch eine 5 .
Pseudodivision gebildet, und dann werden χ und y KegistergroWen
durch eine Pseudomultiplikation errechnet. Der Pseudomultiplikand wird im Laufe des Pro-
TT zesses kleiner. Zuerst enthält er R, was willkürlich ist.
Um der Genauigkeit willen wird es auf die größte
Die Pseudodivision ist in F i g. 2 (c) dargestellt. Sie io zweckmäßige Zahl mit η + 1 Stellen eingestellt, und ist identisch mit dem bei der Bildung des Exponenten das Register B erhält die Länge η + 1. A braucht verwendeten entsprechenden Prozeß, nur werden niemals eine Zahl zu enthalten, die mehr als zehnmal Konstanten 10? tg-i 1O-? anstelle von lO'logil+lO-?) so groß wie die Zahl in B ist, und daher hat A die verwendet. Länge η + 2.
n Größen von ^ *5 Genauigkeit
Da ρ < -γ, ist q0 < 2, pjje Inhalte von A und B sind am Ende des Pro-
Da zesses infolge des Fallenlassens von Ziffern fehlerhaft,
tg-110~7 < 10 tg-1 ΙΟ'''"1, (67) wenn der stellenverschobene Inhalt von M den
sind alle anderen Ziffern 9i kleiner als 10. ao Pseudomultiplikanden auf den laufenden Stand bringt.
Das endgültige Verhältnis von B zu A ist daher
Wie im Falle des Exponenten^ müssen in den tg (j> + dp) für ein kleines dp anstatt tgp. Fehler Konstanten 10''tg^lO"'' die Kommas ander gleichen werden zweckmäßigerweise in der durch dp ausstelle stehen. Daher wird nach Bedarf die Zahl ρ gedrückten Form besprochen. Bei Anwendung des stellenverschoben. 25 Verfahrens zur Bildung eines Arkustangens auf B
Es werden η Pseudoquotientstellen berechnet. und A kann man feststellen, daß sich ihre Inhalte
schrittweise ihren Inhalten während der Bildung des
Teil II tg nähern. Tatsächlich übersteigen nach Bildung der
Zur Berechnung von Ziffern q0 ■ ■ ■ qj im Arkustangensprozeß die Inhalte
-,-τ „ 30 von B und A die entsprechenden Inhalte im Tangens-
RlLa+ i 10-0% (68) prozeß um den Fakt0£:
wird eine Pseudomultiplikation ausgeführt, bei der 11(1 + 1O-3*)9*.
^0 ... qn-x als Pseudomultiplikator benutzt wird, der fc=0
mit der niedrigsten Stelle qn-x beginnt. 35 Rundungsfehler treten jedoch in beiden Prozessen
Man definiere m ähnlicher Weise auf. Wenn Kompensationsfehler
n__x bei dem Arkustangensprozeß an genau den Stellen
χθ) ι · U) = Ji TT Π + ΐ10~*")*ι· fl 4-ϊ10~0ο auftreten, wo Fehler im Tangensprozeß aufgetreten
" + y" fcJyVi ■ 'n ^ J sind, wird
(69) 40 * _i* /■ , * ->
und setze zl2 = 10* «(ί. w
Für aufeinanderfolgende Werte von α erhält man als/> berechnet, wobei dann ein Fehler von dp vorliegt.
dann die Beziehungen Aus der Besprechung von Fehlern für den Arkus-
„j a) a) tangensprozeß ist daher ersichtlich, daß dp in der
Za+i = Za + Xa , 45 niedrigsten Stelle von ρ im ungünstigsten Falle gleich
XU) _ xü) _ iQ-2jJJ) (7η 2,5 ist, und dies gibt daher ein Maß für den Fehler im
a+1 " a Tangensprozeß. Das Fallenlassen von Ziffern bei Aus-
und diese werden wiederholt für a = 0 ... #/. führung der Modifikation ergibt also im Tangens-
Auch diese Gleichungen ersetzen wieder eine Multi- prozeß die gleichen Fehler wie im Arkustangensprozeß.
plikation. ist das Zischenprodukt. xaj ist der 50 „ . . . , _ , ..
Pseudomultiplikand, der ständig dadurch auf den Trigonometrische Funktionen
laufenden Stand gebracht wird, daß z(2 um 2 j Stellen Bei diesem Verfahren entstehen zwei Zahlen χ und y
verschoben subtrahiert wird. q0... qn-i ist der Multi- die das Verhältnis tgp haben. Um tg^ zu erhalten,
plikator, muß eine weitere Division ausgeführt werden, und es
Nach q} wird ^1 verarbeitet, und die Anfangs- 55 muß natürlich darauf geachtet werden, daß χ nicht zu
bedingungen sind klein ist.
Jj-V _ \(\-i Jj) Man kann auch sin ρ und cos ρ aus
Xo Xq. · (.'/;
Zu Beginn des Prozesses sind 6q
(74)
Z1Q = Q,
jn-i) R n~ bilden.
0 ^ ' Diese lassen sich dadurch errechnen, daß zunächst χ
Es wird also eine Pseudomultiplikation von R mit 65 und y quadriert werden und dann nach dem oben be-
q0 ... qn-i durchgeführt, die mit der niedrigsten schriebenen Prozeß zum Ziehen der Quadratwurzel
Stelle qn ^1 beginnt. Diese gleicht genau einer echten vorgegangen wird. In einer Mikroprogrammaschine
Multiplikation abgesehen davon, daß der Multi- läßt sich die hierfür nötige Steuerung leicht einrichten.
23
Wenn die Sinus- und Kosinusfunktionen in «-stelligen Speichern stehen, wobei das Komma eine Stelle vom Unken Ende entfernt steht, übersteigen Fehler, die auf dem trigonometrischen Teil des Verfahrens beruhen, niemals 2,5 in der niedrigsten Stelle.
Ausführungszeiten
χ und y werden in drei Multiplizierzeiten gebildet. tg/7 läßt sich in vier Zeiten errechnen, während sin ρ und cos ρ etwa sieben Multiplizierzeiten benötigen.
Die Bildung von Xg ρ durch die in F i g. 1 gezeigte Anordnung wird durch das untenstehende Zahlenbeispiel veranschaulicht.
ρ = 0,4796
Eine Pseudodivision ergibt: (Q) = 04809
Der Inhalt von B wird zunächst zweckmäßigerweise auf 100000 eingestellt.
Zählerstand
100000
100000 100000
100000 1
99999 U
99988
21
99967 31
99936 41
99895 51
99844 61
99783 71
99712
99712 808
98904 1806
97098 2795
94303 3766
90537 90537
00000 9
0
0
8
900000
90000
9000
100000
7
109000
99999
6
208999
99988
5
308987
99967
4
408954
99936
3
508890
99895
2
608785
99844
1
708629
99783
0
4
808412
80841
99712
3
180553
98904
2
279457
97098
1
376555
94303
0
0
470858
47085
00480
00048 00004
Das Bilden von Quadraten
Das Verfahren zum Ziehen von Quadratwurzeln läßt sich auch umkehren in ein Verfahren zum Errechnen von Zweierpotenzen. Es ermöglicht die Berechnung von xq2 aus gegebenen Werten χ und q.
Es wird eine Pseudomultiplikation ausgeführt, χ ist der anfängliche Pseudomultiplikand und q der Multiplikator, und die Multiplikation wird mit der höchsten Stelle von q begonnen. In jeder Stufe wird der Pseudomultiplikand in genau derselben Weise auf den laufenden Stand gebracht wie der Pseudodivisor beim Quadratwurzelprozeß. Das Pseudoprodukt ist dann xq\
Registergrößen
Es wird zweckmäßigerweise angenommen, daß χ und q Zahlen mit η bedeutsamen Ziffern sind. Es läßt sich dann zeigen, daß das Register B die Länge n + 2 haben muß, damit der Pseudomultiplikand wachsen kann. Das Register A muß die Länge 2« + 1 haben, um « — 1 aufeinanderfolgende Linksverschiebungen zu ermöglichen.
Genauigkeit
Die Art und Weise, in welcher Fehler auftreten, entspricht genau dem Auftreten von Fehlern beim Quadratwurzelprogramm. Es liegt also in A im ungünstigsten Fall ein Fehler von
55 -10»-2(S
vor, wenn qn-x verarbeitet worden ist. Daher wird am Ende des Prozesses der Inhalt von An — I Stellen nach rechts verschoben, was dazu führt, daß in der niedrigsten Stelle von A ein Fehler von nicht mehr als 3 entsteht, wobei A jetzt eine Zahl mit η, η + 1 oder n + 2 Stellen ist.
Dezimalkommas
Wenn angenommen wird, daß bei den «-stelligen Zahlen χ und q das Komma eine Stelle vom linken Ende entfernt steht, d. h. daß 1 < x, q < 10, dann steht in xqz das Komma an der gleichen Stelle, d. h.
00000
00000
Eine Division führt zu einem Wert von tg^=0,5201 Das richtige Ergebnis ist: 0,52010
Werte: sin ρ = 0,4614, cos/> =0,8872,
lassen sich ebenfalls errechnen. Die richtigen Werte sind 0,46142 und 0,88725.
l<xg2
Dieses Programm ist ebenfalls in F i g. 2 (d) dargestellt.
Aus den unten genau beschriebenen Rechenoperationen geht hervor, daß das beschriebene Rechenwerk, obwohl es sehr einfach aufgebaut ist, die Flexibilität und Leistung einer Datenverarbeitungseinrichtung stark erhöht. Es ist zwar eine spezielle Anordnung beschrieben worden, aber dem Fachmann dürfte es klar sein, daß auch andere Anordnungen verwendbar sind, ohne den Rahmen der Erfindung zu verlassen. Insbesondere können bestimmte der Register kombiniert werden, um Registerraum einzusparen, da zu Beginn einer Operation der für die Resultatziffern benötigte Platz klein ist, während der für Operanddaten benötigte groß ist, und dies am Ende einer Operation umgekehrt ist. Bei einem kombinierten Register für Operand- und Resultatdaten könnten also die Operanddaten gleichzeitig mit dem Eingeben der Resultatdaten ausgelesen werden.
Der oben beschriebene Prozeß wird durch das folgende Zahlenbeispiel veranschaulicht:
1 190 /UU
25
χ = 16804
q = 21435
16804 33608
50412 33608
84020 15124-68896 3361 72257
1512-70745
336 71081
336 71417
336
71753
336
72089
151-71938
34
71972 34
72006
34
72040
15-72025
72028
72031 3
72034
72037 3
72040
Die gegebene Antwort ist daher: Das richtige Ergebnis ist:
A Zähler
stand
00000
16804
2
16804
50412
1
67216 0
672160
68896
1
741056 0
7410560
70745
4
7481305
71081
3
7552386
71417
2
7623803
71753
1
7695556 0
76955560
71938
3
77027498
71972
2
77099470
72006
1
77171476 0
771714760
72025
5
771786785
72028
4
771858813
72031
3
771930844
72034
2
772002878
72037
1
772074915
14350
43500
35000
500000 nachdem die Subtraktion stattgefunden hat. In bestimmten Fällen kann diese Reihenfolge umgekehrt werden, damit andere Funktionen ausgewertet werden können, so z. B. beim Ziehen von Kubikwurzeln, das in F i g. 3 gezeigt wird.
Nach F i g. 3 wird die Zahl, deren Kubikwurzel gefunden werden soll, zuerst durch 3 X ausgedrückt, indem eine Vordivision ausgeführt wird. Der Wert λ; wird dann dem Register A eingegeben, und das Ergebnis wird im Register Q entwickelt. Im allgemeinen ähnelt diese Operation den oben beschriebenen Operationen, unterscheidet sich davon jedoch in den folgenden Einzelheiten:
a) Wie schon gesagt wird das Änderungsregister nach erfolgter Subtraktion und nicht vorher geladen.
b) Wenn das Änderungswertregister in der Hauptschleife aufgeladen wird, wird es verdoppelt.
c) In zwei Punkten der bedingten Schleife wird der . am wenigsten geltende Teil des Änderungswertregisters mit der Konstanten 3 aufgeladen.
Ein Beispiel, wie eine Kubikwurzel gezogen wird, ist anschließend aufgeführt. Die Längslinien sind Bezugspunkte für Schiebeoperationen. Dabei ist zu beachten, daß sich die Zahl χ ursprünglich in A so weit rechts wie nur möglich befindet und daß Verschiebungen von jeweils drei Ziffern auf einmal vorgenommen werden.
χ = 11128749.3
0 11
00000
10
77207 772075273
21
_9_
11
_9_
Die nachfolgende Beschreibung befaßt sich mit Operationen im Dezimalsystem. Dem Fachmann dürfte es klar sein, daß das nicht als Einschränkung ausgelegt werden kann und daß bei entsprechenden Änderungen auch Rechnungen in jedem anderen beliebigen Zahlensystem ausgeführt werden können. Das Arbeiten im Dezimalsystem ist jedoch, besonders vorteilhaft in einer kleinen Maschine, in der eine Dezimal-Binär-Wandlung unzweckmäßig sein kann.
Außerdem wird in allen oben beschriebenen Arbeitsbeispielen das Änderungswertregister M aufgeladen, 20
10.
10
1287493 0
3333333
795416
3333333
4620826
3333333
1287493 12
287493
303333
98416
923333
060826 10
60826 10
27203
33623 10
33623
00
00000 10
303
303
923
563
323
24
3203
27203
33623 6
40063 6
]/3(ni28749.3) = 322.
3
3
03 30
30
2 31
4 32
23
203 320
320
42 321
44 322
509 538/369

Claims (8)

Patentansprüche:
1. Arithmetische Einheit für einen programmgesteuerten Digitalrechner mit mehreren Operanden- und Resultatregistern, mit mindestens einer Addier-Subtrahier-Einheit und mit einer Steuereinheit zur Durchführung von Divisionen und/oder Multiplikationen zwischen zwei Operanden nach dem Prinzip der fortgesetzten Subtraktion bzw. Addition, dadurchgekennzeichnet, daß ein Operandenänderungsregister (M) vorgesehen ist, dessen Inhalt zur wiederholten additiven oder subtraktiven Veränderung der Operanden innerhalb eines Divisions- oder .Multiplikationszyklus dient und durch Teilergebnisse der Divisions- oder Multiplikationsoperationen, durch die Veränderungsrechnungen selbst und/oder durch zugeführte Änderungswerte bestimmt wird.
2. Arithmetische Einheit nach Anspruch 1, dadurch gekennzeichnet, daß die Steuereinrichtung (1) derart ausgebildet ist, daß sie für jeden Rechengang innerhalb einer Serie gleicher Rechengänge der Addier-Subtrahier-Einheit (3) eine Änderung des einen Operanden vornimmt.
3. Arithmetische Einheit nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß das Änderungswertregister (M) mit einem Eingang der Addier-Subtrahier-Einheit (3) verbunden ist, deren zweiter Eingang mit dem Operandenregister des zu verändernden Operanden verbunden ist, wodurch unter Wirkung der Steuereinheit der Änderungswert zu dem betreffenden Operanden addiert oder von diesem subtrahiert wird.
4. Arithmetische Einheit nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß eine mit der Steuereinrichtung (1) verbundene Prüfeinrichtung (4) vorgesehen ist, die das jeweilige Teilergebnis aus der Addier-Subtrahier-Einheit (3) auf einstellbare Kriterien der zu berechnenden Funktion, wie Überträge oder Borger, abtastet und in Abhängigkeit von diesen eine Änderung des einen Operanden durchführt oder verhindert.
5. Arithmetische Einheit nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß die Steuereinrichtung (1) derart ausgebildet ist, daß sie in Abhängigkeit von einem Rechengang der Addier-Subtrahier-Einheit (3) oder von einem Ausgangssignal der Prüfeinrichtung (4) den Inhalt des Änderungswertregisters (M) ändert.
6. Arithmetische Einheit nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß der Ausgang der Addier-Subtrahier-Einheit (3) über von der Steuereinheit (1) beeinflußte Torschal-
tungen mit dem Änderungswertregister (M) verbunden ist.
7. Arithmetische Einheit nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß das Änderungswertregister (M) als Schieberegistei ausgebildet ist und in Abhängigkeit von einem Ausgangssignal der Prüfeinrichtung (4) einen Verschiebeimrjuls empfängt, der eine Stellenverschiebung des Änderungswertes gegenüber dem zu verändernden Operanden vornimmt.
8. Arithmetische Einheit nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, daß ein konstanter Speicher zur Aufnahme von Änderungswerten entsprechend den zu berechnenden Funktionen vorgesehen ist und daß die Steuereinrichtung zur Steuerung der Übertragung der Änderungswerte in der richtigen Reihenfolge und zum richtigen Zeitpunkt in das Änderungswertregister dient.
In Betracht gezogene Druckschriften:
»Digitale Rechenanlagen«, Springer Verlag, Berlin, 1961, S. 254 und 255 und 283 bis 285;
»Handbook of Automation, Computation and Control«,Vol. 2, John Wiley & Sons, Inc., New York, 1959, S. 2-251 bis 2-257;
»The Annals of the Computation Laboratory of Harvard University«, Vol. XXVII, S. 172 bis 184;
»Arithmetic Operations in Digital Computers«, D. van Nostrand Comp., Inc., New York 1955, S. 348 und 349.
In Betracht gezogene ältere Patente:
Deutsches Patent Nr. 1 157 009.
Hierzu 3 Blatt Zeichnungen
509 538/369 3.65 © Bundesdruckerei Berlin
DEJ22379A 1961-09-20 1962-09-13 Arithmetische Einheit fuer einen programmgesteuerten Digitalrechner Pending DE1190700B (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB3372161A GB1014391A (en) 1961-09-20 1961-09-20 Improvements in arithmetic units for digital calculators and the like

Publications (1)

Publication Number Publication Date
DE1190700B true DE1190700B (de) 1965-04-08

Family

ID=10356608

Family Applications (1)

Application Number Title Priority Date Filing Date
DEJ22379A Pending DE1190700B (de) 1961-09-20 1962-09-13 Arithmetische Einheit fuer einen programmgesteuerten Digitalrechner

Country Status (2)

Country Link
DE (1) DE1190700B (de)
GB (1) GB1014391A (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3440680A1 (de) * 1983-11-07 1985-05-23 Hitachi, Ltd., Tokio/Tokyo Verfahren und vorrichtung zur dezimaldivision

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3440680A1 (de) * 1983-11-07 1985-05-23 Hitachi, Ltd., Tokio/Tokyo Verfahren und vorrichtung zur dezimaldivision
DE3440680C2 (de) * 1983-11-07 1989-11-23 Hitachi, Ltd., Tokio/Tokyo, Jp

Also Published As

Publication number Publication date
GB1014391A (en) 1965-12-22

Similar Documents

Publication Publication Date Title
DE2246968C2 (de) Einrichtung zur Multiplikation zweier Gleitkommazahlen
DE1549476B2 (de) Anordnung zur ausfuehrung von divisionen
DE1956209A1 (de) Schneller Multiplikator
DE1162111B (de) Gleitkomma-Recheneinrichtung
DE1549480A1 (de) Datenverarbeitungsanlage
DE2222197C3 (de) Anordnung zum Auf- bzw. Abrunden von Binärzahlen
DE19781794C2 (de) Verfahren und Einrichtung zur Division von Gleitkomma- oder ganzen Zahlen
DE2034841C3 (de) Matrixanordnung für Digital-Rechenanlage
DE1499281B1 (de) Rechenmaschine fuer logarithmische Rechnungen
DE2424756C3 (de) Elektronischer Rechner
DE2758130A1 (de) Binaerer und dezimaler hochgeschwindigkeitsaddierer
DE4019646C2 (de) Vorrichtung und Verfahren zum Multiplizieren von Datenwörtern in Zweier-Komplement-Darstellung
EP0130397B1 (de) Digitales Rechenwerk
DE1190700B (de) Arithmetische Einheit fuer einen programmgesteuerten Digitalrechner
DE1549395B2 (de) Elektronischer Kleinrechner, insbesondere Tischrechner
DE3132611A1 (de) Digitale integriereinrichtung
DE1125685B (de) Rechenmaschine
DE1234055B (de) Anordnung zur Addition oder Subtraktion
DE3931545A1 (de) Gleitkommaprozessor
DE2140386A1 (de) Digitalrechengerat
DE2136600C3 (de) Anordnung zur automatischen Prozentrechnung
DE2150853C3 (de) Divisions-Vorrichtung für ein serielles Vier-Spezies-Rechenwerk
DE2501985A1 (de) Mit gleitkomma arbeitender rechenmechanismus
DE2432979C3 (de) Mit gemischter Zahlendarstellung arbeitende Einrichtung zum Multiplizieren zweier komplexer Zahlen und Addieren einer dritten komplexen Zahl zum Produkt
DE1499281C (de) Rechenmaschine für logarithmische .Rechnungen