Victim cache replacement
First Claim
1. A method of data processing in a data processing system including a processor core having an associated upper level cache having a lower access latency and a lower level victim cache having a higher access latency, said method comprising:
- filling the lower level victim cache with coherency granules evicted from the upper level cache, wherein at least some coherency granules held in the lower level cache are held simultaneously in the upper level cache;
in response to a memory access request of the processor core that missed in the upper level cache and that specifies a non-modifying access to a target coherency granule, determining whether the memory access request hits or misses in a directory of the lower level victim cache;
in response to determining that the memory access request hits in the lower level victim cache in a data-valid coherence state;
the lower level victim cache providing the target coherency granule of the memory access request to the upper level cache;
if the memory access request is of a first type, preserving the target coherency granule in the lower level victim cache and associating the target coherency granule in the lower level victim cache with a shared coherence state indicating the target coherency granule is held in both the upper level cache and the lower level victim cache; and
invalidating the target coherency granule in the lower level victim cache if the memory access request is of a second type.
1 Assignment
0 Petitions
Accused Products
Abstract
A data processing system includes a processor core having an associated upper level cache and a lower level victim cache. In response to a memory access request of the processor core that specifies a non-modifying access to a target coherency granule, a determination is made whether the memory access request hits or misses in a directory of the lower level victim cache. In response to determining that the memory access request hits in the lower level victim cache in a data-valid coherence state, the lower level victim cache provides the target coherency granule of the memory access request to the upper level cache. The lower level victim cache preserves the target coherency granule in the lower level victim cache in a shared coherence state if the memory access request is of a first type and invalidates the target coherency granule if the memory access request is of a second type.
123 Citations
21 Claims
-
1. A method of data processing in a data processing system including a processor core having an associated upper level cache having a lower access latency and a lower level victim cache having a higher access latency, said method comprising:
-
filling the lower level victim cache with coherency granules evicted from the upper level cache, wherein at least some coherency granules held in the lower level cache are held simultaneously in the upper level cache; in response to a memory access request of the processor core that missed in the upper level cache and that specifies a non-modifying access to a target coherency granule, determining whether the memory access request hits or misses in a directory of the lower level victim cache; in response to determining that the memory access request hits in the lower level victim cache in a data-valid coherence state; the lower level victim cache providing the target coherency granule of the memory access request to the upper level cache; if the memory access request is of a first type, preserving the target coherency granule in the lower level victim cache and associating the target coherency granule in the lower level victim cache with a shared coherence state indicating the target coherency granule is held in both the upper level cache and the lower level victim cache; and invalidating the target coherency granule in the lower level victim cache if the memory access request is of a second type. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A processing unit for a data processing system, the processing unit comprising:
-
a processor core; and a cache hierarchy including an upper level cache coupled to the processor core and a lower level victim cache coupled to the upper level cache, said upper level cache having a lower access latency and the lower level cache having a higher access latency, wherein the lower level victim cache is filled by eviction of coherency granules from the upper level cache and at least some coherency granules held in the lower level cache are held simultaneously in the upper level cache, each of the upper level cache and the lower level victim cache including a respective cache directory and a respective data array, wherein the lower level victim cache, responsive to a memory access request of the processor core that missed in the upper level cache and that specifies a non-modifying access to a target coherency granule, determines whether the memory access request hits or misses in a directory of the lower level victim cache, wherein responsive to determining that the memory access request hits in the lower level victim cache in a data-valid coherence state, the lower level victim cache provides the target coherency granule of the memory access request to the upper level cache and preserves the target coherency granule in the data array of the lower level victim cache if the memory access request is of a first type and invalidates the target coherency granule if the memory access request is of a second type, and wherein the lower level victim cache, if the target coherency granule is preserved in the data array of the lower level victim cache in response to the memory access request, associates the target coherency granule with a shared coherence state indicating the target coherency granule is held in both the upper level cache and the lower level victim cache in the directory of the lower level victim cache. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A data processing system, comprising:
-
at least one system memory; and a plurality of processing units coupled to the system memory, wherein a processing unit among the plurality of processing units includes; a processor core; and a cache hierarchy including an upper level cache coupled to the processor core and a lower level victim cache coupled to the upper level cache, said upper level cache having a lower access latency and the lower level cache having a higher access latency, wherein the lower level victim cache is filled by eviction of coherency granules from the upper level cache and at least some coherency granules held in the lower level cache are held simultaneously in the upper level cache, each of the upper level cache and the lower level victim cache including a respective cache directory and a respective data array, wherein the lower level victim cache, responsive to a memory access request of the processor core that missed in the upper level cache and that specifies a non-modifying access to a target coherency granule, determines whether the memory access request hits or misses in a directory of the lower level victim cache, wherein responsive to determining that the memory access request hits in the lower level victim cache in a data-valid coherence state, the lower level victim cache provides the target coherency granule of the memory access request to the upper level cache and preserves the target coherency granule in the data array of the lower level victim cache if the memory access request is of a first type and invalidates the target coherency granule if the memory access request is of a second type, and wherein the lower level victim cache, if the target coherency granule is preserved in the data array of the lower level victim cache in response to the memory access request, associates the target coherency granule with a shared coherence state indicating the target coherency granule is held in both the upper level cache and the lower level victim cache in the directory of the lower level victim cache. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
Specification