WO1996033456A1 - Übertrag-auswahl-addierer mit einer vorermittlung der führenden nullstellen - Google Patents

Übertrag-auswahl-addierer mit einer vorermittlung der führenden nullstellen Download PDF

Info

Publication number
WO1996033456A1
WO1996033456A1 PCT/EP1995/001455 EP9501455W WO9633456A1 WO 1996033456 A1 WO1996033456 A1 WO 1996033456A1 EP 9501455 W EP9501455 W EP 9501455W WO 9633456 A1 WO9633456 A1 WO 9633456A1
Authority
WO
WIPO (PCT)
Prior art keywords
sum
partial
adder
zeros
operands
Prior art date
Application number
PCT/EP1995/001455
Other languages
English (en)
French (fr)
Inventor
Günter Gerwig
Son Dao Trong
Klaus Getzlaff
Wilhelm Haller
Original Assignee
International Business Machines Corporation
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 Corporation filed Critical International Business Machines Corporation
Priority to JP8531420A priority Critical patent/JPH09507940A/ja
Priority to PCT/EP1995/001455 priority patent/WO1996033456A1/de
Priority to US08/765,419 priority patent/US5875123A/en
Priority to DE19614480A priority patent/DE19614480C2/de
Publication of WO1996033456A1 publication Critical patent/WO1996033456A1/de

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/74Selecting or encoding within a word the position of one or more bits having a specified value, e.g. most or least significant one or zero detection, priority encoders
    • 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

Definitions

  • the invention relates to the determination of the leading zeros of a sum, in particular in carry select adders (carry select adders).
  • Parallel adders often consist of a plurality of parallel, single carry select adders, as are known in the art. Each individual adder adds up the digits of the operands to be added to an individual or partial sum. Since it is not yet clear at the time of adding the individual digits, due to the parallel addition, which of the digits must also take a carry from a previous digit into account, each individual adder determines the result of the partial sum of a respective digit both with and without taking a carry into account . Only after completing this parallel individual additions then determine which of the positions a carry has to take into account, and with the help of the respective carry the correct result of each individual position addition, that is to say with or without carry, is now determined.
  • each partial adder calculates both a partial sum with a carry and a partial sum without a carry.
  • the correct value of the partial sum within the total addition is then 'selected' with the help of the determined carry - hence the name carry select adder.
  • floating point processors floating point processors
  • two floating point operands are added together.
  • the exponents of the two operands are first aligned with each other (alignment), so that both operands then have the same exponent.
  • Operand A + 0.11864 x 10 5
  • Operand B - 0.09659 x 10 5
  • Operand A + 0.11864 x 10 5
  • Operand B - 0.09659 x 10 5
  • leading zero digits This can result in an unpredictable number of leading zero digits.
  • the result is to be normalized, i.e. the leading zeros (leading zero digits) are to be counted, the mantissa is shifted to the left according to the leading zeros and the number of leading zeros has to be subtracted from the exponent.
  • the sum of the mutant aligned mantissas of the operands is first formed. From this sum, the number of leading zeros is determined in a subsequent step and the sum is normalized according to these leading zeros.
  • counting the leading zeros in the course of a cycle is often even more time-critical than the result of the mantissa addition and thus slows down the entire adding process.
  • a counter 10 determines the number of leading zeros from the sum S and outputs them as a value ZDC (Zero Digit Count).
  • ZDC Zero Digit Count
  • the invention enables the leading zeros of the sum of an addition to be determined approximately at the same time as the determination of the sum. This is done by a parallel determination of partial sums of the individual digits taking into account possible transfers and, based on these, a preliminary determination of potential zeros or also potential leading zeros, which are then finally selected when the correct value of a partial sum has been determined and possibly by a subsequent one Step, with the result of the leading zeros of the total, are evaluated.
  • the determination of the leading zeros in an adder according to the invention can be carried out either strictly in parallel or in parallel with a hierarchical, in each case self-similar structure of a device according to the invention. This enables the normalized sum to be determined in an optimally parallel and correspondingly time-efficient manner.
  • the determination of the leading zeros according to the invention is preferably used in adding units, floating point computing units and / or in data processing systems.
  • FIG. 3 shows an adder according to FIG. 2 which, in addition to the two operands A and B, also has a carry C at the input,
  • FIG. 6 shows a binary adder for the example of a 64 + 64 adder
  • FIG. 7 shows a partial adder block from FIG. 6,
  • FIG. 8 shows a digit preselect block from FIG. 6.
  • the adder 20 shows an addition unit 20 according to the invention, in which the leading zeros are already determined essentially parallel to the determination of the total.
  • the adder 20 consists of a plurality of mutually parallel adders 30A, 30B, 30C, etc., the partial operands AO, AI, A2, etc. and BO, Bl, B2, etc. of the operands A and B to be added together Add partial sums SO, Sl and S2.
  • Each of the adders 30A, 30B and 30C adds one of the positions of the operands A and B with the same value, whereby each position can consist of a plurality of bits or lines. In the case of a hexadecimal addition, each individual hex position would consist of 4 bit lines.
  • the adder 30A receives as input the least significant digit AO and BO of the operands A and B, while the adders 30B, 30C, etc. have the more significant digits of the operands A and B for the input. As already described above, a carry can occur at every digit, which must also be taken into account for the addition of the respective higher digits.
  • each of the higher order adders 30B, 30C, etc. in addition to the sum S1, S2, etc. of the respective digit addition, also determines a sum (Sl + 1), (S2 + 1), etc. to take into account a possible transfer from a previous position.
  • the least significant adder 30A puts the sum SO at its output, while the more significant adders 30B, 30C, etc. both the sum S1, S2, etc. and the sum (Sl + 1), (S2 + 1), etc. as Have exit.
  • the outputs of the NOR gates 40 for one of the higher order adders 30B, 30C etc. are each supplied to a selector 50B, 50C, etc.
  • the outputs of NOR gates 40B0 and 40B1 of adder 30B are fed to selector 50B
  • the outputs of NOR gates 40C0 and 40C1 of adder 30C are fed to selector 50C, etc.
  • Each of the selectors 50B, 50C, etc. is used to select whether the sum S1, S2, etc. or the sum S1 + 1, S2 + 1, etc. is to be used.
  • These selectors 50 are controlled by a selection block 60, as is customary for carry-select-add to select the correct partial amount.
  • the output of the NOR gate 40A0 of the least significant digit and the outputs of the selectors 50 of the more significant digits serve as inputs for a counting decoding logic 70. From this, the counting decoding logic 70 determines the number of leading zeros ZDC of the total result S of the addition of the operands A and B and put them at their exit. This is preferably done by converting Bool's equations, which result from a truth table, the various possible combinations of the input signals - here the information as to whether a single digit is a zero - and their conversion into desired output signals - here the number of leading ones ZDC zeros - represent. These Boolean equations are converted into corresponding circuit (hardware) links (see the examples below).
  • the ZDC is output by the decode logic 70, preferably encoded using a decode table.
  • the ZDC then represents, for example, the binary-coded value of the number of leading zeros of the sum S. With a sum S of 4 digits, this results in 2 binary bits, with 8 digits 3 binary bits, etc.
  • the number of leading zeros are therefore not determined from the total sum S of operands A and B, but already from the partial sums SO, S1, S2, etc. of the respective partial addition of the same position Put. According to the invention, this enables the number of leading zeros ZDC to be determined approximately simultaneously with the determination of the total sum S, depending in particular on the adder width and on the significance of the respective ZDC bit. The total sum S can then be normalized immediately, i.e. the leading zeros can be removed.
  • the number of leading ⁇ zeros ZDC can be used to normalize the floating point arithmetic operation. To do this, the ZDC must be subtracted from the exponent of the sum S, or the sum S shifted to the left by the ZDC amount. Even if the normalization is carried out in whole or in part in the next cycle (depending on the existing pipeline structure), it is advantageous if the ZDC is known as early as possible. In both cases the cycle time can be reduced.
  • FIG. 3 shows an adder according to FIG. 2 which, in addition to the two operands A and B, also has a carry C for the input.
  • the adder 20 according to FIG. 3 contains, in addition to the corresponding components of the adder 20 according to FIG. 2, an additional output for the adder 30A of the least significant position which supplies a sum (SO + 1), and an associated further NOR stage 40A1 and another selector 50A connected to the two NOR gates 40A0 and 40A1.
  • the carry C to be taken into account is fed to the selection block 60 as an input.
  • the construction of the adders 30, NOR gates 40 and selectors 50 is constructed accordingly for each position.
  • the arrangement of the NOR gates 40 and the selectors 50 selected in FIGS. 2 and 3 in this order, first the NOR gate 40 and then the selector 50, is not mandatory, but in terms of time Behavior of the signals has the most favorable properties. Since the selection signals of the selection block 60 can only be generated with a certain time delay, but the sums SO, SO + 1, Sl, Sl + 1, etc. are often already present before these selection signals, the required detection of a respective zero can be carried out by the respective NOR gates 40 preferably, as in FIGS. 2 and 3, carry out before the selection by the selectors 50.
  • any desired zero detection means 40 can be used to detect whether the partial sum present at the output in question represents a zero.
  • an AND gate with inverter NAND
  • NAND AND gate with inverter
  • adder 120 with a large digit width and a division into a plurality parallel partial adders.
  • the operands A and B are divided into a plurality of partial operands A (0) and B (0), A (1) and B (1), A (2) and B (2), etc., each of which is a plurality of represent individual positions.
  • the adder 120 has a multiplicity of parallel sub-adder units 20, with two sub-adder units 20 each having the same operands A (0) and B (0), A (l) and B (l), A (2) and B (2 ), etc. to the entrance. Furthermore, a partial adder 20 of each of the identical sub-adder pairs receives as input a carry signal Ü, while the other sub-adder 20 receives no carry signal. Upon receipt of the optional carry C, all partial adders 20 are constructed as shown in FIG. 3.
  • Stage 135 supplied to determine the total sum S.
  • the number of leading zeros is fed to a selector 150 for each of the partial adder pairs.
  • Each of the selectors 150 serves to select whether the number of the leading zeros ZDX (O), ZDX (1), ZDX (2), etc. of the respective subtotals SX (0), SX (1), SX (2), etc. or the number of leading zeros ZDY (O), ZDY (l), ZDY (2), etc. of the respective subtotals SY (0), SY (1), SY (2), etc. is to be used.
  • These selectors 150 are controlled by a selection block 160, as is customary for carry-select-add.
  • the leading zeros selected in each case are supplied by the selectors 150 to a total counting decoding logic 170.
  • the total counting decoding logic 110 uses this to determine the number of leading zeros ZDC of the total result S of the addition of operands A and B and places this number of leading zeros ZDC at its output. This is done analogously to that described for the counting decoding logic 70.
  • a structure according to FIG. 2 is also sufficient for the partial adder with the least significant digits, and then no partial adder pair is necessary, but only a single partial adder 20 for the least significant digit.
  • the corresponding selector 150 is then also omitted.
  • the hierarchical structure of an adder shown in FIG. 4 can now be designed further, recursively.
  • the adder units 20 from FIG. 4 would be replaced by adder units 120.
  • By repeating lower integrated elements to create more integrated ones Circuits, for example linking adder units 20 to more highly integrated adder units 120, etc., can be realized by continuing this self-similarity process, highly complex switching units which enable the leading zeros of the total sum to be determined in a timely manner approximately in parallel with the determination of this sum.
  • the basic structure, as shown in FIG. 4, remains the same.
  • operand A (0..63) has a bit width of 0 to 63, i.e. 64 bits in the example.
  • a (0) represents the most significant
  • a (63) represents the least significant bit.
  • a 16 + 16 bit adder according to the invention is shown first and then an adder with 64 + 64 bits, but the invention can also be applied to adder units with a different data width (such as 32, 128, 256, etc.).
  • a digit consists of 4 bits and can take the hexadecimal values ⁇ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F ⁇ .
  • the total consists of 16 bits or 4 digits.
  • the ZDC is binary coded, consists of 2 bits and can take the decimal values 0 to 4, which correspond to the hexadecimal values. 5 shows:
  • Table 1 shows the assignment of the ZDC bits depending on the sum:
  • 5 consists of 4 partial adder blocks, each adding 4 + 4 bits and also generating precoded signals ZDNO, ZDN1, ZDN2, ZDN3, ZDPO, ZDP1, ZDP2, ZDP3 for determining the leading zeros ZDC.
  • the output signals ZDC (O) and ZDC (l) are generated from these precoded ZDC signals by 2-stage logic.
  • the Boolean equations for this are:
  • ZDC (O) ZDO ZD1 ZDC (l) - ZDO ZD2 + ZDO ZD2 in which: . an AND link,
  • + represents an OR operation and a NOT operation (inversion).
  • the counting decoding logic of the 16-bit adder in FIG. 5 in this case consists of an AND operation for ZDC (O) and a two-stage logic for ZDC (I) as shown in FIG. 5.
  • a digit consists of 4 bits and can take the hexadecimal values ⁇ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F ⁇ .
  • the total consists of 64 bits or 16 digits.
  • the ZDC is binary coded, consists of 4 bits, and can assume the decimal values 0 to 15 corresponding to the hexadecimal values. 6 shows:
  • Table 2 shows the assignment of the ZDC bits depending on the sum:
  • FIG. 6 consists of 4 partial adder blocks, each adding 16 + 16 bits and also precoded signals ZDJO, ZDJ1, ZDJ2, ZDJ3, ZDKO, ZDK1, ZDK2, ZDK3, ZDLO, ZDL1, ZDL2, ZDL3 to determine the leading zeros Generate ZDC.
  • Such a partial adder block is shown in FIG. 7.
  • the output signals ZDC (O), ZDC (1), ZDC (2) and ZDC (3) are generated from these precoded ZDC signals by 2-stage logic.
  • the Boolean equations for this are:
  • ZDC (l) ZDJO. " ZDJ1 + ZDJO ZDJ2
  • the partial adder blocks also contain generate and propagate signal outputs GBO, GBl, GB2, GB3, PBO, PBl, PB2, PB3, as are common when using carry select adders. These Generate and Propagate signals are linked in the Prop-Gen 3rd stage and the Carry In signals CI_B0, CI_B1, CI_B2 and CI_B3 are generated for the respective partial adder block.
  • the carry in signal after partial adder block 0 is identical to the carry in of the total adder CI. See the bool * Equation for the carry in signals of the respective subaddition blocks are:
  • This link can be implemented in 2-stage logic.
  • FIG. 7 shows a partial adder block of the example according to the invention. It has the operand inputs A (0..15) and B (0..15), as well as the carry-in input CI_B, which is generated by the main prop generate block. It shows in FIG. 7
  • the 'Precounted Zero Digit' signals ZDJ, ZDK and ZDL are then selected using the carry-in signal CI_B.
  • ZDK is active when the most significant or the three most significant digits are zero.
  • ZDL is active when the two or three most significant digits are zero.
  • PROP-GEN-1st STAGE, PROP-GEN-2nd STAGE, ADD-DIGIT and PRESELECTION OF THE TOTAL are state of the art for a carry select adder.
  • the logic associated with ZDC is part of the invention.
  • ZDXJ ZDXO. ZDX1.
  • ZDX3 ZDXK ZDXO.
  • ZDX3) ZDXL ZDXO. ⁇ ZDX1 + ZDXO.
  • ZDX2. " ZDX3
  • ZDYJ ZDYO. ZDY1.
  • ZDY3 ZDYK ZDYO. ZDY1.
  • ZDYL ZDYO. ⁇ ZDY1 + ZDYO. ZDY2.
  • the Boolean equations are:
  • This link can be implemented in 2 logic levels.

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)
  • Nonlinear Science (AREA)
  • Complex Calculations (AREA)

