DE68924477T2 - Gleitkommaeinheit mit gleichzeitiger Multiplikation und Addition. - Google Patents

Gleitkommaeinheit mit gleichzeitiger Multiplikation und Addition.

Info

Publication number
DE68924477T2
DE68924477T2 DE68924477T DE68924477T DE68924477T2 DE 68924477 T2 DE68924477 T2 DE 68924477T2 DE 68924477 T DE68924477 T DE 68924477T DE 68924477 T DE68924477 T DE 68924477T DE 68924477 T2 DE68924477 T2 DE 68924477T2
Authority
DE
Germany
Prior art keywords
sum
adder
carry
adders
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
DE68924477T
Other languages
English (en)
Other versions
DE68924477D1 (de
Inventor
John Cocke
Robert Kevin Montoye
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of DE68924477D1 publication Critical patent/DE68924477D1/de
Publication of DE68924477T2 publication Critical patent/DE68924477T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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/544Methods 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 for evaluating functions by calculation
    • G06F7/5443Sum of products
    • 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
    • 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
    • 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/49942Significance control
    • G06F7/49947Rounding

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Description

  • Die Erfindung bezieht sich auf eine Vorrichtung zur Ausführung der Gleitkommaberechnung A x B + C, enthaltend ein Mittel zum Multiplizieren von A x B, um Teilergebnisse zu erzeugen und ein Ausrichtungsmittel zum Ausrichten von C nach den Teilergebnissen, wobei die Multiplikation parallel mit der Ausrichtung ausgeführt wird, darüber hinaus enthaltend ein Mittel zum Inkrementieren des Operanden C, wenn der Operand C höhere Wertigkeit als eine Summe der Teilergebnisse aufweist, ein Mittel zum Addieren der Teilergebnisse und des ausgerichteten C und ein Mittel zum Normieren des Ergebnisses.
  • Die Verarbeitung von Gleitkommaberechnungen ist für den Betrieb moderner Computer wichtig. Die Erfahrung zeigt, daß Universalprozessoren zur Ausführung von Gleitkommaberechnungen nicht gut geeignet sind, und als eine Folge davon sind spezialisierte Gleitkommaeinrichtungen (FPU) oder -prozessoren entwickelt werden, um numerisch aufwendige Berechnungen zu bearbeiten.
  • Potentielle Anwendungen von Gleitkommahardware reichen von Tischmikrocomputern über Signalverarbeitungs- und Parallelverarbeitungssystemen bis zu den größten Großrechnern.
  • Eine Gleitkommaeinheit kann erforderlich sein, um verschiedene mathematische Berechnungen mit Gleitkommazahlen wie Addition, Subtraktion, Multiplikation und Division auszuführen. Manche Gleitkommahardware sieht auch eingebaute Merkmale vor, um andere mathematische Berechnungen wie eine Berechnung von transzendenten Funktionen zu unterstützen.
  • Da es stets nützlich ist, die Geschwindigkeit, mit der ein Gleitkommaprozessor seine Funktionen ausführt, zu maximieren, besteht eine Maßnahme, die verwendet wird, um Leistungssteige- rungen zu erhalten, darin, spezialisierte Hardware vorzusehen, um spezielle Gleitkommafunktionen zu realisieren. Beispielsweise treten gewisse Kombinationen von arithmetischen Funktionen in Berechnungen regelmäßig auf, wie die Berechnung von Ausdrücken der Form A x B + C. Verschiedene wichtige mathematische Konzepte enthalten Berechnungen dieser Art, wie beispielsweise Skalarprodukte der Form
  • und Berechnungen nach der Hornerschen Regel, bei denen gilt:
  • Ax³ + Bx² + Cx + D = D + x (C + x(B + Ax)).
  • Viele Gleitkommahardwareeinheiten werden realisiert, indem höchstintegrierte Schaltungen (VLSI) verwendet werden, bei denen der Entwickler von VLSI-FPUs oftmals den durch spezielle Funktionen eingenommenen Flächenverbrauch und auch die Optimierung von FPU-Leistung durch Maximierung ihrer Geschwindigkeit berücksichtigen muß. Ein herkömmlicher FPU-Entwurf setzte getrennte Multiplizier- und Addierhardwareeinheiten und ein Verfahren zum Verbinden der zwei Einheiten ein, wenn die häufige Multiplizier- Addierberechnung A x B + C erforderlich war. Schnelle Multiplikation erfordert einen schnellen Addierer in der Endstufe, wie in "A suggestion for a fast multiplier" von C. S. Wallace, IEEE Transactions on Computers, EC-13, Februar, 1964, S. 14 bis 17 gezeigt.
  • Ein Hochleistungsentwurf erfordert Hardware, um Berechnungen der Art A x B + C auszuführen:
  • - Zwei schnelle Addierer (einer für die Multiplikationsberechnung und einer für Addition)
  • - Zwei Rundungseinrichtungen (eine für die Multiplikationsberechnung und eine für Addition)
  • - Vier Eingangsanschlüsse (zwei für die Multiplikationsberechnung und zwei für Addition)
  • - Zwei Ausgangsanschlüsse (einer für die Multiplikationsberechnung und einer für Addition)
  • - Zwei Befehle (einer für die Multiplikationsberechnung und einer für Addition)
  • Durch die Veröffentlichung IBM Technical Disclosure Bulletin, Band 30, Nr. 3, August 1987, Seiten 982 bis 987, "Multiply-addition - an ultra high performance data flow" ist eine verbesserte Arithmetikeinrichtung zur Ausführung von Gleitkommaberechnungen der Art A x B + C bekannt, die einen Multiplizierer enthält, um Teilergebnisse von A x B zu erzeugen, und Ausrichtungsmittel, um C nach den Teilergebnissen auszurichten, wobei die Multiplikation parallel mit der Ausrichtung ausgeführt wird. Diese Einrichtung enthält darüber hinaus einen Inkrementierer zum Inkrementieren des Operanden C, wenn er eine höhere Wertigkeit als eine Summe der Teilergebnisse für den Multiplizierer aufweist. Für die Addition der Teilergebnisse vom Multiplizierer und des Operanden C umfaßt die Einrichtung eine Kette von 7/3-Zählerstufen, deren Ausgang mit Registern verbunden ist, die als Eingangsregister einer Arithmetik- und Logikeinrichtung dienen. Diese ALU erzeugt die Endsumme, die einem Detektor für führende Nullen, dem ein Normierer folgt, zugeführt wird.
  • Die Erfindung wird die Hardware zur Ausführung von Gleitkommaberechnungen der Art A x B + C verbessern und insbesondere eine minimale Laufzeit von irgendeinem Eingang zum Ergebnis einer solchen Berechnung aufweisen.
  • Die Maßnahmen gemäß der Erfindung sind in Anspruch 1 gekennzeichnet. Die anderen Ansprüche beziehen sich auf vorteilhafte Ausführungen der Erfindung.
  • Verschiedene Realisierungsbeispiele der Erfindung werden nachfolgend unter Bezugnahme auf die Zeichnungen beschrieben werden.
  • Fig. 1 ist ein Blockdiagramm der vorliegenden Erfindung;
  • Fig. 2 zeigt einen in der vorliegenden Erfindung verwendeten Komplementierer;
  • Fig. 3, 4 und 5 zeigen einen Matrixmultiplizierer, der zur Erläuterung der vorliegenden Erfindung nützlich ist;
  • Fig. 6 zeigt einen Wallace-Baum, der in der vorliegenden Erfindung als Teilmultiplizierer verwendet wird.
  • Fig. 7A zeigt einen Übertrag-Summen-Addierer, der im Teilmultiplizierer der vorliegenden Erfindung verwendet und als ein (3,2)-Addierer beschrieben ist.
  • Fig. 7B zeigt einen (7,3)-Addierer.
  • Fig. 8 zeigt (7,3)-Addierer, die in einem Teilmultiplizierer in der vorliegenden Erfindung verwendet werden.
  • Die vorliegende Erfindung gibt eine Vorrichtung an, die schnelle und genaue Gleitkommaarithmetikberechnungen der Art A x B + C ausführt.
  • Gleitkommazahlen weisen eine Form auf, in der eine vorzeichenbehaftete Mantisse vorliegt, die mit einer Basis, die mit einem ganzzahligen Exponenten potenziert ist, multipliziert wird. In dezimaler Schreibweise würde folglich die Zahl 101,32 als 0,10132 x 10³ geschrieben werden, wobei 3 der Exponent ist und 0,10132 die Mantisse ist. In diesem Beispiel ist 10 die Basis der Zahl. Gleitkommaschreibweise kann auch bei Zahlen zu anderen Basen verwendet werden, und im Fall von digitalen Hochgeschwindigkeitscomputern sind Gleitkommazahlen Dualzahlen. Folglich könnte eine Dualzahl der Form 101,011 als eine Gleitkommazahl der Form 0,101011 x 2³ geschrieben werden, wobei die Mantisse 0,101011 ist, der Exponent 3 ist, die Basis 2 ist und das Komma als ein Dualkomma anstelle eines Dezimalkommas bezeichnet wird. Natürlich würde in einem digitalen Computer der Exponent 3 die Dualzahl 11 werden.
  • Es ist zu erkennen, daß bei der Ausführung von Additionen binärer Gleitkommazahlen die Zahlen in bezug auf das Dualkomma ausgerichtet sein müssen, um die Addition korrekt auszuführen. Wenn die Additionen ausgeführt werden, sollten die zu addierenden Zahlen denselben Exponenten aufweisen. Es kann dann eine direkte Addition der Mantissen durchgeführt werden.
  • In einer Multiplikation können die Mantissen multipliziert werden, indem irgendeine von mehreren bekannten Techniken verwendet wird, und die Exponenten werden addiert. Es wird klar sein, daß dann, wenn A und B mit M bzw. N Bit breiten Mantissen miteinander multipliziert werden, die maximale Länge des Ergebnisses M + N ist. Der Exponent wird eine Größe aufweisen, die sich aus der Addition der zwei Exponenten ergibt. Es wird dann klar sein, daß die zum Ergebnis A x B zu addierende Zahl C wahrscheinlich nicht denselben Exponenten wie das Ergebnis aufweisen wird und deshalb verschoben werden muß, so daß sie korrekt nach dem Ergebnis von A x B ausgerichtet ist.
  • Die vorliegende Erfindung führt Berechnungen der Art A x B + C aus. Es ist zu erkennen, daß solch eine Einheit als die Basis für eine arithmetische Logikeinheit (ALU) verwendet werden kann, da einfache Multiplikationen A x B ausgeführt werden können, indem C = 0 gesetzt wird, und einfache Additionen ausgeführt werden können, z.B. A + C, indem B (oder A) = 1 gesetzt wird.
  • Man betrachte die Berechnung von A x B + C, wobei A, B und C Gleitkommazahlen mit m-Bit-Mantissen und e-Bit-Exponenten sind. In der vorliegenden Erfindung wird der Operand C am Gleitkommaprodukt von A und B ausgerichtet, indem der Operand C um eine Anzahl von Bits gleich Exponent von A plus Exponent von B minus Exponent von C verschoben wird. In der vorliegenden Erfindung kann diese Tätigkeit parallel mit der in der Multiplikation erforderlichen Biterzeugung und -zusammenfassung stattfinden. Ein Teilmultiplizierer wird verwendet, um zwei Summanden zu erhalten, deren Summe gleich dem Ergebnis A x B ist. Diese Summanden oder Teilprodukte werden parallel mit der Verschiebung des Operanden C bestimmt.
  • Es ist wohlbekannt, daß eine Multiplikation wenigsten log(m) Schritte benötigt, wobei m die Anzahl von Bits im Eingabewort ist, um die Teilprodukte zu zwei Zahlen, die addiert werden müssen, um das Endergebnis zu erhalten, zu verringern. Durch Ausrichtung des Terms C nach dem Produkt der Berechnung von A x B während der Multiplikationszeit verursacht die Additionsberechnung geringe zusätzliche Laufzeit über die Multiplikationsberechnung hinaus. Nach der Ausrichtung und Einbeziehung des Terms C in die Reduktion muß eine abschließende Addition der 2 Terme stattfinden. Wenn der Exponent C um mehr als 2m Bits kleiner ist als die Summe der Exponenten A und B, ist das Ergebnis C geringwertiger als jegliche Bits in der Multiplikation von A und B. Die Bits von C werden deshalb aus dem Bereich von A x B "hinausgeschoben" und im Produkt nicht verwendet. Wenn in einer Berechnung von A x B + C der Exponent C um einen geringen (kleiner als m) Wert größer als die Summe der Exponenten A und B ist, ist es möglich, daß sich ein Überlauf aus der zur Vervollständigung der Multiplikation erforderlichen Addition ergeben kann. Dieser Überlauf muß zum Überlaufbereich des Verschiebers für C in einem Inkrementierer addiert werden, der als ein Addierer arbeitet, der seine Eingabe inkrementiert, wenn eine Übertragseingabe vorliegt.
  • Wenn der Exponent C um mehr als m größer als die Summe der Exponenten A und B ist, ist das Ergebnis der Multiplizier-Addier-Berechnung C. Wenn der Exponent C um mehr als 2m geringer als die Summe der Exponenten A und B ist, ist A x B das Ergebnis der Multiplizier-Addier-Berechnung. Irgendeine Exponentendifferenz außerhalb des Intervalls 3m hat das Ergebnis von C (wenn der Exponent von C größer ist) oder A x B. Das endgültige Ergebnis muß folglich erzeugt werden, indem ein Addierer von 2m Bits (für die Multiplikation erforderlich) und ein Inkrementierer von m Bits (für den Überlaufbereich erforderlich) verwendet werden. Dann muß das Ergebnis für 3m normiert und gerundet werden, um führende Nullen zu entfernen und die höchste Genauigkeit anzugeben.
  • Man nehme nun auf Fig. 1 Bezug, die ein Blockdiagramm einer bevorzugten Ausführung der Erfindung zeigt. Eine Exponenteneinheit 10 empfängt die drei Exponenten EXP(A), EXP(B) und EXP(C). Die hauptsächliche Funktion der Exponenteneinheit 10 besteht darin, den Wert von EXP(A) + EXP(B) - EXP(C) zu ermitteln, was durch einen Addierer ausgeführt wird. Die Exponenteneinheit 10 weist zusätzliche Funktionen auf, die z. B. mit der Bearbeitung von vorzeichenbehafteten Zahlen verknüpft sind. Es ist beabsichtigt, daß die vorliegende Erfindung vorzeichenbehaftete Zahlen mit einem Vorzeichenbit verwendet, wobei ein Vorzeichenbit 0 eine positive Zahl anzeigt und ein Vorzeichenbit 1 eine negative Zahl anzeigt. Das Vorzeichenbit kann an verschiedenen Stellen liegen, solange seine Verwendung innerhalb der Zahl konsistent ist. In den meisten üblichen Systemen besetzt das Vorzeichenbit die Stelle des höchstwertigen Bits.
  • Vorzeichenbehaftete Zahlen können durch digitale Schaltungen in einfacher Weise bearbeitet werden, wenn sie in ihre Einerkomplementdarstellung umgesetzt werden. In der vorliegenden Erfindung werden die Vorzeichen von A, B und C in der Eponenteneinheit 10 verglichen. Wenn das Vorzeichen von C wie durch Vergleicher 11 ermittelt vom Ergebnis von A x B abweicht, dann wird die Ausgabe von Verschieber 14 (einschließlich dem Überlauf) durch Komplementierer 15 in eine Einerkomplementdarstellung komplementiert. Der Komplementierer 15 kann wie in Figur 2 aufgebaut werden und enthält Exklusiv-ODER-Gatter 40 bis 41. Es wird den Fachleuten offensichtlich sein, daß die Anzahl von Exklusiv-ODER-Gattern von der Anzahl von Bits in der im System verwendeten Binärzahl abhängt. Jedesmal wenn ein komlementäres Signal am Anschluß 15A empfangen wird, wird das DATEN EIN-Signal komplementiert und als DATEN AUS-Signal bereitgestellt.
  • Die Mantissen von A und B, die als MAN(A) bzw. MAN(B) bezeichnet werden, werden vom Teilmultiplizierer 12 empfangen. Teilmultiplizierer 12, dessen Arbeitsweise unten weitergehend beschrieben werden wird, multipliziert A und B, liefert aber nur ein Teilprodukt, das zwei Summanden umfaßt, deren Summe A x B ist.
  • Die als MAN(C) bezeichnete Mantisse von Operand C wird dem Verschieber 14 zugeführt, der nach Art eines normalen Verschiebers arbeitet, um C um den aus der Berechnung EXP(A) + EXP(B) - EXP(C) ermittelten Wert nach rechts zu schieben. Dieser Wert wird Anschluß 14A von Verschieber 14 zugeführt und steuert wiederum den Wert, um den Verschieber 14 seine Eingabe MAN(C) nach links verschiebt. Die verschobene und hier als Cverschoben bezeichnete Ausgabe von MAN(C) wird zusammen mit den Teilprodukten aus Teilmultiplizierer 12 dem Übertrag-Summen-Addierer 16 zugeführt. Ein Überlauf aus der Schiebeoperation (EXP(A) + EXP(B) - EXP(C)), der negativ ist, verursacht ein Linksschieben. Es ist zu bemerken, daß Überlauf jedesmal dann auftritt, wenn C höherwertiger ist als A und B, d.h. EXP(C) > EXP(A) + EXP(B).
  • Der Überlauf-Summen-Addierer 16 ist ein normaler in der Technik bekannter Überlauf-Summen-Addierer mit drei Eingängen und zwei Ausgängen, wobei die zwei Ausgänge der als 5 bzw. C bezeichnete Summen- und Überlaufausgang sind.
  • Die Ausgänge C und S des Überlauf-Summen-Addierers 16 werden dem Volladdierer 18 zugeführt, der ein in der Technik bekannter normaler Addierer ist, der die zwei Ergebnisse C und S aus Überlauf-Summen-Addierer 16 addiert. Er enthält auch einen Überlaufeingabe-(CI)-Eingang, um eine Überlaufeingabe zu empfangen, und einen Überlaufausgabe-Ausgang (CO), um eine Überlaufausgabe bereitzustellen, wenn das Ergebnis der Addierberechnung tatsächlich eine Überlaufausgabe erzeugt.
  • Das Signal aus Vergleicher 11 wird an Leitung 17 auch Inkrementierer 20 als das Einerkomplementvorzeichen zugeführt und an die erste Bitstelle gesetzt. Dieses Signal wird dann schließlich am Anschluß 22A an Komplementierer 22 übertragen, was vom Ergebnis der Inkrementierung durch Inkrementierer 20 abhängt, um den Komplementbildungseingang im Komplementierer 22 wie erforderlich ein- oder auszuschalten.
  • Das CI-Signal wird von Inkrementierer 20 empfangen, der den Überlauf von Verschieber 14 empfängt. Der Inkrementierer 20 arbeitet als ein Addierer mit einem auf Null gesetzten Eingang. Er bewirkt folglich, daß der Überlauf von Verschieber 14 inkrementiert wird, wenn ein CO-Signal von Volladdierer 18, das am Überlaufeingabe-(CI)-Eingang des Inkrementierers 20 zugeführt wird, vorliegt. Wenn das Ergebnis der Inkrementierung in Inkrementierer 20 eine Überlaufausgabe (CO) bewirkt, wird dieses CO-Signal dem vorher genannten CI-Eingang von Volladdierer 18 zugeführt. Die inkrementierte Ausgabe wird an 20A zugeführt.
  • Der Komplementierer 22 empfängt die Ausgabe von Volladdierer 18 und Inkrementierer 20 komplementiert die empfangenen Werte. Dies ist notwendig, um vorzeichenbehaftete Zahlen wie oben beschrieben zu verarbeiten.
  • Der Normierer 24 bewirkt, daß führende Nullen beseitigt werden und folglich die Genauigkeit des Ergebnisses maximiert wird. Der Normierer 24 kann durch jegliche Schaltung realisiert werden, die führende Nullen erkennt und bewirkt, daß die Mantisse verschoben und der Exponent entsprechend inkrementiert oder dekrementiert wird. Eine besonders schnelle Schaltung, die diese Berechnung ausführt, ist in EP-A 362 580 mit dem Titel "Leading 0/1 Anticipator (LZA)", die dem Inhaber der vorliegenden Erfindung übertragen ist, beschrieben. Diese Schaltung ermöglicht die Ermittlung von führenden Nullen vor der Vollendung der Ermittlung des Ergebnisses und bewirkt folglich keine zusätzliche Laufzeit.
  • Runden ist erforderlich, um die Wertigkeit von Multiplizier-Addier-Berechnungen an die erforderliche Genauigkeit, oftmals die ursprüngliche Genauigkeit der Eingaben, anzupassen. Der Stand der Technik erforderte 2 derartige Rundungsoperationen, von denen eine der Multiplikationsberechnung folgte und eine der Additionsberechnung folgte. In diesen zwei Rundungsoperationen kann Genauigkeit verloren werden. Beispielsweise wenn m = 8 verwendet wird:
  • a = 0,11111110 x 2&sup0;
  • b = 0,10000001 x 2¹
  • c = -0,1 x 2¹
  • a x b = 0,111111111111110 x 2&sup0;
  • (auf 8 Stellen gerundet) = 0,1 x 2¹
  • a x b + c = 0,1 x 2¹ - 0,1 x 2¹
  • = 0
  • als eine einzige Berechnung,
  • a x b + c = -0,00000000000001 x 2&sup0;
  • = -0,1 x 2&supmin;¹³
  • da die volle Genauigkeit der Multiplikation über die Addition beibehalten wird.
  • Man bemerke, daß die Anzahl von Eingangs- und Ausgangsanschlüssen des kombinierten Multiplizierers und Addierers 3 Eingänge und einen Ausgang oder 4 Anschlüsse umfaßt. Dies ist wesentlich weniger als beim Stand der Technik, der 2 Eingänge und 1 Ausgang für jeden der Multiplizierer und Addierer oder 6 Anschlüsse ins- gesamt aufweist. Folglich kann ein einzelner Befehl mit 4 Adreßfeldern die kombinierte Multiplizier-Addier-Einheit adressieren, so daß die Befehlslänge für Gleitkommaberechnungen wesentlich verringert wird.
  • Einige Multiplikationsbäume, die als Teilmultiplizierer 12 verwendet werden können, weisen zusätzliche Eingänge auf, die ermöglichen, daß Cverschoben ohne Laufzeiteinbuße in die Multiplikation eingefügt wird (Fig. 6). Die Einbuße im ungünstigsten Fall ist jedoch die eines Übertrag-Summen-Addierers, was einen geringen Prozentsatz der Zykluszeit darstellt. Dies ermöglicht, daß die Multiplikationsberechnung mit nur einem geringeren Einfluß auf die Geschwindigkeit der Multiplikation mit der Additionsberechnung zusammengefaßt wird.
  • Der Teilmultiplizierer 14 liefert wie oben ausgeführt zwei Teilprodukte, die, wenn sie miteinander addiert werden, gleich dem gewünschten Ergebnis sind. Es gibt zahlreiche Arten, einen solchen Multiplizierer aufzubauen, aber in der bevorzugten Ausführungsform der vorliegenden Erfindung wird eine als ein Wallace- Baum bekannte Struktur verwendet, um eine beträchtlich schnellere Berechnung zu erhalten.
  • Um die Arbeitsweise eines Wallace-Baums zu verstehen, ist es nützlich, zuerst die Betriebsweise eines Matrixmultiplizierers, wie er in Figur 3 gezeigt wird, zu verstehen. Zur besseren Erläuterung ist ein Vier-Bit-Matrixmultiplizierer, der angepaßt ist, zwei Vier-Bit-Zahlen zu multiplizieren, gezeigt. In den meisten Realisierungen der vorliegenden Erfindung wird eine viel größere Anzahl von Bits zu bearbeiten sein. Zwecks der Erläuterung ist der Multiplizierer von Fig. 3 für die Multiplikation der Zahlen A&sub1;A&sub2;A&sub3;A&sub4; und B&sub1;B&sub2;B&sub3;B&sub4; gezeigt, wobei jedes Ai und Bi Bits der Vier-Bit-Zahlen A bzw. B darstellen.
  • Der Multiplizierer von Fig. 3 umfaßt eine Vielzahl von Zellen 50 bis 53, 70 bis 73, 90 bis 93 und 110 bis 113. Jede von diesen wiederum umfaßt UND-Gatter 54 bis 57, 74 bis 77, 94 bis 97 bzw. 114 bis 117. Die Eingänge jedes UND-Gatters sind jeweils mit den speziellen zu multiplizierenden Ai und Bi gekoppelt, und die UND- Gatter liefern im wesentlichen eine Ein-Bit-Multiplikation. Dies wird intuitiv offensichtlich werden, wenn betrachtet wird, daß nur Einsen und Nullen multipliziert werden, und das Ergebnis einer solchen Multiplikation kann wiederum nur 1 oder 0 sein. Die UND-Gatter erfüllen diese Funktion.
  • Während jedes Bit einzeln multipliziert werden kann, ist es auch notwendig, die Ergebnisse der einzelnen Multiplikationen zu addieren. Jede Zelle enthält auch einen mit 60 bis 63, 80 bis 83, 100 bis 103 und 120 bis 123 bezeichneten Volladdierer. Diese Volladdierer weisen drei Eingänge auf, zwei zum Empfangen eines zu addierenden Bits, einen Überlaufeingang von einem vorhergehenden Addierer in einem Multibit-Addierer und einen Überlaufausgang, der an den Überlaufeingang eines nachfolgenden Addierers geht. Einer der Eingänge der Volladdierer 60 bis 63 ist jeweils auf 0 gesetzt, da dies die erste Gruppe in der Matrix ist. Ebenfalls wird der Überlaufausgang der höchstwertigen Zelle einer jeden Reihe in der Matrix an den Eingang der Zelle darunter geführt. Diese Art von Struktur führt dieselbe Art von Addition aus, die eine Person manuell ausführen könnte, wobei jede Ziffer einer Zahl mit einer Ziffer des Multiplizierers multipliziert wird. Die Ergebnisse von aufeinanderfolgenden Zahlen im Multiplizierer werden jeweils um eine Dezimalstelle nach rechts geschoben, und die verschobenen Ergebnisse werden dann addiert. Die Ausgänge 130 bis 137 werden dann das Endergebnis aufweisen.
  • Solche Multiplizierer sind langsam, da der Weg, den eine Zahl durchläuft, lang ist. Beispielsweise muß eine Überlaufausgabe von Zelle 53 durch acht Zellen (53, 52, 73, 72, 93, 92 und 113, 112) laufen, bevor sie das Endergebnis erreicht. Es können aber auf einem ähnlichen Schema aufgebaute Multiplizierer aufgebaut werden, die viel schneller sind.
  • Ein um eine Stufe schnellerer Multiplizierer ist in Figur 4 gezeigt. Dieser Multiplizierer ist dem in Fig. 3 gezeigten sehr ähnlich mit der Ausnahme, daß die Überlaufausgänge dem Überlaufeingang der unmittelbar darunter und links diagonal liegenden Zelle zugeführt werden. Es wird von den Fachleuten verstanden werden, daß eine solche Struktur zulässig ist, da die Überlaufausgänge weiterhin in Spalten mit derselben Gewichtung oder Wertigkeit, die sie im Multiplizierer von Fig. 3 haben würden, addiert werden. Der Überlaufeingang der Addierer 60 bis 63 wird auf 0 gesetzt, da sie keine Überlaufeingabe von ihren Nachbaraddierern mehr empfangen. Es wird klar sein, daß dieser Multiplizierer schneller ist, da ein Überlauf nicht einen so langen Pfad durchlaufen muß. Beispielsweise muß der Überlaufausgang von 63 nun nur über vier Addierer laufen, nämlich 63, 83, 103 und 123. Zwei Nachteile, die diese Struktur möglicherweise aufweist, bestehen darin, daß sie nun zwei Teilprodukte anstelle eines Endergebnisses erzeugt und daß sie mehr Verdrahtung erfodert. Die Teilergebnisse können aber durch einen Übertrag-Summen-Addierer wie 16 in das Endergebnis überführt werden. Jede Leitung des Ausgangs enthält ein Teilprodukt, aber gewisse Leitungspaare, nämlich 141 und 142, 143 und 144 und 145 und 146, weisen beispielsweise dieselbe Gewichtung auf und werden durch einen Volladdierer addiert. Die anderen Leitungen, nämlich 140, 148, 149 und 150, enthalten auch Teilprodukte, aber die Teilprodukte für diese Bitstellen sind bereits durch die Struktur berechnet worden. Sie können wie vorliegend verwendet werden oder alternativ, wenn sie in einen Addierer eingespeist werden, müßte einer der Eingänge des Volladdierers auf Null gesetzt werden. Obwohl diese Struktur we&entlich schneller als die in Fig. 3 gezeigte ist, sind weitere Verbesserungen möglich.
  • Fig. 5 zeigt einen noch schnelleren Multiplizierer. Im Multiplizierer von Fig. 5 springt die Übertragsausgabe des Volladdierers nicht einfach zum Addierer diagonal unter diesem, sondern zwei Reihen unter diesem (wiederum zu derjenigen Spalte, die unmittelbar zu seiner linken benachbart liegt). Diese Struktur ist schneller, da die Zwischenergebnisse noch weniger Entfernung zu durchlaufen haben. Die Ausgaben 161, 162, 163 und 164, 165, 166 und 167, 168 und 169 haben jeweils dieselbe Gewichtung und werden durch einen Übertrag-Summen-Addierer addiert werden, um zwei Ausgaben zu liefern. Leitungen 170, 171 und 172, 173 und 174, 176 weisen auch dieselbe Gewichtung auf. Leitungen 160 und 176 sind bereits zu einem einzigen Bit überführt, und folglich ist kein zusätzlicher Addierer erforderlich.
  • Fig. 6 zeigt eine Wallace-Baumanordnung und ist in Baer, J. L., Computer Systems Architecture, "Rockville, Md.: Computer Science Press, 1980) S. 108 bis 110 beschrieben. Der Wallace-Baum ist im wesentlichen eine Erweiterung der Anordnung von Fig. 5. Wiederum Bezug nehmend auf Fig. 5 ist zu verstehen, daß die Addierer wie 63 nicht mehr notwendig sind, da sie zu zweien ihrer Eingänge nur 0 addieren müssen. Wenn viele Reihen übersprungen werden, wird der Wallace-Baum wie in Fig. 6 gezeigt erhalten. Die UND- Gatter 200 bis 211 von Fig. 6 entsprechen den UND-Gattern 50, 71, 92, 113 von Fig. 5. Zwecks der Erläuterung beschreibt Fig. 6 ein 12-Bit-Multiplikationsschema, während Fig. 5 nur ein 4-Bit- Multiplizierer ist. Im wesentlichen ist die Eingabe 249 drei Übertrag-Summen-Addierer-Laufzeiten später erforderlich als die Eingaben an 220, 222, 224 und 226. Diese Eingabe könnte Cverschoben vom Verschieber 14 und Komplementierer 15 sein, wobei ein ausreichend schneller Verschieber angenommen wird, und könnte die Multiplizier-Addier-Berechnung ohne jegliche zusätzliche Übertrag-Summen-Laufzeit erzeugen.
  • Um die Verdrahtungskomplexität der Multiplikation zu minimieren, können Wallace-Bäume darüber hinaus erweitert werden, indem leistungsfähigere Strukturen als Übertrag-Summen-Addierer verwendet werden. Ein Übertrag-Summen-Addierer ist ein 3-zu-2-Addierer (3,2), der 3 Eingänge bei Gewichtung 2&sup0; und 2 Ausgänge aufweist: einen von Gewichtung 2¹ und einen von Gewichtung 2&sup0;. Er weist 5 Eingangs-/Ausgangsverbindungen und 1 Ausgang weniger als Eingänge auf. Ein 7-zu-3-Addierer (7,3) weist 7 Eingänge bei Gewichtung 2&sup0; und 3 Ausgänge auf: einen von Gewichtung 2&sup0;, einen von Gewichtung 2¹ und einen von Gewichtung 2². Da dieser Addierer 4 Ausgänge weniger als Eingänge aufweist, sind nur 1/4 so viele (7,3)-Addierer erforderlich, um dieselbe Funktion wie Übertrag- Summen-Addierer auszuführen. Da die Gesamtzahl von Eingängen und Ausgängen 10 ist oder zweimal so viel wie im Fall von einem Übertrag-Summen-Addierer, ist die Gesamtzahl von Verbindungen an (7,3)-Addierer die Hälfte derjenigen, die für Übertrag-Summen- Addierer erforderlich ist. Fig. 7A zeigt eine E/A-Darstellung für einen Übertrag-Summen-(3,2)-Addierer 260, und Fig. 7B zeigt eine vergleichbare E/A-Darstellung für einen (7,3)-Addierer 270.
  • Fig. 8 zeigt eine bevorzugte Realisierung für einen 28-Bit-Multiplikationsbaum, wobei das Cverschoben-Signal am Eingang 320 enthalten ist, so daß 2 (7,3)-Addiererlaufzeiten für die Schiebe- und Komplementausführung ermöglicht werden. Dieser Multiplikationsbaum, der ähnlich dem vorher beschriebenen Wallace-Baum ist, wurde erweitert, und verwendet die 7/3-Addierer 300 bis 306. Eingang 320 entspricht Eingang 249 des Wallace-Baums in Fig. 6 und empfängt das Cverschoben-Signal vom Komplementierer. Wie in Fig. 6 führen UND-Gatter 290 bis 296 die Multiplikation aus. Die Anordnung der UND-Gatter werden an den Eingängen jedes der 7/3-Addierer 301, 302 und 303 wiederholt. Eine in Computer Systems Architecture (Rockville, Md.: Computer Science Press, 1980) S. 108 bis 110 angegebene Booth'sche Kodierung kann anstelle der UND-Gatter 290 bis 296 verwendet werden, um die Anzahl von Eingängen auf 28 x 2 zu erhöhen.

Claims (3)

1. Vorrichtung zur Ausführung der Gleitkommaberechnung A x B + C, enthaltend ein Mittel (12) zum Multiplizieren von A x B, um Teilergebnisse zu erzeugen und ein Ausrichtungsmittel (14) zum Ausrichten von C nach den Teilergebnissen, wobei die Multiplikation parallel mit der Ausrichtung ausgeführt wird, darüber hinaus enthaltend ein Mittel (20) zum Inkrementieren des Operanden C, wenn der Operand C höhere Wertigkeit als eine Summe der Teilergebnisse aufweist, ein Mittel (16, 18) zum Addieren der Teilergebnisse und des ausgerichteten C und ein Mittel (24) zum Normieren des Ergebnisses,
dadurch gekennzeichnet, daß
das Addiermittel (16, 18) einen Baum von Übertrag-Summen- Addierern umfaßt, der eine höhere Stufe (220, 222, 224, 226), die die Teilergebnisse empfängt, eine mittlere Stufe (246, 248), die die Teilergebnisse der vorhergehenden Stufe (228, 230, 240) und des Operanden C empfängt, und eine niedrigere Stufe (252), die eine Summenausgabe und eine Übertragsausgabe des Terms A x B + C erzeugt, enthält;
das Addiermittel (16, 18) darüber hinaus einen Volladdierer (18), der mit dem Baum direkt verbunden ist, um die Ausgabe der niedrigeren Stufe (252) zu empfangen und das dem Normierungsmittel (24) zugeführte Endergebnis zu erzeugen, umfaßt; und
die Verarbeitungslaufzeit des Multipliziermittels (12) im wesentlichen die gleiche ist wie die Summe der Verarbeitungslaufzeiten des Baums der Übertrag-Summen-Addierer und des Volladdierers.
2. Vorrichtung nach Anspruch 1, wobei das Multipliziermittel (12) und das Addiermittel (16, 18) eine Eingangs-zu-Ausgangs-Laufzeit proportional zum Logarithmus der Anzahl der Eingangsbits der Mantisse aufweisen.
3. Vorrichtung nach Anspruch 1, wobei die Übertrag-Summen-Addierer des Baums der Übertrag-Summen-Addierer 7/3-Addierer (300 bis 306) sind und der Operand C durch die niedrigere Stufe des Baums empfangen wird.
DE68924477T 1989-01-13 1989-12-12 Gleitkommaeinheit mit gleichzeitiger Multiplikation und Addition. Expired - Fee Related DE68924477T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/297,016 US4969118A (en) 1989-01-13 1989-01-13 Floating point unit for calculating A=XY+Z having simultaneous multiply and add

Publications (2)

Publication Number Publication Date
DE68924477D1 DE68924477D1 (de) 1995-11-09
DE68924477T2 true DE68924477T2 (de) 1996-05-30

Family

ID=23144509

Family Applications (1)

Application Number Title Priority Date Filing Date
DE68924477T Expired - Fee Related DE68924477T2 (de) 1989-01-13 1989-12-12 Gleitkommaeinheit mit gleichzeitiger Multiplikation und Addition.

Country Status (4)

Country Link
US (1) US4969118A (de)
EP (1) EP0377837B1 (de)
JP (1) JPH0727456B2 (de)
DE (1) DE68924477T2 (de)

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5212661A (en) * 1989-10-16 1993-05-18 Matsushita Electric Industrial Co., Ltd. Apparatus for performing floating point arithmetic operation and rounding the result thereof
AU1150492A (en) * 1990-12-03 1992-06-25 Board Of Trustees Of The Leland Stanford Junior University Adaptive decision feedback equalizer apparatus for processing information stored on digital storage media
JP3033212B2 (ja) * 1991-01-31 2000-04-17 日本電気株式会社 乗算器
IL99660A0 (en) * 1991-10-07 1992-08-18 Ibm Israel Random number generator
JPH05216620A (ja) * 1991-10-31 1993-08-27 Internatl Business Mach Corp <Ibm> 浮動小数点を正規化する方法及び回路
US5241493A (en) * 1991-12-16 1993-08-31 International Business Machines Corporation Floating point arithmetic unit with size efficient pipelined multiply-add architecture
US5375078A (en) * 1992-12-15 1994-12-20 International Business Machines Corporation Arithmetic unit for performing XY+B operation
US6604118B2 (en) 1998-07-31 2003-08-05 Network Appliance, Inc. File system image transfer
US7174352B2 (en) 1993-06-03 2007-02-06 Network Appliance, Inc. File system image transfer
EP0645699A1 (de) * 1993-09-29 1995-03-29 International Business Machines Corporation Instruktionsfolge zur Hochgeschwindigkeits-Multiplizierung-Addierung in einem Pipeline-Gleitkommaprozessor
US5418736A (en) * 1994-03-11 1995-05-23 Nexgen, Inc. Optimized binary adders and comparators for inputs having different widths
US5493520A (en) * 1994-04-15 1996-02-20 International Business Machines Corporation Two state leading zero/one anticipator (LZA)
US5530663A (en) * 1994-11-14 1996-06-25 International Business Machines Corporation Floating point unit for calculating a compound instruction A+B×C in two cycles
US5751621A (en) * 1994-11-17 1998-05-12 Hitachi, Ltd. Multiply-add unit and data processing apparatus using it
US5771186A (en) * 1995-06-07 1998-06-23 International Business Machines System and method for multiplying in a data processing system
US6643765B1 (en) * 1995-08-16 2003-11-04 Microunity Systems Engineering, Inc. Programmable processor with group floating point operations
US7301541B2 (en) * 1995-08-16 2007-11-27 Microunity Systems Engineering, Inc. Programmable processor and method with wide operations
US5742840A (en) 1995-08-16 1998-04-21 Microunity Systems Engineering, Inc. General purpose, multiple precision parallel operation, programmable media processor
US6295599B1 (en) * 1995-08-16 2001-09-25 Microunity Systems Engineering System and method for providing a wide operand architecture
US5953241A (en) 1995-08-16 1999-09-14 Microunity Engeering Systems, Inc. Multiplier array processing system with enhanced utilization at lower precision for group multiply and sum instruction
US6385634B1 (en) 1995-08-31 2002-05-07 Intel Corporation Method for performing multiply-add operations on packed data
KR970016936A (ko) * 1995-09-06 1997-04-28 엘리 와이스 최상위 디지트를 결정하는 장치 및 방법
US5867413A (en) * 1995-10-17 1999-02-02 Hitachi Micro Systems, Inc. Fast method of floating-point multiplication and accumulation
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
US6247036B1 (en) 1996-01-22 2001-06-12 Infinite Technology Corp. Processor with reconfigurable arithmetic data path
US5880983A (en) * 1996-03-25 1999-03-09 International Business Machines Corporation Floating point split multiply/add system which has infinite precision
US5892698A (en) * 1996-04-04 1999-04-06 Hewlett-Packard Company 2's complement floating-point multiply accumulate unit
US5757687A (en) * 1996-08-06 1998-05-26 Hewlett-Packard Co. Method and apparatus for bounding alignment shifts to enable at-speed denormalized result generation in an FMAC
US5790444A (en) * 1996-10-08 1998-08-04 International Business Machines Corporation Fast alignment unit for multiply-add floating point unit
JP3790307B2 (ja) * 1996-10-16 2006-06-28 株式会社ルネサステクノロジ データプロセッサ及びデータ処理システム
US5796644A (en) * 1996-11-18 1998-08-18 Samsung Electronics Company, Ltd. Floating-point multiply-and-accumulate unit with classes for alignment and normalization
US5928316A (en) * 1996-11-18 1999-07-27 Samsung Electronics Co., Ltd. Fused floating-point multiply-and-accumulate unit with carry correction
US5993051A (en) * 1996-11-18 1999-11-30 Samsung Electronics Co., Ltd. Combined leading one and leading zero anticipator
US5963460A (en) * 1996-12-17 1999-10-05 Metaflow Technologies, Inc. Apparatus for computing transcendental functions quickly
US6430589B1 (en) * 1997-06-20 2002-08-06 Hynix Semiconductor, Inc. Single precision array processor
US6061707A (en) * 1998-01-16 2000-05-09 International Business Machines Corporation Method and apparatus for generating an end-around carry in a floating-point pipeline within a computer system
US6457130B2 (en) 1998-03-03 2002-09-24 Network Appliance, Inc. File access control in a multi-protocol file server
US6317844B1 (en) 1998-03-10 2001-11-13 Network Appliance, Inc. File server storage arrangement
GB2339936B (en) * 1998-05-27 2002-09-25 Advanced Risc Mach Ltd Data processing apparatus and method for performing multiply-accumulate operations
US6282634B1 (en) * 1998-05-27 2001-08-28 Arm Limited Apparatus and method for processing data having a mixed vector/scalar register file
US6345286B1 (en) * 1998-10-30 2002-02-05 International Business Machines Corporation 6-to-3 carry-save adder
US6343984B1 (en) * 1998-11-30 2002-02-05 Network Appliance, Inc. Laminar flow duct cooling system
US6282557B1 (en) * 1998-12-08 2001-08-28 International Business Machines Corporation Low latency fused multiply-adder
US6381624B1 (en) * 1999-04-29 2002-04-30 Hewlett-Packard Company Faster multiply/accumulator
US6542915B1 (en) * 1999-06-17 2003-04-01 International Business Machines Corporation Floating point pipeline with a leading zeros anticipator circuit
US6542916B1 (en) 1999-07-28 2003-04-01 Arm Limited Data processing apparatus and method for applying floating-point operations to first, second and third operands
US6408376B1 (en) 1999-10-25 2002-06-18 Intel Corporation Method and apparatus for instruction set architecture to perform primary and shadow digital signal processing sub-instructions simultaneously
US6330660B1 (en) 1999-10-25 2001-12-11 Vxtel, Inc. Method and apparatus for saturated multiplication and accumulation in an application specific signal processor
US6832306B1 (en) 1999-10-25 2004-12-14 Intel Corporation Method and apparatus for a unified RISC/DSP pipeline controller for both reduced instruction set computer (RISC) control instructions and digital signal processing (DSP) instructions
US6557096B1 (en) 1999-10-25 2003-04-29 Intel Corporation Processors with data typer and aligner selectively coupling data bits of data buses to adder and multiplier functional blocks to execute instructions with flexible data types
US6446195B1 (en) * 2000-01-31 2002-09-03 Intel Corporation Dyadic operations instruction processor with configurable functional blocks
US6611856B1 (en) * 1999-12-23 2003-08-26 Intel Corporation Processing multiply-accumulate operations in a single cycle
GB2397674B (en) * 1999-12-23 2004-09-15 Intel Corp Processing multiply-accumulate operations in a single cycle
US6732203B2 (en) * 2000-01-31 2004-05-04 Intel Corporation Selectively multiplexing memory coupling global bus data bits to narrower functional unit coupling local bus
US6571266B1 (en) * 2000-02-21 2003-05-27 Hewlett-Packard Development Company, L.P. Method for acquiring FMAC rounding parameters
JP3845814B2 (ja) * 2000-08-10 2006-11-15 株式会社テルミナス・テクノロジー 連想メモリとその検索方法及びルータとネットワークシステム
US7003093B2 (en) * 2000-09-08 2006-02-21 Intel Corporation Tone detection for integrated telecommunications processing
US20020116186A1 (en) * 2000-09-09 2002-08-22 Adam Strauss Voice activity detector for integrated telecommunications processing
DE10051715C1 (de) * 2000-10-12 2002-04-18 Giselher Gust Verfahren zur systematischen Erfassung von Stoffen mit Partikelcharakter, die sich in einem strömenden Fluid mit einer Vertikalkomponente bewegen, und Vorrichtung zur Verfahrensdurchführung
JP2002182898A (ja) 2000-12-14 2002-06-28 Nec Microsystems Ltd 積算値及び周期関数の生成方法及び回路
US6904446B2 (en) * 2001-08-24 2005-06-07 Freescale Semiconductor, Inc. Floating point multiplier/accumulator with reduced latency and method thereof
US20030219113A1 (en) * 2002-05-21 2003-11-27 Bershad Neil J. Echo canceller with double-talk and channel impulse response adaptation
US7272624B2 (en) * 2003-09-30 2007-09-18 International Business Machines Corporation Fused booth encoder multiplexer
US7562106B2 (en) * 2004-08-07 2009-07-14 Ternarylogic Llc Multi-value digital calculating circuits, including multipliers
US8190669B1 (en) 2004-10-20 2012-05-29 Nvidia Corporation Multipurpose arithmetic functional unit
US7428566B2 (en) * 2004-11-10 2008-09-23 Nvidia Corporation Multipurpose functional unit with multiply-add and format conversion pipeline
US20060101244A1 (en) * 2004-11-10 2006-05-11 Nvidia Corporation Multipurpose functional unit with combined integer and floating-point multiply-add pipeline
US7240184B2 (en) * 2004-11-10 2007-07-03 Nvidia Corporation Multipurpose functional unit with multiplication pipeline, addition pipeline, addition pipeline and logical test pipeline capable of performing integer multiply-add operations
US7225323B2 (en) * 2004-11-10 2007-05-29 Nvidia Corporation Multi-purpose floating point and integer multiply-add functional unit with multiplication-comparison test addition and exponent pipelines
US7461117B2 (en) * 2005-02-11 2008-12-02 International Business Machines Corporation Floating point unit with fused multiply add and method for calculating a result with a floating point unit
WO2006136645A1 (en) * 2005-06-23 2006-12-28 Elektrobit System Test Oy Simulation of multi-antenna radio channel
US7720900B2 (en) * 2005-09-09 2010-05-18 International Business Machines Corporation Fused multiply add split for multiple precision arithmetic
US8037119B1 (en) 2006-02-21 2011-10-11 Nvidia Corporation Multipurpose functional unit with single-precision and double-precision operations
US8051123B1 (en) 2006-12-15 2011-11-01 Nvidia Corporation Multipurpose functional unit with double-precision and filtering operations
US8280940B2 (en) * 2007-10-22 2012-10-02 Himax Technologies Limited Data processing apparatus with shadow register and method thereof
US8106914B2 (en) * 2007-12-07 2012-01-31 Nvidia Corporation Fused multiply-add functional unit
US8990282B2 (en) * 2009-09-21 2015-03-24 Arm Limited Apparatus and method for performing fused multiply add floating point operation
US8463834B2 (en) * 2009-11-03 2013-06-11 Arm Limited Floating point multiplier with first and second partial product shifting circuitry for result alignment
US8965945B2 (en) * 2011-02-17 2015-02-24 Arm Limited Apparatus and method for performing floating point addition
US9952829B2 (en) * 2016-02-01 2018-04-24 International Business Machines Corporation Binary fused multiply-add floating-point calculations
US11182127B2 (en) 2019-03-25 2021-11-23 International Business Machines Corporation Binary floating-point multiply and scale operation for compute-intensive numerical applications and apparatuses

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4075704A (en) * 1976-07-02 1978-02-21 Floating Point Systems, Inc. Floating point data processor for high speech operation
JPS55147737A (en) * 1979-05-08 1980-11-17 Nec Corp Operation unit for variable pipe line
JPS5776634A (en) * 1980-10-31 1982-05-13 Hitachi Ltd Digital signal processor
EP0086904B1 (de) * 1982-02-18 1985-11-21 Deutsche ITT Industries GmbH Digitale Parallel-Rechenschaltung für positive und negative Binärzahlen
US4589067A (en) * 1983-05-27 1986-05-13 Analogic Corporation Full floating point vector processor with dynamically configurable multifunction pipelined ALU
US4888682A (en) * 1983-09-09 1989-12-19 International Business Machines Corp. Parallel vector processor using multiple dedicated processors and vector registers divided into smaller registers
US4943940A (en) * 1984-09-27 1990-07-24 Advanced Micro Devices, Inc. Floating point add/subtract and multiplying assemblies sharing common normalization, rounding and exponential apparatus
US4736335A (en) * 1984-11-13 1988-04-05 Zoran Corporation Multiplier-accumulator circuit using latched sums and carries
JPS6347874A (ja) * 1986-08-16 1988-02-29 Nec Corp 算術演算装置
US4831577A (en) * 1986-09-17 1989-05-16 Intersil, Inc. Digital multiplier architecture with triple array summation of partial products
US4866652A (en) * 1987-09-01 1989-09-12 Weitek Corporation Floating point unit using combined multiply and ALU functions

Also Published As

Publication number Publication date
US4969118A (en) 1990-11-06
EP0377837B1 (de) 1995-10-04
JPH0727456B2 (ja) 1995-03-29
EP0377837A3 (de) 1992-05-13
EP0377837A2 (de) 1990-07-18
JPH02196328A (ja) 1990-08-02
DE68924477D1 (de) 1995-11-09

Similar Documents

Publication Publication Date Title
DE68924477T2 (de) Gleitkommaeinheit mit gleichzeitiger Multiplikation und Addition.
DE19540102C2 (de) Verfahren und Gleitkomma-Recheneinheit mit einer Logik für eine Vierfach-Präzisions-Arithmetik
DE69430838T2 (de) Schaltung und Verfahren zur parallelen Verschiebung und Addition
DE69416283T2 (de) Überlaufsteuerung für arithmetische Operationen
DE69428466T2 (de) Parallele Datenverarbeitung in einem Einzelprozessor
DE68927966T2 (de) Prozessor für Gleitkommazahlen und ganze Zahlen mit Dividier- und Quadratwurzelfunktionen
DE69712720T2 (de) Gerät zur schnellen Berechnung tranzedentaler Funktionen
DE4414172C2 (de) Gleit-Komma-Arithmetikeinheit und Verfahren zur Division und Quadratwurzelberechnung, die eine modifizierte Newton-Raphson Technik verwendet
DE3144015C2 (de)
DE69130653T2 (de) &#34;Pipelined&#34; Verarbeitungseinheit für Fliesskommazahlen
DE69326314T2 (de) Durchführung aritmetische Operationen auf Daten
DE69132517T2 (de) Gleitkommaprozessor
DE69032891T2 (de) Verfahren und Gerät zur Ausführung mathematischer Funktionen mit Hilfe polynomialer Annäherung und eines Multiplizierers rechteckigen Seitenverhältnisses
DE68928058T2 (de) Gerät und verfahren zur prädiktion von gleitkommanormalisierung
DE69821408T2 (de) Multiplikationsverfahren und -vorrichtung
DE3789132T2 (de) Digitale Multipliziererarchitektur mit Dreifachgitter zur Summation von Teilprodukten.
DE68923262T2 (de) Zweierkomplementmultiplikation mit einem Vorzeichen-/Grössen-Multiplizierer.
DE69321241T2 (de) Hochleistungsmantissendividierer.
DE112011103206T5 (de) Multiplizieraddierfunktionseinheit zum Ausführen von Scale-, Round-, Getexp-, Round-, Getmant-,Reduce-, Range- und Class-Befehlen
DE10105945A1 (de) Linearsummierungsmultipliziererarrayimplementie-rung sowohl zur vorzeichenbehafteten als auch zur vorzeichenlosen Multipliaktion
DE4403917C2 (de) Vorrichtung zum Berechnen einer Bit-Besetzungszählung
DE19983870B4 (de) Berechnung impliziter Datentypbits für Simd-Operationen
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
DE102007014808A1 (de) Multiplizier- und Multiplizier- und Addiereinheit

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee