IP Library Granted Patent US 8,898,434
Granted Patent B2
US 8,898,434 · App. 13/294,244 · Granted Nov 25, 2014

Optimizing system throughput by automatically altering thread co-execution based on operating system directives

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 8,898,434
App. No.
13/294,244
Granted
Nov 25, 2014
Kind
B2
Abstract

A technique for optimizing program instruction execution throughput in a central processing unit core (CPU). The CPU implements a simultaneous multithreading (SMT) operational mode wherein program instructions associated with at least two software threads are executed in parallel as hardware threads while sharing one or more hardware resources used by the CPU, such as cache memory, translation lookaside buffers, functional execution units, etc. As part of the SMT mode, the CPU implements an autothread (AT) operational mode. During the AT operational mode, a determination is made whether there is a resource conflict between the hardware threads that undermines instruction execution throughput. If a resource conflict is detected, the CPU adjusts the relative instruction execution rates of the hardware threads based on relative priorities of the software threads.

Claims (26)

1. A processor apparatus, comprising:

at least one central processing unit core (CPU);

first logic in said CPU operable to implement a simultaneous multithreaded (SMT) operational mode in said CPU wherein program instructions associated with at least two software threads are executed in parallel as hardware threads while sharing a cache memory resource within said CPU;

second logic in said CPU operable to implement an autothread (AT) operational mode in said CPU;

third logic in said CPU operable to determine as part of said AT operational mode (1) whether there is a resource conflict between said hardware threads and (2) whether said resource conflict undermines instruction execution throughput; and

fourth logic in said CPU responsive to said third logic detecting a resource conflict that undermines instruction execution throughput and operable to adjust relative instruction execution rates of said hardware threads in said CPU based on relative priorities of said software threads specified to said processor apparatus by a software scheduling entity.

2. The apparatus of claim 1 , wherein said third logic is operable to detect said resource conflict by determining whether one or more of a cache eviction rate, a translation lookaside buffer eviction rate, or contention for function execution units associated with said CPU exceeds a threshold and whether an instruction retiral rate of said hardware threads is below an instruction retiral rate threshold.

3. The apparatus of claim 1 , wherein said third logic is operable at a predetermined interval.

4. The apparatus of claim 1 , wherein said fourth logic is operable to throttle an instruction fetch rate of one or more lower priority threads.

5. The apparatus of claim 1 , further including readjusting said relative instruction execution rates of said hardware threads in said CPU if said instruction execution rate adjusting does not improve an instruction retiral rate of one or more threads.

6. The apparatus of claim 1 , further including exiting said AT mode when said CPU is not executing in application thread context.

7. The apparatus of claim 1 , further including logging an amount of time said at least two software threads are allowed to execute for use in subsequent software scheduling of said software threads, said software scheduling including increasing a priority of a first software thread whose instruction execution throughput was decreased during AT mode processing and decreasing a priority of a second software thread whose instruction execution throughput was increased during AT mode processing.

8. A system, comprising:

a processor apparatus;

a memory operatively coupled to said processor apparatus;

at least one central processing unit core (CPU) in said processor apparatus;

first logic in said CPU operable to implement a simultaneous multithreaded (SMT) operational mode in said CPU wherein program instructions associated with at least two software threads are executed in parallel as hardware threads while sharing a cache memory resource within said CPU;

second logic in said CPU operable to implement an autothread (AT) operational mode in said CPU;

third logic in said CPU operable to determine as part of said AT operational mode (1) whether there is a resource conflict between said hardware threads and (2) whether said resource conflict undermines instruction execution throughput; and

fourth logic in said CPU responsive to said third logic detecting a resource conflict that undermines instruction execution throughput and operable to adjust relative instruction execution rates of said hardware threads in said CPU based on relative priorities of said software threads specified to said processor apparatus by a software scheduling entity.

9. The system of claim 8 , wherein said third logic is operable to detect said resource conflict by determining whether one of a cache eviction rate, a translation lookaside buffer eviction rate, or contention for function execution units exceeds a threshold and whether an instruction retiral rate of said hardware threads is below an instruction retiral rate threshold.

10. The system of claim 8 , wherein said third logic is operable at a predetermined interval.

11. The system of claim 8 , wherein said fourth logic is operable to throttle an instruction fetch rate of one or more lower priority threads.

12. The system of claim 8 , further including readjusting said relative instruction execution rates of said hardware threads in said CPU if said instruction execution rate adjusting does not improve an instruction retiral rate of one or more threads.

13. The system of claim 8 , further including exiting said AT mode when said CPU is not executing in application thread context.

14. The system of claim 8 , further including logging an amount of time said at least two software threads are allowed to execute for use in subsequent software scheduling of said software threads, said software scheduling including increasing a priority of a first software thread whose instruction execution throughput was decreased during AT mode processing and decreasing a priority of a second software thread whose instruction execution throughput was increased during AT mode processing.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 6, 2019
From: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE LTD.
To: LENOVO INTERNATIONAL LIMITED
Reel/Frame 050300/0570 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNMENT DOCUMENT CONTAINING TYPO ERRORS PREVIOUSLY RECORDED AT REEL: 037101 FRAME: 0969. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Dec 28, 2015
From: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.
To: LENOVO INTERNATIONAL LIMITED
Reel/Frame 037689/0190 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 12, 2015
From: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.
To: LENOVO INTERNATIONAL LIMITED
Reel/Frame 037101/0969 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 10, 2014
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.
Reel/Frame 034194/0111 →