EP1710690A1 - Multiplizierschaltung - Google Patents

Multiplizierschaltung Download PDF

Info

Publication number
EP1710690A1
EP1710690A1 EP05252209A EP05252209A EP1710690A1 EP 1710690 A1 EP1710690 A1 EP 1710690A1 EP 05252209 A EP05252209 A EP 05252209A EP 05252209 A EP05252209 A EP 05252209A EP 1710690 A1 EP1710690 A1 EP 1710690A1
Authority
EP
European Patent Office
Prior art keywords
operand
circuit
bit
multiplier
product
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.)
Withdrawn
Application number
EP05252209A
Other languages
English (en)
French (fr)
Inventor
Tariq Kurd
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.)
STMicroelectronics Research and Development Ltd
Original Assignee
STMicroelectronics Research and Development Ltd
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 STMicroelectronics Research and Development Ltd filed Critical STMicroelectronics Research and Development Ltd
Priority to EP05252209A priority Critical patent/EP1710690A1/de
Priority to US11/400,753 priority patent/US20060277246A1/en
Publication of EP1710690A1 publication Critical patent/EP1710690A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/487Multiplying; Dividing
    • G06F7/4876Multiplying

Definitions

  • the present invention relates to multiplication circuitry.
  • the present invention relates to multiplication circuitry for multiplying two double precision floating point operands.
  • Binary floating point numbers such as those defined by the Institute of Electrical and Electronic Engineers (IEEE) standard 754 are capable of representing floating point numbers within typical circuitry.
  • IEEE 754 standard floating point number is + (X.Y)*(2 n ).
  • the floating point number has three basic components, the sign, the exponent, and the mantissa.
  • the '+' part is represented by the sign component, the 'X.Y' part by the mantissa, and the '2 n ' by the exponent.
  • the mantissa comprises two parts, the fraction representing 'Y' part and an implicit leading digit representing the 'X' part.
  • the implicit leading digit is a '1' when the floating point is a normalised number, and a '0' when the floating point is a denormalised number.
  • a number is normalised when the exponent part of the number is greater than its smallest number.
  • the exponent is required to represent both positive and negative numbers. In order to do this a bias value is added to the actual exponent value in order to get the stored exponent. Furthermore the exponent values of -127 (all 0's) and +128 (all 1's) are reserved for special numbers.
  • a double precision or 64 bit floating point number has 1 bit allocated to the sign part, 11 bits allocated to the exponent, and 52 bits allocated to the fraction.
  • FIG. 1 shows a schematic view of a known single precision floating point multiplier circuit 1 capable of multiplying floating point numbers FA and FB.
  • the numbers FA and FB are also known as operands.
  • Figure 1 shows that in order to carry out a floating point multiplication the multiplier circuitry 1 is divided into five circuit elements, explained below.
  • a comparator 2 compares sign bits S_FA, S_FB to determine if the output value is a positive or negative number. This is carried out in figure 1 by the XNOR gate.
  • An integer multiplier 3 multiplies the operand mantissas M_FA and M_FB to produce a mantissa product M_FC.
  • An adder stage 5, 7 adds the operand exponents E_FA and E_FB, with an additional offsetting to compensate for the original offset of E_FA and E_FB, to produce an exponent sum E_FC.
  • a post multiplication normaliser 9 normalises the mantissa product to bring the mantissa back into the form 1.Y, i.e. with an implicit leading value of 1.
  • the normalisation may require the exponent sum E_FC to be modified.
  • a rounding circuit 11 rounds the normalised mantissa product, to reduce the number of bits used to represent the number and therefore enable the product to be represented by the same number format as the operands.
  • a typical integer multiplier comprises an operand encoder, a partial product generator, a product term compressor or combiner, and a final term addition stage Typically these have required a 64x64 bit multiplier block which multiplies two 64 bit numbers simultaneously. However if floating point multiplication is only required of the multiplier then the multiplier block has been typically a 53x53 bit device. Furthermore the final term addition stage capable of handling the output from a 53x53 bit multiplier is required to be at least 106 bits wide. This outputs a 106 bit word representing the pre-normalised product.
  • This 106 bit product is then input to a 106 bit post multiplication normalisation circuit for normalisation.
  • a 106 place leading zero counting circuit (CLZ) (not shown in figure 1) to determine the extent of the normalisation required.
  • CLZ leading zero counting circuit
  • the leading zero counting circuit examines the number bit by bit in order to determine the point at which there is a leading '1' value and outputs this leading value to the normalisation circuit.
  • a multiplier circuit for multiplying a first and a second operand, the circuit comprising: sectioning circuitry arranged to section the first operand into a first number of parts; a multiplier arranged to receive the second operand and a second number of the first number of parts, wherein the multiplier is further arranged to generate only a second number of product terms, each product term being one of the second number of parts multiplied by the second operand.
  • a multiplier circuit multiplying two 64 bit floating point numbers does not have to have a full 106 bit wide output as the product is calculated using sections of the operand which produce smaller width products, only 64 bits wide for example, which are simpler to produce and require less space on the silicon chip.
  • the circuit may further comprise control circuitry arranged to determine the second number dependent on the properties of the first operand and/or the second operand.
  • the control circuitry may be further arranged to determine the second number by the position of the first non zero value in the first operand and/or second operand.
  • the control circuitry may further be arranged to determine the second number depending on whether the first and/or second operand is part of a denormalised number.
  • the embodiments of the present invention therefore overcome the problem where one of the operands is a denormalised number, as this could produce a leading '1' value of the product being found as low as bit 52. In such a system as claimed above all but the top 5 bits would be discarded effectively destroying the result. Instead the control circuitry notices that sections of the denormalised operand are zeros and therefore the resulting product terms would also be zeros. In the case that only the least significant section of the operand had '1' values, i.e. that the other 6 sections were all zeros, then the embodiments of the invention could stop the operation in only one step by selecting the second number as being 1. This action would keep the first result in totality.
  • a rule may be followed whereby if all of the remaining sections of the operand are zeros then stop the multiplication process.
  • a method of operating a multiplier circuit comprising the steps of: receiving a first and second operand; sectioning the first operand into a first number of parts; multiplying a second number of the first number of parts of the first operand by the second operand to form a second number of product terms; combining the second number of the product terms to form the product of the first and second operands.
  • the method may further comprise the steps of: detecting if the first or second operand is a denormalised number; determining a first leading '1' value in the first or second operand; calculating the second number dependent on the steps of detecting and determining.
  • the step of determining a first leading '1' value may be carried out on either the first or second operand in dependence on the detecting step.
  • a multiplier core 51 comprises a 53x8 bit multiplier block 101, a 64 bit adder 103, a 7 place leading zero counting circuit 105, a 64 bit normalisation circuit 107 and a 64 bit rounding circuit 109.
  • the 53x8 multiplier block 101 receives a 53 bit input and a 8 bit input (both described in further detail later but not shown on figure 2) and outputs a 61 bit sum term, sum [60:0], and a 61 bit carry term, carry [61:1].
  • a 61 bit sum term, sum [60:0] and a 61 bit carry term, carry [61:1].
  • M:N the reference term
  • the terms in the square brackets define the weighting of the most significant bit M and the least significant bit N, and the total number of bits by the inclusive difference between the two M-N+1.
  • sum [60:0] has a most significant bit equal to the value of 2 60 , a least significant bit equal to the value of 2 0 , and is 61 bits wide.
  • the carry and the sum terms are input to a 64 bit adder block 103.
  • the 64 bit adder block 103 outputs a pre-normalised mantissa product, which is 64 bits long, PM [63:0].
  • the most significant 8 bits of the pre-normalised mantissa product, PM [7:0] are passed to the input of the 7 place leading zero counting circuit (CLZ) 105.
  • CLZ 105 calculates the position of the first '1' value and outputs the value of the leading zero count to the normalisation circuit 107.
  • the normalisation circuit 107 Furthermore the full pre-normalised mantissa product value is passed to the normalisation circuit 107. From the 64 bit product and the output from the CLZ 105 the normalisation circuit normalises the product and outputs the 64 bit normalised value NM [63:0] to the rounding circuit 109. The rounding circuit 109 then carries out a rounding process on the normalised product NM [63:0] to produce a 64 bit normalised and rounded mantissa value.
  • Figure 3 demonstrates a method for performing a 53x53 bit multiplication using a 53x8 bit multiplier such as shown in Figure 2.
  • the two input operands, operand 1 [52:0] 151 and operand 2 [52:0], 153 are the two floating point mantissa numbers to be multiplied.
  • the first step in multiplying these two numbers together is to split operand 2 into seven parts or sections 153a to 153g.
  • Operand 2(0) 153g represents the least significant 8 bits of operand 2, i.e. the bits representing the binary weightings of 2 7 to 2 0 .
  • the operand 2(1) 153f represents the next 8 significant bits, i.e. 2 15 to 2 8 .
  • the operand 2(2) 153e represents the next 8 significant bits, i.e. 2 23 to 2 16 .
  • the operand 2 (3) 153d represents the following significant 8 bits, i.e. 2 31 to 2 24 .
  • the operand 2 (4) 153c represents the next 8 significant bits, i.e. 2 39 to 2 32 .
  • the operand 2(5) 153b represents the next 8 significant bits, i.e. 2 47 to 2 40 .
  • Operand 2(6) 153a represents the five most significant bits, i.e. 2 52 to 2 48 padded with zeros to form an 8 bit number.
  • the 53x8 bit multiplier performs a multiplication of the two 53 bit operands by firstly multiplying operand 1 by operand 2(0) to produce a first section product 155. The first operand is then multiplied in turn by the operands 2(1), 2(2), 2(3), 2(4), 2(5), and 2(6). Each of these multiplications produces a pair of 61 bit output terms, sum [60:0] and carry [61:1]. which when added together produce a second 157, third 159, fourth 161, fifth 163, sixth 165 and seventh 167 section product. Figure 3 shows the relative weighting of each of these section products. Thus the product of the multiplication between operand 1 and 2(0) lies between bits 0 and 61, whereas the product of operand 1 and 2(6) lies between bits 106 and 48.
  • multiplier circuit 199 is shown schematically demonstrating the accumulation of these section products to form a complete product is described in further detail. Where possible the same reference numerals have been reused from Figures 2 and 3.
  • the multiplier circuitry 199 comprises a 53x8 bit multiplier 101, a 64 bit adder block 103 and sticky bit circuitry 205.
  • the 53x8 bit multiplier 101 has a first inputs for operand 1 [53:0], and a second input for an 8 bit section of operand 2.
  • the operand 1 is held constant during the whole multiplication sequence in order to maintain a correct result, whereas the second input is able to be changed during the multiplication process.
  • the 64 bit adder block 103 comprises a 62 bit full adder circuit 201, and a 64 bit adder 203.
  • the 62 bit full adder circuit 201 is arranged to receive the three input terms to the 64 bit adder block 103, the sum [60:0], carry [61:1] and a section of the prenormalised mantissa product PM [63:8] and output two output terms.
  • the 64 bit adder 203 receives the terms output from the 62 bit full adder circuit 201 and outputs a single 64 bit result PM [63:0] which forms the output from the 64 bit adder block 103.
  • the operation of the 62 bit full adder circuit 201 can also be seen as a compression or combination of the three terms to produce two terms.
  • the section of the prenormalised mantissa fed back to the input is connected to the inputs of the 62 bit full adder circuit in such a manner that the least significant bit of the 56 bits is added to the least significant bit of the sum and the most significant bit of the 56 bits added to the 2 55 bit of the sum and the 2 55 bit of the carry.
  • the 64 bit result is separated into two parts.
  • the first part comprising the least significant 8 bits of the result, PM [7:0] is passed to the CLZ circuitry (not shown in fig 4) and is also passed to a sticky bit circuit 205.
  • the sticky bit circuit 205 is used to determine if any accuracy has been lost from the process. In order to determine whether accuracy has been lost the PM [7:0] part is bitwise ORed together to produce a single bit result called the sticky bit. If the sticky bit is equal to 1 then a value has been discarded and hence the full accuracy of the result has been lost. This output sticky bit is furthermore fed back a further bit input to determine if any section product has 'lost accuracy'.
  • the multiplier initially receives the first operand and the first 8 bit section of the second operand 2(0) 153g.
  • the 53x8 bit multiplier 101 performs a multiplication of these products and outputs the sum and carry values to the 64 bit adder block 103.
  • the initialised output of the 64 bit adder block 103 is equal to zero the output of the 62 bit full adder circuit 201 is the same as its input.
  • the 64 bit adder 203 adds these values to produce the first section product.
  • the first section product is separated into two parts, the least significant part being passed to the sticky bit circuit 205 and the most significant part is fed back to the input of the 64 bit adder block 103.
  • the next 8 bit section of the second operand 2(1) is then applied to the 53x8 bit multiplier.
  • This section 2(1) 153f multiplied by operand 1 produces a second sum and carry value which is passed to the 64 bit adder block 103.
  • the 62 bit full adder 201 combines the sum, carry and most significant 56 bits of the last result to produce two terms which are input into the 64 bit adder 203 to produce a second section product.
  • the second result is then also separated into two parts, the least significant 8 bits passed to the sticky bit circuit 205 and the most significant 56 bits fed back to the input of the 64 bit adder block 103 to await the next sum and carry values.
  • the seventh result can then be passed to the normalisation circuit and rounding circuit along with the exponent calculation (all of which are not shown) to produce a final floating point output number.
  • FIG. 5 a second embodiment of the present invention is shown.
  • the embodiment as shown in Figure 5 has a further advantage over the first embodiment in that the second embodiment has improved performance with regards to denormalised operands.
  • a denormalised operand is one where the exponent value of the floating point number has reached its limit. In such cases the fraction element does not necessarily have an initial implied value of '1.Y'. Multiplication involving a denormalised number also produces a product which itself can be denormalised.
  • the embodiment shown in Figure 5 comprises a multiplier circuit 199, as shown in figure 4, comprising a 53x8 bit multiplier block 101, a 64 bit adder block 103 and sticky bit circuit 205 as shown in Figure 4.
  • the embodiment further comprises the seven place leading zero counter circuit (CLZ) 105, the normalisation circuit 107, and the rounding circuit 109, as shown in figure 2.
  • CLZ seven place leading zero counter circuit
  • the embodiment further comprises input circuitry 305, and result control circuitry 303.
  • the input circuitry 305 is arranged to receive the pair of floating point numbers to be multiplied, and outputs the exponent addition result to the result control circuitry 303 and the mantissa multiplication operands to the multiplier circuit 199 and the result control circuitry.
  • the input circuitry comprises first and second input registers 751 and 755 arranged to receive the first floating point fraction part and the first floating point exponent part respectively.
  • the first register 751 receiving the first floating point number fraction also receives a further bit input from a denormalised number detector 761.
  • the detector receives the exponent part of the first number and is arranged to output a '0' bit if the exponent part is equal to all zeros and a '1' bit for all other exponents.
  • the input circuitry also comprises third and fourth input registers 753 and 757.
  • the fourth input register 757 receives the second floating point exponent part respectively.
  • the third input register receives the output of multiplexer 765 which selects either the fraction part of the second number and the output of a second denormalised number detector 763 or the most significant 46 bits of the third input register.
  • the second denormalised number detector 763 receives the exponent part of the second number and is arranged to output a '0' bit if the exponent part is equal to all zeros and a '1' bit for all other exponents.
  • the second and fourth registers 755, 757 containing the exponent parts of the first and second floating point numbers are passed to an exponent addition and re-biasing circuit 301 as known in the art. This value is output to the result control circuit.
  • the first register 755 outputs the first number mantissa into the first operand input of the multiplier circuit 199 and also to the result control circuit 303.
  • the third register 753 outputs the least significant 8 bits of the mantissa into the second operand section input of the multiplier circuit 199, the most significant 47 bits to the input circuit multiplexer 165, and the whole mantissa to the result control circuit 303.
  • the feedback arrangement of the multiplexer and the third register enables the input register to output the mantissa sections 2(0) to 2(6) as required.
  • the most significant 47 bits of the register are selected by the multiplexer to be the next input with the current 8 bit output being effectively deleted by an 8 bit shift right action on the mantissa.
  • the multiplier circuit 199 has previously been described above with reference to figure 4 in terms of the structure and operation of the multiplier and will not be described in further detail.
  • the result control circuitry 303 comprises a comparison multiplexer 351, comparison circuitry 353, comparison selection circuitry 355, an exponent multiplexer 357, a term multiplexer 359, and a term comparator circuit 361.
  • the comparison multiplexer 351 receives the first and second number mantissas, and determines which input to select dependent on if the first number is a denormalised value (this could be provided by the denormalised number detector 761 connection not shown in figure 5). If the first number is a denormalised number then the first number mantissa is passed to the comparator circuitry 353, else the second mantissa is passed.
  • the comparison circuitry 353 separates the received mantissa into seven sections.
  • the comparison circuitry 353 compares each of the mantissa sections to determine if they contain all zero values. The results of these comparisons are passed to the comparison selector circuitry 355.
  • the comparison selector 355 determines which section contains the first non zero value, the result of which can therefore be a number from 1 to 7. If the first '1' is detected within the first section of 5 most significant bits the result is 7, however if the first '1' is detected in the 8 least significant bits the result is 1.
  • the comparison selector circuitry 355 result is received by the term multiplexer 359.
  • the term multiplexer 359 second input is the number of the output of the term multiplexer 359 minus the value 1.
  • the term multiplexer selects either the comparison selector circuitry value or the modified feedback value dependent on the result ready signal of the output of the term comparator circuit 361. If the result ready signal is not asserted the term multiplexer selects the feedback term, else the comparison selector result is selected.
  • comparator circuit 361 receives the output of the term multiplexer 359 minus the value 1. If the received value is equal to 0, the term comparator circuit 361 outputs an asserted result ready signal to the term multiplexer 359, exponent multiplexer 357 and the normalisation circuitry 107.
  • the exponent multiplexer 357 receives the output of the exponent adding and biasing circuitry 301, and the output of the exponent multiplexer 357 plus the value of 8.
  • the exponent multiplexer is arranged to output the exponent adding and biasing circuitry 301 result if the received result ready signal is asserted, else the modified feedback result is selected.
  • the normalisation circuit 107 receives the result ready output from the term comparator circuit 361, an output from the exponent multiplexer 357, a sticky bit value and the pre-normalised product PM [63:0] from the multiplication circuit 199 and a zero counting output from the 7 place leading zero counting circuitry 105.
  • the normalisation circuit 107 on receiving an asserted result ready signal performs a normalisation action (as is known in the art) on the pre-normalised exponent value output from the second multiplexer 357, and the pre-normalised mantissa value from the multiplier block 199 dependent on the 7 place leading zero counting circuit 105.
  • the output of the normalisation circuit 107 is input to the rounding circuit 109.
  • the rounding circuit produces a final rounded 64 bit floating point number comprising both the post normalised exponent and post normalised mantissa.
  • the comparison multiplexer 351 selects the second number mantissa to be passed to the comparison circuitry 353.
  • the comparison selector 355 outputs a value of 7 as the comparison circuitry detects that the first section 2 53 to 2 49 contains a non zero value.
  • This value is passed to the term multiplexer which then requires 7 iterations before the term comparator asserts a result ready signal. These 7 iterations enable the exponent multiplexer feedback loop to increase the exponent value by 48, the input circuitry multiplexer to output all 7 sections of the second operand to the multiplier circuit 199, and the generation and accumulation of 7 section products by the multiplier circuit 199.
  • the multiplier circuit 199 also outputs a sticky bit output, in this example the output being the result of 7 sticky bit iterations.
  • the comparison multiplexer 351 selects the second number mantissa to be passed to the comparison circuitry 353.
  • the comparison selector 355 outputs a value of 1 as the comparison circuitry detects that the seventh section, 2 7 to 2 0 , contains the first non zero value.
  • This value is passed to the term multiplexer which then requires only this iteration before the term comparator asserts a result ready signal.
  • This single iteration does not increase the exponent value, and the input circuitry multiplexer only outputs one section of the second operand to the multiplier circuit 199 with the generation of only one section product from the multiplier circuit 199.
  • the multiplier circuit 199 furthermore outputs the sticky bit output.
  • the output of a single sticky bit iteration is never set as there is no loss in accuracy following the first iteration, as it is only after the first iteration a loss in accuracy can occur following the logical shift right of the section product value as it is fed back to the input of the 64 bit adder block in the multiplier circuit 199.
  • the operation of the whole multiplier is equivalent to the first embodiment of the invention, where the final result is formed by the accumulation of seven separate section products.
  • the final result output maintains as much precision as possible by not automatically rounding the significant section products to zero.
  • denormalised numbers require fewer section products to be calculated then the time required to calculate a product involving a denormalised number is reduced.
  • both the first or second operand being found to be a denormalised number. Therefore only one operand has a zero counting operation carried out on it.
  • the result control circuitry further comprises a circuit (not shown in the figures) for detecting that both numbers are denormalised numbers.
  • the multiplier on detecting that both numbers are denormalised numbers, is arranged to produce a result which is equal to zero. Furthermore on detecting that both numbers are denormalised numbers the multiplier produces a sticky bit result which is set as the accuracy of the result has been lost. In this special case the use of the iterative multiplication algorithm and circuitry carrying out the algorithm is not required.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Nonlinear Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)
