IP Library Granted Patent US 10,565,113
Granted Patent B2
US 10,565,113 · App. 14/825,502 · Granted Feb 18, 2020

Methods and systems for managing synonyms in virtually indexed physically tagged caches

Inventor: Karthikeyan Avudaiyappan (Sunnyvale, CA)
Assignee: INTEL CORPORATION
G06F12/0833G06F12/0811G06F12/0822G06F12/0855G06F12/1054G06F12/1063G06F2212/283G06F2212/621
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 10,565,113
App. No.
14/825,502
Granted
Feb 18, 2020
Kind
B2
Abstract

Methods and systems for managing synonyms in VIPT caches are disclosed. A method includes tracking lines of a copied cache using a directory, examining a specified bit of a virtual address that is associated with a load request and determining its status and making an entry in one of a plurality of parts of the directory based on the status of the specified bit of the virtual address that is examined. The method further includes updating one of, and invalidating the other of, a cache line that is associated with the virtual address that is stored in a first index of the copied cache, and a cache line that is associated with a synonym of the virtual address that is stored at a second index of the copied cache, upon receiving a request to update a physical address associated with the virtual address.

Claims (27)

1. A non-transitory computer readable medium having stored therein a set of instructions, which when executed by a computing device cause the computing device to perform a set of operations, the operations comprising:

tracking lines of level 1 cache that are copied to a level 2 cache using a directory in a cache controller of the level 2 cache;

examining a specified bit of a virtual address that is associated with a load request at the cache controller and determining its status;

making an entry in one of a plurality of parts of said directory based on the status of the specified bit of the virtual address that is examined; and

changing, in a single clock cycle, only a data value, of one of, and invalidating the other of in the single clock cycle, a cache line that is associated with said virtual address that is stored in a first index of the level 2 cache, and a cache line that is associated with a synonym of said virtual address that is stored at a second index of the level 2 cache, upon receiving a request to update a physical address associated with said virtual address, where the synonym is another virtual address that maps to the physical address of a memory component.

2. The non-transitory computer readable medium of claim 1 wherein said virtual address and said synonym is identified in said directory before said invalidating.

3. The non-transitory computer readable medium of claim 1 wherein making said entry in said directory comprises placing said entry in one of a first and a second panel based on said specified bit of said virtual address.

4. The non-transitory computer readable medium of claim 1 wherein said cache line associated with said virtual address stored in said first index of the level 2 cache, and said cache line associated with said synonym stored at said second index of the level 2 cache reside at said first and said second index until a request to update said physical address associated with said virtual address is made.

5. The non-transitory computer readable medium of claim 1 wherein said invalidating of said one of said first cache line that is associated with said virtual address that is stored in a first index of the level 2 cache, and said second cache line that is associated with said synonym, is determined randomly.

6. The non-transitory computer readable medium of claim 1 further comprising receiving said load request from a level 2 cache pipeline.

7. The non-transitory computer readable medium of claim 1 wherein said directory comprises a first and a second panel that correspond to first and second virtual address ranges.

8. The non-transitory computer readable medium of claim 1 wherein the level 2 cache is a copy of a level 1 cache.

9. The non-transitory computer readable medium of claim 1 wherein said cache system is a virtually indexed physically tagged (VIPT) system.

10. A cache memory system, comprising:

memory components including a main memory, a level 1 cache and a level 2 cache; and

a memory controller in the level 2 cache, wherein said memory controller includes a system for managing synonyms that comprises:

a tracking component that tracks copied lines of the level 1 cache in the level 2 cache using a directory;

an examining component that examines a specified bit of a virtual address that is associated with a load request and determining its status;

an entry making component that makes an entry in one of a plurality of parts of said directory based on the status of the specified bit of the virtual address that is examined; and

a cache line updating and invalidating component that changes only a data value, in a single clock cycle, of one of, and invalidates the other of in the single clock cycle, a cache line in the level 2 cache that is associated with said virtual address that is stored in a first index of the level 2 cache, and a cache line that is associated with a synonym of said virtual address that is stored at a second index of the level 2 cache, upon receiving a request to update a physical address associated with said virtual address, where the synonym is another virtual address that maps to the physical address in the main memory.

11. The cache memory system of claim 10 wherein said cache line updating and invalidating component identifies said virtual address and said synonym in said directory before said changing and said invalidating.

12. The cache memory system of claim 10 wherein said entry making component places said entry in one of a first and a second panel based on said specified bit of said virtual address.

13. The cache memory system of claim 10 wherein said cache line updating and invalidating component allows said cache line associated with said virtual address stored in said first index of the level 2 cache, and said cache line associated with said synonym stored at said second index of the level 2 cache to reside at said first and said second index until a request to update said physical address associated with said virtual address is made.

14. The cache memory system of claim 10 wherein said cache line updating and invalidating component determines randomly said changing and said invalidating of said one of said cache line that is associated with said virtual address that is stored in a first index of the level 2 cache, and said cache line that is associated with said synonym.

15. The cache memory system of claim 10 wherein said examining component examines load requests from a level 2 cache pipeline.

16. The cache memory system of claim 10 wherein level 2 cache is a copy of the level 1 cache.

17. The cache memory system of claim 10 wherein said cache system is a virtually indexed physically tagged (VIPT) system.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2016
From: SOFT MACHINES, INC.
To: INTEL CORPORATION
Reel/Frame 040631/0915 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 21, 2016
From: AVUDAIYAPPAN, KARTHIKEYAN
To: SOFT MACHINES, INC.
Reel/Frame 040466/0495 →
Cited By (6)
US 12,393,426 US 12,487,936 US 12,487,939 US 12,493,558 US 12,499,050 US 12,566,702