# US 10,504,021 B2 · Neuromorphic event-driven neural computing architecture in a scalable neural network

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

- Number: US 10,504,021 B2
- Document ID: US10504021B2
- Status: Granted
- Kind: B2
- Application number: 14/989,579
- Filed: 2016-01-06
- Published: 2016-08-04
- Granted: 2019-12-10
- Earliest claimed: 2011-09-16
- Assignees: International Business Machines Corporation; Cornell University
- Applicants: International Business Machines Corporation; Cornell University
- Inventors: Filipp Akopyan; John V. Arthur; Rajit Manohar; Paul A. Merolla; Dharmendra S. Modha; Alyosha Molnar; William P. Risk, III
- Web page: https://patentgrep.com/patent/US10504021B2

## CPC

- G06N 3/06: Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N 3/049: Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
- G06N 3/0495: Quantised networks; Sparse networks; Compressed networks
- G06N 3/063: using electronic means
- G06N 3/082: modifying the architecture, e.g. adding, deleting or silencing nodes or connections
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## Abstract

An event-driven neural network includes a plurality of interconnected core circuits is provided. Each core circuit includes an electronic synapse array has multiple digital synapses interconnecting a plurality of digital electronic neurons. A synapse interconnects an axon of a pre-synaptic neuron with a dendrite of a post-synaptic neuron. A neuron integrates input spikes and generates a spike event in response to the integrated input spikes exceeding a threshold. Each core circuit also has a scheduler that receives a spike event and delivers the spike event to a selected axon in the synapse array based on a schedule for deterministic event delivery.

## Claims

### Claim 1

A method, comprising:
maintaining an electronic synapse array comprising multiple electronic synapses interconnecting multiple electronic neurons, wherein the multiple electronic synapses and the multiple electronic neurons are arranged in multiple rows and multiple columns, and each row and each column has a corresponding row serving module and a corresponding column serving module, respectively; and
each row serving module and each column serving module utilizing a distributed mutual exclusion protocol to adaptively control access of one or more spiking electronic neurons of the multiple electronic neurons to an output bus for delivery of one or more outgoing spikes generated by the one or more spiking electronic neurons based on rate of outgoing spikes generated by the multiple electronic neurons.

### Claim 2 (depends on 1)

The method of claim 1, wherein utilizing a distributed mutual exclusion protocol to adaptively control access of one or more spiking electronic neurons of the multiple electronic neurons to an output bus for delivery of one or more outgoing spikes generated by the one or more spiking electronic neurons based on rate of outgoing spikes generated by the multiple electronic neurons comprises:
circulating a row token among the multiple rows;
circulating a column token among the multiple columns; and
maintaining a counter for the row token and the column token;
wherein the counter includes a row count for the row token, and the row count is updated each time the row token moves between the multiple rows; and
wherein the counter further includes a column count for the column token, and the column count is updated each time the column token moves between the multiple columns.

### Claim 3 (depends on 2)

The method of claim 2, wherein utilizing a distributed mutual exclusion protocol to adaptively control access of one or more spiking electronic neurons of the multiple electronic neurons to an output bus for delivery of one or more outgoing spikes generated by the one or more spiking electronic neurons based on rate of outgoing spikes generated by the multiple electronic neurons further comprises:
in response to an electronic neuron of the multiple electronic neurons generating spiking activity:
determining whether a row servicing module corresponding to a row of the electronic neuron has the row token in response to the electronic neuron pulling a row request line up;
sending acknowledgment for the row request line to the electronic neuron only in response to determining the row servicing module has the row token;
determining whether a column servicing module corresponding to a column of the electronic neuron has the column token in response to the electronic neuron pulling a column request line up upon receiving the acknowledgement; and
signaling the counter to send out the row count and the column count to the output bus only in response to determining the column serving module has the column token.

### Claim 4 (depends on 3)

The method of claim 3, further comprising:
converting spiking activity generated by a spiking electronic neuron into a sequence of one or more neuron addresses corresponding to the spiking electronic neuron based on the row count and the column count.

### Claim 5 (depends on 4)

The method of claim 4, wherein one or more output bits on the output bus encode the sequence of one or more neuron addresses corresponding to the spiking electronic neuron.

### Claim 6 (depends on 2)

The method of claim 2, wherein utilizing a distributed mutual exclusion protocol to adaptively control access of one or more spiking electronic neurons of the multiple electronic neurons to an output bus for delivery of one or more outgoing spikes generated by the one or more spiking electronic neurons based on rate of outgoing spikes generated by the multiple electronic neurons further comprises:
in response to increased spiking activity generated by the multiple electronic neurons, initiating a row arbitration process for the row token.

### Claim 7 (depends on 2)

The method of claim 2, wherein utilizing a distributed mutual exclusion protocol to adaptively control access of one or more spiking electronic neurons of the multiple electronic neurons to an output bus for delivery of one or more outgoing spikes generated by the one or more spiking electronic neurons based on rate of outgoing spikes generated by the multiple electronic neurons further comprises:
in response to decreased spiking activity generated by the multiple electronic neurons:
circulating the row token only between one or more rows of the multiple rows that include one or more spiking electronic neurons; and
circulating the column token only between one or more columns of the multiple columns that include one or more spiking electronic neurons.

### Claim 8

A system comprising a computer processor, a computer-readable hardware storage device, and program code embodied with the computer-readable hardware storage device for execution by the computer processor to implement a method for triangulating multiple failed processing elements, the method comprising:
maintaining an electronic synapse array comprising multiple electronic synapses interconnecting multiple electronic neurons, wherein the multiple electronic synapses and the multiple electronic neurons are arranged in multiple rows and multiple columns, and each row and each column has a corresponding row serving module and a corresponding column serving module, respectively; and
each row serving module and each column serving module utilizing a distributed mutual exclusion protocol to adaptively control access of one or more spiking electronic neurons of the multiple electronic neurons to an output bus for delivery of one or more outgoing spikes generated by the one or more spiking electronic neurons based on rate of outgoing spikes generated by the multiple electronic neurons.

### Claim 9 (depends on 8)

The system of claim 8, wherein utilizing a distributed mutual exclusion protocol to adaptively control access of one or more spiking electronic neurons of the multiple electronic neurons to an output bus for delivery of one or more outgoing spikes generated by the one or more spiking electronic neurons based on rate of outgoing spikes generated by the multiple electronic neurons comprises:
circulating a row token among the multiple rows;
circulating a column token among the multiple columns; and
maintaining a counter for the row token and the column token;
wherein the counter includes a row count for the row token, and the row count is updated each time the row token moves between the multiple rows; and
wherein the counter further includes a column count for the column token, and the column count is updated each time the column token moves between the multiple columns.

### Claim 10 (depends on 9)

The system of claim 9, wherein utilizing a distributed mutual exclusion protocol to adaptively control access of one or more spiking electronic neurons of the multiple electronic neurons to an output bus for delivery of one or more outgoing spikes generated by the one or more spiking electronic neurons based on rate of outgoing spikes generated by the multiple electronic neurons further comprises:
in response to an electronic neuron of the multiple electronic neurons generating spiking activity:
determining whether a row servicing module corresponding to a row of the electronic neuron has the row token in response to the electronic neuron pulling a row request line up;
sending acknowledgment for the row request line to the electronic neuron only in response to determining the row servicing module has the row token;
determining whether a column servicing module corresponding to a column of the electronic neuron has the column token in response to the electronic neuron pulling a column request line up upon receiving the acknowledgement; and
signaling the counter to send out the row count and the column count to the output bus only in response to determining the column serving module has the column token.

### Claim 11 (depends on 10)

The system of claim 10, the method further comprising:
converting spiking activity generated by a spiking electronic neuron into a sequence of one or more neuron addresses corresponding to the spiking electronic neuron based on the row count and the column count.

### Claim 12 (depends on 11)

The system of claim 11, wherein one or more output bits on the output bus encode the sequence of one or more neuron addresses corresponding to the spiking electronic neuron.

### Claim 13 (depends on 9)

The system of claim 9, wherein utilizing a distributed mutual exclusion protocol to adaptively control access of one or more spiking electronic neurons of the multiple electronic neurons to an output bus for delivery of one or more outgoing spikes generated by the one or more spiking electronic neurons based on rate of outgoing spikes generated by the multiple electronic neurons further comprises:
in response to increased spiking activity generated by the multiple electronic neurons, initiating a row arbitration process for the row token.

