HINTERGRUND DER ERFINDUNG
Gebiet der Erfindung
-
Die Erfindung bezieht sich auf Gleitkomma-Multiplizierer
und insbesondere auf Verfahren und Einrichtungen zur
Erhöhung der Rundungsgeschwindigkeit bei solchen
Multiplizierern.
Geschichte des Stands der Technik
-
Es wurden verschiedene Anordnungen vorgeschlagen, um
schnelle Multiplizierschaltungen für Computer zur Verfügung
zu stellen. Das Produkt von zwei binären n-Bit-Operanden
wird im wesentlichen durch Bestimmen einer Anzahl von
Teilprodukten erhalten, von denen jedes in Bezug auf das
vorhergehende Teilprodukt um ein Bit nach links verschoben ist.
Die Teilprodukte werden anschließend addiert, um ein
Ergebnis zu erhalten. Um die Teilprodukte schnell zu addieren,
wurden Binärbaum-Anordnungen vorgeschlagen, bei denen die
individuellen Teilprodukte in Paaren gruppiert werden und
die Gruppen mittels übertragserhaltenden Addierern parallel
addiert werden. Die Ergebnisse der Addition dieser
Teilprodukte werden wiederum paarweise gruppiert, und die Gruppen
werden in der gleichen Weise mit zusätzlichen
übertragserhaltenden Addierern parallel addiert. Dieses Verfahren wird
fortgesetzt, bis die letzten beiden Teilprodukte addiert
werden, um ein Produkt zu liefern. High Speed Multiplier
Using a Redundant Binary Adder Tree, Harata et al., IEEE
Journal of Solid-State Circuits, Band SC-22, Nr. 1, Februar
1987, beschreibt eine solche Schaltung. Ein Addierer mit
mitlaufendem Übertrag kann dazu verwendet werden, die Summen
und Überträge der letzten beiden Teilprodukte der
vorhergehenden Stufen des Binärbaum-Multiplizierers zu addieren.
-
Diese Schaltungen können entweder bei der Multiplikation
von ganzen Zahlen oder zum Erzeugen der Mantisse bei der
Gleitkomma-Multiplikation verwendet werden. Wird die
Multiplizierschaltung in einer Anordnung zur
Gleitkomma-Multiplikation verwendet, erzeugt sie normalerweise ein Ergebnis,
das doppelt soviele Bits hat, wie die Maschine bearbeitet,
so daß das Ergebnis oft aufgerundet werden muß. Der Standard
für Binärzahlen mit doppelter Genauigkeit benötigt
beispielsweise 53 Bits. Das Produkt von zwei Binärzahlen mit 53
Bits ist 106 Bits lang. Ein Ergebnis mit doppelter
Genauigkeit verwendet nur die oberen 54 Bits dieses Produkts, wobei
das höchstwertige Bit einen Überlauf anzeigt. Die unteren 53
Bits dienen nur dazu, festzustellen, ob ein Übertrag von den
unteren Bits erzeugt wird, ob eine Rundung benötigt wird,
und dazu, den genauen Rundungswert zu bestimmen.
-
Um das Produkt zu runden, muß zunächst die Mantisse
normalisiert werden. Bei der binären Multiplikation von zwei
normalisierten Operanden muß dazu die Mantisse höchstens um
ein Bit nach rechts verschoben werden, so daß nur ein
einziges signifikantes Bit links vom Binärpunkt liegt. Ferner muß
die Potenz des Exponenten erhöht werden. Bis die Mantisse
normalisiert ist, ist die Bitposition, auf der die Rundung
durchgeführt wird, unbekannt. Obwohl die unteren Bits des
Produkts nur dazu verwendet werden, einen Übertrag zu
erzeugen und die Rundung zu bestimmen, muß das Übertragsergebnis
für die unteren Bits erzeugt werden, bevor der Addierer mit
mitlaufendem Übertrag für die oberen Bits seinen Betrieb
aufnehmen kann. Da eine Mantisse abgeleitet wird und nur
normalisiert werden kann, nachdem die Addition des
mitlaufenden Übertrags der oberen Bits abgeschlossen ist, muß die
Gesamtoperation normalerweise darauf warten, daß der untere
Übertrag erzeugt wird und dieses Übertragsbit durch die
oberen Bits läuft. Der Übertrag von den unteren Bits liegt
daher im kritischen Pfad.
-
Es ist normal für solche Multiplizierer, daß die
Rundungsbedingung erzeugt wird, sobald die Normalisierung
stattgefunden hat, und daß ggfs. eine Eins zum
geringstwertigen Bit der normalisierten Mantisse addiert wird, um das
gerundete Ergebnis zu erhalten. Diese Vorgehensweise
verwendet einen Addierer mit mitlaufendem Übertrag am Ausgang des
Multiplizierbaums und zur Rundung einen Vorwärtszähler am
Ausgang des Addierers. Eine übliche Vorgehensweise zum
Beschleunigen der Operation der Anordnung besteht in dem
Einsatz von zwei parallelgeschalteten Rundungsschaltungen, wie
es in der US 4,849,923 offenbart ist. Eine Schaltung nimmt
an, daß die Mantisse überlaufen wird, während die andere
annimmt, daß dies nicht passiert. Das richtige Ergebnis wird
ausgewählt, sobald das höchstwertige Bit der ungerundeten
Mantisse zur Verfügung steht.
-
Auf jeden Fall wartet in üblichen bekannten Gleitkomma-
Multiplizierern alles auf das Ergebnis des mitlaufenden
Übertrags der unteren Bits.
Zusammenfassung der Erfindung
-
Aufgabe der vorliegenden Erfindung ist es daher, die
Geschwindigkeit zu erhöhen, mit der
Gleitkomma-Multiplizierschaltungen ein Ergebnis liefern können.
-
Es ist eine andere, speziellere Aufgabe der vorliegenden
Erfindung, einen wesentlichen Teil der Verzögerung zu
beseitigen, die bei einer Gleitkomma-Multiplizierschaltung
dadurch verursacht wird, daß das Ergebnis des mitlaufenden
Übertrags der unteren Bits abgewartet werden muß.
-
Diese und andere Aufgaben der vorliegenden Erfindung
werden gelöst durch eine Rundungsschaltung zum Runden der
Mantisse des Ergebnisses der abschließenden Addition in
einem Binäraddiererbaum-Gleitkomma-Multiplizierer mit einer
Einrichtung, die die oberen Bits der Mantisse unter der
Annahme zur Verfügung stellt, daß kein einlaufender Übertrag
von den unteren Bits auftritt; einer Einrichtung, die die
oberen Bits der Mantisse unter der Annahme zur Verfügung
stellt, daß ein einlaufender Übertrag von den unteren Bits
auftritt; einer Einrichtung zum Zur-Verfügung-Stellen eines
ersten Satzes der unteren Bits der Mantisse auf der
Grundlage, eines tatsächlichen einlaufenden Übertrags von einem
Addierer niedriger Ordnung und einer Rundungsbedingung, die
keinen Mantissenüberlauf annimmt; einer Einrichtung zum Zur-
Verfügung-Stellen eines zweiten Satzes der unteren Bits für
die Mantisse auf der Grundlage eines tatsächlichen
einlaufenden Übertrags von dem Addierer niedriger Ordnung und
einer Rundungsbedingung, die einen Mantissenüberlauf annimmt;
und einer Einrichtung zum Ausgeben der gerundeten Mantisse,
indem die oberen Bits und die unteren Bits der Mantisse auf
der Grundlage ausgewählt werden, ob ein einlaufender
Übertrag von den unteren Bits der Mantisse auftritt und ob ein
Mantissenüberlauf auftritt.
-
Diese und andere Ziele und Merkmale der Erfindung werden
durch die folgende detaillierte Beschreibung in Verbindung
mit den Zeichnungen deutlicher, in denen in den
verschiedenen Darstellungen gleiche Elemente mit den gleichen
Bezugszeichen bezeichnet sind.
Kurze Beschreibung der Zeichnungen
-
Fig. 1 zeigt ein Diagramm, das die Zustände
veranschaulicht, die als Ergebnis der verschiedenen Überlauf-,
einlaufender Übertrags- und Rundungsmöglichkeiten in einer
Gleitkomma-Multiplizierschaltung möglich sind.
-
Fig. 2 zeigt ein Blockdiagramm, das eine
erfindungsgemäß konstruierte Schaltung veranschaulicht.
Schreibweise und Terminologie
-
Einige Abschnitte der folgenden detaillierten
Beschreibung sind in der Form von symbolischen Darstellungen von
Operationen an Datenbits in einem Computerspeicher
dargestellt. Diese Beschreibungen und Darstellungen sind die von
den Fachleuten auf dem Gebiet der Datenverarbeitung
verwendeten Mittel, um anderen Fachleuten den Inhalt ihrer Arbeit
am effektivsten zu vermitteln. Die Schritte erfordern
physikalische Bearbeitungen von physikalischen Größen.
Normaler
weise, wenn auch nicht notwendigerweise, haben diese Größen
die Form von elektrischen oder magnetischen Signalen, die
gespeichert, übertragen, kombiniert, verglichen und auf
andere Weise bearbeitet werden können. Es hat sich manchmal
als zweckmäßig erwiesen, hauptsächlich weil es so üblich
ist, diese Signale als Bits, Werte, Elemente, Symbole,
Zeichen, Ausdrücke, Zahlen oder ähnliches zu bezeichnen. Man
sollte jedoch nicht vergessen, daß alle diese und ähnliche
Ausdrücke den zugehörigen physikalischen Größen zugeordnet
werden müssen und lediglich gebräuchliche Bezeichnungen für
diese Größen darstellen.
-
Weiterhin werden die durchgeführten Bearbeitungen häufig
mit Ausdrücken bezeichnet, wie addieren oder vergleichen,
die üblicherweise mit geistigen Operationen eines
menschlichen Bedieners assoziiert werden. Eine solche Fähigkeit
eines menschlichen Bedieners ist weder nötig noch in den
meisten Fällen wünschenswert bei allen hier beschriebenen
Operationen, die Teil der vorliegenden Erfindung sind; bei den
Operationen handelt es sich um von einer Maschine
durchgeführte Operationen. Geeignete Maschinen zum Durchführen der
erfindungsgemäßen Operationen sind digitale Universalrechner
und ähnliche Einrichtungen. Auf jeden Fall sollte der
Unterschied zwischen den Verfahrensschritten beim Betreiben eines
Computers und dem Berechnungsverfahren selbst beachtet
werden. Die vorliegende Erfindung bezieht sich auf eine
Einrichtung zum Betreiben eines Computers beim Verarbeiten von
elektrischen oder anderen (z. B. mechanischen, chemischen)
physikalischen Signalen zum Erzeugen von anderen gewünschten
physikalischen Signalen.
Detaillierte Beschreibung der Erfindung
-
Um die Geschwindigkeit zu erhöhen, mit der ein
Gleitkomma-Multiplizierer ein abschließendes Ergebnis erzielt,
entfernt die vorliegende Erfindung das Erzeugen des unteren
Übertragsbits aus dem kritischen Pfad.
-
Um die Arbeitsweise zu verstehen, mit welcher dies
gelingt, enthält Fig. 1 eine Anzahl von Diagrammen zum
Verdeutlichen der verschiedenen Zustände der Ausgabe des zum
Erzeugen des abschließenden Ergebnisses verwendeten
Addierers mit mitlaufendem Übertrag. In jedem dieser Fälle ist
dieses Produkt MAN_PR[105 : 52] die Ausgabe des Addierers mit
mitlaufendem Übertrag, die durch Addieren der oberen Bits
der Operanden (die als die beiden Operanden S1[105 : 52] und
S2[105 : 52] angegeben sind) erzeugt wurde, wobei die
Operanden ihrerseits durch die Binärbaum-Anordnung des
Multiplizierers erzeugt wurden. Die ersten vier Fälle nehmen an, daß
es keinen Mantissenüberlauf gibt, der eine Normalisierung
erfordert, während die letzten vier Beispiele annehmen, daß
es einen Mantissenüberlauf gibt. In jedem Fall ist der
Mantissenwert als oberer Wert dargestellt, und die vier
möglichen Zustände der beiden gerinstwertigen Bits sind darunter
dargestellt.
-
Da es keinen Mantissenüberlauf gibt, muß die Mantisse in
den Fällen 1 bis 4 nicht normalisiert werden (nach rechts
verschoben, wobei ihr Exponent erhöht wird), so daß das
Rundungsbit und das Übertragsbit, das vom Addierer mit
mitlaufendem Übertrag durch die Addition der unteren Bits
geliefert wird, an dergleichen Bitposition zur Verfügung gestellt
werden. Im Fall 1 gibt es keinen Übertrag vom Bit 51 der
unteren Bits, und eine Rundung ist nicht nötig. Infolgedessen
ist die vom Addierer mit mitlaufendem Übertrag erzeugte
Mantisse MAN_PR[105 : 52] bereits richtig. Im Fall 2 wird ein
Übertragsbit (C51 = 1) von den unteren Bits des Addierers
mit mitlaufendem Übertrag erzeugt, wobei eine Rundung nicht
erforderlich ist, so daß kein Rundungsbit erzeugt wird. Wie
man sieht, pflanzt sich der Übertrag von den unteren Bits
nur in dem Fall über die Position des Bits 54 der Mantisse
hinaus fort, in dem die beiden gerinstwertigen Bits der
Mantisse MAN_PR[105 : 52] beide Einsen sind; dies ist in Fig. 1
durch eine nach links verlaufende Punktreihe im Ergebnis der
Kombination des Übertrags und der Mantisse dargestellt.
In
folgedessen kann nur eine Mantisse MAN_PR[105 : 52] mit Einsen
in den beiden untersten Bitpositionen durch ein Übertragsbit
C51 zum Überlaufen gebracht werden.
-
Fall 3 (bei dem es kein Übertragsbit, jedoch ein
Rundungsbit gibt) stimmt mit Fall 2 überein, da nur eine
einzige Eins zu der geringstwertigen Bitposition der Mantisse
addiert wird. Infolgedessen kann im Fall 3 nur eine Mantisse
MAN_PR[105 : 52] mit Einsen an den beiden untersten
Bitpositionen durch ein Übertragsbit C51 zum Überlaufen gebracht
werden.
-
In Fall 4 werden durch die geringstwertigen Bits sowohl
ein Übertragsbit C51 als auch ein Rundungsbit erzeugt. Das
Addieren dieser beiden Bits liefert eine Eins, die an der
zweituntersten Bitposition der Mantisse zu addieren ist. Wie
man sieht, pflanzen nur Mantissenwerte mit einer Eins in der
zweituntersten Bitposition den Übertrag über das Bit 54 der
Mantisse hinaus fort. Diese Fälle sind in den Beispielen
wiederum durch Punkte links von den beiden geringstwertigen
Bits der Beispiele im Fall 4 gekennzeichnet.
-
Die Fälle 5 bis 8 nehmen an, daß ein Mantissenüberlauf
auftritt, so daß die Mantisse normalisiert werden muß. Diese
Normalisierung bewegt die Bits der Mantisse um eine Position
nach rechts und bewirkt, daß das Rundungsbit des Addierers
mit mitlaufendem Übertrag für die unteren Bits an der Stelle
des Bits 53 der Mantisse eingebracht wird, während das
Übertragsbit weiterhin an der Stelle des Bits 52 eingebracht
wird.
-
Das Rundungsbit und das Übertragsbit werden daher an
zwei verschiedenen Bitpositionen zur Verfügung gestellt. Im
Fall 5 gibt es keinen Übertrag vom Bit 51 der unteren Bits,
und eine Rundung ist nicht erforderlich. Infolgedessen ist
die vom Addierer mit mitlaufendem Übertrag erzeugte Mantisse
MAN_PR[105 : 52] bereits das richtige Ergebnis, wie auch immer
die gerinstwertigen Bits dieser Mantisse sein mögen. Im Fall
6 wird jedoch ein Übertragsbit (C51 = 1) erzeugt, wohingegen
kein Rundungsbit von den unteren Bits des Addierers mit
mit
laufendem Übertrag erzeugt wird. Wie man sieht, pflanzt sich
der Übertrag von den unteren Bits nur in dem Fall über die
Position des Bits 54 in der Mantisse hinaus fort, in dem die
beiden geringstwertigen Bits der Mantisse MAN_PR [105 : 52]
beide Einsen sind; dies ist in. Fig. 1 wiederum durch die
nach links verlaufende Punktreihe im Ergebnis dargestellt.
Daher kann nur eine Mantisse MAN_PR [105 : 52] mit Einsen in
den beiden geringstwertigen Bitpositionen durch ein
Übertragsbit C51 zum Überlaufen gebracht werden.
-
Fall 7 (bei dem es kein Übertragsbit aber ein
Rundungsbit gibt) stimmt mit Fall 4 überein, bei dem eine einzige
Eins an der zweituntersten Bitposition zur Mantisse addiert
wird. Nur ein Mantissenwert MAN_PR[105 : 52] mit einer Eins in
der zweituntersten Bitposition kann durch eine Eins in der
zweituntersten Bitposition zum Überlaufen gebracht werden,
so daß sich der Übertrag über das Bit 54 der Mantisse hinaus
fortpflanzt.
-
Im Fall 8 gibt es sowohl ein Übertragsbit C51 als auch
ein Rundungsbit. Das Addieren dieser beiden Bits führt zu
Einsen in den beiden geringstwertigen Bitpositionen. Wie man
sieht, pflanzt sich der Übertrag nur bei Mantissenwerten mit
Nullen in den beiden niedrigstwertigen Bitpositionen nicht
über das Bit 54 der Mantisse hinaus fort. Diese
Fortpflanzung ist in den Beispielen wiederum durch Punkte links vn
den beiden geringstwertigen Bits in den Beispielen des Falls
8 gekennzeichnet.
-
Man erkennt somit, daß durch Erzeugen eines Paars von
Mantissen, eine ohne Übertrag jenseits Bit 54 und eine mit
Übertrag jenseits Bit 54 alle in den oben beschriebenen
Fällen dargestellten Zustände ohne weiteres erzeugt werden
können. Diese Mantissen können erzeugt werden, ohne auf den
Übertrag von den unteren Bits zu warten. Diese Mantissen
können einer Reihe von Multiplexern zur Verfügung gestellt
werden, deren Ausgangssignal durch die tatsächlich
auftretende Rundung, den tatsächlich auftretenden unteren Übertrag
und den tatsächlich auftretenden Überlauf ausgewählt werden,
so daß eine beträchtliche Zeit beim Erzeugen eines
Ergebnisses des Multiplizierers eingespart werden kann.
-
Fig. 2 zeigt ein Blockschaltbild der Schaltung zum
Implementieren der vorliegenden Erfindung. Eine Schaltung 10
enthält einen ersten Addierer 12 mit mitlaufendem Übertrag
und einen zweiten Addierer 13 mit mitlaufendem Übertrag. Der
erste Addierer 12 empfängt als Eingabe ein Operandenpaar S1
[105 : 52] und S2 [105 : 52] und addiert diese beiden Werte, um
einen Mantissenwert MAN_0 [53 : 0] zu erzeugen. Der Addierer 12
empfängt einen einlaufenden Übertrag von 0 von den unteren
Bits und erzeugt daher eine Mantisse, die annimmt, daß es
keinen Übertrag am Bit 51 gab. Der zweite Addierer 13
empfängt als Eingabe ein Operandenpaar S1 [105 : 54] und S2
105 : 54] und addiert diese beiden Werte, um einen
Mantissenwert MAN_4[53 : 2] zu erzeugen. Der Addierer 13 empfängt einen
einlaufenden Übertrag von Eins von den unteren Bits an der
Bitposition 54 und erzeugt daher eine Mantisse, die annimmt,
daß es einen sich über das Bit 53 hinaus fortpflanzenden
Übertrag gab.
-
Die beiden Addierer mit mitlaufendem Übertrag erzeugen
daher die Bits der Mantisse vom Bit 54 bis zum Bit 105 unter
der Annahme, daß es keinen einlaufenden Übertrag am Bit 52
gab und daß ein einlaufender Übertrag sich bis zum Bit 54
fortgepflanzt hat. Die beiden geringstwertigen Bits der
Mantisse des Addierers 12 werden fallengelassen und die
verbleibenden Ziffern sowohl von Addierer 12 als auch von
Addierer 13 werden jedem von zwei Multiplexern 15 und 16 als
die beiden möglichen oberen Werte [53 : 2] einer abschließenden
Mantisse zur Verfügung gestellt. Die Mantissenwerte mit
Ausnahme der beiden geringstwertigen Bits stehen daher
unmittelbar nach Abschluß der Operationen durch die Addierer mit
mitlaufendem Übertrag 12 und 13 zur Verfügung, ohne daß auf
den Übertrag aus der Addition der unteren Bits der Operanden
gewartet wird. Die bei den Multiplexern 15 und 16
ausgewählten Werte werden von zusätzlichen Schaltungen gemäß Fig. 2
bestimmt.
-
Während der Operation der Addierer 12 und 13 zum
Erzeugen der oberen Bits der beiden möglichen Mantissenwerte
addiert ein kombinatorischer Logikblock 18 die unteren Bits
S1_M [50 : 0] und S2_M [50 : 0] der beiden Operanden und liefert
als Ausgabe das Übertragsbit 51 und ein Sticky-Bit bzw.
Haftbit. Diese beiden Bits werden dazu verwendet, die in den
oberen Bitpositionen erforderliche tatsächliche Rundung und
den tatsächlichen Übertrag festzustellen. Der IEEE Standard
754 für binärer Gleitkomma-Arithmetik erzeugt einen
Standardrundungsmodus "Runde zum nächsten" und in
unentscheidbaren Fällen wird "Runde zum nächsten geraden" gewählt. Um
einen unentscheidbaren Fall zu lösen, wird in
Übereinstimmung mit dem IEEE 754 ein "Sticky-Bit" erzeugt. Das Sticky-
Bit hat den Wert Eins, wenn irgendeines der unteren Bits
jenseits der Schutzbitposition eines der beiden Operanden
eine Eins ist; das Sticky-Bit ist Null, falls kein Bit eine
Eins ist.
-
Der IEEE Standard liefert nicht nur den angegebenen
Standardmodus, sondern bietet auch drei andere Modi an.
Diese sind "runde nach Null, "runde nach plus unendlich" und
"runde nach minus unendlich". Jeder der Rundungswerte für
diese Rundungsmodi kann erzeugt werden, wenn der Wert des
Sticky-Bits bekannt ist.
-
Die drei Bits [53 : 51] jedes der Operanden S1 und S2, die
sich in Abhängigkeit von Rundung, Übertrag und Überlauf
ändern können, werden an eine Drei-Bit-Addierschaltung 20
übertragen. Die Schaltung 20 empfängt auch den vom Addierer
18 erzeugten Übertrag C51 und das Sticky-Bit und ein Signal
RND_MODE, das anzeigt, welcher der vier Rundungsmodi
gewünscht wird. Der Addierer 20 addiert diese Signale in einer
vom Rundungsmodus abhängigen Weise und erzeugt ein
Ausgangssignal RN und ein Ausgangssignal RV. Das Signal RN stellt
den zu verwendenden Rundungswert dar, falls kein Überlauf
der Mantisse auftritt, wohingegen der Wert RV den zu
verwendenden Rundungswert darstellt, falls ein Mantissenüberlauf
auftritt.
-
Der RN-Wert wird an einen Zwei-Bit-Addierer 22 an der
geringstwertigen Bitposition übertragen. Ferner werden an
den Addierer 22 die beiden geringstwertigen Bits [52 : 51] (als
MAN_0 [1 : 0] dargestellt) übertragen, die durch den Addierer
mit mitlaufendem Übertrag 12 für die Mantisse erzeugt wurden
und bei der Übertragung des Mantissenwerts zu den
Multiplexern 15 und 16 fallengelassen wurden. Diese Werte und der
Wert des Übertragsbits 51 werden kombiniert und erzeugen
einen Wert RD0 [1 : 0] für die beiden geringstwertigen Bits einer
abschließenden Mantisse. Die Kombination erzeugt ferner ein
Signal CN. Der Wert des Signals CN zeigt an, ob es einen
einlaufenden Übertrag für das Bit 2 der Mantisse gibt, und
zwar für denjenigen Fall, bei dem kein Überlauf der Mantisse
auftrat. Das Vorhandensein oder Fehlen dieses Signals CN
wird dazu verwendet, das Ausgangssignal des Multiplexers 15
auszuwählen. Liegt ein Übertrag vor, wird der Wert
-
MAN 4_[53 : 52] ausgewählt, der vom Addierer 13 erzeugt
wurde, der seinerseits einen einlaufenden Übertrag empfing;
ist kein Übertrag vorhanden, wird der Wert MAN_0 [53 : 2]
ausgewählt, der vom Addierer 12 ohne einlaufenden Übertrag
erzeugt wurde. Das Signal CN vom Addierer 22 wählt somit
korrekt eine der beiden Teilmantissen in Abhängigkeit davon
aus, ob der einlaufende Übertrag sich bis zum Bit 2 der
abschließenden Mantisse fortpflanzt oder nicht.
-
Auf ähnliche Weise wird der RV-Wert ab einen
Zwei-Bit-Addierer 23 an der zweituntersten Bitposition übertragen,
zusammen mit einer Eins an der geringstwertigsten Bitposition.
Ferner werden an den Addierer 23 die beiden
geringstwertigsten Bits [52 : 51] (hier als MAN_0 [1 : 0] dargestellt)
übertragen, die vom Addierer mit mitlaufendem Übertrag 12 als
Mantisse erzeugt wurden, jedoch nicht an die Multiplexer 15 und
16 übertragen wurden. Diese Werte und die Werte des
Übertragsbits 51 werden kombiniert und erzeugen einen möglichen
Wert RD4[1 : 0] für die beiden geringstwertigen Bitpositionen
der Mantisse, der im Fall eines Mantissenüberlaufs zu
verwenden ist. Die Kombination erzeugt ferner einen Wert CV,
der anzeigt, ob es einen einlaufenden Übertrag am Bit 2 der
Mantisse gibt, und zwar in dem Fall, in dem ein
Mantissenüberlauf auftrat. Das Vorhandensein oder Fehlen des Signals
CV wird dazu verwendet, das Ausgangssignal des Multiplexers
16 auszuwählen. Liegt ein Übertrag vor, so wird der vom
Addierer 13, der einen einlaufenden Übertrag empfing, erzeugte
Wert MAN_4 [53 : 2] ausgewählt; liegt kein Übertrag vor, wird
der vom Addierer 12, ohne einlaufenden Übertrag erzeugte
Wert MAN_0 [53 : 2] ausgewählt. Das Signal CV vom Addierer 23
wählt somit die beiden Teilmantissen in Abhängigkeit davon
richtig aus, ob der einlaufende Übertrag sich bis zum Bit 2
der abschließenden Mantisse fortpflanzt.
-
Schließlich werden die vom Multiplexer 15 übertragenen
oberen Bitwerte mit den beiden unteren Bits vom Addierer 22
verbunden und als ein Eingangssignal an einen dritten
Multiplexer 25 übertragen. In ähnlicher Weise werden die vom
Multiplexer 16 übertragenen oberen Bitwerte mit den vom Zwei-
Bit-Addierer 23 übertragenen beiden unteren Bits verbunden
und als weiteres Eingangssignal dem dritten Multiplexer 25
zugeführt. Das vom Multiplexer 25 erzeugte Ausgangssignal
wird von dem logischen Ausdruck gesteuert, der zur Rechten
dieses Multiplexers 25 gezeigt ist. Es ist klar, daß, falls
ein Überlauf von der Mantisse des Addierers 12 ohne
einlaufenden Übertrag auftritt, ein Überlauf von der Mantisse des
Addierers 13 mit einem einlaufenden Übertrag von Eins
auftreten muß. Andererseits ist die Umkehrung nicht wahr; der
Überlauf des Addierers 13 kann wegen des einlaufenden
Übertrags von Eins auftreten, obwohl der Addierer 12 nicht
übergelaufen sein muß.
-
Falls das vom Addierer mit mitlaufendem Übertrag 12
erzeugte obere Bite eine Eins ist (was einen Mantissenüberlauf
anzeigt), wird daher das von den Werten des Multiplexers 16
und des Addierers 23 erzeugte Ergebnis ausgewählt. In
ähnlicher Weise wird, falls das vom Addierer mit mitlaufendem
Übertrag 13 erzeugte obere Bit eine Eins ist (was einen
Mantissenüberlauf anzeigt) und es einen einlaufenden Übertrag
(CN = 1)
am Bit 2 der abschließenden Mantisse gibt, das von
den Werten des Multiplexers 16 und des Addierers 23 erzeugte
Ergebnis ausgewählt. Tritt keiner dieser beiden Fälle auf,
so wird die von dem Multiplexer 15 und dem Addierer 22 zur
Verfügung gestellte Mantisse ausgewählt.
-
Es gibt einen Fall, in dem die Schaltung gemäß Fig. 2,
wie sie bisher beschrieben wurde, das richtige Ergebnis
erzeugt. Dies ist ein Zustand, bei dem alle Bits beider
Operanden 51 und 52 unmittelbar links des Bits 51 Einsen sind.
Wird eine Eins zum Bit 51 addiert, so sollte ein Übertrag
sich durch die Stufen nach links fortpflanzen. Dies
geschieht nicht, da die Fortpflanzung von der Addierschaltung
nicht ausgeführt wird, die die Addition mit Bit 54
beginnt. Daher wird eine Schaltung 30 mit einer Reihe von
Halbaddierern verwendet, um die anfänglichen Übertragsbits
zu integrieren, falls das Ausgangssignal des
Multiplizierbaums eine Zeichenkette mit lauter Einsen unmittelbar links
von Bit 51 ist.
-
Wie für den Fachmann klar ist, erlaubt es die
erfindungsgemäße Schaltung, unmittelbar nach Abschluß der
Operation des Addierers mit mitlaufendem Übertrag für die oberen
Bits alle außer den untersten Bits der möglichen Mantissen
zu erzeugen und einen Überlauf zu bestimmen, ohne auf den
Übertrag von den unteren Bits vor Beginn der Operation zu
warten. Die Schaltung muß dann nur den Wert des einlaufenden
Übertrags für das Bit 51, das Sticky-Bit und den
Rundungsmodus für drei Bitpositionen bewerten, um die unteren Bits zu
liefern. Das Übertragsbit 51 muß daher nur über drei
Bitstufen fortgepflanzt werden, statt über alle Stufen des
Addierers mit mitlaufendem Übertrag für die oberen Bits. Die
erfindungsgemäße Schaltung liefert daher Ergebnisse sehr viel
schneller, im wesentlichen indem das vom Addierer mit
mitlaufendem Übertrag für die unteren Bits gelieferte
Übertragsbit aus dem kritischen Pfad entfernt wird.
-
Obwohl die vorliegende Erfindung mit Bezug auf ein
bevorzugtes Ausführungsbeispiel beschrieben wurde, sei
ange
merkt, daß verschiedene Modifikationen und Abwandlungen von
Fachleuten durchgeführt werden können, ohne den
Schutzbereich der Erfindung abzuweichen. Die Erfindung sollte daher
an den folgenden Ansprüchen gemessen werden.