IP Library Granted Patent US 12,333,357
Granted Patent B2
US 12,333,357 · App. 17/317,844 · Granted Jun 17, 2025

Memory bit cell for in-memory computation

Inventors: Michael A. Dreesen (Austin, TX); Ajay Bhatia (Saratoga, CA); Michael R. Seningen (Austin, TX); Greg M. Hess (Mountain View, CA); Siddhesh Gaiki (Cupertino, CA)
Assignee: Apple Inc.
G06G7/16G06F7/523G06F17/16G11C11/419G06F7/5443
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,333,357
App. No.
17/317,844
Granted
Jun 17, 2025
Kind
B2
Abstract

A compute-memory circuit included in a computer system may include multiple compute data storage cells coupled to a compute bit line via respective capacitors. The compute data storage cells may store respective bits of a weight value. During a multiply operation, an operand may be used to generate a voltage level on a compute word line that is used to store respective amounts of charge on the capacitors, which are coupled to the compute bit line. The voltage on the compute bit line may be converted into multiple bits whose value is indicative of a product of the operand and the weight value.

Claims (55)

1. An apparatus, comprising:

a sign data storage cell configured to:

store a sign value associated with a weight value; and

couple, based on the sign value, either a compute word line or a complement compute word line to a compute select line;

a plurality of compute data storage cells, wherein a given compute data storage cell includes a capacitor, and wherein the given compute data storage cell is configured to:

store a corresponding bit of the weight value; and

couple, based on the corresponding bit and a voltage level of the compute select line, a respective amount of charge onto a compute bit line via the capacitor;

a control circuit configured to generate, using an operand value, respective voltage levels on the compute word line and the complement compute word line; and

an analog-to-digital converter circuit configured to generate, based on a voltage level of the compute bit line, a plurality of output bits whose value is indicative of a product of the operand value and the weight value.

2. The apparatus of claim 1 , wherein the control circuit further includes a voltage divider circuit including a plurality of resistors, wherein the voltage divider circuit is configured to generate a plurality of voltage levels.

3. The apparatus of claim 2 , wherein the control circuit further includes a decoder circuit configured to decode the operand value to generate a plurality of selection signals.

4. The apparatus of claim 3 , wherein the control circuit further includes:

a first selection circuit configured to select a first voltage level of the plurality of voltage levels using the plurality of selection signals;

a second selection circuit configured to select a second voltage level of the plurality of voltage levels using the plurality of selection signals; and

a third selection circuit configured to selectively couple, using a first clock signal and the sign value, the compute word line to either the first voltage level or the second voltage level.

5. The apparatus of claim 1 , wherein a value of a first capacitor included in a first compute data storage cell of the plurality of compute data storage cells is twice a value of a second capacitor included in a second compute data storage cell of the plurality of compute data storage cells.

6. The apparatus of claim 1 , wherein the analog-to-digital converter circuit includes a device configured to pre-charge the compute bit line to a particular voltage.

7. A method, comprising:

receiving an operand by a compute-memory circuit that includes a plurality of data storage cells;

decoding, by the compute-memory circuit, the operand to generate a plurality of select signals;

setting, using the plurality of select signals, a voltage level of a compute select line;

coupling, by a subset of the plurality of data storage cells via corresponding ones of a plurality of capacitors, a respective amounts of charge onto a compute bit line using the compute select line, wherein each one of the subset of the plurality of data storage cells is configured to store a respective bit of a plurality of weight bits included in a weight value; and

generating, using a voltage level of the compute bit line, a plurality of output bits whose value is indicative of a product of the operand and the weight value.

8. The method of claim 7 , further comprising, generating, by a voltage divider circuit, a plurality of voltage levels.

9. The method of claim 8 , wherein setting the voltage level of the compute select line includes:

selecting a first voltage level of the plurality of voltage levels for a compute word line using a first clock signal and a first sign bit value associated with the operand;

selecting a second voltage level of the plurality of voltage levels for a complement compute word line using the first clock signal and the first sign bit value; and

selectively coupling either the compute word line or the complement compute word line to the compute select line using a second sign bit value associated with the weight value.

10. The method of claim 9 , further comprising, pre-charging the compute word line and the complement compute word line to respective voltage levels using a second clock signal different than the first clock signal.

