IP Library Granted Patent US 11,861,366
Granted Patent B2
US 11,861,366 · App. 17/399,801 · Granted Jan 2, 2024

Efficient processing of nested loops for computing device with multiple configurable processing elements using multiple spoke counts

Inventors: Douglas Vanesko (Dallas, TX); Tony M. Brewer (Plano, TX)
Assignee: Micron Technology, Inc.
G06F9/325G06F9/3867
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,861,366
App. No.
17/399,801
Granted
Jan 2, 2024
Kind
B2
Abstract

Disclosed in some examples, are methods, systems, devices, and machine-readable mediums which provide for more efficient CGRA execution by assigning different initiation intervals to different PEs executing a same code base. The initiation intervals may be a multiple of each other and the PE with the lowest initiation interval may be used to execute instructions of the code that is to be executed at a greater frequency than other instructions than other instructions that may be assigned to PEs with higher initiation intervals.

Claims (34)

1. A method comprising:

identifying a nested loop in a set of instructions;

determining a first value of a first initiation interval of a first processing element of a set of interconnected processing elements and a second value of a second initiation interval of a second processing element of the set of interconnected processing elements based upon a number of instructions in an inner loop and outer loop of the nested loop and a number of processing elements in the set of interconnected processing elements, the second value a multiple of the first value, the first and second initiation intervals specifying a number of consecutive instructions allowed within a processing pipeline of each respective processing element;

configuring the first initiation interval of the first processing element to the first value and the second initiation interval of the second processing element to the second value;

assigning instructions of an inner loop of the nested loop to the first processing element and instructions of an outer loop of the nested loop to the second processing element; and

causing execution of the set of instructions by the first and second processing elements.

2. The method of claim 1 , wherein at least one same instruction of the inner loop is assigned to at least two instruction slots of the first processing element.

3. The method of claim 2 , wherein the at least two instruction slots are selected based upon an instruction slot of a preceding instruction in the nested loop and the multiple of the second value over the first value.

4. The method of claim 1 , wherein the set of interconnected processing elements is a coarse grained reconfigurable array (CGRA) of a compute-near-memory system.

5. The method of claim 1 , wherein causing execution of the set of instructions by the first and second processing elements comprises encoding an indication of the first and second initiation intervals and the assignment of instructions into machine code representing the set of instructions or into metadata included along with the machine code.

6. The method of claim 1 , wherein causing execution of the set of instructions by the first and second processing elements comprises, by a dispatch interface, configuring the first and second processing elements, loading the set of instructions according to the instruction assignments, and initiating execution of the set of instructions.

7. A device comprising:

a processor;

a memory, the memory storing instructions, which when executed by the processor, causes the device to perform operations comprising:

identifying a nested loop in a set of instructions;

determining a first value of a first initiation interval of a first processing element of a set of interconnected processing elements and a second value of a second initiation interval of a second processing element of the set of interconnected processing elements based upon a number of instructions in an inner loop and outer loop of the nested loop and a number of processing elements in the set of interconnected processing elements, the second value a multiple of the first value, the first and second initiation intervals specifying a number of consecutive instructions allowed within a processing pipeline of each respective processing element;

configuring the first initiation interval of the first processing element to the first value and the second initiation interval of the second processing element to the second value;

assigning instructions of an inner loop of the nested loop to the first processing element and instructions of an outer loop of the nested loop to the second processing element; and

causing execution of the set of instructions by the first and second processing elements.

8. The device of claim 7 , wherein at least one same instruction of the inner loop is assigned to at least two instruction slots of the first processing element.

9. The device of claim 8 , wherein the at least two instruction slots are selected based upon an instruction slot of a preceding instruction in the nested loop and the multiple of the second value over the first value.

10. The device of claim 7 , wherein the set of interconnected processing elements is a coarse grained reconfigurable array (CGRA) of a compute-near-memory system.

11. The device of claim 7 , wherein the operations of causing execution of the set of instructions by the first and second processing elements comprises encoding an indication of the first and second initiation intervals and the assignment of the set of instructions into machine code representing the set of instructions or into metadata included along with the machine code.

12. The device of claim 7 , wherein the processor implements a dispatch interface and wherein the operations of causing execution of the set of instructions by the first and second processing elements comprises configuring the first and second processing elements, loading the set of instructions according to the instruction assignments, and initiating execution of the set of instructions.

13. A non-transitory machine-readable medium, storing instructions, which when executed cause a processor to perform operations comprising:

identifying a nested loop in a set of instructions;

determining a first value of a first initiation interval of a first processing element of a set of interconnected processing elements and a second value of a second initiation interval of a second processing element of the set of interconnected processing elements based upon a number of instructions in an inner loop and outer loop of the nested loop and a number of processing elements in the set of interconnected processing elements, the second value a multiple of the first value, the first and second initiation intervals specifying a number of consecutive instructions allowed within a processing pipeline of each respective processing element;

configuring the first initiation interval of the first processing element to the first value and the second initiation interval of the second processing element to the second value;

assigning instructions of an inner loop of the nested loop to the first processing element and instructions of an outer loop of the nested loop to the second processing element; and

causing execution of the set of instructions by the first and second processing elements.

14. The non-transitory machine-readable medium of claim 13 , wherein at least one same instruction of the inner loop is assigned to at least two instruction slots of the first processing element.

15. The non-transitory machine-readable medium of claim 14 , wherein the at least two instruction slots are selected based upon an instruction slot of a preceding instruction in the nested loop and the multiple of the second value over the first value.

16. The non-transitory machine-readable medium of claim 13 , wherein the set of interconnected processing elements is a coarse grained reconfigurable array (CGRA) of a compute-near-memory system.

17. The non-transitory machine-readable medium of claim 13 , wherein causing execution of the set of instructions by the first and second processing elements comprises encoding an indication of the first and second initiation intervals and the assignment of instructions into machine code representing the set of instructions or into metadata included along with the machine code.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 24, 2021
From: VANESKO, DOUGLAS; BREWER, TONY M
To: MICRON TECHNOLOGY, INC.
Reel/Frame 058207/0687 →
Continuity (1)
Related Publication 20230051544A1 · Feb 16, 2023