Microcontroller for memory management unit

US9792220B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9792220-B2
Application numberUS-201314011655-A
CountryUS
Kind codeB2
Filing dateAug 27, 2013
Priority dateMar 15, 2013
Publication dateOct 17, 2017
Grant dateOct 17, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

One embodiment of the present invention includes a microcontroller coupled to a memory management unit (MMU). The MMU is coupled to a page table included in a physical memory, and the microcontroller is configured to perform one or more virtual memory operations associated with the physical memory and the page table. In operation, the microcontroller receives a page fault generated by the MMU in response to an invalid memory access via a virtual memory address. To remedy such a page fault, the microcontroller performs actions to map the virtual memory address to an appropriate location in the physical memory. By contrast, in prior-art systems, a fault handler would typically remedy the page fault. Advantageously, because the microcontroller executes these tasks locally with respect to the MMU and the physical memory, latency associated with remedying page faults may be decreased. Consequently, overall system performance may be increased.

First claim

Opening claim text (preview).

What is claimed is: 1. A system configured to perform one or more preparatory operations for a memory access operation, the system comprising: a first memory that includes a first page table; a memory management unit coupled to the first memory and included within a parallel processing unit, the memory management unit configured to: process requests for translating virtual memory addresses to physical memory addresses, and manage the first page table; and a microcontroller coupled to the memory management unit and included within the parallel processing unit, the microcontroller configured to: identify a potential memory operation, and perform the one or more preparatory operations for the potential memory operation, wherein the one or more preparatory operations comprise updating an opportunistic migration indicator included in a first entry in a second page table to identify a first memory page as a candidate for possible migration to a different physical memory at a later time. 2. The system of claim 1 , wherein the potential memory operation comprises an opportunistic memory migration operation associated with a first virtual memory address. 3. The system of claim 2 , wherein the one or more preparatory operations further comprise: determining that the first memory page is included in a second memory based on the first virtual memory address, wherein the second memory is associated with a second processing unit; allocating a storage space in the first memory based on the size of the first memory page; and writing to a command queue one or more migration commands that are associated with migrating the first memory page from the second memory to the first memory. 4. The system of claim 3 , wherein the system further comprises a copy engine coupled to the first memory and configured to execute memory copy commands included in the command queue. 5. The system of claim 4 , wherein the one or more migration commands include commands that, when executed by the copy engine, cause the copy engine to copy the first memory page from the second memory to the first memory. 6. The system of claim 5 , wherein the one or more migration commands further include commands that, when executed by the parallel processing unit, cause the parallel processing unit to update the first page table to map the first virtual memory address to the first memory. 7. The system of claim 6 , wherein the one or more migration commands further include commands that, when executed by the parallel processing unit, cause the parallel processing unit to update the second page table to remove any mappings corresponding to the first virtual memory address, wherein the second page table is associated with the second memory. 8. The system of claim 1 , wherein identifying the potential memory operation comprises scanning entries included in a page state directory to identify a first entry that is associated with a first virtual memory address and reflects an opportunistic memory migration status. 9. The system of claim 8 , wherein the first entry reflects an opportunistic migration status. 10. The system of claim 9 , wherein the first entry indicates that the first page table maps the first virtual memory address to a memory page included in a second memory. 11. The system of claim 1 , wherein the potential memory operation comprises a zero-fill-on-demand memory operation, and the one or more preparatory operations further comprise allocating a second memory page included in the first memory and setting every entry included in the second memory page to a binary value of zero. 12. The system of claim 1 , wherein the potential memory operation comprises a copy-on-write memory operation, and the one or more preparatory operations further comprise allocating a second memory page included in the first memory and copying a copy-on-write memory page to the second memory page. 13. A computing device, comprising: a first memory that includes a first page table; a memory management unit included within a parallel processing unit, the memory management unit configured to: process requests for translating virtual memory addresses to physical memory addresses, and manage the first page table; and a microcontroller included within the parallel processing unit, the microcontroller configured to: identify a potential memory operation, and perform one or more preparatory operations for the potential memory operation, wherein the one or more preparatory operations comprise updating an opportunistic migration indicator included in a first entry in a second page table to identify a first memory page as a candidate for possible migration to a different physical memory at a later time. 14. The computing device of claim 13 , wherein the potential memory operation comprises an opportunistic memory operation associated with a first virtual memory address, and the one or more preparatory operations further comprise: determining that the first memory page is included in a second memory based on the first virtual memory address, wherein the second memory is associated with a second processing unit and includes the second page table; allocating a storage space in the first memory based on the size of the first memory page; and writing to a command queue one or more migration commands that are associated with migrating the first memory page from the second memory to the first memory. 15. The computing device of claim 13 , wherein the potential memory operation comprises a zero-fill-on-demand memory operation, and the one or more preparatory operations further comprise allocating a second memory page included in the first memory and setting every entry included in the second memory page to a binary value of zero. 16. The computing device of claim 13 , wherein the potential memory operation comprises a copy-on-write memory operation, and the one or more preparatory operations further comprise allocating a second memory page included in the first memory and copying a copy-on-write memory page to the second memory page. 17. A computer-implemented method for performing one or more preparatory operations for a memory access operation, the method comprising: identifying a potential memory operation; and performing the one or more preparatory operations for the potential memory operation, wherein the one or more preparatory operations comprise updating an opportunistic migration indicator included in a first entry in a first page table to identify a first memory page as a candidate for possible migration to a different physical memory at a later time. 18. The method of claim 17 , wherein the potential memory operation comprises an opportunistic memory migration operation associated with a first virtual memory address, and the one or more preparatory operations further comprise: determining that the first memory page is included in a first memory based on the first virtual memory address, wherein the first memory is associated with a first processing unit, and includes the first page table; allocating a storage space in a second memory based on the size of the first memory page, wherein the second memory is associated with a second processing unit; and writing to a command queue one or more migration commands that are associated with migrating the first memory page from the first memory to the second memory. 19. The method of claim 17 , wherein the potential memory operation comprises a zero-fill-on-demand memory operation, and the one or more preparatory operations further comprise allo

Assignees

Inventors

Classifications

  • using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] · CPC title

  • TLB miss handling · CPC title

  • In special purpose processing node, e.g. vector processor · CPC title

  • Address translation · CPC title

  • using page tables, e.g. page table structures · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9792220B2 cover?
One embodiment of the present invention includes a microcontroller coupled to a memory management unit (MMU). The MMU is coupled to a page table included in a physical memory, and the microcontroller is configured to perform one or more virtual memory operations associated with the physical memory and the page table. In operation, the microcontroller receives a page fault generated by the MMU i…
Who is the assignee on this patent?
Nvidia Corp
What technology area does this patent fall under?
Primary CPC classification G06F12/1009. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 17 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).