IP Library › Granted Patent US 12,393,521
Granted Patent B2
US 12,393,521 · App. 18/337,104 · Granted Aug 19, 2025

Methods and apparatus to facilitate write miss caching in cache system

Inventors: Naveen Bhoria (Plano, TX); Timothy David Anderson (University Park, TX); Pete Michael 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,393,521
App. No.
18/337,104
Granted
Aug 19, 2025
Kind
B2
Abstract

Methods, apparatus, systems and articles of manufacture to facilitate write miss caching in cache system are disclosed. An example apparatus includes a first cache storage; a second cache storage, wherein the second cache storage includes a first portion operable to store a first set of data evicted from the first cache storage and a second portion; a cache controller coupled to the first cache storage and the second cache storage and operable to: receive a write operation; determine that the write operation produces a miss in the first cache storage; and in response to the miss in the first cache storage, provide write miss information associated with the write operation to the second cache storage for storing in the second portion.

Claims (71)

1. A device comprising:

a cache memory; and

a cache controller coupled to the cache memory and configured to:

allocate a portion of the cache memory as a write miss cache;

receive a write operation;

determine whether the write operation is associated with a miss in a remainder of the cache memory;

based on the write operation being associated with the miss in the remainder of the cache memory, cause a set of write miss information to be stored in the write miss cache;

receive a read operation that is associated with the write operation; and

service the read operation using the set of write miss information stored in the write miss cache.

2. The device of claim 1 , wherein:

the set of write miss information includes a set of data associated with the write operation; and

the servicing of the read operation includes providing the set of data from the write miss cache.

3. The device of claim 1 , wherein:

the cache memory is a first cache memory;

the device further comprises a second cache memory coupled to the cache controller and configured to be a main cache; and

the cache controller is configured to:

allocate the remainder of the cache memory as a victim cache; and

cause the set of write miss information to be stored in the write miss cache further based on the write operation being associated with a miss in the main cache.

4. The device of claim 3 , wherein:

the main cache is a level-one (L1) main cache;

the victim cache is an L1 victim cache; and

the cache controller is an L1 cache controller.

5. The device of claim 4 , wherein the cache controller is configured to:

compare a utilization of the write miss cache to a threshold; and

based on the utilization exceeding the threshold, cause the set of write miss information to be provides to a level-two (L2) cache subsystem.

6. The device of claim 5 , wherein the threshold corresponds to a bandwidth of an interface of the L2 cache subsystem.

7. The device of claim 5 , wherein the threshold corresponds to a size of the write miss cache.

8. The device of claim 1 , wherein:

the set of write miss information is a first set of write miss information; and

the cache controller is configured to, when a first memory address of the first set of write miss information corresponds to a second memory address of a second set of write miss information stored in the write miss cache, to merge the first set of write miss information with the second set of write miss information.

9. The device of claim 1 , wherein the write miss cache includes a byte enable register.

10. The device of claim 9 , wherein the byte enable register is configured to store a value that specifies an element of the set of write miss information to be written.

11. A device comprising:

a processing core configured to provide a write operation;

a cache controller coupled to the processing core;

a first cache memory coupled to the processing core; and

a second cache memory coupled to the processing core that includes a write miss cache and a remainder;

wherein the cache controller is configured to:

determine whether the write operation is associated with a miss in the first cache memory and a miss in the remainder of the second cache memory;

based on the write operation being associated with the miss in the first cache memory and the miss in the remainder of the second cache memory, cause a set of write miss information to be stored in the write miss cache;

receive a read operation that is associated with the write operation; and

service the read operation using the set of write miss information stored in the write miss cache.

12. A method comprising:

allocating a portion of a cache memory as a write miss cache;

receiving a write operation;

determining whether the write operation is associated with a miss in a remainder of the cache memory;

based on the write operation being associated with the miss in the remainder of the cache memory, storing a set of write miss information in the write miss cache;

receiving a read operation that is associated with the write operation; and

servicing the read operation using the set of write miss information stored in the write miss cache.

13. The method of claim 12 , wherein:

the set of write miss information includes a set of data associated with the write operation; and

servicing the read operation using the set of write miss information comprises providing the set of data from the write miss cache.

14. The method of claim 12 , wherein:

the cache memory is a first cache memory; and

the method further comprises:

allocating the remainder of the first cache memory as a victim cache; and

storing the set of write miss information in the write miss cache further based on the write operation being associated with a miss in a second cache memory.

15. The method of claim 14 , wherein:

the second cache memory is a level-one (L1) main cache; and

the first cache memory is an L1 victim cache.

16. The method of claim 15 , further comprising:

comparing a utilization of the write miss cache to a threshold; and

based on the utilization exceeding the threshold, providing the set of write miss information to a level-two (L2) cache subsystem.

17. The method of claim 16 , wherein the threshold corresponds to a bandwidth of an interface of the L2 cache subsystem.

18. The method of claim 16 , wherein the threshold corresponds to a size of the write miss cache.

19. The method of claim 12 , wherein:

the set of write miss information is a first set of write miss information; and

the method further comprises, when a first memory address of the first set of write miss information corresponds to a second memory address of a second set of write miss information stored in the write miss cache, merging the first set of write miss information with the second set of write miss information.

20. The method of claim 12 , wherein:

the write miss cache includes a byte enable register; and

the method further comprises storing a value in the byte enable register that specifies an element of the set of write miss information to be written.

Continuity (3)
Continuation 16882258 · May 22, 2020
Provisional Application 62852494 · May 24, 2019
Related Publication 20230333991A1 · Oct 19, 2023
References Cited (43)
US 5003459A · Ramanujan et al. · 1991 [cited by applicant]
US 5577227A · Finnell et al. · 1996 [cited by applicant]
US 5644753A · Ebrahim · 1997 [cited by applicant]
US 5687338A · Boggs et al. · 1997 [cited by applicant]
US 6078992A · Hum · 2000 [cited by applicant]
US 6170040B1 · Lee et al. · 2001 [cited by applicant]
US 6226713B1 · Mehrotra · 2001 [cited by applicant]
US 6513104B1 · Gaskins · 2003 [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 20040193808A1 · Spencer · 2004 [cited by applicant]
US 20060143396A1 · Cabot · 2006 [cited by applicant]
US 20090198867A1 · Guthrie et al. · 2009 [cited by applicant]
US 20100023695A1 · Guthrie et al. · 2010 [cited by applicant]
US 20110082981A1 · Hoogerbrugge · 2011 [cited by applicant]
US 20110173391A1 · Venkumahanti et al. · 2011 [cited by applicant]
US 20120042126A1 · Krick et al. · 2012 [cited by applicant]
US 20120221774A1 · Atkisson · 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 20140281248A1 · Alameldeen · 2014 [cited by applicant]
US 20150006820A1 · Bhoria et al. · 2015 [cited by applicant]
US 20160196210A1 · Noguchi et al. · 2016 [cited by applicant]
US 20170177500A1 · Shanbhogue et al. · 2017 [cited by applicant]
US 20170293561A1 · Dwiel et al. · 2017 [cited by applicant]
US 20180024931A1 · Moyer · 2018 [cited by applicant]
US 20180089091A1 · Akenine-Moller et al. · 2018 [cited by applicant]
US 20190018799A1 · Appu et al. · 2019 [cited by applicant]
US 20190384718A1 · Hansson et al. · 2019 [cited by applicant]
CN 1979451A · 2007 [cited by applicant]
CN 1991792B · 2010 [cited by applicant]
CN 102165424A · 2011 [cited by applicant]
CN 101558391B · 2013 [cited by applicant]
CN 108604210B · 2022 [cited by applicant]
CN 108334458B · 2023 [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]
Extended European Search Report for 20815004.5; dated Jun. 21, 2022. [cited by applicant]
Wang, et al. “Adaptive Placement and Migration Policy for an STT_RAM-Based Hybrid Cache”; 2014 IEEE 20th International Symposium on High Performance Computer Architecture; XP 032606782; Feb. 15, 2014; pp. 13-24. [cited by applicant]
Office Action in corresponding China App. No. 202080038198.6, issued Jun. 6, 2025. [cited by applicant]
Cited By (1)
US 12,462,331