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
Application number
DE3700323A
Other languages
English (en)
Other versions
DE3700323A1 (de
Inventor
Paul Andrew Daytona Beach Fla. Us Simoncic
Walter Robert Ormond Beach Fla. Us Steiner
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
STAR TECHNOLOGIES, INC., STERLING, VA., US
Original Assignee
STAR TECHNOLOGIES Inc STERLING VA US
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by STAR TECHNOLOGIES Inc STERLING VA US filed Critical STAR TECHNOLOGIES Inc STERLING VA US
Publication of DE3700323A1 publication Critical patent/DE3700323A1/de
Application granted granted Critical
Publication of DE3700323C2 publication Critical patent/DE3700323C2/de
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/485Adding; Subtracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/509Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators
    • G06F7/5095Adding; 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3832Less usual number representations
    • G06F2207/3836One's complement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/386Special constructional features
    • G06F2207/3884Pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49905Exception handling
    • G06F7/4991Overflow or underflow
    • G06F7/49915Mantissa overflow or underflow in handling floating-point numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49936Normalisation 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.
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.
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.
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.
DE19873700323 1986-01-13 1987-01-08 Gleitpunktzahlenakkumulatorschaltung Granted DE3700323A1 (de)

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)

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

* Cited by examiner, † Cited by third party
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 フロ−テイング加算器

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