System and method for providing hardware-assisted task scheduling
First Claim
1. A method for scheduling tasks, comprising:
- receiving a task switch request;
prioritizing, by a scheduling processor, available tasks;
inserting a highest priority task state into a first address register associated with a CPU;
suspending operation of the currently executing task;
inserting a state of the suspended task into a second address register associated with the CPU;
loading the state from the first address register associated with the CPU;
resuming the task loaded from the first address register;
retrieving the task state from the second address register by the scheduling processor;
scheduling the retrieved task for subsequent execution.
0 Assignments
0 Petitions
Accused Products
Abstract
A method, system and computer-readable medium for scheduling tasks, wherein a task switch request is initially received. A scheduling processor prioritizes the available tasks and inserts a highest priority task state into a first address register associated with a CPU. Next, the CPU suspends operation of the currently executing task and inserts a state of the suspended task into a second address register associated with the CPU. The CPU loads the task state from the first address register associated with the CPU and resumes the loaded task loaded. The scheduling processor then retrieves the task state from the second address register by the scheduling processor and schedules the retrieved task for subsequent execution.
54 Citations
21 Claims
-
1. A method for scheduling tasks, comprising:
-
receiving a task switch request;
prioritizing, by a scheduling processor, available tasks;
inserting a highest priority task state into a first address register associated with a CPU;
suspending operation of the currently executing task;
inserting a state of the suspended task into a second address register associated with the CPU;
loading the state from the first address register associated with the CPU;
resuming the task loaded from the first address register;
retrieving the task state from the second address register by the scheduling processor;
scheduling the retrieved task for subsequent execution. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system for scheduling tasks, comprising:
-
a CPU for executing tasks; and
a scheduling processor for prioritizing available tasks, the scheduling processor operatively connected to the CP, wherein the CPU receives a task switch request, wherein the scheduling processor inserts a highest priority task state into a first address register associated with a CP, wherein the CPU suspends operation of the currently executing task, wherein the CPU inserts a state of the suspended task into a second address register associated with the CPU, wherein the CPU loads the state from the first address register associated with the CPU, wherein the CPU resumes the task loaded from the first address register, wherein the scheduling processor retrieves the task state from the second address register, and wherein the scheduling processor schedules the retrieved task for subsequent execution. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computer-readable medium incorporating tasks for scheduling tasks, comprising:
-
one or more instructions for receiving a task switch request;
one or more instructions for prioritizing, by a scheduling processor, available tasks;
one or more instructions for inserting a highest priority task state into a first address register associated with a CPU;
one or more instructions for suspending operation of the currently executing task;
one or more instructions for inserting a state of the suspended task into a second address register associated with the CPU;
one or more instructions for loading the state from the first address register associated with the CPU;
one or more instructions for resuming the task loaded from the first address register;
one or more instructions for retrieving the task state from the second address register by the scheduling processor;
one or more instructions for scheduling the retrieved task for subsequent execution. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
Specification