IP Library › Granted Patent US 12,657,134
Granted Patent B2
US 12,657,134 · App. 18/818,738 · Granted Jun 16, 2026

Methods and apparatus for eviction in dual datapath victim 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,657,134
App. No.
18/818,738
Granted
Jun 16, 2026
Kind
B2
Abstract

Methods, apparatus, systems and articles of manufacture are disclosed to evict in a dual datapath victim cache system. An example apparatus includes a cache storage, a cache controller operable to receive a first memory operation and a second memory operation concurrently, comparison logic operable to identify if the first and second memory operations missed in the cache storage, and a replacement policy component operable to, when at least one of the first and second memory operations corresponds to a miss in the cache storage, reserve an entry in the cache storage to evict based on the first and second memory operations.

Claims (52)

1 . A device, comprising:

a cache memory that includes a set of entries configured into a set of ways; and

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

receive a first memory operation;

determine that the first memory operation is associated with data eviction;

determine, based on a pointer value, a first way of the set of ways for the data eviction;

receive a second memory operation;

determine whether the second memory operation conflicts with the data eviction; and

based on a determination that the second memory operation conflicts with the data eviction,

determine a second way of the set of ways for the data eviction; and

increment the pointer value.

2 . The device of claim 1 , wherein the cache controller is configured to determine that the second memory operation conflicts with the data eviction based on the second memory operation being associated with a read of data stored in the first way.

3 . The device of claim 1 , wherein:

the cache memory is a victim cache; and

the device further comprises a main cache coupled to the cache controller.

4 . The device of claim 3 , wherein the data eviction is based on data eviction from the main cache.

5 . The device of claim 3 , wherein the data eviction is based on a write miss in the main cache.

6 . The device of claim 1 , further comprising:

a first interface configured to couple to a set of processor cores and associated with a first data path; and

a second interface configured to couple to the set of processor cores and associated with a second data path,

wherein the first memory operation is received via the first data path and the second memory operation is received via the second data path.

7 . The device of claim 6 , further comprising:

a register configured to store the pointer value.

8 . The device of claim 6 , wherein the first data path is a scalar data path and the second data path is a vector data path, or vice versa.

9 . The device of claim 1 , wherein to increment the pointer value, the cache controller is configured to increment the pointer value twice.

10 . The device of claim 1 , wherein the cache controller is further configured to:

based on a determination that the second memory operation does not conflict with the data eviction,

perform the data eviction based on the first way of the set of ways; and

increment the pointer value once.

11 . The device of claim 1 , wherein the pointer value indicates a way based on a least recently used policy.

12 . A method, comprising:

receiving, by a cache controller, a first memory operation directed to a cache memory that includes a set of entries configured into a set of ways;

determining, by the cache controller, that the first memory operation is associated with data eviction from a first way of the set of ways based on a pointer value;

receiving, by the cache controller, a second memory operation directed to the cache memory;

determining, by the cache controller, whether the second memory operation conflicts with the data eviction; and

based on determining that the second memory operation conflicts with the data eviction, determining a second way of the set of ways for the data eviction; and

incrementing the pointer value.

13 . The method of claim 12 , wherein the first memory operation is received via a first data path and the second memory operation is received via a second data path.

14 . The method of claim 13 , wherein the first data path is a scalar data path and the second data path is a vector data path, or vice versa.

15 . The method of claim 12 , wherein determining that the second memory operation conflicts with the data eviction comprises determining that the second memory operation conflicts with the data eviction based on determining the second memory operation is associated with a read of data stored in the first way.

16 . The method of claim 12 , wherein:

the cache memory is a victim cache; and

the data eviction is based on data eviction from a main cache.

17 . The method of claim 12 , wherein:

the cache memory is a victim cache; and

the data eviction is based on a write miss in a main cache.

18 . The method of claim 12 , wherein incrementing the pointer value comprises incrementing the pointer value twice.

19 . The method of claim 12 , further comprising:

based on determining that the second memory operation does not conflict with the data eviction,

performing the data eviction from the first way; and

incrementing the pointer value once.

20 . The method of claim 12 , wherein the pointer value indicates a way based on a least recently used policy.

Continuity (4)
Continuation 17945242 · Sep 15, 2022
Continuation 16882249 · May 22, 2020
Provisional Application 62852494 · May 24, 2019
Related Publication 20240419607A1 · Dec 19, 2024
References Cited (37)
US 4577293A · Matick et al. · 1986 [cited by applicant]
US 5418973A · Ellis · 1995 [cited by examiner]
US 5706467A · Vishlitzky · 1998 [cited by examiner]
US 5758056A · Barr · 1998 [cited by applicant]
US 5822755A · Shippy · 1998 [cited by applicant]
US 6215497B1 · Leung · 2001 [cited by examiner]
US 6775750B2 · Krueger · 2004 [cited by applicant]
US 7970998B2 · Yamamoto et al. · 2011 [cited by applicant]
US 8103749B2 · Dolev et al. · 2012 [cited by applicant]
US 8181005B2 · Zuraski, Jr. et al. · 2012 [cited by applicant]
US 9170955B2 · Forsyth et al. · 2015 [cited by applicant]
US 9691452B2 · Pekny et al. · 2017 [cited by applicant]
US 9696934B2 · Rothberg · 2017 [cited by examiner]
US 20080232148A1 · Yabe · 2008 [cited by applicant]
US 20090231918A1 · Doyle · 2009 [cited by applicant]
US 20100232240A1 · Norman · 2010 [cited by applicant]
US 20110010503A1 · Yamamura et al. · 2011 [cited by applicant]
US 20110185114A1 · Bolanowski · 2011 [cited by applicant]
US 20110283041A1 · Kanoh · 2011 [cited by applicant]
US 20120042126A1 · Krick et al. · 2012 [cited by applicant]
US 20120221774A1 · Atkisson et al. · 2012 [cited by applicant]
US 20130125097A1 · Ebcioglu · 2013 [cited by examiner]
US 20130191601A1 · Peterson et al. · 2013 [cited by applicant]
US 20130268727A1 · Sohn et al. · 2013 [cited by applicant]
US 20140189245A1 · Rupley et al. · 2014 [cited by applicant]
US 20140195715A1 · Kim et al. · 2014 [cited by applicant]
US 20150006820A1 · Bhoria et al. · 2015 [cited by applicant]
US 20150127912A1 · Solihin · 2015 [cited by applicant]
US 20150302904A1 · Yoon et al. · 2015 [cited by applicant]
US 20170091096A1 · Mccarthy · 2017 [cited by examiner]
US 20170153959A1 · Zbiciak · 2017 [cited by applicant]
US 20170337142A1 · Arbone et al. · 2017 [cited by applicant]
US 20170357588A1 · Moyer · 2017 [cited by applicant]
US 20180336143A1 · Lai et al. · 2018 [cited by applicant]
US 20190042150A1 · Wells 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]