DE112020005613T5 - Neuromorphe Einheit mit Kreuzschienen-Array-Struktur - Google Patents

Neuromorphe Einheit mit Kreuzschienen-Array-Struktur Download PDF

Info

Publication number
DE112020005613T5
DE112020005613T5 DE112020005613.9T DE112020005613T DE112020005613T5 DE 112020005613 T5 DE112020005613 T5 DE 112020005613T5 DE 112020005613 T DE112020005613 T DE 112020005613T DE 112020005613 T5 DE112020005613 T5 DE 112020005613T5
Authority
DE
Germany
Prior art keywords
units
lines
input
neuromorphic
signals
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112020005613.9T
Other languages
English (en)
Inventor
Thomas Bohnstingl
Angeliki Pantazi
Evangelos Stavros Eleftheriou
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112020005613T5 publication Critical patent/DE112020005613T5/de
Pending legal-status Critical Current

Links

Images

Classifications

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Logic Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

Neuromorphe Verfahren, Systeme und Einheiten werden bereitgestellt. Die Ausführungsform kann eine neuromorphe Einheit enthalten, die eine Kreuzschienen-Array-Struktur und eine analoge Schaltung aufweisen kann. Die Kreuzschienen-Array-Struktur kann N Eingangsleitungen und M Ausgangsleitungen enthalten, die an Übergängen über N x M elektronische Einheiten miteinander verbunden sind, die bei bevorzugten Ausführungsformen jeweils eine memristive Einheit enthalten. Die Eingangsleitungen können N1erste Eingangsleitungen und N2zweite Eingangsleitungen aufweisen. Die ersten Eingangsleitungen können mit den M Ausgangsleitungen über N1× M erste Einheiten der elektronischen Einheiten verbunden sein. In ähnlicher Weise können die zweiten Eingangsleitungen mit den M Ausgangsleitungen über N2× M zweite Einheiten der elektronischen Einheiten verbunden sein. Die analoge Schaltung kann dazu gestaltet sein, die elektronischen Einheiten so zu programmieren, dass die ersten Einheiten synaptische Gewichtungen speichern und die zweiten Einheiten neuronale Zustände speichern.

