IP Library › Granted Patent US 12,461,684
Granted Patent B2
US 12,461,684 · App. 18/148,000 · Granted Nov 4, 2025

Scheduling processing-in-memory transactions

Inventors: Alexandru Dutu (Kirkland, WA); Sooraj Puthoor (Austin, TX)
Assignee: Advanced Micro Devices, Inc.
G06F3/0659G06F3/0607G06F3/0656G06F3/0658G06F13/1673G06F3/0679
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,461,684
App. No.
18/148,000
Granted
Nov 4, 2025
Kind
B2
Abstract

Scheduling processing-in-memory transactions is described. In accordance with the described techniques, a memory controller receives a transaction header from a host, where the transaction header describes a number of operations to be executed by a processing-in-memory component as part of performing the transaction. The memory controller adds the transaction header to a buffer and sends either an acknowledgement message or a negative acknowledgement message to the host, based on a current load of the processing-in-memory component. The acknowledgement message causes the host to send operations of the transaction for execution by the processing-in-memory component and the negative acknowledgement message causes the host to refrain from sending the operations of the transaction for execution by the processing-in-memory component.

Claims (36)

1 . A system comprising:

a memory of a memory module;

a processing-in-memory component of the memory module; and

a memory controller disposed outside the memory module, the memory controller including a transaction header buffer and configured to:

receive a transaction header, from a host, for a transaction to be executed by the processing-in-memory component using data stored in the memory;

add the transaction header to the transaction header buffer; and

send an acknowledgement message to the host responsive to detecting that scheduling the transaction does not conflict with a different transaction based on information stored in the transaction header buffer; or

send a negative acknowledgment message to the host responsive to detecting that scheduling the transaction conflicts with the different transaction, based on information stored in the transaction header buffer.

2 . The system of claim 1 , wherein the transaction header describes a number of operations of the transaction to be executed by the processing-in-memory component.

3 . The system of claim 2 , wherein execution of the transaction comprises the processing-in-memory component executing the operations of the transaction sequentially without interruption.

4 . The system of claim 1 , wherein the transaction header describes priority information for the transaction.

5 . The system of claim 1 , wherein the transaction header describes one or more addresses in the memory at which the data stored in the memory is located.

6 . The system of claim 1 , wherein the transaction header describes a task identifier associated with the transaction and a source identifier associated with the host.

7 . The system of claim 1 , wherein the transaction header buffer comprises a buffer maintained at the memory controller.

8 . The system of claim 1 , wherein the transaction header buffer comprises a buffer maintained in the memory of the memory module.

9 . The system of claim 1 , wherein the memory controller is implemented in the host and the transaction header is received from a core of the host.

10 . The system of claim 1 , wherein the acknowledgement message causes the host to send operations of the transaction to the memory controller for routing to the processing-in-memory component.

11 . The system of claim 1 , wherein the acknowledgement message causes the host to send operations of the transaction directly to the processing-in-memory component.

12 . The system of claim 1 , wherein the memory controller is configured to send the acknowledgement message to the host in response to identifying that the processing-in-memory component is not scheduled to execute one or more operations using data stored in memory at an address associated with the transaction.

13 . The system of claim 1 , wherein the memory controller is configured to send the acknowledgment message to the host in response to identifying that an operation queue of the processing-in-memory component has space to queue operations of the transaction.

14 . The system of claim 1 , wherein the memory controller is configured to send the negative acknowledgment message to the host with a retry interval that indicates an amount of time to wait before subsequently requesting that the transaction be executed by the processing-in-memory component.

15 . The system of claim 14 , wherein the memory controller is configured to compute the retry interval based on a load described by one or more transaction headers maintained in the transaction header buffer.

16 . The system of claim 14 , wherein the memory controller is configured to compute the retry interval based on a load described by one or more transaction operations enqueued in an operation queue of the processing-in-memory component.

17 . The system of claim 1 , wherein the negative acknowledgement message causes the host to refrain from sending operations of the transaction for execution by the processing-in-memory component until receiving a subsequent acknowledgement message from the memory controller.

18 . The system of claim 1 , wherein the acknowledgement message causes the host to send operations of the transaction for execution by the processing-in-memory component without locking one or more locations in the memory of the memory module.

19 . A method comprising:

receiving, at a memory controller disposed outside a memory module and from a host processing device, a transaction header for a transaction to be executed by a processing-in-memory component of the memory module, the transaction header describing a number of operations involved in executing the transaction;

maintaining, by the memory controller, the transaction header in a buffer of the memory controller; and

sending, by the memory controller, an acknowledgment message to the host processing device responsive to determining, based on the transaction header maintained in the buffer of the memory controller, that a number of open spaces in an operation queue of the processing-in-memory component can fit the number of operations involved in executing the transaction.

20 . A system comprising:

a memory of a memory module;

a processing-in-memory component of the memory module; and

a memory controller disposed outside the memory module, the memory controller configured to:

receive a transaction header, from a host, for a transaction to be executed by the processing-in-memory component using data stored in the memory and add the transaction header to a transaction header buffer;

compute a retry interval based on a current load of the processing-in-memory component; and

