IP Library Granted Patent US 12,287,702
Granted Patent B2
US 12,287,702 · App. 18/105,777 · Granted Apr 29, 2025

Fault management in a reconfigurable dataflow architecture

Inventors: Raghunath Shenbagam (San Jose, CA); Ranen Chatterjee (Palo Alto, CA); Anand Misra (Palo Alto, CA); Jim Lewis (Palo Alto, CA); Benjamin Glick (Palo Alto, CA); Pushkar Nandkar (Palo Alto, CA); Sruthi Veeragandham (Palo Alto, CA)
Assignee: SambaNova Systems, Inc.
G06F11/0793G06F11/0721G06F11/0769
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,287,702
App. No.
18/105,777
Granted
Apr 29, 2025
Kind
B2
Abstract

A fault management system (FMS) receives events indicating an issue with a component in the system and determines, based on an inventory database, the component associated with the events. The FMS creates, based at least in part on the events, an error report that includes: (i) an error type identifying a type of error described in the error report, (ii) a timestamp indicating when the error report was created, and (iii) a universal unique identifier (UUID) to uniquely identify the error report. The FMS determines, based at least in part on the error report, a policy associated with the events and classifies the events, based at least in part on the policy, as either a threshold event or a discrete event. The FMS performs one or more actions to address the events.

Claims (98)

1. A method comprising:

receiving, by one or more coarse grained reconfigurable processors, one or more fault events associated with a reconfigurable data flow unit (RDU) component in a system;

determining, by the one or more coarse grained reconfigurable processors and based on an inventory database, a component included in the RDU component that is associated with the one or more fault events;

creating, by the one or more coarse grained reconfigurable processors and based at least in part on the one or more fault events, an error report, the error report comprising:

an error type identifying a type of error associated with the one or more fault events;

a timestamp indicating when the error report was created; and

a universal unique identifier (UUID) to uniquely identify the error report;

determining, by the one or more coarse grained reconfigurable processors and based at least in part on the error report, a policy associated with the one or more fault events;

classifying, by the one or more coarse grained reconfigurable processors and based at least in part on the policy, the one or more fault events as either a threshold event or a discrete event; and

performing, by the one or more coarse grained reconfigurable processors, one or more actions to address the one or more fault events; and

notifying an application operated by the RDU of occurrence of the one or more fault events, the classification of the one or more fault events, and the actions taken performed to address the one or more fault events.

2. The method of claim 1 , wherein the RDU includes component comprises at least one of:

a reconfigurable dataflow unit (RDU);

a pattern compute unit (PCU) included in the RDU;

a pattern memory unit (PMU) included in the RDU;

a data link included in the RDU; or; and

a channel to access memory, the channel included in the RDU.

3. The method of claim 1 , further comprising:

determining a payload included in a particular fault event of the one or more fault events;

parsing the payload; and

determining, based at least in part on parsing the payload, the error type of the particular fault event.

4. The method of claim 1 , further comprising:

determining, based on the inventory database, a physical location of the RDU component.

5. The method of claim 1 , wherein classifying, based at least in part on the policy, the one or more fault events as either the threshold event or the discrete event comprises:

based at least in part on determining that a particular fault event of the one or more fault events is specified in the policy as being the discrete event, classifying the particular event as the discrete event; and

based at least in part on determining that the one or more fault events occurred in a time interval that satisfies an fault event frequency threshold specified in the policy, classifying the one or more fault events as the threshold event.

6. The method of claim 1 , wherein performing the one or more actions to address the one or more fault events comprises:

isolating the RDU component by changing a status of the RDU component to an offline status;

initiating a reinitialization of the RDU component; and

based at least in part on determining that reinitialization of the RDU component solved an issue that is causing the one or more fault events, changing the status of the RDU component to an online status.

7. The method of claim 1 , wherein performing the one or more actions to address the one or more fault events comprises:

isolating the RDU component by changing a status of the RDU component to an offline status;

sending a reinitialization instruction to the RDU component to cause the RDU component to reinitialize; and

based at least in part on determining that reinitialization of the RDU component failed to solve an issue that is causing the one or more fault events, keeping the status of the RDU component at the offline status.

8. A fault management system, executed by one or more coarse grained reconfigurable processors, to perform operations comprising:

receiving one or more fault events associated with a reconfigurable data flow unit (RDU) component being monitored by the fault management system;

determining, based on an inventory database, a component included in the RDU component that is associated with the one or more fault events;

creating, based at least in part on the one or more fault events, an error report, the error report comprising:

an error type identifying a type of error associated with the one or more fault events;

a timestamp indicating when the error report was created; and

a universal unique identifier (UUID) to uniquely identify the error report;

determining, based at least in part on the error report, a policy associated with the one or more fault events;

classifying, based at least in part on the policy, the one or more fault events as either a threshold event or a discrete event; and

performing one or more actions to address the one or more fault events; and

notifying an application operated by the RDU of occurrence of the one or more fault events, the classification of the one or more fault events, and the actions performed to address the one or more fault events.

9. The fault management system of claim 8 , wherein the RDU component includes comprises at least one of:

a particular reconfigurable dataflow unit (RDU);

a pattern compute unit (PCU) included in the RDU;

a pattern memory unit (PMU) included in the RDU;

a data link included in the RDU;

a channel to access memory, included in the RDU; er; and

any combination thereof.

10. The fault management system of claim 8 , further comprising:

determining a payload included in a particular fault event of the one or more fault events;

parsing the payload; and

determining, based at least in part on the payload, the error type of the particular fault event.

