IP Library › Granted Patent US 12,210,463
Granted Patent B2
US 12,210,463 · App. 17/941,587 · Granted Jan 28, 2025

Aggressive write flush scheme for a victim cache

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/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,210,463
App. No.
17/941,587
Granted
Jan 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: line type bits configured to store an indication that a corresponding cache line of the second sub-cache is configured to store write-miss data, and an eviction controller configured to evict a cache line of the second sub-cache storing write-miss data based on an indication that the cache line has been fully written.

Claims (53)

1. A caching system comprising:

a first sub-cache; and

a second sub-cache in parallel with the first sub-cache, wherein the second sub-cache comprises:

a set of cache lines;

a byte enable memory including a first bit, wherein a value of the first bit indicates whether a first cache line of the set of cache lines is full; and

an eviction controller configured to:

determine that the first cache line of the set of cache lines storing write-miss data is full based on the value of the first bit; and

evict the write-miss data stored in the first cache line in response to determining that the first cache line is full.

2. The caching system of claim 1 , wherein the eviction controller is further configured to:

determine that a second cache line of the set of cache lines storing write-miss data is half full; and

evict the write-miss data stored in the second cache line in response to determining that the second cache line is half full.

3. The caching system of claim 2 , wherein the eviction controller is configured to determine that no cache line of the set of cache lines storing write-miss data is fully written before evicting the write-miss data stored in the second cache line in response to determining that the second cache line is half full.

4. The caching system of claim 2 , wherein the byte enable memory is configured to store byte enable logic associated with the stored write-miss data.

5. The caching system of claim 4 ,

wherein the byte enable memory includes a second bit,

wherein a value of the second bit indicates whether the second cache line is half full, and

wherein the eviction controller is configured to determine that the second cache line is half full by at least reading the value of the second bit.

6. The caching system of claim 5 , wherein the first and second bits are determined based on the byte enable logic associated with the stored write-miss data.

7. The caching system of claim 6 , wherein the first and second bits are determined based on the byte enable logic each time write-miss data is stored in the set of cache lines.

8. A method for caching data, comprising:

receiving, by a caching system, a write memory request for a memory address, wherein the caching system comprises a first sub-cache, a second sub-cache in parallel with the first sub-cache, and a byte enable memory including a first bit, a value of which indicates whether a first cache line of the second sub-cache is full;

determining, by the caching system, that the memory address is not cached in the caching system;

responsive to determining that the memory address is not cached in the caching system, storing data associated with the write memory request in the first cache line of the second sub-cache;

responsive to determining that the memory address is not cached in the caching system, storing an indication that the stored data corresponds to a write-miss;

determining that the first cache line is full based on the value of the first bit of the byte enable memory; and

evicting write-miss data stored in the first cache line of the second sub-cache in response to determining that the first cache line is full.

9. The method of claim 8 , further comprising:

determining that a second cache line of the caching system storing write-miss data is half full; and

evicting the write-miss data stored in the second cache line in response to determining that the second cache line is half full.

10. The method of claim 9 , further comprising determining that no cache line of the caching system storing write-miss data is fully written before evicting the write-miss data stored in the second cache line in response to determining that the second cache line is half full.

11. The method of claim 9 , wherein the byte enable memory of the caching system stores a byte enable logic associated with the stored write-miss data.

12. The method of claim 11 , wherein the byte enable memory of the caching system includes a second bit, wherein a value of the second bit indicates whether the second cache line is half full, and wherein determining that the second cache line is half full by at least reading the value of the second bit.

13. The method of claim 12 , wherein the first and second bits are determined based on the byte enable logic associated with the stored write-miss data.

14. The method of claim 13 , wherein the first and second bits are determined based on the byte enable logic each time write-miss data is stored in the caching system.

15. A device comprising:

a processor configured to generate memory requests;

a first sub-cache configured to receive the memory requests; and

a second sub-cache in parallel with the first sub-cache, wherein the second sub-cache comprises:

a set of cache lines;

a byte enable memory including a first bit, a value of which indicates whether a first cache line of the set of cache lines is full; and

an eviction controller configured to:

determine that the first cache line of the set of cache lines storing write-miss data is full based on the value of the first bit; and

evict the write-miss data stored in the first cache line in response to determining that the first cache line is full.

16. The device of claim 15 , wherein the eviction controller is further configured to:

determine that a second cache line of the set of cache lines storing write-miss data is half full; and

evict the write-miss data stored in the second cache line in response to determining that the second cache line is half full.

17. The device of claim 16 , wherein the eviction controller is configured to determine that no cache line of the set of cache lines storing write-miss data is fully written before evicting the write-miss data stored in the second cache line in response to determining that the second cache line is half full.

18. The device of claim 16 , wherein the byte enable memory is configured to store byte enable logic associated with the stored write-miss data.

19. The device of claim 18 ,

wherein the byte enable memory includes a second bit,

wherein a value of the second bit indicates whether the second cache line is half full, and

wherein the eviction controller is configured to determine that the second cache line is half full by at least reading the value of the second bit.

20. The device of claim 19 , wherein the first and second bits are determined based on the byte enable logic associated with the stored write-miss data.

Continuity (3)
Continuation 16882374 · May 22, 2020
Provisional Application 62852494 · May 24, 2019
Related Publication 20230004500A1 · Jan 5, 2023
References Cited (22)
US 5003459A · Ramanujan et al. · 1991 [cited by applicant]
US 6078992A · Hum · 2000 [cited by applicant]
US 6775750B2 · Krueger · 2004 [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 20040148469A1 · Kadambi · 2004 [cited by examiner]
US 20060143396A1 · Cabot · 2006 [cited by applicant]
US 20060179229A1 · Clark · 2006 [cited by examiner]
US 20110173391A1 · Venkumahanti et al. · 2011 [cited by applicant]
US 20120042126A1 · Krick et al. · 2012 [cited by applicant]
US 20120221774A1 · Atkisson et al. · 2012 [cited by applicant]
US 20120221793A1 · Tran · 2012 [cited by applicant]
US 20130191601A1 · Peterson et al. · 2013 [cited by applicant]
US 20140189245A1 · Rupley et al. · 2014 [cited by applicant]
US 20150006820A1 · Bhoria et al. · 2015 [cited by applicant]
US 20170177500A1 · Shanbhogue et al. · 2017 [cited by applicant]
US 20170293561A1 · Dwiel et al. · 2017 [cited by applicant]
US 20180089091A1 · Akenine-Moller et al. · 2018 [cited by applicant]
US 20190384718A1 · Hansson et al. · 2019 [cited by applicant]
International Search Report for PCT/US2020/034560 mailed Aug. 20, 2020. [cited by applicant]
International Search Report for PCT/US2020/034557 mailed Sep. 10, 2020. [cited by applicant]