DE3700323C2 - - Google Patents
Info
- Publication number
- DE3700323C2 DE3700323C2 DE3700323A DE3700323A DE3700323C2 DE 3700323 C2 DE3700323 C2 DE 3700323C2 DE 3700323 A DE3700323 A DE 3700323A DE 3700323 A DE3700323 A DE 3700323A DE 3700323 C2 DE3700323 C2 DE 3700323C2
- Authority
- DE
- Germany
- Prior art keywords
- input
- circuit
- exponent
- signal
- output
- 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/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/485—Adding; Subtracting
-
- 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/50—Adding; Subtracting
- G06F7/505—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
- G06F7/509—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators
- G06F7/5095—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators word-serial, i.e. with an accumulator-register
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/3808—Details concerning the type of numbers or the way they are handled
- G06F2207/3832—Less usual number representations
- G06F2207/3836—One's complement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/386—Special constructional features
- G06F2207/3884—Pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/49905—Exception handling
- G06F7/4991—Overflow or underflow
- G06F7/49915—Mantissa overflow or underflow in handling floating-point numbers
-
- 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/49936—Normalisation mentioned as feature only
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Nonlinear Science (AREA)
- Complex Calculations (AREA)
Description
Die Erfindung betrifft eine Gleitpunktzahlenakkumulatorschaltung
gemäß dem Oberbegriff des Patentanspruchs 1.
Eine Gleitpunktzahlenakkumulatorschaltung entsprechend dem
Oberbegriff des Patentanspruchs 1 ist aus der DE 15 49 478
bekannt. Nachteilig bei dieser Schaltung ist die vergleichbar
niedrige Arbeitsgeschwindigkeit, die insbesondere daraus resultiert,
daß vom Zwischenregister keine Rückkopplung zur Exponentenvergleichsschaltung
vorgesehen ist und weiterhin keine
Rückkopplungsschleife bezüglich des Akkumulatorabschnittes
vorgesehen ist. Hierdurch erfolgt keine schnelle Addition der
nicht normalisierten Zahlen zur eingehenden Zahl.
Der Erfindung liegt demgegenüber die Aufgabe zugrunde, eine
Gleitpunktzahlenakkumulatorschaltung der genannten Art derart
zu verbessern, daß die Operationsgeschwindigkeit erhöht wird.
Diese Aufgabe wird erfindungsgemäß durch die Merkmale im kennzeichnenden
Teil des Patentanspruches gelöst.
Weitere Ausgestaltungen der Gleitpunktzahlenakkumulatorschaltung
ergeben sich aus den Unteransprüchen.
Die Gleitpunktzahlenakkumulatorschaltung weist eine Pipeline-Architektur
auf, die eine Pipeline-Latenzzeit von 400 ns eine
Durchsatzzeit von 100 ns bei einer Taktfrequenz von 10 mHz hat
(unter Verwendung von 32-Bit-Gleitpunktzahlen gemäß einer bevorzugten
Ausführungsform).
Die Gleitpunktzahlenakkumulatorschaltung benutzt das vorgeschlagene
IEEE-Standardgleitpunkt- oder Fließkommaformat, das aus
23 Bits der Mantisse, 8 Bits des Exponenten und einem Vorzeichenbit
(sign) besteht. In diesem Format wird ein Binärpunkt
als zwischen den Bitpositionen 22 und 23 vorhanden aufgefaßt.
Für die Darstellung einer Gleitpunktzahl gibt es eine der folgenden
Möglichkeiten:
- 1. Wenn der Exponent ungleich null ist, gilt: Zahl ={(-1)(sign) * 2(exponent-127) * (1.data)}
- 2. Wenn der Exponent null ist, aber die Daten ungleich null sind, (was eine denormalisierte Zahl angibt), gilt: Zahl = {(-1)(sign) * 2(-127) * (0.data)}
- 3. Wenn sowohl der Exponent als auch die Daten null sind, gilt: Zahl = 0.0
- 4. Wenn der Exponent FF₁₆ und die Mantisse null ist, gilt:
Die Zahl wird betrachtet als: (+ oder -) unendlich. - 5. Wenn die Zahl FF₁₆ und die Mantisse ungleich null ist,
gilt:
Die Zahl wird betrachtet als: keine Zahl.
Zur Vereinfachung der Gleitpunktzahlenakkumulatorschaltung
wird eine denormalisierte Zahl auf null gebracht, und
jede Zahl mit einem Exponenten von FF₁₆ wird auf (+ oder -)
unendlich gebracht, je nach dem Vorzeichenbit.
Die Akkumulatorschaltung wird "n" positive
Zahlen ohne Fehler addieren, vorausgesetzt, daß das
Ergebnis nicht die Grenze des Gleitpunktzahlensystems übersteigt.
Wenn eine negative Zahl zu der akkumulierten Summe
addiert wird, tritt ein gewisser Fehler auf, und zwar aufgrund
der folgenden Approximationen, die gemacht worden
sind, um die Geschwindigkeit der Schaltung zu erhöhen:
- 1. Die Zahlen werden erst normalisiert, bevor sie den Chip verlassen. Sie sind während der Akkumulation nicht normalisiert.
- 2. In dem Entwurf ist keine Abrundungsschaltungsanordnung enthalten.
- 3. Negative Zahlen werden zurück in ein Format aus Vorzeichen und Größe mit einer Einerkomplementoperation statt mit einer Zweierkomplementoperation umgewandelt.
Intern wird die Mantisse auf 25 Bits gebracht (23 Bits
Eingangsdaten, ein verborgenes Bit und ein Schutzbit, wenn
notwendig). Der Exponent wird aus Genauigkeitsgründen auf
9 Bits bis zu dem Normalisierungsabschnitt gebracht, wo
ein weiteres Bit zur Unterlauferkennung addiert wird.
Ein Ausführungsbeispiel der Gleitpunktzahlenakkumulatorschaltung wird im folgenden
unter Bezugnahme auf die Zeichnungen näher beschrieben.
Es zeigen:
Fig. 1 ein Blockschaltbild einer bekannten Akkumulator-
Architektur und
Fig. 2a und 2b ausführliche Blockschaltbilder der Akkumulatorschaltung
nach der Erfindung.
Die Fig. 2a und 2b zeigen ein ausführliches Blockschaltbild
der Schaltung nach der Erfindung. In der bevorzugten
Ausführungsform der Schaltung ist eine
zusätzliche Schaltungsanordnung für die Bequemlichkeit des Endbenutzers
vorgesehen.
Eine bevorzugte Ausführungsform der Schaltung ist eine integrierte Schaltung mit
49 Eingängen und 34 Ausgängen. Von den 49 Eingängen
dienen 32 Eingänge für Daten. Von diesen 32 Eingängen
können 16 bei Bedarf außer Betracht bleiben, und 32 Datenbits
können zeitmultiplexiert über die übrigen 16 Eingänge
eingegeben werden. Die anderen 17 Eingänge dienen für
Steuersignale, ein Taktsignal, ein Abtastsignal STROBE und
als ein serieller Eingang an den Ausgangsregistern für
Testdaten. Die 34 Ausgänge umfassen den 32-Bit-Datenausgang
(d. h. eine Gleitpunkt- oder Fließkommazahl), einen seriellen
Ausgang aus den Abtastregistern für Testzwecke und
ein Steuersignal.
Unter den Steuersignalen an dem Eingangsteil der Schaltungsanordnung
gibt es folgende:
Flag des ersten Gliedes (FT) -- bedeutet das erste Glied
einer Akkumulation. Eine logische "1" initialisiert die
Akkumulatorschaltung.
Bypass -- wenn es mit dem Flag des ersten Gliedes benutzt
wird, werden die in die Schaltung eingegebenen Daten durch
die Schaltung hindurchgehen, ohne verändert zu werden, und
an den Ausgängen der Schaltung drei Taktzyklen nach dem
Eintakten erscheinen.
Vorzeichenänderung (CHSign) -- benutzt zum Subtrahieren
der Eingangszahl von der akkumulierten Zahl; veranlaßt die
Schaltung, das Vorzeichen der Eingangsmantisse zu verändern.
No- oder Nulloperation (NOOP) -- bedeutet, daß die in die Schaltung eingegebenen Daten ungültig und nicht zu akkumulieren sind.
HoldIn -- bewirkt, daß die Eingangsdaten in dem Eingangsregister als Daten für die nächste Operation gehalten werden.
HoldOut -- hält die Ausgangsdaten in dem Ausgangsregister. Die Schaltung fährt fort, Daten zu akkumulieren, aber die Ausgangssignale der Schaltung ändern sich nicht.
Multiplexierwahl (MULTPX) -- benutzt zum Wählen der zeitmultiplexierten Eingangsbetriebsart.
No- oder Nulloperation (NOOP) -- bedeutet, daß die in die Schaltung eingegebenen Daten ungültig und nicht zu akkumulieren sind.
HoldIn -- bewirkt, daß die Eingangsdaten in dem Eingangsregister als Daten für die nächste Operation gehalten werden.
HoldOut -- hält die Ausgangsdaten in dem Ausgangsregister. Die Schaltung fährt fort, Daten zu akkumulieren, aber die Ausgangssignale der Schaltung ändern sich nicht.
Multiplexierwahl (MULTPX) -- benutzt zum Wählen der zeitmultiplexierten Eingangsbetriebsart.
Der Eingangsabschnitt der Akkumulatorschaltung weist einen
Speicherflipflop (Latch) 1, einen Multiplexer 2, einen Eingangsabschnitt
3 und ein Eingangs-UND-Gatter 4 auf. Die
Eingangssignalleitungen an dem Eingangsabschnitt 3 umfassen
die 16 höchstwertigen Bits MSB der Eingangsdaten (d. h. einer
Gleitpunktzahl) über einem ersten Satz von Datenleitungen 5
und die 16 niedrigstwertigen Bits LSB über einen zweiten
Satz von Datenleitungen 6. Eine Multiplexsteuerleitung
(MULTPX) 7 wird benutzt, um festzustellen, ob die Dateneingaben
in einem 16-Bit-Zeitmultiplexformat oder als 32
Eingangssignale während eines einzelnen Taktzyklus akzeptiert
werden. Wenn die Multiplexsignalleitung 7 aktiv ist,
werden die 16 niedrigstwertigen Datenbits in das Speicherflipflop 1
an der abfallenden Flanke eines Abtastsignals
eingegeben. Das vereinfacht den Gebrauch, da die Takt- und
Abtastsignale mit demselben Signal extern in einer normalen
Multiplexkonfiguration verknüpft werden können. Nachdem
die 16 niedrigstwertigen Bits in das Speicherflipflop
1 eingegeben worden sind, treten die 16 höchstwertigen Datenbits
direkt in den Eingangsabschnitt 3 über den zweiten
Satz von Signalleitungen 6 ein, während das Ausgangssignal
des Speicherflipflops 1 gleichzeitig in den Eingangsabschnitt
3 über den Multiplexer 2 eingegeben wird. In einem
nichtmultiplexierten System werden die 16 höchstwertigen
Bits in den Eingangsabschnitt 3 durch den Multiplexer 2
über den ersten Satz von Signalleitungen 5 eingegeben, und
zwar gleichzeitig mit dem Eingeben der 16 niedrigstwertigen
Bits in den Eingangsabschnitt 3 über den zweiten Satz
von Signalleitungen 6. In diesem letzteren Fall wird das
Speicherflipflop 1 nicht benutzt.
Das Speicherflipflop 1 und der Multiplexer 2 dienen
dem Zweck, in dem Eingangsabschnitt 3 alle 32 Datenbits
zu speichern, aus denen die zu akkumulierende Gleitpunktzahl
besteht.
Das Eingangs-UND-Gatter 4 vor dem Takteingang des Eingangsabschnitts
3 steuert das Takten dieses Registers. Die logischen
Zustände einer No-Operation-Signal (NOOP)-Leitung 8
und einer HoldIn1-Signalleitung 9 steuern das Übertragen
des Taktsignals zu dem Eingangsabschnitt 3. Das HoldIn1-
Signal ist mit dem Hold-In-Signal identisch, aber eine
Pipeline-Stufe verzögert.
Die übrigen Steuereingangssignale der Schaltung werden in
dem Eingangsabschnitt 3 zum späteren Gebrauch in der Schaltung
abgespeichert, wenn die No-Operation-Signal-Leitung 8
und die HoldIn1-Signal-Leitung 9 aktiviert sind, um das
Übertragen des Taktsignals durch das Eingans-UND-Gatter 4
zu gestatten.
Der zweite Abschnitt der Schaltung beinhaltet die Exponentenvergleichs-
und Zweierkomplementierungsschaltungsanordnung.
Die Eingangssignale dieses Abschnitts umfassen die
Daten- und Steuersignale aus dem Eingangsabschnitt 3. Sofern
nicht die gegenwärtige Eingangszahl aus dem Eingangsabschnitt 3
das erste Glied einer Akkumulation ist, ist eine
zusätzliche Eingabe in diesen Abschnitt ein Glied größten
Exponentens (LGEXP2) und ein Überlaufsignal (OFLW2), die
aus dem nächsten Abschnitt, der Akkumulatorschaltung,
rückgekoppelt werden. Die Ausgangssignale des zweiten Abschnitts
sind der neue größte Exponent, eine berechnete
Verschiebungscodegruppe, Löschbare-Multiplexer-Steuersignale
und eine Zweierkomplementmantisse. Die Akkumulatorschaltung
benutzt die Verschiebungscodegruppe, um die Binärpunkte
der Addenden der neuen Mantisse und der akkumulierten
Daten auszurichten (selbstverständlich sofern nicht
die laufende Eingangszahl das erste Glied einer Akkumulation
ist).
Der Exponentenvergleich bezieht sich auf die Differenz
zwischen dem größten Exponenten in einer Berechnung und dem
Exponenten der laufenden Eingangsgleitpunktzahl aus dem
Eingangsregister 3. Die Schaltung muß dem größten Exponenten
folgen, der seit der ersten Eingangszahl in einer Serie
von Akkumulationen aufgetreten ist.
Die Eingangsgleitpunktzahl wird etwas anders behandelt,
wenn das Erstgliedflag-Steuersignal FT aktiv ist. Wenn
die Eingangsgleitpunktzahl das erste Glied einer Akkumlationsserie
ist, wird sie automatisch als den größten Exponenten
aufweisend betrachtet, und der Exponent geht durch
die Exponentenvergleichsschaltung hindurch zu dem nächsten
Abschnitt ohne Änderung. In diesem Fall wird die Verschiebungscodegruppe
auf null gesetzt, und die Steuersignale,
die in dem Akkumulationssignal benutzt werden, werden gesetzt,
um den vorher akkumulierten Wert zu löschen.
Ob nun die Eingangszahl das erste Glied einer Akkumulationsserie
ist oder nicht, dieser Abschnitt berechnet zuerst, um
festzustellen, ob die Eingangszahl null äquivalent ist,
mittels eines Test-NOR-Gatters 20. Da die Akkumulatorschaltung
denomalisierte Zahlen auf null bringt, braucht die
Nulltestberechnung nur die acht Exponentenbits der Eingangszahl
zu überprüfen. Wenn die Exponentenbits alle null sind,
wird ein Zero1-Signal aktiviert, um anzuzeigen, daß das
Eingangssignal null ist, vorausgesetzt, daß das Bypass-Signal
nicht aktiv ist. Das Zero1-Signal dient dem Zweck, alle
Bits (Vorzeichen, Exponent und Mantisse) der Eingangszahl
auf null zu setzen.
Das Zero1-Signal wird zusammen mit dem Bypass-Signal benutzt,
um die Berechnung des Vorzeichens für den Ausgangs-
Exponenten zu steuern. Wenn die gesamte Schaltung umgangen
werden soll, kann das Vorzeichen der Eingangszahl
nicht geändert werden. Das Ausgangssignal
SIGN1 eines Vorzeichen-UND-Gatters 22 zeigt das Vorzeichen
des Exponenten an, sofern er nicht durch das Zero1-Signal
auf null gebracht worden ist oder wenn die Schaltung umgangen
werden soll, was durch das Bypass-Signal angezeigt
wird. Das Vorzeichenänderung-Signal CHSign steuert außerdem,
ob das Signal SIGN1 gesetzt wird, um eine negative
Zahl oder eine positive Zahl anzuzeigen.
Da die Mantisse einer Eingangsgleitpunktzahl durch eine
Größe mit Vorzeichen dargestellt ist und da der Addierer
der Akkumulatorschaltung Zahlen verarbeitet, die in
Zweierkomplementform dargeboten werden, bestimmt das Signal
SIGN1 auch, ob oder ob nicht die Mantisse negiert und um
eins erhöht (d. h. in das Zweierkomplementformat umgeformt)
werden sollte, und zwar durch eine Zweierkomplementschaltung
23. Wenn die Eingangsmantisse negativ ist,
dann muß die Mantisse durch die Komplementierungsschaltung
23 in die Zweierkomplementform umgeformt werden.
Die Mantisse der Eingangszahl, die vorübergehend in dem
Eingangsabschnitt 3 gespeichert worden ist, hat eine logische
"1" in der Position des höchstwertigen Bits aufgenommen,
die die im vorgeschlagenen IEEE-32-Bit-Gleitpunktzahlenstandard
vorgesehene "1" ersetzt hat, bevor sie in die
Zweierkomplementschaltung 23 gelangt ist.
Der Vergleich der Eingangsexponenten mit dem größten vorherigen
Exponenten erfolgt in einem Komparator 24. Das Ausgangssignal
des Komparators 24 ist die Differenz zwischen
dem größten vorherigen Exponenten und dem Exponenten der
laufenden Eingangszahl. Wenn das Ausgangssignal des Komparators
24 negativ ist (bestimmt durch das Vorzeichenbit der
Differenz, DIFF(9)) oder wenn die Eingangszahl das erste
Glied einer Akkumulationsserie ist, werden ein erster 9-
Bit-Multiplexer 25 und ein zweiter 9-Bit-Multiplexer 26 sofort
gesetzt, um den Exponenten der Eingangszahl als den
größten Exponenten durchzulassen. In diesen beiden Fällen
ist der Exponent der Eingangszahl immer der größte Exponent
einer Summe.
Wenn die Eingangszahl nicht das erste Glied ist und wenn das
Ausgangssignal des Exponentenkomparators 24 nicht negativ
ist, wird der vorherige größte Exponent LGEXP2 als Ausgangssignal
des ersten Multiplexers 25 gewählt. Das Ausgangssignal
des zweiten Multiplexers 26 wird aus zwei Potentialeingangssignalen
auf der Basis des Wertes eines Überlaufsignals
(OFLW2) 27 ausgewählt. Wenn das Überlaufsignal
aktiv ist (was anzeigt, daß die Summe der Mantisse in dem
früheren Taktzyklus ein Überlaufsignal verursacht hat),
muß der größte Exponent um eins erhöht werden. Das erfolgt
durch eine Addierschaltung 28. In diesem Fall wird das Ausgangssignal
des zweiten Multiplexers 26 aus der Addierschaltung
28 ausgewählt; anderenfalls wird das Ausgangssignal
des ersten Multiplexers 25 ausgewählt. Das Ausgangssignal
des zweiten Multiplexers 26 besteht aus dem neuen "größten
Exponenten" LGEXP1, der in einem Zwischenregister 29 gespeichert
wird.
Parallel zu der Bestimmung des nächsten größten Exponenten
wird eine Verschiebungscodegruppe berechnet, die in dem
Akkumulationsabschnitt zum Ausrichten der Binärpunkte der
beiden Summanden benutzt wird. Das Ausgangssignal des Exponentenkomparators
24 stellt dar, wieweit rechts der Binärpunkt
der Mantisse der Eingangszahl (ausgedrückt in Bitpositionen)
von dem Binärpunkt der in dem Akkumulatorregister
in dem nächsten Abschnitt gespeicherten Zahl entfernt ist.
Diese Differenz zeigt, wie oft die Mantisse der kleineren
Zahl verschoben werden sollte, um ihren Binärpunkt auf den
Binärpunkt der größeren Zahl auszurichten. In der hier beschriebenen
Ausführungsform wird lediglich eine Rechtsverschiebungsschaltung
benutzt, was die Gesamtschaltung vereinfacht.
Weil nur eine Rechtsverschiebungsschaltung benutzt
wird, wird, wenn das Ausgangssignal des Exponentenkomparators
24 negativ ist, statt die Mantisse der Eingangszahl
zu verschieben, die Mantisse der akkumulierten Zahl
verschoben, so daß deren Binärpunkt auf den Binärpunkt der
Eingangszahl ausgerichtet wird.
Die Verschiebungscodegruppe basiert auf der Größe der Differenz
zwischen den Exponenten, die in dem Exponentenkomparator
24 miteinander verglichen werden. In der bevorzugten
Ausführungsform wird für einen schnelleren Betrieb das Ausgangssignal
des Exponentenkomparators 24 zu zwei separaten
Schaltungen geleitet, so daß die parallele Berechnung erfolgen
kann. Die erste Schaltung ist ein
Addierer 30, der zu dem Ausgangssignal des Exponentenkomparators
24 eins addiert. Wenn die Differenz zwischen den
in den Komparator 24 eingegebenen Exponenten positiv ist,
ist das Ausgangssignal des Addierers 30 einfach die Differenz
plus eins. Wenn die Differenz negativ ist, bewirkt das
Addieren von "eins" im wesentlichen, daß das Einserkomplement
der Differenz von dem Addierer 30 abgegeben wird.
Ein Ausgangssignal der Addierschaltung 30 ist ein Signal
CLRB, das aktiviert wird, wenn das Ausgangssignal der Addierschaltung
30 größer als vierundzwanzig ist. Die Signifikanz
der Zahl vierundzwanzig ist, daß, wenn die Differenz
zwischen den beiden verglichenen Exponenten größer als vierundzwanzig
ist, das Verschieben der kleineren Mantisse (die
24 Bits in der bevorzugten Ausführungsform umfaßt), um ihren
Binärpunkt mit dem Binärpunkt der größeren Zahl auszurichten,
die kleinere Zahl vollständig aus dem Trommelverschieber
hinausschieben würde, so daß die kleinere Zahl ungefähr
gleich null ist. Diese Approximation ist akzeptabel, da sie
bedeutet, daß die größere Zahl vierundzwanzig binäre Größenordnungen
größer ist als die kleinere Zahl. Die Schaltung
löscht deshalb die kleinere Zahl auf null durch Aktivieren
des Signals CLRB.
Das Ausgangssignal des Exponentenvergleichers 24 wird außerdem
zu einer bedingten Komplementschaltung 31 geleitet,
die die Differenz ungeändert durchläßt, wenn die Differenz
positiv ist, aber das Zweierkomplement der Differenz abgibt,
wenn sie negativ ist. Ähnlich wie die Addierschaltung
30 hat die bedingte Komplementierschaltung 31 ein Signal
CLRA, das aktiviert wird, wenn ihr Ausgang größer als vierundzwanzig
ist.
Die Ausgangssignale der Addierschaltung 30 und der bedingten
Komplementierschaltung 31 werden zu einer löschbaren
6-Bit-Multiplexerschaltung 32 geleitet. Das Eingangssignal,
das gewählt wird, um von dem Multiplexer 32 abgegeben zu
werden, wird auf der Basis des Überlaufsignals OFLW2 gewählt.
Wenn kein Überlauf auftritt, wird das Ausgangssignal
der bedingten Komplementierschaltung 31 durch den löschbaren
Multiplexer 32 ausgewählt. In diesem Fall wird, wenn die
Exponentendifferenz positiv ist, die Differenz die Verschiebungscodegruppe.
Wenn die Exponentendifferenz negativ ist, ist
die Verschiebungscodegruppe das Zweierkomplement der Differenz.
(Da nur ein Rechtsverschieber benutzt wird, werden
negative Differenzen komplementiert, um sie in positive
Zahlen umzuformen).
Wenn ein Überlauf der addierten Mantissen in dem früheren
Taktzyklus auftritt, wird das Ausgangssignal der Addierschaltung
30 durch den löschbaren Multiplexer 32 gewählt.
In diesem Fall wird, wenn die Exponentendifferenz positiv
ist, "eins" zu dem Exponent addiert, damit sich eine Verschiebungscodegruppe
ergibt, die bewirkt, daß der Rechtsverschieber
einige Bitpositionen mehr in der Mantissensumme
berücksichtigt (die Überlaufbitposition). Wenn die Differenz
negativ ist, ist die Verschiebungscodegruppe das
Einserkomplement der Differenz.
Die Ausgangsverschiebungscodegruppe des löschbaren Multiplexers
32 wird in dem Zwischenregister 29 für den nächsten
Abschnitt gespeichert. Das Verschiebungscodegruppenausgangssignal
des löschbaren Multiplexers 32 kann auf null
gelöscht werden, wenn das Erstgliedsignal FT1 aktiv ist.
Das Signal CLRA oder das Signal CLRB wird auch durch die
löschbare Multiplexerschaltung 32 gleichzeitig mit der Auswahl
der 5-Bit-Eingangssignale aus der Addierschaltung 30
und der bedingten Komplementierschaltung 31 ausgewählt und
bildet ein Ausgangssignal, das nun mit "CLRC" bezeichnet
wird. Das Ausgangssignal CLRC des löschbaren Multiplexers
32 wird auf null gesetzt, wenn das Signal ZERO1 aktiv ist.
Das Signal CLRC wird mit dem Differentialvorzeichensignal
DIFF(9) und dem Erstgliedflagsignal FT1 über zwei UND-
Gatter 33, 34 zu einem Signal MUXCLR1 verknüpft. Das Signal
MUXCLR1 wird benutzt, um den Multiplexer in dem Akkumulationsabschnitt
zu löschen, der die Mantisse auswählt, die
aus dem kleineren Exponenten kommt (und die Mantissen, die
den Eingangsdaten des ersten Gliedes zugeordnet sind), und
diese Signale zu der Verschiebeschaltung leitet.
Das Signal MUXCLR1 wird nur aktiviert, wenn das Signal
CLRC aktiv und entweder die Exponentendifferenz positiv
oder die in das Eingangsregister 3 eingegebene Zahl das erste
Glied einer Akkumulationsserie ist. In dem ersten Fall,
wenn die Exponentendifferenz positiv und das Signal CLRC
aktiv ist, bedeutet das, daß der vorherige größte Exponent
größer genug ist als der Exponent der Eingangszahl, so daß die
Verschiebeeinrichtung die neue Zahl vollständig weg verschieben
würde, so daß die neue Zahl auf null gelöscht wird. In dem
zweiten Fall, in welchem das Erstgliedflag-Signal FT1 aktiv
und das Signal CLRC aktiv ist, wird das Glied in dem Akkumulationsregister
40 als null betrachtet und muß gelöscht werden.
Ein Signal, das aus der Kombination des Differenzvorzeichensignals
DIFF(9) des Exponentenkomparators 24 und dem
Erstgliedflag-Signal FT1 (gebildet durch das UND-Gatter 33)
gebildet wird, wird benutzt, um einen Multiplexer in der
Akkumulatorschaltung zu steuern. Dieses Signal, das Signal
MUXSEL1, ist immer inaktiviert, wenn das Erstgliedflag-
Signal FT1 aktiviert ist, anderenfalls ist es dasselbe wie
das Vorzeichenbit der Exponentendifferenz. Das gewährleistet,
daß in der Akkumulatorschaltung die Eingangszahl einer
Erstgliedzahl oder die Zahl mit dem kleineren Exponenten in
allen anderen Fällen immer zu dem Trommelverschieber geht.
Andere Signale, die in dem Zwischenregister 29 gespeichert
sind, sind das Bypass-Signal, das Erstgliedflag-Signal FT1,
das Eingangsvorzeichensignal INSIGN1 und das No-Operation-
Signal NOOP1.
Der nächste Abschnitt der Schaltung ist die Akkumulatorschaltung.
Die Eingangssignale sind diejenigen
Signale, die in dem Zwischenregister 29 aus dem
Exponentenvergleichs- und Zweierkomplementierungsabschnitt
gespeichert wurden. Darüber hinaus ist ein Eingangssignal
dieses Abschnitts die akkumulierte Summe von früheren Eingangszahlen,
die aus dem Akkumulatorregister 40 rückgekoppelt
werden. Die Ausgangssignale dieser Schaltung sind die
denomalisierte akkumulierte Mantisse, das neue Vorzeichen
und die akkumulierte Zahl NSIGN2, der akkumulierte größte
Exponente LGEXP2 und ein Überlaufsignal OFLW2. Ebenfalls
gespeichert in dem Akkumulatorregister 40 sind das Bypass-
Signal und das Eingangsvorzeichensignal INSIGN2.
Ein erster 25-Bit-Multiplexer 41 und ein zweiter 25-Bit-
Multiplexer 42 werden benutzt, um auszuwählen, welchen Pfad
die beiden Addenden (die Mantisse aus dem vorherigen Abschnitt
und die akkumulierende Mantisse aus dem Akkumulatorregister
40) nehmen werden. Das Signal MUXSEL2 aus dem vorherigen
Abschnitt wird als das Wählsignal für beide Multiplexer
41, 42 benutzt. Wenn das Signal MUXSEL2 nicht aktiv
ist, dann geht die Mantisse aus der neuen Zahl durch den
ersten Multiplexer 41 durch, und die Mantisse der akkumulierten
Zahl geht durch den zweiten Multiplexer 42 durch.
Das ist immer der Fall zu jeder Zeit, zu der es ein aktives
Erstgliedflag-Signal FT2 gibt, oder wenn der Exponent der
neuen Zahl kleiner war als der größte akkumulierte Exponent.
In allen anderen Fällen ist der Datenfluß durch die beiden
Multiplexer 41, 42 umgekehrt.
Wenn das Erstgliedflag-Signal FT2 aktiviert ist, werden
sämtliche akkumulierten Daten in dem zweiten Multiplexer 42
gelöscht, was dazu führt, daß das Ausgangssignal dieses
Multiplexers nur aus Nullen besteht. Das führt dazu, daß
die neue Eingangszahl zu null addiert wird. Ebenso wird das
Ausgangssignal des ersten Multiplexers 41 gelöscht, wenn
das Signal MUXCLR2 aktiv ist, was bewirkt, daß die akkumulierten
Daten zu Null addiert werden.
Der Ausgang des ersten Multiplexers 41 ist mit einer 25-Bit-
Rechtsverschiebeschaltung 43 verbunden. Die Verschiebungscodegruppe
aus der Akkumulatorschaltung steuert, wie oft
die Eingangszahl an dem Rechtsverschieber 43 verschoben
wird. Wenn die Eingangszahl nach rechts verschoben wird,
wird der Wert des höchstwertigen Bits (des Vorzeichenbits)
benutzt, um die oberen Bitpositionen der verschobenen Zahl
zu füllen, damit ihre Zweierkomplementdatendarstellung bewahrt
wird. Die Ausgangssignale des Verschiebers 43 und des
zweiten Multiplexers 42 liegen als Eingangssignale an einer
26-Bit-Addierschaltung 44 an. Innerhalb dieser Addierschaltung
werden die beiden Eingangszahlen von fünfundzwanzig
Bits auf sechsundzwanzig Bits erweitert, und zwar durch
Wiederholen des Vorzeichenbits jeder Zahl, um sicherzustellen,
daß das Vorzeichen des Resultats für alle möglichen
Addenden gültig sein wird. Das Bit 26 wird immer das korrekte
Vorzeichen für die Summe sein, das Ausgangssignal des
26-Bit-Addierers 44 besteht aus der Summe der beiden Eingangszahlen,
einem Überlaufsignal OFLW2, das erzeugt wird,
wenn das Bit 25 von dem Bit 26 verschieden ist, und einem
Neues-Vorzeichen-Signal NSIGN2. Das 25-Bit-Ausgangssignal
des 26-Bit-Addierers 44 wird an einen 24-Bit-Multiplexer 45
angelegt, so daß das "A"-Eingangssignal des Multiplexers 45
aus den Bits 0 bis 23 der Summe besteht und das "B"-Eingangssignal
des Multiplexers 45 aus den Bits 1 bis 24 besteht.
Wenn kein Überlauf auftritt, wird das "A"-Eingangssignal
des 24-Bit-Multiplexers 45 als die akkumulierte Summe
abgegeben. Wenn das Überlaufsignal aktiv ist, wird dieses
Signal das "B"-Eingangssignal des Multiplexers 44 als Ausgangssignal
wählen (das niedrigstwertige Bit wird außer
Betracht gelassen).
Der größte Exponentenwert aus dem vorherigen Abschnitt, das
"Neues-Vorzeichen-Signal NSIGN2 aus dem 26-Bit-Addierer 44,
das Überlaufsignal OFLW2 und die akkumulierte Mantisse werden
alle in dem Akkumulatorregister 40 für die nächste
Pipeline-Stufe gespeichert. Das Überlaufsignal OFLW2 wird
außerdem sofort in den früheren Pipeline-Abschnitt rückgekoppelt
(den Exponentenvergleichs- und Zweierkomplementierungsabschnitt).
Das Taktsignal an dem Akkumulatorregister 40 wird durch ein
UND-Gatter 46 durch das No-Operation-Signal NOOP2 gesteuert,
das, wenn es aktiviert ist, Änderungen des Akkumulatorregisters
40 verhindert.
Der nächste Abschnitt der Schaltung ist
der Normalisierungsabschnitt. Die Eingangssignale dieses
Abschnitts sind die Ausgangssignale des Akkumulatorregisters
40. Der Normalisierungsabschnitt dient dem Zweck, die akkumulierte
Summe wieder zurück in ein Gleitpunktformat umzuformen.
Vierundzwanzig und fünfundzwanzig Bits der Mantisse, die in
dem Akkumulatorregister 40 gespeichert sind, werden an einen
bedingten Einserkomplemetierer 50 angelegt (das Vorzeichen-
Bit wird nicht benutzt). Darüber hinaus werden alle fünfundzwanzig
Bits der Mantisse (einschließlich des Vorzeichen-
Bits) zu dem vorherigen Akkumulatorabschnitt als ein Eingangssignal
des ersten Multiplexers 41 und des zweiten Multiplexers
42 rückgekoppelt.
Das Neues-Vorzeichen-Signal NSIGN3 aus dem Akkumulatorregister
40 bestimmt, ob die Mantisse in der bedingten Einserkomplementschaltung
50 ungeändert durchgeht (in dem Fall
einer positiven Zahl) oder ob jedes Bit der Mantisse invertiert
wird, um die Einserkomplementdarstellung zu bilden
(wenn die Mantisse negativ ist). (Im Idealfall sollte das
Zweierkomplement der Mantisse genommen werden, wegen der
zeitlichen Beschränkung in der gegenwärtigen Implementierungstechnik
ist aber eine Einerkomplementschaltung benutzt
worden).
Das Ausgangssignal der bedingten Einerkomplementschaltung
50 wird an einen Prioritätscodierer 51 und an einen Linksverschieber
52 angelegt. Der Linksverschieber 52 wird durch
den Prioritätscodierer 51 aktiviert. Der Prioritätscodierer
51 bestimmt eine Verschiebungscodegruppe, die gleich der
Zahl der führenden Nullen in dem Ausgangssignal der bedingten
Einerkomplementschaltung 50 ist. Ein Spezialsignal
ZERO3 wird aktiviert, wenn sämtliche Bits des Eingangssignals
des Prioritätscodierers 51 null sind, was ein Ergebnis
von null bedeutet. Die Verschiebungscodegruppe, die durch
den Prioritätscodierer 51 festgelegt wird, wird an den
Linksverschieber 52 angelegt, der das Ausgangssignal der
Einer-Komplementschaltung 50 um die Größe der Verschiebungscodegruppe
nach links verschiebt. Nullen werden in die
niedrigstwertigen Bitpositionen geschoben. Das Ausgangssignal
des Linksverschiebers 52 wird daher die normalisierte
Form der Mantisse haben, die ursprünglich in dem Akkumulatorregister
40 gespeichert wurde. Da sämtliche führenden
Nullen des Eingangssignals des Linksverschiebers 52 hinausgeschoben
worden sind, wird das höchstwertige Bit des Ausgangssignals
des Linksverschiebers 52, das daher eine "1"
sein muß, als die implizierte "1" der Gleitpunktzahlendarstellung
behandelt und außer Betracht gelassen. Ein Vorzeichenbit
wird jedoch mit dem Ausgangssignal des Linksverschiebers
52 vereinigt, um die endgültige normalisierte
Mantisse für die Akkumulationssumme zu bilden. Dieses Vorzeichenbit
ist das Neues-Vorzeichen-Signal NSIGN3, das in
dem Akkumulationsabschnitt berechnet wird, wenn die Schaltung
nicht in der Bypass-Betriebsart ist, und anderenfalls
wird das Eingangsvorzeichen INSIGN3 der ursprünglichen Zahl in
die Schaltung eingegeben, wenn die Bypass-Betriebsart
aktiv ist. In diesem letzteren Fall ist das Vorzeichen dasselbe
wie das ursprünglich eingegebene Vorzeichen, das
sämtliche Registerverzögerungen der Schaltung durchlaufen
hat. Welches der beiden Vorzeichen gewählt wird, wird
durch das Bypass-Signal bestimmt, das die Aktivierung eines
1-Bit-Multiplexers 53 steuert, dessen beide Eingangssignale
das Neues-Vorzeichen-Signal, welches in dem Akkumulationsabschnitt
erzeugt wird, und das ursprüngliche Eingangsvorzeichen
sind.
Die Verschiebungscodegruppe, die durch den Prioritätscodierer
51 erzeugt wird, wird außerdem zum Berechnen des
Ausgangsexponenten benutzt. Zuerst wird der größte Exponent
LGEXP3, der in dem Akkumulatorregister 40 gespeichert ist,
einer Addierschaltung 54 zugeführt und zu dem Überlaufsignal
OFLW3 addiert. Wenn das Überlaufsignal aktiv ist, erhöht
das effektiv den größten Exponenten um eins. Danach
wird das Ausgangssignal des Addierers 54 an einen Eingang
einer Subtrahierschaltung 55 angelegt, die von der neuen
größten Exponentenzahl die Verschiebungscodegruppe subtrahiert,
die durch den Prioritätscodierer 51 erzeugt wird,
wodurch der Exponent eingestellt wird, um die Verschiebung
im Binärpunkt der Mantisse nach der Normalisierung zu berücksichtigen.
Das Ausgangssignal des Subtrahierers 55 wird
dann mit dem Ausgangssignal des Linksverschiebers 52 und
dem des 1-Bit-Multiplexers 53 vereinigt, um die vollständige
Gleitpunktzahl zu bilden, die durch die Schaltung akkumuliert
wird. Diese vollständige Zahl wird dem Eingang
eines 32-Bit-Multiplexers 56 zugeführt. Die anderen Eingangssignale
an dem Multiplexer bestehen aus vorbestimmten
Signalen, welche die Grenzen des Systems darstellen. Ein
Klemmsignal "clamping" wird erzeugt, um das Ausgangssignal
des 32-Bit-Multiplexers 56 entweder als die akkumulierte
Gleitpunktzahl oder als eine Darstellung von plus oder minus
unendlich oder null auszuwählen. Das Klemmsignal, das durch
ein ODER-Gatter 59 erzeugt wird, ist aktiv, wenn das Signal
ZERO3 aus dem Prioritätscodierer 51 aktiv ist oder wenn der berechnete
Exponent größer als der höchste zulässige Exponent
ist oder wenn der Exponent negativ ist oder wenn die Exponentenbits
entweder alles Nullen oder alles Einsen sind,
während die Schaltung nicht in der Bypass-Betriebsart ist.
In allen Fällen ist die Mantisse an dem "B"-Eingang des 32-
Bit-Multiplexers 56 immer auf Null gesetzt. Der Exponent
des Klemmwertes ist null, wenn der Exponent der akkumulierten
Zahl negativ ist, wenn das Signal ZERO3 aus dem Prioritätscodierer
51 aktiv ist oder wenn die Exponentenbits
alle null sind. In allen anderen Fällen des Klemmens werden
die Exponentenbits für den Klemmwert auf Einsen gesetzt.
Das Vorzeichen des Klemmwertes ist null, wenn die Exponentenbits
alle null sind, anderenfalls ist das Vorzeichen
gleich dem Wert des Neues-Vorzeichen-Signal NSIGN3 aus
dem Akkumulatorregister 40.
Das Ausgangssignal des 32-Bit-Multiplexers 56 wird an ein
Ausgangsregister 60 angelegt, welches den Ausgang der gesamten
Schaltung bildet. Das Taktsignal an dem Ausgangsregister
60 wird über ein UND-Gatter 61 durch das No-Operation-
Signal NOOP3 und durch das HoldOut-Signal gesteuert.
Wenn jedes Signal aktiviert ist, ist der Eingang an dem
Ausgangsregister 60 gesperrt, und der Ausgang der gesamten
Schaltung bleibt ungeändert.
Claims (6)
1. Gleitpunktzahlenakkumulatorschaltung mit Pipeline-Architektur
zum Summieren mehrerer Gleitpunktzahlen, die ein
Vorzeichen, einen Exponenten und eine Mantisse aufweisen,
mit einem Eingangsabschnitt (3) zum Empfangen und vorübergehenden Speichern einer Eingangsgleitpunktzahl
mit einem Exponentenvergleichsabschnitt (24 bis 26, 30 bis 32), der mit dem Ausgang des Eingangsabschnitts (3) und
mit einem Zwischenregisters (29) verbunden ist zum Bestimmen einer Verschiebungscodegruppe als Funktion einer Differenz zwischen den Werten des Exponenten der Eingangszahl und des Exponenten eines numerischen Ergebnisses, wobei eine temporäre Speicherung des größeren Exponenten und des Verschiebungscodes in dem Zwischenregister (29) erfolgt,
mit einer Akkumulatorschaltung (40 bis 45), die an den Ausgang des Exponentenvergleichsabschnitts (24, 25, 26, 30, 31, 32) angeschlossen ist zum Verschieben der Mantisse der kleineren Eingangszahl und eines nicht nichtnormalisierten numerischen Ergebnisses um einen Wert des Verschiebungscodes, um die Binärpunkte beider Zahlen aufeinander auszurichten und zum Summieren der ausgerichteten Zahlen als nicht normalisierte numerische Ergebnisse,
mit einer Normalisierungsschaltung (50 bis 56) zur Umwandlung des nicht normalisierten numerischen Ergebnisses der Akkumulationsschaltung in die Form einer normalisierten Gleitpunktzahl, und
mit einem Ausgangsabschnitt (60), der mit dem Ausgang der Normalisierungsschaltung verbunden ist zur temporären Speicherung der normalisierten Ergebnisse in einem Ausgangsregister und zur Aufgabe des normalisierten Ergebnisses,
dadurch gekennzeichnet,
daß der Ausgang des Zwischenregisters (29) mit dem Eingang des Exponentenvergleichsabschnittes (24 bis 26, 30 bis 32) verbunden ist, wobei das Zwischenregister (29) den Exponenten eines numerischen Ergebnisses speichert,
daß die Akkumulatorschaltung (40 bis 45) ein Akkumulatorregister (40) zur temporären Speicherung der numerischen Ergebnisse aufweist, und
daß der Ausgang des Akkumulatorregisters (40) an den Eingang der Akkumulatorschaltung (40 bis 45) rückgekoppelt ist, um eine Akkumulation der Gleitpunktzahlen in einer nicht normalisierten Weise zu erreichen.
mit einem Eingangsabschnitt (3) zum Empfangen und vorübergehenden Speichern einer Eingangsgleitpunktzahl
mit einem Exponentenvergleichsabschnitt (24 bis 26, 30 bis 32), der mit dem Ausgang des Eingangsabschnitts (3) und
mit einem Zwischenregisters (29) verbunden ist zum Bestimmen einer Verschiebungscodegruppe als Funktion einer Differenz zwischen den Werten des Exponenten der Eingangszahl und des Exponenten eines numerischen Ergebnisses, wobei eine temporäre Speicherung des größeren Exponenten und des Verschiebungscodes in dem Zwischenregister (29) erfolgt,
mit einer Akkumulatorschaltung (40 bis 45), die an den Ausgang des Exponentenvergleichsabschnitts (24, 25, 26, 30, 31, 32) angeschlossen ist zum Verschieben der Mantisse der kleineren Eingangszahl und eines nicht nichtnormalisierten numerischen Ergebnisses um einen Wert des Verschiebungscodes, um die Binärpunkte beider Zahlen aufeinander auszurichten und zum Summieren der ausgerichteten Zahlen als nicht normalisierte numerische Ergebnisse,
mit einer Normalisierungsschaltung (50 bis 56) zur Umwandlung des nicht normalisierten numerischen Ergebnisses der Akkumulationsschaltung in die Form einer normalisierten Gleitpunktzahl, und
mit einem Ausgangsabschnitt (60), der mit dem Ausgang der Normalisierungsschaltung verbunden ist zur temporären Speicherung der normalisierten Ergebnisse in einem Ausgangsregister und zur Aufgabe des normalisierten Ergebnisses,
dadurch gekennzeichnet,
daß der Ausgang des Zwischenregisters (29) mit dem Eingang des Exponentenvergleichsabschnittes (24 bis 26, 30 bis 32) verbunden ist, wobei das Zwischenregister (29) den Exponenten eines numerischen Ergebnisses speichert,
daß die Akkumulatorschaltung (40 bis 45) ein Akkumulatorregister (40) zur temporären Speicherung der numerischen Ergebnisse aufweist, und
daß der Ausgang des Akkumulatorregisters (40) an den Eingang der Akkumulatorschaltung (40 bis 45) rückgekoppelt ist, um eine Akkumulation der Gleitpunktzahlen in einer nicht normalisierten Weise zu erreichen.
2. Gleitpunktzahlenakkumulatorschaltung nach Anspruch 1,
dadurch gekennzeichnet,
daß eine Zweierkomplementschaltung (23) an den Ausgang
des Eingangsabschnittes (3) zum Berechnen des Zweierkomplements
der Mantisse der Eingangszahl bei negativer Eingangszahl
angeschlossen ist.
3. Gleitpunktzahlenakkumulatorschaltung nach Anspruch 1 oder
2,
dadurch gekennzeichnet,
daß die Normalisierungsschaltung (50 bis 56) eine Einrichtung
zum Umwandeln des nicht normalisierten numerischen
Ergebnisses in normalisierte Form enthält, welche
aufweist:
eine Schaltungseinrichtung (52) zum Verschieben der Mantisse des Ergebnisses, bis alle führenden Nullbits entfernt sind, und
eine Exponenteneinstelleinrichtung (55) zum Einstellen des Exponenten des numerischen Ergebnisses um die Größe der Nullbeseitungsverschiebung.
eine Schaltungseinrichtung (52) zum Verschieben der Mantisse des Ergebnisses, bis alle führenden Nullbits entfernt sind, und
eine Exponenteneinstelleinrichtung (55) zum Einstellen des Exponenten des numerischen Ergebnisses um die Größe der Nullbeseitungsverschiebung.
4. Gleitpunktzahlenakkumulatorschaltung nach Anspruch 3,
dadurch gekennzeichnet,
daß die Einrichtung zum Umwandeln des nicht normalisierten
numerischen Ergebnisses in normalisierte Form eine bedingte
Komplementschaltung (50) zum Berechnen des Komplements
der Mantisse des numerischen Ergebnisses, wenn das
Ergebnis negativ ist, aufweist.
5. Gleitpunktzahlenakkumulatorschaltung nach einem der vorangehenden
Ansprüche,
dadurch gekennzeichnet,
daß der Eingangsabschnitt (3) eine Schaltungseinrichtung
zum Empfangen von Teilen der Eingangszahl in einer zeitmultiplexierten
Folge aufweist.
6. Gleitpunktzahlenakkumulatorschaltung nach einem der vorangehenden
Ansprüche
dadurch gekennzeichnet,
daß der Exponentenvergleichsabschnitt (24 bis 26, 30 bis
32) eine Schaltungseinrichtung zum Einstellen der Verschiebungscodegruppe,
wenn die Summe aus der Akkumulatorschaltung
(40 bis 45) überläuft, aufweist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US06/818,284 US4825400A (en) | 1986-01-13 | 1986-01-13 | Floating point accumulator circuit |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3700323A1 DE3700323A1 (de) | 1987-07-16 |
DE3700323C2 true DE3700323C2 (de) | 1992-05-07 |
Family
ID=25225150
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19873700323 Granted DE3700323A1 (de) | 1986-01-13 | 1987-01-08 | Gleitpunktzahlenakkumulatorschaltung |
Country Status (4)
Country | Link |
---|---|
US (1) | US4825400A (de) |
JP (1) | JPS62196767A (de) |
DE (1) | DE3700323A1 (de) |
GB (1) | GB2185338B (de) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4999802A (en) * | 1989-01-13 | 1991-03-12 | International Business Machines Corporation | Floating point arithmetic two cycle data flow |
US5212662A (en) * | 1989-01-13 | 1993-05-18 | International Business Machines Corporation | Floating point arithmetic two cycle data flow |
JPH03136166A (ja) * | 1989-10-23 | 1991-06-10 | Nec Corp | 演算回路 |
US5590365A (en) * | 1990-03-30 | 1996-12-31 | Kabushiki Kaisha Toshiba | Pipeline information processing circuit for floating point operations |
US5058048A (en) * | 1990-04-02 | 1991-10-15 | Advanced Micro Devices, Inc. | Normalizing pipelined floating point processing unit |
US5481488A (en) * | 1994-10-21 | 1996-01-02 | United Microelectronics Corporation | Block floating point mechanism for fast Fourier transform processor |
US5940312A (en) * | 1995-10-10 | 1999-08-17 | Microunity Systems Engineering, Inc. | Signed binary logarithm system |
US5835389A (en) * | 1996-04-22 | 1998-11-10 | Samsung Electronics Company, Ltd. | Calculating the absolute difference of two integer numbers in a single instruction cycle |
US6243731B1 (en) * | 1998-03-20 | 2001-06-05 | Texas Instruments Incorporated | Apparatus and method for extending register dynamic range |
JP3600026B2 (ja) * | 1998-08-12 | 2004-12-08 | 株式会社東芝 | 浮動小数点演算器 |
GB2396708B (en) | 2002-12-05 | 2006-06-21 | Micron Technology Inc | Hybrid arithmetic logic unit |
US7912887B2 (en) | 2006-05-10 | 2011-03-22 | Qualcomm Incorporated | Mode-based multiply-add recoding for denormal operands |
US8432403B2 (en) * | 2008-12-15 | 2013-04-30 | Leonovus Usa Inc. | Media action script acceleration apparatus |
US8487941B2 (en) * | 2008-12-15 | 2013-07-16 | Leonovus Usa Inc. | Media action script acceleration apparatus |
US20100149215A1 (en) * | 2008-12-15 | 2010-06-17 | Personal Web Systems, Inc. | Media Action Script Acceleration Apparatus, System and Method |
US8487942B2 (en) * | 2008-12-15 | 2013-07-16 | Leonovus Usa Inc. | Media action script acceleration system |
US9021000B2 (en) | 2012-06-29 | 2015-04-28 | International Business Machines Corporation | High speed and low power circuit structure for barrel shifter |
US9575725B1 (en) * | 2014-03-18 | 2017-02-21 | Altera Corporation | Specialized processing block with embedded pipelined accumulator circuitry |
US10175944B2 (en) | 2017-04-12 | 2019-01-08 | Intel Corporation | Mixed-precision floating-point arithmetic circuitry in specialized processing blocks |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3551665A (en) * | 1966-09-13 | 1970-12-29 | Ibm | Floating point binary adder utilizing completely sequential hardware |
US4054787A (en) * | 1975-06-06 | 1977-10-18 | The United States Of America As Represented By The Secretary Of The Navy | Apparatus for computing an arithmetically accumulated sequence of numbers |
JPS6022371B2 (ja) * | 1980-08-18 | 1985-06-01 | 株式会社日立製作所 | ディジタル微分解析機 |
JPS5776634A (en) * | 1980-10-31 | 1982-05-13 | Hitachi Ltd | Digital signal processor |
JPS5947643A (ja) * | 1982-09-13 | 1984-03-17 | Hitachi Ltd | 演算処理方式 |
JPS59188740A (ja) * | 1983-04-11 | 1984-10-26 | Hitachi Ltd | フロ−テイング加算器 |
-
1986
- 1986-01-13 US US06/818,284 patent/US4825400A/en not_active Expired - Fee Related
-
1987
- 1987-01-08 DE DE19873700323 patent/DE3700323A1/de active Granted
- 1987-01-08 GB GB8700365A patent/GB2185338B/en not_active Expired
- 1987-01-13 JP JP62004235A patent/JPS62196767A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
US4825400A (en) | 1989-04-25 |
DE3700323A1 (de) | 1987-07-16 |
GB2185338A (en) | 1987-07-15 |
GB8700365D0 (en) | 1987-02-11 |
GB2185338B (en) | 1989-10-18 |
JPS62196767A (ja) | 1987-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3700323C2 (de) | ||
DE19983175B4 (de) | Verfahren, Prozessor und Einrichtung für Gleitkommaoperationen und Formatkonvertierungsoperationen | |
DE10085322B4 (de) | Schaltungsanordnung, Verfahren und Datenverarbeitungs-Einrichtung zum Durchführen einer Ein-Zyklus-Addition oder -Subtraktion und eines Vergleichs bei einer Arithmetik redundanter Form | |
DE3143223C2 (de) | ||
DE1162111B (de) | Gleitkomma-Recheneinrichtung | |
DE4403917C2 (de) | Vorrichtung zum Berechnen einer Bit-Besetzungszählung | |
DE3701599C2 (de) | ||
DE2405858A1 (de) | Normalisierendes verschiebezaehlernetzwerk | |
DE1549508C3 (de) | Anordnung zur Übertragsberechnung mit kurzer Signallaufzeit | |
DE4345029C2 (de) | Schaltkreis für diskrete Kosinustransformation | |
DE2612750A1 (de) | Multipliziereinrichtung | |
EP0453641A2 (de) | CORDIC-Prozessor für Vektordrehungen in Carry-Save-Architektur | |
DE2732008A1 (de) | Einrichtung zur reduzierung von fibonacci-p-codes auf die minimalform | |
EP0099142A2 (de) | Verfahren und Anordnung zum Demodulieren eines frequenzmodulierten Eingangssignals | |
DE2826773A1 (de) | Verfahren und schaltungsanordnung zum feststellen der wertigkeit von ziffern in arithmetischen operationen mit dezimalrechnern | |
DE4019646C2 (de) | Vorrichtung und Verfahren zum Multiplizieren von Datenwörtern in Zweier-Komplement-Darstellung | |
DE3933172A1 (de) | Akkumulator fuer komplexe zahlen | |
EP0176821B1 (de) | DPCM-Codierer mit verringerter interner Rechenzeit | |
DE19503035C2 (de) | Verfahren und Anordnung zum Ermitteln der Phasendifferenz zwischen Taktsignalen in einer Kommunikationseinrichtung | |
DE69633479T2 (de) | ODER-Gatter mit kontrollierbarer Breite | |
EP0191452B1 (de) | Verfahren und Schaltungsanordnung zur Überwachung der Summe bzw. Differenz zweier Grössen durch Vergleich mit einer dritten Grösse in binärer Darstellung | |
DE3702204C2 (de) | ||
DE1135217B (de) | UEberlaufanzeige | |
EP0489952A1 (de) | Schaltungsanordnung zur digitalen Bit-seriellen Signalverarbeitung | |
EP0433315A1 (de) | Schaltungsanordnung zur addition oder subtraktion von im bcd-code oder dual-code codierten operanden |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8127 | New person/name/address of the applicant |
Owner name: STAR TECHNOLOGIES, INC., STERLING, VA., US |
|
8128 | New person/name/address of the agent |
Representative=s name: REINHARD, H., DIPL.-CHEM. DR.RER.NAT. SKUHRA, U., |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |