IP Library Granted Patent US 12,436,894
Granted Patent B2
US 12,436,894 · App. 17/572,409 · Granted Oct 7, 2025

Application programming interface to disassociate a virtual address

Inventors: Ajit Panditrao Hakke Patil (Lousiville, CO); Vivek Belve Kini (San Jose, CA); Michael Christopher Delorme (San Jose, CA)
Assignee: NVIDIA Corporation
G06F12/10G06F3/0619G06F3/0665G06F3/0679G06F12/0223G06F2212/65
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,436,894
App. No.
17/572,409
Granted
Oct 7, 2025
Kind
B2
Abstract

Apparatuses, systems, and techniques to manage memory arrays. In at least one embodiment an application programming interface (API) is performed to disassociate a virtual address indicated by the API from a corresponding physical address.

Claims (52)

1. One or more processors, comprising:

circuitry to cause an application programming interface (API) to be performed to disassociate a virtual memory address indicated to the API from a corresponding physical storage address corresponding to a data, wherein the virtual memory address is usable to reassociate the virtual memory address to a second physical storage address corresponding to the data.

2. The one or more processors of claim 1 , wherein the virtual memory address indicated to the API is a virtual address of a non-sparse array.

3. The one or more processors of claim 1 , wherein the corresponding physical storage address is a physical storage address of backing memory of a non-sparse array.

4. The one or more processors of claim 1 , wherein the API indicates residency of data stored at the corresponding physical storage address.

5. The one or more processors of claim 1 , wherein the virtual memory address is stored in memory of a graphics processing unit.

6. The one or more processors of claim 1 , wherein the virtual memory address is stored in a page table.

7. The one or more processors of claim 1 , wherein the corresponding physical storage address is an address of a data location in memory of a graphics processing unit.

8. The one or more processors of claim 1 , wherein the circuitry is to cause a second API to be performed to associate the virtual memory address to a second corresponding physical storage address.

9. The one or more processors of claim 1 , wherein the corresponding physical storage address is a physical storage address of texture data.

10. The one or more processors of claim 1 , wherein the API indicates whether the virtual memory address is associated with the corresponding physical storage address.

11. The one or more processors of claim 1 , wherein the virtual memory address is a virtual storage address.

12. A computer-implemented method, comprising:

performing a first application programming interface (API) to disassociate a virtual memory address indicated to the first API from a first corresponding physical storage address storing data accessible using the virtual memory address; and

performing a second API to remap the virtual memory address to a second corresponding physical storage address to store the data.

13. The computer-implemented method of claim 12 , wherein the virtual memory address indicated to the first API is a virtual address of a non-sparse array.

14. The computer-implemented method of claim 12 , wherein the first corresponding physical storage address is a physical storage address of backing memory of a non-sparse array.

15. The computer-implemented method of claim 12 , wherein the first API indicates residency of data stored at the first corresponding physical storage address.

16. The computer-implemented method of claim 12 , wherein the virtual memory address is stored in memory of a graphics processing unit.

17. The computer-implemented method of claim 12 , wherein the virtual memory address is stored in memory of a parallel processing unit.

18. The computer-implemented method of claim 12 , wherein the virtual memory address is stored in memory of a general purpose graphics processing unit.

19. The computer-implemented method of claim 12 , wherein the first corresponding physical storage address is an address of a data location in memory of a graphics processing unit.

20. The computer-implemented method of claim 12 , wherein the first corresponding physical storage address is an address of a data location in host memory.

21. The computer-implemented method of claim 12 , further comprising:

retrieving an array containing one or more sentinel values as a result of reading from the virtual memory address that is disassociated from the first corresponding physical storage address.

22. The computer-implemented method of claim 12 , wherein the first corresponding physical storage address is a physical memory address.

23. A computer system comprising:

one or more processors and memory storing executable instructions that, as a result of being executed by the one or more processors, cause the one or more processors to cause an application programming interface (API) to be performed to disassociate a virtual memory address indicated to the API from a corresponding physical storage address corresponding to a data, wherein the virtual memory address is usable to reassociate the virtual memory address to a second physical storage address corresponding to the data.

24. The computer system of claim 23 , wherein the virtual memory address indicated to the API is a virtual address of a non-sparse array.

