US 12,242,884 B2
Loop execution in a reconfigurable compute fabric
Douglas Vanesko, Dallas, TX (US); and Bryan Hornung, Plano, TX (US)
Assigned to Micron Technology, Inc., Boise, ID (US)
Filed by Micron Technology, Inc., Boise, ID (US)
Filed on Aug. 16, 2021, as Appl. No. 17/402,849.
Prior Publication US 2023/0055320 A1, Feb. 23, 2023
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 9/48 (2006.01); G06F 13/40 (2006.01); G06F 15/78 (2006.01)
CPC G06F 9/4843 (2013.01) [G06F 13/4027 (2013.01); G06F 15/7867 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A method, comprising:
sending, by a dispatch interface, a first asynchronous message to a first flow controller of a reconfigurable compute fabric, the first asynchronous message instructing the first flow controller to begin execution of a first-level loop at a first synchronous flow of the reconfigurable compute fabric and comprising an indication of a number of iterations of the first-level loop, the first synchronous flow comprising the first flow controller and a first number of compute elements of the reconfigurable compute fabric;
responsive to the first asynchronous message, executing a synchronous flow thread at the first synchronous flow, the executing of the synchronous flow thread at the first synchronous flow comprising:
sending, by the first synchronous flow, a second asynchronous message to a second flow controller of the reconfigurable compute fabric, the second asynchronous message instructing the second flow controller to execute a second-level loop at a second synchronous flow of the reconfigurable compute fabric and comprising an indication of a number of iterations of the second-level loop, the second synchronous flow comprising the second flow controller and a second number of compute elements of the reconfigurable compute fabric; and
sending, by the first synchronous flow, a third asynchronous message to a third flow controller of the reconfigurable compute fabric, the third asynchronous message instructing the third flow controller to execute a synchronous flow thread at a third synchronous flow of the reconfigurable compute fabric after receiving an indication that the second-level loop has completed, the third asynchronous message comprising a thread identifier of the synchronous flow thread at the first synchronous flow;
receiving, by the third flow controller, a fourth asynchronous message indicating that the second-level loop has completed;
responsive to the fourth asynchronous message, executing the synchronous flow thread at the third synchronous flow using the thread identifier of the synchronous flow thread at the first synchronous flow;
determining, by the first flow controller, that the number of iterations of the first-level loop have executed; and
in response to the determining, initiating, by the first flow controller, a memory write writing to a memory at least one of a result of the first-level loop or a result of the second-level loop.