IP Library › Granted Patent US 12,619,464
Granted Patent B2
US 12,619,464 · App. 18/603,616 · Granted May 5, 2026

Program flow monitoring and control of an event-triggered system

Inventors: Peter Alexander Boonstoppel (Pleasanton, CA); Michael Cox (Menlo Park, CA); Daniel Perrin (Fort Collins, CO)
Assignee: NVIDIA Corporation
G06F9/4887G06F9/5038G06F9/542G06F11/3055G06F11/3072G06F11/3495G06F2201/86G06F2201/865
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,619,464
App. No.
18/603,616
Granted
May 5, 2026
Kind
B2
Abstract

In various examples, a program (e.g., application, algorithm, routine, etc.) may be organized into operational units (e.g., nodes executed by one or more processors), each of which are tasked with executing one or more respective events (e.g., tasks) within the larger program. At least some of the events of the larger program may be successively executed in a flow, one after another, using triggers sent directly from one node to the next. In addition, a manager may exchange communications with the nodes to monitor or assess a status of the system (e.g., determine when a node has completed an event) or to control or trigger a node to initiate an event.

Claims (51)

1 . A method comprising:

monitoring, based at least on an execution graph representative of a program, execution of one or more first tasks of a plurality of tasks of the program, the execution graph including a plurality of nodes corresponding to respective tasks of the plurality of tasks and edges defining an execution flow of the plurality of tasks among the plurality of nodes;

based at least on the monitoring, determining one or more conditions for triggering one or more nodes of the plurality of nodes in the execution graph are satisfied, the one or more conditions corresponding to completion of one or more portions of the one or more first tasks; and

based at least on the determining, transmitting one or more manager-originating triggers to the one or more nodes, wherein the one or more nodes are programmed to enforce, in response to receiving one or more node-originating triggers, an execution order of the plurality of tasks in the execution flow based at least on delaying initiating one or more second tasks of the plurality of tasks until the one or more manager-originating triggers are received.

2 . The method of claim 1 , wherein the one or more conditions include at least one of one or more time-based conditions, one or more resource-based conditions, or one or more status-based conditions.

3 . The method of claim 1 , wherein output of the program is used to direct one or more operations of an autonomous or semi-autonomous machine in an environment.

4 . The method of claim 1 , further comprising prior to initiating the execution flow, programming, based at least on a representation of the execution order, the one or more nodes to, responsive to the receiving of the one or more node-originating triggers, delay the initiating until the one or more manager-originating triggers are received.

5 . The method of claim 1 , wherein the determining the one or more conditions are satisfied uses one or more event reports sent from and generated by at least one of the plurality of nodes, the one or more event reports indicating a start or an end of a task of the one or more first tasks.

6 . The method of claim 1 , wherein the execution is used to control one or more of:

an autonomous or semi-autonomous vehicle;

artificial intelligence-assisted video monitoring;

an artificial intelligence-assisted diagnostic device; or

an artificial intelligence-assisted surgical device.

7 . The method of claim 1 , wherein the transmitting is responsive to detecting the one or more conditions are satisfied.

8 . A system comprising:

one or more combinations of one or more hardware components to execute operations including:

applying sensor data obtained using one or more sensors of a machine in an environment to a program to cause execution of an execution graph representative of the program to detect one or more conditions corresponding to the environment, the execution graph including a plurality of nodes corresponding to respective tasks of a plurality of tasks and edges defining an execution flow of the plurality of tasks among the plurality of nodes; and

based at least on a determination, using one or more status indicators of one or more first tasks of the plurality of tasks that correspond to one or more first nodes of the plurality of nodes, that one or more conditions for triggering one or more second nodes of the plurality of nodes in the execution graph are satisfied, providing one or more manager-originating triggers to the one or more second nodes,

wherein the one or more second nodes are programmed to enforce, in response to receiving one or more node-originating triggers from one or more other nodes of the plurality of nodes, an execution order of the plurality of tasks in the execution flow based at least on delaying initiation of one or more second tasks of the plurality of tasks until the one or more manager-originating triggers are received, the one or more second tasks using the one or more combinations of the one or more hardware components to control the machine in the environment.

9 . The system of claim 8 , wherein output of the program is reflective of one or more environmental conditions corresponding to the environment in real time.

10 . The system of claim 8 , wherein the one or more conditions include at least one of one or more time-based conditions, one or more resource-based conditions, or one or more status-based conditions.

11 . The system of claim 8 , wherein the execution order is predetermined by an ordered representation of the program.

12 . The system of claim 8 , wherein the determination uses one or more event reports sent from and generated by at least one of the one or more first nodes, the one or more event reports indicating a start or an end of a task of the one or more first tasks.

13 . The system of claim 8 , wherein the machine includes one or more of:

an autonomous or semi-autonomous vehicle;

an artificial intelligence-assisted diagnostic device; or

an artificial intelligence-assisted surgical device.

14 . The system of claim 8 , wherein a node of the plurality of nodes represents a discrete hardware component, a computing device, or a computing system.

15 . The system of claim 8 , wherein the system is comprised in at least one of:

a control system for an autonomous or semi-autonomous machine;

a perception system for an autonomous or semi-autonomous machine;

a system implemented using a robot;

a system for performing one or more artificial intelligence-assisted video monitoring operations;

a system for performing one or more artificial intelligence-assisted diagnostic device operations;

a system for performing one or more artificial intelligence-assisted surgical device operations; or

a system for presenting at least one of virtual reality content or augmented reality content.

16 . At least one processor comprising:

one or more circuits to provide one or more manager-originating triggers to one or more nodes of a plurality of nodes in an execution graph representative of a program based at least on:

