System And Method For Maximizing Data Processing Throughput Via Application Load Adaptive Scheduling And Content Switching
First Claim
1. An application load adaptive digital data processing system, comprising:
- a 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 CPU,wherein the producing of the schedule by the scheduler is done at least in part based on indicators, by at least some among the set of software applications, expressing whether a given software application is ready to use one or more CPU cycles on the upcoming allocation period.
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.
29 Citations
20 Claims
-
1. An application load adaptive digital data processing system, comprising:
-
a 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 CPU, wherein the producing of the schedule by the scheduler is done at least in part based on indicators, by at least some among the set of software applications, expressing whether a given software application is ready to use one or more CPU cycles on the upcoming allocation period. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. An application load adaptive digital data processing method, comprising steps of:
-
by at least one application among a set of software applications configured to share a given processing hardware, maintaining in a hardware device register a ready-to-execute status indicator to be used in determining an optimal allocation of the processing hardware capacity among said set of applications; by a scheduler hardware logic, periodically determining the optimal allocation of the shared processing hardware capacity among said set of applications at least in part based on the ready-to-execute status indicators of one or more of the set of software applications configured to share the given processing hardware; and by the shared processing hardware, processing of instructions and data of the set of software applications to produce a set of data processing outputs, with sequences of applications for processing by said shared processing hardware being based at least in part on the determining of the optimal allocation of the processing hardware capacity by the scheduler hardware logic. - View Dependent Claims (8, 9, 10, 11, 12, 13)
-
-
14. An algorithm 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 algorithm comprising steps of:
-
monitoring ready-to-execute indicators of one or more applications among a set of software applications, with said indicators expressing at least one of the following;
(a) whether a given software application is currently ready to execute on the CPU, and (b) how many CPU cycles the given application is a 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 CPU at least in part based on values of the ready-to-execute indicators of one or more of said set of applications; and controlling a time sharing of the CPU among said set of software applications according to the allocating of the CPU cycles by the scheduler logic. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification