Lateral castout (LCO) of victim cache line in data-invalid state
First Claim
1. A method of data processing in a data processing system including a plurality of processing units including a first processing unit and a second processing unit coupled by an interconnect fabric, wherein the first processing unit has a first processor core having an associated first upper level cache and a first lower level cache, and wherein the second processing unit has a second processor core and an associated second upper level cache and second lower level cache, said method comprising:
- in response to a need to evict one of a plurality of cache lines in a congruence class of the first lower level cache;
selecting a victim cache line to be evicted from the congruence class of the first lower level cache;
determining, based at least on a coherence state of the victim cache line, whether to perform a lateral castout (LCO) to a lower level cache of another of the plurality of processing units or a castout to a system memory, wherein the determining includes determining to perform a LCO of a coherence state of the victim cache line in response to the victim cache line having a first data-invalid coherence state and determining to perform a castout of the coherence state of the victim cache line to the system memory in response to the victim cache line having a second data-invalid coherence state;
in response to determining to perform the LCO of the coherence state of the victim cache line, the first processing unit issuing a lateral castout (LCO) command on the interconnect fabric, wherein the LCO command identifies an address of the victim cache line to be evacuated from the first lower level cache, indicates the first data-invalid coherence state, and indicates that a lower level cache is an intended destination of the coherence state of the victim cache line; and
in response to a coherence response to the LCO command indicating success of the LCO command, evacuating the victim cache line from the first lower level cache and associating the address of the victim cache line with the first data-invalid coherence state in a directory of the second lower level cache, wherein the LCO command does not transfer data of the victim cache line from the first lower level cache to the second lower level cache.
1 Assignment
0 Petitions
Accused Products
Abstract
A victim cache line having a data-invalid coherence state is selected for castout from a first lower level cache of a first processing unit. The first processing unit issues on an interconnect fabric a lateral castout (LCO) command identifying the victim cache line to be castout from the first lower level cache, indicating the data-invalid coherence state, and indicating that a lower level cache is an intended destination of the victim cache line. In response to a coherence response to the LCO command indicating success of the LCO command, the victim cache line is removed from the first lower level cache and held in a second lower level cache of a second processing unit in the data-invalid coherence state.
-
Citations
20 Claims
-
1. A method of data processing in a data processing system including a plurality of processing units including a first processing unit and a second processing unit coupled by an interconnect fabric, wherein the first processing unit has a first processor core having an associated first upper level cache and a first lower level cache, and wherein the second processing unit has a second processor core and an associated second upper level cache and second lower level cache, said method comprising:
-
in response to a need to evict one of a plurality of cache lines in a congruence class of the first lower level cache; selecting a victim cache line to be evicted from the congruence class of the first lower level cache; determining, based at least on a coherence state of the victim cache line, whether to perform a lateral castout (LCO) to a lower level cache of another of the plurality of processing units or a castout to a system memory, wherein the determining includes determining to perform a LCO of a coherence state of the victim cache line in response to the victim cache line having a first data-invalid coherence state and determining to perform a castout of the coherence state of the victim cache line to the system memory in response to the victim cache line having a second data-invalid coherence state; in response to determining to perform the LCO of the coherence state of the victim cache line, the first processing unit issuing a lateral castout (LCO) command on the interconnect fabric, wherein the LCO command identifies an address of the victim cache line to be evacuated from the first lower level cache, indicates the first data-invalid coherence state, and indicates that a lower level cache is an intended destination of the coherence state of the victim cache line; and in response to a coherence response to the LCO command indicating success of the LCO command, evacuating the victim cache line from the first lower level cache and associating the address of the victim cache line with the first data-invalid coherence state in a directory of the second lower level cache, wherein the LCO command does not transfer data of the victim cache line from the first lower level cache to the second lower level cache. - View Dependent Claims (2, 3, 4, 5, 15, 16)
-
-
6. A data processing system, comprising:
-
an interconnect fabric; and a plurality of processing units coupled to the interconnect fabric, the plurality of processing units including a first processing unit and a second processing unit, wherein the first processing unit has a first processor core and associated first upper and first lower level caches, and wherein the second processing unit has a second processor core and associated second upper and lower level caches; wherein the first lower level cache includes; a data array including a plurality of congruence classes including a congruence class containing a plurality of cache lines, and a directory of the data array; wherein the first processing unit, responsive to a need to evict one of the plurality of cache lines, selects a victim cache line to be evicted from the congruence class of the first lower level cache and determines, based at least on a coherence state of the victim cache line, whether to perform a lateral castout (LCO) to a lower level cache of another of the plurality of processing units or a castout to a system memory, wherein the first processing unit determines to perform a LCO of a coherence state of the victim cache line responsive to the victim cache line having a first data-invalid coherence state and determines to perform a castout of the coherence state of the victim cache line to the system memory responsive to the victim cache line having a second data-invalid coherence state; wherein the first processing unit, responsive to determining to perform the LCO of the coherence state of the victim cache line, issues a lateral castout (LCO) command on the interconnect fabric, wherein the LCO command identifies an address of the victim cache line to be evacuated from the first lower level cache, indicates the first data-invalid coherence state, and indicates that a lower level cache is an intended destination of the coherence state of the victim cache line; and wherein responsive to a coherence response to the LCO command indicating success of the LCO command, the first processing unit evacuates the victim cache line from the first lower level cache and a directory of the second lower level cache associates the address of the victim cache line with the first data-invalid coherence state, wherein the LCO command does not transfer data of the victim cache line from the first lower level cache to the second lower level cache. - View Dependent Claims (7, 8, 9, 10, 17, 18)
-
-
11. A processing unit for a data processing system including a plurality of processing units coupled by an interconnect fabric, the processing unit comprising:
-
a first processor core and associated first upper and first lower level caches, wherein the first lower level cache includes; a data array including a plurality of congruence classes including a congruence class containing a plurality of cache lines, and a directory of the data array; wherein the processing unit, responsive to a need to evict one of the plurality of cache lines, selects a victim cache line to be evicted from the congruence class of the first lower level cache and determines, based at least on a coherence state of the victim cache line, whether to perform a lateral castout (LCO) to a lower level cache of another of the plurality of processing units or a castout to a system memory, wherein the first processing unit determines to perform a LCO of a coherence state of the victim cache line responsive to the victim cache line having a first data-invalid coherence state and determines to perform a castout of the coherence state of the victim cache line to the system memory responsive to the victim cache line having a second data-invalid coherence state; wherein the processing unit, responsive to determining to perform the LCO of the coherence state of the victim cache line, issues a lateral castout (LCO) command on the interconnect fabric, wherein the LCO command identifies an address of the victim cache line to be evacuated from the first lower level cache, indicates the first data-invalid coherence state, and indicates that a lower level cache is an intended destination of the coherence state of the victim cache line; and wherein responsive to a coherence response to the LCO command indicating success of the LCO command, the processing unit evacuates the victim cache line from the first lower level cache for association by a directory of a second lower level cache with the first data-invalid coherence state, wherein the LCO command does not transfer data of the victim cache line from the first lower level cache to the second lower level cache. - View Dependent Claims (12, 13, 14, 19, 20)
-
Specification