monitoring, based at least on the execution graph, execution of one or more first tasks of a plurality of tasks of the program, the execution graph including the plurality of nodes corresponding to respective tasks of the plurality of tasks and edges defining an execution flow of the plurality of tasks among the plurality of nodes; and

based at least on the monitoring, determining one or more conditions for triggering the one or more nodes in the execution graph are satisfied, the one or more conditions corresponding to completion of one or more portions of the one or more first tasks, wherein the one or more nodes are programmed to enforce, in response to receiving one or more node-originating triggers from one or more other nodes of the plurality of nodes, an execution order of the plurality of tasks in the execution flow based at least on delaying initiation of one or more second tasks of the plurality of tasks until the one or more manager-originating triggers are received.

17 . The at least one processor of claim 16 , wherein the one or more conditions include at least one of one or more time-based conditions, one or more resource-based conditions, or one or more status-based conditions.

18 . The at least one processor of claim 16 , wherein output of the program is reflective of one or more environmental conditions detected by the program and corresponding to an environment in real time, and the output is used to direct one or more operations of an autonomous or semi-autonomous machine in the environment.

19 . The at least one processor of claim 16 , wherein the delaying causes the one or more nodes to initiate the one or more second tasks after the completion of the one or more first tasks.

20 . The at least one processor of claim 16 , wherein the at least one processor is comprised in at least one of:

a control system for an autonomous or semi-autonomous machine;

a perception system for an autonomous or semi-autonomous machine;

a system implemented using a robot;

a system for performing one or more artificial intelligence-assisted video monitoring operations;

a system for performing one or more artificial intelligence-assisted diagnostic device operations;

a system for performing one or more artificial intelligence-assisted surgical device operations; or

a system for presenting at least one of virtual reality content or augmented reality content.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 28, 2024
From: PERRIN, DANIEL; COX, MICHAEL; BOONSTOPPEL, PETER ALEXANDER
To: NVIDIA CORPORATION
Reel/Frame 066938/0312 →
Continuity (2)
Continuation 16810557 · Mar 5, 2020
Related Publication 20240220318A1 · Jul 4, 2024
References Cited (38)
US 9588822B1 · Shih et al. · 2017 [cited by applicant]
US 9898347B1 · Gupta · 2018 [cited by examiner]
US 10552215B1 · Xu · 2020 [cited by examiner]
US 10630704B1 · Ghosh · 2020 [cited by examiner]
US 11934872B2 · Boonstoppel et al. · 2024 [cited by applicant]
US 20020188691A1 · Ignatius et al. · 2002 [cited by applicant]
US 20040078105A1 · Moon · 2004 [cited by examiner]
US 20050149908A1 · Klianev · 2005 [cited by applicant]
US 20070192768A1 · Fables et al. · 2007 [cited by applicant]
US 20080046142A1 · Jordan · 2008 [cited by examiner]
US 20090027402A1 · Bakalash · 2009 [cited by examiner]
US 20090204694A1 · Kaneko · 2009 [cited by examiner]
US 20100211953A1 · Wakeling et al. · 2010 [cited by applicant]
US 20150134626A1 · Theimer · 2015 [cited by examiner]
US 20160191613A1 · Srinivasan · 2016 [cited by examiner]
US 20160275123A1 · Lin et al. · 2016 [cited by applicant]
US 20160358111A1 · Favre · 2016 [cited by examiner]
US 20170024250A1 · Stanfill · 2017 [cited by examiner]
US 20170102968A1 · Pont · 2017 [cited by applicant]
US 20170255468A1 · Bequet · 2017 [cited by examiner]
US 20170339202A1 · Zhou · 2017 [cited by examiner]
US 20180329956A1 · Mittal et al. · 2018 [cited by applicant]
US 20190065254A1 · Ikkaku et al. · 2019 [cited by applicant]
US 20190132387A1 · Singh · 2019 [cited by examiner]
US 20190158581A1 · Giannella et al. · 2019 [cited by applicant]
US 20200007157A1 · Indeck et al. · 2020 [cited by applicant]
US 20200125540A1 · Thatte et al. · 2020 [cited by applicant]
US 20200310394A1 · Wouhaybi · 2020 [cited by examiner]
US 20200314168A1 · Nauerz · 2020 [cited by examiner]
US 20200403905A1 · Allen et al. · 2020 [cited by applicant]
US 20210117382A1 · Sriharsha · 2021 [cited by applicant]
Isah et al_A survey of Distributed Data Stream Processing Frameworks, IEEE, 2019, pp. 1-19 (Year: 2019). [cited by applicant]
Boonstoppel, Peter Alexander; Pre-Interview First Office Action for U.S. Appl. No. 16/810,557, filed Mar. 5, 2020, mailed May 31, 2022, 15 pgs. [cited by applicant]
Boonstoppel, Peter Alexander; First Action Interview Office Action Summary for U.S. Appl. No. 16/810,557, filed Mar. 5, 2020, mailed Aug. 22, 2022, 12 pgs. [cited by applicant]
Boonstoppel, Peter Alexander; Final Office Action for U.S. Appl. No. 16/810,557, filed Mar. 5, 2020, mailed Jan. 26, 2023, 49 pgs. [cited by applicant]
Boonstoppel, et al.; Non-Final Office Action for U.S. Appl. No. 16/810,557, filed Mar. 5, 2020, mailed Jul. 20, 2023, 38 pgs. [cited by applicant]
Boonstoppel, Peter Alexander; Notice of Allowance for U.S. Appl. No. 16/810,557, filed Mar. 5, 2020, mailed Nov. 17, 2023, 9 pgs. [cited by applicant]
Kopetz, “Event-triggered versus time-triggered real-time systems,” In Operating Systems of the 90s and Beyond, pp. 86-101. Springer, Berlin, Heidelberg, 1991. [cited by applicant]