### Claim 14 (depends on 9)

The system of claim 9, wherein utilizing a distributed mutual exclusion protocol to adaptively control access of one or more spiking electronic neurons of the multiple electronic neurons to an output bus for delivery of one or more outgoing spikes generated by the one or more spiking electronic neurons based on rate of outgoing spikes generated by the multiple electronic neurons further comprises:
in response to decreased spiking activity generated by the multiple electronic neurons:
circulating the row token only between one or more rows of the multiple rows that include one or more spiking electronic neurons; and
circulating the column token only between one or more columns of the multiple columns that include one or more spiking electronic neurons.

### Claim 15

A computer program product comprising a non-transitory computer-readable hardware storage device having program code embodied therewith, the program code being executable by a computer to implement a method comprising: maintaining an electronic synapse array comprising multiple electronic synapses interconnecting multiple electronic neurons, wherein the multiple electronic synapses and the multiple electronic neurons are arranged in multiple rows and multiple columns, and each row and each column has a corresponding row serving module and a corresponding column serving module, respectively; and each row serving module and each column serving module utilizing a distributed mutual exclusion protocol to adaptively control access of one or more spiking electronic neurons of the multiple electronic neurons to an output bus for delivery of one or more outgoing spikes generated by the one or more spiking electronic neurons based on rate of outgoing spikes generated by the multiple electronic neurons.

### Claim 16 (depends on 15)

The computer program product of claim 15, wherein utilizing a distributed mutual exclusion protocol to adaptively control access of one or more spiking electronic neurons of the multiple electronic neurons to an output bus for delivery of one or more outgoing spikes generated by the one or more spiking electronic neurons based on rate of outgoing spikes generated by the multiple electronic neurons comprises:
circulating a row token among the multiple rows;
circulating a column token among the multiple columns; and
maintaining a counter for the row token and the column token;
wherein the counter includes a row count for the row token, and the row count is updated each time the row token moves between the multiple rows; and
wherein the counter further includes a column count for the column token, and the column count is updated each time the column token moves between the multiple columns.

### Claim 17 (depends on 16)

The computer program product of claim 16, wherein utilizing a distributed mutual exclusion protocol to adaptively control access of one or more spiking electronic neurons of the multiple electronic neurons to an output bus for delivery of one or more outgoing spikes generated by the one or more spiking electronic neurons based on rate of outgoing spikes generated by the multiple electronic neurons further comprises:
in response to an electronic neuron of the multiple electronic neurons generating spiking activity:
determining whether a row servicing module corresponding to a row of the electronic neuron has the row token in response to the electronic neuron pulling a row request line up;
sending acknowledgment for the row request line to the electronic neuron only in response to determining the row servicing module has the row token;
determining whether a column servicing module corresponding to a column of the electronic neuron has the column token in response to the electronic neuron pulling a column request line up upon receiving the acknowledgement; and
signaling the counter to send out the row count and the column count to the output bus only in response to determining the column serving module has the column token.

### Claim 18 (depends on 17)

The computer program product of claim 17, the method further comprising:
converting spiking activity generated by a spiking electronic neuron into a sequence of one or more neuron addresses corresponding to the spiking electronic neuron based on the row count and the column count.

### Claim 19 (depends on 18)

The computer program product of claim 18, wherein one or more output bits on the output bus encode the sequence of one or more neuron addresses corresponding to the spiking electronic neuron.

### Claim 20 (depends on 16)

The computer program product of claim 16, wherein utilizing a distributed mutual exclusion protocol to adaptively control access of one or more spiking electronic neurons of the multiple electronic neurons to an output bus for delivery of one or more outgoing spikes generated by the one or more spiking electronic neurons based on rate of outgoing spikes generated by the multiple electronic neurons further comprises:
in response to increased spiking activity generated by the multiple electronic neurons, initiating a row arbitration process for the row token; and
in response to decreased spiking activity generated by the multiple electronic neurons:
circulating the row token only between one or more rows of the multiple rows that include one or more spiking electronic neurons; and
circulating the column token only between one or more columns of the multiple columns that include one or more spiking electronic neurons.
