IP Library Granted Patent US 10,754,775
Granted Patent B2
US 10,754,775 · App. 16/222,696 · Granted Aug 25, 2020

Fast cache invalidation response using cache class attributes

Inventors: Jay Gupta (Bangalore, IN); Gosagan Padmanabhan (Bangalore, IN); Devesh Mittal (Bangalore, IN); Kaushal Agarwal (Bangalore, IN)
Assignee: NVIDIA Corporation
G06F12/0808G06F12/1045G06F2212/1044G06F2212/683
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,754,775
App. No.
16/222,696
Granted
Aug 25, 2020
Kind
B2
Abstract

A memory management unit responds to an invalidate by class command by identifying a marker for a class of cache entries that the invalidate by class command is meant to invalidate. The memory management unit stores the active marker as a retired marker and then sets the active marker to the next available marker. Thereafter, the memory management sends an acknowledgement signal (e.g., to the operating system) while invalidating the cache entries having the class and the retired marker in the background. By correlating markers with classes of cache entries, the memory management can more quickly respond to class invalidation requests.

Claims (45)

1. A memory management unit comprising:

an asynchronous command interface;

cache memory invalidation logic adapted to:

identify an active marker for a class of cache entries;

set the active marker as a retired marker; and

on condition that a next marker is available to be used, operate the asynchronous command interface to immediately respond to an invalidate by class command for the class with an acknowledgement signal, and perform a background invalidation of the cache entries having the class and the retired marker.

2. The memory management unit of claim 1 , the cache memory invalidation logic further adapted to:

determine the next marker by incrementing the active marker for the class of cache entries by an increment value;

on condition that the next marker is not available to be used, wait for the next marker to be available to be used before invalidating the cache entries having the class and the retired marker.

3. The memory management unit of claim 2 , wherein the cache memory invalidation logic is further adapted to wait until the next marker is available to be used before operating the asynchronous command interface to send the acknowledgement signal.

4. The memory management unit of claim 2 , wherein the increment value is one.

5. The memory management unit of claim 1 , wherein the class corresponding to the invalidate by class command corresponds to page table entries in at least one translation look-aside buffer.

6. The memory management unit of claim 1 , further comprising prioritization logic to prioritize address translations for active contexts over execution of the invalidate by class command.

7. The memory management unit of claim 1 , the cache memory invalidation logic further adapted to:

invalidate cache entries allocated for in-flight cache fill requests for cache entries having the retired marker; and

discard responses received for the in-flight cache fill requests.

8. A memory management unit comprising:

an asynchronous command interface to receive and an invalidate by class command from an operating system and operable to respond to the invalidate by class command with an asynchronous acknowledgement signal;

cache memory invalidation logic coupled to the asynchronous command interface and responsive to the invalidate by class command, the cache memory invalidation logic adapted to:

identify an active marker for a class of cache entries identified with the invalidate by class command;

set the active marker as a retired marker;

determine a next marker by incrementing the active marker for the class by an increment value;

on condition that the next marker is available to be used:

set the active marker to the next marker;

operate the asynchronous command interface to send the acknowledgement signal; and

invalidate the cache entries having the class and the retired marker.

9. The memory management unit of claim 8 , the cache memory invalidation logic further adapted to:

on condition that the next marker is not available to be used:

wait for the next marker to be available to be used before invalidating the cache entries having the class and the retired marker; and

wait until the next marker is available to be used before causing the asynchronous command interface to send the acknowledgement signal.

10. The memory management unit of claim 8 , wherein the increment value is one.

11. The memory management unit of claim 8 , wherein the class corresponding to the invalidate by class command corresponds to page table entries in at least one translation look-aside buffer.

12. The memory management unit of claim 8 , further comprising prioritization logic to prioritize address translations for active contexts over execution of the invalidate by class command.

13. The memory management unit of claim 8 , the cache memory invalidation logic further adapted to:

invalidate cache entries allocated for in-flight cache fill requests for cache entries having the retired marker; and

discard responses received for the in-flight cache fill requests.

14. The memory management unit of claim 8 , wherein the cache memory invalidation logic is implemented using a state machine.

15. The memory management unit of claim 8 , wherein the active marker comprises N-bits, where N is derived from runtime profiling of use of the invalidate by class command by the operating system.

16. A memory management unit comprising:

a plurality of cache entries; and

cache memory invalidation logic to assign an active marker to a class of the cache entries and operate an asynchronous command interface to immediately acknowledge an invalidate by class command for the class and the marker while performing a background invalidation of the cache entries having the class and a retired marker.

17. The memory management unit of claim 16 , the cache memory invalidation logic to determine a next marker by incrementing a previous active marker for the class of cache entries by an increment value and to wait for the next marker to be available to be used before invalidating the cache entries having the class and the retired marker.

18. The memory management unit of claim 17 , the cache memory invalidation logic to wait until the next marker is available to be used before acknowledging the invalidate by class command.

19. The memory management unit of claim 17 , wherein the increment value is set to one.

20. The memory management unit of claim 16 , wherein the class corresponding to the invalidate by class command corresponds to page table entries in at least one translation look-aside buffer.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 9, 2019
From: AGARWAL, KAUSHAL; GUPTA, JAY; PADMANABHAN, GOSAGAN; MITTAL, DEVESH
To: NVIDIA CORP.
Reel/Frame 047945/0464 →
Continuity (2)
Provisional Application 62774008 · Nov 30, 2018
Related Publication 20200174932A1 · Jun 4, 2020