IP Library › Granted Patent US 12,455,836
Granted Patent B2
US 12,455,836 · App. 18/639,013 · Granted Oct 28, 2025

Victim cache that supports draining write-miss entries

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/1027G06F12/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/603G06F2212/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,455,836
App. No.
18/639,013
Granted
Oct 28, 2025
Kind
B2
Abstract

A caching system including a first sub-cache and a second sub-cache in parallel with the first sub-cache, wherein the second sub-cache includes a set of cache lines, line type bits configured to store an indication that a corresponding cache line of the set of cache lines is configured to store write-miss data, and an eviction controller configured to flush stored write-miss data based on the line type bits.

Claims (33)

1. A device, comprising:

a processor;

a cache memory including:

a cache line configured to store an entry; and

a line type entry configured to store a value indicating whether the entry stored in the cache line is a write-miss entry or an entry evicted from another cache memory;

an interface configured to couple the cache memory with the processor; and

a controller configured to:

determine whether the interface is in a state; and

based on a determination that the interface is in the state, evict the entry from the cache line based on the value of the line type entry indicating that the entry stored in the cache line is a write-miss entry.

2. The device of claim 1 , further comprising a tag RAM, wherein the controller is configured to evict the cache line based on the tag RAM.

3. The device of claim 1 , wherein the controller is configured to evict the cache line based on a first-in-first-out policy.

4. The device of claim 1 , wherein the controller is configured to evict the cache line based on a least recently used policy.

5. The device of claim 1 , wherein the controller is configured to evict the cache line based on a random selection policy.

6. The device of claim 1 , further comprising a drain buffer, wherein the controller is configured to evict the cache line by moving a packet from the cache line to the drain buffer until an acknowledgment is received.

7. The device of claim 6 , further comprising an additional cache memory, wherein the controller is further configured to move the packet from the drain buffer to the additional cache memory, and wherein the additional cache memory is configured to provide the acknowledgment.

8. The device of claim 1 , wherein

the cache memory is a victim cache memory.

9. The device of claim 1 , wherein the state is an idle state.

10. The device of claim 9 , wherein to determine whether the interface is in the state, the controller is configured to determine whether the interface has been in the idle state for a specific number of clock cycles.

11. A method, comprising:

storing data in a cache line of a cache memory;

storing a value in a line type entry of the cache memory that indicates whether the data is associated with a write-miss entry or an entry evicted from another cache memory;

detecting a state of an interface of the cache memory; and

based on detecting the state, evicting the data from the cache line based on the value indicating that the data is associated with a write-miss entry.

12. The method of claim 11 , wherein evicting the data comprises evicting the data based on walking a set of tag RAM entries.

13. The method of claim 11 , wherein evicting the data comprises evicting the data based on a first-in-first-out policy.

14. The method of claim 11 , wherein evicting the data comprises evicting the data based on a least recently used policy.

15. The method of claim 11 , wherein evicting the data comprises evicting the data based on a random replacement policy.

16. The method of claim 11 , wherein evicting the data comprises moving the data from the cache line to a drain buffer of the cache memory until receiving an acknowledgement.

17. The method of claim 16 , wherein evicting the data further comprises moving the data from the drain buffer to an additional cache memory, and the method further comprises receiving the acknowledgement from the additional cache memory.

18. The method of claim 11 , wherein the cache memory is a victim cache memory.

19. The method of claim 11 , wherein the state is an idle state.

20. The method of claim 19 , wherein detecting the state of the interface comprises detecting that the interface has been in the idle state for a specific number of clock cycles.

Continuity (5)
Continuation 18340944 · Jun 26, 2023
Continuation 17377509 · Jul 16, 2021
Continuation 16882369 · May 22, 2020
Provisional Application 62852494 · May 24, 2019
Related Publication 20240264952A1 · Aug 8, 2024
References Cited (27)
US 5003459A · Ramanujan et al. · 1991 [cited by applicant]
US 5561782A · O'Connor · 1996 [cited by examiner]
US 6775750B2 · Krueger · 2004 [cited by applicant]
US 7613941B2 · Samson et al. · 2009 [cited by applicant]
US 8181005B2 · Zuraski, Jr. et al. · 2012 [cited by applicant]
US 8341353B2 · Venkumahanti et al. · 2012 [cited by applicant]
US 9170955B2 · Forsyth et al. · 2015 [cited by applicant]
US 20050132263A1 · Anderson et al. · 2005 [cited by applicant]
US 20070094450A1 · VanderWiel · 2007 [cited by applicant]
US 20120042126A1 · Krick et al. · 2012 [cited by applicant]
US 20120221774A1 · Atkisson et al. · 2012 [cited by applicant]
US 20130191601A1 · Peterson et al. · 2013 [cited by applicant]
US 20130227219A1 · Uekl et al. · 2013 [cited by applicant]
US 20140156948A1 · Roberts · 2014 [cited by examiner]
US 20140189245A1 · Rupley et al. · 2014 [cited by applicant]
US 20140215160A1 · Kocberber · 2014 [cited by applicant]
US 20150006820A1 · Bhoria et al. · 2015 [cited by applicant]
US 20150067259A1 · Wang · 2015 [cited by applicant]
US 20150186274A1 · Kass · 2015 [cited by examiner]
US 20160170677A1 · Wang et al. · 2016 [cited by applicant]
US 20170177500A1 · Shanbhogue et al. · 2017 [cited by applicant]
CN 1525335A · 2004 [cited by applicant]
CN 108885590A · 2018 [cited by applicant]
Supplementary European Search Report and Search Opinion received for EP Application No. 20812543.5 mailed Jul. 1, 2022, 10 pages. [cited by applicant]
Extended European Search report for T92369EP02DIV. [cited by applicant]
Office Action in corresponding China Patent Application No. 202080037620.6, dated Mar. 11, 2025. [cited by applicant]
“Cache coherence protocol and implementation for multiprocessors with no-wire-allocate caches”, Journal of Zhejang University, vol. 49, No. 2, Feb. 2015, 9 pgs. [cited by applicant]