US3725649A - Floating point number processor for a digital computer - Google Patents

Floating point number processor for a digital computer Download PDF

Info

Publication number
US3725649A
US3725649A US3725649DA US3725649A US 3725649 A US3725649 A US 3725649A US 3725649D A US3725649D A US 3725649DA US 3725649 A US3725649 A US 3725649A
Authority
US
Grant status
Grant
Patent type
Prior art keywords
register
exponent
product
multiplier
multiplicand
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
Inventor
A Deerfield
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.)
Raytheon Co
Original Assignee
Raytheon Co
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
Grant date

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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, floating-point numbers
    • G06F7/487Multiplying; Dividing
    • G06F7/4876Multiplying
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding, overflow
    • G06F7/49905Exception handling
    • G06F7/4991Overflow or underflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding, overflow
    • G06F7/49936Normalisation mentioned as feature only

Abstract

A processor for digital numbers, specifically a multiplier using a ''''floating point'''' technique, is disclosed. The disclosed processor is adapted to determine the product of two unnormalized digital numbers, each one of such numbers being expressed as a mantissa and a signed exponent of a selected base, and to express such product as a mantissa with the greatest possible degree of significance and a signed exponent of the base. The processor is operative simultaneously to determine the sum of the exponents and the partial products of the mantissas of the numbers being processed and to normalize one of such mantissas, adjusting the sum of the exponents correspondingly. Means are also provided to stop the multiplication process as soon as all significant partial products are determined.

Description

United States Patent 3,725,649 Deerfield 1 Apr. 3, 1973 [54] FLOATING POINT NUMBER PROCESSOR FOR A DIGITAL Primary Examiner-Malc0lm A. Morrison COMPUTER Assistant ExamI'nerIAJames F. Gottman '1' l [75] Inventor: Alan J. Deerfield, Newtonville, Attorney Phl J cFar and Mass" 57 ABSTRACT [73] Asslgneez Raylheon Company Lexington A rocessor for di ital numbers, s ecifically a mul- Mass p tiplier using a floating poInt technique, is disclosed. [22] Filed: Oct. 1, 1971 The disclosed processor is adapted to determine the product of two unnormalized'digital numbers, each [21] Appl' l85498 one of such numbers being ex ressed as a mantissa P and a signed exponent of a selected base, and to ex- [52] [1.8. CI. ..235/156, 235/160 press such product as a mantissa with the greatest [51] Int. Cl. ..G06f 7/39, G06f 7/385 possible degree of significance and a signed exponent [58] Field of Search ...235/ 156, 159, 160, 164 of the base. The processor is operative simultaneously to determine the sum of the ex onents and the artial I p p n [56] References Cited products of the mantissas of the numbers being processed and to normalize one of such mantissas, ad- UNITED STATES PATENTS justing the sum of the exponents correspondingly. 3,193,669 7/1965 Voltin 235/164 Means are also provided to stop the multiplication 3,056,550 10/1962 process as soon as all significant partial products are 3,434,114 3/1969 Arulpragasam et al ..235/164 X determined, 3,304,417 2/1967 Hertz ..235/156 X 1 3,536,903 10/1970 Goshorn et a]. ..235/156 X 3 Claims, 2 Drawing Figures FROM FMImILEAIJ 7 1 f 7 MEMORY 8-4- EXPONENT PII, '5 I IFIGI) I REGISTER 5 ELEMENTE, V

I g IFIG..U g 24 I- I FROM MULTIPLIER m I MULTIPLIERI EXPONENT 5; PRODUCT EXPONENT souRcE l REGSTER OUNT REGISTER AND gONTROL COUNTER 1 I I II I OVERFLOW NORMALIZED l DETECTOR TOOIERFLOW PRODUCT 25 I INDICATOR I -I-w(CONTR0L L ELEMENT 5 i- F Her) 7 i I Sf EP PRODUCT EREGISTER 1 f 1 SHIFT AND RIGH:T SHIFT l LEFT RIGHT CONTROL FIEGISTERIIDOUBLE I 5mm I SHIFT TR NORMALlZATION/ LENGTH ACICUMULATORI CONTROL I FROM CONTROL DETECTOR I FROM ELEMENTSIFIGJ) 30 32 MEMoRYs 1 28 I (FIG I) MULTIPLICAND DIGITAL ADDER I REGISTER MULTIPLIER RIGHTSHIFT l CONTROL I FROM l H. g2 ..l ELEMENT5--MULTIPLIER I FIG. 1) REGISTER a I RIGHT HIFT I REeIsTER 38 I I ZERO FROM I REMAINING MULTIPLIER DETECTOR I SOURCE TO END OF MULTIPLY INDICATORICONTROL ELEMENT 5 (FIG. i)

FLOATING POINT NUMBER PROCESSOR FOR A DIGITAL COMPUTER The invention herein described was made in the course of or under a contract or subcontract thereunder, with the Department of Defense.

