IP Library Granted Patent US 12,056,506
Granted Patent B2
US 12,056,506 · App. 18/082,542 · Granted Aug 6, 2024

Access to intermediate values in a dataflow computation

Inventors: Joshua Brot (Palo Alto, CA); Raghu Prabhakar (San Jose, CA); Subhra Mazumdar (Palo Alto, CA); James Decker (Palo Alto, CA); Tram Tran (Palo Alto, CA)
Assignee: SambaNova Systems, Inc.
G06F9/44505G06F9/3004G06F9/4411
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 12,056,506
App. No.
18/082,542
Granted
Aug 6, 2024
Kind
B2
Abstract

In a Coarse-Grained Reconfigurable Architecture (CGRA) system, two configuration files are used. The CGRA system has an array of configurable units that includes a plurality of switches, a print configurable unit, a source configurable unit, and one or more sink configurable units, The first configuration file, upon being executed by the CGRA system, configures the CGRA system to send output data directly from the source configurable unit to the one or more sink configurable units through the plurality of switches. The second configuration file, upon being executed into the CGRA system, configures the CGRA system to send the output data from the source configurable unit to the print configurable unit through the plurality of switches, send the output data from the print configurable unit to both a memory that is accessible by a host computing unit, and the one or more sink configurable units.

Claims (45)

1. An article of manufacture comprising a non-transitory storage medium having at least one configuration file stored thereon, the at least one configuration file comprising a first portion and a second portion;

the first portion of the at least one configuration file, upon being executed by a Coarse-Grained Reconfigurable Architecture (CGRA) system including an array of configurable units comprising a plurality of switches, a print configurable unit, a source configurable unit, and one or more sink configurable units, configures the CGRA system to send output data directly from the source configurable unit to the one or more sink configurable units through the plurality of switches; and

the second portion of the at least one configuration file, upon being executed by the CGRA system, configures the CGRA system to:

send the output data from the source configurable unit to the print configurable unit through the plurality of switches;

send the output data from the print configurable unit to a memory that is accessible by a host computing unit coupled to the CGRA system; and

send the output data from the print configurable unit to the one or more sink configurable units through the plurality of switches.

2. The article of manufacture as claimed in claim 1 , wherein the second portion of the at least one configuration file, upon being loaded into the CGRA system, further configures the CGRA system to wait to receive an indication that the host computing unit has retrieved the output data from the memory before sending the output data from the print configurable unit to the one or more sink configurable units.

3. The article of manufacture as claimed in claim 1 , wherein both the first portion of the at least one configuration file and the second portion of the at least one configuration file, upon being respectively executed by the CGRA system, each further configure the CGRA system to:

perform a first function in the source configurable unit to generate the output data; and

perform a second set of functions in the one or more sink configurable units using the output data.

4. The article of manufacture as claimed in claim 1 , wherein the second portion of the at least one configuration file, upon being loaded into the CGRA system, further configures the CGRA system to:

cause the source configurable unit to wait to receive an indication that the output data has been received by the one or more sink configurable units before sending additional output data to the print configurable unit.

5. The article of manufacture as claimed in claim 1 , wherein the first portion of the at least one configuration file is included in a first configuration file, and the second portion of the at least one configuration file is included in a second configuration file.

6. The article of manufacture as claimed in claim 1 , wherein the first portion of the at least one configuration file and the second portion of the at least one configuration file are both included in a single configuration file.

7. The article of manufacture as claimed in claim 1 , wherein the first portion of the at least one configuration file and the second portion of the at least one configuration file are configured to be simultaneously stored in configuration data stores in configurable units of the array of configurable units.

8. A computer-implemented method comprising:

obtaining at least one configuration file for Coarse-Grained Reconfigurable Architecture (CGRA) system including an array of configurable units comprising a plurality of switches, a print configurable unit, a source configurable unit, and one or more sink configurable units, the at least one configuration file including a first portion and a second portion;

setting a configuration of the CGRA system to a first configuration using the first portion of the at least one configuration file;

