Patent ID: 7318164

Claim:
A method of conserving power consumption in a multi-processor data processing system, comprising: accessing, via a bus, a memory of the data processing system by respective processors of the data processing system, wherein the accessing is a memory controller intervening between the processors and the memory, the memory controller providing each processor substantially equal access to the memory such that memory access time may be substantially independent of the respective processors, and wherein the data processing system includes an operating system; providing, by a policy manager module of the operating system, a programmable setting enabling a user to specify, as a predetermined performance criterion, a minimum performance required to be delivered by the data processing system; monitoring a workload of the system by a workload monitor module of the data processing system, wherein the monitoring of the workload of the data processing system includes: triggering the workload monitoring responsive to an asynchronous event tending to indicate a change in workload, wherein the asynchronous event includes a change in availability of transaction buffers of the data processing system; determining, by a policy manager module, a number of processors required to process the monitored workload at a predetermined performance criterion, wherein the determining of the number of processors by the policy manager module comprises: receiving workload information from the workload module, including a series of workload data points indicating respectively current processor cycles corresponding to loads of the data processing system at respective times in the series; averaging the series of workload data points to smooth fluctuations in the workload data points, wherein the determining of the number of processors is responsive to the averaged series of workload data points and the predetermined performance criterion; and selecting a processor for activation or deactivation by a resource pool module of the operating system responsive to an increase or decrease of processors indicated by the policy manager, the increase or decrease indication being responsive to the determining of the number of processors by the policy manager module, and wherein the selecting a processor for activation or deactivation includes selecting a particular processor based on the particular processor's workload; activating or deactivating one or more processors to conform the number of active processors, in the data processing system to the determined number of processors, wherein the activating or deactivating is initiated by a power control module of the operating system responsive to the selecting by the resource pool module; and processing the workload with the active processors while maintaining the deactivated processors in a reduced power state.