IP Library Granted Patent US 10,698,853
Granted Patent B1
US 10,698,853 · App. 16/239,252 · Granted Jun 30, 2020

Virtualization of a reconfigurable data processor

Inventors: Gregory Frederick Grohoski (Bee Cave, TX); Sumti Jairath (Santa Clara, CA); Mark Luttrell (Cedar Park, TX); Raghu Prabhakar (Sunnyvale, CA); Ram Sivaramakrishnan (San Jose, CA); Manish K Shah (Austin, TX)
Assignee: SambaNova Systems, Inc.
G06F13/4027G06F9/45533G06F12/10G06F13/1668G06F15/7839G06F15/7882G06F2212/657
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 10,698,853
App. No.
16/239,252
Granted
Jun 30, 2020
Kind
B1
Abstract

A reconfigurable data processor comprises an array of configurable units and a bus system configurable to define virtual machines. The system can partition the array of configurable units into a plurality of sets of configurable units, and block communications via the bus system between configurable units within a particular set and configurable units outside the particular set. A memory access controller can be connected to the bus system, configurable to confine access to memory outside the array of configurable units originating from within the particular set to memory space allocated to the particular.

Claims (40)

1. A reconfigurable data processor, comprising:

an array of configurable units on one die or multichip module;

a bus system connected to the array of configurable units, configurable to partition the array of configurable units into a plurality of sets of configurable units, and block communications via the bus system between configurable units within a particular set and configurable units outside the particular set; and

a memory access controller connected to the bus system and configurable to confine access to memory outside the array of configurable units originating from within the particular set to memory space allocated to the particular set in the memory outside the array of configurable units.

2. The processor of claim 1 , including a plurality of memory access controllers, including the first mentioned memory access controller, memory access controllers in the plurality of memory access controllers being addressable nodes on the bus system, and the memory access controllers are configurable to confine access to memory outside the array of configurable units originating from within corresponding sets of configurable units in the plurality of sets of configurable units to memory space in the memory outside the array of configurable units allocated to the corresponding sets.

3. The processor of claim 1 , wherein sets of configurable units in the plurality of sets of configurable units are configurable to execute application graphs using virtual addresses, and the memory access controller includes or has access to a configurable table to translate virtual addresses in requests originating from an application graph executing within the particular set, to addresses in the memory space allocated to the particular set.

4. The processor of claim 1 , wherein the bus system comprises a grid of switches connected to configurable units in the array of configurable units, switches in the grid including circuits to partition the bus system.

5. The processor of claim 1 , wherein the bus system comprises a grid of switches connected to configurable units in the array of configurable units, switches in the grid including circuits configurable using port parameters, that enable and disable ports on the switches according to the port parameters.

6. The processor of claim 1 , wherein the bus system includes a top level network and an array level network,

the top level network connected to an external data interface for communication with memory outside of the array,

the array level network connected to configurable units in the array of configurable units, and wherein the memory access controller is connected to the array level network and to the top level network, and includes logic to route data transfers between the top level network and the array level network.

7. The processor of claim 6 , wherein the array level network comprises a grid of switches, and the switches in the grid, the configurable units in the array of configurable units and the memory access controller are addressable nodes on the array level network.

8. The processor of claim 6 , including a plurality of memory access controllers, including said first mentioned memory access controller, memory access controllers in the plurality of memory access controllers being addressable nodes in the array level network.

9. The processor of claim 8 , wherein the array level network comprises a grid of switches, and the switches in the grid, the configurable units in the array of configurable units and the memory access controllers in the plurality of memory access controllers are addressable nodes on the array level network.

10. The processor of claim 1 , wherein the array of configurable units includes a plurality of tiles of configurable units, and the bus system comprises switches on boundaries between the tiles including circuits to partition the bus system on the tile boundaries.

11. The processor of claim 10 , including a plurality of memory access controllers, including said first mentioned memory access controller, at least one memory access controller in the plurality of memory access controllers being operatively coupled to each tile in the plurality of tiles.

12. The processor of claim 1 , including

a configuration controller connected to the bus system, including logic to execute a configuration load process, including distributing configuration files to configurable units in individual sets of the configurable units in the array, wherein an application graph in one of the sets of configurable units is executable during the configuration load process in another set of configurable units.

13. The processor of claim 1 , including

a configuration controller connected to the bus system, including logic to execute a configuration unload process, including unloading state information from configurable units in individual sets, wherein an application graph in one of the sets of configurable units is executable during the configuration unload process in another set of configurable units.

14. A reconfigurable data processor, comprising:

an array of configurable units including a plurality of tiles of configurable units on one die or a multichip module;

a bus system connected to the array of configurable units, comprising boundary switches on tile boundaries between the tiles including circuits to configurable partition the bus system on the tile boundaries, and block communications via the bus system between configurable units within a particular tile and configurable units outside the particular tile; and

a plurality of memory access controllers connected to the bus system, memory access controllers in the plurality of memory access controllers being configurable to confine access to memory outside the array of configurable units originating from within corresponding tiles to memory space allocated to the corresponding tile in the memory outside the array of configurable units, and wherein at least one memory access controller in the plurality of memory access controllers is operatively coupled to each tile in the plurality of tiles.

15. The processor of claim 14 , wherein the bus system includes a top level network and an array level network,

the top level network connected to an external data interface for communication with memory outside of the array,

the array level network connected to configurable units in the array of configurable units, and wherein the memory access controllers in the plurality of memory access controllers are connected to the array level network and to the top level network, and include logic to route data transfers between the top level network and the array level network.

16. The processor of claim 15 , wherein the array level network comprises a grid of switches including said boundary switches, and the switches in the grid, the configurable units in the array of configurable units and the memory access controllers are addressable nodes on the array level network.

17. The processor of claim 14 , including a configuration controller connected to the bus system, including

logic to execute a configuration load process, including distributing configuration files to configurable units in individual sets of the configurable units in the array, wherein an application graph in one of the sets of configurable units is executable during the configuration load process in another set of configurable units; and

logic to execute a configuration unload process, including unloading state information from configurable units in individual sets, wherein an application graph in one of the sets of configurable units is executable during the configuration unload process in another set of configurable units.

18. A method for configuring a reconfigurable data processor, comprising an array of configurable units and a bus system connected to the array of configurable units on one die or multichip module; comprising

partitioning the array of configurable units on the die or multichip module into a plurality of sets of configurable units, by blocking communications via the bus system between configurable units within a particular set and configurable units outside the particular set; and

confining access to memory outside the array of configurable units originating from within the particular set to memory space allocated to the particular set in the memory outside the array of configurable units.

19. The method of claim 18 , including partitioning the array of configurable units by loading configuration data in switches on boundaries of the sets of configurable units to block communications across the boundaries.

20. The method of claim 18 , wherein sets of configurable units in the plurality of sets of configurable units are configurable to execute application graphs using virtual addresses, including confining access to memory outside the array by translating virtual addresses in requests originating from an application graph executing within the particular set, to addresses in the memory space allocated to the particular set.

21. The method of claim 18 , including:

loading application graphs in respective sets of configurable units, and starting the loaded application graphs; and

stopping and unloading a selected application graph in one of the sets of configurable units, and loading another application graph in said one of the sets, while other application graphs in other sets of configurable units in the array of configurable units continue executing.

22. The method of claim 21 , wherein the selected application graph includes a checkpoint, and stopping the selected application graph includes waiting until it reaches the checkpoint.

Assignments (2)
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Apr 18, 2025
From: SAMBANOVA SYSTEMS, INC.
To: SILICON VALLEY BANK, A DIVISION OF FIRST-CITIZENS BANK & TRUST COMPANY, AS AGENT
Reel/Frame 070892/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2019
From: GROHOSKI, GREGORY FREDERICK; JAIRATH, SUMTI; LUTTRELL, MARK; PRABHAKAR, RAGHU; SIVARAMAKRISHNAN, RAM; SHAH, MANISH K.
To: SAMBANOVA SYSTEMS, INC.
Reel/Frame 048053/0211 →
Cited By (23)
US 12,189,570 US 12,206,579 US 12,210,857 US 12,242,403 US 12,271,333 US 12,306,783 US 12,306,788 US 12,314,754 US 12,333,270 US 12,346,729 US 12,399,860 US 12,413,530 US 12,443,471 US 12,461,889 US 12,505,066 US 12,536,123 US 12,561,230 US 12,602,349 US 12,619,370 US 12,681,806 US 12,681,894 US 12,688,148 US 12,705,205