DE10050589B4 - Vorrichtung und Verfahren zur Verwendung beim Durchführen einer Gleitkomma-Multiplizier-Akkumulier-Operation - Google Patents
Vorrichtung und Verfahren zur Verwendung beim Durchführen einer Gleitkomma-Multiplizier-Akkumulier-Operation Download PDFInfo
- Publication number
- DE10050589B4 DE10050589B4 DE10050589A DE10050589A DE10050589B4 DE 10050589 B4 DE10050589 B4 DE 10050589B4 DE 10050589 A DE10050589 A DE 10050589A DE 10050589 A DE10050589 A DE 10050589A DE 10050589 B4 DE10050589 B4 DE 10050589B4
- Authority
- DE
- Germany
- Prior art keywords
- logic
- result
- control signal
- circuit
- carry
- 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
- 238000000034 method Methods 0.000 title claims description 17
- 230000000295 complement effect Effects 0.000 claims description 15
- 230000008569 process Effects 0.000 claims description 2
- 241000030538 Thecla Species 0.000 description 12
- 238000010586 diagram Methods 0.000 description 12
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 238000007792 addition Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000001934 delay Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000015654 memory Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
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/50—Adding; Subtracting
- G06F7/505—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
- G06F7/5055—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination in which one operand is a constant, i.e. incrementers or decrementers
-
- 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/506—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages
- G06F7/508—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages using carry look-ahead circuits
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/08—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using semiconductor devices
- H03K19/094—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using semiconductor devices using field-effect transistors
- H03K19/096—Synchronous circuits, i.e. using clock signals
- H03K19/0963—Synchronous circuits, i.e. using clock signals using transistors of complementary type
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Optimization (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Power Engineering (AREA)
- Logic Circuits (AREA)
- Complex Calculations (AREA)
Abstract
Vorrichtung
zur Verwendung beim Durchführen
einer Gleitkomma-Multiplizier-Akkumulier-Operation, mit folgenden
Merkmalens
einer Mehrzahl von Latch-Speichern (32, 34, 36), die eine Mehrzahl von Operanden für die Operation enthalten;
einem Übertrag-Sicherungs-Addierer (38), der mit den Latch-Speichern gekoppelt ist, der die Operanden empfängt und der eine Übertrag-Sicherungs-Addier-Operation bezüglich der Operanden durchführt, um ein erstes Ergebnis zu erzeugen; und
einem Logikblock (40), der mit dem Übertrag-Sicherungs-Addierer (38) gekoppelt ist, der das erste Ergebnis empfängt und der eine Übertrag-Vorausschau-Addier-Operation bezüglich des ersten Ergebnisses durchführt, um ein zweites Ergebnis zu erzeugen, wobei der Logikblock (40) eine Logikschaltung (70, 90) aufweist, die eine Logikoperation bezüglich des zweiten Ergebnisses durchführt, die auf einem Steuersignal basiert, um einen Wert zur Verwendung bei der Gleitkomma-Multiplizier-Akkumulier-Operation zu erzeugen.
einer Mehrzahl von Latch-Speichern (32, 34, 36), die eine Mehrzahl von Operanden für die Operation enthalten;
einem Übertrag-Sicherungs-Addierer (38), der mit den Latch-Speichern gekoppelt ist, der die Operanden empfängt und der eine Übertrag-Sicherungs-Addier-Operation bezüglich der Operanden durchführt, um ein erstes Ergebnis zu erzeugen; und
einem Logikblock (40), der mit dem Übertrag-Sicherungs-Addierer (38) gekoppelt ist, der das erste Ergebnis empfängt und der eine Übertrag-Vorausschau-Addier-Operation bezüglich des ersten Ergebnisses durchführt, um ein zweites Ergebnis zu erzeugen, wobei der Logikblock (40) eine Logikschaltung (70, 90) aufweist, die eine Logikoperation bezüglich des zweiten Ergebnisses durchführt, die auf einem Steuersignal basiert, um einen Wert zur Verwendung bei der Gleitkomma-Multiplizier-Akkumulier-Operation zu erzeugen.
Description
- Die vorliegende Erfindung bezieht sich auf eine Vorrichtung und ein Verfahren zur Verwendung bei der Implementierung einer Gleitkomma-Multiplizier-Akkumulier-Operation.
- Eine logische Schaltungsanordnung zur Implementierung einer Gleitkomma-Multiplizier-Akkumulier-Operation (FMAC; FMAC = floating point multiply-accumulate operation) wurde entwikkelt. Diese Operation führt mit drei Operanden (A, B, C) die Operation A·B+C durch. Die FMAC-Operation ist nützlich insofern als sie verwendet werden kann um sowohl eine Addition als auch eine Multiplikation in einem logischen Schaltungsaufbau zu implementieren. Insbesondere wird für eine Additionsoperation der Wert des Operands A=1 gesetzt. Für eine Multiplikationsoperation wird der Wert des Operands C zu Null gesetzt.
-
1 ist z. B. ein Diagramm einer Schaltung10 gemäß dem Stand der Technik zur Verwendung bei der Implementierung einer FMAC-Operation. In der Schaltung10 enthalten drei Latch-Speicher12 ,14 und16 drei 17-Bit Operanden A, B und C. Die Werte dieser drei Operanden werden einem ersten Übertrag-Sicherungs-Addierer bzw. Übertrag-erhaltenden Addierer (CSA; CSA = carry-save adder)18 eingegeben. Das Ergebnis des ersten CSA18 wird einem zweiten CSA20 gemeinsam mit dem Wert einer Konstanten eingegeben, die auf der Leitung22 empfangen wird. Zuletzt wird die Ausgabe des zweiten CSA-Addierers20 einem Übertrag-Vorausschau-Addierer (CLA; CLA = carry-lookahead adder)24 eingegeben, der eine Additionsoperation durchführt und einen resultierenden Schiebewert auf einer Leitung26 zur Verwendung in einer FMAC-Operation ausgibt. - Der Schiebewert wird verwendet, um die Mantissen für den Additionsabschnitt der FMAC-Operation auszurichten. Die Gleitpunktzahlen, die durch die FMAC-Operation verwendet werden, werden jeweils als eine Mantisse und ein Exponent ausgedrückt. Das Ergebnis der Multiplizieroperation (A·B) erzeugt ein Produkt, das typischerweise einen vom Exponenten des Operanden C unterschiedlichen Exponenten aufweist. Die FMAC-Operation verwendet den Schiebewert um die Mantisse des Operanden C zu schieben und damit "auszurichten", um sie mit der Mantisse des Produktes A·B zu addieren. Obwohl die Mantisse des Operanden C verschoben wird, könnte alternativ die Mantisse des Produktes A·B verschoben werden um die Addieroperation durchzuführen. Das Berechnen des Schiebewertes und das Durchführen des Schiebens der Mantisse des Operanden C treten während der Multiplizieroperation auf. Das Format von Gleitkommazahlen und ihre Addition sind in der Technik bekannt.
- Die Verwendung dieser mehreren Stufen innerhalb der Schaltung
10 zum Erzeugen des Schiebewertes kann beim Durchführen der FMAC-Operation eine Verzögerung. von erheblicher Größe einführen. - Aus der US-4,228,520 A ist bereits ein Hochgeschwindigkeitsmultiplizierer bekannt, bei dem eine Variation des bekannten Verschiebungs-Addier-Algorithmus verwendet wird, wobei in jedem Zyklus eine Ziffer des Multiplikators mit dem gesamten Multiplikanden als Teilprodukt verarbeitet wird, das im nächsten Zyklus aufaddiert wird. Die Produkte höherer Ordnung werden mit einem Übertrags-Ausbreitungs-Addierer erzeugt.
- Aus der
US 5 253 195 A ist ein Multiplizierer mit einer Pipeline-Struktur bekannt. Innerhalb der Struktur wird ein optionaler Multiplizierer für kurze Gleitpunktoperationen verwendet. - Die Aufgabe der vorliegenden Erfindung besteht darin, eine Vorrichtung und ein Verfahren zu schaffen, die die FMAC-Operation schnell implementieren.
- Diese Aufgabe wird durch eine Vorrichtung gemäß Anspruch 1 oder ein Verfahren gemäß Anspruch 11 gelöst.
- Ein Vorteil der vorliegenden Erfindung besteht darin, die Laufzeitverzögerungen innerhalb einer Schaltung zur Durchführung einer FMAC-Operation zu reduzieren.
- Eine Vorrichtung in Übereinstimmung mit der vorliegenden Erfindung umfaßt eine Mehrzahl von Latch-Speichern, um eine Mehrzahl von Operanden aufzunehmen. Eine CSA-Schaltung führt eine CSA-Operation bezüglich der Operanden durch, um ein er stes Ergebnis zu erzeugen, und ein Logikblock führt eine CLA-Operation bezüglich des ersten Ergebnisses durch, um ein zweites Ergebnis zu erzeugen. Eine Logikschaltung in dem Logikblock führt eine Logikoperation bezüglich des zweiten Ergebnisses und basierend auf einen Steuersignal durch, um einen Schiebewert zur Verwendung in der FMAC-Operation zu erzeugen.
- Ein Verfahren gemäß der vorliegenden Erfindung umfaßt den Schritt des Empfangens einer Mehrzahl von Operanden. Eine CSA-Operation wird bezüglich der Operanden durchgeführt, um ein erstes Ergebnis zu erzeugen, und eine CLA-Operation wird bezüglich des ersten Ergebnisses durchgeführt, um ein zweites Ergebnis zu erzeugen. Bezüglich des zweiten Ergebnisses wird eine Logikoperation, die auf einem Steuersignal basiert, als Teil der CLA-Operation durchgeführt, um einen Schiebewert zur Verwendung in der FMAC-Operation zu erzeugen.
- Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
-
1 ein Logikdiagramm einer Schaltung gemäß dem Stand der Technik zur Verwendung bei der Implementierung einer FMAC-Operation; -
2 ein Logikdiagramm einer Schaltung zur Verwendung bei der Implementierung einer FMAC-Operation gemäß der vorliegenden Erfindung; -
3 ein Transistordiagramm einer Schaltungsanordnung gemäß dem Stand der Technik zur Verwendung bei der Implementierung einer FMAC-Operation entsprechend dem Logikdiagramm in1 ; -
4 ein Transistordiagramm einer Schaltungsanordnung für die Verwendung bei der Implementierung einer FMAC-Operation entsprechend dem Logikdiagramm in2 ; und -
5 ein Transistordiagramm einer Steuerschaltung zur Erzeugung von Steuersignalen für die Verwendung bei einer Implementierung einer FMAC-Operation unter Verwendung der Schaltungsanordnung, die in4 gezeigt ist. - Eine Schaltungsanordnung gemäß der vorliegenden Erfindung reduziert die Laufzeitverzögerungen bei der Durchführung einer FMAC-Operation indem eine Logikstufe elimentiert wird, die bei der Erzeugung eines Schiebewertes für die Operation verwendet wird. Eine weitere Logikstufe ist modifiziert um eine parallele Logikoperation durchzuführen und der reduzierten Logikstufe Rechnung zu tragen. Dies resultiert in einer erhöhten Ausführungsgeschwindigkeit bei der Berechnung des Schiebewertes zur Verwendung in einer FMAC-Operation.
-
2 ist ein Logikdiagramm einer Schaltung30 zur Verwendung bei der Durchführung einer FMAC-Operation in Übereinstimmung mit der vorliegenden Erfindung. Die Schaltung30 stellt eine Modifikation der Schaltung10 dar, die dem Stand der Technik entspricht und in1 gezeigt ist. Die Schaltung30 umfaßt drei Latch-Speicher32 ,34 und36 , die dafür vorgesehen sind, drei Operanden A, B und C für die FMAC-Operation zu enthalten, die in diesem Beispiel als 17-Bitoperanden gezeigt sind. Ein CSA38 empfängt die Werte der Operanden A, B und C aus den Latch-Speichern32 ,34 und36 . In der Schaltung30 wird jedoch ein zweiter CSA, der dem CSA20 in Schaltung10 entspricht, eliminiert. Die Eliminierung des zweiten CSA erhöht die Geschwindigkeit der Berechnung des resultierenden Schiebewertes für die Verwendung in einer FMAC-Operation, indem eine Logikstufe eliminiert wird. Sie reduziert somit die entsprechende Laufzeitverzögerungen. - Ein Logikblock
40 empfängt die Ausgaben des CSA38 und lie fert einen resultierenden Schiebewert auf einer Leitung48 . Der Schiebewert wird, wie es oben erklärt wurde, verwendet um Mantissen für die Addieroperation auszurichten. In diesem Beispiel wird der Logikblock40 unter Verwendung eines CLA implementiert, der modifiziert ist, um eine Exklusiv-ODER-(XOR-) Operation, die auf einem Steuersignal46 basiert, bezüglich des Ergebnisses der CLA-Operation durchzuführen. Die XOR-Funktion wird bezüglich des höchstwertigen Bits des Ergebnisses durchgeführt. Das Steuersignal46 wird basierend darauf erzeugt, ob die FMAC-Operation vom SIMD-Typ (SIMD = single instruction-multiple data = eine Anweisung mehrere Daten) oder vom Nicht-SIMD-Typ ist; SIMD-Operationen sind in der Technik bekannt. Wie es unten erklärt wird, kann die XOR-Operation innerhalb der existierenden Schaltung eines CLA im Logikblock40 implementiert sein, und erzeugt somit keine zusätzliche Laufzeitverzögerung. - Die zweite CSA
20 kann eliminiert werden, basierend darauf, wie die Konstante über Leitung22 wirkt. Insbesondere verwendet der zweite CSA20 in Schaltung10 nur die niedrigeren acht Bits der Konstante auf Leitung22 , und diese niedrigeren acht Bits variieren nur in der höchstwertigen Bitposition. Diese Variation ist bekannt, da die FMAC-Operation für eine Wirkung bezüglich Gleitkommazahlen einen Standard verwendet, wie er im IEEE-Standard für binäre Gleitkomma-Arithmetik, IEEE Std. 754-1985, spezifiziert ist, der hierin durch Bezugnahme aufgenommen wird. Außerdem sind CSAs und CLAs zusammen mit den Operationen, die sie implementieren, in der Technik bekannt. -
3 ist ein Transistordiagramm einer bekannten Schaltungsanordnung zur Implementierung einer Endstufe im CLA24 der in der Technik bekannten Schaltung10 . Im Vergleich ist4 ein Transistordiagramm, das ein Beispiel darstellt, wie die in der Technik bekannte Schaltung in3 modifiziert wird, um die XOR-Operation in Schaltung30 zu implementieren. Da CLAs in der Technik bekannt sind, ist nur die Endstufe für Darstellungszwecke gezeigt. Außerdem ist in diesem Beispiel nur die Endstufe als modifiziert gezeigt, obwohl zusätzliche Modifikationen, basierend auf einer speziellen Verwendung der CLA, ausgeführt werden können. - Wie in
3 gezeigt ist, umfaßt eine Endstufe in dem CLA24 zwei Sätze von Schaltungen50 und60 , entsprechend zwei Bits für jedes Eingabebit. Es existieren zwei Bits, da diese Implementierung z. B. komplementäre Logik verwendet, die Zweischienen-Domino-CMOS- oder Mausefallen-Logik genannt wird und die in der Technik bekannt sind. Die Schaltung50 umfaßt eine erste Stufe52 und eine zweite Stufe54 , die ein Summations-Hoch- (SUMH-) Signal58 und sein Komplement, ein Signal sSUMH56 erzeugen. Eine komplementäre Schaltungsanordnung60 umfaßt eine erste Stufe62 und eine zweite Stufe64 , die ein Summations-Niedrig- (SUML-) Signal68 und sein Komplement, ein Signal sSUML66 erzeugen. Die Signale (EVAL, DNG, COL, CO, PP2, GPG3, GPK3), die in den Schaltungen50 und60 gezeigt sind, sind in der Technik in Bezug auf FMAC-Operationen bekannt. -
4 stellt eine Schaltungsanordnung70 und90 dar, die Modifikationen bezüglich der Schaltungen50 bzw.60 enthält, zur Implementierung der XOR-Operation im CLA des Logikblocks40 . Die Schaltungen70 und90 stellen die Verarbeitung an der höchstwertigen Bitposition in der Endstufe des CLA im Logikblock40 dar. Der Logikblock40 umfaßt auch eine zusätzliche, bekannte Schaltungsanordnung zur Verarbeitung der anderen Bits, die von CSA38 für die CLA-Operation empfangen werden. Die Schaltung70 umfaßt, wie es gezeigt ist, zur Implementierung der XOR-Operation redundante Logik. Außerdem umfaßt sie zwei Stufen72 und76 , die den Funktionen der Stufen52 und54 entsprechen. Die Schaltung70 umfaßt auch eine zur Stufe72 redundante Stufe74 und eine zur Stufe76 redundante Stufe78 . Innerhalb von jeder dieser Stufen implementiert ein zusätzlicher Transistor die XOR-Operation. Insbesondere implementieren Transistoren80 ,82 ,84 und86 die XOR-Operation in den Stufen72 ,74 ,76 bzw.78 . Deshalb erzeugt das Ergebnis der Stufen ein SUMH Signal88 und sein Komplement, ein Signal sSUMH87 , ohne Verwendung eines zweiten CSA (wie z. B. CSA20 ). - Die Schaltung
90 entspricht der Schaltung60 und stellt ebenfalls Modifikationen zum Implementieren der XOR-Operation für die Ausgabe, die komplementär zur Stufe70 ist, dar. Die Schaltung90 umfaßt Stufen92 und96 , die den Stufen62 bzw.64 entsprechen. Die Schaltung90 umfaßt auch eine zur Stufe92 redundante Stufe94 und eine zur Stufe96 redundante Stufe98 . Jede dieser Stufen umfaßt auch einen zusätzlichen Transistor zur Implementierung der XOR-Operation. Insbesondere implementieren die Transistoren100 ,102 ,104 und106 die XOR-Operation bei den Stufen92 ,94 ,96 bzw.98 . Deshalb erzeugt der Betrieb dieser Stufen ohne Verwendung eines zweiten CSA ein SUML Signal108 und sein Komplement, ein Signal sSUML107 . - Demgemäß erzeugen die Signale
87 ,88 ,107 und108 den selben resultierenden Schiebewert auf Leitung48 wie der Schiebewert, der auf Leitung26 durch die Signale56 ,58 ,66 und68 erzeugt wird. Da die XOR-Operation durch eine Modifikation eines CLA zur Erzeugung dieser Signale durchgeführt wird, tritt sie, wie es in den Schaltungen70 und90 gezeigt ist, parallel zu der CLA-Operation auf und fügt keinerlei merkliche Laufzeitverzögerung hinzu. Die verschiedenen Signale (EVAL, COL, CO, DNG, PP2, GPG3, GPK3) in den Schaltungen70 und90 sind, abgesehen von den XOR-Signalen, in der Technik bekannt. -
5 ist ein Transistordiagramm einer Steuerschaltung110 zum Erzeugen der XOR-Steuersignale XOR hoch (XORH) und XOR niedrig (XORL) die in den Schaltungen70 und90 verwendet werden. Diese Steuersignale entsprechen dem Steuersignal46 . Der Betrieb der Steuerschaltung110 zum Erzeugen der XORH- und XORL-Signale tritt parallel mit der CLA-Operation im Logikblock40 oder einer anderen Verarbeitung auf und beeinflußt somit nicht die Gesamtverzögerung für die CLA-Operation im Logikblock40 . Im Betrieb empfängt die Steuerschal tung110 als Eingaben ein SIMD niedrig- (SIMDL) Signal112 , ein SIMD hoch- (SIMDH-) Signal114 , ein P-Signal116 und ein GorK-Signal118 . Diese Eingangssignale sind mit Bezug auf FMAC-Operationen in der Technik bekannt. Die Steuerschaltung110 verarbeitet diese Eingangssignale logisch um ein XORL-Signal120 und sein Komplement, ein XORH-Signal122 zu erzeugen. Um diese Signale zu erzeugen, implementiert die Steuerschaltung110 insbesondere folgende Logikfunktionen: XORL = (SIMDL)(P) + (SIMDH)(GorK) und XORH = (SIMDH)(P) + (SIMDL)(GorK). - Demgemäß wird durch die Verwendung dieser Steuersignale ein vollständiger CSA innerhalb der Beispielimplementierung zur Verwendung bei der Implementierung einer FMAC-Operation eliminiert. Die resultierende Laufzeitverzögerung wurde gleichfalls eliminiert. Diese Modifikation resultiert somit in einer erhöhten Berechnungsgeschwindigkeit für die FMAC-Operation und in einer entsprechenden Verbesserung im Verhalten für eine andere Schaltungsanordnung, die diese Implementierung der FMAC-Operation verwendet. Obwohl die Implementierung der modifizierten CLA-Operation durch ein Zweischienen-Domino-CMOS gezeigt wurde, kann ein beliebiger Typ einer geeigneten Logik verwendet werden. Außerdem kann, wenn eine spezifische Anwendung komplementäre Ausgänge nicht erfordert oder verwendet, nur eine modifizierte Endstufe in dem CLA verwendet werden.
- Obwohl die vorliegende Erfindung in Verbindung mit einem Ausführungsbeispiel beschrieben wurde, ist erkennbar, daß viele Modifikationen für Fachleute ohne weiteres ersichtlich sind, und diese Anmeldung soll jede beliebige Anpassung oder Variation des Ausführungsbeispiels abdecken. Beispielsweise können unterschiedliche Typen von CSAs und CLAs, unterschiedliche Typen von Transistoren zur Implementierung der XOR- und anderer Logikfunktionen, Operanden unterschiedlicher Größe und verschiedene Logiktypen zum Erzeugen der Steuersignale verwendet werden, ohne den Umfang der Erfindung zu verlassen. Diese Erfindung soll nur durch die Pa tentansprüche und ihre Äquivalente limitiert sein.
Claims (20)
- Vorrichtung zur Verwendung beim Durchführen einer Gleitkomma-Multiplizier-Akkumulier-Operation, mit folgenden Merkmalens einer Mehrzahl von Latch-Speichern (
32 ,34 ,36 ), die eine Mehrzahl von Operanden für die Operation enthalten; einem Übertrag-Sicherungs-Addierer (38 ), der mit den Latch-Speichern gekoppelt ist, der die Operanden empfängt und der eine Übertrag-Sicherungs-Addier-Operation bezüglich der Operanden durchführt, um ein erstes Ergebnis zu erzeugen; und einem Logikblock (40 ), der mit dem Übertrag-Sicherungs-Addierer (38 ) gekoppelt ist, der das erste Ergebnis empfängt und der eine Übertrag-Vorausschau-Addier-Operation bezüglich des ersten Ergebnisses durchführt, um ein zweites Ergebnis zu erzeugen, wobei der Logikblock (40 ) eine Logikschaltung (70 ,90 ) aufweist, die eine Logikoperation bezüglich des zweiten Ergebnisses durchführt, die auf einem Steuersignal basiert, um einen Wert zur Verwendung bei der Gleitkomma-Multiplizier-Akkumulier-Operation zu erzeugen. - Vorrichtung gemäß Anspruch 1, bei der die Logikschaltung (
70 ,90 ) die Logikoperation bezüglich eines höchstwertigen Bits des zweiten Ergebnisses durchführt. - Vorrichtung gemäß Anspruch 2, bei der die Logikschaltung (
70 ,90 ) eine Exklusiv-ODER-Operation zwischen dem höchstwertigen Bit und dem Steuersignal durchführt. - Vorrichtung gemäß einem der vorangehenden Ansprüche, bei der die Logikschaltung (
70 ,90 ) eine redundante Lo gikstufe (74 ,78 ,94 ,98 ) zum Verarbeiten eines höchstwertigen Bits in dem Logikblock umfaßt. - Vorrichtung gemäß Anspruch 4, bei der die redundante Logikstufe (
74 ,78 ,94 ,98 ) die Logikoperation bezüglich des höchstwertigen Bits parallel mit mindestens einem Abschnitt der Übertrag-Vorausschau-Addier-Operation durchführt. - Vorrichtung gemäß einem der vorangehenden Ansprüche, bei der die Logikschaltung (
70 ,90 ) die Logikoperation zum Erzeugen eines Schiebewertes zur Verwendung bei der Gleitkomma-Multiplizier-Akkumulier-Operation durchführt. - Vorrichtung gemäß einem der vorangehenden Ansprüche, die ferner eine Steuerschaltung (
110 ) zum Erzeugen des Steuersignals umfaßt. - Vorrichtung gemäß Anspruch 7, bei der die Steuerschaltung (
110 ) das Steuersignal basierend auf einer SIMD-Operation erzeugt. - Vorrichtung gemäß Anspruch 7, bei der das Steuersignal ein Paar komplementärer Signale (
87 ,88 ,107 ,108 ) ist und die Steuerschaltung das Paar der komplementären Signale (87 ,88 ,107 ,108 ) erzeugt. - Vorrichtung gemäß einem der vorangehenden Ansprüche, bei der der Logikblock (
40 ) einen Übertrag-Vorausschau-Addierer (70 ,90 ) der komplementäre Logikschaltungen aufweist, zum Liefern komplementärer Ausgaben als das zweite Ergebnis umfaßt. - Verfahren zum Verwendung beim Durchführen einer Gleitkomma-Multiplizier-Akkumulier-Operation, mit folgenden Schritten: Empfangen einer Mehrzahl von Operanden für die Operation; Durchführen einer Übertrag-Sicherungs-Addier-Operation bezüglich der Operanden, um ein erstes Ergebnis zu erzeugen; Durchführen einer Übertrag-Vorausschau-Addier-Operation bezüglich des ersten Ergebnisses, um ein zweites Ergebnis zu erzeugen; Empfangen eines Steuersignals; und Durchführen einer Logikoperation bezüglich des zweiten Ergebnisses basierend auf dem Steuersignal um einen Wert zur Verwendung bei der Gleitkomma-Multiplizier-Akkumulier-Operation zu erzeugen.
- Verfahren gemäß Anspruch 11, bei dem der Schritt des Durchführens der Logikoperation den Schritt des Durchführens der Logikoperation bezüglich eines höchstwertigen Bits des zweiten Ergebnisses umfaßt.
- Verfahren gemäß Anspruch 12, bei dem der Schritt des Durchführens der Logikoperation den Schritt des Durchführens einer Exklusiv-ODER-Operation zwischen dem höchstwertigen Bit und dem Steuersignal umfaßt.
- Verfahren gemäß einem der Ansprüche 11 bis 13, bei dem der Schritt des Durchführens der Logikoperation den Schritt des Verwendens einer redundanten Logikstufe zum Verarbeiten eines höchstwertigen Bits in einer Übertrag-Vorausschau-Addier-Schaltung umfaßt.
- Verfahren gemäß Anspruch 14, bei dem der Schritt des Verwendens den Schritt des Verarbeitens des höchstwertigen Bits parallel mit mindestens einem Abschnitt des Schritts des Durchführens der Übertrag-Vorausschau- Addier-Operation umfaßt.
- Verfahren gemäß einem der Ansprüche 11 bis 15, bei dem der Schritt des Durchführens der Logikoperation den Schritt des Erzeugens eines Schiebewertes zur Verwendung bei der Gleitkomma-Multiplizier-Akkumulier-Operation umfaßt.
- Verfahren gemäß einem der Ansprüche 11 bis 16, das ferner einen Schritt des Erzeugens des Steuersignals umfaßt.
- Verfahren gemäß Anspruch 17, bei dem der Schritt des Erzeugens den Schritt des Erzeugens des Steuersignals basierend auf einer SIMD-Operation umfaßt.
- Verfahren gemäß Anspruch 17, bei dem der Schritt des Erzeugens den Schritt des Erzeugens eines Paares komplementärer Signale als das Steuersignal umfaßt.
- Verfahren gemäß einem der Ansprüche 11 bis 19, bei dem der Schritt des Durchführens der Übertrag-Vorausschau-Addier-Operation den Schritt des Verwendens von komplementären Logikschaltungen für die Übertrag-Vorausschau-Addier-Operation zum Liefern einer komplementären Ausgabe als das zweite Ergebnis umfaßt.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US50737600A | 2000-02-18 | 2000-02-18 | |
US507376 | 2000-02-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE10050589A1 DE10050589A1 (de) | 2001-08-30 |
DE10050589B4 true DE10050589B4 (de) | 2006-04-06 |
Family
ID=24018399
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10050589A Expired - Fee Related DE10050589B4 (de) | 2000-02-18 | 2000-10-12 | Vorrichtung und Verfahren zur Verwendung beim Durchführen einer Gleitkomma-Multiplizier-Akkumulier-Operation |
Country Status (2)
Country | Link |
---|---|
US (2) | US7240085B2 (de) |
DE (1) | DE10050589B4 (de) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8402075B2 (en) * | 2009-03-16 | 2013-03-19 | Advanced Micro Devices, Inc. | Mechanism for fast detection of overshift in a floating point unit of a processing device |
US9213523B2 (en) | 2012-06-29 | 2015-12-15 | Intel Corporation | Double rounded combined floating-point multiply and add |
US10756753B2 (en) * | 2018-10-25 | 2020-08-25 | Arm Limited | Data compressor logic circuit |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4228520A (en) * | 1979-05-04 | 1980-10-14 | International Business Machines Corporation | High speed multiplier using carry-save/propagate pipeline with sparse carries |
US5253195A (en) * | 1991-09-26 | 1993-10-12 | International Business Machines Corporation | High speed multiplier |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4425623A (en) | 1981-07-14 | 1984-01-10 | Rockwell International Corporation | Lookahead carry circuit apparatus |
JPS5892036A (ja) | 1981-11-27 | 1983-06-01 | Toshiba Corp | 加算回路 |
DE3587480T2 (de) | 1984-02-20 | 1993-11-04 | Hitachi Ltd | Arithmetische operationseinheit und arithmetische operationsschaltung. |
JPS61213927A (ja) | 1985-03-18 | 1986-09-22 | Hitachi Ltd | 浮動小数点演算処理装置 |
US4737926A (en) | 1986-01-21 | 1988-04-12 | Intel Corporation | Optimally partitioned regenerative carry lookahead adder |
US4811272A (en) | 1987-05-15 | 1989-03-07 | Digital Equipment Corporation | Apparatus and method for an extended arithmetic logic unit for expediting selected floating point operations |
US4841467A (en) | 1987-10-05 | 1989-06-20 | General Electric Company | Architecture to implement floating point multiply/accumulate operations |
US5043934A (en) | 1990-02-13 | 1991-08-27 | Hewlett-Packard Company | Lookahead adder with universal logic gates |
US5166899A (en) | 1990-07-18 | 1992-11-24 | Hewlett-Packard Company | Lookahead adder |
US5479356A (en) | 1990-10-18 | 1995-12-26 | Hewlett-Packard Company | Computer-aided method of designing a carry-lookahead adder |
US5195051A (en) | 1992-03-31 | 1993-03-16 | Intel Corporation | Computation of sign bit and sign extension in the partial products in a floating point multiplier unit |
US5351207A (en) | 1992-08-31 | 1994-09-27 | Intel Corporation | Methods and apparatus for subtraction with 3:2 carry-save adders |
US5508952A (en) | 1993-10-19 | 1996-04-16 | Kantabutra; Vitit | Carry-lookahead/carry-select binary adder |
US5636157A (en) * | 1994-10-03 | 1997-06-03 | International Business Machines Corporation | Modular 64-bit integer adder |
US5757686A (en) | 1995-11-30 | 1998-05-26 | Hewlett-Packard Company | Method of decoupling the high order portion of the addend from the multiply result in an FMAC |
JPH09231055A (ja) | 1996-02-27 | 1997-09-05 | Denso Corp | 論理演算回路及びキャリールックアヘッド加算器 |
US5892698A (en) | 1996-04-04 | 1999-04-06 | Hewlett-Packard Company | 2's complement floating-point multiply accumulate unit |
US5719803A (en) * | 1996-05-31 | 1998-02-17 | Hewlett-Packard Company | High speed addition using Ling's equations and dynamic CMOS logic |
US5860017A (en) | 1996-06-28 | 1999-01-12 | Intel Corporation | Processor and method for speculatively executing instructions from multiple instruction streams indicated by a branch instruction |
US5859999A (en) | 1996-10-03 | 1999-01-12 | Idea Corporation | System for restoring predicate registers via a mask having at least a single bit corresponding to a plurality of registers |
US5790444A (en) * | 1996-10-08 | 1998-08-04 | International Business Machines Corporation | Fast alignment unit for multiply-add floating point unit |
US5944777A (en) | 1997-05-05 | 1999-08-31 | Intel Corporation | Method and apparatus for generating carries in an adder circuit |
-
2000
- 2000-10-12 DE DE10050589A patent/DE10050589B4/de not_active Expired - Fee Related
-
2003
- 2003-07-07 US US10/613,095 patent/US7240085B2/en not_active Expired - Fee Related
-
2004
- 2004-05-26 US US10/853,518 patent/US7444366B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4228520A (en) * | 1979-05-04 | 1980-10-14 | International Business Machines Corporation | High speed multiplier using carry-save/propagate pipeline with sparse carries |
US5253195A (en) * | 1991-09-26 | 1993-10-12 | International Business Machines Corporation | High speed multiplier |
Also Published As
Publication number | Publication date |
---|---|
US20040220991A1 (en) | 2004-11-04 |
US7240085B2 (en) | 2007-07-03 |
DE10050589A1 (de) | 2001-08-30 |
US20040068531A1 (en) | 2004-04-08 |
US7444366B2 (en) | 2008-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE68924477T2 (de) | Gleitkommaeinheit mit gleichzeitiger Multiplikation und Addition. | |
DE69131458T2 (de) | Hardware-Anordnung zur Addition und Subtraktion von Gleitkommazahlen | |
DE69430838T2 (de) | Schaltung und Verfahren zur parallelen Verschiebung und Addition | |
DE69416283T2 (de) | Überlaufsteuerung für arithmetische Operationen | |
DE69132517T2 (de) | Gleitkommaprozessor | |
DE69435047T2 (de) | Schaltung und Verfahren zur parallelen Addition und Mittelwertbildung | |
DE3854321T2 (de) | Populationszählung in Rechnersystemen. | |
DE69821408T2 (de) | Multiplikationsverfahren und -vorrichtung | |
DE69032891T2 (de) | Verfahren und Gerät zur Ausführung mathematischer Funktionen mit Hilfe polynomialer Annäherung und eines Multiplizierers rechteckigen Seitenverhältnisses | |
DE68928376T2 (de) | Vorrichtung zum multiplizieren, teilen und ziehen der quadratwurzel | |
DE68928058T2 (de) | Gerät und verfahren zur prädiktion von gleitkommanormalisierung | |
DE3700991A1 (de) | Digitaler uebertragsvorgriffsaddierer | |
DE69032890T2 (de) | Verfahren und Gerät zur Ausführung der Quadratwurzelfunktion mit Hilfe eines Multiplizierers rechteckigen Seitenverhältnisses | |
DE69434806T2 (de) | Verfahren, System und Vorrichtung zum automatischen Entwurf einer Multiplikatorschaltung und durch die Durchführung dieses Verfahrens entworfene Multiplikatorschaltung | |
DE4403917C2 (de) | Vorrichtung zum Berechnen einer Bit-Besetzungszählung | |
DE3888230T2 (de) | Einrichtung und Verfahren zur Durchführung einer Schiebeoperation mit einer Multipliziererschaltung. | |
DE68924386T2 (de) | Verfahren und Gerät zur Radix-2**n-Division mit überlappender Quotientenbitauswahl und gleichzeitiger Rundung und Korrektur des Quotienten. | |
DE4101004C2 (de) | Paralleler Multiplizierer mit Sprungfeld und modifiziertem Wallac-Baum | |
DE3852576T2 (de) | Einrichtung und Verfahren für eine erweiterte Arithmetik-Logik-Einheit zur Beschleunigung der ausgewählten Operationen. | |
DE3701599C2 (de) | ||
DE10013068C2 (de) | Potenzierungsoperationsvorrichtung | |
DE69808362T2 (de) | Multiplizierverfahren und Multiplizierschaltung | |
DE10219158B4 (de) | Vorrichtung und Verfahren zum Berechnen eines Ergebnisses einer modularen Multiplikation | |
DE102007037363A1 (de) | Standardzelle für Arithmetiklogikeinheit und Chipkartensteuerung | |
DE4019646C2 (de) | Vorrichtung und Verfahren zum Multiplizieren von Datenwörtern in Zweier-Komplement-Darstellung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |