-
TECHNISCHES GEBIET
-
Die vorliegende Erfindung betrifft eine Speicherzellenstruktur.
-
HINTERGRUND
-
In letzter Zeit sind verschiedene Techniken bezüglich einer Speicherzellenstruktur bekannt geworden. Die Hardwareimplementierung eines neuromorphen Systems enthält Synapsenspeicher sowie einen Neuronen-Betriebsblock und ein Axon-Verbindungsnetzwerk.
-
Für den Synapsenspeicher ist ein System mit Offline-Lernen bekannt. Die Synapsenspeicherdaten werden in diesem Modus nicht aktualisiert, da der Speicherschreibvorgang nur im Offline-Lern-Betriebsmodus aktiviert wird.
-
Andererseits ist auch ein System mit Online-Lernen bekannt. Die Leistung des Synapsenspeichers bestimmt die Leistung des Systems. Die Synapsenspeicherzellen werden in zwei Typen unterteilt, analoge Synapsenzelltypen und digitale Synapsenzelltypen.
-
Beide Typen haben ihre Nachteile. Die Synapsenzellen werden viel bequemer und präziser gesteuert, wenn diese Nachteile behoben werden.
-
Daher besteht in der Technik ein Bedarf, das oben erwähnte Problem zu lösen.
-
KURZDARSTELLUNG
-
Von einem ersten Aspekt aus betrachtet, sieht die vorliegende Erfindung eine Speicherzellenstruktur vor, aufweisend: eine Synapsenspeicherzelle mit einer Mehrzahl von Zellkomponenten, wobei jede der Mehrzahl von Zellkomponenten mindestens eine Einheitszelle; eine Mehrzahl von Schreibleitungen, die so konfiguriert sind, dass sie einen Synapsenzustand in die Synapsenspeicherzelle schreiben, wobei jede der Mehrzahl von Schreibleitungen so konfiguriert ist, dass sie einen ersten Satz einer vorbestimmten Anzahl von Zuständen in eine entsprechende Zellkomponente der Mehrzahl von Zellkomponenten schreibt, indem sie einen zweiten Satz der vorbestimmten Anzahl von Zuständen in alle der mindestens einen Einheitszelle schreibt, die in der entsprechenden Zellkomponente enthalten sind, wobei der erste Satz von dem zweiten Satz und einer Anzahl der mindestens einen Einheitszelle abhängig ist, die in der entsprechenden Zellkomponente enthalten sind; und eine Leseleitung enthält, die so konfiguriert ist, dass sie den Synapsenzustand aus der Synapsenspeicherzelle liest, wobei die Leseleitung ferner so konfiguriert ist, dass sie den ersten Satz der vorbestimmten Anzahl von Zuständen gleichzeitig aus allen der Mehrzahl von Zellkomponenten liest.
-
Von einem weiteren Aspekt aus betrachtet, sieht die vorliegende Erfindung ein Speicherzellensystem vor, aufweisend: eine Synapsenspeicherzelle mit einer Mehrzahl von Zellkomponenten, wobei jede der Mehrzahl von Zellkomponenten mindestens eine Einheitszelle; eine Mehrzahl von Schreibtreibern, die so konfiguriert sind, dass sie einen Synapsenzustand in die Synapsenspeicherzelle schreiben, wobei jeder der Mehrzahl von Schreibtreibern so konfiguriert ist, dass er einen ersten Satz einer vorbestimmten Anzahl von Zuständen in eine entsprechende Zellkomponente der Mehrzahl von Zellkomponenten schreibt, indem er einen zweiten Satz der vorbestimmten Anzahl von Zuständen in alle der mindestens einen Einheitszelle schreibt, die in der entsprechenden Zellkomponente enthalten sind, wobei der erste Satz von dem zweiten Satz und einer Anzahl der mindestens einen Einheitszelle abhängig ist, die in der entsprechenden Zellkomponente enthalten sind; und einen Lesetreiber enthält, der so konfiguriert ist, dass er den Synapsenzustand aus der Synapsenspeicherzelle liest, wobei der Lesetreiber ferner so konfiguriert ist, dass er den ersten Satz der vorbestimmten Anzahl von Zuständen gleichzeitig aus allen der Mehrzahl von Zellkomponenten liest.
-
Unter einem weiteren Aspekt betrachtet, sieht die vorliegende Erfindung ein Verfahren zum Herstellen einer Speicherzellenstruktur vor, das Verfahren aufweisend: Erstellen einer Mehrzahl von Einheitszellen; Zusammenstellen einer Mehrzahl von Zellkomponenten, wobei jede der Mehrzahl von Zellkomponenten mindestens eine Einheitszelle aus der Mehrzahl von Einheitszellen enthält; Zusammenstellen einer Synapsenspeicherzelle, die die Mehrzahl von Zellkomponenten enthält; Anordnen einer Mehrzahl von Schreibleitungen, die so konfiguriert sind, dass sie einen Synapsenzustand in die Synapsenspeicherzelle schreiben, wobei jede der Mehrzahl von Schreibleitungen so konfiguriert ist, dass sie einen ersten Satz einer vorbestimmten Anzahl von Zuständen in eine entsprechende Zellkomponente der Mehrzahl von Zellkomponenten schreibt, indem sie einen zweiten Satz der vorbestimmten Anzahl von Zuständen in alle der mindestens einen Einheitszelle schreibt, die in der entsprechenden Zellkomponente enthalten sind, wobei der erste Satz von dem zweiten Satz und einer Anzahl der mindestens einen Einheitszelle abhängig ist, die in der entsprechenden Zellkomponente enthalten sind; und Anordnen einer Leseleitung, die so konfiguriert ist, dass sie den Synapsenzustand aus der Synapsenspeicherzelle liest, wobei die Leseleitung ferner so konfiguriert ist, dass sie den ersten Satz der vorbestimmten Anzahl von Zuständen gleichzeitig aus allen der Mehrzahl von Zellkomponenten liest.
-
Gemäß einer Ausführungsform der vorliegenden Erfindung ist eine Speicherzellenstruktur vorgesehen. Die Speicherzellenstruktur enthält eine Synapsenspeicherzelle, die eine Mehrzahl von Zellkomponenten enthält. Jede der Mehrzahl von Zellkomponenten enthält mindestens eine Einheitszelle. Die Speicherzellenstruktur enthält ferner eine Mehrzahl von Schreibleitungen, die zum Schreiben eines Synapsenzustands in die Synapsenspeicherzelle angeordnet sind. Jede der Mehrzahl von Schreibleitungen ist so konfiguriert, dass sie einen aus einem ersten Satz einer vorbestimmten Anzahl von Zuständen in eine entsprechende Zellkomponente der Mehrzahl von Zellkomponenten schreibt, indem sie einen aus einem zweiten Satz der vorbestimmten Anzahl von Zuständen in alle der mindestens eine Einheitszelle schreibt, die in der entsprechenden Zellkomponente enthalten sind. Der erste Satz hängt von dem zweiten Satz und einer Anzahl der mindestens einen Einheitszelle ab, die in der entsprechenden Zellkomponente enthalten sind. Die Speicherzellenstruktur enthält ferner eine Leseleitung, die zum Lesen des Synapsenzustands aus der Synapsenspeicherzelle angeordnet ist. Die Leseleitung ist so konfiguriert, dass sie einen des ersten Satzes der vorbestimmten Anzahl von Zuständen gleichzeitig aus allen der Mehrzahl von Zellkomponenten liest.
-
Gemäß einer weiteren Ausführungsform der vorliegenden Erfindung ist ein Speicherzellensystem vorgesehen. Das Speicherzellensystem enthält eine Synapsenspeicherzelle, die eine Mehrzahl von Zellkomponenten enthält. Jede der Mehrzahl von Zellkomponenten enthält mindestens eine Einheitszelle. Das Speicherzellensystem enthält ferner eine Mehrzahl von Schreibtreibern, die so konfiguriert sind, dass sie einen Synapsenzustand in die Synapsenspeicherzelle schreiben. Jeder der Mehrzahl von Schreibtreibern wird so betrieben, dass er einen aus einem ersten Satz einer vorbestimmten Anzahl von Zuständen in eine entsprechende Zellkomponente der Mehrzahl von Zellkomponenten schreibt, indem er einen aus einem zweiten Satz der vorbestimmten Anzahl von Zuständen in alle der mindestens einen Einheitszelle schreibt, die in der entsprechenden Zellkomponente enthalten sind. Der erste Satz hängt von dem zweiten Satz und einer Anzahl der mindestens einen Einheitszelle ab, die in der entsprechenden Zellkomponente enthalten sind. Das Speicherzellensystem enthält ferner einen Lesetreiber, der so konfiguriert ist, dass er den Synapsenzustand aus der Synapsenspeicherzelle liest. Der Lesetreiber ist so konfiguriert, dass er einen des ersten Satzes der vorbestimmten Anzahl von Zuständen gleichzeitig aus allen der Mehrzahl von Zellkomponenten liest.
-
Gemäß noch einer weiteren Ausführungsform der vorliegenden Erfindung ist ein Verfahren zum Herstellen einer Speicherzellenstruktur vorgesehen. Das Verfahren enthält ein Erstellen einer Mehrzahl von Einheitszellen. Das Verfahren enthält ein Zusammenstellen einer Mehrzahl von Zellkomponenten, die jeweils mindestens eine Einheitszelle der Mehrzahl von Einheitszellen enthalten. Das Verfahren enthält ein Zusammenstellen einer Synapsenspeicherzelle, die die Mehrzahl von Zellkomponenten enthält. Das Verfahren enthält ferner ein Anordnen einer Mehrzahl von Schreibleitungen zum Schreiben eines Synapsenzustands in die Synapsenspeicherzelle. Jede der Mehrzahl von Schreibleitungen ist so konfiguriert, dass sie einen aus einem ersten Satz einer vorbestimmten Anzahl von Zuständen in eine entsprechende Zellkomponente der Mehrzahl von Zellkomponenten schreibt, indem sie einen aus einem zweiten Satz der vorbestimmten Anzahl von Zuständen in alle der mindestens eine Einheitszelle schreibt, die in der entsprechenden Zellkomponente enthalten sind. Der erste Satz hängt von dem zweiten Satz und einer Anzahl der mindestens einen Einheitszelle ab, die in der entsprechenden Zellkomponente enthalten sind. Das Verfahren enthält ferner ein Anordnen einer Leseleitung zum Lesen des Synapsenzustands aus der Synapsenspeicherzelle. Die Leseleitung ist so konfiguriert, dass sie einen des ersten Satzes der vorbestimmten Anzahl von Zuständen gleichzeitig aus allen der Mehrzahl von Zellkomponenten liest.
-
Figurenliste
-
Die vorliegende Erfindung wird nun lediglich beispielhaft unter Bezugnahme auf bevorzugte Ausführungsformen beschrieben, wie sie in den folgenden Figuren gezeigt sind:
- 1 zeigt einen Synapsenspeicher mit einer Crossbar-Array-Struktur in Übereinstimmung mit dem Stand der Technik und in dem eine bevorzugte Ausführungsform der vorliegenden Erfindung implementiert werden kann;
- 2A zeigt Zellkomponenten einer Synapsenspeicherzelle gemäß einer beispielhaften Ausführungsform;
- 2B zeigt Zellkomponenten einer Synapsenspeicherzelle gemäß einer beispielhaften Ausführungsform;
- 2C zeigt Zellkomponenten einer Synapsenspeicherzelle gemäß einer beispielhaften Ausführungsform;
- 2D zeigt Zellkomponenten einer Synapsenspeicherzelle gemäß einer beispielhaften Ausführungsform;
- 3 zeigt ein Synapsenspeicherzellensystem gemäß einer beispielhaften Ausführungsform;
- 4 zeigt Zeitdiagramme, die Zeitpunkte von Signalausgaben von Schreibtreibern, von Signalausgaben von einem Lesetreiber und von Zustandsübergängen der Synapsenspeicherzelle gemäß einer Ausführungsform der vorliegenden Erfindung zeigen;
- 5 zeigt ein Synapsenspeichersystem und Datenflüsse in dem Synapsenspeichersystem gemäß einer beispielhaften Ausführungsform; und
- 6 zeigt ein Block-/Flussdiagramm, das ein Verfahren zum Herstellen eines Synapsenspeicherzellensystems gemäß einer beispielhaften Ausführungsform darstellt.
-
DETAILLIERTE BESCHREIBUNG
-
Nachfolgend werden beispielhafte Ausführungsformen der vorliegenden Erfindung unter Bezugnahme auf die beigefügten Zeichnungen detailliert beschrieben.
-
Es ist zu beachten, dass die vorliegende Erfindung nicht auf diese unten aufgeführten beispielhaften Ausführungsformen beschränkt ist und mit verschiedenen Modifikationen innerhalb des Schutzumfangs der vorliegenden Erfindung implementiert werden kann. Darüber hinaus dienen die hier verwendeten Zeichnungen der Veranschaulichung und müssen keine tatsächlichen Abmessungen zeigen.
-
Die Hardware-Implementierung eines neuromorphen Systems kann Synapsenspeicher sowie Neuronenkörper und Axonen-Verbindungsnetzwerke enthalten. In 1 ist ein Synapsenspeicher 100 mit einer Crossbar-Array-Struktur gezeigt. Wie in 1 gezeigt, kann der Synapsenspeicher 100 Synapsenspeicherzellen 10 enthalten, die an allen Kreuzungspunkten aller Axone 20 und aller Dendriten 30 angeordnet/platziert sind. Jede der Synapsenspeicherzellen 10 kann einen Synapsengewichtswert als ein Beispiel eines Synapsenzustands speichern, der eine Gewichtung einer Synapsenverbindung zwischen einem entsprechenden der Axone 20 und einem entsprechenden der Dendriten 30 angibt.
-
Eine Synapsenspeicherzelle 10 wird in zwei Typen kategorisiert, nämlich eine analoge Synapsenspeicherzelle (z.B. eine analoge Zelle) und eine digitale Synapsenspeicherzelle (z.B. eine digitale Zelle).
-
Die analoge Zelle kann einen kontinuierlichen Synapsengewichtswert ausdrücken. Es ist jedoch schwierig, den Synapsengewichtswert mit einer bestimmten Genauigkeit zu steuern. Es erfordert zudem komplizierte periphere Schaltungen, um den Synapsengewichtswert mit einer solchen Genauigkeit zu steuern. Ferner beeinflusst eine Schwankung der Leistung der Synapsenspeicherzelle 10 die Leistung des neuromorphen Systems direkt.
-
Die digitale Zelle kann weiter in eine Single-Level-Cell (SLC) und eine Multi-Level-Cell (MLC) unterteilt werden.
-
Die SLC verwendet einen einzelnen Schwellenwert, um zwei Zustände (z.B. einen schweren Zustand und einen leichten Zustand) zu unterscheiden. Die SLC kann nur einen Zustand mit oder ohne Verbindung zwischen Prä-Synapse und Post-Synapse ausdrücken. Daher erfordert die SLC meistens weitere Speicher, um mehr als zwei Synapsengewichtswerte auszudrücken. Folglich ist der Zugriff auf mehrere Speicher erforderlich.
-
Die MLC verwendet mehrere Schwellenwerte. Unter der Annahme, dass die Anzahl der Schwellenwerte n (> 1) ist, kann die MLC (n + 1) Synapsengewichtswerte ausdrücken. Wenn beispielsweise n sieben ist, können acht Synapsengewichtswerte in einer MLC gespeichert werden. Die MLC kann einen genaueren Synapsengewichtswert als die SLC ausdrücken. Es ist jedoch schwierig, den Synapsengewichtswert sowie die obige Analogzelle zu steuern. Ferner erfordert die MLC hochauflösende Erfassungsschaltungen und komplizierte Codier-/ Decodierschaltungen, um den Synapsengewichtswert zu lesen und zu schreiben.
-
Die Synapsenspeicherzelle 10 ist bequemer und genauer gesteuert, wenn diese Nachteile überwunden werden.
-
Die Synapsenspeicherzelle 10 mit einer einfachen Struktur, die unten beschrieben wird, ist genauer als die MLC. Diese Synapsenspeicherzelle 10 erfordert weder hochauflösende Erfassungsschaltungen noch komplizierte Codier-/ Decodierschaltungen.
-
Bezugnehmend auf die 2A bis 2D sind Zellkomponenten einer Synapsenspeicherzelle 10 gemäß einer beispielhaften Ausführungsform gezeigt. In einer beispielhaften Ausführungsform wird angenommen, dass die Synapsenspeicherzelle 10 eine resistive Speicherzelle ist, die eine Mehrzahl von Einheitswiderständen enthält. Es wird angenommen, dass jeder der Mehrzahl von Einheitswiderständen einen Gewichtswert WEinheit aufweist, der ein Leitfähigkeitswert (z.B. ein Kehrwert eines Widerstandswertes REinheit) sein kann. In einer beispielhaften Ausführungsform wird angenommen, dass jeder der Mehrzahl von Einheitswiderständen mit der oben beschriebenen SLC implementiert ist. Das heißt, es wird angenommen, dass der Gewichtswert WEinheit zwei Zustände aufweist, nämlich einen schweren Zustand und einen leichten Zustand. Zum Beispiel kann der Gewichtswert WEinheit eins (1) sein, wenn er einen schweren Zustand hat, und Null (0) sein, wenn er einen leichten Zustand hat.
-
In einer Ausführungsform können Zellkomponenten erstellt werden, die aus jeweils 2i-1 Einheitswiderständen bestehen, wobei i von 1 bis n reicht. Wenn i nicht 1 ist, können die 2i-1 Einheitswiderstände parallel geschaltet sein. So kann die aus den 2i-1 Einheitswiderständen bestehende Zellkomponente einen Gewichtswert haben, der durch 2i-1-mal WEinheit ausgedrückt wird (bzw. einen Widerstandswert, der durch ein 2i-1-tel (1/2i-1) von REinheit ausgedrückt wird). Das heißt, dass die aus den 2i-1 Einheitswiderständen bestehende Zellkomponente einen Gewichtswert von „0“ oder „2i-1“ haben kann.
-
Zum Beispiel zeigt 2A eine Zellkomponente 11, die eine Zellkomponente für i = 1 ist. Die Zellkomponente 11 kann einen Einheitswiderstand 111 enthalten. Somit kann die Zellkomponente 11 einen Gewichtswert haben, der durch WEinheit ausgedrückt wird. Das heißt, dass die Zellkomponente 11 einen Gewichtswert „0“ oder „1“ haben kann. Die Gewichtswerte „0“ und „1“ dienen als ein Beispiel eines ersten Satzes einer vorbestimmten Anzahl von Zuständen. Für die Einzelzellenkomponente für i = 1 dienen zudem die Gewichtswerte „0“ und „1“ als ein Beispiel für einen zweiten Satz einer vorbestimmten Anzahl von Zuständen. Ferner zeigt 2A einen oberen Knoten (TN) und einen unteren Knoten (BN) der Zellkomponente 11.
-
2B zeigt eine Zellkomponente 12, die eine Zellkomponente für i = 2 ist. Die Zellkomponente 12 kann Einheitswiderstände 121 und 122 enthalten, die parallel geschaltet sind. Somit kann die Zellkomponente 12 einen Gewichtswert haben, der durch zweimal WEinheit ausgedrückt wird (bzw. einen Widerstandswert, der durch die Hälfte (1/2) von REinheit ausgedrückt wird). Das heißt, dass die Zellkomponente 12 einen Gewichtswert „0“ oder „2“ haben kann. Die Gewichtswerte „0“ und „2“ dienen als ein Beispiel eines ersten Satzes einer vorbestimmten Anzahl von Zuständen. Ferner zeigt 2B einen TN, der durch Verbinden von oberen Knoten der Einheitswiderstände 121 und 122 ausgebildet wird, und einen BN, der durch Verbinden von unteren Knoten der Einheitswiderstände 121 und 122 ausgebildet wird.
-
2C zeigt eine Zellkomponente 13, die eine Zellkomponente für i = 3 ist. Die Zellkomponente 13 kann Einheitswiderstände 131 bis 134 enthalten, die parallel geschaltet sind. Somit kann die Zellkomponente 13 einen Gewichtswert haben, der durch viermal WEinheit ausgedrückt wird (bzw. einen Widerstandswert, der durch ein Viertel (1/4) von REinheit ausgedrückt wird). Das heißt, dass die Zellkomponente 13 einen Gewichtswert „0“ oder „4“ haben kann. Die Gewichtswerte „0“ und „4“ dienen als ein Beispiel eines ersten Satzes einer vorbestimmten Anzahl von Zuständen. Ferner zeigt 2C einen TN, der durch Verbinden von oberen Knoten der Einheitswiderstände 131 bis 134 ausgebildet wird, und einen BN, der durch Verbinden von unteren Knoten der Einheitswiderstände 131 bis 134 ausgebildet wird.
-
In ähnlicher Weise können Zellkomponenten für i = 4 bis i = n - 1 ausgebildet werden. Nun bezugnehmend auf 2D zeigt 2D eine Zellkomponente 1N, die eine Zellkomponente für i = n ist. Die Zellkomponente 1N kann 2n-1 parallel geschaltete Einheitswiderstände enthalten. Somit kann die Zellkomponente 1N einen Gewichtswert haben, der durch 2n-1-mal WEinheit ausgedrückt wird (bzw. einen Widerstandswert, der durch ein 2n-1-tel (1/2n-1) von REinheit ausgedrückt wird). Das heißt, dass die Zellkomponente 1N einen Gewichtswert „0“ oder „2n-1“ haben kann. Die Gewichtswerte „0“ und „2n-1“ dienen als ein Beispiel für einen ersten Satz einer vorbestimmten Anzahl von Zuständen. Ferner zeigt 2D einen TN, der durch Verbinden von oberen Knoten der 2n-1 Einheitswiderstände ausgebildet wird, und einen BN, der durch Verbinden von unteren Knoten der 2n-1 Einheitswiderstände ausgebildet wird. Durch Kombinieren dieser Zellkomponenten für i = 1 bis i = 3 können zum Beispiel die Synapsengewichtswerte „0“ bis „7“ ausgedrückt werden. Das heißt, dass mit diesen Zellkomponenten für i = 1 bis i = n die Synapsengewichtswerte für n-stellige Binärzahlen ausgedrückt werden können.
-
In 3 ist ein Synapsenspeicherzellensystem gemäß einer beispielhaften Ausführungsform gezeigt.
-
3 zeigt zuerst eine Struktur der Synapsenspeicherzelle 10 unter Verwendung von Zellkomponenten 11 bis 16, die jeweils Zellkomponenten für i = 1 bis i = 6 sind. Es wird angenommen, dass die Zellkomponente 11 mit 1 (= 2°) Einheitswiderstand implementiert ist, wie in den 2A und 3 gezeigt. Es wird angenommen, dass die Zellkomponente 12 mit 2 (= 21) Einheitswiderständen implementiert ist, wie in den 2B und 3 gezeigt. Es wird angenommen, dass die Zellkomponente 13 mit 4 (= 22) Einheitswiderständen implementiert ist, wie in den 2C und 3 gezeigt. Es wird angenommen, dass die Zellkomponente 14 mit 8 (= 23) Einheitswiderständen implementiert ist, wie in den 2D (i = 4) und 3 gezeigt. Es wird angenommen, dass die Zellkomponente 15 mit 16 (= 24) Einheitswiderständen implementiert ist, wie in den 2D (i = 5) und 3 gezeigt. Es wird angenommen, dass die Zellkomponente 16 mit 32 (= 25) Einheitswiderständen implementiert ist, wie in den 2D (i = 6) und 3 gezeigt. In 3 wird somit angenommen, dass eine Synapsenzelle mit 63 (= 26-1) Einheitswiderständen implementiert ist.
-
3 zeigt ferner ein Schreibtreiberarray 40, einen Lesetreiber 50, einen Stromsensor 60, einen Neuronenkörper 70, einen Gewichtsauswerter 80 und einen Gewichtscodierer 90 als Strukturelemente, die für die Synapsenspeicherzelle 10 arbeiten.
-
Das Schreibtreiberarray 40 kann so konfiguriert sein, dass es in Antwort auf eine Lernoperationseingabe oder eine Erkennungsoperationseingabe einen Synapsengewichtswert in die Synapsenspeicherzelle 10 schreibt. Insbesondere kann das Schreibtreiberarray 40 Schreibtreiber 41 bis 46 für die Zellkomponenten 11 bis 16 enthalten. Der TN jeder der Zellkomponenten 11 bis 16 kann über eine Schreibleitung mit einem Ausgangsknoten eines zugehörigen Schreibtreibers der Schreibtreiber 41 bis 46 in dem Schreibtreiberarray 40 verbunden sein. Somit können die Schreibtreiber 41 bis 46 über eine entsprechende Schreibleitung einen Gewichtswert „0“ oder „1“ in alle des einen oder der mehreren Einheitswiderstände schreiben, die eine entsprechende der Zellkomponenten 11 bis 16 bilden. Ferner können die BNs der Zellkomponenten 11 bis 16 zusammen mit gemeinsamen DC-Knoten der Schreibtreiber 41 bis 46 verbunden sein.
-
Der Lesetreiber 50 kann so konfiguriert sein, dass er einen Synapsengewichtswert aus der Synapsenspeicherzelle 10 in Antwort auf eine Erkennungsoperationseingabe liest. Die TNs der Zellkomponenten 11 bis 16 können zusammen mit einem Ausgangsknoten des Lesetreibers 50 verbunden sein. Somit kann der Lesetreiber 50 gleichzeitig Strom an alle der Zellkomponenten 11 bis 16 anlegen.
-
Der Stromsensor 60 kann auch so konfiguriert sein, dass er einen Synapsengewichtswert aus der Synapsenspeicherzelle 10 liest. Die BNs der Zellkomponenten 11 bis 16 können über eine Leseleitung mit dem Stromsensor 60 verbunden sein. Ein gemeinsamer DC-Knoten des Lesetreibers 50 kann auch mit dem Stromsensor 60 verbunden sein. Somit kann der Stromsensor 60 den Gesamtstrom von allen der Zellkomponenten 11 bis 16 über eine Leseleitung erfassen.
-
Der Neuronenkörper 70 kann Neuronenoperationen durchführen. Insbesondere kann der Neuronenkörper 70 den Synapsengewichtswert auf Grundlage des durch den Stromsensor 60 erfassten Gesamtstroms erhalten. Dann kann der Neuronenkörper 70 den Synapsengewichtswert als eine Erkennungsoperationsausgabe an ein anderes Synapsenspeichersystem und an den Gewichtsauswerter 80 ausgeben. Eine Zellkomponente kann einen hohen Strom durchlassen, wenn eine große Anzahl von Einheitswiderständen der Zellkomponente einen Gewichtswert von „1“ aufweist. Andererseits kann eine Zellkomponente einen niedrigen Strom durchlassen, wenn eine große Anzahl von Einheitswiderständen der Zellkomponente einen Gewichtswert von „0“ aufweist. Dementsprechend kann der von dem Stromsensor 60 erfasste Gesamtstrom den in der Synapsenspeicherzelle 10 gespeicherten Synapsengewichtswert darstellen.
-
Der Gewichtsauswerter 80 kann den aktuellen Synapsengewichtswert durch das Neuronenausgabesignal des Neuronenkörpers 70 auswerten und den nächsten Synapsengewichtswert bestimmen. Insbesondere kann der Gewichtsauswerter 80 das von dem Neuronenkörper 70 erhaltene Neuronenausgabesignal mit einem gewünschten, als Lernoperationseingabe gegebenen Ausgangssignal vergleichen und den nächsten Synapsengewichtswert berechnen, mit dem der aktuelle in der Synapsenspeicherzelle 10 gespeicherte Synapsengewichtswert aktualisiert werden soll.
-
Der Gewichtscodierer 90 kann den nächsten Synapsengewichtswert codieren, der von dem Gewichtsauswerter 80 berechnet wurde. Insbesondere kann der Gewichtscodierer 90 den nächsten Synapsengewichtswert in binärcodierte Werte codieren, von denen jeder einem entsprechenden der Schreibtreiber 41 bis 46 bereitzustellen ist, und die Schreibtreiber 41 bis 46 so ansteuern, dass jeder von ihnen einen entsprechenden der binärcodierten Werte in eine entsprechende der Zellkomponenten 11 bis 16 schreiben kann.
-
In 4 sind Zeitdiagramme 450, 550 und 150 gezeigt. Das Zeitdiagramm 450 zeigt Zeitpunkte von Signalausgaben von irgendeinem der Schreibtreiber 41 bis 46 beim Schreiben in die Synapsenspeicherzelle 10 an. Das Zeitdiagramm 550 zeigt Zeitpunkte der Signalausgaben von dem Lesetreiber 50 beim Lesen aus der Synapsenspeicherzelle 10 an. Ferner zeigt das Zeitdiagramm 150 Zeitpunkte von Zustandsübergängen der Synapsenspeicherzelle 10 an.
-
Um einen Synapsengewichtswert in die Synapsenspeicherzelle 10 zu schreiben, kann jeder der Schreibtreiber 41 bis 46 auf einen höheren oder niedrigeren Wert als einen Setz- bzw. Rücksetz-Schwellenwert getrieben werden.
-
Zunächst wird angenommen, dass alle Zellkomponenten 11 bis 16 auf einen leichten Zustand voreingestellt sind, der einen Gewichtswert von „0“ ergibt, indem alle Schreibtreiber 41 bis 46 so aktiviert werden, dass sie die Zellkomponenten 11 bis 16 in eine Rücksetz-Richtung (zum Beispiel niedriger als einen Rücksetz-Schwellenwert) steuern können. In dem Zeitdiagramm 450 wird diese Operation in einem Zustand „Reset1“ des Zeitdiagramms 150 ausgeführt.
-
Als nächstes wird angenommen, dass nur ausgewählte Zellkomponenten der Zellkomponenten 11 bis 16 auf einen schweren Zustand gesetzt werden, der einen Gewichtswert von „1“ ergibt, indem ausgewählte Schreibtreiber der Schreibtreiber 41 bis 46 so aktiviert werden, dass sie die ausgewählten Zellkomponenten in eine Setz-Richtung (zum Beispiel höher als einen Setz-Schwellenwert) steuern können. In dem Zeitdiagramm 450 wird diese Operation in einem Zustand „Set1“ des Zeitdiagramms 150 ausgeführt.
-
Als nächstes können die ausgewählten Zellkomponenten auf einen leichten Zustand gesetzt werden, der einen Gewichtswert „0“ ergibt, indem die ausgewählten Schreibtreiber so aktiviert werden, dass sie die ausgewählten Zellkomponenten in eine Rücksetz-Richtung (beispielsweise niedriger als einen Rücksetz-Schwellenwert) steuern können. In dem Zeitdiagramm 450 wird diese Operation in einem Zustand „Reset2“ des Zeitdiagramms 150 ausgeführt.
-
Um einen Synapsengewichtswert aus der Synapsenspeicherzelle 10 zu lesen, kann der Lesetreiber 50 aktiviert werden. Im Zeitdiagramm 550 wird diese Operation in den Zuständen „Read1“ und „Read2“ des Zeitdiagramms 150 ausgeführt. Zu jedem Zeitpunkt kann der Gesamtstrom, der von allen Zellkomponenten 11 bis 16 ausgegeben wird und der zum Synapsengewicht proportional ist, durch den Stromsensor 60 erfasst werden.
-
Man beachte, dass ein Pegel eines Signals, das von dem Lesetreiber 50 ausgegeben wird, niedriger als der Setz-Schwellenwert sein kann, so dass der in der Synapsenspeicherzelle 10 gespeicherte Synapsengewichtswert nicht durch das vom Lesetreiber 50 ausgegebene Signal zerstört (z.B. überschrieben) wird. In der Analogzelle oder der MLC-Struktur ist die genaue Steuerung der Einheitswiderstände zwingend. Mit dieser Struktur kann jedoch eine solche präzise Steuerung der Einheitswiderstände vermieden werden. Dies liegt daran, dass alle Einheitswiderstände wie bei der SLC nur in zwei Zuständen gesteuert werden und im Gegensatz zur MLC weder ein Verifizierungslesen noch ein zusätzliches Schreiben erforderlich ist.
-
Um Treiberkonflikte zu vermeiden, können Schreib- (Rücksetz-/Setz-) und Lesezeitpunkte einander ausschließend getrennt werden. Das heißt, dass das Schreibtreiberarray 40 und der Lesetreiber 50 so gesteuert werden können, dass sie nicht gleichzeitig aktiviert werden. Beispielsweise kann das Schreibtreiberarray 40 im Zustand hoher Impedanz (Hi-Z) gehalten werden, während der Lesetreiber 50 die Synapsenspeicherzelle 10 ansteuert, und der Lesetreiber 50 kann im Zustand hoher Impedanz (Hi-Z) gehalten werden, während das Schreibtreiberarray 40 die Synapsenspeicherzelle 10 ansteuert.
-
Mit Bezug auf 5 ist ein Beispiel eines neurosynaptischen Kernsystems gezeigt, das das Synapsenspeicherzellensystem von 3 enthält. Die Datenflüsse in diesem System folgen der in 5 gezeigten beispielhaften Ausführungsform. In 5 wird angenommen, dass der Synapsenspeicher 100 verwendet wird, um dieses System mit Online-Lernen zu implementieren.
-
Wie in 5 gezeigt, kann das neurosynaptische Kernsystem den Synapsenspeicher 100, Schreibtreiberarrays 400, Lesetreiber 500, Stromsensoren 600, Neuronenkörper 700, Gewichtsauswerter 800 und Gewichtscodierer 900 enthalten.
-
Der Synapsenspeicher 100 kann eine Mehrzahl von Synapsenspeicherzellen 10 enthalten, wie sie in 1 gezeigt sind.
-
Die Schreibtreiberarrays 400 können eine Mehrzahl von Schreibtreiberarrays enthalten, von denen eines als das Schreibtreiberarray 40 in 3 gezeigt ist. Jedes der Mehrzahl von Schreibtreiberarrays kann mit der einzelnen Synapsenspeicherzelle 10 mit der gemeinsamen Struktur verbunden sein, die in 3 gezeigt ist.
-
Die Lesetreiber 500 können eine Mehrzahl von Lesetreibern enthalten, von denen einer als der Lesetreiber 50 in 3 gezeigt ist. Jeder der Mehrzahl von Lesetreibern kann mit der einzelnen Synapsenspeicherzelle 10 mit der gemeinsamen Struktur verbunden sein, die in 3 gezeigt ist.
-
Die Stromsensoren 600 können eine Mehrzahl von Stromsensoren enthalten, von denen einer als der Stromsensor 60 in 3 gezeigt ist. Jeder der Stromsensoren kann mit den einzelnen Synapsenspeicherzellen 10 mit der gemeinsamen Struktur verbunden sein, die in 3 gezeigt ist.
-
Die Neuronenkörper 700 können eine Mehrzahl von Neuronenkörpern enthalten, von denen einer als der Neuronenkörper 70 in 3 gezeigt ist. Jeder der Neuronenkörper kann mit dem einzelnen Stromsensor 60 verbunden sein, der mit den einzelnen Speicherzellen 10 mit der gemeinsamen Struktur verbunden ist, die in 3 gezeigt sind.
-
Die Gewichtsauswerter 800 können eine Mehrzahl von Gewichtsauswertern enthalten, von denen einer als der Gewichtsauswerter 80 in 3 gezeigt ist. Jeder der Gewichtsauswerter kann mit dem einzelnen Gewichtscodierer 90 verbunden sein, der durch das einzelne Schreibtreiberarray 40 mit der einzelnen Synapsenspeicherzelle 10 mit der gemeinsamen Struktur verbunden ist, die in 3 gezeigt ist.
-
Die Gewichtscodierer 900 können eine Mehrzahl von Gewichtscodierern enthalten, von denen einer als der Gewichtscodierer 90 in 3 gezeigt ist. Jeder der Gewichtscodierer kann mit dem einzelnen Schreibtreiberarray 40 verbunden sein, das mit der einzelnen Synapsenspeicherzelle 10 mit der gemeinsamen Struktur verbunden ist, die in 3 gezeigt ist.
-
5 zeigt ferner einen Datenfluss in einem Lernbetriebsmodus, der durch schraffierte Pfeile angezeigt ist, und einen Datenfluss in einem Erkennungsbetriebsmodus, der durch umrissene Pfeile angezeigt ist.
-
In dem Lernbetriebsmodus kann, wie in 5 gezeigt, einer der Schreibtreiberarrays 400 in Antwort auf eine Erkennungsoperationseingabe Spannung an eine entsprechende Synapsenspeicherzelle 10 in dem Synapsenspeicher 100 anlegen. Wenn in diesem Fall eines der Schreibtreiberarrays 400 eine Spannung anlegt, deren Pegel zwischen dem Rücksetz-Schwellenwert und dem Setz-Schwellenwert von 4 liegt, überschreibt es keinen Synapsengewichtswert, der in der Synapsenspeicherzelle 10 gespeichert ist.
-
Dann kann einer der Stromsensoren 600 den Gesamtstrom von einem entsprechenden Dendriten 30 erfassen, der mit der Synapsenspeicherzelle 10 verbunden ist. Einer der Neuronenkörper 700 kann einen Neuronen-Membranpotentialwert auf Grundlage des von einem der Stromsensoren 600 erfassten Gesamtstroms berechnen und eine Neuronenausgabe an einen der Gewichtsauswerter 800 bereitstellen. Einer der Gewichtsauswerter 800 kann die Neuronenausgabe, die von einem der Neuronenkörper 700 erhalten wurde, mit einer Lernoperationseingabe vergleichen und den nächsten Synapsengewichtswert berechnen, der verwendet wird, um den Inhalt der Synapsenspeicherzelle 10 auf Grundlage eines Ergebnisses des Vergleichs zu aktualisieren. Einer der Gewichtscodierer 900 kann den nächsten Synapsengewichtswert in binärcodierte Werte codieren und eines der Schreibtreiberarrays 400 so ansteuern, dass es die binärcodierten Werte in die Synapsenspeicherzelle 10 schreiben kann. Eines der Schreibtreiberarrays 400 kann die binärcodierten Werte als Synapsengewichtswert in die Synapsenspeicherzelle 10 steuern.
-
In dem Erkennungsbetriebsmodus können, wie in 5 gezeigt, die Lesetreiber 500 in Antwort auf eine Erkennungsoperationseingabe einen Strom an die Axone 20 anlegen, die mit den Synapsenspeicherzellen 10 in dem Synapsenspeicher 100 verbunden sind.
-
Dann können die Stromsensoren 600 den Gesamtstrom von den Dendriten 30 erfassen, die mit den Synapsenspeicherzellen 10 verbunden sind. Die Neuronenkörper 700 können das Neuronen-Membranpotential auf Grundlage des Gesamtstroms berechnen, der von den Stromsensoren 600 erfasst wurde, und die Neuronenausgabe einem anderen Synapsenspeichersystem als Erkennungsoperationsausgabe bereitstellen.
-
In 6 ist ein Block-/Flussdiagramm gezeigt, das ein Herstellungsverfahren des Synapsenspeicherzellensystems gemäß einer Ausführungsform darstellt, das Schreib- und Lesetreiber enthält.
-
Wie in 6 gezeigt, können eine Mehrzahl von Einheitswiderständen der minimalen Größe zum Schreiben und Lesen eines von zwei Gewichtswerten erstellt werden (Schritt 101). Zum Beispiel können die zwei Gewichtswerte ein Gewichtswert „1“, der einem schweren Zustand entspricht, und ein Gewichtswert „0“ sein, der einem leichten Zustand entspricht. Die Mehrzahl von Einheitswiderständen können parallel geschaltet werden, um die Mehrzahl von Zellkomponenten zusammenzustellen (Schritt 102). Als nächstes können verschiedene Arten von Zellkomponenten 11 bis 16 erstellt werden, die eine binär gewichtete Anzahl der Einheitswiderstände enthalten (Schritt 103). Die verschiedenen Arten von Zellkomponenten 11 bis 16 können kombiniert werden, um die Synapsenspeicherzelle 10 zusammenzustellen (Schritt 104).
-
Zugleich können die Schreibtreiber 41 bis 46 zum getrennten, aber gleichzeitigen parallelen Schreiben von Gewichtswerten in die Zellkomponenten 11 bis 16 in der Synapsenspeicherzelle 10 erstellt werden (Schritt 105). Das heißt, dass die Schreibtreiber 41 bis 46 zum digitalen Schreiben erstellt werden können. Dieser Schritt kann ferner das Anordnen von Schreibleitungen enthalten, die für ein solches digitales Schreiben verwendet werden. Der Lesetreiber 50 kann zum gleichzeitigen Lesen eines Synapsengewichtswerts aus den Zellkomponenten 11 bis 16 in der Synapsenspeicherzelle 10 erstellt werden (Schritt 106). Das heißt, dass der Lesetreiber 50 zum analogen Lesen erstellt werden kann. Dieser Schritt kann ferner das Anordnen einer Leseleitung enthalten, die für ein solches analoges Lesen verwendet wird.
-
Als nächstes wird eine alternative beispielhafte Ausführungsform beschrieben.
-
In einer alternativen beispielhaften Ausführungsform wird angenommen, dass die Synapsenspeicherzelle 10 eine kapazitive Speicherzelle ist, die eine Mehrzahl von Einheitskondensatoren enthält. Die resistive Speicherzelle in der beispielhaften Ausführungsform kann durch die kapazitive Speicherzelle ersetzt werden, da ein Synapsengewichtswert sowohl durch einen Leitfähigkeitswert der resistiven Speicherzelle als auch durch einen Kapazitätswert der kapazitiven Speicherzelle auf dieselbe Weise ausgedrückt werden kann. Der Kapazitätswert der kapazitiven Speicherzelle kann verdoppelt werden, wenn die Einheitskondensatoren parallel geschaltet werden, und halbiert werden, wenn die Einheitskondensatoren in Reihe geschaltet werden, wie bei dem Leitfähigkeitswert der resistiven Speicherzelle. Es sei bemerkt, dass in der alternativen beispielhaften Ausführungsform der Stromsensor 60 (z.B. die Stromsensoren 600) auch durch einen Kapazitätssensor (z.B. Kapazitätssensoren) und dergleichen ersetzt werden kann. Ferner kann der Kapazitätswert der kapazitiven Speicherzelle zu einem Zustand der Einheitszellen verallgemeinert werden, so wie es für den Leitfähigkeitswert der resistiven Speicherzelle für die resistive Speicherzelle geschehen kann.
-
Nachfolgend wird eine weitere alternative beispielhafte Ausführungsform beschrieben.
-
In der zweiten alternativen beispielhaften Ausführungsform wird angenommen, dass der Gewichtswert WEinheit drei Zustände aufweist, nämlich einen schweren Zustand, einen mittleren Zustand und einen leichten Zustand. Zum Beispiel kann der Gewichtswert WEinheit zwei sein, wenn er einen schweren Zustand hat, eins, wenn er einen mittleren Zustand hat, und null, wenn er einen leichten Zustand hat.
-
In der zweiten alternativen beispielhaften Ausführungsform können Zellkomponenten erstellt werden, die aus jeweils 3i-1 Einheitswiderständen bestehen, wobei i von 1 bis n reicht. Wenn i nicht 1 ist, können die 3i-1 Einheitswiderstände parallel geschaltet werden. So kann die aus den 3i-1 Einheitswiderständen bestehende Zellkomponente einen Gewichtswert haben, der durch 3i-1-mal WEinheit ausgedrückt wird (bzw. einen Widerstandswert, der durch ein 3i-1-tel (1/3i-1) von REinheit ausgedrückt wird). Das heißt, dass die Zellkomponente, die aus den 3i-1 Einheitswiderständen besteht, einen Gewichtswert von „0“, „3i-1“ oder „2 × 3i-1“ haben kann.
-
Beispielsweise kann eine Zellkomponente für i = 1 einen Gewichtswert von „0“, „1“ oder „2“ haben. Die Gewichtswerte „0“, „1“ und „2“ dienen als ein Beispiel eines ersten Satzes einer vorbestimmten Anzahl von Zuständen. Für die Einzelzellenkomponente für i = 1 dienen auch die Gewichtswerte „0“, „1“ und „2“ als ein Beispiel für einen zweiten Satz einer vorbestimmten Anzahl von Zuständen. Eine Zellkomponente für i = 2 kann einen Gewichtswert „0“, „3“ oder „6“ haben. Die Gewichtswerte „0“, „3“ und „6“ dienen als ein Beispiel eines ersten Satzes einer vorbestimmten Anzahl von Zuständen. Eine Zellkomponente für i = 3 kann einen Gewichtswert „0“, „9“ oder „18“ haben. Die Gewichtswerte „0“, „9“ und „18“ dienen als ein Beispiel eines ersten Satzes einer vorbestimmten Anzahl von Zuständen. Durch Kombinieren dieser Zellkomponenten für i = 1 bis i = 3 können zum Beispiel die Synapsengewichtswerte „0“ bis „26“ ausgedrückt werden. Das heißt, dass mit diesen Zellkomponenten für i = 1 bis i = n die Synapsengewichtswerte für n-stellige ternäre Zahlen ausgedrückt werden können.