IP Library Granted Patent US 12,271,624
Granted Patent B2
US 12,271,624 · App. 18/183,034 · Granted Apr 8, 2025

Methods and systems for processing read-modify-write requests

Inventors: Gary S. Goldman (Los Altos, CA); Ashwin Radhakrishnan (Fremont, CA)
Assignee: Recogni Inc.
G06F3/0656G06F3/0611G06F3/064G06F3/0673G11C11/4093G11C11/4096H03K19/1737
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,271,624
App. No.
18/183,034
Granted
Apr 8, 2025
Kind
B2
Abstract

A memory system comprises a plurality of memory sub-systems, each with a memory bank and other circuit components. For each of the memory sub-systems, a first buffer receives and stores a read-modify-write request (with a read address, a write address and a first operand), a second operand is read from the memory bank at the location specified by the read address, a combiner circuit combines the first operand with the second operand, an activation circuit transforms the output of the combiner circuit, and the output of the activation circuit is stored in the memory bank at the location specified by the write address. The first operand and the write address may be stored in a second buffer while the second operand is read from the memory bank. Further, the output of the activation circuit may be first stored in the first buffer before being stored in the memory bank.

Claims (49)

1. A memory system, comprising:

a memory bank;

a first buffer for storing a read-modify-write request comprising a read address, a write address and a first operand, the first buffer including a write address output, a read address output and a data output;

a second buffer for storing the write address and the first operand, wherein a first input of the second buffer is connected to the write address output of the first buffer, and a second input of the second buffer is connected to the data output of the first buffer;

a combiner circuit for computing intermediary data based on the first operand stored at the second buffer and a second operand read from a first location of the memory bank as specified by the read address;

an activation function circuit for computing activation data based on the intermediary data, wherein the write address specifies a second location in the memory bank where the activation data is written;

a first multiplexor, wherein a first input of the first multiplexor is connected to the data output of the first buffer and a second input of the first multiplexor is connected to an output of the activation function circuit; and

a second multiplexor, wherein a first input of the second multiplexor is connected to a write address output of the second buffer, a second input of the second multiplexor is connected to the write address output of the first buffer, and a third input of the second multiplexor is connected to a read address output of the first buffer.

2. The memory system of claim 1 , wherein the activation data is stored in the memory bank without previously being written to the first or second buffer.

3. The memory system of claim 1 , wherein the write address and the first operand are transmitted from the first buffer to the second buffer.

4. The memory system of claim 1 , wherein the first multiplexor is configured to pass a vector of values from either the first input of the first multiplexor or the second input of the first multiplexor to the memory bank.

5. The memory system of claim 1 , wherein the second multiplexor is configured to pass an address from one of the first, second or third input of the second multiplexor to the memory bank.

6. The memory system of claim 1 , wherein the read address is distinct from the write address.

7. A method, comprising:

storing, at a first buffer, a read-modify-write request comprising a read address, a write address and a first operand;

storing, at a second buffer, the write address and the first operand;

transmitting the read address from the first buffer to a memory bank via a first multiplexor;

reading a second operand from a first location within the memory bank as specified by the read address;

computing, by a combiner circuit, intermediary data based on the first operand stored at the second buffer and the second operand read from the first location within the memory bank; computing, by an activation function circuit, activation data based on the intermediary data;

transmitting the activation data from the activation function circuit to the memory bank via a second multiplexor;

transmitting the write address from the second buffer to the memory bank via the first multiplexor; and

storing the activation data at a second location within the memory bank as specified by the write address.

8. The method of claim 7 , wherein the activation data is stored in the memory bank without previously being written to the first or second buffer.

9. The method of claim 7 , further comprising transmitting the write address and the first operand from the first buffer to the second buffer.

10. The method of claim 7 , further comprising prior to computing the intermediary data at the combiner circuit, transmitting the first operand from the second buffer to the combiner circuit.

11. A memory system, comprising:

a memory bank;

a first buffer for storing a read-modify-write request comprising a read address, a write address and a first operand, the first buffer including a write address output, a read address output and a data output;

a second buffer for storing the write address and the first operand, wherein a first input of the second buffer is connected to the write address output of the first buffer, and a second input of the second buffer is connected to the data output of the first buffer;

a combiner circuit for computing combined data based on the first operand stored at the second buffer and a second operand read from a first location of the memory bank as specified by the read address, wherein the write address specifies a second location in the memory bank where the combined data is written;

a first multiplexor, wherein a first input of the first multiplexor is connected to the data output of the first buffer and a second input of the first multiplexor is connected to an output of the combiner circuit; and

a second multiplexor, wherein a first input of the second multiplexor is connected to a write address output of the second buffer, a second input of the second multiplexor is connected to the write address output of the first buffer, and a third input of the second multiplexor is connected to a read address output of the first buffer.

12. The memory system of claim 11 , wherein the combined data is stored in the memory bank without previously being written to the first or second buffer.

13. The memory system of claim 11 , wherein the write address and the first operand are transmitted from the first buffer to the second buffer.

14. The memory system of claim 11 , wherein the first multiplexor is configured to pass a vector of values from either the first input of the first multiplexor or the second input of the first multiplexor to the memory bank.

15. The memory system of claim 11 , wherein the second multiplexor is configured to pass an address from one of the first, second or third input of the second multiplexor to the memory bank.

16. The memory system of claim 11 , wherein the read address is distinct from the write address.

17. A method, comprising:

storing, at a first buffer, a read-modify-write request comprising a read address, a write address and a first operand;

storing, at a second buffer, the write address and the first operand;

transmitting the read address from the first buffer to a memory bank via a first multiplexor;

reading a second operand from a first location within the memory bank as specified by the read address;

computing, by a combiner circuit, combined data based on the first operand stored at the second buffer and the second operand read from the first location within the memory bank;

transmitting the combined data from the combiner circuit to the memory bank via a second multiplexor;

transmitting the write address from the second buffer to the memory bank via the first multiplexor; and

storing the combined data at a second location within the memory bank as specified by the write address.

18. The method of claim 17 , wherein the combined data is stored in the memory bank without previously being written to the first or second buffer.

19. The method of claim 17 , further comprising transmitting the write address and the first operand from the first buffer to the second buffer.

20. The method of claim 17 , further comprising prior to computing the combined data at the combiner circuit, transmitting the first operand from the second buffer to the combiner circuit.

