Power Gating Pipelined Execution Units via Static Profiling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
As transistors in microprocessors scale beyond 32 nm, the weakening electric polarization field leads to increased static power leakage, which is a significant component of overall power consumption, especially since many functional units in the pipeline remain idle, contributing to unnecessary power dissipation and heat generation.
Innovation Solution
A static code profiler is used to profile the instruction stream and map specific functional units needed for a program, allowing for power gating of unused units during context switches, eliminating both dynamic and static power dissipation by dynamically adjusting the power state of functional units based on the program's requirements.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If the number of functional units in the pipeline is increased to support a broader range of programs, then the adaptability and processing capability are improved, but the static power consumption and leakage increase significantly
Solution Approach 1:
The patent applies dynamics by making the functional units dynamically controllable through power gating. The system transitions from a static configuration where all functional units are always active to a dynamic configuration where the power state of each functional unit can be changed based on program requirements. The power gating mechanism allows functional units to be selectively activated or deactivated, enabling the system to adapt its power consumption profile to match the actual computational needs of running programs.
Solution Approach 2:
The patent implements discarding and recovering by temporarily deactivating (power gating) functional units that are not currently needed for program execution. During context switches or when programs change, the system recovers these functional units by activating them again when needed. This approach allows the system to discard the power consumption of unused functional units while maintaining the capability to recover and use them when required, thus reducing overall static power consumption while preserving adaptability.
2Productivity
If more functional units are kept active to handle diverse workloads, then the productivity and instruction throughput are improved, but the heat generation and power dissipation increase
Solution Approach 1:
The system dynamically adjusts the active state of functional units based on real-time program requirements and workload characteristics. By monitoring which functional units are actually needed for current program execution, the system activates only those units, keeping others in a low-power state. This dynamic approach maintains high instruction throughput when needed while minimizing heat generation when full productivity is not required.
Solution Approach 2:
The patent changes the power state parameter of functional units from always-on to selectively activated. By modifying the power delivery parameter to functional units based on program analysis and execution needs, the system optimizes the balance between productivity and heat generation. This parameter change allows the same hardware to operate at different power levels depending on the computational demands of the running program.
3Loss of energy
If static profiling is used to determine functional unit activation, then the power consumption is reduced, but the system complexity and implementation overhead increase
Solution Approach 1:
The patent applies preliminary action by performing static profiling of programs during the compilation or loading phase to determine which functional units will be needed before execution begins. This advance analysis allows the system to pre-configimize the power gating settings for functional units, eliminating the need for complex runtime decision-making mechanisms. The profiling infrastructure, while adding some complexity, enables simple and efficient power management during actual program execution.
Data Source
AI summary
In an embodiment, a method of controlling a functional unit of a target processor includes, using a static code profiler operating on a developer processor and while generating a machine executable instruction from software code, determining whether a functional unit type will be used to perform a process of the machine executable instruction. The method also includes updating a specific needs profile of the process of the machine executable instruction in accordance with the output of the static code profiler, wherein operation of the functional unit having the functional unit type is based on the configuration of the specific needs profile. The method further includes storing the specific needs profile in a configuration register. One or more processes and/or specific needs values or profiles may be loaded at each context switch of the operating system.


