DE1549476B2 - Anordnung zur ausfuehrung von divisionen - Google Patents

Anordnung zur ausfuehrung von divisionen

Info

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
Application number
DE19671549476
Other languages
English (en)
Other versions
DE1549476A1 (de
DE1549476C3 (de
Inventor
Robert Elliott Wappingers Falls N Y Powers Don Michaels Poughkeepsie N Y Goldschmidt, (V St A)
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 DE1549476A1 publication Critical patent/DE1549476A1/de
Publication of DE1549476B2 publication Critical patent/DE1549476B2/de
Application granted granted Critical
Publication of DE1549476C3 publication Critical patent/DE1549476C3/de
Expired 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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/533Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
    • G06F7/5334Reduction 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
    • 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/52Multiplying; Dividing
    • G06F7/535Dividing only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/386Special constructional features
    • G06F2207/3884Pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/535Indexing scheme relating to groups G06F7/535 - G06F7/5375
    • G06F2207/5355Using iterative approximation not using digit recurrence, e.g. Newton Raphson or Goldschmidt
    • 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/487Multiplying; Dividing
    • G06F7/4873Dividing

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 iV4RA 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)

Patentansprüche:
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.
DE1549476A 1966-08-30 1967-08-18 Anordnung zur Ausführung von Divisionen Expired DE1549476C3 (de)

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)

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

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

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