Unified memory systems and methods
AssigneeNVIDIA Corporation
InventorsAmit Rao, Ashish Srivastava, Yogesh Kini
Life of this patent
Estimating the term…
Abstract
The present invention facilitates efficient and effective utilization of unified virtual addresses across multiple components. In one embodiment, the presented new approach or solution uses Operating System (OS) allocation on the central processing unit (CPU) combined with graphics processing unit (GPU) driver mappings to provide a unified virtual address (VA) across both GPU and CPU. The new approach helps ensure that a GPU VA pointer does not collide with a CPU pointer provided by OS CPU allocation (e.g., like one returned by “malloc” C runtime API, etc.).
Claims20
An address allocation process comprising:
- allocating by a first processing unit, a physical memory address, of a physical address space of a second processing unit, to the second processing unit;
- allocating, by the first processing unit, a virtual address, within a reserved virtual address space of the first processing unit, to the second processing unit, a physical address space of the first processing unit not being allocated to the virtual address;
- and
- causing a processor driver of the second processing unit to map the allocated physical memory address to the virtual address.
A system comprising:
- a central process unit (CPU);
- a graphics processing unit (GPU) coupled to the central processing unit;
- and
- a memory for storing information utilized by the GPU and CPU, wherein a virtual address in a reserved CPU (VA-CPU) virtual address space is allocated to a pointer, a physical address in a GPU (PA-GPU) physical memory space is allocated for storing information associated with the pointer, and the VA-CPU is mapped to the PA-GPU, wherein the mapping of the VA-CPU to the PA-GPU is performed by a driver of the GPU, and wherein a CPU physical memory space is not allocated to the virtual address.
A tangible computer readable medium including instructions for the implementation of an address allocation process comprising:
- allocating, by a first processing unit, a physical memory address, of a physical address space of a second processing unit, to the second processing unit;
- allocating, by the first processing unit, a virtual address, within a reserved virtual address space of the first processing unit, to the second processing unit, a physical address space of the first processing unit not being allocated to the virtual address;
- and
- causing a processor driver of the second processing unit to map the allocated physical memory address to the virtual address.
Dependencies are inferred from the claim text.