11. The fault management system of claim 8 , further comprising:

determining, based on the inventory database, a physical location of the RDU component.

12. The fault management system of claim 8 , wherein classifying, based at least in part on the policy, the one or more fault events as either the threshold event or the discrete event comprises:

based at least in part on determining that a particular event of the one or more fault events is specified in the policy as being the discrete event, classifying the particular event as the discrete event; and

based at least in part on determining that the one or more fault events occurred in a time interval that satisfies an fault event frequency threshold specified in the policy, classifying the one or more fault events as the threshold event.

13. The fault management system of claim 8 , wherein performing the one or more actions to address the one or more fault events comprises:

isolating the RDU component by changing a status of the RDU component to an offline status;

initiating a reinitialization of the RDU component; and

based at least in part on determining that reinitialization of the RDU component solved an issue that is causing the one or more fault events, changing the status of the RDU component to an online status.

14. The fault management system of claim 8 , wherein performing the one or more actions to address the one or more fault events comprises:

isolating the RDU component by changing a status of the RDU component to an offline status;

sending a reinitialization instruction to the RDU component to cause the RDU component to reinitialize; and

based at least in part on determining that reinitialization of the RDU component failed to solve an issue that is causing the one or more fault events, keeping the status of the RDU component at the offline status.

15. A method comprising:

before an application begins executing:

receiving, by one or more coarse grained reconfigurable processors, resource data from the application;

determining, by the one or more coarse grained reconfigurable processors and based on the resource data, a set of resources assigned to the application;

adding, by the one or more coarse grained reconfigurable processors, an entry to a resource table indicating that the set of resources has been assigned to the application;

determining, by the one or more coarse grained reconfigurable processors and based on the resource data, an event associated with a particular resource of the set of resources; and

registering, by the one or more coarse grained reconfigurable processors, the application to receive a notification of an occurrence of the event associated with the particular resource of the set of resources;

after the application begins executing:

receiving, by the one or more coarse grained reconfigurable processors, an event notification indicating the occurrence of the event;

determining, by the one or more coarse grained reconfigurable processors, that the event is associated with the particular resource of the set of resources; and

providing a notification to the application of the occurrence of the event associated with the particular resource.

16. The method of claim 15 , wherein the set of resources comprises a reconfigurable dataflow unit (RDU), wherein the RDU includes at least one of:

a reconfigurable dataflow unit (RDU);

a pattern compute unit (PCU) included in the RDU;

a pattern memory unit (PMU) included in the RDU;

a data link included in the RDU;

a channel to access memory; and, the channel included in the RDU; or

any combination thereof.

17. The method of claim 15 , further comprising:

including an error type of the event as a payload of the notification to the application.

18. The method of claim 15 , wherein providing the notification to the application of the occurrence of the event associated with the particular resource comprises:

determining, using an event delivery table, a pointer to an event queue associated with the application; and

adding the notification of the occurrence of the event to the event queue associated with the application.

19. The method of claim 15 , wherein the application comprises:

a software application that is being executed by the one or more coarse grained reconfigurable processors; or

a fault management system.

20. The method of claim 15 , wherein determining that the event is associated with the particular resource of the set of resources comprises:

determining, using the resource table, that the set of resources is assigned to the application; and

determining that the particular resource is included in the set of resources assigned to the application.

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 Feb 5, 2023
From: SHENBAGAM, RAGHUNATH; CHATTERJEE, RANEN; MISRA, ANAND; LEWIS, JIM; GLICK, BENJAMIN; NANDKAR, PUSHKAR; VEERAGANDHAM, SRUTHI
To: SAMBANOVA SYSTEMS, INC.
Reel/Frame 062592/0610 →
Continuity (1)
Related Publication 20240264896A1 · Aug 8, 2024
References Cited (12)
US 20190173736A1 · Ponnuswamy · 2019 [cited by examiner]
WO 2010142987A1 · 2010 [cited by applicant]
Wikipedia UUID page, retrieved from https://en.wikipedia.org/wiki/Universally_unique_identifier (Year: 2023). [cited by examiner]
Wikipedia dataflow programming page, rretrieved from https://en.wikipedia.org/wiki/Dataflow_programming (Year: 2023). [cited by examiner]
RDU (Year: 2023). [cited by examiner]
UUID (Year: 2023). [cited by examiner]
Koeplinger et al., Spatial: A Language and Compiler for Application Accelerators, PLDI '18, Jun. 18-22, 2018, Association for Computng Machinery, 16 pages. [cited by applicant]
M. Emani et al., Accelerating Scientific Applications With Sambanova Reconfigurable Dataflow Architecture, in Computing in Science & Engineering, vol. 23, No. 2, pp. 114-119, Mar. 26, 2021, [doi: 10.1109/MCSE.2021.30572… [cited by applicant]
Podobas et al, A Survey on Coarse-Grained Reconfigurable Architectures From a Performance Perspective, IEEEAccess, vol. 2020.3012084, Jul. 27, 2020, 25 pages. [cited by applicant]
Prabhakar et al., Plasticine: A Reconfigurable Architecture for Parallel Patterns, ISCA, Jun. 24-28, 2017, 14 pages. [cited by applicant]
U.S. Appl. No. 17/378,391—Corrected Notice of Allowance, Mar. 25, 2022, 14 pages. [cited by applicant]
Zhang et al., “SARA: Scaling a Reconfigurable Dataflow Accelerator,” 2021 ACM/IEEE 48th Annual International Symposium on Computer Architecture (ISCA), 2021, pp. 1041-1054. [cited by applicant]