IP Library Granted Patent US 11,366,664
Granted Patent B1
US 11,366,664 · App. 16/706,753 · Granted Jun 21, 2022

Single instruction multiple data (simd) execution with variable width registers

Inventors: Kamaraj Thangam (Hyderabad, IN); Srinivasulu Nagisetty (Hyderabad, IN); Venkata Divya Bharathi Palaparthy (Hyderabad, IN); Aswathy Asok (Hyderabad, IN); Satyaki Koneru (Folsom, CA)
Assignee: Blaize, Inc.
G06F9/3012G06F9/3802G06F9/3836G06F9/3851G06F9/4843
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,366,664
App. No.
16/706,753
Granted
Jun 21, 2022
Kind
B1
Abstract

Systems, apparatuses and methods are disclosed for efficient management of registers in a graph stream processing (GSP) system. The GSP system includes a thread scheduler module operative to initiate a Single Instruction Multiple Data (SIMD) thread, the SIMD thread including a dispatch mask with an initial value. A thread arbiter module operative to select an instruction from the instructions and provide the instruction to each of one or more compute resources, and an instruction iterator module, associated with the each of one or more compute resources operative to determine a data type of the instruction. The instruction iterator module iteratively executes the instruction based on the data type and the dispatch mask.

Claims (37)

1. A method comprising:

initiating a Single Instruction Multiple Data (SIMD) thread by a thread scheduler, wherein the SIMD thread includes a dispatch mask with an initial value;

fetching instructions, by one or more processors, from a memory;

providing, by a thread arbiter module, an instruction of the instructions to each of one or more compute resources;

determining, by an instruction iterator associated with the each of one or more compute resources a data type of the instruction, wherein the instruction operates on a logical register, wherein a size of the logical register is independent of the data type;

and

iteratively executing, by the instruction iterator, the instruction based on the data type and the dispatch mask;

wherein the one or more processors map the logical register to a plurality of physical registers by introducing a sub-register number;

wherein the plurality of physical registers are mapped to the logical register simultaneously at a given instance of time.

2. The method of claim 1 , further determining by the instruction iterator based on the data type and a dispatch mask width of the dispatch mask, a number of clock phases for the iteratively execution of the instruction.

3. The method of claim 1 , further comprising a register file, the register file including a Content Addressable Memory (CAM) and a plurality of memory banks, wherein the CAM maps a logical address to a physical address of the plurality of memory banks.

4. The method of claim 3 , further comprising, determining a number of memory locations in the register file based on the data type and a SIMD width, by the instruction iterator for the iterative execution of the instruction.

5. The method of claim 3 , wherein the CAM stores a SIMD thread ID associated with the SIMD thread, a register number and a sub-register number, wherein the register number indicates which of the plurality of memory banks, and the sub-register number indicates a memory location in the plurality of memory banks.

6. The method of claim 5 , wherein the iterative execution further comprises, selecting the memory location by the instruction iterator based on the data type.

7. The method of claim 6 , the selecting the memory location further comprises: comparing the SIMD thread ID and the register number in all locations in the CAM; and providing a matched returned sub-register number to select the memory location in the plurality of memory banks, based on the comparing of the SIMD thread ID and the register number.

8. The method of claim 1 , wherein the dispatch mask indicates which data channels of a plurality of data channels are enabled and/or indicates which data channels of the plurality of data channels are disabled.

9. The method of claim 8 , wherein the instruction iterator processes data from a subset of the data channels of the plurality of data channels during iterative execution of instructions for the SIMD thread.

10. A system operative to manage logical registers in a Graph Streaming Processor (GSP) system, comprising:

a thread scheduler module operative to initiate a SIMD thread, the SIMD thread including a dispatch mask with an initial value;

an instruction fetch module to fetch instructions from a memory;

a thread arbiter module operative to select an instruction from the instructions and provide the instruction to each of one or more compute resources; and

an instruction iterator module, associated with the each of one or more compute resources operative to determine a data type of the instruction; and

wherein the instruction operates on a logical register, where in a size of the logical register is independent of the data type;

wherein the instruction iterator module iteratively executes the instruction based on the data type and the dispatch mask;

wherein the one or more processors map the logical register to a plurality of physical registers by introducing a sub-register number;

wherein the plurality of physical registers are mapped to the logical register simultaneously at a given instance of time.

11. The system of claim 10 , the instruction fetch module initiates the instruction fetch from the memory via an instruction cache.

12. The system of claim 11 , further comprising an instruction storage to store a first portion of the instruction when a second portion of the instruction is being fetched.

13. The system of claim 10 , wherein the dispatch mask indicates which data channels of a plurality of data channels are enabled and/or indicates which data channels of the plurality of data channels are disabled.

14. The system of claim 13 , wherein the instruction iterator processes data from a subset of the data channels of the plurality of data channels during iterative execution of instructions for the SIMD thread.

15. The system of claim 10 , further comprising a register file to store variable data.

16. The system of claim 15 , the register file further comprises a Content Addressable Memory (CAM) and a plurality of memory banks, wherein the CAM maps a logical address to a physical address of the plurality of memory banks.

17. The system of claim 16 , wherein the CAM stores a SIMD thread ID associated with the SIMD thread, a register number and a sub-register number, wherein the register number indicates the address of the plurality memory banks and the sub-register number indicates a memory location in the plurality of memory banks.

18. The system of claim 17 , wherein the instruction iterator module selects the memory location based on the data type.

19. The system of claim 17 , the instruction iterator compares the SIMD thread ID and the register number in all locations in the CAM; and

returns the sub-register number of a matched SIMD thread ID and the register number to the instruction iterator;

selects the memory location that matches the sub-register number.

Assignments (4)
RELEASE OF SECURITY INTEREST IN INTELLECTUAL PROPERTY COLLATERAL AT REEL/FRAME NO. 064274/0743 Recorded Aug 16, 2024
From: BESS VENTURES AND ADVISORY, LLC
To: BLAIZE, INC.
Reel/Frame 068672/0220 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Oct 23, 2023
From: BLAIZE, INC.
To: BESS VENTURES AND ADVISORY, LLC; BURTECH LP LLC; FRANKLIN TEMPLETON VARIABLE INSURANCE PRODUCTS TRUST - FRANKLIN SMALL-MID CAP GROWTH VIP FUND; FRANKLIN STRATEGIC SERIES - FRANKLIN SMALL-MID CAP GROWTH FUND
Reel/Frame 065317/0902 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jul 14, 2023
From: BLAIZE, INC.
To: BESS VENTURES AND ADVISORY, LLC
Reel/Frame 064274/0743 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 19, 2020
From: THANGAM, KAMARAJ; NAGISETTY, SRINIVASULA; PALAPARYTH, VENKATA DIVYA BHARATHI; ASOK, ASWATHY; KONERU, SATYAKI
To: BLAIZE, INC.
Reel/Frame 051551/0823 →