Techniques for supporting for demand paging
First Claim
1. A computer-implemented method for supporting demand paging, the method comprising:
- receiving one or more requests for a copy engine within a processing subsystem to perform one or more operations, wherein the one or more requests comprise one or more virtual memory addresses that correspond to the one or more operations;
prior to transmitting any request included in the one or more requests to the copy engine, ensuring that the processing subsystem includes a memory mapping for each of the one or more virtual memory addresses; and
transmitting the one or more requests to the copy engine for processing.
1 Assignment
0 Petitions
Accused Products
Abstract
One embodiment of the present invention includes techniques to support demand paging across a processing unit. Before a host unit transmits a command to an engine that does not tolerate page faults, the host unit ensures that the virtual memory addresses associated with the command are appropriately mapped to physical memory addresses. In particular, if the virtual memory addresses are not appropriately mapped, then the processing unit performs actions to map the virtual memory address to appropriate locations in physical memory. Further, the processing unit ensures that the access permissions required for successful execution of the command are established. Because the virtual memory address mappings associated with the command are valid when the engine receives the command, the engine does not encounter page faults upon executing the command. Consequently, in contrast to prior-art techniques, the engine supports demand paging regardless of whether the engine is involved in remedying page faults.
43 Citations
26 Claims
-
1. A computer-implemented method for supporting demand paging, the method comprising:
-
receiving one or more requests for a copy engine within a processing subsystem to perform one or more operations, wherein the one or more requests comprise one or more virtual memory addresses that correspond to the one or more operations; prior to transmitting any request included in the one or more requests to the copy engine, ensuring that the processing subsystem includes a memory mapping for each of the one or more virtual memory addresses; and transmitting the one or more requests to the copy engine for processing. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 23, 24, 26)
-
-
12. A subsystem to support demand paging, the subsystem comprising:
-
a memory that includes a page table; a memory management unit coupled to the memory, wherein the memory management unit; processes requests for translating virtual memory addresses to physical memory addresses, and manages the page table; a copy engine coupled to the memory management unit, wherein the copy engine performs operations associated with virtual memory addresses; and a host coupled to the copy engine and to the memory management unit, wherein the host; receives one or more requests for the copy engine to perform one or more operations, wherein the one or more requests comprise one or more virtual memory addresses that correspond to the one or more operations; prior to transmitting any request included in the one or more requests to the copy engine, ensures that the page table includes a memory mapping for each of the one or more virtual memory addresses; and transmits the one or more requests to the copy engine for processing. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 25)
-
-
21. A computing device, comprising:
-
a memory that includes a page table; a memory management unit that; processes requests for translating virtual memory addresses to physical memory addresses, and manages the page table; a copy engine that performs operations associated with virtual memory addresses; and a host that; receives one or more requests for the copy engine to perform one or more operations, wherein the one or more requests associated with comprise one or more virtual memory addresses that correspond to the one or more operations; prior to transmitting any request included in the one or more requests to the copy engine, ensures that the page table includes a memory mapping for each of the one or more virtual memory addresses; and transmits the one or more requests to the copy engine for processing. - View Dependent Claims (22)
-
Specification