IP Library › Granted Patent US 12,443,456
Granted Patent B2
US 12,443,456 · App. 18/470,563 · Granted Oct 14, 2025

Organizing tasks by a hierarchical task scheduler for execution in a multi-threaded processing system

Inventor: Timothy James Kipp (Fallston, MD)
Assignee: Oxide Interactive, Inc.
G06F9/5038G06F9/46G06F9/4881G06F9/50G06F9/5027
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,443,456
App. No.
18/470,563
Granted
Oct 14, 2025
Kind
B2
Abstract

A method for scheduling tasks from a program executed by a multi-processor core system is disclosed. The method includes a scheduler that groups a plurality of tasks, each having an assigned priority, by priority in a task group. The task group is assembled with other task groups having identical priorities in a task group queue. A hierarchy of task group queues is established based on priority levels of the assigned tasks. Task groups are assigned to one of a plurality of worker threads based on the hierarchy of task group queues. Each of the worker threads is associated with a processor in the multi-processor system. The tasks of the task groups are executed via the worker threads according to the order in the hierarchy.

Claims (12)

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.

2. The multi-thread system of claim 1 , wherein the atomic exchange function is an atomic increment function.

3. The multi-thread system of claim 1 , wherein the atomic exchange function is an atomic add function.

4. The multi-thread system of claim 1 , wherein second processor core is configured to, based at least upon the determination that the first task group is completed, send a task group status signal to the first processor core, the task group status indicating that the first task group is completed.

5. The multi-thread system of claim 4 , wherein the first processor core is configured, based at least upon the task group status signal, to schedule a second plurality of tasks of a second task group to be concurrently executed on a second plurality of worker threads, the second plurality of worker threads comprising one or more worker threads of the first plurality of worker threads.

Continuity (4)
Continuation 17569275 · Jan 5, 2022
Continuation 15011127 · Jan 29, 2016
Continuation 14077899 · Nov 12, 2013
Related Publication 20240020166A1 · Jan 18, 2024
References Cited (18)
US 5752031A · Cutler · 1998 [cited by examiner]
US 6212543B1 · Futral · 2001 [cited by examiner]
US 6823351B1 · Flood · 2004 [cited by examiner]
US 8516488B1 · Brown · 2013 [cited by examiner]
US 9396039B1 · Arguelles · 2016 [cited by examiner]
US 11249807B2 · Kipp · 2022 [cited by examiner]
US 11797348B2 · Kipp · 2023 [cited by examiner]
US 20030058875A1 · Arndt · 2003 [cited by examiner]
US 20100251250A1 · Kishan · 2010 [cited by examiner]
US 20110161978A1 · Jang · 2011 [cited by examiner]
US 20120159498A1 · Wilmarth · 2012 [cited by examiner]
US 20120331238A1 · McKenney · 2012 [cited by examiner]
US 20130014118A1 · Jones · 2013 [cited by examiner]
US 20140123144A1 · Llamas · 2014 [cited by examiner]
US 20140344830A1 · Tipparaju · 2014 [cited by examiner]
US 20150089495A1 · Persson · 2015 [cited by examiner]
US 20170132037A1 · Sevigny · 2017 [cited by examiner]
US 20180232259A1 · Chowdhury · 2018 [cited by examiner]