US 12,443,456 B2
Organizing tasks by a hierarchical task scheduler for execution in a multi-threaded processing system
Timothy James Kipp, Fallston, MD (US)
Assigned to Oxide Interactive, Inc., Timonium, MD (US)
Filed by Oxide Interactive, Inc., Timonium, MD (US)
Filed on Sep. 20, 2023, as Appl. No. 18/470,563.
Application 18/470,563 is a continuation of application No. 17/569,275, filed on Jan. 5, 2022, granted, now 11,797,348.
Application 17/569,275 is a continuation of application No. 15/011,127, filed on Jan. 29, 2016, granted, now 11,249,807, issued on Feb. 15, 2022.
Application 15/011,127 is a continuation of application No. 14/077,899, filed on Nov. 12, 2013, granted, now 9,250,953, issued on Feb. 2, 2016.
Prior Publication US 2024/0020166 A1, Jan. 18, 2024
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 9/50 (2006.01); G06F 9/46 (2006.01); G06F 9/48 (2006.01)
CPC G06F 9/5038 (2013.01) [G06F 9/46 (2013.01); G06F 9/4881 (2013.01); G06F 9/50 (2013.01); G06F 9/5027 (2013.01)] 5 Claims
OG exemplary drawing
 
1. A multi-thread system, comprising:
a first processor core configured to schedule, at a first time, a first plurality of tasks of a first task group to be concurrently executed on a first plurality of worker threads; and
a second processor core configured to acquire a next task of the first plurality of tasks via an atomic exchange function performed on a pointer to a position in the first plurality of tasks, wherein:
the second processor, in response to the completion of a first task by a first worker thread of the first plurality of worker threads, acquires the next task for the first plurality of worker threads;
the first processor core is further configured to schedule, at a second time after the first time, a second plurality of tasks to be concurrently executed on the first plurality of worker threads;
the second processor core is configured to determine, via a result of the atomic exchange function, that the first plurality of tasks is completed;
the second processor core is configured to determine, via a result of the atomic exchange function, that the first task group is completed; and
the second processor core is configured to trigger a synchronized exit from the first task group by the first plurality of worker threads.