Patent Description:
Deep neural networks (DNNs) form the basis for a large number of machine learning applications; starting with speech and image recognition, the number of applications that utilize DNNs has increased exponentially. Initially, hardware (deep-network) accelerators have been implemented on standard synchronous digital logic. The high level of parallelism of neural networks is not replicated in the (typically) serial and time-multiplexed processing in digital systems; conversely, computational primitives of hardware DNN emulator realized as analog computing nodes, where memory and processing elements are co-localized, offer significant improvements in terms of speed, size, and power consumption.

In biological neural network models each individual neuron communicates asynchronously and through sparse events, or spikes. In such event-based spiking neural network (SNN) only neurons who change the state generate spikes and may trigger signal processing in subsequent layers, consequently, saving computational resources. In particular, SNNs incorporate asynchronous distributed architectures that process sparse binary time series by means of local spike-driven computations, local or global feedback, and online learning. In analogy with biological neural processing systems, mixed-signal based SNN processors preserve two of their fundamental characteristics: the explicit representation of time and the explicit use of space, instantiating dedicated physical circuits for each neuron/synapse element.

In essence, such SNN implementations adopt a hybrid analog-digital signal representation, i.e. the trains of pulses/spikes transmit analog information in the timing of the events, which are converted back into analog signals in the dendrites (inputs) of the neuron. Information is encoded by patterns of activity occurring over populations of neurons, and the synapses (a connection to the subsequent neurons) can adapt their function depending on the pulses they receive, providing signal transmission energy-efficiency, and flexibility to store and recall information. SNNs can be directly applied to pattern recognition and sensor data fusion, relying on the principle that amplitude-domain, time-domain, and frequency domain features can be encoded into unique spatial- and temporal-coded spike sequences. The generation of these sequences relies on the use of one or more segments of spiking neurons.

The presently known methods for mapping SNNs onto a hardware substrate do not allow for great flexibility regarding e.g. the number of neurons used for a particular function within the SNN, the connectivity via the synapses, and the configuration of these neurons and synapses.

Furthermore, although the elementary operations required by an SNN are very efficiently realized by analog electronic circuitry, fabrication mismatch induces distortions in their functional properties. Especially at smaller process geometries, and lower operating currents, these circuits are increasingly susceptible to quantum effects and external noise, which effectively reduces signal-to-noise ratio and limits processing performance.

The impact of these non-idealities is increased in the case of large arrays where the driver, biasing, and neurons and synapse are shared by a greater number of devices, over longer interconnects.

Document <CIT> discloses a spiking neural network for classifying input signals. The spiking neural network comprises a plurality of spiking neurons, and a plurality of synaptic elements interconnecting the spiking neurons to form the network. Each synaptic element is adapted to receive a synaptic input signal and apply a weight to the synaptic input signal to generate a synaptic output signal, the synaptic elements being configurable to adjust the weight applied by each synaptic element. Furthermore, each of the spiking neurons is adapted to receive one or more of the synaptic output signals from one or more of the synaptic elements, and generate a spatio-temporal spike train output signal in response to the received one or more synaptic output signals. The spiking neural network is partitioned into multiple sub-networks, wherein each sub-network comprises a sub-set of the spiking neurons connected to receive synaptic output signals from a sub-set of the synaptic elements. The sub-network is adapted to generate a sub-network output pattern signal in response to a sub-network input pattern signal applied to the sub-network. Furthermore, each sub-network forms part of one or multiple cores in an array of cores, each core consisting of a programmable network of spiking neurons implemented in hardware or a combination of hardware and software. Communication between cores in the core array is arranged through a programmable interconnect structure.

Document <CIT> discloses reconfigurable neural network circuit which comprises an electronic synapse array including multiple synapses interconnecting a plurality of digital electronic neurons. Each neuron comprises an integrator that integrates input spikes and generates a signal when the integrated inputs exceed a threshold. The circuit further comprises a control module for reconfiguring the synapse array. The control module comprises a global final state machine that controls timing for operation of the circuit, and a priority encoder that allows spiking neurons to sequentially access the synapse array.

Document <CIT> discloses a neurosynaptic core which is adapted to apply a plurality of synaptic weights to a plurality of input activations to produce a plurality of output activations. Synaptic weights for one of a plurality of logical cores are read. The neurosynaptic core is configured to implement the one of the plurality of logical cores using the synaptic weights. At least one data block is provided as contiguous input activations to the neurosynaptic core. The input activations are processed by the neurosynaptic core to determine at least one contiguous block of output activations.

