DE112021005715T5 - Integrierter schaltkreis mit einem konfigurierbaren neuromorphen neuron für künstliche neuronale netzwerke - Google Patents

Integrierter schaltkreis mit einem konfigurierbaren neuromorphen neuron für künstliche neuronale netzwerke Download PDF

Info

Publication number
DE112021005715T5
DE112021005715T5 DE112021005715.4T DE112021005715T DE112021005715T5 DE 112021005715 T5 DE112021005715 T5 DE 112021005715T5 DE 112021005715 T DE112021005715 T DE 112021005715T DE 112021005715 T5 DE112021005715 T5 DE 112021005715T5
Authority
DE
Germany
Prior art keywords
mode
neuron device
neuromorphic
neuromorphic neuron
integrated circuit
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
DE112021005715.4T
Other languages
English (en)
Inventor
Angeliki Pantazi
Milos Stanisavljevic
Stanislaw Andrzej Wozniak
Thomas Bohnstingl
Evangelos 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 DE112021005715T5 publication Critical patent/DE112021005715T5/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/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • 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)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Logic Circuits (AREA)
  • Semiconductor Memories (AREA)

Abstract

Die vorliegende Offenbarung betrifft einen integrierten Schaltkreis, der eine erste neuromorphe Neuronenvorrichtung aufweist. Die erste neuromorphe Neuronenvorrichtung weist einen Eingang und einen Akkumulationsblock mit einer Zustandsvariablen auf, um eine Ableitungsaufgabe auf Grundlage von Eingangsdaten durchzuführen, die eine zeitliche Abfolge aufweisen. Die erste neuromorphe Neuronenvorrichtung kann in einen ersten Modus und in einen zweiten Modus umgeschaltet werden. Der Akkumulationsblock kann konfiguriert werden, um eine Anpassung der Zustandsvariablen durch Verwenden eines Stromeingangssignals der ersten neuromorphen Neuronenvorrichtung und eine Abklingfunktion durchzuführen, die für ein Abklingverhalten der Vorrichtung indikativ ist. Die Zustandsvariable kann von einem oder mehreren vorher empfangenen Eingangssignalen der ersten neuromorphen Neuronenvorrichtung abhängig sein.

