US5963460A - Apparatus for computing transcendental functions quickly - Google Patents
Apparatus for computing transcendental functions quickly Download PDFInfo
- Publication number
- US5963460A US5963460A US08/768,781 US76878196A US5963460A US 5963460 A US5963460 A US 5963460A US 76878196 A US76878196 A US 76878196A US 5963460 A US5963460 A US 5963460A
- Authority
- US
- United States
- Prior art keywords
- read rom
- multiply
- rom
- read
- add element
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/556—Logarithmic or exponential functions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/548—Trigonometric functions; Co-ordinate transformations
Definitions
- This invention relates to apparatus for computing transcendental functions quickly.
- Taylor series generally requires one "add” instruction (which might take, for example, three clock times) and one "multiply” instruction (which might also take, for example, three more clock times) for each term.
- add which might take, for example, three clock times
- multiply which might also take, for example, three more clock times
- processors computing transendental functions to significant accuracy, it requires a number of terms to achieve a residual error less than the least significant bit of the answer.
- the number of terms is about ten for achieving 64-bit accuracy for the full range of an ordinary Taylor series; if multiply and add operations each take about three clock times, this would take about sixty clock times, which can be a significant amount of time when computation resources are at a premium. To obtain greater accuracy, even more terms and thus even more time would be required.
- the invention provides a method and system for computing transcendental functions quickly.
- the multiply arithmetic logic unit (ALU) is enhanced to include the operation of adding a term to the product, (2) rounding operations for intermediate multiply and add operations are skipped, (3) the Taylor series for the transcendental function is separated into two partial series which are performed in parallel, and (4) subtraction and recipricoals, if any, are reserved for the end of the computation.
- ALU multiply arithmetic logic unit
- transcendental functions computed using a series with multiple terms are thus performed in about one sixth of the "natural" amount of time per term, or about one clock time per term in processors in which multiply and add operations each take about three clock times each.
- FIG. 1 shows a floating-point processing unit for computing transcendental functions.
- FIG. 1 shows a floating-point processing unit for computing transcendental functions.
- the floating-point processing unit 100 receives an operand at the input register 110, computes a transcendental function, such as a trigonometric function (SIN, COS, TAN, SEC, CSC, or COT), an inverse trigonometric function (ARCSIN, ARCCOS, ARCTAN, ARCSEC, ARCCSC, or ARCCOT), an exponential function (EXP or LN), a hyperbolic trigonometric function (SINH, COSH, TANH, SECH, CSCH, or COTH), or an inverse hyperbolic trigonometric function (ARCSINH, ARCCOSH, ARCTANH, ARCSECH, ARCCSCH, or ARCCOTH), and provides an output value at the output register 150.
- a trigonometric function such as a trigonometric function (SIN, COS, TAN, SEC, CSC, or COT)
- ARCSIN, ARCCOS, ARCTAN, ARCSEC, ARCCSC, or ARCCOT an
- each transcendental function is computed using a Taylor series.
- Taylor series are known in the art of computing transcendental functions.
- SIN function can be computed using the following series: ##EQU1## where a b indicates exponentiation: a b .
- the input register 110, register file 130, storage element 140, the output register 150, and other registers described herein each comprise 32-bit, 64-bit, or 80-bit registers disposed for storing floating-point numbers stored in a known floating-point numeric format, such as the IEEE standard format for floating-point numbers having one bit for sign, 15 bits for exponent, and 64 bits for mantissa.
- the floating-point processing unit 100 operates under control of the control element 180, which directs the flow of data among the elements of the floating-point processing unit 100 using control signals. Control signal paths are omitted from FIG. 1 for clarity.
- the multiply-add unit 120 comprises a first input and a first holding register 123 for a first multiplicand, a second input and a second holding register 124 for a second multiplicand, a third input and a third holding register 125 for an addend, and an output.
- the multiply-add unit 120 multiplies its multiplicands to produce a product, to which it adds its addend to produce its output.
- the multiply-add unit 120 may comprise more than two pipeline stages (such as for example three, four, five, or more actual pipeline stages), in which cases a first group of its pipeline stages are collectively treated as the first stage 121 and a second group of its pipeline stages are collectively treated as the second stage 122.
- the first stage 121 and the second stage 122 take approximately equal amounts of time to perform their functions.
- the multiply-add unit 120 comprises multiply circuits which compute partial products for its two multiplicands.
- the addend for the multiply-add unit 120 is additively combined with the partial products when those partial products are added, thus saving time otherwise required for an addition operation.
- the method of computation uses a reformulated series for computing each transcendental function.
- the column labeled "mul 1" indicates an operation performed by the first stage 121 of the floating-point multiply-add unit 120.
- the column labeled “mul 2” indicates an operation performed by the second stage 122 of the floating-point multiply-add unit 120. Since each multiply-add operation requires two clock cycles, each operation which appears in the column labeled "mul 1" always appears in the next clock cycle in the column labeled "mul 2".
- the equals sign indicates a name given to an output; outputs are routed to a register in the register file 130 for storage, or can be routed to one of the multiplicand holding registers 123 or 124 of the multiply-add unit 120, for further computation.
- Data in the registers is indicated by names such as "a”, “b”, “c”, “d”, “e”, “f”, “g”, “h”, “i”, and “j”; these names can be reused in the table for different values. Routing directly to one of the multiplicand holding registers 123 or 124 is indicated by the names "p” and "q”; these names are not reused in the table for different values and typically indicate a value having that name in an indicated Taylor series.
- Original input is indicated by the name "x".
- the column labeled "add 1" indicates an operation performed by the first stage 161 of the adder unit 160.
- the column labeled “add 2” indicates an operation performed by the second stage 162 of the adder unit 160
- the column labeled “add 3” indicates an operation performed by the third stage 163 of the adder unit 160. Since each addition operation for the adder unit 160 requires three clock cycles, each operation which appears in the column labeled “add 1” always appears in the next clock cycle in the column labeled "add 2" and in the following clock cycle in the column labeled "add 3".
- control indicates an operation directed by the control unit 180.
- the operation "read rom” means to read a value from the storage element 150, which may comprise a read-only memory (“ROM").
- ROM read-only memory
- the value 1.0 may also be supplied to the multiply-add unit 120 from the ROM, or may be generated internally in the first stage 121.
- the function cos(x) may be computed in a similar manner as shown in table 2-2.
- the two functions sin(x) and cos(x) may also be computed together in a single operation, in a similar manner, as shown in table 2-3.
- the function tan(x) may be computed in a similar manner as shown in table 2-4.
- the function TAN x uses computation of a multiplicative inverse.
- the column labeled "newton” indicates operation of the newton element 170.
- the value in parentheses indicates the number of bits of accuracy being computed. A greater number of bits of accuracy requires more time.
- COSH x, SINH x, and TANH x are computed in a similar manner as COS x, SIN x, and TAN x, except that the different subseries are added instead of subtracted, as shown in equations 222, 223, and 226, respectively.
- EXP x is computed in a similar manner as COS x or SIN x, except that subseries are used as shown in equation 224.
- the function (2 x)-1 may be computed using these partial series as follows:
- the function (2 x)-1 may therefore be computed as shown in table 2-5.
- This equation 268 is computed as shown in table 2-7.
- the function lg(x), the logarithm of x base 2, is another transcendental function which can be determined using a series.
- the input argument, (x), is expressed as (p)(2 q), where q is an integer and 11/16 ⁇ p ⁇ 23/16; the integer q might be positive, zero, or negative.
- the function lg(x) may therefore be computed as shown in table 2-8, for values of the input operand x>zero.
- the function lg(x) is not defined for values of the input operand x ⁇ zero.
- the function lg(x+1) may therfore be computed as shown in table 2-10, for values of the input operand x>1/4.
- Table 3-1 shows a set of experimental latency times for computing transcendental functions, comparing latency times for a processor including a floating-point unit according to the invention with the "Pentium" processor available from Intel Corporation of Santa Clara, Calif. As shown in table 3-1, the floating-point unit according to the invention is in most cases much faster than the Pentium processor.
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Complex Calculations (AREA)
Priority Applications (6)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/768,781 US5963460A (en) | 1996-12-17 | 1996-12-17 | Apparatus for computing transcendental functions quickly |
| EP97310118A EP0849664B1 (fr) | 1996-12-17 | 1997-12-15 | Appareil à calculer rapidement des functions transcendentaux |
| DE69712720T DE69712720T2 (de) | 1996-12-17 | 1997-12-15 | Gerät zur schnellen Berechnung tranzedentaler Funktionen |
| JP9344758A JPH10214176A (ja) | 1996-12-17 | 1997-12-15 | 超越関数を迅速に計算する装置 |
| US09/267,330 US6317764B1 (en) | 1996-12-17 | 1999-03-12 | Apparatus for computing transcendental functions quickly |
| US10/012,660 US6581079B2 (en) | 1996-12-17 | 2001-11-12 | Apparatus for computing transcendental functions quickly |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/768,781 US5963460A (en) | 1996-12-17 | 1996-12-17 | Apparatus for computing transcendental functions quickly |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US09/267,330 Continuation US6317764B1 (en) | 1996-12-17 | 1999-03-12 | Apparatus for computing transcendental functions quickly |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| US5963460A true US5963460A (en) | 1999-10-05 |
Family
ID=25083468
Family Applications (3)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US08/768,781 Expired - Lifetime US5963460A (en) | 1996-12-17 | 1996-12-17 | Apparatus for computing transcendental functions quickly |
| US09/267,330 Expired - Lifetime US6317764B1 (en) | 1996-12-17 | 1999-03-12 | Apparatus for computing transcendental functions quickly |
| US10/012,660 Expired - Lifetime US6581079B2 (en) | 1996-12-17 | 2001-11-12 | Apparatus for computing transcendental functions quickly |
Family Applications After (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US09/267,330 Expired - Lifetime US6317764B1 (en) | 1996-12-17 | 1999-03-12 | Apparatus for computing transcendental functions quickly |
| US10/012,660 Expired - Lifetime US6581079B2 (en) | 1996-12-17 | 2001-11-12 | Apparatus for computing transcendental functions quickly |
Country Status (4)
| Country | Link |
|---|---|
| US (3) | US5963460A (fr) |
| EP (1) | EP0849664B1 (fr) |
| JP (1) | JPH10214176A (fr) |
| DE (1) | DE69712720T2 (fr) |
Cited By (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6240433B1 (en) * | 1998-02-02 | 2001-05-29 | International Business Machines Corporation | High accuracy estimates of elementary functions |
| US6317764B1 (en) * | 1996-12-17 | 2001-11-13 | Stmicroelectronics, Inc. | Apparatus for computing transcendental functions quickly |
| US6363405B1 (en) | 1997-12-24 | 2002-03-26 | Elbrus International Limited | Computer system and method for parallel computations using table approximation methods |
| US6567831B1 (en) * | 1997-12-24 | 2003-05-20 | Elbrus International Limited | Computer system and method for parallel computations using table approximation |
| US6581085B1 (en) * | 1999-05-12 | 2003-06-17 | Ati International Srl | Approximation circuit and method |
| US20030217022A1 (en) * | 2002-05-16 | 2003-11-20 | Giampietro Tecchiolli | Electronic device to calculate and generate linear and non-linear functions |
| US20060224648A1 (en) * | 2005-03-30 | 2006-10-05 | Lockheed Martin Corporation | Method and apparatus for providing a base-2 logarithm approximation to a binary number |
| US20070124357A1 (en) * | 2003-12-03 | 2007-05-31 | Marvell International Ltd. | Methods and apparatus fro performing calculations using reduced-width data |
| US20080005211A1 (en) * | 2006-06-26 | 2008-01-03 | Matula David W | Determining A Table Output Of A Table Representing A Hierarchical Tree For An Integer Valued Function |
| US20100332573A1 (en) * | 2009-06-30 | 2010-12-30 | Fujitsu Limited | Processing unit |
| US9875084B2 (en) | 2016-04-28 | 2018-01-23 | Vivante Corporation | Calculating trigonometric functions using a four input dot product circuit |
Families Citing this family (44)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6055553A (en) * | 1997-02-25 | 2000-04-25 | Kantabutra; Vitit | Apparatus for computing exponential and trigonometric functions |
| JP4199100B2 (ja) | 2003-12-12 | 2008-12-17 | 富士通株式会社 | 関数演算方法及び関数演算回路 |
| US8312551B2 (en) | 2007-02-15 | 2012-11-13 | Harris Corporation | Low level sequence as an anti-tamper Mechanism |
| JP4755129B2 (ja) * | 2007-03-16 | 2011-08-24 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
| US7937427B2 (en) | 2007-04-19 | 2011-05-03 | Harris Corporation | Digital generation of a chaotic numerical sequence |
| US7921145B2 (en) | 2007-05-22 | 2011-04-05 | Harris Corporation | Extending a repetition period of a random sequence |
| US8611530B2 (en) | 2007-05-22 | 2013-12-17 | Harris Corporation | Encryption via induced unweighted errors |
| US7995757B2 (en) | 2007-05-31 | 2011-08-09 | Harris Corporation | Closed galois field combination |
| US7970809B2 (en) | 2007-06-07 | 2011-06-28 | Harris Corporation | Mixed radix conversion with a priori defined statistical artifacts |
| US7974413B2 (en) | 2007-06-07 | 2011-07-05 | Harris Corporation | Spread spectrum communications system and method utilizing chaotic sequence |
| US7962540B2 (en) | 2007-06-07 | 2011-06-14 | Harris Corporation | Mixed radix number generator with chosen statistical artifacts |
| US8005221B2 (en) | 2007-08-01 | 2011-08-23 | Harris Corporation | Chaotic spread spectrum communications system receiver |
| US7995749B2 (en) | 2007-10-30 | 2011-08-09 | Harris Corporation | Cryptographic system configured for extending a repetition period of a random sequence |
| US8180055B2 (en) | 2008-02-05 | 2012-05-15 | Harris Corporation | Cryptographic system incorporating a digitally generated chaotic numerical sequence |
| US8363830B2 (en) | 2008-02-07 | 2013-01-29 | Harris Corporation | Cryptographic system configured to perform a mixed radix conversion with a priori defined statistical artifacts |
| US8040937B2 (en) | 2008-03-26 | 2011-10-18 | Harris Corporation | Selective noise cancellation of a spread spectrum signal |
| US8139764B2 (en) | 2008-05-06 | 2012-03-20 | Harris Corporation | Closed galois field cryptographic system |
| US8320557B2 (en) | 2008-05-08 | 2012-11-27 | Harris Corporation | Cryptographic system including a mixed radix number generator with chosen statistical artifacts |
| US8200728B2 (en) * | 2008-05-29 | 2012-06-12 | Harris Corporation | Sine/cosine generator |
| US8145692B2 (en) | 2008-05-29 | 2012-03-27 | Harris Corporation | Digital generation of an accelerated or decelerated chaotic numerical sequence |
| US8064552B2 (en) | 2008-06-02 | 2011-11-22 | Harris Corporation | Adaptive correlation |
| US8068571B2 (en) | 2008-06-12 | 2011-11-29 | Harris Corporation | Featureless coherent chaotic amplitude modulation |
| US8325702B2 (en) | 2008-08-29 | 2012-12-04 | Harris Corporation | Multi-tier ad-hoc network in which at least two types of non-interfering waveforms are communicated during a timeslot |
| US8165065B2 (en) | 2008-10-09 | 2012-04-24 | Harris Corporation | Ad-hoc network acquisition using chaotic sequence spread waveform |
| US8351484B2 (en) | 2008-12-29 | 2013-01-08 | Harris Corporation | Communications system employing chaotic spreading codes with static offsets |
| US8406276B2 (en) | 2008-12-29 | 2013-03-26 | Harris Corporation | Communications system employing orthogonal chaotic spreading codes |
| US8457077B2 (en) | 2009-03-03 | 2013-06-04 | Harris Corporation | Communications system employing orthogonal chaotic spreading codes |
| US8428102B2 (en) | 2009-06-08 | 2013-04-23 | Harris Corporation | Continuous time chaos dithering |
| US8509284B2 (en) | 2009-06-08 | 2013-08-13 | Harris Corporation | Symbol duration dithering for secured chaotic communications |
| US8428103B2 (en) | 2009-06-10 | 2013-04-23 | Harris Corporation | Discrete time chaos dithering |
| US8340295B2 (en) | 2009-07-01 | 2012-12-25 | Harris Corporation | High-speed cryptographic system using chaotic sequences |
| US8369376B2 (en) | 2009-07-01 | 2013-02-05 | Harris Corporation | Bit error rate reduction in chaotic communications |
| US8406352B2 (en) | 2009-07-01 | 2013-03-26 | Harris Corporation | Symbol estimation for chaotic spread spectrum signal |
| US8379689B2 (en) | 2009-07-01 | 2013-02-19 | Harris Corporation | Anti-jam communications having selectively variable peak-to-average power ratio including a chaotic constant amplitude zero autocorrelation waveform |
| US8363700B2 (en) | 2009-07-01 | 2013-01-29 | Harris Corporation | Rake receiver for spread spectrum chaotic communications systems |
| US8428104B2 (en) | 2009-07-01 | 2013-04-23 | Harris Corporation | Permission-based multiple access communications systems |
| US8385385B2 (en) | 2009-07-01 | 2013-02-26 | Harris Corporation | Permission-based secure multiple access communication systems |
| US8848909B2 (en) | 2009-07-22 | 2014-09-30 | Harris Corporation | Permission-based TDMA chaotic communication systems |
| US8369377B2 (en) | 2009-07-22 | 2013-02-05 | Harris Corporation | Adaptive link communications using adaptive chaotic spread waveform |
| US8345725B2 (en) | 2010-03-11 | 2013-01-01 | Harris Corporation | Hidden Markov Model detection for spread spectrum waveforms |
| WO2013145276A1 (fr) * | 2012-03-30 | 2013-10-03 | 富士通株式会社 | Unité de traitement arithmétique et procédé de commande d'unité de traitement arithmétique |
| US9015217B2 (en) | 2012-03-30 | 2015-04-21 | Apple Inc. | Transcendental and non-linear components using series expansion |
| US8504954B1 (en) | 2012-03-30 | 2013-08-06 | Apple Inc. | Methodology for automatically generating series-approximated components |
| US10733503B2 (en) * | 2016-02-18 | 2020-08-04 | Intel Corporation | Technologies for shifted neural networks |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3813529A (en) * | 1972-10-25 | 1974-05-28 | Singer Co | Digital high order interpolator |
| US4075704A (en) * | 1976-07-02 | 1978-02-21 | Floating Point Systems, Inc. | Floating point data processor for high speech operation |
| US4589067A (en) * | 1983-05-27 | 1986-05-13 | Analogic Corporation | Full floating point vector processor with dynamically configurable multifunction pipelined ALU |
| US4620292A (en) * | 1980-10-31 | 1986-10-28 | Hitachi, Ltd. | Arithmetic logic unit for floating point data and/or fixed point data |
| US4969118A (en) * | 1989-01-13 | 1990-11-06 | International Business Machines Corporation | Floating point unit for calculating A=XY+Z having simultaneous multiply and add |
| US5497343A (en) * | 1993-08-05 | 1996-03-05 | Hyundai Electronics America | Reducing the number of carry-look-ahead adder stages in high-speed arithmetic units, structure and method |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0776916B2 (ja) * | 1987-06-30 | 1995-08-16 | 日本電気株式会社 | 疑似除算方式を用いた三角関数演算装置 |
| US5184318A (en) * | 1989-09-05 | 1993-02-02 | Cyrix Corporation | Rectangular array signed digit multiplier |
| US5179531A (en) * | 1990-04-27 | 1993-01-12 | Pioneer Electronic Corporation | Accelerated digital signal processor |
| JPH05197741A (ja) * | 1991-06-06 | 1993-08-06 | Lsi Logic Corp | インターリーブド乗算器累算器 |
| US5703801A (en) * | 1995-01-31 | 1997-12-30 | Motorola, Inc. | Logarithm/inverse-logarithm converter utilizing second-order term and method of using same |
| US5604691A (en) * | 1995-01-31 | 1997-02-18 | Motorola, Inc. | Logarithm/inverse-logarithm converter utilizing a truncated Taylor series and method of use thereof |
| US5642305A (en) * | 1995-01-31 | 1997-06-24 | Motorola, Inc. | Logarithm/inverse-logarithm converter and method of using same |
| US5629884A (en) * | 1995-07-28 | 1997-05-13 | Motorola, Inc. | Log converter utilizing offset and method of use thereof |
| US5991863A (en) * | 1996-08-30 | 1999-11-23 | Texas Instruments Incorporated | Single carry/borrow propagate adder/decrementer for generating register stack addresses in a microprocessor |
| US5963460A (en) * | 1996-12-17 | 1999-10-05 | Metaflow Technologies, Inc. | Apparatus for computing transcendental functions quickly |
-
1996
- 1996-12-17 US US08/768,781 patent/US5963460A/en not_active Expired - Lifetime
-
1997
- 1997-12-15 DE DE69712720T patent/DE69712720T2/de not_active Expired - Fee Related
- 1997-12-15 JP JP9344758A patent/JPH10214176A/ja active Pending
- 1997-12-15 EP EP97310118A patent/EP0849664B1/fr not_active Expired - Lifetime
-
1999
- 1999-03-12 US US09/267,330 patent/US6317764B1/en not_active Expired - Lifetime
-
2001
- 2001-11-12 US US10/012,660 patent/US6581079B2/en not_active Expired - Lifetime
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3813529A (en) * | 1972-10-25 | 1974-05-28 | Singer Co | Digital high order interpolator |
| US4075704A (en) * | 1976-07-02 | 1978-02-21 | Floating Point Systems, Inc. | Floating point data processor for high speech operation |
| US4620292A (en) * | 1980-10-31 | 1986-10-28 | Hitachi, Ltd. | Arithmetic logic unit for floating point data and/or fixed point data |
| US4589067A (en) * | 1983-05-27 | 1986-05-13 | Analogic Corporation | Full floating point vector processor with dynamically configurable multifunction pipelined ALU |
| US4969118A (en) * | 1989-01-13 | 1990-11-06 | International Business Machines Corporation | Floating point unit for calculating A=XY+Z having simultaneous multiply and add |
| US5497343A (en) * | 1993-08-05 | 1996-03-05 | Hyundai Electronics America | Reducing the number of carry-look-ahead adder stages in high-speed arithmetic units, structure and method |
Non-Patent Citations (2)
| Title |
|---|
| Montoye et al; Microprocessors: An 18ns 56 Bit Multiply Add Circuit; Feb. 14, 1990; pp. 46 47, and 262. * |
| Montoye et al; Microprocessors: An 18ns 56-Bit Multiply-Add Circuit; Feb. 14, 1990; pp. 46-47, and 262. |
Cited By (19)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6317764B1 (en) * | 1996-12-17 | 2001-11-13 | Stmicroelectronics, Inc. | Apparatus for computing transcendental functions quickly |
| US6581079B2 (en) * | 1996-12-17 | 2003-06-17 | Stmicroelectronics, Inc. | Apparatus for computing transcendental functions quickly |
| US6363405B1 (en) | 1997-12-24 | 2002-03-26 | Elbrus International Limited | Computer system and method for parallel computations using table approximation methods |
| US6567831B1 (en) * | 1997-12-24 | 2003-05-20 | Elbrus International Limited | Computer system and method for parallel computations using table approximation |
| US6240433B1 (en) * | 1998-02-02 | 2001-05-29 | International Business Machines Corporation | High accuracy estimates of elementary functions |
| US6581085B1 (en) * | 1999-05-12 | 2003-06-17 | Ati International Srl | Approximation circuit and method |
| US20030217022A1 (en) * | 2002-05-16 | 2003-11-20 | Giampietro Tecchiolli | Electronic device to calculate and generate linear and non-linear functions |
| US7290020B2 (en) * | 2002-05-16 | 2007-10-30 | Neuricam Spa | Electronic device to calculate and generate linear and non-linear functions |
| US20070124357A1 (en) * | 2003-12-03 | 2007-05-31 | Marvell International Ltd. | Methods and apparatus fro performing calculations using reduced-width data |
| US7555508B2 (en) * | 2003-12-03 | 2009-06-30 | Marvell World Trade Ltd. | Methods and apparatus for performing calculations using reduced-width data |
| US20090265408A1 (en) * | 2003-12-03 | 2009-10-22 | Marvell World Trade Ltd. | Methods and apparatus for performing calculations using reduced-width data |
| US8275819B2 (en) | 2003-12-03 | 2012-09-25 | Marvell World Trade Ltd. | Methods and apparatus for performing calculations using reduced-width data |
| US20060224648A1 (en) * | 2005-03-30 | 2006-10-05 | Lockheed Martin Corporation | Method and apparatus for providing a base-2 logarithm approximation to a binary number |
| US7606850B2 (en) | 2005-03-30 | 2009-10-20 | Lockheed Martin Corporation | Method and apparatus for providing a base-2 logarithm approximation to a binary number |
| US20080005211A1 (en) * | 2006-06-26 | 2008-01-03 | Matula David W | Determining A Table Output Of A Table Representing A Hierarchical Tree For An Integer Valued Function |
| US7962537B2 (en) * | 2006-06-26 | 2011-06-14 | Southern Methodist University | Determining a table output of a table representing a hierarchical tree for an integer valued function |
| US20100332573A1 (en) * | 2009-06-30 | 2010-12-30 | Fujitsu Limited | Processing unit |
| US8533248B2 (en) * | 2009-06-30 | 2013-09-10 | Fujitsu Limited | Processing unit |
| US9875084B2 (en) | 2016-04-28 | 2018-01-23 | Vivante Corporation | Calculating trigonometric functions using a four input dot product circuit |
Also Published As
| Publication number | Publication date |
|---|---|
| US6317764B1 (en) | 2001-11-13 |
| EP0849664A3 (fr) | 1999-02-24 |
| US6581079B2 (en) | 2003-06-17 |
| DE69712720D1 (de) | 2002-06-27 |
| EP0849664A2 (fr) | 1998-06-24 |
| DE69712720T2 (de) | 2003-02-13 |
| JPH10214176A (ja) | 1998-08-11 |
| US20020087608A1 (en) | 2002-07-04 |
| EP0849664B1 (fr) | 2002-05-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5963460A (en) | Apparatus for computing transcendental functions quickly | |
| US5517438A (en) | Fast multiply-add instruction sequence in a pipeline floating-point processor | |
| US6647404B2 (en) | Double precision floating point multiplier having a 32-bit booth-encoded array multiplier | |
| US7395304B2 (en) | Method and apparatus for performing single-cycle addition or subtraction and comparison in redundant form arithmetic | |
| US4969118A (en) | Floating point unit for calculating A=XY+Z having simultaneous multiply and add | |
| US5619439A (en) | Shared hardware for multiply, divide, and square root exponent calculation | |
| US5880983A (en) | Floating point split multiply/add system which has infinite precision | |
| EP0351242B1 (fr) | Unités arithmétiques à virgule flottante | |
| US5220524A (en) | Machine method to perform newton iterations for reciprocals | |
| US5245564A (en) | Apparatus for multiplying operands | |
| US5206823A (en) | Apparatus to perform Newton iterations for reciprocal and reciprocal square root | |
| US4866652A (en) | Floating point unit using combined multiply and ALU functions | |
| JPH09507941A (ja) | multiply−add浮動小数点シーケンスにおけるウエイト・サイクルなしのブロック正規化 | |
| US4594680A (en) | Apparatus for performing quadratic convergence division in a large data processing system | |
| US5790444A (en) | Fast alignment unit for multiply-add floating point unit | |
| US4121298A (en) | Central processing unit for numbers represented in the system of residual classes | |
| US20050228844A1 (en) | Fast operand formatting for a high performance multiply-add floating point-unit | |
| US4761756A (en) | Signed multiplier with three port adder and automatic adjustment for signed operands | |
| US20020116431A1 (en) | System and method for improving the accuracy of reciprocal operations performed by a floating-point unit | |
| US5170371A (en) | Method and apparatus for rounding in high-speed multipliers | |
| US5206826A (en) | Floating-point division cell | |
| US6182105B1 (en) | Multiple-operand addition with intermediate saturation | |
| JPH0578049B2 (fr) | ||
| KR930005426B1 (ko) | 캐리/세이브 가산기 승산 유니트에서 감산 절차를 간편하게 하는 장치 및 방법 | |
| KR100265355B1 (ko) | 마이크로프로세서에서 2사이클 파이프라인방식으로 부동소수점 데이터를 곱셈 연산하는 장치 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: METAFLOW TECHNOLOGIES, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:RARICK, LEONARD;REEL/FRAME:008456/0762 Effective date: 19970408 |
|
| FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
| AS | Assignment |
Owner name: STMICROELECTRONICS, INC., TEXAS Free format text: MERGER;ASSIGNOR:METAFLOW TECHNOLOGIES INCORPORATED;REEL/FRAME:012036/0306 Effective date: 20010525 |
|
| FPAY | Fee payment |
Year of fee payment: 4 |
|
| REMI | Maintenance fee reminder mailed | ||
| FPAY | Fee payment |
Year of fee payment: 8 |
|
| FPAY | Fee payment |
Year of fee payment: 12 |