← Back to Patent Explorer
US5222037A Expired / Lapsed US ⏱️ 0.0 years remaining

Floating-point processor for performing an arithmetic operation on fixed-point part data with high speed rounding of a result

Assignee: Panasonic Holdings Corp
•
Filing: 1991-08-20
•
Granted: 1993-06-22
•
Expires: 2011-08-20
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A floating-point processor includes a carry saving adder-subtracter for generating carry data and sum data by performing addition and subtraction of a first fixed-point part having a greater exponent part and a second fixed-point part, which is aligned with the first fixed-point part by being shifted right, having a smaller exponent part according to preferably predetermined conditions. The processor also includes a rounding-carry generating circuit for generating, from a rounding-mode signal and low-order digits of the fixed-point parts, a first rounding-carry, of which the value in case of rounding the result of addition or subtraction between the fixed-point parts to a higher order digit is in agreement with that in case of rounding the result of addition or subtraction therebetween to a lower order digit, and for generating a second rounding-carry in each of the cases of rounding the result of addition or subtraction therebetween. The processor further includes an adder-subtracter for outputting a first result of addition or subtraction between data obtained by adding the first rounding-carry to the least significant digit of the carry data and the sum data and for outputting a second result of adding 1 to or subtracting 1 from the first result and an invention circuit for outputting a logical inversion of all digits of the second result and a selection circuit for selecting one of the first and second results and an output of the inversion circuit.

Inventors

  • 👤 Takashi Taniquchi

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-09 16:38
CPC Classifications
G; G06; G06F; G06F7/00; G06F7/38; G06F7/48; G06F7/483; G06F7/485; G06F7/499; G06F7/49905; G06F7/4991; G06F7/49942; G06F7/49947; G06F7/49957

Claims Analysis

