IP Library Granted Patent US 10,956,328
Granted Patent B2
US 10,956,328 · App. 16/436,159 · Granted Mar 23, 2021

Selective downstream cache processing for data access

Inventors: Willm Hinrichs (Holzgerlingen, DE); Markus Kaltenbach (Holzgerlingen, DE); Eyal Naor (Tel Aviv, IL); Martin Recktenwald (Schoenaich, DE)
Assignee: International Business Machines Corporation
G06F12/0828G06F9/467G06F12/0811G06F2212/60G06F2212/621
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,956,328
App. No.
16/436,159
Granted
Mar 23, 2021
Kind
B2
Abstract

A first request is received to access a first set of data in a first cache. A likelihood that a second request to a second cache for the first set of data will be canceled is determined. Access to the first set of data is completed based on the determining the likelihood that the second request to the second cache for the first set of data will be canceled.

Claims (60)

1. A computer-implemented method comprising:

receiving a first request to access a first set of data in a first cache;

predicting whether there will likely be a hit or a miss in the first cache;

generating a second request to access the first set of data in a second cache;

determining a likelihood that the second request will be canceled;

determining that the second request to the second cache for the first set of data will likely be canceled; and

buffering, in response to the determining that the second request to the second cache for the first set of data will likely be canceled, the second request to at least prevent transmitting of the second request to the second cache;

wherein predicting whether there will likely be the hit or the miss in the first cache comprises:

forcing a prediction of a hit in response to determining that a cache line in the first cache is to be promoted from shared status to exclusive status; and

forcing a prediction of a miss in response to determining that the first cache is busy using a task threshold.

2. The method of claim 1 , further comprising:

determining, via a directory lookup, that there is an actual cache hit in the first cache; and

canceling, in response to the determining that there is an actual cache hit in the first cache, the second request to the second cache, wherein the second request is not transmitted to the second cache.

3. The method of claim 1 , further comprising:

determining, via a directory lookup, that there is an actual cache miss in the first cache;

and;

transmitting, based on the determining that there is an actual cache miss in the first cache, the second request to the second cache.

4. The method of claim 1 , wherein the first cache is a level two (L2) cache and the second cache is a level three (L3) cache, the method further comprising:

predicting that there will be a cache miss in the L2 cache for the first request;

sending, in response to the predicting, the first request to arbitration;

receiving a third request for a second set of data in the L2 cache;

predicting that there will be a cache hit in the L2 cache for the third request; and

in response to determining that a directory indicates an actual cache miss for the second set of data, sending the third request to the arbitration.

5. The method of claim 1 , wherein the generating the second request is performed prior to completion of a directory lookup indicating an actual hit or actual miss for the first request.

6. The method of claim 1 , wherein determining the likelihood that the second request will be canceled includes generating a cancel probability score for the second request, the cancel probability score indicating a probability that the second request will be canceled.

7. The method of claim 6 , wherein determining the likelihood that the second request will be canceled further comprises comparing the cancel probability score to a threshold.

8. The method of claim 6 , wherein the method further comprises:

responsive to the cancel probability score indicating a low probability that the second request will be canceled, transmitting the second request to the second cache; and

responsive to the cancel probability score indicating a high probability that the second request will be canceled, delaying the second request.

9. The method of claim 6 , wherein the cancel probability score is based on at least one of the group consisting of the workload of the first cache, whether the first cache is read-only or write-only, and the exclusive or shared status of a processor coupled to the first cache.

10. The method of claim 6 , wherein the cancel probability score is based on a quantity of task handing currently on the first cache.

11. The method of claim 10 , the method further comprising:

determining that the cancel probability score indicates a low probability that the second request will be canceled based on the quantity of task handling on the first cache exceeding a threshold such that retrieving the first set of data from the second cache will decrease fetch latency for the first set of data.

12. The method of claim 1 , wherein buffering the second request includes storing the second request in a buffer in the first cache.

13. The method of claim 1 , wherein determining that the second request to the second cache for the first set of data will likely be canceled includes predicting whether there will likely be the hit or the miss in the first cache.

14. A method comprising:

receiving a first request to access a first set of data in a first cache;

predicting whether there will likely be a hit or a miss in the first cache;

initiating a determination of whether there is an actual hit or actual miss in the first cache;

generating a second request to a second cache to access the first set of data from the second cache;

generating a cancel probability score for the second request, the cancel probability score indicating a probability that the second request will be canceled; and

performing, based on the cancel probability score for the second request, a first action to facilitate access of the first set of data, the performing of the first action occurring before completion of the determination of whether there is an actual hit or actual miss in the first cache;

wherein predicting whether there will likely be the hit or the miss in the first cache comprises:

forcing a prediction of a hit in response to determining that a cache line in the first cache is to be promoted from shared status to exclusive status; and

forcing a prediction of a miss in response to determining that the first cache is busy using a task threshold.

15. The method of claim 14 , wherein the cancel probability score is based on at least one of the group consisting of the workload of the first cache, whether the first cache is read-only or write-only, and the exclusive or shared status of a processor coupled to the first cache.

16. The method of claim 14 , wherein the performing the first action to facilitate access of the first set of data comprises:

responsive to the cancel probability score indicating a low probability that the second request will be canceled, transmitting the second request to the second cache; and

responsive to the cancel probability score indicating a high probability that the second request will be canceled, delaying the second request.

17. The method of claim 16 , wherein delaying the second request includes storing the second request in a buffer in the first cache.

18. The method of claim 14 , wherein generating the cancel probability score includes predicting whether there will likely be a hit or a miss in the first cache.

19. A method comprising:

receiving a first request to access a first set of data in a first memory;

predicting whether there will likely be a hit or a miss in the first memory;

initiating, in parallel with the predicting whether there will likely be the hit or the miss in the first memory, a determination of whether there is an actual hit or actual miss in the first memory;

generating, in response to determining that there will likely be the hit in the first memory, a second request to a second memory to access the first set of data from the second memory; and

buffering the second request until the determination of whether the is an actual hit or miss in the first memory is complete;

wherein predicting whether there will likely be the hit or the miss in the first memory comprises:

forcing a prediction of a hit in response to determining that a cache line in the first memory is to be promoted from shared status to exclusive status; and

forcing a prediction of a miss in response to determining that the first memory is busy using a task threshold.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 10, 2019
From: HINRICHS, WILLM; KALTENBACH, MARKUS; NAOR, EYAL; RECKTENWALD, MARTIN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 049421/0242 →
Continuity (3)
Continuation 15813751 · Nov 15, 2017
Continuation 15649186 · Jul 13, 2017
Related Publication 20190294544A1 · Sep 26, 2019