DE112017000855B4 - Energy-efficient temporally multiplexed neurosynaptic core for implementing neural networks - Google Patents

Energy-efficient temporally multiplexed neurosynaptic core for implementing neural networks Download PDF

Info

Publication number
DE112017000855B4
DE112017000855B4 DE112017000855.7T DE112017000855T DE112017000855B4 DE 112017000855 B4 DE112017000855 B4 DE 112017000855B4 DE 112017000855 T DE112017000855 T DE 112017000855T DE 112017000855 B4 DE112017000855 B4 DE 112017000855B4
Authority
DE
Germany
Prior art keywords
neuron
electronic
core
sub
sets
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE112017000855.7T
Other languages
German (de)
Other versions
DE112017000855T5 (en
Inventor
Filipp Akopyan
Rodrigo Alvarez-Icaza
John Vernon Arthur
Andrew Stephen Cassidy
Steven Kyle Esser
Bryan Lawrence Jackson
Paul Merolla
Dharmendra Shantilal Modha
Jun Sawada
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112017000855T5 publication Critical patent/DE112017000855T5/en
Application granted granted Critical
Publication of DE112017000855B4 publication Critical patent/DE112017000855B4/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Logic Circuits (AREA)
  • Image Processing (AREA)
  • Semiconductor Memories (AREA)
  • Memory System (AREA)
  • Complex Calculations (AREA)

Abstract

Gemultiplexter neuronaler Kernschaltkreis, aufweisend:T Sätze von elektronischen Neuronen, wobei T ein ganzzahliger Multiplexing-Faktor und als Wert gleich vier ist;T Sätze von elektronischen Axonen, wobei jeder Satz der T Sätze von elektronischen Axonen einem der T Sätze von elektronischen Neuronen entspricht; undein synaptisches Verbindungsnetzwerk, das eine Mehrzahl von elektronischen Synapsen aufweist, die jeweils ein einzelnes elektronisches Axon mit einem einzelnen elektronischen Neuron verbinden, wobei das Verbindungsnetzwerk jeden der T Sätze von elektronischen Axonen mit seinem entsprechenden Satz von elektronischen Neuronen verbindet; undeinen Satz von Axonpuffern, die jeweils in T Partitionen unterteilt sind, wobei jede der T Partitionen mit einem von T Unterzeitschritten eines Zeitschrittes verbunden ist, und wobei jeder der T Unterzeitschritte aufweist:einen gemeinsamen Satz von Neuronenparametern, wobei die Neuronenparameter eine Spike-Schwelle, eine Leckrate und Axontyp-Gewichte aufweisen;einen gemeinsamen Satz von Neuronen-Zielorten, die auf ein Zielaxon für jedes der elektronischen Neuronen hinweisen, undeinen anderen Satz von Neuronenmembranpotenzialen als die anderen Unterzeitschritte, wobei jeder Satz von Neuronenmembranpotenzialen ein Membranpotenzial V aufweist, das ansteigt, wenn Eingaben von quellenerregenden Neuronen empfangen werden, und das abfällt, wenn Eingaben von quellenhemmenden Neuronen empfangen werden,wobei die gemultiplexte neuronale Kernschaltung für die T Unterzeitschritte des Zeitschrittes zeitmultiplexiert ist, wobei synaptische Gewichte und die Neuronenparameter über die T Unterzeitschritte gemeinsam genutzt werden, undwobei jeder der T Unterzeitschritte einem anderen Satz von Neuronen-Zielorten und einem anderen Satz von Neuronen-Membranpotentialen als die anderen Sub-Zeitschritte zugeordnet ist, so dass die multiplexierte neuronale Kernschaltung während eines Zeitschrittes als vier Kerne arbeitet, wobei jeder der vier Kerne seine eigenen einzigartigen Neuronen-Zielorte und NeuronenMembranpotentiale hat.A multiplexed core neural circuit comprising:T sets of electronic neurons, where T is an integer multiplexing factor and is equal to four;T sets of electronic axons, each set of the T sets of electronic axons corresponding to one of the T sets of electronic neurons; anda synaptic interconnection network comprising a plurality of electronic synapses each connecting a single electronic axon to a single electronic neuron, the interconnection network connecting each of the T sets of electronic axons to its corresponding set of electronic neurons; anda set of axon buffers each divided into T partitions, each of the T partitions associated with one of T sub-time steps of a time step, and each of the T sub-time steps having:a common set of neuron parameters, the neuron parameters comprising a spike threshold, a leak rate, and axon type weights;a common set of neuron target locations indicative of a target axon for each of the electronic neurons, anda different set of neuron membrane potentials than the other sub-time steps, each set of neuron membrane potentials having a membrane potential V that increases when receiving inputs from source excitatory neurons and that decreases when receiving inputs from source inhibitory neurons,wherein the multiplexed core neural circuit is time-multiplexed for the T sub-time steps of the time step, with synaptic weights and the neuron parameters being shared across the T sub-time steps, andwherein each of the T Sub-time steps are assigned to a different set of neuron target locations and a different set of neuron membrane potentials than the other sub-time steps, so that the multiplexed neural core circuit operates as four cores during a time step, with each of the four cores having its own unique neuron target locations and neuron membrane potentials.

Description

HINTERGRUNDBACKGROUND

Die vorliegende Erfindung betrifft neurosynaptische Netzwerke, und insbesondere betrifft diese Erfindung zeitlich gemultiplexte neurosynaptische Kerne (time-division multiplexed neurosynaptic cores).The present invention relates to neurosynaptic networks, and more particularly, this invention relates to time-division multiplexed neurosynaptic cores.

Neurosynaptische Systeme auf der Grundlage von Kernen bestehen aus mehreren neurosynaptischen Kernen, wobei die neurosynaptischen Kerne so konfiguriert und verbunden sind, dass ein neurosynaptisches Netzwerk bilden. Ein einzelner neurosynaptischer Chip enthält eine feststehende Anzahl von neurosynaptischen Kernen. Beispielsweise kann ein einzelner neurosynaptischer Chip Hunderte oder Tausende von Kernen enthalten. Es können Chips mit unterschiedlicher Größe, d.h. Anzahl von Kernen, hergestellt werden. Zum Implementieren eines neurosynaptischen Systems sind ein oder mehrere Chips erforderlich. Da das Herstellen neurosynaptischer Chips kostspielig ist, ist es wünschenswert, die Anzahl von Chips, die von einem gegebenen System verwendet werden, so gering wie möglich zu halten.Core-based neurosynaptic systems consist of multiple neurosynaptic cores, where the neurosynaptic cores are configured and connected to form a neurosynaptic network. A single neurosynaptic chip contains a fixed number of neurosynaptic cores. For example, a single neurosynaptic chip may contain hundreds or thousands of cores. Chips of different sizes, i.e., number of cores, can be manufactured. One or more chips are required to implement a neurosynaptic system. Since manufacturing neurosynaptic chips is expensive, it is desirable to minimize the number of chips used by a given system.

In einigen Umgebungen kann eine große Anzahl von neurosynaptischen Kernen so programmiert werden, dass sie die gleiche Funktion ausführen. Darüber hinaus kann eine gegebene Konfiguration von neurosynaptischen Kernen mehrere Male kachelartig auf einem Chip angeordnet werden. Mit anderen Worten, eine Anordnung oder Verschaltung zwischen Kernen kann auf einem oder mehreren Chips mehrere Male wiederholt werden, so dass eine erste Gruppe von Kernen die gleiche(n) Aufgabe(n) wie eine zweite Gruppe von Kernen ausführt.In some environments, a large number of neurosynaptic cores can be programmed to perform the same function. Moreover, a given configuration of neurosynaptic cores can be tiled multiple times on a chip. In other words, an arrangement or interconnection between cores can be repeated multiple times on one or more chips, so that a first group of cores performs the same task(s) as a second group of cores.

In diesem Kontext wurden bereits einige Dokumente veröffentlicht: Das Dokument US 2014 / 0 180 987 A1 beschreibt auf einer Zeitbasis multiplexte neurosynaptische Module mit einer impliziten Speicheradressierung für eine Implementierung eines neuronalen Netzwerkes. Das Dokument CN 1 05 095 967 A beschreibt einen neuromorphen Netzwerkkern für eine Simulation der Datenverarbeitung einer biologischen Synapse-Neuron-Gehirnsstruktur. Dabei werden mehrere Lagen von Rechenkernen und Zwischenebenenverbindungen verwendet. Das Dokument US 2014 /0 222 740 A1 beschreibt eine Konsolidierung von mehreren neuosynaptischen Kernen in einen Speicher. Weiterhin beschreibt das Dokument US 2015 / 0 324 684 A1 neuromorphische Hardware für neuronale Berechnungen und nicht-neuronale Berechnungen. Dabei wird auch eine Verzögerungsschaltung eingesetzt, um neuronale Ausgangswerte zu erzeugen. Weiterhin beschreibt das Dokument US 8 977 578 B1 ein Zeit-basierendes multiplextes neuromorphes Netzwerk, welches eine Untermenge an Verbindungen zu unterschiedlichen Zeitintervallen nutzt. Ergänzend beschreibt das Dokument von MINKOVICH, Kirill [et al.]: „Programming time-multiplexed reconfigurable hardware using a scalable neuromorphic compiler“ (erschienen in IEEE transactions on neural networks and learning systems, 2012, Vol. 23, No. 6, S. 889-901 ) wie Hardware für neuromorphes Computing konfiguriert werden kann, um eine bessere Simulation von biologischen neuronalen Netzen zu simulieren. Außerdem beschreibt das Dokument von CRUZ-ALBRECHT, Jose M.; DEROSIER, Timothy; SRINIVASA, Narayan: „A scalable neural chip with synaptic electronics using CMOS integrated memristors (erschienen in Nanotechnology, 2013, Vol. 24, No. 38 ) einen skalierbaren Neurochip mit synaptischer Elektronik und der Nutzung von integrierten CMOS-Memristoren. Und schließlich beschreibt das Dokument von MEROLLA, Paul A. [et al.]: „A million spiking-neuron integrated circuit with a scalable communication network and interface - Supplementary Materials” (erschienen in Science, 2014, Vol. 345, No. 6197 ) einen neuromorphischen Kern, der sich aus einer Mehrzahl von Kerneinheiten der TrueNorth-Architektur mit jeweils 256 Neuronen für Berechnungen und 256 Axonen für die Kommunikation und 256 * 256 Synapsen als Speicher zusammensetzt.In this context, several documents have already been published: The document US 2014 / 0 180 987 A1 describes time-based multiplexed neurosynaptic modules with implicit memory addressing for a neural network implementation. The document CN1 05 095 967 A describes a neuromorphic network core for simulating the data processing of a biological synapse-neuron-brain structure. It uses multiple layers of computing cores and inter-level connections. The document US 2014 /0 222 740 A1 describes a consolidation of several neurosynaptic nuclei into one memory. The document also describes US 2015 / 0 324 684 A1 neuromorphic hardware for neural and non-neural computations. A delay circuit is also used to generate neural output values. The document also describes US 8 977 578 B1 a time-based multiplexed neuromorphic network that uses a subset of connections at different time intervals. In addition, the paper by MINKOVICH, Kirill [et al.]: “Programming time-multiplexed reconfigurable hardware using a scalable neuromorphic compiler” (published in IEEE transactions on neural networks and learning systems, 2012, Vol. 23, No. 6, pp. 889-901 ) how hardware can be configured for neuromorphic computing to better simulate biological neural networks. The paper also describes CRUZ-ALBRECHT, Jose M.; DEROSIER, Timothy; SRINIVASA, Narayan: “A scalable neural chip with synaptic electronics using CMOS integrated memristors (published in Nanotechnology, 2013, Vol. 24, No. 38 ) a scalable neurochip with synaptic electronics and the use of integrated CMOS memristors. And finally, the document by MEROLLA, Paul A. [et al.]: “A million spiking-neuron integrated circuit with a scalable communication network and interface - Supplementary Materials” (published in Science, 2014, Vol. 345, No. 6197 ) a neuromorphic core, which consists of a plurality of core units of the TrueNorth architecture, each with 256 neurons for calculations and 256 axons for communication and 256 * 256 synapses for memory.

Trotzdem gibt es auf dem Gebiet des recht jungen technischen Gebietes von neuromorphic Computing weiteres Optimierungspotenzial, um die Leistungsfähigkeit derartiger Schaltkreise zu verbessern.Nevertheless, there is still potential for further optimization in the relatively young technical field of neuromorphic computing to improve the performance of such circuits.

KURZDARSTELLUNGBRIEF DESCRIPTION

Diese Aufgabe wird durch die Gegenstände der unabhängigen Ansprüche gelöst. Weitere Ausgestaltungen ergeben sich aus den jeweils abhängigen Ansprüchen.This problem is solved by the subject matter of the independent claims. Further embodiments arise from the respective dependent claims.

Ein gemultiplexter neuronaler Kernschaltkreis (multiplexed neural core circuit) gemäß einer Ausführungsform weist bei einem ganzzahligen Multiplexfaktor T, der größer als null ist, T Sätze von elektronischen Neuronen, T Sätze von elektronischen Axonen, wobei jeder Satz der T Sätze von elektronischen Axonen einem der T Sätze von elektronischen Neuronen entspricht, und ein synaptisches Verbindungsnetzwerk mit einer Mehrzahl von elektronischen Synapsen auf, die jeweils ein einzelnes elektronisches Axon mit einem einzelnen elektronischen Neuron verbinden, wobei das Verbindungsnetzwerk jeden Satz der T Sätze von elektronischen Axonen mit seinem entsprechenden Satz von elektronischen Neuronen verbindet.A multiplexed neural core circuit according to an embodiment comprises, at an integer multiplexing factor T greater than zero, T sets of electronic neurons, T sets of electronic axons, each set of the T sets of electronic axons corresponding to one of the T sets of electronic neurons, and a synaptic interconnection network having a plurality of electronic synapses each connecting a single electronic axon to a single electronic neuron, the interconnection network connecting each set of the T sets of electronic axons to its corresponding set of electronic neurons.

Gemäß einer anderen Ausführungsform weist ein von einem Computer implementiertes Verfahren zum Multiplexen eines neuronalen Kernschaltkreises bei einem ganzzahligen Multiplexfaktor T, der größer als null ist, Konfigurieren von T Sätzen von elektronischen Neuronen, Konfigurieren von T Sätzen von elektronischen Axonen, wobei jeder Satz der T Sätze von elektronischen Axonen einem der T Sätze von elektronischen Neuronen entspricht, und Konfigurieren eines synaptischen Verbindungsnetzwerkes auf, das eine Mehrzahl von elektronischen Synapsen aufweist, die jeweils ein einzelnes elektronisches Axon mit einem einzelnen elektronischen Neuron verbinden, wobei das Verbindungsnetzwerk jeden Satz der T Sätze von elektronischen Axonen mit seinem entsprechenden Satz von elektronischen Neuronen verbindet.According to another embodiment, a computer-implemented method for multiplexing a core neural circuit at an integer multiplexing factor T greater than zero comprises configuring T sets of electronic neurons, configuring T sets of electronic axons, each set of the T sets of electronic axons corresponding to one of the T sets of electronic neurons, and configuring a synaptic interconnection network comprising a plurality of electronic synapses each connecting a single electronic axon to a single electronic neuron, the interconnection network connecting each set of the T sets of electronic axons to its corresponding set of electronic neurons.

Gemäß noch einer anderen Ausführungsform weist ein neurosynaptisches System einen neurosynaptischen Chip, ein neurosynaptisches Einzelkern-Modul (single-core neurosynaptic module) als Komponente auf einem Chip oder ein neurosynaptisches Mehrkern-Modul (multi-core neurosynaptic module) als Komponente auf einem Chip auf, das eine Mehrzahl von gemultiplexten neuronalen Kernschaltkreisen beinhaltet, die über ein chipintegriertes Netzwerk miteinander verbunden sind, wobei jeder aus der Mehrzahl von gemultiplexten neuronalen Kernschaltkreisen bei einem ganzzahligen Multiplexfaktor T, der größer als null ist, T Sätze von elektronischen Neuronen, T Sätze von elektronischen Axonen, wobei jeder Satz der T Sätze von elektronischen Axonen einem der T Sätze von elektronischen Neuronen entspricht, und ein synaptisches Verbindungsnetzwerk aufweist, das eine Mehrzahl von elektronischen Synapsen aufweist, die jeweils ein einzelnes elektronisches Axon mit einem einzelnen elektronischen Neuron verbinden, wobei das Verbindungsnetzwerk jeden Satz der T Sätze von elektronischen Axonen mit seinem entsprechenden Satz von elektronischen Neuronen verbindet.According to yet another embodiment, a neurosynaptic system comprises a neurosynaptic chip, a single-core neurosynaptic module as a component on a chip, or a multi-core neurosynaptic module as a component on a chip including a plurality of multiplexed neural core circuits interconnected via an on-chip network, each of the plurality of multiplexed neural core circuits comprising, at an integer multiplexing factor T greater than zero, T sets of electronic neurons, T sets of electronic axons, each set of the T sets of electronic axons corresponding to one of the T sets of electronic neurons, and a synaptic interconnection network comprising a plurality of electronic synapses each connecting a single electronic axon to a single electronic neuron, the interconnection network connecting each set of the T sets of electronic axons to its corresponding set of electronic neurons.

Andere Aspekte und Ausführungsformen der vorliegenden Erfindung ergeben sich aus der folgenden ausführlichen Beschreibung, die in Verbindung mit den Zeichnungen beispielhaft die Grundgedanken der Erfindung veranschaulicht.Other aspects and embodiments of the present invention will become apparent from the following detailed description, which, taken in conjunction with the drawings, illustrates by way of example the principles of the invention.

KURZDARSTELLUNG DER ZEICHNUNGENBRIEF DESCRIPTION OF THE DRAWINGS

Ausführungsformen der Erfindung werden nachfolgend beispielhaft mit Bezug auf die begleitenden Zeichnungen beschrieben, in denen:

  • 1 ein Modul mit einem neurosynaptischen Kern gemäß einer Ausführungsform der Erfindung veranschaulicht.
  • 2 ein neurosynaptisches Netzwerk gemäß einer Ausführungsform der Erfindung veranschaulicht.
  • 3 einen gemultiplexten neuronalen Kernschaltkreis gemäß einer Ausführungsform der Erfindung veranschaulicht.
  • 4 eine Mehrzahl von möglichen Speicherkonfigurationen eines gemultiplexten neuronalen Kernschaltkreises gemäß einer Ausführungsform der Erfindung veranschaulicht.
  • Die 5A bis 5C die Effizienz eines gemultiplexten neurosynaptischen Kerns gemäß einer Ausführungsform der Erfindung veranschaulichen.
  • Die 6A bis 6B die Weiterleitung von Spike-Ereignissen zwischen gemultiplexten neurosynaptischen Kernen gemäß einer Ausführungsform der Erfindung veranschaulichen.
  • Die 7A bis 7B veranschaulichen die Weiterleitung von Spike-Ereignissen zwischen gemultiplexten neurosynaptischen Kernen gemäß einer Ausführungsform.
  • 8 veranschaulicht eine typische Hardware-Umgebung zum Konfigurieren eines gemultiplexten neurosynaptischen Kerns gemäß einer Ausführungsform.
Embodiments of the invention are described below by way of example with reference to the accompanying drawings, in which:
  • 1 illustrates a module with a neurosynaptic core according to an embodiment of the invention.
  • 2 illustrates a neurosynaptic network according to an embodiment of the invention.
  • 3 illustrates a multiplexed neural core circuit according to an embodiment of the invention.
  • 4 illustrates a plurality of possible memory configurations of a multiplexed neural core circuit according to an embodiment of the invention.
  • The 5A to 5C illustrate the efficiency of a multiplexed neurosynaptic core according to an embodiment of the invention.
  • The 6A to 6B illustrate the propagation of spike events between multiplexed neurosynaptic nuclei according to an embodiment of the invention.
  • The 7A to 7B illustrate the propagation of spike events between multiplexed neurosynaptic nuclei according to one embodiment.
  • 8th illustrates a typical hardware environment for configuring a multiplexed neurosynaptic core according to one embodiment.

AUSFÜHRLICHE BESCHREIBUNGDETAILED DESCRIPTION

Die folgende Beschreibung dient dazu, die allgemeinen Grundgedanken der vorliegenden Erfindung zu veranschaulichen, und soll die hierin beanspruchten erfindungsgemäßen Konzepte nicht einschränken. Außerdem können bestimmte hierin beschriebene Merkmale in Kombination mit anderen beschriebenen Merkmalen in jeder der verschiedenen möglichen Kombinationen und Umsetzungen verwendet werden.The following description is intended to illustrate the general principles of the present invention and is not intended to limit the inventive concepts claimed herein. Moreover, certain features described herein may be used in combination with other described features in any of various possible combinations and implementations.

Sofern nicht ausdrücklich etwas anderes angegeben ist, sollte allen Begriffen die breitest mögliche Auslegung zugestanden werden, einschließlich Bedeutungen, die sich aus der Beschreibung ergeben, sowie Bedeutungen, die von Fachleuten verstanden werden, und/oder wie sie in Lexika, Abhandlungen usw. definiert werden.Unless expressly stated otherwise, all terms should be given the broadest possible interpretation, including meanings that arise from the description, meanings understood by those skilled in the art, and/or as defined in dictionaries, treatises, etc.

Außerdem sei darauf hingewiesen, dass die Singularformen „ein(e)“ und „der/die/das“ bei Verwendung in der Beschreibung und den angehängten Ansprüchen auch die Pluralformen mit einschließen, sofern nichts anderes angegeben ist. Außerdem versteht es sich von selbst, dass die Begriffe „aufweist“ und/oder „aufweisend“ bei Verwendung in dieser Beschreibung das Vorhandensein von dargelegten Merkmalen, ganzen Zahlen, Schritten, Arbeitsgängen, Elementen und/oder Komponenten angeben, jedoch das Vorhandensein oder Hinzufügen von einem oder mehreren anderen Merkmalen, ganzen Zahlen, Schritten, Arbeitsgängen, Elementen, Komponenten und/oder Gruppen von diesen nicht ausschließen.It should also be noted that the singular forms "a" and "the" when used in the specification and the appended claims include the plural forms as well, unless otherwise indicated. It is also to be understood that the terms "comprises" and/or "comprising" when used in this specification indicate the presence of stated features, integers, steps, operations, elements and/or components. but does not exclude the presence or addition of one or more other characteristics, integers, steps, operations, elements, components and/or groups thereof.

Die folgende Beschreibung offenbart mehrere bevorzugte Ausführungsformen von Systemen, Verfahren und Computerprogrammprodukten zum Multiplexen von neurosynaptischen Kernen.The following description discloses several preferred embodiments of systems, methods, and computer program products for multiplexing neurosynaptic nuclei.

In einer allgemeinen Ausführungsform weist ein gemultiplexter neuronaler Kernschaltkreis bei einem ganzzahligen Multiplexfaktor T, der größer als null ist, auf: T Sätze von elektronischen Neuronen, T Sätze von elektronischen Axonen, wobei jeder Satz der T Sätze von elektronischen Axonen einem der T Sätze von elektronischen Neuronen entspricht, und ein synaptisches Verbindungsnetzwerk, das eine Mehrzahl von elektronischen Synapsen aufweist, die jeweils ein einzelnes elektronisches Axon mit einem einzelnen elektronischen Neuron verbinden, wobei das Verbindungsnetzwerk jeden Satz der T Sätze von elektronischen Axonen mit seinem entsprechenden Satz von elektronischen Neuronen verbindet.In a general embodiment, a multiplexed core neural circuit, at an integer multiplexing factor T greater than zero, comprises: T sets of electronic neurons, T sets of electronic axons, each set of the T sets of electronic axons corresponding to one of the T sets of electronic neurons, and a synaptic interconnection network comprising a plurality of electronic synapses each connecting a single electronic axon to a single electronic neuron, the interconnection network connecting each set of the T sets of electronic axons to its corresponding set of electronic neurons.

In einer anderen allgemeinen Ausführungsform weist ein von einem Computer implementiertes Verfahren zum Multiplexen eines neuronalen Kernschaltkreises bei einem ganzzahligen Multiplexfaktor T, der größer als null ist, auf: Konfigurieren von T Sätzen von elektronischen Neuronen, Konfigurieren von T Sätzen von elektronischen Axonen, wobei jeder Satz der T Sätze von elektronischen Axonen einem der T Sätze von elektronischen Neuronen entspricht, und Konfigurieren eines synaptischen Verbindungsnetzwerkes, das eine Mehrzahl von elektronischen Synapsen aufweist, die jeweils ein einzelnes elektronisches A-xon mit einem einzelnen elektronischen Neuron verbinden, wobei das Verbindungsnetzwerk jeden Satz der T Sätze von elektronischen Axonen mit seinem entsprechenden Satz von elektronischen Neuronen verbindet.In another general embodiment, a computer-implemented method for multiplexing a core neural circuit at an integer multiplexing factor T greater than zero comprises: configuring T sets of electronic neurons, configuring T sets of electronic axons, wherein each set of the T sets of electronic axons corresponds to one of the T sets of electronic neurons, and configuring a synaptic interconnection network comprising a plurality of electronic synapses each connecting a single electronic axon to a single electronic neuron, wherein the interconnection network connects each set of the T sets of electronic axons to its corresponding set of electronic neurons.

In einer weiteren allgemeinen Ausführungsform weist ein neurosynaptisches System einen neurosynaptischen Chip, ein neurosynaptisches Einzelkern-Modul als Komponente auf einem Chip oder ein neurosynaptisches Mehrkern-Modul als Komponente auf einem Chip auf, das eine Mehrzahl von gemultiplexten neuronalen Kernschaltkreisen beinhaltet, die über ein chipintegriertes Netzwerk miteinander verbunden sind, wobei jeder aus der Mehrzahl von gemultiplexten neuronalen Kernschaltkreisen bei einem ganzzahligen Multiplexfaktor T, der größer als null ist, T Sätze von elektronischen Neuronen, T Sätze von elektronischen Axonen, wobei jeder Satz der T Sätze von elektronischen Axonen einem der T Sätze von elektronischen Neuronen entspricht, und ein synaptisches Verbindungsnetzwerk aufweist, das eine Mehrzahl von elektronischen Synapsen aufweist, die jeweils ein einzelnes elektronisches Axon mit einem einzelnen elektronischen Neuron verbinden, wobei das Verbindungsnetzwerk jeden Satz der T Sätze von elektronischen Axonen mit seinem entsprechenden Satz von elektronischen Neuronen verbindet.In another general embodiment, a neurosynaptic system comprises a neurosynaptic chip, a single-core neurosynaptic component-on-chip module, or a multi-core neurosynaptic component-on-chip module including a plurality of multiplexed core neural circuits interconnected via an on-chip network, each of the plurality of multiplexed core neural circuits comprising, at an integer multiplexing factor T greater than zero, T sets of electronic neurons, T sets of electronic axons, each set of the T sets of electronic axons corresponding to one of the T sets of electronic neurons, and a synaptic interconnection network comprising a plurality of electronic synapses each connecting a single electronic axon to a single electronic neuron, the interconnection network connecting each set of the T sets of electronic axons to its corresponding set of electronic neurons.

1 veranschaulicht ein neurosynaptisches Kernmodul („neurosynaptischer Kern“ oder „Kern“) 10 gemäß einer Ausführungsform der Erfindung. Bei dem Kern 10 handelt es sich um einen neuronalen Kernschaltkreis/einen neurosynaptischen Kernschaltkreis. Der Kern 10 weist mehrere eingehende Axone 15 und mehrere Neuronen 11 auf. Jedes Neuron 11 und jedes Axon 15 hat konfigurierbare Betriebsparameter. Der Kern 10 weist außerdem eine synaptische Kreuzschiene (synaptic crossbar) 12 mit mehreren Synapsen 31, mehreren Zeilen/Axonpfaden 26 und mehreren Spalten/Dendritenpfaden 34 auf. 1 1 illustrates a neurosynaptic core module ("neurosynaptic core" or "core") 10 according to an embodiment of the invention. The core 10 is a core neural circuit/neurosynaptic circuit. The core 10 includes a plurality of incoming axons 15 and a plurality of neurons 11. Each neuron 11 and axon 15 has configurable operating parameters. The core 10 also includes a synaptic crossbar 12 having a plurality of synapses 31, a plurality of rows/axon pathways 26, and a plurality of columns/dendritic pathways 34.

Jede Synapse 31 überträgt Feuerereignisse (z.B. Spike-Ereignisse) zwischen einem Axon 15 und einem Neuron 11. Insbesondere befindet sich jede Synapse 31 an der Kreuzungspunktstelle zwischen einem Axonpfad 26 und einem Dendritenpfad 34, so dass eine Verbindung zwischen dem Axonpfad 26 und dem Dendritenpfad 34 durch die Synapse 31 erfolgt. Jedes Axon 15 ist derart mit einem Axonpfad 26 verbunden, dass das Axon 15 Spikes an den verbundenen Axonpfad 26 sendet. Jedes Neuron 11 ist derart mit einem Dendritenpfad 34 verbunden, dass das Neuron 11 Spikes aus dem verbundenen Dendritenpfad 34 empfängt.Each synapse 31 transmits firing events (e.g., spike events) between an axon 15 and a neuron 11. In particular, each synapse 31 is located at the intersection point between an axon pathway 26 and a dendritic pathway 34 such that a connection between the axon pathway 26 and the dendritic pathway 34 is made through the synapse 31. Each axon 15 is connected to an axon pathway 26 such that the axon 15 sends spikes to the connected axon pathway 26. Each neuron 11 is connected to a dendritic pathway 34 such that the neuron 11 receives spikes from the connected dendritic pathway 34.

Jede Synapse 31 hat ein Synapsengewicht (synaptic weight). Die Synapsengewichte der Synapsen 31 des Kerns 10 können durch eine Gewichtsmatrix (weight matrix) W dargestellt werden, wobei ein Element Wij der Matrix W ein Synapsengewicht einer Synapse 31 darstellt, die sich in einer Zeile/einem Axonpfad i und einer Spalte/einem Dendritenpfad j der Kreuzschiene 12 befindet. In einer Ausführungsform handelt es sich bei den Synapsen 31 um binäre Speichereinheiten. Zum Beispiel kann jede Synapse 31 ein Gewicht „0“ haben, wodurch angezeigt wird, dass die Synapse 31 nichtleitend ist, oder ein Gewicht „1“, wodurch angezeigt wird, dass die Synapse 31 leitend ist. Eine Lernregel wie Spikezeit-abhängige Plastizität (spike-timing dependent plasticity, STDP) kann angewendet werden, um die Synapsengewichte der Synapsen 31 zu aktualisieren.Each synapse 31 has a synaptic weight. The synaptic weights of the synapses 31 of the core 10 may be represented by a weight matrix W, where an element W ij of the matrix W represents a synaptic weight of a synapse 31 located in a row/axon path i and a column/dendrite path j of the crossbar 12. In one embodiment, the synapses 31 are binary memory units. For example, each synapse 31 may have a weight of “0”, indicating that the synapse 31 is non-conductive, or a weight of “1”, indicating that the synapse 31 is conductive. A learning rule such as spike-timing dependent plasticity (STDP) may be applied to update the synapse weights of the synapses 31.

2 veranschaulicht ein beispielhaftes neuronales Netz 50 gemäß einer Ausführungsform der Erfindung. Beim neuronalen Netz 50 handelt es sich um eine skalierbare neuromorphe und synaptronische Architektur. Das neuronale Netz 50 weist mehrere Chip-Strukturen 70 auf. Jede Chip-Struktur 70 weist mehrere Kerne 10 auf. Ein Ereignisweiterleitungssystem (event routing system) 75 des neuronalen Netzes 50 leitet Feuerereignisse zwischen Kernen 10 der Chip-Strukturen 70 weiter. Ein Kern 10 des neuronalen Netzes 50 kann Feuerereignisse an einen anderen Kern 10 derselben Chip-Struktur 70 oder einer anderen Chip-Struktur 70 weiterleiten und von diesem empfangen. 2 illustrates an exemplary neural network 50 according to an embodiment of the invention. The neural network 50 is is a scalable neuromorphic and synaptronic architecture. The neural network 50 includes a plurality of chip structures 70. Each chip structure 70 includes a plurality of cores 10. An event routing system 75 of the neural network 50 routes firing events between cores 10 of the chip structures 70. A core 10 of the neural network 50 can forward firing events to and receive firing events from another core 10 of the same chip structure 70 or of a different chip structure 70.

3 veranschaulicht einen gemultiplexten neuronalen Kernschaltkreis 100 gemäß einer Ausführungsform der Erfindung. Beim Kernschaltkreis 100 handelt es sich um einen gemultiplexten neurosynaptischen Kernschaltkreis, da er einen oder mehrere Speicher enthält, die neuronale Attribute für mehrere Neuronen 11 speichern. Außerdem multiplext der Kernschaltkreis 100 eine oder mehrere Berechnungs- und Steuerlogikschaltungen für mehrere Neuronen 11. Der Kernschaltkreis 100 enthält einen Speicher 110, der Daten für den neuronalen Kernschaltkreis speichert, eine Steuereinheit (d.h. eine Verarbeitungs- und Berechnungs-Logikschaltung) 120 für die Speichereinheit 110 und eine Speicherschnittstellenschaltung 115. Bei der Schaltung 115 kann es sich um eine standardmäßige Speicherschnittstellenschaltung handeln. Wie gezeigt wird, enthält der Speicher 110 einen Speicher 110a, eine synaptische Kreuzschiene oder ein Verbindungsnetzwerk 110b und einen Speicher 110c. 3 illustrates a multiplexed neural core circuit 100 according to an embodiment of the invention. The core circuit 100 is a multiplexed neurosynaptic core circuit because it includes one or more memories that store neural attributes for multiple neurons 11. The core circuit 100 also multiplexes one or more computation and control logic circuits for multiple neurons 11. The core circuit 100 includes a memory 110 that stores data for the neural core circuit, a control unit (i.e., processing and computation logic circuit) 120 for the memory unit 110, and a memory interface circuit 115. The circuit 115 may be a standard memory interface circuit. As shown, the memory 110 includes a memory 110a, a synaptic crossbar or interconnect network 110b, and a memory 110c.

Die synaptische Kreuzschiene oder das Verbindungsnetzwerk 110b kann synaptische Verbindungsinformationen für mehrere Neuronen 11 enthalten, wobei es mehrere elektronische Synapsen aufweist, die elektronische Axone des neuronalen Kernschaltkreises 100 mit den elektronischen Neuronen des neuronalen Kernschaltkreises 100 verbinden. Jede Synapse des Verbindungsnetzwerks 110b verbindet ein elektronisches Axon mit einem elektronischen Neuron.The synaptic crossbar or interconnection network 110b may contain synaptic interconnection information for multiple neurons 11, having multiple electronic synapses connecting electronic axons of the core neural circuit 100 to the electronic neurons of the core neural circuit 100. Each synapse of the interconnection network 110b connects an electronic axon to an electronic neuron.

Verschiedene zusätzliche Speicherteilkomponenten speichern Daten für den neuronalen Kernschaltkreis 100. Insbesondere enthält der Kernschaltkreis 100 einen Speicher 110a und einen Speicher 110c, von denen jeder Daten für den neuronalen Kernschaltkreis speichert. Außerdem kann der Speicher 110a in T Partitionen unterteilt sein. Jede der T Partitionen kann einem entsprechenden von T Teilzeitschritten eines Zeitschritts zugehörig sein. Der Speicher 110c speichert zusätzliche Daten für den neuronalen Kernschaltkreis 100. In einer Ausführungsform gehören zu den zusätzlichen Daten neuronale Attribute, die über zwei oder mehrere der T Teilzeitschritte des Zeitschritts gemeinsam genutzt werden. Zum Beispiel kann der Speicher 110c Neuronenparameter für die Neuronen 11 Weiterleitungsdaten für die Neuronen 11 usw. speichern, wie nachfolgend ausführlicher erläutert wird.Various additional memory subcomponents store data for the core neural circuit 100. In particular, the core circuit 100 includes a memory 110a and a memory 110c, each of which stores data for the core neural circuit. Additionally, the memory 110a may be divided into T partitions. Each of the T partitions may be associated with a corresponding one of T sub-time steps of a time step. The memory 110c stores additional data for the core neural circuit 100. In one embodiment, the additional data includes neural attributes shared across two or more of the T sub-time steps of the time step. For example, the memory 110c may store neuron parameters for the neurons 11, forwarding data for the neurons 11, etc., as discussed in more detail below.

In einer Ausführungsform kann der 110 mehrere Einträge oder Zeilen enthalten. Beispielsweise können die synaptische Kreuzschiene 110b und der Speicher 110c mehrere Einträge enthalten, wobei jeder Eintrag neuronale Attribute für ein Neuron 11 speichert. In einer Ausführungsform speichert jeder Eintrag die folgenden neuronalen Attribute für ein Neuron 11: synaptische Verbindungsinformationen (Wij), Neuronenparameter und Leitweginformationen. In einer Ausführungsform speichert ein erster Teilsatz jedes Eintrags Synapsengewichte von Synapsen 31, die ein Neuron 11 mit Axonen 15 verbinden.In one embodiment, 110 may contain multiple entries or rows. For example, synaptic crossbar 110b and memory 110c may contain multiple entries, each entry storing neuronal attributes for a neuron 11. In one embodiment, each entry stores the following neuronal attributes for a neuron 11: synaptic connection information (W ij ), neuron parameters, and routing information. In one embodiment, a first subset of each entry stores synaptic weights of synapses 31 connecting a neuron 11 to axons 15.

In einer Ausführungsform weist die Steuereinheit 120 eine Eingangsverarbeitungsstruktur (input processing fabric) und eine Berechnungsstruktur (computation fabric) auf. Die Verarbeitungsstruktur ist so konfiguriert, dass sie für jeden Eintrag Feuerereignisse, die für diesen Eintrag bestimmt sind, empfängt und verarbeitet. Zum Beispiel kann jedes empfangene Feuerereignis auf ein Axon 15 abzielen, mit dem ein durch den Eintrag dargestelltes Neuron 11 verbunden ist. Wie oben angegeben wird, speichert ein erster Teilsatz jedes Eintrags Synapsengewichte von Synapsen 31, die ein Neuron 11 mit Axonen 15 verbinden. Wenn die Synapse 31, die das Zielaxon 15 und das durch den Eintrag dargestellte Neuron 11 miteinander verbindet, leitend ist, kann das Feuerereignis durch die Berechnungsstruktur integriert werden. In einer Ausführungsform weist die Verarbeitungsstruktur einen Decodierer, eine Planungssteuereinheit (scheduler control unit), eine Planungseinrichtung (scheduler), ein Axontypregister (axon type register), eine Multiplexsteuereinheit und ein Skalarproduktmodul (dot product module) auf.In one embodiment, the controller 120 includes an input processing fabric and a computation fabric. The processing fabric is configured to receive and process, for each entry, firing events intended for that entry. For example, each received firing event may target an axon 15 to which a neuron 11 represented by the entry is connected. As indicated above, a first subset of each entry stores synapse weights of synapses 31 connecting a neuron 11 to axons 15. If the synapse 31 connecting the target axon 15 and the neuron 11 represented by the entry is conductive, the firing event may be integrated by the computation fabric. In one embodiment, the processing structure comprises a decoder, a scheduler control unit, a scheduler, an axon type register, a multiplexing control unit, and a dot product module.

In einem neuronalen Netz, das mehrere Kernschaltkreise 100 aufweist, werden Feuerereignisse zwischen Kernschaltkreisen 100 des neuronalen Netzes in Form von Spike-Ereignispaketen (spike event packets) weitergeleitet. Jedes Spike-Ereignispaket kann ein Feuerereignis oder Spike-Ereignis enthalten, das als binäre Adresse codiert ist, die ein Zielaxon 15 darstellt, wobei das Feuerereignis von einem Neuron 11 im selben Kernschaltkreis 100 oder in einem anderen Kernschaltkreis 100 erzeugt wurde. Jedes Spike-Ereignispaket kann außerdem einen Zeitschritt und einen Teilzeitschritt enthalten, der anzeigt, wann ein in dieses Spike-Ereignispaket eingebundenes Feuerereignis erzeugt wurde. Ein Decodierer jedes Kernschaltkreises 100 kann zum Empfangen und Decodieren von Spike-Ereignispaketen konfiguriert werden.In a neural network having multiple core circuits 100, firing events are passed between core circuits 100 of the neural network in the form of spike event packets. Each spike event packet may contain a firing event or spike event encoded as a binary address representing a target axon 15, where the firing event was generated by a neuron 11 in the same core circuit 100 or in a different core circuit 100. Each spike event packet may also contain a time step and a sub-time step indicating when a firing event included in that spike event packet was generated. A decoder of each core circuit 100 may be configured to receive and decode spike event packets.

In einer Ausführungsform ist die Planungseinrichtung so konfiguriert, dass sie ein Puffern von Axonen verwaltet, und der Speicher 110a enthält einen den Axonen 15 des Kernschaltkreises 100 zugehörigen Axonpuffer. Mit anderen Worten, der Speicher 110a des Kernschaltkreises 100 kann einen Satz von A Axonpuffern aufweisen, wobei A die Anzahl von Axonen des Kernschaltkreises 100 ist. Für ein bestimmtes Axon 15 kann die Planungseinrichtung empfangene Feuerereignisse, die an das Axon 15 gerichtet sind, in einem dem Axon 15 zugehörigen Puffer zwischenspeichern. Wenn jeder Zeitschritt in T Teilzeitschritte unterteilt wurde, kann der dem Axon zugehörige Puffer außerdem auf der Grundlage von T und einer Tiefe des Speichers 110a unterteilt werden, wie nachfolgend ausführlicher erläutert wird.In one embodiment, the scheduler is configured to manage buffering of axons, and the memory 110a includes an axon buffer associated with the axons 15 of the core circuit 100. In other words, the memory 110a of the core circuit 100 may include a set of A axon buffers, where A is the number of axons of the core circuit 100. For a particular axon 15, the scheduler may buffer received firing events directed to the axon 15 in a buffer associated with the axon 15. Furthermore, if each time step has been divided into T sub-time steps, the buffer associated with the axon may be divided based on T and a depth of the memory 110a, as explained in more detail below.

Zu Beginn jedes Teilzeitschritts kann die Planungseinrichtung die Feuerereignisse in die Axonpuffer verschieben. In einer Ausführungsform kann ein Vektor, der alle aktiven Axone 15 im aktuellen Teilzeitschritt anzeigt, zu Beginn jedes Teilzeitschritts aus der Planungseinrichtung lesen.At the beginning of each sub-time step, the scheduler may move the firing events into the axon buffers. In one embodiment, a vector indicating all active axons 15 in the current sub-time step may be read from the scheduler at the beginning of each sub-time step.

Der Inhalt des Speichers 110 kann einmal pro Teilzeitschritt gelesen und geschrieben werden. Insbesondere werden für jeden Teilzeitschritt Einträge des Speichers 110 unter Verwendung einer sequenziellen Abfragevorrichtung (sequential scanner) einzeln sequenziell ausgelesen. Für jeden ein Neuron 11 darstellenden Eintrag kann ein Skalarprodukt zwischen dem Vektor von aktiven Axonen 15 im aktuellen Teilzeitschritt und den im Eintrag gespeicherten synaptischen Verbindungsinformationen, d.h. den Synapsengewichten aller Synapsen 31, mit denen der Dendritenpfad 34 des Neurons 11 verbunden ist (Wj), berechnet werden.The contents of the memory 110 can be read and written once per sub-time step. In particular, for each sub-time step, entries of the memory 110 are individually read out sequentially using a sequential scanner. For each entry representing a neuron 11, a dot product can be calculated between the vector of active axons 15 in the current sub-time step and the synaptic connection information stored in the entry, ie the synapse weights of all synapses 31 to which the dendritic path 34 of the neuron 11 is connected (W j ).

Für jeden Eintrag kann ein Multiplexer Informationen verwenden, um einen Neuronenparameter (d.h. Syn0, Syn1, Syn2, Lk) auszuwählen. Beispielsweise kann die im Eintrag gespeicherte Leckrate (leak rate) Lk ausgewählt werden, nachdem alle Spikes integriert wurden. Eine Additionsschaltung (adder) kann den vom Multiplexer ausgewählten Neuronenparameter zu einer Membranpotentialvariablen addieren, die von einem anderen Multiplexer ausgewählt wurde. Für jeden Eintrag kann der andere Multiplexer die im Eintrag gespeicherte Membranpotentialvariable V für die erste Addition auswählen. Für jeden Eintrag kann der andere Multiplexer eine modifizierte Membranpotentialvariable für nachfolgende Additionen auswählen, wobei die modifizierte Membranpotentialvariable eine temporäre Variable ist.For each entry, a multiplexer can use information to select a neuron parameter (i.e., Syn0, Syn1, Syn2, Lk). For example, the leak rate Lk stored in the entry can be selected after all spikes have been integrated. An adder can add the neuron parameter selected by the multiplexer to a membrane potential variable selected by another multiplexer. For each entry, the other multiplexer can select the membrane potential variable V stored in the entry for the first addition. For each entry, the other multiplexer can select a modified membrane potential variable for subsequent additions, where the modified membrane potential variable is a temporary variable.

Nachdem alle Spikes integriert wurden und die Leckrate angewandt wurde, kann ein Vergleicher für jeden Eintrag feststellen, ob die modifizierte Membranpotentialvariable einen in dem Eintrag gespeicherten Schwellenparameter Th überschreitet. Wenn der Schwellenparameter Th überschritten wird, kann der Codierer einen Spike erzeugen und den erzeugten Spike in ein Spike-Ereignispaket einbinden/codieren. Die Membranpotentialvariable V kann auf null zurückgesetzt werden, bevor sie in den Eintrag rückgeschrieben wird.After all spikes have been integrated and the leak rate has been applied, a comparator can determine for each entry whether the modified membrane potential variable exceeds a threshold parameter Th stored in the entry. If the threshold parameter Th is exceeded, the encoder can generate a spike and encode the generated spike into a spike event packet. The membrane potential variable V can be reset to zero before being written back to the entry.

In einigen Ausführungsformen, die nachfolgend veranschaulicht werden, kann der Speicher 110 so zugeordnet werden, dass der Speicher 110 einen ersten Speicher, einen zweiten Speicher, einen dritten Speicher usw. enthält. Zum Beispiel kann der Speicher 110 mehrere Speicheranordnungen enthalten, wobei eine erste Speicheranordnung synaptische Verbindungsinformationen für mehrere Neuronen 11 (d.h. eine synaptische Kreuzschiene) speichert, eine zweite Speicheranordnung Neuronenparameter für die Neuronen 11 speichert, eine dritte Speicheranordnung Axonpuffer aufweist und eine vierte Speicheranordnung Leitweginformationen für die Neuronen 11 speichert.In some embodiments, illustrated below, the memory 110 may be allocated such that the memory 110 includes a first memory, a second memory, a third memory, etc. For example, the memory 110 may include multiple memory arrays, where a first memory array stores synaptic connection information for multiple neurons 11 (i.e., a synaptic crossbar), a second memory array stores neuron parameters for the neurons 11, a third memory array includes axon buffers, and a fourth memory array stores routing information for the neurons 11.

Unter Bezugnahme auf 4 werden nun beispielsweise mehrere mögliche Speicherkonfigurationen eines gemultiplexten neuronalen Kernschaltkreises gemäß verschiedenen Ausführungsformen gezeigt. Eine Option besteht darin, dass die Speicherkonfigurationen in Verbindung mit Merkmalen aus einer beliebigen anderen hierin aufgelisteten Ausführungsform implementiert werden können, z.B. jene, die unter Bezugnahme auf die anderen Figuren beschrieben werden. Selbstverständlich können solche und andere hierin dargelegte Speicherkonfigurationen jedoch in verschiedenen Anwendungen und/oder Umsetzungen verwendet werden, die in den hierin aufgelisteten veranschaulichenden Ausführungsformen nicht unbedingt ausdrücklich beschrieben werden. Außerdem können die hierin dargelegten Speicherkonfigurationen in einer beliebigen gewünschten Umgebung verwendet werden.With reference to 4 For example, several possible memory configurations of a multiplexed neural core circuit are now shown according to various embodiments. One option is that the memory configurations may be implemented in conjunction with features from any other embodiment listed herein, e.g., those described with reference to the other figures. Of course, however, such and other memory configurations set forth herein may be used in various applications and/or implementations that are not necessarily explicitly described in the illustrative embodiments listed herein. Furthermore, the memory configurations set forth herein may be used in any desired environment.

In einer Ausführungsform beinhaltet eine Speicherkonfiguration 500 eine synaptische Kreuzschiene 110b und einen Speicher 110c, wobei der Speicher 110c so zugeordnet wurde, dass er Neuronenparameter 512, Neuronenzielorte (neuron destination locations) 514 und Neuronenmembranpotentiale 516 enthält. Die synaptische Kreuzschiene 110b speichert die Synapsengewichte der Synapsen 31 des Kerns 10 in einer Gewichtsmatrix W. Wie oben angegeben stellt ein Element Wij der Matrix W ein Synapsengewicht einer Synapse 31 dar, die sich in einer Zeile/einem Axonpfad i und einer Spalte/einem Dendritenpfad j der Kreuzschiene befindet. Wahlweise können die Neuronenparameter 512 der Speicherkonfiguration 500 für jedes mit der synaptischen Kreuzschiene 110b verbundene Neuron 11 beinhalten: eine Spike-Schwelle (Th), eine Leckrate (Lk) und/oder Gewichte jedes möglichen Axontyps (Syn0, Syn1, Syn2). Außerdem können die Neuronenzielorte 514 der Speicherkonfiguration 500 für jedes mit der synaptischen Kreuzschiene 110b verbundene Neuron 11 ein Zielaxon des Neurons 11 beinhalten. Weiterhin können die Neuronenmembranpotentiale 516 der Speicherkonfiguration 500 für jedes mit der synaptischen Kreuzschiene 110b verbundene Neuron 11 noch eine Membranpotentialvariable (V) beinhalten, wobei das Membranpotential einen Einzel- oder Mehrbitzustand beinhaltet, der ansteigt, wenn Eingangssignale von erregenden Quellneuronen (source excitatory neurons) empfangen werden, und der abnimmt, wenn Eingangssignale von hemmenden Quellneuronen (source inhibitory neurons) empfangen werden.In one embodiment, a memory configuration 500 includes a synaptic crossbar 110b and a memory 110c, where the memory 110c has been mapped to include neuron parameters 512, neuron destination locations 514, and neuron membrane potentials 516. The synaptic crossbar 110b stores the synapse weights of the synapses 31 of the core 10 in a weight matrix W. As indicated above, an element W ij of the matrix W represents a synapse weight of a synapse 31 located in a row/axon path i and a column/dendrite path j of the crossbar. Optionally, the neuron parameters 512 of the memory configuration 500 may include for each neuron 11 connected to the synaptic crossbar 110b: a spike threshold (Th), a leak rate (Lk) and/or weights of each possible axon type (Syn0, Syn1, Syn2). Additionally, the neuron target locations 514 of the memory configuration 500 for each neuron 11 connected to the synaptic crossbar 110b may include a target axon of the neuron 11. Furthermore, the neuron membrane potentials 516 of the memory configuration 500 for each neuron 11 connected to the synaptic crossbar 110b may still include a membrane potential variable (V), wherein the membrane potential includes a single or multi-bit state that increases when receiving input signals from source excitatory neurons and decreases when receiving input signals from source inhibitory neurons.

Wie durch die Konfiguration 500 veranschaulicht wird, kann der neuronale Kernschaltkreis 100 so konfiguriert werden, dass er mit einem Zeitmultiplexfaktor von 1 (T = 1) betrieben wird, so dass jeder Zeitschritt nur einen einzigen Teilzeitschritt enthält. Mit anderen Worten, neuronale Parameter, Neuronenzielorte und Neuronenmembranpotentiale werden nicht von zwei weiteren Teilzeitschritten gemeinsam genutzt.As illustrated by configuration 500, core neural circuit 100 may be configured to operate at a time-division multiplexing factor of 1 (T=1) such that each time step contains only a single sub-time step. In other words, neural parameters, neuron target locations, and neuron membrane potentials are not shared between two other sub-time steps.

In verschiedenen Ausführungsformen kann eine Größe der synaptischen Kreuzschiene 110b und des Speichers 110c von einer Anzahl von Axonen und Neuronen im neurosynaptischen Kern (A x N) sowie von der Anzahl an gespeicherten Neuronenparametern, Neuronenzielorten und Neuronenmembranpotentialen abhängen. In einer Ausführungsform, in der der neurosynaptische Kern eine Anordnung von 256 Axonen x 256 Neuronen aufweist, kann die synaptische Kreuzschiene 110b zum Beispiel eine Speicherzuordnung von 256 Bit x 256 Bit aufweisen. In einer solchen Ausführungsform kann die Speicherkonfiguration 500 außerdem so organisiert sein, dass die Neuronenparameter 512 eine Speicheranordnung mit 256 Bit x 102 Bit aufweisen, die Neuronenzielorte 514 eine Speicheranordnung mit 256 Bit x 32 Bit aufweisen und die Neuronenmembranpotentiale 516 eine Speicheranordnung mit 256 Bit x 20 Bit aufweisen. Dementsprechend weisen die synaptische Kreuzschiene 110b und der Speicher 110c der Speicherkonfiguration 500 zusammen eine Speicheranordnung mit 256 Bit x 410 Bit auf.In various embodiments, a size of the synaptic crossbar 110b and memory 110c may depend on a number of axons and neurons in the neurosynaptic core (A x N), as well as the number of stored neuron parameters, neuron targets, and neuron membrane potentials. For example, in an embodiment where the neurosynaptic core has an array of 256 axons x 256 neurons, the synaptic crossbar 110b may have a memory allocation of 256 bits x 256 bits. In such an embodiment, the memory configuration 500 may also be organized such that the neuron parameters 512 have a 256 bits x 102 bits memory arrangement, the neuron targets 514 have a 256 bits x 32 bits memory arrangement, and the neuron membrane potentials 516 have a 256 bits x 20 bits memory arrangement. Accordingly, the synaptic crossbar 110b and the memory 110c of the memory configuration 500 together comprise a 256-bit x 410-bit memory arrangement.

In einer anderen Ausführungsform enthält eine Speicherkonfiguration 502 die synaptische Kreuzschiene 110b und den Speicher 110c, wobei der Speicher 110c so zugeordnet wurde, dass er Neuronenparameter 512, Neuronenzielorte 514 und T Sätze von Neuronenmembranpotentialen 516 enthält. Die T Sätze von Neuronenmembranpotentialen 516 weisen Neuronenmembranpotentiale für die von elektronischen Neuronen eines neuronalen Kernschaltkreises 100 auf, so dass jede der T Partitionen Neuronenmembranpotentiale für die Mehrzahl von elektronischen Neuronen für einen der T Teilzeitschritte speichert.In another embodiment, a memory configuration 502 includes the synaptic crossbar 110b and the memory 110c, where the memory 110c has been allocated to include neuron parameters 512, neuron target locations 514, and T sets of neuron membrane potentials 516. The T sets of neuron membrane potentials 516 comprise neuron membrane potentials for those of electronic neurons of a core neural circuit 100, such that each of the T partitions stores neuron membrane potentials for the plurality of electronic neurons for one of the T sub-time steps.

Wie in 4 gezeigt wird, ist T = 4, so dass die Konfiguration 502 vier Sätze von Neuronenmembranpotentialen 516 für vier Teilzeitschritte eines Zeitschritts enthält, jedoch versteht es sich von selbst, dass T eine beliebige Zahl sein kann. In anderen Ausführungsformen kann T zum Beispiel gleich 2, 8, 16, 64 usw. sein. In der Speicherkonfiguration 502 können die Synapsengewichte der synaptischen Kreuzschiene 11 0b, die Neuronenparameter 512 und die Neuronenzielorte 514 über die T Teilzeitschritte gemeinsam genutzt werden, wobei jeder der T Teilzeitschritte einem anderen Satz der Neuronenmembranpotentiale 516 zugehörig ist. Dementsprechend ermöglicht die Speicherkonfiguration 502, dass ein einziger neuronaler Kernschaltkreis für T Teilzeitschritte eines Zeitschritts auf eine Weise zeitlich gemultiplext werden kann, dass die Synapsengewichte, die Neuronenparameter und die Neuronenzielorte über die Teilzeitschritte gemeinsam genutzt werden, jedoch jeder Teilzeitschritt einem anderen Satz von Neuronenmembranpotentialen 516 zugehörig ist. Dadurch kann ermöglicht werden, dass ein einziger physischer Kern 10 während eines Zeitschritts wie vier Kerne fungiert, wobei jeder der vier simulierten Kerne seine eigenen eindeutigen Neuronenmembranpotentiale hat.As in 4 As shown, T = 4, so that configuration 502 contains four sets of neuron membrane potentials 516 for four sub-time steps of a time step, but it is understood that T may be any number. For example, in other embodiments, T may be equal to 2, 8, 16, 64, etc. In memory configuration 502, the synaptic crossbar 110b synapse weights, neuron parameters 512, and neuron target locations 514 may be shared across the T sub-time steps, with each of the T sub-time steps associated with a different set of neuron membrane potentials 516. Accordingly, the memory configuration 502 enables a single core neural circuit to be time-multiplexed for T sub-time steps of a time step in a manner such that the synapse weights, neuron parameters, and neuron target locations are shared across the sub-time steps, but each sub-time step is associated with a different set of neuron membrane potentials 516. This may allow a single physical core 10 to function as four cores during a time step, with each of the four simulated cores having its own unique neuron membrane potentials.

Wie oben erwähnt wurde, kann die synaptische Kreuzschiene 110b in einer Ausführungsform eine Speicherzuordnung von 256 Bit x 256 Bit aufweisen. Außerdem kann die Speicherkonfiguration 502 so konfiguriert werden, dass die Neuronenparameter eine Speicheranordnung mit 256 Bit x 102 Bit aufweisen, die Neuronenzielorte 514 eine Speicheranordnung mit 256 Bit x 32 Bit aufweisen und die T Sätze von Neuronenmembranpotentialen 516 T (256 Bit x 20 Bit)- Speicheranordnungen aufweisen. Wenn T = 4, weisen die synaptische Kreuzschiene 110b und der Speicher 110c der Speicherkonfiguration 502 demzufolge zusammen eine Speicheranordnung mit 256 Bit x (256 + 102 + 32 + T(20)) Bit oder 256 Bit x 470 Bit auf. Ein neuronaler Kernschaltkreis 100, der so konfiguriert ist, dass er die Speicherkonfiguration 502 enthält, kann in einem einzigen Zeitschritt die gleiche Anzahl von Spike-Berechnungen wie vier separate neuronale Kernschaltkreise 100 mit den gleichen Synapsengewichten, Neuronenparametern und Neuronenzielorten, jedoch unterschiedlichen Neuronenmembranpotentialen ausführen, die für jeden Teilzeitschritt protokolliert werden.As mentioned above, in one embodiment, the synaptic crossbar 110b may have a memory allocation of 256 bits x 256 bits. In addition, the memory configuration 502 may be configured such that the neuron parameters have a 256 bits x 102 bits memory allocation, the neuron target locations 514 have a 256 bits x 32 bits memory allocation, and the T sets of neuron membrane potentials 516 have T (256 bits x 20 bits) memory allocations. Accordingly, when T = 4, the synaptic crossbar 110b and memory 110c of the memory configuration 502 together have a 256 bits x (256 + 102 + 32 + T(20)) bits memory allocation, or 256 bits x 470 bits. A core neural circuit 100 configured to include memory configuration 502 can perform the same number of spike calculations in a single time step as four separate core neural circuits 100 with the same synapse weights, neuron parameters, and neuron target locations, but different neuron membrane potentials logged for each sub-time step.

In noch einer anderen Ausführungsform enthält die Speicherkonfiguration 504 die synaptische Kreuzschiene 110b und den Speicher 110c, wobei der Speicher 110c so zugeordnet wurde, dass er Neuronenparameter 512, T Sätze von Neuronenzielorten 514 und T Sätze von Neuronenmembranpotentialen 516 enthält. Die T Sätze von Neuronenzielorten 514 weisen Neuronenzielorte für die Mehrzahl von elektronischen Neuronen eines neuronalen Kernschaltkreises 100 auf, so dass jede der T Partitionen Neuronenzielorte für die Mehrzahl von elektronischen Neuronen für einen der T Teilzeitschritte speichert. Außerdem weisen die T Sätze von Neuronenmembranpotentialen 516 Neuronenmembranpotentiale für die Mehrzahl von elektronischen Neuronen eines neuronalen Kernschaltkreises 100 auf, so dass jede der T Partitionen Neuronenmembranpotentiale für die Mehrzahl von elektronischen Neuronen für einen der T Teilzeitschritte speichert.In yet another embodiment, the memory configuration 504 includes the synaptic crossbar 110b and the memory 110c, where the memory 110c is allocated to Neuron parameters 512, T sets of neuron target locations 514, and T sets of neuron membrane potentials 516. The T sets of neuron target locations 514 comprise neuron target locations for the plurality of electronic neurons of a core neural circuit 100 such that each of the T partitions stores neuron target locations for the plurality of electronic neurons for one of the T sub-time steps. In addition, the T sets of neuron membrane potentials 516 comprise neuron membrane potentials for the plurality of electronic neurons of a core neural circuit 100 such that each of the T partitions stores neuron membrane potentials for the plurality of electronic neurons for one of the T sub-time steps.

Wie in 4 gezeigt wird, ist T = 4, so dass die Konfiguration 504 vier Sätze von Neuronenzielorten 514 und vier Sätze von Neuronenmembranpotentialen 516 für vier Teilzeitschritte eines Zeitschritts enthält, jedoch versteht es sich von selbst, dass T eine beliebige Zahl sein kann. In anderen Ausführungsformen kann T zum Beispiel gleich 2, 8, 16, 64 usw. sein. In der Speicherkonfiguration 504 können die Synapsengewichte der synaptischen Kreuzschiene 110b und die Neuronenparameter 512 über die T Teilzeitschritte gemeinsam genutzt werden, wobei jeder der T Teilzeitschritte einem anderen Satz der Neuronenzielorte 514 und einem anderen Satz der Neuronenmembranpotentiale 516 zugehörig ist. Dementsprechend ermöglicht die Speicherkonfiguration 504, dass ein einziger neuronaler Kernschaltkreis für T Teilzeitschritte eines Zeitschritts auf eine Weise zeitlich gemultiplext werden kann, dass die Synapsengewichte und die Neuronenparameter 512 über die Teilzeitschritte gemeinsam genutzt werden, jedoch jeder Teilzeitschritt einem anderen Satz von Neuronenzielorten 514 und einem anderen Satz von Neuronenmembranpotentialen 516 zugehörig ist. Dadurch kann ermöglicht werden, dass ein einziger physischer Kern 10 während eines Zeitschritts wie vier Kerne fungiert, wobei jeder der vier simulierten Kerne seine eigenen eindeutigen Neuronenzielorte und Neuronenmembranpotentiale hat.As in 4 , T = 4, so that configuration 504 includes four sets of neuron target locations 514 and four sets of neuron membrane potentials 516 for four sub-time steps of a time step, but it should be understood that T may be any number. For example, in other embodiments, T may be equal to 2, 8, 16, 64, etc. In memory configuration 504, the synaptic weights of synaptic crossbar 110b and neuron parameters 512 may be shared across the T sub-time steps, with each of the T sub-time steps associated with a different set of neuron target locations 514 and a different set of neuron membrane potentials 516. Accordingly, the memory configuration 504 enables a single core neural circuit to be time-multiplexed for T sub-time steps of a time step in a manner such that the synapse weights and neuron parameters 512 are shared across the sub-time steps, but each sub-time step is associated with a different set of neuron target locations 514 and a different set of neuron membrane potentials 516. This may allow a single physical core 10 to function as four cores during a time step, with each of the four simulated cores having its own unique neuron target locations and neuron membrane potentials.

Wie oben erwähnt wurde, kann die synaptische Kreuzschiene 110b in einer Ausführungsform eine Speicherzuordnung von 256 Bit x 256 Bit aufweisen. Außerdem kann die Speicherkonfiguration 504 so konfiguriert werden, dass die Neuronenparameter 512 eine Speicheranordnung mit 256 Bit x 102 Bit aufweisen, die T Sätze von Neuronenzielorten 514 T (256 Bit x 32 Bit)- Speicheranordnungen aufweisen und die T Sätze von Neuronenmembranpotentialen 516 T (256 Bit x 20 Bit)- Speicheranordnungen aufweisen. Wenn T = 4, weisen die synaptische Kreuzschiene 110b und der Speicher 110c der Speicherkonfiguration 504 demzufolge zusammen eine Speicheranordnung mit 256 Bit x (256 + 102 + T(32 + 20)) Bit oder 256 Bit x 566 Bit auf. Ein neuronaler Kernschaltkreis 100, der so konfiguriert ist, dass er die Speicherkonfiguration 504 enthält, kann in einem einzigen Zeitschritt die gleiche Anzahl von Spike-Berechnungen wie vier separate neuronale Kernschaltkreise 100 mit den gleichen Synapsengewichten und Neuronenparametern, jedoch unterschiedlichen Neuronenzielorten und Neuronenmembranpotentialen ausführen, die für jeden Teilzeitschritt protokolliert werden.As mentioned above, in one embodiment, the synaptic crossbar 110b may have a memory allocation of 256 bits x 256 bits. Additionally, the memory configuration 504 may be configured such that the neuron parameters 512 have a 256 bits x 102 bits memory arrangement, the T sets of neuron target locations 514 have T (256 bits x 32 bits) memory arrangements, and the T sets of neuron membrane potentials 516 have T (256 bits x 20 bits) memory arrangements. Accordingly, when T = 4, the synaptic crossbar 110b and memory 110c of the memory configuration 504 together have a 256 bits x (256 + 102 + T(32 + 20)) bits memory arrangement or 256 bits x 566 bits. A core neural circuit 100 configured to include memory configuration 504 can perform the same number of spike calculations in a single time step as four separate core neural circuits 100 with the same synapse weights and neuron parameters, but different neuron target locations and neuron membrane potentials logged for each sub-time step.

In einer anderen Ausführungsform enthält eine Speicherkonfiguration 506 die synaptische Kreuzschiene 110b und den Speicher 110c, wobei der Speicher 110c so zugeordnet wurde, dass er T Sätze von Neuronenparametern 512, Neuronenzielorten 514 und T Sätze von Neuronenmembranpotentialen 516 enthält. Die T Sätze von Neuronenparametern 512 weisen Neuronenparameter für die Mehrzahl von elektronischen Neuronen eines neuronalen Kernschaltkreises 100 auf, so dass jede der T Partitionen Neuronenparameter für die Mehrzahl von elektronischen Neuronen für einen der T Teilzeitschritte speichert. Außerdem weisen die T Sätze von Neuronenmembranpotentialen 516 Neuronenmembranpotentiale für die Vielzahl von elektronischen Neuronen eines neuronalen Kernschaltkreises 100 auf, so dass jede der T Partitionen Neuronenmembranpotentiale für die Mehrzahl von elektronischen Neuronen für einen der T Teilzeitschritte speichert.In another embodiment, a memory configuration 506 includes the synaptic crossbar 110b and the memory 110c, where the memory 110c has been allocated to include T sets of neuron parameters 512, neuron target locations 514, and T sets of neuron membrane potentials 516. The T sets of neuron parameters 512 comprise neuron parameters for the plurality of electronic neurons of a core neural circuit 100 such that each of the T partitions stores neuron parameters for the plurality of electronic neurons for one of the T sub-time steps. In addition, the T sets of neuron membrane potentials 516 comprise neuron membrane potentials for the plurality of electronic neurons of a core neural circuit 100 such that each of the T partitions stores neuron membrane potentials for the plurality of electronic neurons for one of the T sub-time steps.

Wie in 4 gezeigt wird, ist T = 4, so dass die Konfiguration 506 vier Sätze von Neuronenparametern 512 und vier Sätze von Neuronenmembranpotentialen 516 für 4 Teilzeitschritte eines Zeitschritts enthält, jedoch versteht es sich von selbst, dass T eine beliebige Zahl sein kann. In anderen Ausführungsformen kann T zum Beispiel gleich 2, 8, 16, 64 usw. sein. In der Speicherkonfiguration 506 können die Synapsengewichte der synaptischen Kreuzschiene 110b und die Neuronenzielorte 514 über die T Teilzeitschritte gemeinsam genutzt werden, wobei jeder der T Teilzeitschritte einem anderen Satz der Neuronenparameter 512 und einem anderen Satz der Neuronenmembranpotentiale 516 zugehörig ist. Dementsprechend ermöglicht die Speicherkonfiguration 506, dass ein einziger neuronaler Kernschaltkreis für T Teilzeitschritte eines Zeitschritts auf eine Weise zeitlich gemultiplext werden kann, dass die Synapsengewichte und die Neuronenzielorte über die Teilzeitschritte gemeinsam genutzt werden, jedoch jeder Teilzeitschritt einem anderen Satz der Neuronenparameter 512 und einem anderen Satz von Neuronenmembranpotentialen 516 zugehörig ist.As in 4 , T = 4, so that configuration 506 includes four sets of neuron parameters 512 and four sets of neuron membrane potentials 516 for 4 sub-time steps of a time step, but it should be understood that T may be any number. For example, in other embodiments, T may be equal to 2, 8, 16, 64, etc. In memory configuration 506, the synaptic weights of synaptic crossbar 110b and neuron target locations 514 may be shared across the T sub-time steps, with each of the T sub-time steps associated with a different set of neuron parameters 512 and a different set of neuron membrane potentials 516. Accordingly, the memory configuration 506 enables a single core neural circuit to be time-multiplexed for T sub-time steps of a time step in a manner such that the synapse weights and the neuron target locations are shared across the sub-time steps, but each sub-time step is associated with a different set of the neuron parameters 512 and a different set of neuron membrane potentials 516.

Wie oben erwähnt wurde, kann die synaptische Kreuzschiene 110b in einer Ausführungsform eine Speicherzuordnung von 256 Bit x 256 Bit aufweisen. Außerdem kann die Speicherkonfiguration 506 so konfiguriert werden, dass die T Sätze von Neuronenparametern 512 T (256 Bit x 102 Bit)- Speicheranordnungen aufweisen, die Neuronenzielorte 514 eine Speicheranordnung mit 256 Bit x 32 Bit aufweisen und die T Sätze von Neuronenmembranpotentialen 516 T (256 Bit x 20 Bit)- Speicheranordnungen aufweisen. Wenn T = 4, weisen die synaptische Kreuzschiene 110b und der Speicher 110c der Speicherkonfiguration 506 demzufolge zusammen eine Speicheranordnung mit 256 Bit x (256 + 32 + T(102 + 20)) Bit oder 256 Bit x 776 Bit auf. Ein neuronaler Kernschaltkreis 100, der so konfiguriert ist, dass er die Speicherkonfiguration 506 enthält, kann in einem einzigen Zeitschritt die gleiche Anzahl von Spike-Berechnungen wie vier separate neuronale Kernschaltkreise 100 mit den gleichen Synapsengewichten und Neuronenzielorten, jedoch unterschiedlichen Neuronenparametern und unterschiedlichen Neuronenmembranpotentialen ausführen, die für jeden Teilzeitschritt protokolliert werden.As mentioned above, in one embodiment, the synaptic crossbar 110b may have a memory allocation of 256 bits x 256 bits. In addition, the memory configuration 506 may be configured such that the T sets of neuron parameters 512 comprise T (256 bits x 102 bits) memory arrays, the neuron target locations 514 comprise a 256 bits x 32 bits memory array, and the T sets of neuron membrane potentials 516 comprise T (256 bits x 20 bits) memory arrays. Accordingly, when T = 4, the synaptic crossbar 110b and memory 110c of the memory configuration 506 together comprise a 256 bits x (256 + 32 + T(102 + 20)) bits memory array, or 256 bits x 776 bits. A core neural circuit 100 configured to include memory configuration 506 can perform the same number of spike calculations in a single time step as four separate core neural circuits 100 with the same synapse weights and neuron target locations, but different neuron parameters and different neuron membrane potentials logged for each sub-time step.

In noch einer anderen Ausführungsform enthält eine Speicherkonfiguration 508 die synaptische Kreuzschiene 110b und den Speicher 110c, wobei der Speicher 110c so zugeordnet wurde, dass er T Sätze von Neuronenparametern 512, T Sätze von Neuronenzielorten 514 und T Sätze von Neuronenmembranpotentialen 516 enthält.In yet another embodiment, a memory configuration 508 includes the synaptic crossbar 110b and the memory 110c, where the memory 110c has been allocated to contain T sets of neuron parameters 512, T sets of neuron target locations 514, and T sets of neuron membrane potentials 516.

Wie in 4 gezeigt wird, ist T = 4, so dass die Konfiguration 508 vier Sätze von Neuronenparametern 512, vier Sätze von Neuronenzielorten 514 und vier Sätze von Neuronenmembranpotentialen 516 für vier Teilzeitschritte eines Zeitschritts enthält, jedoch versteht es sich von selbst, dass T eine beliebige Zahl sein kann. In anderen Ausführungsformen kann T zum Beispiel gleich 2, 8, 16, 64 usw. sein. In der Speicherkonfiguration 508 können die Synapsengewichte der synaptischen Kreuzschiene 110b über die T Teilzeitschritte gemeinsam genutzt werden. Jedoch ist jeder der T Teilzeitschritte einem anderen Satz der Neuronenparameter 512, einem anderen Satz der Neuronenzielorte 514 und einem anderen Satz der Neuronenmembranpotentiale 516 zugehörig. Dementsprechend ermöglicht die Speicherkonfiguration 508, dass ein einziger neuronaler Kernschaltkreis für T Teilzeitschritte eines Zeitschritts auf eine Weise zeitlich gemultiplext werden kann, dass die Synapsengewichte über die Teilzeitschritte gemeinsam genutzt werden, jedoch jeder Teilzeitschritt einem anderen Satz der Neuronenparameter 512, einem anderen Satz der Neuronenzielorte 514 und einem anderen Satz von Neuronenmembranpotentialen 516 zugehörig ist.As in 4 , T = 4, so that configuration 508 includes four sets of neuron parameters 512, four sets of neuron target locations 514, and four sets of neuron membrane potentials 516 for four sub-time steps of a time step, but it should be understood that T may be any number. For example, in other embodiments, T may be equal to 2, 8, 16, 64, etc. In memory configuration 508, the synaptic weights of synaptic crossbar 110b may be shared across the T sub-time steps. However, each of the T sub-time steps is associated with a different set of neuron parameters 512, a different set of neuron target locations 514, and a different set of neuron membrane potentials 516. Accordingly, the memory configuration 508 enables a single core neural circuit to be time-multiplexed for T sub-time steps of a time step in a manner such that the synapse weights are shared across the sub-time steps, but each sub-time step is associated with a different set of neuron parameters 512, a different set of neuron target locations 514, and a different set of neuron membrane potentials 516.

Wie oben erwähnt wurde, kann die synaptische Kreuzschiene 110b in einer Ausführungsform eine Speicherzuordnung von 256 Bit x 256 Bit aufweisen. Außerdem kann die Speicherkonfiguration 508 so konfiguriert werden, dass die T Sätze von Neuronenparametern 512 T (256 Bit x 102 Bit)-Speicheranordnungen aufweisen, die T Sätze von Neuronenzielorten 514 T (256 Bit x 32 Bit)- Speicheranordnungen aufweisen und die T Sätze von Neuronenmembranpotentialen 516 T (256 Bit x 20 Bit)- Speicheranordnungen aufweisen. Wenn T = 4, weisen die synaptische Kreuzschiene 110b und der Speicher 110c der Speicherkonfiguration 508 demzufolge zusammen eine Speicheranordnung mit 256 x (256 + T(102 + 32 + 20)) Bit oder 256 Bit x 872 Bit auf. Ein neuronaler Kernschaltkreis 100, der so konfiguriert ist, dass er die Speicherkonfiguration 508 enthält, kann in einem einzigen Zeitschritt die gleiche Anzahl von Spike-Berechnungen wie vier separate neuronale Kernschaltkreise 100 mit den gleichen Synapsengewichten, jedoch unterschiedlichen Neuronenparametern, unterschiedlichen Neuronenzielorten und unterschiedlichen Neuronenmembranpotentialen ausführen, die für jeden Teilzeitschritt protokolliert werden.As mentioned above, in one embodiment, the synaptic crossbar 110b may have a 256-bit x 256-bit memory allocation. Additionally, the memory configuration 508 may be configured such that the T sets of neuron parameters 512 comprise T (256-bit x 102-bit) memory arrays, the T sets of neuron target locations 514 comprise T (256-bit x 32-bit) memory arrays, and the T sets of neuron membrane potentials 516 comprise T (256-bit x 20-bit) memory arrays. Accordingly, when T = 4, the synaptic crossbar 110b and memory 110c of the memory configuration 508 together comprise a 256 x (256 + T(102 + 32 + 20)) bit or 256 bit x 872 bit memory array. A core neural circuit 100 configured to include memory configuration 508 can perform the same number of spike calculations in a single time step as four separate core neural circuits 100 with the same synapse weights but different neuron parameters, different neuron target locations, and different neuron membrane potentials logged for each sub-time step.

In noch einer anderen Ausführungsform enthält eine Speicherkonfiguration 510 die synaptische Kreuzschiene 110b und den Speicher 110c, wobei der Speicher 110c so zugeordnet wurde, dass er Neuronenparameter 512 und Neuronenzielorte 514 enthält. In der Speicherkonfiguration 510 wurde der Speicher 110 so konfiguriert, dass Synapsengewichte, die Neuronenparameter 512 und Neuronenzielorte 514 über die Teilzeitschritte eines Zeitschritts gemeinsam genutzt werden und Neuronenmembranpotentiale nicht protokolliert werden. In einem neuronalen Kernschaltkreis 100, der die Speicherkonfiguration 510 implementiert, werden Neuronenmembranpotentiale nicht gespeichert. Infolgedessen können Neuronen eines solchen neuronalen Kernschaltkreises 100 jedes Mal einen Spike erzeugen, wenn auf einem verbundenen Axon ein Eingangssignal empfangen wird, ohne dass ein Membranpotential mit einem Schwellenwert verglichen wird.In yet another embodiment, a memory configuration 510 includes the synaptic crossbar 110b and the memory 110c, where the memory 110c has been allocated to include neuron parameters 512 and neuron target locations 514. In the memory configuration 510, the memory 110 has been configured such that synaptic weights, the neuron parameters 512, and neuron target locations 514 are shared across the sub-time steps of a time step and neuron membrane potentials are not logged. In a core neural circuit 100 implementing the memory configuration 510, neuron membrane potentials are not stored. As a result, neurons of such a core neural circuit 100 may generate a spike each time an input signal is received on a connected axon without a membrane potential being compared to a threshold.

Angesichts der hierin beschriebenen Speicherkonfigurationen 500 bis 510 von 4 sollte klar sein, dass ein neuronaler Kernschaltkreis 100 in eine beliebige Kombination von N Neuronenzuständen oder N × T Neuronenzuständen, N Membranpotentialen oder N × T Membranpotentialen, N Neuronenparametern oder N × T Neuronenparametern und N Neuronenzielorten oder N × T Neuronenzielorten konfiguriert werden kann, wobei N die Anzahl von Neuronen des neuronalen Kernschaltkreises 100 und T ein Zeitmultiplexfaktor (d.h. die Gesamtanzahl von Teilzeitschritten) ist. Außerdem speichert das Verbindungsnetzwerk oder die synaptische Kreuzschiene 110 b in jeder der Speicherkonfigurationen 500 bis 510 von 4 Synapsengewichte, die von den elektronischen Neuronen 11 des neuronalen Kernschaltkreises 100 über die T Teilzeitschritte gemeinsam genutzt werden. Weiterhin kann der neuronale Kernschaltkreis 100 in jeder der Speicherkonfigurationen 500 bis 510 von 4 einen Speicher zum Puffern von Axonen enthalten, wobei jedes Axon einem partitionierten oder auf der Grundlage von T organisierten Axonpuffer zugehörig ist.In view of the memory configurations 500 to 510 described herein from 4 It should be understood that a core neural circuit 100 can be configured into any combination of N neuron states or N × T neuron states, N membrane potentials or N × T membrane potentials, N neuron parameters or N × T neuron parameters, and N neuron target locations or N × T neuron target locations, where N is the number of neurons of the core neural circuit 100 and T is a time-multiplexing factor (i.e., the total number of sub-time steps). In addition, the interconnection network or synaptic crossbar 110 b stores in each of the memory configurations 500 to 510 of 4 Synapse weights shared by the electronic neurons 11 of the neural core circuit 100 over the T partial time steps. Furthermore, the neural core circuit 100 can be of memory configurations 500 to 510 from 4 contain a memory for buffering axons, where each axon belongs to a partitioned or T-based organized axon buffer.

Die 5A bis 5C veranschaulichen die Leistungsfähigkeit eines gemultiplexten neurosynaptischen Kernmoduls 610 gemäß einer Ausführungsform. Wahlweise kann das gemultiplexte neurosynaptische Kernmodul in Verbindung mit Merkmalen aus einer beliebigen anderen hierin gelisteten Ausführungsform, z.B. jene unter Bezugnahme auf die anderen Figuren beschriebenen, implementiert werden. Selbstverständlich können ein solches gemultiplextes neurosynaptisches Kernmodul 610 und andere hierin dargelegte jedoch in verschiedenen Anwendungen und/oder Umsetzungen verwendet werden, die in den hierin gelisteten veranschaulichenden Ausführungsformen nicht unbedingt ausdrücklich beschrieben werden. Außerdem kann das hierin dargelegte gemultiplexte neurosynaptische Kernmodul 610 in einer beliebigen gewünschten Umgebung verwendet werden.The 5A to 5C illustrate the capabilities of a multiplexed neurosynaptic core module 610 according to one embodiment. Optionally, the multiplexed neurosynaptic core module may be implemented in conjunction with features from any other embodiment listed herein, e.g., those described with reference to the other figures. Of course, such multiplexed neurosynaptic core module 610 and others set forth herein may, however, be used in various applications and/or implementations that are not necessarily expressly described in the illustrative embodiments listed herein. Furthermore, the multiplexed neurosynaptic core module 610 set forth herein may be used in any desired environment.

Unter Bezugnahme auf 5A werden nun vier neurosynaptische Kernmodule 10 (10a, 10b, 10c und 10d) gezeigt, die unabhängig voneinander auf eine nicht-gemultiplexte Weise betrieben werden. In einer Ausführungsform können sich die vier neurosynaptischen Kernmodule 10 alle auf demselben Chip befinden, wie etwa einer im Zusammenhang mit 2 beschriebenen Chip-Struktur 70. Außerdem wird gezeigt, dass jeder der Kerne 10 eine Mehrzahl von Axonen 15 enthält. Insbesondere enthält der Kern 10a die Axone 15a, der Kern 10b die Axone 15b, der Kern 10c die Axone 15c und der Kern 10d die Axone 15d. Ebenso wird gezeigt, dass jeder der Kerne 10 eine Mehrzahl von Neuronen 11 enthält. Insbesondere enthält der Kern 10a die Neuronen 11a, der Kern 10b die Neuronen 11b, der Kern 10c die Neuronen 11c und der Kern 10d die Neuronen 11d. Außerdem wird gezeigt, dass jedes Axon 15 von 5A mit einem unabhängigen Axonpuffer 605 (z.B. Axonpuffer 605a, 605b, 605c,... 605n) verbunden ist, so dass jeder Kern 10 die gleiche Anzahl von Axonpuffern 605 wie Axone 15 enthält.With reference to 5A Four neurosynaptic core modules 10 (10a, 10b, 10c and 10d) are now shown operating independently of each other in a non-multiplexed manner. In one embodiment, the four neurosynaptic core modules 10 may all be on the same chip, such as one associated with 2 described chip structure 70. It is also shown that each of the cores 10 contains a plurality of axons 15. In particular, the core 10a contains the axons 15a, the core 10b contains the axons 15b, the core 10c contains the axons 15c and the core 10d contains the axons 15d. It is also shown that each of the cores 10 contains a plurality of neurons 11. In particular, the core 10a contains the neurons 11a, the core 10b contains the neurons 11b, the core 10c contains the neurons 11c and the core 10d contains the neurons 11d. It is also shown that each axon 15 of 5A is connected to an independent axon buffer 605 (e.g. axon buffers 605a, 605b, 605c,... 605n) such that each core 10 contains the same number of axon buffers 605 as axons 15.

Wie in 5A veranschaulicht wird, wurden die synaptischen Kreuzschienen 12a bis 12d der Kerne 10a bis 10d jeweils auf die gleiche Weise konfiguriert. Mit anderen Worten, die jeweiligen Synapsen der Kerne 10a bis 10d wurden so konfiguriert, dass die Matrix W und die Elemente Wij der Matrix W für jeden der Kerne 10a bis 10d die gleichen sind. Demzufolge wird ein für ein beliebiges Axon des Kerns 10a empfangenes Spike-Ereignis den Kern 10a veranlassen, das Spike-Ereignis auszugeben, dass von einem beliebigen der Kerne 10b bis 10d ausgegeben würde, wenn eines der entsprechenden Axone von einem der Kerne 10b bis 10d das Spike-Ereignis empfangen würde.As in 5A , the synaptic crossbars 12a through 12d of the cores 10a through 10d were each configured in the same manner. In other words, the respective synapses of the cores 10a through 10d were configured such that the matrix W and the elements W ij of the matrix W are the same for each of the cores 10a through 10d. Accordingly, a spike event received for any axon of the core 10a will cause the core 10a to output the spike event that would be output by any of the cores 10b through 10d if one of the corresponding axons of any of the cores 10b through 10d received the spike event.

Unter Bezugnahme auf 5B wird nun ein gemultiplextes neurosynaptisches Kernmodul (oder „Kern“) 610 gemäß einer Ausführungsform veranschaulicht. Der gemultiplexte Kern 610 enthält eine Mehrzahl von elektronischen Axonen 615, die mit einer Mehrzahl von elektronischen Neuronen 611 verbunden sind. Jedes der Axone 615 kann über Synapsen einer synaptischen Kreuzschiene 612 des gemultiplexten Kerns 610 selektiv mit einem oder mehreren der Neurone 611 verbunden sein. Außerdem wird gezeigt, dass die synaptische Kreuzschiene 612 des gemultiplexten Kerns 610 auf die gleiche Weise konfiguriert ist wie die synaptischen Kreuzschienen 12a bis 12d der Kerne 10a bis 10d von 5A. Mit anderen Worten, die jeweiligen Synapsen des gemultiplexten Kerns 610 wurden so konfiguriert, dass die Matrix W und die Elemente Wij der Matrix W für jeden der Kerne 10a bis 10d die gleichen sind.With reference to 5B , a multiplexed neurosynaptic core module (or "core") 610 is now illustrated in accordance with one embodiment. The multiplexed core 610 includes a plurality of electronic axons 615 connected to a plurality of electronic neurons 611. Each of the axons 615 may be selectively connected to one or more of the neurons 611 via synapses of a synaptic crossbar 612 of the multiplexed core 610. The synaptic crossbar 612 of the multiplexed core 610 is also shown to be configured in the same manner as the synaptic crossbars 12a-12d of the cores 10a-10d of 5A . In other words, the respective synapses of the multiplexed core 610 have been configured such that the matrix W and the elements W ij of the matrix W are the same for each of the cores 10a to 10d.

Wie in 5B gezeigt wird, kann ein einzelner Axonpuffer 605 zudem die zuvor in vier entsprechenden Axonpuffern 605 von 5A gespeicherten Feuerereignisse zwischenspeichern. Zum Beispiel speichert der Axonpuffer 605a des gemultiplexten Kerns 610 die Feuerereignisse, die von den vier anderen Axonpuffern 605a der Kerne 10a bis 10d von 5A gespeichert würden. Ebenso speichert der Axonpuffer 605b des gemultiplexten Kerns 610 die Feuerereignisse, die von den vier anderen Axonpuffern 605b der Kerne 10a bis 10d von 5A gespeichert würden, usw. In Bezug auf ein bestimmtes Axon 615 kann der Axonpuffer 605 auf eine Weise konfiguriert/gelesen werden, dass die Feuerereignisse der verschiedenen Teilzeitschritte eines gegebenen Zeitschritts verschachtelt werden.As in 5B As shown, a single axon buffer 605 can also store the previously stored four corresponding axon buffers 605 of 5A For example, the axon buffer 605a of the multiplexed core 610 stores the firing events received from the four other axon buffers 605a of the cores 10a to 10d of 5A Similarly, the axon buffer 605b of the multiplexed core 610 stores the firing events that are generated by the four other axon buffers 605b of the cores 10a to 10d of 5A would be stored, etc. With respect to a particular axon 615, the axon buffer 605 may be configured/read in a manner to interleave the firing events of the various sub-time steps of a given time step.

Unter Bezugnahme auf 5B wurde beispielsweise gezeigt, dass die in Axonpuffern 605 zwischengespeicherten Feuerereignisse als einem von vier Teilzeitschritten (d.h. Teilzeitschritt 0, Teilzeitschritt 1, Teilzeitschritt 2 oder Teilzeitschritt 3) von vier verschiedenen Zeitschritten (d.h., jeder der Puffer 605 ist vier Einheiten breit, eine für jeden Zeitschritt) zugehörig erkannt worden sind. Während des Betriebs des gemultiplexten Kerns 610 können mit einem ersten, dem Teilzeitschritt 0 zugeordneten Ereignis im Axonpuffer 605a Arbeitsgänge ausgeführt werden, anschließend können mit einem ersten, dem Teilzeitschritt 1 zugehörigen Ereignis im Axonpuffer 605a Arbeitsgänge ausgeführt werden, anschließend können mit einem ersten, dem Teilzeitschritt 2 zugehörigen Ereignis im Axonpuffer 605a Arbeitsgänge ausgeführt werden, anschließend können mit einem ersten, dem Teilzeitschritt 3 zugehörigen Ereignis im Axonpuffer 605a Arbeitsgänge ausgeführt werden, und anschließend können mit einem ersten Ereignis im Axonpuffer 605a, das (nach Verschieben) dem Teilzeitschritt 0 eines anderen Zeitschritts zugehörig ist, Arbeitsgänge ausgeführt werden, usw.With reference to 5B For example, it has been shown that the firing events cached in axon buffers 605 have been identified as belonging to one of four sub-time steps (i.e., sub-time step 0, sub-time step 1, sub-time step 2, or sub-time step 3) of four different time steps (i.e., each of the buffers 605 is four units wide, one for each time step). During operation of the multiplexed core 610, operations may be performed on a first event in axon buffer 605a associated with sub-time step 0, then operations may be performed on a first event in axon buffer 605a associated with sub-time step 1, then operations may be performed on a first event in axon buffer 605a associated with sub-time step 2, then operations may be performed on a first event in axon buffer 605a associated with sub-time step 3, and then operations may be performed on a first event in the axon buffer 605a, which (after shifting) belongs to the sub-time step 0 of another time step, operations are carried out, etc.

Wie durch 5C veranschaulicht wird, kann ein Speicher 650 die Axonpuffer 605 aufweisen, die jedem der Axone 615 des gemultiplexten Kerns 610 zugehörig sind. Der Speicher 650 kann im Wesentlichen mit dem Speicher 110a identisch sein, der zuvor im Zusammenhang mit 3 beschrieben wurde. Eine Breite des Speichers 650 kann von der Größe des Kerns abhängen, für den der Speicher 650 Daten speichert. In einer Ausführungsform ist der Speicher 650 256 Bit breit, so dass 256 Axone des gemultiplexten Kerns 610 gepuffert werden können. Die Anzahl von Zeitschritten (Δ)/Teilzeitschritten, für die der Speicher 650 Daten speichert, kann von einer Höhe des Speichers 650 abhängen. Beispielsweise hat der Speicher 650 eine Höhe von (T x max(Δ)) Bits, wobei Δ eine Anzahl von Zeitschritten und T ein Zeitmultiplexfaktor ist. Wie gezeigt wird, puffert der Speicher 650 T Teilzeitschritte für jeden von Δ Zeitschritten. Demzufolge ist jede Zeile des Speichers 650 einem einzigen Teilzeitschritt zugehörig, und jede 1 Bit breite Spalte des Speichers 650 ist einem einzigen Axon zugehörig. Auf diese Weise kann der Speicher 650 einen Axonpufferspeicher aufweisen, der in T x max(Δ) Zeilen aufgeteilt ist, wobei max(Δ) eine maximale Anzahl von Zeitschritten ist.As through 5C , a memory 650 may include the axon buffers 605 associated with each of the axons 615 of the multiplexed core 610. The memory 650 may be substantially identical to the memory 110a previously described in connection with 3 A width of the memory 650 may depend on the size of the core for which the memory 650 stores data. In one embodiment, the memory 650 is 256 bits wide so that 256 axons of the multiplexed core 610 may be buffered. The number of time steps (Δ)/sub-time steps for which the memory 650 stores data may depend on a height of the memory 650. For example, the memory 650 has a height of (T x max(Δ)) bits, where Δ is a number of time steps and T is a time multiplexing factor. As shown, the memory 650 buffers T sub-time steps for each of Δ time steps. Accordingly, each row of the memory 650 is associated with a single sub-time step, and each 1-bit wide column of the memory 650 is associated with a single axon. In this way, the memory 650 may include an axon buffer divided into T x max(Δ) rows, where max(Δ) is a maximum number of time steps.

Für eine vorgegebene Größe des Speichers 650 stehen T und max(Δ) folglich in direktem Zusammenhang. Zum Beispiel kann ein Speicher 650 mit einer Tiefe oder Höhe von 128 Zeilen so konfiguriert werden, dass T = 64 und max(Δ) = 2; T = 32 und max(Δ) = 4; T = 16 und max(Δ) = 8; T = 8 und max(Δ) = 16; T = 4 und max(Δ) = 32; T = 2 und max(Δ) = 64; oder T = 1 und max(Δ) = 128.Thus, for a given size of memory 650, T and max(Δ) are directly related. For example, a memory 650 with a depth or height of 128 rows can be configured such that T = 64 and max(Δ) = 2; T = 32 and max(Δ) = 4; T = 16 and max(Δ) = 8; T = 8 and max(Δ) = 16; T = 4 and max(Δ) = 32; T = 2 and max(Δ) = 64; or T = 1 and max(Δ) = 128.

In einer Ausführungsform kann der gemultiplexte neurosynaptische Kern 610 auf die folgende Art und Weise funktionieren. In jedem von T Teilzeitschritten (von Teilzeitschritt 0 bis Teilzeitschritt T-1) wird jedes Axon it synchron überprüft, um festzustellen, ob das Axon einen Spike hat, das übermittelt werden muss. Wenn das Axon einen Spike hat, das übermittelt werden muss, für jedes Neuron jt Aktualisieren eines Zustands des Neurons in Abhängigkeit vom Synapsengewicht sij. Nachdem jedes Axon überprüft wurde, um festzustellen, ob die Axone zu übermittelnde Spikes haben, für jedes Neuron jt Berechnen seines neuen Neuronenzustands in Abhängigkeit von seinem vorhergehenden Zustand, seiner Parameter und seiner Eingangssignale; und sodann Überprüfen, ob das Neuron einen Spike erzeugt hat. Wenn ein bestimmtes Neuron einen Spike erzeugt hat, Suchen des Zielortes des Neurons, Erzeugen eines an den Zielort adressierten Spike-Ereignispakets, Übertragen des Spike-Ereignispakets an das neurosynaptische Netzwerk und Zurücksetzen des Zustand des Neurons jt. Außerdem kann der gemultiplexte neurosynaptische Kern 610 asynchron betrieben werden, um Spike-Ereignispakete aus dem neurosynaptischen Netzwerk zu empfangen und Axonpuffer zu aktualisieren.In one embodiment, the multiplexed neurosynaptic core 610 may function in the following manner. At each of T sub-time steps (from sub-time step 0 to sub-time step T-1), each axon i t is synchronously checked to determine if the axon has a spike that needs to be transmitted. If the axon has a spike that needs to be transmitted, for each neuron j t , updating a state of the neuron depending on the synapse weight s ij . After each axon is checked to determine if the axons have spikes to be transmitted, for each neuron j t , calculating its new neuron state depending on its previous state, parameters, and input signals; and then checking if the neuron has generated a spike. When a particular neuron has generated a spike, finding the target location of the neuron, generating a spike event packet addressed to the target location, transmitting the spike event packet to the neurosynaptic network, and resetting the state of the neuron j t . Additionally, the multiplexed neurosynaptic core 610 may operate asynchronously to receive spike event packets from the neurosynaptic network and update axon buffers.

In einer anderen Ausführungsform kann der gemultiplexte neurosynaptische Kern 610 auf die folgende Weise betrieben werden. In jedem von T Teilzeitschritten (von Teilzeitschritt 0 bis Teilzeitschritt T-1) für jedes Neuron j synchrones Lesen eines Zustands des Neurons j, von Neuronenparametern des Neurons j und eines Zielortes des Neurons j. Als Nächstes Addieren der Parallelsumme von synaptischen Eingangssignalen (von mit dem Neuron verbundenen Axonen) zum vorhergehenden Status, um einen neuen Neuronenzustand festzulegen. Wenn no der vorhergehende Zustand ist, ist n1 der neue Neuronenzustand, g ist die Axontyp-Kennung (axon_type_id), A ist der Axonpuffer, k ist die Anzahl von Axontypen und w ist das dem Axontyp k am Neuron j zugehörige Gewicht, welches berechnet werden kann als n 1 = n 0 + k ( W j k i = 0 s i z e ( A ) A i × s i j × ( g j = = k ) ) .

Figure DE112017000855B4_0001
In another embodiment, the multiplexed neurosynaptic core 610 may operate in the following manner. In each of T sub-time steps (from sub-time step 0 to sub-time step T-1), for each neuron j, synchronously read a state of neuron j, neuron parameters of neuron j, and a target location of neuron j. Next, add the parallel sum of synaptic inputs (from axons connected to the neuron) to the previous state to determine a new neuron state. If no is the previous state, n 1 is the new neuron state, g is the axon type identifier (axon_type_id), A is the axon buffer, k is the number of axon types, and w is the weight associated with axon type k at neuron j, which may be calculated as n 1 = n 0 + k ( W j k i = 0 s i z e ( A ) A i × s i j × ( G j = = k ) ) .
Figure DE112017000855B4_0001

Als Nächstes wird geprüft, ob der neue Neuronenzustand einen Spike auslöst. Wenn der neue Neuronenzustand einen Spike auslöst, Suchen des Zielortes des Neurons, Erzeugen eines an den Zielort adressierten Spike-Ereignispaketes, Übertragen des Spike-Ereignispaketes an das neurosynaptische Netzwerk und Zurücksetzen des Zustands des Neurons j. In einer solchen Ausführungsform kann der gemultiplexte neurosynaptische Kern 610 asynchron betrieben werden, um Spike-Ereignispakete aus dem neurosynaptischen Netzwerk zu empfangen und Axonpuffer zu aktualisieren.Next, it is checked whether the new neuron state triggers a spike. If the new neuron state triggers a spike, find the target location of the neuron, generate a spike event packet addressed to the target location, transmit the spike event packet to the neurosynaptic network, and reset the state of neuron j. In such an embodiment, the multiplexed neurosynaptic core 610 may operate asynchronously to receive spike event packets from the neurosynaptic network and update axon buffers.

Durch gemeinsames Nutzen von einem oder mehreren Neuronenattributen oder -parametern können sich Netzwerke aus Neuronen und Axonen, die wiederholt auf einem neurosynaptischen Chip zu finden sind, auf einer geringeren Anzahl der Kerne auf dem Chip befinden. Infolgedessen kann eine vorgegebene Sammlung von neurosynaptischen Berechnungen weniger physischen Platz auf einem neurosynaptischen Chip und/oder weniger Energie als nichtgemultiplexte Kerne benötigen.By sharing one or more neuron attributes or parameters, networks of neurons and axons that are repeatedly found on a neurosynaptic chip can reside on a smaller number of cores on the chip. As a result, a given collection of neurosynaptic computations can require less physical space on a neurosynaptic chip and/or less power than non-multiplexed cores.

Um eine schnellere Arbeitsweise von neurosynaptischen Kernschaltkreisen zu erzielen, können Aktualisierungsvorgänge von Neuronen zum Beispiel durch spezielle Multiplikatoren parallelisiert werden. Die Axonpuffer können aufgrund von Zeitstempeln und/oder Zeitverzögerungen verwendet werden.To achieve faster operation of neurosynaptic core circuits, updating processes of neurons can be parallelized, for example by special multipliers. The axon buffers can be used due to timestamps and/or time delays.

Durch Multiplexen der neurosynaptischen Kerne eines Chips kann ein Chip in der Lage sein, die Grenze zwischen Mobilität und Skalierbarkeit auszuloten, wobei sowohl eine hochgradige Flächenausnutzung als auch Energieeffizienz erreicht werden und wobei ein ständiger Ausgleich zwischen beidem stattfindet. Außerdem stellen gemultiplexte neurosynaptische Kerne die Fähigkeit bereit, rauminvariante und raumvariante Kerne in einer homogenen Architektur zu kombinieren und abzugleichen, und zu ermöglichen, einen bestimmten Chip bei vorgegebenem Stromhaushalt zu optimieren, ohne dynamische Energie zu verschwenden, wenn keine Arbeitsgänge ausgeführt werden müssen. Wenn als Maßzahl für eine Optimierung jedoch die Arbeitsgeschwindigkeit (Durchsatz, Latenzzeit usw.) verwendet wird, kann der Chip mit minimaler Ressourcenzuordnung oder minimalen Energieverbrauch für die notwendige Geschwindigkeit optimiert werden (vorausgesetzt, die angegebene Maßzahl der Geschwindigkeit ist in einer vorgegebenen Architektur verfügbar). Für eine vorgegebene Anwendung kann der Chip außerdem für eine minimale Ressourcenzuordnung optimiert werden (falls mehrere Anwendungen nebeneinander auf demselben Chip ausgeführt werden). Außerdem können solche Optimierungsvorgänge in der Phase der Neukonfiguration des Chips (statische Optimierung/Neukonfiguration) oder unter Nutzung von Möglichkeiten zur teilweisen Rekonfiguration während der Betriebsphase (dynamische Optimierung/Neukonfiguration) ausgeführt werden. Diese Konzepte kommen nicht nur für Optimierungsvorgänge auf Chip-Ebene, sondern auch für systemweite Optimierungsvorgänge zur Anwendung.By multiplexing the neurosynaptic cores of a chip, a chip may be able to walk the line between mobility and scalability, achieving both high area utilization and energy efficiency, and constantly balancing the two. In addition, multiplexed neurosynaptic cores provide the ability to mix and match space-invariant and space-variant cores in a homogeneous architecture, and allow a given chip to be optimized for a given power budget without wasting dynamic power when no work needs to be done. However, if the metric for optimization is speed of operation (throughput, latency, etc.), the chip can be optimized for the necessary speed with minimal resource allocation or energy consumption (assuming the specified metric of speed is available in a given architecture). For a given application, the chip can also be optimized for minimal resource allocation (if multiple applications are running side by side on the same chip). In addition, such optimization operations can be performed during the reconfiguration phase of the chip (static optimization/reconfiguration) or by taking advantage of partial reconfiguration capabilities during the operational phase (dynamic optimization/reconfiguration). These concepts are applicable not only to chip-level optimization operations, but also to system-wide optimization operations.

Demzufolge kann ein neurosynaptisches Netzwerk in einigen Ausführungsformen eine Mehrzahl von gemultiplexten Kernen 610 enthalten. Außerdem werden möglicherweise nicht alle gemultiplexten Kerne 610 entsprechend dem gleichen Zeitmultiplexfaktor gemultiplext. Zum Beispiel kann ein erster gemultiplexter Kern 610 entsprechend einem ersten Zeitmultiplexfaktor (T) gemultiplext werden, wobei Neuronenparameter, Neuronenzielorte und/oder Neuronenmembranpotentiale des ersten gemultiplexten Kerns 610 über T Teilzeitschritte eines Zeitschritts gemeinsam genutzt werden. Außerdem können ein oder mehrere der Speicher, die Neuronenparameter, Neuronenzielorte und Neuronenmembranpotentiale des ersten gemultiplexten Kerns 610 speichern, in T Partitionen unterteilt werden, wobei jede der T Partitionen einem entsprechenden von T Teilzeitschritten des Zeitschritts zugehörig ist. Des Weiteren kann ein zweiter gemultiplexter Kern 610 entsprechend einem zweiten Zeitmultiplexfaktor (U) gemultiplext werden, wobei Neuronenparameter, Neuronenzielorte und/oder Neuronenmembranpotentiale des zweiten gemultiplexten Kerns 610 über U Teilzeitschritte des Zeitschritts gemeinsam genutzt werden können. Außerdem können ein oder mehrere der Speicher, die Neuronenparameter, Neuronenzielorte und/oder Neuronenmembranpotentiale des zweiten gemultiplexten Kerns 610 speichern, in U Partitionen unterteilt werden, wobei jede der U Partitionen einem entsprechenden von U Teilzeitschritten des Zeitschritts zugehörig ist. Schließlich kann T gleich, größer als oder kleiner als U sein.Accordingly, in some embodiments, a neurosynaptic network may include a plurality of multiplexed cores 610. Additionally, not all of the multiplexed cores 610 may be multiplexed according to the same time-division multiplexing factor. For example, a first multiplexed core 610 may be multiplexed according to a first time-division multiplexing factor (T), wherein neuron parameters, neuron target locations, and/or neuron membrane potentials of the first multiplexed core 610 are shared across T sub-time steps of a time step. Additionally, one or more of the memories storing neuron parameters, neuron target locations, and neuron membrane potentials of the first multiplexed core 610 may be divided into T partitions, wherein each of the T partitions is associated with a corresponding one of T sub-time steps of the time step. Furthermore, a second multiplexed core 610 may be multiplexed according to a second time multiplexing factor (U), wherein neuron parameters, neuron target locations, and/or neuron membrane potentials of the second multiplexed core 610 may be shared across U sub-time steps of the time step. Furthermore, one or more of the memories storing neuron parameters, neuron target locations, and/or neuron membrane potentials of the second multiplexed core 610 may be divided into U partitions, wherein each of the U partitions is associated with a corresponding one of U sub-time steps of the time step. Finally, T may be equal to, greater than, or less than U.

Beispielsweise kann ein erster gemultiplexter Kern 610 bei einem Zeitmultiplexfaktor von 4 (T = 4) gemultiplext werden. Dementsprechend können Synapsengewichte, Neuronenparameter und Neuronenzielorte über die 4 Teilzeitschritte jedes Zeitschritts gemeinsam genutzt werden, jedoch kann ein Speicher, der Neuronenmembranpotentiale für den ersten gemultiplexten Kern 610 speichert, in 4 Partitionen unterteilt werden, wobei jede der 4 Partitionen einem entsprechenden von 4 Teilzeitschritten jedes Zeitschritts zugehörig ist. Mit dem ersten gemultiplexten Kern 610 ist ein zweiter gemultiplexter Kern 610 verbunden, der bei einem Zeitmultiplexfaktor von 8 (U = 8) gemultiplext wird. Für den zweiten gemultiplexten Kern 610 können Synapsengewichte, Neuronenparameter und Neuronenzielorte über die 8 Teilzeitschritte jedes Zeitschritts gemeinsam genutzt werden, jedoch kann ein Speicher, der Neuronenmembranpotentiale für den zweiten gemultiplexten Kern 610 speichert, in 8 Partitionen unterteilt werden, wobei jede der 8 Partitionen einem entsprechenden von 8 Teilzeitschritten jedes Zeitschritts zugehörig ist. Selbstverständlich können sowohl der erste gemultiplexte Kern 610 als auch der zweite gemultiplexte Kern bei einem beliebigen Zeitmultiplexfaktor (z.B., 1, 2, 4, 8, 16, 32, 64, usw.) gemultiplext werden.For example, a first multiplexed core 610 may be multiplexed at a time division multiplexing factor of 4 (T=4). Accordingly, synapse weights, neuron parameters, and neuron target locations may be shared across the 4 sub-time steps of each time step, but a memory storing neuron membrane potentials for the first multiplexed core 610 may be divided into 4 partitions, each of the 4 partitions associated with a corresponding one of 4 sub-time steps of each time step. Connected to the first multiplexed core 610 is a second multiplexed core 610 that is multiplexed at a time division multiplexing factor of 8 (U=8). For the second multiplexed core 610, synapse weights, neuron parameters, and neuron target locations may be shared across the 8 sub-time steps of each time step, however, a memory storing neuron membrane potentials for the second multiplexed core 610 may be divided into 8 partitions, with each of the 8 partitions associated with a corresponding one of 8 sub-time steps of each time step. Of course, both the first multiplexed core 610 and the second multiplexed core may be multiplexed at any time multiplexing factor (e.g., 1, 2, 4, 8, 16, 32, 64, etc.).

Feuerereignisse oder Spike-Ereignisse zwischen einem ersten, bei einem ersten Zeitmultiplexfaktor gemultiplexten Kern 610 und einem zweiten, bei einem zweiten Zeitmultiplexfaktor gemultiplexten Kern 610, wobei sich der zweite vom ersten Zeitmultiplexfaktor unterscheidet, können durch Zuordnen räumlich verteilter Eingangssignale zu Teilzeitschritten überbrückt werden.Firing events or spike events between a first core 610 multiplexed at a first time division multiplexing factor and a second core 610 multiplexed at a second time division multiplexing factor, the second being different from the first time division multiplexing factor, can be bridged by assigning spatially distributed input signals to partial time steps.

Insbesondere kann ein Spike-Ereignis zwischen gemultiplexten Kernen weitergeleitet werden, indem in einem ersten gemultiplexten neuronalen Kern, der in T Teilzeitschritte eines Zeitschritts gemultiplext ist, ein Paket für das Spike-Ereignis erzeugt wird. Außerdem enthält das Paket mindestens ein Adressfeld des neuronalen Kerns, den Zeitschritt, eine Axonadresse und eine Zeitskala und/oder einen Versatz (offset). Der erste gemultiplexte neuronale Kern übermittelt sodann das Spike-Ereignispaket, damit das Spike-Ereignis vom zweiten neuronalen Kern empfangen wird. Der zweite neuronale Kern kann bei einem anderen Zeitmultiplexfaktor als der erste gemultiplexte neuronale Kern gemultiplext werden. Zum Beispiel kann der zweite neuronale Kern durch U Teilzeitschritte für jeden der Zeitschritte gemultiplext werden, wobei U größer oder kleiner als T ist.In particular, a spike event may be forwarded between multiplexed cores by generating a packet for the spike event in a first multiplexed neural core multiplexed into T sub-time steps of a time step. The packet also contains at least an address field of the neural core, the time step, an axon address and a time scale and/or an offset. The first multiplexed neural core then transmits the spike event packet so that the spike event is received by the second neural core. The second neural core may be at a different time multiplexing factor than the first multiplexed neural core can be multiplexed. For example, the second neural core can be multiplexed by U sub-time steps for each of the time steps, where U is greater or less than T.

In einer Ausführungsform kann das mindestens eine Adressfeld des Pakets des neuronalen Kerns ein Feld (dx + dxt) und/oder ein Feld (dy + dyt) aufweisen. Zum Beispiel kann das mindestens eine Adressfeld des Pakets des neuronalen Kerns so formatiert sein, dass es (dx+dxt, dy+dyt) enthält. Wahlweise sind dxt und dyt jeweils ceil(log2 N) Bits. Außerdem können dxt und dyt jeweils pro Kern pro Teilzeitschritt programmiert werden. In verschiedenen Ausführungsformen stellen die Adressfelder dx und dy Versätze in Richtung der X-Koordinate bzw. der Y-Koordinate eines neuronalen Netzes bereit. Wahlweise kann ein Paket zuerst in der X-Dimension und anschließend in der Y-Dimension weitergeleitet werden. Außerdem kann die im Paket enthaltene Axonadresse eine Adresse des elektronischen Axons im neuronalen Zielkern enthalten, an den der Spike übermittelt werden muss.In one embodiment, the at least one address field of the neural core packet may comprise a field (dx + dx t ) and/or a field (dy + dy t ). For example, the at least one address field of the neural core packet may be formatted to include (dx+dx t , dy+dy t ). Optionally, d xt and d yt are each ceil(log 2 N) bits. Additionally, dx t and dy t may each be programmed per core per sub-time step. In various embodiments, the address fields dx and dy provide offsets in the X-coordinate and Y-coordinate directions of a neural network, respectively. Optionally, a packet may be forwarded first in the X-dimension and then in the Y-dimension. Additionally, the axon address included in the packet may include an address of the electronic axon in the target neural core to which the spike must be delivered.

In einer Ausführungsform enthält das Paket die Zeitskala und nicht den Versatz. Die Zeitskala kann durch eine Konstante F dargestellt werden, wobei F die Zeitmultiplexfaktor-Skala des bei geringerem Zeitmultiplexfaktor betriebenen neuronalen Kerns ist. Die Zeitskala (F) kann verwendet werden, wenn ein Spike-Ereignis von einem bei höherem Zeitmultiplexfaktor betriebenen neuronalen Kern (einem schnelleren Kern) an einen bei geringerem Zeitmultiplexfaktor betriebenen neuronalen Kern (einen langsameren Kern) übermittelt wird. Wenn die Zeitskala (F) im Paket enthalten ist, ist möglicherweise kein Versatz im Paket enthalten. Wird das Spike-Ereignispaket zum Beispiel von einem gemultiplexten Kern mit T = 8 an einen gemultiplexten Kern mit T = 4 übermittelt, so ist F = 4 und der Versatz = 0 oder nicht enthalten.In one embodiment, the packet includes the time scale and not the offset. The time scale may be represented by a constant F, where F is the time division multiplexing factor scale of the neural core operating at a lower time division multiplexing factor. The time scale (F) may be used when a spike event is communicated from a neural core operating at a higher time division multiplexing factor (a faster core) to a neural core operating at a lower time division multiplexing factor (a slower core). If the time scale (F) is included in the packet, no offset may be included in the packet. For example, if the spike event packet is communicated from a multiplexed core with T = 8 to a multiplexed core with T = 4, then F = 4 and the offset = 0 or not included.

Außerdem können die Bits dxt und dyt verwendet werden, wenn ein Spike-Ereignis von einem bei höheren Zeitmultiplexfaktor betriebenen Kern (einem schnelleren Kern) an einen bei geringerem Zeitmultiplexfaktor betriebenen Kern (einen langsameren Kern) übermittelt wird, und die Bits dxt und dyt sind möglicherweise nicht in einem Paket enthalten, das von einem langsameren Kern an einen schnelleren Kern übermittelt wird.Additionally, the dx t and dy t bits may be used when a spike event is transmitted from a core operating at a higher time division multiplex factor (a faster core) to a core operating at a lower time division multiplex factor (a slower core), and the dx t and dy t bits may not be included in a packet transmitted from a slower core to a faster core.

In einer anderen Ausführungsform enthält das Paket den Versatz und nicht die Zeitskala. Der Versatz kann durch eine Konstante C dargestellt werden, wobei C ein Versatz ist, der Spike-Ereignisse einem Teilzeitschritt eines schnelleren Kerns zuordnet. Folglich kann der Versatz (C) verwendet werden, wenn ein Spike-Ereignis von einem bei geringerem Zeitmultiplexfaktor betriebenen neuronalen Kern (einem langsameren Kern) an einen bei höherem Zeitmultiplexfaktor betriebenen neuronalen Kern (einen schnelleren Kern) übermittelt wird. Wenn C im Paket enthalten ist, kann die Zeitskalenkonstante (F) außerdem gleich 0 oder nicht im Paket enthalten sein. Auf diese Weise handelt es sich bei C und F um Konstanten, die verwendet werden können, um einen Teilzeitschritt zum Übermitteln eines Spike-Ereignisses zu definieren, wenn das Spike-Ereignis zwischen Kernen mit unterschiedlichen Zeitmultiplexfaktoren übertragen wird.In another embodiment, the packet includes the offset and not the time scale. The offset may be represented by a constant C, where C is an offset that maps spike events to a fractional time step of a faster core. Thus, the offset (C) may be used when a spike event is communicated from a neural core operating at a lower time division multiplex factor (a slower core) to a neural core operating at a higher time division multiplex factor (a faster core). Additionally, when C is included in the packet, the time scale constant (F) may be equal to 0 or not included in the packet. In this way, C and F are constants that can be used to define a fractional time step for communicating a spike event when the spike event is transmitted between cores with different time division multiplex factors.

Wenn zum Beispiel ein erster gemultiplexter neuronaler Kern durch T Teilzeitschritte für jeden Zeitschritt gemultiplext wird und ein zweiter gemultiplexter neuronaler Kern durch U Teilzeitschritte für jeden Zeitschritt gemultiplext wird und T kleiner als U ist, wird das vom langsameren Kern an den schnelleren Kern übermittelte Paket den Versatz (C) enthalten, um ein Übermitteln des Spike-Ereignisses einem geeigneten Teilzeitschritt des schnelleren Kerns zuzuordnen.For example, if a first multiplexed neural core is multiplexed by T sub-time steps for each time step and a second multiplexed neural core is multiplexed by U sub-time steps for each time step and T is less than U, the packet transmitted from the slower core to the faster core will contain the offset (C) to associate transmission of the spike event with an appropriate sub-time step of the faster core.

In einer bestimmten Ausführungsform kann das Spike-Ereignispaket formatiert werden als (dx+dxt, dy+dyt, C + (t % F), Δ, Axon_Adresse), wobei % der Modulus-Operator (modulus operator) und Δ der Zeitschritt ist. Demzufolge kann dieses Paket an einen neuronalen Kern (dx+dxt, dy+dyt) nach einer Verzögerung von Δ im Teilzeitschritt C + (t % F) an ein Axon bei Axon_Adresse übermittelt werden.In a particular embodiment, the spike event packet may be formatted as (dx+dx t , dy+dy t , C + (t % F), Δ, axon_address), where % is the modulus operator and Δ is the time step. Accordingly, this packet may be delivered to a neural core (dx+dx t , dy+dy t ) after a delay of Δ in the sub-time step C + (t % F) to an axon at axon_address.

Die 6A bis 6B zeigen das Weiterleiten von Spike-Ereignissen zwischen neurosynaptischen Kernen gemäß einer Ausführungsform. Wahlweise kann das Weiterleiten von Spike-Ereignissen in Verbindung mit Merkmalen von einer beliebigen anderen hierin aufgelisteten Ausführungsform, z.B. jene unter Bezugnahme auf die anderen Figuren beschriebenen, implementiert werden. Selbstverständlich können die Systeme und Verfahren zum Weiterleiten von Spike-Ereignissen jedoch in verschiedenen Anwendungen und/oder in Umsetzungen verwendet werden, die in den hierin aufgelisteten veranschaulichenden Ausführungsformen nicht unbedingt ausdrücklich beschrieben werden. Außerdem können die hierin dargelegten Systeme und Verfahren zum Weiterleiten von Spike-Ereignissen in einer beliebigen gewünschten Umgebung verwendet werden.The 6A to 6B illustrate the propagation of spike events between neurosynaptic nuclei according to one embodiment. Optionally, the propagation of spike events may be implemented in conjunction with features of any other embodiment listed herein, e.g., those described with reference to the other figures. It should be understood, however, that the systems and methods for propagating spike events may be used in various applications and/or in implementations that are not necessarily expressly described in the illustrative embodiments listed herein. Furthermore, the systems and methods for propagating spike events set forth herein may be used in any desired environment.

Gemäß 6A werden neuronale Kernschaltkreise 702, 704, 706 und 708 jeweils mit einem Zeitmultiplexfaktor von 1 betrieben, so dass jeder der Kerne 702, 704, 706 und 708 für jeden Zeitschritt (Δ) einmal betrieben wird. Bei den Kernen 702, 704, 706 und 708 kann es sich um herkömmliche, nichtgemultiplexte neurosynaptische Kerne handeln. Ein Ausgangssignal von den Neuronen von jedem der Kerne 702, 704, 706 und 708 wird so konfiguriert, dass es zu Spike-Ereignissen (d.h. Feuerereignissen) führt, die an einen gemultiplexten neuronalen Kernschaltkreis 710 übertragen werden. Wie in 6A gezeigt wird, wird der gemultiplexte neuronale Kern 710 mit einem Zeitmultiplexfaktor von 4 betrieben, so dass er in jedem Zeitschritt (Δ) viermal betrieben wird.According to 6A core neural circuits 702, 704, 706 and 708 are each operated with a time multiplexing factor of 1, so that each of the cores 702, 704, 706 and 708 is operated once for each time step (Δ). The cores 702, 704, 706 and 708 can be conventional, non-multiplexed neurosynaptic cores. An output signal from the neurons from each of the cores 702, 704, 706 and 708 is configured to result in spike events (i.e., firing events) that are transmitted to a multiplexed neural core circuit 710. As in 6A As shown, the multiplexed neural core 710 is operated with a time multiplexing factor of 4, so that it is operated four times in each time step (Δ).

Um einen Datenaustausch zwischen den Kernen 702, 704, 706 und 708 und dem gemultiplexten Kern 710 zu ermöglichen, wurde demzufolge jedem der Kerne 702, 704, 706 und 708 ein anderer C-Wert zugewiesen. Bei jedem C-Wert handelt es sich um einen Teilzeitschritt-Versatz, der ein empfangenes Spike-Ereignis einem Teilzeitschritt eines schnelleren Kerns (d.h. des Kerns 710) zuordnet. Dementsprechend ist C = 0 für den Kern 702, und vom Kern 702 empfangene Spike-Ereignisse werden auf den ersten Teilzeitschritt des gemultiplexten Kerns 710 abgebildet; C = 1 für den Kern 704, und vom Kern 704 empfangene Spike-Ereignisse werden auf den zweiten Teilzeitschritt des gemultiplexten Kerns 710 abgebildet; C = 2 für den Kern 706, und vom Kern 706 empfangene Spike-Ereignisse werden auf den dritten Teilzeitschritt des gemultiplexten Kerns 710 abgebildet; und C = 3 für den Kern 708, und vom Kern 708 empfangene Spike-Ereignisse werden auf den vierten Teilzeitschritt des gemultiplexten Kerns 710 abgebildet. In beiden 6A und 6B ist dxt = 0 und dyt = 0. Weiterleiten der Pakete kann durch zwischen den Kernen befindliche Ereignis-Router verwaltet werden.Accordingly, to enable data exchange between cores 702, 704, 706, and 708 and multiplexed core 710, each of cores 702, 704, 706, and 708 has been assigned a different C value. Each C value is a sub-time step offset that maps a received spike event to a sub-time step of a faster core (i.e., core 710). Accordingly, C = 0 for core 702, and spike events received by core 702 are mapped to the first sub-time step of multiplexed core 710; C = 1 for core 704, and spike events received by core 704 are mapped to the second sub-time step of multiplexed core 710; C = 2 for core 706, and spike events received from core 706 are mapped to the third sub-time step of multiplexed core 710; and C = 3 for core 708, and spike events received from core 708 are mapped to the fourth sub-time step of multiplexed core 710. In both 6A and 6B is dx t = 0 and dy t = 0. Forwarding of packets can be managed by event routers located between the cores.

Gemäß 6B werden nun in einem weiteren Beispiel gemultiplexte neuronale Kernschaltkreise 752 und 754 jeweils mit einem Zeitmultiplexfaktor von 2 betrieben, so dass jeder der Kerne 752 und 754 in jedem Zeitschritt (Δ) zweimal betrieben wird. Die Neuronen der Kerne 752 und 754 sind so konfiguriert, dass sie Spike-Ereignisse (d.h. Feuerereignisse) an einen gemultiplexten neuronalen Kernschaltkreis 760 übertragen. Wie in 6B gezeigt wird, wird der gemultiplexte neuronale Kern 760 mit einem Zeitmultiplexfaktor von 4 betrieben, so dass er in jedem Zeitschritt (Δ) viermal betrieben wird.According to 6B Now, in another example, multiplexed neural core circuits 752 and 754 are each operated with a time multiplexing factor of 2, such that each of the cores 752 and 754 is operated twice in each time step (Δ). The neurons of the cores 752 and 754 are configured to transmit spike events (ie, firing events) to a multiplexed neural core circuit 760. As in 6B As shown, the multiplexed neural core 760 is operated with a time multiplexing factor of 4, so that it is operated four times in each time step (Δ).

Um einen Datenaustausch der gemultiplexten Kerne 752 und 754 mit dem gemultiplexten Kern 760 zu ermöglichen, wurde demzufolge jedem der Kerne 752 und 754 ein anderer C-Wert zugewiesen. Im Einzelnen C = 0 für den Kern 752, was dazu führt, dass die vom Kern 752 empfangenen Spike-Ereignisse auf die ersten beiden Teilzeitschritte (t = 0, t = 1) des gemultiplexten Kerns 760 abgebildet werden; und C = 2 für den Kern 754, was dazu führt, dass die vom Kern 754 empfangenen Spike-Ereignisse auf den dritten und vierten Teilzeitschritt (t = 2, t = 3) des gemultiplexten Kerns 760 abgebildet werden. Obwohl die gemultiplexten Kerne 752 und 754 während derselben Periode von zwei Teilzeitschritten jedes Zeitschritts Berechnungen ausführen können, werden die von den Kernen 752 und 754 übertragenen Spikes infolgedessen zwischengespeichert und auf eine geordnete und kollisionsfreie Weise in den gemultiplexten Kern 760 eingegeben.Accordingly, to enable data exchange of the multiplexed cores 752 and 754 with the multiplexed core 760, each of the cores 752 and 754 has been assigned a different C value. Specifically, C = 0 for the core 752, which results in the spike events received by the core 752 being mapped to the first two sub-time steps (t = 0, t = 1) of the multiplexed core 760; and C = 2 for the core 754, which results in the spike events received by the core 754 being mapped to the third and fourth sub-time steps (t = 2, t = 3) of the multiplexed core 760. As a result, although the multiplexed cores 752 and 754 may perform computations during the same period of two sub-time steps of each time step, the spikes transmitted by the cores 752 and 754 are buffered and input to the multiplexed core 760 in an orderly and collision-free manner.

Die 7A bis 7B zeigen das Weiterleiten von Spike-Ereignissen zwischen neurosynaptischen Kernen gemäß einer Ausführungsform. Wahlweise kann das Weiterleiten von Spike-Ereignissen in Verbindung mit Merkmalen von einer beliebigen anderen hierin aufgelisteten Ausführungsform, z.B. jene unter Bezugnahme auf die anderen Figuren beschriebenen, implementiert werden. Selbstverständlich können die Systeme und Verfahren zum Weiterleiten von Spike-Ereignissen in verschiedenen Anwendungen und/oder in Umsetzungen verwendet werden, die in den hierin aufgelisteten veranschaulichenden Ausführungsformen nicht unbedingt ausdrücklich beschrieben werden. Außerdem können die hierin dargelegten Systeme und Verfahren zum Weiterleiten von Spike-Ereignissen in einer beliebigen gewünschten Umgebung verwendet werden.The 7A to 7B illustrate the propagation of spike events between neurosynaptic nuclei according to one embodiment. Optionally, the propagation of spike events may be implemented in conjunction with features of any other embodiment listed herein, e.g., those described with reference to the other figures. Of course, the systems and methods for propagating spike events may be used in various applications and/or in implementations that are not necessarily explicitly described in the illustrative embodiments listed herein. Furthermore, the systems and methods for propagating spike events set forth herein may be used in any desired environment.

Gemäß 7A wird ein gemultiplexter neuronaler Kernschaltkreis 810 mit einem Zeitmultiplexfaktor von 4 betrieben, so dass er pro Zeitschritt (Δ) viermal betrieben wird. Wie gezeigt wird, überträgt der gemultiplexte Kern 810 Spike-Ereignisse an jeden der neuronalen Kernschaltkreise 802, 804, 806 und 808, die jeweils mit einem Zeitmultiplexfaktor von 1 betrieben werden. Mit anderen Worten, jeder der Kerne 802, 804, 806 und 808 wird in jedem Zeitschritt (Δ) einmal betrieben.According to 7A a multiplexed neural core circuit 810 is operated at a time division multiplexing factor of 4, such that it is operated four times per time step (Δ). As shown, the multiplexed core 810 transmits spike events to each of the neural core circuits 802, 804, 806, and 808, each of which is operated at a time division multiplexing factor of 1. In other words, each of the cores 802, 804, 806, and 808 is operated once in each time step (Δ).

Um das zuverlässige Übertragen von Spike-Ereignissen vom gemultiplexten Kern 810 an die Kerne 802, 804, 806 und 808 zu ermöglichen, werden die Pakete vom gemultiplexten Kern 810 demzufolge so konfiguriert, dass sie einen C-Wert von 0 und einen F-Wert von 1 enthalten. Mit anderen Worten, die Zeitskala von solchen Paketen ist 1 (F = 1), was den Zeitmultiplexfaktor der langsameren Kerne 802 bis 808 wiedergibt, und C = 0, da der gemultiplexte Kern 810 schneller als die langsameren Kerne 802 bis 808 ist. Überdies wird gezeigt, dass die Spike-Ereignispakete vom gemultiplexten Kern 810 an die Kerne 802 bis 808 ein Feld dxt im Adressfeld der Pakete vom neuronalen Kern enthalten. Insbesondere ist dxt = 0 beim Spike-Ereignispaket vom gemultiplexten Kern 810 an den Kern 802, wodurch angezeigt wird, dass es auf den ersten Teilzeitschritt von jedem Δ abgebildet wird, dxt = 1 beim Spike-Ereignispaket vom gemultiplexten Kern 810 an den Kern 804, wodurch angezeigt wird, dass es auf den zweiten Teilzeitschritt von jedem Δ abgebildet wird, dxt = 2 beim Spike-Ereignispaket vom gemultiplexten Kern 810 an den Kern 806, wodurch angezeigt wird, dass es auf den dritten Teilzeitschritt von jedem Δ abgebildet wird, und dxt = 4 beim Spike-Ereignispaket vom gemultiplexten Kern 810 an den Kern 808, wodurch angezeigt wird, dass es auf den vierten Teilzeitschritt von jedem Δ abgebildet wird.Accordingly, to enable reliable transmission of spike events from the multiplexed core 810 to the cores 802, 804, 806 and 808, the packets from the multiplexed core 810 are configured to contain a C value of 0 and an F value of 1. In other words, the time scale of such packets is 1 (F = 1), which reflects the time multiplexing factor of the slower cores 802 to 808, and C = 0 because the multiplexed core 810 is faster than the slower cores 802 to 808. Moreover, the spike event packets from the multiplexed core 810 to the cores 802 to 808 are shown to contain a field dx t in the address field of the packets from the neural core. Specifically, dx t = 0 for the spike event packet from multiplexed core 810 to core 802, indicating that it is mapped to the first sub-time step of each Δ, dx t = 1 for the spike event packet from multiplexed core 810 to core 804, indicating that it is mapped to the second sub-time step of each Δ, dx t = 2 for the spike event packet from multiplexed core 810 to core 806, indicating that it is mapped to the third sub-time step of each Δ , and dx t = 4 on the spike event packet from multiplexed core 810 to core 808, indicating that it is mapped to the fourth sub-time step of each Δ.

Wahlweise kann dyt anstelle von oder zusätzlich zu dxt verwendet werden, um eine räumliche Verteilung abzubilden. Jeder der empfangenden Kerne kann in jedem der Teilzeitschritte in Paaren (dxt, dyt) codiert werden. Die Werte von dxt und dyt können zum Beispiel von einem Programmierer festgelegt werden. Beim Satz {(dxt, dyt), t = 1, 2, ... , T} kann es sich um eine Nachbarschaft handeln.Optionally, dy t can be used instead of or in addition to dx t to represent a spatial distribution. Each of the receiving cores can be encoded in pairs (dx t , dy t ) in each of the sub-time steps. The values of dx t and dy t can be set by a programmer, for example. The set {(dx t , dy t ), t = 1, 2, ... , T} can be a neighborhood.

Gemäß 7B wird nun ein gemultiplexter neuronaler Kernschaltkreis 860 mit einem Zeitmultiplexfaktor von 4 betrieben, so dass er pro Zeitschritt (Δ) viermal betrieben wird. Wie gezeigt wird, überträgt der gemultiplexte Kern 860 Spike-Ereignisse an jeden der neuronalen Kernschaltkreise 852 und 854, die jeweils mit einem Zeitmultiplexfaktor von 2 betrieben werden. Mit anderen Worten, jeder der Kerne 852 und 854 wird in jedem Zeitschritt (Δ) zweimal betrieben.According to 7B a multiplexed neural core circuit 860 is now operated at a time multiplexing factor of 4, such that it is operated four times per time step (Δ). As shown, the multiplexed core 860 transmits spike events to each of the neural core circuits 852 and 854, each of which is operated at a time multiplexing factor of 2. In other words, each of the cores 852 and 854 is operated twice in each time step (Δ).

Um zuverlässiges Übertragen von Spike-Ereignissen vom gemultiplexten Kern 860 an die Kerne 852 und 854 zu ermöglichen, werden die Pakete vom gemultiplexten Kern 860 demzufolge so konfiguriert, dass sie einen C-Wert von 0 (C = 0) und einen F-Wert von 2 (F = 2) enthalten. Mit anderen Worten, die Zeitskala von solchen Paketen ist 2 (F = 2), was den Zeitmultiplexfaktor der langsameren Kerne 852 und 854 wiedergibt, die die Pakete empfangen, und C = 0, da der gemultiplexte Kern 860 schneller als die langsameren Kerne 852 und 854 ist. Überdies wird gezeigt, dass die Spike-Ereignispakete vom gemultiplexten Kern 860 an die gemultiplexten Kerne 852 und 854 ein Feld dxt im Adressfeld der Pakete des neuronalen Kerns enthalten. Insbesondere ist dxt = 0 beim Spike-Ereignispaket vom gemultiplexten Kern 860 an den gemultiplexten Kern 852, wodurch angezeigt wird, dass es auf den ersten Teilzeitschritt von jedem Δ abgebildet wird, und dxt = 1 beim Spike-Ereignispaket vom gemultiplexten Kern 860 an den gemultiplexten Kern 854, wodurch angezeigt wird, dass es auf den zweiten Teilzeitschritt von jedem Δ abgebildet wird.Accordingly, to enable reliable transmission of spike events from the multiplexed core 860 to the cores 852 and 854, the packets from the multiplexed core 860 are configured to contain a C value of 0 (C = 0) and an F value of 2 (F = 2). In other words, the time scale of such packets is 2 (F = 2), which reflects the time multiplexing factor of the slower cores 852 and 854 receiving the packets, and C = 0 because the multiplexed core 860 is faster than the slower cores 852 and 854. Moreover, the spike event packets from the multiplexed core 860 to the multiplexed cores 852 and 854 are shown to contain a dx t field in the address field of the neural core packets. In particular, dx t = 0 for the spike event packet from multiplexed core 860 to multiplexed core 852, indicating that it is mapped to the first sub-time step of each Δ, and dx t = 1 for the spike event packet from multiplexed core 860 to multiplexed core 854, indicating that it is mapped to the second sub-time step of each Δ.

In einer Ausführungsform kann ein gemultiplexter neuronaler Kernschaltkreis bei einem ganzzahligen Multiplexfaktor T, der größer als null ist, T Sätze von elektronischen Neuronen T Sätze von elektronischen Axonen, wobei jeder der T Sätze von elektronischen Axonen einem der T Sätze von elektronischen Neuronen entspricht, sowie ein synaptisches Verbindungsnetzwerk aufweisen, das eine Mehrzahl von elektronischen Synapsen aufweist, die jeweils ein einzelnes elektronisches Axon mit einem einzelnen elektronischen Neuron verbinden, wobei das Verbindungsnetzwerk jeden Satz der T Sätze von elektronischen Axonen mit ihrem entsprechenden Satz von elektronischen Neuronen verbindet.In one embodiment, a multiplexed core neural circuit may comprise, at an integer multiplexing factor T greater than zero, T sets of electronic neurons, T sets of electronic axons, each of the T sets of electronic axons corresponding to one of the T sets of electronic neurons, and a synaptic interconnection network comprising a plurality of electronic synapses each connecting a single electronic axon to a single electronic neuron, the interconnection network connecting each set of the T sets of electronic axons to its corresponding set of electronic neurons.

In einer Ausführungsform kann das synaptische Verbindungsnetzwerk außerdem über die T Sätze von elektronischen Neuronen gemeinsam genutzt werden. In einer anderen Ausführungsform kann eine Vielzahl von Neuronenparametern über die T Sätze von elektronischen Neuronen gemeinsam genutzt werden. In noch einer anderen Ausführungsform kann eine Vielzahl von Neuronenzielorten über die T Sätze von elektronischen Neuronen gemeinsam genutzt werden. In noch einer anderen Ausführungsform kann ein Neuronenzustand über die T Sätze von elektronischen Neuronen gemeinsam genutzt werden.In one embodiment, the synaptic connection network may also be shared across the T sets of electronic neurons. In another embodiment, a plurality of neuron parameters may be shared across the T sets of electronic neurons. In yet another embodiment, a plurality of neuron target locations may be shared across the T sets of electronic neurons. In yet another embodiment, a neuron state may be shared across the T sets of electronic neurons.

In einer Ausführungsform kann außerdem ein Betrieb des gemultiplexten neuronalen Kernschaltkreises in Bezug auf eine Mehrzahl von diskreten Zeitschritten beschrieben werden, und in einem einzelnen diskreten Zeitschritt kann jeder Satz der T Sätze von elektronischen Axonen über das synaptische Verbindungsnetzwerk mit seinem entsprechenden Satz von elektronischen Neuronen verbunden werden. In einer anderen Ausführungsform kann jeder aus der Mehrzahl von diskreten Zeitschritten in T Teilzeitschritte unterteilt werden, wobei jeder Satz der T Sätze von elektronischen Axonen und sein entsprechender Satz von elektronischen Neuronen einem der T Teilzeitschritte zugewiesen werden kann, und jeder Satz der T Sätze von elektronischen Axonen in seinem zugewiesenen der T Teilzeitschritte über das synaptische Verbindungsnetzwerk mit seinem entsprechenden Satz von elektronischen Neuronen verbunden werden kann.Additionally, in one embodiment, operation of the multiplexed core neural circuit may be described in terms of a plurality of discrete time steps, and in a single discrete time step, each set of the T sets of electronic axons may be connected to its corresponding set of electronic neurons via the synaptic interconnection network. In another embodiment, each of the plurality of discrete time steps may be divided into T sub-time steps, wherein each set of the T sets of electronic axons and its corresponding set of electronic neurons may be assigned to one of the T sub-time steps, and each set of the T sets of electronic axons may be connected to its corresponding set of electronic neurons in its assigned one of the T sub-time steps via the synaptic interconnection network.

In einer Ausführungsform kann der gemultiplexte neuronale Kernschaltkreise außerdem zwei verschiedene Speicherbänke enthalten, wobei die beiden verschiedenen Speicherbänke eine erste Speicherbank, die das synaptische Verbindungsnetzwerk, eine Mehrzahl von Neuronenparametern, eine Vielzahl von Neuronenzielorten und einen Neuronenzustand für alle elektronischen Neuronen in den T Sätzen von elektronischen Neuronen aufweist, sowie eine zweite Speicherbank enthalten können, die einen elektronischen Axonpufferspeicher aufweist. In einer anderen Ausführungsform kann der elektronische Axonpufferspeicher in T Zeilen × max(Δ) Spalten unterteilt sein, wobei max(Δ) eine Anzahl von Zeitverzögerungen ist.In one embodiment, the multiplexed core neural circuitry may further include two different memory banks, where the two different memory banks may include a first memory bank comprising the synaptic connection network, a plurality of neuron parameters, a plurality of neuron target locations, and a neuron state for all electronic neurons in the T sets of electronic neurons, and a second memory bank comprising an electronic axon buffer. In another embodiment, the electronic axon buffer may be divided into T rows × max(Δ) columns, where max(Δ) is a number of time delays.

In einer Ausführungsform kann ein neurosynaptisches System außerdem einen neurosynaptischen Chip, ein neurosynaptisches Einzelkern-Modul als Komponente auf einem Chip oder ein neurosynaptisches Mehrkern-Modul als Komponente auf einem Chip aufweisen, das eine Mehrzahl von gemultiplexten neuronalen Kernschaltkreisen enthält, die über ein chipintegriertes Netzwerk miteinander verbunden sind, wobei jeder aus der Mehrzahl von gemultiplexten neuronalen Kernschaltkreisen bei einem ganzzahligen Multiplexfaktor T, der größer als null ist, T Sätze von elektronischen Neuronen, T Sätze von elektronischen Axonen, wobei jeder Satz der T Sätze von elektronischen Axonen einem der T Sätze von elektronischen Neuronen entspricht, und ein synaptisches Verbindungsnetzwerk aufweist, das eine Mehrzahl von elektronischen Synapsen aufweist, die jeweils ein einzelnes elektronisches Axon mit einem einzelnen elektronischen Neuron verbinden, wobei das Verbindungsnetzwerk jeden Satz der T Sätze von elektronischen Axonen mit seinem entsprechenden Satz von elektronischen Neuronen verbindet.In one embodiment, a neurosynaptic system may further comprise a neurosynaptic chip, a single-core neurosynaptic module as a component on a chip, or a multi-core neurosynaptic module as a component on a chip containing a plurality of multiplexed core neural circuits interconnected via an on-chip network, each of the plurality of multiplexed core neural circuits comprising, at an integer multiplexing factor T greater than zero, T sets of electronic neurons, T sets of electronic axons, each set of the T sets of electronic axons corresponding to one of the T sets of electronic neurons, and a synaptic interconnection network comprising a plurality of electronic synapses each connecting a single electronic axon to a single electronic neuron, the interconnection network connecting each set of the T sets of electronic axons to its corresponding set of electronic neurons.

In einer Ausführungsform können der neurosynaptische Chip, das neurosynaptische Einzelkern-Modul oder das neurosynaptische Mehrkern-Modul zudem über ein außerhalb des Chips befindliches Verbindungsnetzwerk miteinander verbunden sein. In einer anderen Ausführungsform kann das chipintegrierte Netzwerk ereignisgesteuert sein. In einer anderen Ausführungsform kann das außerhalb des Chips befindliche Netzwerk ereignisgesteuert sein. In noch einer anderen Ausführungsform können ein oder mehrere aus der Mehrzahl von gemultiplexten neuronalen Kernschaltkreisen einen ganzzahligen Multiplexfaktor haben, der sich von den anderen gemultiplexten neuronalen Kernschaltkreisen aus der Mehrzahl von neuronalen Kernschaltkreisen unterscheidet.In one embodiment, the neurosynaptic chip, the single-core neurosynaptic module, or the multi-core neurosynaptic module may also be interconnected via an off-chip interconnection network. In another embodiment, the on-chip network may be event-driven. In another embodiment, the off-chip network may be event-driven. In yet another embodiment, one or more of the plurality of multiplexed core neural circuits may have an integer multiplexing factor that is different from the other multiplexed core neural circuits of the plurality of core neural circuits.

Des Weiteren kann in einer Ausführungsform ein erster Satz aus der Mehrzahl von gemultiplexten neuronalen Kernschaltkreisen einen ersten ganzzahligen Multiplexfaktor T1 haben, und der der erste Satz kann mit einem zweiten Satz von gemultiplexten neuronalen Kernschaltkreisen verbunden sein, der einen zweiten ganzzahligen Multiplexfaktor T2 hat, der sich vom ersten ganzzahligen Multiplexfaktor T1 unterscheidet. In einer anderen Ausführungsform können zwischen den Kernen übertragene Nachrichten Spike-Pakete enthalten, die eine relative Adresse eines Zielkerns, eine Zeitverzögerung eines elektronischen Axons, eine Adresse eines Satzes von elektronischen Axonen, eine Axonadresse sowie Daten enthalten, die eine Zuordnung zwischen dem ganzzahligen Multiplexfaktor Ts von Quellkernen und dem ganzzahligen Multiplexfaktor Td von Zielkernen codieren.Furthermore, in one embodiment, a first set of the plurality of multiplexed neural core circuits may have a first integer multiplexing factor T1, and the first set may be connected to a second set of multiplexed neural core circuits having a second integer multiplexing factor T2 that is different from the first integer multiplexing factor T1. In another embodiment, messages transmitted between the cores may include spike packets that include a relative address of a target core, a time delay of an electronic axon, an address of a set of electronic axons, an axon address, and data encoding a mapping between the integer multiplexing factor Ts of source cores and the integer multiplexing factor Td of target cores.

8 zeigt eine typische Hardware-Umgebung zum Konfigurieren von neurosynaptischen Kernen gemäß einer Ausführungsform. Eine solche Figur veranschaulicht eine typische Hardware-Konfiguration einer Arbeitsstation mit einer Zentraleinheit 210, beispielsweise einem Mikroprozessor, und einer Anzahl von anderen Einheiten, die über einen Systembus 212 miteinander verbunden sind. 8th shows a typical hardware environment for configuring neurosynaptic nuclei according to one embodiment. Such a figure illustrates a typical hardware configuration of a workstation having a central processing unit 210, for example a microprocessor, and a number of other units interconnected via a system bus 212.

Die in 8 gezeigte Arbeitsstation beinhaltet einen Direktzugriffsspeicher (RAM) 214, einen Nur-Lese-Speicher (ROM) 216, einen E/A-Adapter 218 zum Verbinden von peripheren Einheiten wie Plattenspeichereinheiten 220 mit dem Bus 212, einen Benutzerschnittstellenadapter 222 zum Verbinden einer Tastatur 224, einer Maus 226, eines Lautsprechers 228, eines Mikrofons 232 und/oder anderer Benutzerschnittstelleneinheiten wie einem berührungsempfindlichen Bildschirm und einer Digitalkamera (nicht gezeigt) mit dem Bus 212, einen Datenübertragungsadapter 234 zum Verbinden der Arbeitsstation mit einem Datenübertragungsnetz 235 (z.B. einem Datenverarbeitungsnetz) und einen Anzeigeadapter 236 zum Verbinden des Busses 212 mit einer Anzeigeeinheit 238.In the 8th includes a random access memory (RAM) 214, a read only memory (ROM) 216, an I/O adapter 218 for connecting peripheral devices such as disk storage devices 220 to the bus 212, a user interface adapter 222 for connecting a keyboard 224, a mouse 226, a speaker 228, a microphone 232 and/or other user interface devices such as a touch screen and a digital camera (not shown) to the bus 212, a data communication adapter 234 for connecting the workstation to a data communication network 235 (e.g., a data processing network), and a display adapter 236 for connecting the bus 212 to a display device 238.

In der Arbeitsstation kann sich ein Betriebssystem, z.B. ein Microsoft Windows®-Betriebssystem (BS), ein MAC-Betriebssystem, ein UNIX-Betriebssystem usw. befinden. Es ist klar, dass eine bevorzugte Ausführungsform auch auf anderen Plattformen und Betriebssystem als den erwähnten implementiert werden kann. Eine bevorzugte Ausführungsform kann unter Verwendung der Sprache XML, C und/oder C++ oder anderen Programmiersprachen, zusammen mit einer objektorientierten Programmiermethodik, geschrieben sein. Es kann eine objektorientierte Programmierung (Object oriented programming, OOP) verwendet werden, die zum Entwickeln komplexer Anwendungen in zunehmendem Maße zum Einsatz kommt.The workstation may contain an operating system, e.g. a Microsoft Windows® operating system (OS), a MAC operating system, a UNIX operating system, etc. It will be appreciated that a preferred embodiment may be implemented on platforms and operating systems other than those mentioned. A preferred embodiment may be written using the XML language, C and/or C++ or other programming languages, together with an object-oriented programming methodology. Object oriented programming (OOP) may be used, which is increasingly used for developing complex applications.

Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) beinhalten, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.The present invention may be a system, a method, and/or a computer program product. The computer program product may include a computer-readable storage medium(s) having stored thereon computer-readable program instructions for causing a processor to carry out aspects of the present invention.

Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch eine Einheit zum Ausführen von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch kodierte Einheit wie zum Beispiel Lochkarten oder gehobene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. durch ein Glasfaserkabel geleitete Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.The computer-readable storage medium may be a physical device that can retain and store instructions for use by an instruction-executing device. The computer-readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. For a non-exhaustive list of more specific examples of the computer-readable storage medium, see Computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read only memory (ROM), an erasable programmable read only memory (EPROM or flash memory), a static random access memory (SRAM), a portable compact disc read only memory (CD-ROM), a digital versatile disc (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch cards or raised structures in a groove on which instructions are stored, and any suitable combination thereof. A computer readable storage medium, as used herein, is not intended to be construed as ephemeral signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., pulses of light carried through a fiber optic cable), or electrical signals carried through a wire.

Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.Computer readable program instructions described herein may be downloaded from a computer readable storage medium to respective computing/processing units or to an external computer or storage unit over a network such as the Internet, a local area network, a wide area network, and/or a wireless network. The network may include copper transmission cables, fiber optic transmission lines, wireless transmission, routers, firewalls, switching units, gateway computers, and/or edge servers. A network adapter card or network interface in each computing/processing unit receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing unit.

Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, im Feld programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.Computer readable program instructions for carrying out operations of the present invention may be assembly language instructions, instruction set architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk, C++, or the like, as well as traditional procedural programming languages such as the "C" programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partially on the user's computer, as a stand-alone software package, partially on the user's computer and partially on a remote computer, or entirely on the remote computer or server. In the latter case, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, over the Internet using an Internet service provider). In some embodiments, electronic circuits, including, for example, programmable logic circuits, field programmable gate arrays (FPGAs), or programmable logic arrays (PLAs), may execute the computer-readable program instructions by utilizing state information of the computer-readable program instructions to personalize the electronic circuits to perform aspects of the present invention.

Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern durch durch einen Computer lesbare Programmanweisungen ausgeführt werden können.Aspects of the present invention are described herein with reference to flowcharts and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It is noted that each block of the flowcharts and/or block diagrams, as well as combinations of blocks in the flowcharts and/or block diagrams, may be implemented by computer readable program instructions.

Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder angegebenen Funktion/Schritts umsetzen.These computer readable program instructions may be provided to a processor of a general purpose computer, a special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions executed by the processor of the computer or other programmable data processing apparatus produce a means for implementing the functions/steps defined in the block(s) of flowcharts and/or block diagrams. These computer readable program instructions may also be stored on a computer readable storage medium capable of controlling a computer, programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium on which instructions are stored is a Product of manufacture, including instructions that implement aspects of the function/step specified in the block(s) of the flowchart and/or block diagrams or charts.

Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of process steps to be performed on the computer, other programmable apparatus, or other device to produce a computer-executable process, such that the instructions executing on the computer, other programmable apparatus, or other device implement the functions/steps set forth in the flowchart and/or block diagram block(s).

Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products in accordance with various embodiments of the present invention. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or portion of instructions comprising one or more executable instructions for performing the particular logical function(s). In some alternative implementations, the functions indicated in the block may occur in a different order than shown in the figures. For example, two blocks shown in sequence may actually execute substantially simultaneously, or the blocks may sometimes execute in reverse order depending on the corresponding functionality. It should also be noted that each block of the block diagrams and/or flowcharts, and combinations of blocks in the block diagrams and/or flowcharts, may be implemented by special purpose hardware-based systems that perform the specified functions or steps, or execute combinations of special purpose hardware and computer instructions.