Abstract

Vorgestellt wird die Ermittlung der führenden Nullstellen der Summe einer Addition in etwa zeitgleich zur Ermittlung der Summe. Dies geschieht durch ein paralleles Ermitteln von Teilsummen der einzelnen Stellen unter Berücksichtigung möglicher Überträge und, ausgehend von diesen, einem Vorermitteln potentieller Nullstellen bzw. auch potentieller führender Nullstellen, die dann schließlich, bei Feststehen des korrekten Wertes einer Teilsumme, ausgewählt und eventuell durch einen nachfolgenden Schritt, mit dem Ergebnis der führenden Nullstellen der Gesamtsumme, ausgewertet werden. Die erfindungsgemäße Ermittlung der führenden Nullstellen in einem Addierwerk läßt sich entweder streng parallel oder parallel mit einer hierarchischen, jeweils selbstähnlichen Struktur einer erfindungsgemäßen Vorrichtung, durchführen. Dies ermöglicht ein optimal paralleles und entsprechend zeitgünstiges Ermitteln der normalisierten Summe. Die erfindungsgemäße Ermittlung der führenden Nullstellen findet vorzugsweise Verwendung in Addierwerken, Gleitkomma-Recheneinheiten und/oder in Datenverarbeitungsanlagen.

Description

B E S C H R E I B U N G
Übertrag-Auswahl-Addierer mit einer Vorermittlung der führenden Nullstellen
Gebiet der Erfindung
Die Erfindung betrifft die Ermittlung der führenden Nullstellen einer Summe, insbesondere in Übertrag-Auswahl- Addierern (Carry-Select-Adder) .
Stand der Technik
Für eine schnelle Addition werden heute vorwiegend parallel arbeitende Addierwerke, bestehend aus mehreren/ miteinander verbundenen, parallel arbeitenden Einzeladdierern verwandt. Die stellenwertgleichen Stellen der miteinander zu addierenden Operanden werden gleichzeitig und damit schnellstmöglich verarbeitet. Der Zeitbedarf einer Addition wird auf Kosten des Materialaufwandes, insbesondere des Platzbedarfes (Chipfläche) verringert. Die Stelle, bei der Schreibung einer Zahl, bedeutet den Platz, an dem eine Ziffer steht. Stellenwertgleiche Stellen sind solche Stellen mit der gleichen Position vor oder hinter dem Komma einer Zahl bei gleichem Exponenten.
Parallel-Addierer bestehen häufig aus einer Vielzahl paralleler, einzelner Übertrag-Auswahl-Addierer (Carry- Select-Adder), wie sie im Stand der Technik bekannt sind. Jeder Einzeladdierer addiert die stellenwertgleichen Stellen der zu addierenden Operanden zu einer Einzel- oder Teilsumme auf. Da zum Zeitpunkt des Addierens der einzelnen Stellen, aufgrund des parallelen Addierens, noch nicht feststeht, welche der Stellen noch einen Übertrag aus einer vorangegangenen Stelle mitberücksichtigen muß, ermittelt jeder Einzeladdierer das Ergebnis der Teilsumme einer jeweiligen Stelle sowohl mit, als auch ohne Berücksichtigung eines Übertrags. Erst nach Abschluß dieser parallelen Einzeladditionen steht dann fest, welche der Stellen einen Übertrag zu berücksichtigen hat, und mit Hilfe des jeweiligen Übertrags wird nun das korrekte Ergebnis jeder einzelnen Stellenaddition, das heißt mit oder ohne Übertrag, ermittelt. In anderen Worten berechnet jeder Teiladdierer sowohl eine Teilsumme mit einem Übertrag als auch eine Teilsumme ohne einen Übertrag. Der innerhalb der Gesamtaddition korrekte Wert der Teilsumme wird anschließend mit Hilfe des ermittelten Übertrags 'ausgewählt' - daher auch der Name Übertrag-Auswahl- Addierer.
In Gleitkomma-Prozessoren (Floating-Point-Processor) werden 2 Gleitkomma-Operanden miteinander addiert. Für die Addition der Gleitkomma-Zahlen werden zunächst die Exponenten der beiden Operanden gegeneinander ausgerichtet (Alignment), so daß anschließend beide Operanden den gleichen Exponenten aufweisen.
Beispiel:
Operand A = + 0,11864 x 105 Operand B = - 0,96591 x 10* ausgerichtet: Operand A = + 0,11864 x 105 Operand B = - 0,09659 x 105
Anschließend werden zunächst die Mantissen der beiden ausgerichteten Operanden miteinander addiert.
Operand A - + 0,11864 x 105 Operand B = - 0,09659 x 105
Summe S ■ + 0,02205 x 105
Dabei kann eine nicht vorherbestimmbare Anzahl von führenden Nullstellen (zero digits) entstehen. Das Ergebnis ist zu normalisieren, das heißt, die führenden Nullstellen (leading zero digits) sind zu zählen, die Mantisse entsprechend der führenden Nullstellen nach links zu verschieben, und vom Exponenten muß die Anzahl der führenden Nullstellen abgezogen werden.
Summe S = + 0,02205 x '105 => 1 führende Nullstelle Mantisse verschieben . J Exponent berichtigen Summe S = + 0,2205 x 104
Bei den im Stand der Technik bekannten Addierwerken wird zunächst die Summe der gegeneinander ausgerichteten Mantissen der Operanden gebildet. Von dieser Summe werden in einem anschließenden Schritt die Anzahl der führenden Nullstellen ermittelt und die Summe entsprechend dieser führenden Nullstellen normalisiert. Dieses Zählen der führenden Nullstellen ist jedoch im Ablauf eines Zyklus vielfach noch zeitkritischer als das Ergebnis der Mantissen-Addition und verlangsamt so den gesamten Addiervorgang.
Fig. 1 zeigt ein Addierwerk 5 gemäß dem Stand der Technik. Die beiden Operanden A und B werden in dem Addierwerk 5 zu einer Summe S = A+B addiert und die Summe S wird von dem Addierwerk 5 an dessen Ausgang gestellt. Ein Zähler 10 ermittelt aus der Summe S die Anzahl der führenden Nullstellen und gibt diese als einen Wert ZDC (Zero Digit Count) aus. Die Mantisse der Summe S wird entsprechend der Anzahl der führenden Nullstellen ZDC nach links verschoben, und vom Exponenten der Summe wird die Anzahl der führenden Nullstellen ZDC abgezogen.
Zusammenfassung der Erfindung
Es ist Aufgabe der Erfindung ein Addierwerk zu schaffen, das ein schnelleres Ermitteln einer normalisierten Summe ermöglicht. Es ist weiterhin Aufgabe der Erfindung ein Addierwerk zu schaffen, das ein schnelleres Ermitteln der Anzahl der führenden Nullstellen einer Summe ermöglicht. Zwei Gleitkommazahlen können dadurch schneller addiert werden.
Die Aufgaben der Erfindung werden durch Vorrichtungen und Verfahren, so wie in den unabhängigen Ansprüchen beschrieben, gelöst,
Die Erfindung ermöglicht eine Ermittlung der führenden Nullstellen der Summe einer Addition in etwa zeitgleich zur Ermittlung der Summe. Dies geschieht durch ein paralleles Ermitteln von Teilsummen der einzelnen Stellen unter Berücksichtigung möglicher Überträge und, ausgehend von diesen, einem Vorermittlen potentieller Nullstellen bzw. auch potentieller führender Nullstellen, die dann schließlich, bei Feststehen des korrekten Wertes einer Teilsumme, ausgewählt und eventuell durch einen nachfolgenden Schritt, mit dem Ergebnis der führenden Nullstellen der Gesamtsumme, ausgewertet werden.
Die erfindungsgemäße Ermittlung der führenden Nullstellen in einem Addierwerk läßt sich entweder streng parallel oder parallel mit einer hierarchischen, jeweils selbstähnlichen Struktur einer erfindungsgemäßen Vorrichtung, durchführen. Dies ermöglicht ein optimal paralleles und entsprechend zeitgünstiges Ermitteln der normalisierten Summe.
Die erfindungsgemäße Ermittlung der führenden Nullstellen findet vorzugsweise Verwendung in Addierwerken, Gleitkomma- Recheneinheiten und/oder in Datenverarbeitungsanlagen.
Weitere, vorteilhafte Ausführungen der Erfindung finden sich in den Unteransprüchen. Beschreibung der Zeichnungen
Zur näheren Erläuterung der Erfindung sind im folgenden Ausführungsbeispiele mit Bezugnahme auf die Zeichnungen beschrieben. Funktionsgleiche Elemente sollen gleiche Bezugszeichen tragen.
Fig. 1 zeigt ein Addierwerk gemäß dem Stand der Technik,
Fig. 2 zeigt ein erfindungsgemäßes Addierwerk,
Fig. 3 zeigt ein Addierwerk gemäß Fig. 2, das neben den beiden Operanden A und B noch einen Übertrag C zum Eingang hat,
Fig. 4 zeigt den Aufbau eines Addierwerkes mit einer großen Stellenbreite und einer Aufteilung in eine Vielzahl paralleler Teil-Addierwerke,
Fig. 5 zeigt für das Beispiel des 16 + 16 Addierwerkes ein binäres Addierwerk,
Fig. 6 zeigt für das Beispiel eines 64 + 64 Addierwerkes ein binäres Addierwerk,
Fig. 7 zeigt ein Teiladdierblock aus Fig. 6,
Fig. 8 zeigt ein Digit Preselect Block aus Fig. 6.
Allgemeine Beschreibung der Erfindung
Fig. 2 zeigt ein erfindungsgemäßes Addierwerk 20, worin bereits eine Ermittlung der führenden Nullstellen im wesentlichen parallel zur Ermittlung der Gesamtsumme stattfindet. Das Addierwerk 20 besteht aus einer Vielzahl zueinander paralleler Addierer 30A, 30B, 30C, usw. die jeweils Teiloperanden AO, AI, A2, usw. und BO, Bl, B2, usw. der zu addierenden Operanden A und B miteinander zu Teilsummen SO, Sl und S2 addieren. Jeder der Addierer 30A, 30B und 30C addiert jeweils stellenwertgleich eine der Stellen der Operanden A und B, wobei jede Stelle aus einer Vielzahl von Bits bzw. Leitungen bestehen kann. Im Falle einer hexadezimalen Addition würde jede einzelne Hex-Stelle aus 4 Bit-Leitungen bestehen.
Der Addierer 30A erhält als Eingang die niederwertigste Stelle AO und BO der Operanden A und B, während die Addierer 30B, 30C, usw. die höherwertigeren Stellen der Operanden A und B zum Eingang haben. Wie bereits oben beschrieben, kann bei jeder Stelle ein Übertrag auftreten, der für die Addition der jeweilig höherwertigeren Stellen mit zu berücksichtigen ist. Um die Parallelität der Einzeladdition zu gewährleisten, ermittelt jeder der höherwertigen Addierer 30B, 30C, usw., neben der Summe Sl, S2, usw. der jeweiligen Stellenaddition, auch eine Summe (Sl + 1), (S2 + 1), usw. zur Berücksichtigung eines möglichen Übertrags aus einer vorangegangenen Stelle. Der niederwertigste Addierer 30A stellt an seinen Ausgang die Summe SO, während die höherwertigen Addierer 30B, 30C, usw. sowohl die Summe Sl, S2, usw. als auch die Summe (Sl + 1), (S2 + 1), usw. als Ausgang haben.
Jede der ermittelten Teilsummen SO, Sl, S2, usw., sowie die einen möglichen Übertrag berücksichtigenden Teilsummen (Sl + 1), (S2 + 1), usw., werden einer nachstehenden, hier nicht weiter ausgeführten, im Stand der Technik ausreichend bekannten, Stufe 35 zur Ermittlung der Gesamtsumme S zugeführt. Parallel dazu werden diese Teilsummen, sowohl mit als auch ohne Berücksichtigung eines Übertrags, jeweils einem ODER-Glied mit negierten Ausgang (NOR) 40 zugeführt. Jedes dieser NOR-Glieder 40 liefert an seinem Ausgang dann eine logische '1', wenn die jeweilige anliegende Summe SO, Sl, S2, usw., bzw. die Summe mit Berücksichtigung eines Übertrages (Sl + 1), (S2 + 1), usw. gleich null ist. Wird beispielsweise eine hexadezimale Kodierung der Stellen gewählt, besteht jede der Summen aus 4 Bitleitungen, die jeweils einer der NOR-Glieder 40 als Eingang dienen.
Die Ausgänge der NOR-Glieder 40 für jeweils einen der höherwertigen Addierer 30B, 30C usw. werden jeweils einem Selektor 50B, 50C, usw. zugeführt. So werden die Ausgänge der NOR-Glieder 40B0 und 40B1 des Addierers 30B dem Selektor 50B, die Ausgänge der NOR-Glieder 40C0 und 40C1 des Addierers 30C dem Selektor 50C, usw. zugeführt. Jeder der Selektoren 50B, 50C, usw. dient zur Auswahl, ob jeweils die Summe Sl, S2, usw. oder die Summe Sl + 1, S2 + 1, usw. zu verwenden ist. Gesteuert werden diese Selektoren 50 durch einen Selektierblock 60, wie er bei Übertrag-Auswahl- Addieren zur Auswahl der jeweiligen korrekten Teilsumme üblich ist.
Der Ausgang des NOR-Gliedes 40A0 der niederwertigsten Stelle sowie die Ausgänge der Selektoren 50 der höherwertigeren Stellen, dienen als Eingänge für eine Zähldekodierlogik 70. Die Zähldekodierlogik 70 ermittelt hieraus die Anzahl der führenden Nullstellen ZDC des Gesamtergebnisses S der Addition der Operanden A und B und stellt diese an ihren Ausgang. Dies geschieht vorzugsweise durch eine Umsetzung von Bool'sehen Gleichungen, die sich aus einer Wahrheitstabeile ergeben, die die verschiedenen Kombinationsmöglichkeiten der Eingangssignale - hier die Informationen, ob eine einzelne Stelle eine Nullstelle ist - und deren Umsetzung in gewünschte Ausgangssignale - hier die Anzahl der führenden Nullstellen ZDC - repräsentieren. Diese Bool'sehen Gleichungen werden in entsprechende Schaltungs- (Hardware) Verknüpfungen umgesetzt (siehe dazu untenstehende Beispiele) .
Der ZDC wird von der Zähldekodierlogik 70 vorzugsweise mit Hilfe einer Dekodier-Tabelle kodiert ausgegeben. Der ZDC stellt dann beispielsweise den binärkodierten Wert der Anzahl der führenden Nullen der Summe S dar. Bei einer Summe S von 4 Stellen ergibt das 2 binäre Bits, bei 8 Stellen 3 binäre Bits usw.
Mit dem erfindungsgemäßen Addierwerk entsprechend Fig. 2, werden die Anzahl der führenden Nullstellen also nicht aus der Gesamt-Summe S der Operanden A und B ermittelt, sondern bereits schon aus den Teilsummen SO, Sl, S2, usw. der jeweiligen stellenwertgleichen Teiladdition der einzelnen Stellen. Dies ermöglicht erfindungsgemäß eine Ermittlung der Anzahl der führenden Nullen ZDC in etwa gleichzeitig mit der Ermittlung der Gesamtsumme S, abhängig insbesondere von der Addierwerkbreite und von der Stellenwertigkeit des jeweiligen ZDC Bits. Die Gesamtsumme S kann danach unmittelbar normalisiert werden, d.h. die führenden Nullstellen können entfernt werden.
Diese Eigenschaft der in etwa gleichzeitigen Ermittlung der Anzahl der führenden Nullen ZDC mit der Ermittlung der Gesamtsumme S, ist z.B. bei einer Anwendung in schnellen Gleitkomma-Recheneinheiten von Vorteil, worin die Addition vorzugsweise innerhalb eines Taktes geschehen soll. In der Restzeit des Taktes kann die Anzahl der führenden ^Nullstellen ZDC verwendet werden, um die Normalisierung der Gleitkomma-Rechenoperation durchzuführen. Dazu muß der ZDC vom Exponenten des Summe S subtrahiert werden, bzw die Summe S um den ZDC Betrag nach links geschoben werden. Auch wenn die Normalisierung ganz oder teilweise im nächsten Takt ausgeführt wird (abhängig von einer vorliegenden Pipelinestruktur), ist es von Vorteil, wenn der ZDC möglichst frühzeitig bekannt ist. In beiden Fällen ist eine Verkürzung der Taktzeit möglich.
Vielfach muß bei einem Addierwerk gemäß Fig. 2 noch ein Übertrag C (Carry) , z. B. aus einem parallelen Addierwerk mit niederwertigeren Stellen, mitberücksichtigt werden. Fig. 3 zeigt ein Addierwerk gemäß Fig. 2, das neben den beiden Operanden A und B noch einen Übertrag C zum Eingang hat. Das Addierwerk 20 gemäß Fig. 3 beinhaltet, neben den entsprechenden Komponenten des Addierwerkes 20 gemäß Fig. 2, für den Addierer 30A der niederwertigsten Stelle einen weiteren Ausgang der eine Summe (SO + 1) liefert, sowie eine damit verbundene weitere NOR-Stufe 40A1 und einen weiteren, mit den beiden NOR-Gliedern 40A0 und 40A1 verbundenen Selektor 50A. Der zu berücksichtigende Übertrag C wird dem Selektionsblock 60 als Eingang zugeführt. Wie aus Fig. 3 zu entnehmen ist, ist bei dieser Ausführungsform der Aufbau der Addierer 30, NOR-Glieder 40 und Selektoren 50 für jede Stelle entsprechend aufgebaut.
Es ist zu verstehen, daß die in Fig. 2 und 3 gewählte Anordnung der NOR-Glieder 40 und der Selektoren 50 in dieser Reihenfolge, zuerst das NOR-Glied 40 und dann der Selektor 50, nicht zwingend ist, jedoch in Bezug auf das zeitliche Verhalten der Signale die günstigsten Eigenschaften aufweist. Da die Auswahlsignale des Selektierblocks 60 erst mit einer gewissen Zeitverzögerung erzeugt werden können, die Summen SO, SO + 1, Sl, Sl + 1, usw. jedoch bereits vielfach schon vor diesen Auswahlsignalen vorliegen, läßt sich die erforderliche Erkennung einer jeweiligen Nullstelle durch die jeweiligen NOR-Glieder 40 bevorzugt, wie in Fig. 2 und 3, bereits vor der Auswahl durch die Selektoren 50 durchführen.
Weiterhin ist zu verstehen, daß die Erfindung nicht auf die Verwendung von NOR-Gliedern 40 beschränkt ist. Statt dessen lassen sich beliebige Nullstellenerkennungsmittel 40 zur Erkennung, ob die jeweilig anliegende Teilsumme an dem betrachteten Ausgang eine Nullstelle repräsentiert, verwenden. So könnte, beispielsweise bei einer umgekehrten Logik, ein UND Glied mit Inverterierung (NAND) verwendet werden.
Bei Addierwerken mit einer großen Stellenbreite, z.B. einem Addierwerk mit 16 Stellen, wobei jede Stelle beispielweise einen Hexadezimal-Wert mit je 4 Bits darstellt, also insgesamt einem 64 Bit Addierwerk, ist es vielfach nicht sinnvoll, nur ein Addierwerk 20, z.B. gemäß Fig. 2 oder 3, mit 16 Addierern zu verwenden. Dies ergibt sich daraus, daß ein endgültiger Übertrag (Carry) zu einer Stelle erst relativ spät im zeitlichen Ablauf feststeht. Um die Zähldekodierlogik nach Erhalt der endgültigen Überträge möglich schnell ausführen zu können (d.h. mit möglich wenigen logischen Stufen) , ist die Zeit vorher zu nutzen und eine Vordekodierung durchzuführen.
Günstiger, bei Addierwerken mit einer großen Stellenbreite z.B. ab 8 Stellen, ist eine vorzugsweise hierarchische Aufteilung in eine Vielzahl paralleler Teil-Addierwerke, mit jeweiliger Ermittlung der führenden Nullstellen in einem dieser Teil-Addierwerke, und einer nachgeschalteten Gesamt-Zähldekodierlogik zur endgültigen Ermittlung der führenden Nullstellen ZDC der gesamten Summe. Die Funktion des Blockes 70 ist dann in eine Vordekodierung und eine Enddekodierung aufgeteilt. Dadurch kann die Enddekodierung schneller erfolgen, während die Vordekodierung in der Zeit abläuft, die ohnehin für die Ermittlung der Überträge (Carry In Signale) benötigt wird. Die Vordekodierung benötigt also keine zusätzliche Zeit. Diese Vordekodierung ist auf die jeweiligen Teiladdierblöcke verteilt und muß dort doppelt durchgeführt werden. Die gültigen Vordekodierungssignale werden dann durch den Übertrag (Carry In) für den jeweiligen Teiladdierblock ausgewählt.
Fig. 4 zeigt den Aufbau eines Addierwerkes 120 mit einer großen Stellenbreite und einer Aufteilung in eine Vielzahl paralleler Teil-Addierwerke. Als Eingänge weist das Addierwerk 120 neben den Operanden A und B einen optionalen Übertragseingang C und als Ausgänge die Summe S = A + B und die Anzahl der führenden Nullstellen ZDC auf. Die Operanden A und B sind in eine Vielzahl von Teiloperanden A(0) und B(0), A(l) und B(l), A(2) und B(2), usw. aufgeteilt, die jeweils eine Vielzahl von einzelnen Stellen repräsentieren.
Das Addierwerk 120 weist eine Vielzahl paralleler Teil- Addierwerke 20 auf, wobei jeweils 2 Teil-Addierwerke 20 stellengleiche Teiloperanden A(0) und B(0), A(l) und B(l), A(2) und B(2), usw. zum Eingang haben. Weiterhin erhält ein Teil-Addierwerk 20 jeder der stellengleichen Teil- Addierwerk-Paare als Eingang ein Übertragssignal Ü, während das andere Teil-Addierwerk 20 kein Übertragssignal erhält. Bei Erhalt des optionalen Übertrags C sind alle Teil- Addierwerke 20 gemäß Fig. 3 aufgebaut.
Jedes der Teil-Addierwerke 20 mit einem Übertragssignal Ü = '0' ermittelt aus seinem jeweiligen Eingang A(0) und B(0), A(l) und B(l), A(2) und B(2), usw. entsprechend dem im vorangehenden geschilderten, eine Teilsumme SX(0), SX(1), SX(2), usw., sowie die Anzahl der führenden Nullstellen ZDX(0), ZDX(l), ZDX(2), usw. der jeweiligen Teilsummen SX(0), SX(1), SX(2), usw. Analog ermittelt jedes der Teil- Addierwerke 20 mit ÜbertragsSignal Ü = 1* aus seinem jeweiligen Eingang A(0) und B(0), A(l) und B(l), A(2) und B(2), usw. und dem ÜbertragsSignal Ü, entsprechend dem im vorangehenden geschilderten, eine Teilsumme SY(0), SY(1), SY(2), usw., sowie die Anzahl der führenden Nullstellen ZDY(0), ZDY(l), ZDY(2), usw. der jeweiligen Teilsummen SY(0), SY(1), SY(2), usw.
Die Teilsummen SX(0), SX(1), SX(2), SY(0), SY(1), SY(2), usw. werden einer nachstehenden, hier nicht weiter ausgeführten, im Stand der Technik ausreichend bekannten, Stufe 135 zur Ermittlung der Gesamtsumme S zugeführt. Parallel dazu werden die Anzahl der führenden Nullstellen, sowohl mit als auch ohne Berücksichtigung eines Übertragssignals, für jeweils einen der Teil-Addierer-Paare jeweils einem Selektor 150 zugeführt. Jeder der Selektoren 150 dient zur Auswahl, ob jeweils die Anzahl der führenden Nullstellen ZDX(O), ZDX(l), ZDX(2), usw. der jeweiligen Teilsummen SX(0), SX(1), SX(2), usw. oder die Anzahl der führenden Nullstellen ZDY(O), ZDY(l), ZDY(2), usw. der jeweiligen Teilsummen SY(0), SY(1), SY(2), usw. zu verwenden ist. Gesteuert werden diese Selektoren 150 durch einen Selektierblock 160, wie er bei Übertrag-Auswahl- Addieren üblich ist.
Die jeweils ausgewählten führenden Nullstellen werden von den Selektoren 150 einer Gesamt-Zähldekodierlogik 170 zugeführt. Die Gesamt-Zähldekodierlogik 110 ermittelt hieraus die Anzahl der führenden Nullstellen ZDC des Gesamtergebnisses S der Addition der Operanden A und B und stellt diese Anzahl der führenden Nullstellen ZDC an ihren Ausgang. Dies geschieht analog dem für die Zähldekodierlogik 70 geschilderten.
Ohne optionalen Übertrag C reicht für das Teil-Addierwerk mit den niederwertigsten Stellen auch ein Aufbau gemäß Fig. 2, auch ist dann kein Teil-Addierwerk-Paar, sondern nur ein einzelnes Teil-Addierwerk 20 für die niederwertigste Stelle notwendig. Auch entfällt dann der entsprechende Selektor 150.
Der in Fig. 4 gezeigte hierarchische Aufbau eines Addierwerkes läßt sich nun beliebig weiter, rekursiv gestalten. In einer nächsten, höheren Hierarchiestufe würden die Addierwerke 20 aus Fig. 4 durch Addierwerke 120 ersetzt werden. Durch wiederholte Komposition niedriger integrierter Elemente zur Erzeugung höher integrierter Schaltungen, beispielsweise Verknüpfung von Addierwerken 20 zu höherintegrierten Addierwerken 120 usw., lassen sich durch Fortführung dieses Selbstähnlichkeitsprozesses hochkomplexe Schaltwerke realisieren, die eine zeitgünstige Ermittlung der führenden Nullstellen der Gesamtsumme in etwa parallel zur Ermittlung dieser Summe ermöglichen. Da bleibt der prinzipielle Aufbau, so wie in Fig. 4 gezeigt, gleich.
So wird beispielsweise bei einem binären Addierwerk mit 64 Stellen, im Vergleich zu einem Addierwerk mit 16 Stellen, eine weitere Hierarchiestufe benötigt. Dies läßt sich weiter fortsetzen, so daß bei einer Vervierfachung der Addierwerksbreite jeweils eine weitere Hierarchiestufe einzuführen ist.
Es ist zu verstehen, daß bei einem hierarchischen, selbstähnlichen Aufbau eines Addierwerkes sich Vereinfachungs- und Zusammenlegungsmöglichkeiten in der Implementierung der Schaltungen ergeben können. So können bei einer Realisierung die jeweiligen Teil-Addierwerk-Paare zusammengefaßt werden, da Teile der beiden Addierwerke gemeinsam benutzt werden können. Dies wird auch aus den nachfolgenden Beispielen ersichtlich.
Detaillierte Beschreibung der Erfindung Die folgenden Ausführungsbeispiele sollen die Erfindung durch konkrete Ausgestaltung erläutern, ohne daß die Erfindung auf diese begrenzt ist. Bei der gewählten Bezeichnungsweise der Operanden und Werte sei die Bitbreite jeweils in Klammern angegeben, d.h. der Operand A(0..63) hat hier im Beispiel eine Bitbreite von 0 bis 63, also 64 Bit. In den Ausführungsbeispielen stellen, im Gegensatz zur Darstellung wie im vorangegangenen, A(0) das höchstwertigste und A(63) das niederwertigste Bit dar. Im Beispiel wird zuerst ein erfindungsgemäßes 16 + 16 Bit Addierwerk und anschließend ein Addierwerk mit 64 + 64 Bit gezeigt, jedoch läßt sich die Erfindung auch auf Addierwerke mit anderer Datenbreite (wie z.B. 32, 128, 256, usw) anwenden.
Fig. 5 zeigt für das Beispiel des 16 + 16 Addierwerkes ein binäres Addierwerk mit den Eingangsoperanden A(0..15) und B(0..15). Der Ergebnis Operand SUM(0..15) stellt die Summe aus der Operation A+B dar. Zusätzlich wird die Anzahl der führenden Nullstellen ZDC(0..1) ermittelt. Eine Stelle (Digit) besteht aus 4 Bits und kann die hexadezimalen Werte {0, 1 ,2 ,3 ,4, 5, 6, 7, 8, 9, A, B, C, D, E, F} annehmen. Die Summe besteht aus 16 Bits oder 4 Stellen. Der ZDC sei binärkodiert, besteht aus 2 Bits, und kann die, den hexadezimalen Werten entsprechenden, Dezimalwerte 0 bis 4 annehmen. Es stellen in Fig. 5 dar:
A(0..15) Operand A B(0..5) Operand B
CI Carry_In für Addierwerk als Ganzes
G Generate für einzelne Binärstellen
P Propagate für einzelne Binärstellen
GD Generate für Digit (4 bit)
PD Propagate für Digit (4 bit)
QD Generate or Propagate für Digit (4 bit)
SN Summe Normal ohne Carry In (A + B)
SP Summe Plus_l mit Carry In (A + B + 1)
ZDN Zero Digit ohne Carry In (A + B)
ZDP Zero Digit mit Carry In (A + B + 1)
DS Digit Select für Digit
ZDC Zero Digit Count 'Gezählte führende Nullen' Tabelle 1 zeigt die Zuordnung der ZDC Bits abhängig von der Summe:
SUM ZDC
Stellen) (Binär-Bits) (dezimal)
Rxxx 0 0 0
ORxx 0 1 1
OORx 1 0 2
000R 1 1 3
mit R:= Stelle mit hexadezimalem Wert {1,..F} ungleich {0} x:= unbestimmt, beliebig
Als weiteren Eingang erhält das Addierwerk gemäß Fig. 5 ein Carry_In (CI) Signal. Wird dieses mit einer (logischen) '1' beschaltet, so erhält man die Summe A+B+l. Ist CI='0' erhält man die Summe A+B. Es können auch weitere Ausgänge verwendet werden, die hier nicht aufgeführt sind (z.B. Carry Out, Result Zero, usw.).
Das Addierwerk nach Fig. 5 besteht aus 4 Teiladdierblöcken, die jeweils 4+4 Bit addieren und auch vorkodierte Signale ZDNO, ZDN1, ZDN2, ZDN3, ZDPO, ZDP1, ZDP2, ZDP3 zur Ermittlung der führenden Nullstellen ZDC erzeugen.
Aus diesen vorkodierten ZDC Signalen werden durch 2-stufige Logik die Ausgangssignale ZDC(O) und ZDC(l) erzeugt. Die Bool'sehen Gleichungen dafür lauten:
ZDC(O) = ZDO ZD1 ZDC(l) - ZDO ZD2 + ZDO ZD2 wobei: . eine UND-Verknüpfung,
+ eine ODER-Verknüpfung und eine NICHT-Verknüpfung (Invertierung) darstellt.
Die Zähldekodierlogik des 16 Bit Addierwerkes in Fig. 5 besteht in diesem Fall aus einer AND-Verknüpfung für ZDC(O) und einer zwei-stufigen Logik für ZDC(l) wie in Fig. 5 gezeigt.
Fig. 6 zeigt für das Beispiel eines 64 + 64 Addierwerkes ein binäres Addierwerk mit den Eingangsoperanden A(0..63) und B(0..63). Der Ergebnis Operand SUM(0..63) stellt die Summe aus der Operation A+B dar. Zusätzlich wird die Anzahl der führenden Nullstellen ZDC(0..3) ermittelt. Eine Stelle (Digit) besteht aus 4 Bits und kann die hexadezimalen Werte {0, 1 ,2 ,3 ,4, 5, 6, 7, 8, 9, A, B, C, D, E, F} annehmen. Die Summe besteht aus 64 Bits oder 16 Stellen. Der ZDC sei binärkodiert, besteht aus 4 Bits, und kann die, den hexadezimalen Werten entsprechenden, Dezimalwerte 0 bis 15 annehmen. Es zeigen in Fig. 6:
A(0..63) Operand A B(0..63) Operand B CI Carrγ_In für Addierwerk als
Ganzes
CI_B Carry_In Block für 16 bit Block (4 digit)
GB Generate Block für 16 bit Block (4 digit)
PB Propagate Block für 16 bit Block (4 digit)
ZDJ Precounted Zero Digit 4 Zero Digits in 16 bit
Block
ZDK Precounted Zero Digit 1 oder 3 Zero Digits in
Block ZDL Precounted Zero Digit 2 oder 3 Zero Digits in
Block SUM(0..63) Summe
Tabelle 2 zeigt die Zuordnung der ZDC Bits abhängig von der Summe:
SUM | ZDC
(hexadezimale Stellen) (Binär-Bits) (dezimal)
Rxxx xxxx xxxx xxxx 0 0 0 0 0
ORxx xxxx xxxx xxxx 0 0 0 1 1
OORx xxxx xxxx xxxx 0 0 1 0 2
000R xxxx xxxx xxxx 0 0 1 1 3
0000 Rxxx xxxx xxxx 0 1 0 0 4
0000 ORxx xxxx xxxx 0 1 0 1 5
0000 OORx xxxx xxxx 0 1 1 0 6
0000 000R xxxx xxxx 0 1 1 1 7
0000 0000 Rxxx xxxx 1 0 0 0 8
0000 0000 ORxx xxxx 1 0 0 1 9
0000 0000 OORx xxxx 1 0 1 0 10
0000 0000 000R xxxx 1 0 1 1 11
0000 0000 0000 Rxxx 1 1 0 0 12
0000 0000 0000 ORxx 1 1 0 1 13
0000 0000 0000 OORx | 1 1 1 0 14
0000 0000 0000 00OR 1 1 1 1 15
0000 0000 0000 0000 X X X X 16
mit R:= Stelle mit hexadezimalem Wert {1,..F} ungleich {0} x:= unbestimmt, beliebig
Als weiteren Eingang erhält das Addierwerk gemäß Fig. 6 ein Carry_In (CI) Signal. Wird dieses mit einer (logischen) '1' beschaltet, so erhält man die Summe A+B+l. Ist CI='0' erhält man die Summe A+B. Es können auch weitere Ausgänge verwendet werden, die hier nicht aufgeführt sind (z.B. Carry Out, Result Zero, usw.).
Das Addierwerk nach Fig. 6 besteht aus 4 Teiladdierblöcken, die jeweils 16+16 Bit addieren und auch vorkodierte Signale ZDJO, ZDJ1, ZDJ2, ZDJ3, ZDKO, ZDK1, ZDK2, ZDK3, ZDLO, ZDL1, ZDL2, ZDL3 zur Ermittlung der führenden Nullstellen ZDC erzeugen. Ein solcher Teiladdierblock ist in Fig. 7 gezeigt.
Aus diesen vorkodierten ZDC Signalen werden durch 2-stufige Logik die Ausgangssignale ZDC(O), ZDC(l), ZDC(2) und ZDC(3) erzeugt. Die Bool'sehen Gleichungen dafür lauten:
ZDC(O) = ZDJO . ZDJ1
ZDC(l) = ZDJO ."ZDJ1 + ZDJO ZDJ2
ZDC(2) = ZDKO
+ ZDJO . ZDK1
+ ZDJO . ZDJ1 . ZDK2
+ ZDJO . ZDJ1 . ZDJ2 ZDK3
ZDC(3) = ZDLO
+ ZDJO . ZDL1
+ ZDJO . ZDJ1 . ZDL2
+ ZDJO . ZDJ1 0 ZDJ2 ZDL3
Die Teiladdierblöcke enthalten auch Generate und Propagate Signal Ausgänge GBO, GBl, GB2, GB3, PBO, PBl, PB2, PB3, wie sie bei Verwendung von Carry Select Addierwerken üblich sind. Diese Generate und Propagate Signal werden im Block Prop-Gen-3.Stufe verknüpft und daraus die Carry In Signale CI_B0, CI_B1, CI_B2 und CI_B3 für den jeweiligen Teiladdierblock erzeugt.
Das Carry In Signal nach Teiladdierblock 0 ist identisch zum Carry In des Gesamtaddierwerkes CI. Die Bool*sehe Gleichung für die Carry In Signale der jeweiligen Teiladdierblöcke lauten:
CI BO GBl +PB1.GB2 +PB1.PB2.GB3 +PB1.PB2.PB3.CI
CI Bl GB2 +PB2.GB3 +PB2.PB3.CI
CI B2 GB3 +PB3.CI
CI B3 CI
Diese Verknüpfung ist in 2-stufiger Logik realisierbar.
Fig. 7 zeigt einen Teiladdierblock des erfindungsgemäßen Beispiels. Er hat die Operanden-Eingänge A(0..15) und B(0..15), sowie den Carry In Eingang CI_B, der vom Main-Prop-Generate Block erzeugt wird. Es zeigen in Fig. 7
G Generate für einzelne Binärstellen
P Propagate für einzelne Binärstellen
GD Generate für Digit (4 bit)
PD Propagate für Digit (4 bit)
QD Generate or Propagate für Digit (4 bit)
SN Summe Normal ohne Carry In (A + B)
SP Summe Plus_l mit Carry In (A + B + 1)
SX Summe im Fall CI_B=0
SY Summe im Fall CI_B=1
ZDN Zero Digit ohne Carry In (A + B)
ZDP Zero Digit mit Carry in (A + B + 1)
ZDX Zero Digit im Fall CI_B=0
ZDY Zero Digit im Fall CI_B=1
DS_X Digit Select für Digit im Fall CI_B=0 DS_Y Digit Select für Digit im Fall CI_B=1
ZDJ Precounted Zero Digit 4 Zero Digits in 16 bit Block
ZDK Precounted Zero Digit 1 oder 3 Zero Digits in Block
ZDL Precounted Zero Digit 2 oder 3 Zero Digits in Block
Als Ausgang (Output) liefert der Teiladdierblock die Signale GB und PB, die Summe SUM(0..15), sowie Signale, die die vorberechnete Anzahl der führenden Nullstellen (Precounted Zero Digits Signale) darstellen: ZDJ, ZDK und ZDL. Da das Carry In Signal CI_B zeitlich noch nicht verfügbar ist, werden zunächst die potentiellen Signale DS_X0, DS_X1, DS_X2 (für den Fall CI_B=0) und DS_Y0, DS_Y1, DS_Y2 (für den Fall CI_B=1) erzeugt. Dies geschieht im Digit Preselect Block (Fig. 8).
Aus den potentiellen Summen SN (SUM normal: A+B) und SP (SUM plus_l: A+B+l) werden zunächst die potentiellen Nullstellen ZDNO, ZDN1, ZDN2, ZDN3 (von Summe SN: A+B) und ZDPO, ZDPl, ZDP2, ZDP3 (von Summe SP: A+B+l) erzeugt. Dafür genügt eine einfache NOR Verknüpfung mit 4 Eingängen, wie in Fig. 7 gezeigt. Mit den Auswahl (Select) Signalen DS_Xi und DS_Yi (i=0,l,2) werden daraus die ZDC Signale ZDXO, ZDX1, ZDX2, ZDX3 (für den Fall CI_B=0) und ZDYO, ZDY1, ZDY2, ZDY3 (für den Fall CI_B=1) erzeugt.
Aus diesen Signalen wird mit der in Fig. 7 gezeigten Logik die Signale ZDXJ, ZDXK, ZDXL (für den Fall CI_B=0) und ZDYJ, ZDYK, ZDYL (für den Fall CI_B=1) erzeugt. Diese Signal sind 'vorkodiert' um die spätere Erzeugung des ZDC möglichst einfach zu gestalten. Danach werden mittels des Carry In Signals CI_B die 'Precounted Zero Digit' Signale ZDJ, ZDK und ZDL ausgewählt.
ZDJ ist aktiv (='1'), wenn alle vier Stellen im 16 Bit Block null sind. ZDK ist aktiv, wenn das höchstwertige oder die drei höchstwertigen Stellen null sind. ZDL ist aktiv, wenn die zwei oder drei höchstwertigen Stellen null sind.
Die Blöcke PROP-GEN-1.STUFE, PROP-GEN-2.STUFE, ADD-DIGIT und VORAUSWAHL DER SUMME entsprechen dem Stand der Technik für ein Carry Select Addierwerk. Die Logik im Zusammenhang mit ZDC ist jedoch Teil der Erfindung.
ZDXJ = ZDXO . ZDX1 . ZDX2 . ZDX3 ZDXK = ZDXO . ZDX1 . "(ZDX2 . ZDX3) ZDXL = ZDXO .~ZDX1 + ZDXO . ZDX2 ."ZDX3
ZDYJ = ZDYO . ZDY1 . ZDY2 . ZDY3 ZDYK = ZDYO . ZDY1 . ~(ZDY2 . ZDY3) ZDYL = ZDYO .~ZDY1 + ZDYO . ZDY2 ."ZDY3
Fig. 8 zeigt den Digit Preselect Block. Er hat die Generate Inputs GDI, GD2, GD3 und die Prop-Generate Inputs QD1, QD2, QD3, sowie die Digit Select Outputs DS_X0, DS_X1, DS_X2 (für den Fall CI_B=0) und DS_Y0, DS_Y1, DS_Y2 (für den Fall CI_B=1) für die drei höchstwertigen Stellen. Die Bool'sehen Gleichungen lauten:
DS_X0 = GDI + QD1.GD2 + QD1.QD2.GD3 DS_X1 = GD2 + QD2.GD3 DS_X2 = GD3
DS_Y0 = GDI + QD1.GD2 + QD1.QD2.QD3 DS_Y1 = GD2 + QD2.QD3 DS_Y2 = QD3
Diese Verknüpfung ist in 2 Logikstufen realisierbar.