Description

  • HINTERGRUND
  • Die Erfindung betrifft allgemein das Gebiet von neuronalen Netzwerksystemen und insbesondere einen integrierten Schaltkreis, der eine neuromorphe Neuronenvorrichtung aufweist.
  • Neuronale Netzwerke sind ein Datenverarbeitungsmodell, das in Systemen von künstlicher Intelligenz verwendet wird. Neuronale Netzwerke beruhen auf mehreren künstlichen Neuronen. Jedes künstliche Neuron ist mit einem oder mehreren anderen Neuronen verbunden, und Verknüpfungen können den Aktivierungszustand von angrenzenden Neuronen verstärken oder verhindern. Es besteht jedoch Bedarf an verbesserten Hardware-Systemen zum Ausführen von derartigen neuronalen Netzwerken. Um eine Leistung eines Hardware-Systems für ein neuronales Netzwerk zu verbessern, kann eine derartige Hardware als eine neuromorphe Hardware ausgelegt werden.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Verschiedene Ausführungsformen stellen einen integrierten Schaltkreis, eine Mehrkern-Chip-Architektur und ein Verfahren bereit, wie durch den Anspruchsgegenstand der unabhängigen Ansprüche beschrieben. Vorteilhafte Ausführungsformen werden in den Unteransprüchen beschrieben. Ausführungsformen der vorliegenden Erfindung können frei miteinander kombiniert werden, wenn sie sich nicht wechselseitig ausschließen.
  • In einem Aspekt betrifft die Erfindung einen integrierten Schaltkreis, der eine erste neuromorphe Neuronenvorrichtung aufweist, wobei die erste neuromorphe Neuronenvorrichtung einen Eingang und einen Akkumulationsblock mit einer Zustandsvariablen aufweist, um eine Ableitungsaufgabe auf Grundlage von Eingangsdaten durchzuführen, die eine zeitliche Abfolge aufweisen. Die erste neuromorphe Neuronenvorrichtung kann in einen ersten Modus und in einen zweiten Modus umgeschaltet werden. Der Akkumulationsblock kann konfiguriert werden, um eine Anpassung der Zustandsvariablen durch Verwenden eines Stromeingangssignals der ersten neuromorphen Neuronenvorrichtung und eine Abklingfunktion durchzuführen, die für ein Abklingverhalten der Vorrichtung indikativ ist. Die Zustandsvariable kann von einem oder mehreren vorher empfangenen Eingangssignalen der ersten neuromorphen Neuronenvorrichtung abhängig sein. Die erste neuromorphe Neuronenvorrichtung kann konfiguriert werden, um das Stromeingangssignal über den Eingang zu empfangen. Ferner kann die erste neuromorphe Neuronenvorrichtung konfiguriert werden, um einen Zwischenwert in Abhängigkeit von der Zustandsvariablen zu generieren, wenn die erste neuromorphe Neuronenvorrichtung in den ersten Modus umgeschaltet ist. Ferner kann die erste neuromorphe Neuronenvorrichtung konfiguriert werden, um den Zwischenwert in Abhängigkeit von dem Stromeingangssignal und unabhängig von der Zustandsvariablen zu generieren, wenn die erste neuromorphe Neuronenvorrichtung in den zweiten Modus umgeschaltet ist. Ferner kann die erste neuromorphe Neuronenvorrichtung konfiguriert werden, um einen Ausgangswert in Abhängigkeit von dem Zwischenwert zu generieren.
  • In einem weiteren Aspekt betrifft die Erfindung eine Mehrkern-Chip-Architektur, wobei die Architektur integrierte Schaltkreise als Kerne aufweist, wobei jeder integrierte Schaltkreis eine erste neuromorphe Neuronenvorrichtung aufweist, wobei die erste neuromorphe Neuronenvorrichtung einen Eingang und einen Akkumulationsblock mit einer Zustandsvariablen zum Durchführen einer Ableitungsaufgabe auf Grundlage von Eingangsdaten aufweist, die eine zeitliche Abfolge aufweisen, wobei die erste neuromorphe Neuronenvorrichtung in einen ersten Modus und in einen zweiten Modus umschaltbar ist.
  • Der Akkumulationsblock kann konfiguriert werden, um eine Anpassung der Zustandsvariablen durch Verwenden eines Stromeingangssignals der ersten neuromorphen Neuronenvorrichtung und eine Abklingfunktion durchzuführen, die für ein Abklingverhalten der Vorrichtung indikativ ist. Die Zustandsvariable kann von einem oder mehreren vorher empfangenen Eingangssignalen der ersten neuromorphen Neuronenvorrichtung abhängig sein. Die erste neuromorphe Neuronenvorrichtung kann konfiguriert werden, um das Stromeingangssignal über den Eingang zu empfangen. Ferner kann die erste neuromorphe Neuronenvorrichtung konfiguriert werden, um einen Zwischenwert in Abhängigkeit von der Zustandsvariablen zu generieren, wenn die erste neuromorphe Neuronenvorrichtung in den ersten Modus umgeschaltet ist. Ferner kann die erste neuromorphe Neuronenvorrichtung konfiguriert werden, um den Zwischenwert in Abhängigkeit von dem Stromeingangssignal und unabhängig von der Zustandsvariablen zu generieren, wenn die erste neuromorphe Neuronenvorrichtung in den zweiten Modus umgeschaltet ist. Ferner kann die erste neuromorphe Neuronenvorrichtung konfiguriert werden, um einen Ausgangswert in Abhängigkeit von dem Zwischenwert zu generieren.
  • In einem weiteren Aspekt betrifft die Erfindung ein Verfahren zum Generieren eines Ausgangswerts eines integrierten Schaltkreises, wobei der integrierte Schaltkreis eine erste neuromorphe Neuronenvorrichtung aufweist, wobei die erste neuromorphe Neuronenvorrichtung einen Eingang und einen Akkumulationsblock mit einer Zustandsvariablen zum Durchführen einer Ableitungsaufgabe auf Grundlage von Eingangsdaten aufweist, die eine zeitliche Abfolge aufweisen, wobei die erste neuromorphe Neuronenvorrichtung in einen ersten Modus und in einen zweiten Modus umschaltbar ist. Das Verfahren weist ein Durchführen einer Anpassung der Zustandsvariablen durch Verwenden eines Stromeingangssignals der ersten neuromorphen Neuronenvorrichtung und einer Abklingfunktion auf, die für ein Abklingverhalten der Vorrichtung indikativ ist, wobei die Zustandsvariable von einem oder mehreren vorher empfangenen Eingangssignalen der ersten neuromorphen Neuronenvorrichtung abhängig ist; ein Empfangen des Stromeingangssignals über den Eingang; ein Generieren eines Zwischenwertes in Abhängigkeit von der Zustandsvariablen, wenn die erste neuromorphe Neuronenvorrichtung in den ersten Modus umgeschaltet ist, oder ein Generieren des Zwischenwertes in Abhängigkeit von dem Stromeingangssignal und unabhängig von der Zustandsvariablen, wenn die erste neuromorphe Neuronenvorrichtung in den zweiten Modus umgeschaltet ist; ein Generieren des Ausgangswerts des integrierten Schaltkreises in Abhängigkeit von dem Zwischenwert.
  • In einem weiteren Aspekt betrifft die Erfindung ein Computerprogrammprodukt, das ein durch einen Computer lesbares Speichermedium mit einem darauf verkörperten, durch einen Computer lesbaren Programmcode aufweist, wobei der durch einen Computer lesbare Programmcode konfiguriert ist, um alle Schritte des Verfahrens umzusetzen.
  • Figurenliste
  • Im Folgenden werden Ausführungsformen der Erfindung ausführlicher nur zu Beispielzwecken erläutert, wobei auf die Zeichnungen Bezug genommen wird, in denen:
    • 1 einen integrierten Schaltkreis mit einer neuromorphen Neuronenvorrichtung gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung veranschaulicht.
    • 2 einen Eingangsdatenfluss des integrierten Schaltkreises veranschaulicht.
    • 3 ein neuronales Netzwerk veranschaulicht, das mithilfe des integrierten Schaltkreises gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung simuliert werden soll.
    • 4 einen Abklingfunktionsblock des integrierten Schaltkreises veranschaulicht.
    • 5 einen Akkumulationsblock und einen Ausgangsgenerierungsblock der neuromorphen Neuronenvorrichtung veranschaulicht.
    • 6 einen weiteren integrierten Schaltkreis mit einer neuromorphen Neuronenvorrichtung gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung veranschaulicht.
    • 7 ein Kreuzschienenarray von Memristoren veranschaulicht.
    • 8 den integrierten Schaltkreis von 6 veranschaulicht, der mit einem Bussystem verbunden ist.
    • 9 einen weiteren integrierten Schaltkreis mit einer neuromorphen Neuronenvorrichtung gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung veranschaulicht.
    • 10 eine Mehrkern-Chip-Architektur gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung veranschaulicht.
    • 11 ein Ablaufplan eines Verfahrens zum Generieren eines Ausgangswerts des integrierten Schaltkreises von 6 ist.
    • 12 eine Abbildung veranschaulicht, die eine Initialisierungsfunktion zum Einrichten eines Arbeitsspeicherelements des in 7 gezeigten Kreuzschienenarrays aufweist.
    • 13 eine zeitabhängige Initialisierungsfunktion veranschaulicht.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung werden zu Veranschaulichungszwecken erstellt, sie sollen aber keineswegs erschöpfend oder auf die offenbarten Ausführungsformen eingeschränkt sein. Für Fachleute sind viele Modifizierungen und Variationen offenkundig, die nicht von dem Schutzumfang der beschriebenen Ausführungsformen abweichen. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder technische Verbesserung gegenüber auf dem Markt gefundenen Technologien bestmöglich zu erklären oder es anderen Fachleuten zu ermöglichen, die hierin offenbarten Ausführungsformen zu verstehen.
  • Die erste neuromorphe Neuronenvorrichtung (NNA) (Neuromorphic Neuron Apparatus) kann verwendet werden, um ein Neuron oder mehrere Neuronen eines künstlichen neuronalen Netzwerks zu simulieren. Außerdem kann die erste NNA als ein Neuron des künstlichen neuronalen Netzwerks betrachtet werden. Wenn die erste NNA in den ersten Modus umgeschaltet ist, kann die erste NNA zum Durchführen einer Ableitungsaufgabe auf Grundlage von Eingangsdaten verwendet werden, die eine zeitliche Abfolge aufweisen. Die Ableitungsaufgabe kann durch wiederholtes Berechnen der Anpassung der Zustandsvariablen durch Verwenden der Abklingfunktion mithilfe des Akkumulationsblocks verwirklicht werden. Wenn die erste NNA in den zweiten Modus umgeschaltet ist, kann die erste NNA zum Durchführen einer weiteren Ableitungsaufgabe auf Grundlage von weiteren Eingangsdaten verwendet werden, die keine zeitliche Abfolge aufweisen. Die weitere Ableitungsaufgabe kann durch Berechnen des Zwischenwertes unabhängig von der Zustandsvariablen verwirklicht werden. In diesem Fall kann die erste NNA als ein nicht zustandsorientiertes Neuron des künstlichen neuronalen Netzwerks betrachtet werden. Ein nicht zustandsorientiertes Neuron kann ein Neuron sein, das in einem allgemeinen mehrschichtigen Perzeptron (MLP) (Multi-Layer Perceptron) ohne rekurrente Verbindungen verwendet wird. Ein nicht zustandsorientiertes Neuron kann auch ein Neuron sein, das in einem allgemeinen rekurrenten neuronalen Netzwerk (RNN) (Recurrent Neural Network) zum Verarbeiten eines Eingangs mit einer zeitlichen Abfolge verwendet wird. In diesem Fall können einige Eingänge des Neurons Eingänge von externen rekurrenten, d.h. von außerhalb der ersten NNA arbeitenden Verbindungen bilden.
  • Die Eingangsdaten, die die zeitliche Abfolge aufweisen, können sich auf eine Stimmaufzeichnung beziehen, und die Ableitungsaufgabe kann sich auf eine Spracherkennung beziehen. Die weiteren Eingabedaten können in der Form eines Bildes vorliegen, und die weitere Ableitungsaufgabe kann eine Objekterkennung durchführen.
  • Die erste NNA kann in einer Initialisierungsprozedur des integrierten Schaltkreises (IC) in den ersten oder den zweiten Modus umgeschaltet werden. Nach der Initialisierungsprozedur kann der IC zum Beispiel für ein Schulen des neuronalen Netzwerks und/oder für die Ableitungsaufgabe oder die jeweils weitere Ableitungsaufgabe verwendet werden, ohne den Modus der ersten NNA erneut umzuschalten. In einem weiteren Beispiel kann die erste NNA nach der Initialisierungsprozedur des IC aus dem ersten Modus in den zweiten Modus oder umgekehrt umgeschaltet werden. Dies kann für Anwendungen nützlich sein, an denen Anpassungen einer Architektur des neuronalen Netzwerks beteiligt sind. Die Anpassungen können eine Änderung des Typs eines einzelnen Neurons oder von mehreren Neuronen einer Schicht des neuronalen Netzwerks aufweisen. Die Schicht verweist auf eine Schicht, die die erste NNA aufweist. Daher kann der gezeigte IC eine schnelle Auslegung des neuronalen Netzwerks erleichtern und kann insbesondere eine schnelle Auslegungsänderung und vorteilhafterweise eine automatische Auslegungsänderung des neuronalen Netzwerks erleichtern.
  • Ein Umschalten der ersten NNA von dem ersten in den zweiten Modus oder umgekehrt kann in Abhängigkeit von einem Wert eines Parameters durchgeführt werden, der für eine Leistung des neuronalen Netzwerks indikativ ist. Der Parameter kann eine Energieinanspruchnahme oder eine Schulungsleistung des neuronalen Netzwerks angeben. Daher kann der gezeigte IC ein schnelleres Lernen des neuronalen Netzwerks oder ein Einsparen von Energie erleichtern, wenn das neuronale Netzwerk geschult wird oder das neuronale Netzwerk für Ableitungsaufgaben verwendet wird.
  • Die Zustandsvariable kann zum Beispiel durch Austauschen der Zustandsvariablen über interne rekurrente Verbindungen der ersten NNA oder durch Verwenden von anderen Mitteln verwaltet werden, zum Beispiel Arbeitsspeicher wie beispielsweise memristive Einheiten, z.B. Phasenänderungsspeicher- oder andere Arbeitsspeicher-Technologien. In dem Fall von memristiven Einheiten kann ein Wert der Zustandsvariablen durch die Einheiten-Leitfähigkeit dargestellt werden. Die erste NNA, die in den ersten Modus umgeschaltet ist, kann eine genaue und effiziente Verarbeitung der Eingangsdaten ermöglichen, die die zeitliche Abfolge aufweisen. Zum Beispiel können Datenströme dieser Eingangsdaten direkt der ersten NNA zugeführt werden und bevorzugt unabhängig durch die erste NNA verarbeitet werden. Dadurch kann die erste NNA auf Aufgaben angewendet werden, wie zum Beispiel nicht segmentierte, verbundene Handschrifterkennung oder Spracherkennung, wenn sie in den ersten Modus umgeschaltet ist.
  • Gemäß einer Ausführungsform weist der integrierte Schaltkreis ferner eine erste Baugruppe von Arbeitsspeicherelementen auf. Die erste Baugruppe von Arbeitsspeicherelementen weist Eingangsverbindungen zum Anlegen von entsprechenden Spannungen an die jeweiligen Eingangsverbindungen auf, um einzelne elektrische Ströme in den jeweiligen Arbeitsspeicherelementen zu generieren. In einem Beispiel können die Spannungen in der Form von Spannungsimpulsen mit einer konstanten Spannung, aber mit unterschiedlichen Längen oder unterschiedlicher Anzahl von Impulsen innerhalb eines Zeitintervalls angelegt werden, um eine Impulsbreitenmodulation durchzuführen. In einem weiteren Beispiel können die Spannungen angelegt werden, die verschiedene Spannungswerte von mindestens zwei der Spannungen aufweisen. Die Spannungen können mithilfe einer Spannungsquelle oder einer Stromquelle angelegt werden. Die erste Baugruppe weist ferner mindestens eine Ausgangsverbindung zum Ausgeben eines elektrischen Ausgangsstroms auf. Die Arbeitsspeicherelemente sind so miteinander verbunden, dass der elektrische Ausgangsstrom eine Summe der einzelnen elektrischen Ströme ist. Die Ausgangsverbindung der ersten Baugruppe kann mit dem Eingang der ersten neuromorphen Neuronenvorrichtung verbunden werden. Der integrierte Schaltkreis kann konfiguriert werden, um das Stromeingangssignal auf Grundlage des elektrischen Ausgangsstroms zu generieren.
  • Gemäß einer weiteren Ausführungsform können die Arbeitsspeicherelemente resistive Arbeitsspeicherelemente sein, die auch als Memristoren bezeichnet werden. Die resistiven Arbeitsspeicherelemente können Phasenänderungsspeicher- (PCM), Metalloxidresistive RAM-, leitfähige Brücken-RAM- oder magnetische RAM-Elemente sein. Die resistiven Arbeitsspeicherelemente können jeweils eine Leitfähigkeit G haben, die geändert werden kann, indem eine Programmierspannung oder ein Programmierstrom an das jeweilige resistive Arbeitsspeicherelement (RME) (Resistive Memory Element) angelegt wird. Eine einzelne Gewichtung des Netzwerks kann durch die Leitfähigkeit G von einem oder mehreren RMEs dargestellt werden. Die einzelne Gewichtung des Netzwerks kann für eine Stärke einer Verbindung zwischen der ersten NNA und einem weiteren Neuron indikativ sein, das in einer weiteren Schicht des Netzwerks angeordnet ist. Die weitere Schicht kann zwischen der Schicht, die die erste NNA aufweist, und einer Eingangsschicht des Netzwerks angeordnet sein. In einem Beispiel kann ein höherer Wert der Gewichtung eine stärkere Verbindung zwischen der ersten NNA und dem weiteren Neuron angeben.
  • Gemäß einer weiteren Ausführungsform können die Arbeitsspeicherelemente auf Ladung beruhende Arbeitsspeichereinheiten sein, wie zum Beispiel ein statischer Direktzugriffspeicher (SRAM).
  • Die Arbeitsspeicherelemente können so miteinander verbunden sein, dass mindestens jedes der Arbeitsspeicherelemente eine elektrische Verknüpfung zu einem weiteren der Arbeitsspeicherelemente haben kann. Die elektrische Verknüpfung kann direkt oder indirekt sein. Die indirekte Verknüpfung kann einen Widerstand aufweisen. In diesem Fall können mindestens zwei der Arbeitsspeicherelemente über den Widerstand miteinander verbunden sein.
  • Da die Arbeitsspeicherelemente so miteinander verbunden sind, dass der elektrische Ausgangsstrom eine Summe der einzelnen elektrischen Ströme ist, kann der elektrische Ausgangsstrom als ein Ergebnis eines Skalarprodukts eines ersten Vektors und eines zweiten Vektors betrachtet werden. Hierin kann der erste Vektor Werte der entsprechenden Spannungen als Einträge aufweisen. Der zweite Vektor kann Einträge aufweisen, wobei jeder Eintrag ein Wert sein kann, der in einem oder mehreren der Arbeitsspeicherelemente gespeichert ist, zum Beispiel in der Form eines Werts einer Leitfähigkeit von einem oder mehreren RMEs. Daher ermöglicht die erste Baugruppe eine Berechnung des Skalarprodukts auf einer Hardware-Ebene durch eine Addition der einzelnen elektrischen Ströme zu der Summe. Diese Ausführungsform stellt eine sehr schnelle Möglichkeit dar, das Ergebnis des Skalarprodukts zu erhalten, zum Beispiel schneller als eine Berechnung des Skalarprodukts, die in einer herkömmlichen CPU durchgeführt wird.
  • Die schnelle Berechnung des Skalarprodukts kann nützlich sein, wenn die erste NNA in dem ersten Modus ausgeführt wird. Dies kann auf den folgenden Grund zurückzuführen sein. Verglichen mit der ersten NNA, die in dem zweiten Modus ausgeführt wird und mit einer zweiten Zeitschrittgröße getaktet wird, kann die erste NNA, die in dem ersten Modus ausgeführt wird, eine Taktung mit einer ersten Zeitschrittgröße erfordern, wobei die zweite Zeitschrittgröße größer als die erste Zeitschrittgröße sein kann. Daher kann die erste NNA, die in dem ersten Modus ausgeführt wird, eine höhere Häufigkeit der Berechnung des Skalarprodukts erfordern. Dies kann angemessen sein, um zeitliche Auswirkungen der Eingangsdaten aufzulösen, die die zeitliche Abfolge aufweisen. Die schnelle Berechnung des Skalarprodukts mithilfe der ersten Baugruppe kann Latenz reduzieren und somit ein Verwenden der ersten NNA ermöglichen, die für bestimmte reale Anwendungen in den ersten Modus umgeschaltet ist. Als Ergebnis dessen kann die erste Baugruppe eine reale Anwendung des IC erleichtern, wobei die erste NNA zwischen dem ersten und dem zweiten Modus umschaltbar ist, insbesondere unter Berücksichtigung des IC, der auf reale Anwendungen angewendet wird.
  • Gemäß einer weiteren Ausführungsform kann der IC ferner eine Vergleichsschaltung aufweisen. Die Vergleichsschaltung kann konfiguriert werden, um den Zwischenwert mit einem Schwellenwert zu vergleichen, wenn die erste NNA in den ersten Modus umgeschaltet ist. Gemäß dieser Ausführungsform kann die erste NNA konfiguriert werden, um den Ausgangswert auf gleich EINS festzulegen, wenn der Zwischenwert größer als der Schwellenwert ist, und um den Ausgangswert auf gleich null festzulegen, wenn der Zwischenwert kleiner oder gleich dem Schwellenwert ist. Der Schwellenwert kann einen Schwellenwert eines Potentials der ersten NNA darstellen, die in diesem Fall als ein gepulstes (spiking) Neuron betrachtet werden kann. Die Vergleichsschaltung kann zu einem gepulsten Merkmal der ersten NNA beitragen, wenn die erste NNA in den ersten Modus umgeschaltet ist. In diesem Fall kann die erste NNA als ein gepulstes Neuron des Netzwerks betrachtet werden.
  • Der vorliegende integrierte Schaltkreis (IC), der die Vergleichsschaltung aufweist, kann einen IC bereitstellen, der konfiguriert ist, um ein Neuron oder eine Schicht von Neuronen des neuronalen Netzwerks zu simulieren oder darzustellen, wobei das Netzwerk ein gepulstes neuronales Netzwerk (SNN) (Spiking Neural Network) sein kann, oder eine Schicht des Netzwerks eine gepulste Schicht sein kann in dem Fall, dass die erste NNA in den ersten Modus umgeschaltet ist. Die gepulste Schicht kann eine Schicht von Neuronen sein, wobei alle Neuronen dieser Schicht gepulste Neuronen sein können.
  • Ein Verwenden des SNN oder der gepulsten Schicht kann von Vorteil sein, da dadurch eine geringe Datenübertragung in dem Zeitbereich in dem Netzwerk ermöglicht werden kann. Dadurch kann eine Wärmeerzeugung und Inanspruchnahme von Energie des IC reduziert werden.
  • Ein Verwenden des gepulsten neuronalen Netzwerks kann im Vergleich mit anderen Typen von Netzwerken, wie zum Beispiel ein MLP oder RNN, von Vorteil sein, da es gelockerte Anforderungen an einen erforderlichen Arbeitsspeicher und für die erforderliche Datenübertragung von neuronalen Ausgängen in einer mehrschichtigen Architektur haben kann. Zum Beispiel können die Arbeitsspeicherinhalte mit geringer Präzision dargestellt werden oder sogar Binärwerte können ausreichend sein. Ein Spitzenwert der ersten NNA kann in einem Beispiel als ein Binärwert von EINS dargestellt. werden. Dies kann eine flächeneffiziente und flexible Umsetzung des Arbeitsspeichers ermöglichen. Dies kann ebenfalls ein Ausnützen von neuartigen Speichertechnologien (z.B. RMEs) ermöglichen.
  • Gemäß einer weiteren Ausführungsform kann der integrierte Schaltkreis ferner einen Analog-Digital-Wandler (ADC) aufweisen. Die Ausgangsverbindung der ersten Baugruppe der Arbeitsspeicherelemente kann mit dem Eingang der ersten neuromorphen Neuronenvorrichtung über den ADC verbunden sein. Die Ausgangsverbindung der ersten Baugruppe kann mit einer Eingangsverbindung des ADC verbunden sein, und eine Ausgangsverbindung des ADC kann mit dem Eingang der ersten neuromorphen Neuronenvorrichtung verbunden sein. Der ADC kann konfiguriert werden, um den elektrischen Ausgangsstrom in das Stromeingangssignal zu konvertieren, wobei das Stromeingangssignal ein digitales Signal ist. Da das Stromeingangssignal digital ist, kann dies den Vorteil haben, dass eine Logik zum Verwirklichen der ersten NNA digital sein kann. Dies kann Produktionskosten des IC reduzieren. Im Allgemeinen kann die erste NNA auch durch analoge Elemente verwirklicht werden.
  • Gemäß einer weiteren Ausführungsform kann der integrierte Schaltkreis ferner weitere Baugruppen von Arbeitsspeicherelementen aufweisen. In einer Ausführungsform können die Arbeitsspeicherelemente der weiteren Baugruppen RMEs sein. Die weiteren Baugruppen von Arbeitsspeicherelementen können jeweils mit den Eingangsverbindungen der ersten Baugruppe verbunden sein, um die entsprechenden Spannungen an die Arbeitsspeicherelemente jeder der weiteren Baugruppen anzulegen, um jeweilige weitere einzelne elektrische Ströme in den jeweiligen Arbeitsspeicherelementen jeder der weiteren Baugruppen zu generieren. Jede der weiteren Baugruppen kann eine jeweilige Ausgangsverbindung zum Ausgeben eines jeweiligen weiteren elektrischen Ausgangsstroms aufweisen. Die Arbeitsspeicherelemente von jeder der weiteren Baugruppen können so miteinander verbunden werden, dass der jeweilige weitere elektrische Ausgangsstrom eine jeweilige Summe der jeweiligen weiteren einzelnen elektrischen Ströme in den Arbeitsspeicherelementen der jeweiligen Baugruppe ist. Der integrierte Schaltkreis kann konfiguriert werden, um entsprechende weitere Stromeingangssignale auf Grundlage der jeweiligen weiteren elektrischen Ausgangsströme zu generieren. Der IC kann ferner konfiguriert werden, um weitere Ausgangswerte jeweils auf Grundlage des jeweiligen weiteren Stromeingangssignals mithilfe der ersten NNA oder weiteren neuromorphen Neuronenvorrichtungen des IC zu generieren.
  • Eine Leitfähigkeit G von einem oder mehreren RMEs der weiteren Baugruppen kann eine einzelne Gewichtung des Netzwerks darstellen. Die einzelne Gewichtung des Netzwerks kann für eine Stärke einer Verbindung zwischen einer weiteren NNA und einem zweiten weiteren Neuron indikativ sein, das in der weiteren Schicht des oben erwähnten Netzwerks angeordnet ist.
  • Da die Arbeitsspeicherelemente von jeder der weiteren Baugruppen so miteinander verbunden sind, dass der jeweilige weitere elektrische Ausgangsstrom die jeweilige Summe der jeweiligen weiteren einzelnen elektrischen Ströme ist, kann der jeweilige weitere elektrische Ausgangsstrom als ein jeweiliges Ergebnis eines jeweiligen Skalarprodukts des ersten Vektors und eines jeweiligen weiteren zweiten Vektors betrachtet werden. Der jeweilige zweite Vektor kann Einträge aufweisen, wobei jeder Eintrag ein Wert sein kann, der in einem oder mehreren der Arbeitsspeicherelemente der jeweiligen weiteren Baugruppe zum Beispiel in der Form eines Werts einer Leitfähigkeit von einem oder mehreren RMEs der jeweiligen weiteren Baugruppe gespeichert ist. Daher ermöglichen die weiteren Baugruppen jeweils eine Berechnung des jeweiligen Skalarprodukts auf der Hardware-Ebene durch eine Addition der jeweiligen weiteren einzelnen elektrischen Ströme zu der jeweiligen Summe. Ferner können die jeweiligen weiteren elektrischen Ausgangsströme zusammen als ein Ergebnisvektor betrachtet werden. Der Ergebnisvektor kann Einträge aufweisen, wobei jeder Eintrag einen Wert des jeweiligen weiteren elektrischen Ausgangsstroms darstellen kann.
  • Daher stellt diese Ausführungsform eine sehr schnelle Möglichkeit dar, ein Ergebnis einer Matrix-Vektor-Multiplikation zu erhalten, wobei die Matrix die jeweiligen weiteren zweiten Vektoren und den zweiten Vektor als Spalten und den Vektor aufweist, der der erste Vektor ist.
  • In dem Fall, dass die Leitfähigkeit G der RMEs der weiteren Baugruppen jeweilige einzelne Gewichtungen des Netzwerks darstellen können, können die Einträge des Ergebnisvektors jeweils für das Stromeingangssignal oder das jeweilige weitere Stromeingangssignal eines Neurons der Schicht indikativ sein, die die erste NNA aufweist. Die Einträge des ersten Vektors können jeweils für ein Stromausgangssignal eines Neurons der weiteren Schicht indikativ sein, die zwischen der Schicht und der Eingangsschicht angeordnet ist. Daher kann die Matrix-Vektor-Multiplikation als eine Propagierung der Ausgangssignale der Neuronen der weiteren Schicht zu jeweiligen Eingängen von Neuronen der Schicht betrachtet werden, die die erste NNA aufweist. Da die Matrix-Vektor-Multiplikation auf der Hardware-Ebene durch Verwenden der RMEs durchgeführt werden kann, kann diese Multiplikation schneller als auf einer herkömmlichen CPU durchgeführt werden. Dies kann ermöglichen, die erste NNA, die in den ersten Modus umgeschaltet ist und mit der ersten Zeitschrittgröße getaktet ist, um zeitliche Informationen der Eingangsdaten besser zu verarbeiten, die die zeitliche Abfolge aufweisen, in dem Kontext einer Schicht-zu-Schicht-Propagierung in dem Netzwerk zu verwenden. Dies kann ermöglichen, tiefe neuronale Netzwerke mit Hunderten von verborgenen Schichten zu erstellen und zu verwenden und Ableitungsaufgaben mit Eingangsdatensätzen durchzuführen, die viele zeitliche Abfolgen aufweisen.
  • Gemäß einer weiteren Ausführungsform kann der integrierte Schaltkreis ferner den Analog-Digital-Wandler (ADC), einen ersten Arbeitsspeicher und eine sequenzielle Schaltung aufweisen, wobei der Analog-Digital-Wandler konfiguriert ist, um den elektrischen Ausgangsstrom in das Stromeingangssignal und die weiteren elektrischen Ausgangsströme in die jeweiligen weiteren Stromeingangssignale zu konvertieren, wobei der erste Arbeitsspeicher konfiguriert ist, um das Stromeingangssignal und die weiteren Stromeingangssignale zu speichern, wobei die sequenzielle Schaltung konfiguriert ist, um das Stromeingangssignal und die weiteren Stromeingangssignale nacheinander an den Eingang der ersten neuromorphen Neuronenvorrichtung zu senden.
  • Gemäß einer weiteren Ausführungsform kann der integrierte Schaltkreis konfiguriert werden, um weitere Ausgangswerte jeweils auf Grundlage des jeweiligen weiteren Stromeingangssignals mithilfe der ersten NNA zu generieren. Dies kann durch die erste NNA erreicht werden, die die weiteren Ausgangswerte sequenziell auf Grundlage der jeweiligen weiteren Stromeingangssignale generiert. Das Senden der Stromeingangssignale kann auf folgende Weise verwirklicht werden. Die sequenzielle Schaltung kann das Stromeingangssignal und die weiteren Stromeingangssignale sequenziell aus dem ersten Arbeitsspeicher lesen und diese Werte sequenziell an den Eingang der ersten NNA weiterleiten. Diese Ausführungsform kann ermöglichen, die Schicht-zu-Schicht-Propagierung durch Verwenden von nur einer einzelnen künstlichen Neuronenschaltung durchzuführen, wie zum Beispiel die erste NNA. Dies ist von Vorteil, weil eine Anzahl von Neuronen der Schicht nicht von vornherein bekannt sein muss, um eine Simulation des Netzwerks auf der Hardware-Ebene zu verwirklichen.
  • Gemäß einer weiteren Ausführungsform kann der integrierte Schaltkreis ferner die weiteren neuromorphen Neuronenvorrichtungen aufweisen. Die weiteren neuromorphen Neuronenvorrichtungen können jeweils einen Eingang und einen Akkumulationsblock mit einer Zustandsvariablen aufweisen, um die Ableitungsaufgabe auf Grundlage der Eingangsdaten durchzuführen, die die zeitliche Abfolge aufweisen. Jede weitere neuromorphe Neuronenvorrichtung kann in einen ersten Modus und in einen zweiten Modus umgeschaltet werden. Jede der jeweiligen weiteren Ausgangsverbindungen der weiteren Baugruppen kann mit einem der Eingänge der weiteren neuromorphen Neuronenvorrichtungen verbunden werden, d.h. elektronisch verbunden werden. Der Akkumulationsblock der jeweiligen weiteren neuromorphen Neuronenvorrichtung kann konfiguriert werden, um eine Anpassung der Zustandsvariablen des jeweiligen Akkumulationsblocks durch Verwenden des Stromeingangssignals der jeweiligen weiteren neuromorphen Neuronenvorrichtung und einer Abklingfunktion durchzuführen, die für ein Abklingverhalten der jeweiligen Vorrichtung indikativ ist. Die Zustandsvariable des jeweiligen Akkumulationsblocks kann von einem oder mehreren vorher empfangenen Eingangssignalen der jeweiligen weiteren neuromorphen Neuronenvorrichtung abhängig sein.
  • Die jeweilige weitere neuromorphe Neuronenvorrichtung kann konfiguriert werden, um das weitere Stromeingangssignal der jeweiligen weiteren neuromorphen Neuronenvorrichtung über einen Eingang der jeweiligen weiteren neuromorphen Neuronenvorrrichtung zu empfangen.
  • Ferner kann die jeweilige weitere neuromorphe Neuronenvorrichtung konfiguriert werden, um einen Zwischenwert der jeweiligen weiteren neuromorphen Neuronenvorrichtung in Abhängigkeit von der Zustandsvariablen des jeweiligen Akkumulationsblocks zu generieren, wenn die jeweilige weitere neuromorphe Neuronenvorrichtung in den ersten Modus umgeschaltet ist.
  • Ferner kann die jeweilige weitere neuromorphe Neuronenvorrichtung konfiguriert werden, um den Zwischenwert der jeweiligen weiteren neuromorphen Neuronenvorrichtung in Abhängigkeit von dem weiteren Stromeingangssignal der jeweiligen weiteren neuromorphen Neuronenvorrichtung und unabhängig von der Zustandsvariablen des jeweiligen Akkumulationsblocks zu generieren, wenn die jeweilige weitere neuromorphe Neuronenvorrichtung in den zweiten Modus umgeschaltet ist.
  • Ferner kann die jeweilige weitere neuromorphe Neuronenvorrichtung konfiguriert werden, um den jeweiligen weiteren Ausgangswert in Abhängigkeit von dem Zwischenwert der jeweiligen neuromorphen Neuronenvorrichtung zu generieren. Diese Ausführungsform kann ermöglichen, den Ausgangswert und die weiteren Ausgangswerte mithilfe der ersten NNA und der weiteren NNAs parallel zu generieren, wodurch eine signifikante Beschleunigung der Schicht-zu-Schicht-Propagierung ermöglicht wird. Ferner kann der ADC gemäß dieser Ausführungsform das Stromeingangssignal und die weiteren Stromeingangssignale direkt jeweils zu dem Eingang der ersten NNA und der weiteren NNAs weiterleiten, ohne diese Signale in dem ersten Arbeitsspeicher zu speichern. Die sequentielle Schaltung kann in dieser Ausführungsform möglicherweise auch nicht notwendig sein.
  • Gemäß einer weiteren Ausführungsform können die Arbeitsspeicherelemente der ersten Baugruppe und die Arbeitsspeicherelemente der weiteren Baugruppen in Zeilen und Spalten angeordnet sein. Die Arbeitsspeicherelemente können jeweils einen der Einträge der Matrix darstellen. Die Einträge der Matrix können eine jeweilige Gewichtung einer Verbindung zwischen zwei Neuronen des künstlichen neuronalen Netzwerks darstellen. Die Schicht des künstlichen neuronalen Netzwerks kann mithilfe der ersten NNA simuliert werden. In einem Beispiel kann die Schicht die erste NNA und die weiteren NNAs aufweisen. Eine Anordnung der RMEs in Zeilen und Spalten kann die Auslegung und Produktion der ersten Baugruppe und der weiteren Baugruppen vereinfachen.
  • Gemäß einer weiteren Ausführungsform kann der integrierte Schaltkreis ferner eine erste umschaltbare Schaltung aufweisen. Die erste umschaltbare Schaltung kann konfiguriert werden, um in einem ersten Modus oder in einem zweiten Modus ausgeführt zu werden. Die erste umschaltbare Schaltung kann konfiguriert werden, um den Zwischenwert in Abhängigkeit von der Zustandsvariablen zu generieren, wenn die erste umschaltbare Schaltung in den ersten Modus umgeschaltet ist. Ferner kann die erste umschaltbare Schaltung konfiguriert werden, um den Zwischenwert in Abhängigkeit von dem Stromeingangssignal und unabhängig von der Zustandsvariablen zu generieren, wenn die erste umschaltbare Schaltung in den zweiten Modus umgeschaltet ist. Gemäß dieser Ausführungsform ist möglicherweise nur eine einzelne Schaltung notwendig, um den Zwischenwert zu generieren. Dies kann eine Anzahl von Schaltungen des IC reduzieren. Teile der ersten umschaltbaren Schaltung können gemeinsam verwendet werden, wenn die erste umschaltbare Schaltung in den ersten Modus und in den zweiten Modus umgeschaltet ist. Ein derartiger Teil der ersten umschaltbaren Schaltung kann eine Logik sein, die eine vereinte Multiplikation und Addition verwirklicht.
  • Gemäß einer weiteren Ausführungsform kann die erste umschaltbare Schaltung konfiguriert werden, um den Zwischenwert in Abhängigkeit von dem Stromeingangssignal und Parameterwerten zu generieren, die von einem Batch-Normalisierungsalgorithmus eines Schulungsdatensatzes zum Schulen der ersten neuromorphen Neuronenvorrichtung abgeleitet wurden, wenn die erste umschaltbare Schaltung in den zweiten Modus umgeschaltet ist. Gemäß dieser Ausführungsform können die von dem Batch-Normalisierungsalgorithmus abgeleiteten Parameterwerte Eingangswerte der Logik sein, die die vereinte Multiplikation und Addition verwirklicht. Der Batch-Normalisierungsalgorithmus kann eine schnellere Schulung des Netzwerks erleichtern. Ein Durchführen der Ableitungsaufgabe mit dem Netzwerk, das durch Verwenden der Batch-Normalisierung geschult wurde, kann ein Konvertieren des Stromeingangswerts und der weiteren Stromeingangswerte erfordern, indem sie mit den Parameterwerten multipliziert werden, die von dem Batch-Normalisierungsalgorithmus abgeleitet wurden. Somit kann diese Ausführungsform ein Verwenden der Batch-Normalisierung in einer Schulung und einer Ableitungsaufgabe des Netzwerks ermöglichen.
  • Gemäß einer weiteren Ausführungsform kann der integrierte Schaltkreis ferner eine zweite umschaltbare Schaltung und eine Konfigurationsschaltung aufweisen. Die zweite umschaltbare Schaltung kann konfiguriert werden, um in einem ersten Modus oder in einem zweiten Modus ausgeführt zu werden, und um den Ausgangswert gemäß einer ersten Aktivierungsfunktion auf Grundlage des Zwischenwertes zu generieren, wenn die zweite umschaltbare Schaltung in den zweiten Modus umgeschaltet ist. Ferner kann die zweite umschaltbare Schaltung konfiguriert werden, um den Ausgangswert gemäß einer zweiten Aktivierungsfunktion auf Grundlage des Zwischenwertes zu generieren, wenn die zweite umschaltbare Schaltung in den zweiten Modus umgeschaltet ist. Die Konfigurationsschaltung kann konfiguriert werden, um die erste umschaltbare Schaltung und die zweite umschaltbare Schaltung in den ersten Modus oder den zweiten Modus umzuschalten. In einem Beispiel kann die Konfigurationsschaltung konfiguriert werden, um die erste umschaltbare Schaltung und die zweite umschaltbare Schaltung gleichzeitig in den ersten Modus oder den zweiten Modus umzuschalten. Die erste Aktivierungsfunktion ist von der zweiten Aktivierungsfunktion verschieden. Dies kann eine Flexibilität eines IC in Bezug auf reale Anwendungen verbessern. Die erste Aktivierungsfunktion kann eine Rectified-Linear-Funktion, eine Sigmoid-Funktion oder ein hyperbolischer Tangens sein. Ebenso kann die zweite Aktivierungsfunktion eine Rectified-Linear-Funktion, eine Sigmoid-Funktion oder ein hyperbolischer Tangens sein.
  • Gemäß einer weiteren Ausführungsform kann der integrierte Schaltkreis ferner eine weitere Konfigurationsschaltung aufweisen. Die weitere Konfigurationsschaltung oder die oben genannte Konfigurationsschaltung kann konfiguriert werden, um die erste neuromorphe Neuronenvorrichtung und die jeweiligen weiteren neuromorphen Neuronenvorrichtungen gleichzeitig in den ersten Modus oder in den zweiten Modus umzuschalten. Diese Ausführungsform kann eine schnelle und synchrone Umschaltung von dem ersten Modus in den zweiten Modus aller NNAs und umgekehrt ermöglichen
  • Gemäß einer weiteren Ausführungsform kann der integrierte Schaltkreis ferner eine Rectified Linear Unit aufweisen. Die Rectified Linear Unit kann konfiguriert werden, um einen weiteren Zwischenwert in Abhängigkeit von dem Zwischenwert unabhängig zu generieren, wenn die erste neuromorphe Neuronenvorrichtung in den ersten Modus umgeschaltet wird ist oder wenn die zweite neuromorphe Neuronenvorrichtung in den zweiten Modus umgeschaltet ist. Die erste neuromorphe Neuronenvorrichtung kann konfiguriert werden, um den Ausgangswert auf Grundlage des weiteren Zwischenwertes zu generieren. Die Rectified Linear Unit (ReLU) kann Teil der ersten NNA sein. Die ReLU kann ein schnelles Lernen in der Schulung des Netzwerks ermöglichen.
  • Gemäß einer weiteren Ausführungsform kann die Vergleichsschaltung konfiguriert werden, um den weiteren Zwischenwert mit dem Schwellenwert zu vergleichen, wenn die erste neuromorphe Neuronenvorrichtung in den ersten Modus umgeschaltet ist. Gemäß dieser Ausführungsform kann die erste neuromorphe Neuronenvorrichtung konfiguriert werden, um den Ausgangswert gleich dem weiteren Zwischenwert festzulegen, wenn der weitere Zwischenwert größer als der Schwellenwert ist, und um den Ausgangswert auf gleich null zu setzen, wenn der weitere Zwischenwert kleiner oder gleich null ist. Diese Ausführungsform kann die Vorteile der ReLU und der ersten NNA kombinieren, die ein gepulstes Neuron ist.
  • Gemäß einer weiteren Ausführungsform kann der integrierte Schaltkreis ferner eine Eingangskonvertierungsschaltung aufweisen. Die Eingangskonvertierungsschaltung kann konfiguriert werden, um das Stromeingangssignal durch Verwenden einer Skalierung zu skalieren. Die Skalierung kann von einem Bereich von Ausgangswerten des Analog-Digital-Wandlers abhängen und kann von einem Modus der ersten neuromorphen Neuronenvorrichtung unabhängig sein. Das heißt, die Skalierung kann dieselbe sein, unabhängig davon, ob die erste NNA in den ersten oder in den zweiten Modus umgeschaltet ist. Daher kann die Eingangskonvertierungsschaltung in beiden Modi der ersten NNA verwendet werden und dadurch die Anzahl von erforderlichen Schaltungen in dem IC reduzieren.
  • Gemäß einer weiteren Ausführungsform kann die erste neuromorphe Neuronenvorrichtung konfiguriert werden, um den Ausgangswert so zu generieren, dass ein Bereich von zulässigen Werten des Ausgangswerts von einem Modus der ersten neuromorphen Neuronenvorrichtung unabhängig ist. Das heißt, der Bereich der zulässigen Werte des Ausgangswerts ist derselbe, wenn die erste NNA in den ersten oder in den zweiten Modus umgeschaltet ist. Die Ausführungsform kann eine Kompatibilität von verschiedenen Schichten des Netzwerks zueinander verbessern.
  • Gemäß einer weiteren Ausführungsform kann jedes Arbeitsspeicherelement eine jeweilige änderbare Leitfähigkeit aufweisen, wobei die jeweilige Leitfähigkeit sich in einem jeweiligen abweichenden Zustand befinden kann. Das jeweilige Arbeitsspeicherelement kann konfiguriert werden, um die jeweilige Leitfähigkeit auf einen jeweiligen anfänglichen Zustand zu setzen. Außerdem kann das jeweilige Arbeitsspeicherelement eine jeweilige Abweichung der jeweiligen Leitfähigkeit von dem jeweiligen anfänglichen Zustand in den jeweiligen abweichenden Zustand aufweisen. Der jeweilige anfängliche Zustand der jeweiligen Leitfähigkeit kann mithilfe einer jeweiligen Initialisierungsfunktion berechnet werden. Die jeweilige Initialisierungsfunktion kann von einem jeweiligen Zielzustand der jeweiligen Leitfähigkeit abhängig sein, und der jeweilige Zielzustand der jeweiligen Leitfähigkeit kann ungefähr gleich dem jeweiligen abweichenden Zustand der jeweiligen Leitfähigkeit sein.
  • Der Begriff „Abweichung“, wie hierin verwendet, beschreibt eine Änderung eines Werts der Leitfähigkeit im Laufe der Zeit, wie zum Beispiel ein Abklingen der Leitfähigkeit im Laufe der Zeit. Der Begriff „abweichender Zustand“, wie hierin verwendet, beschreibt einen geänderten Zustand der Leitfähigkeit im Vergleich mit dem anfänglichen Zustand. Zwischen einem Zeitpunkt, an dem sich die Leitfähigkeit in dem anfänglichen Zustand befindet, und einem weiteren Zeitpunkt, an dem sich die Leitfähigkeit in dem abweichenden Zustand befindet, ist Zeit verstrichen. In dem abweichenden Zustand der Leitfähigkeit des resistiven Arbeitsspeicherelements kann die Änderung der Leitfähigkeit im Laufe der Zeit ferner kleiner als eine im Lauf der Zeit erfolgende Änderung der Leitfähigkeit in dem anfänglichen Zustand der Leitfähigkeit sein. Aus diesem Grund kann eine Information, die durch einen tatsächlichen Wert der Leitfähigkeit des resistiven Arbeitsspeicherelemente dargestellt wird, im Laufe der Zeit mit einer höheren Präzision beibehalten werden, wenn sich die Leitfähigkeit in dem abweichenden Zustand befindet. In einem Beispiel kann die im Laufe der Zeit erfolgende Änderung der Leitfähigkeit in dem abweichenden Zustand der Leitfähigkeit weniger als zehn Prozent im Vergleich mit einer im Laufe der Zeit erfolgenden Änderung der Leitfähigkeit in dem anfänglichen Zustand der Leitfähigkeit betragen. In einem weiteren Beispiel kann die in Lauf der Zeit erfolgende Änderung der Leitfähigkeit in dem abweichenden Zustand der Leitfähigkeit weniger als fünf, oder gemäß einem weiteren Beispiel weniger als ein Prozent im Vergleich mit einer im Lauf der Zeit erfolgenden Änderung der Leitfähigkeit in dem anfänglichen Zustand der Leitfähigkeit betragen.
  • Nach dem Festlegen der Leitfähigkeit auf einen anfänglichen Wert wird eine Änderung der Leitfähigkeit im Laufe der Zeit geringer je mehr Zeit vergeht. Dieser Effekt wurde in Versuchen als von dem anfänglichen Wert der Leitfähigkeit abhängig beobachtet. Diese Ausführungsform stellt eine Speichereinheit bereit, die die resistiven Arbeitsspeicherelemente mit einer höheren Präzision im Vergleich mit einem standardmäßigen Anwendungsfall verwendet. Der standardmäßige Anwendungsfall kann ein Programmieren der Leitfähigkeit der resistiven Arbeitsspeicherelemente auf den anfänglichen Zustand und ein direkt anschließendes Verwenden der resistiven Arbeitsspeicherelemente aufweisen. Dieser Vorteil kann zum Generieren der oben erwähnten einzelnen elektrischen Ströme verwendet werden. Der elektrische Ausgangsstrom, der als eine Summe der einzelnen elektrischen Ströme generiert werden kann, kann mit einer höheren Präzision generiert werden. Daher können die resistiven Arbeitsspeicherelemente mit ihrer jeweilige Leitfähigkeit, die sich in dem jeweiligen abweichenden Zustand befindet, zum Durchführen einer genaueren Addition auf einer Hardware-Ebene verwendet werden.
  • Der anfängliche Zustand oder Wert der Leitfähigkeit kann durch Verwenden eines Computers mithilfe der Initialisierungsfunktion, zum Beispiel einer Look-up-Tabelle, berechnet werden. In einem weiteren Beispiel kann die Leitfähigkeit mithilfe der Initialisierungsfunktion manuell berechnet werden.
  • Gemäß einer weiteren Ausführungsform kann der Akkumulationsblock ein Arbeitsspeicherelement aufweisen, das im Folgenden auch als Akkumulationsblock-Arbeitsspeicherelement (ABME) (Accumulation Block Memory Element) bezeichnet wird. Das ABME kann eine änderbare physische Menge zum Speichern der Zustandsvariablen aufweisen. Die physische Menge kann sich in einem abweichenden Zustand befinden, wobei das ABME konfiguriert ist, um die physische Menge auf einen anfänglichen Zustand zu setzen, wobei das ABME eine Abweichung der physischen Menge von dem anfänglichen Zustand in den abweichenden Zustand aufweist, wobei der anfängliche Zustand der physischen Menge mithilfe einer weiteren Initialisierungsfunktion berechenbar ist, wobei die weitere Initialisierungsfunktion von einem Zielzustand der physischen Menge abhängig ist, und der Zielzustand der physischen Menge ungefähr gleich dem abweichenden Zustand der physischen Menge ist und von der Zustandsvariablen abhängig ist.
  • Der Begriff „abweichender Zustand“, wie hierin verwendet, beschreibt eine Änderung eines Werts der physischen Menge im Laufe der Zeit, wie zum Beispiel ein Abklingen der physischen Menge im Laufe der Zeit. Der Begriff „abweichender Zustand“, wie hierin verwendet, beschreibt einen geänderten Zustand der physischen Menge im Vergleich mit dem anfänglichen Zustand. Zwischen einem Zeitpunkt, an dem sich die physische Menge in dem anfänglichen Zustand befindet, und einem weiteren Zeitpunkt, an dem sich die physische Menge in dem abweichenden Zustand befindet, ist Zeit verstrichen. In dem abweichenden Zustand der physischen Menge des ABME kann ferner die Änderung der physischen Menge im Laufe der Zeit kleiner als eine im Laufe der Zeit erfolgende Änderung der physischen Menge in den Zustand der physischen Menge sein. Aus diesem Grund kann eine Information, die durch einen tatsächlichen Wert der physischen Menge des ABME dargestellt wird, im Laufe der Zeit mit einer höheren Präzision beibehalten werden, wenn sich die physische Menge in dem abweichenden Zustand befindet. In einem Beispiel kann die im Laufe der Zeit erfolgende Änderung der physischen Menge in den abweichenden Zustand der physischen Menge weniger als zehn Prozent im Vergleich mit einer im Laufe der Zeit erfolgenden Änderung der physischen Menge in den anfänglichen Zustand der physischen Menge betragen. In einem weiteren Beispiel kann die im Laufe der Zeit erfolgende Änderung der physischen Menge in den abweichenden Zustand der physischen Menge weniger als fünf, oder gemäß einem weiteren Beispiel weniger als ein Prozent im Vergleich mit der im Laufe der Zeit erfolgende Änderung der physischen Menge in den anfänglichen Zustand der physischen Menge betragen. Die physische Menge kann eine Leitfähigkeit des ABME sein.
  • Das ABME kann ein resistives Arbeitsspeicherelement sein. Daher kann das ABME ein Phasenänderungsspeicher- (PCM) (Phase Change Memory), Metalloxid-resistives RAM-, leitfähiges Brücken-RAM- oder magnetisches RAM-Element sein. Das ABME kann eine Leitfähigkeit G haben, die änderbar sein kann, indem eine Programmierspannung oder ein Programmierstrom an das ABME angelegt wird. Ein Wert der Zustandsvariablen kann durch die Leitfähigkeit G des ABME dargestellt werden.
  • Der anfängliche Zustand oder Wert der physischen Menge des ABME kann durch Verwenden eines Computers mithilfe der weiteren Initialisierungsfunktion, zum Beispiel eine weitere Look-up-Tabelle, berechnet werden. In einem weiteren Beispiel kann die Leitfähigkeit mithilfe der weiteren Initialisierungsfunktion manuell berechnet werden.
  • Gemäß einer weiteren Ausführungsform der Mehrkern-Chip-Architektur kann jeder integrierte Schaltkreis ferner eine jeweilige erste Baugruppe von Arbeitsspeicherelementen aufweisen. Die Arbeitsspeicherelemente der ersten Baugruppe jedes integrierten Schaltkreises können RMEs sein. Die jeweilige erste Baugruppe von Arbeitsspeicherelementen des jeweiligen IC kann Eingangsverbindungen zum Anlegen von entsprechenden Spannungen an die jeweiligen Eingangsverbindungen aufweisen, um einzelne elektrische Ströme in den jeweiligen RMEs der ersten Baugruppe des jeweiligen IC zu generieren. Ferner kann die jeweilige erste Baugruppe der RMEs des jeweiligen IC mindestens eine Ausgangsverbindung zum Ausgeben eines entsprechenden elektrischen Ausgangsstroms der ersten Baugruppe des jeweiligen IC aufweisen. Die RMEs der ersten Baugruppe des jeweiligen IC können so miteinander verbunden werden, dass der jeweilige elektrische Ausgangsstrom eine Summe der einzelnen elektrischen Ströme ist. Die Ausgangsverbindung der jeweiligen ersten Baugruppe kann mit dem Eingang der ersten neuromorphen Neuronenvorrichtung des jeweiligen integrierten Schaltkreises verbunden werden. Jeder integrierte Schaltkreis kann konfiguriert werden, um das Stromeingangssignal der ersten neuromorphen Neuronenvorrichtung des jeweiligen integrierten Schaltkreises auf Grundlage des jeweiligen elektrischen Ausgangsstroms zu generieren. Gemäß dieser Ausführungsform können mindestens zwei der integrierten Schaltkreise miteinander verbunden werden, um ein neuronales Netzwerk zu simulieren, das mindestens zwei verborgene Schichten aufweist. Diese Ausführungsform kann ein Durchführen von schnellen Berechnungen eines Skalarprodukts ermöglichen, wie oben unter Bezugnahme auf verschiedene Kerne, d.h. verschiedene ICs der Mehrkern-Chip-Architektur erwähnt. Analog dazu kann jeder IC der Mehrkern-Chip-Architektur auch weitere Baugruppen von RMEs aufweisen, wie der dargestellte IC aufweist, um schnelle Matrix-Vektor-Multiplikationen auf jedem Kern der Mehrkern-Chip-Architektur zu verwirklichen.
  • Einer der ICs der Mehrkern-Chip-Architektur, der im Folgenden als der erste IC bezeichnet wird, kann eine erste verborgene Schicht des Netzwerks simulieren. Ein weiterer der ICs der Mehrkern-Chip-Architektur, der im Folgenden als der zweite IC bezeichnet wird, kann eine zweite verborgene Schicht des Netzwerks simulieren.
  • Gemäß einer weiteren Ausführungsform der Mehrkern-Chip-Architektur kann die erste neuromorphe Neuronenvorrichtung von mindestens einem der integrierten Schaltkreise, z.B. der erste IC, in den ersten Modus umgeschaltet sein, und die erste neuromorphe Neuronenvorrichtung von mindestens einem der anderen integrierten Schaltkreise, z.B. der zweite IC, kann in den zweiten Modus umgeschaltet sein. Zum Beispiel kann die erste NNA des ersten IC in den ersten Modus umgeschaltet sein, und die erste NNA des zweiten IC kann in den zweiten Modus umgeschaltet sein. In diesem Fall kann die erste verborgene Schicht zwischen der zweiten verborgenen Schicht und der Eingangsschicht des Netzwerks angeordnet sein. Zum Beispiel kann die erste Schicht zum Durchführen einer Spracherkennung verwendet werden, und die zweite Schicht kann eine Klassifizierungsaufgabe auf Grundlage einer Spracherkennung durchführen, die von der ersten Schicht durchgeführt wird. In diesem Beispiel können zeitlichen Eingangsdaten gepulste Neuronen der ersten Schicht vorausgehen, und die Klassifizierungsaufgaben können durch Verwenden von einfachen Neuronen der zweiten Schicht durchgeführt werden. Die einfachen Neuronen können Neuronen sein, die aus MLPs bekannt sind und für zeitliche Auswirkungen nicht berücksichtigt werden.
  • Gemäß einer weiteren Ausführungsform der Mehrkern-Chip-Architektur können die integrierten Schaltkreise der Mehrkern-Chip-Architektur durch eine Steuerschaltung gesteuert werden. Die Steuerschaltung kann einen Zeitgeber zum Synchronisieren der integrierten Schaltkreise aufweisen. Dies kann eine Propagierung von Signalen von dem ersten IC zu dem zweiten IC ermöglichen, ohne Engpässe zu generieren. Engpässe können auftreten, wenn eine NNA der zweiten Schicht auf ihr Eingangssignal wartet, während andere NNAs der zweiten Schicht ihre Eingangssignale bereits empfangen haben.
  • Gemäß einer weiteren Ausführungsform der Mehrkern-Chip-Architektur kann der erste integrierte Schaltkreis mit der ersten Zeitschrittgröße getaktet sein, und die erste neuromorphe Neuronenvorrichtung des ersten integrierten Schaltkreises kann in den ersten Modus umgeschaltet sein. Ferner kann der zweite integrierte Schaltkreis in dieser Ausführungsform mit der zweiten Zeitschrittgröße getaktet sein, und die erste neuromorphe Neuronenvorrichtung des zweiten integrierten Schaltkreises kann in den zweiten Modus umgeschaltet sein, wobei die zweite Zeitschrittgröße ein ganzzahliges Vielfaches der ersten Zeitschrittgröße ist. Die zweite Zeitschrittgröße, die ein ganzzahliges Vielfaches der ersten Zeitschrittgröße ist, kann ermöglichen, den ersten IC mit dem zweiten IC zu synchronisieren, und kann daher die Propagierung der Signale von dem ersten IC zu dem zweiten IC ermöglichen, ohne Engpässe zu generieren.
  • Gemäß einer weiteren Ausführungsform des Verfahrens zum Berechnen des Ausgangswerts des integrierten Schaltkreises kann das Verfahren ferner ein Generieren des Stromeingangssignals mithilfe eines elektrischen Ausgangsstroms einer ersten Baugruppe von Arbeitsspeicherelementen aufweisen, wobei die erste Baugruppe von Arbeitsspeicherelementen Eingangsverbindungen aufweist. Das Verfahren kann ferner ein Anlegen von entsprechenden Spannungen an die jeweiligen Eingangsverbindungen aufweisen, um einzelne elektrische Ströme in den jeweiligen Arbeitsspeicherelementen zu generieren. Das Verfahren kann ferner ein Generieren des elektrischen Ausgangsstroms als eine Summe der einzelnen elektrischen Ströme aufweisen. Diese Ausführungsform kann eine schnelle Berechnung des Skalarprodukts des ersten Vektors und des zweiten Vektors ermöglichen. Die Arbeitsspeicherelemente der ersten Baugruppe können RMEs sein.
  • 1 veranschaulicht einen integrierten Schaltkreis 1 gemäß einem Beispiel des vorliegenden Erfindungsgegenstands. Der integrierte Schaltkreis 1 kann in der Form von analogen oder digitalen CMOS-Schaltungen umgesetzt werden. Der integrierte Schaltkreis 1 kann eine erste neuromorphe Neuronenvorrichtungen 2 aufweisen. Die erste neuromorphe Neuronenvorrichtung 2 (NNA 2) kann einen Eingang 3 und einen Akkumulationsblock 101 mit einer Zustandsvariablen 5 aufweisen, um eine Ableitungsaufgabe auf Grundlage von Eingangsdaten durchzuführen, die eine zeitliche Abfolge aufweisen. Die erste NNA 2 kann in einen ersten Modus und in einen zweiten Modus umgeschaltet werden. Der Akkumulationsblock 101 kann konfiguriert werden, um eine Anpassung der Zustandsvariablen 5 durch Verwenden eines Stromeingangssignals der ersten NNA 2 und einer Abklingfunktion durchzuführen, die für ein Abklingverhalten der Vorrichtung indikativ ist. Die Zustandsvariable 5 kann von einem oder von mehreren vorher empfangenen Eingangssignalen der ersten NNA 2 abhängig sein. Die erste NNA 2 kann konfiguriert werden, um das Stromeingangssignal über den Eingang 3 zu empfangen.
  • Ferner kann die erste NNA 2 konfiguriert werden, um einen Zwischenwert 6 in Abhängigkeit von der Zustandsvariablen 5 zu generieren, wenn die erste NNA 2 in den ersten Modus umgeschaltet ist. Ferner kann die erste NNA 2 konfiguriert werden, um den Zwischenwert 6 in Abhängigkeit von dem Stromeingangssignal und unabhängig von der Zustandsvariablen 5 zu generieren, wenn die erste NNA 2 in den zweiten Modus umgeschaltet ist. Ferner kann die erste NNA 2 konfiguriert werden, um einen Ausgangswert in Abhängigkeit von dem Zwischenwert 6 zu generieren. In einem einfachen Beispiel kann die erste NNA 2 den Ausgangswert gleich dem Zwischenwert 6 festlegen. Gemäß einem weiteren einfachen Beispiel kann die erste NNA 2 den Zwischenwert 6 gleich der Zustandsvariablen 5 festlegen, wenn die erste NNA 2 in den ersten Modus umgeschaltet ist.
  • 6 veranschaulicht einen weiteren integrierten Schaltreis 10 (IC 10) gemäß einem Beispiel des vorliegenden Erfindungsgegenstands. Der integrierte Schaltkreis 10 kann in der Form von CMOS-Schaltungen umgesetzt sein. Die CMOS-Schaltungen können digitale und/oder analoge Schaltungen aufweisen. Der integrierte Schaltkreis 10 kann eine erste neuromorphe Neuronenvorrichtung 12 aufweisen. Die erste neuromorphe Neuronenvorrichtung 12 (NNA 12) kann einen Eingang 13 und einen Akkumulationsblock 401 mit einer Zustandsvariablen 15 aufweisen, um eine Ableitungsaufgabe auf Grundlage von Eingangsdaten durchzuführen, die eine zeitliche Abfolge aufweisen. Die erste NNA 12 kann in einen ersten Modus und in einen zweiten Modus umgeschaltet werden. Der Akkumulationsblock 401 kann konfiguriert werden, um eine Anpassung der Zustandsvariablen 15 durch Verwenden eines Stromeingangssignals der ersten NNA 12 und eine Abklingfunktion durchzuführen, die für ein Abklingverhalten der Vorrichtung indikativ ist. Die Zustandsvariable 15 kann von einem oder von mehreren vorher empfangenen Eingangssignalen der ersten NNA 12 abhängig sein. Die erste NNA 12 kann konfiguriert werden, um das Stromeingangssignal über den Eingang 13 zu empfangen.
  • Ferner kann die erste NNA 12 konfiguriert werden, um einen Zwischenwert 16 in Abhängigkeit von der Zustandsvariablen 15 zu generieren, wenn die erste NNA 12 in den ersten Modus umgeschaltet ist. Ferner kann die erste NNA 12 konfiguriert werden, um den Zwischenwert 16 in Abhängigkeit von dem Stromeingangssignal und unabhängig von der Zustandsvariablen 15 zu generieren, wenn die erste NNA 12 in den zweiten Modus umgeschaltet ist. Ferner kann die erste NNA 12 konfiguriert werden, um einen Ausgangswert 18 der ersten NNA 2 in Abhängigkeit von dem Zwischenwert 16 zu generieren. In einem einfachen Beispiel kann die erste NNA 12 den Ausgangswert 18 gleich dem Zwischenwert 16 festlegen. Gemäß einem weiteren einfachen Beispiel kann die erste NNA 12 den Zwischenwert 16 gleich der Zustandsvariablen 15 festlegen, wenn die erste NNA 12 in den ersten Modus umgeschaltet ist.
  • Die erste NNA 2, 12 kann konfiguriert werden, um einen Datenstrom von Eingangssignalen x(t-n)... x(t-3), x(t-2), x(t-1), x(t) zu empfangen, wie in 2 gezeigt. Diese Eingangssignale können eine Zeitreihe bilden. Das Stromeingangssignal kann das Signal x(t) sein. Das eine bzw. die mehreren vorher empfangenen Eingangssignale können die Signale x(t-n)... x(t-3), x(t-2), x(t-1) sein. Jedes Signal der Eingangssignale kann einem Wert entsprechen, z.B. einer Gleitkommazahl. Die Eingangssignale können elektrische Ströme sein, wenn die erste NNA 2, 12 als eine analoge Schaltung umgesetzt ist. Die Eingangssignale können binärcodierte Zahlen sein, wenn die erste NNA2, 12 in der Form einer digitalen Schaltung umgesetzt ist.
  • 3 veranschaulicht ein neuronales Netzwerk 30. Das neuronale Netzwerk 30 kann eine Eingangsschicht 31 aufweisen, die k Eingänge aufweist, z.B. einen Eingang in1, in2, ... ink. Ferner kann das neuronale Netzwerk 30 eine erste verborgene Schicht 32 aufweisen, die p Neuronen aufweist, z.B. ein Neuron n11, n12, n13 ... n1p. Ferner kann das neuronale Netzwerk 30 eine zweite verborgene Schicht 33 aufweisen, die m Neuronen aufweist, z.B. ein Neuron n21, n22, n23 ... n2m. Die erste NNA 2, 12 kann eines der Neuronen einer tatsächlichen Schicht des Netzwerks simulieren, wobei die erste NNA 2, 12 Ausgangswerte von Neuronen einer vorherigen Schicht des Netzwerks 30 empfangen kann. Die vorherige Schicht kann die erste verborgene Schicht 32 sein. Die tatsächliche Schicht kann die zweite verborgene Schicht 33 sein.
  • Das neuronale Netzwerk 30 kann konfiguriert werden, um Eingangssignale des neuronalen Netzwerks 30 zu verarbeiten, wie zum Beispiel die Eingangssignale in1(t), in2(t), .... , ink(t). Zum Beispiel kann jedes der Signale in1(t-n)..., in1(t-1), in1(t), in2(t-n)..., in2(t-1), in2(t), ink(t-n)..., ink(t-1), ink(t) indikativ für ein jeweiliges Pixel eines Bildes sein, das an einem jeweiligen Zeitschritt t-n,....t-1, t an den entsprechenden Eingängen in1, in2, ..., ink des neuronalen Netzwerks 30 eingegeben werden kann. Im Folgenden werden die Eingangssignale des neuronalen Netzwerks 30 als Eingangssignale des neuronalen Netzwerks 30 bezeichnet, und die Eingangssignale der ersten NNA 2, 12 werden als Eingangssignale bezeichnet.
  • Jedes Signal der Eingangssignale x(t-n)... x(t-3), x(t-2), x(t-1), x(t) kann durch den IC 1, 10 so generiert werden, dass diese Eingangssignale jeweils gleich einem Skalarprodukt eines ersten Vektors und eines zweiten Vektors sein können. Die Einträge des ersten Vektors können jeweils einen Ausgangswert von einem der Neuronen, z.B. den Neuronen n11, n12, n13 ... n1p einer vorherigen Schicht des neuronalen Netzwerks 30 darstellen, z.B. der ersten verborgenen Schicht 32 an einem jeweiligen Zeitschritt t-n, ..., t-3, t-2, t-1, t. Diese Ausgangswerte können Gleitkommazahlen sein und können mit out11(t-n)... out11 (t-3), out11 (t-2), out11 (t-1), out11 (t) als die Ausgangswerte des ersten Neurons n11 der vorherigen Schicht, mit out12(t-n)... out12 (t-3), out12 (t-2), out12 (t-1), out12 (t) als die Ausgangswerte des zweiten Neurons n12 der vorherigen Schicht, mit out13(t-n)... out13 (t-3), out13 (t-2), out13 (t-1), out13 (t) als die Ausgangswerte des dritten Neurons n13 der vorherigen Schicht und mit outlp(t-n)... outlp (t-3), outlp (t-2), out1p (t-1), out1p (t) als die Ausgangswerte des p-ten Neurons n1p der vorherigen Schicht an dem jeweiligen Zeitschritt t-n, ..., t-3, t-2, t-1, t bezeichnet werden.
  • Einträge des zweiten Vektors können jeweils einen Wert einer Gewichtung darstellen. z.B. w11, w12, w13, ..., w1p, der indikativ für eine Stärke einer Verbindung zwischen dem Neuron, das die erste NNA 2, 12 simulieren kann, und einem entsprechenden Neuron der vorherigen Schicht, z.B. dem Neuron n11, n12, n13, ..., n1p ist. Analog können die Einträge des zweiten Vektors, wenn die erste NNA 2, 12 ein Neuron n2i der tatsächlichen Schicht simulieren kann, jeweils ein Wert einer Gewichtung wi1, wi2, wi3, ..., wip sein.
  • In einem Beispiel kann die erste NNA 2, 12 ein erstes Neuron der tatsächlichen Schicht simulieren, z.B. das Neuron n21, und kann danach ein zweites Neuron der tatsächlichen Schicht simulieren, z.B. das Neuron n22 usw., und kann ein m-tes Neuron der tatsächlichen Schicht simulieren, z.B. ein Neuron n2m.
  • Wenn die erste NNA 2, 12 das erste Neuron n21 der zweiten verborgenen Schicht 33 simulieren kann, kann das Stromeingangssignal
    x(t) = w11* out11 (t) + w12* out12 (t) + w13* out13 (t) + ... + w1p* outlp t) entsprechen. Dementsprechend kann eines der vorher empfangenen x(t-n)-Eingangssignale x(t-n) = w11* out11 (t-n) + w12* out12 (t-n) + w13* out13 (t-n) ... + w1p* outlp (t-n) sein. Selbstverständlich kann einer der Ausgangswerte der Neuronen der vorherigen Schicht gleich null sein. Dies kann häufig vorkommen, falls die Neuronen der vorherigen Schicht gepulste Neuronen sind.
  • Gemäß einem weiteren Beispiel kann die erste NNA 2, 12 eines der Neuronen der ersten verborgenen Schicht 32, z.B. das Neuron n11, simulieren. In diesem Fall kann das Stromeingangssignal x(t) = w011* in1 (t) + w012* in2 (t) + w013* in3 (t) + ... + w01k* ink (t) sein. Dementsprechend kann eines der vorher empfangenen x(t-n)-Eingangssignale x(t-n) = w011* in1 (t-n) + w012* in2 (t-n) + w013* in3 (t-n) ... + w01k* ink (t-n) sein.
  • In einem Beispiel kann die erste NNA 2 ferner einen Ausgangsgenerierungsblock 103 aufweisen. Zum Generieren des Ausgangswerts der ersten NNA 2 gemäß dem vorliegenden Erfindungsgegenstand umfasst die NNA 2 die Zustandsvariable 5, die im Folgenden auch als zeitabhängige Zustandsvariable s(t), s(t-1), ..., s(t-n) bezeichnet wird. Die Zustandsvariable s(t) kann am Zeitschritt (t) ein Membranpotential darstellen, das zum Definieren des Ausgangswerts an dem Zeitschritt verwendet werden kann. Die Zustandsvariable s(t) kann eine Stromaktivierungsebene der ersten NNA 2 angeben. Eingehende Impulse in der Form von einzelnen Produkten w11* out11 (t), w12* out12 (t), w13* out13 (t), ... oder w1p* outlp (t) können diese Aktivierungsebene erhöhen und anschließend im Lauf der Zeit abklingen oder einen Impuls abfeuern. Dies kann unabhängig von der ersten NNA 2 erfolgen, die in den ersten oder den zweiten Modus umgeschaltet ist. Die einzelnen Produkte können durch eingehende elektrische Ströme oder digitale Werte an dem Eingang 3 generiert werden.
  • Zum Beispiel kann für jedes empfangene Eingangssignal x(t-n)... x(t-3), x(t-2), x(t-1), x(t) eine jeweilige Zustandsvariable s(t-n)... s(t-3), s(t-2), s(t-1), s(t) durch den Akkumulationsblock 101 berechnet werden. Der Ausgangsgenerierungsblock 103 kann eine Aktivierungsfunktion 102 aufweisen, um den Ausgangswert der ersten NNA2 am Zeitschritt (t) zu berechnen, im Folgenden auch as y(t) bezeichnet. Die berechnete s(t) kann durch den Akkumulationsblock 101 als der Zwischenwert 6 für den Ausgangsgenerierungsblock 103 bereitgestellt oder ausgegeben werden, wenn die erste NNA 2 in den ersten Modus umgeschaltet ist. Gemäß einer Ausführungsform kann das Stromeingangssignal x(t) an den Ausgangsgenerierungsblock 103 übergeben werden, wenn die erste NNA 2 in den zweiten Modus umgeschaltet ist.
  • In einer Ausführungsform kann die erste NNA 2 eine erste umschaltbare Schaltung 106 aufweisen. Die erste umschaltbare Schaltung 106 kann konfiguriert werden, um in einem ersten Modus oder in einem zweiten Modus ausgeführt zu werden. Die erste umschaltbare Schaltung 106 kann konfiguriert werden, um den Zwischenwert 6 in Abhängigkeit von der Zustandsvariablen s(t) zu generieren, wenn die erste umschaltbare Schaltung in den ersten Modus umgeschaltet ist. Ferner kann die erste umschaltbare Schaltung 106 konfiguriert werden, um den Zwischenwert 6 in Abhängigkeit von dem Stromeingangssignal x(t) und unabhängig von der Zustandsvariablen zu generieren, wenn die erste umschaltbare Schaltung in den zweiten Modus umgeschaltet ist.
  • In einem Beispiel kann die erste umschaltbare Schaltung 106 konfiguriert werden, um den Zwischenwert 6 in Abhängigkeit von dem Stromeingangssignal x(t) und Parameterwerten 7 zu generieren, die von einem Batch-Normalisierungsalgorithmus eines Schulungsdatensatzes zum Schulen der ersten neuromorphen Neuronenvorrichtung abgeleitet wurden, wenn die erste umschaltbare Schaltung in den zweiten Modus umgeschaltet ist.
  • Der Ausgangsgenerierungsblock 103 kann den Ausgangswert y(t) in Abhängigkeit von dem Wert der Zustandsvariablen s(t) generieren, wenn die erste NNA 2 in den ersten Modus umgeschaltet ist. Der Ausgangsgenerierungsblock 103 kann die Aktivierungsfunktion 102 zum Generieren des Ausgangswerts y(t) in Abhängigkeit von dem Wert der Zustandsvariablen s(t) verwenden, wenn die erste NNA 2 in den ersten Modus umgeschaltet ist. Die Aktivierungsfunktion 102 kann eine Schrittfunktion, eine Sigmoid-Funktion oder eine Rectified-Linear-Aktivierungsfunktion sein. In einem Beispiel kann die erste NNA 2 vorbelastet sein, da sie einen zusätzlichen Eingang mit einem konstanten Wert b haben kann, wobei der konstante Wert b (Abweichungswert) berücksichtigt werden kann. Zum Beispiel kann der Abweichungswert b zum Bestimmen des Ausgangswerts y(t) verwendet werden, wie aus y(t) = h(s(t) + b) folgt, wenn die erste NNA 2 in den ersten Modus umgeschaltet ist, wobei h die Aktivierungsfunktion 102 sein kann. Dies kann eine verbesserte Leistung der ersten NNA 2 ermöglichen.
  • Somit kann für jedes empfangene Signal x(t) des Datenstroms x(t-n)... x(t-3), x(t-2), x(t-1), x(t) die erste NNA 2 so konfiguriert werden, dass sie gemäß dem vorliegenden Erfindungsgegenstand die Zustandsvariable s(t) durch Verwenden des Akkumulationsblocks 101 und einen Ausgangswert y(t) durch Verwenden des Ausgangsgenerierungsblocks 103 bereitstellt, wenn die erste NNA 2 in den ersten Modus umgeschaltet ist. Die Zustandsvariable s(t) kann in diesem Beispiel als der Zwischenwert 6 betrachtet werden. Der Zwischenwert 6, in diesem Beispiel die Zustandsvariable s(t), kann in Abhängigkeit von dem Stromeingangssignal (x(t) und der Zustandsvariablen s(t-1) berechnet werden. Wenn der Wert b gleich null ist, kann der Ausgangswert y(t) gleich der Zustandsvariablen s(t) sein, wenn die erste NNA 2 in den ersten Modus umgeschaltet ist.
  • Zum Berechnen der Zustandsvariablen s(t) durch den Akkumulationsblock 101 kann eine Initialisierung der erste NNA2 durchgeführt werden. Die Initialisierung kann so durchgeführt werden, dass vor einem Empfangen irgendeines Eingangssignals an dem Eingang 3 der ersten NNA 2 die Zustandsvariable s(0) und die Ausgabevariable y(0) auf jeweilige vordefinierte Werte initialisiert werden können. Dies kann eine Umsetzung aufgrund von Rückmeldungen von früheren Zuständen der ersten NNA 2 wie folgt ermöglichen.
  • Der Akkumulationsblock 101 kann konfiguriert werden, um die Zustandsvariable s(t) unter Berücksichtigung eines vorherigen Werts der Zustandsvariablen, z.B. s(t-1), und einen vorherigen Ausgangswert, z.B. y(t-1), zu berechnen Die vorherigen Werte der Zustandsvariablen und des Ausgangswerts s(t-1) und y(t-1) können die Werte sein, die durch die erste NNA 2 für ein vorher empfangenes Signal x(t-1) bestimmt wurden, wie hierin beschrieben. Zum Beispiel kann der Akkumulationsblock 101 konfiguriert werden, um die Zustandsvariable s(t) für das empfangene Signal x(t) wie folgt zu berechnen: s(t) = g(x(t) + s(t - 1) ⊙ (1 - y(t - 1))), wobei g eine weitere Aktivierungsfunktion 104 sein kann. Die weitere Aktivierungsfunktion 104 kann in dem Akkumulationsblock 101 umgesetzt werden. Für das allererste empfangene Signal x(t-n) können initialisierte Werte s(t-n) = s(0) und y(t-n) = y(0) zum Berechnen der Zustandsvariablen s(t-n+1) verwendet werden. Die Formel s(t - 1) ⊙ (1 - y(t - 1)) ist eine Anpassung der Zustandsvariablen 5.
  • Das empfangene Signal x(t) kann einen Strom in die erste NNA 2 induzieren. Abhängig von dem Strompegel kann die Zustandsvariable 5 abklingen oder abhängig von einer Zeitkonstante τ der ersten NNA 2 fallen. Dieses Abklingen kann zum Beispiel durch den Akkumulationsblock 101 für ein Berechnen der Anpassung der Zustandsvariablen 5 berücksichtigt werden. Zu diesem Zweck kann die Anpassung von s(t-1) wie folgt bereitgestellt werden: l(τ) ⊙ s(t - 1) ⊙ (1 - y(t - 1)), wobei l(τ) eine Korrekturfunktion ist, die das Abklingverhalten der Zustandsvariablen s(t) mit der Zeitkonstante τ berücksichtigt. Somit kann der Akkumulationsblock 101 zum Berechnen der s(t) wie folgt konfiguriert werden: s(t) = g(x(t) + l(τ) ⊙ s(t - 1) ⊙ (1 - y(t - 1))), wobei g die weitere Aktivierungsfunktion 104 ist. Die Werte von l(τ) können zum Beispiel in einem Arbeitsspeicher (nicht gezeigt) der ersten NNA 2 gespeichert werden. Zum Beispiel kann die Korrekturfunktion definiert werden wie folgt: l ( τ ) = ( 1 Δ T τ ) ,
    Figure DE112021005715T5_0001
    wobei ΔT die Probenahmezeit ist. Die Probenahmezeit kann die Zeitdifferenz zwischen den Zeitschritten (t) und (t-1) oder (t-i) und (t-i-1) sein.
  • Gemäß einer Ausführungsform kann der Akkumulationsblock 101 einen ersten Abklingfunktionsblock (DFB) (Decay Function Block) 235 aufweisen, wie in 4 veranschaulicht, um die Anpassung der Zustandsvariablen 5 durchzuführen. Der erste DFB 235 kann die Abklingfunktion verwirklichen. Der erste DFB 235 kann die Eingangssignale über den Eingang 3 empfangen und verarbeitet die Eingangssignale. Zum Beispiel kann der erste DFB 235 für jedes empfangene Eingangssignal einen entsprechenden Wert des empfangenen Eingangssignals bis zur Zustandsvariablen 5 summieren. Die Zustandsvariable 5 kann als eine Membran-Zustandsvariable betrachtet werden, z.B. als eine Membranpotentialvariable des ersten DFB 235. In einem Beispiel kann der erste DFB 235 einen neuen Wert der Zustandsvariablen s(t) bei jedem neuen Zeitschritt in Abhängigkeit von dem Stromeingangssignal x(t) und des einen oder der mehreren vorher empfangenen Eingangssignale berechnen, wie zum Beispiel x(t-1), ..., x(t-n).
  • Der erste DFB 235 weist eine Auswahleinheit 305, einen Addierer 302, eine Synapseneinheit 309, einen Ausgang 310 und einen Arbeitsspeicher 303 auf. Der Arbeitsspeicher 303 kann eine vorgegebene Anzahl n+1 der Eingangssignale speichern. Zum Beispiel kann der Arbeitsspeicher 303 die jüngsten n+1 Eingangssignale speichern. Die Eingangssignale können in dem Arbeitsspeicher 303 gemäß dem FIFO- (First In First Out) Prinzip gespeichert werden. Wenn daher das Stromeingangssignal x(t) von dem ersten DFB 235 empfangen werden kann, kann das Eingangssignal, das verglichen mit allen Eingangssignalen zuerst empfangen wurde, z.B. x(t-n-1), in dem Arbeitsspeicher 303 gelöscht werden.
  • Die Eingangssignale können die Synapseneinheit 309 durchlaufen. Die Auswahleinheit 305 kann für jedes empfangene Eingangssignal x(t-n)... x(t-3), x(t-2), x(t-1), x(t), im Folgenden als xi bezeichnet, einen Gewichtungswert (oder Modulierungsausdruck) ai auswählen, der einer Ankunftszeit des empfangenen Eingangssignals xi entspricht. Die Auswahleinheit 305 kann den entsprechenden Gewichtungswert des jeweiligen Eingangssignals xi so auswählen, dass die neueren empfangenen Eingangssignale den Gewichtungswerten mit einem höheren Wert zugewiesen werden. Dadurch kann die Abklingfunktion verwirklicht werden.
  • Die Auswahleinheit kann eine Multiplikation des jeweiligen Eingangssignals xi und seines entsprechenden ausgewählten Gewichtungswerts ai durchführen. Die Auswahleinheit 305 kann das Ergebnis jeder Multiplikation ausgeben. Wie bei jedem neuen Zeitschritt können die Gewichtungswerte erneut jedem der gespeicherten Eingangswerte zugewiesen werden, kann die Auswahleinheit 305 bei jedem Zeitschritt n+1 Multiplikationen durchführen.
  • Der Addierer 302 kann konfiguriert werden, um die einzelnen Ergebnisse jeder Multiplikation xi * ai zu addieren, um eine Summe dieser Multiplikationen zu generieren. Diese Summe kann gleich dem Stromwert der Zustandsvariablen sein. Der Stromwert der Zustandsvariablen kann s(t) sein.
  • Der erste DFB 235 kann ferner einen Komparator 313 aufweisen. Der Komparator 313 kann konfiguriert werden, um zu bestimmen, ob der Stromwert der Zustandsvariablen 5 größer oder gleich einem Schwellenwert ist. Der Schwellenwert kann zum Beispiel von einer Einheit (nicht gezeigt) des ersten DFB 235 empfangen werden oder kann in dem Komparator 313 gespeichert werden. Der erste DFB 235 kann konfiguriert werden, um einen Impuls abzugeben, wenn der Stromwert der Zustandsvariablen 5 größer oder gleich einem Schwellenwert ist. Der erste DFB 235 kann einen Impuls generieren, indem am Ausgang 310 ein Ausgangssignal ausgegeben wird. Das Ausgangssignal kann ein elektrischer Impuls sein, sofern der IC 1 in der Form einer analogen Schaltung umgesetzt ist. Das Ausgangssignal kann ein binärer Wert, z.B. „1“, oder eine digitale Zahl sein, sofern der IC 1 in der Form einer digitalen Schaltung umgesetzt ist.
  • Der erste DFB 235 kann ferner eine Rücksetzeinheit 311 aufweisen. Die Rücksetzeinheit 311 kann so konfiguriert werden, dass der Stromwert der Zustandsvariablen 5 auf einen Rücksetzwert gesetzt wird, wenn der erste DFB 235 einen Impuls abgibt. Der Rücksetzwert kann in dem ersten DFB 235 gespeichert werden. Zum Beispiel kann der Rücksetzwert gleich null sein.
  • Der erste DFB 235 kann ferner eine Gewichtungseinheit 307 aufweisen, die konfiguriert ist, um die Gewichtungswerte ai für die Auswahleinheit 305 bereitzustellen. Die Gewichtungseinheit 307 kann zum Beispiel eine Lookup-Tabelle aufweisen, die die Gewichtungswerte ai in Verbindung mit der Ankunftszeit aufweist. In einem Beispiel kann die Gewichtungseinheit 307 die Gewichtungswerte ai so bereitstellen, dass sie auf exponentielle oder logarithmische Weise in Bezug auf eine Zeitdifferenz abnehmen. Die Auswahleinheit 305 kann konfiguriert werden, um eine jeweilige Zeitdifferenz für jedes empfangene Eingangssignal zu berechnen. Die Auswahleinheit 305 kann einen Zeitgeber zum Berechnen der jeweiligen Zeitdifferenzen aufweisen.
  • Das Ausgangssignal des ersten DFB 235 kann der Zwischenwert 6 sein. In diesem Beispiel kann der Zwischenwert 6 in Abhängigkeit von dem Stromwert der Zustandsvariablen 5 generiert und an den Ausgabegenerierungsblock 103 übergeben werden.
  • 5 veranschaulicht eine weitere beispielhafte Umsetzung eines Akkumulationsblocks 201 der ersten NNA 2 gemäß dem vorliegenden Erfindungsgegenstand. 5 zeigt den Zustand des Akkumulationsblocks 201 nach einem Empfangen des Signals x(t).
  • Der Akkumulationsblock 201 weist eine Addiererschaltung 204, eine Multiplikationsschaltung 211 und eine Aktivierungsschaltung 212 auf. Die Multiplikationsschaltung 211 kann zum Beispiel ein Reset-Gate sein. Der Akkumulationsblock 201 kann konfiguriert werden, um an dem Verzweigungspunkt 214 die berechnete Zustandsvariable 5 parallel zu dem Ausgabegenerierungsblock 103 und der Multiplikationsschaltung 211 auszugeben. Die Verbindung 209 zwischen dem Verzweigungspunkt 214 und der Multiplikationslogik 211 wird als eine gestrichelte Linie gezeigt, um anzugeben, dass die Verbindung 209 innerhalb einer Zeitverzögerung liegt. Das heißt, zu dem Zeitschritt (t), an dem die erste NNA 2 das empfangene Eingangssignal verarbeitet, um die entsprechenden s(t) und y(t) zu generieren, kann die Verbindung 209 einen Wert eines vorherigen Zustands der Zustandsvariablen 5 übertragen, d.h. den Wert von s(t-1).
  • Gemäß diesem Beispiel kann der Ausgangsgenerierungsblock 103 den Ausgangswert y(t) in Abhängigkeit von der Zustandsvariablen s(t) generieren, wenn die erste NNA 2 in den ersten Modus umgeschaltet ist. Der Ausgangsgenerierungsblock 103 kann den Ausgangswert y(t) der ersten NNA 2 an einem Verzweigungspunkt 217 parallel zu einem Ausgang der ersten NNA 2 und zu einem Reset-Modul 207 der ersten NNA 2 bereitstellen oder ausgeben. Das Reset-Modul 207 kann konfiguriert werden, um ein Reset-Signal aus dem empfangenen Ausgangswert zu generieren und das Reset-Signal für die Multiplikationslogik 211 bereitzustellen. Zum Beispiel kann das Reset-Modul für einen vorgegebenen Ausgangswert y(t-1) ein Reset-Signal generieren, das für einen Wert 1-y(t-1) indikativ ist. In diesem Beispiel kann der Ausgangswert ein binärer Wert sein, z.B. „0“ oder „1“. Die Verbindung 210 wird als eine gestrichelte Linie gezeigt, um anzugeben, dass die Verbindung 210 eine Zeitverzögerung aufweist. Das heißt, zu dem Zeitpunkt, an dem die erste NNA 2 ein empfangenes Signal x(t) verarbeitet, um die entsprechenden s(t) und y(t) zu generieren, kann die Verbindung 210 einen vorherigen Ausgangswert y(t-1) übertragen. Die Verbindungen 209 und 210 können eine Rückmeldungsfunktion an die erste NNA 2 aktivieren. Insbesondere kann die Verbindung 209 eine Selbstschleifen-Verbindung in dem Akkumulationsblock sein, und die Verbindung 210 kann eine Gating-Verbindung zum Durchführen der Zustandsrücksetzung aktivieren.
  • Nach einem Empfangen des Zustandsvariablenwerts s(t-1) und des Ausgangswerts y(t-1) kann die Multiplikationslogik konfiguriert werden, um eine Anpassung wie folgt zu berechnen: l(τ) ⊙ s(t - 1) ⊙ (1 - y(t - 1)). Die durch die Multiplikationsschaltung 211 berechnete Anpassung wird ausgegeben und der Addiererschaltung 204 zugeführt. Die Addiererschaltung 204 kann konfiguriert werden, um die Anpassung von der Multiplikationsschaltung 211 und das Eingangssignal x(t) von dem Eingang 3 zu empfangen. Die Addiererschaltung 204 kann ferner konfiguriert werden, um die Summe der empfangenen Anpassung und das Signal wie folgt zu berechnen: x(t) + l(τ) ⊙ s(t - 1) ⊙ (1 - y(t - 1)). Diese Summe wird von der Addiererschaltung 204 für die Aktivierungsschaltung 212 bereitgestellt oder ausgegeben. Die Aktivierungsschaltung 212 kann konfiguriert werden, um die berechnete Summe von der Addiererschaltung 204 zu empfangen. Die Aktivierungsschaltung 212 kann konfiguriert werden, um ihre Aktivierungsfunktion auf die berechnete Summe anzuwenden, um die Zustandsvariable 5 wie folgt zu berechnen: s(t) = g(x(t) + l(τ) ⊙ s(t - 1) ⊙ (1 - y(t - 1))). Die sich daraus ergebende Zustandsvariable s(t) kann parallel an den Ausgabegenerierungsblock 103 und an die Multiplikationsschaltung 211 ausgegeben werden (das Ausgeben an die Multiplikationsschaltung 211 kann für ein nächstes empfangenes Signal x(t+1) nützlich sein. Der generierte Ausgangswert y(t) kann an das Reset-Modul 207 zur Verwendung für ein nächstes empfangenes Signal x(t+1) ausgegeben werden.
  • Unter erneuter Bezugnahme auf 6 weist der Akkumulationsblock 401 die Zustandsvariable 15 auf, die im Folgenden auch als zeitabhängige Zustandsvariable 15 s(t), s(t-1), ..., s(t-n) bezeichnet wird. Die Zustandsvariable 15 s(t) kann am Zeitschritt (t) ein Membranpotential darstellen, das zum Definieren des Ausgangswerts 18 der ersten NNA12 an diesem Zeitschritt (t) verwendet werden kann. Die Zustandsvariable 15 s(t) kann eine Stromaktivierungsebene der ersten NNA 12 angeben. Eingehende Impulse in der Form von einzelnen Produkten w11* out11 (t), w12* out12 (t), w13* out13 (t), ... oder w1p* out1p (t) können diese Aktivierungsebene erhöhen und anschließend im Lauf der Zeit abklingen oder einen Impuls abfeuern. Gemäß diesem Beispiel ist dies nur möglich, wenn die erste NNA 2 in den ersten Modus umgeschaltet ist. Die einzelnen Produkte können durch eingehende elektrische Ströme oder digitale Werte an dem Eingang 13 abhängig davon generiert werden, ob der IC 10 in der Form von analogen oder digitalen Schaltungen umgesetzt ist.
  • Zum Beispiel kann für jedes empfangene Eingangssignal x(t-n)... x(t-3), x(t-2), x(t-1), x(t) eine jeweilige Zustandsvariable 15 s(t-n)... s(t-3), s(t-2), s(t-1), s(t) durch den Akkumulationsblock 401 berechnet werden. Gemäß diesem Beispiel kann der IC 10 eine erste umschaltbare Schaltung 402 aufweisen. Die erste umschaltbare Schaltung 402 kann konfiguriert werden, um den Zwischenwert 16 in Abhängigkeit von der Zustandsvariablen 15 s(t-1) eines vorherigen Zeitschritts und den Stromeingangswert x(t) zu generieren, wenn die erste neuromorphe Neuronenvorrichtung in den ersten Modus umgeschaltet ist. Ferner kann die erste umschaltbare Schaltung 402 konfiguriert werden, um den Zwischenwert 16 in Abhängigkeit von dem Stromeingangssignal x(t) und unabhängig von der Zustandsvariablen 15 zu generieren, wenn die erste neuromorphe Neuronenvorrichtung in den zweiten Modus umgeschaltet ist.
  • Gemäß dem in 6 gezeigten Beispiel kann die erste umschaltbare Schaltung 402 eine vereinte Multiplikations- und Additions-Schaltung 403 (FMAC 403) (Fused Multiplication and Addition Circuit) aufweisen. Ferner kann die FMAC 403 einen ersten Eingang 411, einen zweiten Eingang 412 und einen dritten Eingang 413 aufweisen. Die FMAC 403 kann konfiguriert werden, um einen Ausgangswert der FMAC 403 (output_FMAC) abhängig von einem Wert, der auf den ersten Eingang 411 (input_1_FMAC) angewendet wird, einem Wert, der auf den zweiten Eingang 412 (input_2_FMAC) angewendet wird, und einem Wert, der auf den dritten Eingang 413 (input_3_FMAC) angewendet wird, gemäß der folgenden Gleichung zu berechnen:
    • output_FMAC = input_1_FMAC + input_2_FMAC* input_3_FMAC. Ein Verwenden einer vereinte Multiplikations- und Additions-Schaltung ist von Vorteil, da ein derartiger Schaltungstyp eine standardmäßige Schaltung ist und mit sehr geringen Kosten und sehr geringem Platzbedarf hergestellt werden kann. Außerdem kann eine derartige standardmäßige Schaltung in Bezug auf Wärmeentwicklung, Materialermüdung und Generierung von Überspannungen optimiert werden. Dies gilt für eine digitale und analoge Umsetzung der FMAC 403 auf dem IC 10.
  • Die erste umschaltbare Schaltung 402 kann einen Schalter 404, einen ersten Eingang 421, einen zweiten Eingang 422, einen dritten Eingang 423, einen vierten Eingang 424 und einen fünften Eingang 425 aufweisen.
  • Ferner kann die erste NNA 12 eine Eingangskonvertierungsschaltung 405 aufweisen, wobei die Eingangskonvertierungsschaltung konfiguriert ist, um das Stromeingangssignal x(t) durch Verwenden einer Skalierung zu skalieren. Die Skalierung kann von einem Bereich von möglichen Ausgangswerten eines Analog-Digital-Wandlers (ADC) 500 abhängig sein, und kann von einem Modus der ersten NNA 12 unabhängig sein, d.h. wenn sie in den ersten oder in den zweiten Modus umgeschaltet ist. Die Eingangskonvertierungsschaltung 405 kann eine vereinte Multiplikations- und Additions-Schaltung 407 aufweisen, um die Skalierung des Stromeingangssignals x(t) abhängig von Skalierungswerten 408 durchzuführen, die den Bereich des ADC 500 definieren. Die Skalierungswerte können von dem ADC 500 an die erste NNA 12 gesendet werden, oder sie können als ein festgelegter Wert in einem Arbeitsspeicher des IC 10 bereitgestellt werden. Die NNA 12 kann auch eine weitere Eingangskonvertierungsschaltung 409 aufweisen. Die weitere Eingangskonvertierungsschaltung 409 kann konfiguriert werden, um einen ganzzahligen Wert des Stromeingangssignals x(t) in einen Gleitkommawert des Stromeingangssignals x(t) zu konvertieren.
  • Die erste NNA 12 kann konfiguriert werden, um das konvertierte und skalierte Eingangssignal x(t) zu dem ersten Eingang 421 der ersten umschaltbaren Schaltung 402 unabhängig von dem Modus der ersten NNA 12 zu übertragen. Daher kann das konvertierte und skalierte Eingangssignal x(t) auf den fünften Eingang 425 angewendet werden.
  • In einem Beispiel kann ein erster Batch-Normalisierungsparameter 431 auf den zweiten Eingang 422 angewendet werden, und ein zweiter Batch-Normalisierungsparameter 432 kann auf den dritten Eingang 423 angewendet werden. Der IC 10 kann konfiguriert werden, um den ersten Batch-Normalisierungsparameter 431 zu dem zweiten Eingang 422 zu übertragen, und um den zweiten Batch-Normalisierungsparameter 432 zu dem dritten Eingang 423 zu übertragen. Der erste und der zweite Batch-Normalisierungsparameter 431, 432 kann aus einem Batch-Normalisierungsansatz erhalten werden, der Schulungsdatensätze zum Schulen des neuronalen Netzwerks 30 verwendet.
  • In einem Beispiel kann ein Abklingfaktor (dec_fac) auf den vierten Eingang 424 angewendet werden. Der Abklingfaktor 433 kann in einem Beispiel konstant sein. In einem weiteren Beispiel kann der Abklingfaktor 433 im Lauf der Zeit variieren. Der Abklingfaktor 433 kann sich von Zeitschritt zu Zeitschritt in Abhängigkeit von einer Taktfrequenz ändern, mit der der IC 10 getaktet wird. Zum Beispiel kann der Abklingfaktor im Lauf der Zeit abhängig von der Korrekturfunktion l ( τ ) = ( 1 Δ T τ )
    Figure DE112021005715T5_0002
    variieren. Ein Zeitschritt ΔT kann gleich einem Zeitintervall zwischen zwei Ausführungen IC 10 sein. Abhängig von der Taktfrequenz kann sich die Zeitschrittgröße ΔT ändern.
  • In einem Beispiel kann ein Wert der Zustandsvariablen 15 s(t-1) des vorherigen Zeitschritts auf den fünften Eingang 425 angewendet werden. Der IC 10 kann konfiguriert werden, um den Wert der Zustandsvariablen 15 s(t-1) des vorherigen Zeitschritts von einem ersten Arbeitsspeicherelement 419 der ersten NNA 12 zu dem fünften Eingang 425 zu übertragen.
  • Der erste IC 10 kann ferner eine Konfigurationsschaltung 501 aufweisen. Die Konfigurationsschaltung 501 kann konfiguriert werden, um die erste NNA 12 in den ersten Modus oder in den zweiten Modus umzuschalten.
  • In einem Beispiel kann die Konfigurationsschaltung 501 konfiguriert werden, um den Schalter 404 in einen ersten Modus umzuschalten. Der Schalter 404 kann den ersten Eingang 421 der umschaltbaren Schaltung 402 mit dem ersten Eingang 411 der FMAC 403, den vierten Eingang 424 der umschaltbaren Schaltung 402 mit dem zweiten Eingang der FMAC 403 und den fünften Eingang 425 der umschaltbaren Schaltung 402 mit dem dritten Eingang 413 der FMAC 403 verbinden, wenn der Schalter 404 in den ersten Modus umgeschaltet ist. Somit kann das konvertierte und skalierte Eingangssignal x(t) in dem ersten Modus des Schalters 404 auf den ersten Eingang 411 der FMAC 403 angewendet werden, der Abklingfaktor 433 kann auf den zweiten Eingang 412 der FMAC 403 angewendet werden, und der Wert der Zustandsvariablen 15 s(t-1) des vorherigen Zeitschritts kann auf den dritten Eingang 413 der FMAC 403 angewendet werden,
  • Somit kann die FMAC 403 den Ausgangswert der FMAC 403 gemäß der folgenden Gleichung generieren: output_FMAC = x(t) + dec_fac * s(t-1), wenn der Schalter 404 in den ersten Modus umgeschaltet ist.
  • Ferner kann die Konfigurationsschaltung 501 konfiguriert werden, um den Schalter 404 in einen zweiten Modus umzuschalten. Der Schalter 404 kann den zweiten Eingang 432 der umschaltbaren Schaltung 402 mit dem ersten Eingang 411 der FMAC 403, den ersten Eingang 421 der umschaltbaren Schaltung 402 mit dem zweiten Eingang 412 der FMAC 403 und den dritten Eingang 433 der umschaltbaren Schaltung 402 mit dem dritten Eingang 413 der FMAC 403 verbinden, wenn der Schalter 404 in den zweiten Modus umgeschaltet ist. Somit kann der erste Batch-Normalisierungswert 431 (batch1) in dem zweiten Modus des Schalters 404 auf den ersten Eingang 411 der FMAC 403 angewendet werden, das konvertierte und skalierte Eingangssignal x(t) kann auf den zweiten Eingang 412 der FMAC 403 angewendet werden, und der zweite Batch-Normalisierungswert 432 (batch2) kann auf den dritten Eingang 413 der FMAC 403 angewendet werden.
  • Somit kann die FMAC 403 den Ausgangswert der FMAC 403 gemäß der folgenden Gleichung generieren: output_FMAC = batch1 + x(t) * batch2, wenn der Schalter 404 in den zweiten Modus umgeschaltet ist.
  • Der Ausgangswert der FMAC 403 kann der von dem Modus des Schalters 404 unabhängige Zwischenwert 16 sein.
  • Außerdem kann der IC 10 eine Aktivierungseinheit 450 aufweisen. Die Aktivierungseinheit 450 kann konfiguriert werden, um eine Aktivierungsfunktion anzuwenden, wie beispielweise eine Sigmoid-, hyperbolische Tangens- oder Rectified-Linear-Funktion. Eine besonders vorteilhafte unkomplizierte Umsetzung eines Schalters der Aktivierungseinheit 450 kann eine Rectified Linear Unit sein. Daher kann die Aktivierungseinheit 450 im Folgenden auch als ReLU 450 bezeichnet werden. Die ReLU 450 kann konfiguriert werden, um einen weiteren Zwischenwert 17 in Abhängigkeit von dem Zwischenwert 16 zu generieren. Die ReLU 450 kann den weiteren Zwischenwert 17 generieren, wenn die erste NNA 12 in den ersten Modus umgeschaltet ist. In einem weiteren Beispiel kann die ReLU 450 den weiteren Zwischenwert 17 unabhängig von dem Modus der ersten NNA 12 generieren. Die ReLU 450 kann den weiteren Zwischenwert 17 so generieren, dass der weitere Zwischenwert 17 dem Zwischenwert 16 (int_val) entspricht, wenn der Zwischenwert 16 größer oder gleich null ist, und so, dass der weitere Zwischenwert 17 gleich null ist, wenn der Zwischenwert 16 kleiner als null ist.
  • In einem Beispiel kann die ReLU 450 vorbelastet sein, da sie einen zusätzlichen Eingang mit einem konstanten Wert c haben kann, wobei der konstante Wert c (Vorbelastungswert) berücksichtigt werden kann. Zum Beispiel kann der Vorbelastungswert c zum Bestimmen des weiteren Zwischenwertes 17 (furth_int_val) wie folgt furth_int_val = ReLU(int_val + c) verwendet werden. Dies kann eine verbesserte Leistung der ersten NNA 12 ermöglichen. In einem Beispiel kann der Vorbelastungswert c zum Bestimmen des weiteren Zwischenwertes 17 (furth_int_val) wie folgt furth_int_val = ReLU(int_val + c) nur verwendet werden, wenn die erste NNA 12 in den ersten Modus umgeschaltet ist.
  • Die erste NNA 12 kann konfiguriert werden, um den Ausgangswert 18 auf Grundlage des weiteren Zwischenwertes 17 zu generieren. In einem Beispiel kann die erste NNA 12 den Ausgangswert 18 als einen ganzzahligen Wert durch Verwenden einer Ausgangskonvertierungsschaltung 451 des IC 10 generieren. Die Ausgangskonvertierungsschaltung 451 kann konfiguriert werden, um eine Gleitkommazahl in einen ganzzahligen Wert zu konvertieren, wenn die erste NNA 12 in den zweiten Modus umgeschaltet ist.
  • Außerdem kann die erste NNA 12 den Ausgangswert 18 in der Form eines Impulses generieren. Der Impuls kann mithilfe einer Vergleichsschaltung 452 des IC 10 erzeugt werden. Die Vergleichsschaltung 452 kann konfiguriert werden, um den weiteren Zwischenwert 17 mit einem Schwellenwert zu vergleichen. Die Vergleichsschaltung kann den weiteren Zwischenwert 17 mit einem Schwellenwert vergleichen, wenn die erste NNA 2 in den ersten Modus umgeschaltet ist. Ferner kann die Vergleichsschaltung 452 konfiguriert werden, um den Ausgangswert 18 auf gleich EINS festzulegen, wenn der weitere Zwischenwert 17 größer als der Schwellenwert ist, und um den Ausgangswert 18 auf gleich null zu setzen, wenn der weitere Zwischenwert 17 kleiner oder gleich dem Schwellenwert ist. Daher kann die Vergleichsschaltung 452 zu einem gepulsten Merkmal der ersten NNA 12 beitragen. Tatsächlich kann die erste NNA 12 konfiguriert werden, um ein gepulstes Neuron zu simulieren, wenn die erste NNA 12 in den ersten Modus umgeschaltet ist. Dadurch kann der Ausgangswert 18 ein binärer Wert sein, wenn die erste NNA 12 in den ersten Modus umgeschaltet ist. Dies kann eine energiesparende Datenübertragung auf Impuls-Grundlage ermöglichen, wenn die erste NNA 12 zum Simulieren des Netzwerks 30 verwendet wird.
  • Die erste NNA 12 kann den Ausgangswert 18 über einen Ausgang 453 der ersten NNA 12 unabhängig von dem Modus der ersten NNA 12 ausgeben. In einem weiteren Beispiel, das in 6 nicht gezeigt ist, kann die erste NNA 12 den Ausgangswert 18 über einen ersten Ausgang der ersten NNA 12 ausgeben, wenn der Ausgangswert 18 mithilfe der Ausgangskonvertierungsschaltung 451 generiert ist, und den Ausgangswert 18 über einen zweiten Ausgang der ersten NNA 12 ausgeben, wenn der Ausgangswert 18 mithilfe der Vergleichsschaltung 452 generiert ist.
  • Der IC 10 kann konfiguriert werden, um den weiteren Zwischenwert 17 von der Aktivierungseinheit 450 zu einem Register 453 zu übertragen. Das Register 453 kann als ein Speicherelement des IC 10 ausgelegt sein. Das Register 453 kann konfiguriert werden, um den weiteren Zwischenwert 17 in einem ersten Registerelement 453.1 des Registers 453 zu speichern.
  • Der IC 10 kann konfiguriert werden, um gespeicherten Inhalt des einen der Registerelemente des Registers 453 zu einem Multiplexer 454 des IC 10 zu übertragen. Der Multiplexer 454 kann konfiguriert werden, um den weiteren Zwischenwert 17, der in dem ersten Registerelement 453.1 gespeichert sein kann und an einen ersten Eingang 455 des Multiplexers 454 gesendet werden kann, an das erste Arbeitsspeicherelement 410 über einen Ausgang des Multiplexers 454 und einen Eingang des ersten Arbeitsspeicherelements 410 zu übergeben.
  • Der Multiplexer 454 kann konfiguriert werden, um einen Wert von dem ersten Eingang 455 des Multiplexers 454 an das erste Arbeitsspeicherelement 410 zu übergeben, wenn ein Steuersignal, das an einen zweiten Eingang 456 des Multiplexers 454 angelegt werden kann, gleich null ist. Außerdem kann der Multiplexer 454 in einem Beispiel diesen Wert übergeben, wenn an den zweiten Eingang 456 kein Signalpegel angelegt ist. Der Multiplexer 454 kann einen Wert, der gleich null ist, an das erste Arbeitsspeicherelement 410 ausgeben, wenn ein Signalpegel, der größer als null ist, an den zweiten Eingang 456 angelegt ist. Dies kann in dem Fall erfolgen, dass der Ausgangswert 18, der mithilfe der Vergleichsschaltung 452 berechnet wird, größer als null ist.
  • Daher kann eine erste Rückmeldungsschleife 457 des IC 10 zusammen mit dem Multiplexer 454 als Reset-Vorrichtung für das erste Arbeitsspeicherelement 410 arbeiten. Eine zweite Rückmeldungsschleife 458 kann einen Speichermechanismus zum Speichern des weiteren Zwischenwertes 17, in diesem Fall des Stromwerts der Zustandsvariablen 15 s(t), in dem Register 453, und zum Bereitstellen des Stromwerts der Zustandsvariablen s(t) für das erste Arbeitsspeicherelement 410 in dem nächsten Zeitschritt bereitstellen. Das erste Arbeitsspeicherelement 410 kann konfiguriert werden, um den Stromwert der Zustandsvariablen 15 s(t), hier in der Form des weiteren Zwischenwertes 17, für eine Zeitdauer zu speichern, die so lang wie eine Zeitschrittgröße der ersten NNA 12 ist. Die erste NNA 12 kann mit einer ersten Zeitschrittgröße getaktet werden. Die zweite Rückmeldungsschleife 458 kann an jedem Zeitschritt durchgeführt werden.
  • Die erste umschaltbare Schaltung 402, das Register 453 und das erste Arbeitsspeicherelement 410 können zusammen den Akkumulationsblock 401 bilden, um eine Anpassung der Zustandsvariablen 15 durch Verwenden des Stromeingangssignals x(t) und einer durch das Produkt dec_fac * s(t-1) vorgegebenen Abklingfunktion durchzuführen. Da dieses Produkt mithilfe der ersten umschaltbaren Schaltung 402 dem Stromeingangssignal x(t) hinzugefügt werden kann, kann an jedem Zeitschritt eine Akkumulation durchgeführt werden, wenn die erste NNA 12 mit der ersten Zeitschrittgröße ausgeführt wird. Da die erste umschaltbare Schaltung 402 auch zum Berechnen des Ausgangswerts 18 verwendet werden kann, wenn die erste NNA 12 in den zweiten Modus umgeschaltet ist, kann ein Teil des Akkumulationsblocks 401 verwendet werden, um den Ausgangswert 18 zu berechnen, wenn die erste NNA 12 in den zweiten Modus umgeschaltet ist. Somit kann eine Anzahl von Schaltungen reduziert werden, insbesondere, wenn der Ausgangswert 18 abhängig von den Batch-Normalisierungsparametern batch1 und batch2 berechnet wird.
  • Der Akkumulationsblock 401 kann ein Arbeitsspeicherelement aufweisen, wie beispielsweise ein Arbeitsspeicherelement des Registers 453, zum Beispiel das erste Registerelement 453.1, um die Zustandsvariable 15 zu speichern, zum Beispiel den Stromwert der Zustandsvariablen 15. Das erste Registerelement 453.1 kann den Stromwert der Zustandsvariablen 15 s(t) eines tatsächlichen Zeitschritts (t) in der Form der weiteren Zustandsvariablen 17 speichern, um diesen Wert zum nächsten Zeitschritt bereitzustellen, wie oben erwähnt. Das erste Registerelement 453.1 kann eine physische Menge aufweisen, die sich nach Ablauf eines Zeitintervalls nach einem Programmieren des ersten Registerelements 453.1 in einem abweichenden Zustand befindet. Das Zeitintervall kann die erste Zeitschrittgröße sein. Zum Beispiel kann das erste Registerelement 453.1 ein resistives Arbeitsspeicherelement sein, das eine änderbare Leitfähigkeit aufweist.
  • Der abweichende Zustand der physischen Menge des ersten Registerelements 453.1 kann ungefähr gleich einem Zielzustand der physischen Menge des ersten Registerelements 453.1 sein. In einem Beispiel kann der abweichende Zustand der physischen Menge des ersten Registerelements 453.1 von dem Zielzustand der physischen Menge des ersten Registerelements 453.1 um weniger als zehn, oder in einem weiteren Beispiel um weniger als ein Prozent abweichen.
  • Die physische Menge des ersten Registerelements 453.1 kann sich in dem nächsten Zeitschritt in einem abweichenden Zustand befinden. Der Zielzustand der physischen Menge des ersten Registerelements 453.1 kann der Stromwert der Zustandsvariablen 15 s(t) des tatsächlichen Zeitschritts (t) sein.
  • Das erste Registerelement 453.1 kann konfiguriert werden, um die physische Menge auf einen anfänglichen Zustand G453.1init zu setzen, und um eine Abweichung der physischen Menge des ersten Registerelements 453.1 von dem anfänglichen Zustand G453.1init in den abweichenden Zustand mit dem Zeitintervall aufzuweisen.
  • Der anfängliche Zustand der physischen Menge G453.1init kann durch einen Prozessor mithilfe einer Initialisierungsfunktion berechenbar sein, zum Beispiel die Initialisierungsfunktion 200, die in 12 gezeigt ist.
  • Die Initialisierungsfunktion 200 kann den Zielzustand der Leitfähigkeit G des ersten Registerelements 453.1, in 12 dargestellt als Gtarget_i, dem anfänglichen Wert der Leitfähigkeit G453.1init des ersten Registerelements 453.1 zuordnen, in 12 dargestellt als Ginit_i. Die Initialisierungsfunktion 200 kann ein Polynom sein, das aus Experimenten gewonnen wurde, die mit dem ersten Registerelement 453.1 durchgeführt wurden.
  • Der Prozessor kann ein externer Prozessor oder die Steuereinheit 502 sein. Der Prozessor kann die Parameter oder Koeffizienten der Initialisierungsfunktion 200 speichern, um den anfänglichen Zustand G453.1init der physischen Menge des ersten Registerelements 453.1 auf Grundlage des Zielzustands der physischen Menge des ersten Registerelements 453.1 zu berechnen. Das erste Registerelement 453.1 kann zum Beispiel durch die Steuereinheit 502 zu dem tatsächlichen Zeitschritt so programmiert werden, dass die physische Menge des ersten Registerelements 453.1 zu dem tatsächlichen Zeitschritt den anfänglichen Zustand G453.1init annehmen kann.
  • Gemäß einem Beispiel kann die erste NNA 12 konfiguriert werden, um den Ausgangswert 18 so zu generieren, dass ein Bereich von zulässigen Werten des Ausgangswerts 18 von dem Modus der ersten NNA 12 unabhängig ist. Dies kann durch ein Schneidverhalten der Aktivierungseinheit 450 erreicht werden, die eine weitere Zunahme des Ausgangswerts 18 abschneiden kann, wenn der Ausgangswert 18 größer als ein oberer Schwellenwert ist. Dadurch kann ein erster Bereich des Ausgangswerts 18, der sich auf mögliche Werte des Ausgangswerts 18 beziehen kann, wenn die erste NNA 12 in den ersten Modus umgeschaltet ist, gleich einem zweiten Bereich des Ausgangswerts 18 sein, der sich auf mögliche Werte des Ausgangswerts 18 beziehen kann, wenn die erste NNA 12 in den zweiten Modus umgeschaltet ist.
  • 7 stellt ein Kreuzschienenarray 700 eines Arbeitsspeicherelements 701 dar. Die Arbeitsspeicherelemente 701 können resistive Arbeitsspeicherelemente (oder resistive Verarbeitungselemente (RPUs) (Resistive Processing Units) sein, die mehrere resistive Arbeitsspeicherelemente aufweisen können, und können im Folgenden auch als Memristoren 701 bezeichnet werden. Die Memristoren 701 können einen lokalen Datenspeicher in dem IC 1,10 für die Gewichtungen Wij des neuronalen Netzwerks 30 bereitstellen. Die 7 ist eine zweidimensionale (2D) Darstellung des Kreuzschienenarrays 700, die zum Beispiel eine Matrix-Vektor-Multiplikation in Abhängigkeit von den Gewichtungen Wij durchführen kann. Das Kreuzschienenarray 700 kann aus einem Satz von leitenden Zeilenleitungen 7021, 7022 ... 702n und einem Satz von leitenden Spaltenleitungen 7081, 7082 ... 708Mm gebildet werden, die den Satz der leitenden Zeilenleitungen 7021-n kreuzen können. Bereiche, in denen die Spaltenleitungen 7081-m die Zeilenleitungen 7021-n kreuzen können, können im Folgenden als Kreuzungspunkte bezeichnet werden. Der IC 10 kann so ausgelegt werden, dass zwischen den Spaltenleitungen 7081-m und den Zeilenleitungen 7021-n an den Kreuzungspunkten kein elektrischer Kontakt besteht. Zum Beispiel können die Spaltenleitungen 7081-m an den Kreuzungspunkten über die oder unter den Zeilenleitungen 7021-n geführt werden.
  • In den Bereichen der Kreuzungspunkte können die Memristoren 701 in Bezug auf die Spaltenleitungen 7081-m und die Zeilenleitungen 7021-n so angeordnet werden, dass durch jeden Memristor 701ij ein einzelner elektrischer Strom Iij fließen kann, wenn jeweilige Spannungen v1... vn an Eingangsverbindungen 7031, 7032 ... 703n der Kreuzschiene 700 angelegt werden können und dadurch an die Zeilenleitungen 7021-n angelegt werden können. Die Memristoren 701 werden in 7 als resistive Elemente gezeigt, die jeweils eine eigene anpassbare/aktualisierbare resistive Leitfähigkeit haben, die jeweils als Gij, dargestellt wird, wobei i = 1..m und j = 1..n sind. Jede resistive Leitfähigkeit Gij, kann einer entsprechenden Gewichtung Wij des neuronalen Netzwerks 30 entsprechen.
  • Jede Spaltenleitung 708i kann die einzelnen elektrischen Ströme Ii1, Ii2 ... Iin, die in dem jeweiligen Memristor 701i1, 701i2 ... 701in generiert werden, durch Anlegen der jeweiligen Spannungen v1... vn an die entsprechenden Eingangsverbindungen 7031, 7032 ... 703Nn summieren. Wie in 7 gezeigt, entspricht der Strom Ii, der durch die Spaltenleitung 708i generiert wird, der Gleichung Ii = v1 · Gi1 + v2 · Gi2 + v3 · Gi2 + +... + vn · Gin. Ein erster elektrischer Ausgangsstrom Ii, der durch die Spaltenleitung 7081 generiert wird, entspricht der Gleichung I1 = v1 - G11 + v2 · G12 + v3 · G13 + ... + vn · G1n. Somit berechnet das Array 700 die Matrix-Vektor-Multiplikation durch Multiplizieren der in den Memristoren 701 gespeicherten Werte mit den Zeilenleitungseingängen, die durch die Spannungen v1-n definiert werden. Dementsprechend kann eine einzelne Multiplikation vi · Gij lokal an jedem Memristor 701ij der Anordnung 700 durchgeführt werden, indem der Memristor 701ij selbst plus die relevante Zeilen- oder Spaltenleitung des Arrays 700 verwendet wird. Die Ströme I2-m können im Folgenden als weitere elektrische Ausgangsströme bezeichnet werden.
  • Das Kreuzschienenarray von 7 kann zum Beispiel ermöglichen, die Multiplikation eines Vektors x mit einer Matrix W zu berechnen. Die Elemente Wij der Matrix W können entsprechenden Leitfähigkeiten des Kreuzschienenarrays wie folgt zugeordnet werden: W i j = W m a x G m a x G i j ,
    Figure DE112021005715T5_0003
    wobei Gmax durch den Leitfähigkeitsbereich des Kreuzschienenarrays 700 angegeben wird, und Wmax abhängig von der Größenordnung der Matrix W ausgewählt wird. Die Einträge der Matrix W können gleich den Gewichtungen Wij des neuronalen Netzwerks 30 oder wij wie oben angegeben sein. Der Vektor x kann den Spannungen v1... vn entsprechen. Der IC 1, 10 kann konfiguriert werden, um die jeweiligen Spannungen v1... vn in Abhängigkeit von den entsprechenden Ausgangswerten outll (t), out12 (t), out13 (t) ... out1p (t) der Neuronen der vorherigen Schicht zu generieren, zum Beispiel die erste verborgene Schicht 32.
  • 7 veranschaulicht ein Beispiel einer ersten Baugruppe 704 der resistiven Arbeitsspeicherelemente 70111, 70112 ... 7011n des IC 10. Die erste Baugruppe 704 kann die Eingangsverbindungen 7031, 7032 ... 703n zum Anlegen der entsprechenden Spannungen v1... vn an die jeweiligen Eingangsverbindungen 7031, 7032 ... 703n, um die einzelnen elektrischen Ströme I11, I12 ...I1n in den jeweiligen resistiven Arbeitsspeicherelementen 70111, 70112 ... 7011n zu generieren, und eine erste Ausgangsverbindung 7051 aufweisen, um einen ersten elektrischen Ausgangsstrom I1 auszugeben. Die Memristoren 70111, 70112 ... 7011n können so miteinander verbunden werden, dass der erste elektrische Ausgangsstrom I1 eine Summe der einzelnen elektrischen Ströme I11, I12 ... I1n ist. Eine derartige Verbindung zwischen den Arbeitsspeicherelementen 70111, 70112 ... 7011n kann zwischen den Zeilenleitungen 7021-n und der ersten Spaltenleitung 7081 erzeugt werden. Ein Wert des ersten elektrischen Ausgangsstroms I1 kann dann einen Wert eines ersten Skalarprodukts zum Berechnen eines Ausgangswerts des neuronalen Netzwerks 30 mithilfe einer Propagierung von Werten durch die Schichten des Netzwerks 30 darstellen. Das erste Skalarprodukt kann zum Beispiel gleich oder ein Vielfaches oder ein Bruchteil von
    x(t) = w11* out11 (t) + w12* out12 (t) + w13* out13 (t) + ... + w1p* out1p (t) oder
    x(t) = w011* in1 (t) + w012* in2 (t) + w013* in3 (t) + ... + w01k* ink (t) sein. Im ersten Fall kann die erste NNA 2, 12 das Neuron n21 simulieren, im letzten Fall das Neuron n11. Ferner kann die Anzahl von Zeilenleitungen n im ersten Fall gleich p sein, im letzten Fall kann die Anzahl von Zeilenleitungen n gleich k sein.
  • Die erste Ausgangsverbindung 7051 der ersten Baugruppe 704 kann mit dem Eingang 13 der ersten NNA 12 verbunden sein. Der IC 10 kann konfiguriert werden, um das Stromeingangssignal x(t) auf Grundlage des ersten elektrischen Ausgangsstroms I1 zu generieren. In einem Beispiel kann die erste NNA 2, 12 konfiguriert werden, um das Eingangssignal x(t) als ein analoges Signal zu verarbeiten. In diesem Fall kann der erste elektrische Ausgangsstrom I1 das Stromeingangssignal x(t) sein.
  • In einem weiteren Beispiel kann der IC 10 konfiguriert werden, um das Stromeingangssignal x(t) auf Grundlage des ersten elektrischer Ausgangsstroms I1 mithilfe eines Analog-Digital-Wandlers 706 (ADC 706) zu generieren. In einem Beispiel kann die erste NNA 2, 12 das Stromeingangssignal x(t) nur von der ersten Ausgangsverbindung 7051 empfangen. Dieses Beispiel kann auf eine Anwendung verweisen, in der die erste NNA 2, 12 ein ausgegebenes Neuron einer Ausgangsschicht 34 des neuronalen Netzwerks simulieren kann. In diesem Beispiel werden die anderen Spaltenleitungen 7082-m möglicherweise nicht gebraucht.
  • In dem Fall, dass der IC 1,10 verwendet werden kann, um eine Schicht des Netzwerks 30 zu simulieren, die mehr als ein Neuron aufweist, z.B. die erste verborgene Schicht 32 oder die zweite verborgene Schicht 33, ist mehr als eine Spaltenleitung der Kreuzschiene 700 erforderlich. Eine Anzahl der Spaltenleitungen 7081-m kann gleich einer Anzahl von Neuronen m dieser Schicht sein, die der IC 1, 10 simulieren kann. Eine Anzahl der Zeilenleitungen 7021-n kann gleich einer Anzahl von Neuronen n der vorherigen Schicht des Netzwerks 30 sein. Wenn die vorherige Schicht die Eingangsschicht 31 ist, kann die Anzahl von Zeilenleitungen n gleich k sein. Wenn die vorherige Schicht die erste verborgene Schicht 32 ist, kann die Anzahl von Zeilenleitungen n gleich p sein.
  • Im Folgenden wird erklärt, wie der IC 10 mithilfe der ersten NNA 2, 12 eine Schicht des Netzwerks 30 simulieren kann, die mehr als ein Neuron enthält, z.B. die zweite verborgene Schicht 33. In diesem Fall kann die erste NNA 1, 12 nicht nur zum Berechnen des Ausgangswerts 18 für einen einzelnen Strom-Zeitschritt (t), sondern zusätzlich zum Ausgeben von Werten verwendet werden. Im Folgenden wird der Ausgangswert 18 als erster Ausgangswert out1(t) bezeichnet, und die weiteren Ausgangswerte werden als out2-m(t) bezeichnet. Zu diesem Zweck können die weiteren elektrischen Ausgangsströme I2-m verwendet werden, die durch die Spaltenleitungen 7081-m generiert wurden, und der IC 1, 10 kann einen zweiten Arbeitsspeicher 707 aufweisen.
  • Ferner kann der ADC 706 konfiguriert werden, um den ersten elektrischen Ausgangsstrom I1 in das erste Stromeingangssignal x(t) und die weiteren elektrischen Ausgangsströme I2-m in jeweilige weitere Stromeingangssignale x2-m(t) der ersten NNA 2 zu konvertieren. Die weiteren elektrischen Ausgangsströme I2-m können durch weitere Ausgangsverbindungen 7051-m der Kreuzschiene 700 ausgegeben werden.
  • Der zweite Arbeitsspeicher 707 kann konfiguriert werden, um das Stromeingangssignal x(t), das im Folgenden auch als x1(t) bezeichnet wird, und die weiteren Stromeingangssignale x2-m(t) zu speichern. Der zweite Arbeitsspeicher 707 kann
    m Arbeitsspeicherelemente 7071-m aufweisen und in jedem Arbeitsspeicherelement 707i eines der Stromeingangssignale x1(t) und x2-m(t) speichern.
  • Der IC 1, 10 kann konfiguriert werden, um die weiteren Ausgangswerte out2-m(t) jeweils auf Grundlage des jeweiligen weiteren Stromeingangssignals x2-m(t) mithilfe der ersten NNA 2 zu generieren. Die angelegten entsprechenden Spannungen v1... vn können den jeweiligen Ausgangswerten der Neuronen der vorherigen Schicht out11(t), out12(t), ... , outlp(t) wie oben erwähnt entsprechen, wobei in diesem Fall n = p ist.
  • In einem Beispiel kann bzw. können eine oder mehrere der angelegten entsprechenden Spannungen v1... vn einem Ausgangswert eines Neurons der tatsächlichen Schicht eines vergangenen Zeitschritts, zum Beispiel einem Ausgangswert des zweiten Neurons n22 der zweiten verborgenen Schicht 33, entsprechen, der als out22(t-1) bezeichnet werden kann. Dadurch kann eine wiederkehrende Verbindung der zweiten verborgenen Schicht 33 simuliert werden.
  • Um weitere Ausgangswerte out2-m(t) zu generieren, kann der IC 1, 10 konfiguriert werden, um nacheinander die weiteren Stromeingangssignale x2-m(t) an den Eingang 13 der ersten NNA 2, 12 zu senden und die erste NNA 2, 12 zu steuern, um jeden der weiteren Ausgangswerte out2-m(t) auf Grundlage des jeweiligen weiteren Stromeingangssignals x2-m(t) auf dieselbe Weise zu generieren, wie die erste NNA 2, 12 den ersten Ausgangswert out1(t) auf Grundlage des ersten Stromeingangssignals x1(t) generieren kann, wie oben erwähnt. Auf diese Weise kann eine Steuereinheit 502 des IC 1, 10 nacheinander einen Schalter des zweiten Arbeitsspeichers 707 so steuern, dass eine Ausgangsverbindung des zweiten Arbeitsspeicherelements 707 mit einem der Arbeitsspeicherelemente 7071-m verbunden ist. Die Ausgangsverbindung des zweiten Arbeitsspeicherelements 707 kann mit dem Eingang 13 der ersten NNA 2, 12 verbunden werden. Nach einem Empfangen eines Werts, der von dem zweiten Arbeitsspeicherelement 707 gesendet wurde, d.h. entweder das erste Stromeingangssignal x1(t) oder eines der weiteren Stromeingangssignale x2-m(t), kann die erste NNA 2, 12 den weiteren Zwischenwert 17 berechnen.
  • Die Steuereinheit 502 kann nacheinander das Register 453 so steuern, dass der weitere Zwischenwert 17 in das entsprechende Registerelement 453.1 geschrieben werden kann, wobei i dem Index des Stromeingangssignals xi(t) entspricht, wenn die erste NNA 2, 12 in den ersten Modus umgeschaltet wird. Außerdem kann die Steuereinheit 502 das Register 453 so steuern, dass das entsprechende Registerelement 453.i mit dem Eingang 455 des Multiplexers 454 verbunden werden kann, wenn die erste NNA 2, 12 in den ersten Modus umgeschaltet wird. Nach einem Generieren von jedem der Ausgangswerte out1-m(t) können die Ausgangswerte out1-m(t) in einem dritten Arbeitsspeicher 504 des IC 1,10 gespeichert werden.
  • 8 veranschaulicht den IC 10, der das Kreuzschienenarray 700, den ADC 706, den zweiten Arbeitsspeicher 707, die erste NNA 12, den dritten Arbeitsspeicher 504, die Konfigurationsschaltung 501 und die Steuereinheit 502 aufweist. Die Konfigurationsschaltung 501 und die Steuereinheit 502 können in eine Konfigurations- und Steuerschaltung 503 integriert werden. Der IC 10 kann ferner einen vierten Arbeitsspeicher 505 zum Speichern eingehender Signale aufweisen, zum Beispiel die Ausgangswerte des Neurons der vorherigen Schicht des Netzwerks 30, wie beispielsweise out11(t), out12(t), ... , outlp(t). Außerdem kann der IC 10 einen Digital-Analog-Wandler 506 zum Konvertieren der eingehenden Signal in die entsprechenden Spannungen v1... vn aufweisen. Hierin kann ein Inpulsbreiten-Modulationsschema angewendet werden, um eine Dauer der entsprechenden Spannungen v1... vn an die jeweiligen eingehenden Signale anzupassen. In einem Beispiel kann jeder Wert der entsprechenden Spannungen v1... vn an die jeweiligen eingehenden Signale angepasst werden, wobei alle der entsprechenden Spannungen v1... vn dieselbe Dauer aufweisen. In einem Beispiel kann der IC 10 einen Eingangs-Datenübertragungskanal 507 zum Übertragen der eingehenden Signale von einem Bussystem 509 zu dem vierten Arbeitsspeicher 505 und einen Ausgangs-Datenübertragungskanal 508 zum Übertragen der Ausgangswerte out1-m(t) zu dem Bussystem 509 aufweisen.
  • 9 veranschaulicht einen weiteren integrierten Schaltkreis 20 (IC 20) gemäß dem vorliegenden Erfindungsgegenstand. Der integrierte Schaltkreis 20 kann in der Form von CMOS-Schaltungen umgesetzt werden, die digitale und/oder analoge Schaltungen aufweisen. Der integrierte Schaltkreis 20 kann die erste neuromorphe Neuronenvorrichtung 12 aufweisen, die im Folgenden auch als die erste NNA 121 bezeichnet wird. Ferner kann der IC 20 weitere ähnliche Komponenten des IC 10 aufweisen, wie beispielweise das Kreuzschienenarray 700, den ADC 706, den zweiten Arbeitsspeicher 707, den dritten Arbeitsspeicher 504, die Konfigurationsschaltung 501 und die Steuereinheit 502. Die Konfigurationsschaltung 501 und die Steuereinheit 502 können in eine Konfigurations- und Steuerschaltung 503 integriert werden. Der IC 20 kann ferner einen vierten Arbeitsspeicher 505 zum Speichern eingehender Signale aufweisen, zum Beispiel die Ausgangswerte des Neurons der vorherigen Schicht des Netzwerks 30, wie beispielsweise out11(t), out12(t), ... , outlp(t). Außerdem kann der IC 10 einen Digital-Analog-Wandler 506 zum Konvertieren der eingehenden Signal in die entsprechenden Spannungen v1... vn aufweisen. In einem Beispiel kann der IC 10 einen Eingangs-Datenübertragungskanal 507 zum Übertragen der eingehenden Signale von einem Bussystem 509 zu dem vierten Arbeitsspeicher 505 und einen Ausgangs-Datenübertragungskanal 508 zum Übertragen der Ausgangswerte out1-m(t) zu dem Bussystem 509 aufweisen.
  • Zusätzlich zu der ersten NNA 12 kann der IC 20 weitere neuromorphe Neuronenvorrichtungen 122...i...m aufweisen, die im Folgenden auch als weitere NNAs 122-m bezeichnet werden. Die weiteren NNAs 122-m können jeweils ähnlich der ersten NNA 121 ausgelegt sein.
  • Daher können die weiteren NNAs 122-m jeweils einen Eingang und einen Akkumulationsblock mit einer Zustandsvariablen aufweisen, um die Ableitungsaufgabe auf Grundlage von eingegebenen Daten durchzuführen, die die zeitliche Abfolge aufweisen. Jede weitere NNA 122-m kann in einen ersten Modus und in einen zweiten Modus umgeschaltet werden.
  • Der Akkumulationsblock der jeweiligen weiteren NNA 122-m kann konfiguriert werden, um eine Anpassung der Zustandsvariablen des jeweiligen Akkumulationsblocks durch Verwenden des weiteren Stromeingangssignals x2-m(t) der jeweiligen weiteren NNA 122-m und eine Abklingfunktion durchzuführen, die für ein Abklingverhalten der jeweiligen weiteren NNA 122-m indikativ ist. Die Zustandsvariable des jeweiligen Akkumulationsblocks der jeweiligen weiteren NNA 122-m kann von einem oder mehreren vorher empfangenen Eingangssignalen der jeweiligen weiteren NNA 122-m abhängig sein.
  • Die jeweilige weitere NNA 122-m kann konfiguriert werden, um das weitere Stromeingangssignal x2-m(t) der jeweiligen weiteren NNA 122-m über einen Eingang der jeweiligen weiteren NNA 122-m zu empfangen.
  • Ferner kann die jeweilige weitere NNA 122-m konfiguriert werden, um einen Zwischenwert der jeweiligen weiteren NNA 122-m in Abhängigkeit von der Zustandsvariablen des jeweiligen Akkumulationsblocks zu generieren, wenn die jeweilige weitere NNA 122-m in den ersten Modus umgeschaltet ist.
  • Ferner kann die jeweilige weitere NNA 122-m konfiguriert werden, um den Zwischenwert der jeweiligen weiteren NNA 122-m in Abhängigkeit von dem weiteren Stromeingangssignal x2-m(t) der jeweiligen weiteren NNA 122-m und unabhängig von der Zustandsvariablen des jeweiligen Akkumulationsblocks zu generieren, wenn die jeweilige weitere NNA 122-m in den zweiten Modus umgeschaltet ist.
  • Ferner kann die jeweilige weitere NNA 122-m konfiguriert werden, um den jeweiligen weiteren Ausgangswert out2-m(t) in Abhängigkeit von dem Zwischenwert der jeweiligen NNA 122-m zu generieren.
  • Im Unterschied zu dem IC 10 kann der IC 20 einzelne Verbindungen von jedem der Arbeitsspeicherelemente 707i des zweiten Arbeitsspeichers 707 zu einem der Eingänge der ersten NNA121 oder der weiteren NNAs 122-m aufweisen. Dadurch können die Stromeingangssignale x1(t) und x2-m(t) jeweils von jeder der ersten NNA 12 und der weiteren NNA 121 verarbeitet werden, um die entsprechenden Ausgangswerte out1-m(t) zu generieren. Jeder der Ausgangswerte out2-m(t) kann mithilfe einer jeweiligen weiteren NNA von den weiteren NNAs 122-m auf dieselbe Weise generiert werden, in der die erste NNA 121 den Ausgangswert 18 auf Grundlage des ersten Eingangssignals x1(t) generiert. Somit kann der IC 20 konfiguriert werden, um die Ausgangswerte out1-m(t) parallel zu generieren. In einem Beispiel kann eine Anzahl der ersten NNA 121 und der weiteren NNAs 122-m zusammen kleiner als die Anzahl der Spaltenleitungen der Kreuzschiene 700 sein, zum Beispiel nur ein Viertel oder die Hälfte der Anzahl der Spaltenleitungen. Trotzdem kann eine parallele Berechnung eines Teils der Ausgangswerte out1-m(t) in diesem Fall möglich sein. Die Größe des IC 20 kann jedoch reduziert sein.
  • Jede der jeweiligen weiteren Ausgangsverbindungen 705i kann mit einem der Eingänge der weiteren NNA 122-m über den ADC 706 und den zweiten Arbeitsspeicher 707 verbunden, d.h. elektronisch verbunden sein. In einem Beispiel, das in 9 nicht gezeigt ist, kann der ADC 706 jedes der Stromeingangssignale x1(t) und x2-m(t) jeweils direkt mit dem jeweiligen Eingang von einer der ersten NNA 121 und der weiteren NNAs 122-m verbinden, ohne diese Signale in dem zweiten Arbeitsspeicher 707 zu speichern.
  • In dem in 9 gezeigten Beispiel kann die Konfigurationsschaltung 501 konfiguriert werden, um die erste NNA 121 und die jeweiligen weiteren NNAs 122-m gleichzeitig in den ersten Modus oder den zweiten Modus umzuschalten.
  • Der IC 10 und der IC 20 können beide als ein Kerntyp einer Mehrkern-Chip-Architektur 1000 betrachtet werden, die in 10 gezeigt wird. Die Architektur 1000 kann einen Datenübertragungsbus 1001 und mehrere Kerne 1002 zum Simulieren des Netzwerks 30 aufweisen. In einem Beispiel kann das Netzwerk 30 mehrere verborgene Schichten aufweisen, z.B. bis zu fünf, zehn, hundert oder Hunderte von verborgenen Schichten, wobei das Netzwerk ein tiefes neuronales Netzwerk ist. Jeder Kern der Kerne 1002 kann verwendet werden, um eine verborgene Schicht des Netzwerks 30 zu simulieren.
  • In einem Beispiel kann jeder Kern der Kerne 1002 wie der IC 10 ausgelegt werden. In einem weiteren Beispiel kann jeder Kern der Kerne 1002 wie der IC 20 ausgelegt werden. Der Datenübertragungsbus 1001 kann einen Datenübertragungskanal zum Übertragen der Ausgangswerte out1-m(t), die durch einen der Kerne 1002 generiert wurden, zu einem weiteren Kern der Kerne 1002 bereitstellen.
  • Im Folgenden kann eine Übertragung von Signalen zwischen zwei Kernen der Kerne 1002, zwischen einem ersten Kern 100211 und einem zweiten Kern 100212, zum Simulieren einer Propagierung von Signalen von der vorherigen Schicht zu der tatsächlichen Schicht des Netzwerks 30 beschrieben werden. Jeder Kern 100211, 100212 kann die oben erwähnten Eingangsspannungen v1... vn als Kern-Stromeingangssignale x_core1-n(t) und die oben erwähnten Ausgangswerte out1-m(t) als Kern-Stromausgangssignale out_core1-m(t) aufweisen. Die Ausgangswerte out1-m(t) können in der Form von Ausgangsspannungen v1... vm generiert werden. Hier können binäre Signale durch die Ausgangsspannungen v1... vm generiert werden. Zum Beispiel kann ein Impulsbreiten-Modulationsschema angelegt werden, um die Ausgangsspannungen v1... vm zu generieren. In einem weiteren Beispiel kann eine Analogsignal-Generierung ein Generieren der Ausgangsspannungen v1... vm aufweisen.
  • Der erste Kern 100211 kann die Ausgangsspannungen v1... vm des ersten Kerns 100211 über den Ausgangskanal 508 des ersten Kerns 100211 an den Bus 1001 senden. Der zweite Kern 100212 kann die Ausgangsspannungen v1... vm des ersten Kerns 100211 über den Bus 1001 und den Eingangskanal 507 des zweiten Kerns 100212 in der Form der Eingangsspannungen v1... vn des zweiten Kerns 100212 empfangen. In diesem Fall kann die Anzahl m der Ausgangsspannungen v1... vm des ersten Kerns 100211 gleich der Anzahl n der Eingangsspannungen v1... vn des zweiten Kerns 100212 sein, d.h. m = n. Dies muss jedoch nicht in jeder Anwendung der Architektur 1000 notwendigerweise der Fall sein.
  • In einem Fall kann die Anzahl m der Ausgangsspannungen v1... vm des ersten Kerns 100211 kleiner als die Anzahl n der Eingangsspannungen v1... vn des zweiten Kerns 100212 sein, d.h. m <= n. In diesem Fall kann ein Wert der Eingangsspannungen vm-n... vn des zweiten Kerns 100212 gleich null sein. In diesem Fall kann der Eingangskanal 507 zum Beispiel jeder der Eingangsspannungen vm-n... vn, einen Wert von null zuweisen. In diesem Fall können die Zeilenleitungen 703m-n...n in den Memristoren 7011-m, (m-n)-n des zweiten Kerns 100212 keine einzelnen elektrischen Ströme generieren. Somit ermöglicht die Kreuzschiene 700, eine Anzahl von verborgenen Schichten des Netzwerks 30 zu ändern, die simuliert werden sollen, ohne Hardware-Elemente der Architektur 1000 zu ändern.
  • In einem Beispiel ist die erste NNA 12 von mindestens einem Kern der Kerne 1002, zum Beispiel die erste NNA 12 und/oder die weiteren NNAs 122-m des ersten Kerns 100211, in den ersten Modus umgeschaltet, und die erste NNA 12 von mindestens einem der anderen Kerne der Kerne 1002, zum Beispiel die erste NNA 12 und/oder die weiteren NNAs 122-m des zweiten Kerns 100212 ist in den zweiten Modus umgeschaltet. Zum Beispiel können die NNAs 121-m des ersten Kerns 100211 in den zweiten Modus umgeschaltet sein, um die erste verborgene Schicht 32 zu simulieren, wobei die erste Schicht 32 Neuronen aufweist, wie beispielsweise Neuronen eines MLP-Netzwerks. Außerdem können die NNAs 121-m des zweiten Kerns 100212 in den ersten Modus umgeschaltet sein, um die zweite verborgene Schicht 33 zu simulieren, wobei die zweite Schicht 33 gepulste Neuronen aufweist. Die in 10 gezeigte Architektur kann verwendet werden, um sechzehn verborgene Schichten des Netzwerks 30 zu simulieren. Der Einfachheit halber sind in 3 nur zwei verborgene Schichten des Netzwerks 30 gezeigt. In einem Beispiel kann ein einzelner Kern der Kerne 1002 konfiguriert werden, um zwei oder mehrere verborgene Schichten des Netzwerks 30 zu simulieren.
  • Die Architektur 1000 kann den globalen Prozessor 1003 zum Konfigurieren von jedem der Kerne 1002 aufweisen. Der Prozessor 1003 kann konfiguriert werden, um entsprechende Konfigurationsmeldungen über den Bus 1001 an den jeweiligen der Kerne 1002 zu senden, der konfiguriert werden soll. Die Konfigurationsmeldungen können von der entsprechenden Konfigurations- und Steuerschaltung 503 der jeweiligen Kerne 1002 gelesen werden, die konfiguriert werden sollen. Nach einem Empfangen der jeweiligen Konfigurationsmeldung kann die jeweilige Konfigurations- und Steuerschaltung 503 die NNAs 121-m des entsprechenden Kerns der Kerne 1002, die konfiguriert werden sollen, abhängig von einem Inhalt der Konfigurationsmeldung entweder in den ersten oder den zweiten Modus umschalten.
  • Der globale Prozessor 1003 kann als eine Steuerschaltung betrachtet werden. Der globale Prozessor 1003 kann einen Zeitgeber zum Synchronisieren der Kerne 1002 aufweisen. In einem Beispiel kann der erste Kern 100211 mit einer ersten Zeitschrittgröße getaktet werden, und der zweite Kern 100212 kann mit einer zweiten Zeitschrittgröße getaktet werden, wobei die erste Zeitschrittgröße ein ganzzahliges Vielfaches der zweiten Zeitschrittgröße ist.
  • 11 ist ein Ablaufplan eines Verfahrens zum Generieren des Ausgangswerts 18 des IC 10. In einem Schritt 801 kann eine Anpassung der Zustandsvariablen 15 durch Verwenden des Stromeingangssignals x(t) der ersten neuromorphen Neuronenvorrichtung 12 und der Abklingfunktion durchgeführt werden, die für ein Abklingverhalten der Vorrichtung 12 indikativ ist. In einem Schritt 802 kann das Stromeingangssignal x(t) über den Eingang 13 empfangen werden. In einem Schritt 803 kann der Zwischenwert 16 in Abhängigkeit von der Zustandsvariablen 15 generiert werden, wenn die erste neuromorphe Neuronenvorrichtung 12 in den ersten Modus umgeschaltet ist. Der Zwischenwert 16 kann in Abhängigkeit von dem Stromeingangssignal x(t) und unabhängig von der Zustandsvariablen 15 generiert werden, wenn die erste neuromorphe Neuronenvorrichtung 12 in den zweiten Modus umgeschaltet ist. In einem Schritt 804 kann der Ausgangswert 18 des integrierten Schaltkreises 10 in Abhängigkeit von dem Zwischenwert 16 generiert werden.
  • Das Verfahren kann ferner Schritte 805, 806, 807 aufweisen. Im Schritt 805 kann das Stromeingangssignal x(t) mithilfe des ersten elektrischen Ausgangsstroms der ersten Baugruppe 704 der Memristoren generiert werden. Im Schritt 806 können die entsprechenden Spannungen v1... vn an die jeweiligen Eingangsverbindungen 7031, 7032 ... 703n angelegt werden, um die einzelnen elektrischen Ströme I11, I12 ... I1n in den jeweiligen Memristoren 701i1, 701i2 ... 701in zu generieren. Im Schritt 807 kann der erste elektrische Ausgangsstrom I1 als eine Summe der einzelnen elektrischen Ströme I11, I12 ... I1n generiert werden
  • In einem Beispiel kann sich ein Wert der Leitfähigkeit jedes RME 701ij in einem abweichenden, zum Beispiel einem abgeklungenen Zustand befinden, nachdem ein bestimmter Zeitraum ΔT nach einem Programmieren des jeweiligen RME 701ij verstrichen ist. Der abweichende Zustand der Leitfähigkeit jedes RME 701ij kann ungefähr gleich einem jeweiligen Zielzustand der Leitfähigkeit jedes RME 701ij sein, der der Wert Gij jeder oben erwähnten Leitfähigkeit sein kann. Zum Beispiel kann ein Wert der Leitfähigkeit jedes RME 701ij in dem abgeklungenen Zustand von dem jeweiligen Zielzustand der Leitfähigkeit Gij jedes RME 701ij um weniger als zehn Prozent abweichen. Gemäß einem weiteren Beispiel kann der Wert der Leitfähigkeit jedes RME 701ij in dem abgeklungenen Zustand von dem jeweiligen Zielzustand der Leitfähigkeit Gij jedes RME 701ij um weniger als ein Prozent abweichen. Der vorgegebene Zeitraum ΔT kann von einem Zeitpunkt abhängen, an dem die RMEs 701 verwendet werden.
  • Das jeweilige RME 701ij kann konfiguriert werden, um die jeweilige Leitfähigkeit des RME 701ij auf einen jeweiligen anfänglichen Zustand Gij_init zu setzen und eine jeweilige Abweichung der jeweiligen Leitfähigkeit des RME 701ij von dem jeweiligen anfänglichen Zustand Gij_init zu dem jeweiligen abweichenden Zustand aufzuweisen. Der jeweilige anfängliche Zustand der jeweiligen Leitfähigkeit Gij_init kann durch einen Prozessor mithilfe einer jeweiligen Initialisierungsfunktion berechnet werden. In einem Beispiel kann die jeweilige Initialisierungsfunktion für jedes RME 701ij verschieden sein. In einem weiteren Beispiel kann die jeweilige Initialisierungsfunktion für jedes RME 701ij dieselbe sein, zum Beispiel die in 12 gezeigte Initialisierungsfunktion 200.
  • Die Initialisierungsfunktion 200 kann jeden Zielzustand der Leitfähigkeit Gij von jedem RME 701ij, in 12 dargestellt als Gtarget_i, einem jeweiligen anfänglichen Wert der Leitfähigkeit jedes RME 701ij zuordnen, in der 12 dargestellt als Ginit_i. Die Initialisierungsfunktion 200 kann ein Polynom sein, das aus Experimenten gewonnen wurde, die mit den RMEs 701 durchgeführt wurden, insbesondere mit jedem RME 701ij.
  • Der Prozessor kann ein externer Prozessor oder der globale Prozessor 1003 sein. Der Prozessor kann die Parameter oder Koeffizienten der Initialisierungsfunktion speichern, um den jeweiligen anfänglichen Zustand Gij_init jedes RME 701ij auf Grundlage des jeweiligen Zielzustands der Leitfähigkeit Gij jedes RME 701ij zu berechnen.
  • Ein Einrichtungsverfahren zum Einrichten jedes RME 701ij zum Betrieb kann ein Messen einer verstrichenen Zeit ab einem anfänglichen Zeitpunkt eines Programmierens der Leitfähigkeit auf den berechneten anfänglichen Zustand der Leitfähigkeit zu einem tatsächlichen Zeitpunkt aufweisen. Ferner kann das Einrichtungsverfahren ein Vergleichen der gemessenen verstrichenen Zeit mit dem vorgegebenen Zeitpunkt ΔT aufweisen. Der vorgegebene Zeitpunkt ΔT kann von einer Nutzung jedes RME 701ij abhängen, zum Beispiel von einem Zeitpunkt einer Nutzung des Kreuzschienenarrays 700 als Ganzes. Das Einrichtungsverfahren kann ein Freigeben des Kreuzschienenarrays 700 zum Betrieb aufweisen, wenn die gemessene verstrichene Zeit länger als der vorgegebene Zeitraum ΔT ist.
  • Zum Beispiel dürfen die Spannungen v1-n erst auf die Eingangsverbindungen 7031, 7032... 703Nn angewendet werden, wenn die verstrichene Zeit länger als der vorgegebene Zeitraum ΔT ist. Oder, anders ausgedrückt, die Spannungen v1-n können auf die Eingangsverbindungen 7031, 7032 ... 703Nn angewendet werden, wenn die verstrichene Zeit länger als der vorgegebene Zeitraum ΔT ist. In einem Beispiel dürfen die Spannungen v1-n nur auf die Eingangsverbindungen 7031, 7032 ... 703Nn angewendet werden, wenn die verstrichene Zeit länger als der vorgegebene Zeitraum ΔT ist
  • In den meisten Fällen kann der vorgegebene Zeitraum ΔT so ausgewählt werden, dass ein weiteres Abklingen der Leitfähigkeit im Lauf der Zeit, nachdem der vorgegebene Zeitraum ΔT verstrichen ist, im Vergleich mit einem Abklingen der Leitfähigkeit im Lauf der Zeit direkt nach einem Programmieren jedes RME 701ij auf den anfänglichen Zustand niedrig sein kann.
  • In einem Beispiel kann der jeweilige anfängliche Zustand Gij_init der Leitfähigkeit jedes RME 701ij, in 13 dargestellt als Ginit_se;, auf Grundlage des jeweiligen Zielzustands der Leitfähigkeit Gij jedes RME 701ij, in 13 dargestellt als Gtarget_sel, und ein jeweiliger ausgewählter Zeitpunkt des Betriebs ΔTsel jedes RME 701ij auf Grundlage der in 13 gezeigten globalen Initialisierungsfunktion 900 berechnet werden. Die jeweiligen ausgewählten Zeitpunkte des Betriebs jedes RME 701ij können in einem Beispiel gleich sein. In einem weiteren Beispiel können sich die jeweiligen ausgewählten Zeitpunkte des Betriebs jedes RME 701ij von einander unterscheiden. Dies kann sinnvoll sein, wenn jeder jeweilige Zeitpunkt des Betriebs jedes RME 701ij von vornherein bekannt ist.
  • Zum Beispiel kann der zweite Kern 100212 konfiguriert werden, um die zweite verborgene Schicht 33 zu simulieren, und der erste Kern 100211 kann konfiguriert werden, um eine vorherige Schicht zu simulieren, zum Beispiel die erste verborgene Schicht 32. Da eine Simulation des Netzwerks 30 mit einer Simulation der ersten verborgenen Schicht 32 beginnen und mit einer Simulation der zweiten verborgenen Schicht 33 fortfahren kann, kann ein erster Zeitpunkt einer Nutzung des ersten Kerns zeitlich vor einem zweiten Zeitpunkt einer Nutzung des zweiten Kerns liegen. Daher kann in einem Beispiel die jeweilige Leitfähigkeit des RME 701ij des ersten Kerns auf den jeweiligen anfänglichen Zustand Gij_init der Leitfähigkeit gesetzt werden, sodass jede jeweilige Leitfähigkeit des RME 701ij des ersten Kerns ihren jeweiligen Zielzustand der Leitfähigkeit Gij früher erreichen kann als jede der jeweiligen Leitfähigkeit des RME 701ij des zweiten Kerns ihren jeweiligen Zielzustand der Leitfähigkeit Gij erreichen kann
  • Ein Programmieren der Leitfähigkeit der RMEs 701, bevorzugt jedes RME 701ij, auf den berechneten jeweiligen anfänglichen Zustand der Leitfähigkeit der RMEs kann eine genauere Berechnung des Stromeingangssignals der ersten NNA 2, 12 ermöglichen. Wenn die erste NNA 2, 12 in den ersten Modus umgeschaltet ist, kann dies die Genauigkeit der ersten NNA 2, 12 erhöhen, da der Ausgangswert 18 von einer Entwicklung der Zustandsvariablen 15 im Laufe der Zeit abhängig ist. Wenn eine Änderung des RME 701ij im Laufe der Zeit niedriger ist, kann der Ausgangswert 18 genauer berechnet werden. Dies kann auch von Vorteil sein, wenn einer der Kerne 1002 in den ersten Modus umgeschaltet ist, und ein weiterer der Kerne 1002 in den zweiten Modus umgeschaltet ist. Zum Beispiel, wenn Ergebnisse, die mit dem in den ersten Modus umgeschalteten Kern berechnet wurden, mit Ergebnissen verglichen werden, die mit dem in den zweiten Modus umgeschalteten Kern berechnet wurden.
  • Aspekte der vorliegenden Erfindung werden hierin unter Bezugnahme auf Veranschaulichungen von Ablaufplänen und/oder Blockschaubildern von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es sollte klar sein, dass jeder Block der Ablaufplanveranschaulichungen und/oder der Blockschaubilder und Kombinationen von Blöcken in den Ablaufplanveranschaulichungen und/oder den Blockschaubildern mithilfe von durch einen Computer lesbaren Programmanweisungen umgesetzt werden können.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann ein durch einen Computer lesbares Speichermedium (oder -medien) umfassen, auf dem durch einen Computer lesbare Programmanweisungen gespeichert sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch eine Einheit zum Ausführen von Anweisungen beibehalten und speichern kann. Das durch einen Computer lesbare Speichermedium kann zum Beispiel eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiter-Speichereinheit oder jede geeignete Kombination aus dem Vorgenannten sein, es ist aber nicht darauf beschränkt. Zu einer nicht erschöpfenden Liste von spezifischeren Beispielen des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer CD-ROM, eine DVD, ein Arbeitsspeicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination des Vorgenannten. Ein durch einen Computer lesbares Speichermedium, wie hierin verwendet, soll nicht als flüchtige Signale perse aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder andere Übertragungsmedien ausbreiten (z.B. durch ein Lichtwellenleiterkabel geleitete Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene durch einen Computer lesbare Programmanweisungen können auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten von einem durch einen Computer lesbaren Speichermedium oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetzwerk und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben sind, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In dem letzteren Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch jeden Typ von Netzwerk verbunden werden, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, feldprogrammierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die computerlesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der computerlesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung werden hierin unter Bezugnahme auf Veranschaulichungen von Ablaufplänen und/oder Blockschaubildern von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es sollte klar sein, dass jeder Block der Ablaufplanveranschaulichungen und/oder der Blockschaubilder und Kombinationen von Blöcken in den Ablaufplanveranschaulichungen und/oder den Blockschaubildern mittels durch einen Computer lesbare Programmanweisungen umgesetzt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, sodass die über den Prozessor des Computers bzw. eine andere programmierbare Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegebenen Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, sodass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, die Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaubilder angegebenen Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Arbeitsschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen durch einen Computer umgesetzten Prozess zu erzeugen, sodass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegebenen Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder den Blockschaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zum Umsetzen der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Umsetzungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt auftreten. Zum Beispiel können zwei nacheinander gezeigte Blöcke tatsächlich im Wesentlichen parallel ausgeführt werden, oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden, was von der beteiligten Funktionalität abhängt. Es ist ferner anzumerken, dass jeder Block der Blockschaubilder und/oder der Ablaufplandarstellungen sowie Kombinationen von Blöcken in den Blockschaubildern und/oder der Ablaufplandarstellung durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die angegebenen Funktionen oder Handlungen durchführen oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.

Claims (26)

  1. Integrierter Schaltkreis, der eine erste neuromorphe Neuronenvorrichtung aufweist, wobei die erste neuromorphe Neuronenvorrichtung einen Eingang und einen Akkumulationsblock mit einer Zustandsvariablen zum Durchführen einer Ableitungsaufgabe auf Grundlage von Eingangsdaten aufweist, die eine zeitliche Abfolge aufweisen, wobei die erste neuromorphe Neuronenvorrichtung in einen ersten Modus und in einen zweiten Modus umschaltbar ist; wobei der Akkumulationsblock konfiguriert ist zum: Durchführen einer Anpassung der Zustandsvariablen durch Verwenden eines Stromeingangssignals der ersten neuromorphen Neuronenvorrichtung und einer Abklingfunktion, die für ein Abklingverhalten der Vorrichtung indikativ ist, wobei die Zustandsvariable von einem oder mehreren vorher empfangenen Eingangssignalen der ersten neuromorphen Neuronenvorrichtung abhängig ist; wobei die erste neuromorphe Neuronenvorrichtung konfiguriert ist zum: Empfangen des Stromeingangssignals über den Eingang; Generieren eines Zwischenwertes in Abhängigkeit von der Zustandsvariablen, wenn die erste neuromorphe Neuronenvorrichtung in den ersten Modus umgeschaltet wird; Generieren des Zwischenwertes in Abhängigkeit von dem Stromeingangssignal und unabhängig von der Zustandsvariablen, wenn die erste neuromorphe Neuronenvorrichtung in den zweiten Modus umgeschaltet wird; und Generieren eines Ausgangswerts in Abhängigkeit von dem Zwischenwert.
  2. Integrierter Schaltkreis nach Anspruch 1, der aufweist: eine erste Baugruppe von Arbeitsspeicherelementen, wobei die erste Baugruppe von Arbeitsspeicherelementen Eingangsverbindungen zum Anlegen von entsprechenden Spannungen an die jeweiligen Eingangsverbindungen, um einzelne elektrische Ströme in den jeweiligen Arbeitsspeicherelementen zu generieren, und mindestens eine Ausgangsverbindung zum Ausgeben eines elektrischen Ausgangsstroms aufweist, wobei die Arbeitsspeicherelemente so miteinander verbunden sind, dass der elektrische Ausgangsstrom eine Summe der einzelnen elektrischen Ströme ist, wobei die Ausgangsverbindung der ersten Baugruppe mit dem Eingang der ersten neuromorphen Neuronenvorrichtung verbunden ist, in der der integrierte Schaltkreis konfiguriert ist, um das Stromeingangssignal auf Grundlage des elektrischen Ausgangsstroms zu generieren.
  3. Integrierter Schaltkreis nach Anspruch 1 oder 2, der ferner aufweist: weitere Baugruppen von Arbeitsspeicherelementen, wobei die weiteren Baugruppen der Arbeitsspeicherelemente jeweils mit Eingangsverbindungen der ersten Baugruppe verbunden sind, um die entsprechenden Spannungen an die Arbeitsspeicherelemente von jeder der weiteren Baugruppen anzulegen, um jeweilige weitere einzelne elektrische Ströme in den jeweiligen Arbeitsspeicherelementen jeder der weiteren Baugruppen zu generieren; wobei jede der weiteren Baugruppen aufweist: eine jeweilige weitere Ausgangsverbindung zum Ausgeben eines jeweiligen weiteren elektrischen Ausgangsstroms, wobei die Arbeitsspeicherelemente von jeder der weiteren Baugruppen miteinander so verbunden sind, dass der jeweilige weitere elektrische Ausgangsstrom eine jeweilige Summe der jeweiligen weiteren einzelnen elektrischen Ströme in den Arbeitsspeicherelementen der jeweiligen Baugruppe ist, in der der integrierte Schaltkreis konfiguriert ist, um jeweilige weitere Stromeingangssignale der ersten neuromorphen Neuronenvorrichtung oder von weiteren neuromorphen Neuronenvorrichtungen des integrierten Schaltkreises jeweils auf Grundlage des jeweiligen weiteren elektrischen Ausgangsstroms zu generieren; und um weitere Ausgangswerte jeweils auf Grundlage des jeweiligen weiteren Stromeingangssignals mithilfe der ersten neuromorphen Neuronenvorrichtung oder der weiteren neuromorphen Neuronenvorrichtungen zu generieren.
  4. Integrierter Schaltkreis nach Anspruch 2, wobei die Arbeitsspeicherelemente resistive Arbeitsspeicherelemente sind.
  5. Integrierter Schaltkreis nach Anspruch 3, wobei der integrierte Schaltkreis ferner einen Analog-Digital-Wandler und einen ersten Arbeitsspeicher aufweist, wobei der Analog-Digital-Wandler konfiguriert ist, um den elektrischen Ausgangsstrom in das Stromeingangssignal und die weiteren elektrischen Ausgangsströme in die jeweiligen weiteren Stromeingangssignale der ersten neuromorphen Neuronenvorrichtung zu konvertieren, wobei der erste Arbeitsspeicher konfiguriert ist, um das Stromeingangssignal und die weiteren Stromeingangssignale zu speichern, und wobei der integrierte Schaltkreis konfiguriert ist, um die weiteren Ausgangswerte jeweils auf Grundlage des jeweiligen weiteren Stromeingangssignals mithilfe der ersten neuromorphen Neuronenvorrichtung zu generieren.
  6. Integrierter Schaltkreis nach einem der vorhergehenden Ansprüche, wobei der integrierte Schaltkreis ferner neuromorphe Neuronenvorrichtungen aufweist, wobei die weiteren neuromorphen Neuronenvorrichtungen jeweils einen Eingang und einen Akkumulationsblock mit einer Zustandsvariablen zum Durchführen einer Ableitungsaufgabe auf Grundlage der Eingangsdaten aufweist, die die zeitliche Abfolge aufweisen, wobei jede weitere neuromorphe Neuronenvorrichtung in einen ersten und einen zweiten Modus umschaltbar ist, und wobei jede der jeweiligen weiteren Ausgangsverbindungen der weiteren Baugruppen mit einem der Eingänge der weiteren neuromorphen Neuronenvorrichtungen verbunden ist; wobei der Akkumulationsblock der jeweiligen weiteren neuromorphen Neuronenvorrichtung konfiguriert ist zum: Durchführen einer Anpassung der Zustandsvariablen des jeweiligen Akkumulationsblocks durch Verwenden des weiteren Stromeingangssignals der jeweiligen weiteren neuromorphen Neuronenvorrichtung und einer Abklingfunktion, die für ein Abklingverhalten der jeweiligen Vorrichtung indikativ ist, wobei die Zustandsvariable des jeweiligen Akkumulationsblocks von einem oder mehreren vorher empfangenen Eingangssignalen der jeweiligen weiteren neuromorphen Neuronenvorrichtung abhängig ist; wobei die jeweilige weitere neuromorphe Neuronenvorrichtung konfiguriert ist zum: Empfangen des weiteren Stromeingangssignals der jeweiligen weiteren neuromorphen Neuronenvorrichtung über den Eingang der jeweiligen weiteren neuromorphen Neuronenvorrrichtung; Generieren eines Zwischenwertes der jeweiligen weiteren neuromorphen Neuronenvorrichtung in Abhängigkeit von der Zustandsvariablen des jeweiligen Akkumulationsblocks, wenn die jeweilige weitere neuromorphe Neuronenvorrichtung in den ersten Modus umgeschaltet ist; Generieren des Zwischenwertes der jeweiligen weiteren neuromorphen Neuronenvorrichtung in Abhängigkeit von dem weiteren Stromeingangssignal der jeweiligen weiteren neuromorphen Neuronenvorrichtung und unabhängig von der Zustandsvariablen des jeweiligen Akkumulationsblocks, wenn die jeweilige weitere neuromorphe Neuronenvorrichtung in den zweiten Modus umgeschaltet ist; und Generieren des jeweiligen weiteren Ausgangswerts in Abhängigkeit von dem Zwischenwert der jeweiligen neuromorphen Neuronenvorrichtung.
  7. Vorrichtung nach Anspruch 3, wobei die Arbeitsspeicherelemente der ersten Baugruppe und die Arbeitsspeicherelemente der weiteren Baugruppen in Zeilen und Spalten angeordnet sind, wobei die Arbeitsspeicherelemente jeweils einen Eintrag einer Matrix darstellen, wobei die Einträge der Matrix eine jeweilige Gewichtung einer Verbindung zwischen zwei Neuronen eines künstlichen neuronalen Netzwerks darstellen.
  8. Integrierter Schaltkreis nach Anspruch 2, wobei der integrierte Schaltkreis ferner einen Analog-Digital-Wandler aufweist, wobei die Ausgangsverbindung der ersten Baugruppe der Arbeitsspeicherelemente mit dem Eingang der ersten neuromorphen Neuronenvorrichtung über den Analog-Digital-Wandler verbunden ist, in dem die Ausgangsverbindung der ersten Baugruppe mit einer Eingangsverbindung des Analog-Digital-Wandlers verbunden ist, und eine Ausgangsverbindung des Analog-Digital-Wandlers mit dem Eingang der ersten neuromorphen Neuronenvorrichtung verbunden ist, und der Analog-Digital-Wandler konfiguriert ist, um den elektrischen Ausgangsstrom in das Stromeingangssignal zu konvertieren, wobei das Stromeingangssignal ein digitales Signal ist.
  9. Integrierter Schaltkreis nach Anspruch 1, wobei der integrierte Schaltkreis ferner eine erste umschaltbare Schaltung aufweist, die konfiguriert ist, um in einem ersten Modus oder in einem zweiten Modus ausgeführt zu werden, und um den Zwischenwert in Abhängigkeit von der Zustandsvariablen zu generieren, wenn die erste umschaltbarer Schaltung in den ersten Moduls umgeschaltet ist, und um den Zwischenwert in Abhängigkeit von dem Stromeingangssignal und unabhängig von der Zustandsvariablen zu generieren, wenn die erste umschaltbare Schaltung in den zweiten Modus umgeschaltet ist.
  10. Integrierter Schaltkreis nach Anspruch 9, wobei die erste umschaltbare Schaltung konfiguriert ist, um den Zwischenwert in Abhängigkeit von dem Stromeingangssignal und Parameterwerten zu generieren, die von einem Batch-Normalisierungsalgorithmus eines Schulungsdatensatzes zum Schulen der ersten neuromorphen Neuronenvorrichtung abgeleitet wurden, wenn die erste umschaltbare Schaltung in den zweiten Modus umgeschaltet ist.
  11. Integrierter Schaltkreis nach Anspruch 9, wobei der integrierte Schaltkreis ferner eine zweite umschaltbare Schaltung und eine Konfigurationsschaltung aufweist, wobei die zweite umschaltbare Schaltung konfiguriert ist, um in einem ersten Modus oder in einem zweiten Modus ausgeführt zu werden, und um den Ausgangswert gemäß einer ersten Aktivierungsfunktion auf Grundlage des Zwischenwertes zu generieren, wenn die zweite umschaltbare Schaltung in den ersten Modus umgeschaltet ist, und um den Ausgangswert gemäß einer zweiten Aktivierungsfunktion auf Grundlage des Zwischenwertes zu generieren, wenn die umschaltbare Schaltung in den zweiten Modus umgeschaltet ist, wobei die Konfigurationsschaltung konfiguriert ist, um die erste umschaltbare Schaltung und die zweite umschaltbare Schaltung in den ersten Modus oder den zweiten Modus umzuschalten.
  12. Integrierter Schaltkreis nach Anspruch 6, der ferner eine Konfigurationsschaltung aufweist, wobei die Konfigurationsschaltung konfiguriert ist, um die erste neuromorphe Neuronenvorrichtung und die jeweiligen weiteren neuromorphen Neuronenvorrichtungen gleichzeitig in den ersten Modus oder in den zweiten Modus umzuschalten.
  13. Integrierter Schaltkreis nach Anspruch 6, der ferner eine Rectified Linear Unit aufweist, wobei die Rectified Linear Unit konfiguriert ist, um einen weiteren Zwischenwert in Abhängigkeit von dem Zwischenwert unabhängig zu generieren, wenn die erste neuromorphe Neuronenvorrichtung in den ersten Modus umgeschaltet ist, oder wenn die erste neuromorphe Neuronenvorrichtung in den zweiten Modus umgeschaltet ist, wobei die erste neuromorphe Neuronenvorrichtung konfiguriert ist, um den Ausgangswert auf Grundlage des weiteren Zwischenwertes zu generieren.
  14. Integrierter Schaltkreis nach Anspruch 6, der ferner eine Vergleichsschaltung aufweist, wobei die Vergleichsschaltung konfiguriert ist, um den weiteren Zwischenwert mit einem Schwellenwert zu vergleichen, wenn die erste neuromorphe Neuronenvorrichtung in den ersten Modus umgeschaltet ist, wobei die erste neuromorphe Neuronenvorrichtung konfiguriert ist, um den Ausgangswert auf gleich EINS zu setzen, wenn der weitere Zwischenwert größer als der Schwellenwert ist, und um den Ausgangswert auf gleich null zu setzen, wenn der weitere Zwischenwert kleiner oder gleich dem Schwellenwert ist.
  15. Integrierter Schaltkreis nach Anspruch 5, der ferner eine Eingangskonvertierungsschaltung aufweist, wobei die Eingangskonvertierungsschaltung konfiguriert ist, um das Stromeingangssignal durch Verwenden einer Skalierung anzupassen, wobei die Skalierung von einem Bereich von Ausgangswerten des Analog-Digital-Wandlers abhängig ist und von einem Modus der ersten neuromorphen Neuronenvorrichtung unabhängig ist.
  16. Integrierter Schaltkreis nach Anspruch 1, wobei die erste neuromorphe Neuronenvorrichtung konfiguriert ist, um den Ausgangswert so zu generieren, dass ein Bereich von zulässigen Werten des Ausgangswerts von einem Modus der ersten neuromorphen Neuronenvorrichtung unabhängig ist.
  17. Integrierter Schaltkreis nach Anspruch 1, der ferner einen Akkumulationsblock aufweist, der ein Arbeitsspeicherelement aufweist, wobei das Arbeitsspeicherelement eine änderbare physische Menge zum Speichern der Zustandsvariablen aufweist, wobei sich die physische Menge in einem abweichenden Zustand befindet, wobei das Arbeitsspeicherelement konfiguriert ist, um die physische Menge auf einen anfänglichen Zustand zu setzen, wobei das Arbeitsspeicherelement eine Abweichung der physischen Menge von dem anfänglichen Zustand in den abweichenden Zustand aufweist, wobei der anfängliche Zustand der physischen Menge mithilfe einer Initialisierungsfunktion errechenbar ist, wobei die Initialisierungsfunktion von einem Zielzustand der physischen Menge abhängig ist, und der Zielzustand der physischen Menge ungefähr gleich dem abweichenden Zustand der physischen Menge ist und von der Zustandsvariablen abhängig ist.
  18. Integrierter Schaltkreis nach Anspruch 2, wobei jedes resistive Arbeitsspeicherelement eine jeweilige änderbare Leitfähigkeit aufweist, wobei sich die jeweilige Leitfähigkeit in einem jeweiligen abweichenden Zustand befindet, wobei das jeweilige resistive Arbeitsspeicherelement konfiguriert ist, um die jeweilige Leitfähigkeit auf einen jeweiligen anfänglichen Zustand zu setzen, wobei das jeweilige resistive Arbeitsspeicherelement eine jeweilige Abweichung der jeweiligen Leitfähigkeit von dem jeweiligen anfänglichen Zustand in den jeweiligen abweichenden Zustand aufweist, und der jeweilige anfängliche Zustand der jeweiligen Leitfähigkeit mithilfe einer jeweiligen Initialisierungsfunktion berechenbar ist, wobei die jeweilige Initialisierungsfunktion von einem jeweiligen Zielzustand der jeweiligen Leitfähigkeit abhängig ist, und der jeweilige Zielzustand der jeweiligen Leitfähigkeit ungefähr gleich dem jeweiligen abweichenden Zustand der jeweiligen Leitfähigkeit ist.
  19. Mehrkern-Chip-Architektur, wobei die Architektur integrierte Schaltkreise als Kerne aufweist, wobei jeder integrierte Schaltkreis eine erste neuromorphe Neuronenvorrichtung aufweist, wobei die erste neuromorphe Neuronenvorrichtung einen Eingang und einen Akkumulationsblock mit einer Zustandsvariablen zum Durchführen einer Ableitungsaufgabe auf Grundlage von Eingangsdaten aufweist, die eine zeitliche Abfolge aufweisen, wobei die erste neuromorphe Neuronenvorrichtung in einen ersten Modus und in einen zweiten Modus umschaltbar ist; wobei der Akkumulationsblock konfiguriert ist, um eine Anpassung der Zustandsvariablen durch Verwenden eines Stromeingangssignals der ersten neuromorphen Neuronenvorrichtung und eine Abklingfunktion durchzuführen, die für ein Abklingverhalten der Vorrichtung indikativ ist, wobei die Zustandsvariable von einem oder mehreren vorher empfangenen Eingangssignalen der ersten neuromorphen Neuronenvorrichtung abhängig ist; wobei die erste neuromorphe Neuronenvorrichtung konfiguriert ist, um das Stromeingangssignal über den Eingang zu empfangen; einen Zwischenwert in Abhängigkeit von der Zustandsvariablen zu generieren, wenn die erste neuromorphe Neuronenvorrichtung in den ersten Modus umgeschaltet ist; den Zwischenwert in Abhängigkeit von dem Stromeingangssignal und unabhängig von der Zustandsvariablen zu generieren, wenn die erste neuromorphe Neuronenvorrichtung in den zweiten Modus umgeschaltet ist; und einen Ausgangswert in Abhängigkeit von dem Zwischenwert zu generieren.
  20. Mehrkern-Chip-Architektur nach Anspruch 19, wobei jeder integrierte Schaltkreis ferner eine jeweilige erste Baugruppe von Arbeitsspeicherelementen aufweist, wobei die jeweilige erste Baugruppe von Arbeitsspeicherelementen Eingangsverbindungen zum Anlegen von entsprechenden Spannungen an die jeweiligen Eingangsverbindungen, um einzelne elektrische Ströme in den jeweiligen Arbeitsspeicherelementen zu generieren, und mindestens eine Ausgangsverbindung zum Ausgeben eines elektrischen Ausgangsstroms der jeweiligen ersten Baugruppe aufweist, wobei die Arbeitsspeicherelemente so miteinander verbunden sind, dass der elektrische Ausgangsstrom eine Summe der einzelnen elektrischen Ströme ist, wobei die Ausgangsverbindung der jeweiligen ersten Baugruppe mit dem Eingang der ersten neuromorphen Neuronenvorrichtung des jeweiligen integrierten Schaltkreises verbunden ist, wobei jeder integrierte Schaltkreis konfiguriert ist, um das Stromeingangssignal der ersten neuromorphen Neuronenvorrichtung des jeweiligen integrierten Schaltkreises auf Grundlage des jeweiligen elektrischen Ausgangsstroms zu generieren, wobei mindestens zwei der integrierten Schaltkreise miteinander verbunden sind, um ein neuronales Netzwerk zu simulieren, das mindestens zwei verborgene Schichten aufweist.
  21. Mehrkern-Chip-Architektur nach Anspruch 19, wobei die erste neuromorphe Neuronenvorrichtung von mindestens einem der integrierten Schaltkreise in den ersten Modus umgeschaltet ist, und die erste neuromorphe Neuronenvorrichtung von mindestens einem der anderen integrierten Schaltkreise in den zweiten Modus umgeschaltet ist.
  22. Mehrkern-Chip-Architektur nach Anspruch 19, wobei die integrierten Schaltkreise durch eine Steuerschaltung gesteuert werden, wobei die Steuerschaltung einen Zeitgeber zum Synchronisieren der integrierten Schaltkreise aufweist.
  23. Mehrkern-Chip-Architektur nach Anspruch 19, wobei eine erste integrierte Schaltung der integrierten Schaltkreise mit einer ersten Zeitschrittgröße getaktet ist und die erste neuromorphe Neuronenvorrichtung des ersten integrierten Schaltkreises in den ersten Modus umgeschaltet ist, und ein zweiter integrierter Schaltkreis der integrierten Schaltkreise mit einer zweiten Zeitschrittgröße getaktet ist und die erste neuromorphe Neuronenvorrichtung des zweiten integrierten Schaltkreises in den zweiten Modus umgeschaltet ist, wobei die zweite Zeitschrittgröße ein ganzzahliges Vielfaches der ersten Zeitschrittgröße ist.
  24. Verfahren zum Generieren eines Ausgangswerts eines integrierten Schaltkreises, wobei der integrierte Schaltkreis eine erste neuromorphe Neuronenvorrichtung aufweist, wobei die erste neuromorphe Neuronenvorrichtung einen Eingang und einen Akkumulationsblock mit einer Zustandsvariablen zum Durchführen einer Ableitungsaufgabe auf Grundlage von Eingangsdaten aufweist, die eine zeitliche Abfolge aufweisen, wobei die erste neuromorphe Neuronenvorrichtung in einen ersten Modus und in einen zweiten Modus umschaltbar ist, wobei das Verfahren aufweist: Durchführen einer Anpassung der Zustandsvariablen durch Verwenden eines Stromeingangssignals der ersten neuromorphen Neuronenvorrichtung und einer Abklingfunktion, die für ein Abklingverhalten der Vorrichtung indikativ ist, wobei die Zustandsvariable von einem oder mehreren vorher empfangenen Eingangssignalen der ersten neuromorphen Neuronenvorrichtung abhängig ist; Empfangen des Stromeingangssignals über den Eingang; Generieren eines Zwischenwertes in Abhängigkeit von der Zustandsvariablen, wenn die erste neuromorphe Neuronenvorrichtung in den ersten Modus umgeschaltet ist, oder Generieren des Zwischenwertes in Abhängigkeit von dem Stromeingangssignal und unabhängig von der Zustandsvariablen, wenn die erste neuromorphe Neuronenvorrichtung in den zweiten Modus umgeschaltet ist; und Generieren des Ausgangswerts des integrierten Schaltkreises in Abhängigkeit von dem Zwischenwert.
  25. Verfahren nach Anspruch 24, wobei das Verfahren ferner aufweist: Generieren des Stromeingangssignals mithilfe eines elektrischen Ausgangsstroms einer ersten Baugruppe von Arbeitsspeicherelementen, wobei die erste Baugruppe von Arbeitsspeicherelementen Eingangsverbindungen aufweist; Anlegen von entsprechenden Spannungen an die jeweiligen Eingangsverbindungen, um einzelne elektrische Ströme in den jeweiligen Arbeitsspeicherelementen zu generieren; Generieren des elektrischen Ausgangsstroms als eine Summe der einzelnen elektrischen Ströme.
  26. Computerprogrammprodukt, das ein durch einen Computer lesbares Speichermedium mit einem darauf verkörperten, durch einen Computer lesbaren Programmcode aufweist, wobei der durch einen Computer lesbare Programmcode konfiguriert ist zum: Generieren eines Ausgangswerts eines integrierten Schaltkreises, wobei der integrierte Schaltkreis eine erste neuromorphe Neuronenvorrichtung aufweist, wobei die erste neuromorphe Neuronenvorrichtung einen Eingang und einen Akkumulationsblock mit einer Zustandsvariablen zum Durchführen einer Ableitungsaufgabe auf Grundlage von Eingangsdaten aufweist, die eine zeitliche Abfolge aufweisen, wobei die erste neuromorphe Neuronenvorrichtung in einen ersten Modus und in einen zweiten Modus umschaltbar ist, wobei das Verfahren aufweist: Durchführen einer Anpassung der Zustandsvariablen durch Verwenden eines Stromeingangssignals der ersten neuromorphen Neuronenvorrichtung und einer Abklingfunktion, die für ein Abklingverhalten der Vorrichtung indikativ ist, wobei die Zustandsvariable von einem oder mehreren vorher empfangenen Eingangssignalen der ersten neuromorphen Neuronenvorrichtung abhängig ist; Empfangen des Stromeingangssignals über den Eingang; Generieren eines Zwischenwertes in Abhängigkeit von der Zustandsvariablen, wenn die erste neuromorphe Neuronenvorrichtung in den ersten Modus umgeschaltet ist, oder Generieren des Zwischenwertes in Abhängigkeit von dem Stromeingangssignal und unabhängig von der Zustandsvariablen, wenn die erste neuromorphe Neuronenvorrichtung in den zweiten Modus umgeschaltet ist; und Generieren des Ausgangswerts des integrierten Schaltkreises in Abhängigkeit von dem Zwischenwert.
DE112021005715.4T 2020-10-30 2021-10-19 Integrierter schaltkreis mit einem konfigurierbaren neuromorphen neuron für künstliche neuronale netzwerke Pending DE112021005715T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/085,173 US20220138540A1 (en) 2020-10-30 2020-10-30 Integrated circuit with a configurable neuromorphic neuron apparatus for artificial neural networks
US17/085,173 2020-10-30
PCT/EP2021/078954 WO2022089997A1 (en) 2020-10-30 2021-10-19 Integrated circuit with a configurable neuromorphic neuron for artificial neural networks

Publications (1)

Publication Number Publication Date
DE112021005715T5 true DE112021005715T5 (de) 2023-08-24

Family

ID=78302773

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021005715.4T Pending DE112021005715T5 (de) 2020-10-30 2021-10-19 Integrierter schaltkreis mit einem konfigurierbaren neuromorphen neuron für künstliche neuronale netzwerke

Country Status (6)

Country Link
US (1) US20220138540A1 (de)
JP (1) JP2023547072A (de)
CN (1) CN116529736A (de)
DE (1) DE112021005715T5 (de)
GB (1) GB2615262A (de)
WO (1) WO2022089997A1 (de)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10929749B2 (en) * 2017-04-24 2021-02-23 Intel Corporation Neural network optimization mechanism
US20200356847A1 (en) * 2019-05-07 2020-11-12 Hrl Laboratories, Llc Transistorless all-memristor neuromorphic circuits for in-memory computing
WO2021259482A1 (en) * 2020-06-25 2021-12-30 PolyN Technology Limited Analog hardware realization of neural networks

Also Published As

Publication number Publication date
US20220138540A1 (en) 2022-05-05
GB2615262A (en) 2023-08-02
GB202306532D0 (en) 2023-06-14
WO2022089997A1 (en) 2022-05-05
JP2023547072A (ja) 2023-11-09
CN116529736A (zh) 2023-08-01

Similar Documents

Publication Publication Date Title
Upadhyay et al. Deep reinforcement learning of marked temporal point processes
DE4042139C2 (de) Neuron-Einheit
DE112016003245T5 (de) Resistive Verarbeitungseinheit
DE112017000855B4 (de) Energiesparender zeitlich gemultiplexter neurosynaptischer Kern zum Implementieren neuronaler Netze
DE112018000272T5 (de) Resistive Verarbeitungseinheit mit hysteretischen Aktualisierungen zum Trainieren neuronaler Netze
DE112018004223T5 (de) Trainieren künstlicher neuronaler Netze
DE102019116305A1 (de) Pipelining zur verbesserung der inferenzgenauigkeit neuronaler netze
DE112019005119T5 (de) Abgleichtechniken zum angleichen des symmetriepunktes als null-gewichtungspunkt in analogen kreuzungspunktanordnungen
DE112019000226T5 (de) Neuromorpher chip zum aktualisieren präziser synaptischer gewichtswerte
EP0349820B1 (de) Netzwerk -Baustein und Architektur für die programmierbare Emulation künstlicher neuronaler Netze mit digitaler Arbeitsweise
DE112018000723T5 (de) Aktualisierungsverwaltung für eine RPU-Anordnung
DE112011101370T5 (de) Neuronales Netz mit kanonischen gepulsten Neuronen für einen raumzeitlichen Assoziativspeicher
DE112020002186T5 (de) Dnn-training mit asymmetrischen rpu-einheiten
DE4143073A1 (de) Mehrschichtiges neuronales netzwerk
Cardoso et al. Adaptive estimation of Haar wavelet transform parameters applied to fuzzy prediction of network traffic
DE112020001369T5 (de) Gepulste synaptische elemente für gepulste neuronale netze
DE19503147C2 (de) Chaos-Neuronen-Schaltung und diese verwendendes Neuronales Chaos-Netzwerk
DE1915819A1 (de) Verfahren und Anordnung zur adaptiven Zeichenerkennung
DE102021123580A1 (de) Verfahren zum entwickeln einer initialisierungsfunktion zum programmieren eines speicherelements
EP0925541B1 (de) Verfahren und vorrichtung zur rechnergestützten generierung mindestens eines künstlichen trainingsdatenvektors für ein neuronales netz
DE202022100907U1 (de) Ein neuartiges Hybridisierungssystem für die Vorhersage von Zeitreihen
DE112021001968T5 (de) Driftregularisierung zum entgegenwirken einer variation in driftkoeffizienten für analoge beschleuniger
DE112021003881T5 (de) Online-training von neuronalen netzen
DE112020005613T5 (de) Neuromorphe Einheit mit Kreuzschienen-Array-Struktur
DE112021005715T5 (de) Integrierter schaltkreis mit einem konfigurierbaren neuromorphen neuron für künstliche neuronale netzwerke

Legal Events

Date Code Title Description
R012 Request for examination validly filed