Total Claims: 16
Claim 1
Independent Claim 449 words
A floating-point processor for performing addition and subtraction of two floating-point numbers, said floating-point processor comprising: a carry saving adder-subtracter for generating carry data and sum data by performing addition and subtraction of a first fixed-point part of the floating-point number having a greater exponent part and a second fixed-point part, which is aligned with the first fixed-point part by being shifted right, of the other floating-point number having a smaller exponent part according to following equations: (i) in case where an addition is performed, a.sub.i +b.sub.i =2c.sub.i +s.sub.i ; (ii) in case where a subtraction is performed and the carry data is positive, a.sub.i +b.sub.i =2c.sub.i -s.sub.i ; (iii) in case where a subtraction is performed and the carry data is negative, a.sub.i -b.sub.i =-2c.sub.i +s.sub.i ; where i is an integer greater than zero; a i denotes a value held at an ith digit of the first fixed-point part; b i denotes a value held at an ith digit of the second fixed-point part; c i denotes a value held at an ith digit of the carry data; and s i denotes a value held at an ith digit of the sum data; a rounding-carry generating circuit for generating a first rounding-carry, of which the value in case of rounding a result of addition or subtraction between the first and second fixed-point parts to a higher order digit is in agreement with the value in case of rounding the result of addition or subtraction between the first and second fixed-point parts to a lower order digit, from a rounding-mode signal indicating the direction in which a result of addition or subtraction between the first and second fixed-point parts is rounded, and low-order digits of the first and second fixed-point parts and for generating a second rounding-carry in each of the cases of rounding the result of addition or subtraction between the first and second fixed-point parts to a higher order digit and or rounding the result of addition or subtraction between the first and second fixed-point parts to a lower order digit; an adder-subtracter for outputting a first result of addition or subtraction between data, which is obtained by adding the first rounding-carry to the least significant digit of the carry data, and the sum data and for outputting a second result of adding 1 to or subtracting 1 from the first result; an inversion circuit for outputting a logical inversion of all digits of the second result; and a selection circuit for selecting and outputting one of the first result, the second result and an output of the inversion circuit on the basis of high-order digits of the first and second results and the second rounding-carry.
Claim 2
Dependent Claim 449 words
A floating-point processor for performing addition and subtraction of two floating-point numbers, said floating-point processor comprising: a carry saving adder-subtracter for generating carry data and sum data by performing addition and subtraction of a first fixed-point part of the floating-point number having a greater exponent part and a second fixed-point part, which is aligned with the first fixed-point part by being shifted right, of the other floating-point number having a smaller exponent part according to following equations: (i) in case where an addition is performed, a.sub.i +b.sub.i =2c.sub.i +s.sub.i ; (ii) in case where a subtraction is performed and the carry data is positive, a.sub.i +b.sub.i =2c.sub.i -s.sub.i ; (iii) in case where a subtraction is performed and the carry data is negative, a.sub.i -b.sub.i =-2c.sub.i +s.sub.i ; where i is an integer greater than zero; a i denotes a value held at an ith digit of the first fixed-point part; b i denotes a value held at an ith digit of the second fixed-point part; c i denotes a value held at an ith digit of the carry data; and s i denotes a value held at an ith digit of the sum data; a rounding-carry generating circuit for generating a first rounding-carry, of which the value in case of rounding a result of addition or subtraction between the first and second fixed-point parts to a higher order digit is in agreement with the value in case of rounding the result of addition or subtraction between the first and second fixed-point parts to a lower order digit, from a rounding-mode signal indicating the direction in which a result of addition or subtraction between the first and second fixed-point parts is rounded, and low-order digits of the first and second fixed-point parts and for generating a second rounding-carry in each of the cases of rounding the result of addition or subtraction between the first and second fixed-point parts to a higher order digit and or rounding the result of addition or subtraction between the first and second fixed-point parts to a lower order digit; an adder-subtracter for outputting a first result of addition or subtraction between data, which is obtained by adding the first rounding-carry to the least significant digit of the carry data, and the sum data and for outputting a second result of adding 1 to or subtracting 1 from the first result; an inversion circuit for outputting a logical inversion of all digits of the second result; and a selection circuit for selecting and outputting one of the first result, the second result and an output of the inversion circuit on the basis of high-order digits of the first and second results and the second rounding-carry.
Claim 3
Dependent Claim 51 words
The floating-point processor as set forth in claim 1, wherein the rounding-carry generating circuit generates the first rounding-carry in such a manner not to depend on the value held at a sticky digit and the second rounding-carry in such a manner to depend on the value held at the sticky digit.
Claim 4
Dependent Claim 87 words
The floating-point processor as set forth in claim 1, wherein the alignment of the first and second fixed-point part data is effected in case of performing an addition such that the least significant digit position of the first fixed-point part becomes a guard digit position, and wherein the alignment of the first and second fixed-point part data is effected in case of performing a subtraction such that the least significant digit position of the first fixed-point part becomes higher than the guard digit position by one digit.
Claim 5
Dependent Claim 269 words
A floating-point processor for performing an arithmetic operation on two floating-point numbers, said floating-point processor comprising: a carry save adder for generating carry data and sum data by performing a carry-saving addition of n highest-digits (n is the number of significant digits of fixed-point parts of the floating point numbers) of two pieces of data; a rounding-carry generating circuit for generating a first rounding-carry, of which the value in case of rounding a result of the arithmetic operation between the fixed-point parts to a higher order digit is in agreement with the value in case of rounding the result of the operation between the fixed-point parts to a lower order digit, from a rounding-mode signal indicating the direction in which a result of an operation between the fixed-point parts is rounded, and low-order digits of each of the two pieces of data other than (n-1) highest-order digits thereof and for generating a second rounding-carry in each of the cases of rounding the result of the operation between the fixed-point parts to a higher order digit and of rounding the result of the operation between the fixed-point parts to a lower order digit; an adder for outputting a first result of an addition between data, which is obtained by adding the first rounding-carry to the least significant digit of the carry data, and the sum data and for outputting a second result of adding 1 to the first result; and a selection circuit for selecting and outputting one of the first and second results on the basis of high-order digits of the first and second results and the second rounding-carry.
Claim 6
Dependent Claim 269 words
A floating-point processor for performing an arithmetic operation on two floating-point numbers, said floating-point processor comprising: a carry save adder for generating carry data and sum data by performing a carry-saving addition of n highest-digits (n is the number of significant digits of fixed-point parts of the floating point numbers) of two pieces of data; a rounding-carry generating circuit for generating a first rounding-carry, of which the value in case of rounding a result of the arithmetic operation between the fixed-point parts to a higher order digit is in agreement with the value in case of rounding the result of the operation between the fixed-point parts to a lower order digit, from a rounding-mode signal indicating the direction in which a result of an operation between the fixed-point parts is rounded, and low-order digits of each of the two pieces of data other than (n-1) highest-order digits thereof and for generating a second rounding-carry in each of the cases of rounding the result of the operation between the fixed-point parts to a higher order digit and of rounding the result of the operation between the fixed-point parts to a lower order digit; an adder for outputting a first result of an addition between data, which is obtained by adding the first rounding-carry to the least significant digit of the carry data, and the sum data and for outputting a second result of adding 1 to the first result; and a selection circuit for selecting and outputting one of the first and second results on the basis of high-order digits of the first and second results and the second rounding-carry.
Claim 7
Dependent Claim 51 words
The floating-point processor as set forth in claim 4, wherein the rounding-carry generating circuit generates the first rounding-carry in such a manner not to depend on the value held at a sticky digit and the second rounding-carry in such a manner to depend on the value held at the sticky digit.
Claim 8
Dependent Claim 270 words
A floating-point processor for performing an arithmetic operation on two floating-point numbers, said floating-point processor comprising: a carry save subtracter for generating carry data and sum data by performing a carry-saving subtraction between n highest-digits (n is the number of significant digits of fixed-point parts of the floating point numbers) and two pieces of data; a rounding-carry generating circuit for generating a first rounding-carry, of which the value in case of rounding a result of the arithmetic operation between the fixed-point parts to a higher order digit is in agreement with the value in case of rounding the result of the arithmetic operation between the fixed-point parts to a lower order digit, from a rounding-mode signal indicating the direction in which a result of an operation between the fixed-point parts is rounded, and low-order digits of each of the two pieces of data other than (n-1) highest-order digits thereof and for generating a second rounding-carry in each of the cases of rounding the result of the operation between the fixed-point parts to a higher order digit and of rounding the result of the operation between the fixed-point parts to a lower order digit; a subtracter for outputting a first result of a subtraction between data, which is obtained by adding the first rounding-carry to the least significant digit of the carry data, and the sum data and for outputting a second result of subtracting 1 from the first result; and a selection circuit for selecting and outputting one of the first and second results on the basis of high-order digits of the first and second results and the second rounding-carry.
Claim 9
Dependent Claim 270 words
A floating-point processor for performing an arithmetic operation on two floating-point numbers, said floating-point processor comprising: a carry save subtracter for generating carry data and sum data by performing a carry-saving subtraction between n highest-digits (n is the number of significant digits of fixed-point parts of the floating point numbers) and two pieces of data; a rounding-carry generating circuit for generating a first rounding-carry, of which the value in case of rounding a result of the arithmetic operation between the fixed-point parts to a higher order digit is in agreement with the value in case of rounding the result of the arithmetic operation between the fixed-point parts to a lower order digit, from a rounding-mode signal indicating the direction in which a result of an operation between the fixed-point parts is rounded, and low-order digits of each of the two pieces of data other than (n-1) highest-order digits thereof and for generating a second rounding-carry in each of the cases of rounding the result of the operation between the fixed-point parts to a higher order digit and of rounding the result of the operation between the fixed-point parts to a lower order digit; a subtracter for outputting a first result of a subtraction between data, which is obtained by adding the first rounding-carry to the least significant digit of the carry data, and the sum data and for outputting a second result of subtracting 1 from the first result; and a selection circuit for selecting and outputting one of the first and second results on the basis of high-order digits of the first and second results and the second rounding-carry.
Claim 10
Dependent Claim 51 words
The floating-point processor as set forth in claim 6, wherein the rounding-carry generating circuit generates the first rounding-carry in such a manner not to depend on the value held at a sticky digit and the second rounding-carry in such a manner to depend on the value held at the sticky digit.
Claim 11
Dependent Claim 362 words
A floating-point processor having a fixed-point part multiplier for performing a multiplication of two floating-point numbers by calculating partial products, said floating-point processor comprising: a carry save adder for generating carry data and sum data by performing a carry-saving addition of n highest-digits (n is the number of significant digits of fixed-point parts of the floating point numbers) of two partial products finally obtained by the fixed-point part multiplier according to a following equation: a.sub.i +b.sub.i =2c.sub.i +s.sub.i where a i denotes a value held at an ith digit of a first fixed-point part; b i a value held at an ith digit of a second fixed-point part; c i a value held at an ith digit of the carry data; and s i a value held at an ith digit of the sum data; a rounding-carry generating circuit for generating a first rounding-carry, of which the value in case of rounding a result of the multiplication between the first and second fixed-point parts to a higher order digit is in agreement with the value in case of rounding the result of the multiplication between the first and second fixed-point parts to a lower order digit, from a rounding-mode signal indicating the direction in which a result of a multiplication between the first and second fixed-point parts is rounded, and low-order digits of each of the two partial products other than (n-1) highest-order digits thereof and for generating a second rounding-carry in each of the cases of rounding the result of the multiplication between the first and second fixed-point parts to a higher order digit and of rounding the result of the multiplication between the first and second fixed-point parts to a lower order digit; an adder for outputting a first result of an addition between data, which is obtained by adding the first rounding-carry to the least significant digit of the carry data, and the sum data and for inputting as second result of adding 1 to the first result; and a selection circuit for selecting and outputting ones of the first and second results on the basis of high-order digits of the first and second results and the second rounding-carry.
Claim 12
Dependent Claim 362 words
A floating-point processor having a fixed-point part multiplier for performing a multiplication of two floating-point numbers by calculating partial products, said floating-point processor comprising: a carry save adder for generating carry data and sum data by performing a carry-saving addition of n highest-digits (n is the number of significant digits of fixed-point parts of the floating point numbers) of two partial products finally obtained by the fixed-point part multiplier according to a following equation: a.sub.i +b.sub.i =2c.sub.i +s.sub.i where a i denotes a value held at an ith digit of a first fixed-point part; b i a value held at an ith digit of a second fixed-point part; c i a value held at an ith digit of the carry data; and s i a value held at an ith digit of the sum data; a rounding-carry generating circuit for generating a first rounding-carry, of which the value in case of rounding a result of the multiplication between the first and second fixed-point parts to a higher order digit is in agreement with the value in case of rounding the result of the multiplication between the first and second fixed-point parts to a lower order digit, from a rounding-mode signal indicating the direction in which a result of a multiplication between the first and second fixed-point parts is rounded, and low-order digits of each of the two partial products other than (n-1) highest-order digits thereof and for generating a second rounding-carry in each of the cases of rounding the result of the multiplication between the first and second fixed-point parts to a higher order digit and of rounding the result of the multiplication between the first and second fixed-point parts to a lower order digit; an adder for outputting a first result of an addition between data, which is obtained by adding the first rounding-carry to the least significant digit of the carry data, and the sum data and for inputting as second result of adding 1 to the first result; and a selection circuit for selecting and outputting ones of the first and second results on the basis of high-order digits of the first and second results and the second rounding-carry.
Claim 13
Dependent Claim 51 words
The floating-point processor as set forth in claim 8, wherein the rounding-carry generating circuit generates the first rounding-carry in such a manner not to depend on the value held at a sticky digit and the second rounding-carry in such a manner to depend on the value held at the sticky digit.
Claim 14
Dependent Claim 373 words
A floating-point processor havinga redundant binary fixed-point part multiplier for performing a multiplication of two floating-point numbers, said floating-point processor comprising: a carry save subtracter for generating carry data and sum data by performing a subtraction between n-highest-digits (n is the number of significant digits of fixed-point parts of the floating point numbers) of first and second fixed-point parts of partial product data finally obtained by the redundant binary fixed-point part multiplier according to following equations: (i) in case where the carry data is positive, a.sub.i +b.sub.i =2c.sub.i -s.sub.i ; (ii) in case where the carry data is negative, a.sub.i -b.sub.i =-2c.sub.i +s.sub.i ; where a i denotes a value held at an ith digit of the first fixed-point part; b i a value held at an ith digit of the second fixed-point part; c i a value held at an ith digit of the carry data; and s i a value held at an ith digit of the sum data; a rounding-carry generating circuit for generating a first rounding-carry, of which the value in case of rounding a redundant binary result of the multiplication between the first and second fixed-point parts to a higher order digit is in agreement with the value in case of rounding the redundant binary result of the multiplication to a lower order digit, from a rounding-mode signal indicating the direction in which a result of a multiplication between the first and second fixed-point parts is rounded, and low-order digits of the redundant binary result other than (n-1) highest-order digits thereof and for generating a second rounding-carry in each of the cases of rounding the redundant binary result of the multiplication to a higher order digit and or rounding the redundant binary result of the multiplication to a lower order digit; a subtracter for outputting a first result of a subtraction between data, which is obtained by adding the first rounding-carry to the least significant digit of the carry data, and the sum data and for outputting a second result of subtracting 1 from the first result; and a selection circuit for selecting and outputting one of the first and second results on the basis of high-order digits of the first and second results and the second rounding-carry.
Claim 15
Dependent Claim 373 words
A floating-point processor havinga redundant binary fixed-point part multiplier for performing a multiplication of two floating-point numbers, said floating-point processor comprising: a carry save subtracter for generating carry data and sum data by performing a subtraction between n-highest-digits (n is the number of significant digits of fixed-point parts of the floating point numbers) of first and second fixed-point parts of partial product data finally obtained by the redundant binary fixed-point part multiplier according to following equations: (i) in case where the carry data is positive, a.sub.i +b.sub.i =2c.sub.i -s.sub.i ; (ii) in case where the carry data is negative, a.sub.i -b.sub.i =-2c.sub.i +s.sub.i ; where a i denotes a value held at an ith digit of the first fixed-point part; b i a value held at an ith digit of the second fixed-point part; c i a value held at an ith digit of the carry data; and s i a value held at an ith digit of the sum data; a rounding-carry generating circuit for generating a first rounding-carry, of which the value in case of rounding a redundant binary result of the multiplication between the first and second fixed-point parts to a higher order digit is in agreement with the value in case of rounding the redundant binary result of the multiplication to a lower order digit, from a rounding-mode signal indicating the direction in which a result of a multiplication between the first and second fixed-point parts is rounded, and low-order digits of the redundant binary result other than (n-1) highest-order digits thereof and for generating a second rounding-carry in each of the cases of rounding the redundant binary result of the multiplication to a higher order digit and or rounding the redundant binary result of the multiplication to a lower order digit; a subtracter for outputting a first result of a subtraction between data, which is obtained by adding the first rounding-carry to the least significant digit of the carry data, and the sum data and for outputting a second result of subtracting 1 from the first result; and a selection circuit for selecting and outputting one of the first and second results on the basis of high-order digits of the first and second results and the second rounding-carry.
Claim 16
Dependent Claim 51 words
The floating-point processor as set forth in claim 10, wherein the rounding-carry generating circuit generates the first rounding-carry in such a manner not to depend on the value held at a sticky digit and the second rounding-carry in such a manner to depend on the value held at the sticky digit.

References Cited (Backward Citations)

USRE33629E Cited
US4562553A Cited
US4839846A Cited
US5038313A Cited
US5027308A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1996-06-21 1996-12-21 1997-06-22 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2000-06-21 2000-12-21 2001-06-22 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2004-06-21 2004-12-21 2005-06-22 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag