Data cache scrub mechanism for large L2/L3 data cache structures
First Claim
1. A method of reducing double-bit errors in a cache memory of a computer system, comprising the steps of:
- periodically issuing a series of purge commands to the cache memory;
sequentially flushing cache lines from the cache memory to a lower level memory device of the computer system in response to said issuing step to eventually flush all cache lines from the cache memory; and
correcting errors in the cache lines as they are flushed to the lower level memory device.
1 Assignment
0 Petitions
Accused Products
Abstract
A method of reducing errors in a cache memory of a computer system (e.g., an L2 cache) by periodically issuing a series of purge commands to the L2 cache, sequentially flushing cache lines from the L2 cache to an L3 cache in response to the purge commands, and correcting errors (single-bit) in the cache lines as they are flushed to the L3 cache. Purge commands are issued only when the processor cores associated with the L2 cache have an idle cycle available in a store pipe to the cache. The flush rate of the purge commands can be programmably set, and the purge mechanism can be implemented either in software running on the computer system, or in hardware integrated with the L2 cache. In the case of the software, the purge mechanism can be incorporated into the operating system. In the case of hardware, a purge engine can be provided which advantageously utilizes the store pipe that is provided between the L1 and L2 caches. The L2 cache can be forced to victimize cache lines, by setting tag bits for the cache lines to a value that misses in the L2 cache (e.g., cache-inhibited space). With the eviction mechanism of the cache placed in a direct-mapped mode, the address misses will result in eviction of the cache lines, thereby flushing them to the L3 cache.
34 Citations
24 Claims
-
1. A method of reducing double-bit errors in a cache memory of a computer system, comprising the steps of:
-
periodically issuing a series of purge commands to the cache memory; sequentially flushing cache lines from the cache memory to a lower level memory device of the computer system in response to said issuing step to eventually flush all cache lines from the cache memory; and correcting errors in the cache lines as they are flushed to the lower level memory device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A purge mechanism for a cache memory of a computer system, comprising:
-
means for periodically issuing a series of purge commands to the cache memory; means for sequentially flushing cache lines from the cache memory to a lower level memory device of the computer system in response to said issuing means to eventually flush all cache lines from the cache memory; and means for correcting errors in the cache lines as they are flushed to the lower level memory device. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A computer system comprising:
-
one or more processing cores; a main memory device; at least one cache memory connected to said one or more processing cores and said main memory device; a purge mechanism which periodically issues a series of purge commands that sequentially flush cache lines from said cache memory to a lower level memory device of the computer system to eventually flush all cache lines from the cache memory; and error correction code (ECC) logic which corrects errors in the cache lines as they are flushed to said lower level memory device. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
-
Specification