IP Library › Granted Patent US 10,922,267
Granted Patent B2
US 10,922,267 · App. 14/718,432 · Granted Feb 16, 2021

Vector processor to operate on variable length vectors using graphics processing instructions

Inventors: Mayan Moudgill (Chappaqua, NY); Gary J. Nacer (Morris Plains, NJ); C. John Glossner (Nashua, NH); Arthur Joseph Hoane (Yonkers, NY); Vitaly Kalashnikov (Norwalk, CT); Sitij Agrawal (Irvington, NJ)
Assignee: Optimum Semiconductor Technologies Inc.
G06F15/8053G06F9/3001G06F9/30021G06F9/30036G06F9/30101G06F9/30109G06F9/30112G06F9/30141G06F9/30149G06F9/3836G06F9/3855G06F15/7828G06F15/7839G06F15/8076G06F17/142
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,922,267
App. No.
14/718,432
Granted
Feb 16, 2021
Kind
B2
Abstract

A computer processor is disclosed. The computer processor may comprise a vector unit comprising a vector register file comprising at least one register to hold a varying number of elements. The computer processor may further comprise processing logic configured to operate on the varying number of elements in the vector register file using one or more graphics processing instructions. The computer processor may be implemented as a monolithic integrated circuit.

Claims (19)

1. A processor, comprising: a vector register file comprising at least one vector register to hold a varying number of elements; a vector length register file comprising a first vector length register; and a processing logic, communicatively coupled to the vector register file and the vector length register file, to execute a graphics processing instruction as a single instruction to perform one or more operations on the varying number of elements, the graphics processing instruction comprising: a first identifier representing the at least one vector register, and a second identifier representing the first vector length register storing a number N of operations to be performed on the varying number of elements, wherein the number N of operations is independent from a number M of elements that the at least one vector register packed therein, and wherein the number N of operations stored in the first vector length register is larger than a number of elements that each of the at least one vector register is able to hold in a hardware implementation.

2. The processor of claim 1 , wherein the processor is implemented as a monolithic integrated circuit.

3. The processor of claim 1 , wherein the graphics processing instruction is vector and matrix arithmetic.

4. The processor of claim 3 , wherein the vector and matrix arithmetic comprises a matrix vector multiplication.

5. The processor of claim 4 , wherein the graphics processing instruction reads a first vector register and a second vector register of the vector register file, elements of a first vector register comprising a matrix and elements of the second vector register comprising a sequence of vectors, wherein the graphics processing instruction multiplies the matrix with each of a number N of vectors of the sequence of vectors to produce an output sequence of vectors that are stored in a third vector register.

6. The processor of claim 3 , wherein the vector and matrix arithmetic comprises a matrix multiplication.

7. The processor of claim 6 , wherein the graphics processing instruction reads a first vector register and a second vector register of the vector register file, elements of the first vector register comprising a first sequence of matrices, and elements of the second vector register comprising a second sequence of matrices of an identical size to the first sequence of matrices, wherein each of a number N of matrices in the first sequence of matrices is multiplied with a corresponding matrix in the second sequence of matrices to produce a third sequence of matrices that are stored in the vector register file.

8. A method comprising:

holding, by a vector register file comprising at least one vector register of a processor, a varying number of elements;

holding, by a first vector length register of a vector length register file, a number of elements; and

executing, by a processing logic of the processor, a graphics processing instruction to perform one or more operations on the varying number of elements, the graphics processing instruction comprising:

a first identifier representing the at least one vector register, and

a second identifier representing the first vector length register storing a number N of operations to be performed on the varying number of elements, wherein the number N of operations is independent from a number M of elements that the at least one vector register packed therein, and wherein the number N of operations stored in the first vector length register is larger than a number of elements that each of the at least one vector register is able to hold in a hardware implementation.

9. The method of claim 8 , further comprising implementing the processor as a monolithic integrated circuit.

10. The method of claim 8 , wherein the graphics processing instruction is vector and matrix arithmetic.

11. The method of claim 10 , wherein the vector and matrix arithmetic comprises a matrix vector multiplication.

12. The method of claim 11 , wherein the graphics processing instruction reads a first vector register and a second vector register of the vector register file, elements of a first vector register comprising a matrix and elements of the second vector register comprising a sequence of vectors, wherein the graphics processing instruction multiplies the matrix with each of a number N of vectors of the sequence of vectors to produce an output sequence of vectors that are stored in a third vector register.

13. The method of claim 10 , wherein the vector and matrix arithmetic comprises a matrix multiplication.

14. The method of claim 10 , wherein the graphics processing instruction reads a first vector register and a second vector register of the vector register file, elements of the first vector register comprising a first sequence of matrices, and elements of the second vector register comprising a second sequence of matrices of an identical size to the first sequence of matrices, wherein each of a number N of matrices in the first sequence of matrices is multiplied with a corresponding matrix in the second sequence of matrices to produce a third sequence of matrices that are stored in the vector register file.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 2, 2015
From: MOUDGILL, MAYAN; NACER, GARY J.; GLOSSNER, C. JOHN; HOANE, ARTHUR J.; AGRAWAL, SITIJ; KALASHNIKOV, VITALY
To: OPTIMUM SEMICONDUCTOR TECHNOLOGIES, INC.
Reel/Frame 036478/0186 →
Continuity (2)
Provisional Application 62110840 · Feb 2, 2015
Related Publication 20160224510A1 · Aug 4, 2016