Description

  • HINTERGRUND
  • Die Erfindung bezieht sich allgemein auf das Gebiet von neuromorphen Einheiten mit Kreuzschienen-Array-Strukturen. Im Besonderen bezieht sie sich auf eine neuromorphe Einheit, deren Kreuzschienen-Array-Struktur zusätzliche Eingangsleitungen aufweist, um neuronale Zustände eines neuronalen Netzes zu speichern, wodurch die Neuronenfunktion zumindest zum Teil durch eine analoge Schaltung der Einheit implementiert wird.
  • Maschinelles Lernen stützt sich häufig auf künstliche neuronale Netze (artificial neural networks, ANNs), bei denen es sich um Rechenmodelle handelt, die durch biologische neuronale Netze in den Gehirnen von Menschen oder Tieren angeregt worden sind. Solche Systeme lernen schrittweise und selbständig Aufgaben mithilfe von Beispielen; sie sind z.B. erfolgreich in der Spracherkennung, der Textverarbeitung und bei Computer Vision eingesetzt worden.
  • Ein ANN weist einen Satz von verbundenen Einheiten oder Knoten auf, die mit biologischen Neuronen in Gehirnen von Tieren vergleichbar sind und daher als künstliche Neuronen bezeichnet werden. Signale werden ähnlich wie bei Synapsen entlang der Verbindungen (die auch als Kanten bezeichnet werden) zwischen künstlichen Neuronen übertragen. Das heißt, ein künstliches Neuron, das ein Signal empfängt, verarbeitet es und sendet dann Signale an die verbundenen Neuronen. Typischerweise handelt es sich bei den Signalen, die entlang solcher Verbindungen befördert werden, um analoge reale Zahlen, und Ausgaben der künstlichen Neuronen werden mithilfe einer nichtlinearen Funktion der Summe ihrer Eingaben berechnet.
  • Verbindungsgewichtungen (die auch als synaptische Gewichtungen bezeichnet werden) sind den Verbindungen und Knoten zugehörig; solche Gewichtungen werden im Verlauf des Lernens angepasst. Jedes Neuron kann mehrere Eingänge aufweisen, und eine Verbindungsgewichtung ist jedem Eingang (der Gewichtung dieser spezifischen Verbindung) zugewiesen. Solche Verbindungsgewichtungen werden während einer Trainings-Phase gelernt und dadurch aktualisiert. Der Lernprozess ist iterativ: Datenfälle werden dem Netz präsentiert, typischerweise einer nach dem anderen, und die den Eingangswerten zugehörigen Gewichtungen werden bei jedem Zeitschritt angepasst.
  • Es sind viele Typen von neuronalen Netzen bekannt, angefangen bei neuronalen Feedforward-Netzen wie zum Beispiel mehrlagigen Perzeptronen, tiefen neuronalen Netzen und faltenden neuronalen Netzen. Daneben entstehen neue Typen von neuronalen Netzen wie zum Beispiel gepulste neuronale Netze. Ein gepulstes neuronales Netz (spiking neural network, SNN) unterscheidet sich insofern erheblich von gewöhnlichen neuronalen Netzen, als SNNs mithilfe von Pulsen arbeiten, bei denen es sich um diskrete binäre Ereignisse handelt, die jederzeit asynchron auftreten können, statt um analoge Werte, die in regelmäßigen Zeitschritten berechnet werden. Das heißt, zusätzlich zu einem neuronalen und synaptischen Zustand enthalten SNNs darüber hinaus das Konzept der Zeit. D.h., die Neuronen feuern nur, wenn ein Membranpotential einen bestimmten Wert erreicht, anstatt in jedem Propagationszyklus zu feuern, wie z.B. in Netzen von mehrlagigen Perzeptronen. Feuern bedeutet im Zusammenhang mit SNNs, dass ein Neuron ein Signal erzeugt, das sonstige Neuronen erreicht, die wiederum ihre Potentiale gemäß den Signalen, die sie von sonstigen Neuronen erhalten, erhöhen oder verringern.
  • Neuronale Netze sind typischerweise in Software implementiert. Ein neuronales Netz kann jedoch auch in Hardware implementiert sein, z.B. als resistive Verarbeitungseinheit (die sich auf Kreuzschienen-Array-Strukturen stützt) oder als optisches neuromorphes System. D.h., ein in Hardware implementiertes ANN ist eine physische Maschine, die sich insofern deutlich von einem klassischen Computer (Universal- oder Spezialcomputer) unterscheidet, als sie vor allem und speziell dafür entwickelt ist, ein ANN zu implementieren (für Trainings- oder Inferenzzwecke). Ein in Hardware implementiertes ANN könnte bestenfalls mit einem klassischen Computer emuliert werden (wenn auch nicht mit derselben Effizienz), wohingegen es nicht wie ein klassischer Computer mehrere Datenverarbeitungsaufgaben durchführen kann.
  • Die folgende Veröffentlichung ist Teil des Standes der Technik:
    • Nandakumar, S. R., et al. „A phase-change memory model for neuromorphic computing.“ J. Appl. Phys., Bd. 124, Nr. 15, 21. Okt. 2018, S. 152135;
    • Tuma, T., et al. „Stochastic phase-change neurons.“ Nat. Nanotechnol., Bd. 11, 16. Mai 2016, S. 693 bis 699.
    • Pantazi, A. et al. „All-memristive neuromorphic computing with level-tuned neurons.“ Nanotechnology 27 35 (2016): 355205.
  • KURZDARSTELLUNG
  • Gemäß einem ersten Aspekt wird die vorliegende Erfindung als neuromorphe Einheit verkörpert, die im Wesentlichen eine Kreuzschienen-Array-Struktur und eine analoge Schaltung aufweist. Die Kreuzschienen-Array-Struktur enthält N Eingangsleitungen und M Ausgangsleitungen, die an Übergängen über N x M elektronische Einheiten miteinander verbunden sind, die bei bevorzugten Ausführungsformen jeweils eine memristive Einheit enthalten. Die Eingangsleitungen weisen N1 erste Eingangsleitungen und N2 zweite Eingangsleitungen auf. Die ersten Eingangsleitungen sind mit den M Ausgangsleitungen über N1 × M erste Einheiten der elektronischen Einheiten verbunden. In ähnlicher Weise sind die zweiten Eingangsleitungen mit den M Ausgangsleitungen über N2 × M zweite Einheiten der elektronischen Einheiten verbunden. Es gelten die folgenden Beziehungen: N1 > 1, N2 > 1, N1 + N2 = N und M > 1. Die analoge Schaltung ist dazu gestaltet, die elektronischen Einheiten so zu programmieren, dass die ersten Einheiten synaptische Gewichtungen speichern und die zweiten Einheiten neuronale Zustände speichern. Darüber hinaus ist die analoge Schaltung des Weiteren dazu gestaltet, von den M Ausgangsleitungen gewonnene M Ausgangssignale gemäß einer Multiplikations-Additions-Operation zu lesen. Der Auslesevorgang beruht im Betrieb auf N1 Eingangssignalen, die in die ersten Eingangsleitungen eingekoppelt werden, N2 Steuersignalen, die in die zweiten Eingangsleitungen eingekoppelt werden, und Werten, die in jeder der ersten Einheiten und der zweiten Einheiten gespeichert sind.
  • Gemäß der vorliegenden Lösung können sowohl die synaptischen Gewichtungen als auch die neuronalen Zustände (z.B. Membranpotentiale) an den Übergängen durch elektronische Einheiten (z.B. memristive Einheiten) dargestellt werden. Dieser Ansatz ist dennoch mit verschiedenen elektronischen Einheiten (z.B. Flash-Zellen, memristiven Einheiten, statischen Direktzugriffs-Speichereinheiten usw.) kompatibel. Die vorliegende Lösung ermöglicht, neuronale Zustände ohne zusätzliche Schaltungen und insbesondere ohne jegliche Umwandlung in den digitalen Bereich in konstanter Zeit zu berechnen. Da die analoge Schaltung ermöglicht, dass neuronale Zustände im analogen Bereich berechnet werden, ist die vorgeschlagene Lösung grundsätzlich zeiteffizienter als die Lösungen, die durch vorherige neuromorphe Einheiten auf Grundlage von Kreuzschienen-Array-Strukturen ermöglicht werden.
  • Bei Ausführungsformen ist die analoge Schaltung des Weiteren dazu gestaltet, im Betrieb neuronale Zustände zu aktualisieren, die in zumindest einigen der N2 × M zweiten Einheiten gespeichert sind, wodurch die zumindest einigen der N2 × M zweiten Einheiten gemäß M Ausgangssignalen, wie sie zuvor durch die analoge Schaltung ausgelesen worden sind, neu programmiert werden können.
  • Bei weiteren Ausführungsformen ist die analoge Schaltung des Weiteren dazu gestaltet, die N1 Eingangssignale und die N2 Steuersignale in die N1 ersten Eingangsleitungen bzw. die N2 zweiten Eingangsleitungen einzukoppeln.
  • Bei bevorzugten Ausführungsformen weisen die zweiten Eingangsleitungen eine jeweilige Steuerleitung auf, die über M jeweilige elektronische Einheiten mit den Ausgangsleitungen verbunden ist. Solche elektronischen Einheiten sind durch die analoge Schaltung dazu programmierbar, M anfängliche Membranpotentialwerte zu speichern. Darüber hinaus ist die analoge Schaltung des Weiteren dazu gestaltet, im Betrieb ein jeweiliges Steuersignal in die jeweilige Steuerleitung einzukoppeln, so dass die M ausgelesenen Ausgangssignale für M endgültige Membranpotentialwerte repräsentativ sind, wobei die Letzteren auf Grundlage der M anfänglichen Membranpotentialwerte als Leckintegratoren von synaptischen Eingaben gewonnen werden, die durch Einkoppeln der N1 Eingangssignale in die N1 ersten Eingangsleitungen gewonnen werden.
  • In dieser Hinsicht ist das jeweilige Steuersignal (wie in die jeweilige Steuerleitung eingekoppelt) im Betrieb bevorzugt repräsentativ für einen Abklingparameter α. Darüber hinaus kann die analoge Schaltung des Weiteren dazu gestaltet sein, die N1 Eingangssignale so anzupassen, dass sie für synaptische Eingangswerte repräsentativ sind, die komplementär mit 1 - α skaliert sind.
  • Die analoge Schaltung ist bevorzugt des Weiteren dazu gestaltet, im Betrieb die in den M jeweiligen elektronischen Einheiten gespeicherten Membranpotentialwerte durch Neuprogrammieren solcher Einheiten gemäß M Ausgangssignalen zu aktualisieren, die für M endgültige Membranpotentialwerte repräsentativ sind, wie sie zuvor durch die analoge Schaltung ausgelesen worden sind.
  • Bei Ausführungsformen ist die analoge Schaltung des Weiteren dazu gestaltet, für jede der M Ausgangsleitungen einen Vergleich zwischen jedem der M ausgelesenen Ausgangssignale und einem Schwellenwert θ durchzuführen.
  • Die analoge Schaltung ist bevorzugt des Weiteren dazu gestaltet, für jede der M Ausgangsleitungen ein Signal auf Grundlage eines Ergebnisses des Vergleichs zu erzeugen und Werte zurückzusetzen, die in einer beliebigen der M jeweiligen elektronischen Einheiten gespeichert sind.
  • Bei bevorzugten Ausführungsformen weisen die zweiten elektronischen Einheiten M weitere elektronische Einheiten auf und weisen die zweiten Eingangsleitungen eine weitere Steuerleitung auf, die mit den Ausgangsleitungen über die M weiteren elektronischen Einheiten verbunden ist. Die Letzteren sind durch die analoge Schaltung dazu programmierbar, im Betrieb M Schwellenwerte zu speichern, damit die M ausgelesenen Ausgangssignale für M Differenzen der M endgültigen Membranpotentialwerte und die M Schwellenwerte für ein in geeigneter Weise ausgewähltes weiteres Steuersignal repräsentativ sind, das in die weitere Steuerleitung eingekoppelt wird.
  • Die analoge Schaltung ist bevorzugt dazu gestaltet, das weitere Steuersignal, das in die weitere Steuerleitung einzukoppeln ist, so auszuwählen, dass das weitere Steuersignal entweder für einen Eingangswert 0 oder einen Eingangswert -1 repräsentativ ist. Bei einem Eingangswert 0 sind die M ausgelesenen Ausgangssignale repräsentativ für die M endgültigen Membranpotentialwerte. Bei einem Eingangswert -1 sind die M ausgelesenen Ausgangssignale repräsentativ für Differenzen der M endgültigen Membranpotentialwerte und der M Schwellenwerte.
  • Bei bevorzugten Ausführungsformen weisen die zweiten Eingangsleitungen drei Steuerleitungen auf, darunter die jeweilige Steuerleitung. Die drei Steuerleitungen enthalten zwei zusätzliche Steuerleitungen über die jeweilige Steuerleitung hinaus. Die beiden zusätzlichen Steuerleitungen sind mit den Ausgangsleitungen über 2 x M zusätzliche elektronische Einheiten der elektronischen Einheiten verbunden. Die analoge Schaltung ist des Weiteren dazu gestaltet, die 2 x M zusätzlichen elektronischen Einheiten so zu programmieren, dass sie Operanden von adaptiven Feuerungsschwellenwerten speichern.
  • Die analoge Schaltung ist bevorzugte des Weiteren dazu gestaltet, zwei zusätzliche Steuersignale in die beiden zusätzlichen Steuerleitungen einzukoppeln und jedes der beiden zusätzlichen Steuersignale so auszuwählen, dass die Ausgangssignale, die durch die Schaltung ausgelesen werden, für M Differenzen von M endgültigen Membranpotentialwerten und M adaptiven Feuerungsschwellenwerten repräsentativ sind.
  • Bevorzugter ist die analoge Schaltung des Weiteren dazu gestaltet, im Betrieb M elektronische Einheiten der 2 × M zusätzlichen elektronischen Einheiten, die eine Verbindung mit einer der beiden zusätzlichen Steuerleitungen herstellen, so neu zu programmieren, dass darin gespeicherte Operanden gemäß Ausgangswerten aktualisiert werden, wie sie zuvor (z.B. während einer vorherigen Iteration) durch die analoge Schaltung ausgelesen worden sind.
  • Bei Ausführungsformen ist die analoge Schaltung des Weiteren dazu gestaltet, die N1 × M ersten Einheiten so neu zu programmieren, dass darin gespeicherte synaptische Gewichtungen gemäß einem automatischen Lernprozess geändert werden.
  • Die analoge Schaltung weist bevorzugt eine Programmierschaltung und eine Ausleseschaltung auf, wobei die Letztere mit der Ersteren verbunden ist, wobei die Ausleseschaltung dazu gestaltet ist, die M Ausgangssignale auszulesen, und die Programmierschaltung dazu gestaltet ist, die elektronischen Einheiten gemäß Ausgangssignalen zu programmieren, die zuvor durch die Ausleseschaltung ausgelesen worden sind.
  • Bevorzugter weist die Programmierschaltung eine Eingangsschaltung auf, wobei die Letztere dazu gestaltet ist, im Betrieb einerseits Signale in die Eingangsleitungen einzukoppeln und andererseits in die Eingangsleitungen einzukoppelnde Signale auszuwählen, um die elektronischen Einheiten auf Grundlage von in die Eingangsleitungen eingekoppelten Signalen zu programmieren.
  • Gemäß einem weiteren Aspekt wird die Erfindung als neuromorphes System verkörpert. Das System weist L neuromorphe Einheiten jeweils gemäß Ausführungsformen auf, wie oben beschrieben. Das System weist des Weiteren einen Datenübertragungsbus auf, wobei das System dazu gestaltet ist, Ausgangssignale, wie sie an einer jeweiligen der L neuromorphen Einheiten ausgelesen worden sind, über den Datenübertragungsbus an eine nächste der L neuromorphen Einheiten weiterzuleiten.
  • Gemäß einem abschließenden Aspekt wird die Erfindung als Verfahren zum Betreiben einer neuromorphen Einheit verkörpert. Das Verfahren stützt sich auf eine neuromorphe Einheit mit einer analogen Schaltung und einer Kreuzschienen-Array-Struktur. Die Letztere enthält N Eingangsleitungen und M Ausgangsleitungen, die an Übergängen über N × M elektronische Einheiten miteinander verbunden sind. Die Eingangsleitungen weisen N1 erste Eingangsleitungen und N2 zweite Eingangsleitungen auf, die mit den M Ausgangsleitungen über N1 × M erste Einheiten der elektronischen Einheiten bzw. N2 × M zweite Einheiten der elektronischen Einheiten verbunden sind, wobei N1 > 1, N2 > 1, N1 + N2 = N und M > 1. Das Verfahren weist ein Programmieren der elektronischen Einheiten über die analoge Schaltung so auf, dass die ersten Einheiten synaptische Gewichtungen speichern und die zweiten Einheiten neuronale Zustände speichern. Darüber hinaus weist das Verfahren ein Auslesen von M von den M Ausgangsleitungen gewonnenen Ausgangssignalen wiederum über die analoge Schaltung gemäß einer Multiplikations-Additions-Operation auf. Die Letztere beruht auf N1 Eingangssignalen, die in die ersten Eingangsleitungen eingekoppelt werden, N2 Steuersignalen, die in die zweiten Eingangsleitungen eingekoppelt werden, und Werten, die in jeder der ersten Einheiten und der zweiten Einheiten gespeichert sind.
  • Bei bevorzugten Ausführungsformen weist das Verfahren des Weiteren ein Aktualisieren von neuronalen Zuständen, die in zumindest einigen der N2 × M zweiten Einheiten gespeichert sind, durch Neuprogrammieren der zumindest einigen der N2 × M zweiten Einheiten gemäß M Ausgangssignalen auf, wie sie zuvor mit der analogen Schaltung ausgelesen worden sind.
  • Einheiten, Systeme und Verfahren, die die vorliegende Erfindung verkörpern, werden im Folgenden mithilfe von nicht beschränkenden Beispielen und unter Bezugnahme auf die beigefügten Zeichnungen beschrieben.
  • Figurenliste
  • Die beigefügten Figuren, in denen sich in den verschiedenen Ansichten gleiche Bezugszeichen durchgehend auf identische oder funktional ähnliche Elemente beziehen und die zusammen mit der folgenden ausführlichen Beschreibung in der vorliegenden Beschreibung enthalten sind und einen Teil von ihr bilden, dienen dazu, verschiedene Ausführungsformen weiter zu veranschaulichen und verschiedene Grundgedanken und Vorteile sämtlich gemäß der vorliegenden Offenbarung zu erläutern, in denen:
    • 1 ein Schaubild ist, das übergeordnete Komponenten eines neuromorphen Systems nach dem Stand der Technik schematisch veranschaulicht. Das System weist ein memristives Kreuzschienen-Array auf und implementiert ein künstliches neuronales Netz. Die Neuronenfunktionalität wird durch eine digitale Verarbeitungs-Engine implementiert: Die Eingabe in das Neuron ist das Ergebnis einer Multiplikations-Additions-Operation, die in den digitalen Bereich umgesetzt wird, um die Neuronenfunktionalität zu implementieren.
    • 2 ein Schaubild ist, das übergeordnete Komponenten eines neuromorphen Systems gemäß Ausführungsformen schematisch veranschaulicht. Das System weist eine neuronale Einheit mit einem memristiven Kreuzschienen-Array auf, die ein gepulstes neuronales Netz implementiert. Die Neuronenfunktionalität wird nun durch eine analoge Schaltung implementiert, die alle verwendbaren Signale ausliest und die Neuronenausgaben berechnet, bevor sie solche Ausgaben in den digitalen Bereich umsetzt.
    • 3A bis 3B ein memristives Kreuzschienen-Array einer neuromorphen Einheit gemäß Ausführungsformen schematisch veranschaulichen, wobei die Einheit dazu bestimmt ist, eine Schicht eines gepulsten neuronalen Netzes zu implementieren. 3A stellt Operationen schematisch dar, die durch eine analoge Schaltung ausgeführt werden, wobei neuronale Zustände in dem memristiven Kreuzschienen-Array aktualisiert werden und Membranpotentiale mit einem Schwellenwert verglichen werden, um die Neuronenausgaben zu erzeugen. 3B stellt eine Komponente der analogen Schaltung detailliert dar, die dazu verwendet wird, den Vergleich in einer Ausgabe des memristiven Kreuzschienen-Arrays durchzuführen.
    • 4 eine Variante von 3B darstellt, wobei die Komponente der analogen Schaltung, wie sie zum Durchführen des Vergleichs verwendet wird, nun wie bei Ausführungsformen in das memristive Kreuzschienen-Array integriert ist.
    • 5 eine Variante von 4 darstellt, wobei die analoge Schaltung eine zusätzliche Komponente aufweist, die in das memristive Kreuzschienen-Array integriert ist, um elektronische Einheiten des Arrays so zu programmieren, dass sie Operanden von adaptiven Feuerungsschwellenwerten speichern, wie bei Ausführungsformen.
    • 6 ein Ablaufplan ist, der übergeordnete Schritte eines Verfahrens zum Betreiben einer neuromorphen Einheit, wie sie zum Beispiel in 2 bis 5 dargestellt wird, gemäß Ausführungsformen veranschaulicht.
  • Die beigefügten Zeichnungen zeigen vereinfachte Darstellungen von Einheiten und Teilen davon, wie sie in Ausführungsformen enthalten sind. Technische Merkmale, die in den Zeichnungen dargestellt werden, sind nicht zwingend maßstabsgetreu. Ähnlichen oder funktional ähnlichen Elementen in den Figuren sind dieselben Bezugszeichen zugewiesen worden, sofern nichts anderes angegeben wird.
  • AUSFÜHRLICHE BESCHREIBUNG VON AUSFÜHRUNGSFORMEN DER ERFINDUNG
  • Es sind neuromorphe Einheiten vorgeschlagen worden, die auf Kreuzschienen-Array-Strukturen beruhen. Solche Einheiten werden zum Implementieren von ANNs verwendet. Jedoch wird eine externe Schaltung (die eine digitale Verarbeitungseinheit enthält) zum Implementieren der Neuronenfunktionalität benötigt. D.h., der größte Teil der Neuronenfunktionalität stützt sich auf eine digitale Verarbeitungseinheit, die mit der analogen Schaltung verbunden ist, siehe zum Beispiel S. R. Nandakumar, et al., ISCAS 2018, der im Abschnitt Hintergrund zitiert wird. Das heißt, nur die synaptischen Gewichtungen werden in der analogen Einheit gespeichert, wohingegen die neuronale Aktivierung in der digitalen Verarbeitungseinheit implementiert ist. Diese Situation wird in 1 synthetisch erfasst: Synapsen sind in einem memristiven Kreuzschienen-Array implementiert. Eine Impulsbreitenmodulations(pulse width modulation, PWM)-Schaltung kann zum Beispiel dazu verwendet werden, Eingaben xi(t) in die Synapsen zu erzeugen. Die Neuronenfunktionalität ist jedoch durch eine digitale Verarbeitungs-Engine und einen statischen Direktzugriffsspeicher (static random-access memory, SRAM) implementiert. Diese Funktionalität ist also nicht direkt auf das Kreuzschienen-Array abgebildet. Bei der Eingabe in das Neuron handelt es sich um das Ergebnis einer Multiplikations-Additions-Operation, d.h., Σi Wji xi(t), die in dem analogen Raum durchgeführt wird. Dieses Ergebnis wird anschließend mithilfe einer Analog-Digital-Wandler(analog-digital converter, ADC)-Schaltung in den digitalen Bereich umgesetzt. Die Neuronenaktivierungsfunktion f(Σi Wji xi(t)) wird in dem digitalen Bereich berechnet, was zu Ausgaben yi(t) führt, die an den Bus zur Datenübertragung zwischen Kernen übergeben werden, der solche Signale an Neuronen einer nächsten Schicht weitergibt.
  • Ausgehend von diesen Beobachtungen haben die Erfinder der vorliegenden Erfindung erkannt, dass die Neuronenfunktionalität zumindest zum Teil in die Kreuzschienen-Array-Struktur integriert werden könnte. Sie haben dementsprechend verschiedene neuromorphe Einheiten und entsprechende Datenverarbeitungssysteme entwickelt, die dazu verwendet werden können, gewöhnliche ANNs wie auch SNNs zu implementieren. Solche Lösungen werden in der folgenden Beschreibung ausführlich beschrieben.
  • Unter Bezugnahme auf 3A bis 3B und 4 bis 5 wird zunächst ein Aspekt der Erfindung beschrieben, der eine neuromorphe Einheit 10 bis 12 betrifft. Im Wesentlichen weist diese Einheit eine Kreuzschienen-Array-Struktur und eine analoge Schaltung auf, wobei die Letztere mehrere Funktionalitäten enthält.
  • Die Kreuzschienen-Array-Struktur 110 enthält N Eingangsleitungen (horizontale Leitungen) 111, 112 und M Ausgangsleitungen (vertikale Leitungen) 120. Die Eingangsleitungen und die Ausgangsleitungen sind an Übergängen über N × M elektronische Einheiten 131, 132, bei denen es sich bevorzugt um memristive Einheiten handelt, miteinander verbunden. Solche Einheiten werden in der vorliegenden Beschreibung auch als „Zellen“ bezeichnet.
  • Interessanterweise trennen sich die Eingangsleitungen 111, 112 hier in zwei Teilsätze von Eingangsleitungen, die als erste Eingangsleitungen bzw. zweite Eingangsleitungen bezeichnet werden. Wie zu sehen sein wird, weisen die ersten Eingangsleitungen und die zweiten Eingangsleitungen unterschiedliche Funktionen auf. In ähnlicher Weise definieren die elektronischen Einheiten 131, 132 zwei Teilsätze, die als erste Einheiten 131 bzw. zweite Einheiten 132 bezeichnet werden.
  • Strukturell gesehen, trennen sich die Eingangsleitungen in N1 erste Eingangsleitungen 111 und N2 zweite Eingangsleitungen 112. Die ersten Eingangsleitungen 111 sind mit den M Ausgangsleitungen 120 über N1 × M erste Einheiten 131 verbunden, wohingegen die zweiten Eingangsleitungen 112 mit den M Ausgangsleitungen 120 über N2 × M zweite Einheiten 132 verbunden sind. Die verschiedenen obigen Anzahlen sind wie folgt eingeschränkt: N1 > 1, N2 > 1, N1 + N2 = N und M > 1, vorbehaltlich zusätzlicher Anmerkungen im Folgenden.
  • Die analoge Schaltung 140 bis 170 ist im Besonderen dazu gestaltet, die elektronischen Einheiten 131, 132 so zu programmieren S110, dass sie Werte speichern oder, genauer gesagt, Eigenschaften (z.B. einen elektrischen Leitwert oder eine Menge an gespeicherten elektrischen Ladungen) aufweisen, die als solche Werte auslegbar sind. Es ist zu beachten, dass sich alle Bezugnahmen auf „Sijk“ auf die Verfahrensschritte beziehen, die im Besonderen in den Ablaufplänen vom 6 zu sehen sind. Wie bei Einheiten nach dem Stand der Technik können die ersten Einheiten 131 entsprechend dazu programmiert werden, synaptische Gewichtungen zu speichern. Die zweiten Einheiten 132 werden hier jedoch durch die analoge Schaltung dazu programmiert, neuronale Zustände des künstlichen neuronalen Netzes (ANN), das durch das Array implementiert wird, zu speichern.
  • Die analoge Schaltung ist des Weiteren dazu gestaltet, M Ausgangssignale (z.B. elektrische Ströme) auszulesen S140, die von den M Ausgangsleitungen 120 gewonnen werden. Der Auslesevorgang wird gemäß einer Multiplikations-Additions-Operation ausgeführt, die Signale (z.B. Vorströme und Vorspannungen) berücksichtigt, die jeweils in die Eingangsleitungen (diese einschließlich der zweiten Eingangsleitungen) eingekoppelt werden, die zum Anlegen der Steuersignale verwendet werden. Im Besonderen beruht der Auslesevorgang im Betrieb auf N1 Eingangssignalen, die in die ersten Eingangsleitungen 111 eingekoppelt S121 werden, wohingegen N2 Steuersignale in die zweiten Eingangsleitungen 112 eingekoppelt S122 werden. Entsprechend den durchgeführten Multiplikations-Additions-Operationen wirken sich die in jeder der ersten Einheiten 131 und der zweiten Einheiten 132 gespeicherten S110 Werte auf den Auslesevorgang aus.
  • Darüber hinaus wird bevorzugt dieselbe analoge Schaltung 140 bis 170 dazu verwendet, Eingangssignale in die Eingangsleitungen einzukoppeln. D.h., eine dritte Funktion der Schaltung kann darin bestehen, die N1 Eingangssignale und die N2 Steuersignale in die N1 ersten Eingangsleitungen 111 bzw. die N2 zweiten Eingangsleitungen 112 einzukoppeln S120. Auf diese Weise kann die analoge Schaltung drei unterschiedliche Funktionen aufweisen: (i) Programmieren S110 der elektronischen Einheiten 131, 132; (ii) Auslesen S140 von Ausgangssignalen, die von den M Ausgangsleitungen 120 gewonnen werden; und (iii) Einkoppeln von Eingangssignalen in die Eingangsleitungen, um die Ausgangssignale auszulesen. Bei Varianten kann für jede Funktion eine getrennte Eingangsschaltung verwendet werden. In beiden Fällen können Eingaben zum Beispiel über eine PWM-Schaltung erzielt werden.
  • Gemäß den obigen Beziehungen, d.h., N1 ≥ 1, N2 ≥ 1, N1 + N2 = N und M ≥ 1 sind als Minimum zumindest eine Ausgangsleitung und zumindest zwei Eingangsleitungen vorhanden. Die zumindest zwei Eingangsleitungen weisen zumindest eine Eingangsleitung, d.h., eine erste Eingangsleitung, zum Koppeln zumindest eines Eingangssignals (entsprechend synaptischen Eingaben) auf. Die zumindest zwei Eingangsleitungen weisen des Weiteren zumindest eine Steuerleitung, d.h., eine zweite Eingangsleitung, diesmal zum Anlegen von Steuersignalen auf. Die angelegten Steuersignale sind normalerweise konstant, zumindest während eines Betriebszyklus (z.B. um zu ermöglichen, dass Membranpotentiale in dem zweiten Teilsatz von elektronischen Einheiten gespeichert werden), können jedoch von einem Betriebszyklus zum anderen variieren, wie im Folgenden erörtert wird. Bei solchen Steuersignalen kann es sich des Weiteren um auswählbare Signale handeln, um z.B. Schwellenwerte, möglicherweise variierende Schwellenwerte, in das Kreuzschienen-Array einzubeziehen, wie bei im Folgenden erörterten Ausführungsformen.
  • In der Praxis sind jedoch wahrscheinlich mehrere Eingangsleitungen 111 enthalten (z.B. 8, 32, ..., 250, ... 1.000 usw., wobei diese Anzahl eine gerade oder eine ungerade Zahl sein kann). Bei wahrscheinlichen Ausführungsformen liegt die Anzahl von Eingangsleitungen 111 in der Größenordnung von mehreren hundert. In ähnlicher Weise werden typischerweise mehrere Ausgangsleitungen 120 bereitgestellt, typischerweise zwischen 8 und 2.000. Die Anzahl von Steuerleitungen 112 hängt von dem angestrebten Entwicklungsniveau ab; es können eine, zwei, drei oder mehr Steuerleitungen enthalten sein, wie im Folgenden unter Bezugnahme auf 3A bis 3B und 4 bis 5 veranschaulicht.
  • Die ersten und die zweiten Eingangsleitungen bilden in der Praxis bevorzugt vollständig getrennte Teilsätze aus. D.h., die vorliegenden Einheiten 10 bis 12 weisen bevorzugt nicht überlappende Teilsätze von Eingangsleitungen auf, so dass das Array einen ersten Teilsatz von aufeinanderfolgenden Eingangsleitungen zeigt, die zum Koppeln von Eingangswerten bereitgestellt werden, wohingegen ein getrennter zweiter Teilsatz von aufeinanderfolgenden Eingangsleitungen zum Anlegen von Steuersignalen bereitgestellt wird, wie es erforderlich ist, um neuronale Zustände der Einheit zu berücksichtigen.
  • Die durch die analoge Schaltung ausgeführte Multiplikations-Additions-Operation resultiert darin, dass in die Eingangsleitungen eingekoppelte Signale jeweils mit Werten multipliziert werden, die in den elektronischen Einheiten an den Übergängen gespeichert sind, wie bei memristiven Kreuzschienen-Arrays üblich. Im vorliegenden Fall berücksichtigt die analoge Multiplikations-Additions-Operation jedoch Steuersignale. Folglich werden Signale, die in die ersten Eingangsleitungen 111 und die zweiten Eingangsleitungen 112 eingekoppelt werden, jeweils mit Werten multipliziert, die in den ersten elektronischen Einheiten und den zweiten elektronischen Einheiten gespeichert sind.
  • Interessanterweise können die vorliegenden Einheiten 10 bis 12 dazu verwendet werden, entweder ein gewöhnliches ANN oder sogar ein gepulstes neuronales Netz (SSN) zu implementieren, wobei darauf hingewiesen wird, dass SNNs in der vorliegenden Beschreibung als Teilklasse von allgemeinen ANNs betrachtet werden. Wenn nichts anderes angegeben wird, sollen ANNs hier SNNs abdecken.
  • Streng genommen entsprechen die Architekturen der in 3A bis 3B und 4 bis 5 dargestellten Einheiten einzelnen Schichten von Knoten statt mehrschichtigen Netzen. Folglich entspricht eine neuromorphe Einheit 10 bis 12, wie oben beschrieben, normalerweise einer einzelnen Schicht eines neuronalen Netzes (NN). Eine solche neuromorphe Einheit 10 bis 12 kann als analoge Kernverarbeitungseinheit betrachtet werden. Deren Architekturen können im Grunde möglicherweise so erweitert (oder gestapelt) werden, dass sie mehrere verbundene Schichten verkörpern (und folglich ein mehrschichtiges Netz ausbilden), oder können z.B. über einen Bus zur Datenübertragung zwischen Kernen (möglicherweise einschließlich digitaler Verarbeitungseinheiten) verbunden sein. Das heißt, mehrere Einheiten 10 bis 12, wie zum Beispiel in 3A bis 3B und 4 bis 5 dargestellt, können verbunden werden und auf diese Weise ein neuromorphes System 1 bilden, wie im Folgenden unter Bezugnahme auf 2 im Hinblick auf einen weiteren Aspekt der Erfindung beschrieben.
  • Es ist zu beachten, dass die Gewichtungen, wie sie in den ersten Einheiten 131 gespeichert werden, normalerweise für Inferenzzwecke konstant sind, wohingegen sie für Lernzwecke neu programmiert werden müssten. Zum Lernen kann die analoge Schaltung 140 bis 170 dazu verwendet werden, die N1 × M ersten Einheiten 131 so neu zu programmieren, dass darin gespeicherte synaptische Gewichtungen geändert werden und dies gemäß einem beliebigen geeigneten automatischen Lernprozess. Allgemeiner können die vorliegenden Einheiten 10 bis 12 jedoch sowohl zu Lern- als auch zu Inferenzzwecken dienen.
  • Wie zuvor erwähnt, kann die analoge Schaltung 140 bis 170 zum Beispiel eine Eingangsschaltung, eine Ausleseschaltung und eine Programmierschaltung aufweisen. Interessanterweise können die Eingangsschaltung und die Programmierschaltung insofern als eine selbe Schaltung ausgebildet sein, als die angelegten Signale entweder so, dass Signale in die Eingangsleitungen eingekoppelt werden, oder zum Programmieren der Zellen ausgewählt werden können, wie bei bevorzugten Ausführungsform. Es ist zu beachten, dass diese analoge Schaltung auch als analoge Verarbeitungseinheit betrachtet werden kann, da sie eine Programmierfunktionalität enthält. Nichtsdestotrotz kann diese analoge Schaltung mit einer digitalen Verarbeitungseinheit verbunden sein, und die digitale Verarbeitungseinheit kann möglicherweise einen Teil der Berechnungen durchführen, die für eine nachfolgende Programmierung erforderlich sind, wie bei im Folgenden beschriebenen Ausführungsformen.
  • Gemäß der vorliegenden Lösung können sowohl die synaptischen Gewichtungen als auch die neuronalen Zustände (z.B. Membranpotentiale) an den Übergängen durch elektronische Einheiten (z.B. memristive Einheiten) dargestellt werden. Dieser Ansatz ist dennoch kompatibel mit verschiedenen elektronischen Einheiten, z.B. Flash-Zellen, memristiven Einheiten, SRAM-Einheiten usw. Die vorliegende Lösung ermöglicht es, neuronale Zustände ohne zusätzliche Schaltungen und insbesondere ohne jegliche Umwandlung in den digitalen Bereich in konstanter Zeit zu berechnen. Da die verwendete analoge Schaltung ermöglicht, dass neuronale Zustände in dem analogen Bereich berechnet werden, kann die vorgeschlagene Lösung grundsätzlich zeiteffizienter als vorherige neuromorphe Einheiten sein.
  • Beispielsweise können Neuronenausgaben direkt von der Multiplikations-Additions-Operation erzeugt werden, die mit dem Kreuzschienen-Array z.B. mithilfe einer Komparatorschaltung durchgeführt wird. Es besteht keine Notwendigkeit, das Signal in den digitalen Bereich umzusetzen (so dass in diesem Fall in der Kreuzschienen-Struktur kein ADC benötigt wird) und es in einem Speicher zu speichern (d.h., es wird kein SRAM für diesen Zweck benötigt).
  • Eine einfache Aktivierungsfunktion kann z.B. wiederum in dem analogen Bereich auf Grundlage von Vergleichen mit einem oder mehreren Schwellenwerten implementiert werden, wie bei bevorzugten Ausführungsformen, die sich auf SNN-Implementierungen beziehen. Ausgangspulse können mithilfe einer gewöhnlichen Infrastruktur zwischen Kernen analog berechnet und anschließend an eine weitere ähnliche Einheit 10 bis 12 als binäre Signale übertragen werden. Im Übrigen ist der vorliegende Ansatz mit dem Standard-Address-Event-Representation(AER)-Protokoll für die Datenübertragung zwischen Kernen kompatibel.
  • All dies wird im Folgenden unter Bezugnahme auf jeweilige Ausführungsformen der Erfindung ausführlich beschrieben. Zunächst kann jede der elektronischen Einheiten der neuromorphen Einheit 10 bis 12 möglicherweise eine memristive Einheit enthalten, wie zuvor erwähnt. Es kann ein beliebiger Typ einer memristiven Einheit in Betracht gezogen werden, zum Beispiel Phasenänderungs-Speicherzellen, ein resistiver Direktzugriffsspeicher (resistive random-access memory, RRAM), ein SRAM, oder ein elektrochemischer Direktzugriffsspeicher (electro-chemical random-access memory, ECRAM). Bei Varianten kann auf Flash-Zellen zurückgegriffen werden.
  • Bei typischen Ausführungsformen ist die analoge Schaltung 140 bis 170 der neuromorphen Einheit 10 bis 12 des Weiteren dazu gestaltet, neuronale Zustände, die in zumindest einem Teilsatz der N2 × M zweiten Einheiten 132 gespeichert sind, zu aktualisieren S116, S118. Genauer gesagt, solche neuronalen Zustände werden im Betrieb durch Neuprogrammieren S116, S118 der zweiten Einheiten des Teilsatzes gemäß M Ausgangssignalen aktualisiert, wie sie zuvor durch die analoge Schaltung ausgelesen S140 worden sind. Es ist zu beachten, dass die Aktualisierungsoperationen typischerweise iterativ sind, d.h., neuronale Zustände können in jedem Betriebszyklus aktualisiert werden.
  • Die neuronalen Zustände enthalten Werte, die als Ergebnis von Multiplikations-Additions-Operationen berechnet werden, die für gewöhnliche ANN-Anwendungen genutzt werden können. Bei Varianten können diese neuronalen Zustände jedoch Membranpotentialwerte für SNN-Anwendungen enthalten, wie im Folgenden unter Bezugnahme auf 3A bis 3B und 4 bis 5 beschrieben. Das heißt, bei Ausführungsformen weisen die zweiten Eingangsleitungen eine jeweilige Steuerleitung 112 auf, die über M jeweilige elektronische Einheiten 132 mit den M Ausgangsleitungen 120 verbunden ist. Die jeweiligen elektronischen Einheiten 132 sind durch die analoge Schaltung 140 bis 170 so programmierbar, dass sie M anfängliche Membranpotentialwerte speichern, wie in 3A bis 3B und 4 bis 5 angenommen. Folglich weisen in diesem Fall durch die Einheit 132 erfasste neuronale Zustände als Minimum Membranpotentialwerte auf. Darüber hinaus kann die analoge Schaltung 140 bis 170 des Weiteren dazu gestaltet sein, ein jeweiliges Steuersignal so in die jeweilige Steuerleitung 112 einzukoppeln S122, dass die M ausgelesenen S140 Ausgangssignale für M endgültige Membranpotentialwerte repräsentativ sind. Es ist zu beachten, dass die Letzteren im Gegensatz zu den durch die Einheiten 132 erfassten „anfänglichen“ Werte als „endgültige“ Membranpotentialwerte betrachtet werden können. Genauer gesagt, die endgültigen Membranpotentialwerte werden im Betrieb auf Grundlage der M anfänglichen Membranpotentialwerte als Leckintegratoren von synaptischen Eingaben gewonnen, die ihrerseits durch Einkoppeln S121 der N1 Eingangssignale in die N1 ersten Eingangsleitungen 111 gewonnen werden.
  • In dieser Hinsicht, und wie des Weiteren in 3A bis 3B und 4 bis 5 zu sehen ist, ist das in die Steuerleitung 112 eingekoppelte Steuersignal im Betrieb bevorzugt repräsentativ für einen Abklingparameter α. Unterdessen kann die analoge Schaltung 140 bis 170 des Weiteren dazu gestaltet sein, die N1 Eingangssignale so anzupassen S120, dass sie für synaptische Eingangswerte repräsentativ sind, die komplementär, d.h., mit 1 - α skaliert sind. Somit kann die Entwicklung des Membranpotentials wie folgt geschrieben werden: V j ( t + δ t ) = α V j ( t ) + i W j i [ ( 1 α ) x i ( t d j i ) ] ,
    Figure DE112020005613T5_0001
    wobei es sich bei dji um eine synaptische Verzögerung handelt, die typischerweise fest ist (obwohl dieser Parameter möglicherweise grundsätzlich trainiert werden kann). Bei Varianten können skalierte Gewichtungen in den elektronischen Einheiten gespeichert werden.
  • Es ist zu beachten, dass mehr als eine solche Leitung 112 zum Speichern des Membranpotentials verwendet werden kann. D.h., das Membranpotential V eines jeweiligen Neurons kann möglicherweise in mehreren Einheiten 132 in einer selben Spalte gespeichert werden. Beispielsweise können n Leitungen 112 (n > 1) zusammen mit n × M elektronischen Einheiten 132 dazu verwendet werden, Bruchteile des Membranpotentials zu speichern. Bei einem jeweiligen Neuron kann dieser Bruchteil zum Beispiel einfach V/n betragen. Eine Gestaltung mit mehreren Steuerleitungen 112 erhöht gegebenenfalls die Genauigkeit der Darstellung des Membranpotentials. Im Folgenden wird jedoch der Einfachheit halber angenommen, dass nur eine Steuerleitung 112 zum Speichern des Membranpotentials verwendet wird.
  • Die analoge Schaltung 140 bis 170 ist dann bevorzugt des Weiteren dazu gestaltet, Membranpotentialwerte zu aktualisieren S116, die in den M jeweiligen elektronischen Einheiten 132 gespeichert sind. Dies wird im Betrieb durch Neuprogrammieren S116 der M jeweiligen elektronischen Einheiten 132 gemäß M Ausgangssignalen erzielt, die für M endgültige Membranpotentialwerte repräsentativ sind, wie sie zuvor durch die analoge Schaltung ausgelesen S140 worden sind. Die Membranpotentialwerte können wiederum iterativ aktualisiert werden (wodurch die Werte in jedem Zyklus geändert werden). Das heißt, die entsprechenden Elemente können so programmiert werden, dass sie verschiedene Werte speichern, die in jedem Zyklus gemäß Ausgangssignalen aktualisiert werden, wie sie während eines vorherigen Zyklus gelesen worden sind. Eine solche Operation wird in 3A bis 3B und 4 bis 5 symbolisch dargestellt, die eine Schaltungskomponente 140 darstellen, die dazu eingerichtet ist, Auslesevorgänge S140 auf Grundlage dessen durchzuführen, welche neuen Membranpotentialwerte in den Einheiten 132 aktualisiert S116 werden (es wird auf den entsprechenden Pfeil zur Rückschleifenführung in 3A bis 3B verwiesen).
  • Iterative Aktualisierungen, wie sie oben erwähnt werden, sollten jedoch nicht mit Schemata einer iterativen Programmierung verwechselt werden, bei denen z.B. einzelne PCM-Zellen mithilfe von mehreren Impulsen iterativ programmiert werden. Im vorliegenden Zusammenhang sind iterative Schritte zum Programmieren der Zellen nicht unbedingt erforderlich. Zellen können auch nur mit Impulsen programmiert werden, was potentiell gröbere Aktualisierungsschritte darstellt. Darüber hinaus kann hier das aktualisierte Membranpotential in konstanter Zeit berechnet werden (was bedeutet, dass alle Ausgabeergebnisse in jedem Betriebszyklus gewonnen werden). Die Aktualisierung weist jedoch eine lineare Komplexität auf.
  • Interessanterweise kann der Vergleich von Membranpotentialwerten mit Schwellenwerten auch analog durchgeführt werden, um die Berechnungen zu beschleunigen. Im Besonderen ist die analoge Schaltung 140 bis 170 bei Ausführungsformen des Weiteren dazu gestaltet, für jede der M Ausgangsleitungen 120 einen Vergleich zwischen jedem der M ausgelesenen Ausgangssignale und einem Schwellenwert θ durchzuführen S160, S165. Es ist zu beachten, dass dieser Schwellenwert ein einzelner, konstanter Schwellenwert sein kann. Bei Varianten kann die Einheit so ausgelegt sein, dass Vergleiche mit mehreren (unterschiedlichen) Schwellenwerten möglich sind, die sich von einer Ausgangsleitung 120 zur anderen unterscheiden. Bei weiteren Varianten können die Schwellenwerte während der Betriebszyklen variiert werden.
  • Die Vergleiche können analog durchgeführt werden, z.B. mithilfe von Komparatoren, wie in 3B angenommen. Dieses Beispiel stellt einen Aufbau einer Schaltungskomponente 160 dar, die ermöglicht, Membranpotentialwerte mit Schwellenwerten θ (die sich möglicherweise über die Ausgangsleitungen 120 hinweg unterscheiden) analog zu vergleichen. Darüber hinaus vergleicht die Schaltungskomponente 160 das Ergebnis der Differenz V - θ mit null, und die Ausgabe wird weiteren Schaltungskomponenten 170 zugeführt.
  • Die Schaltungskomponenten 170 bilden auch einen Teil der analogen Schaltung 140 bis 170. Solche Komponenten 170 ermöglichen es, ein Signal für jede der M Ausgangsleitungen 120 zu erzeugen S170, sofern die obigen Bedingungen erfüllt sind. Die erzeugten Signale können als Pulse betrachtet werden. Nichtsdestotrotz können die entsprechenden Signale entweder durch analoge Signale oder durch binäre Signale dargestellt werden. Solche Signale werden auf Grundlage eines Ergebnisses des Vergleichs zwischen den Membranpotentialwerten und entsprechenden Schwellenwerten erzeugt. Es ist jedoch zu beachten, dass möglicherweise in der Praxis das Signal, das der Differenz V - θ entspricht, mit einem Signal verglichen werden muss, das null entspricht, um zu ermitteln, ob die gemessenen Potentiale ihre jeweiligen Schwellenwerte tatsächlich überschritten haben. D.h., in dem Beispiel von 3A bis 3B und 4 bis 5 kann ein zusätzlicher Vergleich mit null durchgeführt werden, z.B. mithilfe eines analogen Komparators, um zu entscheiden, ob die endgültige Pulsausgabe zj zu erzeugen ist. Mit anderen Worten, wenn das Membranpotential den Schwellenwert überschreitet, wird ein Puls zj gewonnen, der dann an ein oder mehrere folgende Neuronen weitergegeben werden kann.
  • Darüber hinaus steht die Schaltungskomponente 160 in Wirkverbindung mit der Programmierschaltung, damit die Letztere Werte zurückgesetzt S114, die in einer der M jeweiligen elektronischen Einheiten 132 gespeichert sind. D.h., wenn ein Neuron einen Puls emittiert, muss das entsprechende Membranpotential zurückgesetzt werden.
  • Bei Varianten von 3B können die auf die Vergleiche (mit Schwellenwerten und dann mit Nullwerten) bezogenen Funktionalitäten in die Kreuzschienen-Array-Struktur integriert werden, wie im Folgenden unter Bezugnahme auf 4 erörtert wird. Ein solcher Ansatz kann ermöglichen, die Kreuzschienen-Array-Struktur zu nutzen, was zu einer stärker integrierten Lösung führt (es wird nur eine zusätzliche Steuerleitung benötigt, um dies zu erreichen, wenngleich möglicherweise zusätzliche Steuerleitungen erwünscht sein können).
  • Bislang enthielten die neuronalen Zustände, die durch die in 3B dargestellten elektronischen Einheiten 132 erfasst worden sind, lediglich die Membranpotentiale. Wie im Folgenden zu sehen sein wird, können die Schwellenwerte auch durch zusätzliche elektronische Einheiten 132a erfasst werden, wie bei der Ausführungsform von 4. In diesem Beispiel weisen die zweiten elektronischen Einheiten 132, 132a der neuromorphen Einheit 11 M weitere elektronische Einheiten 12a auf. Darüber hinaus weisen die zweiten Eingangsleitungen 112, 112a eine weitere Steuerleitung 112a auf, die über die M weiteren elektronischen Einheiten 132a mit den Ausgangsleitungen 120 verbunden ist. Die Einheiten 132a sind durch die analoge Schaltung 140 bis 170 dazu programmierbar, M Schwellenwerte zu speichern. Auf diese Weise können die M Ausgangssignale, wie sie letztendlich ausgelesen S142 werden, für M Differenzen der M endgültigen Membranpotentialwerte und der M Schwellenwerte, wie sie in den Einheiten 132a gespeichert sind (wiederum infolge der Multiplikations-Additions-Operation), repräsentativ sein, unter der Voraussetzung, dass ein in geeigneter Weise ausgewähltes Steuersignal in die Steuerleitung 112a eingekoppelt S122 wird, wie im Folgenden erörtert wird.
  • Es ist zu beachten, dass die durch die elektronischen Einheiten 132a erfassten Schwellenwerte zumindest bei einfachen Implementierungen normalerweise nicht von den Ausgangssignalen abhängen. Da die Einheiten 132a jedoch durch die analogen Schaltungen programmierbar sind, können die durch die Einheiten 132a erfassten Werte bei anspruchsvolleren Varianten durchaus von den Ausgangssignalen abhängig gemacht werden. Und wiederum kann gegebenenfalls mehr als eine Steuerleitung 112a einbezogen werden.
  • Genauer gesagt, die analoge Schaltung 140 bis 170 kann möglicherweise dazu gestaltet sein, das Steuersignal, das in die Steuerleitung 112a einzukoppeln ist, so auszuwählen, dass dieses Steuersignal entweder für einen Eingangswert 0 oder für einen Eingangswert -1 repräsentativ ist, wie in dem Beispiel von 4 angenommen. Wenn das gekoppelte Signal einem Eingangswert 0 entspricht, sind die M letztendlich ausgelesenen S140 Ausgangssignale repräsentativ für die reinen Membranpotentialwerte. Wenn das gekoppelte Signal jedoch einem Eingangswert -1 entspricht, sind die M Ausgangssignale nun repräsentativ für Differenzen V - θ, d.h., für Differenzen der M endgültigen Membranpotentialwerte und der M Schwellenwerte. Dementsprechend ermöglichen in geeigneter Weise ausgewählte Signale, entweder Membranpotentialwerte (wie sie zum Aktualisieren der Einheiten 132 benötigt werden) oder Differenzen zwischen solchen Membranpotentialwerten und Schwellenwerten (wie sie benötigt werden, um zu ermitteln, ob „gefeuert“ werden soll) zu lesen. In diesem Fall werden somit zwei Auslesevorgänge benötigt.
  • Möglicherweise können zusätzliche Steuerleitungen enthalten sein, z.B. um Operanden von adaptiven Feuerungsschwellenwerten zu berücksichtigen, wie im Folgenden unter Bezugnahme auf 5 erörtert wird. Das heißt, bei Ausführungsformen weisen die Eingangs(Steuer)-Leitungen der neuromorphen Einheit 12 nun drei Typen von Steuerleitungen 112, 112b, 112c auf. Und zwar enthalten sie im Besonderen die Steuerleitung 112 zum Speichern von Membranpotentialwerten, wie zuvor unter Bezugnahme auf 3A bis 3B und 4 beschrieben. Darüber hinaus sind nun zwei zusätzliche Steuerleitungen 112b, 112c enthalten, die über 2 × M zusätzliche elektronische Einheiten 132b, 132c mit den Ausgangsleitungen 120 verbunden sind. In diesem Fall kann die analoge Schaltung 140 bis 170 des Weiteren dazu ausgelegt sein, die 2 × M Einheiten 132b, 132c so zu programmieren, dass sie Operanden von adaptiven Feuerungsschwellenwerten speichern. Dies ermöglicht, fortschrittliche Modelle für gepulste Neuronen mit variierenden Feuerungsschwellenwerten im Gegensatz zu festen Schwellenwerten zu erzielen, wie im Folgenden beispielhaft dargestellt wird.
  • Es ist zu beachten, dass anstelle von drei Steuerleitungen 112, 112b, 112c drei Sätze von Steuerleitungen enthalten sein können, da jedes der Merkmale von neuronalen Zuständen (Membranpotential und adaptive Schwellenwert-Operanden) durch mehr als eine Leitung in dem Kreuzschienen-Array erfasst werden kann.
  • Ähnlich wie die auswählbaren Signale, die in die Steuerleitung 112a der Einheit von 4 eingekoppelt werden, kann die analoge Schaltung 140 bis 170 von 5 im Folgenden dazu verwendet werden, zwei zusätzliche Steuersignale in die Steuerleitungen 112b, 112c einzukoppeln und jedes der beiden zusätzlichen Steuersignale auszuwählen S121b, S121c, um Differenzsignale zu gewinnen. Das heißt, für in geeigneter Weise ausgewählte Steuersignale können die Ausgangssignale, wie sie letztendlich durch die Schaltung ausgelesen werden, für M Differenzen von M endgültigen Membranpotentialwerten und M adaptiven Feuerungsschwellenwerten repräsentativ sein.
  • Darüber hinaus müssen möglicherweise einige der Operanden aktualisiert werden (z.B. iterativ in jedem Betriebszyklus), was durch Neuprogrammieren der Einheiten 132c auf Grundlage von Ausgangswerten, wie sie zuvor gewonnen worden sind (z.B. während einer vorherigen Iteration), erreicht werden kann, wie in 5 veranschaulicht. Im Besonderen kann die analoge Schaltung 140 bis 170 möglicherweise dazu verwendet werden, M elektronische Einheiten 132c der 2 × M zusätzlichen Einheiten, d.h. der Einheiten, die eine Verbindung mit der Steuerleitung 112c herstellen, neu zu programmieren S118. Dies erfolgt dadurch, das darin gespeicherte Operanden (z.B. iterativ) aktualisiert werden, und dies gemäß zuvor gewonnenen Ausgangswerten. Es ist zu beachten, dass in diesem Fall nur die elektronischen Einheiten 132c programmiert werden müssen, wohingegen die elektronischen Einheiten 132b (zumindest während einer einzelnen Operation) fest bleiben, wobei sie sich genauso wie die elektronischen Einheiten 132a verhalten.
  • Es ist zu beachten, dass die Implementierung des adaptiven Schwellenwerts derjenigen des Schwellenwerts von 4 recht ähnlich ist. Der variierende Schwellenwert wird mit Bj(t) bezeichnet. Diese Größe kann wie folgt geschrieben werden: B j ( t ) = b j 0 + β b j ( t ) ,  wobei
    Figure DE112020005613T5_0002
    b j ( t + δ t ) = ρ j b j ( t ) + ( 1 ρ j ) z j ( t ) .
    Figure DE112020005613T5_0003
  • In den obigen Gleichungen sind bj 0 und bj(t) Operanden, die durch die Einheiten 132b bzw. 132c für die j-te Ausgangsleitung erfasst werden, wobei bj 0 fest ist, im Gegensatz zu bj(t), der in jedem Zyklus aktualisiert werden muss. Die Entwicklung von Bj(t) wird somit durch zwei Parameter β und ρj bestimmt, wobei der erste Parameter konstant ist, wohingegen der zweite für jede Spalte unterschiedlich sein kann. Um Bj(t) gemäß den obigen Gleichungen zu berechnen, genügt es folglich, in der Lage zu sein, Signale auszuwählen, die in die Steuerleitungen 112b, 112c eingekoppelt werden, damit die in die Steuerleitungen 112b und 112c eingekoppelten Signale entweder für {0, 0}, {-1, -β} oder für {0, p} repräsentativ sind, wie in 5 dargestellt. Ein Durchführen mehrerer Auslesevorgänge und gleichzeitiges Auswählen der Steuersignale in geeigneter Weise ermöglicht, dass alle Komponenten nacheinander ausgelesen und berechnet werden, und zwar Vj(t), Bj(t), zj(t) und anschließend bj(t). Die Berechnung sämtlicher beteiligter neuronaler Zustände (Membranpotentiale und adaptive Schwellenwerte) kann in diesem Fall weiterhin in konstanter Zeit durchgeführt werden.
  • Wie erwähnt, weist die analoge Schaltung 140 bis 170 unterschiedliche Funktionen auf, die durch verschiedene Schaltungskomponenten bereitgestellt werden können. Im Besonderen kann die Schaltung eine Programmierschaltung und eine Ausleseschaltung 140 aufweisen, wobei die Letztere mit der Ersten verbunden ist. Die Ausleseschaltung ist dazu ausgelegt, M Ausgangssignale auszulesen, wohingegen die Programmierschaltung dazu gestaltet ist, die elektronischen Einheiten 132, 132a bis c von 3A bis 3B und 4 bis 5 (z.B. iterativ) zu programmieren, wobei einige dieser Einheiten auf Grundlage von Ausgangssignalen, wie sie zuvor durch die Ausleseschaltung ausgelesen worden sind, neu programmiert werden können, wie oben erörtert.
  • Solche Schaltungskomponenten sind per se in Kreuzschienen-Array-Strukturen bekannt. Ein erster Unterschied im Hinblick auf Schaltungen nach dem Stand der Technik besteht darin, dass sich im vorliegenden Fall die analoge Schaltung 140 bis 170 auf zusätzliche Eingangsleitungen, und zwar Steuerleitungen 112, 112a bis c erstreckt, die zum Speichern von neuronalen Zuständen verwendet werden. Die Multiplikations-Additions-Operationen bleiben unverändert, mit der Ausnahme, dass sie nun zusätzliche Zeilenleitungen enthalten, wobei alles Übrige gleich ist. Folglich bleibt die Ausleseschaltungskomponente im Wesentlichen Ausleseschaltungen ähnlich, wie sie in Kreuzschienen-Array-Strukturen nach dem Stand der Technik verwendet werden. Ein weiterer Unterschied besteht jedoch darin, dass hier mehrere Auslesevorgänge durchgeführt werden müssen (z.B. 1, 2 oder 3 in den Beispielen von 3A bis 3B und 4 bis 5), um alle relevanten Größen zu gewinnen. Der Rechenaufwand für die zusätzlichen Operationen, die zum Gewinnen solcher Größen erforderlich sind, ist nach wie vor vorteilhaft, da solche Operationen analog, d.h., ohne jegliche Umwandlung in den digitalen Bereich, durchgeführt werden. Das heißt, wenn die Operationen einmal analog durchgeführt worden sind, müssen sie nicht mehr umgewandelt werden und brauchen dann auch nicht digital ausgeführt zu werden, woraus sich der Vorteil im Hinblick auf die Rechengeschwindigkeit ergibt.
  • Es ist zu beachten, dass die Programmierschaltung eine reine Eingangsschaltung sein kann, die dazu ausgelegt ist, Signale in die Eingangsleitungen einzukoppeln und Signale auszuwählen, die in solche Eingangsleitungen einzukoppeln sind. Ein Teil der Programmierlogik kann jedoch zu einer digitalen Schaltung ausgelagert werden, die mit der analogen Schaltung verbunden ist, um die elektronischen Einheiten in geeigneter Weise zu programmieren. Diese Logik kann somit auf einem fortschrittlichen Algorithmus beruhen, was mit einer rein analogen Schaltung schwieriger zu erreichen wäre. Dennoch wird das analoge Front-End benötigt, um Signale auszuwählen und solche Signale in die Steuerleitungen einzukoppeln, so dass die „praktische“ Programmierung in diesem Fall immer noch durch die analoge Schaltung durchgeführt wird.
  • Bei Varianten kann die analoge Schaltung 140 bis 170 jedoch drei funktional unterschiedliche Schaltungen aufweisen (obwohl sie zum Teil verbunden sind), d.h., eine Eingangsschaltung, eine Programmierschaltung und eine Ausleseschaltung, um ohne jegliche digitale Verarbeitung geeignete Eingangssignale auszuwählen und einzukoppeln, die elektronischen Einheiten zu programmieren und die Ausgangssignale auszulesen. Zumindest zwei der drei obigen Funktionen werden bevorzugt analog durchgeführt, wohingegen die dritte Funktion (das Programmieren) zum Teil zu einer digitalen Verarbeitungseinheit ausgelagert werden kann. Bei sonstigen Varianten können jedoch sämtliche Auslesevorgänge in den digitalen Bereich umgewandelt und digital weiterverarbeitet werden. Im Besonderen können die Vergleiche mit den Schwellenwerten mithilfe von digitaler Logik durchgeführt werden, wie zuvor angemerkt.
  • Unter Bezugnahme auf 2 wird im Folgenden ein weiterer Aspekt der Erfindung beschrieben, der ein neuromorphes System 1 betrifft. Das System 1 weist L neuromorphe Einheiten 10, wie zuvor unter Bezugnahme auf 3A bis 3B und 4 bis 5 beschrieben, sowie einen Datenübertragungsbus auf. Allgemein ausgedrückt, ist das System 1 dazu gestaltet, Ausgangssignale, wie sie aus einer jeweiligen neuromorphen Einheit 10 ausgelesen worden sind, über den Datenübertragungsbus an eine nächste der L neuromorphen Einheiten weiterzuleiten S180, daher der in 2 dargestellte Zyklus. Der Datenübertragungsbus weist typischerweise Analog-Digital(ADC)-Wandler und Digital-Analog(DAC)-Wandler auf, um die digitalisierten Versionen der Signale von einer neuromorphen Einheit zur anderen zu übertragen. Auf diese Weise können mehrere Schichten von neuronalen Netzen mit den Vorteilen einzelner analoger Schichten ausgebildet werden, wie zuvor beschrieben.
  • Wie ebenfalls zuvor erläutert, ermöglicht die Einheit 10, dass das Programmieren S110 bis S120 der elektronischen Einheiten, die Multiplikations-Additions-Operationen S140, die Aktualisierungen S116, der Vergleich S160 und die Pulsberechnung S180 sämtlich in dem analogen Bereich durchgeführt werden, vorbehaltlich der vorherigen Kommentare bezüglich des Programmierens, das zum Teil zu einer digitalen Verarbeitungseinheit ausgelagert werden kann. Ausgangssignale werden an den Bus zur Datenübertragung zwischen Kernen weitergeleitet S180, der, wie angemerkt, optional eine digitale Verarbeitungslogik zum Aktualisieren von Gewichtungen und Zuständen enthalten kann. Neue Eingangssignale werden dementsprechend an Neuronen einer (weiteren) Einheit 10 gewonnen und empfangen S190, die eine weitere Schicht verkörpert, und so weiter.
  • Unter Bezugnahme auf den Ablaufplan von 6 betrifft als Nächstes ein abschließender Aspekt der Erfindung ein Verfahren zum Betreiben einer neuromorphen Einheit 10 bis 12 (oder eines Systems 1), wie zum Beispiel oben beschrieben. Wesentliche Aspekte dieses Verfahrens sind bereits unter Bezugnahme auf die vorliegenden Einheiten und Systeme beschrieben worden. Dieses Verfahren wird daher im Folgenden nur kurz beschrieben.
  • Im Wesentlichen stützt S100 sich das Verfahren auf eine neuromorphe Einheit 10 bis 12, wie zum Beispiel hierin beschrieben, d.h., mit einer analogen Schaltung 140 bis 170 und einer Kreuzschienen-Array-Struktur 110. Die analoge Schaltung 140 bis 170 wird im Besonderen dazu verwendet, die elektronischen Einheiten so zu programmieren S110, dass die ersten Einheiten 131 synaptische Gewichtungen speichern und die zweiten Einheiten 132 neuronale Zustände einer durch die Einheit implementierten ANN-Schicht speichern. Darüber hinaus liest S140 die analoge Schaltung 140 bis 170 die M Ausgangssignale aus, die von den M Ausgangsleitungen 120 gewonnen werden. Dies erfolgt gemäß einer Multiplikations-Additions-Operation auf Grundlage von N1 Eingangssignalen, die in die ersten Eingangsleitungen 111 eingekoppelt werden, N2 Steuersignalen, die in die zweiten Eingangsleitungen 112 eingekoppelt werden, und Werten, die in jeder der ersten Einheiten 131 und der zweiten Einheiten 132 gespeichert sind, wie zuvor erläutert. Dies kann im Besonderen dazu führen, dass neuronale Zustände, die in zumindest einem Teilsatz der N2 × M zweiten Einheiten 132 gespeichert sind, durch Neuprogrammieren des Teilsatzes der N2 × M zweiten Einheiten 132 gemäß M Ausgangssignalen, wie sie zuvor mit der analogen Schaltung 140 bis 170 ausgelesen worden sind (z.B. während einer vorherigen Iteration), (z.B. iterativ) aktualisiert S116 werden.
  • Beispielsweise stellt der Ablaufplan von 6 die folgenden Operationen dar, die auf der Ebene einer neuromorphen Einheit 10 durchgeführt werden, die eine einzelne Schicht eines ANN verkörpert, die als analoge Kerndatenverarbeitungseinheit betrachtet werden kann. Zuerst werden memristive Einheiten 131, 132 der neuromorphen Einheit über eine Eingangsschaltungs- oder eine Programmierschaltungskomponente der analogen Schaltung programmiert S111, S112. Die memristiven Einheiten enthalten Einheiten, die zum Speichern von neuronalen Zuständen verwendet werden. Anschließend werden Signale, darunter Steuersignale, in Eingangsleitungen der neuromorphen Einheit eingekoppelt S120. Dies enthält ein Einkoppeln S121 von Eingangssignalen (die z.B. auf Grundlage von Pulssignalen von einer niedrigeren Schicht, wie sie in Schritt S190 empfangen werden, ermittelt werden) in Eingangsleitungen und ein Auswählen und Einkoppeln S122 von Steuersignalen in Steuerleitungen. Anschließend wird in Schritt S140 eine Multiplikations-Additions-Operation durchgeführt, um Membranpotentialwerte zu gewinnen, die analog mit einem Schwellenwert verglichen S160 werden können. Wenn der Schwellenwert überschritten wird, S171, werden als Nächstes in Schritt S172 Pulssignale erzeugt, die anschließend an die Infrastruktur zur Datenübertragung zwischen Kernen weitergeleitet S180 werden, die solche Signale an einen nächsten Kern 10 weitergeben (und diese möglicherweise weiterverarbeiten) kann, und so weiter.
  • Der vorgeschlagene Ansatz ermöglicht im Besonderen, dass gepulste neuronale Netze mit mehreren Neuronen und Schichten umgesetzt werden, die eine memristive Kreuzschienenstruktur einsetzen. Das Verfahren stellt eine Beschleunigung gegenüber herkömmlichen Datenverarbeitungsparadigmen bereit und ermöglicht darüber hinaus fortgeschrittene neuronale Modelle. Bei besonders vorteilhaften Ausführungsformen werden die synaptischen Gewichtungen und neuronalen Zustände durch Phasenänderungs-Speichereinheiten 132, 132a bis c dargestellt, wodurch eine potentielle Beschleunigung im Vergleich mit herkömmlichen Einheiten ermöglicht wird. Es kann zum Beispiel ein Trainings-Schema mit gemischter Genauigkeit, wie es für ANNs verwendet wird, gewählt werden, das mit analogen Kernen kompatibel ist, wie hierin beschrieben.
  • Die vorliegende Erfindung ist zwar unter Bezugnahme auf eine begrenzte Anzahl von Ausführungsformen, Varianten und die beigefügten Zeichnungen beschrieben worden, für Fachleute ist jedoch ersichtlich, dass verschiedene Änderungen vorgenommen werden können und gleichartige Elemente ausgetauscht werden können, ohne vom Umfang der vorliegenden Erfindung abzuweichen. Im Besonderen kann ein (einheitenähnliches oder verfahrensähnliches) Merkmal, das bei einer bestimmten Ausführungsform, Variante erwähnt worden ist oder in einer Zeichnung dargestellt worden ist, mit einem weiteren Merkmal in einer weiteren Ausführungsform, Variante oder Zeichnung kombiniert oder durch dieses ersetzt werden, ohne vom Umfang der vorliegenden Erfindung abzuweichen. Verschiedene Kombinationen der Merkmale, die im Hinblick auf jegliche der obigen Ausführungsformen oder Varianten beschrieben worden sind, können dementsprechend in Betracht gezogen werden, die innerhalb des Umfangs der beigefügten Ansprüche bleiben. Darüber hinaus können zahlreiche kleinere Modifizierungen vorgenommen werden, um eine bestimmte Situation oder ein bestimmtes Material an die Lehren der vorliegenden Erfindung anzupassen, ohne von ihrem Umfang abzuweichen. Daher soll die vorliegende Erfindung nicht auf die bestimmten offenbarten Ausführungsformen beschränkt sein, sondern die vorliegende Erfindung soll alle Ausführungsformen enthalten, die in den Umfang der beigefügten Ansprüche fallen. Darüber hinaus können zahlreiche andere Varianten als die oben ausdrücklich erwähnten in Betracht gezogen werden.