The neuro-synaptic segment disclosed in the present invention is organized as repeating arrays of synaptic circuits and neuron units. The present invention encompasses modalities of how these arrays are partitioned and mapped to segments, and we describe the methods and mechanisms on which the neurosynaptic array and accompanying connections can be reconfigured and segmented, subsequently offering greater flexibility in mapping SNNs onto hardware substrate. The mapping methodology incorporates a constraint driven partitioning and mapping of segments (in terms of the size of each segment (the number of neurons), their connectivity (topology and number of synapses), and their configuration (weights and number of layers)), where the chosen definition and bounded constraint is a performance metric linked with the designated function of the network of segments. This approach, detailed in the remainder of this disclosure, results in an effective means for realizing large networks of spiking neurons capable of pattern recognition of complex sensory signals.

According to a first aspect of the disclosure, a neurosynaptic array comprising a plurality of spiking neurons, and a plurality of synaptic elements interconnecting the spiking neurons to form a spiking neural network at least partly implemented in hardware is disclosed. Each synaptic element is arranged to receive a synaptic input signal from at least one of a multiple of inputs and is adapted to apply a weight to the synaptic input signal to generate a synaptic output signal, the synaptic elements being configurable to adjust the weight applied by each synaptic element. Furthermore, each of the spiking neurons is arranged to receive one or more of the synaptic output signals from one or more of the synaptic elements, and is adapted to generate a spatio-temporal spike train output signal in response to the received one or more synaptic output signals.

The neurosynaptic array comprises weight blocks and output blocks, each weight block comprising one or more of the synaptic elements, and each output block comprising one or more of the neurons and a neuron switching circuit. Each output block is electrically connectable to a subset of weight blocks via the neuron switching circuit and wherein the neuron switching circuit is configured to selectively electrically connect at least one synaptic element comprised within the subset of weight blocks to at least one neuron comprised within the respective output block, to obtain a partitioning of the neurosynaptic array into sets of neurons electrically connected to selected synaptic elements.

According to an embodiment of the first aspect of the disclosure, the subset of weight blocks to which an output block is electrically connected forms one or multiple columns within the array of synaptic elements and/or wherein the synaptic elements comprised in a particular weight block are provided within the same row of the neurosynaptic array and/or wherein each output block is connected to a column of weight blocks.

According to an embodiment of the first aspect of the disclosure, each of the neuron switching circuits comprises switching signal paths which comprise conducting wires implemented in a logic circuit of the neuron switching circuit, wherein the switching signal paths are configured to be switchable between different configurations, preferably by using transistor gates, wherein each configuration determines which at least one synaptic element comprised within the subset of weight blocks is electrically connected to which at least one neuron comprised within the output block.

According to an embodiment of the first aspect of the disclosure, the neuron switching circuit is configured to reconfigure the switching signal paths dynamically, preferably wherein the dynamic reconfiguration is based on a mapping methodology incorporating a constraint driven partitioning and segmentation of the neurosynaptic array, preferably wherein the segmentation is based on matching of the weight block and output block size to an input signal-to-noise ratio.

According to an embodiment of the first aspect of the disclosure, the segmentation of the neurosynaptic array is performed based on one or more learning rules, learning rates and/or (post-)plasticity mechanisms such that at least two of the neurosynaptic subarrays are distinct in terms of on the one or more learning rules, learning rates and/or (post-)plasticity mechanisms.

According to an embodiment of the first aspect of the disclosure, at least one of the weight blocks is organized as an interleaved structure, such as to facilitate the switching and/or combining of synaptic elements within the neurosynaptic array, and/or wherein for each output block the switching is independently controllable, such as to obtain a higher mapping flexibility, and/or wherein at least one of the output blocks are organized as an interleaved structure and/or wherein the neuron output of any of the output blocks is broadcasted to one or multiple neurosynaptic subarrays.

According to an embodiment of the first aspect of the disclosure, each of the neurons within one of the output blocks conducts passively as graded analog changes in electrical potential.

According to an embodiment of the first aspect of the disclosure, the neurosynaptic array is segmented into neurosynaptic subarrays which are separable and have their own requisite circuity, and/or are arranged to process, and be optimized for, a single modality.

According to an embodiment of the first aspect of the disclosure, both long-range and short-range interconnections exist between neurons of different neurosynaptic subarrays, and wherein denser connectivity exists in between proximal neurosynaptic subarrays than between more distant neurosynaptic subarrays.

According to an embodiment of the first aspect of the disclosure, at least one of the output blocks is controllable in that the accumulation period and/or the integration constant of a particular neuron within the at least one of the output blocks is controllable via control signals.

According to an embodiment of the first aspect of the disclosure, a neuron membrane potential of one of the neurons is implemented in the analog domain as a voltage across a capacitor or as a multibit variable stored in digital latches; or in the digital domain using CMOS logic circuits.

According to a second aspect of the present disclosure, a spiking neural processor is disclosed. The spiking neural processor comprises a data-to-spike encoder that encodes digital or analog data into spikes, a neurosynaptic array according to the first aspect of the disclosure, arranged to take the spikes outputted by the data-to spike encoder as input and arranged to output a spatio-temporal spike train as a result of the input, and a spike decoder arranged to decode the spatio-temporal spike trains originating from the neurosynaptic array.

According to a third aspect of the present disclosure, a method for configuring a neurosynaptic array is disclosed. The neurosynaptic array comprises a plurality of spiking neurons, and a plurality of synaptic elements interconnecting the spiking neurons to form the network at least partly implemented in hardware. Each synaptic element is adapted to receive a synaptic input signal from at least one of a multiple of inputs and apply a weight to the synaptic input signal to generate a synaptic output signal, the synaptic elements being configurable to adjust the weight applied by each synaptic element. Furthermore, each of the spiking neurons is adapted to receive one or more of the synaptic output signals from one or more of the synaptic elements, and generate a spatio-temporal spike train output signal in response to the received one or more synaptic output signals.

The method comprises dividing the neurosynaptic array into weight blocks and output blocks, each weight block comprising one or more of the synaptic elements, and each output block comprising one or more of the neurons and a neuron switching circuit, making each output block electrically connectable to a subset of weight blocks via the neuron switching circuit, and configuring the neuron switching circuit to selectively electrically connect at least one synaptic element comprised within the subset of weight blocks to at least one neuron comprised within the respective output block, to obtain a partitioning of the neurosynaptic array into sets of neurons electrically connected to selected synaptic elements.

According to an embodiment of the third aspect of the disclosure, the subset of weight blocks to which an output block is electrically connected forms one or more multiple columns within the array of synaptic elements and/or wherein the synaptic elements comprised in a particular weight block are provided within the same row of the neurosynaptic array.

According to an embodiment of the third aspect of the disclosure, each of the neuron switching circuits comprises switching signal paths which comprise conducting wires implemented in a logic circuit of the neuron switching circuit, wherein the switching signal paths are configured to be switchable between different configurations, preferably by using transistor gates, wherein each configuration determines which at least one synaptic element comprised within the subset of weight blocks is electrically connected to which at least one neuron comprised within the output block.

Embodiments will now be described, by way of example only, with reference to the accompanying schematic drawings in which corresponding reference symbols indicate corresponding parts, and in which:.

The figures are meant for illustrative purposes only, and do not serve as restriction of the scope or the protection as laid down by the claims.

Hereinafter, certain embodiments will be described in further detail. It should be appreciated, however, that these embodiments may not be construed as limiting the scope of protection for the present disclosure.

<FIG> shows a schematic representation of a square neurosynaptic array <NUM> with n<NUM> synapses and n neurons. The neurosynaptic array <NUM> comprises a synapse matrix <NUM> with synapses <NUM> and a neuron row <NUM> with neurons <NUM>. The synapses and neurons can be partly of fully implemented in hardware.

Each of the synapses <NUM> in the synapse matrix <NUM> has a certain weight wi,j attributed to it, where i denotes the ith row of the synapse matrix <NUM>, and j denotes thej th column of the synapse matrix <NUM>. Each row of the synapse matrix <NUM> is driven by a respective input <NUM>. The input <NUM> is an electrical signal and can be e.g. a voltage or current spike(train). Each column j of the synapse matrix <NUM> drives a respective output neuron <NUM> denoted Nj.

Each of the weights wi,j denote the strength or amplitude of the connection between the respective input <NUM> to the ith row of the synapse matrix <NUM> and the neuron Nj connected to the j th column of the synapse matrix <NUM>. In other words, if the weight wi,j increases, the connection is strengthened between the respective input <NUM> to the ith row and the neuron Nj connected to the j th column of the synapse matrix <NUM>.

When the membrane potential of a particular neuron Nj, which is related to the neuron's membrane electrical charge, reaches a specific value (called the 'threshold') the neuron fires. This electrical signal is represented either as a voltage or current spike and is send to another part of the SNN via a spike out line <NUM>.

The neuron row <NUM> can be controlled in that e.g. the accumulation period and/or the integration constant of a particular neuron(s) <NUM> can be controlled via control signals <NUM> (although only one control signals <NUM> is shown, there may be one or more separate control signals for each neuron). In this way, the reaction of the neurons <NUM> to the signals from the synapse matrix <NUM> can be controlled.

This square neurosynaptic array is an example of a spiking neural network hardware such as the one described in <CIT>, which utilizes configurable arrays of spiking neurons, synapses, connected using a programmable interconnect structure that facilitates the implementation of any arbitrary connection topology. There, an efficient neurosynaptic array was described using distributed components that is composed of n inputs driving n<NUM> synapses and n neurons, i.e. the system incorporates the presence of electronic synapses at the junctions of the array, while the periphery of the array includes rows of the neuron circuits, which mimic the action of the soma and axon hillock of biological neurons.

