IP Library Granted Patent US 10,013,270
Granted Patent B2
US 10,013,270 · App. 14/958,148 · Granted Jul 3, 2018

Application-level initiation of processor parameter adjustment

Inventors: Giles R. Frazier (Austin, TX); Michael Karl Gschwind (Chappaqua, NY)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F9/45558G06F9/445
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,013,270
App. No.
14/958,148
Granted
Jul 3, 2018
Kind
B2
Abstract

Embodiments relate to application-level initiation of processor parameter adjustment. An aspect includes receiving, by a hypervisor in a computer system from an application running on the computer system, a request to adjust an operating parameter of a processor of the computer system. Another aspect includes determining an adjusted value for the operating parameter during execution of the application by the hypervisor. Another aspect includes setting the operating parameter in a parameter register of the processor to the adjusted value by the hypervisor. Yet another aspect includes executing the application according to the parameter register of the processor.

Claims (59)

1. A computer implemented method for application-level initiation of processor parameter adjustment, the method comprising:

receiving, by a hypervisor in a computer system from an application running on the computer system, a request to adjust an operating parameter of a processor of the computer system, wherein the request comprises an index;

determining whether the index is listed in an index table with an associated parameter register value and whether the index is a default index that is not listed in the index table;

based on determining that the index is not listed in the index table:

determining an adjusted value for the operating parameter during execution of the application by the hypervisor; and

setting the operating parameter in a parameter register of the processor to the adjusted value by the hypervisor;

based on determining that the index is listed in the index table, setting the parameter register equal to the associated parameter register value;

based on determining that the index is a default index that is not listed in the index table;

determining an adjusted value for a plurality of operating parameters that are stored in the parameter register;

assigning an index to the application;

storing the adjusted value for the plurality of operating parameters in the index table with the assigned index; and

returning the assigned index to the application; and

executing the application according to the parameter register of the processor.

2. The method of claim 1 , further comprising writing the index and the determined adjusted value into the index table.

3. The method of claim 1 , wherein the parameter register holds values for the plurality of operating parameters, and the request specifies a subset of the plurality of operating parameters to be adjusted.

4. The method of claim 3 , wherein the plurality of operating parameters comprises a branch history algorithm, a branch history depth, a cache data prefetch depth, whether to enable store-hit-load prevention, whether to route all fixed-point operations to a fixed point unit (FXU), whether to route all loads to a load unit, an instruction prefetch depth, and a store gather window.

5. The method of claim 1 , wherein determining an adjusted value for the operating parameter during execution of the application comprises:

iterating through all possible values of the operating parameter;

measuring performance of the processor for each of the possible values by a performance monitoring unit; and

determining a value of the operating parameter that gives a highest performance of the processor.

6. A computer program product for implementing application-level initiation of processor parameter adjustment, the computer program product comprising:

a computer readable storage medium having program instructions embodied therewith, the program instructions readable by a processing circuit to cause the processing circuit to perform a method comprising:

receiving, by a hypervisor in a computer system from an application running on the computer system, a request to adjust an operating parameter of a processor of the computer system, wherein the request comprises an index;

determining whether the index is listed in an index table with an associated parameter register value and whether the index is a default index that is not listed in the index table;

based on determining that the index is not listed in the index table:

determining an adjusted value for the operating parameter during execution of the application by the hypervisor; and

setting the operating parameter in a parameter register of the processor to the adjusted value by the hypervisor;

based on determining that the index is listed in the index table, setting the parameter register equal to the associated parameter register value;

based on determining that the index is a default index that is not listed in the index table:

determining an adjusted value for a plurality of operating parameters that are stored in the parameter register;

assigning an index to the application;

storing the adjusted value for the plurality operating parameters in the index table with the assigned index; and

returning the assigned index to the application; and

executing the application according to the parameter register of the processor.

7. The computer program product of claim 6 , further comprising writing the index and the determined adjusted value into the index table.

8. The computer program product of claim 6 , wherein the parameter register holds values for the plurality of operating parameters, and the request specifies a subset of the plurality of operating parameters to be adjusted.

9. The computer program product of claim 8 , wherein the plurality of operating parameters comprises a branch history algorithm, a branch history depth, a cache data prefetch depth, whether to enable store-hit-load prevention, whether to route all fixed-point operations to a fixed point unit (FXU), whether to route all loads to a load unit, an instruction prefetch depth, and a store gather window.

10. The computer program product of claim 6 , wherein determining an adjusted value for the operating parameter during execution of the application comprises:

iterating through all possible values of the operating parameter;

measuring performance of the processor for each of the possible values by a performance monitoring unit; and

determining a value of the operating parameter that gives a highest performance of the processor.

11. A computer system for application-level initiation of processor parameter adjustment, the system comprising:

a memory; and

a processor, communicatively coupled to said memory, the computer system configured to perform a method comprising:

receiving, by a hypervisor in the computer system from an application running on the computer system, a request to adjust an operating parameter of a processor of the computer system, wherein the request comprises an index;

determining whether the index is listed in an index table with an associated parameter register value and whether the index is a default index that is not listed in the index table;

based on determining that the index is not listed in the index table:

determining an adjusted value for the operating parameter during execution of the application by the hypervisor; and

setting the operating parameter in a parameter register of the processor to the adjusted value by the hypervisor;

based on determining that the index is listed in the index table, setting the parameter register equal to the associated parameter register value;

based on determining that the index is a default index that is not listed in the index table;

determining an adjusted value for a plurality of operating parameters that are stored in the parameter register;

assigning an index to the application;

storing the adjusted value for the plurality of operating parameters in the index table with the assigned index; and

returning the assigned index to the application; and

executing the application according to the parameter register of the processor.

12. The system of claim 11 , further comprising writing the index and the determined adjusted value into the index table.

13. The system of claim 11 , wherein the parameter register holds values for the plurality of operating parameters, and the request specifies a subset of the plurality of operating parameters to be adjusted.

14. The system of claim 13 , wherein the plurality of operating parameters comprises a branch history algorithm, a branch history depth, a cache data prefetch depth, whether to enable store-hit-load prevention, whether to route all fixed-point operations to a fixed point unit (FXU), whether to route all loads to a load unit, an instruction prefetch depth, and a store gather window.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 3, 2015
From: FRAZIER, GILES R.; GSCHWIND, MICHAEL KARL
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 037203/0400 →
Continuity (1)
Related Publication 20170161088A1 · Jun 8, 2017