sending output data directly from the source configurable unit to the one or more sink configurable units through the plurality of switches while the CGRA system is set to the first configuration;

setting the configuration of the CGRA system to a second configuration using the second portion of the at least one configuration file; and

while the CGRA system is set to the second configuration:

sending the output data from the source configurable unit to the print configurable unit through the plurality of switches;

sending the output data from the print configurable unit to a memory that is accessible by a host computing unit coupled to the CGRA system; and

sending the output data from the print configurable unit to the one or more sink configurable units through the plurality of switches.

9. The method of claim 8 , further comprising:

waiting to receive an indication that the host computing unit has retrieved the output data from the memory before sending the output data from the print configurable unit to the one or more sink configurable units, while the CGRA system is set to the second configuration.

10. The method of claim 8 , further comprising:

performing a first function in the source configurable unit to generate the output data; and

performing a second set of functions in the one or more sink configurable units using the output data;

wherein both the first function and the second set of functions are performed while CGRA system is set to either the first configuration or the second configuration.

11. The method of claim 8 , further comprising:

causing the source configurable unit to wait to receive an indication that the output data has been received by the one or more sink configurable units before sending additional output data to the print configurable unit, while the CGRA system is set to the second configuration.

12. The method of claim 8 , wherein the first portion of the at least one configuration file is included in a first configuration file, and the second portion of the at least one configuration file is included in a second configuration file.

13. The method of claim 8 , wherein the first portion of the at least one configuration file and the second portion of the at least one configuration file are both included in a single configuration file.

14. The method of claim 8 , wherein the first portion of the at least one configuration file and the second portion of the at least one configuration file are simultaneously stored in configuration data stores in configurable units of the array of configurable units.

15. The method of claim 14 , further comprising switching contexts in the CGRA system to change the configuration of the CGRA system between the first configuration and the second configuration.

16. A computer system comprising:

a Coarse-Grained Reconfigurable Architecture (CGRA) system including an array of configurable units comprising a plurality of switches, a source configurable unit, a print configurable unit, and one or more sink configurable units, the source configurable unit including a first configuration data store to configure operation of the source configurable unit and the print configurable unit including a second configuration data store to configure operation of the print configurable unit; and

at least one configuration file including a first bit file, a second bit file, and a third bit file, the first bit file, while stored in the first configuration data store and configuring the source configurable unit, causes the source configurable unit to send output data directly from the source configurable unit to the one or more sink configurable units through the plurality of switches, the second bit file, while stored in the first configuration data store and configuring the source configurable unit, causes the source configurable unit to send the output data from the source configurable unit to the print configurable unit through the plurality of switches, and the third bit file, while stored in the second configuration data store and configuring the print configurable unit, causes the print configurable unit to:

send the output data from the print configurable unit to a memory that is accessible by a host computing unit coupled to the CGRA system; and

send the output data from the print configurable unit to the one or more sink configurable units through the plurality of switches.

17. The computer system of claim 16 , the third bit file, while stored in the second configuration data store and configuring the print configurable unit, further causes the print configurable unit to wait to receive an indication that the host computing unit has retrieved the output data from the memory before sending the output data from the print configurable unit to the one or more sink configurable units.

18. The computer system of claim 16 , the second bit file, while stored in the first configuration data store and configuring the source configurable unit, further causes the source configurable unit to wait to receive an indication that the output data has been received by the one or more sink configurable units before sending additional output data to the print configurable unit.

19. The computer system of claim 16 , wherein the first bit file and the second bit file are simultaneously stored in the first configuration data store.

20. The computer system of claim 19 , further comprising a selection signal in the source configurable unit, under control of a host computer, to select whether the first bit file or the second bit file is configuring the source configurable unit.

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 26, 2023
From: BROT, JOSHUA; PRABHAKAR, RAGHU; MAZUMDAR, SUBHRA; DECKER, JAMES; TRAN, TRAM
To: SAMBANOVA SYSTEMS, INC.
Reel/Frame 062498/0976 →
Continuity (2)
Provisional Application 63292241 · Dec 21, 2021
Related Publication 20230195478A1 · Jun 22, 2023