IP Library › Granted Patent US 11,334,494
Granted Patent B2
US 11,334,494 · App. 16/882,387 · Granted May 17, 2022

Write merging on stores with different tags

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/0802G06F12/0804G06F12/0806G06F12/0811G06F12/0815G06F12/0853G06F12/0855G06F12/0864G06F12/0884G06F12/0891G06F12/0895G06F12/0897G06F12/12G06F12/121G06F12/128G06F13/1605G06F13/1642G06F13/1673G06F13/1689G06F15/8069G11C5/066G11C7/10G11C7/106G11C7/1015G11C7/1075G11C7/1078G11C7/1087G11C7/222G11C29/42G11C29/44G06F2212/1016G06F2212/1021G06F2212/1024G06F2212/1041G06F2212/1044G06F2212/301G06F2212/454G06F2212/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,334,494
App. No.
16/882,387
Granted
May 17, 2022
Kind
B2
Abstract

Techniques for caching data are provided that include receiving, by a caching system, a write memory command for a memory address, the write memory command associated with a first color tag, determining, by a first sub-cache of the caching system, that the memory address is not cached in the first sub-cache, determining, by second sub-cache of the caching system, that the memory address is not cached in the second sub-cache, storing first data associated with the first write memory command in a cache line of the second sub-cache, storing the first color tag in the second sub-cache, receiving a second write memory command for the cache line, the write memory command associated with a second color tag, merging the second color tag with the first color tag, storing the merged color tag, and evicting the cache line based on the merged color tag.

Claims (54)

1. A caching system comprising:

a first sub-cache; and

a second sub-cache, coupled in parallel with the first sub-cache, for storing cache data evicted from the first sub-cache and write-memory commands that are not cached in the first sub-cache, the second sub-cache including:

color tag bits configured to store an indication that a corresponding line of the second sub-cache is associated with a color tag; and

an eviction controller configured to evict cache lines of the second sub-cache storing write-memory data based on the color tag associated with the line, and

wherein the second sub-cache is further configured to:

receive a first write memory command for a memory address, the first write memory command associated with a first color tag;

store first data associated with the first write memory command in a cache line of the second sub-cache;

store the first color tag in the second sub-cache;

receive a second write memory command for the cache line, the second write memory command associated with a second color tag;

merge the second color tag with the first color tag to produce a merged color tag;

store the merged color tag; and

evict the cache line based on the merged color tag.

2. The caching system of claim 1 , wherein the first color tag and the second color tag represent the same color tag.

3. The caching system of claim 1 , wherein the first color tag and the second color tag represent different color tags, and wherein the merged color tag comprises a first bit representing the first color tag and a second bit representing the second color tag.

4. The caching system of claim 3 , wherein the second sub-cache is further configured to evict the cache line based on the first color tag.

5. The caching system of claim 4 , wherein the second sub-cache is further configured to evict the cache line based on the second color tag.

6. The caching system of claim 1 , wherein the first color tag and the second color tag are stored in a bit field in a memory tracking modified, exclusive, shared, and invalid (MESI) state of entries in the second sub-cache data.

7. The caching system of claim 6 , wherein the bit field includes a bit storing the state for each color tag.

8. A method for caching data, comprising:

receiving, by a caching system, a first write memory command for a memory address, the first write memory command associated with a first color tag;

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

determining, by second sub-cache of the caching system, that the memory address is not cached in the second sub-cache, wherein the second sub-cache is configured to store, in parallel with the first sub-cache, cache data evicted from the first sub-cache and write-memory commands that are not cached in the first sub-cache;

storing first data associated with the first write memory command in a cache line of the second sub-cache;

storing the first color tag in the second sub-cache;

receiving a second write memory command for the cache line, the second write memory command associated with a second color tag;

merging the second color tag with the first color tag to produce a merged color tag;

storing the merged color tag; and

evicting the cache line based on the merged color tag.

9. The method of claim 8 , wherein the first color tag and the second color tag represent the same color tag.

10. The method of claim 8 , wherein the first color tag and the second color tag represent different color tags, and wherein the merged color tag comprises a first bit representing the first color tag and a second bit representing the second color tag.

11. The method of claim 10 , wherein the evicting is based on the first color tag.

12. The method of claim 11 , wherein the evicting is based on the second color tag.

13. The method of claim 8 , wherein the first color tag and the second color tag are stored in a bit field in a memory tracking a modified, exclusive, shared, and invalid (MESI) state of entries in the second sub-cache data.

14. The method of claim 13 , wherein the bit field includes a bit storing the state for each color tag.

15. A device comprising:

a processor;

a first sub-cache; and

a second sub-cache coupled in parallel with the first sub-cache, for storing cache data evicted from the first sub-cache and write-memory commands that are not cached in the first sub-cache, and the second sub-cache including:

color tag bits configured to store an indication that a corresponding line of the second sub-cache is associated with a color tag; and

an eviction controller configured to evict cache lines of the second sub-cache storing write-memory data based on the color tag associated with the line, and

wherein the second sub-cache is further configured to:

receive a first write memory command for a memory address, the first write memory command associated with a first color tag;

store first data associated with the first write memory command in a cache line of the second sub-cache;

store the first color tag in the second sub-cache;

receive a second write memory command for the cache line, the second write memory command associated with a second color tag;

merge the second color tag with the first color tag to produce a merged color tag;

store the merged color tag; and

evict the cache line based on the merged color tag.

16. The device of claim 15 , wherein the first color tag and the second color tag represent the same color tag.

17. The device of claim 15 , wherein the first color tag and the second color tag represent different color tags, and wherein the merged color tag comprises a first bit representing the first color tag and a second bit representing the second color tag.

18. The device of claim 17 , wherein the second sub-cache is further configured to evict the cache line based on the first color tag.

19. The device of claim 18 , wherein the second sub-cache is further configured to evict the cache line data based on the second color tag.

20. The device of claim 15 , wherein the first color tag and the second color tag are stored in a bit field in a memory tracking modified, exclusive, shared, and invalid (MESI) state of entries in the second sub-cache data.

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