IP Library › Granted Patent US 10,747,501
Granted Patent B2
US 10,747,501 · App. 16/118,099 · Granted Aug 18, 2020

Providing efficient floating-point operations using matrix processors in processor-based systems

Inventors: Mattheus Cornelis Antonius Adrianus Heddes (Woodinville, WA); Natarajan Vaidhyanathan (Carrboro, NC); Robert Dreyer (Menlo Park, CA); Colin Beaton Verrilli (Apex, NC); Koustav Bhattacharya (Austin, TX)
Assignee: Qualcomm Incorporated
G06F7/483G06F7/49936G06F7/5443G06F15/8092G06F15/7807
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 10,747,501
App. No.
16/118,099
Granted
Aug 18, 2020
Kind
B2
Abstract

Providing efficient floating-point operations using matrix processors in processor-based systems is disclosed. In this regard, a matrix-processor-based device provides a matrix processor comprising a positive partial sum accumulator and a negative partial sum accumulator. As the matrix processor processes pairs of floating-point operands, the matrix processor calculates an intermediate product based on a first floating-point operand and a second floating-point operand and determines a sign of the intermediate product. Based on the sign, the matrix processor normalizes the intermediate product with a partial sum fraction of the positive partial sum accumulator or the negative partial sum accumulator, then adds the intermediate product to the positive sum accumulator or the negative sum accumulator. After processing all pairs of floating-point operands, the matrix processor subtracts the negative partial sum accumulator from the positive partial sum accumulator to generate a final sum, then renormalizes the final sum a single time.

Claims (53)

1. A matrix-processor-based device comprising a matrix processor comprising an adder circuit coupled to a positive partial sum accumulator register and a negative partial sum accumulator register,

the matrix processor configured to:

for each pair of a first floating-point operand and a second floating-point operand of a plurality of pairs of floating-point operands:

determine a sign of an intermediate product of the first floating-point operand and the second floating-point operand, indicating whether the intermediate product is positive or negative; and

normalize the intermediate product with a partial sum fraction comprising a fraction of one of the positive partial sum accumulator register and the negative partial sum accumulator register based on the sign of the intermediate product;

the adder circuit configured to add the intermediate product to the partial sum fraction to generate a sum that is not normalized; and

the matrix processor further configured to:

store the sum in the one of the positive partial sum accumulator register and the negative partial sum accumulator register;

subtract a value of the negative partial sum accumulator register from a value of the positive partial sum accumulator register to generate a final sum; and

renormalize the final sum.

2. The matrix-processor-based device of claim 1 , wherein the matrix processor is further configured to multiply a first fraction of the first floating-point operand and a second fraction of the second floating-point operand to generate the intermediate product.

3. The matrix-processor-based device of claim 2 , wherein the matrix processor is configured to normalize the intermediate product with the partial sum fraction by being configured to perform a bitwise right-shift operation on the smaller of the intermediate product and the partial sum fraction.

4. The matrix-processor-based device of claim 1 , wherein the matrix processor is further configured to clock-gate one of the positive partial sum accumulator register and the negative partial sum accumulator register corresponding to the inverse of the sign of the intermediate product.

5. The matrix-processor-based device of claim 1 , wherein;

a fraction of the first floating-point operand and a fraction of the second floating-point operand each comprise 10 bits; and

the fraction of the positive partial sum accumulator register and the fraction of the negative partial sum accumulator register each comprise 31 bits.

6. The matrix-processor-based device of claim 1 , wherein:

an exponent of the first floating-point operand and an exponent of the second floating-point operand each comprise five (5) bits; and

an exponent of the positive partial sum accumulator register and an exponent of the negative partial sum accumulator register each comprise eight (8) bits.

7. The matrix-processor-based device of claim 1 integrated into an integrated circuit (IC).

8. The matrix-processor-based device of claim 1 integrated into a device selected from the group consisting of: a set top box; an entertainment unit; a navigation device; a communications device; a fixed location data unit; a mobile location data unit; a global positioning system (GPS) device; a mobile phone; a cellular phone; a smart phone; a session initiation protocol (SIP) phone; a tablet; a phablet; a server; a computer; a portable computer; a mobile computing device; a wearable computing device; a desktop computer; a personal digital assistant (PDA); a monitor; a computer monitor; a television; a tuner; a radio; a satellite radio; a music player; a digital music player; a portable music player; a digital video player; a video player; a digital video disc (DVD) player; a portable digital video player; an automobile; a vehicle component; avionics systems; a drone; and a multicopter.

