IP Library › Granted Patent US 10,963,380
Granted Patent B2
US 10,963,380 · App. 16/372,997 · Granted Mar 30, 2021

Cache miss thread balancing

Inventors: Gregory W. Alexander (Pflugerville, TX); Brian D. Barrick (Pflugerville, TX); Thomas W. Fox (Hopewell Junction, NY); Christian Jacobi (West Park, NY); Anthony Saporito (Highland, NY); Somin Song (Austin, TX); Aaron Tsai (Poughkeepsie, NY)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F12/0811G06F9/30047G06F12/0804G06F12/0813G06F12/0855G06F12/0859G06F12/0875G06F2212/452G06F2212/60G06F2212/62
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,963,380
App. No.
16/372,997
Granted
Mar 30, 2021
Kind
B2
Abstract

A simultaneous multithread (SMT) processor having a shared dispatch pipeline includes a first circuit that detects a cache miss thread. A second circuit determines a first cache hierarchy level at which the detected cache miss occurred. A third circuit determines a Next To Complete (NTC) group in the thread and a plurality of additional groups (X) in the thread. The additional groups (X) are dynamically configured based on the detected cache miss. A fourth circuit determines whether any groups in the thread are younger than the determined NTC group and the plurality of additional groups (X), and flushes all the determined younger groups from the cache miss thread.

Claims (46)

1. A method of balancing a cache miss thread, the method comprising:

determining a Next To Complete (NTC) group in the cache miss thread;

identifying a missed cache among a plurality of caches, and dynamically determining a number of additional groups (X) based on the identified missed cache; and

flushing all groups younger than the NTC group and the additional groups (X) from the cache miss thread,

wherein the additional groups (X) is configurable based on a cache hierarchy level at which the missed cache occurred.

2. The method of claim 1 , wherein the number of additional groups (X) is based on data latency.

3. The method of claim 2 , wherein the data latency is based on a first cache hierarchy level at which a detected cache miss occurred.

4. The method of claim 1 , further comprising:

identifying a second cache hierarchy level that is higher than the first cache hierarchy level;

determining that the detected cache miss is from the second cache hierarchy level;

determining the NTC group and a subset of the number of additional groups based on the second cache hierarchy level; and

flushing at least one additional flushed group in the cache miss thread that is younger than a NTC group and the subset of the plurality of additional groups.

5. The method of claim 1 , wherein the flush occurs after detecting a valid flush point.

6. The method of claim 5 , wherein prior to determining the younger groups, detecting the valid flush point comprises:

determining whether the NTC group and the number of additional groups (X) constitute a valid flush point; and

searching for larger values that define the number of additional groups (X) in response to determining the NTC group and the number of additional groups (X) define an invalid flush point.

7. A computer program product to perform cache miss thread balancing, the computer program product comprising a non-transitory computer readable storage medium having program instructions embodied therewith, the program instructions executable by an electronic computer processor to control a database processing system to perform:

determining a Next To Complete (NTC) group in the cache miss thread;

identifying a missed cache among a plurality of caches, and dynamically determining a number of additional groups (X) based on the identified missed cache; and

flushing all groups younger than the NTC group and the additional groups (X) from the cache miss thread,

wherein the additional groups (X) is configurable based on a cache hierarchy level at which the missed cache occurred.

8. The computer program product of claim 7 , wherein the number of additional groups (X) is based on data latency.

9. The computer program product of claim 8 , wherein the data latency is based on a first cache hierarchy level at which a detected cache miss occurred.

10. The computer program product of claim 7 , further comprising:

identifying a second cache hierarchy level that is higher than the first cache hierarchy level;

determining that the detected cache miss is from the second cache hierarchy level;

determining the NTC group and a subset of the number of additional groups based on the second cache hierarchy level; and

flushing at least one additional flushed group in the cache miss thread that is younger than a NTC group and the subset of the plurality of additional groups.

11. The computer program product of claim 7 , wherein the flush occurs after detecting a valid flush point.

12. The computer program product of claim 11 , wherein prior to determining the younger groups, detecting the valid flush point comprises:

determining whether the NTC group and the number of additional groups (X) constitute a valid flush point; and

searching for larger values that define the number of additional groups (X) in response to determining the NTC group and the number of additional groups (X) define an invalid flush point.

13. A simultaneous multithread (SMT) processor having a shared dispatch pipeline comprising:

a first circuit that determines a Next To Complete (NTC) group in a cache miss thread;

a second circuit that identifies a missed cache among a plurality of caches, and dynamically determines a number of additional groups (X) based on the identified missed cache; and

a third circuit that flushes all groups younger than the NTC group and the additional groups (X) from the cache miss thread,

wherein the additional groups (X) is configurable based on a cache hierarchy level at which the missed cache occurred.

14. The SMT processor of claim 13 , wherein the number of additional groups (X) is based on data latency.

15. The SMT processor of claim 14 , wherein the data latency is based on a first cache hierarchy level at which a detected cache miss occurred.

16. The SMT processor of claim 13 , wherein the second circuit identifies a second cache hierarchy level that is higher than the first cache hierarchy level, and wherein the SMT processor further comprises:

a fourth circuit that determines at least one additional flushed group in the cache miss thread;

a fifth circuit that determines that the detected cache miss is from the second cache hierarchy level;

a sixth circuit that determines the NTC group and a subset of the number of additional groups based on the second cache hierarchy level,

wherein the at least one additional flushed group in the cache miss thread is younger than a NTC group and the subset of the plurality of additional groups.

17. The SMT processor of claim 13 wherein the fourth circuit determines whether the NTC group and the number of additional groups (X) constitute a valid flush point.

18. The SMT processor of claim 17 , wherein based on a validity of the NTC group and the at least one additional group (X), the fourth circuit either flushes the stalled and/or resource-consuming target thread included in the cache miss based on the NTC group and the plurality of additional groups (X) in response to detecting the valid flush point, or blocks the flushing when the NTC group and the plurality of additional groups (X) is an invalid flush point.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 19, 2026
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: KIDON IP CORPORATION
Reel/Frame 074125/0530 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2026
From: KIDON IP CORPORATION
To: CAPROCK INTEGRATED TECHNOLOGIES LLC
Reel/Frame 073866/0504 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2026
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: KIDON IP CORPORATION
Reel/Frame 074975/0477 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 2, 2019
From: ALEXANDER, GREGORY W.; BARRICK, BRIAN D.; FOX, THOMAS W.; JACOBI, CHRISTIAN; SAPORITO, ANTHONY; SONG, SOMIN; TSAI, AARON
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 048769/0107 →
Continuity (2)
Continuation 15451858 · Mar 7, 2017
Related Publication 20190227932A1 · Jul 25, 2019