IP Library › Granted Patent US 12,321,284
Granted Patent B2
US 12,321,284 · App. 18/442,660 · Granted Jun 3, 2025

Methods and apparatus to facilitate atomic operations in victim cache

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,321,284
App. No.
18/442,660
Granted
Jun 3, 2025
Kind
B2
Abstract

Methods, apparatus, systems and articles of manufacture to facilitate atomic operation in victim cache are disclosed. An example system includes a first cache storage to store a first set of data; a second cache storage to store a second set of data that has been evicted from the first cache storage; and a storage queue coupled to the first cache storage and the second cache storage, the storage queue including: an arithmetic component to: receive the second set of data from the second cache storage in response to a memory operation; and perform an arithmetic operation on the second set of data to produce a third set of data; and an arbitration manager to store the third set of data in the second cache storage.

Claims (49)

1. A device, comprising:

a cache memory configured to store data;

a cache store queue coupled to the cache memory, the cache store queue including an arithmetic unit; and

a cache controller coupled to the cache memory and the cache store queue, the cache controller configured to:

receive a histogram operation directed to the data; and

cause the arithmetic unit to:

receive the data from the cache memory; and

generate a histogram based on incrementing respective values of a vector based on occurrence of respective unique values in the data.

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

receive a weight associated with the histogram; and

cause the arithmetic unit to generate the histogram based on the weight.

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

receive a bin size associated with the histogram; and

cause the arithmetic unit to generate the histogram based on the bin size.

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

receive an indication of whether a bin value of the histogram is signed or unsigned; and

cause the arithmetic unit to generate the histogram based on the indication.

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

receive an indication of whether a bin of the histogram is to roll over when a maximum value is reached; and

cause the arithmetic unit to generate the histogram based on the indication.

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

prior to incrementing the respective values of the vector, initialize the respective values of the vector.

7. The device of claim 1 , comprising error correcting code (ECC) logic coupled to the arithmetic unit and configured to generate an ECC based on the data.

8. The device of claim 1 , comprising an arbitration manager circuit coupled to the arithmetic unit and the cache memory and configured to arbitrate storage of the histogram.

9. The device of claim 1 , including a modified, exclusive, shared, invalid (MESI) circuit configured to determine a state of a memory address associated with the histogram operation.

10. The device of claim 9 , wherein the MESI circuit is configured to, based on the memory address being associated with a shared state:

provide an exclusive state request for the memory address; and

cause the histogram to be stored in the cache memory based on the exclusive state request being granted.

11. The device of claim 1 , comprising a processor coupled to the cache controller and configured to provide the histogram operation.

12. The device of claim 11 , wherein:

the cache memory is a level-one (L1) cache memory, and the cache store queue is an L1 cache store queue; or

the cache memory is a victim cache memory, and the cache store queue is a victim cache store queue.

13. A method comprising:

receiving, from a processor by a cache system, a histogram operation directed to data stored in a cache memory of the cache system;

receiving, by a cache store queue coupled to the cache memory, the data from the cache memory; and

generating, by the cache store queue, a histogram based on incrementing respective values of a vector based on occurrence of respective unique values in the data.

14. The method of claim 13 , comprising receiving a weight associated with the histogram, wherein generating the histogram comprises generating the histogram based on the weight.

15. The method of claim 13 , wherein the histogram operation specifies at least one of: a bin size, an indication of whether a bin value is signed or unsigned, or an indication of whether a bin rolls over when a maximum value is reached.

16. The method of claim 13 , comprising, prior to incrementing the respective values of the vector, initializing the respective values of the vector.

17. The method of claim 13 , comprising:

generating error correcting code (ECC) data for the histogram; and

storing the ECC data in the cache memory.

18. The method of claim 13 , comprising determining a modified, exclusive, shared, invalid (MESI) state of a memory address associated with the histogram operation.

19. The method of claim 18 , comprising, based on the memory address being associated with a shared state:

providing an exclusive state request for the memory address; and

storing the histogram in the cache memory based on the exclusive state request being granted.

20. The method of claim 13 , wherein:

the cache system is a level-one (L1) cache system, and the cache store queue is an L1 cache store queue; or

the cache memory is a victim cache memory, and the cache store queue is a victim cache store queue.

Continuity (4)
Continuation 17875572 · Jul 28, 2022
Continuation 16882262 · May 22, 2020
Provisional Application 62852494 · May 24, 2019
Related Publication 20240193098A1 · Jun 13, 2024
References Cited (39)
US 6038645A · Nanda et al. · 2000 [cited by applicant]
US 6633299B1 · Sreenivas et al. · 2003 [cited by applicant]
US 6775750B2 · Krueger · 2004 [cited by applicant]
US 7404043B2 · Edirisooriya et al. · 2008 [cited by applicant]
US 7711988B2 · Zhou et al. · 2010 [cited by applicant]
US 7716424B2 · Franaszek et al. · 2010 [cited by applicant]
US 7996632B1 · Grohoski et al. · 2011 [cited by applicant]
US 8181005B2 · Zuraski, Jr. et al. · 2012 [cited by applicant]
US 9170955B2 · Forsyth et al. · 2015 [cited by applicant]
US 9361240B2 · Goodman et al. · 2016 [cited by applicant]
US 9489204B2 · Tu et al. · 2016 [cited by applicant]
US 10503656B2 · Hijaz · 2019 [cited by examiner]
US 10884751B2 · Kalamatianos et al. · 2021 [cited by applicant]
US 11119935B2 · Bhoria et al. · 2021 [cited by applicant]
US 11275692B2 · Bhoria et al. · 2022 [cited by applicant]
US 11403229B2 · Bhoria et al. · 2022 [cited by applicant]
US 11449432B2 · Bhoria et al. · 2022 [cited by applicant]
US 11461236B2 · Bhoria et al. · 2022 [cited by applicant]
US 11507513B2 · Bhoria · 2022 [cited by examiner]
US 11620230B2 · Bhoria · 2023 [cited by examiner]
US 11636040B2 · Bhoria · 2023 [cited by examiner]
US 11640357B2 · Bhoria · 2023 [cited by examiner]
US 11693790B2 · Bhoria · 2023 [cited by examiner]
US 11714760B2 · Bhoria · 2023 [cited by examiner]
US 11741020B2 · Bhoria · 2023 [cited by examiner]
US 11775446B2 · Bhoria · 2023 [cited by examiner]
US 11868272B2 · Bhoria · 2024 [cited by examiner]
US 11940929B2 · Bhoria · 2024 [cited by examiner]
US 20120042126A1 · Krick et al. · 2012 [cited by applicant]
US 20120079245A1 · Wang 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 20140189245A1 · Rupley et al. · 2014 [cited by applicant]
US 20150006820A1 · Bhoria et al. · 2015 [cited by applicant]
US 20150046655A1 · Nystad et al. · 2015 [cited by applicant]
US 20150154116A1 · Dittrich et al. · 2015 [cited by applicant]
US 20190213142A1 · Takeda · 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]