IP Library › Granted Patent US 12,272,422
Granted Patent B2
US 12,272,422 · App. 17/984,750 · Granted Apr 8, 2025

Compensation for conductance drift in analog memory in crossbar array

Inventor: Charles Mackin (San Jose, CA)
Assignee: International Business Machines Corporation
G11C7/1063G11C7/1069G11C11/54
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,272,422
App. No.
17/984,750
Granted
Apr 8, 2025
Kind
B2
Abstract

A system can compensate for activation drift in analog memory-based artificial neural networks. A set of input activation vectors can be input, at a first point in time, to a crossbar array. The first set of output activation vectors can be read from the output lines of the crossbar array. At a second point in time, which is a later time than the first point in time, the input set of activation vectors can be input to the crossbar array. A second set of output activation vectors can be read from the crossbar array. A function that maps the second set of output activation vectors to the first set of output activation vectors can be determined. The function can be applied to subsequent output activation vectors output by the crossbar array. A method thereof, can also be provided.

Claims (41)

1. A method comprising:

inputting, at a first point in time, a set of input activation vectors to a crossbar array, the crossbar array including at least a plurality of input lines, a plurality of output lines, and at least one memory device at each cross point of the plurality of input lines and the plurality of output lines, the at least one memory device at each cross point storing a synaptic weight;

reading out a first set of output activation vectors at the plurality of output lines of the crossbar array, the first set of output activation vectors representing outputs of operations performed on the crossbar array based on the set of input activation vectors input at the first point in time and the synaptic weight stored on the at least one memory device at each cross point;

inputting, at a second point in time, the input set of activation vectors to the crossbar array, the second point in time being a later time than the first point in time;

reading out a second set of output activation vectors at the plurality of output lines of the crossbar array, the second set of output activation vectors representing outputs of the operations performed on the crossbar array based on the set of input activation vectors input at the second point in time and the synaptic weight stored on the at least one memory device at each cross point, wherein the set of input activation vectors applied to the input lines of the crossbar array and used by the crossbar array in computing the first set of output activation vectors, are used by the crossbar array in computing the second set of output activation vectors;

determining a function that maps the second set of output activation vectors which has been read out, to the first set of output activation vectors which has been read out; and

compensating conductance drift exhibited in the crossbar array by applying the function to subsequent output activation vectors output by the crossbar array.

2. The method of claim 1 , wherein the operations include multiply-accumulate operations.

3. The method of claim 1 , wherein the set of input activation vectors, which is input into the crossbar array, is encoded as electrical pulse durations.

4. The method of claim 1 , wherein the set of input activation vectors, which is input into the crossbar array, is encoded as voltage signals.

5. The method of claim 1 , wherein the at least one memory device at each cross point includes an analog non-volatile memory device.

6. The method of claim 1 , wherein the set of input activation vectors are sampled from a machine learning training dataset.

7. The method of claim 1 , wherein the function includes a first-order polynomial least square fit between the first set of output activation vectors and the second set of output activation vectors.

8. The method of claim 1 , wherein the determining a function that maps the second set of output activation vectors to the first set of output activation vectors, includes determining a first-order polynomial least square fit for each column of the crossbar array.

9. The method of claim 1 , wherein the function includes an n-th order polynomial least square fit between the first set of output activation vectors and the second set of output activation vectors, wherein n is an integer greater than 1.

10. The method of claim 1 , wherein the determining a function that maps the second set of output activation vectors to the first set of output activation vectors, includes determining an n-th order polynomial least square fit for each column of the crossbar array, wherein n is an integer greater than 1.

11. The method of claim 1 , wherein the function includes an n-th order polynomial L1 norm fit between the first set of output activation vectors and the second set of output activation vectors, wherein n is an integer greater than 1.

12. The method of claim 1 , wherein the determining a function that maps the second set of output activation vectors to the first set of output activation vectors, includes determining an n-th order polynomial L1 norm fit for each column of the crossbar array, wherein n is an integer greater than 1.

13. The method of claim 1 , wherein the function includes an n-th order polynomial norm fit between the first set of output activation vectors and the second set of output activation vectors, wherein n is an integer greater than 1.

14. The method of claim 1 , wherein the determining a function that maps the second set of output activation vectors to the first set of output activation vectors, includes determining an n-th order polynomial norm fit for each column of the crossbar array, wherein n is an integer greater than 1.

15. The method of claim 1 , wherein the function includes an n-th order polynomial norm fit between the first set of output activation vectors and the second set of output activation vectors, wherein n is an integer greater than or equal to zero.

16. A system comprising:

at least one processor; and

at least one crossbar array arranged with at least a plurality of input lines, a plurality of output lines, and at least one memory device at each cross point of the plurality of input lines and the plurality of output lines, the at least one memory device at each cross point storing a synaptic weight,

the at least one processor configured to:

input, at a first point in time, a set of input activation vectors to the crossbar array;

read first set of output activation vectors from the plurality of output lines of the crossbar array, the first set of output activation vectors representing outputs of operations performed on the crossbar array based on the set of input activation vectors input at the first point in time and the synaptic weight stored on the at least one memory device at each cross point;

input, at a second point in time, the input set of activation vectors to the crossbar array, the second point in time being a later time than the first point in time;

read a second set of output activation vectors from the plurality of output lines of the crossbar array, the second set of output activation vectors representing outputs of the operations performed on the crossbar array based on the set of input activation vectors input at the second point in time and the synaptic weight stored on the at least one memory device at each cross point, wherein the set of input activation vectors applied to the input lines of the crossbar array and used by the crossbar array in computing the first set of output activation vectors, are used by the crossbar array in computing the second set of output activation vectors;

