IP Library › Granted Patent US 10,209,764
Granted Patent B2
US 10,209,764 · App. 15/385,184 · Granted Feb 19, 2019

Apparatus and method for improving power-performance using a software analysis routine

Inventors: Konstantin Levit-Gurevich (Kiryat Byalik, IL); Gadi Haber (Nesher, IL)
Assignee: Intel Corporation
G06F1/329G06F1/3228G06F9/30065G06F9/3867
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 10,209,764
App. No.
15/385,184
Granted
Feb 19, 2019
Kind
B2
Abstract

Embodiments described herein relate to improving processor power-performance using a binary analyzer routine. In one example, a processor includes a memory interface to couple to a memory, at least one hardware accelerator circuit, and an execution pipeline including at least fetch, decode, and execute stages, wherein the processor, in response to a hot-spot hardware event indicating presence of a hot-spot sequence, is to switch context to a binary analyzer routine stored in the memory, the binary analyzer routine including instructions that, when fetched, decoded, and executed by the processor, cause the processor to analyze a region in the memory containing the hot-spot sequence, analyze hardware metrics relating to execution of the hot-spot sequence, and generate, based on the analyses, a recommendation for the at least one hardware accelerator circuit to improve at least one of power consumption and performance.

Claims (35)

1. A processor comprising:

a memory interface to couple to a memory;

at least one hardware accelerator circuit; and

an execution pipeline comprising at least fetch, decode, and execute stages;

wherein the processor, in response to a hot-spot hardware event indicating presence of a hot-spot sequence, is to switch context to a binary analyzer routine stored in the memory, the binary analyzer routine comprising instructions that, when fetched, decoded, and executed by the processor, cause the processor to analyze a region in the memory containing the hot-spot sequence; analyze hardware metrics relating to execution of the hot-spot sequence; and generate, based on the analyses, a recommendation for the at least one hardware accelerator circuit to improve at least one of power consumption and performance;

wherein the processor, when executing the binary analyzer routine, uses a memory protection mechanism to define protected memory regions in which to store a code segment, a data segment, and a stack segment of the binary analyzer routine; and

wherein the processor, when executing the binary analyzer routine determines the hot-spot sequence receives an invariant value in response to multiple memory read requests, is to generate a recommendation that a read stage convert the multiple memory read requests into register read requests, and to store the invariant value in a register.

2. The processor of claim 1 , further comprising a hot-spot detector circuit to monitor the execution pipeline, detect the hot-spot sequence, gather the hardware metrics relating to execution of the hot-spot sequence, and generate the hot-spot hardware event.

3. The processor of claim 1 , wherein the hot-spot sequence comprises at least one of a branch instruction, a loop instruction, a memory access to at least one of a loop index, a loop constant, and a loop invariant, and an instruction that has repeated at least a threshold number of times.

4. The processor of claim 1 , wherein the processor is further to store the recommendation in the data segment for future use, and wherein the recommendation is generated once and used to generate recommendations for future occurrences of the hot-spot sequence.

5. The processor of claim 1 , wherein when the processor, during execution of the binary analyzer routine, determines that an instruction source operand value is predictable, the processor is further to generate a recommendation that a register/memory read stage of the execution pipeline use a predicted value for the instruction source operand.

6. The processor of claim 1 , wherein the processor, during execution of the binary analyzer routine, is to generate a recommendation to a schedule stage of the execution pipeline to conduct a speculative execution of the hot-spot sequence, and to prepare to roll back the speculative execution.

7. The processor of claim 6 , wherein the processor, during execution of the binary analyzer routine, is to generate a recommendation that the schedule stage begin speculative execution at a first linear instruction address, and to stop speculative execution at a second linear instruction access.

8. The processor of claim 1 , wherein when the processor, during execution of the binary analyzer routine, identifies underused registers, the processor is further to generate a recommendation to a register allocate stage of the execution pipeline to reallocate the underused registers.

9. The processor of claim 1 , wherein when the processor, during execution of the binary analyzer routine, determines that the hot-spot sequence is to utilize less than a threshold amount of power, the processor Is further to generate a recommendation to a power control circuit of the processor to enter into a lower-power power state.

10. A system comprising:

a memory interface to couple to a memory;

at least one hardware accelerator circuit; and

a processing core comprising an execution pipeline comprising at least fetch, decode, and execute stages;