BACKGROUND OF THE INVENTION This invention pertains generally to digital computers and particularly digital computers in which floating point numbers are processed.

It is known in the art that the so-called floating point technique may be used in digital computers so that the significant portion of any number corresponding to a floating point number may be preserved without requiring the length of essential elements, such as registers, to be any greater than necessary. A floating point" number is a number which is represented by cant half, of the product does not add to the accuracy of the multiplication process and, further, may not be used without adding undue complexity to the computer. It follows then that, if multiplication is to be properly effected, the product must be normalized before further processing to be sure that the highest degree of significance is retained.

In the past, normalization has been accomplished in the multiplication process by either: (a) normalizing the product after multiplication has been completed; or, (b) by using only normalized numbers of the multiplier and the multiplicand. The former approach requires shifting of the product number in its accumua sign, a value termed the mantissa" and a signed exponent of the base of the digital numbers being processed. Thus, any particular digital number may be expressed as 1': M X r where M is the mantissa, r is the base and i n is the exponent. The floating point is presumed to appear before the left-most significant digit of the mantissa and the exponent is changed, if necessary, so that the value of the floating point number is the same as the value of the particular digital number to which it corresponds. The floating point number is considered to be normalized if its mantissa contains the maximum possible amount of significance. In other words, a normalized floating point number has a value other than zero as the left-most significant digit in its mantissa. The normalization process for any floating point digital number involves the steps of shifting the floating point to its proper position in the mantissa and changing the exponent so that the value of the combination of mantissa and exponent remains constant.

It is well known in the art that the floating point technique may be applied whenever digital numbers are to be added, subtracted, multiplied or divided. In the situation in which addition or subtraction is to be effected, unnormalized floating point numbers with different exponents may be processed by changing the exponents of the digital numbers to be processed until such exponents are the same and shifting the mantissas with respect to each other a corresponding amount (to maintain the values of the two numbers) and then adding, or subtracting if desired, the adjusted mantissas. The resulting sum, or difference, of the adjusted mantissas, when combined with the adjusted exponent, is the desired sum, or difference, if none of the significant digits in the original mantissas are lost. The resulting unnormalized sum, or difference, is then normalized in order to allow any further processing, as multiplication or division, to be performed.

When it is desired to multiply digital numbers using floating point techniques, a normalization is required. Because any known multiplication process involves the accumulation of partial products obtained from a digit by digit multiplication of two digital numbers (a multiplicand and a multiplier) thenumber of digits in the product equals the sum of the digits in the multi-plier and the multiplicand. In the usual case the number of digits in the two is the same so the number of digits in the product is twice that of either the multiplier or the multiplicand. The low order half, i.e. the least signifilator after the multiplication process is finished, a

process which is time consuming and which does not allow the exponent of the product to be checked until after the process is complete. The latter approach requires that both the multiplicand and the multiplier be normalized before the multiplication process may be started. Such normalization again involves a time consuming shifting process which is usually done after previous processing steps such as addition or subtraction. If the length of time required for normalization must be reduced to a minimum, it is necessary that additional circuitry be supplied to detect the amount of shifting required to normalize the mantissa of the floating point number to be normalized and then to shift the mantissa and adjust the exponent. It is evident that such additional circuitry adds to complexity and should if possible be eliminated.

SUMMARY OF THE INVENTION With this background of the invention in mind it is an object of this invention to provide an improved technique for deriving a normalized product when multiplying two unnormalized floating point digital numbers.

A further object of this invention is to provide an improved technique to derive a normalized product as a result of multiplication of two unnormalized floating point digital numbers without requiring shifting of the mantissa of the product or unnecessary adjustment of its exponent.

Still another object of this invention is to provide method and apparatus for the multiplication of two unnormalized floating point digital numbers which completes the multiplication process whenever all digital zeroes are in the mantissa of the number which is the multiplier.

Still another object of this invention is to provide method and apparatus for multiplication of two floating point digital numbers which contain provisions for detecting, at the earliest possible moment, when the product is larger than the greatest digital number which may be processed.

These and other objects of this invention are attained generally when two floating point numbers are to be multiplied by subdividing the numbers into their exponent and mantissa portions; summing the two exponent portions and subtracting from such sum a number which corresponds to the number of digits in the mantissa of the number taken as the multiplier of two numbers; normalizing the mantissa of the number I taken as the multiplicand while determining the partial products, digit by digit, of the multiplicand and the multiplienand incrementing the modified sum of the exponents after the multiplicand is normalized until the multiplier becomes zero or the required number of iterations have been completed.

BRIEF DESCRIPTION OF THE DRAWINGS For a more complete understanding of this invention reference is now made to the accompanying description of a preferred embodiment illustrated in the drawings in which FIG. 1 is a generalized block diagram of a digital computer, such diagram indicating the relationship of a floating point multiplier according to the invention to the remaining portion of such computer and FIG. 2 is a block diagram showing the arrangement of the elements and the manner in which such elements are controlled according to the invention.

