-
HINTERGRUND
-
Technisches Gebiet
-
Die vorliegende Erfindung bezieht sich auf einen neuromorphen Chip und ein System zum Aktualisieren präziser synaptischer Gewichtswerte davon.
-
Beschreibung des Standes der Technik
-
Hardware-Implementierungen neuromorpher Chips, z.B. neuromorphe Chips auf Grundlage von nichtflüchtigen Speichern (non-volatile memory, NVM), gewinnen immer mehr an Bedeutung. Solche neuromorphen Chips können in neuronalen Netzen, z.B. gepulste neuronale Netze (spiking neural networks, SNN) und mehrschichtige neuronale Netze (deep neural networks, DNN), implementiert werden. In gepulsten neuronalen Netzen können synaptische Verbindungen durch eine lokale Lernregel aktualisiert werden, z.B. die spike-timing-abhängige Plastizität (spike-timing-dependent-plasticity, STDP), um einen rechnerischen Ansatz zu implementieren, der biologischen Neuronen nachempfunden ist. In mehrschichtigen neuronalen Netzen können neuromorphe Chips auch Matrizen synaptischer Gewichte darstellen und Multiplikations-Akkumulations-(MAC-)Operationen, die für Algorithmen wie z.B. Rückpropagierung (backpropagation) benötigt werden, auf analoge und gleichzeitig massivparallele Weise implementieren.
-
KURZDARSTELLUNG
-
Gemäß einem Aspekt der vorliegenden Erfindung wird ein neuromorpher Chip bereitgestellt. Der neuromorphe Chip umfasst eine Mehrzahl synaptischer Zellen, die entsprechende resistive Einheiten, eine Mehrzahl von Axonleitungen, eine Mehrzahl von Dendritenleitungen und eine Mehrzahl von Schaltern enthalten, von denen jeder einen Eingangsanschluss und einen oder mehrere Ausgangsanschlüsse umfasst. Die synaptischen Zellen sind mit den Axonen und den Dendriten zu einer Kreuzschienenanordnung (crossbar array) verbunden. Die Axonleitungen sind so konfiguriert, dass sie Eingangsdaten empfangen und die Eingangsdaten an die synaptischen Zellen liefern. Die Dendritenleitungen sind so konfiguriert, dass sie Ausgangsdaten empfangen und die Ausgangsdaten über eine oder mehrere entsprechende Ausgangsleitungen liefern. Ein gegebener Schalter ist so konfiguriert, dass er seinen Eingangsanschluss mit einer oder mehreren Eingangsleitungen verbindet und dass er seinen einen oder seine mehreren Ausgangsanschlüsse mit einer gegebenen einen oder mehreren der Axonleitungen veränderlich verbindet.
-
Gemäß einem weiteren Aspekt der vorliegenden Erfindung wird ein neuromorphes System bereitgestellt. Das neuromorphe System umfasst einen neuromorphen Chip und eine Steuereinheit. Der neuromorphe Chip umfasst eine Mehrzahl synaptischer Zellen, die entsprechende resistive Einheiten, eine Mehrzahl von Axonleitungen, eine Mehrzahl von Dendritenleitungen und eine Mehrzahl von Schaltern enthalten, von denen jeder einen Eingangsanschluss und einen oder mehrere Ausgangsanschlüsse umfasst. Die synaptischen Zellen sind mit den Axonen und den Dendriten zu einer Kreuzschienenanordnung (crossbar array) verbunden. Die Axonleitungen sind so konfiguriert, dass sie Eingangsdaten empfangen und die Eingangsdaten an die synaptischen Zellen liefern. Die Dendritenleitungen sind so konfiguriert, dass sie Ausgangsdaten empfangen und die Ausgangsdaten über eine oder mehrere entsprechende Ausgangsleitungen liefern. Ein gegebener Schalter ist so konfiguriert, dass er seinen Eingangsanschluss mit einer oder mehreren Eingangsleitungen verbindet und dass er seinen einen oder seine mehreren Ausgangsanschlüsse mit einer gegebenen einen oder mehreren der Axonleitungen veränderlich verbindet. Die Steuereinheit ist so konfiguriert, dass sie es dem gegebenen Schalter ermöglicht, seine Eingangsleitung mit der gegebenen einen oder mehreren Axonleitungen entsprechend einer Anforderung einer auf dem System installierten Anwendung veränderlich zu verbinden und mit den Eingangsdaten über die gegebene eine oder mehrere Axonleitungen eine Lernoperation durchzuführen, indem sie ein einzelnes Gewicht mit einer bevorzugten Anzahl von resistiven Elementen der synaptischen Zellen exprimiert.
-
Der gegebene Schalter kann seinen einen oder seine mehreren Ausgangsanschlüsse mit der einen oder den mehreren gegebenen Axonleitungen veränderlich verbinden, um einer oder mehreren gegebenen synaptischen Zellen, die der einen oder den mehreren gegebenen Axonleitungen zugehörig sind, ein synaptisches Gewicht zuzuweisen.
-
Der neuromorphe Chip kann weiterhin ein oder mehrere präsynaptische Neuronen enthalten, um die Eingangsdaten über die Schalter an die Axonleitungen zu liefern. Jedes der präsynaptischen Neuronen hat ein Eingangsende und ein Ausgangsende, und der Eingangsanschluss des gegebenen Schalters ist jeweils mit dem Ausgangsende eines gegebenen eines der präsynaptischen Neuronen verbunden, um die Eingangsdaten an den Eingangsanschluss des gegebenen Schalters zu liefern.
-
Gemäß noch einem weiteren Aspekt der vorliegenden Erfindung wird ein Verfahren zum Aktualisieren synaptischer Gewichte in einem neuromorphen Chip bereitgestellt. Das Verfahren umfasst Verbinden entsprechender Eingangsanschlüsse einer Mehrzahl von Schaltern des neuromorphen Chips mit Eingangsleitungen des neuromorphen Chips und für einen gegebenen Schalter veränderliches Verbinden des gegebenen Schalters mit einer gegebenen einen oder mehreren einer Mehrzahl von Axonleitungen des neuromorphen Chips, um einer gegebenen einen oder mehreren der Mehrzahl synaptischer Zellen des neuromorphen Chips ein synaptisches Gewicht zuzuweisen. Die gegebene eine oder mehreren Axonleitungen sind so konfiguriert, dass sie Eingangsdaten von einer gegebenen einen oder mehreren der Eingangsleitungen empfangen und die Eingangsdaten an die gegebenen synaptischen Zellen liefern. Die synaptischen Zellen sind mit den Axonleitungen und einer Mehrzahl von Dendritenleitungen des neuromorphen Chips zu einer Kreuzschienenanordnung verbunden.
-
Der gegebene Schalter kann gemäß einer Anforderung einer Anwendung, die auf dem neuromorphen System implementiert ist, mit der gegebenen einen oder mehreren Axonleitungen veränderlich verbunden sein, und das Verfahren umfasst weiterhin Durchführen einer Lernoperation mit den Eingangsdaten über die eine oder mehreren gegebenen Axonleitungen, indem es das Gewicht mit einer bevorzugten Anzahl von resistiven Elementen der einen oder mehreren gegebenen synaptischen Zellen exprimiert.
-
Der Abschnitt „Kurzdarstellung“ beschreibt nicht unbedingt alle notwendigen Merkmale der Ausführungsformen der vorliegenden Erfindung. Bei der vorliegenden Erfindung kann es sich auch um eine Teilkombination der vorstehend beschriebenen Merkmale handeln.
-
Figurenliste
-
- 1 zeigt ein Schaubild, das einen beispielhaften Überblick über einen neuromorphen Chip gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht.
- 2 zeigt ein Schaubild, das einen beispielhaften Übergang von Aktionspotenzialen von einem präsynaptischen biologischen Neuron zu einem postsynaptischen biologischen Neuron veranschaulicht.
- 3 zeigt ein Diagramm, das in jeder synaptischen Zelle einer Anordnung eine beispielhafte synaptische Gewichtsänderung gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht.
- 4A zeigt ein Schaubild, das eine beispielhafte nachgelagerte Neuronenanregung durch eine Multiplikations-Akkumulations-(MAC)-Operation veranschaulicht.
- 4B zeigt ein Schaubild, das eine beispielhafte Hardware-Implementierung eines mehrschichtigen neuronalen Netzes (DNN) gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht.
- 5 zeigt ein neuromorphes System gemäß einer Ausführungsform der vorliegenden Erfindung.
- 6 zeigt ein neuromorphes System gemäß einer alternativen Ausführungsform der vorliegenden Erfindung.
- 7 zeigt ein Diagramm, das eine beispielhafte Beziehung eines Eingangsmusters veranschaulicht, das gemäß einer Ausführungsform der vorliegenden Erfindung Eingangsanschlüssen eines neuromorphen Chips zugeführt wird.
- 8 zeigt ein Blockschaubild/einen Ablaufplan, das/der einen beispielhaften Funktionsablauf eines neuromorphen Systems gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht.
- 9 zeigt eine beispielhafte Leitwertvariation in Verbindung mit einer Anzahl synaptischer Zellen gemäß einer Ausführungsform der vorliegenden Erfindung.
- 10 zeigt eine beispielhafte Hardware-Konfiguration eines Computers gemäß einer Ausführungsform der vorliegenden Erfindung.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Nachfolgend werden bevorzugte Ausführungsformen der vorliegenden Erfindung ausführlich mit Bezug auf die Zeichnungen beschrieben.
-
Es ist zu beachten, dass die vorliegende Erfindung nicht auf die nachfolgenden beispielhaften Ausführungsformen beschränkt ist und im Anwendungsbereich der vorliegenden Erfindung mit verschiedenen Abwandlungen umgesetzt werden kann. Darüber hinaus dienen die hierin verwendeten Zeichnungen der Veranschaulichung und stellen keine tatsächlichen Abmessungen dar.
-
In der Regel kann eine analoge Zelle eines neuromorphen Chips einen (fortlaufenden) synaptischen Gewichtswert exprimieren. Während Lernphasen für den neuromorphen Chip können geringfügige Aktualisierungen der Gewichtswerte erforderlich sein. Aufgrund der Variabilität von Einheiten kann es jedoch schwierig sein, den synaptischen Gewichtswert pro Zelle innerhalb eines Genauigkeitsgrades präzise zu aktualisieren. Eine periphere Schaltung kann verwendet werden, um den synaptischen Gewichtswert innerhalb des Genauigkeitsgrades zu regeln, um schließlich eine Erkennungsoperation nahe einem erwarteten Wert zu erreichen. Gleichzeitig erfordert die Implementierung des neuromorphen Hardware-Chips ohne die komplizierte periphere Schaltung, dass der inhärente Vorteil sowohl bei der Trainingsleistung als auch bei der Geschwindigkeit nicht beeinträchtigt wird. Darüber hinaus kann es zu Problemen beim Aktualisieren synaptischer Gewichte aufgrund von Variationen elektrischer Parameter wie z.B. Leitwert, Widerstand und Kapazität kommen.
-
Mit Bezug auf 1 wird ein beispielhafter Überblick über eine Kreuzschienenanordnung 100 eines neuromorphen Chips bereitgestellt. Die Kreuzschienenanordnung 100 kann synaptische Zellen 10, Axone 20 und Dendriten 30 umfassen. Eine synaptische Zelle kann auch als resistive Zelle oder synaptische Speicherzelle bezeichnet werden (z.B. nichtflüchtige Speicherzelle (NVM-Zelle)). Nichteinschränkende Beispiele für NVM sind Phasenwechselspeicher (phase change memory, PCM) und Flash-Speicher. Jede der synaptischen Zellen 10 kann zwei Arten von Speicherzellen enthalten, um das Aufzeichnen analoger und/oder digitaler Daten zu ermöglichen.
-
Wie gezeigt, werden die synaptischen Zellen 10 an allen Kreuzungspunkten der Axone 20 und der Dendriten 30 platziert, um die Kreuzschienenanordnung 100 zu bilden. Somit ist jede synaptische Zelle 10 einem entsprechenden Axon-Dendriten-Paar zugehörig. Eine synaptische Zelle 10 kann einen Wert eines synaptischen Gewichts speichern, der einem synaptischen Zustand zugehörig ist, der ein synaptisches Gewicht zwischen ihrem entsprechenden Axon-Dendriten-Paar angibt.
-
Ein Ende jedes Axons 20 ist mit einem entsprechenden präsynaptischen Neuron 40 verbunden, und ein Ende jedes Dendriten 30 ist mit einem entsprechenden postsynaptischen Neuron 50 verbunden. Die präsynaptischen Neuronen 40 leiten Eingangsdaten über die Axone 20 an die entsprechenden synaptischen Zellen 10 weiter. Die postsynaptischen Neuronen 50 empfangen über die Dendriten 30 Ausgangsdaten von den entsprechenden synaptischen Zellen 10.
-
Aufgrund der Variabilität der Einheiten haben Kreuzschienenanordnungen, die resistive Einheiten enthalten, Schwierigkeiten, den hochauflösenden Widerstand des synaptischen Gewichts pro synaptischer Zelle aufrechtzuerhalten. Präzises Aktualisieren des synaptischen Gewichts der Kreuzschienenanordnungen muss verfügbar werden. Wie hierin beschrieben, kann ein einzelner synaptischer Gewichtswert mit einer variablen Anzahl von synaptischen Zellen auf Grundlage von resistiven Einheiten exprimiert werden.
-
Die Kreuzschienenanordnung 100 stellt eine mögliche Implementierung für massivparallele und energieeffiziente neuromorphe Datenverarbeitungssysteme dar. Die Kreuzschienenanordnung 100 ist biologischen neuronalen Netzen nachempfunden, von denen eines beispielhaft in 2 dargestellt ist.
-
Mit Bezug auf 2 wird ein Schaubild 200 gezeigt, das einen beispielhaften Übergang von Aktionspotenzialen von einem präsynaptischen biologischen Neuron zu einem postsynaptischen biologischen Neuron veranschaulicht. Es wird ein typischer Übergang eines biologischen synaptischen Aktionspotenzials veranschaulicht, wie er an glutamatergen Synapsen im Hippocampus beobachtet werden kann. Die Gewichtszusammenhänge zwischen Axonen und Dendriten und der Übergang von Aktionspotenzialen zwischen einem präsynaptischen Neuron und einem postsynaptischen Neuron werden gezeigt. Das präsynaptische Neuron kann das Aktionspotenzial über das Axon mit gewichtetem Potenzial an der Synapse an das postsynaptische Neuron weitergeben. In der Biologie werden exzitatorische und inhibitorische postsynaptische Potenziale durch chemische und elektrische Botschaften an Synapsen von einem Neuron zum nächsten Neuron weitergeleitet, wodurch das Erzeugen neuer Aktionspotenziale gesteuert wird.
-
Mit Bezug auf 3 wird ein Diagramm 300 gezeigt, das eine beispielhafte synaptische Gewichtsänderung in jeder synaptischen Zelle einer Anordnung veranschaulicht. Die synaptische Gewichtsänderung ΔW ist abhängig vom relativen Spike-Timing zwischen einem präsynaptischen Neuron und einem postsynaptischen Neuron in einer Hardware-Implementierung der Spike-Timing-abhängigen Plastizität (STDP). Das auf nichtflüchtigem Speicher gestützte synaptische Gewicht kann auf analoge Weise abrupt fluktuieren, z.B. im biologischen Fall. Die auf dem Chip gespeicherten neuromorphen Neuronenschaltungen in Kreuzschienenanordnung können Leaky Integrate and Fire (LIF) und synaptische Gewichtsaktualisierung gestützt auf spike-timing-abhängiger Plastizität durchführen, wodurch zusätzliche Komplikationen und zusätzlicher Stromverbrauch im Zusammenhang mit Zeitschemata vermieden werden.
-
Mit Bezug auf 4A wird ein Schaubild 400a bereitgestellt, das eine beispielhafte nachgelagerte Neuronenanregung veranschaulicht, z.B. eine nachgelagerte Neuronenanregung eines mehrschichtigen neuronalen Netzes. Die nachgelagerte Neuronenanregung hängt von der Gewichtsanregung aller vorgelagerten Neuronen ab. Eingangsdaten (z.B. x1, x2 und x3) werden empfangen und zu einem aktuellen Neuron (Σ) akkumuliert. Die Eingangsdaten können durch eine Multiplikations-Akkumulations-(MAC-)Operation akkumuliert werden. Beim Akkumulieren der Eingangsdaten durch die MAC-Operation multipliziert jede der Synapsen die Eingangsdaten mit jedem Gewicht, dann akkumuliert das aktuelle Neuron die gewichteten Eingangsdaten, um auf Grundlage einer oder mehrerer Aktivierungsfunktionen (f) Ausgangsdaten (z.B. y1) zu erzeugen.
-
Mit Bezug auf 4B wird ein Schaubild 400b bereitgestellt, das eine beispielhafte Hardware-Implementierung eines DNN veranschaulicht. Jedes der postsynaptischen Neuronen (M1, M2, ....., Mm) empfängt von den präsynaptischen Neuronen (N1, N2, ....., Nm) durch die synaptischen Zellen gewichtete Ausgangsdaten. Dann werden die gewichteten Ausgangsdaten als Eingangsdaten an eine nachfolgende Schicht von Neuronen (P1, P2, ....., Pm) geliefert. Die MAC-Operation, die sowohl bei der Vorwärtsinferenz als auch bei der Rückpropagierung von DNN zum Einsatz kommt, kann als Vektor-Matrix-Multiplikation auf großen NVM-gestützten Anordnungen implementiert werden. Die Kreuzschienenanordnung synaptischer Zellen mit NVM-(Leitwert)- und Transistorpaaren ist ideal für die MAC-Operationen geeignet, die den Kern des DNN-Lernens darstellen. Die Multiplikationsoperation kann an jeder Kreuzschiene gemäß dem Ohmschen Gesetz durchgeführt werden, und die aktuelle Summierung entlang von Zeilen oder Spalten kann gemäß dem Kirchhoffschen Stromgesetz durchgeführt werden.
-
Mit Bezug nunmehr auf 5 wird ein beispielhaftes neuromorphes System 500 gezeigt. Das System 500 umfasst eine Kreuzschienenanordnung 100, die synaptische Zellen umfasst, z.B. die synaptische Zelle 10. Die Kreuzschienenanordnung 100 ist auf verschiedene Implementierungsformen anwendbar, z.B., ohne darauf beschränkt zu sein, auf SNN, DNN, dynamische Boltzmann-Maschine (DyBM), kontrastive Divergenz und Gradientenabstieg. Die synaptischen Zellen bestehen aus einer oder mehreren resistiven Einheiten, die flüchtigen Speicher, nichtflüchtigen Speicher (NVM) und/oder einen Kondensator umfassen können. Die synaptischen Zellen sind parallel und in Reihe mit Axonleitungen 20 und Dendritenleitungen 30 verbunden, wobei die synaptischen Zellen wie gezeigt an jedem Kreuzungspunkt des Gitternetzes angeordnet sind. Präsynaptische Neuronen (z.B. das präsynaptische Neuron 40) einer Anordnung präsynaptischer Neuronen 45 sind über die synaptischen Zellen mit postsynaptischen Neuronen (z.B. dem postsynaptischen Neuron 50) einer Anordnung postsynaptischer Neuronen 55 verbunden, die jeweils einen eindeutigen Leitwert haben. Die präsynaptischen Neuronen und postsynaptischen Neuronen können Schaltungen enthalten, die so konfiguriert sind, dass sie die präsynaptischen bzw. postsynaptischen Neuronen implementieren.
-
Das System 500 enthält weiterhin Schalter (z.B. Schalter 90), die entlang der Eingangsschnittstellenseite der Kreuzschienenanordnung 100 angeordnet sind, um Schalterfunktionen zu implementieren. Die Schalter können „eins-zu-n“-Ausgabefächerungsschalter sein, die integriert sind, um Ausgabefächerungs-Schalterfunktionen zu implementieren, wobei n eine natürliche Zahl ist. In diesem Beispiel handelt es sich bei den Schaltern um 1-zu-1-Ausgabefächerungsschalter, bei denen jeder synaptischen Zelle ein einzelnes synaptisches Gewicht zugewiesen ist. Die Schalter können Eingangsanschlüsse enthalten, die mit entsprechenden Ausgangsenden der präsynaptischen Neuronen verbunden sind, sowie Ausgangsanschlüsse, die mit entsprechenden Axonleitungen verbunden sind (z.B. umfasst Schalter 90 einen Eingangsanschluss, der mit dem präsynaptischen Neuron 40 verbunden ist, und einen Ausgangsanschluss, der mit der Axonleitung 20 verbunden ist). Die Schalter werden verwendet, um eine Eingangsleitung des präsynaptischen Neurons mit den Axonleitungen 20 veränderlich zu verbinden, um ein einzelnes synaptisches Gewicht mit einer oder mehreren resistiven Zellen 95 zu exprimieren. Dementsprechend können die Schalter dazu verwendet werden, jede der Eingangsleitungen der präsynaptischen Neuronen selektiv mit einer der Axonleitungen zu verbinden, um eine resistive Zelle als synaptisches Gewicht zuzuweisen, wie in 5 durch einen Kreis 95 dargestellt ist.
-
Zwar werden die Schalter in 5 als innerhalb der präsynaptischen Neuronenanordnung 45 liegend dargestellt, doch können einer oder mehrere der Schalter außerhalb der präsynaptischen Anordnung 45 enthalten sein. Die Schalter können mit einer ASIC oder FPGA in den neuromorphen Chip integriert werden. Dementsprechend ist es möglich, den Prozess des Herstellens des neuromorphen Systems, das die Ausgabefächerungs-Schalterfunktionen umfasst, zu optimieren.
-
Gemäß den Kriterien der für eine gegebene Anwendung (z.B. Bilddatenklassifikation, Bild- oder Spracherkennung) erforderlichen Genauigkeit des Gewichtswertes kann die Steuereinheit 80 zwei oder mehr Axonleitungen für ein Ausgangsende des präsynaptischen Neurons 40 zusammenführen.
-
Eingangsleitungen postsynaptischer Neuronen können mit entsprechenden Dendritenleitungen verbunden sein (z.B. kann das postsynaptische Neuron 50 mit der Dendritenleitung 30 verbunden sein).
-
Bei dem System 500 kann es sich um eine Hardware-Vorrichtung handeln, die auf Grundlage von Eingangsdaten, Ausgangsdaten und Trainingsdaten Lernoperationen durchführt. Darüber hinaus kann das System 500 funktionsmäßig in der Lage sein, auf Grundlage der Lernergebnisse Tests durchzuführen und entsprechend der Eingangsdaten Vorhersagen für Ausgangsdaten zu machen. Das System 500 passt synaptische Gewichte so an, dass die Differenz zwischen Ausgangsdaten, die als Reaktion auf die Eingangsdaten ausgegeben werden, und Trainingsdaten, die den Eingangsdaten entsprechen, verringert wird.
-
Das System 500 ist nicht auf das in 5 abgebildete Beispiel beschränkt. Zwar wird zum Beispiel die Kreuzschienenanordnung 100 mit sieben Axonleitungen und sieben Dendritenleitungen gezeigt, jedoch wird die Anzahl von Axonleitungen und Dendritenleitungen nicht als beschränkend betrachtet. Darüber hinaus können die Anzahl von Axonleitungen und die Anzahl von Dendritenleitungen unterschiedlich sein.
-
Der Gewichtswert (z.B. der Leitwert) jeder synaptischen Zelle kann verändert werden, wenn die Eingangsdaten wiederholt von den präsynaptischen Neuronen angewendet werden. Diese Gewichtsänderung jeder synaptischen Zelle führt innerhalb der Kreuzschienenanordnung 100 zu einer Lernoperation.
-
Weiterhin wird gezeigt, dass das System 500 eine Steuereinheit 80, eine Datenbank 60, die Trainingsdaten speichert, und einen Vergleichsteil 70 enthält. Die Steuereinheit 80 kann funktionsmäßig in der Lage sein, die Eingangsdaten zu erzeugen und an die Kreuzschienenanordnung 100 zu liefern. Wenn die Kreuzschienenanordnung 100 Lernoperationen durchführt, kann die Steuereinheit 80 den Eingangsdaten entsprechende Trainingsdaten erzeugen und diese Eingangsdaten und Trainingsdaten an die Kreuzschienenanordnung 100 liefern. Wenn darüber hinaus die Kreuzschienenanordnung 100 auf Grundlage von Lernergebnissen einen Test durchführt, eine Vorhersage macht usw., kann die Steuereinheit 80 Eingangsdaten zum Testen erzeugen und diese Eingangsdaten an die Kreuzschienenanordnung 100 liefern. Im Fall von SNN können die Eingangsdaten beispielsweise eine Zeitreihen-Datenfolge enthalten, in der eine Mehrzahl von Datenteilen, z.B. Audiodaten, Videodaten usw., entlang einer Zeitachse angeordnet sind.
-
Die Steuereinheit 80 kann Eingangsdaten lesen und erfassen, die in einem vorgegebenen Format gespeichert sind (z.B. 28x28 Pixelformat oder Zeitreihen von Bilddaten). Darüber hinaus kann die Steuereinheit 80 an ein Netz o.Ä. angeschlossen werden und Eingangsdaten o.Ä. über das Netz erfassen. Die Steuereinheit 80 kann die erfassten Eingangsdaten u.Ä. in einer Speichervorrichtung o.Ä. innerhalb des Systems 500 speichern.
-
Die Steuereinheit 80 kann funktionsmäßig in der Lage sein, den synaptischen Zellen Eingangsdaten von der Datenbank 60 über die präsynaptische Neuronenanordnung 45 bereitzustellen. Beispielsweise kann jedes präsynaptische Neuron 40 funktionsmäßig in der Lage sein, ein den Eingangsdaten entsprechendes Eingangssignal an die Kreuzschienenanordnung 100 zu liefern. Jedes präsynaptische Neuron 40 kann funktionsmäßig in der Lage sein, das Eingangssignal an eine oder mehrere entsprechende Zellen der Kreuzschienenanordnung 100 zu liefern.
-
In diesem veranschaulichenden Beispiel kann jede der synaptischen Zellen den anderen entsprechenden Zellen ein gewichtetes Signal liefern. Die Ausgangszellenanordnung der Kreuzschienenanordnung kann funktionsmäßig in der Lage sein, die Ausgangsdaten auf Grundlage des von der postsynaptischen Neuronenanordnung 55 ausgegebenen Ausgangswertes auszugeben. In einer Lernoperation wird beispielsweise jede synaptische Zelle mit Gewichten aktualisiert, die einem jeweiligen Ausgangswert entsprechen, der von jedem präsynaptischen Neuron der präsynaptischen Neuronenanordnung 45 ausgegeben wird (z.B. wird die synaptische Zelle 10 mit einem Gewicht aktualisiert, das dem vom präsynaptischen Neuron 40 ausgegebenen Ausgangswert entspricht). Die Kreuzschienenanordnung gibt das Ergebnis, das mithilfe einer vorgegebenen Berechnung erzielt wird, als Ausgangsdaten aus.
-
Das System 500 ist weiterhin mit einem Vergleichsteil 70 dargestellt. Die postsynaptische Neuronenanordnung 55 kann funktionsmäßig in der Lage sein, dem Vergleichsteil 70 die Ausgangsdaten zu liefern. Der Vergleichsteil 70 kann funktionsmäßig in der Lage sein, die von der Steuereinheit 80 ausgegebenen erwarteten Ausgangsdaten mit den von der postsynaptischen Neuronenanordnung 55 gelieferten Ausgangsdaten zu vergleichen. Beispielsweise gibt der Vergleichsteil 70 die Differenz zwischen den erwarteten Ausgangsdaten und den Ausgangsdaten als Fehler aus. Der Vergleichsteil 70 kann der Steuereinheit 80 diesen Fehler als ein Ergebnis des Vergleichs liefern.
-
Darüber hinaus kann der Vergleichsteil 70 funktionsmäßig in der Lage sein, eine Vergleichsoperation durchzuführen, wenn das System 500 eine Lernoperation durchführt. Der Vergleichsteil 70 kann funktionsmäßig in der Lage sein, die Ausgangsdaten der postsynaptischen Neuronenanordnung 55 im Ist-Zustand nach außen auszugeben, wenn das System 500 einen Test durchführt oder eine Vorhersage anhand von Lernergebnissen macht. In diesem Fall kann der Vergleichsteil 70 funktionsmäßig in der Lage sein, die Ausgangsdaten an eine externe Ausgabevorrichtung auszugeben, z.B. eine Anzeige, eine Speichervorrichtung und eine externe Vorrichtung wie z.B. die Datenbank 60. Andernfalls kann der Vergleichsteil 70 funktionsmäßig in der Lage sein, die Ausgangsdaten an nachfolgende Neuronenschichten als präsynaptische Neuronen auszugeben, die den vorherigen postsynaptischen Neuronen entsprechen.
-
Die Steuereinheit 80 kann die synaptischen Gewichte initiieren, indem sie randomisierte Analogwerte für jede der synaptischen Zellen einstellt. Die Steuereinheit 80 kann funktionsmäßig in der Lage sein, die Mehrzahl von Gewichten der synaptischen Zellen 10 entsprechend den Vergleichsergebnissen des Vergleichsteils 70 einzustellen. Der Vergleichsteil 70 kann funktionsmäßig in der Lage sein, die Mehrzahl von Gewichten so einzustellen, dass das System 500 die Ausgangsdaten ausgibt, die als Reaktion auf die Eingangsdaten erwartet werden. Die Steuereinheit 80 kann funktionsmäßig in der Lage sein, die Mehrzahl von Gewichten so zu aktualisieren, dass der Fehler zwischen den Ausgangsdaten, die als Reaktion auf an die präsynaptische Neuronenanordnung 45 gelieferten Trainingsdaten von der postsynaptischen Neuronenanordnung 55 ausgegeben werden, und den für die Trainingsdaten erwarteten Ausgangsdaten weiter verringert wird. Der Vergleichsteil 70 kann funktionsmäßig in der Lage sein zu arbeiten, wenn das System 500 lernt.
-
Dementsprechend kann die oben beschriebene Kreuzschienenanordnung 100 in einem System 500 enthalten sein, das in der Lage ist, durch Aktualisieren der Gewichte der synaptischen Zellen der Kreuzschienenanordnung 100 zu lernen.
-
Beim Eingeben von Eingangsdaten zum Testen kann das System 500 Testergebnisse oder Vorhersageergebnisse für die Eingangsdaten für Tests mit aktualisierten Gewichten ausgeben. Ein solches System 500 kann die Lernoperation und eine Testoperation simulieren, indem es Matrixberechnungen durchführt. Wenn weiterhin die Kreuzschienenanordnung 100 eine physikalische Einheit ist, die als Reaktion auf ein Eingangssignal ein Ausgangssignal ausgibt, kann die Kreuzschienenanordnung 100 mit den Anordnungen NVM-gestützter synaptischer Zellen auf eine Weise implementiert werden, die eine einfache Hardware-Installation ermöglicht.
-
Mit Bezug nunmehr auf 6 wird ein weiteres beispielhaftes neuromorphes System 600 gezeigt. Die Konfiguration von System 600 ähnelt der Konfiguration von System 500 in 5. Zum Beispiel enthält das System 600 eine Kreuzschienenanordnung 100, die synaptische Zellen (z.B. die synaptische Zelle 10), Axonleitungen (z.B. die Axonleitung 20) und Dendritenleitungen (z.B. die Dendritenleitung 30), einen Satz präsynaptischer Neuronen 45 mit präsynaptischen Neuronen (z.B. das präsynaptische Neuron 40), einen Satz postsynaptischer Neuronen 55 mit postsynaptischen Neuronen (z.B. das postsynaptische Neuron 50), die Datenbank 60, den Vergleichsteil 70 und die Steuereinheit 80 enthält.
-
In diesem Beispiel von 6 sind die Schalter (z.B. der Schalter 90) jedoch 1-zu-2-Ausgabefächerungsschalter, die ein Paar benachbarter synaptischer Zellen (z.B. den Kreis 95) einem einzelnen synaptischen Gewicht zuweisen. Dies ermöglicht eine Verringerung der Gewichtsvariabilität (Δwmin) in Anwendungen soweit wie möglich durch dynamisches Ändern der Anzahl von Einheiten, die ein einzelnes Gewicht exprimieren.
-
Gemäß den Kriterien der Genauigkeit des Gewichtswertes, die für die Anwendungen wie z.B. Bilddatenklassifikation und Bild- oder Spracherkennung erforderlich ist, führt die Steuereinheit 80 zwei oder mehr Axonleitungen 20 für das Ausgangsende des präsynaptischen Neurons zusammen. Ein Paar benachbarter Axonleitungen der Kreuzschienenanordnung 100 ist mit je zwei Ausgangsanschlüssen der Schalter verbunden (z.B. ein Paar benachbarter Axonleitungen einschließlich Axonleitung 20 ist mit zwei Ausgangsanschlüssen des Schalters 90 verbunden). Dementsprechend ermöglichen die Schalter im Beispiel von 6 die selektive Verbindung von zwei der Eingangsleitungen mit einem Paar benachbarter Axonleitungen, um als synaptisches Gewicht ein Paar benachbarter synaptischer Zellen zuzuweisen (z.B. Kreis 95).
-
Eine solche Schalterfunktion wird nicht nur für verschiedene kognitive Anwendungen verwendet, sondern trotz Einheitenvariabilität der synaptischen Zellen in der Kreuzschienenanordnung 100 auch zur Kompensation von sehr wertvollen Gewichten. Die Steuereinheit 80 führt z.B. zwei Axonleitungen 20 von benachbarten resistiven Zellen (z.B. Kreis 95) zusammen. Die zusammengeführten benachbarten Zellen kompensieren die Variationen der synaptischen Gewichte, die durch instabile Zellen beeinflusst werden, die fluktuierte Analogwerte in der Kreuzschienenanordnung 100 enthalten.
-
Die Steuereinheit 80 kann die Schalter so steuern, dass sie eine oder mehrere Eingangsleitungen für eine einzelne Leitung von jedem der präsynaptischen Neuronen 40 auswählen. Zum Beispiel können die Schalter eine einzelne Eingangsleitung von jedem der präsynaptischen Neuronen einer oder mehr als 2 Eingangsleitungen des neuromorphen Chips 100 zuweisen.
-
Auch hier sind die Schalterfunktionen nicht auf die in den 5 und 6 gezeigten Beispiele beschränkt. Zum Beispiel können die folgenden Fälle von Schalterfunktionen auf das System 500 angewendet werden:
- (1) 1-zu-1-Ausgabefächerungsschalter (nichtbenachbart) (z.B. 5)
- (2) 1-zu-2-Ausgabefächerungsschalter (benachbart) (z.B. 6)
- (3) 1-zu-n-Ausgabefächerungsschalter (nichtbenachbart), wobei n eine natürliche Zahl von mindestens 2 ist. In diesem Fall kann ein Ausgabefächerungsschalter eine einzelne Eingangsleitung mit nichtbenachbarten Paaren von zwei oder mehr Axonleitungen verbinden, um zwei oder mehr auf den beiden Axonleitungen parallel angeordnete synaptische Zellen als ein einzelnes synaptisches Gewicht zuzuweisen.
- (4) 1-zu-n-Ausgabefächerungsschalter (benachbart, parallel angeordnet), wobei n eine natürliche Zahl von mindestens 3 ist. In diesem Fall kann ein Ausgabefächerungsschalter eine einzelne Eingangsleitung mit nichtbenachbarten Paaren von zwei oder mehr Axonleitungen verbinden, um zwei oder mehr auf den beiden Axonleitungen parallel angeordnete synaptische Zellen als ein einzelnes synaptisches Gewicht zuzuweisen (Fall 2 kann als Teilsatz von Fall 4 betrachtet werden).
-
7 zeigt ein Diagramm 700, das eine beispielhafte Beziehung eines Eingangsmusters veranschaulicht, das den Eingangsanschlüssen einer Kreuzschienenanordnung eines neuromorphen Chips zugeführt wird. Die in 7 dargestellten Trainingsdaten werden als Zeitreihen an Eingangsanschlüsse geliefert. In 7 gibt die vertikale Achse die Eingangsanschlüsse Pr [1] bis Pr [7] (z. B. präsynaptische Neuronen) und die horizontale Achse die Zeit an. Der Zeitraum von der Zeit t0 bis zur Zeit t10 entspricht der normalen Operationsphase. Mit der in 7 gezeigten Operation kann das Neuronenpotenzial jeder synaptischen Zelle 10 bis zum Zeitpunkt t10 überwacht werden. In der normalen Operationsphase wird das auf einem gegebenen Muster beruhende Aktionspotenzial an die Eingangsanschlüsse Pr[1] bis Pr [7] angelegt. In 7 ist an jedem Schnittpunkt, an dem das Aktionspotential zum Zeitpunkt tn an jeden der Eingangsanschlüsse Pr [1] bis Pr [7] angelegt wird, ein Punkt markiert.
-
Als Beispiel für die Bildklassifikation wird in der Lernoperation das Eingangsdatenmuster „SC“ des Aktionspotentials an den Eingangsanschlüsse Pr[1] bis Pr[7] zugeführt. Die Zeichen „SC“ als Eingangsdaten können durch die präsynaptischen Neuronen 40 zugeführt werden. Das Eingangsdatenmuster kann mit einem Punktschema für DNN (z.B. 28x28 Pixel) oder mit einem Zeitreihenschema für SNN formatiert werden. Die Eingangsdaten beschränken sich nicht auf statische digitalisierte Daten handgeschriebener Ziffern (z.B. Datenbank des Modified National Institute of Standards and Technology (MNIST)), sondern umfassen auch eine Zeitreihen-Datenfolge, in der mehrere Datenteile wie z.B. Audiodaten, Videodaten o.Ä. entsprechend der Zeitachse angeordnet sind. In DNN wird die Lernoperation mit Rückpropagierung der handschriftlichen Ziffern oder der Pixelpunktzeichen „SC“, die in 7 dargestellt sind, in die Datenbank durchgeführt.
-
8 zeigt das Blockschaubild/den Ablaufplan 800, das/der einen beispielhaften Funktionsablauf eines neuromorphen Systems veranschaulicht. Das System kann ein NVMgestütztes neuromorphes System sein, das funktionsmäßig in der Lage sein kann, diesbezügliche Lernprozesse von 810 bis 840 durchzuführen.
-
In Block 810 initialisiert eine Steuereinheit des Systems synaptische Zellen in einer Kreuzschienenanordnung des neuromorphen Systems. Vor Beginn der Lernoperation kann die Steuereinheit den Hardware-Zustand der synaptischen Zellen beobachten. Das System kann ein einzelnes synaptisches Gewicht dynamisch ändern, indem es nicht nur eine synaptische Zelle, z.B. eine NVM-gestützte synaptische Zelle, sondern auch synaptische Zellen entsprechend einer für die Anwendungs- oder Hardware-Bedingungen erforderlichen Auflösung exprimiert.
-
In Block 820 identifiziert die Steuereinheit eine Anwendung, die im System eingesetzt wird, bevor es die Lernoperation initiiert, oder erkennt defekte synaptische Zellen. Zum Beispiel kann die Steuereinheit je nach Auflösung (ΔR) des Widerstands (R) pro NVM-Einheit, die durch eine oder mehrere Anwendungs- oder Hardware-Bedingungen erforderlich ist, festlegen, dass ein einzelnes Gewicht exprimiert wird, indem es zuteilt, wie viele synaptische Zellen verwendet werden, um die Auflösungsanforderungen pro Einheit abzuschwächen.
-
In Block 830 kann die Steuereinheit gemäß der einen oder den mehreren Anwendungs- oder Hardware-Bedingungen eine oder mehrere der synaptischen Zellen als ein einzelnes synaptisches Gewicht zuweisen. Eine Schalterfunktion kann verwendet werden, um jeden einzelnen Ausgang eines präsynaptischen Neurons mit Anschlüssen von Axonleitungen der Kreuzschienenanordnung zu verbinden. Die Schalterfunktion kann eine „Eins-zu-n-Ausgabefächerungs“-Schalterfunktion sein, und die Steuereinheit kann den „Einszu-n-Ausgabefächerungsschalter“ so steuern, dass sie Axonleitungen für eine einzelne Eingangsleitung entsprechend dem Ausgangsende der präsynaptischen Neuronen veränderlich auswählt. Beispielsweise kann jeder der Eins-zu-n-Ausgabefächerungsschalter jeder der präsynaptischen Neuronen einer oder mehreren Eingangs-Axonleitungen eine einzelne Ausgangs/Eingangs-Leitung zuweisen.
-
In Block 840 kann das System 100 oder seine Steuereinheit 80 die Lernoperation mit Eingangsdaten durchführen, die von der Anwendung bereitgestellt werden. Nach Zuweisen einer oder mehrerer der NVM-Zellen als ein einzelnes synaptisches Gewicht, ist es bei abgeschwächter Gewichtsvariabilität während der Lernoperation möglich, die Auflösung des für die Anwendung erforderlichen Gewichtswertes zu erreichen.
-
9 zeigt ein Diagramm 900, das eine beispielhafte Leitwertvariation in Verbindung mit einer Anzahl synaptischer Zellen veranschaulicht. Die x-Achse bezeichnet den Leitwert G, der ein Umkehrwert des Widerstands (R) ist, die y-Achse bezeichnet das Wahrscheinlichkeitsverhältnis zum Leitwert (G), und n bezieht sich auf eine Anzahl synaptischer Zellen, die einem einzelnen synaptischen Gewicht zugehörig ist. Es wird angenommen, dass Gewichtswerte proportional zum Leitwert der synaptischen Zellen oder umgekehrt proportional zum Widerstand sind. In den meisten Fällen ist die Verteilung eines einzelnen synaptischen Gewichts umso geringer, je mehr Einheiten es umfasst. Wenn ein spezifischer Leitwert erforderlich ist, um ein einzelnes synaptisches Gewicht zu bilden, sagt 9 aus, dass es besser ist, so viele resistive Elemente oder Zellen mit geringem Widerstand wie möglich zu einem einzelnen synaptischen Gewicht zusammenzuführen. Die folgenden Fälle sind im Diagramm 900 dargestellt:
- (1) Fall A, der eine Variation oder Verteilung eines synaptischen Gewichts zeigt, das aus einer synaptischen Zelle gebildet wird.
- (2) Fall B, der eine Variation eines synaptischen Gewichts zeigt, das aus zwei in Reihe angeordneten synaptischen Zellen gebildet wird.
- (3) Fall C, der eine Variation eines synaptischen Gewichts zeigt, das aus zwei parallel angeordneten synaptischen Zellen gebildet wird.
- (4) Fall D, der eine Variation eines synaptischen Gewichts zeigt, das aus acht parallel angeordneten synaptischen Zellen gebildet wird.
-
In der Lernoperation kann das (NVM-gestützte) neuromorphe System einen präzisen synaptischen Gewichtswert mit geringer Variation der synaptischen Gewichte einstellen. Das Prinzip beim Unterdrücken der Variation des synaptischen Gewichts besteht darin, dass die Tendenz, dass die Variabilität des synaptischen Gewichts sukzessive abnimmt, umso höher ist, je mehr resistive Einheiten das synaptische Gewicht umfasst. Wenn alle synaptischen Zellen der Kreuzschienenanordnung resistive Einheiten mit gleichwertiger Qualität hinsichtlich der Einheitenvariabilität pro resistiver Einheit enthalten, kann die Variation des einzelnen synaptischen Gewichts (die mit mehreren resistiven Zellen exprimiert wird) erheblich geringer ausfallen als die Variation pro synaptischer Zelle. Um die Variationsanforderung pro Einheit zu verringern, ist ein einzelnes synaptisches Gewicht mit mehreren resistiven Zellen für die neuromorphe Hardware-Implementierung von Vorteil.
-
Wie oben erwähnt, kann ein Umkehrwert des Widerstandwerts (z.B. ein Leitwert), der für die in der synaptischen Zelle enthaltenen Widerstandselemente eingestellt ist, das Gewicht darstellen. Außerdem können die in der synaptischen Zelle verwendeten Widerstandselemente variable Widerstandswerte haben. So kann z.B. ein einzelnes Gewicht durch Verwenden mehrerer resistiver Einheiten exprimiert werden, um die Anforderung an die Auflösung des Leitwerts pro Einheit zu verringern. Es werden typische Beispiele für die Implementierung neuromorpher Hardware gegeben, um einen einzelnen Gewichtswert durch Zuweisen von einem, zwei oder mehreren resistiven Elementen zu exprimieren. Durch dynamisches Zuweisen zweier oder mehrerer resistiver Zellen zu einem einzelnen synaptischen Gewicht lassen sich die Auflösungen des Widerstands besser erreichen, die gemäß einer oder mehreren Anwendungen, die das neuromorphe System implementieren, erforderlich sind.
-
Die hierin beschriebenen Beispiele ermöglichen das Aktualisieren synaptischer Gewichte mit hoher Präzision, auch wenn es aufgrund von Eigenschaften der Einheiten (z.B. Variationen) schwierig sein kann, den Widerstand von Einheiten in kleinen Schritten zu ändern. Außerdem ist der durch die hierin beschriebenen Ausführungsformen implementierte neuromorphe Chip flächeneffizient und vorteilhaft für skalierbare Schaltungen für verschiedene Einheitenvariabilitäten.
-
10 zeigt eine beispielhafte Hardware-Konfiguration eines Computers gemäß der vorliegenden Erfindung. Ein Programm, das im Computer 1000 installiert ist, kann den Computer 1000 veranlassen, als [ ] zu funktionieren oder Operationen, die dem neuromorphen Chip 100 der Ausführungsformen der vorliegenden Erfindung zugehörig sind, oder einen oder mehrere Abschnitte (darunter Module, Komponenten, Elemente usw.) durchzuführen, und/oder den Computer 1000 veranlassen, Prozesse der Ausführungsformen der vorliegenden Erfindung oder Schritte davon durchzuführen. Ein solches Programm kann von der CPU 1010 ausgeführt werden, um den Computer 1000 zu veranlassen, bestimmte Operationen durchzuführen, die einigen oder allen hierin beschriebenen Blöcken von Ablaufplänen und Blockschaubildern zugehörig sind.
-
Der Computer 1000 gemäß der vorliegenden Erfindung umfasst eine CPU 1010 und einen RAM 1030. Der Computer 1000 umfasst auch Eingabe/Ausgabe-Einheiten, z.B. eine E/A-Schnittstelle 1050 und ein Festplattenlaufwerk 1040, die über eine Eingabe/Ausgabe-Steuereinheit mit der Host-Steuereinheit verbunden sind. Der Computer umfasst auch ältere Eingabe/Ausgabe-Einheiten, z.B. einen ROM 1020, der mit der CPU verbunden sein kann.
-
Die CPU 1010 arbeitet nach Programmen, die im ROM 1020 und RAM 1030 gespeichert sind und steuert dadurch jede Einheit. Die E/A-Schnittstelle 1050 tauscht über ein Netzwerk 1080 Daten mit anderen elektronischen Einheiten aus. Das Festplattenlaufwerk 1040 speichert von der CPU 1010 verwendete Programme und Daten im Computer 1000. Das DVD-ROM-Laufwerk liest die Programme oder Daten vom DVD-ROM und stellt das Festplattenlaufwerk 1040 mit den Programmen oder Daten über den RAM 1030 bereit.
-
Der ROM 1020 speichert darauf ein Boot-Programm oder Ähnliches, das vom Computer 1000 zum Zeitpunkt der Aktivierung durchgeführt wird, und/oder ein Programm abhängig von der Hardware des Computers 1000.
-
Von durch einen Computer lesbaren Medien wie dem DVD-ROM wird ein Programm bereitgestellt. Das Programm wird von durch einen Computer lesbaren Medien gelesen, die auf dem Festplattenlaufwerk 1040, RAM 1030 oder ROM 1020 installiert sind, bei denen es sich ebenfalls um Beispiele für durch einen Computer lesbare Medien handelt, und wird von der CPU 1010 ausgeführt. Die in diesen Programmen beschriebene Informationsverarbeitung wird in den Computer 1000 gelesen und führt zu einer Zusammenarbeit zwischen einem Programm und den vorstehend genannten verschiedenen Arten von Hardware-Ressourcen. Der neuromorphe Chip und sein System 100 oder ein Verfahren können eingerichtet werden, indem der Betrieb oder die Verarbeitung von Informationen gemäß der Nutzung des Computers 1000 durchgeführt wird.
-
Wenn beispielsweise zwischen dem Computer 1000 und einem Netzwerk 1080 über die Datenübertragungsschnittstelle 1070 eine Datenübertragung durchgeführt wird, kann die CPU 1010 ein in den RAM 1030 geladenes Datenübertragungsprogramm ausführen, um die Datenübertragungsschnittstelle 1070 anzuweisen, auf Grundlage der im Datenübertragungsprogramm beschriebenen Verarbeitung eine Datenübertragung zu verarbeiten. Die Datenübertragungsschnittstelle 1070 liest unter Steuerung der CPU 1010 Übertragungsdaten, die in einem Übertragungszwischenspeicherbereich gespeichert sind, der in einem Aufzeichnungsmedium wie dem RAM 1030 oder dem Speicherlaufwerk 1040 (z.B. dem HDD-Laufwerk, DVD-ROM-Laufwerk oder Flash-Laufwerk) bereitgestellt wird, und überträgt die gelesenen Übertragungsdaten an das Netzwerk 1080 oder schreibt die vom Netzwerk 1080 empfangenen Empfangsdaten in einen Empfangszwischenspeicherbereich oder Ähnliches, der auf dem Aufzeichnungsmedium bereitgestellt wird.
-
Die CPU 1010 kann darüber hinaus veranlassen, dass die gesamte oder ein erforderlicher Teil einer Datei oder einer Datenbank in den RAM 1030 gelesen wird, wobei die Datei oder Datenbank in einem externen Aufzeichnungsmedium wie dem Festplattenlaufwerk 1040 usw. gespeichert ist, und kann verschiedene Arten von Verarbeitung in Verbindung mit den Daten im RAM 1030 durchführen. Die CPU 1010 kann die verarbeiteten Daten wieder in das externe Aufzeichnungsmedium schreiben.
-
Verschiedene Arten von Informationen wie beispielsweise verschiedene Arten von Programmen, Daten, Tabellen und Datenbanken können in dem Aufzeichnungsmedium gespeichert werden, um eine Informationsverarbeitung zu durchlaufen. Die CPU 1010 kann verschiedene Arten von Verarbeitung in Verbindung mit dem aus dem RAM 1030 gelesenen Daten durchführen, wozu verschiedene Arten von Operationen, Informationsverarbeitung, Zustandsbeurteilung, bedingte Verzweigung, unbedingte Verzweigung, Suchen/Ersetzen von Informationen usw. gehören, wie in dieser Offenbarung beschrieben und durch eine Anweisungssequenz von Programmen gekennzeichnet, und schreibt das Ergebnis zurück in den RAM 1030. Die CPU 1010 kann darüber hinaus nach Informationen in einer Datei, Datenbank usw. im Aufzeichnungsmedium suchen.
-
Die vorstehend erläuterten Programm- oder Software-Module können in den durch einen Computer lesbaren Medien im Computer 1000 oder in dessen Nachbarschaft gespeichert werden. Ein Aufzeichnungsmedium wie eine Festplatte oder ein RAM in einem Serversystem, das mit einem bestimmten Datenübertragungsnetzwerk oder dem Internet verbunden ist, kann darüber hinaus als die durch einen Computer lesbaren Medien verwendet werden und dem Computer 1000 dadurch das Programm über das Netzwerk 1080 bereitstellen.
-
Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann ein durch einen Computer lesbares Speichermedium enthalten, auf dem durch einen Computer lesbare Programmanweisungen gespeichert 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 zur Ausführung 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 codierte 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. einen Lichtwellenleiter durchlaufende 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/Verarbeitungs-Einheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetzwerk und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Router, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs/Verarbeitungs-Einheit 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/Verarbeitungs-Einheit 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 Weitverkehrsnetzwerk (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, vor Ort 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. Insbesondere können die Ausgabefächerungs-Schalterfunktionen der vorliegenden Ausführungsformen durch Techniken der elektronischen Schaltung in die neuromorphen Chips integriert werden.
-
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 mittels 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, sodass 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, sodass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, einen Herstellungsartikel 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, sodass 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.
-
Der Ablaufplan und die Blockschaltbilder in den Figuren veranschaulichen die Architektur, 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.
-
Ausführungsformen der vorliegenden Erfindung wurden zwar beschrieben, der technische Umfang der Erfindung ist jedoch nicht auf die vorstehend beschriebenen Beispiele beschränkt. Fachleuten ist ersichtlich, dass verschiedene Änderungen und Verbesserungen zu den vorstehend beschriebenen Beispielen hinzugefügt werden können.
-
Die Arbeitsschritte, Verfahren, Schritte und Phasen jedes Prozesses, die von einer Vorrichtung, einem System, einem Programm und einem Verfahren ausgeführt werden, die in den Ansprüchen, Ausführungsformen oder Schaubildern aufgeführt sind, können in beliebiger Reihenfolge ausgeführt werden, solange die Reihenfolge nicht durch „vor“ oder dergleichen angegeben ist und solange die Ausgabe aus einem vorherigen Prozess nicht in einem späteren Prozess verwendet wird. Auch wenn der Ablaufplan anhand von Begriffen wie „zuerst“ oder „als Nächstes“ in den Ansprüchen, Ausführungsformen oder Schaubildern beschrieben wird, bedeutet dies nicht unbedingt, dass der Prozess in dieser Reihenfolge durchgeführt werden muss.
-
Wie aus den obigen Ausführungen deutlich wird, können die Ausführungsformen der vorliegenden Erfindung Aktualisieren präziser synaptischer Gewichte eines jeweiligen neuromorphen Chips realisieren. Mit der Erfindung kann die Einheitenvariabilität verringert werden, ohne die Originalschaltungen der skalierbaren NVM-Anordnungen zu verändern, sodass es nicht notwendig ist, spezielle Schaltungen zu bauen, um die Auflösung des synaptischen Gewichts zu verbessern. Wenn die Auflösung nicht so gering sein muss, stehen die restlichen Einheiten in der NVM-Anordnung des Chips zur Verfügung, um verbleibende synaptischen Zellen für eine andere Netzwerkanordnung als die NVM-Anordnung zu implementieren.