Real time multithreaded scheduler and scheduling method
First Claim
Patent Images
1. A method comprising:
- receiving an interrupt at a first thread of a multithreaded processor configured to schedule tasks among threads of a plurality of threads to enable execution of the tasks, the first thread executing a first task that is a lowest priority executing task at the multithreaded processor at a first time;
initiating an interrupt routine at the first thread;
identifying a second thread of the multithreaded processor, the second thread different from the first thread and identified based on comparing tasks executing at the plurality of threads, and determining that a second task at the second thread is the lowest priority executing task at the multithreaded processor at a second time occurring after the first time; and
setting a subsequent interrupt to be directed to the second thread.
1 Assignment
0 Petitions
Accused Products
Abstract
In a particular embodiment, a method is disclosed that includes receiving an interrupt at a first thread, the first thread including a lowest priority thread of a plurality of executing threads at a processor at a first time. The method also includes identifying a second thread, the second thread including a lowest priority thread of a plurality of executing threads at a processor at a second time. The method further includes directing a subsequent interrupt to the second thread.
14 Citations
27 Claims
-
1. A method comprising:
-
receiving an interrupt at a first thread of a multithreaded processor configured to schedule tasks among threads of a plurality of threads to enable execution of the tasks, the first thread executing a first task that is a lowest priority executing task at the multithreaded processor at a first time; initiating an interrupt routine at the first thread; identifying a second thread of the multithreaded processor, the second thread different from the first thread and identified based on comparing tasks executing at the plurality of threads, and determining that a second task at the second thread is the lowest priority executing task at the multithreaded processor at a second time occurring after the first time; and setting a subsequent interrupt to be directed to the second thread. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 26)
-
-
11. A method comprising:
-
receiving an interrupt at a first thread of a set of threads of a multithreaded processor configured to schedule tasks among threads to enable execution of the tasks, the first thread identified based on comparing tasks executing at the set of threads and determining that a first task at the first thread is a lowest priority executing task at the multithreaded processor at a first time, wherein each thread of the set of threads executes a respective task of a set of executing tasks, and wherein each task of the set of executing tasks and each task of a set of ready tasks has a respective priority; initiating an interrupt routine at the first thread, wherein, if a first priority of a highest priority ready task of the set of ready tasks is greater than a second priority of the first task, the first task is swapped with the highest priority ready task; determining that a second task at a second thread different from the first thread is the lowest priority executing task at the multithreaded processor at a second time occurring after the first time; and setting a subsequent interrupt to be directed to the second thread. - View Dependent Claims (12, 27)
-
-
13. A system comprising a multithreaded processor configured to schedule tasks among threads of a plurality of threads to enable execution of the tasks such that the plurality of threads are executing highest priority tasks, wherein the multithreaded processor is configured to:
-
identify a particular thread of the plurality of threads, the particular thread identified based on comparing tasks executing at the plurality of threads and determining that a first task at the particular thread is a lowest priority executing task at the multithreaded processor at a first time; direct an interrupt to the particular thread of the plurality of threads, wherein the particular thread of the plurality of threads receives the interrupt and launches an interrupt routine; swap the first task with a highest priority ready task; determine that a second task at a second thread different from the particular thread is the lowest priority executing task at the multithreaded processor at a second time occurring after the first time; and set a subsequent interrupt to be directed to the second thread. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A non-transitory computer-readable medium containing computer executable instructions that are executable to cause a computer including a multithreaded processor to:
-
identify a particular thread of a plurality of threads of the multithreaded processor, wherein the multithreaded processor is configured to schedule tasks among the plurality of threads to enable execution of the tasks, the particular thread identified based on comparing tasks executing at the plurality of threads and determining that a first task at the particular thread is a lowest priority executing task at the multithreaded processor at a first time; set an interrupt to be directed to the particular thread of the plurality of threads, wherein the interrupt indicates at least one task is ready to be executed, and wherein the particular thread of the plurality of threads receives the interrupt and initiates an interrupt routine that selects a highest priority ready task from a ready task list based on comparing a first priority of the highest priority ready task to a second priority of the first task; determine that a second task at a second thread different from the particular thread is the lowest priority executing task at the multithreaded processor at a second time occurring after the first time; and set a subsequent interrupt to be directed to the second thread. - View Dependent Claims (24)
-
-
25. An apparatus comprising:
-
means for receiving an interrupt at a first thread of a set of threads of a multithreaded processor, wherein the multithreaded processor is configured to schedule tasks among threads of the set of threads to enable execution of the tasks, the first thread identified based on comparing tasks executing at the set of threads and determining that a first task at the first thread is a lowest priority executing task at the multithreaded processor at a first time, wherein each thread of the set of threads executes a respective task of a set of executing tasks, and wherein each task of the set of executing tasks and each task of a set of ready tasks has a respective priority; means for initiating an interrupt routine at the first thread; means for iteratively swapping, based on the interrupt, a lowest priority executing task of the set of executing tasks with a highest priority task of the set of ready tasks until each task of the set of executing tasks has a priority that is greater than or equal to a priority of every task of the set of ready tasks; means for determining that a second task at a second thread different from the first thread is the lowest priority executing task at the multithreaded processor at a second time occurring after the first time; and means for setting a subsequent interrupt to be directed to the second thread.
-
Specification