DESCRIPTION OF THE PREFERRED EMBODIMENTS Referring first to FIG. 1 it may be seen that the floating point multiplier herein contemplated is disposed in the central processing unit (CPU 4) of a digital computer. Such a computer is conventional, having control element 5, an input device 6, an output device 7 and a memory 8. To execute any particular program the input device 6 is actuated to impress appropriate instruction words on the control element 5. That element, in turn, in response to the address and operation codes in each instruction word, actuates the CPU 4 and the memory 8 to perform the operations required. On completion of the processing, the result is passed from either the CPU 4 or the memory 8 back through the control element to the output device 7. The floating point multiplier contemplated by this invention is located in the CPU 4 along with other types of arithmetic units not shown.

Referring now to FIG. 2, it may be seen that the preferred embodiment of this invention includes an exponent processing portion 1 l and a mantissa portion 13 which when taken together produce a floating point digital number indicative of the product of two unnormalized digital numbers. Thus the exponent processing portion 11 includes a conventional multiplicand exponent register 14, the number and arrangement of the stages therein being adapted to store the largest possible exponent of the multiplicand. Such register receives the particular exponent of the multiplicand from a memory 8 (FIG. 1) in a conventional manner. Similarly, a multiplier exponent register 16 is disposed within the exponent processing portion 11. The exponents stored in the multiplicand exponent register 14 and the exponent stored in the multiplier exponent register 16 are passed to an adder 18, thereby to produce at the output thereof a digital number equal to the sum of the exponents of the two registers. Such sum is impressed on one input terminal of a subtractor 20. The second input of the latter is a digital number equal to the maximum number of digits in a multiplier register 22 (which register is contained in the mantissa processor 13). The difference between the digital numbers into the subtractor 20 then is passed to a product exponent register 24. It follows then that initially, the latter register contains a digital number which is representative of the exponent of the product of the multiplicand and the smallest possible multiplier to be processed. To complete the exponent processing portion 11, an overflow detector 26 is connected to the product exponent register 24. Such detector is a conventional logical matrix which produces a signal when all stages in the product exponent register 24 are filled.

Turning now to the mantissa processor 13, it may be seen that that assembly includes, in addition to the multiplier register 22, a multiplicand register 28. The mantissa of the multiplicand is, initially, loaded in the multiplicand register 28 from memory 8. (FIG. 1). The outputs of the multiplicand register 28 and the multiplier register 22 are connected to'a multiplier 30 arranged to derive partial products, digit by digit in a conventional manner, of the two digital numbers in the two registers. Such partial products are fed, through a summer 32, to an accumulator 34 so that each partial product is added to the sum of the previously derived partial products as shown. Also in circuit with the multiplicand register 28 is a normalization detector 36. Such a detector may, for example, be a simple logic circuit which gates clock pulses from the control element 5 (FIG. 1) to the right shift control" of the accumulator 34 and gates clock pulses over the count control line to the product exponent register and counter 24 when the first digit, other than a zero, in the multiplicand is positioned in the most significant stage of the multiplicand register 28 and which permits clock pulses to be applied through an inverter 37 to the left shift control" of the multiplicand register 28 when such condition does not exist. To complete the mantissa processor 13, a zero remaining detector 38 isconnected to the multiplier register. Such detector may typically be a matrix of AND gates which produces an operation complete" indication when all stages of the multiplier register 22 are zeroes. In operation, the exponent and mantissa of the multiplier (which values are usually derived from the accumulator) are applied respectively to the multiplier exponent register 16 and the multiplier register 22 through any convenient means (not shown). At the same time the exponent and the mantissa of the multiplicand are applied respectively to the multiplicand exponent register 14 and the multiplicand register 28. The exponents then are added, the sum thereof being reduced the number of stages in the multiplier register 22, and applied to the product exponent register 24. With any two given exponents, then, the number in the product exponent register 24 is the smallest possible number. Assuming that the number in the multiplicand register 28 contains zeroes in its first N most significant stages, the normalization detector 36 then passes N left shift control clock pulses to the multiplicand register 28. The result of such a left shift is that the most significant digit in the multiplicand is in the most significant stage of the multiplicand register 28.

