IP Library › Granted Patent US 12,242,966
Granted Patent B2
US 12,242,966 · App. 18/528,935 · Granted Mar 4, 2025

Acceleration of model/weight programming in memristor crossbar arrays

Inventors: Sai Rahul Chalamalasetti (Milpitas, CA); Paolo Faraboschi (Sant Cugat, ES); Martin Foltin (Fort Collins, CO); Catherine Graves (Milpitas, CA); Dejan S. Milojicic (Palo Alto, CA); John Paul Strachan (San Carlos, CA); Sergey Serebryakov (Saint-Petersburg, RU)
Assignee: Hewlett Packard Enterprise Development LP
G06N3/08G11C13/0069G11C2213/77
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,242,966
App. No.
18/528,935
Granted
Mar 4, 2025
Kind
B2
Abstract

A crossbar array includes a number of memory elements. An analog-to-digital converter (ADC) is electronically coupled to the vector output register. A digital-to-analog converter (DAC) is electronically coupled to the vector input register. A processor is electronically coupled to the ADC and to the DAC. The processor may be configured to determine whether division of input vector data by output vector data from the crossbar array is within a threshold value, and if not within the threshold value, determine changed data values as between the output vector data and the input vector data, and write the changed data values to the memory elements of the crossbar array.

Claims (42)

1. A memristive dot product system for vector processing, comprising:

a crossbar array having a number of memory elements;

a vector output register comprising outputs from the crossbar array;

a comparator processor operatively connected to the vector output register, the comparator processor configured to:

compare output vector data from the vector output register to input vector data from a memory register;

determine changed data values as between the output vector data and the input vector data; and

write the changed data values to the memory elements of the crossbar array.

2. The memristive dot product system of claim 1 , wherein the comparator processor includes an EXOR circuit that calculates an exclusive OR between the input vector data and the output vector data to determine the changed data values.

3. The memristive dot product system of claim 1 , wherein the comparator processor includes a circuit to retrieve the output vector data via an analog-to-digital converter (ADC) for a row of the crossbar array.

4. The memristive dot product system of claim 1 , wherein the comparator processor includes a circuit to write the changed data values via a digital-to-analog converter (DAC) to the memory elements of the crossbar array.

5. The memristive dot product system of claim 1 , wherein the memory register for the input vector data is a memory location distinct from the memory elements of the crossbar array.

6. The memristive dot product system of claim 1 , wherein the input vector data is data representing an n-dimensional vector of numerical values.

7. The memristive dot product system of claim 1 , wherein the input vector data describes a plurality of model weights for training a neural network.

8. A method comprising:

receiving a set of output vector data from an output of a memristor crossbar array, the memristor crossbar array having a number of memory elements;

receiving a set of input vector data;

evaluating the set of output vector data and the set of input vector data;

determining changed data values as between the output vector data and the input vector data; and

writing the changed data values to the memory elements of the memristor crossbar array.

9. The method of claim 8 , wherein evaluating the set of output vector data and the set of input vector data comprises:

performing an operation to determine whether an absolute value of the input vector data divided by the output vector data is less than a predetermined threshold value, wherein the output vector data represents weight values and the input vector data represents delta weight values.

10. The method of claim 8 , wherein the set of output vector data is received via an analog-to-digital converter electronically coupled to the memristor crossbar array.

11. The method of claim 8 , wherein the changed data values are written to the memory elements of the memristor crossbar array via a digital-to-analog converter electronically coupled to the memristor crossbar array.

12. The method of claim 8 , wherein:

the set of input vector data is received via a memory register; and

the memory register is a memory location distinct from the memory elements of the memristor crossbar array.

13. The method of claim 8 , wherein the set of input vector data is data representing an n-dimensional vector of numerical values.

14. The method of claim 8 , wherein the set of input vector data describes a plurality of model weights for training a neural network.

15. A non-transitory computer storage device storing instructions which, when executed, cause one or more processors to:

receive a set of output vector data from an output of a memristor crossbar array, the memristor crossbar array having a number of memory elements;

receive a set of input vector data;

compare the set of output vector data to the set of input vector data;

determine changed data values as between the output vector data and the input vector data; and