Überdies kann ein System gemäß verschiedenen Ausführungsformen einen Prozessor und eine Logik enthalten, die im Prozessor integriert und/oder von diesem ausführbar ist, wobei die Logik so konfiguriert ist, dass sie einen oder mehrere der hierin dargelegten Prozessschritte ausführt. Integriert bedeutet, dass eine Logik in Form von Hardware-Logik im Prozessor eingebettet ist, zum Beispiel ein anwendungsspezifischer integrierter Schaltkreis (application specific integrated circuit, ASIC), ein FPGA usw. Vom Prozessor ausführbar bedeutet, dass es sich bei der Logik um Hardware-Logik, Software-Logik wie Firmware, einen Teil eines Betriebssystems, einen Teil eines Anwendungsprogramms usw. oder eine Kombination aus Hardware- und Software-Logik handeln kann, auf die der Prozessor zugreifen kann und die so konfiguriert ist, dass sie den Prozessor veranlasst, beim Ausführen durch den Prozessor eine Funktionalität auszuführen. Eine Software-Logik kann in einem lokalen und/oder entfernt angeordneten Speicher eines beliebigen, nach dem Stand der Technik bekannten Speichertyps gespeichert sein. Es kann ein beliebiger, nach dem Stand der Technik bekannter Prozessor verwendet werden, z.B. ein Software-Prozessormodul und/oder ein Hardware-Prozessor wie ein ASIC, ein FPGA, eine Zentraleinheit (CPU), ein integrierter Schaltkreis (IC), eine Grafikverarbeitungseinheit (GPU) usw.Moreover, according to various embodiments, a system may include a processor and logic integrated and/or executable by the processor, the logic configured to perform one or more of the process steps set forth herein. Integrated means that logic is embedded in the processor in the form of hardware logic, for example, an application specific integrated circuit (ASIC), an FPGA, etc. Processor executable means that the logic may be hardware logic, software logic such as firmware, a portion of an operating system, a portion of an application program, etc., or a combination of hardware and software logic that is accessible to the processor and configured to cause the processor to perform functionality when executed by the processor. Software logic may be stored in local and/or remote memory of any type of memory known in the art. Any processor known in the art may be used, e.g. a software processor module and/or a hardware processor such as an ASIC, an FPGA, a central processing unit (CPU), an integrated circuit (IC), a graphics processing unit (GPU), etc.