Such an array can be partitioned and mapped onto an array of segments, each of which contains a programmable network of spiking neurons.

<FIG> show schematic representations of organization of the reconfigurable neurosynaptic array comprising n<NUM> synaptic elements and n neurons. In <FIG> the primary organizational units are weight blocks <NUM> and output blocks <NUM> that collect <NUM> × m synaptic elements and m neurons, respectively.

<FIG> shows a single weight block <NUM> with input lines. To support a larger fan-in, the synaptic outputs of multiple synaptic elements spread over multiple synapse columns can be directed into a single neuron, effectively increasing the potential fan-in of a neuron to n × m unique inputs. This is achieved by collecting synapses into weight blocks. The organization of the reconfigurable neurosynaptic array describes a space of possible architectures controlled by the number m of synaptic elements within a weight block, with m ∈ [<NUM>, n], where maximum fan-in to a neuron is n × m, number of input ports is n × m, and number of neurons broadcast to via a single input spike is n/m. Increasing the number of Wn,n/m weight blocks provides higher synapse utilization when an input is not shared among all mapped neurons.

The number of synapse columns (columns of synaptic elements) in a weight block <NUM> is thus equal to m as shown in <FIG>, and n/m is the total number of weight blocks <NUM> in each row of the neurosynaptic array <NUM>, with n the total number of columns in the synapse matrix <NUM> (assuming a square array). A weight block can comprise multiple rows of synaptic elements as well as multiple columns of synaptic elements, however the number of rows in each weight block <NUM> is <NUM> in this example. Each weight block is indicated as Wij with i ∈ [<NUM>, n] and j ∈ [<NUM>, n/m].

Note that although <FIG> depicts a single input line for each row of weight blocks <NUM> for simplicity, each row of weight blocks <NUM> actually receives multiple inputs, e.g. a weight block <NUM> comprising m synaptic elements may have m inputs as shown in <FIG>, so that the weight blocks <NUM> in each row are connected to m input lines. Similarly, <FIG> depicts a single line for transmitting the outputs of each column of weight blocks <NUM> for simplicity. However, each column of weight blocks <NUM> actually generates multiple outputs, e.g. a weight block <NUM> comprising m synaptic elements may generate m outputs as shown in <FIG>, so that the weight blocks <NUM> in each column are connected to m output lines.

<FIG> shows a single output block <NUM>. The number of neurons in each output block <NUM> driven by a column of the weight blocks <NUM> is m. Each output block is indicated as Oi with i ∈ [<NUM>, n/m].

The square reconfigurable neurosynaptic array can thus be divided into n/m output blocks of size m, where m ≤ n. A separable neurosynaptic array is thus formed that has n unique input ports and n/m output blocks comprising m neurons.

The total number of unique inputs is thereby increased and may be used either to increase the fan-in to individual neurons and/or in order to provide more granularity in spike distribution. Feedback connections are gracefully scaled with the array for efficient mapping of recurrent and multi-layer networks. The number of weight blocks n/m per row thus designates internal partitioning of the n<NUM> neurosynaptic array; collectively, the number of unique inputs is increased to n × m. If m = n, each synapse has its own dedicated input port, while for m = <NUM>, the original n<NUM> array is obtained, hence an input is shared across all neurons.

In <FIG> the structure of a single weight block wi,j is represented for the organization of the reconfigurable neurosynaptic array.

Each of Wn,n/m weight blocks follow the array organization, i.e. a set of m inputs, denoted ini with i ∈ [<NUM>, n], is broadcast along a row of weight blocks, that is a single input <MAT> with x ∈ [<NUM>, m] is distributed to n/m neurons directly.

The xth synaptic element (with x ∈ [<NUM>, m]) of weight block wi,j (with i ∈ [<NUM>, n] and j ∈ [<NUM>, n/m])is denoted as <MAT>. A set of m inputs, denoted ini with i ∈ [<NUM>, n], is broadcast along the ith row of synaptic elements; that is, a single input <MAT> with x ∈ [<NUM>, m] in the set of m inputs is distributed to n/m neurons.

In <FIG> the structure of an output block Oj is shown for the organization of the reconfigurable neurosynaptic array.

A column of weight blocks <NUM> comprises multiple synapse columns connectable to an output block <NUM> and passes the outputs <NUM> from the synapse columns into a column/neuron decoder <NUM>. The column/neuron decoder <NUM> includes a switching circuit <NUM> for connecting the synapse column outputs <NUM> to one or more sets of neurons <NUM> of the output block <NUM>, the switching circuit <NUM> controlled by one or more select signals <NUM>. The switched signal that comes out of the column/neuron decoder <NUM> has been switched to one or more neurons <NUM> denoted by <MAT> with x ∈ [<NUM>, m] for the output block Oj with j ∈ [<NUM>, n/m], enabling connection of the synapse column outputs <NUM> to different combinations of neurons or sets of neurons.

