DE112017000855B4 - Energiesparender zeitlich gemultiplexter neurosynaptischer Kern zum Implementieren neuronaler Netze - Google Patents

Energiesparender zeitlich gemultiplexter neurosynaptischer Kern zum Implementieren neuronaler Netze 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
English (en)
Other versions
DE112017000855T5 (de
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/de
Application granted granted Critical
Publication of DE112017000855B4 publication Critical patent/DE112017000855B4/de
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)
  • Semiconductor Memories (AREA)
  • Image Processing (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.

Description

  • HINTERGRUND
  • Die vorliegende Erfindung betrifft neurosynaptische Netzwerke, und insbesondere betrifft diese Erfindung zeitlich gemultiplexte neurosynaptische Kerne (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.
  • 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 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.
  • Trotzdem gibt es auf dem Gebiet des recht jungen technischen Gebietes von neuromorphic Computing weiteres Optimierungspotenzial, um die Leistungsfähigkeit derartiger Schaltkreise zu verbessern.
  • KURZDARSTELLUNG
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • KURZDARSTELLUNG DER ZEICHNUNGEN
  • 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.
  • AUSFÜHRLICHE BESCHREIBUNG
  • 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.
  • 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.
  • 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.
  • Die folgende Beschreibung offenbart mehrere bevorzugte Ausführungsformen von Systemen, Verfahren und Computerprogrammprodukten zum Multiplexen von neurosynaptischen Kernen.
  • 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 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 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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 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 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 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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 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
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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 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 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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 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 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.
  • 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 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 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.
  • 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.
  • 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.
  • 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 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • Ü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.
  • 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.
  • 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.
  • 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.

Claims (23)

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. 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.
  9. 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.
  10. 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.
  11. Von einem Computer implementiertes Verfahren nach Anspruch 10, wobei das synaptische Verbindungsnetzwerk von den T Sätzen von elektronischen Neuronen gemeinsam genutzt wird.
  12. Von einem Computer implementiertes Verfahren nach Anspruch 10, wobei eine Mehrzahl von Neuronenparametern von den T Sätzen von elektronischen Neuronen gemeinsam genutzt wird.
  13. Von einem Computer implementiertes Verfahren nach Anspruch 10, wobei eine Mehrzahl von Neuronenzielorten von den T Sätzen von elektronischen Neuronen gemeinsam genutzt wird.
  14. Von einem Computer implementiertes Verfahren nach Anspruch 10, wobei ein Neuronenzustand von den T Sätzen von elektronischen Neuronen gemeinsam genutzt wird.
  15. 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.
  16. 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.
  17. 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.
  18. 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.
  19. 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.
  20. Neurosynaptisches System nach Anspruch 18, wobei das chipintegrierte Netzwerk ereignisgesteuert ist.
  21. Neurosynaptisches System nach Anspruch 19, wobei das außerhalb des Chips befindliche Netzwerk ereignisgesteuert ist.
  22. 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.
  23. 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.
DE112017000855.7T 2016-03-31 2017-03-09 Energiesparender zeitlich gemultiplexter neurosynaptischer Kern zum Implementieren neuronaler Netze Active DE112017000855B4 (de)

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 (de) 2018-10-25
DE112017000855B4 true DE112017000855B4 (de) 2024-05-23

Family

ID=59959540

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112017000855.7T Active DE112017000855B4 (de) 2016-03-31 2017-03-09 Energiesparender zeitlich gemultiplexter neurosynaptischer Kern zum Implementieren neuronaler Netze

Country Status (5)

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

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
EP4187539B1 (de) 2017-07-30 2024-06-05 NeuroBlade Ltd. Speicherbasierte verteilte prozessorarchitektur
US11195079B2 (en) * 2017-11-22 2021-12-07 Intel Corporation Reconfigurable neuro-synaptic cores for spiking neural network
JP7179853B2 (ja) * 2017-12-12 2022-11-29 アマゾン テクノロジーズ インコーポレイテッド オンチップの計算ネットワーク
US10846621B2 (en) 2017-12-12 2020-11-24 Amazon Technologies, Inc. Fast context switching for computational networks
US10803379B2 (en) 2017-12-12 2020-10-13 Amazon Technologies, Inc. Multi-memory on-chip computational network
CN118014031A (zh) * 2018-03-22 2024-05-10 亚马逊技术股份有限公司 针对多个输入数据集的处理
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 (de) 2018-07-31 2020-02-05 GrAl Matter Labs S.A.S. Datenverarbeitungsmodul, datenverarbeitungssystem und datenverarbeitungsverfahren
US20200117981A1 (en) * 2018-10-11 2020-04-16 International Business Machines Corporation Data representation for dynamic precision in neural network cores
CN113570049B (zh) * 2021-07-23 2024-05-28 上海新氦类脑智能科技有限公司 多snn芯片互联的相对寻址方法、装置、设备和介质

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 (zh) 2015-07-16 2015-11-25 清华大学 一种多模态神经形态网络核

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 (zh) 2015-07-16 2017-09-29 清华大学 一种人工神经网络和脉冲神经网络的混合系统
CN105095966B (zh) 2015-07-16 2018-08-21 北京灵汐科技有限公司 人工神经网络和脉冲神经网络的混合计算系统
CN105095965B (zh) 2015-07-16 2017-11-28 清华大学 人工神经网络和脉冲神经网络神经的混合通信方法

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 (zh) 2015-07-16 2015-11-25 清华大学 一种多模态神经形态网络核

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
WO2017168275A1 (en) 2017-10-05
DE112017000855T5 (de) 2018-10-25
GB2557780A (en) 2018-06-27
US20170286825A1 (en) 2017-10-05
JP2019515367A (ja) 2019-06-06
GB2557780B (en) 2022-02-09
JP6912491B2 (ja) 2021-08-04
US10990872B2 (en) 2021-04-27
GB201803975D0 (en) 2018-04-25

Similar Documents

Publication Publication Date Title
DE112017000855B4 (de) Energiesparender zeitlich gemultiplexter neurosynaptischer Kern zum Implementieren neuronaler Netze
DE112019002981T5 (de) Parallelberechnungsarchitektur mit rekonfigurierbarer kernebenen- und vektorebenen-parallelität
DE112018006189T5 (de) Robuste gradienten-gewichtskomprimierungsschemata für deep-learning-anwendungen
DE112018004223T5 (de) Trainieren künstlicher neuronaler Netze
DE112019000336T5 (de) Massiv parallele neuronale inferenz-datenverarbeitungselemente
DE112013003349T5 (de) Schaltung mit neuronalem Kern
DE102016125131A1 (de) Effiziente Erzeugung stochastischer Spike-Muster in kernbasierten neuromorphen Systemen
DE112016002292T5 (de) Stapel-verarbeitung in einem neuronalen netzwerkprozessor
DE112019003529T5 (de) Datendarstellung für dynamische Genauigkeit in Kernen neuronaler Netze
DE112016002298T5 (de) Vorabruf von gewichten zur verwendung in einem neuronalen netzwerkprozessor
DE112016003245T5 (de) Resistive Verarbeitungseinheit
DE112016002296T5 (de) Vektor-recheneinheit in einem neuronalen netzwerkprozessor
DE3501272A1 (de) Adaptives, selbstausbesserndes prozessorfeld
DE102021107050A1 (de) Gradientenkomprimierung für verteiltes training
DE112019000676T5 (de) Zentraler scheduler und anweisungszuteiler für einen neuronalen inferenzprozessor
DE112020004067T5 (de) Hybride daten-modell-parallelität für effizientes deep learning
DE102017128711A1 (de) Mehrkernprozessor und Verfahren zur dynamischen Einstellung einer Versorgungsspannung und einer Taktfrequenz
DE112018004382T5 (de) Speicherbezogene Schnittstelle für Nachrichtenübergabe-Datenverarbeitungssysteme
DE112020002186T5 (de) Dnn-training mit asymmetrischen rpu-einheiten
DE112019005119T5 (de) Abgleichtechniken zum angleichen des symmetriepunktes als null-gewichtungspunkt in analogen kreuzungspunktanordnungen
DE102021107509A1 (de) Multi-modell-trainingspipeline in verteilten systemen
DE102019103319A1 (de) Stochastisches runden von zahlenwerten
DE112017002931T5 (de) Synaptischer Supercomputer mit skalierbarem Fluss für neuronale Netzwerke mit äußerstem Durchsatz
EP3502974A1 (de) Verfahren zur realisierung eines neuronalen netzes
DE112021004537T5 (de) Speicherorientierter beschleuniger für neuronale netze für bereitstellbare inferenzsysteme

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