IP Library › Granted Patent US 8,918,587
Granted Patent B2
US 8,918,587 · App. 13/495,373 · Granted Dec 23, 2014

Multilevel cache hierarchy for finding a cache line on a remote node

Inventors: Timothy C. Bronson (Round Rock, TX); Garrett M. Drapala (Poughkeepsie, NY); Michael A. Blake (Wappingers Falls, NY); Craig R. Walters (Highland, NY); Pak-Kin Mak (Poughkeepsie, NY)
Assignee: International Business Machines Corporation
G06F12/0817G06F12/0811G06F12/123
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,918,587
App. No.
13/495,373
Granted
Dec 23, 2014
Kind
B2
Abstract

Embodiments relate to accessing a cache line on a multi-level cache system having a system memory. Based on a request for exclusive ownership of a specific cache line at the local node, requests are concurrently sent to the system memory and remote nodes of the plurality of nodes for the specific cache line by the local node. The specific cache line is found in a specific remote node. The specific remote node is one of the remote nodes. The specific cache line is removed from the specific remote node for exclusive ownership by another node. Based on the specified node having the specified cache line in ghost state, any subsequent fetch request is initiated for the specific cache line from the specific node encounters the ghost state. When the ghost state is encountered, the subsequent fetch request is directed only to nodes of the plurality of nodes.

Claims (29)

1. A computer program product for accessing a cache line on a multi-level cache system having a plurality of nodes comprising a local node and a plurality of remote nodes, the computer program product comprising:

a tangible non-transitory storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising:

based on a request for exclusive ownership of a specific cache line at the local node, concurrently sending requests to the system memory and the plurality of remote nodes for the specific cache line by the local node;

finding the specific cache line in a specific cache a specific remote node, the specific remote node being one of the plurality of nodes;

sending the specific cache line from the specific remote node to the local node;

saving the specific cache line in a local cache of the local node;

setting a directory state of the specific cache line to a ghost state in a respective cache directory in any cache of the plurality of remote nodes having the specific cache line, the ghost state indicating that the specific cache line has previously been removed for exclusive ownership by the local node, wherein a set of available directory states for a cache directory includes an invalid state and the ghost state, wherein the ghost state is distinct from the invalid state, and wherein the ghost state includes an identifier of the local node;

based on any remote node having the specific cache line in the ghost state, the ghost state indicating exclusive ownership of the specific cache line by the local node, for any subsequent fetch request for the specific cache line from any remote node, the subsequent fetch request is directed only to other nodes of the plurality of nodes without a concurrent fetch request to system memory for the specific cache line.

2. The computer program product as claimed in claim 1 wherein the plurality of nodes are level four (L4) caches.

3. The computer program product as claimed in claim 1 wherein the subsequent fetch is one of a read only fetch and an exclusive fetch.

4. The computer program product as claimed in claim 1 wherein the exclusive fetch sent from the local node is responsive to a cache miss on the local node.

5. The computer program product as claimed in claim 1 wherein the specific cache line corresponds to a specific row located in a least recently used (LRU) array, wherein a plurality of rows in the LRU array are tracked by age from most a recently used (MRU) row to a LRU row.

6. The computer program product as claimed in claim 1 wherein the plurality of nodes are part of a multilevel cache hierarchy.

7. The computer program product as claimed in claim 1 wherein the plurality of nodes are connected to one another and the system memory.

8. A computer system for accessing a cache line on a multi-level cache system having a plurality of nodes comprising a local node and plurality of remote nodes, the system comprising:

a system memory;

the local node in communication with the system memory; and

the plurality of remote nodes in communication with the local node and the system memory, the system configured to perform a method comprising:

based on a request for exclusive ownership of a specific cache line at the local node, concurrently sending requests to the system memory and the plurality of remote nodes for the specific cache line by the local node;

finding the specific cache line in a specific cache of a specific remote node, the specific remote node being one of the plurality of nodes;

sending the specific cache line from the specific remote node to the local node;

saving the specific cache line in a local cache of the local node;

setting a directory state of the specific cache line to a ghost state in a respective cache directory in any cache of the plurality of remote nodes having the specific cache line, the ghost state indicating that the specific cache line has previously been removed for exclusive ownership by the local node, wherein a set of available directory states for a cache directory includes an invalid state and the ghost state, wherein the ghost state is distinct from the invalid state, and wherein the ghost state includes an identifier of the local node;

based on any remote node having the specific cache line in the ghost state, the ghost state indicating exclusive ownership of the specific cache line by the local node, for any subsequent fetch request for the specific cache line from any remote node, the subsequent fetch request is directed only to other nodes of the plurality of nodes without a concurrent fetch request to system memory for the specific cache line.

9. The computer system as claimed in claim 8 wherein the plurality of nodes are level four (L4) caches.

10. The computer system as claimed in claim 8 wherein the subsequent fetch is one of a read only fetch and an exclusive fetch.

11. The computer system as claimed in claim 8 wherein the exclusive fetch sent from the local node is responsive to a cache miss on the local node.

12. The computer system as claimed in claim 8 wherein the specific cache line corresponds to a specific row located in a least recently used (LRU) array, wherein a plurality of rows in the LRU array are tracked by age from most a recently used (MRU) row to a LRU row.

13. The computer system as claimed in claim 8 wherein the plurality of remote nodes are part of a multilevel cache hierarchy.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 13, 2012
From: BRONSON, TIMOTHY C.; DRAPALA, GARRETT M.; BLAKE, MICHAEL A.; WALTERS, CRAIG R.; MAK, PAK-KIN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 028368/0039 →
Continuity (1)
Related Publication 20130339608A1 · Dec 19, 2013