Claims

A N S P R Ü C H E
1. Vorrichtung zur Ermittlung der führenden Nullstellen (ZDC) einer Summe (S) in etwa zeitgleich zur Ermittlung der Summe (S), gekennzeichnet durch
Mittel (30) zum parallelen Ermitteln von Teilsummen einzelner Stellen unter Berücksichtigung möglicher Überträge;
Mittel (40) zum Vorermittlen potentieller Nullstellen ausgehend von den Teilsummen;
Mittel (50) zum Auswählen der potentiellen Nullstellen bei Feststehen des korrekten Wertes einer jeweiligen Teilsumme;
Mittel (70) zur Auswertung der führenden Nullstellen der Summe aus den ausgewählten Nullstellen.
2. Vorrichtung nach Anspruch 1, gekennzeichnet durch
Mittel (20) zum parallelen Ermitteln von Teilsummen einer Vielzahl von Stellen unter Berücksichtigung möglicher Überträge;
Mittel (20) zum Vorermittlen potentieller führender Nullstellen (ZDX, ZDY) ausgehend von den Teilsummen der Vielzahl von Stellen;
Mittel (150) zum Auswählen der potentiellen führenden Nullstellen bei Feststehen des korrekten Wertes einer jeweiligen Teilsumme der Vielzahl von Stellen; Mittel (170) zur Auswertung der führenden Nullstellen der Summe aus den ausgewählten potentiellen führenden Nullstellen.
Vorrichtung zur Ermittlung von Nullstellen einer Summe (S) aus miteinander zu addierenden Operanden (A, B), wobei die Summe (S) mit Hilfe einer Vielzahl zueinander paralleler Addierer (30A, 30B, 30C) gebildet wird, die jeweils Teiloperanden (AO, AI, A2 und BO, Bl, B2) der zu addierenden Operanden (A, B) miteinander zu Teilsummen (SO, Sl, S2) addieren, wobei jeder der Addierer (30A, 30B, 30C) jeweils stellenwertgleich zumindest eine der Stellen der Operanden (A, B) addiert, und wobei der Addierer (30A) der niederwertigsten Stelle eine entsprechende Teilsumme (SO) und Addierer (30B, 30C) hoherwertigerer Stellen sowohl eine entsprechende Teilsumme (Sl, S2), als auch die entsprechende Teilsumme (Sl + 1, S2 + 1) mit Berücksichtigung eines jeweiligen Übertrags als Ausgang haben, gekennzeichnet durch
eine Vielzahl von Nullstellenerkennungsmitteln (40), jeweils gekoppelt mit je einem der Ausgänge der Vielzahl von Addierern (30), zur Erkennung, ob die jeweils anliegende Teilsumme an dem betrachteten Ausgang eine Nullstelle repräsentiert;
eine Vielzahl von Selektoren (50B, 50C), jeweils gekoppelt mit den Ausgängen der
NullStellenerkennungsmittel (40B0, 40B1, 40C0, 40C1), die mit jeweils einem der Addierer (30B, 30C) der höherwertigeren Stellen gekoppelt sind, zur Auswahl, ob jeweils die ermittelte Teilsumme mit (Sl + 1, S2 + 1) oder ohne (Sl, S2) Berücksichtigung eines jeweiligen Übertrages als korrekte Teilsumme für die Ermittlung der Nullstellen zu verwenden ist; ein Selektiermittel (60) zur Steuerung der Vielzahl von Selektoren (50) zur Auswahl der jeweiligen korrekten Teilsumme;
eine Zähldekodierlogik (70), gekoppelt mit dem Ausgang des Nullstellenerkennungsmittels (40A) der niederwertigsten Stelle, sowie den Ausgängen der Selektoren (50) der höherwertigeren Stellen, zur Ermittlung der Anzahl der führenden Nullstellen (ZDC) der Summe (S) .
4. Vorrichtung nach Anspruch 3, worin der Addierer (30A) der niederwertigsten Stelle sowohl die entsprechende Teilsumme (SO) als auch die entsprechende Teilsumme (SO + 1) mit Berücksichtigung eines möglichen Übertrags als Ausgang hat, dadurch gekennzeichnet, daß die Vorrichtung weiterhin aufweist:
ein weiteres Nullstellenerkennungsmittel (40A1), gekoppelt mit dem Ausgang des Addierers (30A) der niederwertigsten Stelle mit Berücksichtigung eines möglichen Übertrags (C) ;
ein weiterer Selektor (50A), gekoppelt mit den Ausgängen der Nullstellenerkennungsmittel (40A0, 40A1), die mit dem Addierer (30A) der niederwertigsten Stelle gekoppelt sind;
wobei die Zähldekodierlogik (70) mit den Ausgängen aller Selektoren (50) gekoppelt ist.
5. Addierwerk (20), gekennzeichnet durch eine Vorrichtung nach Anspruch 1 oder 3 (Fig. 2) .
6. Addierwerk (20), gekennzeichnet durch eine Vorrichtung nach Anspruch 1 oder 4 (Fig. 3). Vorrichtung zur Ermittlung von Nullstellen einer Summe (S) aus miteinander zu addierenden Operanden (A, B) , wobei die Operanden (A, B) in eine Vielzahl von Teiloperanden (A(0), B(0), A(l), B(l), A(2), B(2)) aufgeteilt sind, die Stellen der Operanden (A, B) repräsentieren, gekennzeichnet durch:
ein Addierwerk (20) nach Anspruch 5, zur Addition der niederwertigsten Teiloperanden (A(0), B(0));
eine Vielzahl von Paaren von Addierwerken (20) nach Anspruch 6 zur Addition der höherwertigeren Teiloperanden (A(l), B(l), A(2), B(2)), wobei jeweils ein Addierwerk (20) jedes Paares als Eingabe einen Überlauf erhält;
eine Vielzahl von Selektoren (150), jeweils gekoppelt mit den Ausgängen jeweils eines der Paare von Addierwerken (20), zur Auswahl, ob jeweils die Anzahl der führenden Nullstellen der Teiloperanden mit oder ohne Berücksichtigung eines jeweiligen Übertrages für die Ermittlung der führenden Nullstellen der Summe (S) zu verwenden ist;
einem Selektiermittel (160) zur Steuerung der Vielzahl von Selektoren (150);
eine Gesamt-Zähldekodierlogik (170), gekoppelt mit einem Ausgang des Addierwerkes (20) der niederwertigsten Teiloperanden (A(0), B(0)), der die Anzahl der führenden Nullstellen (ZDC(0)) der Teilsumme der niederwertigsten Teiloperanden (A(0), B(0)) repräsentiert, sowie mit Ausgängen der Vielzahl von Sektoren (150), die jeweils die Anzahl der führenden Nullstellen (ZDC(0)) der jeweiligen Teilsumme der höherwertigeren Teiloperanden (A(l), B(l), A(2), B(2)) repräsentieren, zur Ermittlung der Anzahl der führenden Nullstellen (ZDC) der Summe (S).
8. Vorrichtung nach Anspruch 7, dadurch gekennzeichnet, daß die Vorrichtung zur Addition der niederwertigsten Teiloperanden (A(0), B(0)) ein Paar von Addierwerken (20) nach Anspruch 6 aufweist, wobei ein Addierwerk des Paares als Eingabe einen Überlauf erhält, und mit einem weiteren Selektor (150), der mit den Ausgängen des Paares von Addierwerken (20) gekoppelt ist.
9. Addierwerk (120), gekennzeichnet durch eine Vorrichtung nach einem der vorstehenden Ansprüche 2, 7 oder 8.
10. Addierwerk mit einer Vielzahl paralleler Addierer (30) in einer hierarchischen Struktur, gekennzeichnet durch
einer Vielzahl von Addierwerken (20) nach Anspruch 5 oder 6 für die niedrigste der hierarchischen Stufen;
mindestens einem Addierwerk (120) nach Anspruch 9 für die nächst höhere der hierarchischen Stufen.
11. Addierwerk nach Anspruch 10, gekennzeichnet durch eine Vielzahl von Addierwerken höherer hierarchischer Stufen, wobei jedes Addierwerk mit einer höheren hierarchischen Stufe jeweils eine Vielzahl von Addierwerken der nächst niedrigeren hierarchischen Stufe aufweist.
12. Gleitkomma-Recheneinheit mit einem Addierwerk entsprechend einer der vorstehenden Ansprüche. 13. Datenverarbeitungsanlage mit einem Addierwerk entsprechend einer der vorstehenden Ansprüche und/oder einer Gleitkomma-Recheneinheit nach Anspruch 12.
14. Verfahren zur Ermittlung von Nullstellen einer Summe (S) aus miteinander zu addierenden Operanden (A, B) , wobei die Summe in einem Addierwerk (20) mit einer Vielzahl zueinander paralleler Addierer (30A, 30B, 30C) gebildet wird, die jeweils Teiloperanden (AO, AI, A2 und BO, Bl, B2) der zu addierender Operanden (A, B) miteinander zu Teilsummen (SO, Sl, S2) addieren, wobei jeder der Addierer (30A, 30B, 30C) jeweils stellenwertgleich eine der Stellen der Operanden (A, B) addiert, wobei der Addierer (30A) der niederwertigste Stelle eine entsprechende Teilsumme (SO) und optional auch die entsprechende Teilsumme (SO + 1) mit Berücksichtigung eines möglichen Übertrags und Addierer (30B, 30C) hoherwertigerer Stellen sowohl eine entsprechende Teilsumme (Sl, S2) als auch die entsprechende Teilsumme (Sl + 1, S2 + 1) mit Berücksichtigung eines jeweiligen Übertrags als Ausgang haben; das Verfahren weist die folgenden Schritte auf:
Erkennen, ob die jeweilig ermittelte Teilsumme an jedem der Ausgänge eine Nullstelle repräsentiert;
Auswählen, ob jeweils die ermittelte Teilsumme mit (SO + 1, Sl + 1, S2 + 1) oder ohne (SO, Sl, S2) Berücksichtigung eines entsprechenden Übertrages die korrekte Teilsumme für die Ermittlung der Nullstellen zu verwenden ist;
Ermitteln der Anzahl der führenden Nullstellen (ZDC) der Summe (S) aus den ausgewählten, erkannten Nullstellen. 15. Verfahren nach Anspruch 14, dadurch gekennzeichnet, daß die Schritte des Auswählens und Ermitteins jeweils Schritte des Vorauswählens und des Vorermittelns von potentiellen führenden Nullstellen, sowie Schritte des Endauswählens und des Endermitteins der führenden Nullstellen aufweisen.
16. Verwendung des Verfahrens nach einem der vorstehenden Ansprüchen 14 oder 15 in Addierwerken zur in etwa gleichzeitigen Ermittlung der führenden Nullstellen mit der Ermittlung der Summe.
17. Verwendung des Verfahrens nach einem der vorstehenden Ansprüchen in Gleitkomma-Recheneinheiten.
18. Verwendung des Verfahrens nach einem der vorstehenden Ansprüchen in Datenverarbeitungsanlagen.
PCT/EP1995/001455 1995-04-18 1995-04-18 Übertrag-auswahl-addierer mit einer vorermittlung der führenden nullstellen WO1996033456A1 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP8531420A JPH09507940A (ja) 1995-04-18 1995-04-18 先行ゼロ・ディジットのプレカウンティングを持った桁上げ選択型加算器
PCT/EP1995/001455 WO1996033456A1 (de) 1995-04-18 1995-04-18 Übertrag-auswahl-addierer mit einer vorermittlung der führenden nullstellen
US08/765,419 US5875123A (en) 1995-04-18 1995-04-18 Carry-select adder with pre-counting of leading zero digits
DE19614480A DE19614480C2 (de) 1995-04-18 1996-04-12 Addierwerk mit einer Vorermittlung der führenden Nullstellen und Verfahren

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP1995/001455 WO1996033456A1 (de) 1995-04-18 1995-04-18 Übertrag-auswahl-addierer mit einer vorermittlung der führenden nullstellen