It should be noted that partial products of the unnormalized numbers in the multiplicand register 28 and the multiplier register 22 are produced by the digital multiplier 30 during this phase of operation. Such partial products are applied, through the summer 32, to the accumulator 34. Because the multiplicand, in the process of being normalized, is shifted the partial products in the accumulator 34, although notshifted, here grow left. The normalization detector 36 therefore changes its condition to inhibit the left shift clock pulses from the multiplicand register 28 and to enable right shift control to the accumulator 34. At the same time the normalization detector 36 enables an ADD ONE count control signal to be applied to the product exponent register 24. lt may be seen therefore that, once the multiplicand has been shifted in the multiplicand register 28 as just described, further partial products are successively derived. Such partial products are then applied through the summer 32 to the accumulator 34. During this part of the process right shift control clock pulses are applied to the accumulator 34. Thus, the partial product in the accumulator grows right when the multiplicand is normalized. In other words, a normalized mantissa is formed in the accumulator 34. It follows then that after each partial product is derived, the digits in the multiplier register 22 are shifted to the next stage therein, the partial products are shifted right by one stage in the accumulator 34 and a ONE is added to the number in the product exponent register 24. In the ordinary situation, when the zero remaining detector 38 indicates that all stages of the multiplier register 22 are zero, the multiplication process is complete and all shift control clock pulses are inhibited. The number in the product register 34 then equals the product of the mantissas of the two numbers to be multiplied. Such product is normalized (except, of course, when, during normalization of the multiplicand, the multiplier register 22 is emptied). ln any event, however, the significant digits in the product are located in the upper half of the accumulator 34 so that significance of such product is retained. The number in the product exponent register 24 then equals the exponent of the product. Taken together, therefore, the numbers in the product register 34 and the product exponent register 24 represent the desired product with the greatest possible amount of significance. It will be noted that the overflow detector 26 may, at any time during the multiplication process, indicate that the number in the product exponent register 24 is greater than the highest exponent that the computer may process. In other words, during the multiplication process the product of the two numbers to be multiplied may be larger than the greatest number that the computer may process. When such condition exists the multiplication process cannot be continued without error. Therefore, if at any time the overflow detector indicates that the capacity of the computer has been exceeded a signal is presented by means not shown to the operator of the computer and any further operations of the computer are inhibited. It is also possible during the multiplication process that the overflow de tector 26 indicates that the sum of the exponents of the numbers being multiplied is smaller than the smallest exponent which may be processed. When such a condition obtains the digits in the significant stages of the product register 34 are zeroes. In other words, the situation may exist in which the product of the two numbers to be multiplied approaches zero. The overflow detector 26 in such a case indicates to the operator that the multiplication process has produced an indeterminant result which may or may not be true. Depending upon the particular program being carried out the operator may then cause the program to be aborted or to continue using an arbitrary zero as the result of the multiplication process. While the invention has been shown and described with particular reference to its application to a floating'point multiplier, the inventive concepts may be applied to other types of processes, as floating point dividers. It is evident, for example, that additional means could be provided to generate the reciprocal of the numbers to be loaded into the multiplier exponent register 16 and the multiplier register 22 so that the resulting products would correspond to the quotient of two floating point numbers. Further, the disclosed multiplier could be modified to permit addition or subtraction of two floating-point numbers. In such a case the numbers in the multiplicand exponent register14 and the multiplier exponent register 16 must first be made equal to each other with appropriate shifting of the numbers in the multiplicand register 28 and the multiplier register 22. After suchadjustment the numbers then in the multiplicand register 22 would be added or subtracted to obtain the mantissa of the sum or difference of the two numbers and the value of the two numbers. The exponent of the result then is the exponent of either the multiplicand exponent register 14 or the multiplier exponent register 16. it is felt therefore that this invention should not be restricted to its disclosed embodiment but rather should be limited only by the spirit and scope of the appended claims.

What is claimed is:

1. For use in a digital computer, circuitry for determining the product of two floating point numbers, each including a mantissa and an exponent of abase, one of such numbers being a multiplicand and the other one being a multiplier, such circuitry comprising: i

a. means for adding the exponents of the multiplicand and the multiplier to determine an initial exponent of the product;

. means for subtracting a number equal to the maximum number of significant places in the mantissa of the multiplier from the initial exponent to determine an intermediate exponent of the product;

. a multiplicand register and a multiplier register for receiving, respectively, the mantissa of the multiplicand and the multiplier;

. means for multiplying, digit by digit, the mantissas in the multiplicand and the multiplier registers to obtain partial products, the sum of selected ones thereof equaling the digits in the mantissa of the product and for simultaneously normalizing the mantissa in the multiplicand register; and

. means, actuated when the mantissa inthe multiplicand register is normalized, for incrementing the intermediate exponent and decrementing the partial products as each one thereof is obtained to normalize the product of the two floating point numbers.

Circuitry as in claim 1 having, additionally:

. significant digit detecting means, responsive to the significant digits in the mantissa of the multiplier in the multiplier register, for detecting when the last significant digit in such mantissa has been used to obtain partial products; and

. means, responsive to the significant digit detecting means, for providing a signal indicating that the sum of the partial products obtained prior to such signal contain all the significant digits in the mantissa of the product of the two floating point numbers.

3. Circuitry as in claim 2 having, additionally:

a. means for comparing the intermediate exponent with an upper and a lower limiting number; and,

b. means, responsive to such comparison means, for

producing a signal whenever the intermediate ex- 5 ponent exceeds either such limiting number.

Claims (3)

