IP Library Granted Patent US 9,098,271
Granted Patent B2
US 9,098,271 · App. 13/759,587 · Granted Aug 4, 2015

Autonomous microprocessor re-configurability via power gating pipelined execution units using static profiling

Inventor: Jeffrey R. Eastlack (Austin, TX)
G06F1/32
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,098,271
App. No.
13/759,587
Granted
Aug 4, 2015
Kind
B2
Abstract

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.

Claims (36)

1. A method of controlling a functional unit of a target processor, the method comprising:

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;

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;

storing the specific needs profile in a configuration register and in a lookup table that comprises a plurality of additional specific needs profiles for a corresponding set of additional processes;

retrieving the specific needs profile that corresponds to the process to be performed by the target processor from the lookup table; and,

wherein the specific needs profile is accessed during each context switch of the operating system.

2. The method of claim 1 , wherein the specific needs profile is configured to cause a power control unit of the target processor to activate the functional unit after the static code profiler has determined that the process will use the functional unit.

3. The method of claim 2 , wherein the specific needs profile is configured to activate the functional unit for a predetermined period of time based on a duration of the operating system time quantum.

4. The method of claim 1 , wherein the specific needs profile is configured to cause a power control unit of the target processor to deactivate the functional unit when the process has been determined to avoid use of the functional unit.

5. The method of claim 1 , wherein the functional unit is one of an integer unit, a floating point adder, a floating point multiplier, a floating point divider, a load unit, a store unit, and a branch unit.

6. The method of claim 1 , wherein a quantity of functional units having the functional unit type that are controlled by the specific needs profile is based on a performance parameter.

7. The method of claim 1 , further comprising:

controlling at least one of activation and deactivation of an additional functional unit in accordance with a performance parameter.

8. The method of claim 7 , wherein the specific needs profile is based on the performance parameter.

9. The method of claim 1 , wherein the static code profiler operates using the output of at least one of the preprocessor, the compiler, the assembler, and the linker.

10. The method of claim 1 , wherein the static code profiler operates based on the output of the compiler.

11. The method of claim 1 , wherein the target processor is the developer processor.

12. The method of claim 1 , wherein the specific needs profile is stored in the configuration register when a context switch is invoked.

13. The method of claim 1 , wherein the specific needs profile is stored in the configuration register each time a context switch is invoked.

14. The method of claim 1 , further comprising: relative to a standard processor with the same functional units as the target processor and without functional unit deactivation capabilities, reducing energy consumption of the target processor by deactivating the functional unit.

15. The method of claim 1 , further comprising:

relative to a standard processor with the same functional units as the target processor and without functional unit deactivation capabilities, increasing the performance capability of the target processor by deactivating an unused functional unit and activating a useful functional unit.

16. A non-transitory computer-readable medium containing a sequence of instructions for controlling a functional unit, which when executed by a processor, causes the processor to:

using a static code profiler operating on the processor and while generating a machine executable instruction from software code, determine whether a functional unit type will be used to perform a process of the machine executable instruction;

update 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; and

store the specific needs profile in a configuration register and in a lookup table that comprises a plurality of additional specific needs profiles for a corresponding set of additional processes;

retrieve the specific needs profile that corresponds to the process to be performed by the target processor from the lookup table; and,

wherein the specific needs profile is accessed during each context switch of the operating system.

17. A system for controlling a functional unit, the system comprising:

a static code profiler operating on a developer processor configured to determine whether a functional unit type will be used to perform a process of a machine executable instruction during a process to generate the machine executable instruction from software code,

a memory for

receiving updates for 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;

storing the specific needs profile for the process in a lookup table that comprises a plurality of additional specific needs profiles for a corresponding set of additional processes;

retrieving the specific needs profile that corresponds to the process to be performed by the target processor from the lookup table;

wherein the specific needs profile is accessed during each context switch of an operating system; and,

a configuration register configured to store the specific needs profile.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 12, 2013
From: EASTLACK, JEFFREY R.
To: VAMPIRE LABS, LLC
Reel/Frame 029792/0852 →
Continuity (2)
Provisional Application 61595136 · Feb 5, 2012
Related Publication 20130205143A1 · Aug 8, 2013