Assignments (3)
CHANGE OF NAME Recorded Sep 11, 2025
From: RECOGNI INC.
To: TENSORDYNE, INC.
Reel/Frame 072859/0058 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 24, 2023
From: GOLDMAN, GARY S.
To: RECOGNI INC.
Reel/Frame 063090/0096 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 24, 2023
From: RADHAKRISHNAN, ASHWIN
To: RECOGNI INC.
Reel/Frame 063090/0148 →
Continuity (2)
Continuation 17818876 · Aug 10, 2022
Related Publication 20240053919A1 · Feb 15, 2024
References Cited (46)
US 5235693A · Chinnaswamy et al. · 1993 [cited by applicant]
US 5548744A · Ogura et al. · 1996 [cited by applicant]
US 6643212B1 · Jones, Jr. et al. · 2003 [cited by applicant]
US 8959292B1 · Ahn et al. · 2015 [cited by applicant]
US 9811263B1 · Teh · 2017 [cited by applicant]
US 9971540B2 · Herrero Abellanas · 2018 [cited by examiner]
US 10776668B2 · Dutta et al. · 2020 [cited by applicant]
US 10931588B1 · Matthews et al. · 2021 [cited by applicant]
US 11237905B2 · Chachad et al. · 2022 [cited by applicant]
US 20030120880A1 · Banno · 2003 [cited by applicant]
US 20080148108A1 · Barnum et al. · 2008 [cited by applicant]
US 20170075823A1 · Ward et al. · 2017 [cited by applicant]
US 20170206036A1 · Pax et al. · 2017 [cited by applicant]
US 20170358327A1 · Oh et al. · 2017 [cited by applicant]
US 20180075344A1 · Ma et al. · 2018 [cited by applicant]
US 20190042920A1 · Akin et al. · 2019 [cited by applicant]
US 20190042922A1 · Pillai · 2019 [cited by examiner]
US 20190057302A1 · Cho et al. · 2019 [cited by applicant]
US 20190205244A1 · Smith · 2019 [cited by applicant]
US 20190339980A1 · Sity et al. · 2019 [cited by applicant]
US 20200097406A1 · Ou · 2020 [cited by applicant]
US 20200104072A1 · Ngu et al. · 2020 [cited by applicant]
US 20200184001A1 · Gu et al. · 2020 [cited by applicant]
US 20200293319A1 · Lee et al. · 2020 [cited by applicant]
US 20200356305A1 · Kim · 2020 [cited by examiner]
US 20210110876A1 · Seo et al. · 2021 [cited by applicant]
US 20210173656A1 · Diamant · 2021 [cited by examiner]
US 20210209022A1 · Song · 2021 [cited by applicant]
US 20210209450A1 · Cassidy et al. · 2021 [cited by applicant]
US 20210216243A1 · Shin et al. · 2021 [cited by applicant]
US 20210225430A1 · O · 2021 [cited by applicant]
US 20210263739A1 · Norrie et al. · 2021 [cited by applicant]
US 20220076717A1 · Mathew et al. · 2022 [cited by applicant]
US 20220317923A1 · Balakrishnan · 2022 [cited by applicant]
Angizi; et al., “DIMA: A Depthwise CNN In-Memory Accelerator”, Association for Computing Machinery, ICCAD '18, Nov. 5-8, 2018, San Diego, CA, USA, 8 pgs. [cited by applicant]
Gao; et al., “TETRIS: Scalable and Efficient Neural Network Acceleration with 3D Memory”, ASPLOS '17, Apr. 8-12, 2017, Xi'an, China, 14 pgs. [cited by applicant]
He; et al., “Identity Mappings in Deep Residual Networks”, Cornell University, arXiv:1603.05027v3 [cs.CV] Jul. 25, 2016, 15 pgs. [cited by applicant]
Liu; et al., “Processing-in-Memory for Energy-efficient Neural Network Training: A Heterogeneous Approach”, 2018 51st Annual IEEE/ACM International Symposium on Microarchitecture (Micro), Oct. 20-24, 2018, 14 pgs. [cited by applicant]
Corrected Notice of Allowability mailed Mar. 8, 2023, for U.S. Appl. No. 17/818,876, filed Aug. 10, 2022, 6 pgs. [cited by applicant]
Notice of Allowance mailed Feb. 24, 2023, for U.S. Appl. No. 17/818,876, filed Aug. 10, 2022, 9 pgs. [cited by applicant]
Amendment filed Dec. 23, 2022, for U.S. Appl. No. 17/818,876, filed Aug. 10, 2022, 7 pgs. [cited by applicant]
Final Office Action dated Dec. 1, 2022, for U.S. Appl. No. 17/818,876, filed Aug. 10, 2022, 13 pgs. [cited by applicant]
Amendment filed Oct. 31, 2022, for U.S. Appl. No. 17/818,87, filed Aug. 10, 2022, 9 pgs. [cited by applicant]
Non-Final Office Action dated Oct. 26, 2022, for U.S. Appl. No. 17/818,876, filed Aug. 10, 2022, 11 pgs. [cited by applicant]
International Search Report and Written Opinion mailed Jun. 21, 2023, from the ISA/European Patent Office, for International Patent Application No. PCT/US2023/015130 (filed Mar. 13, 2023), 14 pgs. [cited by applicant]
Written Opinion of the International Preliminary Examining Authority mailed Jul. 2, 2024, from the IPEA/European Patent Office, for International Patent Application No. PCT/US2023/015130 (filed Mar. 13, 2023), 8 pgs. [cited by applicant]