1. For use in a digital computer, circuitry for determining the product of two floating point numbers, each including a mantissa and an exponent of a base, one of such numbers being a multiplicand and the other one being a multiplier, such circuitry comprising: a. means for adding the exponents of the multiplicand and the multiplier to determine an initial exponent of the product; b. means for subtracting a number equal to the maximum number of significant places in the mantissa of the multiplier from the initial exponent to determine an intermediate exponent of the product; c. a multiplicand register and a multiplier register for receiving, respectively, the mantissa of the multi-plicand and the multiplier; d. means for multiplying, digit by digit, the mantissas in the multiplicand and the multiplier registers to obtain partial products, the sum of selected ones thereof equaling the digits in the mantissa of the product and for simultaneously normalizing the mantissa in the multiplicand register; and e. means, actuated when the mantissa in the multiplicand register is normalized, for incrementing the intermediate exponent and decrementing the partial products as each one thereof is obtained to normalize the product of the two floating point numbers.
2. Circuitry as in claim 1 having, additionally: a. significant digit detecting means, responsive to the significant digits in the mantissa of the multiplier in the multiplier register, for detecting when the last significant digit in such mantissa has been used to obtain partial products; and b. means, responsive to the significant digit detecting means, for providing a signal indicating that the sum of the partial products obtained prior to such signal contain all the significant digits in the mantissa of the product of the two floating point numbers.
3. Circuitry as in claim 2 having, additionally: a. means for comparing the intermediate exponent with an upper and a lower limiting number; and, b. means, responsive to such comparison means, for producing a signal whenever the intermediate exponent exceeds either such limiting number.
US3725649A 1971-10-01 1971-10-01 Floating point number processor for a digital computer Expired - Lifetime US3725649A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US18549871 true 1971-10-01 1971-10-01

Publications (1)

Publication Number Publication Date
US3725649A true US3725649A (en) 1973-04-03

Family

ID=22681232

Family Applications (1)

Application Number Title Priority Date Filing Date
US3725649A Expired - Lifetime US3725649A (en) 1971-10-01 1971-10-01 Floating point number processor for a digital computer

Country Status (3)

Country Link
US (1) US3725649A (en)
JP (1) JPS5625697B2 (en)
DE (1) DE2246968C2 (en)