EP05252209A 2005-04-07 2005-04-07 Multiplizierschaltung Withdrawn EP1710690A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP05252209A EP1710690A1 (de) 2005-04-07 2005-04-07 Multiplizierschaltung
US11/400,753 US20060277246A1 (en) 2005-04-07 2006-04-07 Multiplication circuitry

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP05252209A EP1710690A1 (de) 2005-04-07 2005-04-07 Multiplizierschaltung

Publications (1)

Publication Number Publication Date
EP1710690A1 true EP1710690A1 (de) 2006-10-11

Family

ID=34940746

Family Applications (1)

Application Number Title Priority Date Filing Date
EP05252209A Withdrawn EP1710690A1 (de) 2005-04-07 2005-04-07 Multiplizierschaltung

Country Status (2)

Country Link
US (1) US20060277246A1 (de)
EP (1) EP1710690A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5966764B2 (ja) * 2012-08-22 2016-08-10 富士通株式会社 乗算装置及び乗算方法
US9684514B2 (en) * 2014-09-10 2017-06-20 International Business Machines Corporation Inference based condition code generation

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5150322A (en) * 1990-06-05 1992-09-22 Vlsi Technology, Inc. Mixed-radix serial/parallel multipliers
WO1999031574A1 (en) * 1997-12-17 1999-06-24 Hewlett-Packard Company Implementation of multipliers in programmable arrays
US6021422A (en) * 1998-03-04 2000-02-01 International Business Machines Corporation Partitioning of binary quad word format multiply instruction on S/390 processor
US6446104B1 (en) * 1999-09-15 2002-09-03 Sun Microsystems, Inc. Double precision floating point multiplier having a 32-bit booth-encoded array multiplier

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5378742A (en) * 1976-12-23 1978-07-12 Toshiba Corp Multiplication control system
US4208722A (en) * 1978-01-23 1980-06-17 Data General Corporation Floating point data processing system
US4276607A (en) * 1979-04-09 1981-06-30 Sperry Rand Corporation Multiplier circuit which detects and skips over trailing zeros
GB2287333B (en) * 1994-03-11 1998-02-11 Advanced Risc Mach Ltd Data processing multiplier
US5642306A (en) * 1994-07-27 1997-06-24 Intel Corporation Method and apparatus for a single instruction multiple data early-out zero-skip multiplier
US5568410A (en) * 1994-09-29 1996-10-22 International Business Machines Corporation Method and apparatus for determining the amount of leading zeros or ones in a binary data field
US6269384B1 (en) * 1998-03-27 2001-07-31 Advanced Micro Devices, Inc. Method and apparatus for rounding and normalizing results within a multiplier
US6173303B1 (en) * 1998-11-06 2001-01-09 National Semiconductor Corp. Multiply circuit and method that detects portions of operands whose partial products are superfluous and modifies partial product manipulation accordingly
US7346643B1 (en) * 1999-07-30 2008-03-18 Mips Technologies, Inc. Processor with improved accuracy for multiply-add operations
US6697833B2 (en) * 2001-01-18 2004-02-24 International Business Machines Corporation Floating-point multiplier for de-normalized inputs

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5150322A (en) * 1990-06-05 1992-09-22 Vlsi Technology, Inc. Mixed-radix serial/parallel multipliers
WO1999031574A1 (en) * 1997-12-17 1999-06-24 Hewlett-Packard Company Implementation of multipliers in programmable arrays
US6021422A (en) * 1998-03-04 2000-02-01 International Business Machines Corporation Partitioning of binary quad word format multiply instruction on S/390 processor
US6446104B1 (en) * 1999-09-15 2002-09-03 Sun Microsystems, Inc. Double precision floating point multiplier having a 32-bit booth-encoded array multiplier

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"STICKY BIT GENERATION FOR IEEE FLOATING-POINT MULTIPLICATION", IBM TECHNICAL DISCLOSURE BULLETIN, IBM CORP. NEW YORK, US, vol. 30, no. 4, September 1987 (1987-09-01), pages 1531 - 1536, XP000714472, ISSN: 0018-8689 *
MAKINO H ET AL: "A 286 MHZ 64-B FLOATING POINT MULTIPLIER WITH ENHANCED CG OPERATION", IEICE TRANSACTIONS ON ELECTRONICS, INSTITUTE OF ELECTRONICS INFORMATION AND COMM. ENG. TOKYO, JP, vol. E79-C, no. 7, July 1996 (1996-07-01), pages 915 - 924, XP000632345, ISSN: 0916-8524 *
MOOGAT ET AL: "A 60 MHz ASIC beta bit serail/parallel multiplier", ASIC CONFERENCE AND EXHIBIT, 1994, New York, USA, pages 458 - 461, XP010140435 *
WASER S: "ENTWICKLUNG VON GLEITKOMMA-PROZESSOREN", ELEKTRONIK, WEKA FACHZEITSCR.-VERLAG, MUNCHEN, DE, vol. 29, no. 9, April 1980 (1980-04-01), pages 50 - 54, XP000717116, ISSN: 0013-5658 *