Publications (1)

Publication Number Publication Date
WO1996033456A1 true WO1996033456A1 (de) 1996-10-24

Family

ID=8165996

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP1995/001455 WO1996033456A1 (de) 1995-04-18 1995-04-18 Übertrag-auswahl-addierer mit einer vorermittlung der führenden nullstellen

Country Status (4)

Country Link
US (1) US5875123A (de)
JP (1) JPH09507940A (de)
DE (1) DE19614480C2 (de)
WO (1) WO1996033456A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6047304A (en) * 1997-07-29 2000-04-04 Nortel Networks Corporation Method and apparatus for performing lane arithmetic to perform network processing
US6275839B1 (en) * 1998-09-22 2001-08-14 International Business Machines Corporation Method and system for immediate exponent normalization in a fast floating point adder
JP3540807B2 (ja) * 2002-08-27 2004-07-07 沖電気工業株式会社 加算器,乗算器,及び集積回路
US7840622B2 (en) * 2005-07-25 2010-11-23 International Business Machines Corporation Method and floating point unit to convert a hexadecimal floating point number to a binary floating point number

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5204825A (en) * 1991-08-30 1993-04-20 Weitek Corporation Method and apparatus for exact leading zero prediction for a floating-point adder

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4926369A (en) * 1988-10-07 1990-05-15 International Business Machines Corporation Leading 0/1 anticipator (LZA)
JP2757671B2 (ja) * 1992-04-13 1998-05-25 日本電気株式会社 プライオリティエンコーダおよび浮動小数点加減算装置
US5317527A (en) * 1993-02-10 1994-05-31 Digital Equipment Corporation Leading one/zero bit detector for floating point operation
US5493520A (en) * 1994-04-15 1996-02-20 International Business Machines Corporation Two state leading zero/one anticipator (LZA)
RU95107478A (ru) * 1995-05-18 1997-02-10 А.И. Грушин Способ устранения старших незначащих цифр при вычислениях с плавающей запятой и устройство для его осуществления

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5204825A (en) * 1991-08-30 1993-04-20 Weitek Corporation Method and apparatus for exact leading zero prediction for a floating-point adder

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HOKENEK E ET AL: "LEADING-ZERO ANTICIPATOR -LZA0 IN THE IBM RISC SYSTEM/6000 FLOATING-POINT EXECUTION UNIT", IBM JOURNAL OF RESEARCH AND DEVELOPMENT, vol. 34, no. 1, 1 January 1990 (1990-01-01), pages 71 - 77, XP000128181 *
SUZUKI K ET AL: "A 2.4-NS, 16-BIT, 0.5- M CMOS ARITHMETIC LOGIC UNIT FOR MICROPROGRAMMABLE VIDEO SIGNAL PROCESSOR LSIS", 9 May 1993, PROCEEDINGS OF THE CUSTOM INTEGRATED CIRCUITS CONFERENCE, SAN DIEGO, MAY 9 - 12, 1993, NR. CONF. 15, PAGE(S) 12.04.01 - 12.04.04, INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS *

