IP Library › Patent Application 19199722
Patent Application
App. No. 19/199,722

VICTIM CACHE WITH WRITE MISS MERGING

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
19/199,722
Abstract

A caching system including a first sub-cache, a second sub-cache, coupled in parallel with the first sub-cache, for storing cache data evicted from the first sub-cache and write-memory commands that are not cached in the first sub-cache, and a cache controller configured to receive two or more cache commands, determine a conflict exists between the received two or more cache commands, determine a conflict resolution between the received two or more cache commands, and sending the two or more cache commands to the first sub-cache and the second sub-cache.

Claims (61)

1 . A method, comprising:

receiving, by a cache controller of a cache, a write command specifying to write first data to a first address and a read command specifying to read from a second address, wherein the first address and the second address are two of a set of addresses mappable to a cache line of the cache;

based on determining that the write command corresponds to a hit in the cache, beginning, by the cache controller, write of the first data to the cache line; and

prior to completion of the write of the first data to the cache line,

determining whether the read command corresponds to a miss in the cache; and

based on determining that the read command corresponds to a miss in the cache, invalidating, by the cache, the write of the first data to the cache line.

2 . The method of claim 1 , further comprising:

based on determining that the read command corresponds to a miss in the cache,

reading second data from another memory; and

storing the second data to the cache line.

3 . The method of claim 1 , wherein a size of the first data is less than a size of the cache line.

4 . The method of claim 1 , further comprising:

based on determining that the read command does not correspond to a miss in the cache, complete the write of the first data to the cache line.

5 . The method of claim 4 , wherein:

the write command further specifies a key value; and

completing the write of the first data to the cache line comprises

reading existing data from the cache line;

comparing the existing data and the key value; and

based on a result of comparison of the existing data and the key value, writing the first data to overwrite the existing data.

6 . The method of claim 5 , further comprising:

based on the result of comparison of the existing data and the key value, generating an error correcting code (ECC) based on the first data.

7 . The method of claim 1 , further comprising writing the ECC to the cache.

8 . The method of claim 1 , wherein the cache is a N-way set associative cache, and wherein N is an integer larger than one.

9 . A system, comprising:

a cache including a cache line mappable to a first address and a second address; and

a cache controller capable of:

receiving a write command specifying to write first data to the first address and a read command specifying to read from the second address;

based on determining that the write command corresponds to a hit in the cache, beginning write of the first data to the cache line; and

prior to completion of the write of the first data to the cache line,

determining whether the read command corresponds to a miss in the cache; and

based on determining that the read command corresponds to a miss in the cache, invalidating the write of the first data to the cache line.

10 . The system of claim 9 , wherein the cache controller is further capable of:

based on determining that the read command corresponds to a miss in the cache,

reading second data from another memory; and

storing the second data to the cache line.

11 . The system of claim 9 , wherein the write command is a partial write command.

12 . The system of claim 9 , wherein the cache controller is further capable of:

based on determining that the read command does not correspond to a miss in the cache, completing the write of the first data to the cache line.

13 . The system of claim 12 , wherein:

the write command further specifies a key value; and

to complete the write of the first data to the cache line, the cache controller is capable of:

reading existing data from the cache line;

comparing the existing data and the key value; and

based on a result of comparison of the existing data and the key value, writing the first data to overwrite the existing data.

14 . The system of claim 13 , wherein the cache controller is further capable of:

based on the result of comparison of the existing data and the key value, generating an error correcting code (ECC) based on the first data.

15 . The system of claim 14 , wherein the cache controller is further capable of writing the ECC to the cache.

16 . The system of claim 9 , wherein the cache is a 2-way set associative cache.

17 . A method, comprising:

receiving, at a cache controller of a cache, a write command and a read command, wherein the cache includes a cache line mappable to a set of addresses, wherein the write command specifies to write first data to a first address of the set of address;

based on determining that the cache line is presently mapped to the first address, beginning, by the cache controller, write of the first data to the cache line; and

prior to completion of the write of the first data to the cache line,

determining, by the cache controller, whether the read command specifies to read from a remainder of the set of addresses; and

based on determining that the read command specifies to read from the remainder of the set of addresses, invalidating, by the cache controller, the write of the first data to the cache line.

18 . The method of claim 17 , further comprising:

based on determining that the read command specifies to read from the remainder of the set of addresses,

reading second data from another memory; and

storing the second data to the cache line.

19 . The method of claim 17 , wherein the write command is a partial write command.

20 . The method of claim 17 , further comprising:

based on determining that the read command does not specify to read from the remainder of the set of addresses, completing the write of the first data to the cache line.