Claims (20)

  1. Neuromorphe Einheit, die aufweist: eine Kreuzschienen-Array-Struktur, die N Eingangsleitungen und M Ausgangsleitungen aufweist, die an Übergängen über N × M elektronische Einheiten miteinander verbunden sind, wobei die Eingangsleitungen N1 erste Eingangsleitungen und N2 zweite Eingangsleitungen aufweisen, die mit den M Ausgangsleitungen über N1 × M erste Einheiten der elektronischen Einheiten bzw. N2 × M zweite Einheiten der elektronischen Einheiten verbunden sind, wobei gilt N1 ≥ 1, N2 ≥ 1, N1 + N2 = N und M ≥ 1, und eine analoge Schaltung, die dazu gestaltet ist: die elektronischen Einheiten so zu programmieren, dass die ersten Einheiten synaptische Gewichtungen speichern und die zweiten Einheiten neuronale Zustände speichern; und im Betrieb M von den M Ausgangsleitungen gewonnene Ausgangssignale gemäß einer Multiplikations-Additions-Operation auf Grundlage von N1 Eingangssignalen, die in die ersten Eingangsleitungen eingekoppelt werden, N2 Steuersignalen, die in die zweiten Eingangsleitungen eingekoppelt werden, und Werten, die in jeder der ersten Einheiten und der zweiten Einheiten gespeichert sind, auszulesen.
  2. Neuromorphe Einheit nach Anspruch 1, wobei die analoge Schaltung des Weiteren dazu gestaltet ist, im Betrieb neuronale Zustände, die in zumindest einigen der N2 × M zweiten Einheiten gespeichert sind, durch Neuprogrammieren der zumindest einigen der N2 × M zweiten Einheiten gemäß M Ausgangssignalen, wie sie zuvor durch die analoge Schaltung ausgelesen worden sind, zu aktualisieren.
  3. Neuromorphe Einheit nach Anspruch 1, wobei: die analoge Schaltung des Weiteren dazu gestaltet ist, die N1 Eingangssignale und die N2 Steuersignale in die N1 ersten Eingangsleitungen bzw. die N2 zweiten Eingangsleitungen einzukoppeln.
  4. Neuromorphe Einheit nach Anspruch 1, wobei: die zweiten Eingangsleitungen eine jeweilige Steuerleitung aufweisen, die mit den Ausgangsleitungen über M jeweilige elektronische Einheiten verbunden ist, wobei die Letzteren durch die analoge Schaltung so programmierbar sind, dass sie M anfängliche Membranpotentialwerte speichern, und die analoge Schaltung des Weiteren dazu gestaltet ist, im Betrieb ein jeweiliges Steuersignal in die jeweilige Steuerleitung einzukoppeln, so dass die M ausgelesenen Ausgangssignale für M endgültige Membranpotentialwerte repräsentativ sind, wobei die Letzteren auf Grundlage der M anfänglichen Membranpotentialwerte als Leckintegratoren von synaptischen Eingaben gewonnen werden, die durch Einkoppeln der N1 Eingangssignale in die N1 ersten Eingangsleitungen gewonnen werden.
  5. Neuromorphe Einheit nach Anspruch 4, wobei die analoge Schaltung des Weiteren dazu gestaltet ist, im Betrieb in den M jeweiligen elektronischen Einheiten gespeicherte Membranpotentialwerte durch Neuprogrammieren solcher Einheiten gemäß M Ausgangssignalen zu aktualisieren, die für M endgültige Membranpotentialwerte repräsentativ sind, wie sie zuvor durch die analoge Schaltung ausgelesen worden sind.
  6. Neuromorphe Einheit nach Anspruch 4, wobei die analoge Schaltung des Weiteren dazu gestaltet ist, für jede der M Ausgangsleitungen einen Vergleich zwischen jedem der M ausgelesenen Ausgangssignale und einem Schwellenwert θ durchzuführen.
  7. Neuromorphe Einheit nach Anspruch 6, wobei die analoge Schaltung des Weiteren dazu gestaltet ist, für jede der M Ausgangsleitungen ein Signal auf Grundlage eines Ergebnisses des Vergleichs zu erzeugen und Werte zurückzusetzen, die in einer beliebigen der M jeweiligen elektronischen Einheiten gespeichert sind.
  8. Neuromorphe Einheit nach Anspruch 6, wobei: die zweiten elektronischen Einheiten M weitere elektronische Einheiten aufweisen und die zweiten Eingangsleitungen eine weitere Steuerleitung aufweisen, die mit den Ausgangsleitungen über die M weiteren elektronischen Einheiten verbunden ist, wobei die Letzteren durch die analoge Schaltung dazu programmierbar sind, im Betrieb M Schwellenwerte zu speichern, damit die M ausgelesenen Ausgangssignale für M Differenzen der M endgültigen Membranpotentialwerte und die M Schwellenwerte für ein in geeigneter Weise ausgewähltes weiteres Steuersignal repräsentativ sind, das in die weitere Steuerleitung eingekoppelt wird.
  9. Neuromorphe Einheit nach Anspruch 8, wobei die analoge Schaltung dazu gestaltet ist, das weitere Steuersignal, das in die weitere Steuerleitung einzukoppeln ist, so auszuwählen, dass das weitere Steuersignal repräsentativ ist entweder für: einen Eingangswert 0, bei dem die M ausgelesenen Ausgangssignale repräsentativ für die M endgültigen Membranpotentialwerte sind; oder einen Eingangswert -1; bei dem die M ausgelesenen Ausgangssignale repräsentativ für Differenzen der M endgültigen Membranpotentialwerte und der M Schwellenwerte sind.
  10. Neuromorphe Einheit nach Anspruch 4, wobei das jeweilige Steuersignal, das in die jeweilige Steuerleitung eingekoppelt ist, im Betrieb repräsentativ für einen Abklingparameter α ist, und die analoge Schaltung des Weiteren dazu gestaltet ist, die N1 Eingangssignale so anzupassen, dass sie für synaptische Eingangswerte repräsentativ sind, die komplementär mit 1 - α skaliert sind.
  11. Neuromorphe Einheit nach Anspruch 4, wobei: die zweiten Eingangsleitungen drei Steuerleitungen aufweisen, darunter die jeweilige Steuerleitung, wobei die drei Steuerleitungen zwei zusätzliche Steuerleitungen über die jeweilige Steuerleitung hinaus enthalten, die beiden zusätzlichen Steuerleitungen mit den Ausgangsleitungen über 2 x M zusätzliche elektronische Einheiten der elektronischen Einheiten verbunden sind, und die analoge Schaltung des Weiteren dazu gestaltet ist, die 2 x M zusätzlichen elektronischen Einheiten so zu programmieren, dass sie Operanden von adaptiven Feuerungsschwellenwerten speichern.
  12. Neuromorphe Einheit nach Anspruch 11, wobei: die analoge Schaltung des Weiteren dazu gestaltet ist, zwei zusätzliche Steuersignale in die beiden zusätzlichen Steuerleitungen einzukoppeln und jedes der beiden zusätzlichen Steuersignale so auszuwählen, dass die Ausgangssignale, die durch die Schaltung ausgelesen werden, für M Differenzen von M endgültigen Membranpotentialwerten und M adaptiven Feuerungsschwellenwerten repräsentativ sind.
  13. Neuromorphe Einheit nach Anspruch 12, wobei die analoge Schaltung des Weiteren dazu gestaltet ist, im Betrieb M elektronische Einheiten der 2 x M zusätzlichen elektronischen Einheiten, die eine Verbindung mit einer der beiden zusätzlichen Steuerleitungen herstellen, so neu zu programmieren, dass darin gespeicherte Operanden gemäß Ausgangswerten aktualisiert werden, wie sie zuvor durch die analoge Schaltung ausgelesen worden sind.
  14. Neuromorphe Einheit nach Anspruch 1, wobei die analoge Schaltung des Weiteren dazu gestaltet ist, die N1 × M ersten Einheiten so neu zu programmieren, dass darin gespeicherte synaptische Gewichtungen gemäß einem automatischen Lernprozess geändert werden.
  15. Neuromorphe Einheit nach Anspruch 1, wobei die analoge Schaltung eine Programmierschaltung und eine Ausleseschaltung aufweist, wobei die Letztere mit der Ersteren verbunden ist, wobei die Ausleseschaltung dazu gestaltet ist, die M Ausgangssignale auszulesen, und die Programmierschaltung dazu gestaltet ist, die elektronischen Einheiten gemäß Ausgangssignalen zu programmieren, die zuvor durch die Ausleseschaltung ausgelesen worden sind.
  16. Neuromorphe Einheit nach Anspruch 15, wobei die Programmierschaltung eine Eingangsschaltung aufweist, wobei die Letztere dazu gestaltet ist, im Betrieb einerseits Signale in die Eingangsleitungen einzukoppeln und andererseits in die Eingangsleitungen einzukoppelnde Signale auszuwählen, um die elektronischen Einheiten auf Grundlage von in die Eingangsleitungen eingekoppelten Signalen zu programmieren.
  17. Neuromorphe Einheit nach Anspruch 1, wobei jede der elektronischen Einheiten eine memristive Einheit enthält.
  18. Neuromorphes System, das aufweist L neuromorphe Einheiten jeweils nach Anspruch 1, und einen Datenübertragungsbus, wobei das System dazu gestaltet ist, Ausgangssignale, wie sie an einer jeweiligen der L neuromorphen Einheiten ausgelesen worden sind, über den Datenübertragungsbus an eine nächste der L neuromorphen Einheiten weiterzuleiten.
  19. Verfahren zum Betreiben einer neuromorphen Einheit, wobei das Verfahren aufweist: Bereitstellen einer neuromorphen Einheit mit einer analogen Schaltung und einer Kreuzschienen-Array-Struktur, wobei die Letztere N Eingangsleitungen und M Ausgangsleitungen aufweist, die an Übergängen über N × M elektronische Einheiten miteinander verbunden sind, wobei die Eingangsleitungen N1 erste Eingangsleitungen und N2 zweite Eingangsleitungen aufweisen, die mit den M Ausgangsleitungen über N1 × M erste Einheiten der elektronischen Einheiten bzw. N2 × M zweite Einheiten der elektronischen Einheiten verbunden sind, wobei gilt N1 ≥ 1, N2 ≥ 1, N1 + N2 = N und M ≥ 1; und über die analoge Schaltung: Programmieren der elektronischen Einheiten so, dass die ersten Einheiten synaptische Gewichtungen speichern und die zweiten Einheiten neuronale Zustände speichern; und Auslesen von M von den M Ausgangsleitungen gewonnenen Ausgangssignalen gemäß einer Multiplikations-Additions-Operation auf Grundlage von N1 Eingangssignalen, die in die ersten Eingangsleitungen eingekoppelt werden, N2 Steuersignalen, die in die zweiten Eingangsleitungen eingekoppelt werden, und Werten, die in jeder der ersten Einheiten und der zweiten Einheiten gespeichert sind.
  20. Verfahren nach Anspruch 19, wobei das Verfahren des Weiteren aufweist: Aktualisieren von neuronalen Zuständen, die in zumindest einigen der N2 × M zweiten Einheiten gespeichert sind, durch Neuprogrammieren der zumindest einigen der N2 × M zweiten Einheiten gemäß M Ausgangssignalen, wie sie zuvor mit der analogen Schaltung ausgelesen worden sind.
