IP Library › Granted Patent US 12,613,808
Granted Patent B2
US 12,613,808 · App. 18/744,855 · Granted Apr 28, 2026

Virtual partitioning a processor-in-memory (“PIM”)

Inventors: Sooraj Puthoor (Austin, TX); Muhammad Amber Hassaan (San Marcos, TX); Ashwin Aji (Santa Clara, CA); Michael L. Chu (Santa Clara, CA); Nuwan Jayasena (Santa Clara, CA)
Assignee: ADVANCED MICRO DEVICES, INC.
G06F12/1072G06F12/0238G06F12/1009G06F12/1054G06F12/1063G06F13/1673G06F2212/7201
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,613,808
App. No.
18/744,855
Granted
Apr 28, 2026
Kind
B2
Abstract

Process isolation for a PIM device includes: receiving, from a process, a call to allocate a virtual address space where the process stores a PIM configuration context; allocating the virtual address space including mapping a physical address space including PIM device configuration registers to the virtual address space only if the physical address space is not mapped to another process's virtual address space; and programming the PIM device configuration space according to the configuration context. When a PIM command is executed, a translation mechanism determines whether there is a valid mapping of a virtual address of the PIM command to a physical address of a PIM resource, such as a LIS entry. If a valid mapping exists, the translation is completed and the resource is accessed, but if there is not a valid mapping, the translation fails and the process is blocked from accessing the PIM resource.

Claims (49)

1 . An apparatus comprising:

a processor; and

a processing-in-memory (PIM) controller coupled to the processor, wherein the PIM controller is configured to:

receive, from a process, a PIM instruction that targets a virtual address of a virtualized PIM configuration, wherein the virtualized PIM configuration includes a configuration context associated with a PIM device; and

translate, based on a valid mapping of a virtual address space of the process to a physical address space of a PIM resource, the virtual address to a physical address of the PIM resource.

2 . The apparatus of claim 1 , wherein a virtual address space of the virtualized PIM configuration is mapped to the physical address space of the PIM resource.

3 . The apparatus of claim 2 , wherein the virtual address space of the virtualized PIM configuration is mapped to the physical address space of the PIM resource in response to no other process being mapped to the physical address space of the PIM resource.

4 . The apparatus of claim 2 , wherein a virtual instruction store of the virtualized PIM configuration is mapped to a local instruction store on a PIM device; and

wherein to translate the virtual address to the physical address of the PIM resource the PIM controller is configured to:

translate the virtual address to a physical address in the local instruction store on the PIM device.

5 . The apparatus of claim 2 , wherein a page of the virtual address space of the process is mapped to a physical address space of a memory buffer on a PIM device; and

wherein to translate the virtual address to the physical address of the PIM resource the PIM controller is configured to:

translate the virtual address to a physical address of the memory buffer on the PIM device.

6 . The apparatus of claim 2 , wherein the virtual address space of the process is mapped to a physical address space of one or more registers on a PIM device; and

wherein to translate the virtual address to the physical address of the PIM resource the PIM controller is configured to:

translate the virtual address to a physical address of a register on the PIM device.

7 . The apparatus of claim 1 further comprising:

a PIM driver configured to program the PIM resource with data of the virtualized PIM configuration including programming at least one of a local instruction store and one or more PIM registers.

8 . The apparatus of claim 1 further comprising:

a memory controller configured to issue, based on the PIM instruction, a PIM command targeting the physical address of the PIM resource.

9 . The apparatus of claim 1 further comprising a PIM-enabled memory device that includes the PIM resource.

10 . A method comprising:

receiving, from a process, a PIM instruction that targets a virtual address of a virtualized PIM configuration, wherein the virtualized PIM configuration includes a configuration context associated with a PIM device; and

translating, based on a valid mapping of a virtual address space of the process to a physical address space of a PIM resource, the virtual address to a physical address of the PIM resource.

11 . The method of claim 10 further comprising:

mapping a virtual address space of the virtualized PIM configuration to the physical address space of the PIM resource.

12 . The method of claim 11 , wherein the virtual address space of the virtualized PIM configuration is mapped to the physical address space of the PIM resource in response to no other process being mapped to the physical address space of the PIM resource.

13 . The method of claim 11 , wherein mapping the virtual address space of the virtualized PIM configuration to the physical address space of the PIM resource includes:

mapping a virtual instruction store of the virtualized PIM configuration to a local instruction store on a PIM device; and

wherein translating the virtual address to the physical address of the PIM resource includes:

translating the virtual address to a physical address in the local instruction store on the PIM device.

14 . The method of claim 11 , wherein mapping the virtual address space of the virtualized PIM configuration to the physical address space of the PIM resource includes:

mapping a page of the virtual address space of the process to a physical address space of a memory buffer on a PIM device; and

wherein translating the virtual address to the physical address of the PIM resource includes:

translating the virtual address to a physical address of the memory buffer on the PIM device.

15 . The method of claim 11 , wherein mapping the virtual address space of the virtualized PIM configuration to the physical address space of the PIM resource includes:

mapping the virtual address space of the process to a physical address space of one or more registers on a PIM device; and

wherein translating the virtual address to the physical address of the PIM resource includes:

translating the virtual address to a physical address of a register on the PIM device.