The select signal <NUM> may be used to select how the column/neuron decoder <NUM> switches the synapse column outputs <NUM> from one set of neurons <NUM> to another set of neurons <NUM> of the output block <NUM>. One or more neuron control signals <NUM> may be used to determine the operating properties of the neuron sets <NUM>, or of individual neurons.

In <FIG> an exemplary embodiment is shown of possible configurations of the neuron switching circuit <NUM> in the column/neuron decoder <NUM> when four synapse columns <NUM> serve as input to the column/neuron decoder <NUM>. In this example, the column/neuron decoder <NUM> is arranged to provide each group of four adjacent synapse columns <NUM> with four possible output neuron configurations <NUM> as shown, i.e. the four synapse columns may have their outputs selectively directed to four different sets of neurons <NUM> of the output block <NUM>. The column/neuron decoder <NUM> can be connected with different numbers of synapse columns <NUM> and output neurons <NUM>, and the number of synapse columns and output neurons can be different, and the number and arrangement of output neuron configurations <NUM> can be different.

The four configurations <NUM> of the neuron switching circuit <NUM> are discussed next. In a first configuration, the four synapse columns <NUM> serve as respective input to four output neurons via switching signal paths <NUM>. In a second configuration, two pairs out of the four synapse columns <NUM> serve as input to two sets of output neurons via switching signal paths <NUM>, i.e. synapse columns i<NUM> and i<NUM> serve output neuron o<NUM> and synapse columns i<NUM> and i<NUM> serve output neuron o<NUM>. In a third configuration, three synapse columns i<NUM>, i<NUM> and i<NUM> serve one output neuron set o<NUM>, and the remaining synapse column i<NUM> serves output neuron o<NUM> via switching signal paths <NUM>. In the fourth configuration, all four synapse columns serve a single output neuron set o<NUM> via switching signal paths <NUM>.

The switching signal paths <NUM> may comprise conducting paths implemented in the logic circuit of the switching circuit <NUM>, and they can be switched between different configurations in a particular implementation by e.g. configurable or fixed transistor gates. The particular connection of the switching signal paths <NUM> can be set at the initial manufacture of the neurosynaptic array, e.g. in the factory, and/or can be set on the fly via programming or other configuration of the column/neuron decoder <NUM> and/or neuron switching circuit <NUM>. The neuron switching circuit <NUM> can e.g. reconfigure the switching signal paths <NUM> dynamically during operation of the neurosynaptic array. As mentioned, one or more select signals <NUM> can be used to select how the column/neuron decoder <NUM> switches from one set of neurons <NUM> to another set of neurons <NUM>. The dynamic reconfiguration can be based on a certain mapping methodology incorporating a constraint driven partitioning and mapping of segments, of which exemplary embodiments will be described further below. For example, the dynamic reconfiguration can be done based on the signal-to-noise ratio S/N of a particular segment in the neurosynaptic array. This will be explained further below.

The neuron switching circuit <NUM> thus determines which synapse columns <NUM> send outputs to which output neuron sets <NUM>. In other words, the neuron switching circuit <NUM> thus implements - as a result of the currently active configuration of the neuron switching circuit <NUM> - a particular segmentation of the neurosynaptic array.

To support larger fan-in, the weight blocks Wn,n/m can be organized as an interleaved structure to facilitate the switching/combining of m adjacent synapse columns. The configuration for each set of n/m neuron switches can be independently controlled for more mapping flexibility. For latency-sensitive routing of recurrent spikes or inter-layer connections, several options can be considered, for example offering a direct path between output neuron i and selected inputs, utilizing interleaved organization of neuron groups or sets, such that an input can be quickly routed to any group, providing flexible injection of spikes into the array, where the neuron output can be broadcast to individual or multiple groups automatically.

Segmenting the array enables uniformity in terms of robustness and reliability of the performance, i.e. segmentation allows (i) a robust power distribution (vertical wide metal busses (for lower resistance) can be placed at the synapse row boundaries to alleviate IR drop concerns), (ii) if an interface for access to weight retention circuits requires a clock, segmentation creates hierarchy needed for a clock rebuffing strategy, (iii) segmentation improves signal integrity - instead of a single pre-synapse with large drive strength, segmentation allows for a distributed approach, since signals can be rebuffed/amplified after each segment, (iv) segmentation increases observability within the array and simplifies verification processes.

<FIG> schematically shows how to divide an exemplary reconfigurable array (as e.g. shown in <FIG>) into multiple segments/subarrays.