11. The method of claim 7 , wherein coupling, by a subset of the plurality of data storage cells, the respective amounts of charge onto the compute bit line includes:

coupling by a first data storage cell of the subset of the plurality of data storage cells a first amount of charge using a first capacitor coupled to the compute bit line; and

coupling by a second data storage cell of the subset of the plurality of data storage cells a second amount of charge using a second capacitor coupled to the compute bit line, wherein a value of the second capacitor is greater than a value of the first capacitor.

12. The method of claim 11 , wherein the value of the first capacitor is twice the value of the second capacitor.

13. The method of claim 7 , further comprising, setting an initial voltage level on the compute bit line prior to receiving the operand.

14. An apparatus, comprising:

a processor circuit;

a compute-memory circuit coupled to the processor circuit, wherein the compute-memory circuit includes a plurality of data storage cells, and wherein the compute-memory circuit is configured to:

receive an operand from the processor circuit;

decode the operand to generate a plurality of select signals;

set a voltage level of a compute select line using the plurality of select signals;

couple, via a plurality of capacitors included in a subset of the plurality of data storage cells, respective amounts of charge onto a compute bit line using the compute select line and data stored in the subset of the plurality of data storage cells, wherein the data is indicative of a weight value; and

generate an output value using a voltage level of the compute bit line, wherein the output value is indicative of a product of the operand and the weight value.

15. The apparatus of claim 14 , wherein the compute-memory circuit is further configured to generate a plurality of voltage levels.

16. The apparatus of claim 15 , wherein to set the voltage level of the compute select line, the compute-memory circuit is further configured to:

select a first voltage level of the plurality of voltage levels for a compute word line using a first clock signal and a first sign bit value associated with the operand;

select a second voltage level from the plurality of voltage levels for a complement compute word line using the first clock signal and the first sign bit value; and

selectively couple either the compute word line or the complement compute word line to the compute select line using a second sign bit value associated with the weight value.

17. The apparatus of claim 16 , wherein the compute-memory circuit is further configured to pre-charge the compute word line and the complement compute word line to respective voltage levels using the first sign bit value, and a second clock signal different than the first clock signal.

18. The apparatus of claim 14 , wherein the subset of the plurality of data storage cells includes a first data storage cell and a second data storage cell, wherein the first data storage cell includes a first capacitor, wherein the second data storage cell includes a second capacitor, and wherein to couple respective amounts of charge onto the compute bit line, the compute-memory circuit is further configured to:

couple the first capacitor to the compute bit line; and

couple the second capacitor coupled to the compute bit line, wherein a value of the second capacitor is greater than a value of the first capacitor.

19. The apparatus of claim 18 , wherein a value of the first capacitor is twice the value of the second capacitor.

20. The apparatus of claim 14 , wherein the compute-memory circuit is further configured to:

receive an address value and the weight value from the processor circuit; and

store the weight value into the subset of the plurality of data storage cells using the address value.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 11, 2021
From: DREESEN, MICHAEL A.; BHATIA, AJAY; SENINGEN, MICHAEL R.; HESS, GREG M.; GAIKI, SIDDHESH
To: APPLE INC.
Reel/Frame 056207/0324 →
Continuity (2)
Provisional Application 63083824 · Sep 25, 2020
Related Publication 20220101914A1 · Mar 31, 2022
References Cited (13)
US 10042608B2 · Tiwari · 2018 [cited by applicant]
US 10043570B1 · Tiwari · 2018 [cited by applicant]
US 10777253B1 · Khaddam-Aljameh · 2020 [cited by examiner]
US 10964356B2 · Wang · 2021 [cited by examiner]
US 11455371B2 · Lee · 2022 [cited by examiner]
US 11538509B2 · Mirhaj · 2022 [cited by examiner]
US 11551759B2 · Teague · 2023 [cited by examiner]
US 11562205B2 · Wang · 2023 [cited by examiner]
US 11823035B2 · Srivastava · 2023 [cited by examiner]
US 11914973B2 · Nazar · 2024 [cited by examiner]
US 20190102170A1 · Chen et al. · 2019 [cited by applicant]
US 20190102359A1 · Knag et al. · 2019 [cited by applicant]
US 20210005230A1 · Wang · 2021 [cited by examiner]