Selective cache-to-cache lateral castouts
First Claim
1. A data processing system, comprising:
- an interconnect fabric;
a system memory coupled to the 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;
a cache array in the first lower level cache, wherein the cache array includes a congruence class including a plurality of cache lines;
a cache directory in the first lower level cache, wherein the cache directory includes;
a chronology vector indicating a chronological access order of the plurality of cache lines in the congruence class;
a plurality of confidence indicators each associated with a respective one of the plurality of cache lines in the congruence class;
wherein the first lower level cache sets the respective associated one of the plurality of confidence indicators to indicate a lateral castout (LCO) in response to the first processor core accessing the associated cache line while the associated cache line has a position in the chronological access order at least as recent as a predetermined position;
wherein the first lower level cache, responsive to a data request, selects a victim cache line to be castout from among the plurality of cache lines in the congruence class of the first lower level cache and decides, based upon the confidence indicator associated with the victim cache line, between performing a lateral castout (LCO) of the victim cache line to another lower level cache and a castout of the victim cache line to the system memory;
wherein the first processing unit, responsive to the first lower level cache deciding to perform the LCO, issues a lateral castout (LCO) command on the interconnect fabric and removes the victim cache line from the first lower level cache; and
wherein the second lower level cache, responsive to the LCO command, holds the victim cache line.
1 Assignment
0 Petitions
Accused Products
Abstract
A data processing system includes first and second processing units and a system memory. The first processing unit has first upper and first lower level caches, and the second processing unit has second upper and lower level caches. In response to a data request, a victim cache line to be castout from the first lower level cache is selected, and the first lower level cache selects between performing a lateral castout (LCO) of the victim cache line to the second lower level cache and a castout of the victim cache line to the system memory based upon a confidence indicator associated with the victim cache line. In response to selecting an LCO, the first processing unit issues an LCO command on the interconnect fabric and removes the victim cache line from the first lower level cache, and the second lower level cache holds the victim cache line.
-
Citations
16 Claims
-
1. A data processing system, comprising:
-
an interconnect fabric; a system memory coupled to the 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; a cache array in the first lower level cache, wherein the cache array includes a congruence class including a plurality of cache lines; a cache directory in the first lower level cache, wherein the cache directory includes; a chronology vector indicating a chronological access order of the plurality of cache lines in the congruence class; a plurality of confidence indicators each associated with a respective one of the plurality of cache lines in the congruence class; wherein the first lower level cache sets the respective associated one of the plurality of confidence indicators to indicate a lateral castout (LCO) in response to the first processor core accessing the associated cache line while the associated cache line has a position in the chronological access order at least as recent as a predetermined position; wherein the first lower level cache, responsive to a data request, selects a victim cache line to be castout from among the plurality of cache lines in the congruence class of the first lower level cache and decides, based upon the confidence indicator associated with the victim cache line, between performing a lateral castout (LCO) of the victim cache line to another lower level cache and a castout of the victim cache line to the system memory; wherein the first processing unit, responsive to the first lower level cache deciding to perform the LCO, issues a lateral castout (LCO) command on the interconnect fabric and removes the victim cache line from the first lower level cache; and wherein the second lower level cache, responsive to the LCO command, holds the victim cache line. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A processing unit for a data processing system including a plurality of processing units coupled by an interconnect fabric, wherein the processing unit is first processing unit among the plurality of processing units and the plurality of processing units further includes a second processing unit including a second processor core and associated second upper and lower level caches, the first processing unit comprising:
-
a first processor core and associated first upper and first lower level caches; a cache array in the first lower level cache, wherein the cache array includes a congruence class including a plurality of cache lines; a cache directory in the first lower level cache, wherein the cache directory includes; a chronology vector indicating a chronological access order of the plurality of cache lines in the congruence class; a plurality of confidence indicators each associated with a respective one of the plurality of cache lines in the congruence class; wherein the first lower level cache sets the respective associated one of the plurality of confidence indicators to indicate a lateral castout (LCO) in response to the first processor core accessing the associated cache line while the associated cache line has a position in the chronological access order at least as recent as a predetermined position; wherein the first lower level cache, responsive to a data request, selects a victim cache line to be castout from among the plurality of cache lines in the congruence class of the first lower level cache and decides, based upon the confidence indicator associated with the victim cache line, between performing a lateral castout (LCO) of the victim cache line to another lower level cache and a castout of the victim cache line to the system memory; and wherein the first processing unit, responsive to the first lower level cache deciding to perform the LCO, issues a lateral castout (LCO) command on the interconnect fabric and removes the victim cache line from the first lower level cache, such that, responsive to the LCO command, the second lower level cache holds the victim cache line. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
Specification