IP Library › Granted Patent US 10,733,103
Granted Patent B2
US 10,733,103 · App. 15/839,975 · Granted Aug 4, 2020

Non-blocking directory-based cache coherence

Inventor: Burkhard Steinmacher-Burow (Esslingen am Neckar, DE)
Assignee: International Business Machines Corporation
G06F12/0828G06F12/084G06F12/0817G06F12/1009G06F12/1027G06F2212/621G06F2212/65
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,733,103
App. No.
15/839,975
Granted
Aug 4, 2020
Kind
B2
Abstract

A computer implemented method for managing cache requests includes creating a transient table including records corresponding to one or more participant caches in a system, receiving a new request with respect to an address, wherein the request includes one or more controller actions to be executed, and wherein the request corresponds to one of the one or more participant caches in the system, determining whether an entry exists in the directory table corresponding to the address indicated by the received request, determining whether an entry exists in the transient table for the address indicated by the received request, processing the transient entry indicated by the index in the directory entry to provide a current state of the address indicated by the received request, and appropriating requested controller actions according to the directory table entry, the transient entry, and the received request.

Claims (37)

1. A computer implemented method comprising:

creating a transient table including records corresponding to one or more participant caches in a system, wherein each entry of the created transient table provides a current state of a cache line at all the participant caches in the system;

adding a single transient bit to one or more entries of a directory table, wherein the transient bit indicates whether or not an address indicated by a directory table entry is stable, and wherein an entry is considered stable when there are no outstanding requests to or from a corresponding address;

receiving a new request with respect to an address, wherein the new request includes one or more controller actions to be executed, and wherein the new request corresponds to one of the one or more participant caches in the system;

determining whether an entry exists in the directory table corresponding to the address indicated by the received new request;

responsive to determining that an entry exists in the directory table corresponding to the address indicated by the received new request, determining whether an entry exists in the transient table for the address indicated by the received new request;

responsive to determining that an entry exists in the transient table for the address indicated by the received request, processing the transient entry indicated by an index in the directory entry to provide a current state of the address indicated by the received request;

appropriating requested controller actions according to the directory table entry, the transient entry, and the received request; and

updating the single transient bit in the directory table corresponding to the address indicated by the received request to reflect the current state of the address indicated by the received request.

2. The computer implemented method of claim 1 , wherein each entry of the created transient table indicates whether there are any unresolved requests either sent by or received by the corresponding participant cache.

3. The computer implemented method of claim 1 , further comprising adding an index to one or more entries of the directory table, the index indicating where a corresponding entry in the transient table is located.

4. A computer program product comprising:

one or more computer readable storage media and program instructions stored on the one or more computer readable storage media, the program instructions comprising instructions to:

create a transient table including records corresponding to one or more participant caches in a system, wherein each entry of the created transient table provides a current state of a cache line at all the participant caches in the system;

add a single transient bit to one or more entries of a directory table, wherein the transient bit indicates whether or not an address indicated by a directory table entry is stable, and wherein an entry is considered stable when there are no outstanding requests to or from a corresponding address;

receive a new request with respect to an address, wherein the new request includes one or more controller actions to be executed, and wherein the new request corresponds to one of the one or more participant caches in the system;

determine whether an entry exists in the directory table corresponding to the address indicated by the received new request;

responsive to determining that an entry exists in the directory table corresponding to the address indicated by the received new request, determine whether an entry exists in the transient table for the address indicated by the received new request;

responsive to determining that an entry exists in the transient table for the address indicated by the received request, process the transient entry indicated by an index in the directory entry to provide a current state of the address indicated by the received request;

appropriate requested controller actions according to the directory table entry, the transient entry, and the received request; and

update the single transient bit in the directory table corresponding to the address indicated by the received request to reflect the current state of the address indicated by the received request.

5. The computer program product of claim 4 , wherein each entry of the created transient table indicates whether there are any unresolved requests either sent by or received by the corresponding participant cache.

6. The computer program product of claim 4 , further comprising adding an index to one or more entries of the directory table indicating where a corresponding entry in the transient table is located.

7. A computer system comprising:

one or more computer processors;

one or more computer readable storage media;

program instructions stored on the one or more computer readable storage media, the program instructions comprising instructions to:

create a transient table including records corresponding to one or more participant caches in a system, wherein each entry of the created transient table provides a current state of a cache line at all the participant caches in the system;

add a single transient bit to one or more entries of a directory table, wherein the transient bit indicates whether or not an address indicated by a directory table entry is stable, and wherein an entry is considered stable when there are no outstanding requests to or from a corresponding address;

receive a new request with respect to an address, wherein the new request includes one or more controller actions to be executed, and wherein the new request corresponds to one of the one or more participant caches in the system;

determine whether an entry exists in the directory table corresponding to the address indicated by the received new request;

responsive to determining that an entry exists in the directory table corresponding to the address indicated by the received new request, determine whether an entry exists in the transient table for the address indicated by the received new request;

responsive to determining that an entry exists in the transient table for the address indicated by the received request, process the transient entry indicated by an index in the directory entry to provide a current state of the address indicated by the received request;

appropriate requested controller actions according to the directory table entry, the transient entry, and the received request; and

update the single transient bit in the directory table corresponding to the address indicated by the received request to reflect the current state of the address indicated by the received request.

8. The computer system of claim 7 , wherein each entry of the created transient table indicates whether there are any unresolved requests either sent by or received by the corresponding participant cache.

9. The computer system of claim 7 , further comprising adding an index to one or more entries of the directory table indicating where a corresponding entry in the transient table is located.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 13, 2017
From: STEINMACHER-BUROW, BURKHARD
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 044377/0734 →
Continuity (1)
Related Publication 20190179753A1 · Jun 13, 2019