Cited By (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3800130A (en) * 1973-07-09 1974-03-26 Rca Corp Fast fourier transform stage using floating point numbers
US4161784A (en) * 1978-01-05 1979-07-17 Honeywell Information Systems, Inc. Microprogrammable floating point arithmetic unit capable of performing arithmetic operations on long and short operands
US4247891A (en) * 1979-01-02 1981-01-27 Honeywell Information Systems Inc. Leading zero count formation
US4334284A (en) * 1979-12-31 1982-06-08 Sperry Corporation Multiplier decoding using parallel MQ register
US4586154A (en) * 1982-02-02 1986-04-29 The Singer Company Data word normalization
US4720809A (en) * 1984-09-21 1988-01-19 University Of Florida Hybrid floating point/logarithmic number system arithmetic processor
US4758972A (en) * 1986-06-02 1988-07-19 Raytheon Company Precision rounding in a floating point arithmetic unit
US4799182A (en) * 1984-10-16 1989-01-17 The Commonwealth Of Australia Cellular floating-point serial pipelined multiplier
WO1992001266A1 (en) * 1990-07-04 1992-01-23 Siemens Aktiengesellschaft Device for emulating neuronal networks and process for operating it
US20020178198A1 (en) * 2001-05-25 2002-11-28 Sun Microsystems, Inc. Comparator unit for comparing values of floating point operands
US20020178199A1 (en) * 2001-05-25 2002-11-28 Sun Microsystems, Inc. Floating point status information testing circuit
US20020178200A1 (en) * 2001-05-25 2002-11-28 Sun Microsystems, Inc. Circuit for selectively providing maximum or minimum of a pair of floating point operands
US20020178197A1 (en) * 2001-05-25 2002-11-28 Sun Microsystems, Inc. System and method for generating an integer part of a logarithm of a floating point operand
US20020178204A1 (en) * 2001-05-25 2002-11-28 Sun Microsystems, Inc. Floating point status information accumulation circuit
US20020178201A1 (en) * 2001-05-25 2002-11-28 Sun Microsystems, Inc. System and method for extracting the high part of a floating point operand
US20020178202A1 (en) * 2001-05-25 2002-11-28 Sun Microsystems, Inc. Floating point multiplier for delimited operands
US20020184283A1 (en) * 2001-05-25 2002-12-05 Sun Microsystems, Inc. Floating point system with improved support of interval arithmetic
US20020198917A1 (en) * 2001-05-25 2002-12-26 Sun Microsystems, Inc. Floating point adder with embedded status information
US20020198918A1 (en) * 2001-05-25 2002-12-26 Steele Guy L. Floating point unit for detecting and representing inexact computations without flags or traps
US20030005014A1 (en) * 2001-05-25 2003-01-02 Sun Microsystems, Inc. Floating point divider with embedded status information
US20030005013A1 (en) * 2001-05-25 2003-01-02 Sun Microsystems, Inc. Floating point system that represents status flag information within a floating point operand
US20030005012A1 (en) * 2001-05-25 2003-01-02 Sun Microsystems, Inc. System and method for forcing floating point status information to selected values
US20030009500A1 (en) * 2001-05-25 2003-01-09 Sun Microsystems, Inc. Floating point remainder with embedded status information
US20030014454A1 (en) * 2001-05-25 2003-01-16 Sun Microsystems, Inc. Floating point square root provider with embedded status information
US20030014455A1 (en) * 2001-05-25 2003-01-16 Sun Microsystems, Inc. Floating point multiplier with embedded status information
US20030041081A1 (en) * 2001-05-25 2003-02-27 Sun Microsystems, Inc. System and method for performing floating point operations involving extended exponents
US6633895B1 (en) * 2000-02-22 2003-10-14 Hewlett-Packard Development Company, L.P. Apparatus and method for sharing overflow/underflow compare hardware in a floating-point multiply-accumulate (FMAC) or floating-point adder (FADD) unit
US20040098439A1 (en) * 2000-02-22 2004-05-20 Bass Stephen L. Apparatus and method for sharing overflow/underflow compare hardware in a floating-point multiply-accumulate (FMAC) or floating-point adder (FADD) unit
US20040117421A1 (en) * 2002-12-17 2004-06-17 Sun Microsystems, Inc. Methods and systems for computing floating-point intervals
US20040117420A1 (en) * 2002-12-17 2004-06-17 Sun Microsystems, Inc. Methods and systems for computing the quotient of floating-point intervals
US20040167954A1 (en) * 2003-02-21 2004-08-26 Infineon Technologies North America Corp. Overflow detection system for multiplication
US20060093126A1 (en) * 2004-11-03 2006-05-04 Dave Wesen Method of tracking e-mail handling by a remote agent of an automatic contact distributor
US20060179104A1 (en) * 2001-05-25 2006-08-10 Steele Guy L Jr Total order comparator unit for comparing values of two floating point operands
US7206800B1 (en) * 2000-08-30 2007-04-17 Micron Technology, Inc. Overflow detection and clamping with parallel operand processing for fixed-point multipliers

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6360417B2 (en) * 1980-10-31 1988-11-24
JPS592140A (en) * 1982-06-29 1984-01-07 Fujitsu Ltd Pre-normalizing system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3056550A (en) * 1960-01-18 1962-10-02 Bendix Corp Variable-exponent computers
US3193669A (en) * 1961-04-26 1965-07-06 Sperry Rand Corp Floating point arithmetic circuit
US3304417A (en) * 1966-05-23 1967-02-14 North American Aviation Inc Computer having floating point multiplication
US3434114A (en) * 1966-09-23 1969-03-18 Ibm Variable floating point precision
US3536903A (en) * 1966-12-23 1970-10-27 Gen Electric Binary floating-point comparing and selective processing apparatus

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3056550A (en) * 1960-01-18 1962-10-02 Bendix Corp Variable-exponent computers
US3193669A (en) * 1961-04-26 1965-07-06 Sperry Rand Corp Floating point arithmetic circuit
US3304417A (en) * 1966-05-23 1967-02-14 North American Aviation Inc Computer having floating point multiplication
US3434114A (en) * 1966-09-23 1969-03-18 Ibm Variable floating point precision
US3536903A (en) * 1966-12-23 1970-10-27 Gen Electric Binary floating-point comparing and selective processing apparatus

Cited By (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3800130A (en) * 1973-07-09 1974-03-26 Rca Corp Fast fourier transform stage using floating point numbers
US4161784A (en) * 1978-01-05 1979-07-17 Honeywell Information Systems, Inc. Microprogrammable floating point arithmetic unit capable of performing arithmetic operations on long and short operands
US4247891A (en) * 1979-01-02 1981-01-27 Honeywell Information Systems Inc. Leading zero count formation
US4334284A (en) * 1979-12-31 1982-06-08 Sperry Corporation Multiplier decoding using parallel MQ register
US4586154A (en) * 1982-02-02 1986-04-29 The Singer Company Data word normalization
US4720809A (en) * 1984-09-21 1988-01-19 University Of Florida Hybrid floating point/logarithmic number system arithmetic processor
US4799182A (en) * 1984-10-16 1989-01-17 The Commonwealth Of Australia Cellular floating-point serial pipelined multiplier
US4758972A (en) * 1986-06-02 1988-07-19 Raytheon Company Precision rounding in a floating point arithmetic unit
WO1992001266A1 (en) * 1990-07-04 1992-01-23 Siemens Aktiengesellschaft Device for emulating neuronal networks and process for operating it
US6633895B1 (en) * 2000-02-22 2003-10-14 Hewlett-Packard Development Company, L.P. Apparatus and method for sharing overflow/underflow compare hardware in a floating-point multiply-accumulate (FMAC) or floating-point adder (FADD) unit
US20040098439A1 (en) * 2000-02-22 2004-05-20 Bass Stephen L. Apparatus and method for sharing overflow/underflow compare hardware in a floating-point multiply-accumulate (FMAC) or floating-point adder (FADD) unit
US7206800B1 (en) * 2000-08-30 2007-04-17 Micron Technology, Inc. Overflow detection and clamping with parallel operand processing for fixed-point multipliers
US8370415B2 (en) 2000-08-30 2013-02-05 Micron Technology, Inc. Overflow detection and clamping with parallel operand processing for fixed-point multipliers
US20070156803A1 (en) * 2000-08-30 2007-07-05 Micron Technology, Inc. Overflow detection and clamping with parallel operand processing for fixed-point multipliers
US9256577B2 (en) 2000-08-30 2016-02-09 Micron Technology, Inc. Apparatuses and related methods for overflow detection and clamping with parallel operand processing
US20030005013A1 (en) * 2001-05-25 2003-01-02 Sun Microsystems, Inc. Floating point system that represents status flag information within a floating point operand
US20020184283A1 (en) * 2001-05-25 2002-12-05 Sun Microsystems, Inc. Floating point system with improved support of interval arithmetic
US20020198917A1 (en) * 2001-05-25 2002-12-26 Sun Microsystems, Inc. Floating point adder with embedded status information
US20020198918A1 (en) * 2001-05-25 2002-12-26 Steele Guy L. Floating point unit for detecting and representing inexact computations without flags or traps
US20030005014A1 (en) * 2001-05-25 2003-01-02 Sun Microsystems, Inc. Floating point divider with embedded status information
US20020178202A1 (en) * 2001-05-25 2002-11-28 Sun Microsystems, Inc. Floating point multiplier for delimited operands
US20030005012A1 (en) * 2001-05-25 2003-01-02 Sun Microsystems, Inc. System and method for forcing floating point status information to selected values
US20030009500A1 (en) * 2001-05-25 2003-01-09 Sun Microsystems, Inc. Floating point remainder with embedded status information
US20030014454A1 (en) * 2001-05-25 2003-01-16 Sun Microsystems, Inc. Floating point square root provider with embedded status information
US20030014455A1 (en) * 2001-05-25 2003-01-16 Sun Microsystems, Inc. Floating point multiplier with embedded status information
US20030041081A1 (en) * 2001-05-25 2003-02-27 Sun Microsystems, Inc. System and method for performing floating point operations involving extended exponents
US20020178201A1 (en) * 2001-05-25 2002-11-28 Sun Microsystems, Inc. System and method for extracting the high part of a floating point operand
US20020178204A1 (en) * 2001-05-25 2002-11-28 Sun Microsystems, Inc. Floating point status information accumulation circuit
US8799344B2 (en) 2001-05-25 2014-08-05 Oracle America, Inc. Comparator unit for comparing values of floating point operands
US8793294B2 (en) 2001-05-25 2014-07-29 Oracle America, Inc. Circuit for selectively providing maximum or minimum of a pair of floating point operands
US20020178197A1 (en) * 2001-05-25 2002-11-28 Sun Microsystems, Inc. System and method for generating an integer part of a logarithm of a floating point operand
US6961744B2 (en) 2001-05-25 2005-11-01 Sun Microsystems, Inc. System and method for generating an integer part of a logarithm of a floating point operand
US6970898B2 (en) 2001-05-25 2005-11-29 Sun Microsystems, Inc. System and method for forcing floating point status information to selected values
US6976050B2 (en) 2001-05-25 2005-12-13 Sun Microsystems, Inc. System and method for extracting the high part of a floating point operand
US6993549B2 (en) 2001-05-25 2006-01-31 Sun Microsystems, Inc. System and method for performing gloating point operations involving extended exponents
US7003540B2 (en) * 2001-05-25 2006-02-21 Sun Microsystems, Inc. Floating point multiplier for delimited operands
US7016928B2 (en) 2001-05-25 2006-03-21 Sun Microsystems, Inc. Floating point status information testing circuit
US8543631B2 (en) 2001-05-25 2013-09-24 Oracle America, Inc. Total order comparator unit for comparing values of two floating point operands
US7069288B2 (en) 2001-05-25 2006-06-27 Sun Microsystems, Inc. Floating point system with improved support of interval arithmetic
US7069289B2 (en) 2001-05-25 2006-06-27 Sun Microsystems, Inc. Floating point unit for detecting and representing inexact computations without flags or traps
US20060179104A1 (en) * 2001-05-25 2006-08-10 Steele Guy L Jr Total order comparator unit for comparing values of two floating point operands
US20060242215A1 (en) * 2001-05-25 2006-10-26 Sun Microsystems, Inc. Circuit for selectively providing maximum or minimum of a pair of floating point operands
US7133890B2 (en) 2001-05-25 2006-11-07 Sun Microsystems, Inc. Total order comparator unit for comparing values of two floating point operands
US7191202B2 (en) 2001-05-25 2007-03-13 Sun Microsystems, Inc. Comparator unit for comparing values of floating point operands
US20020178200A1 (en) * 2001-05-25 2002-11-28 Sun Microsystems, Inc. Circuit for selectively providing maximum or minimum of a pair of floating point operands
US20020178199A1 (en) * 2001-05-25 2002-11-28 Sun Microsystems, Inc. Floating point status information testing circuit
US7228324B2 (en) 2001-05-25 2007-06-05 Sun Microsystems, Inc. Circuit for selectively providing maximum or minimum of a pair of floating point operands
US7831652B2 (en) 2001-05-25 2010-11-09 Oracle America, Inc. Floating point multiplier with embedded status information
US20020178198A1 (en) * 2001-05-25 2002-11-28 Sun Microsystems, Inc. Comparator unit for comparing values of floating point operands
US7363337B2 (en) 2001-05-25 2008-04-22 Sun Microsystems, Inc. Floating point divider with embedded status information
US7366749B2 (en) 2001-05-25 2008-04-29 Sun Microsystems, Inc. Floating point adder with embedded status information
US7395297B2 (en) 2001-05-25 2008-07-01 Sun Microsystems, Inc. Floating point system that represents status flag information within a floating point operand
US7430576B2 (en) 2001-05-25 2008-09-30 Sun Microsystems, Inc. Floating point square root provider with embedded status information
US7444367B2 (en) 2001-05-25 2008-10-28 Sun Microsystems, Inc. Floating point status information accumulation circuit
US7613762B2 (en) 2001-05-25 2009-11-03 Sun Microsystems, Inc. Floating point remainder with embedded status information
US7236999B2 (en) 2002-12-17 2007-06-26 Sun Microsystems, Inc. Methods and systems for computing the quotient of floating-point intervals
US7219117B2 (en) 2002-12-17 2007-05-15 Sun Microsystems, Inc. Methods and systems for computing floating-point intervals
US20040117420A1 (en) * 2002-12-17 2004-06-17 Sun Microsystems, Inc. Methods and systems for computing the quotient of floating-point intervals
US20040117421A1 (en) * 2002-12-17 2004-06-17 Sun Microsystems, Inc. Methods and systems for computing floating-point intervals
US20040167954A1 (en) * 2003-02-21 2004-08-26 Infineon Technologies North America Corp. Overflow detection system for multiplication
US20060093126A1 (en) * 2004-11-03 2006-05-04 Dave Wesen Method of tracking e-mail handling by a remote agent of an automatic contact distributor

Also Published As

Publication number Publication date Type
JPS5625697B2 (en) 1981-06-13 grant
DE2246968C2 (en) 1982-09-09 grant
JPS4844060A (en) 1973-06-25 application
DE2246968A1 (en) 1973-04-05 application

Similar Documents

Publication Publication Date Title
Brent A Fortran multiple-precision arithmetic package
US5126963A (en) Hardware arrangement for floating-point multiplication and operating method therefor
US4622650A (en) Circuitry for generating scalar products and sums of floating point numbers with maximum accuracy
US5257215A (en) Floating point and integer number conversions in a floating point adder
US5128889A (en) Floating-point arithmetic apparatus with compensation for mantissa truncation
US5944774A (en) Methods apparatus and computer program products for accumulating logarithmic values
US5426600A (en) Double precision division circuit and method for digital signal processor
US4839846A (en) Apparatus for performing floating point arithmetic operations and rounding the result thereof
US4562553A (en) Floating point arithmetic system and method with rounding anticipation
US4839839A (en) Barrel shifter including rotate operation
US5515308A (en) Floating point arithmetic unit using modified Newton-Raphson technique for division and square root
US6138135A (en) Propagating NaNs during high precision calculations using lesser precision hardware
US5321644A (en) Method and apparatus for division error detection
US3828175A (en) Method and apparatus for division employing table-lookup and functional iteration
US4021655A (en) Oversized data detection hardware for data processors which store data at variable length destinations
US4852037A (en) Arithmetic unit for carrying out both multiplication and addition in an interval for the multiplication
Forsythe Today’s computational methods of linear algebra
US5038313A (en) Floating-point processor provided with high-speed detector of overflow and underflow exceptional conditions
US6128726A (en) Accurate high speed digital signal processor
US5276634A (en) Floating point data processing apparatus which simultaneously effects summation and rounding computations
US4620292A (en) Arithmetic logic unit for floating point data and/or fixed point data
US4594679A (en) High speed hardware multiplier for fixed floating point operands
US6240433B1 (en) High accuracy estimates of elementary functions
US4758972A (en) Precision rounding in a floating point arithmetic unit
US4849921A (en) Arithmetic circuit for calculating the absolute value of the difference between a pair of input signals