Es ist klar, dass die verschiedenen Merkmale der vorhergehenden Systeme und/oder Methodiken auf eine beliebige Weise kombiniert werden können, wobei eine Mehrzahl von Kombinationen aus den oben dargelegten Beschreibungen erzeugt wird.It will be appreciated that the various features of the foregoing systems and/or methodologies may be combined in any manner, producing a variety of combinations from the descriptions set forth above.

Außerdem ist klar, dass Ausführungsformen der vorliegenden Erfindung in Form eines Dienstes bereitgestellt werden können, der im Auftrag eines Kunden zur Verfügung gestellt wird, um einen bedarfsorientierten Dienst anzubieten.Furthermore, it is to be understood that embodiments of the present invention may be provided in the form of a service provided on behalf of a customer to provide a service on demand.

Zwar wurden vorstehend verschiedene Ausführungsformen beschrieben, es versteht sich jedoch von selbst, dass sie lediglich beispielhaft und ohne Einschränkung dargelegt wurden. Folglich sollten die Breite und der Schutzumfang einer bevorzugten Ausführungsform nicht durch eine der oben beschriebenen beispielhaften Ausführungsformen eingeschränkt werden, sondern ausschließlich gemäß den folgenden Ansprüchen und ihren Äquivalenten definiert werden.While various embodiments have been described above, it is to be understood that they have been presented by way of example only and not limitation. Accordingly, the breadth and scope of a preferred embodiment should not be limited by any of the exemplary embodiments described above, but should be defined only in accordance with the following claims and their equivalents.

