US2014331234A1PendingUtilityA1

Task-Based Performance Resource Management of Computer Systems

Assignee: VIRTUALMETRIX INCPriority: Mar 26, 2010Filed: Jul 15, 2014Published: Nov 6, 2014
Est. expiryMar 26, 2030(~3.7 yrs left)· nominal 20-yr term from priority
G06F 9/5016G06F 9/5011G06F 9/4887G06F 1/329Y02D10/00G06F 2209/507G06F 1/3206G06F 2209/508G06F 1/324
54
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

Execution of a plurality of tasks by a processor system are monitored. Based on this monitoring, tasks requiring adjustment of performance resources are identified by calculating at least one of a progress error or a progress limit error for each task. Thereafter, performance resources of the processor system allocated to each identified task are adjusted. Such adjustment can comprise: adjusting a clock rate of at least one processor in the processor system executing the task, adjusting an amount of cache and/or buffers to be utilized by the task, and/or adjusting an amount of input/output (I/O) bandwidth to be utilized by the task. Related systems, apparatus, methods and articles are also described.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A method for implementation by one or more data processors comprising:
 monitoring execution of a plurality of tasks by a processor system, the monitoring being based at least in on an amount of work completed by a corresponding task, the amount of work being derived from at least one of: data transferred when executing the task, a number of processor instructions when executing the task, a number of processor cycles when executing the task, or an execution time for the task;   identifying, based on the monitoring, tasks requiring adjustment of performance resources by calculating at least one of a progress error and a progress limit error for each task; and   adjusting performance resources of the processor system allocated to each identified task;   wherein adjusting the performance resources comprise one or more of:
 adjusting a clock rate of at least one processor in the processor system executing the task; 
 adjusting an amount of cache and/or buffers to be utilized by the task; or 
 adjusting an amount of input/output (I/O) bandwidth to be utilized by the task. 
   
     
     
         2 . A method as in  claim 1 , wherein the progress error is equal to a differential between work completed by the task and work to be completed by the task. 
     
     
         3 . A method as in  claim 1 , wherein the progress limit error is equal to a difference between a work completion rate for completed work and an expected work rate for the remainder of the task. 
     
     
         4 . A method as in  claim 1 , wherein each task is selected from a group comprising: a single task, a group of tasks, a thread, a group of threads, a single state machine, a group of state machines, a single virtual machine, and a group of virtual machines. 
     
     
         5 . A method as in  claim 1 , wherein the processor comprises a system selected from a group comprising: a single processor, a multi-processor, a processor system supporting simultaneous multi-threading, a multi-core processor. 
     
     
         6 . A method as in  claim 1 , wherein each task has an associated execution priority and an execution deadline, and wherein the performance resources of the processor system are adjusted to enable each identified task to be completed by its corresponding execution deadline and according to its corresponding execution priority. 
     
     
         7 . A method as in  claim 1 , wherein the performance resources are adjusted on a task-by-task basis. 
     
     
         8 . A method as in  claim 1 , wherein each task has an associated performance profile that is used, by a scheduler module, to establish the execution priority and the execution deadline for the task. 
     
     
         9 . A method as in  claim 8 , wherein the associated performance profile specifies at least one performance parameter, wherein the performance parameter is a cache occupancy quota specifying an initial maximum and/or minimum amount of buffers to be used by the task, wherein the cache occupancy quota is dynamically adjusted during execution of the task, wherein the cache occupancy quota is dynamically adjusted based on progress error for the task. 
     
     
         10 . A method as in  claim 9 , wherein the performance parameter specifies initial bandwidth requirements for the execution of the task, wherein the bandwidth requirements are dynamically adjusted during execution of the task. 
     
     
         11 . A method as in  claim 1 , further comprising:
 determining a processor clock demand rate required by each task; and   computing an aggregate clock demand rate based on the determined processor clock demand rate for all tasks;   wherein the processor system clock rate is adjusted to accommodate the aggregate clock demand rate.   
     
     
         12 . A method as in  claim 11 , wherein the processor system clock rate is adjusted to the aggregate clock demand rate plus an overhead demand rate. 
     
     
         13 . A method as in  claim 11 , wherein determining a processor clock demand rate is a product of a current processor system clock rate with expected execution time for completion of the task divided within a time interval. 
     
     
         14 . A method as in  claim 11 , wherein the processor clock demand rate for each task is updated based on progress errors affecting the performance of the task, wherein the aggregate clock demand rate is updated based on the updated processor clock demand rate for each task. 
     
     
         15 . A method as in  claim 14 , wherein the updating of the processor clock demand rate for each task or the aggregate clock demand rate uses at least one adaptation function to dampen or enhance rapid rate changes. 
     
     
         16 . A method as in  claim 11 , wherein a processor clock rate for each task is added to the aggregate clock demand rate when the task is ready-to-run; and wherein the aggregate clock demand rate is calculated over a period of time such that, at times, the processor system clock rate is higher than the aggregate clock demand rate, and at other times, the processor system clock rate is lower than the aggregate clock demand rate. 
     
     
         17 . A method as in  claim 11 , wherein the processor system comprises at least two processors, and wherein the aggregate clock demand rate is determined for each of the at least two processors and is based on the processor demand rate for tasks executing using the corresponding processor, and wherein the clock rate for each of the at least two processors are adjusted separately and accordingly. 
     
     
         18 . A method as in  claim 1 , wherein each task is allocated physical memory, and wherein the method further comprises: enabling at least one task to utilize at least one virtual memory address space, the at least one virtual memory address space being mapped to at least a portion of the physical memory. 
     
     
         19 . A method comprising:
 monitoring execution of a plurality of tasks by a processor system to determine at least one monitored value for each of the tasks, the at least one monitored value characterizing at least one factor affecting performance of the corresponding task by the processor system, each task having an associated task performance profile that specifies at least one performance parameter, the at least one monitored value being based on an amount of work completed by a corresponding task, the amount of work being derived from at least one of: data transferred when executing the task, a number of processor instructions when executing the task, a number of processor cycles when executing the task, or an execution time for the task; and   comparing, for each of the tasks, the corresponding monitored value with the corresponding at least one performance parameter specified in the associated task performance profile;   determining, for each of the tasks based on the comparing, whether performance resources utilized for the execution of the task should be adjusted or whether performance resources utilized for the execution of the task should be maintained; and   adjusting performance resources by modifying a processor clock rate for each of the tasks for which it was determined that performance resources allocated to such task should be adjusted and maintaining performance resources for each of the tasks for which it was determined that performance resources allocated to the task should be maintained.   
     
     
         20 . A processor system comprising:
 at least one processor;   a plurality of buffers;   a scheduler module to schedule a plurality of tasks to be executed by the at least one processor;   a metering module to monitor execution of the plurality of tasks and to identify tasks that require additional processing resources, the execution monitoring being based on an amount of work completed by a corresponding task, the amount of work being derived from at least one of: data transferred when executing the task, a number of processor instructions when executing the task, a number of processor cycles when executing the task, or an execution time for the task;   an adaptive clock manager module to selectively adjust a clock rate of the at least one processor when executing a task;   a cache occupancy manager module to selectively adjust a maximum amount of cache and/or buffers to be utilized by a task; and   an input/output bandwidth manager module to selectively adjust a maximum amount of input/output (I/O) bandwidth to be utilized by a task.

Join the waitlist — get patent alerts

Track US2014331234A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.