System and method for reducing power requirements of microprocessors through dynamic allocation of datapath resources
First Claim
1. A method for dynamically controlling allocable resources in a processor, comprising:
- (a) estimating a resource need of a target level of processor performance during a period;
(b) defining an allocation of at least a portion of a respective resource in dependence on the estimate for the period; and
(c) determining an actual demand for the respective resource during the period, and if an actual demand for the respective resource exceeds the allocated portion of the respective resource, increasing an allocation of the respective resource during the period,wherein;
said processor has an instruction processing rate when all allocable resources are allocated, and wherein the resource allocation in accordance with the estimate is predicted to be sufficient to maintain the instruction processing rate;
said processor has a maximum data processing performance, and wherein the resource allocation in accordance with the estimate is predicted to be sufficient to maintain the maximum data processing performance;
orsaid processor has a base data processing performance, and wherein the resource allocation in accordance with the estimate is predicted to be sufficient to maintain the instantaneous data processing performance within a predetermined range from the base data processing performance, wherein the base performance corresponds to the performance of the processor when all allocable resources are allocated.
1 Assignment
0 Petitions
Accused Products
Abstract
There is provided a system and methods for segmenting datapath resources such as reorder buffers, physical registers, instruction queues and load-store queues, etc. in a microprocessor so that their size may be dynamically expanded and contracted. This is accomplished by allocating and deallocating individual resource units to each resource based on sampled estimates of the instantaneous resource needs of the program running on the microprocessor. By keeping unused datapath resources to a minimum, power and energy savings are achieved by shutting off resource units that are not needed for sustaining the performance requirements of the running program. Leakage energy and switching energy and power are reduced using the described methods.
18 Citations
20 Claims
-
1. A method for dynamically controlling allocable resources in a processor, comprising:
-
(a) estimating a resource need of a target level of processor performance during a period; (b) defining an allocation of at least a portion of a respective resource in dependence on the estimate for the period; and (c) determining an actual demand for the respective resource during the period, and if an actual demand for the respective resource exceeds the allocated portion of the respective resource, increasing an allocation of the respective resource during the period, wherein; said processor has an instruction processing rate when all allocable resources are allocated, and wherein the resource allocation in accordance with the estimate is predicted to be sufficient to maintain the instruction processing rate; said processor has a maximum data processing performance, and wherein the resource allocation in accordance with the estimate is predicted to be sufficient to maintain the maximum data processing performance;
orsaid processor has a base data processing performance, and wherein the resource allocation in accordance with the estimate is predicted to be sufficient to maintain the instantaneous data processing performance within a predetermined range from the base data processing performance, wherein the base performance corresponds to the performance of the processor when all allocable resources are allocated. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for dynamically controlling a processor, comprising:
-
(a) estimating a target level of performance required for the processor during a period; (b) defining, in dependence on the estimate, for the period, at least one of a clock frequency for a portion of the processor and a level of allocation of at least a portion of a resource; (c) determining an actual requirement for a level of performance during the period, and if an actual requirement for the level of performance exceeds that available, at least one of increasing the frequency during the period and increasing an allocation of the resource during the period wherein; said processor has a maximum data processing performance, and wherein the defined at least one of a clock frequency for a portion of the processor in dependence on the estimate for the period and a level of allocation of at least a portion of a resource are predicted to be sufficient to maintain the maximum data processing performance;
orsaid processor has a base data processing performance, and wherein the defined at least one of a clock frequency for a portion of the processor in dependence on the estimate for the period and a level of allocation of at least a portion of a resource are predicted to be sufficient to maintain the instantaneous data processing performance within a predetermined range from the base data processing performance, wherein the base performance corresponds to the performance of the processor when all allocable resources are allocated. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A dynamically controlled processor, comprising:
-
(a) a control for defining, during a period, at least one of a clock frequency for a portion of the processor and a level of allocation of at least a portion of a resource; (b) at least one unit for (i) estimating, for a forthcoming period, at least one of a required clock frequency and an allocation of one or more resources, to maintain a processor performance at a target level, and (ii) determining an actual processor performance deficit with respect to the target level of processor performance to meet processing needs during the period, and if an actual processor performance deficit exists, at least one of increasing the clock frequency during the period and increasing an allocation of the one or more resources during the period, and (iii) producing a signal for the control in dependence thereon, wherein at least one of; the signal controls a clock frequency and allocation of resources sufficient to maintain the target level of performance; and
the unit determines an actual requirement for a level of performance during the period, and if an actual requirement for the level of performance exceeds that available at the defined frequency, increasing both the frequency and the resource allocation during the period;said processor has a maximum data processing performance, and wherein the defined at least one of a clock frequency for a portion of the processor in dependence on the estimate for the period and a level of allocation of at least a portion of a resource are predicted to be sufficient to maintain the maximum data processing performance; and said processor has a base data processing performance, and wherein the defined at least one of a clock frequency for a portion of the processor in dependence on the estimate for the period and a level of allocation of at least a portion of a resource are predicted to be sufficient to maintain the instantaneous data processing performance within a predetermined range from the base data processing performance, wherein the base performance corresponds to the performance of the processor when all allocable resources are allocated. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification