IP Library › Granted Patent US 12,292,839
Granted Patent B2
US 12,292,839 · App. 18/497,005 · Granted May 6, 2025

Write merging on stores with different privilege levels

Inventors: Naveen Bhoria (Plano, TX); Timothy David Anderson (University Park, TX); Pete 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,292,839
App. No.
18/497,005
Granted
May 6, 2025
Kind
B2
Abstract

A caching system including a first sub-cache, a second sub-cache, coupled in parallel with the first sub-cache, for storing write-memory commands that are not cached in the first sub-cache, the second sub-cache including privilege bits configured to store an indication that a corresponding cache line of the second sub-cache is associated with a level of privilege, and wherein the second sub-cache is further configured to receive a first write memory command for a memory address associated with a first level of privilege, store, in the second sub-cache, first data associated with the first write memory command and the level of privilege associated with the cache line, receive a second write memory command for the cache line, the second write memory command associated with a second level of privilege, merge the first level of privilege with the second level of privilege, and output the merged privilege level with the cache line.

Claims (52)

1. A device comprising:

a processor configured to perform a first set of instructions associated with a first privilege level and a second set of instructions associated with a second privilege level;

a cache controller coupled to the processor;

a cache memory coupled to the cache controller and that includes a cache line; and

a second memory coupled to the cache controller, wherein the cache controller is configured to:

receive a write command associated with writing a first set of data to the cache line, wherein the first set of data is associated with the first privilege level; and

based on the write command:

determine whether the cache line currently stores a second set of data associated with the second privilege level; and

when the cache line stores the second set of data:

merge the first set of data with the second set of data to produce a merged set of data;

store the merged set of data in the cache line;

determine a merged indicator that specifies a third privilege level associated with the merged set of data; and

store the merged indicator in the second memory.

2. The device of claim 1 , wherein the second memory is configured to store state data associated with the cache line.

3. The device of claim 2 , wherein the state data specifies whether a value stored in the cache line is modified, exclusive, shared, or invalid.

4. The device of claim 1 further comprising a third memory coupled to the cache controller and configured to store a table, wherein the cache controller is configured to determine the merged indicator based on the table.

5. The device of claim 4 , wherein the table is configurable.

6. The device of claim 1 , wherein each of the first privilege level and the second privilege level includes two parts.

7. The device of claim 6 , wherein each of the first privilege level and the second privilege level includes a first part that specifies either a guest privilege or a root privilege.

8. The device of claim 7 , wherein each of the first privilege level and the second privilege level includes a second part that specifies either a user privilege or a supervisor privilege.

9. The device of claim 1 , wherein the third privilege level is a lower of the first privilege level and the second privilege level.

10. The device of claim 1 , wherein the cache memory is a victim cache memory, and the second memory is a victim cache tag memory.

11. The device of claim 10 , further comprising a main cache memory coupled to the cache controller, wherein the victim cache memory is configured to store data evicted from the main cache memory.

12. The device of claim 1 , wherein the cache controller is a level one (L1) cache controller, and the cache memory is an L1 cache memory.

13. A device comprising:

a processor configured to perform a first process associated with a first privilege level and a second process associated with a second privilege level;

a cache controller coupled to the processor;

a main cache memory;

a victim cache memory coupled to the cache controller and that includes a cache line; and

a third memory coupled to the cache controller, wherein the cache controller is configured to:

receive, from the processor, a write command associated with writing a first set of data at an address, wherein the first set of data is associated with the first process; and

based on the write command:

determine whether data associated with the address is stored in the main cache memory or stored in the victim cache memory in parallel; and

determine, based on whether the cache line of the victim cache memory currently stores a second set of data associated with the second process, whether to:

merge the first set of data with the second set of data to produce a merged set of data;

store the merged set of data in the cache line;

determine a merged indicator that specifies a third privilege level associated with the merged set of data; and

store the merged indicator in the third memory.

14. The device of claim 13 , wherein the third memory is configured to store state data associated with the cache line.

15. The device of claim 14 , wherein the state data specifies whether a value stored in the cache line is modified, exclusive, shared, or invalid.

16. The device of claim 13 further comprising a fourth memory coupled to the cache controller and configured to store a table, wherein the cache controller is configured to determine the merged indicator based on the table.

17. A method comprising:

receiving a write command associated with writing a first set of data to a cache line of a cache memory, wherein the first set of data is associated with a first privilege level;

determining whether a second set of data is stored in the cache line, wherein the second set of data is associated with a second privilege level; and

determining, based on whether the second set of data is stored in the cache line, whether to:

merge the first set of data with the second set of data to produce a merged set of data;

store the merged set of data in the cache line;

determine a merged indicator that specifies a third privilege level associated with the merged set of data; and

store the merged indicator in a second memory.

18. The method of claim 17 , wherein the second memory is configured to store state data associated with the cache line.

19. The method of claim 18 , wherein the state data specifies whether a value stored in the cache line is modified, exclusive, shared, or invalid.

20. The method of claim 17 , wherein the determining of the merged indicator includes querying a table based on the first privilege level and the second privilege level.

Continuity (5)
Continuation 17842257 · Jun 16, 2022
Continuation 17744810 · May 16, 2022
Continuation 16882387 · May 22, 2020
Provisional Application 62852494 · May 24, 2019
Related Publication 20240078190A1 · Mar 7, 2024
References Cited (20)
US 5651136A · Denton et al. · 1997 [cited by applicant]
US 6775750B2 · Krueger · 2004 [cited by applicant]
US 7386685B2 · Blumrich et al. · 2008 [cited by applicant]
US 8095734B2 · Lippert et al. · 2012 [cited by applicant]
US 8181005B2 · Zuraski, Jr. et al. · 2012 [cited by applicant]
US 8341353B2 · Venkumahanti et al. · 2012 [cited by applicant]
US 9170955B2 · Forsyth et al. · 2015 [cited by applicant]
US 20020174253A1 · Hayter et al. · 2002 [cited by applicant]
US 20030200404A1 · Wicki et al. · 2003 [cited by applicant]
US 20100088472A1 · Ukai · 2010 [cited by applicant]
US 20120042126A1 · Krick 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 20170177500A1 · Shanbhogue et al. · 2017 [cited by applicant]
US 20180232311A1 · Bhati et al. · 2018 [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]
International Search Report for PCT/US2020/034458 mailed Aug. 27, 2020. [cited by applicant]