IP Library › Granted Patent US 12,243,584
Granted Patent B2
US 12,243,584 · App. 18/167,580 · Granted Mar 4, 2025

In-memory compute array with integrated bias elements

Inventors: Anuj Grover (New Delhi, IN); Tanmoy Roy (Grenoble, FR); Nitin Chawla (Noida, IN)
Assignee: STMicroelectronics International N. V.
G11C11/419H10B10/12
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,243,584
App. No.
18/167,580
Granted
Mar 4, 2025
Kind
B2
Abstract

An in-memory compute (IMC) device includes an array of memory cells and control logic coupled to the array of memory cells. The array of memory cells is arranged as a plurality of rows of cells intersecting a plurality of columns of cells. The array of memory cells includes a first subset of memory cells forming a plurality of computational engines at intersections of rows and columns of the first subset of the array of memory cells. The array also includes a second subset of memory cells forming a plurality of bias engines. The control logic, in operation, generates control signals to control the array of memory cells to perform a plurality of IMC operations using the computational engines, store results of the plurality of IMC operations in memory cells of the array, and computationally combine results of the plurality of IMC operations with respective bias values using the bias engines.

Claims (50)

1. A non-transitory computer-readable medium having contents which configure an in-memory compute (IMC) device to perform a method, the method comprising:

storing a plurality of values in respective memory bitcells of the IMC device, wherein the IMC device has a first plurality of bitcells arranged as a plurality of rows of bitcells intersecting a plurality of columns of bitcells, each bitcell of the first plurality of bitcells identifiable by a corresponding row and column;

performing a plurality of IMC operations, each of the IMC operations using one or more of the stored plurality of values as an operand;

storing results of the plurality of IMC operations in a second plurality of bitcells, the second plurality of bitcells being formed from bitcells of the first plurality of bitcells; and

computationally combining results of the plurality of IMC operations with respective bias values.

2. The non-transitory computer-readable medium of claim 1 , wherein a portion of the IMC device is a static random access memory (SRAM) memory device.

3. The non-transitory computer-readable medium of claim 1 , wherein the plurality of IMC operations include at least one gating function and at least one mathematical function.

4. The non-transitory computer-readable medium of claim 1 , wherein computationally combining results of the plurality of IMC operations with respective bias values includes:

combining a row of results information with a row of bias values.

5. The non-transitory computer-readable medium of claim 1 , wherein computationally combining results of the plurality of IMC operations with respective bias values includes:

producing a set of computationally combined values; and

storing the set of computationally combined values in memory bitcells of the first plurality of bitcells without passing the set of computationally combined values out of the IMC device.

6. The non-transitory computer-readable medium of claim 1 , wherein computationally combining results of the plurality of IMC operations with respective bias values includes:

producing a set of computationally combined values;

storing the set of computationally combined values in memory bitcells of the first plurality of bitcells; and

passing at least some of the set of computationally combined values out of the IMC device.

7. The non-transitory computer-readable medium of claim 1 , wherein the storing the plurality of values in respective memory bitcells of the IMC device comprises:

storing a plurality of neural network kernel values;

storing a plurality of neural network feature values; or

storing a plurality of neural network kernel values and a plurality of neural network feature values.

8. The non-transitory computer-readable medium of claim 7 , wherein the performing an operation of the plurality of IMC operations comprises:

using a stored neural network kernel value as an operand;

using a stored neural network feature value as an operand; or

using a stored neural network kernel value and a stored neural network feature value as operands.

9. The non-transitory computer-readable medium of claim 1 , wherein the contents comprise a set of IMC instructions.

10. A system, comprising:

data processing means; and

in-memory computing (IMC) means coupled to the data processing means, wherein the IMC means, in operation:

stores a plurality of values in respective memory bitcells of a first plurality of bitcells arranged as a plurality of rows of bitcells intersecting a plurality of columns of bitcells, each bitcell of the first plurality of bitcells identifiable by a corresponding row and column;

performs a plurality of IMC operations, each of the IMC operations using one or more of the stored plurality of values as an operand;

stores results of the plurality of IMC operations in a second plurality of bitcells, the second plurality of bitcells being formed from bitcells of the first plurality of bitcells; and

computationally combines results of the plurality of IMC operations with respective bias values.

11. The system of claim 10 , wherein the first plurality of bitcells comprises an array of memory bitcells.