9. A matrix-processor-based device, comprising:

a means for determining, for each pair of a first floating-point operand and a second floating-point operand of a plurality of pairs of floating-point operands, a sign of an intermediate product of the first floating-point operand and the second floating-point operand, indicating whether the intermediate product is positive or negative;

a means for normalizing the intermediate product with a partial sum fraction comprising a fraction of one of a positive partial sum accumulator register and a negative partial sum accumulator register based on the sign of the intermediate product;

a means for adding the intermediate product to the partial sum fraction to generate a sum that is not normalized, and storing the sum in the one of the positive partial sum accumulator register and the negative partial sum accumulator register, the means for adding coupled to the positive partial sum accumulator register and the negative partial sum accumulator register;

a means for subtracting a value of the negative partial sum accumulator register from a value of the positive partial sum accumulator register to generate a final sum; and

a means for renormalizing the final sum.

10. The matrix-processor-based device of claim 9 , further comprising a means for multiplying a first fraction of the first floating-point operand and a second fraction of the second floating-point operand to generate the intermediate product.

11. The matrix-processor-based device of claim 10 , wherein the means for normalizing the intermediate product with the partial sum fraction comprises a means for performing a bitwise right-shift operation on the smaller of the intermediate product and the partial sum fraction.

12. The matrix-processor-based device of claim 9 , further comprising a means for clock-gating one of the positive partial sum accumulator register and the negative partial sum accumulator register corresponding to the inverse of the sign of the intermediate product.

13. The matrix-processor-based device of claim 9 , wherein;

a fraction of the first floating-point operand and a fraction of the second floating-point operand each comprise 10 bits; and

the fraction of the positive partial sum accumulator register and the fraction of the negative partial sum accumulator register each comprise 31 bits.

14. The matrix-processor-based device of claim 9 , wherein:

an exponent of the first floating-point operand and an exponent of the second floating-point operand each comprise five (5) bits; and

an exponent of the positive partial sum accumulator register and an exponent of the negative partial sum accumulator register each comprise eight (8) bits.

15. A method for providing efficient floating-point operations, comprising:

for each pair of a first floating-point operand and a second floating-point operand of a plurality of pairs of floating-point operands:

determining, by a matrix processor of a matrix-processor-based device, a sign of an intermediate product of the first floating-point operand and the second floating-point operand, indicating whether the intermediate product is positive or negative;

normalizing the intermediate product with a partial sum fraction comprising a fraction of one of a positive partial sum accumulator register and a negative partial sum accumulator register based on the sign of the intermediate product;

adding, in an adder circuit coupled to the positive partial sum accumulator register and the negative partial sum accumulator register, the intermediate product to the partial sum factor to generate a sum that is not normalized; and

storing the sum in the one of the positive partial sum accumulator register and the negative partial sum accumulator register;

subtracting a value of the negative partial sum accumulator register from a value of the positive partial sum accumulator register to generate a final sum; and

renormalizing the final sum.

16. The method of claim 15 , further comprising multiplying, by the matrix processor, a first fraction of the first floating-point operand and a second fraction of the second floating-point operand to generate the intermediate product.

17. The method of claim 16 , wherein normalizing the intermediate product with the partial sum fraction comprises performing a bitwise right-shift operation on the smaller of the intermediate product and the partial sum fraction.

18. The method of claim 15 , further comprising clock-gating one of the positive partial sum accumulator register and the negative partial sum accumulator register corresponding to the inverse of the sign of the intermediate product.

19. The method of claim 15 , wherein;

a fraction of the first floating-point operand and a fraction of the second floating-point operand each comprise 10 bits; and

the fraction of the positive partial sum accumulator register and the fraction of the negative partial sum accumulator register each comprise 31 bits.

20. The method of claim 15 , wherein:

an exponent of the first floating-point operand and an exponent of the second floating-point operand each comprise five (5) bits; and

an exponent of the positive partial sum accumulator register and an exponent of the negative partial sum accumulator register each comprise eight (8) bits.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 2, 2019
From: HEDDES, MATTHEUS CORNELIS ANTONIUS ADRIANUS; VAIDHYANATHAN, NATARAJAN; DREYER, ROBERT; VERRILLI, COLIN BEATON; BHATTACHARYA, KOUSTAV
To: QUALCOMM INCORPORATED
Reel/Frame 048767/0028 →
Continuity (2)
Provisional Application 62552890 · Aug 31, 2017
Related Publication 20190065146A1 · Feb 28, 2019
Cited By (1)
US 12,197,533