IP Library › Granted Patent US 12,393,371
Granted Patent B2
US 12,393,371 · App. 18/604,585 · Granted Aug 19, 2025

Process isolation for a processor-in-memory (“PIM”) device

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.
G06F3/0659G06F3/0622G06F3/0631G06F3/0656G06F3/0679G06F7/575
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,393,371
App. No.
18/604,585
Granted
Aug 19, 2025
Kind
B2
Abstract

Process isolation for a PIM device through exclusive locking includes receiving, from a process, a call requesting ownership of a PIM device. The request includes one or more PIM configuration parameters. The exclusive locking technique also includes granting the process ownership of the PIM device responsive to determining that ownership is available. The PIM device is configured according to the PIM configuration parameters.

Claims (46)

1. A system comprising:

a processor;

memory operatively coupled to the processor; and

a processing-in-memory (PIM) device, wherein the processor comprises one or more processing cores executing a plurality of processes and the memory comprises computer program instructions that are executable by the processor to:

maintain a record of ownership of the PIM device, wherein the record identifies a process in the plurality of processes and indicates whether the identified process is a current owner of the PIM device; and

grant the ownership of the PIM device to another process in the plurality of processes based on the record of ownership.

2. The system of claim 1 , wherein the ownership of the PIM device is granted to the another process in response to receiving a call from a process requesting ownership of the PIM device.

3. The system of claim 2 , wherein the call includes one or more PIM configuration parameters and a process identifier (PID) of the process requesting the ownership.

4. The system of claim 3 , wherein granting the ownership of the PIM device includes configuring the PIM device according to the one or more PIM configuration parameters and recording the PID of the process requesting the ownership in the record of ownership of the PIM device.

5. The system of claim 1 , wherein the memory further comprises computer program instructions that are executable by the processor to:

receive, from the process granted the ownership, a call to relinquish the ownership; and

make the PIM device available for the ownership.

6. The system of claim 1 , wherein the memory further comprises computer program instructions that are executable by the processor to:

deny access to a process in the plurality of processes requesting the ownership responsive to determining that the ownership is not available.

7. A method comprising:

maintaining a record of ownership of a processing-in-memory (PIM) device, wherein the record identifies a process in a plurality of processes and indicates whether the identified process is a current owner of the PIM device; and

granting the ownership of the PIM device to another process in the plurality of processes based on the record of ownership.

8. The method of claim 7 , wherein the ownership of the PIM device is granted to the another process in response to receiving a call from a process requesting ownership of the PIM device.

9. The method of claim 8 , wherein the call includes one or more PIM configuration parameters and a process identifier (PID) of the process requesting the ownership.

10. The method of claim 9 , wherein granting the ownership of the PIM device includes configuring the PIM device according to the one or more PIM configuration parameters and recording the PID of the process requesting the ownership in the record of ownership of the PIM device.

11. The method of claim 7 , further comprising:

receiving, from the process granted the ownership, a call to relinquish the ownership; and

making the PIM device available for the ownership.

12. The method of claim 7 , further comprising:

denying access to a process in the plurality of processes requesting the ownership responsive to determining that the ownership is not available.

13. The method of claim 7 , wherein the method is carried out by one of: a driver, a hypervisor, an operating system, and a PIM agent.

14. An apparatus comprising:

a processing-in-memory (PIM) device; and

one or more processing cores executing a plurality of processes, wherein the one or more processing cores execute a first process of the plurality of processes to:

make a call requesting ownership of the PIM device; and

receive a return that is based on a record of ownership of the PIM device, wherein the record indicates whether a second process in the plurality of processes is a current owner of the PIM device, wherein the return indicates that the ownership has been granted to the first process.

15. The apparatus of claim 14 , wherein the call includes one or more PIM configuration parameters and a process identifier (PID) of the first process.

16. The apparatus of claim 15 , wherein the return indicates that the PIM device has been configured according to the one or more PIM configuration parameters.

17. The apparatus of claim 14 , wherein the one or more processing cores further execute the first process of the plurality of processes to:

execute a kernel of PIM instructions on the PIM device; and

upon completion of the kernel, make a call to relinquish the ownership of the PIM device.

18. The apparatus of claim 14 , wherein the one or more processing cores further execute a third process of the plurality of processes to:

make a call requesting the ownership of the PIM device; and

receive a return indicating that that the call failed.

19. The apparatus of claim 18 , wherein the one or more processing cores further execute the third process to:

retry the call requesting the ownership of the PIM device a predetermined period of time after receiving the return indicating that the call failed; and

receive a return that is based on the record of ownership and that indicates that the ownership has been granted to the third process.

20. The apparatus of claim 14 , wherein the one or more processing cores further execute the first process of the plurality of processes to:

make a call requesting an allocation of a PIM aperture for use in issuing PIM instructions to the PIM device;

receive a return indicating that the allocation succeeded responsive to determining that the first process has been granted the ownership of the PIM device; and

issue the PIM instructions using the PIM aperture.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 14, 2024
From: PUTHOOR, SOORAJ; HASSAAN, MUHAMMAD AMBER; AJI, ASHWIN; CHU, MICHAEL L.; JAYASENA, NUWAN
To: ADVANCED MICRO DEVICES, INC.
Reel/Frame 066765/0529 →
Continuity (2)
Continuation 17556503 · Dec 20, 2021
Related Publication 20240220164A1 · Jul 4, 2024
References Cited (23)
US 6233668B1 · Harvey et al. · 2001 [cited by applicant]
US 6626749B2 · Neborsky · 2003 [cited by examiner]
US 6725456B1 · Bruno et al. · 2004 [cited by applicant]
US 6851059B1 · Pfister et al. · 2005 [cited by applicant]
US 7296271B1 · Chalmer · 2007 [cited by examiner]
US 8738860B1 · Griffin et al. · 2014 [cited by applicant]
US 20100023941A1 · Iwamatsu et al. · 2010 [cited by applicant]
US 20140237261A1 · Diep et al. · 2014 [cited by applicant]
US 20160026667A1 · Mukherjee · 2016 [cited by examiner]
US 20170048358A1 · Roberts et al. · 2017 [cited by applicant]
US 20180089081A1 · Ramalingam · 2018 [cited by applicant]
US 20190018777A1 · Swaine · 2019 [cited by applicant]
US 20190066761A1 · Lea et al. · 2019 [cited by applicant]
US 20190079677A1 · Malladi et al. · 2019 [cited by applicant]
US 20210271599A1 · Sharovar · 2021 [cited by examiner]
US 20230195375A1 · Puthoor et al. · 2023 [cited by applicant]
US 20230195459A1 · Puthoor et al. · 2023 [cited by applicant]
US 20230195645A1 · Puthoor et al. · 2023 [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]