IP Library Granted Patent US 11,740,903
Granted Patent B2
US 11,740,903 · App. 16/396,680 · Granted Aug 29, 2023

Computing machine using a matrix space and matrix pointer registers for matrix and array processing

Inventor: Sitaram Yadavalli (San Jose, CA)
G06F9/30101G06F9/3001G06F9/30007G06F9/30032G06F9/30036G06F9/30043G06F9/30149G06F9/30167G06F9/30185G06F9/34G06F9/345
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 11,740,903
App. No.
16/396,680
Granted
Aug 29, 2023
Kind
B2
Abstract

This disclosure relates to methods and mechanisms for matrix computing which include machine embodiments with one or more matrix storage spaces for holding matrices and arrays for computing, where a matrix or an array is accessible by its columns, by its rows, or both, individually, or concurrently. A set of methods and mechanisms to build a large capacity instruction set with multi-length instructions to load, store, and compute with these matrices and arrays are also disclosed. Methods and access control mechanisms with keys to secure, share, lock and unlock regions in the storage space for matrices and arrays under the control of an operating system or a virtual machine hypervisor by permitted threads and processes are also disclosed. Methods and mechanisms to handle long immediate operands for use by shorter instructions using a payload instruction are also disclosed. The structure of the instructions with key instruction fields and a method for determining instruction length are also disclosed.

Claims (23)

1. A computing system comprising:

a memory controlled by a memory controller;

a matrix space to store at least one array, the matrix space coupled to a control unit that comprises a logic circuit to configure and control matrix operations, wherein the matrix space is accessed by rows and/or by columns, and wherein the matrix space is separate from the memory, and wherein an individual element included in the at least one array is concurrently accessible by a row of the at least one array containing the individual element, and also by a column of the at least one array containing the individual element, independent of other elements;

at least one matrix instruction that references the at least one array in the matrix space; and

a matrix pointer register configured to store an origin of the at least one array in the matrix space, a size of the at least one array in the matrix space, and a type of the at least one array in the matrix space, wherein the at least one matrix instruction comprises an operand that is an index of the matrix pointer register, and wherein the type of the at least one array identifies a type of elements in the at least one array in the matrix space, wherein the type is one of: pointer to a memory location, half precision floating point number, single precision floating point number, double precision floating point number, string, ordered quad of integers, ordered quad of floating point numbers, ordered triad of integers, ordered triad of floating point numbers, ordered pairs of integers, ordered pairs of floating point numbers, ordered quad of bytes, ordered quad of nibbles, ordered triad of bytes, ordered triad of nibbles, ordered pairs of bytes, and ordered pairs of nibbles, and

wherein the at least one matrix instruction is configured to operate on string elements of the at least one array when the type is string.

2. The computing system of claim 1 , wherein the at least one array is configured in the matrix space on a semiconductor chip having at least one matrix pointer register.

3. The computing system of claim 1 , further comprising:

one or more load matrix instructions; and

one or more store matrix instructions.

4. The computing system of claim 1 , further comprising at least one vector instruction configured to operate upon at least one vector entity, wherein the at least one vector entity comprises at least one of, scalars, or packed and ordered groups of values, or strings.

5. The computing system of claim 1 , wherein the origin of the at least one array comprises a row number and a column number.

6. The computing system of claim 1 , wherein the size of the at least one array is defined by a first number of rows in the at least one array, and a second number of columns in the at least one array.

7. The computing system of claim 1 , wherein the at least one matrix instruction is configured to access the row of the at least one array or the column of the at least one array or a diagonal of the at least one array.

8. The computing system of claim 1 , wherein the at least one matrix instruction is configured to transpose the at least one array.

9. The computing system of claim 1 , wherein the at least one matrix instruction is configured to count elements of the row of the at least one array, reorder the elements of the row of the at least one array, or sum the elements of the row of the at least one array.

10. The computing system of claim 1 , wherein the at least one matrix instruction is configured to count elements of the column of the at least one array, reorder the elements of the column of the at least one array, or sum the elements of the column of the at least one array.

11. The computing system of claim 1 , wherein the at least one matrix instruction is configured to read one or more diagonals of the at least one array in the matrix space, wherein all elements of the one or more diagonals are accessed simultaneously.

12. The computing system of claim 1 further comprising:

at least one row port, coupled to the matrix space, that is configured to access the row of the at least one array in the matrix space; and

at least one column port, coupled to the matrix space, that is configured to access the column of the at least one array in the matrix space, wherein the at least one row port comprises a first circuit and the at least one column port comprises a second circuit, and wherein the row of the at least one array and the column of the at least one array are oriented perpendicularly.

13. The computing system of claim 12 further comprising at least one execution unit coupled to the matrix space via the at least one row port or via the at least one column port, wherein the at least one execution unit is configured to use at least a portion of the at least one array in a computation.

14. The computing system of claim 12 , wherein the at least one matrix instruction is configured to simultaneously access at least a portion of the row of the at least one array at the at least one row port and at least a portion of the column of the at least one array at the at least one column port.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 26, 2026
From: YADAVALLI, SITARAM, DR.
To: ONNIVATION LLC
Reel/Frame 075401/0645 →
Continuity (3)
Continuation In Part 15488494 · Apr 16, 2017
Provisional Application 62327949 · Apr 26, 2016
Related Publication 20190250915A1 · Aug 15, 2019
Cited By (2)
US 12,197,914 US 12,417,098