IP Library › Granted Patent US 11,868,272
Granted Patent B2
US 11,868,272 · App. 17/956,960 · Granted Jan 9, 2024

Methods and apparatus for allocation in a 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/082G06F12/0804G06F12/0806G06F12/0811G06F12/0815G06F12/0853G06F12/0855G06F12/0864G06F12/0884G06F12/0888G06F12/0891G06F12/0895G06F12/0897G06F12/12G06F12/121G06F12/126G06F12/127G06F13/1605G06F13/1642G06F13/1673G06F13/1689G06F15/8069G11C5/066G11C7/10G11C7/106G11C7/1015G11C7/1075G11C7/1078G11C7/1087G11C7/222G11C29/42G11C29/44G06F2212/1016G06F2212/1021G06F2212/1024G06F2212/1041G06F2212/1044G06F2212/301G06F2212/454G06F2212/608G06F2212/6032G06F2212/6042G06F2212/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 11,868,272
App. No.
17/956,960
Granted
Jan 9, 2024
Kind
B2
Abstract

Methods, apparatus, systems and articles of manufacture are disclosed for allocation in a victim cache system. An example apparatus includes a first cache storage, a second cache storage, a cache controller coupled to the first cache storage and the second cache storage and operable to receive a memory operation that specifies an address, determine, based on the address, that the memory operation evicts a first set of data from the first cache storage, determine that the first set of data is unmodified relative to an extended memory, and cause the first set of data to be stored in the second cache storage.

Claims (69)

1. A device comprising:

a cache that includes:

a cache controller configured to receive a read operation directed to a memory address;

a first cache storage coupled to the cache controller, wherein the first cache storage includes a first cache line associated with the memory address; and

a second cache storage coupled to the cache controller in parallel with the first cache storage, wherein the second cache storage includes a second cache line;

wherein the cache controller is configured to:

determine whether the read operation is associated with a read-miss in the first cache storage and whether the read operation is associated with a read-miss in the second cache storage in parallel;

determine whether the first cache line includes a set of data; and

based on the read operation being associated with a read-miss in the first cache storage, evict the set of data from the first cache line of the first cache storage to the second cache line of the second cache storage.

2. The device of claim 1 , wherein:

the cache is a first cache;

the device further comprises a second cache coupled to the first cache; and

the cache controller is configured to forward the read operation to the second cache based on the read operation being associated with a read-miss in the first cache storage and a read-miss in the second cache storage.

3. The device of claim 1 , wherein:

the set of data is a first set of data; and

the cache controller is configured to:

based on the read operation being associated with a hit in the second cache storage, provide a second set of data from the second cache storage as a response to the read operation.

4. The device of claim 3 , wherein the cache controller is configured to, based on the read operation being associated with a hit in the second cache storage, write the second set of data to the first cache line of the first cache storage.

5. The device of claim 1 , wherein:

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

the first cache storage is an L1 main cache storage; and

the second cache storage is an L1 victim cache storage.

6. The device of claim 1 , wherein:

the first cache storage is direct mapped; and

the second cache storage is fully associative.

7. The device of claim 1 , wherein the first cache storage and the second cache storage have different associativity.

8. A device comprising:

a cache that includes:

a cache controller configured to receive a read operation directed to a memory address;

a first cache storage coupled to the cache controller, wherein the first cache storage includes a first cache line associated with the memory address; and

a second cache storage coupled to the cache controller in parallel with the first cache storage, wherein the second cache storage includes a second cache line;

wherein the cache controller is configured to:

determine that the read operation is associated with a read-miss in the first cache storage;

determine that the first cache line includes a set of data; and

based on the read operation being associated with a read-miss in the first cache storage, evict the set of data from the first cache line of the first cache storage to the second cache line of the second cache storage regardless of whether the first cache line is clean or dirty.

9. The device of claim 8 , wherein the first cache storage and the second cache storage have different associativity.

10. The device of claim 9 , wherein:

the first cache storage is direct mapped; and

the second cache storage is fully associative.

11. The device of claim 9 , wherein:

the first cache storage is a level one (L1) main cache storage; and

the second cache storage is an L1 victim cache storage.

12. A device comprising:

a processor core; and

a cache coupled to the processor core that includes:

a cache controller coupled to the processor core;

a first cache storage coupled to the cache controller; and

a second cache storage coupled to the cache controller in parallel with the first cache storage;

wherein the cache controller is configured to:

receive a read operation from the processor core;

determine whether the read operation is associated with a read-miss in the first cache storage and whether the read operation is associated with a read-miss in the second cache storage in parallel;

based on the read operation being associated with a read-miss in the first cache storage, determine whether the read operation is associated with an eviction of a first set of data from the first cache storage;

based on the read operation being associated with an eviction of the first set of data, write the first set of data to the second cache storage; and

provide a second set of data as a response to the read operation.

13. The device of claim 12 , wherein the cache controller is configured to write the first set of data to the second cache storage regardless of whether the first set of data is associated with a modified or unmodified state in the first cache storage.

14. The device of claim 12 , wherein:

the read operation is associated with an address;

the address is associated with a first cache line of the first cache storage; and

the cache controller is configured to determine whether the read operation being associated with an eviction based on whether the first cache line has a valid state.

15. The device of claim 12 , wherein:

the cache is a first cache;

the device further comprises a second cache coupled to the first cache; and

the cache controller is configured to retrieve the second set of data to provide as a response from the second cache based on the read operation being associated with a read-miss in the first cache storage and a read-miss in the second cache storage.

16. The device of claim 12 , wherein the cache controller is configured to retrieve the second set of data to provide as a response from the second cache storage based on the read operation being associated with a hit in the second cache storage.

17. The device of claim 16 , wherein the cache controller is configured to, based on the read operation being associated with a hit in the second cache storage, write the second set of data to the first cache storage.

18. The device of claim 12 , wherein:

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

the first cache storage is an L1 main cache storage; and

the second cache storage is an L1 victim cache storage.

Continuity (3)
Continuation 16882244 · May 22, 2020
Provisional Application 62852494 · May 24, 2019
Related Publication 20230032348A1 · Feb 2, 2023
Cited By (1)
US 12,321,284