DE112020005613.9T 2019-11-15 2020-10-28 Neuromorphe Einheit mit Kreuzschienen-Array-Struktur Pending DE112020005613T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/685,045 US11714999B2 (en) 2019-11-15 2019-11-15 Neuromorphic device with crossbar array structure storing both weights and neuronal states of neural networks
US16/685,045 2019-11-15
PCT/IB2020/060075 WO2021094861A1 (en) 2019-11-15 2020-10-28 Neuromorphic device with crossbar array structure

Publications (1)

Publication Number Publication Date
DE112020005613T5 true DE112020005613T5 (de) 2022-09-15

Family

ID=75908228

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112020005613.9T Pending DE112020005613T5 (de) 2019-11-15 2020-10-28 Neuromorphe Einheit mit Kreuzschienen-Array-Struktur

Country Status (6)

Country Link
US (1) US11714999B2 (de)
JP (1) JP7438610B2 (de)
CN (1) CN114730379A (de)
DE (1) DE112020005613T5 (de)
GB (1) GB2604835B (de)
WO (1) WO2021094861A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11714999B2 (en) 2019-11-15 2023-08-01 International Business Machines Corporation Neuromorphic device with crossbar array structure storing both weights and neuronal states of neural networks

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210152244A (ko) * 2020-06-08 2021-12-15 삼성전자주식회사 뉴럴 네트워크를 구현하는 장치 및 그 동작 방법

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8515885B2 (en) 2010-10-29 2013-08-20 International Business Machines Corporation Neuromorphic and synaptronic spiking neural network with synaptic weights learned using simulation
US9152827B2 (en) 2012-12-19 2015-10-06 The United States Of America As Represented By The Secretary Of The Air Force Apparatus for performing matrix vector multiplication approximation using crossbar arrays of resistive memory devices
US9754203B2 (en) * 2013-03-24 2017-09-05 Technion Research And Development Foundation Ltd. Analog multiplier using a memristive device and method for implemening Hebbian learning rules using memrisor arrays
US9412063B2 (en) 2013-12-27 2016-08-09 International Business Machines Corporation Transform architecture for multiple neurosynaptic core circuits
JP6674838B2 (ja) 2015-05-21 2020-04-01 株式会社半導体エネルギー研究所 電子装置
US10248907B2 (en) 2015-10-20 2019-04-02 International Business Machines Corporation Resistive processing unit
CN107533668B (zh) * 2016-03-11 2021-01-26 慧与发展有限责任合伙企业 用于计算神经网络的节点值的硬件加速器和方法
KR102558300B1 (ko) 2016-06-09 2023-07-21 프로그레스, 인코포레이티드 신경망 및 신경망 트레이닝 방법
US10679118B2 (en) 2016-12-20 2020-06-09 Intel Corporation Solving matrix inverse problems using neuromorphic computing
US11580373B2 (en) 2017-01-20 2023-02-14 International Business Machines Corporation System, method and article of manufacture for synchronization-free transmittal of neuron values in a hardware artificial neural networks
KR20180111156A (ko) 2017-03-31 2018-10-11 에스케이하이닉스 주식회사 피드-백 라인을 가진 포스트-시냅틱 뉴런을 포함하는 뉴로모픽 소자 및 뉴로모픽 소자의 동작 방법
CN107273972B (zh) 2017-05-11 2019-09-13 北京大学 一种基于阻变器件和适应-激发神经元的神经形态系统及实现方法
US11055610B2 (en) 2017-06-30 2021-07-06 International Business Machines Corporation Circuit for CMOS based resistive processing unit
US11222255B2 (en) 2017-08-17 2022-01-11 Samsung Electronics Co., Ltd. Neuromorphic processing apparatus
US10552510B2 (en) 2018-01-11 2020-02-04 Mentium Technologies Inc. Vector-by-matrix multiplier modules based on non-volatile 2D and 3D memory arrays
JP2019179499A (ja) * 2018-03-30 2019-10-17 ソニー株式会社 半導体装置及び積和演算装置
US20190343452A1 (en) 2018-05-09 2019-11-14 EMRO Technologies, LLC Bruxism monitoring and prevention system
CN108985447B (zh) 2018-06-15 2020-10-16 华中科技大学 一种硬件脉冲神经网络系统
US10877752B2 (en) * 2018-09-28 2020-12-29 Intel Corporation Techniques for current-sensing circuit design for compute-in-memory
US11714999B2 (en) 2019-11-15 2023-08-01 International Business Machines Corporation Neuromorphic device with crossbar array structure storing both weights and neuronal states of neural networks

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11714999B2 (en) 2019-11-15 2023-08-01 International Business Machines Corporation Neuromorphic device with crossbar array structure storing both weights and neuronal states of neural networks