Also Published As

Publication number Publication date
US5875123A (en) 1999-02-23
JPH09507940A (ja) 1997-08-12
DE19614480A1 (de) 1996-11-14
DE19614480C2 (de) 2000-09-07

Similar Documents

Publication Publication Date Title
EP0079471B1 (de) Schaltungsanordnung und Verfahren zur Bildung von Skalarprodukten und Summen von Gleitkommazahlen mit maximaler Genauigkeit
DE68926330T2 (de) Antizipator für die Anzahl vorhergehender Nullen/Einsen
DE112019002981T5 (de) Parallelberechnungsarchitektur mit rekonfigurierbarer kernebenen- und vektorebenen-parallelität
DE4403917C2 (de) Vorrichtung zum Berechnen einer Bit-Besetzungszählung
DE2934971A1 (de) Datenverarbeitungssystem
EP0123921A2 (de) Parallelverknüpfungsschaltung mit verkürztem Übertragsdurchlauf
DE112012005014T5 (de) Ausführen arithmetischer Operationen unter Verwendung sowohl von großen als auch kleinen Gleitkommawerten
DE3143223A1 (de) Gleitpunkt-multiplizierschaltkreis
DE3700323C2 (de)
DE2623986A1 (de) Parallelrechenwerk
DE2758130C2 (de) Binärer und dezimaler Hochgeschwindigkeitsaddierer
DE4101004A1 (de) Paralleler multiplizierer mit sprungfeld und modifiziertem wallac-baum
DE2730918A1 (de) Anordnung zum multiplizieren von binaerzahlen
DE4019646C2 (de) Vorrichtung und Verfahren zum Multiplizieren von Datenwörtern in Zweier-Komplement-Darstellung
DE3447634C2 (de)
DE3434777C2 (de)
DE69026414T2 (de) Binäres Addiergerät
DE19614480C2 (de) Addierwerk mit einer Vorermittlung der führenden Nullstellen und Verfahren
DE3688434T2 (de) Schneller bcd/binaer-addierer.
EP1248186A2 (de) Carry-ripple Addierer
DE112020000193T5 (de) Quantenschaltungsanordnung
DE69633479T2 (de) ODER-Gatter mit kontrollierbarer Breite
DE4416143A1 (de) Verfahren zum Entwerfen von Pipeline - Stufen in einem Computer-unterstützten Entwurfssystem
EP0433315A1 (de) Schaltungsanordnung zur addition oder subtraktion von im bcd-code oder dual-code codierten operanden
EP0193711B1 (de) Schaltungsanordnung zur Funktionsüberwachung eines arithmetische Operationen ausführenden Rechenwerkes anhand von Paritätsbits

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FR GB GR IE IT LU MC NL PT SE

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 08765419

Country of ref document: US

122 Ep: pct application non-entry in european phase