US 11,734,224 B2
Overlay layer hardware unit for network of processor cores
Ivan Matosevic, Toronto (CA); Davor Capalija, Toronto (CA); Jasmina Vasiljevic, Toronto (CA); Utku Aydonat, Toronto (CA); S. Alexander Chin, Toronto (CA); Djordje Maksimovic, Toronto (CA); and Ljubisa Bajic, Toronto (CA)
Assigned to Tenstorrent Inc., Toronto (CA)
Filed by Tenstorrent Inc., Toronto (CA)
Filed on Sep. 28, 2020, as Appl. No. 17/35,046.
Prior Publication US 2022/0100503 A1, Mar. 31, 2022
Int. Cl. G06F 15/78 (2006.01); G06F 15/82 (2006.01); G06F 15/173 (2006.01); G06F 9/30 (2018.01)
CPC G06F 15/7871 (2013.01) [G06F 15/173 (2013.01); G06F 15/7825 (2013.01); G06F 15/825 (2013.01); G06F 9/3004 (2013.01)] 31 Claims
OG exemplary drawing
 
1. A method for executing an application data flow graph on a set of computational nodes, wherein each computational node in the set of computational nodes includes: (i) at least one programmable controller from a set of programmable controllers; (ii) at least one memory from a set of memories; (iii) at least one network interface unit from a set of network interface units; and (iv) at least one endpoint from a set of endpoints, and wherein the method comprises:
configuring the programmable controllers to implement a set of state machines, using a computation layer of the set of computational nodes, with instructions that describe a state flow of the state machines in the set of state machines, wherein the programmable controllers are part of a network overlay layer of the set of computational nodes;
independently and asynchronously, to the computation layer, executing the instructions using the set of programmable controllers in response to a set of events exchanged: (i) between the programmable controllers themselves; (ii) between the programmable controllers and the network interface units; and (iii) between the programmable controllers and the set of endpoints; and
transitioning data between memories on different computational nodes in the set of memories on the computational nodes through a network layer of the set of computational nodes: (i) in accordance with the application data flow graph; and (ii) in response to the execution of the instructions.