System and method for hardware-based GPU paging to system memory
AssigneeNVIDIA Corporation
InventorRadoslav Danilak
Life of this patent
Estimating the term…
Abstract
One embodiment of the present invention sets forth a technique for processing address page requests in a GPU system that is implementing a virtual memory model. A hardware-based page fault manager included in the GPU system intercepts page faults otherwise processed by a software-based page fault manager executing on a host CPU. The hardware-based page fault manager in the GPU includes a DMA engine capable of reading and writing pages between system memory and frame buffer memory without involving the CPU or operating system. A net improvement in system performance is achieved by processing a significant portion of page faults within the GPU, reducing the overall load on the host CPU.
Claims20
A computer-implemented method for using a virtual address to locate a page of data stored in a system that includes a central processing unit, a system memory coupled to the central processing unit, and a local memory coupled to a special purpose processing unit, the method comprising:
- performing a first page lookup operation to determine whether the virtual address associated with the page of data has a corresponding physical address in the local memory;
- generating a first page fault report, if the virtual address does not have a corresponding physical address in the local memory, wherein the first page fault report is not handled by the central processing unit;
- performing a second page lookup operation to determine whether the virtual address associated with the page of data has a corresponding physical address in the system memory in response to the first page fault report;
- and
- either generating a second page fault report to be handled by the central processing unit, if the virtual address does not have a corresponding physical address in the system memory, or accessing the page of data without involving the central processing unit, if the page of data is found the system memory.
A special purpose processing unit residing within a system that also includes a central processing unit and a system memory coupled to the central processing unit, wherein the special purpose processing unit is configured to use a virtual address to locate a page of data, the special purpose processing unit comprising:
- a local memory management unit configured to perform a first page lookup operation to determine whether the virtual address associated with the page of data has a corresponding physical address in a local memory coupled to the special purpose processing unit and to generate a first page fault report, if the page of data is not found in the local memory, wherein the first page fault report is not handled by the central processing unit;
- a page fault manager configured to perform a second page lookup operation to determine whether the virtual address associated with the page of data has a corresponding physical address in the system memory in response to the first page fault report, and further configured either to generate a second page fault report to be handled by the central processing unit, if the virtual address does not have a corresponding physical address in the system memory, or to access the page of data without involving a central processing unit, if the page of data is found in the system memory.
A computing device configured for using a virtual address to locate a page of data, the computing device comprising:
- a system memory;
- a central processing unit coupled to the system memory;
- a local memory;
- and
- a special purpose processing unit coupled to the local memory and including:
- a local memory management unit configured to perform a first page lookup operation to determine whether the virtual address associated with the page of data has a corresponding physical address in the local memory and to generate a first page fault report, if the page of data is not found in the local memory, wherein the first page fault report is not handled by the central processing unit;
- and
- a page fault manager configured to perform a second page lookup operation to determine whether the virtual address associated with the page of data has a corresponding physical address in the system memory in response to the first page fault report, and further configured either to generate a second page fault to be handled by the central processing unit, if the page of data is not found virtual address does not have a corresponding physical address in the system memory, or to access the page of data without involving a central processing unit, if the page of data is found in the system memory.
Dependencies are inferred from the claim text.