IP Library › Granted Patent US 11,194,729
Granted Patent B2
US 11,194,729 · App. 16/882,369 · Granted Dec 7, 2021

Victim cache that supports draining write-miss entries

Inventors: Naveen Bhoria (Plano, TX); Timothy David Anderson (University Park, TX); Pete Hippleheuser (Murphy, TX)
Assignee: TEXAS INSTRUMENTS INCORPORATED
G06F12/0888G06F9/3001G06F9/30047G06F9/546G06F11/1064G06F12/0215G06F12/0238G06F12/0292G06F12/082G06F12/0804G06F12/0806G06F12/0811G06F12/0815G06F12/0853G06F12/0855G06F12/0864G06F12/0884G06F12/0891G06F12/0895G06F12/0897G06F12/12G06F12/121G06F12/128G06F13/1605G11C5/066G11C7/10G11C7/106G11C7/1015G11C7/1075G11C7/1087G11C7/222G11C29/42G11C29/44G06F2212/1016G06F2212/1021G06F2212/1024G06F2212/1041G06F2212/1044G06F2212/608G06F2212/6032G06F2212/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,194,729
App. No.
16/882,369
Granted
Dec 7, 2021
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 a set of cache lines, line type bits configured to store an indication that a corresponding cache line of the set of cache lines is configured to store write-miss data, and an eviction controller configured to flush stored write-miss data based on the line type bits.

Claims (55)

1. A caching system comprising:

a first level cache including:

a first sub-cache; and

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

a set of cache lines;

line type bits configured to indicate a line type of a corresponding cache line of the set of cache lines, wherein a first line type is an indication that the cache line of the set of cache lines is configured to store a line of data evicted out of the first sub-cache, wherein a second line type is an indication that the corresponding cache line of the set of cache lines is configured to store write-miss data; and

an eviction controller configured to flush stored write-miss data based on the line type bits; and

a second level cache.

2. The caching system of claim 1 , wherein the second sub-cache further comprises:

a tag random access memory (RAM) configured to store a memory address associated with the stored write-miss data; and

a byte enable memory configured to store byte enable logic associated with the stored write-miss data, and

wherein the eviction controller is configured to flush stored write-miss data by transmitting a memory write request to a higher level memory based the stored memory address and stored byte enable logic.

3. The caching system of claim 1 , wherein the caching system further includes a processor interface, and wherein the eviction controller is further configured to:

monitor activity on the processor interface; and

flush stored write-miss data based on the monitored activity.

4. The caching system of claim 3 , wherein monitoring activity on the processor interface comprises detecting idle activity on the processor interface.

5. The caching system of claim 4 , wherein detecting idle activity comprises determining whether memory requests have been received for a predetermined number of clock cycles.

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

determine that activity on the processor interface has resumed; and

cancel flushing of the stored write-miss data.

7. The caching system of claim 6 , wherein determining that activity on the processor interface has resumed comprises detecting a cache request receipt from the processor.

8. A method for caching data, comprising:

receiving, by a first level cache, a write memory request for a memory address;

determining, by a first sub-cache of the first level cache, that the memory address is not cached in the first sub-cache;

determining, by second sub-cache of the first level cache, that the memory address is not cached in the second sub-cache;

storing data associated with the write memory request in the second sub-cache;

storing, in a line type bit of the second sub-cache, an indication that the stored data corresponds to a write-miss;

monitoring, on a processor interface, activity of a processor; and

flushing the stored data based on the indication and the activity of the processor is at or below a threshold.

9. The method of claim 8 , wherein flushing the stored data comprises transmitting, by the second-sub cache, a memory write request to a higher level memory.

10. The method of claim 8 , wherein the threshold is idle activity on the processor interface.

11. The method of claim 10 , wherein detecting idle activity comprises determining that memory requests have not been received for a predetermined number of clock cycles.

12. The method of claim 10 , further comprising:

determining that activity on the processor interface has resumed; and

cancelling flushing of the stored write-miss data.

13. The method of claim 12 , wherein determining that activity on the processor interface has resumed comprises detecting a cache request receipt.

14. A device comprising:

a processor including a first level cache, wherein the first level cache includes:

a first sub-cache; and

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

a set of cache lines;

line type bits configured to indicate a line type of a corresponding cache line of the set of cache lines, wherein a first line type is an indication that the cache line of the set of cache lines is configured to store a line of data evicted out of the first sub-cache, wherein a second line type is an indication that the corresponding cache line of the set of cache lines is configured to store write-miss data; and

an eviction controller configured to flush stored write-miss data based on the line type bits.

15. The device of claim 14 , wherein the second sub-cache further comprises:

a tag random access memory (RAM) configured to store a memory address associated with the stored write-miss data; and

a byte enable memory configured to store byte enable logic associated with the stored write-miss data, and

wherein the eviction controller is configured to flush stored write-miss data by transmitting a memory write request to a higher level memory based the stored memory address and stored byte enable logic.

16. The device of claim 14 , wherein the caching system further includes a processor interface, and wherein the eviction controller is further configured to:

monitor activity on the processor interface; and

flush stored write-miss data based on the monitored activity.

17. The device of claim 16 , wherein monitoring activity on the processor interface comprises detecting idle activity on the processor interface.

18. The device of claim 17 , wherein detecting idle activity comprises determining whether memory requests have been received for a predetermined number of clock cycles.

19. The device of claim 17 , wherein the eviction controller is further configured to:

determine that activity on the processor interface has resumed; and

cancel flushing of the stored write-miss data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 27, 2020
From: BHORIA, NAVEEN; ANDERSON, TIMOTHY DAVID; HIPPLEHEUSER, PETE
To: TEXAS INSTRUMENTS INCORPORATED
Reel/Frame 052764/0724 →
Continuity (2)
Provisional Application 62852494 · May 24, 2019
Related Publication 20200371961A1 · Nov 26, 2020