25. The computer system of claim 23 , wherein the corresponding physical storage address is a physical storage address of backing memory of a non-sparse array.

26. The computer system of claim 23 , wherein the API indicates residency of data stored at the corresponding physical storage address.

27. The computer system of claim 23 , wherein the virtual memory address is stored in memory of a graphics processing unit.

28. The computer system of claim 23 , wherein the corresponding physical storage address is an address of a data location in memory of a graphics processing unit.

29. The computer system of claim 23 , wherein the API indicates that the virtual memory address is associated with the corresponding physical storage address.

30. The computer system of claim 23 , wherein the API indicates that the virtual memory address is not associated with the corresponding physical storage address.

31. The computer system of claim 23 , wherein:

the API is to receive a first parameter that includes one or more memory information structures, wherein a memory information structure of the one or more memory information structures indicates information about at least a portion of data;

the API is to receive a second parameter that indicates a count of the one or more memory information structures;

the API is to receive a third parameter that indicates an execution environment; and

the API is to return an error status indicator.

32. The computer system of claim 23 , wherein the API receives parameters including a memory handle, a map offset, and a set of map extents in a memory information parameter structure.

33. A machine-readable medium having stored thereon a set of instructions, which if performed by one or more processors, cause the one or more processors to cause an application programming interface (API) to be performed to disassociate a virtual memory address indicated to the API from a corresponding physical storage address corresponding to a data, wherein the virtual memory address is usable to reassociate the virtual memory address to a second physical storage address corresponding to the data.

34. The machine-readable medium of claim 33 , wherein the virtual memory address indicated by the API is a virtual address of a non-sparse array.

35. The machine-readable medium of claim 33 , wherein the corresponding physical storage address is a physical storage address of backing memory of a non-sparse array.

36. The machine-readable medium of claim 33 , wherein the API indicates residency of data stored at the corresponding physical storage address.

37. The machine-readable medium of claim 33 , wherein the virtual memory address is stored in memory of a graphics processing unit.

38. The machine-readable medium of claim 33 , wherein the corresponding physical storage address is an address of a data location in memory of a graphics processing unit.

39. The machine-readable medium of claim 33 , wherein the API indicates whether the virtual memory address is associated with the corresponding physical storage address.

40. The machine-readable medium of claim 33 , wherein the API is to receive a parameter that includes one or more memory information structures, wherein a memory information structure of the one or more memory information structures indicates information about at least a portion of data.

41. The machine-readable medium of claim 33 , wherein the API is to receive a parameter that indicates a count of one or more memory information structures.

42. The machine-readable medium of claim 33 , wherein the API is to receive a parameter that indicates an execution environment.

43. The machine-readable medium of claim 33 , wherein the API is to return an error status indicator.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 23, 2022
From: HAKKE PATIL, AJIT PANDITRAO; KINI, VIVEK BELVE; DELORME, MICHAEL CHRISTOPHER
To: NVIDIA CORPORATION
Reel/Frame 059379/0489 →
Continuity (1)
Related Publication 20230222069A1 · Jul 13, 2023
References Cited (8)
US 7065630B1 · Ledebohm et al. · 2006 [cited by applicant]
US 10534749B1 · Miah · 2020 [cited by examiner]
US 20090313415A1 · Sabaa · 2009 [cited by examiner]
WO 2021173623A1 · 2021 [cited by applicant]
IEEE “IEEE Standard for Floating-Point Arithmetric”, Microprocessor Standards Committee of the IEEE Computer Society, IEEE Std 754-2008, dated Jun. 12, 2008, 70 pages. [cited by applicant]
Nvidia, “CUDA Driver API: CUDA Toolkit Documentation, ” retrieved from https://docs.nvidia.com/cuda/cuda-driver-api/group_CUDA_VA.html, Nov. 23, 2021, 1 page. [cited by applicant]
The Khronos Group, “vkBindImageMemory—Bind Device Memory to an Image Object,” retrieved from https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkBindImageMemory.html, Dec. 20, 2021, 5 pages. [cited by applicant]
International Search Report and Written Opinion for Application No. PCT/US2023/060372, mailed Apr. 25, 2023, filed Jan. 10, 2023, 13 pages. [cited by applicant]