IP Library Granted Patent US 9,053,292
Granted Patent B2
US 9,053,292 · App. 13/691,609 · Granted Jun 9, 2015

Processor executing super instruction matrix with register file configurable for single or multiple threads operations

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 9,053,292
App. No.
13/691,609
Granted
Jun 9, 2015
Kind
B2
Abstract

A processor has a register file configurable for different execution modes. In one mode the multiple register segments form a single register file where each register segment stores a Multiple Instructions Multiple Data (MIMD) super instruction matrix issuing four simultaneous instruction matrices where each individual instruction within each of the four simultaneous instruction matrices is a scalar or Single Instruction Multiple Data (SIMD). Another execution mode has the multiple register segments forming individual independent register tiles with individual register state to support simultaneous processing of separate threads, where each instruction matrix is associated with a separate thread and a separate register file segment. Another execution mode has the multiple register segments forming a single thread register file, where register segments are duplicated in multiple segments of the register file to store the results of simultaneously executed non-dependent instruction matrices that are dynamically issued from a single thread instruction sequence.

Claims (22)

1. A processor, comprising:

a matrix of execution units including a first row of execution units and a second row of execution units, wherein the first row of execution units operate in parallel and the second row of execution units operate in parallel and in dependency upon the first row of execution units;

a register file with multiple register segments to store instruction matrices results for subsequent processing by the matrix of execution units, wherein each instruction matrix of the instruction matrices includes a first row of instructions executed in parallel by a sub-set of execution units of the first row of execution units and a second row of instructions executed by a sub-set of execution units of the second row of execution units, wherein the register file is configurable for different execution modes, including:

the multiple register segments forming a single register file where each register segment stores the sources and results of a Multiple Instructions Multiple Data (MIMD) super instruction matrix issuing four simultaneous instruction matrices where each individual instruction within each of the four simultaneous instruction matrices is a scalar or Single Instruction Multiple Data (SIMD);

the multiple register segments forming individual independent register files with individual register state to support simultaneous processing of separate threads, wherein each instruction matrix is associated with a separate thread and a separate register file segment; and

the multiple register segments forming a single thread register file, wherein register segments are duplicated in multiple segments of the register file to store the results of simultaneously executed non-dependent instruction matrices that are dynamically issued from a single thread instruction sequence.

2. The processor of claim 1 wherein the instruction matrices are formed by a run time system.

3. The processor of claim 1 wherein the instruction matrices are formed by hardware.

4. The processor of claim 1 wherein the instruction matrices are formed by a compiler.

5. The processor of claim 1 configured to process instruction matrix numbers to identify matrix dependencies and enforce scoreboard dependence resolution between instruction matrices.

6. The processor of claim 1 configured to access multiple register segments of duplicate register files.

7. The processor of claim 1 configured to store instruction matrix results in different register segments of duplicate register files.

8. The processor of claim 1 configured to designate registers for instruction results and source operands of each instruction matrix as a group.

9. The processor of claim 1 configured to read instruction matrix operands using listed sources and destinations in fixed locations of each instruction matrix regardless of opcode.

10. The processor of claim 9 configured to determine dependency between instruction matrices based upon the listed sources and destinations regardless of opcode.

11. The processor of claim 1 wherein the matrix of execution units supports floating point, integer, Single Instruction Multiple Data (SIMD), and Multiple Instruction Multiple Data (MIMD) operations.

12. The processor of claim 1 wherein the register file has a hierarchy that supports parallel block writes without an increase in the number of ports by associating each execution block result with a matrix buffer storage entry.

13. The processor of claim 1 further comprising a scheduler that uses matrix numbers to track register references.

14. The processor of claim 13 wherein the location of a matrix result is communicated to a consuming matrix to identify the location of source registers of the consuming matrix among the multiple register segments.

15. The processor of claim 1 wherein subsets of execution units form execution blocks, each configured to perform a common set of operations.

16. The processor of claim 15 wherein each execution block has the same processing latency.

17. The processor of claim 15 wherein each execution block is a symmetric instantiation to a scheduler.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2016
From: SOFT MACHINES, INC.
To: INTEL CORPORATION
Reel/Frame 040631/0915 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2012
From: ABDALLAH, MOHAMMAD A.
To: SOFT MACHINES, INC.
Reel/Frame 029389/0113 →