send a negative acknowledgement message to the host that includes the retry interval in response to detecting that scheduling the transaction conflicts with a different transaction, based on information stored in the transaction header buffer.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 8, 2023
From: DUTU, ALEXANDRU; PUTHOOR, SOORAJ
To: ADVANCED MICRO DEVICES, INC.
Reel/Frame 062629/0405 →
Continuity (1)
Related Publication 20240220160A1 · Jul 4, 2024
References Cited (36)
US 11086815B1 · Santan et al. · 2021 [cited by applicant]
US 11429315B1 · Pream et al. · 2022 [cited by applicant]
US 11934827B2 · Puthoor et al. · 2024 [cited by applicant]
US 12041179B2 · Shaw · 2024 [cited by applicant]
US 20120020371A1 · Nemawarkar et al. · 2012 [cited by applicant]
US 20130318280A1 · Dalal et al. · 2013 [cited by applicant]
US 20160026571A1 · Fukuyama · 2016 [cited by applicant]
US 20160276002A1 · Lee · 2016 [cited by applicant]
US 20160294058A1 · Tunnell et al. · 2016 [cited by applicant]
US 20170060588A1 · Choi · 2017 [cited by applicant]
US 20190041952A1 · Alameldeen et al. · 2019 [cited by applicant]
US 20200389402A1 · Goyal · 2020 [cited by examiner]
US 20220011939A1 · Singh et al. · 2022 [cited by applicant]
US 20220114270A1 · Wang et al. · 2022 [cited by applicant]
US 20220206869A1 · Ramachandran et al. · 2022 [cited by applicant]
US 20220342551A1 · Bora et al. · 2022 [cited by applicant]
US 20230099163A1 · Chu · 2023 [cited by examiner]
US 20230418474A1 · Kim · 2023 [cited by examiner]
US 20240211256A1 · Puthoor et al. · 2024 [cited by applicant]
US 20240419330A1 · Dutu et al. · 2024 [cited by applicant]
Chu, Michael , et al., “High-level Programming Model Abstractions for Processing in Memory”, [retrieved Oct. 16, 2022]. Retrieved from the Internet <https://www.cs.utah.edu/wondp/wondp-pim-hlm-final.pdf>., 2013, 4 Pages. [cited by applicant]
Lockerman, Elliot , et al., “Livia: Data-Centric Computing Throughout the Memory Hierarchy”, Proceedings of the Twenty-Fifth International Conference on Architectural Support for Programming Languages and Operating Syst… [cited by applicant]
Pattnaik, Ashutosh , et al., “Scheduling techniques for GPU architectures with processing-in-memory capabilities”, PACT '16: Proceedings of the 2016 International Conference on Parallel Architectures and Compilation [re… [cited by applicant]
U.S. Appl. No. 17/135,209, “Non-Final Office Action”, U.S. Appl. No. 17/135,209, Jul. 7, 2023, 34 pages. [cited by applicant]
Aguilera, Paula , et al., “Fine-Grained Task Migration for Graph Algorithms Using Processing in Memory”, 2016 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW) [retrieved Aug. 10, 2023]… [cited by applicant]
Draper, Jeff , et al., “The Architecture of the DIVA Processing-In-Memory Chip”, ICS '02: Proceedings of the 16th International conference on Supercomputing [retrieved Aug. 10, 2023]. Retrieved from the Internet <https:… [cited by applicant]
Dutu, Alexandru , et al., “US Application as Filed”, U.S. Appl. No. 18/211,544, filed Jun. 19, 2023, 59 pages. [cited by applicant]
Zois, Vasileios , et al., “Massively Parallel Skyline Computation For Processing-In-Memory Architectures”, PACT 18: Proceedings of the 27th International Conference on Parallel Architectures and Compilation Techniques [… [cited by applicant]
U.S. Appl. No. 17/135,209, “Final Office Action”, U.S. Appl. No. 17/135,209, Feb. 1, 2024, 44 pages. [cited by applicant]
Hall, Mary W, et al., “Memory Management in a PIM-Based Architecture”, IMS '00: Revised Papers from the Second International Workshop on Intelligent Memory Systems, Nov. 2000, 18 pages. [cited by applicant]
U.S. Appl. No. 17/135,209, “Non-Final Office Action”, U.S. Appl. No. 17/135,209, Sep. 10, 2024, 35 pages. [cited by applicant]
U.S. Appl. No. 18/211,544, “Non-Final Office Action”, U.S. Appl. No. 18/211,544, Sep. 28, 2024, 19 pages. [cited by applicant]
Puthoor, Sooraj , et al., “US Application as Filed”, U.S. Appl. No. 18/601,006, filed Mar. 11, 2024, 30 pages. [cited by applicant]
“Final Office Action”, U.S. Appl. No. 17/135,209, Apr. 24, 2025, 40 pages. [cited by applicant]
“Final Office Action”, U.S. Appl. No. 18/211,544, Apr. 10, 2025, 27 pages. [cited by applicant]
“Non-Final Office Action”, U.S. Appl. No. 18/211,544, filed Sep. 29, 2025, 20 pages. [cited by applicant]
Cited By (1)
US 12,743,205