DE1549476B2 - Anordnung zur ausfuehrung von divisionen - Google Patents
Anordnung zur ausfuehrung von divisionenInfo
- Publication number
- DE1549476B2 DE1549476B2 DE19671549476 DE1549476A DE1549476B2 DE 1549476 B2 DE1549476 B2 DE 1549476B2 DE 19671549476 DE19671549476 DE 19671549476 DE 1549476 A DE1549476 A DE 1549476A DE 1549476 B2 DE1549476 B2 DE 1549476B2
- Authority
- DE
- Germany
- Prior art keywords
- divisor
- adder
- multiplier
- multiplication
- reciprocal
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/533—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
- G06F7/5334—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/535—Dividing only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/386—Special constructional features
- G06F2207/3884—Pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/535—Indexing scheme relating to groups G06F7/535 - G06F7/5375
- G06F2207/5355—Using iterative approximation not using digit recurrence, e.g. Newton Raphson or Goldschmidt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/487—Multiplying; Dividing
- G06F7/4873—Dividing
Description
Die Erfindung betrifft eine Anordnung zur Ausführung
von Divisionen durch Rückführung auf Multiplikationen.
Es sind verschiedene schnelle Divisionseinrichtungen
bekannt geworden, bei denen die Quotientenziffern dadurch erzeugt werden, daß in Abhängigkeit
vom Dividenden und vom Divisor Divisorvielfache gebildet werden, die vom Dividenden subtrahiert
werden, sofern dieser ein echter Wert ist, oder zum Dividenden addiert werden, sofern dieser ein komplementärer
Wert ist. Der ausgewählte Divisorvielfache und das Vorzeichen des Resultates bestimmen dabei
die zugehörigen Quotientenziffern.
Hierunter fallen z.B. die bekannten binären Divisionseinrichtungen,
die die Wahl der Divisorvielfachen nach dem Gesichtspunkt durchführen, daß die folgende Subtraktions- oder Additionsoperation ein
Resultat bzw. einen Teildividenden ergeben soll, dessen hohe Bitstellen mehrere aufeinanderfolgende
Nullen bzw. Einsen aufweisen. Für jede dieser hochstelligen Nullen oder Einsen kann eine Stellenverschiebung
und die Einführung einer vorbestimmten Quotientenziffer in das Quotientenfeld erfolgen, so
daß die Anzahl der notwendigen Subtraktions- bzw. Additionsoperationen reduziert werden kann (Proceedings
of the IRE, Januar 1961, Seiten 80 bis 91). Diese Einrichtungen wählen in Abhängigkeit von dem
jeweiligen Dividenden- und Divisorwert aus einer gegebenen Anzahl von Divisorvielfachen dasjenige aus,
welches bei der nachfolgenden Iterationsoperation ein Maximum an möglichen Stellenverschiebungen gestattet.
Die Auswahl des richtigen Divisorvielfachen kann durch Versuchsrechnungen geschehen, indem
zugleich mehrere Divisorvielfache vom Dividenden bzw. Teildividenden (= Resultat der vorausgehenden
Iterationsoperation) subtrahiert werden oder, wenn dieser ein Komplementärwert ist, zum Dividenden
bzw. Teildividenden addiert werden. Von den Resultaten dieser Operation wird das Resultat mit der großten
Anzahl möglicher Stellenverschiebungen als neuer Teildividend verwendet. Eine solche Arbeitsweise erfordert
einerseits einen erhöhten Rechenwerkaufwand und andererseits zusätzliche Operationszeit für
die Prüfung, welches der ermittelten Resultate der gewünschten Bedingung entspricht. Die Auswahl der
Divisorvielfachen kann auch durch Decodierung der Bitstellen des Dividenden bzw. Teildividenden und
des Divisors geschehen. Auch hiermit ist ein erheblicher Einrichtungsaufwand verbunden, wenn eine größere
Anzahl Operandenstellen erfaßt werden soll. Außerdem ist auch hier ein zusätzlicher Zeitaufwand
für die nach einem vorgegebenen Schema zwischen zwei Iterationen erfolgende Decodierungsoperation
notwendig.
Ganz allgemein ist festzustellen, daß bei den erläuterten und auch bei anderen bekannten Divisionseinrichtungen
eine Iterationsoperation erst dann beginnen kann, wenn das Ergebnis der vorausgehenden
Iteration vorliegt und die eventuell notwendigen Zwischenoperationen, wie z.B. die Bestimmung von Divisorvielfachen,
ausgeführt sind. Außerdem ist die Zahl der auszuführenden Iterationen in starkem Maße
von der jeweiligen Bitkonfiguration des Divisors und Dividenden und von deren Stellenzahl abhängig. Aus
diesen Gründen erfordert die Durchführung von Divisionen auch bei Verwendung der relativ komplexen
Einrichtungen der vorausgehend erläuterten Art noch immer einen beträchtlichen Zeitaufwand.
Aufgabe vorliegender Erfindung ist es, eine Anordnung zur Ausführung von Divisionen durch Rückführung
auf Multiplikationen anzugeben, welche unter Vermeidung der angegebenen Nachteile mit
kürzeren Divisionszeiten als die bekannten Divisionseinrichtungen auskommt. Gemäß der Erfindung wird
dies dadurch erreicht, daß ein Kehrwertgenerator vorgesehen ist, der für den Divisor einen angenäherten
Kehrwert bereitstellt, welcher einer Multiplikationseinrichtung zur getrennten Multiplikation jeweils
mit dem Dividenden und dem Divisor zugeführt wird, und daß eine Steuereinrichtung vorgesehen ist, die
iterativ die Erzeugung jeweils eines weiteren angenäherten Zwischendivisor-Kehrwertes und der darauffolgenden
getrennten Multiplikationen mit den bei den Multiplikationen des Divisors und Dividenden
entstandenen neuen Zwischendivisoren und Zwischendividenden solange wiederholt, bis der Zwischendivisor
innerhalb einer vorgegebenen Toleranz an Eins angenähert und der zugeordnete Zwischendividend
als Quotient verfügbar ist.
Ein Hauptvorteil dieser Anordnung besteht darin, daß die Anzahl der auszuführenden Iterationen unter
Zugrundelegung gleicher Operandenlängen gegenüber den bekannten Divisionseinrichtungen reduziert
wird. Da der iterative Operator nicht mehr die Division selbst ist, sondern die Multiplikation, ergeben sich
insofern weitere bedeutsame Vorteile, als eine überlappte Ausführung der einzelnen Iterationen möglich
ist und eine bessere Ausnutzung der in den meisten Fällen bereits vorhandenen Multiplikationseinrichtung
erzielt werden kann, wodurch sich die Einrichtungskosten verringern lassen.
Weitere vorteilhafte Ausgestaltungen der Erfindung sind aus den Ansprüchen zu ersehen. Nachfolgend
ist ein Ausführungsbeispiel der Erfindung an Hand von Zeichnungen erläutert. Es zeigt
F i g. 1 ein Blockschaltbild einer Additionseinrichtung, wie sie im dargestellten Ausführungsbeispiel der
Erfindung verwendbar ist, - - : - · ■ ■<
Fig. 2 ein Blockschaltbild der erfindungsgemäßen
Anordnung, die als zur Durchführung von Multiplikationen und Divisionen geeignete Gleitkomma-Recheneinheit
ausgebildet ist, ■■''·■
Fig. 3 ein Zeitdiagramm für die verschiedenen
Steuerimpulse zur Betätigung der Additionseinrichtung nach Fig. 1, ' ■
Fi g. 4 eine schematische Darstellung der während
aufeinanderfolgender Multiplikationsiterationen zu untersuchender Bitgruppen des Multiplikators, die
eine Erzeugung von Multiplikandenvielfachen steuern, welche der Additionseinrichtung von Fig. 1 zu-
geführt werden,
Fig. 5 eine tabellarische Darstellung der Eingänge
und der Ausgänge eines Decodierers, um dessen Wirkungsweise bei der Erzeugung von Multiplikandenvielfachen zu erläutern,
Fig. 6 ein Schaltbild einer Taktgebereinrichtung, die zur Steuerung der Additionseinrichtung von
Fig. 1 verwendbar ist,
Fig. 7 eine schematische Darstellung der Wirkungsweise der Additionseinrichtung von Fig. 1 bei
der Zusammenfassung und Akkumulation von Teilprodukten,
Fig. 8 ein Operationsflußdiagramm für die Ausführung
von Divisionen gemäß der Erfindung,
Fig. 9 eine tabellarische Darstellung der Divisorformate
und deren Kehrwerte, wie sie in der Anordnung von F i g. 2 auftreten,
Fig. 10 eine tabellarische Darstellung zur Erläuterung
der Stellenverschiebungen, die mit den Operanden und Teilresultaten während der einzelnen Divisionsiterationen
in der Anordnung von Fig. 2 ausgeführt werden, und
Fig. 11 ein Zeitdiagramm zur Erläuterung der
Wirkungsweise der Anordnung von Fig. 2.
Die in F i g. 1 in Form eines vereinfachten Blockschaltbildes
dargestellte Einrichtung umfaßt Eingabemittel 20, eine Addiererpyramide 21, eine Addiererschleife
22 und ein Ubertragsvorausschau-Addierwerk 23. Die Erläuterung der Fig. 1 beschränkt sich
darauf, in welcher Weise mit Hilfe der dargestellten Einrichtung Additionen durchgeführt werden. Erst an
Hand Fig. 2 wird die Anwendung des Addierwerkes gemäß F i g.. 1 zur Durchführung von Multiplikationen
erläutert. Die Operanden-Eingabemittel 20 von Fig. 1 bestehen aus einer Anzahl Register 24 bis 29.
Jedes dieser Register enthält mehrere binäre Verriegelungsschaltungen, beispielsweise Flipflops, zur
Speicherung einer Anzahl binärer Operandenbits, die in diese Register eingegeben werden. Wie in Verbindung
mit Fig. 2 detaillierter erläutert wird, umfassen die Eingabemittel ferner eine Multiplikandenquelle
30 und eine Multiplikatorquelle 31 sowie ein Multiplikator-Decodier-Register 32, der aufeinanderfolgende
Sätze von Multiplikatorbits empfängt, um aufeinanderfolgende Auswahlsignale zu erzeugen, die zur
Übertragung ausgewähler Vielfacher des Multiplikanden in die verschiedenen Register 24 bis 29 dienen.
Die Addiererpyramide 21 enthält eine Anzahl Übertragsaufschub-Addierer 40 bis 44, die in mehreren
Stufen angeordnet sind. Die eingangsseitige Stufe der Pyramide besteht aus den Übertragsaufschub-Addierern
40 und 41, die in F i g. 1 zusätzlich durch A und B unterschieden sind. Ein weiterer Übertragsaufschub-Addierer
42, der mit C bezeichnet ist, und ein Register 43 dient als Zwischenstufe. Die ausgangsseitige
Stufe der Addiererpyramide besteht aus dem Übertragsaufschub-Addierer 40, der mit D bezeichnet
ist.
Die Funktion der Addiererpyramide 21 besteht darin, an ihrem Eingang Signalgruppen zu empfangen,
von denen jede aus allen in den Registern 24 bis 29 gespeicherten Operandenbits besteht. Der Ausgang
des Addierers 21 liefert zwei Gruppen von Signalen, von denen die eine die Summensignale und die andere
die Übertragssignale darstellt. Beide Gruppen können in einem übertragsverarbeitenden Addierwerk zu einer
Endsumme der der Pyramide 21 zugeführten Operanden zusammengefaßt werden.
Die Addiererschleife besteht aus zwei Stufen, von denen jede einen Übertragsaufschub-Addierer enthält.
Die erste Stufe besteht aus dem Übertragsaufschub-Addierer 50, der außerdem mit E bezeichnet
ist, und einem Register 51. Die zweite Stufe besteht aus dem mit F bezeichneten Ubertragsaufschub-Addierer
52. Die Addiererschleife 22 empfängt nacheinander Ausgangssignale von der Addiererpyramide 21
ίο jeweils zu der Zeit, wenn durch den Übertragsaufschub-Addierer
52 auf seinen Ausgängen S und C je eine Signalgruppe erzeugt wird. Es gelangen somit
jeweils gleichzeitig vier Signalgruppen zum Eingang der Addiererschleife 22. Zwei Gruppen liefert hiervon
der Ubertragsaufschub-Addierer 44 und die übrigen zwei Gruppen liefert der Übertragsaufschub-Addierer
52. Die Rate, mit welcher die Ausgangssignale vom Addierer 44 erzeugt werden, entspricht der Rate,
mit welcher die Addiererschleife 22 arbeitet. Hierdurch ist sichergestellt, daß die Ausgangssignale am
Addierer 52 jeweils gleichzeitig mit den Ausgangssignalen des Addierers 44 auftreten.
Der Endsummenausgang der Additionseinrichtung von Fig. 1 besteht aus einer einzelnen Gruppe von
Ausgangssignalleitungen des Übertragsvorausschau-Addierers 23. Der Addierer 23 empfängt Eingangssignale
entweder vom Ubertragsaufschub-Addierer 52 oder vom Übertragsaufschub-Addierer 44. Wenn die
Additionseinrichtung von F i g. 1 zur Erzeugung einer Endsumme aus einer Vielzahl von Operanden verwendet
wird, die in den Registern 24 und 29 enthalten sind, empfängt der Addierer 23 lediglich die Ausgangssignale
des Übertragsaufschub-Addierers 44. Wenn jedoch die Additionseinrichtung zur Akkumulation
einer Anzahl Operanden verwendet wird, die zu aufeinanderfolgenden Zeiten zu den Registern 24
bis 29 geleitet werden, wird die Addiererschleife 22 wirksam. Der Übertragsvorausschau-Addierer 23
empfängt in diesem Falle die Ausgangssignale des
Ubertragsaufschub-Addierers 52, wenn an dessen Ausgang Signalgruppen erscheinen, die die Endsumme
der zugeführten Operanden darstellen.
Jeder der in Fig. 1 dargestellten Übertragsaufschub-Addierer
ist ein Paralleladdierwerk, in dem jede Stelle drei Eingangsleitungen aufweist, von denen
jede mit einem der Register 24 bis 29 verbunden ist. Der logische Aufbau einer Ubertragsaufschub-Addiererstelle
ist so getroffen, daß aus den binären Eins- oder Null-Signalen von drei verschiedenen
Operanden zwei Ausgangssignale gebildet werden, die die binäre Summe der Eins-Eingangssignale und
einen bei der Bildung dieser Summe entstandenen Übertrag darstellen. Ein Eins-Ausgangssignal wird
erzeugt, wenn eins oder drei der Eingangssignale den
Binärwert Eins haben, und ein Übertragssignal wird erzeugt, wenn zwei oder drei der zugeführten Operanden
den Binärwert Eins haben. In Fig. 1 sind die Summen-Ausgangsleitungen der Übertragsaufschub-Addierer
mit 5 und die Ubertragsausgangsleitungen mit C bezeichnet. Der Addierer 40 erzeugt
somit aus Operanden, die von den Registern 24, 25 und 26 zugeführt werden, eine Summensignalgruppe
auf dem Ausgang 5 und eine Übertragssignalgruppe auf dem Ausgang C. Im Gegensatz hierzu würde ein
übertragsverarbeitendes Addierwerk, wie beispielsweise der Addierer 23, die drei zugeführten Operandengruppen
zu einer einzigen, die Summe der drei Operanden darstellenden Signalgruppe verknüpfen.
In jeder Stufe der Pyramide 21 sind soviele Übertragsaufschub-Addierer
vorzusehen, um alle Sätze von je drei Gruppen Eingangssignalleitungen zu erfassen.
So sind z. B. in der ersten Stufe der Pyramide 21 zwei Ubertragsaufschub-Addierer, nämlich 40 und
41 vorgesehen, um die sechs Gruppen Eingangssignalleitungen von den Registern 24 bis 29 unterzubringen.
In bestimmten der Pyramidenstufen können einzelne Gruppen der Ausgangssignale von der vorausgehenden
Addiererstufe nicht in die Eingangssignale der betreffenden Addiererstufe einbezogen
werden. In diesem Fall werden diejenigen Signale, die nicht unmittelbar weiterverarbeitet werden können,
einem Register zugeführt. Jede Wertstelle der Übertragsaufschub-Addierer dieser Pyramidenstufen ist
außerdem mit einer steuerbaren Verriegelungsschaltung versehen. Dies trifft z.B. für den Übertragsaufschub-Addierer
42 zu, in dem jede Wertstelle eine derartige Verriegelungsstufe aufweist. Durch das
Vorhandensein der Verriegelungsstufen kann ein neuer Operandensatz bereits innerhalb der Zeit den
Registern 24 bis 29 zugeführt werden, die zur Erzeugung einer Summe aus dem bis daher in den Registern
befindlichen Operandensatz notwendig ist. Die Verriegelungsschaltungen können durch ein Steuersignal
zur Aufnahme der im betreffenden Ubertragsaufschub-Addierer gebildeten Teilsummensignale
wirksam gemacht werden. Nachdem eine Einspeicherung erfolgt ist, liefern die Verriegelungsschaltungen
entsprechend ihrem Inhalt Ausgangssignale unabhängig davon, ob sich die Eingangssignale des betreffenden
Übertragsaufschub-Addierers ändern oder nicht. Ein verändertes Ausgangssignal wird erst dann erzeugt,
wenn ein neues Steuersignal auftritt, das einen neuen Satz Ausgangssignale des betreffenden Übertragsaufschub-Addierers
in die Verriegelungsschaltungen einspeichert. Durch die Verriegelungsschaltungen
wird daher der Ausgangssignalzustand eines Ubertragsaufschub-Addierers im Zeitintervall zwischen
zwei aufeinanderfolgenden Steuersignalen der Verriegelungsschaltungen aufrechterhalten.
In F i g. 2 ist eine Gleitkommarecheneinheit eines Datenverarbeitungssystems dargestellt, die sich zur
Multiplikation oder Division von Gleitkommaoperanden eignet, und in der das in Fig. 1 angegebene
Addierwerk Verwendung findet. Die zu multiplizierenden oder zu dividierenden Gleitkommaoperanden
weisen je 64 Binärziffern auf. Die höchste Wertstelle bzw. die Bitposition Null der Gleitkommazahlen dient
zur Darstellung des Vorzeichens. Die Positionen 1 bis 7 sind dem Exponentenwert zur Basis 16 zugeordnet
(hexadezimale Darstellung) und die Positionen 8 bis 63 stellen die Mantisse der betreffenden Gleitkommazahl
dar. Die Mantisse besteht aus 14 hexadezimalen Ziffern, von denen jede aus vier Binärziffern besteht.
Das Komma befindet sich zwischen der siebten und der achten Binärstelle. Wie aus der Gleitkomma-Rechentechnik
allgemein bekannt ist, werden nur die Mantissen einer Gleitkommazahl multipliziert
oder dividiert, während die Exponentenwerte addiert oder subtrahiert werden, um den Exponentenwert des
Resultates zu erhalten. Die Aufgabe der in Fig. 2 dargestellten Einrichtung besteht darin, zwei Binärzahlen,
von denen jede 56 Bits enthält und die Mantisse einer Gleitkommazahl darstellt, miteinander zu
multiplizieren.
Im Blockdiagramm von Fig. 2 werden für die Erläuterung
von Teilen, die bereits in Verbindung mit F i g. 1 beschrieben worden sind, die dort verwendeten
Bezugszeichen benutzt. Dementsprechend sind zwei Register 30 und 31 vorgesehen, in die durch eine Befehlsteuereinheit
eines Datenverarbeitungssystems zwei Multiplikatoren und zwei Multiplikanden eingegeben
werden. Jedes der Register 30 und 31 enthält 64 Registerstellen, von denen nur die Stellen 8 bis 63
bei der Ausführung von Multiplikationen oder Divisionen von Gleitkommamantissen benutzt werden. In
ίο F i g. 2 ist ferner der Multiplikationsdecodierer 32, die
Register 24 bis 29, die Addiererpyramide 21, die Addiererschleife 22 und der übertragsverarbeitende Addierer
23 dargestellt.
Zusätzlich umfaßt die Einrichtung gemäß F i g. 2 sechs Gleitkommapuffer 60 und vier Gleitkommaregister
61. Die Gleitkommapuffer 60 empfangen Gleitkommaoperanden über eine Speicherausgangs-Sammelleitung
62. Die in den Puffern 60 gespeicherten Operanden können über eine Sammelleitung 63
oder eine Sammelleitung 64 entnommen werden. Die Entnahme aus den Registern 61 erfolgt über eine weitere
Sammelleitung 65. Die auf den Sammelleitungen 63 oder 65 erscheinenden Daten werden zu einem
Addierwerk 66 übertragen, das in Fig. 2 lediglich zu dem Zweck dargestellt ist, um zu zeigen, daß Gleitkommazahlen
auch addiert oder subtrahiert werden können. Der Ausgang des Addierwerkes 66 ist an die
Sammelleitung 64 angeschlossen. Das Multiplikandenregister 30 kann Daten von den Sammelleitungen
63 oder 65 empfangen, während das Multiplikatorregister 31 Daten von der Sammelleitung 65 oder von
der Sammelleitung 64 empfängt.
Wie vorausgehend erläutert, ist es notwendig, bei der Multiplikation oder Division von Gleitkommazahlen
die Exponentenwerte zu addieren oder zu subtrahieren. Für diesen Zweck ist ein Exponentenaddierer
67 vorgesehen, der die entsprechende Exponentenaddition und -subtraktion ausführt. Der Ausgang
dieses Addierers ist mit dem Exponententeil der Register 30 oder 31 verbunden. Außerdem ist es bei
Gleitkommaoperationen üblicherweise notwendig, Normalisierungsverschiebungen durchzuführen. Für
die vorliegende Beschreibung wird angenommen, daß die Mantissen der zu verarbeitenden Gleitkommazahlen
bereits normalisiert sind. Bei Multiplikationen muß die höchste Stelle der Gleitkommaoperanden
eine binäre Eins enthalten. Die in die Register 30 oder 31 eingegebenen Operanden, die nicht eine binäre
Eins in ihrer höchsten Ziffernstelle aufweisen, werden in der Weise behandelt, daß die Mantissen aus diesen
Registern zu einer Stellenverschiebe-Schaltung 68 übertragen werden, welche diese Werte, beginnend
mit der höchsten Wertstelle auf von Null verschiedene Ziffern abtastet, um eine Verschiebung der Mantissen
nach links zu bewirken, so daß stets eine binäre Eins in der höchsten Stelle des zu verarbeitenden Mantissenwertes
steht. Die Anzahl der hierfür notwendigen Stellenverschiebungen wird in einem Schieberegister
69 festgehalten, welches mit dem Exponentenaddierer 67 verbunden ist. Die Ausgangssignale des Schieberegisters
69 dienen zur Beeinflussung des Resultates der Exponentenaddition bzw. -subtraktion, um die Zahl
der für eine Normalisierung erforderlichen Mantissen-Stellenverschiebungen bei dieser Resultatbildung
zu erfassen.
InFig. 2 ist ferner eine Multiplikator-Eingabetorschaltung
70 dargestellt. Wie nachfolgend erläutert wird, sind fünf Iterationen notwendig, um eine 56 Bit
309525/370
lange Multiplikanden-Mantisse mit einer ebenso langen Multiplikator-Mantisse zu multiplizieren. In jeder
Iteration werden 13 Bits des Multiplikators geprüft und zur Steuerung des Multiplikatordecodierers 32
verwendet. Bei der ersten Iteration werden die Multiplikator-Eingabetore 70 zur Übertragung der ersten
13 Bits des Multiplikators zum Decodierer 32 gesteuert. Der Multiplikator kann dabei von der Sammelleitung
64, der Sammelleitung 65 oder von der Stellenverschiebungs-Schaltung 68 zugeführt werden und
zwar zur gleichen Zeit, zu der die Mantisse in eines der Register 31 eingegeben wird. Von diesem Zeitpunkt
an werden über die Eingabetore 70 nacheinander Gruppen von 13 Multiplikatorbits zum Decoder
32 übertragen. Die gruppenweise Steuerung von Torschaltungen nach Art der Torschaltungen 70 ist für
sich bekannt. Für jede Iteration der Multiplikationsoperation erzeugt der Multiplikatordecodierer 32 eine
Gruppe Signale, die an den Verriegelungsschaltungen bzw. Registern 24 bis 29 wirksam werden, um den
Multiplikanden vom Register 30 stellenverschoben zu den Registern 24 bis 29 zu übertragen, wobei der Betrag
der Stellenverschiebung durch das vom Decodierer 32 gelieferte Vielfache bestimmt wird. In Fig. 2
sind für die Register 24 bis 29 verschiedene Ausgänge Ml bis M6 dargestellt, die den eins- bis sechsfachen
Multiplikanden zugeordnet sind. Diese Leitungen sind mit dem Eingang der Addiererpyramide 21 verbunden.
Jeder der Übertragsaufschub-Addierer in der Addiererpyramide 21 und der Addiererschleife 22 ist in
der Lage, Operanden mit 71 Bitstellen parallel zu verarbeiten. Die einzelnen Stellen der Ubertragsaufschub-Addierer
sind, beginnend mit dem hochstelligen Ende durch P3, Pl, Pl, PO, Pl... 67 bezeichnet.
Obgleich die Mantissenteile der Gleitkommazahlen nur 56 Bitstellen aufweisen, kann der Decodierer 32
eine Verschiebung des Multiplikanden bei der Eingabe in die Addiererpyramide 21 um 11 Ziffernstellen
nach rechts erfordern. Ebenso können unter bestimmten Bedingungen die in die Register 24 bis 29
eingegebenen Multiplikandenvielfachen in komplementierter Form dargestellt sein, wodurch eine Verschiebung
der Vorzeichenstelle in höherstelligere Positionen erforderlich ist und die Möglichkeit der
Abnahme von Überträgen von der höchsten Ziffernstelle des Addierers vorgesehen sein muß. Aus diesem
Grunde sind die zusätzlichen hochstelligen Ziffernstellen P3, Pl und Pl vorgesehen.
Die in Fig. 2 dargestellte Einrichtung weist ferner einen Überlaufaddierer 71 auf, der die nachfolgend
erläuterte Funktion hat. Die Multiplikator-Eingabetore 70 übertragen 13 Multiplikatorbits zum Decodierer
32, beginnend mit der niedrigsten Wertstelle der Mantisse. Danach werden aufeinanderfolgende
Gruppen von je 13 Bits, von denen jede gegenüber der vorausgehenden um 12 Bits in Richtung der höheren
Stellen versetzt ist, in der gleichen Weise zum Decodierer 32 übertragen, so daß der Multiplikator
nacheinander in fünf Gruppen zu je 12 Bits geprüft wird. Analog zur Papier- und Bleistift-Multiplikation
werden aufeinanderfolgende Teilprodukte in bezug auf die vorausgehend erzeugten Teilprodukte in ihrer
Stellenordnung verschoben. In der dargestellten Multiplikationseinrichtung werden aufeinanderfolgende
Teilprodukte, die am Ausgang der Addiererschleife 22 erscheinen, um 12 Bitstellen nach rechts verschoben,
bevor sie zum Eingang der Addiererschleife 22 zurückgeführt werden. Die 12 Bits der zwei Ausgangssignal-Gruppen
der Addiererschleife 22, die nach rechts zu verschieben sind, werden parallel zum
Überlaufaddierer 71 geführt, der die Aufgabe hat, am
Ende der fünf Iterationen zu bestimmen, ob ein Übertrag bei der Addition der nach rechts verschobenen
Bits erzeugt wird oder nicht. Wenn die während der fünf Iterationen nach rechts verschobenen Bits im
Addierer 71 einen Übertrag erzeugen, gelangt dieser
ίο über eine Leitung 72 zur niedrigsten Bitstelle des Paralleladdierers
23. Bei einer normalen Multiplikation, wenn ein Multiplikator von 56 Bits und ein Multiplikand
von 56 Bits miteinander multipliziert werden, entsteht ein Endprodukt mit einer Länge von 112 Bits.
Von diesen Stellen werden im dargestellten Beispiel nur die 56 höherstelligen Bits verwendet. Die 56 Bits
des niedrigstelligen Zahlenteiles werden dem Addierer 71 zugeführt, um zu bestimmen, ob aus diesem
Teil des Endproduktes ein Übertrag in den durch die
ao 56 hochstelligen Bits ausgedrückten Teil des Produk-. tes vorliegt.
Nachdem das Endprodukt ermittelt worden ist, gelangt es vom Addierer 23 zu einem Resultatregister
73. Ein Decodierer 74 dient während der Erzeugung des Endproduktes durch den Addierer 23 zur Abtastung
der höchsten vier Bitstellen des Endproduktes. Wenn in diesen vier Bitstellen eine Eins auftritt, liegt
eine normalisierte Resultatmantisse vor. Wenn jedoch der Decodierer 74 feststellt, daß die höchsten vier Bitstellen
keine binäre Eins enthalten, wird eine Stellenverschiebeschaltung 75 wirksam gemacht, die eine
Stellenverschiebung des Resultates um vier Binärstellen oder eine hexadezimale Ziffer nach links bewirkt.
Die Stellenverschiebungs-Schaltung 75 ist zu diesem Zweck mit dem Ausgang des Resultatregisters 73 verbunden.
An den Ausgang der Stellenverschiebungs-Schaltung 75 ist die Sammelleitung 64 angeschlossen,
die zu den Gleitkommaregistern 61 führt, welche zur Aufnahme des Endresultates der Multiplikation dienen.
Die in Fig. 2 dargestellte Anordnung, die im wesentlichen eine Multiplikationseinrichtung ist, eignet
sich auch für die Durchführung von Gleitkommadivisionen. Dies geschieht dadurch, daß die Divisionen
auf Multiplikationen zurückgeführt werden, indem ein Kehrwert für den Divisor bestimmt wird, der daraufhin
als Multiplikator in Verbindung mit dem als Multiplikand verwendeten Dividenden zur Bestimmung eines
Quotientenwertes durch Ausführung einer Multiplikation dient. Während einer Multiplikation wird
eine Multiplikator-Eingabetorschaltung 76 verwendet, um die zu verarbeitenden, die Divisor-Kehrwerte
darstellenden Zahlen zum Multiplikator-Decodierer 32 zu übertragen. Ebenso wie bei der Ausführung von
Multiplikationen erfordern Divisionen eine Anzahl von Iterationen, innerhalb der Ausgangssignale der
Addiererpyramide 21 dem Paralleladdierer 23 direkt zugeführt werden. Das Resultat aus dem Addierer 23
wird über das Resultatregister 73 zur Stellenverschiebungs-Schaltung
77 zurückgeführt zu dem Zweck, die Eingabe eines Multiplikanden in die Register 24 bis
29 zu steuern. Die Stellenverschiebungs-Schaltung 77 liefert Ausgangssignale zu einer Oder-Schaltung 78.
Diese Oder-Schaltung wird wirksam, um den Registern 24 bis 29 während einer Division einen Multiplikanden
zuzuführen. Sie dient jedoch auch zur Übertragung eines Multiplikanden aus den Registern 30
oder eines Multiplikanden aus der Stellenverschiebe-
Schaltung 79 in die Register 24 bis 29. Während der Ausführung von Divisionen genügt es nicht, daß die
höchsten vier Bitstellen des Divisors eine binäre Eins aufweisen, sondern es ist erforderlich, daß die höchste
Bitstelle innerhalb dieser Bitgruppe des Divisors eine binäre Eins enthält. Die Stellenverschiebungs-Schaltung
79 ist in der Lage, eine derartige Verschiebung des Mantissenwertes zu bewirken, daß eine binäre
Eins in dieser höchsten binären Bitstelle der Mantisse enthalten ist. Die Anordnung nach Fig. 2 weist zum
Zwecke der Ausführung von Divisionen einen Tabellenspeicher 80 auf, der während der ersten Iteration
einer Divisionsoperation verwendet wird, um einen angenäherten Kehrwert für den Gleitkommadivisor
zur Verfügung zu stellen. Der Ausgang dieses Tabellenspeichers ist über die Eingangstorschaltung 76 mit
dem Multiplikator-Decodierer 32 verbunden.
In Fig. 3 ist ein Zeitdiagramm dargestellt, das die Beziehung zwischen den verschiedenen Taktimpulsen
zur Steuerung der Einrichtung gemäß Fig. 2 zeigt. Während der ersten Iteration einer Multiplikation
wird der Multiplikator über die Stellenverschiebe-Schaltung 68 geführt und durch einen Impuls »Registereingabe«
in das Multiplikatorregister 31 zurückübertragen. Zur gleichen Zeit tritt ein Impuls
»Multiplikandeingabe« auf, wodurch der 56 Bitstellen lange Multiplikand aus dem Register 30 in die Register
24 bis 29 übertragen wird. Außerdem wird ein Multiplikator-Decodier-Eingabe-Impuls für die Iteration
1 erzeugt. Dieser Impuls bringt die Bits der niedrigsten Wertstellengruppe des Multiplikators zum
Multiplikator-Decodierer 32, worin sie festgehalten werden. Nach einer gewissen Verzögerung, die von
der Arbeitsgeschwindigkeit des Decodierers 32 abhängt, wird ein Multiplikanden-Vielfaches-Eingabe-Impuls
erzeugt, der das entsprechende Multiplikandenvielfache in die zugeordneten Register 24 bis 29
eingibt. Unmittelbar danach gelangen die in die Register 24 bis 29 eingegebenen Daten zum Eingang der
Addiererpyramide 21. Dieser Impuls wird am Eingang der Übertragsaufschub-Addierer 41 und 40
(Fig. 1) wirksam. Nach einer geeigneten Verzögerungszeit, die von der Arbeitsgeschwindigkeit dieser
Addierer abhängt, wird ein Impuls » C-Addierer-Eingabe« erzeugt, durch den die Resultate aus den Addierern
41 und 40 in den Übertragsauf schub-Addierer 42 und das Register 43 eingegeben werden. Die Summen
und Übertragssignale des Addierers 42 werden in den diesem Addierer zugeordneten Verriegelungsschaltungen festgehalten und gelangen zu dem Übertragaufschub-Addierer
44, der zwei Gruppen von Ausgangssignalen (Cund 5)derPyramide 21 erzeugt.
Diese Signale stellen die Summe und die Überträge der während der ersten Iteration zugeführten Operanden
dar. Nach einer geeigneten Verzögerung, die von der Arbeitsgeschwindigkeit des Addierers 44 abhängt,
wird ein E-Addierer-Eingabe-Impuls erzeugt,
der den Addierer 50 und das Register 51 zur Abgabe von Ausgangssignalen an den nachgeschalteten Ubertragsaufschub-Addierer
52 konditioniert. Nachdem der Addierer 50 seine Ausgangssignale erzeugt hat, wird ein F-Addierer-Eingabe-Impuls erzeugt, der die
Eingabe der betreffenden Signale in den Addierer 52 auslöst.
Wie aus Fi g. 3 zu ersehen ist, kann der Multiplikator-Decodierer
32 bereits zu der Zeit, wenn die Multiplikanden-Vielfachen in die Register 24 und 29 eingegeben
werden, die Operanden der zweiten Iteration empfangen. Ebenso können während der Eingabe der
Operanden der ersten Iteration in den Addierer 42 bereits die Register 24 bis 29 entsprechend den Operanden
der zweiten Iteration eingestellt werden. Eine derartige überlappte Arbeitsweise ist möglich, da in
dem Datenfluß des Addierwerkes gemäß Fig. 1 verschiedene Verriegelungsschaltungen angeordnet sind,
die aus dem Multiplikator-Decodierer 32, den Registern 24 bis 29, dem Ubertragsaufschub-Addierer 42
ίο mit dem Register 43, dem Übertragsaufschub-Addierer 50 mit dem Register 51 und dem Übertragsaufschub-Addierer
52 bestehen. Durch diese Verriegelungspunkte ist es möglich, daß sich die Eingabesignale
eines Schaltungsteiles bereits ändern können, wenn die Resultate dieses Schaltungsteiles in den ihm
zugeordneten Verriegelungs-Schaltungen eingestellt sind und der nachfolgende Schaltungsteil diese Signale
empfangen kann. Wie aus F i g. 3 ersichtlich ist, werden vier Sätze Multiplikatorbits zum Decodierer 32
übertragen, bevor das erste Teilprodukt im Übertragsaufschub-Addierer 52 erzeugt wird.
Aus dem übrigen Teil von F i g. 3 ist leicht zu erkennen, daß die fünf Gruppen der Multiplikatorbits vom
Decodierer 32 im wesentlichen innerhalb der Zeit ge-
a5 prüft und decodiert werden, in der das zweite Teilprodukt
aus dem zweiten Satz der zugeführten Operandenbits erzeugt wird. Die Ziffern 0 bis 4 im oberen
Teil von F i g. 3 stellen die Maschinenzyklen dar und zeigen, daß eine vollständige Multiplikation zweier 56
Bit langer Binärzahlen in vier Maschinenzyklen ausgeführt werden kann. Wie nachfolgend noch gezeigt
wird, bestehen die Taktgeberschaltungen zur Ausführung der Multiplikation aus einer relativ einfachen
Schaltung zur Erzeugung von fünf Eingabeimpulsen für den Multiplikator-Decodierer 32, wobei aus diesen
Impulsen durch entsprechende Verzögerung die Eingabeimpulse für die im Datenfluß nachfolgenden
Verriegelungsschaltungen abgeleitet werden.
In F i g. 4 ist ein 56 Bitstellen umfassender Multiplikator dargestellt, der in Gruppen zu je 13 Bits unterteilt
ist. Die Gruppen sind so gewählt, daß sie sich jeweils um eine binäre Bitstelle überlappen. Die letzte
Iteration bzw. Iteration 5 bezieht sich auf die höchste Ziffernposition der Gleitkommazahl. Hierbei soll angenommen
werden, daß in der höchsten Bitstelle des Multiplikators eine binäre Null enthalten ist. Die
Operation beginnt am linken Ende des Multiplikators und schreitet in Gruppen von 13 binären Bits mit einer
Überlappung von je einem Bit nach links vorwärts.
Es ist ferner angenommen worden, daß die niedrigstelligen Multiplikatorbits, die während der ersten
Iteration an der Erzeugung des Vielfachen Ml beteiligt sind, binäre Nullen sind, und daß an der Bildung
von M2 nur ein einzelnes möglicherweise von Null abweichendes Bit beteiligt ist. Die Zahlen 1 bis 14
stellen die 14 hexadezimalen Ziffern des Multiplikators dar.
Da die Mantisse einer Gleitkommazahl im allgemeinen ein Wert ist, der kleiner als 1 ist, ergibt eine
Multiplikation zweier derartiger Mantissen als Resultat eine kleinere Mantisse. Ebenso wird ein Multiplikand,
der mit den niedrigsten Stellen bzw. dem am äußersten rechts stehenden Bit des Multiplikators
multipliziert wird, praktisch nach rechts verschoben mit dem Effekt, daß eine Division des Multiplikanden
durch 256 bewirkt wird. Wie vorausgehend erwähnt, werden jedoch die am Ausgang der Addiererschleife
22 erscheinenden Teilprodukte um 12 Bitstellen nach
rechts verschoben entsprechend den 12 Bits des Multiplikators, die innerhalb einer Iteration verarbeitet
werden, so daß das Endprodukt einer Multiplikation einer Mantisse mit einer anderen Mantisse in der richtigen
Weise erzeugt wird.
In F i g. 4 sind die während der Iteration 3 zu prüfenden Multiplikatorbits im einzelnen angegeben.
Während der Iteration 3 werden die Multiplikatorbits 24 bis 36 zum Decodierer 32 übertragen. Jeweils eines
der Multiplikanden-Vielfachen Ml bis M6, die an die
Register 24 bis 29 angelegt werden, wird durch Prüfung dreier Multiplikatorbits ausgewählt. Hierbei ist
das höchste Bit einer Dreiergruppe gleichzeitig das niedrigste Bit der nächsthöheren Dreiergruppe der
Multiplikatorbits.
Der Untersuchung der Dreier-Bitgruppen liegt folgende Überlegung zugrunde: Eine ganze Zahl kann
bekanntlich in einem beliebigen Zahlensystem durch die Summe ihrer Stellenwerte ausgedrückt werden.
Zum Beispiel kann für die dezimale Zahl 112 der binäre Ausdruck 26 + 25 + 24 geschrieben werden (binär
111000), worin die drei höchsten Binärstellen eine Kette von aufeinanderfolgenden Einsen bilden.
Diese Kette läßt sich in vereinfachter Form durch die Differenz 27 — 24 ausdrücken (binär:
10000000 - 10000 = 111000). Hieraus folgt, daß bei Auftreten einer Kette binärer Einsen in einem
Multiplikator an Stelle einer Addition des Multiplikanden für jede dieser Einsen eine Subtraktion für
die am weitesten rechts stehende Eins und eine Addition für die am weitesten links stehende Eins der Kette
ausgeführt werden kann, wobei allerdings das Teilprodukt für jede Eins der Kette um eine Stelle nach
rechts verschoben werden muß. Hierauf basierend wird vom Decodierer 32 für jede der Dreier-Bitgruppen
festgestellt, ob sie den Anfang oder das Ende einer Kette Einsen enthält oder nur eine alleinstehende Eins
aufweist. Als Resultat dieser Untersuchung liefert der Decodierer 32 Ausgangssignale, die in Übereinstimmung
mit der dargelegten Ausdrucksweise einer Kette binärer Einsen als Differenz entweder ein negatives
bzw. komplementäres Vielfaches oder ein echtes Vielfaches des Multiplikanden bezeichnen. Bei den
Vielfachen handelt es sich stets um durch die jeweiligen Stellenwerte der Multiplikatorbits bestimmte geradzahlige
Vielfache von 2, die durch einfache Bitstellen-Verschiebungen des Multiplikanden in für sich
bekannter Weise gewonnen werden können. Außerdem ist in den Ausgangssignalen des Decodierers 32
auch berücksichtigt, daß für die am weitesten links stehende Eins einer derartigen Kette (Kettenende) ein
der nächsthöheren Wertstelle zugeordnetes Multiplikanden-Vielfaches ausgewählt wird, entsprechend der
obigen Differenz-Schreibweise.
Aus F i g. 5 ist ersichtlich, wie die 13 Multiplikatorbits
einer jeden Iteration im Decodierer 32 decodiert werden. Die Ziffern 0 bis 12 bezeichnen die 13 innerhalb
einer Iteration zu prüfenden Multiplikatorbits. Das Vielfache Ml ist dargestellt als eine Funktion
der Multiplikatorbits 10,11 und 13. In Übereinstimmung mit F i g. 4 sind dies in der Iteration die Multiplikatorbits
34,35 und 36. Die sechs Gruppen der innerhalb einer jeden Iteration zu prüfenden Multiplikatorbits
sind im oberen Teil von Fig. 5 dargestellt. Im unteren Teil dieser Figur ist die Zuordnung zwischen
den Eingangssignalen und den Ausgangssignalen des Decodierers allgemein dargestellt. Diese Eingänge
sind mit N, N+l und N+2 bezeichnet. Jeder dieser Eingänge kann eine binäre Null oder eine binäre Eins
führen, so daß sich acht Permutationen ergeben. Das Bit der höchsten Wertstelle innerhalb der Gruppe (2V)
überdeckt sich mit dem niedrigsten Bit (N+2) der
nächstfolgenden höherstelligeren Gruppe. Es können bekannte Algorythmen verwendet werden, um die
richtige Anzahl Stellenverschiebungen zu bestimmen, die der Multiplikand in die betreffenden Register 24
bis 29 auszuführen hat, um ein Vielfaches des Multiplikanden darzustellen. Zumindest ein Algorythmus
verwendet die drei Multiplikatorbits einer bestimmten Gruppe zur Erzeugung von zwei Ausgangssignalen,
wie es in Fig. 5 in dem mit »allgemeiner Ausgang« bezeichneten Spalten angegeben ist. Die Bezeichnungen
N und N+l über diesen beiden Spalten geben den Stellenwert des betreffenden Ausgangssignals innerhalb
der Dreiergruppen der 13 Multiplikatorbits an. Die Bezeichnung 0 + 1 oder — 1 gibt Auskunft
darüber, was bei der Übertragung des Multiplikanden in die betreffenden Register 24 bis 29 zu geschehen
hat. Wenn z. B. N und TV+ 1 beide Null sind, werden Nullen in die betreffenden Register eingestellt. Eine
Angabe in der Kolonne von + 1 zeigt an, daß der Multiplikand in echter Darstellung um N+l oder TV
Positionen nach rechts zu verschieben ist, bei der Eingabe in die betreffenden Register 24 bis 29. Die Angabe
— 1 zeigt an, daß der Multiplikand in komplementärer Form um TV oder TV+ 1 Positionen nach
rechts zu verschieben ist.
Als Beispiel sind die entsprechenden Ausgangssignale des Decodierers 32 für die Übertragung des
Multiplikanden in das Register 26, das das Vielfache M3 empfängt, im unteren rechten Teil von Fig. 5
dargestellt. Die Werte N und N+l sind in diesem Fall den Bits der Positionen 6 und 7 innerhalb der
in der Iteration 3 zu verarbeitenden Gruppe von 13 Multiplikatorbits zugeordnet. Es ist ersichtlich, daß,
basierend auf den binären Mutationen der Bitpositionen 6, 7 und 8 im Decodierer 32, ein Multiplikand,
der in das Register 26 einzugeben ist, in echter oder komplementierter Form eingegeben und um sechs
oder sieben Stellen nach rechts verschoben wird. Durch diese Maßnahme liefern die Multiplikatorbits
30, 31 und 32, die den Bitstellen 6, 7 und 9 in der dreizehner Gruppe entsprechen, den richtigen Beitrag
zu der auszuführenden Multiplikation. In Verbindung mit dem Vielfachen Ml ist ersichtlich, daß der in das
Register 24 einzugebende Multiplikand um bis zu 11 Positionen nach rechts verschoben werden kann,
woraus sich die Notwendigkeit für die Ausdehnung der Addiererstellen um 11 Stellen über die normale
Multiplikandenlänge von 56 Bits ergibt.
Ebenso ist an Hand des Vielfachen M3 in Iteration 3 erkennbar, daß der Multiplikand 2~30 oder 2~ 31
mal in Übereinstimmung mit den Regeln für die Multiplikation einer Mantisse mit einer anderen Mantisse
zu multiplizieren ist. Obgleich die Ausgangssignale des Decodierers 32 für das Vielfache M3 nur eine
Verschiebung des Multiplikanden entweder um sechs oder sieben Positionen nach rechts bewirkt, werden
die Ausgangssignale des betreffenden Teilproduktes der in Iteration 3 zu verarbeitenden Operanden am
Ausgang der Addiererschleife 22 um einen Gesamtbetrag von 24 Bitpositionen während der Iterationen
4 und S nach rechts verschoben. Das Teilprodukt, das durch die Multiplikatorbits 30,31 und 32 während
der Iteration 3 erzeugt wird, stellt daher in richtiger Weise eine Multiplikation mit 2~3 oder 2~ 31 dar.
Die in einfacher Weise zu instrumentierenden Schaltungen zur Erzeugung der erforderlichen Taktimpulse
zum Betrieb der Anordnung gemäß Fig. 2 sind in Fig. 6 dargestellt. Die zu steuernden Schaltungsteile
tragen in Fig. 6 die gleiche Bezeichnung wie in den vorausgehend beschriebenen Fig. 1 und 2.
Sie umfassen die Verriegelungsschaltungen des Multiplikator-Decodierers
32, die Register 24 bis 29, die Verriegelungs-Schaltungen des Übertragsaufschub-Addierers
42, das Register 43, die Verriegelungs-Schaltungen des Übertragsaufschub-Addierers 50,
das Register 51 und die Verriegelungs-Schaltungen des Übertragsaufschub-Addierers 52. Jeder der in
Verbindung mit Fig. 3 erläuterten »Multiplikator-Decodierer-Eingabe«-Impulse wird nicht nur zur
Steuerung des Decodierers 32 verwendet, sondern dient auch über eine Serie von Verzögerungs-Schaltungen
180 bis 183 zur Erzeugung der in der Folge dieses Impulses benötigten Steuersignale. Zur Realisierung
des logischen Aufbaues des dargestellten Ad- ao dierwerkes sind mehrere Trägerplatten für die logi- *
sehen Bauteile notwendig, aus denen die Verriegelungs-Schaltungen der verschiedenen Stufen bestehen.
Da Hochleistungs-Datenverarbeitungsmaschinen mit sehr hohen Geschwindigkeiten arbeiten, spielt as
die Ausbreitungsdauer der Impulse entlang den Verbindungsleitungen bereits eine erhebliche Rolle. Um
deshalb sicherzustellen, daß die Eingabe-Signale eines bestimmten Satzes Verriegelungs-Schaltungen alle
zur gleichen Zeit in diesen Verriegelungs-Schaltungen wirksam werden, sind weitere Verzögerungs-Schaltungen
84 bis 86 vorgesehen, deren Signalverzögerungen entsprechend den unterschiedlichen Laufzeiten
der Impulse abgestuft sind. Hierdurch wird eine gleichzeitige Wirksamkeit der Eingabe-Steuerimpulse
an allen Verriegelungs-Schaltungen einer Stufe, z. B. 32, unabhängig von der Länge der Leiter, die zu den
Verriegelungs-Schaltungen führen, erzielt.
Es wurde ferner bei der Instrumentierung der erfindungsgemäßen Einrichtung festgestellt, daß die Verzögerung,
die durch die logischen Schaltungen und die Leiterlänge zwischen den logischen Schaltungen bewirkt
wird, vom Eingang einer Verriegelungs-Schaltung bis zum Eingang der nächsten Verriegelungs-Schaltung
für alle Stufen gleichgemacht werden kann. Zum Beispiel können zwischen zwei aufeinanderfolgenden
Eingängen von Verriegelungs-Schaltungen sowohl vier logische Verknüpfungs-Schaltungen in
Serie angeordnet sein als auch drei logische Verknüpfungs-Schaltungen und eine Leiterlänge, die eine Verzögerung
liefert, die der Verzögerung einer logischen Verknüpfungs-Schaltung entspricht. Auf diese Weise
können auch die Durchlaufzeiten durch die Verriegelungs-Schaltungen der Addiererschleife 22 von F i g. 1
den Durchlaufzeiten der verschiedenen Stufen der Addiererpyramide 21 angepaßt werden.
Auf Grund der verschiedenen aufeinanderfolgenden Stufen von Verriegelungs-Schaltungen und der
im wesentlichen gleichen Signalverzögerung zwischen in Datenflußrichtung aufeinanderfolgenden Eingängen
dieser Verriegelungs-Schaltungen kann die Rate, mit welcher die Operanden dem Eingang der Additionsvorrichtung
angeboten werden können, gleich der maximalen Rate sein, mit der eine einzelne dieser
Stufen arbeiten könnte und die lediglich durch die von ihr bewirkte Signalverzögerung bestimmt wird. Hierdurch
ist eine Arbeitsweise möglich, die am ehesten mit einer Pipeline verglichen werden kann, da jeweils
mit jeder Weiterleitung einer Signalgruppe vom Ausgang einer Stufe Verriegelungs-Schaltungen zum Eingang
der nachfolgenden Stufe Verriegelungs-Schaltungen ein neuer Satz Eingangssignale der abgebenden
Verriegelungs-Schaltung zugeführt werden kann.
Dieser Pipeline-Effekt ist besonders klar aus der schematischen Darstellung von F i g. 7 ersichtlich. Im
oberen linken Teil von F i g. 7 sind die Register 24 bis 29, die Addiererpyramide 21 und die Addiererschleife
22 dargestellt. Den Registern 24 bis 29 wird ein erster Satz von sechs Operanden zugeführt, die
zur Erzeugung eines Teilproduktes PPI für die erste Iteration dienen. Rechts daneben ist die gleiche Schaltungsstruktur
in dem Zustand dargestellt, wenn das Teilprodukt PPI in den C-Übertragsaufschub-Addierer
42 und die Verriegelungs-Schaltung 43 eingegeben worden ist und der nächste Satz Operanden in
die Register 24 bis 29 zur Erzeugung eines Teilproduktes PP2 für die Iteration 2 eingestellt worden ist.
Die nächste Darstellung zeigt, daß zu der Zeit der Eingabe des Teilproduktes PPI in den E-Übertragsvorausschau-Addierer
50 ein dritter Operandensatz in den Registern 24 bis 29 eingestellt wird. Zur Zeit
der Eingabe eines weiteren Operandensatzes in die Register 24 bis 29 zur Erzeugung eines Teilproduktes
PP4 für die Iteration 4 wurde das Teilprodukt PPI in den F-Ubertragsvorausschau-Addierer 52 eingegeben,
dessen Ausgangssignale zum Eingang des E-Ubertragsvorausschau-Addierers
50 zurückgeführt werden. Zum Zeitpunkt der Eingabe von PP2 in den JE-Addierer 50 werden somit auch die das Teilprodukt
PPI darstellenden Signale um 12 Positionen nach rechts verschoben in den Ε-Addierer 50 eingegeben.
Die aufeinanderfolgende Zuführung der verschiedenen Operandensätze zu den Registern 24 bis 29 erfolgt
gleichzeitig mit der aufeinanderfolgenden Übertragung der Zwischenresultate von einem Satz der
Verriegelungsschaltungen zum jeweils nachfolgenden Satz der Verriegelungsschaltungen und gleichzeitig
mit der Übertragung der um 12 Stellen nach rechts verschobenen Ausgangssignale der Addiererschleife
zurück zum Eingang dieser Schleife, bis das Endprodukt am Ausgang des F-Übertragsvorausschau-Addierers
52 vorliegt. Zu dieser Zeit werden die zwei Gruppen Ausgangssignale C und S des Ubertragsvorausschau-Addierers
52 zum Paralleladdierer 23 übertragen, um dort zum Endprodukt vereinigt zu werden.
An Hand der F i g. 8 bis 11 wird im folgenden unter Bezugnahme auf die F i g. 1 und 2 erläutert, in welcher
Weise die vorausgehend beschriebene Multiplikations-Einrichtung zur Ausführung von Divisionen
verwendet wird.
Bevor die erste Iteration einer Divisionsoperation beginnt, wird der Divisor und der Dividend, die beide
bereits in bezug auf ihre Ziffernstellen normalisiert sind, noch in bezug auf ihre binären Bitstellen in der
Stellenverschiebe-Schaltung 79 von Fig. 2 normalisiert. Der Divisor ist bitnormalisiert, wenn eine binäre
Eins in seiner höchsten Ziffernstelle enthalten ist. Um die gleiche Zahl der Linksverschiebungen (· 21· 2>
3), die zur Normalisierung des Divisors benötigt werden, wird auch der Dividend in der Stellenverschiebe-Schaltung
79 nach links verschoben. Hierdurch wird die vorhandene Beziehung zwischen den hexadezimalen
Ziffern des Dividenden und des Divisors einerseits und der hexadezimalen Darstellung der Exponenten
der betreffenden Gleitkommazahlen aufrechterhal-
309525/370
ten. Wenn der Dividend um eine der Anzahl der Divisorverschiebungen
entsprechende Anzahl Stellen nach links verschoben wird, kann eine binäre Eins aus
der höchsten Ziffernstelle des Dividenden herausgeschoben werden. Für diesen Fall weist die Verschiebe-Schaltung
79 einen Satz Torschaltungen auf, die bewirken, daß der Dividend um vier Bitstellen
oder um eine hexadezimale Ziffer nach rechts verschoben wird und der zugeordnete Exponent um 1
erhöht wird. Die Ausgangssignale der Stellenverschiebungs-Schaltung 79 stellen in jedem Falle einen
Anfangsdivisor D0 und einen Anfangsdividenden N0
dar.
Der bitnormalisierte Divisor D0 wird zum Tabellenspeicher
80 übertragen (Fig. 2), der daraufhin 13 Bits, die den angenäherten Kehrwert R0 des Divisors
D0 darstellen, über die Eingangstorschaltung 76 zum Multiplikator-Decodierer 32 liefert. Wie aus Fig. 8
ersichtlich ist, wird der erste Kehrwert i?0 in einer ersten
Divisionsiteration DIVl zur Ausführung von zwei Multiplikationen verwendet, von denen die eine
mit dem anfänglichen Divisor D0 und die andere mit dem anfänglichen Dividend N0 erfolgt. Aus der Multiplikation
D0 · R0 wird ein Zwischendivisor D1 gebildet,
der zur Erzeugung eines weiteren angenäherten Kehrwertes R1 dient, welcher ebenfalls aus 13 Bits
besteht und über die Torschaltung 76 zum Multiplikator-Decodierer 32 übertragen wird. Der neue Kehrwert
R1 wird daraufhin zur Multiplikation mit D1 und
N1 innerhalb der zweiten Divisionsiteration DIV2
verwendet, wodurch ein weiterer Zwischendivisor D2
gebildet wird. Die Multiplikation der angenäherten Kehrwerte mit den Zwischendivisoren und Zwischendividenden
setzt sich fort bis zur Erzeugung eines Zwischendividenden Af4, der als endgültiger Quotient
verwendet wird, wenn die Operanden der auszuführenden Division Gleitkommazahlen einfacher Genauigkeit
sind. Bei Gleitkommazahlen mit doppelter Genauigkeit wird der Kehrwert R4 erzeugt und zum
Register 31 (Fig. 1 und 2) übertragen zur Ausführung
einer fünften Divisionsiteration. Drei aufeinanderfolgende Gruppen von 13 Multiplikatorbits werden in
der gleichen Weise zum Decodierer 32 übertragen, wie es vorausgehend mit der Ausführung von Multiplikationen
beschrieben wurde. Am Ende des dritten Multiplikationszyklus während der fünften Divisionsiteration
DIV5 stellt das am Ausgang des Paralleladdierers 23 erscheinende Endprodukt den Quotienten
des anfänglichen Dividenden und des anfänglichen Divisors dar, die in diesem Fall beide
Gleitkommazahlen doppelter Genauigkeit sind.
Die Fig. 8 ist so zu verstehen, daß die im linken Teil der Zeichnung angegebenen Operationen gleichzeitig
mit den auf gleicher Höhe im rechten Teil der Zeichnung angegebenen Operanden in derselben
Einrichtung ausgeführt werden. Hierbei erfolgt jedoch die Ermittlung der im linken Teil der Zeichnung
dargestellten Operanden ohne Bezugnahme auf die im rechten Zeichnungsteil dargestellten Operanden.
Dies ist ein grundlegender Unterschied gegenüber den bekannten Divisionseinrichtungen, bei denen verschiedene
Divisionsiterationen mit Divisorvielfachen ausgeführt werden, die abhängig sind vom Ergebnis
der vorausgehenden Iteration, d. h. vom Dividendenrest der betreffenden Iteration, so daß eine jede Iteration
erst dann begonnen werden kann, wenn die vorausgehende Iteration bereits beendet ist.
Die Fig. 9 zeigt die Formate des Divisors und dessen Kehrwerte, wie sie im Verlaufe der Divisionsoperation
gebildet werden. Für jede Divisionsiteration wird der angenäherte Kehrwert Rn des jeweils gültigen
Zwischendivisors Dn mit diesem Divisorwert und mit dem jeweils gültigen Dividendenwert NM multipliziert,
um einen neuen Zwischendivisor und einen neuen Dividendenwert zu formen. Daraufhin wird ein
neuer angenäherter Kehrwert durch Komplementierung eines hochstelligen Teiles des neuen Zwischendivisor-Wertes
bestimmt. In dieser Weise gebildete Divisorwerte konvergieren gegen 1. Dies schließt ein,
daß die entsprechenden Kehrwerte gegen den Kehrwert des ursprünglichen Divisors konvergieren. Hieraus
folgt wiederum, daß die aufeinanderfolgend gebildeten Zwischendividenden-Werte in Richtung des
endgültigen Quotientenweites konvergieren. Mit der Ausnahme des ursprünglichen Divisors D0 und dessen
Kehrwert R0 sind für die in Fig. 9 dargestellten Operanden
zwei Formate möglich. Diejenigen Teile der Kehrwerte, die zum Multiplikator-Decodierer 32 gesandt
werden, sind eingeklammert. Da für R0, R1, R2
und R3 nur eine Gruppe von 13 Bits decodiert wird,
können diese Operanden mit einem Divisor oder einem Dividenden in einem einzelnen Durchlauf der
Addiererpyramide 21 multipliziert werden. Für diesen einen Multiplikationszyklus wird die Addiererschleife
in einer bereits beschriebenen Weise umgangen, um die Rechenzeit zu verkürzen. Die Ausgangssignale der
Addiererpyramide 21 werden somit direkt zum übertragsverarbeitenden Addierer 23 übertragen.
Der ursprüngliche angenäherte Kehrwert R0 wird
durch eine Tabellensuchoperation für die Positionen 2 bis 7 des ursprünglichen Divisors D0 im Tabellenspeicher
80 (F ig. 2) bestimmt. Das Produkt D0- R0= D1
besitzt in jedem Falle das hierfür in F i g. 9 angegebene Format. Durch Verwendung eines Tabellenspeichers
zur Bildung des anfänglichen angenäherten Divisorkehrwertes wird eine schnelle Konvergenz sichergestellt.
Alle nachfolgenden Divisorkehrwerte werden durch Kemplementiening eines hochstelligen Teiles
Dn bestimmt, wenn dieser vom Paralleladdierer 23
zum Multiplikator-Decodierer 32 übertragen wird.
In Übereinstimmung damit entspricht ein Kehrwert
Rn stets der Differenz von 2 minus des hochstelligen
Teiles Dn, der zur Bestimmung des Kehrwertes benutzt
wird. Dieser Teil von Dn, der zur Bestimmung von Rn dient, ist gleich dem Ausdruck 1 + Xn, worin
X die rechter Hand des Kommas befindlichen Bits der Mantisse des Divisors sind, durch die der Kehrwert
bestimmt wird. Der entsprechende Kehrwert Rn ist
dann gleich dem Ausdruck i — Xn. Die minimale
Länge einer Kette führender Nullen oder Einsen, die im nächsten Zwischendivisor Dn+Λ gebildet werden,
entspricht unter diesen Bedingungen der Zahl der hochstelligen Bitstellen von Dn, die zur Bestimmung
von Rn benutzt werden. Die Zahl der führenden Einsen
oder Nullen für Dn+ 1 kann niemals größer sein
als das Doppelte der Zahl der Einsen oder Nullen in D^, sofern Rn nach dieser Methode bestimmt wird.
Die Zahl der führenden oder hochstelligen Einsen oder Nullen für D2 oder D3 könnte durchaus größer
sein als der angenommene Wert. Jedoch wäre ein erhöhter Einrichtungsaufwand erforderlich, um dies
festzustellen. Die für A2 und R3 in F i g. 9 angegebenen
Formate sind so gewählt, daß sie einen einmaligen Multiplikationsdurchlauf gestatten und eine kleinere
als die maximal mögliche Konvergenz des Divisors gegen Eins in Anspruch nehmen. In F i g. 9 sind die aus-
zuführenden Iterationen zeilenweise dargestellt, wobei die noch nicht bekannten Multiplikatorbits mit X
bezeichnet sind. Am Anfang der Divisionsoperation entspricht somit die Zahl der unbekannten Bits X der
Zahl der Mantissenbits, ausgenommen dem höchststelligen Mantissenbit, das auf Grund der Bitnormalisierung
in diesem Falle eine Eins ist. Wie die Darstellung zeigt, verringert sich mit jeder Iteration die Zahl
der unbekannten Bits, und nach Iteration 5 sind alle unbekannten Bits in Einsen bzw. Nullen umgewandelt,
d. h., daß der echte Kehrwert des Divisors ermittelt worden ist.
Aus F i g. 5 sind die Regeln zu ersehen, nach denen der Decodierer 32 arbeitet. Diese Darstellung kann
auch zur Erklärung dienen, wie Dn oder Nn mit
Rn= 1 — Xn multipliziert werden. Wenn eine der zu
decodierenden Bitgruppen, von denen jede drei Bitstellen umfaßt, aus lauter Einsen oder lauter Nullen
besteht, liefert der Decodierer Null-Ausgangssignale. Die führenden Einsen oder Nullen eines Divisors oder
dessen Kehrwertes können daher übersprungen werden und brauchen nicht in den Multiplikator-Decodierer
32 eingegeben zu werden. Wenn die Eingangssignale des Decodierers 32 komplementiert sind,
haben die Ausgangswerte des Decodierers ein geändertes Vorzeichen, während die Größe unverändert
bleibt. Diese Eigenart des Decodierers 32 dient zur Erzeugung von — Xn am Ausgang des Decodierers.
Während der Divisionsiteration 1 kommt der als Multiplikator verwendete Kehrwert R0 vom Tabellenspeicher
80, während der Multiplikand N0 oder D0
über Stellenverschiebe-Schaltung 79 mit einer aus Fig. 10 ersichtlichen Ausrichtung zugeführt wird. Es
liegt keine hochstellige Kette von Einsen oder Nullen in R0 vor, und alle sechs Ausgänge des Multiplikator-Decodierers
32 führen Ausgangssignale, die von Null abweichen.
Zur Erläuterung der Iterationen 2, 3 und 4 dient die Iteration 3 als Beispiel. Wenn alle Bitpositionen
von R2 (Fig. 9) als Multiplikator verwendet und dem
Decodierer 32 zugeführt werden, so wäre der Bitwert 1,0 von der höchsten Bitstelle zu prüfen und ein Satz
von Bits des Wertes — 0,00 ... XX wäre aus dem Teil rechts vom Dezimalpunkt zu decodieren. Es wird
jedoch lediglich der eingeklammerte Teil von R2 zum
Decodierer 32 übertragen. Der Ausgang des Decodierers 32 stellt einen Wert — 212 '2 dar. Der Multiplikand,
der das Resultat der vorausgehenden Iteration und somit D2 oder Af2 ist, ist am Ausgang des Addierers
23 verfügbar und wird um 12 Stellen nach rechts verschoben, um die vom Decodierer 32 gesteuerte
Stellenverschiebung jeweils um den Faktor 212 zu kompensieren. (Der Betrag der Stellenverschiebungen
des Multiplikanden und des Multiplikators während einer jeden Divisionsiteration ist aus Fig. 10
ersichtlich.) Der in Fig. 9 eingeklammerte, dem Decodierer 32 zuzuführende Stellenteil ist so gewählt,
daß jeweils die drei höchststelligen Bits untereinander identisch sind. Hierdurch wird sichergestellt, daß das
Vielfache M6, das bei Multiplikationen dem Register 29 zugeführt wird, bei Divisionen unbeachtet bleiben
kann, da in diesem Falle für das Vielfache M6 vom Decodierer 32 der Wert Null geliefert wird. Das Produkt
— D2 X2 oder — N2 X2 wird durch die fünf Operanden
Ml bis M5 dargestellt, die unter Steuerung der Ausgangssignale des Decodierers 32 zu den Registern
24 bis 28 übertragen werden. Der nicht stellenverschobene Multiplikand wird außerdem gleichzeitig
an Stelle des Vielfachen M6 über eine sonst nicht verwendete
Leitung 100 der Pyramide 21 (Fig. 2) zugeführt. Dies bedeutet, daß die Pyramide 1 · D2 oder
1 · Af2 empfängt. Die Summe der Operanden, die somit
der Pyramide 21 zugeführt werden, ist dann D2 + (-D2 X2)= D2 (1-X2) = D3 oder JV2
(1-X2) = N3.
In der Iteration 5 wird R4 zum Register 31 (Fig. 1
und 2) übertragen, wonach drei Multiplikationszyklen
ίο ausgelöst werden, um die Divisionsoperation zu vollenden.
Die Addiererschleife 22 wird hierbei in der gleichen Weise verwendet, wie es vorausgehend in
Verbindung mit der Ausführung von Multiplikationen erläutert wurde. Im Multiplikationszyklus 5c
(Fig. 11) ist das Steuersignal für das Vielfache M6 stets Null, so daß für das Vielfache M6 der Wert 1 · N4
vom Addierer 23 der Pyramide 21 zugeführt wird. D5 wird nicht gebildet, da der Quotient N5 unabhängig
hiervon bestimmt wird.
Die Divisionsoperation ist beendet, wenn die Zahl der Bits in der Konvergenz von Dn gegen 1 (führende
Einsen oder Nullen) wenigstens gleich der Stellenzahl der ursprünglichen Mantisse ist. Das Resultat einer
Division mit einfacher Operandengenauigkeit ist somit nach der vierten Divisionsiteration verfügbar,
während das Resultat einer Divisionsoperation mit Operanden doppelter Genauigkeit erst nach der fünften
Divisionsoperation vorliegt.
Der Ablauf der Divisionsoperation kann ferner an Hand des Zeitdiagramms von Fig. 11 verfolgt werden.
Es wird bei Divisionen ein Oszillator verwendet, der unabhängig von dem die fünf Multiplikationszyklen
steuernden Taktgeber Zeitimpulse der in Fig. 11 dargestellten Art erzeugt. Dieser nicht dargestellte
Oszillator treibt eine Zählringschaltung an, durch welche die Multiplikanden-Eingabe und die Decodierer-Eingabe
gesteuert wird. Der eigentliche Eingabe-Torimpuls für den Decodierer 32 wird durch
Verzögerung der Ausgangsimpulse des Oszillators erhalten.
Am Beginn der Divisionsoperation zum Zeitpunkt Null wird der Divisor durch einen »Divisor-Eingabe«-Impuls
zu der Bitstellenverschiebeschaltung 79 übertragen, wo er bitnormalisiert wird. Die Ausgangssignale
dieser Stellenverschiebe-Schaltung, die den Wert D0 darstellen, gelangen zur Torschaltung
78 (Fig. 2), über die sie als erster Multiplikand den Registern 24 bis 29 zugeführt werden. Der hochstellige
Teil von D0, d. h. der in Zelle 3 der Darstellung
von F i g. 9 mit einer Klammer bezeichnete Stellenteil, gelangt zum Tabellenspeicher 80, wo er als Adresse
für den ersten angenäherten Kehrwert R0 dient. Dieser
Kehrwert wird daraufhin dem Tabellenspeicher 80 entnommen und zum Multiplikatordecodierer 32
übertragen.
Zur Zeit 1 werden die sechs Operandenvielfachen, welche die Multiplikation des ursprünglichen Divisors
D0 mit dem ersten angenäherten Kehrwert R0 darstellen,
in den Registern 24 bis 29 gespeichert. Dies geschieht durch den Impuls »Vielfacheneingabe«. Während
die Anzahl dieser Operanden in der Addiererpyramide 21 durch additive Zusammenfassung reduziert
wird, erfolgt eine Übertragung des ursprünglichen Dividenden N0 zu den Registern 24 bis 29 durch den
Impuls »Dividendeneingabe«. Kurz nachdem das inzwischen auf vier Operanden zusammengefaßte Zwischenresultat
D1 in die Verriegelungsschaltungen des C-Ubertragsvorausschau-Addierers 42 eingestellt
47ö
21 22
worden ist (Impuls C-Addierereingabe), werden die dierer 42, im Register 43 und im Resultatregister 73
das Produkt N0 R0 = N1 repräsentierenden sechs in jeder Divisionsiteration zweimal betätigt werden.
Operanden durch den zweiten »Vielfacheingabe«- Die Dauer einer Divisionsiteration entspricht dem
Impuls in den Registern 24 bis 29 eingestellt. ungünstigsten Fall einer Wertübertragung vom Re-
Von diesem Zeitpunkt der Operation an werden 5 sultatregister 73 zurück zum Resultatregister 73 über
drei Verriegelungsstufen verwendet: C-Übertrags- den Decodierer 32 oder die Register 24 bis 29. Die
aufschub-Addierer 42, Resultatregister 73 (Fig. 2) Verriegelungsschaltungen des C-Addierers 42 und
und Multiplikator-Decodierer 32. Die Zwischendivi- des Resultatregisters 73, durch die die vorausgehend
soren gehen den Zwischendividenden beim Durch- erläuterte Schleife annähernd in gleiche Teile geteilt
gang durch die Schleife vom Resultatregister 73 über 10 wird, erhalten zur gleichen Zeit Eingabe-Steuerim-
die Oder-Schaltung 78, die Register 24 bis 29, die pulse zugeführt.
Addiererpyramide 21 und den Paralleladdierer 23 zu- Die ersten vier Divisionsiterationen werden zwi-
riick zum Register 73 voraus. Die vier Operanden von sehen der Zeit 1 und der Zeit 7 ausgeführt und stellen
Dn oder Nn, die in der Stufe 42, 43 festgehalten sind, sieben Maschinenzyklen dar. Bei einer Division mit
werden im £>-Addierer 44 zu zwei Operanden zusam- 15 einfacher Operandengenauigkeit wird der Betrag der
mengefaßt und werden unter Umgehung der Addie- auszuführenden Resultatnormalisierung für JV4 be-
rerschleife 22 direkt dem Addierer 23 zugeführt. stimmt, während dessen Bildung im Addierer 23.
Am Ausgang des Addierers 23 erscheint eine ein- Wenn die Sammelleitung 64 frei ist, wird der zif-
zelne Signalgruppe, die das im Resultatregister 73 fernnormalisierte Quotient iV4 zur Zeit 7 ausge-
einzuspeichernde Produkt darstellt. Dies geschieht zur 20 geben.
gleichen Zeit, wenn die vier Operanden des nachfol- Bei Divisionsoperationen mit doppelter Operangenden
Multiplikationszyklus im C-Addierer 42 ge- dengenauigkeit ist ein zusätzlicher Multiplikationszyspeichert
werden. Das Produkt Dn wird vom Resul- klus iV4 ■ RA auszuführen. Diese Operation erfolgt in
tatregister zur Stellenverschiebeschaltung 77 und zu der gleichen Weise wie die letzten drei Multiplikader
Multiplikatoreingabe-Torschaltung 76 übertra- 25 tionszyklen einer Multiplikations-Operation. Das
gen. Während der Übertragung von Dn von der Tor- Multiplikator-Register 31 ist mit dem Komplement
schaltung 76 zum Decodierer 32 wird ein Teil der Bit- eines Teiles von D4 geladen (Fig. 9 und 10), und die
stellen dieses Wertes entsprechend der Darstellung in bei Multiplikationen wirksame Taktimpulsquelle wird
Fig. 9 komplementiert, um den vorausgehend er- gestartet durch Weiterschalten eines Zählringes, der
wähnten Wertanteil — Xn zu erhalten. Die Ausgangs- 30 jeweils am Beginn des dritten Zyklus einer Multiplisignale
des Decodierers 32 repräsentieren dann den kation zurückgestellt wird. Der Multiplikand JV4 wird
angenäherten Kehrwert Rn, der sowohl mit Dn als während dieser Operation im Resultatregister 73 geauch
mit Nn zu multiplizieren ist, um Dn+1 und Nn+ j speichert, und der das Vielfache Mf>
ersetzende zu erhalten. Übertragungsweg über Leitung 100 wird nur im letz-
Wieaus'Fig. 11 zu ersehen ist, können zwei Typen 35 ten Durchgang der Multiplikationsoperation (Iteravon
Impulszügen verwendet werden. Der Wert Rn, tion 5c) wirksam gemacht. Die aufeinanderfolgenden
der in den Verriegelungsstufen des Multiplikator-De- Teilprodukte werden in der Addiererschleife 22 akcodierers
32 gespeichert ist, wird mit jeder der Itera- kumuliert, wie es bei einer normalen Multiplikationstionen
1, 2, 3 und 4 einmal verändert. Da in jeder operation geschieht, und das Resultat N5 wird im Par-Iteration
zwei Multiplikationszyklen auszuführen 40 alleladdierer 23 gebildet und zur Zeit 10 auf die
sind, müssen die Einstell-Torschaltungen im C-Ad- gemeinsame Sammelleitung 64 übertragen.
Hierzu 3 Blatt Zeichnungen
Claims (14)
1. Anordnung zur Ausführung von Divisionen durch Rückführung auf Multiplikationen, dadurch
gekennzeichnet, daß ein Kehrwertgenerator (80,76) vorgesehen ist, der für den Divisor
einen angenäherten Kehrwert bereitstellt, welcher einer Multiplikationseinrichtung zur getrennten
Multiplikation jeweils mit dem Dividenden und dem Divisor zugeführt wird, und daß eine
Steuereinrichtung (180 bis 183, und Fig. 3, 11) vorgesehen ist, die iterativ die Erzeugung jeweils
eines weiteren angenäherten Zwischendivisor-Kehrwertes und der darauf folgenden getrennten
Multiplikationen mit den bei den Multiplikationen des Divisors und Dividenden entstandenen neuen
Zwischendivisoren und Zwischendividenden solange wiederholt, bis der Zwischendivisor innerhalb
einer vorgegebenen Toleranz an Eins angenähert und der zugeordnete Zwischendividend als
Quotient verfügbar ist.
2. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß der Kehrwertgenerator einen
Tabellenspeicher (80) aufweist, der durch einen as hochstelligen Teil der Bitstellen des Divisors
adressierbar ist und der auf der durch diesen Stellenteil bestimmten Adresse den angenäherten
Kehrwert des betreffenden Divisors gespeichert enthält.
3. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß der Kehrwertgenerator eine
Komplementierschaltung (76) aufweist, der ein hochstelliger Teil des Divisors zugeführt wird und
die dessen angenäherten Kehrwert durch binäre Komplementierung bildet.
4. Anordnung nach den Ansprüchen 1 und 3, dadurch gekennzeichnet, daß die Steuereinrichtung
den Tabellenspeicher (80) zur Bildung des angenäherten Kehrwertes des Anfangsdivisors
(erste Divisionsiteration) und die Komplementierschaltung (76) zur Bildung des angenäherten
Kehrwertes der Zwischendivisoren (zweite bis ri te Divisionsiteration) wirksam macht.
5. Anordnung nach den Ansprüchen 1 bis 4, dadurch gekennzeichnet, daß die mit vom Multiplikator
gesteuerter Akkumulation von Multiplikandenvielfachen arbeitende Multiplikationseinrichtung
(32, 24 bis 29, 21 bis 23) bei der Multiplikation des Divisorkehrwertes mit den jeweils
vorliegenden Divisor bzw. Zwischendivisor und Dividenden bzw. Zwischendividenden den
Divisorkehrwert als Multiplikator behandelt und für eine hochstellige Kette gleicher Multiplikatorbits
(bereits mit 1 übereinstimmender Teil des Kehrwertes) nur eine Akkumulation des komplementierten
Multiplikanden für die niedrigste Bitstelle der Kette und eine Akkumulation des um
eine Stelle nach links verschobenen echten Multiplikanden für die höchste Bitstelle der Kette ausführt.
6. Anordnung nach den Ansprüchen 1 bis 5, dadurch gekennzeichnet, daß der Iterationssteuereinrichtung eine Multiplikationssteuereinrichtung
zugeordnet ist, die während jeder Divisionsiteration die Ausführung zweier unmittelbar
aneinander anschließender Multiplikationszyklen mit wechselnden Multiplikanden (Divisor und Dividend)
und unter Beibehaltung des gleichen Multiplikators (Divisorkehrwert) steuert.
7. Anordnung nach den Ansprüchen 1 bis 6, dadurch gekennzeichnet, daß die Multiplikationseinrichtung zur Akkumulation der Multiplikandenvielfachen
eine Addiererpyramide (21) aufweist, der unmittelbar nacheinander der jeweilige Divisor bzw. Zwischendivisor und Dividend bzw.
Zwischendividend unter Steuerung eines Multiplikatordecodierers
(32) zugeführt werden und deren Ausgang über Torschaltungen zur der Zeit, wenn das Resultat des ersten Multiplikationszyklus
erscheint, über eine komplementierende Torschaltung (76) nach links stellenverschoben zum
Multiplikatordecodierer und nach rechts stellenverschoben zum Eingang der Addiererpyramide
rückgeführt ist und zu der Zeit, wenn das Resultat des zweiten Multiplikationszyklus erscheint, nach
rechts stellenverschoben zum Eingang der Addiererpyramide rückgeführt ist, und daß die zurückgeleiteten
Resultatwerte die Operanden der folgenden Divisionsiteration sind.
8. Anordnung nach Anspruch 7, dadurch gekennzeichnet, daß der Betrag der Linksverschiebung
der Divisor-Resultate (erster Multiplikationszyklus) bei ihrer Rückführung zum Multiplikatordecodierer
(32) so gewählt ist, daß der in der folgenden Divisionsiteration wirksame Operand
eine Anzahl hochstelliger Bits gleichen Wertes aufweist.
9. Anordnung nach den Ansprüchen 5 bis 8, dadurch gekennzeichnet, daß die Dividenden-Resultate
(zweiter Multiplikationszyklus) einerseits um einen vorgegebenen Betrag rechtsverschoben
einer die Multiplikandenvielfachen bildenden Multiplikanden-Eingabeschaltung (24 bis 29) der
Addiererpyramide (21) und andererseits direkt zum Eingang dieser Pyramide rückgeführt werden.
10. Anordnung nach den Ansprüchen 1 bis 9, dadurch gekennzeichnet, daß der Multiplikatordecodierer
(32) die Bitstellen des jeweiligen Divisorkehrwertes gruppenweise auf das Vorhandensein
einer Kette gleicher Bitwerte oder den Anfang bzw. das Ende einer derartigen Kette untersucht
und entsprechende Ausgangssignale zu der Multiplikanden-Eingabeschaltung (24 bis 29)
liefert, die dementsprechend Multiplikandenvielfache in echter oder komplementierter Form dem
Eingang der Addiererpyramide (21) zuführt.
11. Anordnung nach den Ansprüchen 1 bis 10, dadurch gekennzeichnet, daß die Multiplikandenvielfachen durch von den Ausgangssignalen des
Multiplikatordecodierers (32) gesteuerte Stellenverschiebungen des Multiplikanden (Divisor oder
Dividend) gewonnen werden. :·;;-
12. Anordnung nach den Ansprüchen 1 bis 11, dadurch gekennzeichnet, daß die Addiererpyramide
(21) durch Verwendung von den einzelnen Addiererstufen zugeordneten, die gebildeten
Teilresultate zwischenspeichernden Verriegelungsschaltungen eine überlappte Arbeitsweise
gestattet, wodurch der Operandensatz des nächsten Multiplikationszyklus bereits zuführbar ist,
noch bevor das Resultat des laufenden Multiplikationszyklus
am Ausgang der Pyramide erscheint.
13. Anordnung nach Anspruch 12, dadurch gekennzeichnet, daß die Steuereinrichtung in Ver-
bindung mit der Multiplikationssteuereinrichtung während dem zweiten Multiplikationszyklus der
laufenden Divisionsiteration bereits den ersten Multiplikationszyklus der folgenden Divisionsiteration
einleitet.
14. Anordnung nach den Ansprüchen 1 bis 13, dadurch gekennzeichnet, daß die Steuereinrichtung
nach einer vorbestimmten Anzahl Iterationen das Resultat des zweiten Multiplikationszyklus
dieser Iteration als Quotient einem Resultatausgang zuleitet.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US57615766A | 1966-08-30 | 1966-08-30 |
Publications (3)
Publication Number | Publication Date |
---|---|
DE1549476A1 DE1549476A1 (de) | 1971-02-18 |
DE1549476B2 true DE1549476B2 (de) | 1973-06-20 |
DE1549476C3 DE1549476C3 (de) | 1974-01-17 |
Family
ID=24303204
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE1549476A Expired DE1549476C3 (de) | 1966-08-30 | 1967-08-18 | Anordnung zur Ausführung von Divisionen |
Country Status (3)
Country | Link |
---|---|
US (1) | US3508038A (de) |
DE (1) | DE1549476C3 (de) |
GB (1) | GB1136523A (de) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3633018A (en) * | 1969-12-18 | 1972-01-04 | Ibm | Digital division by reciprocal conversion technique |
US3700873A (en) * | 1970-04-06 | 1972-10-24 | Ibm | Structured computer notation and system architecture utilizing same |
US3631230A (en) * | 1970-09-24 | 1971-12-28 | Ibm | Binary arithmetic unit implementing a multiplicative steration for the exponential, logarithm, quotient and square root functions |
US3814924A (en) * | 1973-03-12 | 1974-06-04 | Control Data Corp | Pipeline binary multiplier |
JPS55103642A (en) * | 1979-02-01 | 1980-08-08 | Tetsunori Nishimoto | Division unit |
DE3066955D1 (en) * | 1980-06-24 | 1984-04-19 | Ibm | Signal processor computing arrangement and method of operating said arrangement |
JPS57172444A (en) * | 1981-04-15 | 1982-10-23 | Hitachi Ltd | Approximate quotient correcting circuit |
US4549280A (en) * | 1982-12-20 | 1985-10-22 | Sperry Corporation | Apparatus for creating a multiplication pipeline of arbitrary size |
US4594679A (en) * | 1983-07-21 | 1986-06-10 | International Business Machines Corporation | High speed hardware multiplier for fixed floating point operands |
JPS60142738A (ja) * | 1983-12-30 | 1985-07-27 | Hitachi Ltd | 内挿近似を使用する除算装置 |
JPS60163128A (ja) * | 1984-02-02 | 1985-08-26 | Nec Corp | 乗算回路 |
US4744045A (en) * | 1984-12-31 | 1988-05-10 | Gte Communication Systems Corporation | Divider circuit for encoded PCM samples |
JPS62118474A (ja) * | 1985-11-19 | 1987-05-29 | Hitachi Ltd | ベクトル除算装置の制御方式 |
US4881193A (en) * | 1986-09-04 | 1989-11-14 | Hitachi, Ltd. | Rational number operation unit for reduction |
US4831577A (en) * | 1986-09-17 | 1989-05-16 | Intersil, Inc. | Digital multiplier architecture with triple array summation of partial products |
US4839847A (en) * | 1987-04-14 | 1989-06-13 | Harris Corp. | N-clock, n-bit-serial multiplier |
US5179659A (en) * | 1987-05-08 | 1993-01-12 | Sun Microsystems, Inc. | Method and apparatus for deriving instantaneous reciprocals of the homogenous coordinate w for use in defining images on a display |
US5212662A (en) * | 1989-01-13 | 1993-05-18 | International Business Machines Corporation | Floating point arithmetic two cycle data flow |
US5249149A (en) * | 1989-01-13 | 1993-09-28 | International Business Machines Corporation | Method and apparatus for performining floating point division |
US4999802A (en) * | 1989-01-13 | 1991-03-12 | International Business Machines Corporation | Floating point arithmetic two cycle data flow |
US5036482A (en) * | 1989-04-07 | 1991-07-30 | Intel Corporation | Method and circuitry for digital system multiplication |
US5377134A (en) * | 1992-12-29 | 1994-12-27 | International Business Machines Corporation | Leading constant eliminator for extended precision in pipelined division |
JP3660075B2 (ja) * | 1996-10-04 | 2005-06-15 | 株式会社ルネサステクノロジ | 除算装置 |
EP0837390A1 (de) * | 1996-10-18 | 1998-04-22 | Texas Instruments Incorporated | Verbesserung an mikroprozessorbetriebenen integrierten Schaltungen oder damit zusammenhängend |
US8819094B2 (en) * | 2009-06-10 | 2014-08-26 | Synopsys, Inc. | Multiplicative division circuit with reduced area |
US8407274B2 (en) | 2010-05-21 | 2013-03-26 | The Board Of Regents Of The University Of Texas System | Machine division |
US8415968B2 (en) * | 2010-07-30 | 2013-04-09 | The Board Of Regents Of The University Of Texas System | Data tag control for quantum-dot cellular automata |
CN107992284B (zh) * | 2017-11-27 | 2022-12-23 | 中国航空无线电电子研究所 | 一种可编程器件的除法功能实现方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3253131A (en) * | 1961-06-30 | 1966-05-24 | Ibm | Adder |
US3115574A (en) * | 1961-11-29 | 1963-12-24 | Ibm | High-speed multiplier |
US3311739A (en) * | 1963-01-10 | 1967-03-28 | Ibm | Accumulative multiplier |
US3278732A (en) * | 1963-10-29 | 1966-10-11 | Ibm | High speed multiplier circuit |
US3340388A (en) * | 1965-07-12 | 1967-09-05 | Ibm | Latched carry save adder circuit for multipliers |
-
1966
- 1966-08-30 US US576157A patent/US3508038A/en not_active Expired - Lifetime
-
1967
- 1967-07-31 GB GB35056/67A patent/GB1136523A/en not_active Expired
- 1967-08-18 DE DE1549476A patent/DE1549476C3/de not_active Expired
Also Published As
Publication number | Publication date |
---|---|
DE1549476A1 (de) | 1971-02-18 |
US3508038A (en) | 1970-04-21 |
DE1549476C3 (de) | 1974-01-17 |
GB1136523A (en) | 1968-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE1549476C3 (de) | Anordnung zur Ausführung von Divisionen | |
DE1549477B1 (de) | Einrichtung zur schnellen akkumulation einer anzahl mehr stelliger binaerer operanden | |
DE19758079A1 (de) | Verfahren und Vorrichtung zur Galoisfeld-Multiplikation | |
DE2311220A1 (de) | Digital-informations-verarbeitungsvorrichtung zur zeichenerkennung | |
DE2712224A1 (de) | Datenverarbeitungsanlage | |
DE2814078A1 (de) | Addierschaltung mit zeitweiliger zwischenspeicherung des uebertrags | |
DE2758130C2 (de) | Binärer und dezimaler Hochgeschwindigkeitsaddierer | |
DE2221693B2 (de) | Schaltungsanordnung zur Ausführung einer Multiplikation zwischen zwei Binärzahlen | |
DE1499281B1 (de) | Rechenmaschine fuer logarithmische Rechnungen | |
DE2612750A1 (de) | Multipliziereinrichtung | |
DE1114050B (de) | Elektronischer Gleitkomma-Rechner | |
DE3447634C2 (de) | ||
EP0598112B1 (de) | Verfahren und anordnung zum bilden der summe einer kette von produkten | |
DE2214053A1 (de) | Verfahren und Vorrichtung zum Steuern einer numerisch gesteuerten Werkzeugmaschine entlang einer Kreisbahn | |
DE1549477C (de) | Einrichtung zur schnellen Akkumulation einer Anzahl mehrstelliger binarer Operan den | |
DE1524146C (de) | Divisionseinrichtung | |
DE1234055B (de) | Anordnung zur Addition oder Subtraktion | |
DE1181459B (de) | Multiplikationsschaltung fuer elektronische Zifferrechenmaschinen | |
DE19635111A1 (de) | Multiplizierer | |
DE2708637C3 (de) | Schaltungsanordnung zur Bildung einer BCD-Summe oder einer reinen Binär-Summe aus einem ersten und einem zweiten Operanden | |
DE1549465C (de) | Multiplikationseinrichtung | |
DE4242929A1 (de) | Schaltungsanordnung zum Bilden der Summe von Produkten | |
DE2207566C3 (de) | Serien-Parallel-Multiplizierwerk | |
DE2337356C3 (de) | Im Dualsystem arbeitende Multiplizierschaltung | |
DE1303692C2 (de) | Binaerrechner |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C3 | Grant after two publication steps (3rd publication) | ||
E77 | Valid patent as to the heymanns-index 1977 | ||
EHJ | Ceased/non-payment of the annual fee |