Also Published As

Publication number Publication date
JP7438610B2 (ja) 2024-02-27
GB2604835A (en) 2022-09-14
JP2023502204A (ja) 2023-01-23
WO2021094861A1 (en) 2021-05-20
CN114730379A (zh) 2022-07-08
US20210150327A1 (en) 2021-05-20
GB202208458D0 (en) 2022-07-27
US11714999B2 (en) 2023-08-01
GB2604835B (en) 2023-05-31

Similar Documents

Publication Publication Date Title
DE68928385T2 (de) Neuronenrechner
DE102019116305A1 (de) Pipelining zur verbesserung der inferenzgenauigkeit neuronaler netze
DE112018005726B4 (de) Resistive verarbeitungseinheit auf zählerbasis für programmierbare und rekonfigurierbare künstliche neuronale netzwerke
DE4042139C2 (de) Neuron-Einheit
DE112018002950B4 (de) System und Verfahren zum Aufbauen von synaptischen Gewichten für künstliche neuronale Netze aus mit Vorzeichen versehenen analogen Leitwertpaaren unterschiedlicher Wertigkeit
DE112018000272T5 (de) Resistive Verarbeitungseinheit mit hysteretischen Aktualisierungen zum Trainieren neuronaler Netze
DE112019000437B4 (de) Architektur einer resistiven verarbeitungseinheit mit voneinander getrennter gewichtungsaktualisierungs- und inferenzschaltung
DE112016003245T5 (de) Resistive Verarbeitungseinheit
DE69030778T2 (de) Ein Lernsystem in einem neuronalen Rechner
DE112020002186T5 (de) Dnn-training mit asymmetrischen rpu-einheiten
DE102008020379A1 (de) Verfahren zur rechnergestützten Steuerung und/oder Regelung eines technischen Systems
DE102012009502A1 (de) Verfahren zum Trainieren eines künstlichen neuronalen Netzes
DE102007001025A1 (de) Verfahren zur rechnergestützten Steuerung und/oder Regelung eines technischen Systems
DE112011101370T5 (de) Neuronales Netz mit kanonischen gepulsten Neuronen für einen raumzeitlichen Assoziativspeicher
DE4143073A1 (de) Mehrschichtiges neuronales netzwerk
DE112018000723T5 (de) Aktualisierungsverwaltung für eine RPU-Anordnung
DE112019005119T5 (de) Abgleichtechniken zum angleichen des symmetriepunktes als null-gewichtungspunkt in analogen kreuzungspunktanordnungen
DE112020005613T5 (de) Neuromorphe Einheit mit Kreuzschienen-Array-Struktur
DE112020001369T5 (de) Gepulste synaptische elemente für gepulste neuronale netze
DE60125536T2 (de) Anordnung zur generierung von elementensequenzen
DE102017218851A1 (de) Verfahren, Vorrichtung und Computerprogramm zur Erstellung eines tiefen neuronalen Netzes
WO2019121206A1 (de) Verfahren zur realisierung eines neuronalen netzes
WO2021008836A1 (de) Vorrichtung und computerimplementiertes verfahren für die verarbeitung digitaler sensordaten und trainingsverfahren dafür
EP1327959B1 (de) Neuronales Netz zur Modellierung eines physikalischen Systems sowie Verfahren zur Bildung eines solchen neuronalen Netzes
DE112021001968T5 (de) Driftregularisierung zum entgegenwirken einer variation in driftkoeffizienten für analoge beschleuniger

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R084 Declaration of willingness to licence