16 . The method of claim 10 further comprising:

programming the PIM resource with data of the virtualized PIM configuration including programming at least one of a local instruction store and one or more PIM registers.

17 . The method of claim 10 further comprising:

issuing, based on the PIM instruction, a PIM command targeting the physical address of the PIM resource.

18 . An apparatus comprising:

a processor;

a computer memory coupled to the processor, the computer memory storing computer executable instructions that, when executed by the processor, cause the apparatus to:

store, by a process, a processing-in-memory (PIM) configuration context included in a virtualized PIM configuration using a virtual address space assigned to the process, the PIM configuration context associated with a PIM device and including a virtual instruction store; and

generate, by the process, a PIM instruction targeting a virtual memory address in the virtual address space, the virtual memory address corresponding to an entry in the virtual instruction store.

19 . The apparatus of claim 18 , wherein a portion of the virtual address space that corresponds to the virtual instruction store is mapped to a physical address space of a local instruction store on a PIM device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 17, 2024
From: PUTHOOR, SOORAJ; HASSAAN, MUHAMMAD AMBER; AJI, ASHWIN; CHU, MICHAEL L.; JAYASENA, NUWAN
To: ADVANCED MICRO DEVICES, INC.
Reel/Frame 067741/0933 →
Continuity (2)
Continuation 17556431 · Dec 20, 2021
Related Publication 20240394199A1 · Nov 28, 2024
References Cited (37)
US 6233668B1 · Harvey et al. · 2001 [cited by applicant]
US 6626749B2 · Neborsky et al. · 2003 [cited by applicant]
US 6725456B1 · Bruno et al. · 2004 [cited by applicant]
US 6851059B1 · Pfister et al. · 2005 [cited by applicant]
US 6952214B2 · Naegle et al. · 2005 [cited by applicant]
US 7296271B1 · Chalmer et al. · 2007 [cited by applicant]
US 8738860B1 · Griffin et al. · 2014 [cited by applicant]
US 11354134B1 · Yudanov · 2022 [cited by examiner]
US 11934698B2 · Puthoor et al. · 2024 [cited by applicant]
US 11934827B2 · Puthoor et al. · 2024 [cited by applicant]
US 20040008200A1 · Naegle et al. · 2004 [cited by applicant]
US 20040268071A1 · Khan et al. · 2004 [cited by applicant]
US 20050228936A1 · Kuo et al. · 2005 [cited by applicant]
US 20060004996A1 · Gonion · 2006 [cited by applicant]
US 20100023941A1 · Iwamatsu et al. · 2010 [cited by applicant]
US 20130305259A1 · Wang et al. · 2013 [cited by applicant]
US 20140201402A1 · Dalal et al. · 2014 [cited by applicant]
US 20140237261A1 · Diep et al. · 2014 [cited by applicant]
US 20160026667A1 · Mukherjee et al. · 2016 [cited by applicant]
US 20170048358A1 · Roberts et al. · 2017 [cited by applicant]
US 20170242590A1 · Gokhale · 2017 [cited by examiner]
US 20180089081A1 · Ramalingam · 2018 [cited by applicant]
US 20190018777A1 · Swaine · 2019 [cited by applicant]
US 20190066761A1 · Lea · 2019 [cited by examiner]
US 20190079677A1 · Malladi et al. · 2019 [cited by applicant]
US 20190384501A1 · Jagtap et al. · 2019 [cited by applicant]
US 20210271599A1 · Sharovar · 2021 [cited by applicant]
US 20230195375A1 · Puthoor · 2023 [cited by applicant]
US 20230195459A1 · Puthoor et al. · 2023 [cited by applicant]
US 20230195645A1 · Puthoor et al. · 2023 [cited by applicant]
US 20240211256A1 · Puthoor et al. · 2024 [cited by applicant]
US 20240220166A1 · Nishino et al. · 2024 [cited by applicant]
Gao, et al., “Practical Near-Data Processing for In-memory Analytics Frameworks,” 2015 International Conference on Parallel Architecture and Compilation (PACT), Oct. 2015, IEEE, San Francisco, CA, 12 pages. [cited by applicant]
Hajj et al., “SpaceJMP: Programming with Multiple Virtual Address Spaces,” ACM SIGPLAN Notices, vol. 51, Issue 4, Apr. 2016, https://doi.org/10.1145/2954679.2872366, 16 pages. [cited by applicant]
Hall et al., “Memory Management in PIM-Based Architecture,” In: Chong et al., “Intelligent Memory Systems,” IMS 2000, Lecture Notes in Computer Science, vol. 2107, Springer, Berlin, Heidelberg, https://doi.org/10.1007/3… [cited by applicant]
Hori, et al., “Process-in-Process: Techniques for Practical Address-Space Sharing,” Proceedings of the 27th International Symposium on High-Performance Parallel and Distributed Computing, Jun. 11-15, 2018, Tempe, AZ, US… [cited by applicant]
Kim et al., “Silent-PIM: Realizing the Processing-in-Memory Computing With Standard Memory Requests,” IEEE Transactions on Parallel and Distributed Systems, vol. 33, No. 2, Feb. 2022, Date of Publication: Mar. 11, 2021,… [cited by applicant]