System and method for canceling write back operation during simultaneous snoop push or snoop kill operation in write back caches
First Claim
Patent Images
1. A cache memory, comprising:
- a data array configured to store data, and comprising at least a first cache line and a second cache line;
read and claim logic adapted to receive a memory access request;
snoop logic adapted for coupling to a system bus and configured to handle a snoop operation transmitted via the system bus;
write back logic coupled to the read and claim logic and to the snoop logic;
a directory coupled to the data array, the read and claim logic, the write back logic, and the snoop logic, wherein the directory is configured to store information regarding data stored in the data array;
wherein the read and claim logic is configured to issue a write back request to the write back logic in the event data specified by the memory access request is not stored in the first cache line of the data array and there is no room in the data array;
wherein the write back logic is farther configured to determine whether there is a pending snoop operation on the first cache line, in the event the read and claim logic issues a write back request;
wherein the write back logic is further configured to cancel the write back request, in the event there is a pending snoop on the first cache line;
wherein the write back logic is further configured to determine whether there is a pending snoop operation on at least the second cache line, in the event the read and claim logic issues a write back request; and
wherein the write back logic is further configured to cancel the write back request, in the event there is a pending snoop on the second cache line.
4 Assignments
0 Petitions
Accused Products
Abstract
A cache write back operation, write back modified data to memory from cache data array to fix inconsistency between them can be cancelled by the results of a comparison of the progress between a write back and snoop push or snoop kill operation. Write back is intended to make an empty slot to accommodate a reload data due to a cache miss and since a snoop push or snoop kill operation creates an invalid entry in the cache, write back is not needed. If simultaneous push or kill with write back operation exist, then write back machine is late cancelled. System performance improves due to preserving more cache lines in cache data array for possible future reuse.
-
Citations
18 Claims
-
1. A cache memory, comprising:
-
a data array configured to store data, and comprising at least a first cache line and a second cache line; read and claim logic adapted to receive a memory access request; snoop logic adapted for coupling to a system bus and configured to handle a snoop operation transmitted via the system bus; write back logic coupled to the read and claim logic and to the snoop logic; a directory coupled to the data array, the read and claim logic, the write back logic, and the snoop logic, wherein the directory is configured to store information regarding data stored in the data array; wherein the read and claim logic is configured to issue a write back request to the write back logic in the event data specified by the memory access request is not stored in the first cache line of the data array and there is no room in the data array; wherein the write back logic is farther configured to determine whether there is a pending snoop operation on the first cache line, in the event the read and claim logic issues a write back request; wherein the write back logic is further configured to cancel the write back request, in the event there is a pending snoop on the first cache line; wherein the write back logic is further configured to determine whether there is a pending snoop operation on at least the second cache line, in the event the read and claim logic issues a write back request; and wherein the write back logic is further configured to cancel the write back request, in the event there is a pending snoop on the second cache line. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method for improving cache performance in a cache memory comprising a plurality of cache lines comprising at least a first cache line and a second cache line, the method comprising:
-
receiving a read request comprising requested data; determining whether the requested data is stored in the cache memory; in the event that the requested data is not stored in the cache memory, determining whether the cache memory is full; in the event that the cache memory is full, selecting the first cache line as a victim cache line from among the plurality of cache lines; determining whether the first cache line is modified; in the event the first cache line is modified, determining whether a write back is required; in the event a write back is required, determining whether there is a pending snoop operation on the first cache line; in the event there is a pending snoop on the first cache line, cancelling the required write back; in the event a write back is required, determining whether there is a pending snoop operation on at least the second cache line; and in the event there is a pending snoop on the second cache line, cancelling the required write back. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A computer program product for improving cache performance in a cache memory comprising a plurality of cache lines comprising at least a first cache line and a second cache line, the computer program product having a computer-readable storage medium with a computer program embodied thereon, the computer program comprising:
- computer program code for receiving a read request comprising requested data;
computer program code for determining whether the requested data is stored in the cache memory;
computer program code for, in the event that the requested data is not stored in the cache memory, determining whether the cache memory is full;
computer program code for, in the event that the cache memory is full, selecting the first cache line as a victim cache line from among the plurality of cache lines;
computer program code for determining whether the first cache line is modified;
computer program code for, in the event the first cache line is modified, determining whether a write back is required;
computer program code for, in the event a write back is required, determining whether there is a pending snoop operation on the first cache line;computer program code for, in the event there is a pending snoop on the first cache line, cancelling the required write back;
computer program code for, in the event a write back is required, determining whether there is a pending snoop operation on at least the second cache line;
, and computer program code for, in the event there is a pending snoop on the second cache line, cancelling the required write back. - View Dependent Claims (14, 15, 16, 17, 18)
- computer program code for receiving a read request comprising requested data;
Specification