Level One Data Cache Line Lock and Enhanced Snoop Protocol During Cache Victims and Writebacks to Maintain Level One Data Cache and Level Two Cache Coherence
First Claim
1. A data processing system comprising:
- a central processing unit executing program instructions to manipulate data;
a first level data cache connected to said central processing unit temporarily storing in a plurality of cache lines data for manipulation by said central processing unit;
a second level memory connected to said first level cache including second level cache temporarily storing in a plurality of cache lines data for manipulation by said central processing unit and a second level local memory directly addressable by said central processing unit; and
a direct memory access unit connected to said central processing unit controlling data transfer, said direct memory access unit operating under control of said central processing unit to control data transfers including transferring data into said second level local memory;
a first level cache controller connected to said first level cache capable controlling data transfers into and out of said first level cache includinga first victim buffer having a plurality of entries, each entry storing an address corresponding to data stored in a cache line selected for replacement and said cache line, an entry initiated upon selection of a cache line for eviction and retired upon committing said cache line,a snoop write port receiving write data and a corresponding address, anda first victim comparator connected to said first victim buffer and said snoop write port comparing said address of each entry in said first victim buffer to said snoop write address,said first level cache controller enabling a write of said snoop write data into a corresponding entry in said first victim buffer when said victim comparator detects a match between a snoop write address and a victim address in said victim buffer;
a second level memory controller connected to said first level cache operation unit and said second level cache controlling data transfers into and out of said second level cache, said second level cache includinga second victim buffer having a plurality of entries, each entry storing an address corresponding to data stored in said cache line selected for replacement and said cache line, an entry initiated upon receipt from said first level cache controller and upon storing said cache line to said second level memory,a direct memory access write port receiving write data and a corresponding address of a direct memory access unit controlled data transfer, anda second victim comparator connected to said second victim buffer and said direct memory access write port comparing said address of each entry in said second victim buffer to said direct memory access write address,said second level memory controller enabling a write of said direct memory access write data into a corresponding entry in said second victim buffer if said second victim comparator detects a match between a direct memory access write address and a victim address in said second victim buffer and enabling a snoop write to said first level cache controller if said second victim comparator does not detect a match between a direct memory access write address and a victim address in said second victim buffer.
1 Assignment
0 Petitions
Accused Products
Abstract
This invention assures cache coherence in a multi-level cache system upon eviction of a higher level cache line. A victim buffer stored data on evicted lines. On a DMA access that may be cached in the higher level cache the lower level cache sends a snoop write. The address of this snoop write is compared with the victim buffer. On a hit in the victim buffer the write completes in the victim buffer. When the victim data passes to the next cache level it is written into a second victim buffer to be retired when the data is committed to cache. DMA write addresses are compared to addresses in this second victim buffer. On a match the write takes place in the second victim buffer. On a failure to match the controller sends a snoop write.
-
Citations
2 Claims
-
1. A data processing system comprising:
-
a central processing unit executing program instructions to manipulate data; a first level data cache connected to said central processing unit temporarily storing in a plurality of cache lines data for manipulation by said central processing unit; a second level memory connected to said first level cache including second level cache temporarily storing in a plurality of cache lines data for manipulation by said central processing unit and a second level local memory directly addressable by said central processing unit; and a direct memory access unit connected to said central processing unit controlling data transfer, said direct memory access unit operating under control of said central processing unit to control data transfers including transferring data into said second level local memory; a first level cache controller connected to said first level cache capable controlling data transfers into and out of said first level cache including a first victim buffer having a plurality of entries, each entry storing an address corresponding to data stored in a cache line selected for replacement and said cache line, an entry initiated upon selection of a cache line for eviction and retired upon committing said cache line, a snoop write port receiving write data and a corresponding address, and a first victim comparator connected to said first victim buffer and said snoop write port comparing said address of each entry in said first victim buffer to said snoop write address, said first level cache controller enabling a write of said snoop write data into a corresponding entry in said first victim buffer when said victim comparator detects a match between a snoop write address and a victim address in said victim buffer; a second level memory controller connected to said first level cache operation unit and said second level cache controlling data transfers into and out of said second level cache, said second level cache including a second victim buffer having a plurality of entries, each entry storing an address corresponding to data stored in said cache line selected for replacement and said cache line, an entry initiated upon receipt from said first level cache controller and upon storing said cache line to said second level memory, a direct memory access write port receiving write data and a corresponding address of a direct memory access unit controlled data transfer, and a second victim comparator connected to said second victim buffer and said direct memory access write port comparing said address of each entry in said second victim buffer to said direct memory access write address, said second level memory controller enabling a write of said direct memory access write data into a corresponding entry in said second victim buffer if said second victim comparator detects a match between a direct memory access write address and a victim address in said second victim buffer and enabling a snoop write to said first level cache controller if said second victim comparator does not detect a match between a direct memory access write address and a victim address in said second victim buffer. - View Dependent Claims (2)
-
Specification