Claims (23)

Gemultiplexter neuronaler Kernschaltkreis, aufweisend: T Sätze von elektronischen Neuronen, wobei T ein ganzzahliger Multiplexing-Faktor und als Wert gleich vier ist; T Sätze von elektronischen Axonen, wobei jeder Satz der T Sätze von elektronischen Axonen einem der T Sätze von elektronischen Neuronen entspricht; und ein synaptisches Verbindungsnetzwerk, das eine Mehrzahl von elektronischen Synapsen aufweist, die jeweils ein einzelnes elektronisches Axon mit einem einzelnen elektronischen Neuron verbinden, wobei das Verbindungsnetzwerk jeden der T Sätze von elektronischen Axonen mit seinem entsprechenden Satz von elektronischen Neuronen verbindet; und einen Satz von Axonpuffern, die jeweils in T Partitionen unterteilt sind, wobei jede der T Partitionen mit einem von T Unterzeitschritten eines Zeitschrittes verbunden ist, und wobei jeder der T Unterzeitschritte aufweist: einen gemeinsamen Satz von Neuronenparametern, wobei die Neuronenparameter eine Spike-Schwelle, eine Leckrate und Axontyp-Gewichte aufweisen; einen gemeinsamen Satz von Neuronen-Zielorten, die auf ein Zielaxon für jedes der elektronischen Neuronen hinweisen, und einen anderen Satz von Neuronenmembranpotenzialen als die anderen Unterzeitschritte, wobei jeder Satz von Neuronenmembranpotenzialen ein Membranpotenzial V aufweist, das ansteigt, wenn Eingaben von quellenerregenden Neuronen empfangen werden, und das abfällt, wenn Eingaben von quellenhemmenden Neuronen empfangen werden, wobei die gemultiplexte neuronale Kernschaltung für die T Unterzeitschritte des Zeitschrittes zeitmultiplexiert ist, wobei synaptische Gewichte und die Neuronenparameter über die T Unterzeitschritte gemeinsam genutzt werden, und wobei jeder der T Unterzeitschritte einem anderen Satz von Neuronen-Zielorten und einem anderen Satz von Neuronen-Membranpotentialen als die anderen Sub-Zeitschritte zugeordnet ist, so dass die multiplexierte neuronale Kernschaltung während eines Zeitschrittes als vier Kerne arbeitet, wobei jeder der vier Kerne seine eigenen einzigartigen Neuronen-Zielorte und NeuronenMembranpotentiale hat.A multiplexed neural core circuit comprising: T sets of electronic neurons, where T is an integer multiplexing factor and is equal to four; T sets of electronic axons, each set of the T sets of electronic axons corresponding to one of the T sets of electronic neurons; and a synaptic connection network comprising a plurality of electronic synapses each connecting a single electronic axon to a single electronic neuron, wherein the interconnection network connects each of the T sets of electronic axons to its corresponding set of electronic neurons; and a set of axon buffers each divided into T partitions, each of the T partitions associated with one of T sub-time steps of a time step, and each of the T sub-time steps comprising: a common set of neuron parameters, the neuron parameters comprising a spike threshold, a leak rate, and axon type weights; a common set of neuron target locations indicative of a target axon for each of the electronic neurons, and a different set of neuron membrane potentials than the other sub-time steps, each set of neuron membrane potentials having a membrane potential V that increases when receiving inputs from source excitatory neurons and that decreases when receiving inputs from source inhibitory neurons, wherein the multiplexed core neural circuit is time multiplexed for the T sub-time steps of the time step, with synaptic weights and the neuron parameters being shared across the T sub-time steps, and wherein each of the T sub-time steps is associated with a different set of neuron target locations and a different set of neuron membrane potentials than the other sub-time steps, such that the multiplexed core neural circuit operates as four cores during a time step, each of the four cores having its own unique neuron target locations and neuron membrane potentials. Gemultiplexter neuronaler Kernschaltkreis nach Anspruch 1, wobei das synaptische Verbindungsnetzwerk von den T Sätzen von elektronischer Neuronen gemeinsam genutzt wird und eine Mehrzahl von Neuronen-Zielorten von den T Sätzen elektronischer Neuronen gemeinsam genutzt wird.Multiplexed neural core circuit according to Claim 1 , where the synaptic connection network is shared by the T sets of electronic neurons and a plurality of neuron target sites are shared by the T sets of electronic neurons. Gemultiplexter neuronaler Kernschaltkreis nach Anspruch 1, wobei die Neuronenmembranpotenziale jeweils einen Einzel- oder Mehrbitstatus aufweist, und jeder der T Unterzeitschritte anzeigt, wann ein in einem Spike-Ereignis-Paket gekapseltes Feuerungsereignis erzeugt wird.Multiplexed neural core circuit according to Claim 1 , where the neuron membrane potentials each have a single or multi-bit state, and each of the T sub-time steps indicates when a firing event encapsulated in a spike event packet is generated. Gemultiplexter neuronaler Kernschaltkreis nach Anspruch 1, wobei ein Neuronenzustand von den T Sätzen von elektronischen Neuronen gemeinsam genutzt wird, das synaptische Verbindungsnetzwerk von den T Sätzen elektronischer Neuronen gemeinsam genutzt wird, der Satz von Neuronenparametern Gewichte der Axontypen Syn0 , Syn1 und Syn2 aufweist, und eine Vielzahl von Neuronen-Zielorten von den T Sätzen elektronischer Neuronen gemeinsam genutzt wird.Multiplexed neural core circuit according to Claim 1 , where a neuron state is shared by the T sets of electronic neurons, the synaptic connection network is shared by the T sets of electronic neurons, the set of neuron parameters has weights of the axon types Syn0 , Syn1 and Syn2 , and a plurality of neuron target locations are shared by the T sets of electronic neurons. Gemultiplexter neuronaler Kernschaltkreis nach Anspruch 1, wobei ein Betrieb des gemultiplexten neuronalen Kernschaltkreises in Form einer Mehrzahl von diskreten Zeitschritten beschrieben wird, und in einem einzelnen diskreten Zeitschritt jeder Satz der T Sätze von elektronischen Axonen über das synaptische Verbindungsnetzwerk mit seinem entsprechenden Satz von elektronischen Neuronen verbunden ist.Multiplexed neural core circuit according to Claim 1 , wherein operation of the multiplexed core neural circuit is described in terms of a plurality of discrete time steps, and in a single discrete time step, each set of the T sets of electronic axons is connected to its corresponding set of electronic neurons via the synaptic connection network. Gemultiplexter neuronaler Kernschaltkreis nach Anspruch 5, der außerdem aufweist: Unterteilen jedes der Mehrzahl von diskreten Zeitschritten in T Unterzeitschritte, Zuweisen von einem der T Teilzeitschritte zu jedem Satz der T Sätze von elektronischen Axonen und seinem entsprechenden Satz von elektronischen Neuronen, und Verbinden jedes Satzes der T Sätze elektronischer Axonen über das synaptische Verbindungsnetzwerk mit seinem entsprechenden Satz von elektronischen Neuronen in ihrem zugewiesenen der T Teilzeitschritte.Multiplexed neural core circuit according to Claim 5 further comprising: dividing each of the plurality of discrete time steps into T sub-time steps, assigning one of the T sub-time steps to each set of the T sets of electronic axons and its corresponding set of electronic neurons, and connecting each set of the T sets of electronic axons via the synaptic connection network to its corresponding set of electronic neurons in its assigned one of the T sub-time steps. Gemultiplexter neuronaler Kernschaltkreis nach Anspruch 1, der außerdem zwei verschiedene Speicherbänke aufweist, wobei die beiden verschiedenen Speicherbänke aufweisen: eine erste Speicherbank, die das synaptische Verbindungsnetzwerk, den gemeinsamen Satz von Neuronenparametern, den gemeinsamen Satz von Neuronenzielorten und einen Neuronenzustand für alle elektronischen Neuronen in den T Sätzen der elektronischen Neuronen aufweist, und eine zweite Speicherbank, die den Satz von Axonpuffern aufweist.Multiplexed neural core circuit according to Claim 1 , further comprising two different memory banks, the two different memory banks comprising: a first memory bank comprising the synaptic connection network, the common set of neuron parameters, the common set of neuron target locations, and a neuron state for all electronic neurons in the T sets of electronic neurons, and a second memory bank comprising the set of axon buffers. Gemultiplexter neuronaler Kernschaltkreis nach Anspruch 1, wobei der Satz von Axonpuffern in T Zeilen × max(Δ) Spalten unterteilt ist, wobei max(Δ) eine Anzahl von Zeitverzögerungen ist.Multiplexed neural core circuit according to Claim 1 , where the set of axon buffers is divided into T rows × max(Δ) columns, where max(Δ) is a number of time delays. Gemultiplexter neuronaler Kernschaltkreis nach Anspruch 8, weiterhin aufweisend eine erste Speicherbank, die das synaptische Verbindungsnetzwerk, den gemeinsamen Satz von Neuronenparametern, den gemeinsamen Satz Neuronenzielorten und den Neuronenzustand für alle elektronischen Neuronen in den T Sätzen von elektronischen Neuronen aufweist, und eine zweite Speicherbank, die den Satz von Axonpuffern aufweist; wobei die erste Speicherbank unter Verwendung eines ersten Speicherabschnittes, der das synaptische Verbindungsnetzwerk aufweist, und eines zweiten Speicherabschnittes, der den gemeinsamen Satz von Neuronenparametern, den gemeinsamen Satz von Neuronen-Zielorten und den Neuronenstatus für alle elektronischen Neuronen innerhalb der T Sätze elektronischer Neuronen aufweist, implementiert ist, wobei der erste Speicherabschnitt sich von dem zweiten Speicherabschnitt unterscheidet oder gleich diesem ist.Multiplexed neural core circuit according to Claim 8 , further comprising a first memory bank comprising the synaptic connection network, the common set of neuron parameters, the common set of neuron target locations and the neuron state for all electronic neurons in the T sets of electronic neurons, and a second memory bank comprising the set of axon buffers; wherein the first memory bank is stored using a first memory section comprising the synaptic connection network and a second memory section comprising the common set of neuron parameters, the common set of neuron target locations, and the neuron status for all electronic neurons within the T sets of electronic neurons, wherein the first memory section is different from or equal to the second memory section. Von einem Computer implementiertes Verfahren zum Multiplexen eines neuronalen Kernschaltkreises aufweisend: Konfigurieren von T Sätzen von elektronischen Neuronen, unter Verwendung eines Hardware-Prozessors, wobei T einen ganzzahliger Multiplexfaktor T ist, der als Wert vier aufweist; Konfigurieren von T Sätzen von elektronischen Neuronen, unter Verwendung eines Hardware-Prozessors, wobei jeder der Sätze von elektronischen Axonen einem der T Sätze von elektronischen Neuronen entspricht; Konfigurieren, unter Verwendung des Hardware-Prozessors, eines synaptischen Verbindungsnetzwerks, das eine Vielzahl von elektronischen Synapsen aufweist, die jeweils ein einzelnes elektronisches Axon mit einem einzelnen elektronischen Neuron verbinden, wobei das Verbindungsnetzwerk jeden Satz der T Sätze von elektronischen Axonen mit seinem entsprechenden Satz von elektronischen Neuronen verbindet; und Konfigurieren, unter Verwendung des Hardware-Prozessors, eines Satzes von Axonpuffern, die jeweils in T Partitionen unterteilt sind, wobei jede der T Partitionen mit einem von T Unterzeitschritten eines Zeitschritts assoziiert ist, und jeder der T Unterzeitschritte aufweist: einen gemeinsamen Satz von Neuronenparametern, wobei die Neuronenparameter eine Spike-Schwelle, eine Leckrate und Axontyp-Gewichte aufweisen; einen gemeinsamen Satz von Neuronen-Zielorten, die ein Zielaxon für jedes der elektronischen Neuronen angeben; und einen anderen Satz von Neuronenmembranpotenzialen als die anderen Unterzeitschritte, wobei jeder Satz von Neuronenmembranpotenzialen ein Membranpotenzial V aufweist, das ansteigt, wenn Eingaben von quellenerregenden Neuronen empfangen werden, und das abfällt, wenn Eingaben von quellenhemmenden Neuronen empfangen werden; wobei die gemultiplexte neuronale Kernschaltung für die T Unterzeitschritte des Zeitschrittes zeitmultiplexiert ist, wobei synaptische Gewichte und die Neuronenparameter über die T Unterzeitschritte gemeinsam genutzt werden; und wobei jeder der T Unterzeitschritte mit einem anderen Satz von Neuronen-Zielorten und einem anderen Satz von Neuronen-Membranpotentialen als die anderen Sub-Zeitschritte verbunden ist, so dass die multiplexierte neuronale Kernschaltung während eines Zeitschrittes als vier Kerne arbeitet, wobei jeder der vier Kerne seine eigenen einzigartigen Neuronen-Zielorte und NeuronenMembranpotentiale hat.A computer-implemented method for multiplexing a core neural circuit, comprising: configuring, using a hardware processor, T sets of electronic neurons, where T is an integer multiplexing factor T having a value of four; configuring, using a hardware processor, T sets of electronic neurons, wherein each of the sets of electronic axons corresponds to one of the T sets of electronic neurons; configuring, using the hardware processor, a synaptic interconnection network comprising a plurality of electronic synapses each connecting a single electronic axon to a single electronic neuron, the interconnection network connecting each set of the T sets of electronic axons to its corresponding set of electronic neurons; and configuring, using the hardware processor, a set of axon buffers each divided into T partitions, each of the T partitions associated with one of T sub-time steps of a time step, and each of the T sub-time steps having: a common set of neuron parameters, the neuron parameters comprising a spike threshold, a leak rate, and axon type weights; a common set of neuron target locations specifying a target axon for each of the electronic neurons; and a different set of neuron membrane potentials than the other sub-time steps, each set of neuron membrane potentials having a membrane potential V that increases when receiving inputs from source excitatory neurons and that decreases when receiving inputs from source inhibitory neurons; wherein the multiplexed core neural circuit is time-multiplexed for the T sub-time steps of the time step, with synaptic weights and the neuron parameters being shared across the T sub-time steps; and wherein each of the T sub-time steps is associated with a different set of neuron target locations and a different set of neuron membrane potentials than the other sub-time steps, such that the multiplexed core neural circuit operates as four cores during a time step, each of the four cores having its own unique neuron target locations and neuron membrane potentials. Von einem Computer implementiertes Verfahren nach Anspruch 10, wobei das synaptische Verbindungsnetzwerk von den T Sätzen von elektronischen Neuronen gemeinsam genutzt wird.A computer-implemented method according to Claim 10 , where the synaptic connection network is shared by the T sets of electronic neurons. Von einem Computer implementiertes Verfahren nach Anspruch 10, wobei eine Mehrzahl von Neuronenparametern von den T Sätzen von elektronischen Neuronen gemeinsam genutzt wird.A computer-implemented method according to Claim 10 , where a plurality of neuron parameters are shared among the T sets of electronic neurons. Von einem Computer implementiertes Verfahren nach Anspruch 10, wobei eine Mehrzahl von Neuronenzielorten von den T Sätzen von elektronischen Neuronen gemeinsam genutzt wird.A computer-implemented method according to Claim 10 , where a plurality of neuron target locations are shared among the T sets of electronic neurons. Von einem Computer implementiertes Verfahren nach Anspruch 10, wobei ein Neuronenzustand von den T Sätzen von elektronischen Neuronen gemeinsam genutzt wird.A computer-implemented method according to Claim 10 , where a neuron state is shared by the T sets of electronic neurons. Von einem Computer implementiertes Verfahren nach Anspruch 10, wobei ein Betrieb des gemultiplexten neuronalen Kernschaltkreises in Form einer Mehrzahl von diskreten Zeitschritten beschrieben wird, und in einem einzelnen diskreten Zeitschritt jeder Satz der T Sätze von elektronischen Axonen über das synaptische Verbindungsnetzwerk mit seinem entsprechenden Satz von elektronischen Neuronen verbunden ist.A computer-implemented method according to Claim 10 , wherein operation of the multiplexed core neural circuit is described in terms of a plurality of discrete time steps, and in a single discrete time step, each set of the T sets of electronic axons is connected to its corresponding set of electronic neurons via the synaptic connection network. Von einem Computer implementiertes Verfahren nach Anspruch 15, das außerdem aufweist: Unterteilen jedes der Mehrzahl von diskreten Zeitschritten in T Unterzeitschritte, Zuweisen jedes Satzes der T Sätze elektronischer Axone und seines entsprechenden Satzes elektronischer Neuronen zu einem der T Teilzeitschritte, und Verbinden jedes Satz der T Sätze elektronischer Axone über das synaptische Verbindungsnetzwerk mit seinem entsprechenden Satz von elektronischen Neuronen in ihrem zugewiesenen der T Teilzeitschritte.A computer-implemented method according to Claim 15 further comprising: dividing each of the plurality of discrete time steps into T sub-time steps, assigning each set of the T sets of electronic axons and its corresponding set of electronic neurons to one of the T sub-time steps, and connecting each set of the T sets of electronic axons via the synaptic connection network to its corresponding set of electronic neurons in its assigned one of the T sub-time steps. Von einem Computer implementiertes Verfahren nach Anspruch 10, das außerdem ein Speichern von zwei verschiedenen Speicherbänken aufweist, wobei die zwei verschiedenen Speicherbänke aufweisen: eine erste Speicherbank, die das synaptische Verbindungsnetzwerk, den gemeinsamen Satz von Neuronenparametern, den gemeinsamen Satz von Neuronenzielorten und einen Neuronenzustand für alle elektronischen Neuronen in den T Sätzen von elektronischen Neuronen aufweist, und eine zweite Speicherbank, die den Satz von Axonpuffern aufweist.A computer-implemented method according to Claim 10 , further comprising storing two different memory banks, the two different memory banks comprising: a first memory bank comprising the synaptic connection network, the common set of neuron parameters, the common set of neuron target locations and a neuron state for all electronic neurons in the T sets of electronic neurons, and a second memory bank containing the set of axon buffers. Neurosynaptisches System, das aufweist: einen neurosynaptischen Chip, ein neurosynaptisches Einzelkern-Modul als Komponente auf einem Chip oder ein neurosynaptisches Mehrkern-Modul als Komponente auf einem Chip, das eine Mehrzahl von gemultiplexten neuronalen Kernschaltkreisen aufweist, die über ein chipintegriertes Netzwerk miteinander verbunden sind, wobei jeder aus der Mehrzahl von gemultiplexten neuronalen Kernschaltkreisen aufweist: T Sätze von elektronischen Neuronen, wobei T ein ganzzahliger Multiplexing-Faktor größer als vier ist; T Sätze von elektronischen Axonen, wobei jeder Satz der T Sätze von elektronischen Axonen einem der T Sätze von elektronischen Neuronen entspricht; und ein synaptisches Verbindungsnetzwerk, das eine Mehrzahl von elektronischen Synapsen aufweist, die jeweils ein einzelnes elektronisches Axon mit einem einzelnen elektronischen Neuron verbinden, wobei das Verbindungsnetzwerk jeden der T Sätze von elektronischen Axonen mit seinem entsprechenden Satz von elektronischen Neuronen verbindet; und einen Satz von Axonpuffern, die jeweils in T Partitionen unterteilt sind, wobei jede der T Partitionen mit einem von T Unterzeitschritten eines Zeitschrittes verbunden ist, und wobei jeder der T Unterzeitschritte aufweist: einen gemeinsamen Satz von Neuronenparametern, wobei die Neuronenparameter eine Spike-Schwelle, eine Leckrate und Axontyp-Gewichte aufweisen; einen gemeinsamen Satz von Neuronen-Zielorten, die auf ein Zielaxon für jedes der elektronischen Neuronen hinweisen; und einen anderen Satz von Neuronenmembranpotenzialen als die anderen Teilzeitschritte, wobei jeder Satz von Neuronenmembranpotenzialen ein Membranpotenzial V aufweist, das ansteigt, wenn Eingaben von quellenerregenden Neuronen empfangen werden, und das abfällt, wenn Eingaben von quellenhemmenden Neuronen empfangen werden, wobei die gemultiplexte neuronale Kernschaltung für die T Unterzeitschritte des Zeitschritts zeitmultiplexiert ist, wobei synaptische Gewichte und die Neuronenparameter über die T Unterzeitschritte gemeinsam genutzt werden, und wobei jeder der T Unterzeitschritte mit einem anderen Satz von Neuronen-Zielorten und einem anderen Satz von Neuronen-Membranpotentialen als die anderen Unterzeitschritte verbunden ist, so dass die multiplexierte neuronale Kernschaltung während eines Zeitschrittes als vier Kerne arbeitet, wobei jeder der vier Kerne seine eigenen einzigartigen Neuronen-Zielorte und NeuronenMembranpotentiale hat.A neurosynaptic system comprising: a neurosynaptic chip, a single-core neurosynaptic component-on-chip module, or a multi-core neurosynaptic component-on-chip module comprising a plurality of multiplexed core neural circuits interconnected via an on-chip network, each of the plurality of multiplexed core neural circuits comprising: T sets of electronic neurons, where T is an integer multiplexing factor greater than four; T sets of electronic axons, each set of the T sets of electronic axons corresponding to one of the T sets of electronic neurons; and a synaptic interconnection network comprising a plurality of electronic synapses each connecting a single electronic axon to a single electronic neuron, the interconnection network connecting each of the T sets of electronic axons to its corresponding set of electronic neurons; and a set of axon buffers each divided into T partitions, each of the T partitions associated with one of T sub-time steps of a time step, and each of the T sub-time steps comprising: a common set of neuron parameters, the neuron parameters comprising a spike threshold, a leak rate, and axon type weights; a common set of neuron target locations indicative of a target axon for each of the electronic neurons; and a different set of neuron membrane potentials than the other sub-time steps, each set of neuron membrane potentials having a membrane potential V that increases when receiving inputs from source excitatory neurons and that decreases when receiving inputs from source inhibitory neurons, wherein the multiplexed core neural circuit is time multiplexed for the T sub-time steps of the time step, with synaptic weights and the neuron parameters being shared across the T sub-time steps, and wherein each of the T sub-time steps is associated with a different set of neuron target locations and a different set of neuron membrane potentials than the other sub-time steps, such that the multiplexed core neural circuit operates as four cores during a time step, each of the four cores having its own unique neuron target locations and neuron membrane potentials. Neurosynaptisches System nach Anspruch 18, wobei der neurosynaptische Chip, das neurosynaptische Einzelkern-Modul oder das neurosynaptische Mehrkern-Modul über ein außerhalb des Chips befindliches Netzwerk miteinander verbunden sind.Neurosynaptic system according to Claim 18 , wherein the neurosynaptic chip, the neurosynaptic single-core module or the neurosynaptic multi-core module are interconnected via a network located outside the chip. Neurosynaptisches System nach Anspruch 18, wobei das chipintegrierte Netzwerk ereignisgesteuert ist.Neurosynaptic system according to Claim 18 , where the on-chip network is event-driven. Neurosynaptisches System nach Anspruch 19, wobei das außerhalb des Chips befindliche Netzwerk ereignisgesteuert ist.Neurosynaptic system according to Claim 19 , where the off-chip network is event-driven. Neurosynaptisches System nach Anspruch 18, wobei einer oder mehrere aus der Mehrzahl von gemultiplexten neuronalen Kernschaltkreisen einen ganzzahligen Multiplexfaktor aufweisen, der sich von den anderen gemultiplexten neuronalen Kernschaltkreisen aus der Mehrzahl von gemultiplexten neuronalen Kernschaltkreisen unterscheidet.Neurosynaptic system according to Claim 18 wherein one or more of the plurality of multiplexed core neural circuits have an integer multiplexing factor that is different from the other multiplexed core neural circuits of the plurality of multiplexed core neural circuits. Neurosynaptisches System nach Anspruch 22, wobei zwischen den Kernen übertragene Nachrichten Spike-Pakete aufweisen, die eine relative Adresse eines Zielkerns, eine Zeitverzögerung bei elektronischen Axonen, eine Adresse eines Satzes von elektronischen Axonen, eine Axonadresse und Daten kodieren, die eine Zuordnung zwischen dem ganzzahligen Multiplexfaktor Ts von Quellkernen und dem ganzzahligen Multiplexfaktor Td von Zielkernen kodieren.Neurosynaptic system according to Claim 22 , wherein messages transmitted between the nuclei comprise spike packets encoding a relative address of a target nucleus, a time delay in electronic axons, an address of a set of electronic axons, an axon address, and data encoding a mapping between the integer multiplexing factor Ts of source nuclei and the integer multiplexing factor Td of target nuclei.
DE112017000855.7T 2016-03-31 2017-03-09 Energy-efficient temporally multiplexed neurosynaptic core for implementing neural networks Active DE112017000855B4 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/087,898 US10990872B2 (en) 2016-03-31 2016-03-31 Energy-efficient time-multiplexed neurosynaptic core for implementing neural networks spanning power- and area-efficiency
US15/087,898 2016-03-31
PCT/IB2017/051392 WO2017168275A1 (en) 2016-03-31 2017-03-09 Energy-efficient time-multiplexed neurosynaptic core for implementing neural networks

