IP Library Granted Patent US 11,934,698
Granted Patent B2
US 11,934,698 · App. 17/556,503 · Granted Mar 19, 2024

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 11,934,698
App. No.
17/556,503
Granted
Mar 19, 2024
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 (59)

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:

receive, from a process of the plurality of processes, a call requesting ownership of the PIM device, the call including one or more PIM configuration parameters and a process identifier (PID) of the process requesting the ownership; and

grant the ownership of the PIM device to the process requesting the ownership, including configuring the PIM device according to the one or more PIM configuration parameters and recording the PID of the process requesting the ownership.

2. The system of claim 1 , further comprising computer program instructions that are executable by the processor to:

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

make the PIM device available for the ownership.

3. The system of claim 1 , further comprising computer program instructions that are executable by the processor to:

deny access to the process requesting the ownership responsive to determining that the ownership is not available.

4. The system of claim 3 , further comprising computer program instructions that are executable by the processor to:

make the PIM device available for the ownership responsive to a request to relinquish the ownership;

again receive, from the process requesting the ownership, a call requesting the ownership of the PIM device, the call including the one or more PIM configuration parameters; and

grant the ownership of the PIM device again to the process requesting the ownership.

5. The system of claim 3 , further comprising computer program instructions that are executable by the processor to:

receive, from the process requesting the ownership, a request to allocate a PIM aperture for use in issuing PIM instructions to the PIM device; and

allocate the PIM aperture responsive to determining that the process requesting the ownership has been granted the ownership of the PIM device.

6. The system of claim 3 , further comprising computer program instructions that are executable by the processor to:

provide to a dispatcher of a PIM control engine, identification of the process having the ownership of the PIM device, wherein the dispatcher is configured to dispatch PIM instructions to the PIM device responsive to determining that the PIM instructions are from the process having the ownership of the PIM device.

7. A method comprising:

receiving, from a process, a call requesting ownership of a processing-in-memory (PIM) device, the call including one or more PIM configuration parameters and a process identifier (PID) of the process requesting the ownership; and

granting the process the ownership of the PIM device responsive to determining that the ownership is available, including configuring the PIM device according to the one or more PIM configuration parameters and recording the PID of the process requesting the ownership.

8. The method of claim 7 , further comprising:

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

making the PIM device available for the ownership.

9. The method of claim 7 , further comprising:

denying access to the process requesting the ownership responsive to determining that the ownership is not available.

10. The method of claim 9 , further comprising:

making the PIM device available for the ownership responsive to a request to relinquish the ownership;

again receiving, from the process requesting the ownership, a call requesting the ownership of the PIM device, the request including the one or more PIM configuration parameters; and

granting the ownership of the PIM device again to the process requesting the ownership.

11. The method of claim 9 , further comprising:

receiving, from the process requesting the ownership, a request to allocate a PIM aperture for use in issuing PIM instructions to the PIM device; and

allocating the PIM aperture responsive to determining that the process requesting the ownership has been granted the ownership of the PIM device.

12. The method of claim 7 , further comprising:

providing to a dispatcher of a PIM control engine, identification of the process having the ownership of the PIM device, wherein the dispatcher is configured to dispatch PIM instructions to the PIM device responsive to determining that the PIM instructions are from the process having the ownership of the PIM device.

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 at least one of the plurality of processes to:

make a call requesting ownership of the PIM device, the call including one or more PIM configuration parameters and a process identifier (PID) of the process; and

receive a return indicating that the PIM device has been configured according to the one or more PIM configuration parameters and that the ownership has been granted to the process.

15. The apparatus of claim 14 , wherein the one or more processing cores further execute the at least one 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.

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

make a call requesting the ownership of the PIM device, the call including one or more PIM configuration parameters; and

receive a return indicating that that the call failed.

17. The apparatus of claim 16 , wherein the one or more processing cores further execute the second process:

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 indicating that the PIM device has been configured and that the ownership has been granted to the second process.

18. The apparatus of claim 14 , wherein the one or more processing cores further execute the at least one 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 process has been granted the ownership of the PIM device; and

issue PIM instructions using the PIM aperture.

19. The apparatus of claim 14 , wherein the one or more processing cores further execute the at least one of the plurality of processes to:

issue PIM instructions according to an extended Instruction Set Architecture (ISA), wherein the PIM instructions are dispatched for execution responsive to the process having the ownership of the PIM device.

20. The apparatus of claim 14 , wherein the PID of the process is provided to a PIM agent.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2022
From: PUTHOOR, SOORAJ; HASSAAN, MUHAMMAD AMBER; AJI, ASHWIN; CHU, MICHAEL L.; JAYASENA, NUWAN
To: ADVANCED MICRO DEVICES, INC.
Reel/Frame 058885/0552 →
Continuity (1)
Related Publication 20230195375A1 · Jun 22, 2023
Cited By (2)
US 12,399,719 US 12,613,808