# US 11,443,171 B2 · Pulse generation for updating crossbar arrays

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

- Number: US 11,443,171 B2
- Document ID: US11443171B2
- Status: Granted
- Kind: B2
- Application number: 16/929,168
- Filed: 2020-07-15
- Published: 2022-01-20
- Granted: 2022-09-13
- Earliest claimed: 2020-07-15
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Seyoung Kim; Oguzhan Murat Onen; Tayfun Gokmen; Malte Johannes Rasch
- Web page: https://patentgrep.com/patent/US11443171B2

## CPC

- G06F 7/5443: {Sum of products (for applications thereof, see the relevant places, e.g. G06F17/10, H03H17/00)}
- G06N 3/049: Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
- G06F 9/3001: {Arithmetic instructions}
- G06F 9/30036: {Instructions to perform operations on packed data, e.g. vector, tile or matrix operations}
- G06N 3/065: Analogue means
- G06N 3/082: modifying the architecture, e.g. adding, deleting or silencing nodes or connections
- G06F 2207/4802: Special implementations
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## Abstract

Provided are embodiments for a computer-implemented method, a system, and a computer program product for updating an analog crossbar array. Embodiment include receiving a number used in matrix multiplication to represent using pulse generation for a crossbar array, and receiving a bit-length to represent the number. Embodiments also include selecting pulse positions in a pulse sequence having the bit length to represent the number, performing a computation using the selected pulse positions in the pulse sequence, and updating the crossbar array using the computation.

## Claims

### Claim 1

A computer-implemented method for pulse generation for updating analog crossbar arrays, the computer-implemented method comprising:
receiving, by a processor, a number used in matrix multiplication to represent using pulse generation for a crossbar array;
receiving, by the processor, a bit-length to represent the number;
selecting, by the processor, pulse positions in a pulse sequence having the bit-length to represent the number;
performing, by the processor, a computation using the selected pulse positions in the pulse sequence; and
updating, by the processor, the crossbar array using the computation; wherein the selected pulse positions comprise at least one of a first pulse sequence or a second pulse sequence; and
wherein there is a pulse coincidence between the first pulse sequence and the second pulse sequence.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein the computation comprises performing an outer product operation with the number used in the matrix multiplication and a second number used in the matrix multiplication.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein the selected pulse positions in the pulse sequence are based at least in part on the bit-length.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein the bit-length is equal to a number of different elements for a weight matrix.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1 further comprising generating a heat map, wherein the generated heat map is based at least in part on the pulse coincidence between the first pulse sequence and the second pulse sequence.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein the at least one first pulse sequence corresponds to the number and the second pulse sequence corresponds to the second number.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1 further comprising comparing a true multiplication map to the pulse coincidence using the selected pulse positions, wherein the true multiplication map performs an element-wise multiplication for each element.

### Claim 8 (depends on 7)

The computer-implemented method of claim 7 further comprising:
determining an error between the true multiplication map and the pulse coincidence; and
displaying the error between the true multiplication map and the pulse coincidence.

### Claim 9

The computer-implemented method 1, wherein updating the crossbar array comprises updating a conductance value of one or more memristive devices of the crossbar array based at least in part on the computation.

### Claim 10

A system for implementing pulse generation for updating crossbar arrays, the system comprising:
a crossbar array comprising one or more memristive devices;
a processor configured to:
receive a number used in matrix multiplication to represent using pulse generation for the crossbar array;
receive a bit-length to represent the number;
select pulse positions in a pulse sequence having the bit-length to represent the number;
perform a computation using the selected pulse positions in the pulse sequence; and
update the crossbar array using the computation, wherein updating the crossbar array changes weights of the one or more memristive devices;
wherein the selected pulse positions comprise at least one of a first pulse sequence or a second pulse sequence; and
wherein there is a pulse coincidence between the first pulse sequence and the second pulse sequence.

### Claim 11 (depends on 10)

The system of claim 10, wherein the computation comprises performing an outer product operation with the number used in the matrix multiplication and a second number used in the matrix multiplication.

### Claim 12 (depends on 10)

The system of claim 10, wherein the selected pulse positions in the pulse sequence are based at least in part on the bit-length.

### Claim 13 (depends on 10)

The system of claim 10, wherein the bit-length is equal to a number of different elements for a weight matrix.

### Claim 14 (depends on 10)

The system of claim 10, wherein the computation comprises determining the outer product of a first vector and a second vector for the neural network.

### Claim 15 (depends on 10)

The system of claim 10, wherein the processor is further configured to generate a heat map, wherein the generated heat map is based at least in part on the pulse coincidence between the first pulse sequence and the second pulse sequence.

### Claim 16 (depends on 10)

The system of claim 10 further comprising comparing a true multiplication map to the pulse coincidence using the selected pulse positions, wherein the true multiplication map performs an element-wise multiplication for each element.

### Claim 17 (depends on 16)

The system of claim 16, wherein the process is further configured to:
determine an error between the true multiplication map and the pulse coincidence; and
display the error between the true multiplication map and the pulse coincidence.

### Claim 18 (depends on 10)

The system of claim 10, wherein updating the crossbar array comprises updating a conductance value of the one or more memristive devices of the crossbar array based at least in part on the computation.

### Claim 19

A computer program product for pulse generation for updating analog crossbar arrays, the computer program product comprising:
a computer readable storage medium having stored thereon first program instructions executable by a processor to cause the processor to:
receive a number used in matrix multiplication to represent using pulse generation for a crossbar array;
receive a bit-length to represent the number;
select pulse positions in a pulse sequence having the bit-length to represent the number;
perform a computation using the selected pulse positions in the pulse sequence; and
update the crossbar array using the computation, wherein updating the crossbar array comprises updating a conductance value of one or more memristive devices of the crossbar array based at least in part on the computation;
wherein the selected pulse positions comprise at least one of a first pulse sequence or a second pulse sequence; and
wherein there is a pulse coincidence between the first pulse sequence and the second pulse sequence generating a heat map.

### Claim 20 (depends on 19)

The computer program product of claim 19, wherein the computation comprises performing an outer product operation with the number used in the matrix multiplication and a second number used in the matrix multiplication.

### Claim 21 (depends on 19)

The computer program product of claim 19, wherein the bit-length is equal to a number of different elements for a weight matrix.

### Claim 22 (depends on 19)

The computer program product of claim 19, wherein the instructions are further executable by a processor to cause the processor to determine the outer product of a first pulse sequence and a second pulse sequence for the neural network.

### Claim 23 (depends on 19)

The computer program product of claim 19, wherein the instructions are further executable by a processor to cause the processor to generate a heat map, wherein the generated heat map is based at least in part on the pulse coincidence between the first pulse sequence and the second pulse sequence.

### Claim 24 (depends on 19)

The computer program product of claim 19, wherein the instructions are further executable by a processor to cause the processor to compare a true multiplication map to the pulse coincidence using the selected pulse positions, wherein the true multiplication map performs an element-wise multiplication for each element.

### Claim 25 (depends on 19)

The computer program product of claim 19, wherein the instructions are further executable by a processor to cause the processor to:
determine an error between the true multiplication map and the pulse coincidence; and
display the error between the true multiplication map and the pulse coincidence.