determine a function that maps the second set of output activation vectors which has been read out, to the first set of output activation vectors which has been read out; and

compensating conductance drift exhibited in the crossbar array by apply the function to subsequent output activation vectors output by the crossbar array.

17. The system of claim 16 , wherein the operations include multiply-accumulate operations.

18. The system of claim 16 , wherein the set of input activation vectors, which is input into the crossbar array, is encoded as electrical pulse durations.

19. The system of claim 16 , wherein the set of input activation vectors, which is input into the crossbar array, is encoded as voltage signals.

20. A computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions readable by a device to cause the device to:

input, at a first point in time, a set of input activation vectors to a crossbar array, the crossbar array including at least a plurality of input lines, a plurality of output lines, and at least one memory device at each cross point of the plurality of input lines and the plurality of output lines, the at least one memory device at each cross point storing a synaptic weight;

read first set of output activation vectors from the plurality of output lines of the crossbar array, the first set of output activation vectors representing outputs of operations performed on the crossbar array based on the set of input activation vectors input at the first point in time and the synaptic weight stored on the at least one memory device at each cross point;

input, at a second point in time, the input set of activation vectors to the crossbar array, the second point in time being a later time than the first point in time;

read a second set of output activation vectors from the plurality of output lines of the crossbar array, the second set of output activation vectors representing outputs of the operations performed on the crossbar array based on the set of input activation vectors input at the second point in time and the synaptic weight stored on the at least one memory device at each cross point, wherein the set of input activation vectors applied to the input lines of the crossbar array and used by the crossbar array in computing the first set of output activation vectors, are used by the crossbar array in computing the second set of output activation vectors;

determine a function that maps the second set of output activation vectors which has been read out, to the first set of output activation vectors which has been read out; and

compensate conductance drift exhibited in the crossbar array by applying the function to subsequent output activation vectors output by the crossbar array.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 10, 2022
From: MACKIN, CHARLES
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 061722/0560 →
Continuity (1)
Related Publication 20240161792A1 · May 16, 2024
References Cited (27)
US 6601051B1 · Lo · 2003 [cited by examiner]
US 10754921B2 · Khaddam-Aljameh · 2020 [cited by applicant]
US 10885979B2 · Tang et al. · 2021 [cited by applicant]
US 11113597B2 · Martin · 2021 [cited by applicant]
US 11158363B2 · Sforzin · 2021 [cited by applicant]
US 11170853B2 · DasGupta et al. · 2021 [cited by applicant]
US 11183238B2 · Burr · 2021 [cited by applicant]
US 11461640B2 · Tsai et al. · 2022 [cited by applicant]
US 20200327406A1 · Piveteau · 2020 [cited by applicant]
US 20200334525A1 · Tsai et al. · 2020 [cited by applicant]
US 20210209457A1 · Van Tran et al. · 2021 [cited by applicant]
US 20210249073A1 · Grobis et al. · 2021 [cited by applicant]
US 20210264978A1 · Li · 2021 [cited by applicant]
US 20210319300A1 · Joshi · 2021 [cited by examiner]
US 20210397967A1 · Tsai · 2021 [cited by applicant]
US 20220101142A1 · Tsai et al. · 2022 [cited by applicant]
US 20220156569A1 · Shin · 2022 [cited by examiner]
US 20230085867A1 · Rakin · 2023 [cited by examiner]
US 20230095606A1 · Su · 2023 [cited by examiner]
US 20230325659A1 · Solinas · 2023 [cited by examiner]
K. Spoon et al., “Accelerating Deep Neural Networks with Analog Memory Devices,” 2020 IEEE International Memory Workshop (IMW), Dresden, Germany, 2020, pp. 1-4, doi: 10.1109/IMW48823.2020.9108149. (Year: 2020). [cited by examiner]
C. Mackin et al., “Neuromorphic Computing with Phase Change, Device Reliability, and Variability Challenges,” 2020 IEEE International Reliability Physics Symposium (IRPS), Dallas, TX, USA, 2020, pp. 1-10, doi: 10.1109/I… [cited by examiner]
Zhou, C., et al., “AnalogNets: ML-HW Co-Design of Noise-Robust TinyML Models and Always-On Analog Compute-In-Memory Accelerator”, arXiv:2111.06503v1 [cs.AR], Nov. 10, 2021, 17 pages. [cited by applicant]
Zhou, Y., et al., “Bayesian Neural Network Enhancing Reliability Against Conductance Drift for Memristor Neural Networks”, Science China Information Science, Jun. 2021, pp. 160408:1-160408:12, vol. 64. [cited by applicant]
Nandakumar, S.R., et al., “Mixed-Precision Deep Learning Based on Computational Memory”, arXiv:2001.11773v1 [cs.ET], Jan. 31, 2020, 16 pages. [cited by applicant]
Mackin, C., et al., “Optimized Weight Programming for Analogue Memory-Based Deep Neural Networks”, Research Square, Posted Nov. 10, 2021, 38 pages. [cited by applicant]
Le Gallo, M., et al., “Precision of Bit Slicing With In-Memory Computing Based on Analog Phase-Change Memory Crossbar”, Neuromorph. Comput. Eng. (2022), Received Sep. 30, 2021, Revised Jan. 21, 2022, Accepted for Public… [cited by applicant]