A first subarray <NUM> comprises weight blocks Wij with i ∈ [<NUM>, n] and j ∈ [<NUM>, x]. A second subarray <NUM> comprises weight blocks Wij with i ∈ [<NUM>, n] and j ∈ [x + <NUM>, y]. A final subarray <NUM> comprises weight blocks Wij with i ∈ [<NUM>, n] and j ∈ [z + <NUM>, n/m]. Here, x, y, z are natural numbers and x ≤ y ≤ z ≤ n/m. More subarrays can exist. A number of n input lines <NUM> feed the different weight blocks. Each of the weight blocks wi,j is connected to an output block Oj. Each subarray can comprise a number of output blocks segmented as output blocks <NUM>, <NUM>, <NUM> of subarrays <NUM>, <NUM>, <NUM> respectively. When the membrane potential of a particular neuron Nj (which is related to the neuron's membrane electrical charge) reaches a specific value, the neuron fires. This electrical signal is represented either as a voltage or current spike and is send to another part of the SNN via a spike out line <NUM>.

Each of the output blocks can be controlled in that e.g. the accumulation period and/or the integration constant of a particular neuron(s) can be controlled via control signals <NUM>. In this way, the reaction of the neurons to the signals from the weight blocks in the subarrays <NUM>, <NUM>, <NUM> can be controlled.

As mentioned before, the elementary operations required by an SNN are very efficiently realized by analog electronic circuitry, however, fabrication mismatch induces distortions in their functional properties. Especially at smaller process geometries, and lower operating currents, these circuits are increasingly susceptible to quantum effects and external noise, which effectively reduces signal-to-noise ratio and limits processing performance. The impact of these non-idealities is increased in the case of large arrays where the driver, biasing, and neurons and synapse are shared by a greater number of devices, over longer interconnects. Partitioning large arrays into smaller segments (subarrays), each with their own requisite circuitry, enables performance uniformity and mitigates these non-idealities if the mapping methodology incorporates a constraint driven partitioning and mapping of segments.

In an embodiment, the segments could be organized based on characteristics of the target signal processing function (for example gain, filtering, multiplication, addition), or frequency/time constants of operation.

In another embodiment, different regions/segments of the neurosynaptic array can be configured based on target application case, number of channels in pre-processing signal chain/path, frequency band of interest, complexity and characteristics of the feature set, or target signal-to-noise ratio of the system.

In another embodiment, segments could be organized based on biophysically/chemically-inspired definitions (for example spatio-temporal (long- and shortterm) evaluation, aging artifacts, brain communication costs and regions/layers).

In another embodiment, segments can be defined based on learning rule, learning rate and associated cost-based mechanism or (post-) plasticity mechanisms, or based on predefined Figure of Merit performance-based definitions.

In another embodiment, segments within neurosynaptic array could be configured based on homeostatic regulation (local and global) requirements, or error propagation/calibration capabilities and mechanism limitations, or limiting mechanism such as excitatory/inhibitory ratio, cross-talk, or network saturation mechanism.

<FIG> schematically show an exemplary organization of the reconfigurable neuro-synaptic array <NUM>: in <FIG> n<NUM> synapses <NUM> and n neurons <NUM>, in <FIG> dividing the array <NUM> in <FIG> into two segments, each with n<NUM>/<NUM> synapses and <NUM> × n neurons, in <FIG> dividing an array <NUM> into four segments, each with n<NUM>/<NUM> synapses <NUM> and <NUM> × n neurons <NUM>, and in <FIG> dividing an array <NUM> into eight segments, each with n<NUM>/<NUM> synapses <NUM> and <NUM> × n neurons <NUM>.

The neurosynaptic segments can be composed of n inputs driving n<NUM> synapses and n neurons (as in <FIG>, <FIG>). By reducing dendritic/array distances, complexes and compartments shorten delays and lower noise, i.e. to reduce power consumption and increase neuron count per synaptic connection for the same area, the array in <FIG> can be subdivided into two segments (<FIG>), each with n<NUM>/<NUM> synapses and n neurons; hence, the total synaptic account across two segments remains the same, while the number of neurons doubles. Similarly, dividing the array in <FIG> into four segments (<FIG>), each with n<NUM>/<NUM> synapses can quadruple total neuron count, or into eight segments (<FIG>), each with n<NUM>/<NUM> synapses can increase neuron count by eight times, respectively.

An array's information capacity depends on signal (S) to noise (N) ratio S/N and increases as log<NUM>(<NUM> + S/N). However, the energy cost of passing the signal through the array increases as <MAT>. Thus, as <MAT> increases, the array's efficiency falls, i.e. all components try to transmit the same signal, although information per unit fixed cost rises. An optimum occurs where these two competing tendencies balance. Consequently, a higher ratio of fixed cost to signalling cost gives a larger optimum array.

The optimum array size also depends on the costs in other parts of the circuit in view of distributing allocated S/N among the components to maximize performance across the entire system.

<FIG> shows an exemplary representation of an organization of the reconfigurable neuro-synaptic array <NUM>: each of the segments (subarrays) <NUM> can have a different synaptic count per neuron. On a segment <NUM> level, to benefit from increased accuracy of sensor outputs and/or increased discriminating feature selection and extraction capabilities, specialized segments, each devoted to processing a single modality, can be defined.

Each of the segments can have a different synaptic count per neuron, where m = [<NUM>,. n], defined according to the description of this invention.

The S/N of an input profoundly affects the array's optimum size since input noise imposes a boundary to be approached by the array's S/N. This reduces the efficacy of a large array at low input S/N and the size of the most efficient array, i.e. because an input with low S/N contains less information, and a smaller array has a lower information capacity, the optimum array matches its capacity to its input. The matching of array size to input S/N follows the principle of symmorphosis, to match capacities within a system in order to obtain an optimal solution.

To economize on neuron numbers (but prevent one component from doing multiple tasks sub-optimally) within a segment, computation capabilities of circuit(s) within a neuron should be enhanced, i.e. devote more neuroreceptors (AMPA, NMDA, GABA) or neuron conductance-based (Na, Ca, K) definitions to the particular modality of the neuron and thus, improve the sensitivity and signal-to-noise ratio of the neurons. Such neurons could use internal (neuroreceptors or conductance-based) circuits to perform functions, which usually require a circuit of several neurons.

A neuromodulator can be broadcasted widely yet still act locally and specifically, affecting only neurons with an appropriate neuroreceptor. A neuromodulator's reach is further enhanced because its receptor diversifies into multiple subtypes that couple to different intra-segment signalling networks. Consequently, a small, targeted adjustment can retune and reconfigure a whole network, allowing efficient processing modularity, and task rescheduling if other signal processing functionality is required. Neuroreceptors alter the voltage dependence of currents, and subsequently affect the shape of the activation and inactivation curves.

Each receptor represents a multi-(trans)conductance channel, which models associated nonlinear characteristics. NMDA receptors can provide activity-dependent modifications of synaptic weight, while AMPA receptors can enable a fast synaptic current to drive the soma. Fast receptor modifications can act as a control mechanism for activity-dependent changes in synaptic efficacy. If groups of dendritic spikes (bursts) are sufficient to exceed the threshold of a particular neuron, the axon will generate action potentials; ensuing spike is fed-back into the dendrite, and together with soma signals multiplied and added to NMDA receptor signals to, subsequently, generate the weight control.

In general, the feedback signals can be a subset of those available and may act on a subset of the systems parameters (i.e. preserving specific intrinsic properties when perturbations are compensated).

When network perturbations occur, neuronal computational elements generate a spike based on the perturbation's sign, intensity and phase. If a resonance response of a neuronal cluster is distorted or altered, each neuron adjusts the phases of spiking. Subsequently, neuronal computation elements can perform time-dependent computations.

At sufficiently high levels of heterogeneity (e.g. increased heterogeneities in neurosynaptic parameters like integrator capacitance, firing threshold, refractory period), the network demonstrates a spatially disordered pattern of neural activity. If network activity profiles are narrow, the need for homogeneity in the distribution of spatial stimuli encoded by the network is increased.

<FIG> show an exemplary representation of a spiking neural processor <NUM> incorporating one or more data-to-spike encoders <NUM>, multi-segmented analog/mixed-signal neurosynaptic array <NUM>, and spike decoders <NUM>.

Data is used as input for input modules such as an AER <NUM>, interfaces such as e.g. an SPI <NUM>, I<NUM>C <NUM> and/or I/O (input/output) <NUM> and/or a pre-processor DSP/CPU <NUM>. The output of these input modules is send to one or more data-to-spike encoders <NUM>. The one or more data-to-spike encoders <NUM> encode the data into spikes that are used as input for the analog/mixed-signal neurosynaptic array <NUM>.

The spikes that are outputted by the neurosynaptic array <NUM> can be decoded by a spike decoder <NUM>. A pattern lookup module <NUM> can be used to interpret particular patterns within the spike output signal. The decoded spikes can then be send to one or more output interfaces and/or interrupt logic <NUM>. A configuration and control module <NUM> allows for configuration and control of the different parts of the spiking neural processor, e.g. setting weights and configuration parameters of the synaptic elements and neurons within the neurosynaptic array <NUM>.

The neurosynaptic array <NUM> can be segmented according to any of the above mentioned embodiments. Neurons within a particular segment can conduct passively, as graded (analog) changes in electrical potential, and hence rely solely on analogue computations, which are direct and energy efficient. The brief, sharp, energy-intensive action potentials are reserved for larger-distance signalling, i.e. the interconnect within multi-segment analog/mixed-signal neurosynaptic array follows paradigm of the biological brain, i.e. dense connectivity in/between proximal segments, and less dense between distant segments. Thus, both long-range interconnects <NUM> and short-range interconnects <NUM> can exist between the neurons within the segmented neurosynaptic array <NUM>.

<FIG> shows an exemplary representation of an interconnect structure.

Again the long-range interconnect <NUM> and short range interconnect <NUM> can be present between the different segments <NUM> within the neurosynaptic array <NUM>.

Such (dual) interconnect structure is governed with distinctive design objectives: for short-range communication <NUM> low-latency between proximal segments is prioritized (obtained with high connection density), while with long-range communication <NUM> high-throughput between distant segments is targeted. Although the segment-to-segment interconnect fabric can be implemented with digital CMOS logic, the neurosynaptic arrays itself can be implemented by using for example analog/mixed-signal, digital, or non-volatile memory technologies.

In its simplest form, the neuron membrane potential can be implemented in the analog domain as a voltage across a capacitor or as a multibit variable stored in digital latches. Alternatively, digital neurons can be realized using CMOS logic circuits, such as adders, multipliers, and counters. From a circuit design point of view, the synapses modulate the input spikes and transform them into a charge that consequently creates postsynaptic currents that are integrated at the membrane capacitance of the postsynaptic neuron. The implementation of silicon synapses typically follows the mixed-signal methodology.

Spatiotemporal coordination of different types of synaptic transmission is fundamental for the inference of sensory signals and associated learning performance. For strong input the network organizes itself into a dynamic state where neural firing is primarily driven by the input fluctuations, resembling an asynchronous-irregular state, i.e. temporal and pairwise spike count cross-correlations approach zero. Heterosynaptic depression among all input synapses generates stable activity sequences within network.

The neurons generate time-locked patterns; due to the interaction between conductance delay (and plasticity rules), the network utilize a set of neuronal groups/segments, which form reproducible and precise firing sequences. As the conductance is increased (consequently, resulting in a net excitation to the network), the firing rates can increase and can become more uniform with a lower coefficient of variation. The network can generate spike-trains with regular timing relationships (inter-burst intervals and duty cycles) in different segments.

Entrainment of low-frequency synchronized behaviour includes a reorganization of phase so that the optimal, i.e. the most excitable, phase aligns with temporal characteristics of the events in ongoing input stimulus. The sequence of synaptic current (i.e. outward, inward) decreases temporal jitter in the generation of action potentials in individual neurons, and, consequently, creates a network with increased controllability of activity.

The large discrepancy in energy-efficiency and cognitive performance of biological nervous systems and conventional computing is profoundly exemplified with tasks related to real-time interactions with the physical surroundings, in particular in presence of uncontrolled or noisy sensory input. The neuromorphic event-based neuron network, however, due to ability to learn by example, parallelism of the operation, associative memory, multifactorial optimization, and extensibility, is an inherent choice for compact and low power cognitive systems that learn and adapt to the changes in the statistics of the complex sensory signals.

Claim 1:
A neurosynaptic array (<NUM>) comprising a plurality of spiking neurons, and a plurality of synaptic elements interconnecting the spiking neurons to form a spiking neural network, wherein the synaptic elements and spiking neurons are partly or fully implemented in hardware;
wherein each synaptic element is arranged to receive a synaptic input signal from at least one of a multiple of inputs and is adapted to apply a weight to the synaptic input signal to generate a synaptic output signal, the synaptic elements being configurable to adjust the weight applied by each synaptic element;
wherein each of the spiking neurons is arranged to receive one or more of the synaptic output signals from one or more of the synaptic elements, and is adapted to generate a spatio-temporal spike train output signal in response to the received one or more synaptic output signals; and wherein
the neurosynaptic array (<NUM>) comprises weight blocks (<NUM>) and output blocks (<NUM>), each weight block (<NUM>) comprising one or more of the synaptic elements, and each output block (<NUM>) comprising one or more of the neurons and a neuron switching circuit (<NUM>);
wherein each weight block is comprised in a column of weight blocks of the neurosynaptic array;
wherein each output block (<NUM>) is electrically connectable to a subset of weight blocks (<NUM>), the subset of weight blocks (<NUM>) formed by one or more columns of weight blocks, via the neuron switching circuit (<NUM>) by connecting an output of the one or more columns of weights blocks to one or more sets of neurons of the output block; and wherein the neuron switching circuit (<NUM>) is configured to selectively electrically connect at least one synaptic element comprised within the subset of weight blocks (<NUM>) to at least one neuron comprised within the respective output block (<NUM>), to obtain a partitioning of the neurosynaptic array (<NUM>) into sets of neurons electrically connected to selected synaptic elements.