12. The system of claim 11 , wherein the array of memory bitcells is a static random access memory (SRAM) memory array.

13. The system of claim 10 , wherein the plurality of IMC operations includes at least one gating operation.

14. The system of claim 10 , wherein the plurality of IMC operations includes at least one mathematical operation.

15. The system of claim 10 , comprising sensing means coupled to the data processing means.

16. The system of claim 10 , comprising storage means, which, in operation, stores instructions executable by the data processing means.

17. An in-memory compute (IMC) device, comprising:

an array of memory cells, arranged as a plurality of rows of cells intersecting a plurality of columns of cells, the array of memory cells including:

a first subset of memory cells forming a plurality of computational engines at intersections of rows and columns of the first subset of the array of memory cells; and

a second subset of memory cells forming a plurality of bias engines; and

control logic coupled to the array of memory cells, wherein, in operation, the control logic generates control signals to control the array of memory cells to:

perform a plurality of IMC operations using computational engines of the plurality of computational engines;

store results of the plurality of IMC operations in memory cells of the array; and

computationally combine results of the plurality of IMC operations with respective bias values using the plurality of bias engines.

18. The IMC device of claim 17 , wherein the plurality of IMC operations include at least one gating function and at least one mathematical function.

19. The IMC device of claim 17 , wherein computationally combining results of the plurality of IMC operations with respective bias values includes:

combining a row of results information with a row of bias values.

20. The IMC device of claim 17 , wherein the control logic, in operation, generates control signals to control the array of memory cells to store results of the computationally combining of the results of the plurality of IMC operations with respective bias values in memory cells of the array of memory cells.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2023
From: ROY, TANMOY; CHAWLA, NITIN
To: STMICROELECTRONICS INTERNATIONAL N.V.
Reel/Frame 065558/0339 →
Continuity (4)
Continuation 17375945 · Jul 14, 2021
Continuation 16882024 · May 22, 2020
Provisional Application 62858265 · Jun 6, 2019
Related Publication 20230186983A1 · Jun 15, 2023
References Cited (28)
US 8238173B2 · Akerib et al. · 2012 [cited by applicant]
US 9418719B2 · Akerib et al. · 2016 [cited by applicant]
US 10073733B1 · Jain et al. · 2018 [cited by applicant]
US 10109348B2 · Hu et al. · 2018 [cited by applicant]
US 10733498B1 · Diamant et al. · 2020 [cited by applicant]
US 11094376B2 · Grover et al. · 2021 [cited by applicant]
US 11605424B2 · Grover · 2023 [cited by examiner]
US 20100312999A1 · Walker · 2010 [cited by applicant]
US 20100324850A1 · Jung et al. · 2010 [cited by applicant]
US 20120236638A1 · Weingarten · 2012 [cited by examiner]
US 20140347923A1 · Ghaly et al. · 2014 [cited by applicant]
US 20150131383A1 · Akerib et al. · 2015 [cited by applicant]
US 20150363667A1 · Nakai et al. · 2015 [cited by applicant]
US 20160092234A1 · Vasudevan et al. · 2016 [cited by applicant]
US 20160189769A1 · Jeloka · 2016 [cited by examiner]
US 20180075904A1 · Ge et al. · 2018 [cited by applicant]
US 20190102198A1 · Madduri et al. · 2019 [cited by applicant]
US 20190164037A1 · Kim et al. · 2019 [cited by applicant]
US 20210048991A1 · Tanner · 2021 [cited by applicant]
CN 1760835A · 2006 [cited by applicant]
CN 101217057A · 2008 [cited by applicant]
CN 105048974A · 2015 [cited by applicant]
CN 108885585A · 2018 [cited by applicant]
JP H09274349A · 1997 [cited by applicant]
TW 201333961A · 2013 [cited by applicant]
Jaiswal, “8T SRAM Cell as a Multi-bit Dot Product Engine for Beyond von-Neumann Computing,” arXiv: 1802.08601v2, 2018, 10 pages. [cited by applicant]
Mittal, “A Survey of ReRAM-Based Architectures for Processing-In-Memory and Neural Networks,” [cited by applicant]
Song et al., “PipeLayer: A Pipelined ReRAM-Based Accelerator for Deep Learning,” IEEE International Symposium on High Performance Computer Architecture (HPCA), Feb. 4-8, 2017, Austin, Texas, 13 pages. [cited by applicant]