Also Published As

Publication number Publication date
US20060277246A1 (en) 2006-12-07

Similar Documents

Publication Publication Date Title
US5764555A (en) Method and system of rounding for division or square root: eliminating remainder calculation
US6697832B1 (en) Floating-point processor with improved intermediate result handling
US7346643B1 (en) Processor with improved accuracy for multiply-add operations
US8463834B2 (en) Floating point multiplier with first and second partial product shifting circuitry for result alignment
US5993051A (en) Combined leading one and leading zero anticipator
KR102581403B1 (ko) 공유 하드웨어 로직 유닛 및 그것의 다이 면적을 줄이는 방법
Hormigo et al. Measuring improvement when using HUB formats to implement floating-point systems under round-to-nearest
US7725522B2 (en) High-speed integer multiplier unit handling signed and unsigned operands and occupying a small area
US8370415B2 (en) Overflow detection and clamping with parallel operand processing for fixed-point multipliers
RU2408057C2 (ru) Умножитель с фиксированной точкой с предварительным насыщением
US6182100B1 (en) Method and system for performing a logarithmic estimation within a data processing system
George et al. Hardware design procedure: principles and practices
US20040267861A1 (en) Advanced execution of extended floating-point add operations in a narrow dataflow
US8554819B2 (en) System to implement floating point adder using mantissa, rounding, and normalization
JP3551113B2 (ja) 除算器
CN112783469A (zh) 一种用于执行浮点指数运算的方法及装置
EP1710690A1 (de) Multiplizierschaltung
JP2006172035A (ja) 除算・開平演算器
CN114201140B (zh) 指数函数处理单元、方法和神经网络芯片
Srinivas et al. Radix 2 division with over-redundant quotient selection
US9280316B2 (en) Fast normalization in a mixed precision floating-point unit
US10289413B2 (en) Hybrid analog-digital floating point number representation and arithmetic
US6725360B1 (en) Selectively processing different size data in multiplier and ALU paths in parallel
US6615228B1 (en) Selection based rounding system and method for floating point operations
Jaiswal et al. Taylor series based architecture for quadruple precision floating point division

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU MC NL PL PT RO SE SI SK TR

AX Request for extension of the european patent

Extension state: AL BA HR LV MK YU

17P Request for examination filed

Effective date: 20070405

17Q First examination report despatched

Effective date: 20070518

AKX Designation fees paid

Designated state(s): DE FR GB IT

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20081014