Publications (2)

Publication Number Publication Date
DE112017000855T5 DE112017000855T5 (en) 2018-10-25
DE112017000855B4 true DE112017000855B4 (en) 2024-05-23

Family

ID=59959540

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112017000855.7T Active DE112017000855B4 (en) 2016-03-31 2017-03-09 Energy-efficient temporally multiplexed neurosynaptic core for implementing neural networks

Country Status (5)

Country Link
US (1) US10990872B2 (en)
JP (1) JP6912491B2 (en)
DE (1) DE112017000855B4 (en)
GB (1) GB2557780B (en)
WO (1) WO2017168275A1 (en)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10867238B2 (en) * 2016-12-20 2020-12-15 Intel Corporation Population-based connectivity architecture for spiking neural networks
TWI779069B (en) 2017-07-30 2022-10-01 埃拉德 希提 Memory chip with a memory-based distributed processor architecture
US11195079B2 (en) * 2017-11-22 2021-12-07 Intel Corporation Reconfigurable neuro-synaptic cores for spiking neural network
JP7179853B2 (en) * 2017-12-12 2022-11-29 アマゾン テクノロジーズ インコーポレイテッド On-chip computational network
US10803379B2 (en) 2017-12-12 2020-10-13 Amazon Technologies, Inc. Multi-memory on-chip computational network
US10846621B2 (en) 2017-12-12 2020-11-24 Amazon Technologies, Inc. Fast context switching for computational networks
CN118014031A (en) * 2018-03-22 2024-05-10 亚马逊技术股份有限公司 Processing for multiple input data sets
US11366998B2 (en) * 2018-03-27 2022-06-21 Intel Corporation Neuromorphic accelerator multitasking
US11205125B2 (en) 2018-06-29 2021-12-21 International Business Machines Corporation Scheduler and simulator for an area-efficient, reconfigurable, energy-efficient, speed-efficient neural network
EP3605401A1 (en) 2018-07-31 2020-02-05 GrAl Matter Labs S.A.S. Data processing module, data processing system and data processing method
US20200117981A1 (en) * 2018-10-11 2020-04-16 International Business Machines Corporation Data representation for dynamic precision in neural network cores
CN113570049B (en) * 2021-07-23 2024-05-28 上海新氦类脑智能科技有限公司 Relative addressing method, device, equipment and medium for interconnection of multiple SNN chips

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140180987A1 (en) 2012-12-21 2014-06-26 International Business Machines Corporation Time-division multiplexed neurosynaptic module with implicit memory addressing for implementing a neural network
US20140222740A1 (en) 2012-11-21 2014-08-07 International Business Machines Corporation Consolidating multiple neurosynaptic cores into one memory
US8977578B1 (en) 2012-06-27 2015-03-10 Hrl Laboratories, Llc Synaptic time multiplexing neuromorphic network that forms subsets of connections during different time slots
US20150324684A1 (en) 2014-05-08 2015-11-12 International Business Machines Corporation Neuromorphic hardware for neuronal computation and non-neuronal computation
CN105095967A (en) 2015-07-16 2015-11-25 清华大学 Multi-mode neural morphological network core

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8515885B2 (en) * 2010-10-29 2013-08-20 International Business Machines Corporation Neuromorphic and synaptronic spiking neural network with synaptic weights learned using simulation
US8856055B2 (en) 2011-04-08 2014-10-07 International Business Machines Corporation Reconfigurable and customizable general-purpose circuits for neural networks
US8909576B2 (en) 2011-09-16 2014-12-09 International Business Machines Corporation Neuromorphic event-driven neural computing architecture in a scalable neural network
US8996430B2 (en) 2012-01-27 2015-03-31 International Business Machines Corporation Hierarchical scalable neuromorphic synaptronic system for synaptic and structural plasticity
US8977583B2 (en) 2012-03-29 2015-03-10 International Business Machines Corporation Synaptic, dendritic, somatic, and axonal plasticity in a network of neural cores using a plastic multi-stage crossbar switching
US8868477B2 (en) 2012-03-29 2014-10-21 International Business Machines Coproration Multi-compartment neurons with neural cores
US9275328B1 (en) * 2012-05-03 2016-03-01 Hrl Laboratories, Llc Neuromorphic compiler
US9159020B2 (en) 2012-09-14 2015-10-13 International Business Machines Corporation Multiplexing physical neurons to optimize power and area
US9087301B2 (en) 2012-12-21 2015-07-21 International Business Machines Corporation Hardware architecture for simulating a neural network of neurons
US9940574B1 (en) * 2013-06-26 2018-04-10 Hrl Laboratories, Llc System and method to control a model state of a neuromorphic model of a brain
US10115054B2 (en) 2014-07-02 2018-10-30 International Business Machines Corporation Classifying features using a neurosynaptic system
CN105095961B (en) 2015-07-16 2017-09-29 清华大学 A kind of hybrid system of artificial neural network and impulsive neural networks
CN105095966B (en) 2015-07-16 2018-08-21 北京灵汐科技有限公司 The hybrid system of artificial neural network and impulsive neural networks
CN105095965B (en) 2015-07-16 2017-11-28 清华大学 The mixed communication method of artificial neural network and impulsive neural networks nerve

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8977578B1 (en) 2012-06-27 2015-03-10 Hrl Laboratories, Llc Synaptic time multiplexing neuromorphic network that forms subsets of connections during different time slots
US20140222740A1 (en) 2012-11-21 2014-08-07 International Business Machines Corporation Consolidating multiple neurosynaptic cores into one memory
US20140180987A1 (en) 2012-12-21 2014-06-26 International Business Machines Corporation Time-division multiplexed neurosynaptic module with implicit memory addressing for implementing a neural network
US20150324684A1 (en) 2014-05-08 2015-11-12 International Business Machines Corporation Neuromorphic hardware for neuronal computation and non-neuronal computation
CN105095967A (en) 2015-07-16 2015-11-25 清华大学 Multi-mode neural morphological network core

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
CN 1 05 095 967 A (Maschinenübersetzung, DPMA, Übersetzung erstellt am 19.05.2022)
CRUZ-ALBRECHT, Jose M.; DEROSIER, Timothy; SRINIVASA, Narayan: „A scalable neural chip with synaptic electronics using CMOS integrated memristors (erschienen in Nanotechnology, 2013, Vol. 24, No. 38
CRUZ-ALBRECHT, Jose M.; DEROSIER, Timothy; SRINIVASA, Narayan: A scalable neural chip with synaptic electronics using CMOS integrated memristors. Nanotech-nology, 2013, 24. Jg., Nr. 38, S. 384011
MEROLLA, Paul A. [et al.]: „A million spiking-neuron integrated circuit with a scalable communication network and interface - Supplementary Materials" (erschienen in Science, 2014, Vol. 345, No. 6197
MEROLLA, Paul A. [et al.]: A million spiking-neuron integrated circuit with a scalable communication network and interface – Supplementary Materials. Science, 2014, 345. Jg., Nr. 6197, S. 1-25
MINKOVICH, Kirill [et al.]: „Programming time-multiplexed reconfigurable hardware using a scalable neuromorphic compiler" (erschienen in IEEE transactions on neural networks and learning systems, 2012, Vol. 23, No. 6, S. 889-901
MINKOVICH, Kirill [et al.]: Programming time-multiplexed reconfigurable hardware using a scalable neuromorphic compiler. IEEE transactions on neural networks and learning systems, 2012, 23. Jg., Nr. 6, S. 889-901

Also Published As

Publication number Publication date
US20170286825A1 (en) 2017-10-05
WO2017168275A1 (en) 2017-10-05
US10990872B2 (en) 2021-04-27
GB2557780B (en) 2022-02-09
GB201803975D0 (en) 2018-04-25
DE112017000855T5 (en) 2018-10-25
JP2019515367A (en) 2019-06-06
JP6912491B2 (en) 2021-08-04
GB2557780A (en) 2018-06-27

Similar Documents

Publication Publication Date Title
DE112017000855B4 (en) Energy-efficient temporally multiplexed neurosynaptic core for implementing neural networks
DE112019002981T5 (en) PARALLEL COMPUTATION ARCHITECTURE WITH RECONFIGURABLE CORE LEVEL AND VECTOR LEVEL PARALLELITY
DE112018006189T5 (en) ROBUST GRADIENT WEIGHT COMPRESSION SCHEMES FOR DEEP LEARNING APPLICATIONS
DE112018004223T5 (en) Training artificial neural networks
DE112019000336T5 (en) MASSIVELY PARALLEL NEURAL INFERENCE DATA PROCESSING ELEMENTS
DE112013003349T5 (en) Neuronal core circuit
DE102016125131A1 (en) Efficient generation of stochastic spike patterns in nuclear-based neuromorphic systems
DE112016002292T5 (en) STACK PROCESSING IN A NEURONAL NETWORK PROCESSOR
DE112019003529T5 (en) Data representation for dynamic accuracy in the cores of neural networks
DE112016002298T5 (en) PREVIEW OF WEIGHTS FOR USE IN A NEURONAL NETWORK PROCESSOR
DE112016003245T5 (en) Resistive processing unit
DE112016002296T5 (en) VECTOR CONTROL UNIT IN A NEURONAL NETWORK PROCESSOR
DE3501272A1 (en) ADAPTIVE, SELF-REPAIRING PROCESSOR FIELD
DE102021107050A1 (en) GRADIENT COMPRESSION FOR DISTRIBUTED TRAINING
DE112019000676T5 (en) CENTRAL SCHEDULER AND INSTRUCTION ASSIGNMENT FOR A NEURAL INFERENCE PROCESSOR
DE112020004067T5 (en) HYBRID DATA-MODEL PARALLELITY FOR EFFICIENT DEEP LEARNING
DE102017128711A1 (en) Multi-core processor and method for dynamically adjusting a supply voltage and a clock frequency
DE102021107509A1 (en) MULTI-MODEL TRAINING PIPELINE IN DISTRIBUTED SYSTEMS
DE112020002186T5 (en) DNN TRAINING WITH ASYMMETRIC RPU UNITS
DE112019005119T5 (en) ALIGNMENT TECHNIQUES FOR ADJUSTING THE SYMMETRY POINT AS A ZERO WEIGHTING POINT IN ANALOGUE CROSSING POINT ARRANGEMENTS
DE102019103319A1 (en) STOCHASTIC ROUNDING OF NUMBER VALUES
DE112020003055T5 (en) REORDERING THE OPERATIONS OF A NEURAL NETWORK FOR PARALLEL EXECUTION
DE112017002931T5 (en) Scalable flow synaptic supercomputer for extremely high throughput neural networks
DE112021004537T5 (en) MEMORY-ORIENTED NEURAL NETWORK ACCELERATOR FOR DEPLOYABLE INFERENCE SYSTEMS
DE112016006015T5 (en) Maximize network fabric performance with granular router link power management

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division