IP Library › Granted Patent US 12,026,401
Granted Patent B2
US 12,026,401 · App. 17/855,109 · Granted Jul 2, 2024

DRAM row management for processing in memory

Inventors: Niti Madan (Bee Cave, TX); Yasuko Eckert (Redmond, WA); Varun Agrawal (Westford, MA); John Kalamatianos (Arlington, MA)
Assignee: Advanced Micro Devices, Inc.
G06F3/0659G06F3/0604G06F3/0653G06F3/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,026,401
App. No.
17/855,109
Granted
Jul 2, 2024
Kind
B2
Abstract

In accordance with described techniques for DRAM row management for processing in memory, a plurality of instructions are obtained for execution by a processing in memory component embedded in a dynamic random access memory. An instruction is identified that last accesses a row of the dynamic random access memory, and a subsequent instruction is identified that first accesses an additional row of the dynamic random access memory. A first command is issued to close the row and a second command is issued to open the additional row after the row is last accessed by the instruction.

Claims (32)

1. A method comprising:

receiving a plurality of instructions for execution by a processing in memory circuit of a memory;

identifying an instruction of the plurality of instructions that last accesses a row of the memory by comparing rows of the memory accessed by the plurality of instructions; and

issuing a command that closes the row after the row is last accessed by the instruction.

2. The method of claim 1 , further comprising issuing an additional command that opens an additional row of the memory, the additional command issued after the command.

3. The method of claim 2 , wherein the command is an auto-precharge command and the additional command is an activate command.

4. The method of claim 2 , further comprising identifying a subsequent instruction of the plurality of instructions that first accesses a new row of the memory, wherein the new row is the additional row.

5. The method of claim 4 , wherein the plurality of instructions includes one or more independent instructions to be executed after the instruction and before the subsequent instruction, the one or more independent instructions being executable without accessing a row of the memory.

6. The method of claim 5 , wherein the command causes the memory to close the row concurrently while the processing in memory circuit executes the one or more independent instructions.

7. The method of claim 5 , wherein the additional command causes the memory to open the additional row concurrently while the processing in memory circuit executes the one or more independent instructions.

8. The method of claim 5 , further comprising issuing the additional command based on a computation time of the one or more independent instructions exceeding a threshold.

9. The method of claim 8 , wherein the threshold is based on to a latency of performing a row closure operation in the memory.

10. The method of claim 8 , wherein the threshold is based on to a latency of performing a row closure operation and a row open operation in the memory.

11. The method of claim 1 , wherein comparing the rows includes comparing the row accessed by the instruction to one or more subsequently received instructions during address translation.

12. A system comprising:

a memory that includes a processing in memory circuit; and

a memory controller to:

receive a plurality of instructions for execution by the processing in memory circuit;

compare rows of the memory accessed by the plurality of instructions;

identify an instruction that last accesses a row of the memory and a subsequent instruction that first accesses an additional row of the memory; and

issue a first command that closes the row and a second command that opens the additional row after the row is last accessed by the instruction.

13. The system of claim 12 , wherein the memory controller is configured to receive the plurality of instructions in an order in which the plurality of instructions are to be executed by the processing in memory circuit.

14. The system of claim 12 , wherein the memory controller is configured to compare the rows accessed by the plurality of instructions when the plurality of instructions are enqueued for dispatch to the processing in memory circuit.

15. The system of claim 12 , wherein the first command causes the memory to close the row and the second command causes the memory to open the additional row concurrently while the processing in memory circuit executes one or more independent instructions, the one or more independent instructions being executable without accessing a row of the memory.

16. A method comprising:

compiling a program to generate a plurality of instructions for execution by a processing in memory circuit of a memory;

during the compiling, marking an instruction of the plurality of instructions with metadata indicating that the instruction last accesses a row of the memory; and

transmitting the plurality of instructions to a memory controller, the metadata directing the memory controller to issue a command that closes the row after the row is last accessed by the instruction.

17. The method of claim 16 , further comprising, during the compiling, identifying a subsequent instruction that first accesses an additional row of the memory.

18. The method of claim 17 , further comprising, during the compiling, marking the instruction with additional metadata identifying the additional row accessed by the subsequent instruction.

19. The method of claim 18 , wherein the additional metadata directs the memory controller to issue an additional command that opens the additional row after the row is last accessed by the instruction.

20. The method of claim 18 , wherein the instruction is marked with the additional metadata based on a computation time associated with one or more independent instructions exceeding a threshold value, the one or more independent instructions configured to be executed after the instruction and before the subsequent instruction and being executable without accessing a row of the memory.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 8, 2022
From: MADAN, NITI; ECKERT, YASUKO; AGRAWAL, VARUN; KALAMATIANOS, JOHN
To: ADVANCED MICRO DEVICES, INC
Reel/Frame 060461/0536 →
Continuity (1)
Related Publication 20240004584A1 · Jan 4, 2024
Cited By (1)
US 12,236,134