IP Library › Granted Patent US 12,007,907
Granted Patent B2
US 12,007,907 · App. 17/828,189 · Granted Jun 11, 2024

Victim cache with write miss merging

Inventors: Naveen Bhoria (Plano, TX); Timothy David Anderson (University Park, TX); Pete Hippleheuser (Murphy, TX)
Assignee: Texas Instruments Incorporated
G06F12/128G06F9/3001G06F9/30043G06F9/30047G06F9/546G06F11/1064G06F12/0215G06F12/0238G06F12/0292G06F12/0802G06F12/0804G06F12/0806G06F12/0811G06F12/0815G06F12/082G06F12/0853G06F12/0855G06F12/0864G06F12/0884G06F12/0888G06F12/0891G06F12/0895G06F12/0897G06F12/12G06F12/121G06F12/126G06F12/127G06F13/1605G06F13/1642G06F13/1673G06F13/1689G06F15/8069G11C5/066G11C7/10G11C7/1015G11C7/106G11C7/1075G11C7/1078G11C7/1087G11C7/222G11C29/42G11C29/44G06F2212/1016G06F2212/1021G06F2212/1024G06F2212/1041G06F2212/1044G06F2212/301G06F2212/454G06F2212/6032G06F2212/6042G06F2212/608G06F2212/62
View Patent ↗
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 12,007,907
App. No.
17/828,189
Granted
Jun 11, 2024
Kind
B2
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 (66)

1. A system comprising:

a processor;

a main cache;

a victim cache coupled to the main cache; and

a cache controller coupled to the processor, the main cache, and the victim cache and configured to:

receive, from the processor, a write command associated with a memory location and a set of data;

determine whether the write command is associated with a hit in the main cache or the victim cache; and

based on the write command not being associated with a hit in the main cache and the victim cache, store the set of data in the victim cache.

2. The system of claim 1 , wherein:

the write command is a first write command;

the set of data is a first set of data; and

the cache controller is further configured to:

receive a second write command associated with a second set of data;

determine whether the second write command is associated with the memory location of the first write command; and

based on the second write command being associated with the memory location of the first write command:

merge the first set of data and the second set of data to produce a merged set of data; and

store the merged set of data in the victim cache.

3. The system of claim 2 , wherein the cache controller is configured to merge the first set of data and the second set of data prior to the storing of the first set of data in the victim cache.

4. The system of claim 2 , wherein the cache controller is further configured to, based on the second write command being associated with the memory location of the first write command, merge at least one property of the first write command and the second write command from a group consisting of: a byte enable, a privilege level, and an indicator of a process run on the processor associated with the respective command.

5. The system of claim 2 , wherein the cache controller is further configured to, based on the second write command not being associated with the memory location of the first write command, store the first set of data and the second set of data in the victim cache in parallel.

6. The system of claim 1 , wherein the cache controller is further configured to:

receive a read command;

determine whether the read command is associated with the memory location of the write command; and

based on the read command being associated with the memory location of the write command:

evict the set of data from the victim cache; and

stall the read command until the set of data is evicted from the victim cache.

7. The system of claim 6 , wherein the cache controller is further configured to:

determine whether the read command is associated with a miss in the main cache; and

perform the evicting of the set of data from the victim cache and the stalling of the read command based on the read command being associated with a miss in the main cache.

8. The system of claim 1 , wherein the cache controller is further configured to:

receive a read command;

determine a cache address in the victim cache associated with the write command prior to completion of the determining of whether the write command is associated with a hit in the victim cache; and

store a set of evicted data evicted based on the read command in the victim cache at the cache address associated with the write command.

9. The system of claim 1 wherein:

the victim cache includes a set of cache lines and a set of line bits; and

the storing of the set of data in the victim cache includes storing the set of data in a first cache line of the set of cache lines and setting a first line bit of the set of line bits to indicate that the first cache line is associated with a write-miss.

10. The system of claim 1 wherein the main cache has an association type that is different from an association type of the victim cache.

11. The system of claim 10 , wherein the main cache is n-way associative and the victim cache is fully associative.

12. A method comprising:

receiving a write command associated with a memory location and a set of data;

determining, based on the memory location, whether the write command is associated with a hit in a main cache or a victim cache; and

based on the write command not being associated with a hit in the main cache and the victim cache, storing the set of data in the victim cache.

13. The method of claim 12 , wherein:

the write command is a first write command;

the set of data is a first set of data; and

the method further comprises:

receiving a second write command associated with a second set of data;

determining whether the second write command is associated with the memory location of the first write command; and

determining, based on whether the second write command is associated with the memory location of the first write command, whether to merge the first set of data and the second set of data to produce a merged set of data and

store the merged set of data in the victim cache.

14. The method of claim 13 further comprising, based on the second write command being associated with the memory location of the first write command, merging the first set of data and the second set of data prior to the storing of the first set of data in the victim cache.

15. The method of claim 13 further comprising, based on the second write command being associated with the memory location of the first write command, merging at least one property of the first write command and the second write command from a group consisting of: a byte enable, a privilege level, and an indicator of a process associated with the respective command.

16. The method of claim 13 further comprising, based on the second write command not being associated with the memory location of the first write command, storing the first set of data and the second set of data in the victim cache in parallel.

17. The method of claim 12 further comprising:

receiving a read command;

determining whether the read command is associated with the memory location of the write command; and

determining, based on whether the read command is associated with the memory location of the write command, whether to evict the set of data from the victim cache and stall the read command until the set of data is evicted from the victim cache.

18. The method of claim 17 further comprising:

determining whether the read command is associated with a miss in the main cache; and

determining, further based on whether the read command is associated with a miss in the main cache, whether to evict the set of data from the victim cache and stall the read command until the set of data is evicted from the victim cache.

19. The method of claim 12 further comprising:

receiving a read command;

determining a cache address in the victim cache associated with the write command prior to completion of the determining of whether the write command is associated with a hit in the victim cache; and

storing a set of evicted data evicted based on the read command in the victim cache at the cache address associated with the write command.

20. The method of claim 12 further comprising:

storing, in the victim cache, an indicator that the set of data is associated with a write-miss.

Continuity (3)
Continuation 16882403 · May 22, 2020
Provisional Application 62852494 · May 24, 2019
Related Publication 20220292023A1 · Sep 15, 2022