IP Library › Granted Patent US 12,236,134
Granted Patent B2
US 12,236,134 · App. 17/953,723 · Granted Feb 25, 2025

Bank-level parallelism for processing in memory

Inventors: Mahzabeen Islam (Dripping Springs, TX); Shaizeen Dilawarhusen Aga (Sunnyvale, CA); Johnathan Robert Alsop (Seattle, WA); Mohamed Assem Abd ElMohsen Ibrahim (Santa Clara, CA); Nuwan S Jayasena (Cupertino, CA)
Assignee: Advanced Micro Devices, Inc.
G06F3/0659G06F3/0611G06F3/0673
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,236,134
App. No.
17/953,723
Granted
Feb 25, 2025
Kind
B2
Abstract

In accordance with the described techniques for bank-level parallelism for processing in memory, a plurality of commands are received for execution by a processing in memory component embedded in a memory. The memory includes a first bank and a second bank. The plurality of commands include a first stream of commands which cause the processing in memory component to perform operations that access the first bank and a second stream of commands which cause the processing in memory component to perform operations that access the second bank. A next row of the first bank that is to be accessed by the processing in memory component is identified. Further, a precharge command is scheduled to close a first row of the first bank and an activate command is scheduled to open the next row of the first bank in parallel with execution of the second stream of commands.

Claims (36)

1. A computing device comprising:

a memory that includes a first bank and a second bank;

a processing in memory circuit; and

a memory controller to:

receive a plurality of commands including a first stream of one or more commands that causes the processing in memory circuit to perform operations that access a first row of the first bank, and a second stream of one or more commands that causes the processing in memory circuit to perform operations that access the second bank; and

schedule a precharge command to close the first row of the first bank and an activate command to open a next row of the first bank that is to be accessed by the processing in memory component after the first stream of one or more commands, the precharge command and the activate command scheduled to execute in parallel with execution of the second stream of one or more commands.

2. The computing device of claim 1 , wherein the plurality of commands include an identification command that identifies the next row of the first bank, and the memory controller is configured to schedule the precharge command and the activate command based on the identification command.

3. The computing device of claim 1 , wherein the memory is organized into a plurality of blocks, each block including a bank assigned to a first group, a bank assigned to a second group, and a respective processing in memory circuit shared among the banks included in a respective block.

4. The computing device of claim 3 , wherein the first bank is assigned to the first group, the second bank is assigned to the second group, and the processing in memory circuit is shared among the first bank and the second bank.

5. The computing device of claim 3 , wherein the activate command causes banks assigned to the first group to open the next row in parallel, and the second stream of one or more commands causes multiple processing in memory circuits to perform operations that access banks assigned to the second group in parallel.

6. The computing device of claim 1 , wherein the memory controller is further configured to schedule the activate command to open the next row based on an inspection of rows accessed by the plurality of commands.

7. The computing device of claim 1 , wherein the memory controller is further configured to predict, using a prediction policy, the next row of the first bank to be accessed by the processing in memory circuit based on access patterns of previously issued processing in memory commands, and schedule the activate command to open the next row based on the prediction.

8. The computing device of claim 7 , wherein the memory controller is further configured to update the prediction policy based on whether a row of the first bank that is opened based on the prediction is a row of the first bank that is accessed next by the processing in memory circuit.

9. The computing device of claim 7 , wherein the memory controller is further configured to:

receive one or more hints indicative of at least one of: an amount of data that is to be processed by the processing in memory circuit in executing the plurality of commands or a number of data structures involved in the plurality of commands; and

predict the next row of the first bank to be accessed by the processing in memory circuit based on the one or more hints.

10. The computing device of claim 1 , wherein the precharge command is scheduled to close the first row of the first bank in parallel with execution of a first set of the second stream of one or more commands having a combined execution time that is equal to or greater than an overhead time for closing a row of the memory.

11. The computing device of claim 10 , wherein the activate command is scheduled after the first set of the second stream of one or more commands to open the next row in parallel with execution of a second set of the second stream of one or more commands by the processing in memory circuit.

12. A system comprising;

a memory that includes a first group of banks and a second group of banks;

multiple processing in memory circuits; and

a processor to:

receive a first stream of one or more commands that causes the multiple processing in memory circuits to perform operations that access the first group of banks in parallel, and a second stream of one or more commands that causes the multiple processing in memory circuits to perform operations that access the second group of banks in parallel; and

schedule an activate command that causes the first group of banks to open a next row of the first group of banks that is to be accessed by the multiple processing in memory circuits after the first stream of commands in parallel, the activate command scheduled to execute in parallel with execution of the second stream of one or more commands.

13. The system of claim 12 , wherein the processor is further configured to receive an identification command that identifies the next row of the first group of banks, and schedule the activate command based on the identification command.

