IP Library › Granted Patent US 10,095,516
Granted Patent B2
US 10,095,516 · App. 13/538,523 · Granted Oct 9, 2018

Vector multiplication with accumulation in large register space

Inventors: Shay Gueron (Haifa, IL); Vlad Krasnov (Nesher, IL); Robert Valentine (Kiryat Tivon, IL); Zeev Sperber (Zichron Yackov, IL); Amit Gradstein (Binyamina, IL); Simon Rubanovich (Haifa, IL)
Assignee: INTEL CORPORATION
G06F9/3001G06F7/52G06F9/30018G06F9/30036
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,095,516
App. No.
13/538,523
Granted
Oct 9, 2018
Kind
B2
Abstract

An apparatus is described having an instruction execution pipeline that has a vector functional unit to support a vector multiply add instruction. The vector multiply add instruction to multiply respective K bit elements of two vectors and accumulate a portion of each of their respective products with another respective input operand in an X bit accumulator, where X is greater than K.

Claims (25)

1. An apparatus comprising:

a decoder to decode a single vector multiply add instruction into a decoded single vector multiply add instruction; and

an instruction execution pipeline having a vector functional unit to execute the decoded single vector multiply add instruction to multiply respective K bit elements of two vectors and accumulate a portion of each of their respective products with another respective input operand in an X bit accumulator, wherein X is greater than K to store any carry, and the portion is a first portion when a field of the single vector multiply add instruction is a first value and the portion is a non-overlapping second portion when the field is a second value.

2. The apparatus of claim 1 where X and K are specified in an instruction format of the single vector multiply add instruction.

3. The apparatus of claim 1 wherein said vector functional unit includes respective multiplier instances to multiply said respective K bit elements, each of said multiplier instances being substantially the same as an integer floating point multiplier within another execution unit of said instruction execution pipeline.

4. The apparatus of claim 1 wherein said respective input operand is provided by said X bit accumulator.

5. The apparatus of claim 1 where K=52 and X=64.

6. The apparatus of claim 1 wherein X is a nominal bit width of vector elements processed by said instruction execution pipeline.

7. The apparatus of claim 6 wherein said instruction execution pipeline is coupled to vector registers that provide for vectors composed of X bit elements.

8. The apparatus of claim 7 wherein said accumulator is implemented with one of said vector registers.

9. The apparatus of claim 1 wherein said first portion is an upper half.

10. The apparatus of claim 9 wherein said second non-overlapping portion is a lower half.

11. An apparatus comprising:

a decoder to decode a single vector multiply add instruction into a decoded single vector multiply add instruction; and

an instruction execution pipeline having a vector functional unit to execute the decoded single vector multiply add instruction to multiply respective K bit elements of two vectors and accumulate a portion of each of their respective products with another respective input operand in an X bit accumulator, wherein X is greater than K, and the portion is a first portion when a field of the single vector multiply add instruction is a first value and the portion is a non-overlapping second portion when the field is a second value.

12. The apparatus of claim 11 where X and K are specified in an instruction format of the single vector multiply add instruction.

13. The apparatus of claim 11 wherein said vector functional unit includes respective multiplier instances to multiply said respective K bit elements, each of said multiplier instances being substantially the same as an integer floating point multiplier within another execution unit of said instruction execution pipeline.

14. The apparatus of claim 11 wherein said respective input operand is provided by said X bit accumulator.

15. The apparatus of claim 11 where K=52 and X=64.

16. The apparatus of claim 11 wherein X is a nominal bit width of vector elements processed by said instruction execution pipeline.

17. The apparatus of claim 16 wherein said instruction execution pipeline is coupled to vector registers that provide for vectors composed of X bit elements.

18. The apparatus of claim 17 wherein said accumulator is implemented with one of said vector registers.

19. The apparatus of claim 11 wherein no carry logic circuit is implemented in the execution of the decoded single vector multiply add instruction.

20. The apparatus of claim 11 wherein said first portion is an upper half.

21. The apparatus of claim 20 wherein said non-overlapping second portion is a lower half.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 4, 2013
From: GUERON, SHAY; KRASNOV, VLAD; VALENTINE, ROBERT; SPERBER, ZEEV; GRADSTEIN, AMIT; RUBANOVICH, SIMON
To: INTEL CORPORATION
Reel/Frame 029569/0932 →
Continuity (1)
Related Publication 20140006755A1 · Jan 2, 2014