Scheduling in a multicore architecture
AssigneesSynopsys, Inc., Fujitsu Semiconductor Limited
InventorMark David Lippett
Life of this patent
Estimating the term…
Abstract
The disclosure relates to scheduling threads in a multicore processor. Executable transactions may be scheduled using at least one distribution queue, which lists executable transactions in order of eligibility for execution, and multilevel scheduler which comprises a plurality of linked individual executable transaction schedulers. Each of these includes a scheduling algorithm for determining the most eligible executable transaction for execution. The most eligible executable transaction is outputted from the multilevel scheduler to the at least one distribution queue.
Claims18
A method of scheduling threads, the method comprising:
- analyzing, by a parent scheduler, an application to identify an application thread for execution, the parent scheduler associated with a plurality of associated child schedulers, the parent scheduler configured to store a pointer to a most eligible child scheduler;
- providing, by the parent scheduler, the application thread to the most eligible child scheduler based on the stored pointer, the most eligible child scheduler determined based on priority metrics received from each child scheduler;
- and
- scheduling, by the most eligible child scheduler, the application thread for execution by a processor core of a multicore processor associated with the most eligible child scheduler.
A non-transitory computer readable storage medium storing computer-executable program code that, when executed by a processor, causes the processor to perform steps comprising:
- analyzing, by a parent scheduler, an application to identify an application thread for execution, the parent scheduler associated with a plurality of associated child schedulers, the parent scheduler configured to store a pointer to a most eligible child scheduler;
- providing, by the parent scheduler, the application thread to the most eligible child scheduler based on the stored pointer, the most eligible child scheduler determined based on priority metrics received from each child scheduler;
- and
- scheduling, by the most eligible child scheduler, the application thread for execution by a processor core of a multicore processor associated with the most eligible child scheduler.
A system for scheduling threads, the circuit comprising:
- a parent scheduler configured to:
- analyze an application to identify an application thread for execution;
- store a pointer to a most eligible child scheduler;
- and
- provide the application thread to the most eligible child scheduler based on the stored pointer;
- a plurality of child schedulers associated with the parent scheduler, the plurality of child schedulers comprising the most eligible child scheduler, the most eligible child scheduler configured to schedule the application thread for execution, each child scheduler configured to provide priority metrics to the parent scheduler, the most eligible child scheduler determined based on the provided priority metrics;
- and
- a processor core of a multicore processor associated with the most eligible child scheduler and configured to execute the application thread in response to the application thread being scheduled for execution by the most eligible child scheduler.
Dependencies are inferred from the claim text.