IP Library › Granted Patent US 8,499,124
Granted Patent B2
US 8,499,124 · App. 12/336,048 · Granted Jul 30, 2013

Handling castout cache lines in a victim cache

Inventors: Guy L. Guthrie (Austin, TX); Alvan W. Ng (Austin, TN); Michael S. Siegel (Raleigh, NC); William J. Starke (Round Rock, TX); Derek E. Williams (Austin, TX); Phillip G. Williams (Leander, TX)
Assignee: International Business Machines Corporation
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,499,124
App. No.
12/336,048
Granted
Jul 30, 2013
Kind
B2
Abstract

A victim cache memory includes a cache array, a cache directory of contents of the cache array, and a cache controller that controls operation of the victim cache memory. The cache controller, responsive to receiving a castout command identifying a victim cache line castout from another cache memory, causes the victim cache line to be held in the cache array. If the other cache memory is a higher level cache in the cache hierarchy of the processor core, the cache controller marks the victim cache line in the cache directory so that it is less likely to be evicted by a replacement policy of the victim cache, and otherwise, marks the victim cache line in the cache directory so that it is more likely to be evicted by the replacement policy of the victim cache.

Claims (42)

1. A method of cache management in a victim cache in a cache hierarchy of a processor core, said method comprising:

receiving a castout command identifying a victim cache line castout from another cache memory;

thereafter, holding the victim cache line in a cache array of the victim cache;

if said another cache memory is a higher level cache in the cache hierarchy of the processor core, updating a cache directory of the victim cache so that the victim cache line is less likely to be evicted by a replacement policy of the victim cache, and otherwise, updating the cache directory of the victim cache so that the victim cache line is more likely to be evicted by the replacement policy of the victim cache; and

updating the cache directory to indicate a coherence state for the victim cache line based at least in part on a prior coherence state at said another cache memory received with the castout command, wherein said updating includes:

updating the cache directory to indicate a first coherence state in response to a combined response of multiple snoopers to the castout command if the prior coherence state is the first coherence state; and

updating the cache directory independently of the combined response if the prior coherence state is a second coherence state.

2. The method of claim 1 , and further comprising receiving the victim cache line in conjunction with the castout command.

3. The method of claim 1 , wherein:

said cache directory includes:

a chronology vector indicating a relative access chronology for all of a plurality cache lines in a congruence class containing the victim cache line; and

an indication of class membership of each of the plurality of cache lines in one of multiple classes including at least a first class and a second class;

marking the victim cache line includes updating the indication of class membership to indicate the first class if said another cache memory is a higher level cache in the cache hierarchy of the processor core and otherwise updating the indication of class membership to indicate the second class if said another cache memory is not a higher level cache in the cache hierarchy of the processor core.

4. The method of claim 1 , wherein marking the victim cache line in the victim cache so that it is more likely to be evicted by the replacement policy of the victim cache comprises:

if said another cache memory is not a higher level cache in the cache hierarchy of the processor core, marking the victim cache line in the victim cache so that it is more likely to be evicted by the replacement policy of the victim cache.

5. A victim cache memory, comprising:

a cache array;

a cache directory of contents of the cache array, wherein said cache directory includes:

a chronology vector indicating a relative access chronology for all of a plurality cache lines in a congruence class containing the victim cache line; and

an indication of class membership of each of the plurality of cache lines in one of multiple classes including at least a first class and a second class; and

a cache controller that controls operation of the victim cache memory, wherein responsive to receiving a castout command identifying a victim cache line castout from another cache memory:

the cache controller updates the cache directory to indicate a coherence state for the victim cache line based at least in part on a prior coherence state at said another cache memory received with the castout command, wherein the cache controller updates the cache directory to indicate the first coherence state in response to a combined response of multiple snoopers to the castout command if the prior coherence state is the first coherence state and updates the cache directory independently of the combined response if the prior coherence state is a second coherence state; and

the cache controller causes the victim cache line to be held in the cache array, wherein if said another cache memory is a higher level cache in the cache hierarchy of the processor core, the cache controller updates the indication of class membership for the victim cache line so that the victim cache line is less likely to be evicted by a replacement policy of the victim cache, and if said another cache memory is not a higher level cache in the cache hierarchy of the processor core, updates the indication of class membership for the victim cache line so that the victim cache line is more likely to be evicted by the replacement policy of the victim cache.

6. The victim cache memory of claim 5 , wherein:

the victim cache memory receives the victim cache line in conjunction with the castout command.

7. The victim cache memory of claim 5 , wherein the cache controller marks the victim cache line in the cache directory so that it is more likely to be evicted by the replacement policy of the victim cache if said another cache memory is not a higher level cache in the cache hierarchy of the processor core.

8. A data processing system, comprising:

a processor core; and

a cache hierarchy coupled to the processor core, said cache hierarchy including a victim cache memory, said victim cache memory including

a cache array;

a cache directory of contents of the cache array, wherein said cache directory includes:

a chronology vector indicating a relative access chronology for all of a plurality cache lines in a congruence class containing the victim cache line; and

an indication of class membership of each of the plurality of cache lines in one of multiple classes including at least a first class and a second class; and

a cache controller that controls operation of the victim cache memory, wherein responsive to receiving a castout command identifying a victim cache line castout from another cache memory:

the cache controller updates the cache directory to indicate a coherence state for the victim cache line based at least in part on a prior coherence state at said another cache memory received with the castout command, wherein the cache controller updates the cache directory to indicate a first coherence state in response to a combined response of multiple snoopers to the castout command if the prior coherence state is the first coherence state and updates the cache directory independently of the combined response if the prior coherence state is a second coherence state; and

the cache controller causes the victim cache line to be held in the cache array, wherein if said another cache memory is a higher level cache in the cache hierarchy of the processor core, the cache controller updates the indication of class membership for the victim cache line so that the victim cache line is less likely to be evicted by a replacement policy of the victim cache, and if said another cache memory is not a higher level cache in the cache hierarchy of the processor core, updates the indication of class membership for the victim cache line so that the victim cache line is more likely to be evicted by the replacement policy of the victim cache.

9. The data processing system of claim 8 , wherein:

the victim cache memory receives the victim cache line in conjunction with the castout command.

10. The data processing system of claim 8 , wherein:

the processor core and cache hierarchy belong to a first processing unit; and

said data processing system further includes at least a second processing unit coupled to the first processing unit by an interconnect fabric.

11. The data processing system of claim 8 , wherein the cache controller marks the victim cache line in the cache directory so that it is more likely to be evicted by the replacement policy of the victim cache if said another cache memory is not a higher level cache in the cache hierarchy of the processor core.

Assignments (2)
CONFIRMATORY LICENSE Recorded Jul 30, 2009
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: DARPA
Reel/Frame 023030/0908 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 5, 2009
From: GUTHRIE, GUY L.; NG, ALVAN W.; SIEGEL, MICHAEL S.; STARKE, WILLIAM J.; WILLIAMS, DEREK E.; WILLIAMS, PHILLIP G.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 022641/0696 →
Continuity (1)
Related Publication 20100235576A1 · Sep 16, 2010