# US 10,319,441 B2 · Nonvolatile memory cross-bar array

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,319,441 B2
- Document ID: US10319441B2
- Status: Granted
- Kind: B2
- Application number: 16/220,647
- Filed: 2018-12-14
- Published: 2019-05-09
- Granted: 2019-06-11
- Earliest claimed: 2018-12-14
- Assignees: Hewlett Packard Enterprise Development LP
- Applicants: Hewlett Packard Enterprise Development LP
- Inventors: Ning Ge; Jianhua Yang; John Paul Strachan; Miao Hu
- Web page: https://patentgrep.com/patent/US10319441B2

## CPC

- G11C 13/0069: {Writing or programming circuits or methods}
- G06G 7/16: for multiplication or division {(G06G7/19 and G06G7/24 take precedence; measuring electric power G01R21/00)}
- G11C 13/0007: {comprising metal oxide memory material, e.g. perovskites}
- G11C 13/004: {Reading or sensing circuits or methods}
- G11C 2213/79: Array wherein the access device being a transistor
- G11C: STATIC STORES (semiconductor memory devices H10B)
- G06G: ANALOGUE COMPUTERS (analogue optical computing devices G06E3/00)

## Abstract

Provided in one example is a nonvolatile memory cross-bar array. The array includes: a number of junctions formed by a number of row lines intersecting a number of column lines; a first set of controls at a first set of the junctions coupling between a first set of the row lines and a first set of the column lines; a second set of controls at a second set of the junctions coupling between a second set of the row lines and a second set of the column lines; and a current collection line to collect currents from the controls of the first set and the second set through their respective column lines and output a result current corresponding to a sum of a first dot product and a second dot product.

## Claims

### Claim 1

A non-transitory computer readable medium comprising computer executable instructions stored thereon that, when executed by a processor, cause the processor to:
control a first set of controls and a second set of controls of a nonvolatile memory cross-bar array to:
receive a number of programming signals, the programming signals defining a number of matrix values; and
receive a number of vector signals, the vector signals defining a number of vector values to be applied to the first set of controls and the second set of controls; and
calculate a sum of a first dot product and a second dot product using currents collected respectively from the first set of controls and the second set of controls, the currents corresponding to the matrix values and the vector values,
wherein the nonvolatile memory cross-bar array includes a number of junctions formed by a number of row lines intersecting a number of column lines, the first set of controls at a first set of the junctions coupling between a first set of the row lines and a first set of the column lines, the second set of controls at a second set of the junctions coupling between a second set of the row lines and a second set of the column lines, each column line including a junction of the first set of controls and a junction of the second set of controls in two different row lines, and each control of the first set of controls and the second set of controls including a transistor and a resistive memory element.

### Claim 2 (depends on 1)

The non-transitory computer readable medium of claim 1, wherein the computer executable instructions further cause the processor to control the first set of controls and the second set of controls to independently receive the number of programming signals and independently receive the number of vector signals.

### Claim 3 (depends on 1)

The non-transitory computer readable medium of claim 1, wherein the computer executable instructions further cause the processor to control the first set of controls and the second set of controls to independently calculate the first dot product and the second dot product, respectively.

### Claim 4 (depends on 1)

The non-transitory computer readable medium of claim 1, wherein the computer executable instructions further cause the processor to control the first set of controls and the second set of controls to simultaneously calculate the first dot product and second dot product, respectively.

### Claim 5 (depends on 1)

The non-transitory computer readable medium of claim 1, wherein calculating the sum of the first dot product and the second dot product does not involve storing the matrix values and vector values in a storing memory circuit.

### Claim 6 (depends on 1)

The non-transitory computer readable medium of claim 1, wherein the computer executable instructions further cause the processor to:
control a third set of controls to:
receive the number of programming signals defining a number of matrix values; and
receive a number of vector signals, the vector signals defining a number of vector values to be applied to the first set of controls and the second set of controls; and
calculate a sum of the first dot product, the second dot product and a third dot product using currents collected respectively from the first set of controls, the second set of controls, and the third set of controls, the currents corresponding to the matrix values and the vector values,
wherein the third set of controls is at a third set of the junctions, coupling between a third set of the row lines and a third set of the column lines, each control of the third set of controls including a third transistor and a third resistive memory element, and each column line including junctions of the first set of controls, the second set of controls, and the third set of controls in three different row lines.

### Claim 7

A method, comprising:
controlling a first set of controls and a second set of controls of a nonvolatile memory cross-bar array to:
receive a number of programming signals, the programming signals defining a number of matrix values; and
receive a number of vector signals, the vector signals defining a number of vector values to be applied to the first set of controls and the second set of controls; and
calculating a sum of a first dot product and a second dot product using currents collected respectively from the first set of controls and the second set of controls, the currents corresponding to the matrix values and the vector values,
wherein the nonvolatile memory cross-bar array includes a number of junctions formed by a number of row lines intersecting a number of column lines, the first set of controls at a first set of the junctions coupling between a first set of the row lines and a first set of the column lines, the second set of controls at a second set of the junctions coupling between a second set of the row lines and a second set of the column lines, each column line including a junction of the first set of controls and a junction of the second set of controls in two different row lines, and each control of the first set of controls and the second set of controls including a transistor and a resistive memory element.

### Claim 8 (depends on 7)

The method of claim 7, further comprising controlling the first set of controls and the second set of controls to independently receive the number of programming signals and independently receive the number of vector signals.

### Claim 9 (depends on 7)

The method of claim 7, further comprising controlling the first set of controls and the second set of controls to independently calculate the first dot product and the second dot product, respectively.

### Claim 10 (depends on 7)

The method of claim 7, further comprising controlling the first set of controls and the second set of controls to simultaneously calculate the first dot product and the second dot product, respectively.

### Claim 11 (depends on 7)

The method of claim 7, wherein calculating the sum of the first dot product and the second dot product does not involve storing the matrix values and vector values in a storing memory circuit.

### Claim 12 (depends on 7)

The method of claim 7, further comprising:
controlling a third set of controls to:
receive the number of programming signals defining a number of matrix values; and
receive a number of vector signals, the vector signals defining a number of vector values to be applied to the first set of controls and the second set of controls; and
calculating a sum of the first dot product, the second dot product and a third dot product using currents collected respectively from the first set of controls, the second set of controls, and the third set of controls, the currents corresponding to the matrix values and the vector values,
wherein the third set of controls is at a third set of the junctions, coupling between a third set of the row lines and a third set of the column lines, each control of the third set of controls including a third transistor and a third resistive memory element, and each column line including junctions of the first set of controls, the second set of controls, and the third set of controls in three different row lines.
