Dynamically creating or removing a physical-to-virtual address mapping in a memory of a peripheral device
AssigneeNVIDIA Corporation
InventorsHerbert O. Ledebohm, Mark A. Einkauf, Franck R. Diard, Jeffrey C. Doughty
Life of this patent
Estimating the term…
Abstract
Systems and methods for providing on-demand memory management. In response to a mapping request from a device driver or other program, a first portion of the memory is mapped to one or more virtual addresses in a first region of a virtual memory space so that it can be directly accessed by the CPU. In response to an unmapping request the first portion of the memory is unmapped. Mapping and unmapping requests may be made at any time.
Claims27
A method of managing a memory located on a peripheral device of a computing system, the method comprising:
- in response to a first request, dynamically allocating a first portion of the memory, thereby making the first portion of the memory accessible to a co-processor of the peripheral device;
- in response to a second request, dynamically mapping the first portion of the memory to one or more virtual addresses in a first region of a virtual memory space, thereby making the first portion of the memory directly accessible to a process executing on a central processing unit (CPU) of the computing system,
- wherein the first portion of the memory is dynamically unmappable in response to an unmapping request.
A computer program product comprising:
- a tangible computer readable medium encoded with program code, the program code including:
- program code for generating an allocation request;
- program code for responding to the allocation request by dynamically allocating a first portion of a memory of a peripheral device, thereby making the first portion of the memory accessible to a co-processor of the peripheral device;
- program code for generating a mapping request;
- program code for responding to the mapping request by dynamically mapping the first portion of the memory to one or more virtual addresses in a first region of a virtual memory space, thereby making the first portion of the memory directly accessible to a process executing on a central processing unit (CPU) of a computing system;
- program code for generating an unmapping request;
- and
- program code for responding to the unmapping request by unmapping the portion of the memory, thereby making the portion of memory no longer accessible to the process.
A product for use with a computing system, the product comprising:
- a peripheral device adapted to be installed in the computing system;
- and
- a computer readable medium encoded with driver program code for a driver of the peripheral device, the driver program code including:
- program code for generating an allocation request;
- program code for responding to the allocation request by dynamically allocating a first portion of a memory of a peripheral device, thereby making the first portion of the memory accessible to a co-processor of the peripheral device;
- program code for generating a mapping request;
- program code for responding to the mapping request by dynamically mapping the first portion of the memory to one or more virtual addresses in a first region of a virtual memory space, thereby making the first portion of the memory directly accessible to a process executing on a central processing unit (CPU) of the computing system;
- program code for generating an unmapping request;
- and
- program code for responding to the unmapping request by unmapping the portion of the memory, thereby making the portion of memory no longer accessible to the process.
Dependencies are inferred from the claim text.