System and method for maximizing data processing throughput via application load adaptive scheduling and context switching
First Claim
1. An application load adaptive digital data processing system, comprising:
- a time shared central processing unit (CPU) for processing data and instructions from input data arrays of the system and storing results in output data arrays of the system; and
a scheduler for periodically, once in a set of CPU cycles referred to as an allocation period, producing a schedule that assigns a set of CPU cycles on an upcoming allocation period among a set of software applications sharing the time shared CPU,wherein the producing of the schedule by the scheduler is done at least in part based on ready-to-execute indicators by at least some among the set of software applications expressing how many CPU cycles on the time shared CPU a given software application is ready to use on the upcoming allocation period,wherein at least one of the ready-to-execute indicators comprises a number indicating a quantity of CPU cycles that its associated software application is currently ready to consume,wherein the at least one of the ready-to-execute indicators comprises a software variable mapped to a device register within a memory space of the time shared CPU, with said device register being accessible by the scheduler,wherein the time shared CPU processes data and instructions of at least some of the set of software applications on the upcoming allocation period with the CPU cycles assigned among the applications according to the schedule produced for that allocation period by the scheduler, andwherein said CPU cycle is one of;
individual CPU clock cycle, or individual CPU instruction cycle.
2 Assignments
0 Petitions
Accused Products
Abstract
The invention enables dynamic, software application load adaptive optimization of data processing capacity allocation on a shared processing hardware among a set of application software programs sharing said hardware. The invented techniques allow multiple application software programs to execute in parallel on a shared CPU, with application ready-to-execute status adaptive scheduling of CPU cycles and context switching between applications done in hardware logic, without a need for system software involvement. The invented data processing system hardware dynamically optimizes allocation of its processing timeslots among a number of concurrently running processing software applications, in a manner adaptive to realtime processing loads of the applications, without using the CPU capacity for any non-user overhead tasks. The invention thereby achieves continuously maximized data processing throughput for variable-load processing applications, while ensuring that any given application gets at least its entitled share of the processing system capacity whenever so demanded.
-
Citations
8 Claims
-
1. An application load adaptive digital data processing system, comprising:
-
a time shared central processing unit (CPU) for processing data and instructions from input data arrays of the system and storing results in output data arrays of the system; and a scheduler for periodically, once in a set of CPU cycles referred to as an allocation period, producing a schedule that assigns a set of CPU cycles on an upcoming allocation period among a set of software applications sharing the time shared CPU, wherein the producing of the schedule by the scheduler is done at least in part based on ready-to-execute indicators by at least some among the set of software applications expressing how many CPU cycles on the time shared CPU a given software application is ready to use on the upcoming allocation period, wherein at least one of the ready-to-execute indicators comprises a number indicating a quantity of CPU cycles that its associated software application is currently ready to consume, wherein the at least one of the ready-to-execute indicators comprises a software variable mapped to a device register within a memory space of the time shared CPU, with said device register being accessible by the scheduler, wherein the time shared CPU processes data and instructions of at least some of the set of software applications on the upcoming allocation period with the CPU cycles assigned among the applications according to the schedule produced for that allocation period by the scheduler, and wherein said CPU cycle is one of;
individual CPU clock cycle, or individual CPU instruction cycle. - View Dependent Claims (2, 3, 4)
-
-
5. A method for allocating, by a scheduler implemented in digital hardware logic, a processing capacity of a time shared CPU among a set of software applications, the method comprising steps of:
-
monitoring ready-to-execute indicators of one or more applications among a set of software applications, with said ready-to-execute indicators expressing how many CPU cycles on the time shared CPU the given application is currently able to consume; once in a set of CPU cycles referred to as an allocation period, allocating a set of CPU cycles for an upcoming allocation period among said set of software applications sharing the time shared CPU at least in part based on values of the ready-to-execute indicators of one or more of said set of applications; controlling a time sharing of the time shared CPU among said set of software applications according to the allocating of the CPU cycles by the scheduler, wherein at least one of the ready-to-execute indicators comprises a number indicating a quantity of CPU cycles that its associated software application is currently ready to consume, wherein the at least one of the ready-to-execute indicators comprises a software variable mapped to a device register within a memory space of the time shared CPU, with said device register being accessible by the scheduler, and wherein said CPU cycle is one of;
individual CPU clock cycle, or individual CPU instruction cycle. - View Dependent Claims (6, 7, 8)
-
Specification