14. The system of claim 12 , wherein the memory is organized into a plurality of blocks, each including a bank assigned to the first group, a bank assigned to the second group, and a processing in memory circuit shared among the banks in a respective block.

15. The system of claim 12 , wherein the processor is further configured to schedule a precharge command to close a first row of the first group of banks that is accessed by the first stream of one or more commands, the precharge command scheduled to execute in parallel with execution of the second stream of one or more commands.

16. The system of claim 12 , wherein the processor is configured to:

predict, using a prediction policy, the next row of the first group of banks to be accessed by the multiple processing in memory circuits; and

update the prediction policy based on whether a row of the first group of banks that is opened based on the prediction is a row of the first group of banks that is accessed next by the multiple processing in memory circuits.

17. A method comprising:

receiving a first stream of commands that causes a processing in memory circuit to access a first bank of a memory, a second stream of commands that causes the processing in memory circuit to access a second bank of the memory, and an identification command ordered before the second stream of commands that identifies a next row of the first bank to be accessed by the processing in memory circuit after the second stream of one or more commands; and

scheduling an activate command to open the next row of the first bank in parallel with execution of the second stream of one or more commands.

18. The method of claim 17 , further comprising scheduling a precharge command to close a first row of the first bank that is accessed by the first stream of one or more commands in parallel with execution of the second stream of one or more commands.

19. The method of claim 18 , further comprising scheduling one or more commands of the second stream of one or more commands after the precharge command and before the activate command, the one or more commands having a combined execution time that is greater than or equal to an overhead time for closing a row of the memory.

