-
Diese Erfindung erfolgte mit Unterstützung durch die US-Regierung gemäß HR0011-09-C-0002, die durch die Defense Advanced Research Projects Agency (DARPA) gewährt wurde. Die US-Regierung hat bestimmte Rechte an dieser Erfindung.
-
TECHNISCHES GEBIET
-
Ausführungsformen der Erfindung beziehen sich auf neuromorphe und synaptronische Berechnungssysteme und insbesondere auf eine Multiplex-Schaltung mit neuronalem Kern.
-
HINTERGRUND
-
Bei neuromorphen und synaptronischen Berechnungssystemen, die auch als künstliche neuronale Netze bezeichnet werden, handelt es sich um Rechensysteme, die ermöglichen, dass elektronische Systeme im Wesentlichen wie biologische Gehirne funktionieren. Bei neuromorphen und synaptronischen Berechnungssystemen wird im Allgemeinen nicht das herkömmliche digitale Modell des Bearbeitens von Nullen und Einsen genutzt. Stattdessen werden bei neuromorphen und synaptronischen Berechnungssystemen Verbindungen zwischen Verarbeitungselementen erzeugt, die mit Neuronen eines biologischen Gehirns annähernd funktional vergleichbar sind. Neuromorphe und synaptronische Berechnungssysteme können zahlreiche elektronische Schaltungen aufweisen, die biologischen Neuronen nachempfunden sind.
-
Bei biologischen Systemen wird die Kontaktstelle zwischen einem Axon eines Neurons und einem Dendrit eines anderen Neutrons als Synapse bezeichnet, und in Bezug auf die Synapse werden die beiden Neuronen als präsynaptisch bzw. postsynaptisch bezeichnet. Das Wesen unserer individuellen Erfahrungen wird im Übergangsleitwert der Synapsen gespeichert. Der synaptische Übergangsleitwert ändert sich zeitlich als eine Funktion der relativen Spike-Zeitpunkte der präsynaptischen und postsynaptischen Neuronen als von dem Spike-Zeitpunkt abhängige Plastizität (STDP). Nach der STDP-Regel vergrößert sich der Übergangsleitwert einer Synapse, wenn ihr postsynaptisches Neuron feuert, nachdem ihr präsynaptisches Neuron gefeuert hat, und verringert sich der Übergangsleitwert einer Synapse, wenn die Reihenfolge der beiden Feuerungsereignisse umgekehrt ist.
-
KURZDARSTELLUNG
-
Ausführungsformen der Erfindung beziehen sich auf eine Multiplex-Schaltung mit neuronalem Kern. Eine Ausführungsform weist eine Kernschaltung auf, die eine Speichereinheit enthält, die neuronale Attribute für mehrere Neuronen vorhält. Die Speichereinheit weist mehrere Einträge auf. Jeder Eintrag hält neuronale Attribute für ein entsprechendes Neuron vor. Die Kernschaltung weist des Weiteren eine Steuereinheit zum Verwalten der Speichereinheit auf. in Reaktion auf neuronale Feuerungsereignisse, die auf eines dieser Neuronen gerichtet sind, ruft die Steuereinheit neuronale Attribute für das Zielneuron aus einem entsprechenden Eintrag der Speichereinheit ab und integriert die Feuerungsereignisse auf der Grundlage der abgerufenen neuronalen Attribute, um ein Feuerungsereignis für das Zielneuron zu erzeugen.
-
Eine weitere Ausführungsform weist ein Vorhalten von neuronalen Attributen für mehrere Neuronen in einer Speichereinheit auf. Die Speichereinheit weist mehrere Einträge auf. Jeder Eintrag hält neuronale Attribute für ein entsprechendes Neuron vor. In Reaktion auf neuronale Feuerungsereignisse, die auf eines dieser Neuronen gerichtet sind, werden neuronale Attribute für das Zielneuron aus einem entsprechenden Eintrag der Speichereinheit abgerufen, und die Feuerungsereignisse werden auf der Grundlage der abgerufenen neuronalen Attribute integriert, um ein Feuerungsereignis für das Zielneuron zu erzeugen.
-
Diese und weitere Merkmale, Aspekte und Vorteile der vorliegenden Erfindung werden bei Bezugnahme auf die folgende Beschreibung, die angefügten Ansprüche und die beigefügten Zeichnungen verstanden.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Eine bzw. mehrere Ausführungsformen der Erfindung werden lediglich beispielhaft unter Bezugnahme auf die beigefügten Zeichnungen beschrieben, bei denen:
-
1 eine Schaltung mit neuronalem Kern gemäß einer Ausführungsform der Erfindung darstellt:
-
2 die Funktionsweise einer Kernschaltung beim Empfangen eines Eingabevektors von Feuerungsereignissen gemäß einer Ausführungsform der Erfindung darstellt;
-
3 Rücksetzen und Einrichten von Operationen für eine Kernschaltung gemäß einer Ausführungsform der Erfindung darstellt;
-
4 eine Multiplexschaltung mit neuronalem Kern gemäß einer Ausführungsform der Erfindung darstellt;
-
5 eine Blockdarstellung ist, die eine Speichereinheit einer Multiplex-Kernschaltung gemäß einer Ausführungsform der Erfindung zeigt;
-
6 eine Blockdarstellung ist, die Informationen zeigt, die in einem Eintrag einer Speichereinheit einer Multiplex-Kernschaltung gemäß einer Ausführungsform der Erfindung vorgehalten werden;
-
7 eine Blockdarstellung ist, die eine Multiplex-Kernschaltung gemäß einer Ausführungsform der Erfindung zeigt;
-
8 eine Blockdarstellung ist, die eine Multiplex-Kernschaltung beim Empfangen eines Binär-Eingabevektors gemäß einer Ausführungsform der Erfindung zeigt;
-
9 eine Blockdarstellung ist, die eine Teilmultiplex-Kernschaltung gemäß einer Ausführungsform der Erfindung zeigt;
-
10 einen schlanken Meta-Kern gemäß einer Ausführungsform der Erfindung darstellt;
-
11 eine Blockdarstellung ist, die eine schlanke Speichereinheit eines schlanken Meta-Kerns gemäß einer Ausführungsform der Erfindung zeigt;
-
12 einen breiten Meta-Kern gemäß einer Ausführungsform der Erfindung darstellt;
-
13 eine Blockdarstellung ist, die eine breite Speichereinheit eines breiten Meta-Kerns gemäß einer Ausführungsform der Erfindung zeigt;
-
14 einen Meta-Kern gemäß einer Ausführungsform der Erfindung darstellt;
-
15 eine Blockdarstellung ist, die eine Speichereinheit eines Meta-Kerns gemäß einer Ausführungsform der Erfindung zeigt;
-
16 ein neuronales Netzwerk gemäß einer Ausführungsform der Erfindung darstellt;
-
17 einem Ablaufplan eines beispielhaften Prozesses zum Verarbeiten von Feuerungsereignissen in einer Multiplex-Kernschaltung gemäß einer Ausführungsform der Erfindung darstellt; und
-
18 eine Übersichts-Blockdarstellung ist, die ein Informationsverarbeitungssystem zeigt, das zum Umsetzen einer Ausführungsform der Erfindung nützlich ist.
-
GENAUE BESCHREIBUNG
-
Ausführungsformen der Erfindung beziehen sich auf eine Multiplexschaltung mit neuronalem Kern. Eine Ausführungsform weist eine Kernschaltung mit einer Speichereinheit auf, die neuronale Attribute für mehrere Neuronen vorhält. Die Speichereinheit weist mehrere Einträge auf. Jeder Eintrag hält neuronale Attribute für ein entsprechendes Neuron vor. Die Kernschaltung weist des Weiteren eine Steuereinheit zum Verwalten der Speichereinheit auf. In Reaktion auf neuronale Feuerungsereignisse, die auf eines dieser Neuronen gerichtet sind, ruft die Steuereinheit neuronale Attribute für das Zielneuron aus einem entsprechenden Eintrag der Speichereinheit ab und integriert die Feuerungsereignisse auf der Grundlage der abgerufenen neuronalen Attribute, um ein Feuerungsereignis für das Zielneuron zu erzeugen.
-
Eine weitere Ausführungsform weist Vorhalten neuronaler Attribute für mehrere Neuronen in einer Speichereinheit auf. Die Speichereinheit weist mehrere Einträge auf. Jeder Eintrag hält neuronale Attribute für ein entsprechendes Neuron vor. In Reaktion auf neuronale Feuerungsereignisse, die auf eines dieser Neuronen gerichtet sind, werden neuronale Attribute für das Zielneuron aus einem entsprechenden Eintrag der Speichereinheit abgerufen und die Feuerungsereignisse werden auf der Grundlage der abgerufenen neuronalen Attribute integriert, um ein Feuerungsereignis für das Zielneuron zu erzeugen.
-
Jeder Eintrag der Speichereinheit hält die folgenden neuronalen Attribute für ein entsprechendes Neuron vor: Informationen der synaptischen Konnektivität, Neuronenparameter und Informationen der Weglenkungsdaten. Die Steuereinheit erzeugt ein Feuerungsereignis für ein Zielneuron, wenn integrierte Feuerungsereignisse einen Schwellenwert des Neuronenparameters für das Zielneuron übersteigen.
-
Für jedes Zielneuron aktualisiert die Steuereinheit wenigstens einen Neuronenparameter für das Zielneuron.
-
Die Steuereinheit multiplext die Berechnungs- und Steuerlogik für mehrere Neuronen. Für jedes Neuron, das einem Eintrag der Speichereinheit entspricht, empfängt die Steuereinheit ankommende Feuerungsereignisse, die auf dieses Neuron gerichtet sind, und ruft Informationen der synaptischen Konnektivität für dieses Neuron aus dem entsprechenden Eintrag der Speichereinheit ab.
-
Für jedes Neuron, das einem Eintrag der Speichereinheit entspricht, ruft die Steuereinheit Neuronenparameter für dieses Neuron aus dem entsprechenden Eintrag der Speichereinheit ab und integriert ankommende Feuerungsereignisse, die an dieses Neuron gerichtet sind, wobei die ankommenden Feuerungsereignisse auf der Grundlage der Neuronenparameter und der synaptischen Konnektivität für dieses Neuron integriert werden. Die Steuereinheit erzeugt ein abgehendes Feuerungsereignis, wenn die integrierten ankommenden Feuerungsereignisse einen Schwellenwert des Neuronenparameters für dieses Neuron übersteigen, wobei das abgehende Feuerungsereignis auf der Grundlage der Informationen der Weglenkungsdaten für dieses Neuron erzeugt wird. Die Steuereinheit aktualisiert wenigstens einen Neuronenparameter für das Neuron.
-
Bei jedem Zeitschritt werden alle Einträge der Speichereinheit sequenziell ausgelesen.
-
Bei einer Ausführungsform handelt es sich bei der Speichereinheit um ein Speicherarray, das mehrere Partitionen enthält. Eine erste Partition hält Informationen der synaptischen Konnektivität für mehrere Neuronen vor, eine zweite Partition hält Neuronenparameter für die Neuronen vor, und eine dritte Partition hält Informationen der Weglenkungsdaten für die Neuronen vor.
-
Bei einer weiteren Ausführungsform enthält die Speichereinheit mehrere Speicherarrays. Ein erstes Speicherarray hält Informationen der synaptischen Konnektivität für mehrere Neuronen vor, ein zweites Speicherarray hält Neuronenparameter für die Neuronen vor, und ein drittes Speicherarray hält Informationen der Weglenkungsdaten für die Neuronen vor.
-
Der in diesem Zusammenhang verwendete Ausdruck digitales Neuron repräsentiert eine Struktur, die so eingerichtet ist, dass sie ein biologisches Neuron simuliert. Ein digitales Neuron erzeugt Verbindungen zwischen Verarbeitungselementen, die mit Neuronen eines biologischen Gehirns im Wesentlichen annähernd funktional vergleichbar sind. Daher kann ein neuromorphes und synaptronisches Berechnungssystem, das digitale Neuronen gemäß Ausführungsformen der Erfindung aufweist, zahlreiche elektronische Schaltungen enthalten, die biologischen Neuronen nachempfunden sind. Des Weiteren kann ein neuromorphes und synaptronisches Berechnungssystem, das digitale Neuronen gemäß Ausführungsformen der Erfindung aufweist, zahlreiche Verarbeitungselemente (darunter Computersimulationen) enthalten, die biologischen Neuronen nachempfunden sind. Zwar werden hier bestimmte veranschaulichende Ausführungsformen der Erfindung beschrieben, die digitale Neuronen mit digitalen Schaltungen aufweisen, die vorliegende Erfindung ist jedoch nicht auf digitale Schaltungen beschränkt. Ein neuromorphes und synaptronisches Berechnungssystem gemäß Ausführungsformen der Erfindung kann als eine neuromorphe und synaptronische Struktur mit Schaltungsanordnungen und zusätzlich als eine Computersimulation umgesetzt sein. Tatsächlich können Ausführungsformen der Erfindung die Form einer reinen Hardware-Ausführungsform, einer reinen Software-Ausführungsform oder einer Ausführungsform annehmen, die sowohl Hardware- als auch Softwareelemente enthält.
-
1 veranschaulicht eine Schaltung 10 mit Neuronenkern gemäß einer Ausführungsform der Erfindung. Bei der Schaltung 10 mit Neuronenkern handelt es sich um eine Schaltung mit neurosynaptischem Kern. Die Kernschaltung 10 weist mehrere präsynaptische Axone 15 und mehrere postsynaptische Neuronen 11 auf. Jedes Neuron 11 weist konfigurierbare Betriebsparameter auf. Die Kernschaltung 10 weist des Weiteren einen synaptischen Kreuzschienenverteiler (crossbar) 12 auf, der mehrere Synapsen 31, mehrere Zeilen/Axon-Pfade 26 und mehrere Spalten/Dendrit-Pfade 34 enthält.
-
Jede Synapse (31) überträgt Feuerungsereignisse (z. B. Spike-Ereignisse) zwischen einem präsynaptischen Axon 15 und einem postsynaptischen Neuron 11. Jede Synapse 31 befindet sich insbesondere an einem Kreuzungspunkt zwischen einem Axonpfad 26 und einem Dendritpfad 34, so dass eine Verbindung zwischen dem Axonpfad 26 und dem Dendritpfad 34 durch diese Synapse 31 gebildet wird. Jedes Axon 15 ist mit einem Axonpfad 26 verbunden, sodass dieses Axon 15 Spikes zu dem angeschlossenen Axonpfad 26 sendet. Jedes Neuron 11 ist mit einem Dendritpfad 34 verbunden, sodass dieses Neuron 11 Spikes von dem angeschlossenen Dendritpfad 34 empfängt.
-
Jede Synapse 31 weist eine synaptische Gewichtung auf. Die synaptischen Gewichtungen der Synapsen 31 der Kernschaltung 10 können durch eine Gewichtungsmatrix W dargestellt werden, wobei ein Element Wji der Matrix Weine synaptische Gewichtung einer Synapse 31 darstellt, die sich an einem Zeilen/Axon-Pfad j und einem Spalten/Dendrit-Pfad i des Kreuzschienenverteilers 12 befindet. Bei einer Ausführungsform handelt es sich bei den Synapsen 31 um binäre Speichereinheiten. Jede Synapse 31 kann eine Gewichtung „0” aufweisen, die angibt, dass die Synapse 31 nichtleitend ist, oder eine Gewichtung „1” aufweisen, die angibt, dass die Synapse 31 leitend ist. Eine Lernregel wie z. B. zeitabhängige Plastizität (spike-timing dependent plasticity STDP) kann angewendet werden, um die synaptischen Gewichtungen der Synapsen 31 zu aktualisieren.
-
2 veranschaulicht die Funktionsweise einer Kernschaltung 10 (1) beim Empfangen eines Eingabevektors 50 aus Feuerungsereignissen gemäß einer Ausführungsform der Erfindung. Bei jedem Zeitschritt (Taktschritt) t empfangen die Axone 15 (1) der Kernschaltung 10 einen binären Eingabevektor („input vector”) 50. Der Eingabevektor 50 stellt die Axone 15 dar, die Feuerungsereignisse empfangen, die in einem vorhergehenden Taktschritt t – 1 erzeugt wurden. Jeder Index des Eingabevektors 50 entspricht einem Axon 15. Jeder Index des Eingabevektors 50 mit einem Binärwert 1 gibt an, dass ein entsprechendes Axon 15 ein Feuerungsereignis empfangen hat. Jeder Index des Eingabevektors 50 mit einem Binärwert 0 gibt an, dass ein entsprechendes Axon 15 kein Feuerungsereignis empfangen hat.
-
Für jeden Index des Eingabevektors 50 mit einem Binärwert 1 wird die Gewichtung der Synapsen 31, die sich an einer Axonpfad/Zeile 26 eines entsprechenden Axons 15 befinden, ausgelesen, um einen binären Ausgabevektor („output vector”) 60 zu erhalten. Für einen Ausgabevektor 60, der einem Axon 15 entspricht, entspricht jeder Index des Ausgabevektors 60 einer Synapse 31, die sich an dem Axonpfad/Zeile 26 des Axons 15 befindet. Jeder Index eines Ausgabevektors 60 mit einem Binärwert 1 gibt an, dass es sich bei einer entsprechenden Synapse 31 um eine leitende Synapse 31 handelt. Jeder Index eines Ausgabevektors 60 mit einem Binärwert 0 gibt an, dass es sich bei einer entsprechenden Synapse 31 um eine nichtleitende Synapse 31 handelt.
-
Wie in 2 gezeigt empfangen beispielsweise die Axone 15 im Zeitschritt F(t) einen Eingabevektor 50 mit Werten <1,0,0,0,1,0,0,1,1>. Die Werte <1,0,0,0,1,0,0,1,1> geben an, dass die Axone 15, die mit Axonpfaden/Zeilen 0, 4, 7 und 8 des Kreuzschienenverteilers 12 verbunden sind, Feuerungsereignisse empfangen haben, die in einem vorhergehenden Taktschritt F(t – 1) erzeugt wurden. Die Gewichtung der Synapsen 31, die sich an jedem Axonpfad/Zeile 0, 4, 7 und 8 befinden, werden während des Zeitschritts F(t) ausgelesen. Die Ausgabevektoren 60, die den Zeilen 0, 4, 7 und 8 entsprechen, lauten <1,0,0,0,1,0,0,1,1>, <0,1,1,0,0,0,1,1,0>, <1,1,0,0,1,1,1,1,0> bzw. <0,0,0,1,1,1,0,1,1>.
-
Wie oben festgestellt gibt jeder Index eines Ausgabevektors 60 mit einem Binärwert 1 an, dass es sich bei einer entsprechenden Synapse 31 um eine leitende Synapse 31 handelt. Jedes Neuron 11 empfängt ein Feuerungsereignis von einem verbundenen Axon 15 über eine leitende Synapse 31. Jedes Neuron 11 integriert die empfangenen Feuerungsereignisse in einer Membranpotenzialvariable V dieses Neurons 11.
-
In 2 ist beispielsweise eine Folge 70 von Zahlen gezeigt, wobei jede Zahl der Folge 70 einem Neuron 11 der Kernschaltung 10 entspricht. Jede Zahl der Folge 70 repräsentiert die Anzahl von Feuerungsereignissen, die ein entsprechendes Neuron 11 in dem aktuellen Zeitschritt t empfangen hat. Die Neuronen 11, die mit Dendritpfaden/Spalten 0, 1, 2, ..., und 8 des Kreuzschienenverteilers 12 verbunden sind, haben zwei Feuerungsereignisse, zwei Feuerungsereignisse, ein Feuerungsereignis, ein Feuerungsereignis, drei Feuerungsereignisse, zwei Feuerungsereignisse, zwei Feuerungsereignisse, vier Feuerungsereignisse bzw. zwei Feuerungsereignisse empfangen.
-
Jedes Neuron 11 erzeugt ein Feuerungsereignis, wenn die Anzahl von Feuerungsereignissen, die durch das Neuron 11 in dem aktuellen Zeitschritt t integriert werden, einen Feuerungsschwellenwert des Neurons 11 übersteigt. Ein binärer Aktualisierungsvektor („update vector”) 80, der die feuernden Neuronen 11 in dem aktuellen Zeitschritt t darstellt, wird erhalten. Jeder Index des Aktualisierungsvektors 80 entspricht einem Neuron 11. Jeder Index mit einem Binärwert 1 gibt an, dass ein entsprechendes Neuron 11 ein Feuerungsereignis in dem aktuellen Zeitschritt t erzeugt hat.
-
Jedes Neuron 11 der Kernschaltung 10 kann beispielsweise einen Spiking-Schwellenwert von zwei aufweisen, (d. h., ein Neuron 11 feuert, wenn das Neuron 11 mehr als zwei Feuerungsereignisse empfängt). Wie in 2 gezeigt gibt der binäre Aktualisierungsvektor 80 mit Werten <0,0,0,0,1,0,0,1,0> an, dass die Neuronen 11, die mit Dendritpfaden/Spalten 4 und 7 des Kreuzschienenverteilers 12 verbunden sind, in dem aktuellen Zeitschritt F(t) ein Feuerungsereignis erzeugt haben. Wie oben festgestellt haben die Neuronen 11, die mit Dendritpfaden/Spalten 4 verbunden sind, jeweils mehr als zwei Feuerungsereignisse empfangen.
-
3 veranschaulicht Rücksetzen und Einstellen von Operationen für eine Kernschaltung 10 gemäß einer Ausführungsform der Erfindung. Rücksetzoperationen und Einstelloperationen ermöglichen synaptisches Lernen wie beispielsweise STDP. Bei einer Ausführungsform wird die synaptische Gewichtung jeder Synapse 31 zurückgesetzt, die mit einem aktiven Axon 15 (1) verbunden ist. Bei einem aktiven Axon 15 handelt es sich um ein Axon 15, das ein Feuerungsereignis in einem aktuellen Zeitschritt oder einem jüngsten Zeitschritt empfangen hat. Wenn eine Synapse 31, die mit einem aktiven Axon 15 verbunden ist, binär ist, wird die synaptische Gewichtung der Synapse 31 auf 0 zurückgesetzt. Wenn eine Synapse 31, die mit einem aktiven Axon 15 verbunden ist, nichtbinär ist, wird die synaptische Gewichtung der Synapse 31 vermindert.
-
Wie in 3 gezeigt wird beispielsweise für jeden Index des Eingabevektors 50 mit einem Binärwert 1 ein binärer Rücksetzvektor 90 für ein Axon 15 erzeugt, das dem Index entspricht. Für einen Rücksetzvektor 90 für ein Axon 15 gibt jeder Index des Rücksetzvektors 90 mit einem Binärwert 1 an, dass eine mit dem Axon 15 verbundene Synapse 31 zurückgesetzt wird.
-
Bei einer Ausführungsform wird die synaptische Gewichtung jeder Synapse 31 eingestellt, die mit einem aktiven Neuron 11 (1) verbunden ist. Bei einem aktiven Neuron 11 handelt es sich um ein Neuron 11, das in dem aktuellen Zeitschritt oder einem jüngsten Zeitschritt ein Feuerungsereignis erzeugt hat. Wenn eine mit einem aktiven Neuron 11 verbundene Synapse 31 binär ist, wird die synaptische Gewichtung der Synapse 31 auf 1 eingestellt. Wenn eine mit einem aktiven Neuron 11 verbundene Synapse 31 nichtbinär ist, wird die synaptische Gewichtung der Synapse 31 erhöht.
-
Wie in 3 gezeigt wird beispielsweise für jeden Index des Aktualisierungsvektors 80 mit einem Binärwert 1 ein binärer Einstellvektor 95 für ein Neuron 11 erzeugt, das dem Index entspricht. Für einen Einstellvektor 95 für ein Neuron 11 gibt jeder Index des Einstellvektors 95 mit einem Binärwert 1 an, das eine mit dem Neuron 11 verbundene Synapse 31 eingestellt wird.
-
Bei einer Ausführungsform weist eine Schaltung mit neuronalem Kern mit N Neuronen des Weiteren α Steuereinheiten für die N Neuronen auf, wobei α eine positive Ganzzahl ist und 1 ≤ α < N und die Neuronen digitale Neuronen sind. Jede Steuereinheit ist eine Logikschaltung zur Verarbeitung und Datenverarbeitung.
-
4 veranschaulicht eine Multiplex-Schaltung 100 mit neuronalem Kern gemäß einer Ausführungsform der Erfindung. Bei der Kernschaltung 100 handelt es sich um eine Multiplex-Schaltung mit neurosynaptischem Kern. Die Kernschaltung 100 multiplext die Berechnungs- und Steuerlogik für mehrere Neuronen 11. Die Kernschaltung 100 weist insbesondere eine Speichereinheit 110 auf, die neuronale Attribute für mehrere Neuronen 11 vorhält. Die Kernschaltung 100 weist des Weiteren eine Steuereinheit (d. h. eine Verarbeitungs- und Berechnungs Logikschaltung) 120 für die Speichereinheit 110 auf.
-
Die Speichereinheit 110 enthält mehrere Einträge 111 (5). Jeder Eintrag 111 hält neuronale Attribute für ein Neuron 11 vor. Bei einer Ausführungsform hält jeder Eintrag 111 die folgenden neuronalen Attribute für ein Neuron 11 vor: Informationen der synaptischen Konnektivität (Wji), Neuronenparameter und Weglenkungsinformationen. Bei einer Ausführungsform hält eine erste Teilmenge 112 jedes Eintrags 111 synaptische Gewichtungen von Synapsen 31 vor, die ein Neuron 11 mit Axonen 15 verbinden. Eine zweite Teilmenge 113 jedes Eintrags 111 hält die folgenden Neuronenparameter für ein Neuron 11 vor: Variable (V) des Membranenpotenzials, Spike-Schwellenwert (Th), Leckrate (Lk) und Gewichtungen aller möglichen Axontypen (SynO, Syn1, Syn2). Eine dritte Teilmenge 114 aller Einträge 111 hält des Weiteren die folgenden Weglenkungsinformationen für ein Neuron 11 vor: Fanout (F) und Weglenkungsverzögerung (ΔT).
-
Die Speichereinheit 110 ist in mehrere Segmente 110A unterteilt. Bei einer Ausführungsform handelt es sich bei der Speichereinheit 110 um ein einzelnes Speicherarray. Das Speicherarray kann mehrere Partitionen 110A enthalten, beispielsweise eine erste Partition 110A, die Informationen der synaptischen Konnektivität für mehrere Neuronen 11 vorhält, eine zweite Partition 110A, die Neuronenparameter für die Neuronen 11 vorhält, und eine dritte Partition 110A, die Informationen von Weglenkungsdaten für die Neuronen 11 vorhält. Bei einer weiteren Ausführungsform weist die Speichereinheit 100 mehrere Speicherarrays auf. Ein erstes Speicherarray hält Informationen der synaptischen Konnektivität für mehrere Neuronen 11 vor, ein zweites Speicherarray hält Neuronenparameter für die Neuronen 11 vor und ein drittes Speicherarray hält Informationen von Weglenkungsdaten für die Neuronen 11 vor.
-
Die Speichereinheit 110 enthält des Weiteren eine Speicherschnittstellenschaltung 115. Bei der Schaltung 115 kann es sich um eine Standard-Speicherschnittstellenschaltung handeln.
-
Bei einer Ausführungsform weist die Steuereinheit 120 eine Eingabe-Verarbeitungsstruktur 130 und eine Berechnungsstruktur 140 auf. Für jeden Eintrag 111 ist die Verarbeitungsstruktur 130 so eingerichtet, dass sie Feuerungsereignisse, die auf diesen Eintrag 111 gerichtet sind, empfängt und verarbeitet. Insbesondere ist jedes empfangene Feuerungsereignis auf ein Axon 15 gerichtet, mit dem ein Neuron 11 verbunden ist, das durch den Eintrag 111 repräsentiert wird. Wie oben angegeben hält eine erste Teilmenge 112 jedes Eintrags 111 synaptische Gewichtungen von Synapsen 31 vor, die ein Neuron 11 mit Axonen 15 verbinden. Wenn die Synapse 31, die das Ziel-Axon 15 und das durch den Eintrag 111 repräsentierte Neuron 11 verbindet, leitend ist, kann das Feuerungsereignis durch die Berechnungsstruktur 140 integriert werden.
-
Bei einer Ausführungsform weist die Verarbeitungsstruktur 130 einen Decodierer 131, eine Scheduler-Steuereinheit 132, einen Scheduler 133, ein Axon-Typregister 134, eine Multiplex-Steuereinheit 135 und ein Skalarprodukt-Modul 136 auf.
-
Bei einem neuronalen Netzwerk, das mehrere Kernschaltungen 100 aufweist, werden Feuerungsereignisse zwischen Kernschaltungen 100 des neuronalen Netzwerks in der Form von Adresse-Ereignis-Paketen geleitet. Jedes Adresse-Ereignis-Paket enthält ein Feuerungsereignis, das als eine binäre Adresse codiert ist, die ein Zielaxon 15 darstellt, wobei das Feuerungsereignis durch ein Neuron 11 in derselben Kernschaltung 100 oder einer anderen Kernschaltung 100 erzeugt wurde. Jedes Adresse-Ereignis-Paket enthält des Weiteren einen Zeitstempel, der angibt, wann ein Feuerungsereignis, das in dem Adresse-Ereignis-Paket eingekapselt ist, erzeugt wurde. Der Decodierer 131 jeder Kernschaltung 100 ist zum Empfangen und Decodieren von Adresse-Ereignis-Paketen eingerichtet.
-
Bei einer beispielhaften Umsetzung handelt es sich bei dem Scheduler 133 um einen Dualport-Speicher, der Zeilen und Spalten aufweist. Feuerungsereignisse, die aus empfangenen Adresse-Ereignis-Paketen decodiert werden, werden in dem Scheduler 133 gespeichert, wobei die Zeilen zukünftige Zeitschritte und die Spalten Axone 15 darstellen. Für jedes Feuerungsereignis steuert die Steuereinheit 132 des Schedulers, in welche Zeile und Spalte des Schedulers 133 dieses Feuerungsereignis geschrieben wird. Empfangenen Feuerungsereignissen wird wahlweise eine Verzögerung auferlegt, bevor sie zu Zielaxonen 15 übertragen werden. Für jedes Feuerungsereignis berechnet die Steuereinheit 132 des Schedulers die Zeitdauer, die dieses Feuerungsereignis auf dem Weg zu dem Decodierer 131 benötigt hat, als die Differenz d zwischen der Ankunftszeit des Adresse-Ereignis-Pakets am Decodierer 131 und dem Zeitstempel, der angibt, wann das Feuerungsereignis erzeugt wurde. Wenn die Differenz d kleiner ist als eine vorgegebene Zustellungsverzögerung (oder vorgegebene Gesamtverzögerung) n, wird das Feuerungsereignis in dem Scheduler 133 während einer Verzögerungsdauer D gehalten, die gleich der Differenz zwischen n und d ist, um n Zeitstempel von der Erzeugung des Feuerungsereignisses bis zur Zustellung des Feuerungsereignisses zu erreichen, wobei der Scheduler 133 das Feuerungsereignis am Ende der Verzögerungsperiode zustellt.
-
Wenn beispielsweise ein Spike-Ereignis zwischen 3 und 9 Zeitschritte benötigt, um sich in einem neuronalen Netzwerk auszubreiten, gewährleistet der Scheduler 133 für alle Spikes 9 Zeitschritte. Selbst wenn bei einem Beispiel ein Spike an dem Decodierer 131 innerhalb von 3 Zeitschritten nach der Erzeugung eintrifft, verzögert der Scheduler 133 die Übertragung dieses Spike um 6 Zeitschritte, so dass der Spike von dem Scheduler 133 am Ende von 9 Zeitschritten nach der Spike-Erzeugung übertragen wird.
-
Am Beginn jedes Zeitschritts wird ein Vektor, der alle aktiven Axone 15 in dem aktuellen Zeitschritt angibt, von dem Scheduler 133 als eine Zeile gelesen. Die gesamte Speichereinheit 110 wird dann pro Zeitschritt einmal gelesen und beschrieben.
-
Einträge 111 der Speichereinheit 110 werden für jeden Zeitschritt insbesondere unter Verwendung eines sequenziellen Scanners 150 einzeln sequenziell ausgelesen. Die Multiplex-Steuereinheit 135 ist so eingerichtet, dass sie Steuersignale zu der Speichereinheit 110 sendet. Für jeden Eintrag 111, der ein Neuron 11 darstellt, berechnet das Skalarprodukt-Modul 136 das Skalarprodukt zwischen dem Vektor von aktiven Axonen 15 in dem aktuellen Zeitschritt und den Informationen der synaptischen Konnektivität, die in dem Eintrag 111 vorgehalten werden, d. h. den synaptischen Gewichtungen aller Synapsen 31, mit denen der Dendritpfad 34 des Neurons verbunden ist (Wj).
-
Das Axon-Typregister 134 hält verschiedene Befehle vor und sendet die Befehle der Berechnungsstruktur 140 auf der Grundlage des Axon-Typs (d. h. SynO, Syn1, Syn2 usw.). Jeder Befehl, der vorgehalten wird, entspricht einem Index des berechneten Skalarprodukts. Bei einer Ausführungsform handelt es sich bei den synaptischen Gewichtungen, die in der Speichereinheit 110 vorgehalten werden, um Binärwerte. Das Axon-Typregister 134 sendet die Befehle der Berechnungsstruktur 140, die Indizes des Skalarprodukts mit von Null verschiedenen Werten entsprechen. Wenn das berechnete Skalarprodukt beispielsweise Werte <1,1,1,0,0,0> aufweist und das Axon-Typregister 134 die Werte <0,1,2,3,1,2> vorhält, sendet das Axon-Typregister 134 die Befehle 0, 1, 2 der Berechnungsstruktur 140.
-
Die Multiplex-Steuereinheit 135 ist des Weiteren so eingerichtet, dass sie das berechnete Skalarprodukt und die Feuerungsereignisse verknüpft, um Signale und Befehle zu erzeugen, die an die Berechnungsstruktur 140 zu senden sind. Zu den erzeugten Signalen gehören Taktsignale/Zeitschritte.
-
Bei einer weiteren Ausführungsform handelt es sich bei den synaptischen Gewichtungen, die in der Speichereinheit 110 vorgehalten werden, um nichtbinäre Werte. Das Axon-Typregister 134 sendet der Berechnungsstruktur 140 alle von Null verschiedenen Werte des Skalarprodukts, multipliziert mit dem Befehl, der dem Index des Skalarprodukts mit dem von Null verschiedenen Wert entspricht. Wenn das berechnete Skalarprodukt beispielsweise Werte <2,1,3,0,0,0> aufweist und das Axon-Typregister die Werte <0,1,2,3,1,2> vorhält, sendet das Axon-Typregister 134 (0,2), (1,1), und (2,3) an die Berechnungsstruktur 140.
-
Bei einer Ausführungsform weist die Berechnungsstruktur 140 einen ersten Multiplexer 141, einen zweiten Multiplexer 142, ein Addierglied 143, einen Demultiplexer 144, ein Vergleichermodul („Komparator”) 145 und einen Codierer 146 auf.
-
Für jeden Eintrag 111 verwendet der erste Multiplexer 141 Informationen, die durch die Multiplex-Steuereinheit 135 bereitgestellt werden, um einen Neuronenparameter auszuwählen (d. h. SynO, Syn1, Syn2, Lk). Die Leckrate Lk, die in dem Eintrag 111 vorgehalten wird, wird beispielsweise ausgewählt, nachdem alle Spikes integriert wurden. Das Addierglied 143 addiert die Neuronenparameter, die durch den ersten Multiplexer 141 ausgewählt wurden, zu einer Variablen des Membranenpotenzials, das durch den zweiten Multiplexer 142 ausgewählt wurde. Für jeden Eintrag 111 wählt der zweite Multiplexer 142 die Variable V des Membranenpotenzials, die in dem Eintrag 111 vorgehalten wird, für die erste Addition. Für jeden Eintrag 111 wählt der zweite Multiplexer 142 eine modifizierte Variable des Membranenpotenzials für nachfolgende Additionen, wobei es sich bei der modifizierten Variable des Membranenpotenzials um eine temporäre Variable handelt.
-
Nachdem alle Spikes integriert wurden und die Leckrate angewendet wurde, ermittelt der Vergleicher 145 für jeden Eintrag 111, ob die modifizierte Variable des Membranenpotenzials einen Schwellenwert-Parameter Th überschreitet, der in dem Eintrag 111 vorgehalten wird. Wenn der Schwellenwert-Parameter Th überschritten wird, erzeugt der Codierer 146 einen Spike und verwendet die Informationen Fanout F und Weglenkungsverzögerung ΔT, die in dem Eintrag 111 vorgehalten werden, um den erzeugten Spike in einem Adresse-Ereignis-Paket einzukapseln/zu codieren. Die Variable V des Membranenpotenzials kann auf null zurückgesetzt werden, bevor sie in den Eintrag 111 zurückgeschrieben wird.
-
Die nachfolgende Tabelle 1 stellt beispielhaften Pseudocode bereit, der die Ausführung der Steuereinheit
200 demonstriert. TABELLE 1
-
Bei einer weiteren beispielhaften Ausführungsform ist der Scheduler 133 für eine zweifache Pufferung eingerichtet. Der Scheduler 133 kann beispielsweise einen ersten Puffer und einen zweiten Puffer enthalten. Der Scheduler 133 puffert Feuerungsereignisse, die er im aktuellen Zeitschritt t empfängt, in dem ersten Puffer. Am Beginn des nächsten Zeitschritts t + 1 verschiebt der Scheduler 133 die im ersten Puffer befindlichen Feuerungsereignisse zu dem zweiten Puffer. Jedes Feuerungsereignis kann in Abhängigkeit von der programmierten Zustellzeit für das Feuerungsereignis zu einem Zielaxon 15 in dem Zeitschritt t + 1 oder in nachfolgenden Zeitschritten zugestellt werden.
-
5 ist eine Blockdarstellung, die eine Speichereinheit 100 einer Multiplex-Kernschaltung 100 gemäß einer Ausführungsform der Erfindung zeigt. Wie oben festgestellt hält die Speichereinheit 110 Informationen vor, die mehrere Neuronen 11 betreffen. Die Speichereinheit 110 enthält mehrere Einträge 111. Jeder Eintrag 111 hält neuronale Attribute für ein Neuron 11 vor.
-
6 ist eine Blockdarstellung, die Informationen zeigt, die in einem Eintrag 111 einer Speichereinheit 110 einer Multiplex-Kernschaltung 100 gemäß einer Ausführungsform der Erfindung vorgehalten werden. Bei einer Ausführungsform hält jeder Eintrag 111 die folgenden neuronalen Attribute für ein Neuron 11 vor: Informationen der synaptischen Konnektivität, Neuronenparameter und Weglenkungsinformationen. Bei einer Ausführungsform hält eine erste Teilmenge 112 jedes Eintrags 111 synaptische Gewichtungen von Synapsen vor, die ein Neuron 11 mit Axonen 15 verbinden. Eine zweite Teilmenge 113 jedes Eintrags 111 hält die folgenden Neuronenparameter für ein Neuron 11 vor: Variable (V) des Membranenpotenzials, Spike-Schwellenwert (Th), Leckrate (Lk) und Gewichtungen aller möglichen Axontypen (Syn0, Syn1, Syn2). Eine dritte Teilmenge 114 jedes Eintrags 111 hält des Weiteren die folgenden Weglenkungsinformationen für ein Neuron 11 vor: Fanout (F) und Weglenkungsverzögerung (AT).
-
7 ist eine Blockdarstellung, die eine Multiplex-Kernschaltung 100 gemäß einer Ausführungsform der Erfindung zeigt. Wie oben festgestellt weist die Kernschaltung 100 eine Speichereinheit 110 mit mehreren Einträgen 111 auf. Jeder Eintrag 111 hält Informationen vor, die ein Neuron 11 betreffen. Die Kernschaltung 100 weist des Weiteren eine Steuereinheit (d. h. eine Verarbeitungs- und Berechnungs-Logikschaltung) 120 für die Speichereinheit 110 auf. Eine Speicher-Schnittstellenschaltung 115 verbindet die Speichereinheit 110 mit der Steuereinheit 120.
-
8 ist eine Blockdarstellung, die eine Multiplex-Kernschaltung 100, die einen binären Eingabevektor 50 empfängt, gemäß einer Ausführungsform der Erfindung zeigt. Wie oben festgestellt wird am Beginn jedes Zeitschritts ein binärer Eingabevektor 50, der alle aktiven Axone 15 in dem aktuellen Zeitschritt angibt, von dem Scheduler 133 erhalten. Alle Einträge 111 der Speichereinheit 110 werden dann einzeln sequenziell ausgelesen.
-
9 ist eine Blockdarstellung, die einen Teilmultiplex-Kern 200 gemäß einer Ausführungsform der Erfindung zeigt. Der Kern 200 weist mehrere Speichereinheiten 110 auf. Jede Speichereinheit 110 weist eine entsprechende Steuereinheit (d. h. eine entsprechende Verarbeitungs- und Berechnungs-Logikschaltung) 120 auf. Bei einer Ausführungsform kann ein Kern 200, der N Neuronen aufweist, α Steuereinheiten (d. h. Verarbeitungs- und Berechnungs-Logikschaltungen) für die N Neuronen aufweisen, wobei α eine positive Ganzzahl ist und 1 ≤ α N.
-
10 veranschaulicht einen schlanken Meta-Kern 400 gemäß einer Ausführungsform der Erfindung. Bei dem Meta-Kern 400 handelt es sich um ein neuronales Multiplex-Netzwerk-System. Der Meta-Kern 400 weist eine schlanke Speichereinheit 410 auf, die neuronale Attribute für mehrere Neuronen 11 vorhält, die zu verschiedenen Kernschaltungen 10 gehören. Die Speichereinheit 410 enthält mehrere Teilmengen 412 (11), wobei jede Teilmenge 412 neuronale Attribute für Neuronen 11 einer Kernschaltung 10 vorhält. Jeder Eintrag 412 enthält mehrere Einträge 411, wobei jeder Eintrag 411 neuronale Attribute für ein Neuron 11 vorhält. Bei jedem Eintrag 411 enthalten die neuronalen Attribute für ein Neuron 11 Informationen der synaptischen Konnektivität, Neuronenparameter und Weglenkungsinformationen.
-
Konsolidieren von Daten in einer großen Speichereinheit 410 vermindert die passive Leistungsaufnahme, ohne den Gesamtwert der aktiven Leistungsaufnahme zu erhöhen. Der Meta-Kern 400 weist des Weiteren eine Steuereinheit (d. h. eine Verarbeitungs- und Berechnungs-Logikschaltung) 120 auf. Die Neuronen 11, die durch die Speichereinheit 410 dargestellt werden, werden gemultiplext, so dass jedes Neuron 11, das durch einen Eintrag 411 der Speichereinheit 110 dargestellt ist, sich die Steuereinheit 120 mit anderen Neuronen 11 teilt, die durch andere Einträge 411 der Speichereinheit 410 dargestellt werden. Daher teilen sich Neuronen 11 von unterschiedlichen Kernschaltungen 10 dieselbe Steuereinheit 120. Eine Speicher-Schnittstellenschaltung 415 verbindet die Speichereinheit 410 mit der Steuereinheit 120.
-
Der Decodierer 131 der Steuereinheit 120 ist so eingerichtet, dass er Adresse-Ereignis-Pakete von dem Weglenkungsnetzwerk 260 empfängt. Der Codierer 146 der Steuereinheit 120 ist so eingerichtet, dass er Adresse-Ereignis-Pakete zu dem Weglenkungsnetzwerk 260 sendet.
-
11 ist eine Blockdarstellung, die eine schlanke Speichereinheit 410 eines schlanken Meta-Kerns 400 gemäß einer Ausführungsform der Erfindung zeigt. Wie oben festgestellt hält die schlanke Speichereinheit 410 neuronale Attribute für mehrere Neuronen 11 vor, die zu unterschiedlichen Kernschaltungen 10 gehören. Die Speichereinheit 410 enthält mehrere Teilmengen 412, wobei jede Teilmenge 412 neuronale Attribute für Neuronen 11 einer Kernschaltung 10 vorhält. Jede Teilmenge 412 enthält mehrere Einträge 411, wobei jeder Eintrag 411 neuronale Attribute für ein Neuron 11 vorhält. Für jeden Eintrag 411 enthalten die neuronalen Attribute für ein Neuron 11 Informationen der synaptischen Konnektivität, Neuronenparameter und Weglenkungsinformationen.
-
12 veranschaulicht einen breiten Meta-Kern 500 gemäß einer Ausführungsform der Erfindung. Bei dem Meta-Kern 500 handelt es sich um ein neuronales Multiplex-Netzwerksystem. Der Meta-Kern 500 weist eine breite Speichereinheit 510 auf, die neuronale Attribute für mehrere Neuronen 11 vorhält, die zu unterschiedlichen Kern-Schaltungen 10 gehören. Die Speichereinheit 510 enthält mehrere Teilmengen 512, wobei jede Teilmenge 512 der Speichereinheit 510 neuronale Attribute von Neuronen 11 einer Kern-Schaltung 10 vorhält. Jede Teilmenge 512 kann in mehrere Einträge 511 unterteilt werden, wobei jeder Eintrag 511 neuronale Attribute für ein Neuron 11 vorhält. Bei einer beispielhaften Umsetzung ist die Anzahl von Einträgen 511, die jede Teilmenge 512 aufweist, gleich der Anzahl von Kern-Schaltungen 10, die die Speichereinheit 510 repräsentieren. Für jeden Eintrag 511 enthaften die neuronalen Attribute für ein Neuron 11, die in diesem Eintrag 511 vorgehalten werden, Informationen der synaptischen Konnektivität, Neuronenparameter und Weglenkungsinformationen.
-
Konsolidieren von Daten in einer breiten Speichereinheit 510 verringert die passive Leistungsaufnahme. Der Meta-Kern 500 weist des Weiteren mehrere Steuereinheiten (d. h. Verarbeitungs- und Berechnungslogikschaltungen) 120 auf. Bei einer Ausführungsform kann ein Meta-Kern 500, der N Neuronen aufweist, α Steuereinheiten (d. h. Verarbeitungs- und Berechnungslogikschaltungen) 120 für die N Neuronen aufweisen, wobei α eine positive Ganzzahl ist und 1 ≤ α < N. Bei einer beispielhaften Ausführungsform gibt es in jeder Teilmenge 512, die die Speichereinheit 510 aufweist, eine entsprechende Steuereinheit (d. h. eine entsprechende Verarbeitungs- und Berechnungslogikschaltung) 120. Daher teilen sich Neuronen 11 derselben Kern-Schaltung 10 dieselbe Steuereinheit 120. Während des Betriebs wird jeder Eintrag 511 jeder Teilmenge 512 vorständig ausgelesen, und neuronale Attribute jedes Eintrags 511 werden durch die Steuereinheit 120 dieser Teilmenge 512 unabhängig verarbeitet.
-
13 ist eine Blockdarstellung, die eine breite Speichereinheit 510 eines breiten Meta-Kerns 500 gemäß einer Ausführungsform der Erfindung zeigt. Wie oben festgestellt hält die breite Speichereinheit 510 neuronale Attribute für mehrere Neuronen 11 vor, die zu unterschiedlichen Kernschaltungen 10 gehören. Die Speichereinheit 510 enthält mehrere Teilmengen 512, wobei jede Teilmenge 512 der Speichereinheit 510 neuronale Attribute von Neuronen 11 einer Kernschaltung 10 vorhält. Jede Teilmenge 512 kann in mehrere Einträge 511 unterteilt werden, wobei jeder Eintrag 511 neuronale Attribute für ein Neuron 11 vorhält. Bei einer Ausführungsform ist die Anzahl von Einträgen 511, die jede Teilmenge 512 aufweist, gleich der Anzahl von Kernschaltungen 10, die die Speichereinheit 510 darstellen. Bei jedem Eintrag 511 enthalten die neuronalen Attribute für ein Neuron 11, die in dem Eintrag 511 vorgehalten werden, Informationen der synaptischen Konnektivität, Neuronenparameter und Weglenkungsinformationen.
-
14 veranschaulicht einen Meta-Kern 600 gemäß einer Ausführungsform der Erfindung. Bei dem Meta-Kern 600 handelt es sich um ein neuronales Multiplex-Netzwerksystem. Der Meta-Kern 600 weist eine Speichereinheit 610 auf, die neuronale Attribute für mehrere Neuronen 11 vorhält (1), die zu unterschiedlichen Kernschaltungen 10 gehören (1). Wie in 14 gezeigt hält die Speichereinheit 610 neuronale Attribute für Neuronen 11 vor, die zu Kernschaltungen Core0, Core1, Core2, ..., Core8 gehören. Konsolidieren von Daten für mehrere Kernschaltungen 10 in der Speichereinheit 610 verringert die passive Leistungsaufnahme.
-
Die Speichereinheit 610 weist mehrere Teilmengen 612 auf (15), wobei jede Teilmenge 612 neuronale Attribute für Neuronen 11 einer Kernschaltung 10 vorhält. Jede Teilmenge 612 weist mehrere Einträge 611 auf (15), wobei jeder Eintrag 611 neuronale Attribute für ein Neuron 11 vorhält. Bei jedem Eintrag 611 enthalten die neuronalen Attribute, die in dem Eintrag 611 vorgehalten werden, Informationen der synaptischen Konnektivität, Neuronenparameter und Weglenkungsinformationen für ein Neuron 11.
-
Der Meta-Kern 600 weist des Weiteren mehrere Steuereinheiten (d. h. Verarbeitungs- und Berechnungs-Logikschaltungen) 120 auf. Bei einer Ausführungsform kann ein Meta-Kern 600, der N Neuronen aufweist, α Steuereinheiten (d. h. Verarbeitungs- und Berechnungs-Logikschaltungen) 120 für die N Neuronen aufweisen, wobei α eine positive Ganzzahl ist 1 ≤ α < N. Bei einer beispielhaften Ausführungsform sind die Teilmengen 612 der Speichereinheit 610 in mehreren Gruppen 614 organisiert (15). Jede Gruppe 614 weist mehrere Teilmengen 612 auf, die unterschiedliche Kern-Schaltungen 10 darstellen. Jede Gruppe 614 weist eine entsprechende Steuereinheit (d. h. Verarbeitungs- und Berechnungs-Logikschaltung) 120 auf, so dass Neuronen 11 dieser Gruppe 614 dieselbe Steuereinheit 120 gemeinsam nutzen. Während des Betriebs wird jeder Eintrag 611 jeder Teilmenge 612 jeder Gruppe 614 ausgelesen, und neuronale Attribute, die in dem Eintrag 611 vorgehalten werden, werden durch die Steuereinheit 120 für die Gruppe 614 unabhängig verarbeitet.
-
Wie in 14 gezeigt wird für Daten für die Kernschaltungen Core0, Core3 und Core6 eine erste Steuereinheit 120 gemeinsam genutzt, für Daten für die Kernschaltungen Core1, Core4 und Core7 eine zweite Steuereinheit 120 gemeinsam genutzt und für Daten für die Kernschaltungen Core2, Core5 und Core8 eine dritte Steuereinheit 120 gemeinsam genutzt.
-
Bei einer Ausführungsform werden Neuronen-Aktualisierungen für die Kernschaltungen 10 sequenziell ausgeführt, so dass Neuronen 11 einzeln aktualisiert werden. Bei einer beispielhaften Ausführungsform wird während einer Neuronenaktualisierung lediglich eine Steuereinheit 120 für eine Kernschaltung 10 verwendet. Wenn eine Neuronenaktualisierung für ein Neuron 11 beendet wird, fährt der Meta-Kern 600 mit dem nächsten Neuron 11 fort, bis alle Neuronen 11 verarbeitet wurden. Wenn die Anzahl von Neuronen 11 größer wird (und die Anzahl von Synapsen 31 größer wird), vergrößert sich auch die Zeitspanne, die die Steuereinheit 120 benötigt, um Neuronenaktualisierungen für eine Kernschaltung zu beenden. Wenn diese Zeit die Dauer eines Zeitschritts übersteigt, ist die Kernschaltung 120 nicht in der Lage, Neuronenaktualisierungen für eine Core-Schaltung 10 innerhalb eines Zeitschritts auszuführen. Daher sollte die optimale Größe der Speichereinheit 610 auf der Grundlage der größtmöglichen Anzahl von Neuronen 11 beruhen, die eine Steuereinheit 120 in einem Zeitschritt verarbeiten kann. Wenn beispielsweise die Steuereinheit 120 bei 100 MHz betrieben wird und alle Neuronen 11 in einem 1-ms-Zeitschritt verarbeitet werden müssen, wobei 100 Ticks zum Verarbeiten eines Neurons 11 erforderlich sind, kann die Speichereinheit 610 lediglich 100 Einträge 611 aufweisen. Ermitteln der optimalen Breite der Speichereinheit 610 erfolgt prozessabhängig.
-
Bei einer weiteren Ausführungsform werden Neuronenaktualisierungen für die Kernschaltungen 10 parallel ausgeführt. Bei einer beispielhaften Umsetzung werden die Steuereinheiten 120 für unterschiedliche Kernschaltungen 10 parallel verwendet. Änderungen an der Variablen des Membranenpotenzials für Neuronen 11 einiger Kernschaltungen 10 (d. h. Slave-Kernschaltungen) können gesammelt werden, und Daten für eine Kernschaltung 10 (d. h. eine Master-Kernschaltung) werden auf der Grundlage der gesammelten Änderungen aktualisiert. Wenn die Neuronenaktualisierungen für die Kernschaltungen 10 parallel ausgeführt werden, ist die Zeitdauer für Neuronenaktualisierungen von der Größe des Metakerns unabhängig.
-
15 ist eine Blockdarstellung, die eine Speichereinheit 610 eines Meta-Kerns 600 gemäß einer Ausführungsform der Erfindung zeigt. Wie oben festgestellt hält die Speichereinheit 610 neuronale Attribute für mehrere Neurone 11 vor, die zu unterschiedlichen Kernschaltungen 10 gehören. Die Speichereinheit 610 enthält mehrere Teilmengen 612, wobei jede Teilmenge 612 der Speichereinheit 610 neuronale Attribute für Neuronen 11 einer Kern-Schaltung 10 vorhält, Jede Teilmenge 612 weist mehrere Einträge 611 auf, wobei jeder Eintrag 611 neuronale Attribute für ein Neuron 11 vorhält. Für jeden Eintrag 611 enthalten die neuronalen Attribute, die in dem Eintrag 611 vorgehalten werden, Informationen der synaptischen Konnektivität, Neuronenparameter und Weglenkungsinformationen für ein Neuron 11. Bei einer beispielhaften Umsetzung sind die Teilmengen in mehreren Gruppen 614 organisiert, wobei jede Gruppe 614 mehrere Teilmengen 612 aufweist, die verschiedene Kernschaltungen 10 repräsentieren.
-
Wie in 15 gezeigt sind Daten für die Kernschaltungen Core0, Core3 und Core6 in einer ersten Gruppe 614 organisiert, Daten für die Kernschaltungen Core1, Core4 und Core7 sind in einer zweiten Gruppe 614 organisiert und Daten für die Kernschaltungen Core2, Core5 und Core8 sind in einer dritten Gruppe 614 organisiert.
-
16 veranschaulicht ein neuronales Netzwerk 700 gemäß einer Ausführungsform der Erfindung. Das neuronale Netzwerk 700 weist mehrere Kerne 710 auf. Bei den Kernen 710 kann es sich um Multiplex-Kernschaltungen 100, schlanke Metakerne 400, breite Metakerne 500 oder Meta-Kerne 600 handeln. Jeder Kern 710 weist einen entsprechenden Router 720 zum Weiterleiten von Adresse-Ereignis-Paketen zu benachbarten Routern 200 in nördlicher, südlicher, östlicher und westlicher Richtung auf.
-
17 veranschaulicht einen Ablaufplan eines beispielhaften Prozesses 800 zum Verarbeiten von Feuerungsereignissen in einem Multiplexkern gemäß einer Ausführungsform der Erfindung. Im Prozessblock 801 werden Adresse-Ereignis-Pakete (AER-Ereignisse) empfangen. Im Prozessblock 802 werden alle empfangenen Adresse-Ereignis-Pakete decodiert. Im Prozessblock 803 werden alle decodierten Adresse-Ereignis-Pakete in einem Scheduler auf der Grundlage der decodierten Informationen gespeichert. Im Prozessblock 804 wird ein Vektor aus aktiven Axonen in dem aktuellen Zeitschritt von dem Scheduler erhalten. Im Prozessblock 805 werden alle Einträge einer Speichereinheit sequenziell ausgelesen, wobei die Speichereinheit Neuronen betreffende Informationen vorhält.
-
18 ist eine Übersichts-Blockdarstellung, die ein Informationsverarbeitungssystem 300 zeigt, das zum Implementieren einer Ausführungsform der Erfindung nützlich ist. Das Computersystem enthält einen oder mehrere Prozessoren wie z. B. den Prozessor 302. Der Prozessor 302 ist mit einer Datenübertragungsinfrastruktur (z. B. ein Datenübertragungsbus, eine Kreuzschienenleiste (crossover-bar) oder ein Netzwerk) verbunden.
-
Das Computersystem kann eine Anzeigeschnittstelle 306 enthalten, die Grafiken, Text und andere Daten von der Datenübertragungsinfrastruktur 304 (oder von einem nicht gezeigten Rahmenpuffer) zum Anzeigen auf einer Anzeigeeinheit 308 weiterleitet. Das Computersystem enthält außerdem einen Hauptspeicher 310, vorzugsweise einen Direktzugriffsspeicher (RAM), und kann außerdem einen sekundären Speicher 312 enthalten, Als sekundärer Speicher 312 kommen z. B. ein Festplattenlaufwerk 314 und/oder ein Wechselspeicherlaufwerk infrage, bei dem es sich beispielsweise um ein Floppy-Disk-Laufwerk, ein Magnetbandlaufwerk oder ein Laufwerk mit optischer Platte handeln kann. Das Wechselspeicherlaufwerk 316 liest von und/oder schreibt auf eine Wechselspeichereinheit 318 in einer Weise, die einem Fachmann bekannt ist. Bei einer Wechselspeichereinheit 318 handelt es sich beispielsweise um eine Floppy Disk, eine Compact Disk, ein Magnetband oder eine optische Platte usw., die von dem Wechselspeicherlaufwerk 316 gelesen oder von diesem beschrieben wird. Es ist klar, dass die Wechselspeichereinheit 318 ein computerlesbares Medium enthält, in dem Computer-Software und/oder Daten gespeichert sind.
-
Bei alternativen Ausführungsformen kann der sekundäre Speicher 312 andere ähnliche Mittel enthalten, damit Computerprogramme oder andere Befehle in das Computersystem geladen werden können. Zu derartigen Mitteln gehören beispielsweise eine Wechselspeichereinheit 320 und eine Schnittstelle 322. Zu Beispielen dieser Mittel können ein Programmpaket und eine Paketschnittstelle (wie beispielsweise jene, die in Videospieleinheiten vorkommen), ein Wechselspeicherchip (wie z. B. ein EPROM oder PROM) und ein zugehöriger Socket und andere Wechselspeichereinheiten 320 und Schnittstellen 322 gehören, die Übertragen von Software und Daten von der Wechselspeichereinheit 320 zu dem Computersystem ermöglichen.
-
Das Computersystem kann außerdem eine Datenübertragungsschnittstelle 324 enthalten. Eine Datenübertragungsschnittstelle 324 ermöglicht, dass Software und Daten zwischen dem Computersystem und externen Einheiten übertragen werden. Zu Beispielen einer Datenübertragungsschnittstelle 324 können ein Modem, eine Netzwerkschnittstelle (wie z. B. eine Ethernet-Karte), ein Datenübertragungsanschluss oder ein PCMCIA-Einschub und -karte usw. gehören. Software und Daten, die über eine Datenübertragungsschnittstelle 324 übertragen werden, liegen der Form von Signalen vor, bei denen es sich beispielsweise um elektronische, elektromagnetische, optische oder andere Signale handeln kann, die von einer Datenübertragungsschnittstelle 324 empfangen werden können. Diese Signale werden über einen Datenübertragungspfad (z. B. einen Kanal) 326 an eine Datenübertragungsschnittstelle 324 bereitgestellt. Dieser Datenübertragungspfad 326 befördert Signale und kann unter Verwendung einer Leitung oder eines Kabels, eines Lichtwellenleiters, einer Telefonleitung, einer Zellentelefon-Verbindung, einer HF-Verbindung und/oder anderen Datenübertragungskanälen realisiert werden.
-
In diesem Dokument werden die Ausdrücke „Computerprogrammmedium”, „durch einen Computer nutzbares Medium” und „computerlesbares Medium” verwendet, um Medien allgemein zu bezeichnen wie z. B. einen Hauptspeicher 310 und einen sekundären Speicher 312, ein Wechselspeichermedium 316 und eine in einem Festplattenlaufwerk 314 installierte Festplatte.
-
Computerprogramme (die außerdem als Computersteuerlogik bezeichnet werden) werden im Hauptspeicher 310 und/oder im sekundären Speicher 312 gespeichert. Computerprogramme können außerdem über eine Datenübertragungsschnittstelle 324 empfangen werden. Wenn derartige Computerprogramme ablaufen, kann das Computersystem die Merkmale der Verwendung ausführen, die an dieser Steile erläutert wurden. Wenn die Computerprogramme ablaufen, kann insbesondere der Prozessor 302 die Merkmale des Computersystems ausführen. Demzufolge stellen derartige Computerprogramme Steuereinheiten des Computersystems dar.
-
Aus der obigen Beschreibung kann erkannt werden, dass die vorlegende Erfindung ein System, ein Computerprogrammprodukt und ein Verfahren zum Umsetzen der Ausführungsformen der Erfindung bereitstellt. Die vorliegende Erfindung stellt des Weiteren ein nichtflüchtiges, durch einen Computer nutzbares Speichermedium für eine hierarchische Weglenkung und einen zweiseitig gerichteten Informationsstrom mit struktureller Plastizität in neuralen Netzwerken bereit. Das nichtflüchtige, durch einen Computer nutzbare Speichermedium weist ein computerlesbares Programm auf, wobei das Programm beim Verarbeiten in einem Computer bewirkt, dass der Computer die Schritte der vorliegenden Erfindung gemäß den hier beschriebenen Ausführungsformen ausführt. In den Ansprüchen sollen Bezugnahmen auf ein Element im Singular nicht „einzig und allein”, es sei denn explizit in dieser Weise festgelegt, sondern stattdessen „ein oder mehrere” bedeuten. Alle strukturellen und funktionalen Ersetzungen der Elemente der oben beschriebenen beispielhaften Ausführungsform, die gegenwärtig bekannt sind oder zukünftig einem Fachmann bekannt werden, sollen in die angegebenen Ansprüche eingeschlossen sein. Kein beanspruchtes Element soll gemäß 35 USC Abschnitt 112, Paragraph sechs ausgelegt werden, falls das Element nicht ausdrücklich unter Verwendung des Ausdrucks „Mittel zum” oder „Schritt zum” angegeben wurde.
-
Die in diesem Zusammenhang verwendete Terminologie dient lediglich dem Zweck der Beschreibung bestimmter Ausführungsformen und ist nicht vorgesehen, die Erfindung zu beschränken. Die hier verwendete Singularformen ”ein” und ”der/die/das” sollen außerdem die Pluralformen enthalten, falls im Kontext nicht anders angegeben. Es ist ferner klar, dass die Ausdrücke ”weist auf” und/oder ”aufweisend”, wenn sie in dieser Spezifikation verwendet werden, das Vorhandensein von festgestellten Merkmalen, Ganzzahlen, Schritten, Operationen, Elementen und/oder Komponenten spezifizieren, jedoch nicht das Vorhandensein oder die Hinzufügung eines oder mehrerer anderer Merkmale, Ganzzahlen, Schritte Operationen, Elemente, Komponenten und/oder Gruppen hiervon ausschließen.
-
Die entsprechenden Strukturen, Materialien, Wirkungen und Ersetzungen aller Mittel oder Schritte plus Funktionselemente in den nachfolgenden Ansprüchen sollen alle Strukturen, Materialien oder Wirkungen zum Ausführen der Funktion in Kombination mit anderen Elementen, die speziell beansprucht werden, enthalten. Die Beschreibung der vorliegenden Erfindung wurde für Zwecke der Erläuterung und Beschreibung dargestellt, es ist jedoch nicht vorgesehen, dass sie in der offenbarten Form für die Erfindung erschöpfend oder einschränkend sein soll. Viele Modifikationen und Variationen werden einem Fachmann offensichtlich erscheinen, ohne vom Umfang und Erfindungsgeist der Erfindung abzuweichen. Die Ausführungsform wurde gewählt und beschrieben, um die Grundgedanken der Erfindung und der praktischen Anwendung am besten zu erläutern und um Nichtfachleute zu befähigen, die Erfindung zu verstehen, da verschiedene Ausführungsformen mit zahlreichen Modifikationen für die vorgesehene praktische Verwendung geeignet sind.