IP Library Granted Patent US 7,225,216
Granted Patent B1
US 7,225,216 · App. 10/192,391 · Granted May 29, 2007

Method and system for a floating point multiply-accumulator

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,225,216
App. No.
10/192,391
Granted
May 29, 2007
Kind
B1
Abstract

Aspects for performing a multiply-accumulate operation on floating point numbers in a single clock cycle are described. These aspects include mantissa logic for combining a mantissa portion of floating point inputs and exponent logic coupled to the mantissa logic. The exponent logic adjusts the combination of an exponent portion of the floating point inputs by a predetermined value to produce a shift amount and allows pipeline stages in the mantissa logic, wherein an unnormalized floating point result is produced from the mantissa logic on each clock cycle.

Claims (28)

1. A system for performing a multiply-accumulate operation on floating point numbers on each clock cycle, the system comprising:

mantissa logic for combining a mantissa portion of floating point inputs, the mantissa logic including at least one pipeline stage; and

exponent logic coupled to the mantissa logic for adjusting a combination of an exponent portion of the floating point inputs by a predetermined value to produce a shift amount, the predetermined value being fixed in contrast to the exponent portion of the floating point inputs,

wherein the mantissa logic produces an unnormalized floating point result on each clock cycle based on the shift amount produced by the exponent logic.

2. The system of claim 1 , wherein the mantissa logic further comprises a multiplier for multiplying the mantissa portion of the floating point inputs.

3. The system of claim 2 , wherein the multiplier comprises an align shifter for receiving the shift amount from the exponent logic and shifting a product of the mantissa portion of the floating point inputs.

4. The system of claim 3 , wherein the mantissa logic further comprises an accumulator coupled to the multiplier for adding the shifted product of the mantissa portion of the floating point inputs with an accumulated mantissa value to produce the unnormalized floating point result.

5. The system of claim 1 , wherein the exponent logic further comprises adder logic for adding the exponent portion of the floating point inputs and subtraction logic for reducing a sum of the exponent portion of the floating point inputs by the predetermined value.

6. The system of claim 5 , wherein the predetermined value is a value greater than a largest expected sum of the exponent portion of the floating point inputs.

7. A method for performing digital signal processing (DSP) involving a multiply-accumulate operation on floating point numbers on each clock cycle, the method comprising:

combining a mantissa portion of floating point inputs using mantissa logic, the mantissa logic including at least one pipeline stage;

adjusting a combination of an exponent portion of the floating point inputs by a predetermined value to produce a shift amount using exponent logic, the predetermined value being fixed in contrast to the exponent portion of the floating point inputs;

producing an unnormalized floating point result on each clock cycle based on the shift amount produced by the exponent logic using the mantissa logic; and

utilizing the unnormalized floating point result in a finite impulse response (FIR) filter algorithm.

8. The method of claim 7 , wherein combining the mantissa portion of the floating point inputs further comprises multiplying the mantissa portion of the floating point inputs using a multiplier in the mantissa logic.

9. The method of claim 8 , wherein combining the mantissa portion of the floating point inputs further comprises receiving the shift amount from the exponent logic and shifting a product of the mantissa portion of the floating point inputs using an align shifter in the multiplier.

10. The method of claim 9 , wherein producing the unnormalized floating point result further comprises adding the shifted product of the mantissa portion of the floating point inputs with an accumulated mantissa value to produce the unnormalized floating point result using an accumulator in the mantissa logic, the accumulator being coupled to the multiplier.

11. The method of claim 7 , wherein adjusting the combination of the exponent portion of the floating point inputs further comprises adding the exponent portion of the floating point inputs using adder logic in the exponent logic and reducing a sum of the exponent portion of the floating point inputs by the predetermined value using subtraction logic in the exponent logic.

12. The method of claim 11 , wherein the predetermined value is a value greater than a largest expected sum of the exponent portion of the floating point inputs.

13. A floating point multiply accumulator comprising:

a plurality of registers for storing exponent and mantissa portions of input floating point numbers;

a multiplier for receiving the mantissa portions of the input floating point numbers and for aligning the exponent mantissa portions of the input floating point numbers;

exponent logic coupled to the multiplier for adjusting a combination of the exponent portions of the input floating point numbers by a predetermined value to produce a shift amount, the predetermined value being fixed in contrast to the exponent portions of the input floating point numbers; and

an adder/accumulator coupled to the multiplier for receiving the aligned mantissa portions of the input floating point numbers from the multiplier,

wherein the adder/accumulator is wide enough to handle any unnormalized floating point result from the multiplier each clock cycle.

14. The floating point multiply accumulator of claim 13 , wherein the predetermined value is a value greater than a largest expected sum of the exponent portions of the input floating point numbers.

15. The floating point multiply accumulator of claim 14 , wherein the exponent logic further comprises adder logic for adding the exponent portions of the input floating point numbers stored-in the plurality of registers and subtractor logic for reducing a sum of the exponent portions of the input floating point numbers by the predetermined value to produce the shift amount.

16. The floating point multiply accumulator of claim 13 , further comprising at least one pipeline stage, the at least one pipeline stage being situated between the multiplier and the adder/accumulator.

Assignments (4)
CORRECTIVE ASSIGNMENT ON REEL 018711, FRAME 0567 Recorded Feb 15, 2007
From: QST HOLDINGS, LLC
To: NVIDIA CORPORATION
Reel/Frame 018923/0630 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 5, 2007
From: QST HOLDINGS, L.L.C.
To: NVIDIA CORPORATION
Reel/Frame 018711/0567 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 5, 2006
From: TECHFARM VENTURES MANAGEMENT, LLC
To: QST HOLDINGS, LLC
Reel/Frame 018224/0634 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 30, 2006
From: QUICKSILVER TECHNOLOGY, INC.
To: TECHFARM VENTURES MANAGEMENT, LLC
Reel/Frame 018194/0515 →