20. The method of claim 17 , wherein the identification command identifies the next row of the first bank without causing data to be read from or written to the next row.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 8, 2022
From: ISLAM, MAHZABEEN; AGA, SHAIZEEN DILAWARHUSEN; ALSOP, JOHNATHAN ROBERT; IBRAHIM, MOHAMED ASSEM ABD ELMOHSEN; JAYASENA, NUWAN S
To: ADVANCED MICRO DEVICES, INC.
Reel/Frame 061691/0112 →
Continuity (1)
Related Publication 20240103763A1 · Mar 28, 2024
References Cited (72)
US 5101485A · Perazzoli, Jr. · 1992 [cited by applicant]
US 6694400B1 · Lai et al. · 2004 [cited by applicant]
US 9836232B1 · Vasquez et al. · 2017 [cited by applicant]
US 9892803B2 · Reed · 2018 [cited by applicant]
US 10768859B1 · Kim · 2020 [cited by examiner]
US 10891228B2 · Steinmacher-Burow · 2021 [cited by applicant]
US 12026401B2 · Madan et al. · 2024 [cited by applicant]
US 12066950B2 · Madan et al. · 2024 [cited by applicant]
US 20070249503A1 · Ariyur et al. · 2007 [cited by applicant]
US 20110161784A1 · Selinger et al. · 2011 [cited by applicant]
US 20120069034A1 · Biswas et al. · 2012 [cited by applicant]
US 20140068203A1 · Son et al. · 2014 [cited by applicant]
US 20140325148A1 · Choi et al. · 2014 [cited by applicant]
US 20140365719A1 · Kuzmin et al. · 2014 [cited by applicant]
US 20150187043A1 · Shebanow et al. · 2015 [cited by applicant]
US 20160246713A1 · Choi et al. · 2016 [cited by applicant]
US 20170300422A1 · Szubbocsev · 2017 [cited by applicant]
US 20180188970A1 · Liu et al. · 2018 [cited by applicant]
US 20190034097A1 · Chang et al. · 2019 [cited by applicant]
US 20190065115A1 · Kwon et al. · 2019 [cited by applicant]
US 20190079678A1 · Malladi et al. · 2019 [cited by applicant]
US 20190392886A1 · Cox et al. · 2019 [cited by applicant]
US 20200050397A1 · Meyerowitz et al. · 2020 [cited by applicant]
US 20200073753A1 · Kim · 2020 [cited by applicant]
US 20200174749A1 · Kang · 2020 [cited by examiner]
US 20200294558A1 · Yu et al. · 2020 [cited by applicant]
US 20200356305A1 · Kim et al. · 2020 [cited by applicant]
US 20210110876A1 · Seo et al. · 2021 [cited by applicant]
US 20210150311A1 · Zhou et al. · 2021 [cited by applicant]
US 20210182190A1 · Gao et al. · 2021 [cited by applicant]
US 20210271599A1 · Sharovar · 2021 [cited by applicant]
US 20210311634A1 · Chang et al. · 2021 [cited by applicant]
US 20210382828A1 · Li · 2021 [cited by applicant]
US 20220019360A1 · La Fratta et al. · 2022 [cited by applicant]
US 20220076717A1 · Mathew et al. · 2022 [cited by applicant]
US 20220121398A1 · Nale et al. · 2022 [cited by applicant]
US 20220164251A1 · He et al. · 2022 [cited by applicant]
US 20220164297A1 · Sity · 2022 [cited by examiner]
US 20220206855A1 · Challapalle et al. · 2022 [cited by applicant]
US 20220229575A1 · Chen et al. · 2022 [cited by applicant]
US 20220253247A1 · Kim et al. · 2022 [cited by applicant]
US 20220253248A1 · Yoon et al. · 2022 [cited by applicant]
US 20220283719A1 · Eyerman et al. · 2022 [cited by applicant]
US 20220292033A1 · Yu et al. · 2022 [cited by applicant]
US 20220374150A1 · Caprì · 2022 [cited by examiner]
US 20220374166A1 · La Fratta · 2022 [cited by examiner]
US 20230016520A1 · Sforzin et al. · 2023 [cited by applicant]
US 20230115296A1 · Jaser et al. · 2023 [cited by applicant]
US 20230205693A1 · Kotra et al. · 2023 [cited by applicant]
US 20230205706A1 · Madan et al. · 2023 [cited by applicant]
US 20240004584A1 · Madan et al. · 2024 [cited by applicant]
US 20240103745A1 · Madan et al. · 2024 [cited by applicant]
US 20240160364A1 · Dutu et al. · 2024 [cited by applicant]
US 20240184702A1 · Gouldey et al. · 2024 [cited by applicant]
WO 2024072862A1 · 2024 [cited by applicant]
Aga, Shaizeen , et al., “Co-ML: a Case for Collaborative ML Acceleration using Near-data Processing”, Proceedings of the International Symposium on Memory Systems [retrieved May 27, 2022]. Retrieved from the Internet <h… [cited by applicant]
Islam, Mahzabeen , et al., “US Application as Filed”, U.S. Appl. No. 17/953,723, filed Sep. 27, 2022, 52 pages. [cited by applicant]
Madan, Niti , et al., “US Application as Filed”, U.S. Appl. No. 17/954,784, filed Sep. 28, 2022, 47 pages. [cited by applicant]
U.S. Appl. No. 17/561,454 , “Notice of Allowance”, U.S. Appl. No. 17/561,454, filed Apr. 10, 2024, 5 pages. [cited by applicant]
U.S. Appl. No. 17/855,109 , “Notice of Allowance”, U.S. Appl. No. 17/855,109, filed Feb. 22, 2024, 7 pages. [cited by applicant]
U.S. Appl. No. 17/561,454, filed Apr. 12, 2023 , “Final Office Action”, U.S. Appl. No. 17/561,454, filed Apr. 12, 2023, 13 pages. [cited by applicant]
U.S. Appl. No. 17/561,454, filed Oct. 13, 2023 , “Non-Final Office Action”, U.S. Appl. No. 17/561,454, filed Oct. 13, 2023, 11 pages. [cited by applicant]
U.S. Appl. No. 17/561,454, filed Oct. 19, 2022 , “Non-Final Office Action”, U.S. Appl. No. 17/561,454, filed Oct. 19, 2022, 11 pages. [cited by applicant]
U.S. Appl. No. 17/855,109 , “Non-Final Office Action”, U.S. Appl. No. 17/855,109, filed Oct. 26, 2023, 9 pages. [cited by applicant]
PCT/US2023/033820 , “International Seach Report and Written Opinion”, PCT Application No. PCT/US2023/033820, Jan. 18, 2024, 7 pages. [cited by applicant]
U.S. Appl. No. 17/855,109 , “Corrected Notice of Allowability”, U.S. Appl. No. 17/855,109, filed May 24, 2024, 3 pages. [cited by applicant]
U.S. Appl. No. 17/986,623 , “Final Office Action”, U.S. Appl. No. 17/986,623, filed Jul. 22, 2024, 7 pages. [cited by applicant]
U.S. Appl. No. 17/986,623 , “Non-Final Office Action”, U.S. Appl. No. 17/986,623, filed Feb. 14, 2024, 12 pages. [cited by applicant]
U.S. Appl. No. 17/954,784, “Final Office Action”, U.S. Appl. No. 17/954,784, filed Oct. 30, 2024, 17 pages. [cited by applicant]
U.S. Appl. No. 17/954,784, “Non-Final Office Action”, U.S. Appl. No. 17/954,784, filed Aug. 28, 2024, 31 pages. [cited by applicant]
U.S. Appl. No. 17/954,784, “Notice of Allowance”, U.S. Appl. No. 17/954,784, filed Sep. 24, 2024, 8 pages. [cited by applicant]
U.S. Appl. No. 17/986,623, “Notice of Allowance”, U.S. Appl. No. 17/986,623, filed Sep. 24, 2024, 8 pages. [cited by applicant]
Cited By (1)
US 12,517,669