DE3926876C2 - Schaltung und Verfahren zum Vorhersagen eines Sticky-Bit-Wertes bei der Gleitkommamultiplikation - Google Patents
Schaltung und Verfahren zum Vorhersagen eines Sticky-Bit-Wertes bei der GleitkommamultiplikationInfo
- Publication number
- DE3926876C2 DE3926876C2 DE3926876A DE3926876A DE3926876C2 DE 3926876 C2 DE3926876 C2 DE 3926876C2 DE 3926876 A DE3926876 A DE 3926876A DE 3926876 A DE3926876 A DE 3926876A DE 3926876 C2 DE3926876 C2 DE 3926876C2
- Authority
- DE
- Germany
- Prior art keywords
- zero
- bit
- encoder
- bits
- encoders
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/74—Selecting or encoding within a word the position of one or more bits having a specified value, e.g. most or least significant one or zero detection, priority encoders
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/487—Multiplying; Dividing
- G06F7/4876—Multiplying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49942—Significance control
- G06F7/49947—Rounding
- G06F7/49952—Sticky bit
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Nonlinear Science (AREA)
- Complex Calculations (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
Die Erfindung betrifft eine Schaltung zum Vorhersagen
eines Sticky-Bit-Wertes bei der Gleitkommamultiplikation von
zwei Zahlen nach dem Oberbegriff des Anspruchs 1 sowie ein
Verfahren zur Vorhersage eines Wertes eines Sticky-Bits nach
dem Oberbegriff des Anspruchs 7.
Die Multiplikation von zwei Zahlen ist eine arithmeti
sche Grundoperation. Die Implementierung einer solchen Ope
ration in einem Computer oder in einem Prozessor bringt die
Schwierigkeit der Verwendung einer Hardware-Schaltung zur
Erzeugung des Produktes von zwei Zahlen mit sich. Da Prozes
soren als Hardware-Bauelemente, d. h. Siliziumchips reali
siert werden, spielen zusätzliche Einschränkungen eine Rolle
bei der Bestimmung der besten Schemata zum Multiplizieren
von zwei Zahlen. Unter den zahlreichen Schemata zur Multi
plikation von zwei Zahlen ist eine der bekanntesten Methoden
die Verwendung einer Baumstruktur, z. B. eines Wallace-Baums
zur Berechnung des Produkts. Immer, wenn hochgenaue Berech
nungen oder Berechnungen mit sehr großen oder kleinen Zahlen
notwendig sind; implementieren Prozessoren eine Gleitkomma-Mul
tiplikation zur Verbesserung der Leistungsfähigkeit bei
der Produktbildung.
Typischerweise werden bei einer Einrichtung zur Gleit
kommamultiplikation (engl. Gleitpunkt) die Mantissen des
Multiplikanden und des Multiplikators multipliziert, indem
eine schnelle, baumartige Multipliziereinrichtung zur Gewin
nung des Produkts verwendet wird. Es stehen verschiedene
Gleitkomma-Standards zur Verfügung, und einer der bekannte
sten ist der IEEE binäre Gleitkomma-Standard 754. Die Run
dungsanforderungen dieses Gleitkomma-Standards erfordern die
Verwendung eines Rundungsbits und eines Sticky-Bits bei der
Ausführung einer Gleitkommamultiplikation. Das Rundungsbit
ist definiert als das Bit des ungerundeten Mantissenpro
dukts, welches eine Stelle niedriger als das in der Resul
tatsmantisse benutzte niedrigste Bit ist. Das Sticky-Bit ist
definiert als die ODER-Verknüpfung aller Bits im ungerunde
ten Mantissenprodukt, die geringer bewertet als das Run
dungsbit sind. Aus US 4,758,972 A1 ist eine Gleitkomma-Arithme
tikeinheit bekannt, bei der ein Sticky-Bit (Indikator
I) bestimmt wird, um verschiedene Rundungsoperationen auszu
führen. Die existierenden bekannten Implantierungen bedingen
die Berechnung des gesamten oder eines Teils des Mantissen
produkts vor einer Berechnung des Sticky-Bits. Das bedeutet,
daß die entsprechenden Bits nach der Berechnung des Mantis
senprodukts ODER-verknüpft werden, um das Sticky-Bit zu be
stimmen.
Bei einer anderen, schneller arbeitenden Implementierung
bekannter Art wird das Sticky-Bit berechnet, während das
Produkt in mehreren Schritten berechnet wird. Diese bekannte
Methode berechnet einige am niedrigsten bewertete Bits des
Mantissenprodukts in einem ersten Taktzyklus und während
eines zweiten Taktzyklus′ werden einige der nächsten Bits
des Mantissenprodukts berechnet; die ODER-Verknüpfung der in
dem ersten Taktzyklus berechneten Mantissenproduktbits wird
während des zweiten Taktzyklus′ ausgeführt. In jedem zusätz
lichen Taktzyklus werden einige weitere Bits des Mantissen
produkts berechnet und die während des vorhergehenden Takt
zyklus′ berechneten Mantissenbits ODER-verknüpft. Es ist
kein Problem, das Sticky-Bit mit dieser Methode zu berech
nen, da einige Taktzyklen zur Berechnung des Produkts benö
tigt werden. Jedoch muß auch mit der Implementierung dieser
schnelleren Methode das Mantissenprodukt oder ein Teil des
Mantissenproduktes noch berechnet werden, bevor die
ODER-Verknüpfung zur Bestimmung des Sticky-Bits durchgeführt wer
den kann.
Offensichtlich liegt der Nachteil der bekannten Methode
darin, daß das Sticky-Bit erst nach der Berechnung des Man
tissenprodukts berechnet werden kann. Dies bedingt eine zu
sätzliche Verzögerung in der Verarbeitungsoperation, da die
Rundungsoperation nicht beginnen kann, solange das Sticky-Bit
nicht bekannt ist, und das Sticky-Bit erst bestimmt wer
den kann, wenn die untere Hälfte des Mantissenprodukts be
kannt ist.
Aufgabe der Erfindung ist es, eine Schaltung bzw. ein
Verfahren für eine Gleitkommamultiplikation zu schaffen, die
bzw. das ein Sticky-Bit vor oder während der Berechnung des
Mantissenprodukts vorhersagt.
Diese Erfindung wird erfindungsgemäß durch eine Schaltung
mit den Merkmalen des Anspruchs 1 bzw. ein Verfahren
mit den Merkmalen des Anspruchs 7 gelöst.
Die Erfindung stellt eine Schaltung und ein Verfahren
zum Vorhersagen des Werts eines Sticky-Bits bei einer Gleit
kommamultiplikation zur Verfügung. Eine Multiplikandenope
randenmantisse und eine Multiplikatoroperandenmantisse wer
den jeweils als Eingänge an einen Endnullen-Codierer
(trailing zero encoder) angelegt. Jeder Endnullen-Codierer
bestimmt die Anzahl von Endnullen in seiner entsprechenden
Mantisse. Diese Anzahl wird als Endnullen-Zählung von den
beiden Endnullen-Codierern geliefert. Die Summe der Anzahlen
der Endnullen aus jeder Operandenmantisse wird dann mit
einer Konstanten verglichen, um das Sticky-Bit zu bestimmen.
Eine besondere Schaltung für jeden der Endnullen-Codie
rer liefert den Endnullen-Zählwert. Jeder Endnullen-Codierer
besteht aus mehreren Codierern, die in mehreren Zeilen ange
ordnet sind. Die Operandenmantisse wird als Eingang an eine
erste Codierzeile angelegt, und der Ausgang jeder Codierer
zeile wird mit den Codierern einer nachfolgenden Zeile ge
koppelt. Die erste Codiererzeile liefert die am niedrigsten
bewerteten Bits der Endnullen-Zählung, und jede nachfolgende
Zeile liefert aufeinanderfolgend höher bewertete Bits der
Endnullen-Zählung, bis die letzte Zeile erreicht ist, wo der
Codierer die am höchsten bewerteten Bits der Endnullen-Zäh
lung erzeugt. Auch Multiplexer sind mit den verschiedenen
Codierern gekoppelt, um den Ausgang des Codierers mit dem am
niedrigsten bewerteten Nicht-Null-Bit auszuwählen.
Im folgenden wird die Erfindung anhand von in der Zeich
nung dargestellten Ausführungsbeispielen näher erläutert. In
der Zeichnung zeigen:
Fig. 1 ein Diagramm einer Multiplikationsoperation
von zwei Operandenmantissen und einem resul
tierenden Produkt;
Fig. 2 ein Diagramm einer Ableitung einer Endnullen-Zäh
lung durch Summation von Endnullen in den
Operandenmantissen;
Fig. 3 ein Blockschaltbild einer Sticky-Bit-Vorher
sage-Schaltung gemäß einem bevorzugten Aus
führungsbeispiel der Erfindung;
Fig. 4 ein Blockschaltbild eines Bestandteil des
Ausführungsbeispiels gemäß Fig. 3 bildenden
Endnullen-Codierers; und
Fig. 5 ein Blockschaltbild einer alternativen Aus
führungsform einer Sticky-Bit-Vorhersage-Schal
tung.
Beschrieben wird eine Schaltung und ein Verfahren zum
Vorhersagen des Sticky-Bits bei einer Gleitkommamultiplika
tion.
In Fig. 1 ist eine Multiplikationsoperation von zwei
Zahlen X und Y gezeigt. Die erste Zahl X ist der Multipli
kand, und die zweite Zahl Y ist bei diesem Beispiel der Mul
tiplikator. Beide Zahlen X und Y haben bei diesem Beispiel
acht numerische Stellen. Sowohl X als auch Y sind normierte
Zahlen, da sie größer als oder gleich Eins und kleiner als
Zwei sind. Wenn X₀-X₆ alles Nullen wären, so wäre X exakt
gleich Eines. Wenn X₀-X₆ ausschließlich aus Einsen bestün
den, so wäre X etwas kleiner als Zwei. Der Bereich möglicher
Werte von X kann durch die Notation [1, 2) beschrieben wer
den, wobei die eckige Klammer angibt, daß 1 in das Intervall
einbezogen ist, und die runde Klammer angibt,daß 2 in das
Intervall nicht einbezogen ist.
Wenn die Multiplikationsoperation an diesen beiden Zah
len X und Y durchgeführt wird, so wird ein Produkt Z gewon
nen. Das Produkt Z hat 16 numerische Stellen. Da X und Y im
Bereich [1, 2) liegen, ist das Produkt von X und Y im Bereich
von [1, 4). Das am höchsten bewertete Bit des Produkts aus X
und Y, Z₁₅ in diesem Beispiel, bestimmt, ob das Produkt im
Intervall [1, 2) oder im Bereich [2, 4) liegt. Wenn Z₁₅ = 0 ist,
so ist das Produkt Z im Bereich [1, 2). Wenn Z₁₅ = 1 ist, so
ist das Produkt im Bereich [2, 4).
Wenn das Produkt Z bestimmt wird, wird typischerweise
nur der obere Mantissenteil des Produkts benutzt. Wenn bei
spielsweise X und Y durch 8 Ziffern-Positionen 0-7 darge
stellt sind, so hat auch das Produkt 8 Ziffern-Positionen.
Außerdem ist das Produkt Z typischerweise eine normierte
Zahl, so daß die Bits des ungerundeten Produkts entweder
Z₈-Z₁₅ oder Z₇-Z₁₄ sind,
je nach dem ob Z₁₅ Eins ist. Das am höchsten bewertete Bit
einer normalisierten Zahl muß Eins sein. Die untere Hälfte der
Mantisse, entweder Z₇-Z₀ oder Z₆-Z₀ sind in dem
aktuellen Produkt nicht repräsentiert. Das am höchsten bewertete
Bit der unbenutzten Ziffern wird als Rundungsbit bezeichnet.
Das Sticky-Bit ist die ODER-Verknüpfung aller Bits, die nie
driger als das Abrundungsbit bewertet sind. Wenn Z₁₅ Null
ist, ist das Rundungsbit Z₆ und das Sticky-Bit wäre die
ODER-Verknüpfung von Bits Z₀-Z₅. Wenn Z₁₅ Eins ist, wäre
das Rundungsbit Z₇ und Sticky-Bit wäre die ODER-Verknüpfung
von Bits Z₀-Z₆.
Das Rundungsbit und das Sticky-Bit bestimmen, ob der obere
Teil des Mantissenprodukts entweder inkrementiert oder ungeän
dert gelassen wird, um die Rundungsoperation durchzuführen. So
wird beispielsweise bei dem Modus der Positivrundung nach
Unendlich gemäß IEEE Fließ-Standard 754 der obere Teil des
Mantissenprodukts inkrementiert, wenn das Produkt positiv und
entweder das Rundungsbit oder das Sticky-Bit Eins ist. Eine
Eins des Sticky-Bits bedeutet, daß das exakte Mantissenprodukt
(Z₀-Z₁₅) größer als der obere Teil des Mantissenprodukts
ist. Daher muß bei der Rundung in Richtung Positiv-Unendlich
der obere Teil des Mantissenprodukts inkrementiert werden,
wenn das Resultat positiv ist und das Sticky-Bit Eins ist.
Wie in der Beschreibungseinleitung gesagt, bedingen bekannte
Methoden eine Lösung des Produkts vor der Bestimmung des
Sticky-Bits. Dies bedeutet, daß die niedriger als das Run
dungsbit bewerteten Bits nur durch tatsächliche Durchführung
der gesamten oder eines Teils der Multiplikation berechnet
werden kann. Die Erfindung sagt das Sticky-Bit aus der Operan
denmantisse unter der Annahme voraus, daß das Mantissenprodukt
im Bereich [1, 2) ist. Diese Vorhersage des Sticky-Bits ge
schieht parallel zur Berechnung des Mantissenprodukts.
Im folgenden wir auf Fig. 2 Bezug genommen. Die Erfindung
zieht in Betracht, daß die Anzahl von Endnullen in einem Pro
dukt gleich der Summe der Endnullen im Multiplikanden und im
Multiplikator ist. Ein hypothetisches Beispiel ist in Fig. 2
gezeigt. Wenn X 5 Endnullen und Y 4 Endnullen hat, so hat das
Produkt insgesamt 9 (5 + 4) Endnullen. Da das Sticky-Bit die
ODER-Verknüpfung der Bits Z₀-Z₅ ist (unter der Annahme,
daß das Mantissenprodukt im Bereich [1, 2)) liegt, so wird
das Sticky-Bit Null, wenn das Mantissenprodukt 6 oder mehr
Nullen hat. Da das Mantissenprodukt bei diesem Beispiel 9
Nullen hat, so ist das Sticky-Bit Null. Daher kann der Wert
des Sticky-Bits durch Zählen der Anzahl von Endnullen in den
Multiplikanden und Multiplikatormantissen und Vergleichen der
Summe von Endnullen mit einer Konstanten vorhergesagt werden.
Diese Vorhersage läßt sich mit Hilfe einer separaten Schaltung
treffen, während die beiden Zahlen unter Verwendung herkömmli
cher Technologie multipliziert werden, so daß die Parallelbe
stimmung des Sticky-Bits mit der Multiplikation der beiden
Zahlen erreicht wird. Es ist daher Zweck der Erfindung, den
Sticky-Bit-Wert durch Bestimmung der Gesamtzahl von Endnullen
im Multiplikanden und Multiplikator vorherzusagen. Dies bedeu
tet, daß das Sticky-Bit aus den Operandenmantissen abgeleitet
wird, anstatt aus einer ODER-Verknüpfung der Bits des niedri
geren Mantissenprodukts.
In Fig. 3 ist ein Blockschaltbild der erfindungsgemäßen Schal
tung gezeigt. Schaltung 10 weist Endnullen-Codierer 11 und 12
auf. Der Endnullen-Codierer 11 ist so geschaltet, daß er die
Multiplikandenmantissen als Eingänge aufnimmt, während der
Codierer 12 so geschaltet ist, daß er die Multiplikatormantis
sen als Eingänge aufnimmt. Jeder der Codierer 11 und 12 be
stimmt die Anzahl von Endnullen in seiner zugehörigen Operan
denmantisse. Ausgangsseitig sind die beiden Codierer 11 und 12
mit einem Übertragssicherungsaddierer (carry save adder) 13
gekoppelt, in welchem ein Ausgang jedes der Codierer 11 und 12
die Anzahl von Endnullen in seiner Operandenmantisse liefert.
Der Übertragssicherungsaddierer 13 erhält an einem weiteren
Eingang eine Konstante. Die Konstante ist so gewählt, daß sie
einen Übertrag am Ausgang einer Übertragsvorausschauschaltung
16 für den Fall ausgibt, daß das Sticky-Bit eine Null ist. Der
Übertragssicherungsaddierer 13 liefert zwei Zahlen (C und S),
deren Summe gleich der Summe seiner drei Eingangsgrößen ist.
Die Operation eines Übertragssicherungsaddierers ist bei
spielsweise aus Introduction to Arithmetric for Digital Sy
stems Designers von Shlomo Waser und Michael Flynn, 1982,
Seiten 103, 104, bekannt.
Die beiden Ausgänge des Übertragssicherungsaddierers 13 sind
mit einer Übertragsvorausschauschaltung 16 gekoppelt, die
daraus das Sticky-Bit bestimmt. Wenn beispielsweise die Ope
randenmantissen entsprechend der Darstellung in Fig. 1
8-Bit-Zahlen wären, so wäre das Sticky-Bit Null, wenn die Summe der
Endnullen-Zählwerte größer als oder gleich 6 wäre. Bei diesem
Beispiel könnte eine Konstante von 10 zur Summe der Endnullen-Zähl
werte addiert werden. Die Übertragsvorausschauschaltung
würde bestimmen, ob die Summe der beiden Endnullen-Zählwerte
und der Konstanten 10 größer als oder gleich 16 ist. Wenn die
Summe dieser drei Zahlen größer als oder gleich 16 ist, so ist
das Sticky-Bit Null.
Zweck des Übertragssicherungsaddierers 13 und der Übertrags
vorausschauschaltung 16 ist die Feststellung, ob die Summe der
beiden Endnullen-Zählwerte größer als seine Konstante ist.
Diese Funktion kann, wie der Fachmann weiß, durch verschiedene
abgewandelte Schaltungen realisiert werden. Eine Abwandlung
ist in Fig. 5 gezeigt. Es ist jedoch klar, daß die Erfindung
nicht auf die beiden hier anhand der Fig. 3 und 5 beschriebe
nen Ausführungsbeispiele beschränkt ist.
In Fig. 5 ist ein alternatives Ausführungsbeispiel der Schal
tung zum Vorhersagen des Sticky-Bits gezeigt. Die Ausgänge der
beiden Endnullen-Codierer, wie die Codierer 11 und 12 in Fig.
3, werden an einen Addierer 47 angelegt, der die Gesamtzählung
der Nullen addiert und das an seinem Ausgang erscheinende
Ergebnis an einen Komparator 48 anlegt. Der Komparator ist
außerdem so angeordnet, daß er eine Konstante als weiteren
Eingang erhält. Der Ausgang des Komparators liefert den
Sticky-Bit-Wert. Für das Beispiel gemäß Fig. 1 wäre die Kon
stante in der Schaltung gemäß Fig. 5 eine 6. Der Komparator
würde das Sticky-Bit zu Null machen, wenn die Summe der End
nullen-Zählungen aus dem Addierer 47 größer als oder gleich 6
ist.
In Fig. 4 ist eine Schaltung 20 zur Bestimmung der Endnullen-Zäh
lung gezeigt. Die Schaltung 20 ist in jedem der Endnullen-Co
dierer 11 und 12 in Fig. 3 vorhanden. Das erste Niveau der
Schaltung 20 besteht aus mehreren Codierern 21-1 zur Aufnahme
einer der Operandenmantissen als Eingangssignal. 13 Codierer
21-1 sind gezeigt, wobei jeder Codierer 4 unterschiedliche
Bits der Mantisse aufnimmt. Insgesamt 13 Codierer 21 sind
vorgesehen, um eine 52-Bit-Operandenmantisse aufzunehmen, da
der Prozessor bei dem beschriebenen Ausführungsbeispiel so
konstruiert ist, daß er eine 52-Bit-Operandenmantisse für die
Fließpunktmultiplikation verarbeitet. Obwohl eine spezielle
Anzahl von Bits bei diesem Beispiel als Operandenmantisse
vorgesehen ist, ist es klar, daß die Zahl der die Operanden
mantisse bildenden Bits ein Konstruktionsparameter ist, der
von der tatsächlichen Prozessorausbildung abhängig ist.
Jeder Codierer nimmt eingangsseitig 4 Bits auf und erzeugt
eine 2-Bit-Ausgabe sowie ein Setzsignal. Das Setzsignal aus
jedem Codierer 21 ist das Resultat der ODER-Verknüpfung seiner
4 Eingänge. Wenn alle 4 Eingänge Null sind, so ist das Setz
signal ebenfalls Null. Wenn jedoch wenigstens einer der 4
Eingänge des Codierers 21 den Wert von 1 hat, so hat auch das
Setzsignal einen Wert von 1. Wenn das Setzsignal eine 1 ist,
so liefern die anderen beiden Ausgangsleitungen des Codierers
21 einen Code zur Identifizierung der Bitposition der ersten
1, die zu berücksichtigen ist. Verschiedene bekannte Codierer
können zur Erfüllung der Funktion des Codierers 21 verwendet
werden; ein derartiger Codierer wird von der Firma Taxas In
struments, Inc. unter der Bauteilnummer 74148 angeboten.
Wenn als hypothetisches Beispiel 21 Endnullen bei einer vorge
gebenen Operandenmantisse vorhanden sind, so tritt das erste
1-Bit an der Bitposition 22 auf (die auch mit dem Bezugszei
chen 22 bezeichnet ist), so daß der aus dem Codierer 23 kom
mende Setzwert eine 1 ist, und die Ausgabe des Codierers 23
einen Wert von beispielweise 01 hat, um zu kennzeichnen, daß
sein zweiter Eingang die vom Codierer 23 festgestellte erste
führt. Wenn Bit 22 einen Wert von 1 hat, so sind die nachfol
genden Bitwerte für die Bestimmung der Endnullen-Zählung ohne
Bedeutung. Bei diesem Beispiel hat der Setzsignalwert der
niedriger als der Codierer 23 bewerteten anderen Codierer
einen Wert von 0, so daß die Ausgabe aus diesen Codierern der
Bedingung "unbeachtlich" unterliegt.
Mehrere Codierer 21-2 sind auf einem zweiten Niveau vorgesehen
und nehmen die Setzsignale aus den Codierern 21-1 des Niveaus
als Eingänge auf. Da die Codierer 21-2 den Codierern 21-1
des Niveaus 1 äquivalent sind, sind sie ebenfalls so ausgebil
det, daß sie vier Eingänge bzw. Eingaben aufnehmen und ein
Setzsignal sowie den Positionscode zur Bezeichnung der Posi
tion des ersten Setzsignals des Niveaus 1 mit einem Wert 1
erzeugen. Drei Codierer 21-2 werden auf dem Niveau 2 verwen
det, wobei Setzsignale aus 12 der Codierer 21-1 des Niveaus 1
als Eingangssignale an die Codierer 21-2 des Niveaus 2 ange
legt werden. Die tatsächlich Anzahl von Codierern 21, die in
den verschiedenen Niveaus verwendet werden, hängt natürlich
von der aktuellen Anzahl von Bits der Operandenmantisse ab.
Die Setzsignale aus den Niveau-2-Codierern 21-2 werden an
einen Niveau-3-Codierer 21-3 angelegt. Der verbleibende Codie
rer des Niveaus 1 (die 13te Codiererposition) ist mit dem
vierten Eingang des Codierers 21-3 des Niveaus 3 gekoppelt.
Ein Niveau-2-Codierer ist für diesen 13ten Codierer des Ni
veaus 1 nicht notwendig, da er ein Einzelcodierer ist, wenn
die Codierer 21-1 jeweils in Vierergruppen unterteilt sind.
Selbstverständlich müßte ein Niveau-2-Codierer bei Vorhanden
sein eines weiteren Codierers auf dem Niveau 1 für die 13ten
und 14ten Codierer des Niveaus 1 verwendet werden. Zu beachten
ist, daß die verschiedenen Codierer auf den verschiedenen
Niveaus so angeordnet sind, daß die Codierer mit den höher
bewerteten Bitpositionen als Eingänge der höher bewerteten
Eingabeposition mit dem Codierer des nächsten Niveaus gekop
pelt sind. Dies ist notwendig, um die relative Position des
ersten Mantissenbits mit dem Wert von 1 aufrechtzuerhalten, da
dieses Bit die Tatsache umsetzt, daß alle niedriger als dieses
erste Bit bewerteten Bits einen Wert von 0 haben.
Zwei Niveaus von Vier-zu-Eins Multiplexern (MUX) 25 werden zur
Auswahl der geeigneten Codiererausgabe verwendet. In der
Schaltung 20 ist ein Vier-zu-Eins MUX 25-2 für jeden Codierer
des Niveaus 2 vorgesehen. Der Ausgang jedes Codiererniveaus 1
ist entsprechend dem zugehörigen Codierer 21-2 mit dem MUX
25-2 gekoppelt. Geeignete Steuersignale (CTL) werden vom zuge
hörigen Codierer 21-2 an den entsprechenden MUX 25-2 angelegt,
um den Ausgang des Niveau-1-Codierers auszuwählen, der den
ersten Setzwert von 1 hat. Daher ist für das obige Beispiel,
bei dem das erste Einzelbit an der Bitposition 22 auftritt,
das Ausgangssignal dieses Codierers 23 über den MUX 25-2 ge
koppelt, der dem Codierer 23 zugeordnet ist.
Der dem Codierer 21-3 auf dem dritten Niveau zugeordnete MUX
25-3 erhält Eingangssignale direkt aus dem Niveau-2-Codierer
21-2 und auch von entsprechenden Niveau-1-Codierern 21-1 über
die dem Niveau-2-Codierer zugeordneten Multiplexer 25-2. Auch
der am höchsten bewertete Codierer des Niveaus 1 ist ausgangs
seitig mit dem Multiplexer 25-3 gekoppelt. Da es keinen Ni
veau-2-Codierer in Zuordnung zu dem am höchsten bewerteten
Codierer des Niveaus 1 gibt, werden zwei Nullen, entsprechend
der Darstellung in Fig. 4, in den MUX 25-3 eingegeben. Der
Ausgang des Codierers 21-3 des Niveaus 3 liefert die am höch
sten bewerteten Bits für die Endnullen-Zählung, während der
dem Niveau-3-Codierer 21-3 zugeordnete Vier-zu-Eins-MUX 25-3
die beiden Bitpaare liefert, die auch die Endnullen-Zählung
bestimmen. Steuer (CTL)-Leitungen von Muttercodierern 21 sind
mit den Multiplexern 25 verbunden und liefern Steuersignale an
die Multiplexer 25.
Von den die Endnullen-Zählung bestimmenden sechs Bits bestim
men die beiden am höchsten bewerteten Bits, welche der vier
Gruppen von Niveau-1-Codierern das erste 1-Bit (am niedrigsten
bewerteter 1-Bitwert) in der Operandenmantisse hat. Die mitt
leren beiden Bits bezeichnen den Codierer 21-1 im Niveau 1,
der das am niedrigsten bewertete 1-Bit hat. Schließlich kenn
zeichnen die am niedrigsten bewerteten beiden Bits, welches
Bit des ausgewählten Codierers 21-1 des Niveaus das am nie
drigsten bewertete 1-Bit hat. Daher bestimmen die sechs Lei
tungen das Bit, das das am niedrigsten bewertete 1-Bit in der
Operandenmantisse ist. Alle niedrigeren Bits als das am nie
drigsten bewertete 1-Bit haben einen Wert von 0.
Es ist einleuchtend, daß bei einer anderen Bitzahl in der
Operandenmantisse als bei dem beschriebenen Beispiel weniger
oder mehr Schaltungskomponenten in der Anordnung gemäß Fig. 4
benötigt werden. Die tatsächliche Zahl von Niveaus sowie die
Anzahl von Codierern 21 und Multiplexern 25 auf jedem der
Niveaus werden durch die tatsächliche Anzahl von Bits in der
Operandenmantisse und durch die Art der verwendeten Codierer
und Multiplexer bestimmt.
Durch Vorhersagen des Sticky-Bits mit Hilfe der Mittel der
vorliegenden Erfindung wird die Berechnung des Sticky-Bits aus
der kritischen Phase der Multiplikationsoperation entfernt, so
daß das Sticky-Bit bereits zur Verfügung steht, wenn das End
produkt berechnet wird. Die Verwendung der Parallelverarbei
tung zur Vorhersage des Sticky-Bits ist bei Prozessoren kri
tisch, welche die Gleitpunktmultiplikation in einer kurzen
Anzahl von Taktzyklen oder sogar in einem Taktzyklus durchfüh
ren. In der beschriebenen Implementierung wird der Sticky-Bit-Prä
diktor in einem Prozessor verwendet, der eine neue Multi
plikation mit einfacher Genauigkeit in einem Einzeltakt und
eine Multiplikation mit doppelter Präzision in zwei Taktzyklen
zu beenden vermag. Die Latenz der Einzel- und Doppelpräzi
sionsmultiplikation mit dem die Erfindung benutzenden numeri
schen Prozessor ist 3 bzw. 4 Takte.
Wie weiter oben erläutert, sagt der Sticky-Bit-Prädiktor das
Sticky-Bit unter der Annahme voraus, daß das Mantissenprodukt
im Bereich [1, 2) liegt. Um das Sticky-Bit für den Mantissen
produktbereich [2, 4) zu ermitteln, könnte ein Vergleich der
Summe der Endnullen-Zählungen mit einer anderen Konstante
vorgenommen werden. Ein anderer Weg zur Ermittlung des
Sticky-Bits für den Mantissenbereich [2, 4) ist die ODER-Ver
knüpfung des Sticky-Bits für den Bereich [1, 2) mit dem Run
dungsbit für den Bereich [1, 2). In Anwendung der Erfindung
wird dieser zweite Weg gewählt. Zwei 8-Bit Übertragsvoraus
schauschaltungen dienen zur Bestimmung des Bereichs des Man
tissenprodukts und des Abrundungsbits in 99,6% der Operati
onen. Wenn diese Übertragsvorausschauschaltungen weder den
Bereich noch das Rundungsbit bestimmen können, werden zwei
extra Taktzyklen zur Durchführung dieser Berechnungen verwen
det.
In dem Normalfall, daß das Sticky-Bit und das Rundungsbit
ausreichend rasch berechnet werden, so daß eine einzelne Über
tragsaddierung zur Durchführung sowohl der Rundung als auch
der Addierung der beiden Zahlen verwendet werden kann, deren
Summe der obere Abschnitt des Mantissenprodukts ist. Der
Sticky-Bit-Prädiktor macht es möglich, das Mantissenprodukt
parallel mit einer Berechnung dafür durchzuführen, ob der
obere Abschnitt des Mantissenprodukts für die Rundung inkre
mentiert werden soll.
Es ist klar, daß auch verschiedene andere Anordnungen zur
Bestimmung der Anzahl von Endnullen verwendet werden können
und daß der Endnullen-Codierer in der Ausführung gemäß Fig. 4
nur ein mögliches Schaltungsschema zum Zählen der Anzahl von
Endnullen darstellt.
Claims (9)
1. Schaltung zum Vorhersagen eines Sticky-Bit-Wertes bei
der Gleitkomma-Multiplikation von zwei Zahlen, wobei das
Sticky-Bit als ODER-Verknüpfung von niedriger als das Run
dungsbit bewerteten Bits eines Produkts der beiden aus einem
Multiplikanden und einem Multiplikator bestehenden Operan
denmantissen definiert ist,
dadurch gekennzeichnet,
daß ein erster Endnullen-Codierer (11) zur Bestimmung
einer Anzahl von Endnullen in einer ersten Operandenmantisse
und ein zweiter Endnullen-Codierer (12) zur Bestimmung einer
Anzahl von Endnullen in einer zweiten Operandenmantisse vor
gesehen sind, und daß den beiden Codierern (11, 12) ein
Addierer (13; 47) derart nachgeschaltet ist, daß er die Aus
gangssignale der ersten und zweiten Endnullen-Codierer auf
nimmt und eine Summe aus den Ausgangssignalen zur Bestimmung
der Gesamtzahl von Endnullen in beiden Operandenmantissen
bildet, und daß eine Komparatoreinrichtung (16; 48) mit dem
Addierer (47) zur Bestimmung des Sticky-Bit-Wertes gekoppelt
ist.
2. Schaltung nach Anspruch 1, dadurch gekennzeichnet,
daß der Addierer aus einem Übertragssicherungsaddierer
(13) besteht.
3. Schaltung nach Anspruch 1 oder 2, dadurch gekenn
zeichnet, daß die Komparatoreinrichtung als Übertragsvor
hersageschaltung (16) ausgebildet ist.
4. Schaltung nach einem der Ansprüche 1 bis 3, dadurch
gekennzeichnet, daß die Komparatoreinrichtung (16; 48) so
ausgebildet und angeordnet ist, daß sie die Summe der Ge
samtzahl von Endnullen der Operandenmantissen mit einer Kon
stanten vergleicht und den Sticky-Bit-Wert in Abhängigkeit
davon bestimmt, ob die Summe größer als die Konstante ist.
5. Schaltung nach Anspruch 4, dadurch gekennzeichnet,
daß die Endnullen-Codierer (11, 12) mehrere Zeilen mit je
weils wenigstens einem Codierer (21-1, 21-2, 21-3) aufwei
sen, und daß die Codierer eine am niedrigsten bewertete Bit
position einer Operandenmantisse mit einem von Null abwei
chenden Wert bestimmen, wobei alle Bits, die niedriger sind
als dieses am niedrigsten bewertete Nicht-Null-Bit einen
Wert von Null haben.
6. Schaltung nach Anspruch 5, dadurch gekennzeichnet,
daß die Codierer einer ersten Zeile (21-1) die Operandenman
tisse aufnehmen und eine Ausgabe zur Bestimmung der am
niedrigsten bewerteten Bits einer Endnullen-Zählung erzeu
gen, die die Anzahl von Endnullen ergibt, daß Codierer aus
jeder Zeile gruppiert und mit Codierern (21-2, 21-3) einer
nachfolgenden Zeile gekoppelt sind, wobei die Ausgabe aus
jeder nachfolgenden Codiererzeile aufeinanderfolgend höher
bewertete Bits der Endnullen-Zählung ergibt und daß ein Co
dierer (21-3) einer letzten Zeile die am höchsten bewerteten
Bits der Endnullen-Zählung erzeugt.
7. Verfahren für eine Schaltung bei der Gleitkomma-Mul
tiplikation zur Vorhersage eines Wertes eines Sticky-Bits,
das definiert ist als ODER-Verknüpfung von niedriger als das
Rundungsbit bewerteten Bits eines Produkts aus einer Multi
plikandenoperandenmantisse und einer Multiplikatoroperanden
mantisse, die bei der Durchführung einer Gleitkomma-Multi
plikationsoperation multipliziert werden,
dadurch gekennzeichnet,
daß zur Bestimmung einer Anzahl von Endnullen in jewei
ligen Operandenmantissen Endnullen-Codierer für jede Operan
denmantisse bereitgestellt werden, daß die Operandenmantis
sen in die zugehörigen Endnullen-Codierer eingegeben werden,
daß in jedem der Endnullen-Codierer ein am niedrigsten be
wertetes
Nicht-Null-Bit der zugehörigen Operandenmantisse bestimmt wird, daß
aus jedem Endnullen-Codierer ein Zählwert einer Anzahl von
Bits gebildet wird, die niedriger als das niedrigste
Nicht-Null-Bit sind, wobei der Zählwert eine Anzahl von Endnullen
der zugehörigen Operandenmantisse ist, daß die Zahlen der
Endnullen der beiden Mantissen zur Bildung einer Summe addiert
werden und daß die Summe mit einer Konstanten verglichen wird,
um den Wert des Sticky-Bits zu bestimmen.
8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, daß
die Addition der beiden Endnullen-Zählwerte und der Vergleich
mit einer Konstanten so durchgeführt werden, daß zunächst die
beiden Endnullen-Zählwerte an zwei Eingänge und eine Konstante
an einen dritten Eingang eines Übertragssicherungsaddierers
angelegt werden, wobei die Konstante so gewählt wird, daß das
am höchsten bewertete Bit der Summe der beiden Ausgangssignale
des Übertragssicherungsaddierers dann und nur dann einen Wert
von 1 hat, wenn das Sticky-Bit Null ist, und daß die beiden
Ausgänge des Übertragssicherungsaddierers an eine Schaltung
angelegt werden, die feststellt, ob das am höchsten bewertete
Bit der Summe der beiden Ausgänge des Übertragssicherungs
addierers Eins ist.
9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, daß
als Bestimmungsschaltung eine Übertragsvorhersageschaltung
verwendet wird.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/248,740 US4928259A (en) | 1988-09-23 | 1988-09-23 | Sticky bit predictor for floating-point multiplication |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3926876A1 DE3926876A1 (de) | 1990-03-29 |
DE3926876C2 true DE3926876C2 (de) | 1996-08-14 |
Family
ID=22940472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE3926876A Expired - Fee Related DE3926876C2 (de) | 1988-09-23 | 1989-08-16 | Schaltung und Verfahren zum Vorhersagen eines Sticky-Bit-Wertes bei der Gleitkommamultiplikation |
Country Status (5)
Country | Link |
---|---|
US (1) | US4928259A (de) |
JP (1) | JP2676410B2 (de) |
KR (1) | KR0138903B1 (de) |
DE (1) | DE3926876C2 (de) |
GB (1) | GB2223111B (de) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5212661A (en) * | 1989-10-16 | 1993-05-18 | Matsushita Electric Industrial Co., Ltd. | Apparatus for performing floating point arithmetic operation and rounding the result thereof |
US5128889A (en) * | 1990-02-22 | 1992-07-07 | Matsushita Electric Industrial Co., Ltd. | Floating-point arithmetic apparatus with compensation for mantissa truncation |
US5113364A (en) * | 1990-10-29 | 1992-05-12 | Motorola, Inc. | Concurrent sticky-bit detection and multiplication in a multiplier circuit |
US5218564A (en) * | 1991-06-07 | 1993-06-08 | National Semiconductor Corporation | Layout efficient 32-bit shifter/register with 16-bit interface |
CA2122139C (en) * | 1991-10-24 | 2000-08-29 | David Leroy Sprague | Data processing system |
US5361370A (en) * | 1991-10-24 | 1994-11-01 | Intel Corporation | Single-instruction multiple-data processor having dual-ported local memory architecture for simultaneous data transmission on local memory ports and global port |
US5260889A (en) * | 1992-03-31 | 1993-11-09 | Intel Corporation | Computation of sticky-bit in parallel with partial products in a floating point multiplier unit |
US5359548A (en) * | 1992-04-15 | 1994-10-25 | Fujitsu Limited | Floating-point arithmetic system having multiple-input addition and subtraction means |
US5568410A (en) * | 1994-09-29 | 1996-10-22 | International Business Machines Corporation | Method and apparatus for determining the amount of leading zeros or ones in a binary data field |
US5867722A (en) * | 1995-04-25 | 1999-02-02 | United Microelectronics Corporation | Sticky bit detector for a floating-point processor |
US5742537A (en) * | 1995-06-30 | 1998-04-21 | Wolrich; Gilbert M. | Fast determination of floating point sticky bit from input operands |
JPH09204295A (ja) * | 1996-01-29 | 1997-08-05 | Kofu Nippon Denki Kk | スティッキービット検出回路 |
US6044391A (en) * | 1997-06-25 | 2000-03-28 | Sun Microsystems, Inc. | Method of generating the sticky-bit from the input operands |
US5944773A (en) * | 1997-06-25 | 1999-08-31 | Sun Microsystems, Inc. | Floating-point multiplier circuit for generating the sticky-bit from the input operands |
JP3418711B2 (ja) * | 1998-12-25 | 2003-06-23 | 富士通株式会社 | スティッキービット値予測回路及びこれを備えた半導体装置 |
TW569090B (en) * | 2001-07-17 | 2004-01-01 | Taiwan Semiconductor Mfg | Priority address encoder and method of the same |
EP1739547A1 (de) * | 2005-07-01 | 2007-01-03 | STMicroelectronics (Research & Development) Limited | Ausführen von Abrundung in einer aritmetischen Operation |
US20230359436A1 (en) * | 2022-05-05 | 2023-11-09 | SiFive, Inc. | Floating-point multiplier using zero counters |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4270167A (en) * | 1978-06-30 | 1981-05-26 | Intel Corporation | Apparatus and method for cooperative and concurrent coprocessing of digital information |
US4338675A (en) * | 1980-02-13 | 1982-07-06 | Intel Corporation | Numeric data processor |
US4484259A (en) * | 1980-02-13 | 1984-11-20 | Intel Corporation | Fraction bus for use in a numeric data processor |
US4748575A (en) * | 1984-12-21 | 1988-05-31 | Zilog, Inc. | Circuit for detecting trailing zeros in numbers |
US4758972A (en) * | 1986-06-02 | 1988-07-19 | Raytheon Company | Precision rounding in a floating point arithmetic unit |
-
1988
- 1988-09-23 US US07/248,740 patent/US4928259A/en not_active Expired - Lifetime
-
1989
- 1989-04-26 GB GB8909516A patent/GB2223111B/en not_active Expired - Fee Related
- 1989-08-16 DE DE3926876A patent/DE3926876C2/de not_active Expired - Fee Related
- 1989-08-17 KR KR1019890011710A patent/KR0138903B1/ko not_active IP Right Cessation
- 1989-08-29 JP JP1220508A patent/JP2676410B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US4928259A (en) | 1990-05-22 |
GB8909516D0 (en) | 1989-06-14 |
JPH02115928A (ja) | 1990-04-27 |
KR900005284A (ko) | 1990-04-13 |
GB2223111A (en) | 1990-03-28 |
DE3926876A1 (de) | 1990-03-29 |
KR0138903B1 (ko) | 1998-06-15 |
GB2223111B (en) | 1992-07-22 |
JP2676410B2 (ja) | 1997-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3926876C2 (de) | Schaltung und Verfahren zum Vorhersagen eines Sticky-Bit-Wertes bei der Gleitkommamultiplikation | |
DE69327996T2 (de) | Verfahren zur Feststellung eines nullwertigen Ergebnisses als Folge einer arithmetischen oder logischen Berechnung und Schaltung hierfür | |
DE19540102C2 (de) | Verfahren und Gleitkomma-Recheneinheit mit einer Logik für eine Vierfach-Präzisions-Arithmetik | |
DE68924477T2 (de) | Gleitkommaeinheit mit gleichzeitiger Multiplikation und Addition. | |
DE2616717C2 (de) | Digitales Addierwerk | |
EP0079471B1 (de) | Schaltungsanordnung und Verfahren zur Bildung von Skalarprodukten und Summen von Gleitkommazahlen mit maximaler Genauigkeit | |
DE69132517T2 (de) | Gleitkommaprozessor | |
DE3486211T2 (de) | Kodebestimmung mit einem auf Halbaddierer basierten Operandenvergleicher. | |
DE3910863C2 (de) | ||
DE3927009A1 (de) | Addierschaltung | |
DE2658248C2 (de) | ||
DE10105945A1 (de) | Linearsummierungsmultipliziererarrayimplementie-rung sowohl zur vorzeichenbehafteten als auch zur vorzeichenlosen Multipliaktion | |
EP0049216B1 (de) | Rechenwerkeinheit mit einer parallelen bidirektionalen Schiebeeinrichtung | |
DE69032890T2 (de) | Verfahren und Gerät zur Ausführung der Quadratwurzelfunktion mit Hilfe eines Multiplizierers rechteckigen Seitenverhältnisses | |
DE2946846A1 (de) | Rundungs-korrekturlogik fuer multiplizierer fuer modifizierten booth-algorithmus | |
DE3886194T2 (de) | Vorrichtung und verfahren zum verwenden einer einzelübertragskette für führende "eins"-detektierung und für "sticky" bit-berechnung. | |
DE19781794C2 (de) | Verfahren und Einrichtung zur Division von Gleitkomma- oder ganzen Zahlen | |
DE69903866T2 (de) | Multiplizierer mit niedriger Leistung für CPU und DSP | |
DE2405858A1 (de) | Normalisierendes verschiebezaehlernetzwerk | |
DE69030169T2 (de) | Hochleistungsaddierer mit Carry-Vorhersage | |
DE69230520T2 (de) | Verfahren und Anordung zur Erzeugung von Summeinformation-/Rundungskontrolle-Signal | |
DE69225638T2 (de) | Abrundungsschaltung in einem Gleitkommamultiplizierer | |
DE3132611C2 (de) | ||
DE3889746T2 (de) | Zähler. | |
EP0256455B1 (de) | Verfahren zur schnellen Division langer Operanden in Datenverarbeitungsanlagen und Schaltungsanordnung zur Durchführung des Verfahrens |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |