Handling castout cache lines in a victim cache
First Claim
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 Assignments
0 Petitions
Accused Products
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.
-
Citations
11 Claims
-
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. - View Dependent Claims (2, 3, 4)
-
-
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. - View Dependent Claims (6, 7)
-
-
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. - View Dependent Claims (9, 10, 11)
-
Specification