wherein the processing core, in response to a hot-spot hardware event indicating presence of a hot-spot sequence, is to switch context to a binary analyzer routine stored in the memory, the binary analyzer routine comprising instructions that, when fetched, decoded, and executed by the processing core, cause the processing core to analyze a region in the memory containing the hot-spot sequence; analyze hardware metrics relating to execution of the hot-spot sequence; and generate, based on the analyses, a recommendation for the at least one hardware accelerator circuit to improve at least one of power consumption and performance; and

wherein the processing core, when executing the binary analyzer routine determines the hot-spot sequence receives an invariant value in response to multiple memory read requests, is to generate a recommendation that a read stage convert the multiple memory read requests into register read requests, and to store the invariant value in a register.

11. The system of claim 10 , further comprising a hot-spot detector to monitor the execution pipeline, to detect the hot-spot sequence, to gather the hardware metrics, and to generate the hot-spot hardware event.

12. The system of claim 10 , wherein when the processing core, during execution of the binary analyzer routine, determines that an instruction source operand value is predictable, the processing core is further to generate a recommendation that a register/memory read stage of the execution pipeline use a predicted value for the instruction source operand.

13. The system of claim 10 , wherein the processing core, during execution of the binary analyzer routine, is to generate a recommendation to a schedule stage of the execution pipeline to conduct a speculative execution of the hot-spot sequence, and to prepare to roll back the speculative execution.

14. The system of claim 10 , wherein when the processing core, during execution of the binary analyzer routine, identifies underused registers, the processing core is further to generate a recommendation to a register allocate stage of the execution pipeline to reallocate the underused registers.

15. The system of claim 10 , wherein when the processing core, during execution of the binary analyzer routine, determines that the hot-spot sequence is to utilize less than a threshold amount of power, the processing core is further to generate a recommendation to a power control circuit to enter into a lower-power power state.

16. A non-transitory computer-readable storage medium having stored therein instructions, which, when executed by a processor comprising a memory interface to couple to a memory, at least one hardware accelerator circuit, and an execution pipeline comprising at least fetch, decode, and execute stages, cause the processor to:

fetch, decode, and execute instructions; and

switch context, in response to a hot-spot hardware event indicating presence of a hot-spot sequence, to a binary analyzer routine stored in the memory, the binary analyzer routine comprising instructions that, when fetched, decoded, and executed by the processor, cause the processor to analyze a region in the memory containing the hot-spot sequence; analyze hardware metrics relating to execution of the hot-spot sequence; and generate, based on the analyses, a recommendation for the at least one hardware accelerator circuit to improve at least one of power consumption and performance; and

wherein the processor, when executing the binary analyzer routine determines the hot-spot sequence receives an invariant value in response to multiple memory read requests, is to generate a recommendation that a read stage convert the multiple memory read requests into register read requests, and to store the invariant value in a register.

17. The non-transitory computer-readable storage medium of claim 16 , wherein the processor, during execution of the binary analyzer routine, is further to monitor the execution pipeline, detect the hot-spot sequence, gather the hardware metrics, and generate the hot-spot hardware event.

18. The non-transitory computer-readable storage medium of claim 16 , wherein when the processor, during execution of the binary analyzer routine, determines that an instruction source operand value is predictable, the processor is further to generate a recommendation that a register/memory read stage of the execution pipeline use a predicted value for the instruction source operand.

19. The non-transitory computer-readable storage medium of claim 16 , wherein the processor, during execution of the binary analyzer routine, is further to generate a recommendation to a scheduling stage of the execution pipeline to conduct a speculative execution of the hot-spot sequence, and to prepare to roll back the speculative execution.

20. The non-transitory computer-readable storage medium of claim 16 , wherein when the processor, during execution of the binary analyzer routine, identifies underused registers, the processor is further to generate a recommendation to a register allocation stage of the execution pipeline to reallocate the underused registers.

21. The non-transitory computer-readable storage medium of claim 16 , wherein when the processor, during execution of the binary analyzer routine, determines that the hot-spot sequence is utilizing less than a threshold amount of power, the processor is further to generate a recommendation to a power control circuit of the processor to enter into a lower-power power state.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 28, 2016
From: LEVIT-GUREVICH, KONSTANTIN; HABER, GADI
To: INTEL CORPORATION
Reel/Frame 041209/0870 →
Continuity (1)
Related Publication 20180173291A1 · Jun 21, 2018