write the changed data values to the memory elements of the memristor crossbar array.

16. The non-transitory computer storage device of claim 15 , wherein, to compare the set of output vector data to the set of input vector data, the instructions further cause the one or more processors to:

perform an exclusive OR operation between the input vector data and the output vector data to determine the changed data values.

17. The non-transitory computer storage device of claim 15 , wherein the set of output vector data is received via an analog-to-digital converter electronically coupled to the memristor crossbar array.

18. The non-transitory computer storage device of claim 15 , wherein the changed data values are written to the memory elements of the memristor crossbar array via a digital-to-analog converter electronically coupled to the memristor crossbar array.

19. The non-transitory computer storage device of claim 15 , wherein:

the set of input vector data is received via a memory register; and

the memory register is a memory location distinct from the memory elements of the memristor crossbar array.

20. The non-transitory computer storage device of claim 15 , wherein the set of input vector data is data representing an n-dimensional vector of numerical values.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 5, 2023
From: CHALAMALASETTI, SAI RAHUL; FARABOSCHI, PAOLO; FOLTIN, MARTIN; GRAVES, CATHERINE; MILOJICIC, DEJAN S.; STRACHAN, JOHN PAUL; SEREBRYAKOV, SERGEY
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 065760/0989 →
Continuity (2)
Continuation 17044633
Related Publication 20240112029A1 · Apr 4, 2024
References Cited (30)
US 5671187A · Childers · 1997 [cited by examiner]
US 7902867B2 · Mouttet · 2011 [cited by applicant]
US 8040743B2 · Huang et al. · 2011 [cited by applicant]
US 9588908B2 · Cambou · 2017 [cited by applicant]
US 11853846B2 · Chalamalasetti · 2023 [cited by examiner]
US 20130028004A1 · Snider · 2013 [cited by applicant]
US 20130054886A1 · Eshraghian et al. · 2013 [cited by applicant]
US 20150347896A1 · Roy et al. · 2015 [cited by applicant]
US 20160364643A1 · Cruz-Albrecht et al. · 2016 [cited by applicant]
US 20170062048A1 · Ge et al. · 2017 [cited by applicant]
US 20170178725A1 · Yang et al. · 2017 [cited by applicant]
US 20180069536A1 · Roy et al. · 2018 [cited by applicant]
US 20180108410A1 · Whitaker et al. · 2018 [cited by applicant]
US 20180114569A1 · Strachan et al. · 2018 [cited by applicant]
US 20190065958A1 · Guo et al. · 2019 [cited by applicant]
CN 103455843A · 2013 [cited by applicant]
CN 106463166A · 2017 [cited by applicant]
CN 106815636A · 2017 [cited by applicant]
CN 107341541A · 2017 [cited by applicant]
CN 107533668A · 2018 [cited by applicant]
EP 1132924A2 · 2001 [cited by applicant]
KR 1020170108619A · 2017 [cited by applicant]
KR 1020170108627A · 2017 [cited by applicant]
WO 2017105517A1 · 2017 [cited by applicant]
Ankit et al., “PUMA: A Programmable Ultra-efficient Memristor-based Accelerator”, ASPLOS '19, Jan. 30, 2019, 17 pages. [cited by applicant]
Chi, et al., “PRIME: a novel processing-in-memory architecture for neural network computation in ReRAM-based main memory”, ISCA 2016, Jun. 18-22, 2016, 13 pages. [cited by applicant]
Haron, A et al., “Parallel Matrix Multiplication on Memristor-Based Computation-in-Memory Architecture,” 2016, 9 pages. [cited by applicant]
Hu, M. et al., “Dot-Product Engine for Neuromorphic Computing: Programming 1T1M Crossbar to Accelerate Matrix-Vector Multiplication,” Jun. 2016, 6 pages. [cited by applicant]
International Search Report and Written Opinion received for PCT Application No. PCT/US2018/030219, mailed on Feb. 22, 2019, 13 pages. [cited by applicant]
Shafiee et al., “Isaac: A Convolutional Neural Network Accelerator with In-Situ Analog Arithmetic in Crossbars”, International Symposium on Computer Architecture (ISCA) 2016, Oct. 5, 2016, 13 pages. [cited by applicant]