Multi-level power monitoring, filtering and throttling at local blocks and globally
First Claim
1. A global-monitoring and local-throttling power manager comprising:
- a plurality of local blocks that generate events as power is consumed;
a plurality of local power tables that have event entries storing local power estimates for the events;
a plurality of local power managers, each coupled to a local power table in the plurality of local power tables, for generating a local power estimate in response to an event from a local block that is power-controlled by the local power manager;
a global power summer that receives the local power estimates from the plurality of local power managers and generates a global power estimate as a sum of the plurality of local power estimates for the plurality of local blocks;
a global power filter, receiving the global power estimate from the global power summer, for generating a filtered global power estimate;
a global power table that stores a global power threshold;
a global comparator for comparing the filtered global power estimate to the global power threshold from the global power table and enabling a throttling mode when the filtered global power estimate exceeds the global power threshold;
the plurality of local power managers being enabled to reduce power consumption of the plurality of local blocks in response to enabling of the throttling mode by the global comparator;
wherein each local power manager comprises;
a local power target table that stores a local power target;
a local filter that receives the local power estimate read from the local power table and generates a filtered local power estimate; and
a local comparator that compares the filtered local power estimate to the local power target from the local power target table and enables a reduced-power mode of the local block when the filtered local power estimate exceeds the local power target;
whereby each local power manager causes its local block to reduce power consumption in response to enabling of the throttling mode by the global comparator and the filtered local power estimate exceeding the local power target and whereby power is estimated and reduced locally and monitored globally.
6 Assignments
0 Petitions
Accused Products
Abstract
Power management for a multi-processor chip includes a centralized global power manager that monitors global power for the whole chip, and local power managers. Local power managers manage power for local blocks such as processor cores, caches, and memory controllers. When a local block executes an instruction or accesses memory, an event is generated and looked up in a local power estimate table. A local power estimate for that event is sent to the global power manager, which sums all local power estimates received from all local blocks. An exponential moving average (EMA) is generated and compared to a global power threshold. When global power is over the threshold, local targets are sent to power managers that generate and monitor local power averages that must remain under the local target. The local block is throttled by the local power manager to reduce power when the local target is exceeded.
127 Citations
17 Claims
-
1. A global-monitoring and local-throttling power manager comprising:
-
a plurality of local blocks that generate events as power is consumed; a plurality of local power tables that have event entries storing local power estimates for the events; a plurality of local power managers, each coupled to a local power table in the plurality of local power tables, for generating a local power estimate in response to an event from a local block that is power-controlled by the local power manager; a global power summer that receives the local power estimates from the plurality of local power managers and generates a global power estimate as a sum of the plurality of local power estimates for the plurality of local blocks; a global power filter, receiving the global power estimate from the global power summer, for generating a filtered global power estimate; a global power table that stores a global power threshold; a global comparator for comparing the filtered global power estimate to the global power threshold from the global power table and enabling a throttling mode when the filtered global power estimate exceeds the global power threshold; the plurality of local power managers being enabled to reduce power consumption of the plurality of local blocks in response to enabling of the throttling mode by the global comparator; wherein each local power manager comprises; a local power target table that stores a local power target; a local filter that receives the local power estimate read from the local power table and generates a filtered local power estimate; and a local comparator that compares the filtered local power estimate to the local power target from the local power target table and enables a reduced-power mode of the local block when the filtered local power estimate exceeds the local power target; whereby each local power manager causes its local block to reduce power consumption in response to enabling of the throttling mode by the global comparator and the filtered local power estimate exceeding the local power target and whereby power is estimated and reduced locally and monitored globally. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A machine-implemented method for global power monitoring and local power throttling at a plurality of local blocks comprising:
-
generating a plurality of local power estimates at the plurality of local blocks, a local power estimate for a local block representing an estimate of power consumed at the local block; summing the plurality of local power estimates to generate a global power estimate; filtering the global power estimate over an averaging period of time to generate a global average power; comparing the global average power to a global threshold; when the global average power exceeds the global threshold, activating a plurality of local power managers to monitor and throttle local blocks; for a local block in the plurality of local blocks that has a local power manager that is activated, the local power manager filtering a local power estimate for the local block to generate a local average power for the local block, the local power manager comparing the local average power to a local power target and reducing power consumed by the local block when the local average power exceeds the local power target; filtering the global power estimate over a second averaging period of time that differs from the averaging period of time to generate a second global average power; comparing the second global average power to a second global threshold; when the second global average power exceeds the second global threshold, activating the plurality of local power managers to monitor and throttle local blocks; and for a local block in the plurality of local blocks that has the local power manager that is activated, the local power manager also comparing the local average power to a second local power target and reducing power consumed by the local block when the local average power exceeds the second local power target, whereby multiple averaging periods are used for global threshold comparison and whereby power is estimated locally, globally summed and monitored, and locally throttled. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. A multi-level power management unit comprising:
-
a plurality of local-block clusters, each local-block cluster comprising; (1) local block means for performing functions, each local block means capable of being placed into a low-power mode that has reduced power consumption; (2) local power manager means for activating the low-power mode of the local block means when the local power manager means is enabled; (3) local power estimate means for generating a local power estimate that is related to power consumption of the local block means when the local block means is performing functions; and a global power manager that comprises; sum means, receiving a plurality of the local power estimate from the plurality of local-block clusters, for generating a global power sum as a combination of the plurality of the local power estimates; global filter means, receiving the global power sum, for generating a filtered global power sum; and global compare means for comparing the filtered global power sum to a global threshold and enabling the local power manager means in the plurality of local-block clusters to activate the low-power mode of the local block means to reduce power consumption; wherein each local-block cluster further comprises; (4) local filter means, receiving the local power estimate, for generating a filtered local power estimate; (5) local compare means for comparing the filtered local power estimate to a local target and placing the local block means into the low-power mode when the filtered local power estimate exceeds the local target;
(6) local power table means for storing a plurality of local records, each local record storing a local target for comparison by the local compare means, a prior filtered local power estimate previously generated by the local filter means, and a local filtering value used by the local filter means when generating the filtered local power estimate;wherein the global power manager further comprises; global power table means for storing a plurality of global records, each global record storing a global threshold for comparison by the global compare means, a prior filtered global power sum previously generated by the global filter means, and a global filtering value used by the global filter means when generating the filtered global power sum, whereby local power estimates are summed, filtered, and compared to the global threshold to enable the local power manager means to reduce power consumption. - View Dependent Claims (17)
-
Specification