DE102021123580A1 - Verfahren zum entwickeln einer initialisierungsfunktion zum programmieren eines speicherelements - Google Patents

Verfahren zum entwickeln einer initialisierungsfunktion zum programmieren eines speicherelements Download PDF

Info

Publication number
DE102021123580A1
DE102021123580A1 DE102021123580.4A DE102021123580A DE102021123580A1 DE 102021123580 A1 DE102021123580 A1 DE 102021123580A1 DE 102021123580 A DE102021123580 A DE 102021123580A DE 102021123580 A1 DE102021123580 A1 DE 102021123580A1
Authority
DE
Germany
Prior art keywords
physical quantity
time
state
initialization function
physical
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
DE102021123580.4A
Other languages
English (en)
Inventor
Thomas Bohnstingl
Angeliki Pantazi
Stanislaw Andrzej Wozniak
Evangelos Stavros Eleftheriou
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE102021123580A1 publication Critical patent/DE102021123580A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/20Memory cell initialisation circuits, e.g. when powering up or down, memory clear, latent image memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/20Initialising; Data preset; Chip identification
    • 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/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4072Circuits for initialization, powering up or down, clearing memory or presetting
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4076Timing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/565Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using capacitive charge storage elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5657Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using ferroelectric storage elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5678Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using amorphous/crystalline phase transition storage elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5685Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using storage elements comprising metal oxide memory material, e.g. perovskites
    • 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
    • G11C13/0021Auxiliary circuits
    • G11C13/0035Evaluating degradation, retention or wearout, e.g. by counting writing cycles
    • 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
    • G11C13/0021Auxiliary circuits
    • G11C13/0061Timing circuits or methods
    • 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
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/30Power supply circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/32Timing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3468Prevention of overerasure or overprogramming, e.g. by verifying whilst erasing or writing
    • G11C16/3481Circuits or methods to verify correct programming of nonvolatile memory cells whilst programming is in progress, e.g. by detecting onset or cessation of current flow in cells and using the detector output to terminate programming
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/56External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10NELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10N70/00Solid-state devices having no potential barriers, and specially adapted for rectifying, amplifying, oscillating or switching
    • H10N70/20Multistable switching devices, e.g. memristors
    • 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
    • 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
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • G11C2013/0083Write to perform initialising, forming process, electro forming or conditioning

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Theoretical Computer Science (AREA)
  • Biophysics (AREA)
  • Computer Hardware Design (AREA)
  • Neurology (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Chemical & Material Sciences (AREA)
  • Materials Engineering (AREA)
  • Crystallography & Structural Chemistry (AREA)
  • Semiconductor Memories (AREA)

Abstract

Die vorliegende Offenbarung bezieht sich auf eine Speichereinheit, die ein Speicherelement aufweist. Das Speicherelement kann eine veränderbare physikalische Größe zum Speichern von Information aufweisen. Die physikalische Größe kann sich in einem veränderten Zustand befinden. Das Speicherelement kann so konfiguriert sein, dass es die physikalische Größe in einen Ausgangszustand setzt. Außerdem kann das Speicherelement eine Drift der physikalischen Größe vom Ausgangszustand zum veränderten Zustand aufweisen. Der Ausgangszustand der physikalischen Größe kann mithilfe einer Initialisierungsfunktion berechnet werden. Die Initialisierungsfunktion kann von einem Sollzustand der physikalischen Größe abhängig sein, und der Sollzustand der physikalischen Größe kann dem veränderten Zustand der physikalischen Größe annähernd entsprechen.

Description

  • HINTERGRUND
  • Die Erfindung bezieht sich allgemein auf das Gebiet der Halbleiterspeichereinheiten.
  • Halbleiterspeichereinheiten können in flüchtige Speichereinheiten, z.B. dynamische Direktzugriffsspeicherzellen (dynamic random-access memory- DRAM), und nichtflüchtige Speichereinheiten, z.B. Phasenwechselspeicher (phase-change memory - PCM) und resistive Direktzugriffsspeichereinheiten (resistive random access memory - RRAM), eingeteilt werden. Die Forschung auf dem Gebiet der Speichereinheiten zielt unter anderem auf hohe Lebensdauer, Datenaufbewahrung, geringe Schreib- und Leselatenz sowie Zuverlässigkeit ab. Die Forschung auf dem Gebiet der Speichereinheiten kann auch die Möglichkeiten von Zelloperationen auf mehreren Ebenen in Bezug auf die Speichereinheiten zum Speichern von mehr als einem Informationsbit pro Speicherzelle berücksichtigen.
  • ERKLÄRUNG DES ERFINDERS ODER MITERFINDERS ZU FRÜHEREN OFFENBARUNGEN
  • Die folgende(n) Offenbarung(en) wird/werden unter der Nummer 35 U.S.C. 102(b)(1)(A) eingereicht:
    • OFFENBARUNG(EN) Deep Learning Incorporating Biologically Inspired Neural Dynamics and in-memory computer, Stanislaw Wozniak, Angeliki Pantazi, Thomas Bohnstingl & Evangelos Eleftheriou, 15. Juni 2020, S. 325 bis 336.
  • KURZDARSTELLUNG
  • Verschiedene Ausführungsformen stellen eine Speichereinheit, eine integrierte Schaltung, ein Verfahren zum Einrichten einer Speichereinheit und ein Verfahren zum Entwickeln einer Initialisierungsfunktion bereit, wie sie durch den Gegenstand der unabhängigen Ansprüche beschrieben sind. Vorteilhafte Ausführungsformen sind in den abhängigen Ansprüchen beschrieben. Ausführungsformen der vorliegenden Erfindung können frei miteinander kombiniert werden, wenn sie sich nicht gegenseitig ausschließen.
  • Bei einem Aspekt bezieht sich die Erfindung auf eine Speichereinheit, die ein Speicherelement aufweist. Das Speicherelement kann eine veränderbare physikalische Größe zum Speichern einer Information aufweisen. Die physikalische Größe kann sich in einem veränderten Zustand (driftet state) befinden. Das Speicherelement kann so konfiguriert sein, dass es die physikalische Größe in einen Ausgangszustand setzt. Außerdem kann das Speicherelement eine Drift der physikalischen Größe vom Ausgangszustand zum veränderten Zustand aufweisen. Der Ausgangszustand der physikalischen Größe kann mithilfe einer Initialisierungsfunktion berechnet werden. Die Initialisierungsfunktion kann von einem Sollzustand der physikalischen Größe abhängig sein, und der Sollzustand der physikalischen Größe kann dem veränderten Zustand der physikalischen Größe annähernd entsprechen.
  • Bei einem anderen Aspekt bezieht sich die Erfindung auf eine integrierte Schaltung, die eine erste Anordnung von Speicherelementen aufweist. Die erste Anordnung von Speicherelementen kann Anschlüsse zum Anlegen entsprechender Spannungen an die jeweiligen Anschlüsse aufweisen, um einzelne elektrische Ströme in den jeweiligen Speicherelementen zu erzeugen. Darüber hinaus kann die erste Anordnung mindestens einen Ausgangsanschluss zum Ausgeben eines elektrischen Ausgangsstroms aufweisen. Die Speicherelemente können so miteinander verbunden werden, dass der elektrische Ausgangsstrom eine Summe der einzelnen elektrischen Ströme ist. Die integrierte Schaltung kann so konfiguriert sein, dass sie den elektrischen Ausgangsstrom auf der Grundlage der angelegten Spannungen erzeugt. Darüber hinaus kann jedes Speicherelement einen jeweils veränderbaren Leitwert aufweisen, wobei sich der jeweilige Leitwert in einem jeweils veränderten Zustand befinden kann. Das jeweilige Speicherelement kann so konfiguriert sein, dass es den jeweiligen Leitwert in einen jeweiligen Ausgangszustand setzt. Außerdem kann das jeweilige Speicherelement eine jeweilige Drift des jeweiligen Leitwerts vom jeweiligen Ausgangszustand zum jeweiligen veränderten Zustand aufweisen. Der jeweilige Ausgangszustand des jeweiligen Leitwerts kann mithilfe einer jeweiligen Initialisierungsfunktion berechnet werden. Die jeweilige Initialisierungsfunktion kann von einem jeweiligen Sollzustand des jeweiligen Leitwerts abhängig sein, und der jeweilige Sollzustand des jeweiligen Leitwerts kann dem jeweiligen veränderten Zustand des jeweiligen Leitwerts annähernd entsprechen.
  • Bei einem anderen Aspekt bezieht sich die Erfindung auf ein Verfahren zum Einrichten einer Speichereinheit, die ein Speicherelement aufweist, wobei das Speicherelement eine veränderbare physikalische Größe aufweist. Das Verfahren weist auf:
  • Auswählen eines Sollzustands der physikalischen Größe;
  • Berechnen eines Ausgangszustands der physikalischen Größe unter Verwendung einer Initialisierungsfunktion, wobei die Initialisierungsfunktion vom Sollzustand der physikalischen Größe abhängig ist; Setzen der physikalischen Größe in den berechneten Ausgangszustand der physikalischen Größe.
  • Bei einem anderen Aspekt bezieht sich die Erfindung auf ein Verfahren zum Entwickeln einer Initialisierungsfunktion. Die Initialisierungsfunktion kann eine Beziehung zwischen einem jeweils ausgewählten Sollzustand einer veränderbaren physikalischen Größe eines Speicherelements und einem entsprechenden Ausgangszustand der physikalischen Größe des Speicherelements darstellen. Die physikalische Größe des Speicherelements kann auf den entsprechenden Ausgangszustand der physikalischen Größe eingestellt werden, um in Richtung des jeweils ausgewählten Sollzustands der physikalischen Größe zu driften. Das Verfahren weist Setzen der physikalischen Größe des Speicherelements auf einen Anfangswert zu einem Anfangszeitpunkt in einem ersten Schritt auf; Messen eines Istwerts der physikalischen Größe des Speicherelementes nach einem verstrichenen vorgegebenen Zeitraum in einem zweiten Schritt, wobei der verstrichene vorgegebene Zeitraum am Anfangszeitpunkt beginnt; Speichern des Anfangswerts und des Istwerts der physikalischen Größe in einer Datenbank in einem dritten Schritt; Wiederholen des ersten, zweiten und dritten Schritts und Setzen der physikalischen Größe des Speicherelements auf einen anderen Anfangswert bei jeder Wiederholung des ersten Schritts, um mehrere verschiedene Paare des Anfangs- und des Istwerts der physikalischen Größe in der Datenbank zu speichern; Entwickeln der Initialisierungsfunktion auf der Grundlage der Datenbank.
  • Bei einem anderen Aspekt bezieht sich die Erfindung auf ein Computerprogrammprodukt, das ein durch einen Computer lesbares Speichermedium mit einem darin enthaltenen durch einen Computer lesbaren Programmcode aufweist, wobei der durch einen Computer lesbare Programmcode so konfiguriert ist, dass er alle Schritte des Verfahrens zum Einrichten einer Speichereinheit oder zum Entwickeln einer Initialisierungsfunktion implementiert.
  • Figurenliste
  • Nachfolgend werden Ausführungsformen der Erfindung nur beispielhaft unter Bezugnahme auf die Zeichnungen näher erläutert, in denen:
    • 1 ein Ablaufplan für ein Verfahren zum Entwickeln einer Initialisierungsfunktion gemäß dem vorliegenden Gegenstand ist.
    • 2 einen Datenfluss der Initialisierungsfunktion veranschaulicht.
    • 3 ein Speicherelement veranschaulicht.
    • 4 ein Diagramm zeigt, das Kurven aufweist, die jeweils eine Drift einer physikalischen Größe im Verlauf der Zeit in Bezug auf einen Anfangswert der physikalischen Größe nach Programmieren des in 3 dargestellten Speicherelements zeigen.
    • 5 ein Diagramm zeigt, das Kurven aufweist, die jeweils eine Drift einer physikalischen Größe im Verlauf der Zeit in Bezug auf einen berechneten Anfangswert der physikalischen Größe auf der Grundlage eines ausgewählten Sollzustands der physikalischen Größe des in 3 dargestellten Speicherelements zeigen.
    • 6 eine Datenbank veranschaulicht, die Paare des Anfangswerts der physikalischen Größe und eines entsprechenden Istwerts der physikalischen Größe aufweist.
    • 7 ein Diagramm veranschaulicht, das die Initialisierungsfunktion aufweist.
    • 8 eine weitere Datenbank veranschaulicht, die Sätze von weiteren Istwerten der physikalischen Größe aufweist, wobei jeder Satz eine zeitliche Abfolge des Werts der physikalischen Größe darstellt.
    • 9 eine zeitabhängige Initialisierungsfunktion veranschaulicht.
    • 10 eine integrierte Schaltung veranschaulicht, die eine Kreuzschienenanordnung von Memristoren und eine neuromorphe Neuronenvorrichtung aufweist.
    • 11 eine Zeitreihe von Eingabewerten der in 10 dargestellten neuromorphen Neuronenvorrichtung veranschaulicht.
    • 12 ein neuronales Netzwerk veranschaulicht.
    • 13 die in 10 gezeigte Kreuzschienenanordnung von Memristoren im Detail veranschaulicht.
    • 14 ein Ablaufplan für ein Verfahren zum Einrichten einer Speichereinheit ist.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung wurden zum Zwecke der Veranschaulichung vorgestellt, sollen jedoch nicht erschöpfend oder auf die Ausführungsformen beschränkt sein. Für Fachleute ist offensichtlich, dass viele Änderungen und Abwandlungen möglich sind, ohne vom Anwendungsbereich und Erfindungsgedanken der beschriebenen Ausführungsformen abzuweichen. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder technische Verbesserung gegenüber Technologien auf dem Markt bestmöglich zu erläutern oder es Fachleuten zu ermöglichen, die hierin beschriebenen Ausführungsformen zu verstehen.
  • Das Speicherelement kann ein Kondensator, ein Widerstand oder ein resistives Speicherelement sein, der/das im Folgenden auch als Memristor bezeichnet wird. Bei dem Memristor kann es sich um ein Phasenwechsel-Speicherelement (PCM), ein resistives Metalloxid-RAM-Element, ein leitfähiges Brücken-RAM-Element oder ein magnetisches RAM-Element handeln. In diesem Fall kann das Speicherelement ein Kondensator sein, und die physikalische Größe kann eine elektrische Ladung sein. Die Ladung kann durch Aufladen des Kondensators verändert werden. In diesem Fall kann das Speicherelement ein Memristor sein, und die physikalische Größe kann der Leitwert des resistiven Speicherelements (RME) sein. Der Leitwert des RME kann durch Anlegen einer Steuerspannung an das RME verändert werden.
  • Ein Wert der physikalischen Größe, d.h. ein Zustand der physikalischen Größe, kann einer gespeicherten Information, z.B. dem Wert einer Variablen, entsprechen. So kann beispielsweise ein höherer Wert der physikalischen Größe einem höheren Wert der Variablen entsprechen und umgekehrt. In einem anderen Beispiel kann ein niedrigerer Wert der physikalischen Größe einem höheren Wert der Variablen entsprechen und umgekehrt. Bei der gespeicherten Information kann es sich um einen Wert handeln, zum Beispiel um den Wert einer Variablen. Der Wert kann ein Eintrag in einer Matrix sein. Die physikalische Größe kann der Leitwert, die Ladung oder ein Widerstand des Speicherelements sein.
  • Bei dem Ausgangszustand der physikalischen Größe kann es sich um einen Zustand der physikalischen Größe unmittelbar nach dem Programmieren des Speicherelements handeln. Das Programmieren des Speicherelements kann somit als Setzen der physikalischen Größe in den Ausgangszustand betrachtet werden. Das Setzen der physikalischen Größe kann durch Anlegen einer Programmierspannung oder eines Programmierstroms an das Speicherelement durchgeführt werden.
  • Der Begriff „Drift“, wie er hier verwendet wird, beschreibt eine Änderung eines Werts der physikalischen Größe im Zeitverlauf, z.B. ein Abfallen oder eine Zunahme der physikalischen Größe im Zeitverlauf. Der Begriff „veränderter Zustand“, wie er hier verwendet wird, beschreibt einen veränderten Zustand der physikalischen Größe im Vergleich zum Ausgangszustand. Zwischen einem Zeitpunkt, zu dem sich die physikalische Größe im Ausgangszustand befindet, und einem weiteren Zeitpunkt, zu dem sich die physikalische Größe im veränderten Zustand befindet, ist Zeit vergangen. Darüber hinaus kann in dem veränderten Zustand der physikalischen Größe des Speicherelements die Änderung der physikalischen Größe im Zeitverlauf geringer sein als eine Änderung der physikalischen Größe im Ausgangszustand der physikalischen Größe im Zeitverlauf. Aus diesem Grund kann eine Information, die durch einen Istwert der physikalischen Größe des Speicherelements dargestellt werden kann, im Zeitverlauf mit einer höheren Genauigkeit gehalten werden, wenn sich die physikalische Größe im veränderten Zustand befindet. In einem Beispiel kann die Änderung der physikalischen Größe im Zeitverlauf im veränderten Zustand der physikalischen Größe weniger als zehn Prozent im Vergleich zu einer Änderung der physikalischen Größe im Zeitverlauf im Ausgangszustand der physikalischen Größe betragen. In einem weiteren Beispiel kann die Änderung der physikalischen Größe im Zeitverlauf im veränderten Zustand der physikalischen Größe weniger als fünf oder in einem weiteren Beispiel weniger als ein Prozent betragen, verglichen mit der Änderung der physikalischen Größe im Zeitverlauf im Ausgangszustand der physikalischen Größe.
  • Nachdem die physikalische Größe auf einen Anfangswert gesetzt wurde, verringert sich somit die Veränderung der physikalischen Größe im Zeitverlauf. In Experimenten wurde festgestellt, dass dieser Effekt vom Anfangswert der physikalischen Größe abhängig ist. Die vorliegende Speichereinheit kann so konfiguriert sein, dass sie die physikalische Größe des Speicherelements in den Ausgangszustand setzt und sie verwendet, nachdem die physikalische Größe den veränderten Zustand erreicht hat. Somit stellt die vorliegende Speichereinheit eine Speichereinheit bereit, die im Vergleich zu einem Standardanwendungsfall ein Speicherelement mit einer höheren Präzision verwendet. Der Standardanwendungsfall kann aufweisen, dass die physikalische Größe des Speicherelements, z.B. der Leitwert des Memristors, auf den Ausgangszustand programmiert wird und das Speicherelement, z.B. der Memristor, direkt danach verwendet wird.
  • Der Ausgangszustand oder der Anfangswert der physikalischen Größe kann mithilfe der Initialisierungsfunktion unter Verwendung eines Computers, z.B. einer Nachschlagetabelle, berechnet werden. In einem anderen Beispiel kann die physikalische Größe mithilfe der Initialisierungsfunktion auf manuelle Weise berechnet werden.
  • Dieser Vorteil kann auch für eine Anwendung nützlich sein, bei der die oben genannten RMEs verwendet werden können, um die oben genannten einzelnen elektrischen Ströme zu erzeugen. In einem Beispiel können die Spannungen in Form von Spannungsimpulsen mit einer konstanten Spannung, aber mit unterschiedlicher Länge oder Anzahl der Impulse innerhalb eines Zeitintervalls angelegt werden, um eine Pulsweitenmodulation zum Erzeugen der einzelnen elektrischen Ströme durchzuführen. In einem weiteren Beispiel können die Spannungen so angelegt werden, dass mindestens zwei Spannungen unterschiedliche Spannungswerte aufweisen, um die einzelnen elektrischen Ströme zu erzeugen. Die Spannungen können mittels einer Spannungs- oder Stromquelle angelegt werden. Der elektrische Ausgangsstrom, der als Summe der einzelnen elektrischen Ströme erzeugt werden kann, kann mit einer höheren Präzision erzeugt werden. Auf diese Weise können die jeweiligen RMEs, deren Leitwert sich im entsprechenden veränderten Zustand befindet, dazu verwendet werden, auf Hardware-Ebene eine genauere Addition durchzuführen. Dies kann insbesondere bei der folgenden Anwendung von Vorteil sein.
  • Gemäß einer Ausführungsform kann die integrierte Schaltung weiterhin eine neuromorphe Neuronenvorrichtung zum Simulieren einer Schicht eines neuronalen Netzwerks aufweisen. In dieser Ausführungsform kann die neuromorphe Neuronenvorrichtung einen Eingangsanschluss aufweisen, wobei der Eingangsanschluss mit dem Ausgangsanschluss der ersten Anordnung verbunden werden kann. Dabei kann der erzeugte elektrische Ausgangsstrom als Eingangssignal für die neuromorphe Neuronenvorrichtung verwendet werden. Wenn die RMEs mit höherer Präzision arbeiten, kann das Eingangssignal für die neuromorphe Neuronenvorrichtung eine höhere Genauigkeit erreichen. Daher kann die neuromorphe Neuronenvorrichtung bessere Ergebnisse liefern, wenn sie für Inferenzaufgaben eingesetzt wird.
  • Gemäß einer Ausführungsform kann der jeweilige Sollzustand der physikalischen Größe des entsprechenden Speicherelements an eine Nutzung der integrierten Schaltung angepasst werden. Die Nutzung kann sich auf einen Zeitpunkt beziehen, zu dem das Speicherelement verwendet werden kann. Wenn dieser Zeitpunkt bekannt ist, kann die physikalische Größe des Speicherelements zunächst so gesetzt werden, dass die physikalische Größe des Speicherelements zu diesem Zeitpunkt den Sollzustand erreichen kann.
  • Die Kenntnis des zustandsabhängigen Verhaltens der Drift der physikalischen Größe nach dem Programmieren des Speicherelements kann auch für das oben beschriebene Verfahren zum Einrichten der Speichereinheit von Vorteil sein. Da die Initialisierungsfunktion zum Berechnen des Ausgangszustands der physikalischen Größe verwendet werden kann, und die Initialisierungsfunktion vom Sollzustand der physikalischen Größe abhängt, kann die Speichereinheit so eingerichtet werden, dass sie genauer arbeitet, nachdem die physikalische Größe den veränderten Zustand erreicht hat.
  • Gemäß einer Ausführungsform des Verfahrens zum Einrichten der Speichereinheit kann das Verfahren weiterhin Messen einer verstrichenen Zeit ab einem Anfangszeitpunkt des Setzens der physikalischen Größe in den berechneten Ausgangszustand der physikalischen Größe bis zu einem Istzeitpunkt aufweisen. Das Verfahren kann weiterhin aufweisen, dass die gemessene verstrichene Zeit mit einem vorgegebenen Zeitraum verglichen wird, wobei der vorgegebene Zeitraum von einer Nutzung des Speicherelements abhängen kann. Darüber hinaus kann das Verfahren aufweisen, dass das Speicherelement für den Betrieb freigegeben wird, wenn die gemessene verstrichene Zeit größer ist als der vorgegebene Zeitraum. Mit dieser Ausführungsform kann sichergestellt werden, dass die Speichereinheit erst nach Ablauf des bestimmten Zeitraums nach dem Programmieren des Speicherelements der Speichereinheit verwendet werden kann. Mit anderen Worten, diese Ausführungsform verhindert eine Nutzung der Speichereinheit mit einer vergleichsweise geringen Genauigkeit.
  • Gemäß einer Ausführungsform des Verfahrens zum Entwickeln der Initialisierungsfunktion kann das Messen des Istwerts der physikalischen Größe des Speicherelements im zweiten Schritt zu einem ersten Zeitpunkt durchgeführt werden, wobei eine Zeitspanne zwischen dem Anfangszeitpunkt und dem ersten Zeitpunkt dem vorgegebenen Zeitraum entspricht. Da der zweite Schritt wiederholt werden kann, um die mehreren verschiedenen Paare des Anfangswerts und Istwerts der physikalischen Größe in der Datenbank zu speichern, kann diese Ausführungsform es ermöglichen, die Werte für die Datenbank so abzurufen, dass die Zeitspanne zwischen dem Anfangszeitpunkt und dem Zeitpunkt der Messung des Istwerts der physikalischen Größe für jedes Paar die gleiche ist. Dadurch ist es leichter, die Initialisierungsfunktion als zeitunabhängige Funktion zu entwickeln.
  • Gemäß einer Ausführungsform des Verfahrens zum Entwickeln der Initialisierungsfunktion kann der vorgegebene Zeitraum an eine zukünftige Nutzung des Speicherelements angepasst werden. Die zukünftige Nutzung kann einen zukünftigen Zeitpunkt der Nutzung des Speicherelements aufweisen. Ist der künftige Zeitpunkt der Nutzung bekannt, kann das Speicherelement so programmiert werden, dass die physikalische Größe nach einem Driften vom programmierten Wert fast genau zum künftigen Zeitpunkt der Nutzung ihren Sollzustand erreicht.
  • Gemäß einer Ausführungsform des Verfahrens zum Entwickeln der Initialisierungsfunktion kann das Messen des Istwerts der physikalischen Größe des Speicherelements im zweiten Schritt durchgeführt werden, wenn eine Änderung des Istwerts der physikalischen Größe im Zeitverlauf unter einem bestimmten Schwellenwert liegt. Wenn die Initialisierungsfunktion so entwickelt werden kann, kann die anfängliche physikalische Größe mithilfe der Initialisierungsfunktion so berechnet werden, dass die physikalische Größe eine Änderung des veränderten Zustands der physikalischen Größe im Zeitverlauf aufweist, die mit dem Schwellenwert vergleichbar oder kleiner als der Schwellenwert sein kann. Somit kann die Lebensdauer des Speicherelements durch diese Ausführungsform verbessert werden.
  • Gemäß einer Ausführungsform des Verfahrens zum Entwickeln der Initialisierungsfunktion kann die Initialisierungsfunktion zeitunabhängig sein. Diese Ausführungsform kann die Initialisierungsfunktion als eine sehr praktische Funktion bereitstellen, da keine Zeitmessungen vorgenommen werden müssen, weder zum Berücksichtigen eines Zeitpunkts der Nutzung, noch während der Nutzung.
  • Gemäß einer Ausführungsform des Verfahrens zum Entwickeln der Initialisierungsfunktion kann die Initialisierungsfunktion eine Potenzfunktion sein, die den jeweils ausgewählten Sollzustand der veränderbaren physikalischen Größe als Exponent der Potenzfunktion und den entsprechenden Ausgangszustand der physikalischen Größe als Funktionswert der Potenzfunktion aufweist. Diese Ausführungsform kann sehr genau die Beobachtungen widerspiegeln, die beim Durchführen von Experimenten in Bezug auf die Drift der physikalischen Größe von Speicherelementen gemacht wurden. Daher kann das Verwenden der Initialisierungsfunktion als Potenzfunktion genauere Ergebnisse liefern, wenn die physikalische Größe mithilfe der Initialisierungsfunktion eingestellt wird.
  • Gemäß einer Ausführungsform des Verfahrens zum Entwickeln der Initialisierungsfunktion kann die Initialisierungsfunktion gleich W ij = w max G max α G ij α ƒ ( G ) = a * e b G + c
    Figure DE102021123580A1_0001
    sein, wobei G der jeweils ausgewählte Sollzustand der veränderbaren physikalischen Größe ist, ƒ(G) der jeweilige Ausgangszustand der physikalischen Größe ist und a, b und c Koeffizienten der Initialisierungsfunktion sind. Diese Ausführungsform kann sehr genau die Beobachtungen darstellen, die beim Durchführen von mehreren weiteren Experimenten in Bezug auf die Drift der physikalischen Größe von Speicherelementen gemacht wurden. Somit kann das Verwenden der Initialisierungsfunktion gemäß dieser Ausführungsform zu einer höheren Genauigkeit der Initialisierungsfunktion führen.
  • Gemäß einer Ausführungsform des Verfahrens zum Entwickeln der Initialisierungsfunktion kann das Verfahren weiterhin Messen eines weiteren Istwerts der physikalischen Größe des Speicherelements und eines Istzeitraums aufweisen, wobei der Istzeitraum durch eine verstrichene Zeit zwischen dem Anfangszeitpunkt und einem Istzeitpunkt in einem Teilschritt des zweiten Schritts definiert ist; Speichern des weiteren Istwerts der physikalischen Größe und des Istzeitraums in der Datenbank in einem weiteren Teilschritt des zweiten Schritts; Wiederholen des Teilschritts und des weiteren Teilschritts des zweiten Schritts, während die Zeit ab dem Anfangszeitpunkt verstreicht, um mehrere verschiedene weitere Istwerte der physikalischen Größe und entsprechende Istzeiträume in der Datenbank zu speichern; Entwickeln der Initialisierungsfunktion auf der Grundlage der Datenbank.
  • Mit dieser Ausführungsform kann eine zeitabhängige Initialisierungsfunktion entwickelt werden. Wenn die Initialisierungsfunktion zeitabhängig ist, kann die physikalische Größe im Hinblick auf die zukünftige Nutzung genauer eingerichtet werden, zum Beispiel im Hinblick auf den zukünftigen Zeitpunkt der Nutzung des Speicherelements. Darüber hinaus kann diese Ausführungsform insofern von Vorteil sein, als bei Durchführen von Experimenten in Bezug auf die Drift des Speicherelements die größtmögliche Datenmenge gewonnen werden kann.
  • Gemäß einer weiteren Ausführungsform des Verfahrens zum Entwickeln der Initialisierungsfunktion kann das Verfahren weiterhin Entwickeln einer entsprechenden zeitabhängigen Initialisierungsfunktion für jeden Anfangswert der physikalischen Größe aufweisen. Die entsprechende zeitabhängige Initialisierungsfunktion kann eine zeitabhängige Drift der physikalischen Größe des Speicherelements darstellen, ausgehend vom entsprechenden Ausgangszustand der physikalischen Größe des Speicherelements. Gemäß dieser Ausführungsform kann ein Satz von verschiedenen Initialisierungsfunktionen auf der Grundlage der Datenbank entwickelt werden. Die verschiedenen Initialisierungsfunktionen können durch Interpolation zum Berechnen des Anfangswerts der physikalischen Größe verwendet werden.
  • Gemäß einer weiteren Ausführungsform des Verfahrens zum Entwickeln der Initialisierungsfunktion kann das Verfahren weiterhin aufweisen, dass die Initialisierungsfunktion so entwickelt wird, dass sie die Beziehung zwischen dem jeweils ausgewählten Sollzustand der veränderbaren physikalischen Größe des Speicherelements und dem entsprechenden Ausgangszustand der physikalischen Größe des Speicherelements und einem ausgewählten verstrichenen Zeitraum nach Setzen der physikalischen Größe des Speicherelements in den entsprechenden Ausgangszustand darstellen kann. Der ausgewählte verstrichene Zeitraum kann von einer vordefinierten zukünftigen Nutzung des Speicherelements abhängig sein. Diese Ausführungsform kann die oben erwähnte Interpolation ersetzen.
  • 1 ist ein Ablaufplan eines Verfahrens zum Entwickeln einer Initialisierungsfunktion 200, wie in 2 gezeigt. Die Initialisierungsfunktion 200 kann eine Beziehung zwischen einem jeweils ausgewählten Sollzustand einer veränderbaren physikalischen Größe Gtarget_sel eines Speicherelements 300 und einem entsprechenden Ausgangszustand der physikalischen Größe Ginit_sel des Speicherelements 300 darstellen, wie in 3 gezeigt.
  • Ein Beispiel für die visuelle Darstellung 720 der Initialisierungsfunktion 200 ist im Diagramm von 7 als durchgezogene Linie dargestellt. Die x-Achse des Diagramms kann mögliche Werte des ausgewählten Sollzustands der physikalischen Größe Gtarget_sel darstellen, und die y-Achse kann Werte des entsprechenden Ausgangszustands der physikalischen Größe Ginit_sel darstellen, die jeweils einem der möglichen Werte des ausgewählten Sollzustands der physikalischen Größe Gtarget-sel entsprechen können. Ein Datenfluss in Bezug auf die Initialisierungsfunktion 200 ist in 2 dargestellt. Der Übersichtlichkeit halber ist im Diagramm nur ein Beispiel für einen Wert des ausgewählten Sollzustands der physikalischen Größe Gtarget_sel und den entsprechenden Wert des Ausgangszustands der physikalischen Größe Ginit_sel in Form eines Kreises dargestellt. Im Allgemeinen kann die Initialisierungsfunktion 200 dazu verwendet werden, jeden technisch möglichen Wert des Sollzustands der physikalischen Größe Gtarget_sel auszuwählen und den entsprechenden Wert des Ausgangszustands der physikalischen Größe Ginit_sel abzurufen.
  • Das Speicherelement 300 kann zwei Anschlüsse 301, 302 zum Anlegen einer Spannung oder eines Stroms zum Einstellen der physikalischen Größe aufweisen, wie in 3 dargestellt. Die physikalische Größe des Speicherelements 300 kann auf den entsprechenden Ausgangszustand der physikalischen Größe Ginit_sel_i eingestellt werden, um in Richtung des jeweils ausgewählten Sollzustands der physikalischen Größe Gtarget_sel_i zu driften. Es kann zu einem Driften der physikalischen Größe im Zeitverlauf kommen, wie in 5 dargestellt. 5 veranschaulicht ein jeweiliges Driften der physikalischen Größe im Zeitverlauf von verschiedenen Werten des Ausgangszustands der physikalischen Größe Ginit_sel_i zu einem entsprechenden Sollzustand der physikalischen Größe Gtarget_sel_i. Die Werte der physikalischen Größe sind logarithmisch zur y-Achse des Diagramms in 5 gezeichnet und können Ergebnisse von Experimenten widerspiegeln, die durch das nachstehende Verfahren beschrieben werden. Im Beispiel von 5 ist die Einheit der physikalischen Größe Mikrosiemens [µS], und bei der physikalischen Größe kann es sich um den Leitwert des Speicherelements 300 handeln. Die Zeit wird auf der x-Achse des Diagramms dargestellt. Es ist zu beobachten, dass die jeweilige Drift der physikalischen Größe im Verlauf der Zeit vom Wert des Ausgangszustands der physikalischen Größe Ginit_sel_i abhängt.
  • Das Verfahren kann die folgenden Schritte aufweisen. In einem ersten Schritt 101, wie in 1 dargestellt, kann die physikalische Größe des Speicherelements 300 auf einen Anfangswert Ginit_1 zu einem Anfangszeitpunkt tinit gesetzt werden. Dies kann durch Anlegen einer Spannung U oder eines Stroms / zwischen den beiden Anschlüssen 301, 302 erfolgen. Durch Anlegen der Spannung U oder des Stroms I kann das Speicherelement 300 programmiert werden, d.h., das Speicherelement 300 kann seinen internen Zustand ändern, sodass sich der Wert der physikalischen Größe ändert. So kann sich beispielsweise der Prozentsatz der Kristallisierung des Speicherelements 300 beim Anlegen der Spannung U oder des Stroms / ändern. Um die physikalische Größe des Speicherelements auf den Anfangswert Ginit_1 zu setzen, kann die physikalische Größe des Speicherelements 300 gemessen werden. Als Reaktion auf das Setzen der physikalischen Größe des Speicherelements auf den Anfangswert Ginit_1 kann die Spannung U oder der Strom / unterbrochen werden. Das Unterbrechen der Spannung U oder des Stroms / kann im Zeitverlauf zu einer Drift der physikalischen Größe des Speicherelements 300 führen. Dies kann durch thermische Effekte und/oder inhärente strukturelle Entspannung verursacht werden.
  • In einem zweiten Schritt 102, wie in 2 dargestellt, kann nach einem verstrichenen vorgegebenen Zeitraum ΔT ein Istwert der physikalischen Größe Gact_1 des Speicherelements gemessen werden, wobei der verstrichene vorgegebene Zeitraum ΔT am Anfangszeitpunkt beginnt, wie in 4 dargestellt. Der verstrichene vorgegebene Zeitraum ΔT endet zu einem Istzeitpunkt tact. Der Istwert der physikalischen Größe Gact_1 des Speicherelements 300 kann zum Istzeitpunkt tact gemessen werden.
  • In einem dritten Schritt 103, wie in 2 dargestellt, können der Anfangswert Ginit_1 und der Istwert der physikalischen Größe Gact_1 in einer Datenbank 600 gespeichert werden. Diese Werte können in der Datenbank 600 als entsprechende Werte gespeichert werden, beispielsweise in Form eines ersten Datensatzes der Datenbank 600. Der Istwert der physikalischen Größe Gact_1 kann in der Datenbank 600 so gespeichert werden, dass der Anfangswert Ginit_1 dem entsprechenden Istwert der physikalischen Größe Gact_1 zugewiesen wird und umgekehrt.
  • Der erste Schritt 101, der zweite Schritt 102 und der dritte Schritt 103 können mehrere Male wiederholt werden. Bei jeder Wiederholung des ersten Schritts kann die physikalische Größe des Speicherelements 300 auf einen anderen Anfangswert Ginit_i gesetzt werden. Darüber hinaus kann bei jeder Wiederholung ein anderes Paar des Anfangswerts der physikalischen Größe Ginit_i und des Istwerts der physikalischen Größe Gact_i in der Datenbank 600 in Form eines weiteren Datensatzes der Datenbank 600 im wiederholten dritten Schritt 103 gespeichert werden. Die verschiedenen Paare oder weiteren Datensätze sind in 6 in Form von Zeilen der Datenbank 600 dargestellt.
  • 5 veranschaulicht ein Beispiel für das Verfahren, bei dem das Messen des Istwerts der physikalischen Größe Gact_i im zweiten Schritt 102 zu einem ersten Zeitpunkt durchgeführt werden kann, wobei eine Zeitspanne zwischen dem Anfangszeitpunkt und dem ersten Zeitpunkt dem vorgegebenen Zeitraum entspricht. Daher kann in diesem Beispiel der Istzeitpunkt tact bei jeder Wiederholung des zweiten Schritts 102 derselbe sein und in diesem Fall dem ersten Zeitpunkt entsprechen.
  • In der Praxis kann der vorgegebene Zeitraum ΔT an eine zukünftige Nutzung des Speicherelements 300 angepasst werden. Beispielsweise kann das Speicherelement 300 verwendet werden, nachdem eine erste Zeitspanne verstrichen ist, nachdem das Speicherelement 300 in den entsprechenden Ausgangszustand der physikalischen Größe Ginit_sel gesetzt wurde. Die erste Zeitspanne kann in diesem Beispiel dem vorgegebenen Zeitraum ΔT entsprechen. Eine Nutzung, d.h. zukünftige Nutzung, des Speicherelements 300 kann in Form des Auslesens einer Information erfolgen, die in Form des jeweils ausgewählten Sollzustands der physikalischen Größe Gtarget_sel des Speicherelements 300 gespeichert wurde, wenn sich die physikalische Größe des Speicherelements 300 im veränderten Zustand befindet. Im veränderten Zustand entspricht die physikalische Größe des Speicherelements 300 annähernd dem ausgewählten Sollzustand der physikalischen Größe Gtarget_sel des Speicherelements 300. Insbesondere kann das Speicherelement 300 zu einem Zeitpunkt der Nutzung verwendet werden, bei dem eine Zeitspanne zwischen einem Zeitpunkt des Setzens des Speicherelements 300 auf den entsprechenden Ausgangszustand der physikalischen Größe Ginit_sel und dem Zeitpunkt der Nutzung dem vorgegebenen Zeitraum ΔT entspricht. In diesem Fall kann der vorgegebene Zeitraum ΔT an den Zeitpunkt der Nutzung angepasst werden.
  • In einem anderen Beispiel kann sich der Istzeitpunkt tact von einer Wiederholung zur nächsten Wiederholung des zweiten Schrittes 102 unterscheiden. Allerdings kann eine Zeitspanne zwischen dem Istzeitpunkt tact und dem Anfangszeitpunkt größer sein als der vorgegebene Zeitraum ΔT für jede Wiederholung des zweiten Zeitschritts 102. Dieses Beispiel des Verfahrens kann aufweisen, dass der Istzeitpunkt tact für das Messen in Schritt 102 so gewählt wird, dass eine Änderung des Istwerts der physikalischen Größe Gact_i im Zeitverlauf unter einem vorgegebenen Schwellenwert liegt.
  • In einem weiteren Schritt 104, wie in 1 dargestellt, kann die Initialisierungsfunktion 200 auf der Grundlage der Datenbank 600 entwickelt werden. Ein Entwickeln der Initialisierungsfunktion 200 kann durch Durchführen einer Annäherung einer ersten Funktion 710, wie in 7 dargestellt, realisiert werden. Die erste Funktion 710 kann jeden Istwert der physikalischen Größe Gact_i auf den entsprechenden Anfangswert der physikalischen Größe Ginit_i abbilden. Die erste Funktion 710 kann diskret sein und aus der Datenbank 600 abgeleitet werden. In einem Beispiel kann die erste Funktion 710 nur die Werte aufweisen, die in der Datenbank 600 als zulässige Argumente und Funktionswerte gespeichert sind. Anders ausgedrückt, die Annäherung kann auf der Grundlage der in der Datenbank 600 gespeicherten Werte durchgeführt werden. Daher kann die erste Funktion 710 durch die in der Datenbank 600 gespeicherten Werte vollständig beschrieben werden. Aus Gründen der Übersichtlichkeit ist die erste Funktion 710 im Diagramm von 7 als gepunktete Linie dargestellt. Ebenfalls aus Gründen der Übersichtlichkeit ist die visuelle Darstellung 720 der Initialisierungsfunktion 200 unterhalb der ersten Funktion 710 gezeichnet. Im Allgemeinen kann die Annäherung so durchgeführt werden, dass die Initialisierungsfunktion 200 die in der Datenbank 600 gespeicherten Werte aufweisen kann. In den meisten Fällen kann die visuelle Darstellung 720 der Initialisierungsfunktion 200 daher mit der ersten Funktion 710 übereinstimmen, die im Diagramm von 7 dargestellt ist.
  • Die Initialisierungsfunktion 200 kann jeden Istwert der physikalischen Größe Gact_i auf einen entsprechenden angenäherten Wert der physikalischen Größe Gapprox_i abbilden. Jeder angenäherte Wert der physikalischen Größe Gapprox_i kann sich dem jeweiligen Anfangswert der physikalischen Größe Ginit_i annähern, der dem jeweiligen Istwert der physikalischen Größe Gact_i entspricht. Die Initialisierungsfunktion 200 kann Parameter zum Annähern an die erste Funktion 710 aufweisen. Die Initialisierungsfunktion 200 kann zum Beispiel ein Polynom sein und wie folgt beschrieben werden: ƒ ( G a c t _ i ) = j = 0 n ( a j G a c t i j ) ,
    Figure DE102021123580A1_0002
    wobei ƒ(Gact_i) der angenäherte Wert der physikalischen Größe Gapprox_i und aj ein j-ter Parameter oder Koeffizient des Polynoms sein kann.
  • Die Annäherung der ersten Funktion 710 kann so durchgeführt werden, dass eine Wurzel der mittleren Fehlerquadratsumme, die durch Verwenden aller angenäherten Werte der physikalischen Größe Gapprox_i und des jeweiligen Anfangswerts der physikalischen Größe Ginit_i gebildet werden kann, verringert werden kann. Die Initialisierungsfunktion 200 kann von einem trainierten neuronalen Netzwerk bereitgestellt werden. Das trainierte neuronale Netzwerk kann sich an die erste Funktion 710 annähern.
  • In einem Beispiel kann die Initialisierungsfunktion 200 zeitunabhängig sein. Gemäß einem weiteren Beispiel kann die Initialisierungsfunktion 200 eine Potenzfunktion sein, die den jeweils ausgewählten Sollzustand der veränderbaren physikalischen Größe Gtarget_sel als einen Exponenten der Potenzfunktion und den entsprechenden Ausgangszustand der physikalischen Größe Ginit_sel als einen Funktionswert der Potenzfunktion aufweist.
  • Die Initialisierungsfunktion kann zum Beispiel gleich W ij = w max G max α G ij α ƒ ( G ) = a * e b G + c
    Figure DE102021123580A1_0003
    sein, wobei G der jeweils ausgewählte Sollzustand der veränderbaren physikalischen Größe Gtarget_sel, ƒ(G) der entsprechende Ausgangszustand der physikalischen Größe Ginit_sel ist und α, b und c Koeffizienten der Initialisierungsfunktion sind.
  • In einem weiteren Beispiel kann das Verfahren weiterhin Messen eines weiteren Istwerts der physikalischen Größe Gact_f_1_1 des Speicherelements und eines Istzeitraums ΔTf_1_1 aufweisen, wobei der Istzeitraum ΔTƒ_1_1 durch eine verstrichene Zeit zwischen dem Anfangszeitpunkt und einem weiteren Istzeitpunkt tact_f_1_1 in einem Teilschritt 102.1 des zweiten Schritts 102 definiert wird. In einem weiteren Teilschritt 102.2 des zweiten Schritts 102 können der weitere Istwert der physikalischen Größe Gact_f_1_1 und der Istzeitraum ΔTƒ_1_1 in einer zweiten Datenbank 800 gespeichert werden, wie in 8 dargestellt. Die zweite Datenbank 800 kann die Werte der Datenbank 600 aufweisen. In einem Beispiel können der weitere Istwert der physikalischen Größe Gact_f_1_1 und der Istzeitraum ΔTf_1_1 in der Datenbank 600 gespeichert werden.
  • Der Teilschritt 102.1 und der weitere Teilschritt 102.2 des zweiten Schritts 102 können wiederholt werden, während die Zeit ab dem Anfangszeitpunkt verstreicht. Durch Wiederholen der Teilschritte 102.1 und 102.2 können mehrere verschiedene weitere Istwerte der physikalischen Größe Gact_f_i_j und entsprechende Istzeiträume ΔTƒ_i_j in der zweiten Datenbank 800 gespeichert werden. Bei jeder Wiederholung der Teilschritte 102.1, 102.2 kann sich ein Wert von j um eins erhöhen, wie in 4 dargestellt.
  • Bei jeder Wiederholung des zweiten Schritts 102 kann sich der Wert von i um eins erhöhen. In der Praxis können die entsprechenden Istzeiträume ΔTƒ_i_j bei jeder Wiederholung des zweiten Schritts 102 gleich sein, wie in 4 dargestellt. In einem anderen Beispiel können sich die entsprechenden Istzeiträume ΔTƒ_i_j jedoch von einer Wiederholung des zweiten Schritts 102 zur anderen unterscheiden.
  • Die weiteren Istwerte der physikalischen Größe Gact_f_i_j und die entsprechenden Istzeiträume ΔTƒ_i_j können in der Datenbank 800 jeweils als ein Paar von entsprechenden Werten gespeichert werden. Darüber hinaus können die weiteren Istwerte der physikalischen Größe Gact_ƒ_i_j und die entsprechenden Istzeiträume ΔTƒ_i_j in der Datenbank 800 gespeichert werden, sodass der entsprechende Anfangswert Ginit_i, der als Ausgangspunkt zum Abrufen weiterer Istwerte der physikalischen Größe Gact_f_i_j und der entsprechenden Istzeiträume ΔTf_i_j verwendet werden kann, den weiteren Istwerten der physikalischen Größe Gact_ƒ_i_j und den entsprechenden Istzeiträumen ΔTƒ_i_j zugewiesen werden kann und umgekehrt.
  • Zum Beispiel kann die Datenbank 800 zwei entsprechende Zeilen mit Dateneinträgen für jeden unterschiedlichen Anfangswert Ginit_i aufweisen, wie in 8 dargestellt. Die Dateneinträge der beiden entsprechenden Zeilen können die weiteren Istwerte der physikalischen Größe Gact_ƒ_i_j und die entsprechenden Istzeiträume ΔTƒ_i_j aufweisen.
  • Auf der Grundlage der zweiten Datenbank 800 können eine oder mehrere weitere Initialisierungsfunktionen entwickelt werden.
  • In einem Beispiel kann eine entsprechende zeitabhängige Initialisierungsfunktion ƒi für jeden Anfangswert der physikalischen Größe Ginit_i entwickelt werden. Die entsprechende zeitabhängige Initialisierungsfunktion kann eine zeitabhängige Drift der physikalischen Größe des Speicherelements 300 darstellen, ausgehend vom entsprechenden Ausgangszustand der physikalischen Größe des Speicherelements 300 Ginit_i. Jede zeitabhängige Initialisierungsfunktion kann auf der Grundlage der Dateneinträge der beiden Zeilen entwickelt werden, die dem jeweiligen Anfangswert der physikalischen Größe Ginit_i entsprechen. Die zeitabhängigen Initialisierungsfunktionen ƒ1,..ƒi,..ƒn sind in 5 dargestellt.
  • Gemäß einem weiteren Beispiel kann das Verfahren weiterhin Entwickeln einer globalen Initialisierungsfunktion 900 aufweisen. Die globale Initialisierungsfunktion 900 kann die Beziehung zwischen dem jeweils ausgewählten Sollzustand der physikalischen Größe Gtarget_sel des Speicherelements 300 und dem entsprechenden Ausgangszustand der physikalischen Größe Ginit_sel des Speicherelements 300 und einem ausgewählten verstrichenen Zeitraum ΔTsel nach dem Setzen der physikalischen Größe des Speicherelements in den entsprechenden Ausgangszustand Ginit_sel darstellen. Der ausgewählte verstrichene Zeitraum ΔTsel kann von einer vordefinierten zukünftigen Nutzung des Speicherelements 300 abhängig sein. Die globale Initialisierungsfunktion 900 kann den jeweils ausgewählten Sollzustand der physikalischen Größe Gtarget_sel und den ausgewählten verstrichenen Zeitraum ΔTsel als Argumente und den entsprechenden Ausgangszustand der physikalischen Größe Ginit_sel als Funktionswert aufweisen. Das Entwickeln der globalen Initialisierungsfunktion 900 kann auf der Grundlage der zeitabhängigen Initialisierungsfunktionen ƒ1,..ƒi,..ƒn durchgeführt werden.
  • Ein neuronales Netzwerk kann zum Beispiel mit den zeitabhängigen Initialisierungsfunktionen ƒ1,..ƒi,..ƒn und dem entsprechenden Anfangswert der physikalischen Größe Ginit_i trainiert werden. Das neuronale Netzwerk kann eine erste Eingabe, eine zweite Eingabe und eine ersten Ausgabe aufweisen. In einem Beispiel kann ein i-ter Stapel von Trainingsdatensätzen zum Trainieren des neuronalen Netzwerks die Argumente und Funktionswerte der jeweiligen zeitabhängigen Initialisierungsfunktion ƒi und den entsprechenden Anfangswert der physikalischen Größe Ginit_i aufweisen. Bei einem Trainieren des Netzwerks können die Funktionswerte der i-ten zeitabhängigen Initialisierungsfunktion ƒi jeweils als ein entsprechender Zielausgabewert der ersten Ausgabe dienen. Darüber hinaus können die entsprechenden Werte des ausgewählten verstrichenen Zeitraums ΔTsel, d.h. die entsprechenden Argumente der i-ten zeitabhängigen Initialisierungsfunktion ƒi, jeweils als ein entsprechender Wert für die erste Eingabe verwendet werden. Der entsprechende Anfangswert der physikalischen Größe Ginit_i kann als konstanter Eingabewert der zweiten Eingabe für alle sich ändernden Werte der ersten Eingabe und der ersten Ausgabe während des Trainierens verwendet werden.
  • 10 zeigt eine integrierte Schaltung 1000 (IC 1000), die eine neuromorphe Neuronenvorrichtung 1001 (NNA 1001) und ein Kreuzschienenanordnung 700 von Memristoren 701 aufweist, wie in 13 dargestellt. Die IC 1000 kann in Form von CMOS-Schaltungen implementiert werden. Die CMOS-Schaltungen können digitale und/oder analoge Schaltungen aufweisen.
  • Die NNA 1001 kann so konfiguriert werden, dass sie einen Strom von Eingangssignalen x(t-n)... x(t-3), x(t-2), x(t-1), x(t) empfängt, wie in 11 gezeigt. Diese Eingangssignale können eine Zeitreihe bilden. Ein Stromeingangssignal der NNA 1001 kann das Signal x(t) sein. Ein oder mehrere zuvor empfangene 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. Bei den Eingangssignalen kann es sich um elektrische Ströme handeln, wenn die NNA 1001 als analoge Schaltung implementiert ist. Die Eingangssignale können binär codiert sein, wenn die NNA 1001 in Form einer digitalen Schaltung implementiert ist.
  • 12 veranschaulicht ein neuronales Netzwerk 30. Das neuronale Netzwerk 30 kann eine Eingabeschicht 31 aufweisen, die k Eingaben aufweist, z.B. Eingabe in1, in2, ... ink. Darüber hinaus kann das neuronale Netzwerk 30 eine erste verborgene Schicht 32 aufweisen, die p Neuronen aufweist, z.B. Neuron n11, n12, n13 ... n1p. Darüber hinaus kann das neuronale Netzwerk 30 eine zweite verborgene Schicht 33 aufweisen, die m Neuronen aufweist, z.B. Neuron n21, n22, n23 ... n2m. Die NNA 1001 kann eines der Neuronen einer tatsächlichen Schicht des Netzwerks 30 simulieren, wobei die NNA 1001 Ausgabewerte von Neuronen einer vorherigen Schicht des Netzwerks 30 empfangen kann. Die vorherige Schicht kann die erste verborgene Schicht 32 sein. Bei der tatsächlichen Schicht kann es sich um die zweite verborgene Schicht 33 handeln.
  • Das neuronale Netzwerk 30 kann so konfiguriert sein, dass es Eingangssignale des neuronalen Netzwerks 30 verarbeitet, z.B. 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) ein jeweiliges Pixel eines Bildes anzeigen, das zu 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 und die Eingangssignale der NNA 1001 als Eingangssignale bezeichnet.
  • Jedes Signal der Eingangssignale x(t-n)... x(t-3), x(t-2), x(t-1), x(t) kann von der IC 1000 so erzeugt werden, dass diese Eingangssignale jeweils einem Skalarprodukt eines ersten Vektors und eines zweiten Vektors entsprechen können. Einträge des ersten Vektors können jeweils einen Ausgabewert eines der Neuronen, z.B. der Neuronen n11, n12, n13 ... nlp, einer vorherigen Schicht des neuronalen Netzwerks 30, z.B. der ersten verborgenen Schicht 32, zu einem jeweiligen Zeitschritt t-n, ..., t-3, t-2, t-1, t darstellen. Diese Ausgabewerte können Gleitkommazahlen sein und als out11(t-n)... out11(t-3), out11(t-2), out11(t-1), out11(t) als Ausgabewerte des ersten Neurons n11 der vorherigen Schicht, als out12(t-n)... out12(t-3), out12(t-2), out12(t-1), out12(t) als Ausgabewerte des zweiten Neurons n12 der vorherigen Schicht, als out13(t-n)... out13(t-3), out13(t-2), out13(t-1), out13(t) als die Ausgabewerte des dritten Neurons n13 der vorhergehenden Schicht und als out1p(t-n)... out1p(t-3), out1p(t-2), out1p(t-1), out1p(t) als die Ausgabewerte des p-ten Neurons n1p der vorhergehenden Schicht zum jeweiligen Zeitschritt t-n, ..., t-3, t-2, t-1, t bezeichnet werden.
  • Einträge des zweiten Vektors können jeweils einen Wert eines Gewichts darstellen, z.B. w11, w12, w13, ..., wlp, der eine Stärke einer Verbindung zwischen dem Neuron, das die NNA 1001 simulieren kann, und einem entsprechenden Neuron der vorherigen Schicht, z.B. dem Neuron n11, n12, n13, ..., nlp, angibt. Analog dazu können, wenn die NNA 1001 das Neuron n2i der tatsächlichen Schicht simulieren kann, die Einträge des zweiten Vektors jeweils ein Wert eines Gewichts wi1, wi2, wi3, ..., wip sein.
  • In einem Beispiel kann die NNA 1001 ein erstes Neuron der tatsächlichen Schicht simulieren, z.B. Neuron n21, und danach ein zweites Neuron der tatsächlichen Schicht, z.B. Neuron n22, und so weiter, und kann ein m-tes Neuron der tatsächlichen Schicht simulieren, z.B. Neuron n2m.
  • Wenn die NNA 1001 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* out1p (t) sein. Entsprechend kann eines der zuvor empfangenen Eingangssignale x(t-n) x(t-n) = w11* out11(t-n) + w12* out12 (t-n) + w13* out13 (t-n) + ... + w1p* out1p (t-n) sein. Natürlich kann einer der Ausgabewerte der Neuronen der vorherigen Schicht gleich null sein. Dies kann häufig vorkommen, wenn es sich bei den Neuronen der vorherigen Schicht um gepulste Neuronen handelt.
  • Gemäß einem anderen Beispiel kann die NNA 1001 eines der Neuronen der ersten verborgenen Schicht 32 simulieren, z.B. das Neuron n11. In diesem Fall kann das Stromeingangssignal x(t) = w011* in1 (t) + w012* in2 (t) + w013* in3 (t) + ... + w01k* ink (t) sein. Entsprechend kann eines der zuvor empfangenen Eingangssignale x(t-n) x(t-n) = w011* in1 (t-n) + w012* in2 (t-n) + w013* in3 (t-n) + ... + w01k* ink (t-n) sein.
  • Die NNA 1001 kann so konfiguriert sein, dass sie ein Stromausgangssignal der NNA 1001 auf der Grundlage des Stromeingangssignals erzeugt. Die NNA 1001 kann z.B. eine Aktivierungsfunktion aufweisen, z.B. eine Sigmoidfunktion oder eine gleichgerichtete lineare Einheit, um das Stromausgangssignal zu erzeugen. Das Stromeingangssignal kann als Eingangssignal für die Aktivierungsfunktion verwendet werden. In einem Beispiel kann die NNA 1001 so konfiguriert sein, dass sie ein Stromausgangssignal auf der Grundlage des Stromeingangssignals und der zuvor empfangenen Eingangssignale erzeugt. Das Stromausgangssignal kann als Grundlage für das Simulieren des Netzwerks 30 dienen, insbesondere um ein Ausgangssignal der IC 1000 zu erzeugen, das ein Verhalten des Netzwerks 30 simuliert.
  • 13 zeigt die Kreuzschienenanordnung 700 mit den Speicherelementen 701 im Detail. Bei den Speicherelementen 701 kann es sich um resistive Speicherelemente (oder resistive Verarbeitungseinheiten (resistive processing units - RPUs), die mehrere resistive Speicherelemente aufweisen können) handeln, die im Folgenden auch als Memristoren 701 bezeichnet werden können. Die Memristoren 701 können eine lokale Datenspeicherung innerhalb der IC 1000 für die Gewichte Wij des neuronalen Netzwerks 30 bereitstellen. 13 ist ein zweidimensionales (2D) Diagramm der Kreuzschienenanordnung 700, die z.B. eine Matrix-Vektor-Multiplikation als Funktion der Gewichte Wij durchführen kann. Die Kreuzschienenanordnung 700 kann aus einem Satz leitender Zeilendrähte 7021, 7022 ... 702n und einem Satz leitender Spaltendrähte 7081, 7082 ... 708m gebildet werden, die den Satz der leitenden Zeilendrähte 7021-n kreuzen können. Bereiche, in denen die Spaltendrähte 7081-m die Zeilendrähte 7021-n kreuzen können, sind in 13 als Kreuzungen dargestellt und können im Folgenden als Kreuzungen bezeichnet werden. Die IC 1000 kann z.B. so ausgelegt sein, dass an den Kreuzungen kein elektrischer Kontakt zwischen den Spaltendrähten 7081-m und den Zeilendrähten 7021-n besteht. Beispielsweise können die Spaltendrähte 7081-m an den Kreuzungspunkten über oder unter den Zeilendrähten 7021-n geführt werden.
  • In den Bereichen der Kreuzungen können die Memristoren 701 in Bezug auf die Spaltendrähte 7081-m und die Zeilendrähte 7021-n so angeordnet werden, dass durch jeden Memristor 701ij ein einzelner elektrischer Strom Iij fließen kann, wenn entsprechende Spannungen v1...vn an die Eingangsanschlüsse 7031, 7032 ... 703n der Kreuzschiene 700 und damit an die Zeilendrähte 7021-n angelegt werden können. Die Memristoren 701 sind in 13 als Widerstandselemente dargestellt, von denen jedes seinen eigenen einstellbaren/aktualisierbaren ohmschen Leitwert hat, der als Gij dargestellt ist, wobei i=1..m und j=1..n ist. In diesem Beispiel steht also jeder Leitwert Gij für eine entsprechende physikalische Größe des jeweiligen Memristors 701ij. Jeder ohmsche Leitwert Gij kann einem entsprechenden Gewicht Wij des neuronalen Netzwerks 30 entsprechen.
  • Jeder Spaltendraht 708i kann die einzelnen elektrischen Ströme Ii1, Ii2 ...Iin summieren, die in dem jeweiligen Memristor 701i1, 701i2 ... 701in erzeugt werden, indem die jeweiligen Spannungen v1... vn an die entsprechenden Eingangsanschlüsse 7031, 7032 ... 703n angelegt werden. Wie in 13 dargestellt, entspricht der Strom Ii, der vom Spaltendraht 708i erzeugt wird, beispielsweise der Gleichung Ii = v1 · Gi1 + v2 · Gi2 + v3 · Gi2 + ... + vn · Gin. Ein erster elektrischer Ausgangsstrom I1, der von dem Spaltendraht 7081 erzeugt wird, entspricht der Gleichung I1= v1 · G11 + v2 · G12 + v3 · G13 + ... + vn · G1n. So berechnet die Anordnung 700 die Matrix-Vektor-Multiplikation durch Multiplizieren der in den Memristoren 701 gespeicherten Werte mit den Zeilendraht-Eingängen, die durch Spannungen v1-n definiert sind. Entsprechend kann eine einzelne Multiplikation vi · Gij lokal an jedem Memristor 701ij der Anordnung 700 durchgeführt werden, wobei der Memristor 701ij selbst sowie der entsprechende Zeilendraht oder Spaltendraht der Anordnung 700 verwendet werden. Die Ströme I2-m, können im Folgenden als weitere elektrische Ausgangsströme bezeichnet werden.
  • Mit der Kreuzschienenanordnung 700 von 13 kann zum Beispiel die Multiplikation eines Vektors x mit einer Matrix W berechnet werden. Die Matrix W kann die Einträge Wij aufweisen. Die Einträge Wij der Matrix W können wie folgt auf die entsprechenden Leitwerte der Kreuzschienenanordnung abgebildet werden: W i j = w m a x G m a x G i j ,
    Figure DE102021123580A1_0004
    wobei Gmax durch den Leitwertbereich der Kreuzschienenanordnung 700 gegeben ist und Wmax in Abhängigkeit von der Größe der Matrix W gewählt wird. Die Einträge der Matrix W können gleich den Gewichten Wij des neuronalen Netzwerks 30 oder wij, wie oben angegeben, sein. Der Vektor x kann den Spannungen v1...vn entsprechen. Die IC 1000 kann so konfiguriert sein, dass sie die jeweiligen Spannungen v1...vn in Abhängigkeit von den entsprechenden Ausgabewerten out11(t), out12(t), out13(t) ... out1p(t) der Neuronen der vorherigen Schicht, z.B. der ersten verborgenen Schicht 32, erzeugt.
  • 13 zeigt ein Beispiel für eine erste Anordnung 704 der resistiven Speicherelemente 70111, 70112 ... 7011n der IC 1000. Die erste Anordnung 704 kann die Eingangsanschlüsse 7031, 7032 ... 703n zum Anlegen der entsprechenden Spannungen v1...vn an die jeweiligen Eingangsanschlüsse 7031, 7032 ... 703n zum Erzeugen der einzelnen elektrischen Ströme I11, I12 ...I1n in den jeweiligen resistiven Speicherelementen 70111, 70112 ... 7011n und einen ersten Ausgangsanschluss 7051 zum Ausgeben eines ersten elektrischen Ausgangsstroms I1 aufweisen. 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 solche Verbindung zwischen den Speicherelementen 70111, 70112 ... 7011n kann durch die Zeilendrähte 7021-n und den ersten Spaltendraht 7081 bereitgestellt werden. Ein Wert des ersten elektrischen Ausgangsstroms I1, kann einen Wert eines ersten Skalarprodukts darstellen, um einen Ausgabewert des neuronalen Netzwerks 30 mittels einer Ausbreitung von Werten durch die Schichten des Netzwerks 30 zu berechnen. 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 NNA 1001 das Neuron n21 simulieren, im zweiten Fall das Neuron n11. Außerdem kann im ersten Fall die Anzahl der Zeilendrähte n gleich p sein, im zweiten Fall kann die Anzahl der Zeilendrähte n gleich k sein.
  • Der erste Ausgangsanschluss 7051 der ersten Anordnung 704 kann mit einem Eingang 13 der NNA 1001 verbunden sein. Die IC 1000 kann so konfiguriert sein, dass sie das Stromeingangssignal x(t) auf der Grundlage des ersten elektrischen Ausgangsstroms I1 erzeugt. In einem Beispiel kann die NNA 1001 so konfiguriert sein, dass sie das Eingangssignal x(t) als Analogsignal verarbeitet. In diesem Fall kann der erste elektrische Ausgangsstrom I1 das Stromeingangssignal x(t) sein.
  • In einem anderen Beispiel kann die IC 1000 so konfiguriert sein, dass sie das Stromeingangssignal x(t) auf der Grundlage des ersten elektrischen Ausgangsstroms I1 mit einem Analog-Digital-Konverter 706 (ADC 706) erzeugt. In einem Beispiel kann die NNA 1001 das Stromeingangssignal x(t) nur über den ersten Ausgangsanschluss 7051 empfangen. Dieses Beispiel kann sich auf eine Anwendung beziehen, bei der die NNA 1001 ein Ausgabeneuron einer Ausgabeschicht 34 des neuronalen Netzwerks 30 simulieren kann. In diesem Beispiel werden die anderen Spaltendrähte 7082-m möglicherweise nicht benötigt.
  • Falls die IC 1000 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, werden mehr als ein Spaltendraht der Kreuzschiene 700 benötigt. Eine Anzahl der Spaltendrähte 7081-m kann der Anzahl von Neuronen m dieser Schicht entsprechen, die die IC 1000 simulieren kann. Eine Anzahl der Zeilendrähte 7021-n kann einer Anzahl von Neuronen der vorherigen Schicht des Netzwerks 30 entsprechen. Wenn die vorherige Schicht die Eingabeschicht 31 ist, kann die Anzahl der Zeilendrähte n gleich k sein. Wenn die vorherige Schicht die erste verborgene Schicht 32 ist, kann die Anzahl der Zeilendrähte n gleich p sein.
  • 14 ist ein Ablaufplan für ein Verfahren zum Einrichten einer Speichereinheit, die ein Speicherelement mit einer veränderbaren physikalischen Größe aufweist, z.B. einen oder mehrere Memristoren 701ij der Kreuzschienenanordnung 700. Bei der Kreuzschienenanordnung 700 kann es sich um die Speichereinheit handeln. Dieses Verfahren, das im Folgenden als Einrichtungsverfahren bezeichnet wird, kann Einrichten der physikalischen Größe des Speicherelements aufweisen, zum Beispiel den Leitwert eines oder mehrerer Memristoren 701ij der Kreuzschienenanordnung 700. Das Einrichtungsverfahren kann die folgenden Schritte aufweisen.
  • In einem ersten Schritt 141 des Einrichtungsverfahrens kann ein Sollzustand der physikalischen Größe ausgewählt werden. Unter Bezugnahme auf den oben beschriebenen Anwendungsfall kann ein jeweiliger Sollzustand des Leitwerts jedes RME 701ij der Kreuzschienenanordnung 700 gleich Gij sein, um eine Darstellung der Gewichte Wij des neuronalen Netzwerks 30 mittels der Leitwerte des RME 701ij bereitzustellen.
  • In einem zweiten Schritt 142 des Einrichtungsverfahrens kann ein Ausgangszustand der physikalischen Größe, z.B. der Leitwert des RME 701ij, mithilfe einer Initialisierungsfunktion berechnet werden. Die Initialisierungsfunktion kann vom Sollzustand der physikalischen Größe abhängig sein. Die Initialisierungsfunktion 200 kann zum Beispiel die visuelle Darstellung 720 der Initialisierungsfunktion 200 sein, wie in 7 gezeigt. Unter Bezugnahme auf den oben beschriebenen Anwendungsfall kann der jeweilige Sollzustand des Leitwerts Gij jedes RME 701ij nacheinander gleich dem ausgewählten Sollzustand Gtarget_sel gesetzt werden, der im Diagramm von 7 dargestellt ist. Für jedes RME 701ij kann ein entsprechender Ausgangszustand des Leitwerts Ginit_sel des jeweiligen RME 701ij auf der Grundlage des ausgewählten Sollzustands Gtarget_sel mithilfe der Initialisierungsfunktion 200 berechnet werden. Der entsprechende Ausgangszustand des Leitwerts Ginit_sel jedes RME 701ij kann im Folgenden als Gij_init bezeichnet werden.
  • In einem dritten Schritt 143 des Einrichtungsverfahrens kann die physikalische Größe in den berechneten Ausgangszustand der physikalischen Größe gesetzt werden. Bezogen auf den oben beschriebenen Anwendungsfall kann der Leitwert jedes RME 701ij in den entsprechenden Ausgangszustand des Leitwerts Gij_init gesetzt werden. Dies lässt sich durch Anlegen einer Programmierspannung bzw. eines Programmierstroms an jedes RME 701ij umsetzen. Ein Zeitpunkt, zu dem ein Setzen des Leitwerts jedes RME 701ij in den entsprechenden Ausgangszustand des Leitwerts Gij_init durchgeführt werden kann, kann im Folgenden als Zeitpunkt des Setzens bezeichnet werden.
  • Nach dem dritten Schritt 143 des Einrichtungsverfahrens kann der Wert der physikalischen Größe, z.B. der Leitwert jedes RME 701ij, vom entsprechenden Ausgangszustand der physikalischen Größe, z.B. dem Leitwert Gij_init, in Richtung des jeweiligen Sollzustands der physikalischen Größe, z.B. des Leitwerts Gij jedes RME 701ij, zeitlich driften, z.B. abfallen, ähnlich den jeweiligen Kurven des Diagramms von 5. In einem Beispiel kann sich der Leitwert jedes RME 701ij in einem veränderten, insbesondere in einem abgefallenen, Zustand befinden, nachdem der vorgegebene Zeitraum ΔT nach dem Zeitpunkt des Setzens verstrichen ist. Der veränderte Zustand des Leitwerts jedes RME 701ij kann dem jeweiligen Sollzustand des Leitwerts Gij jedes RME 701ij annähernd entsprechen. Zum Beispiel kann ein Leitwert jedes RME 701ij im abgefallenen Zustand um weniger als zehn Prozent vom jeweiligen Sollzustand des Leitwerts Gij jedes RME 701ij abweichen. Gemäß einem weiteren Beispiel kann der Leitwert jedes RME 701ij im abgefallenen Zustand um weniger als ein Prozent vom jeweiligen Sollzustand des Leitwerts Gij jedes RME 701ij abweichen.
  • Das jeweilige RME 701ij kann somit so konfiguriert sein, dass es den jeweiligen Leitwert des RME 701ij auf einen jeweiligen Ausgangszustand Gij_init setzt und eine jeweilige Drift des jeweiligen Leitwerts des RME 701ij vom jeweiligen Ausgangszustand Gij_init zum jeweiligen veränderten Zustand aufweist. Der jeweilige Ausgangszustand des jeweiligen Leitwerts Gij_init kann von einem Prozessor mithilfe einer jeweiligen Initialisierungsfunktion berechnet werden. Die jeweilige Initialisierungsfunktion kann in einem Beispiel für jedes RME 701ij unterschiedlich sein. In einem anderen Beispiel kann die jeweilige Initialisierungsfunktion für jedes RME 701ij dieselbe sein, zum Beispiel die Initialisierungsfunktion 200. Bei dem Prozessor kann es sich um einen externen Prozessor handeln, oder er kann auf der IC 1000 implementiert sein. Der Prozessor kann die Parameter oder Koeffizienten der Initialisierungsfunktion speichern, um den jeweiligen Ausgangszustand Gij_init jedes RME 701ij auf der Grundlage des jeweiligen Sollzustands des Leitwerts Gij jedes RME 701ij zu berechnen.
  • Das Einrichtungsverfahren kann weiterhin Messen einer verstrichenen Zeit ab einem Anfangszeitpunkt des Setzens des Leitwerts in den berechneten Ausgangszustand des Leitwerts bis zu einem Istzeitpunkt aufweisen. Darüber hinaus kann das Einrichtungsverfahren Vergleichen der gemessenen verstrichenen Zeit mit einem weiteren vorgegebenen Zeitraum aufweisen. Der weitere vorgegebene Zeitraum kann von der Nutzung des Speicherelements abhängen, zum Beispiel von der Nutzung der Kreuzschienenanordnung 700. Das Einrichtungsverfahren kann aufweisen, dass das Speicherelement für den Betrieb freigegeben wird, wenn die gemessene verstrichene Zeit größer ist als der weitere vorgegebene Zeitraum.
  • Zum Beispiel dürfen die Spannungen v1-n erst dann an die Eingangsanschlüsse 7031, 7032 ... 703n angelegt werden, wenn die verstrichene Zeit größer ist als der weitere vorgegebene Zeitraum. Oder anders ausgedrückt, die Spannungen v1-n können an den Eingangsanschlüssen 7031, 7032 ... 703n angelegt werden, wenn die verstrichene Zeit größer ist als der weitere vorgegebene Zeitraum. In einem Beispiel dürfen die Spannungen v1-n an den Eingangsanschlüssen 7031, 7032 ... 703n nur dann angelegt werden, wenn die verstrichene Zeit größer ist als der weitere vorgegebene Zeitraum.
  • Der weitere vorgegebene Zeitraum kann dem oben genannten vorgegebenen Zeitraum ΔT entsprechen. Dabei kann die Kenntnis der Experimente zum Abrufen der Initialisierungsfunktion 200 genutzt werden. In den meisten Fällen kann der vorgegebene Zeitraum ΔT so gewählt werden, dass eine weitere Drift der physikalischen Größe, z.B. ein weiteres Abfallen des Leitwerts, im Zeitverlauf nach Ablauf des vorgegebenen Zeitraums ΔT gering ist im Vergleich zu einer Drift der physikalischen Größe, z.B. ein Abfallen des Leitwerts, im Zeitverlauf unmittelbar nach dem Programmieren der physikalischen Größe, z.B. des Leitwerts, auf den Ausgangszustand.
  • In einem Beispiel kann der jeweilige Ausgangszustand Gij_init des Leitwerts jedes RME 701ij auf der Grundlage des jeweiligen Sollzustands des Leitwerts Gij jedes RME 701ij und eines jeweiligen ausgewählten Zeitpunkts des Betriebs jedes RME 701ij auf der Grundlage der globalen Initialisierungsfunktion 900 berechnet werden. Die jeweils ausgewählten Betriebszeitpunkte der einzelnen RMEs 701ij können in einem Beispiel gleich sein. In einem anderen Beispiel können die jeweils ausgewählten Betriebszeitpunkte der einzelnen RMEs 701ij voneinander abweichen. Dies kann praktisch sein, wenn der jeweilige Betriebszeitpunkt jedes RME 701ij im Voraus bekannt sein kann.
  • Eine Mehrkernarchitektur kann zum Beispiel mehrere Kerne aufweisen, wobei jeder Kern in Form der IC 1000 ausgeführt sein kann. Ein zweiter Kern der Kerne kann so konfiguriert sein, dass er die zweite verborgene Schicht 33 simuliert, und ein erster Kern der Kerne kann so konfiguriert sein, dass er eine vorherige Schicht, z.B. die erste verborgene Schicht 32, simuliert. 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 der Nutzung des ersten Kerns früher liegen als ein zweiter Zeitpunkt der Nutzung des zweiten Kerns. Daher kann in einem Beispiel der jeweilige Leitwert des RME 701ij des ersten Kerns in den jeweiligen Ausgangszustand Gij_init des Leitwerts gesetzt werden, sodass jeder jeweilige Leitwert des RME 701ij des ersten Kerns seinen jeweiligen Sollzustand des Leitwerts Gij früher erreichen kann als jeder der jeweiligen Leitwerte des RME 701ij des zweiten Kerns seinen jeweiligen Sollzustand des Leitwerts Gij erreichen kann.
  • Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) umfassen, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch eine Einheit zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder gehobene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. einen Lichtwellenleiter durchlaufende Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs/Verarbeitungs-Einheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetzwerk und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Router, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs/Verarbeitungs-Einheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs/Verarbeitungs-Einheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, sodass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, sodass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, einen Herstellungsartikel aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder angegebenen Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, sodass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder 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 Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.

Claims (22)

  1. Speichereinheit, die ein Speicherelement aufweist, wobei das Speicherelement eine veränderbare physikalische Größe zum Speichern von Informationen aufweist, wobei sich die physikalische Größe in einem veränderten Zustand befindet, wobei das Speicherelement so konfiguriert ist, dass es die physikalische Größe in einen Ausgangszustand setzt, wobei das Speicherelement eine Drift der physikalischen Größe von dem Ausgangszustand in den veränderten Zustand aufweist, wobei der Ausgangszustand der physikalischen Größe durch Verwenden einer Initialisierungsfunktion berechenbar ist, wobei die Initialisierungsfunktion von einem Sollzustand der physikalischen Größe abhängig ist und der Sollzustand der physikalischen Größe dem veränderten Zustand der physikalischen Größe annähernd entspricht.
  2. Integrierte Schaltung nach Anspruch 1, wobei der jeweilige Sollzustand der physikalischen Größe des entsprechenden Speicherelements an eine Nutzung der integrierten Schaltung angepasst ist.
  3. Integrierte Schaltung nach Anspruch 1, wobei die integrierte Schaltung weiterhin eine neuromorphe Neuronenvorrichtung zum Simulieren einer Schicht eines neuronalen Netzwerks aufweist, wobei die neuromorphe Neuronenvorrichtung einen Eingangsanschluss aufweist, wobei der Eingangsanschluss mit dem Ausgangsanschluss der ersten Anordnung verbunden ist.
  4. Integrierte Schaltung, die eine erste Anordnung von Speicherelementen aufweist, wobei die erste Anordnung von Speicherelementen Anschlüsse zum Anlegen entsprechender Spannungen an die jeweiligen Anschlüsse aufweist, um einzelne elektrische Ströme in den jeweiligen Speicherelementen zu erzeugen, und mindestens einen Ausgangsanschluss zum Ausgeben eines elektrischen Ausgangsstroms, wobei die Speicherelemente so miteinander verbunden sind, dass der elektrische Ausgangsstrom eine Summe der einzelnen elektrischen Ströme ist, wobei die integrierte Schaltung so konfiguriert ist, dass sie den elektrischen Ausgangsstrom auf der Grundlage der angelegten Spannungen erzeugt, wobei jedes Speicherelement einen jeweiligen veränderbaren Leitwert aufweist, wobei sich der jeweilige Leitwert in einem jeweiligen veränderten Zustand befindet, wobei das jeweilige Speicherelement für Setzen des jeweiligen Leitwerts in einen jeweiligen Ausgangszustand konfiguriert ist, wobei das jeweilige Speicherelement eine jeweilige Drift des jeweiligen Leitwerts von dem jeweiligen Ausgangszustand zu dem jeweiligen veränderten Zustand aufweist und der jeweilige Ausgangszustand des jeweiligen Leitwerts unter Verwendung einer jeweiligen Initialisierungsfunktion berechenbar ist, wobei die jeweilige Initialisierungsfunktion von einem jeweiligen Sollzustand des jeweiligen Leitwerts abhängig ist und der jeweilige Sollzustand des jeweiligen Leitwerts dem jeweiligen veränderten Zustand des jeweiligen Leitwerts annähernd entspricht.
  5. Integrierte Schaltung nach Anspruch 4, wobei der jeweilige Sollzustand der physikalischen Größe des entsprechenden Speicherelements an eine Nutzung der integrierten Schaltung angepasst ist.
  6. Integrierte Schaltung nach Anspruch 5, wobei die integrierte Schaltung weiterhin eine neuromorphe Neuronenvorrichtung zum Simulieren einer Schicht eines neuronalen Netzwerks aufweist, wobei die neuromorphe Neuronenvorrichtung einen Eingangsanschluss aufweist, wobei der Eingangsanschluss mit dem Ausgangsanschluss der ersten Anordnung verbunden ist.
  7. Durch einen Computer implementiertes Verfahren zum Einrichten einer Speichereinheit, die ein Speicherelement aufweist, wobei das Speicherelement eine veränderbare physikalische Größe aufweist, wobei das Verfahren aufweist: Auswählen eines Sollzustands der physikalischen Größe; Berechnen eines Ausgangszustands der physikalischen Größe unter Verwendung einer Initialisierungsfunktion, wobei die Initialisierungsfunktion vom Sollzustand der physikalischen Größe abhängig ist; und Setzen der physikalischen Größe in den berechneten Ausgangszustand der physikalischen Größe.
  8. Durch einen Computer implementiertes Verfahren nach Anspruch 7, wobei das Verfahren weiterhin aufweist: Messen einer verstrichenen Zeit ab einem Anfangszeitpunkt des Setzens der physikalischen Größe in den berechneten Ausgangszustand der physikalischen Größe bis zu einem Istzeitpunkt; Vergleichen der gemessenen verstrichenen Zeit mit einem vorgegebenen Zeitraum, wobei der vorgegebene Zeitraum von einer Nutzung des Speicherelements abhängig ist; und Freigeben des Speicherelements für den Betrieb, wenn die gemessene verstrichene Zeit größer ist als der vorgegebene Zeitraum.
  9. Durch einen Computer implementiertes Verfahren zum Entwickeln einer Initialisierungsfunktion, wobei die Initialisierungsfunktion eine Beziehung zwischen einem jeweiligen ausgewählten Sollzustand einer veränderbaren physikalischen Größe eines Speicherelements zum Speichern von Informationen und einem entsprechenden Ausgangszustand der physikalischen Größe des Speicherelements darstellt, wobei die physikalische Größe des Speicherelements so auf den entsprechenden Ausgangszustand der physikalischen Größe einstellbar ist, dass er in Richtung des jeweiligen ausgewählten Sollzustands der physikalischen Größe driftet, wobei das Verfahren aufweist: Setzen der physikalischen Größe des Speicherelements auf einen Anfangswert zu einem Anfangszeitpunkt in einem ersten Schritt; Messen eines Istwerts der physikalischen Größe des Speicherelementes nach einem verstrichenen vorgegebenen Zeitraum in einem zweiten Schritt, wobei der verstrichene vorgegebene Zeitraum am Anfangszeitpunkt beginnt; Speichern des Anfangswerts und des Istwerts der physikalischen Größe in einer Datenbank in einem dritten Schritt; Wiederholen des ersten, zweiten und dritten Schritts und Setzen der physikalischen Größe des Speicherelements auf einen anderen Anfangswert bei jeder Wiederholung des ersten Schritts, um mehrere verschiedene Paare des Anfangs- und des Istwerts der physikalischen Größe in der Datenbank zu speichern; und Entwickeln der Initialisierungsfunktion auf der Grundlage der Datenbank.
  10. Durch einen Computer implementiertes Verfahren nach Anspruch 9, wobei das Messen des Istwerts der physikalischen Größe des Speicherelements im zweiten Schritt zu einem ersten Zeitpunkt durchgeführt wird, wobei eine Zeitspanne zwischen dem Anfangszeitpunkt und dem ersten Zeitpunkt dem vorgegebenen Zeitraum entspricht.
  11. Durch einen Computer implementiertes Verfahren nach Anspruch 9, wobei der vorgegebene Zeitraum an eine zukünftige Nutzung des Speicherelements angepasst wird.
  12. Durch einen Computer implementiertes Verfahren nach Anspruch 9, wobei das Messen des Istwerts der physikalischen Größe des Speicherelements im zweiten Schritt durchgeführt wird, wenn eine Änderung des Istwerts der physikalischen Größe im Zeitverlauf unter einem vorgegebenen Schwellenwert liegt.
  13. Durch einen Computer implementiertes Verfahren nach Anspruch 9, wobei die Initialisierungsfunktion zeitunabhängig ist.
  14. Durch einen Computer implementiertes Verfahren nach Anspruch 13, wobei die Initialisierungsfunktion eine Potenzfunktion ist, die den jeweils ausgewählten Sollzustand der veränderbaren physikalischen Größe als Exponent der Potenzfunktion und den entsprechenden Ausgangszustand der physikalischen Größe als Funktionswert der Potenzfunktion aufweist.
  15. Durch einen Computer implementiertes Verfahren nach Anspruch 14, wobei die Initialisierungsfunktion gleich W ij = w max G max α G ij α ƒ ( G ) = a * e b G + c
    Figure DE102021123580A1_0005
    ist, wobei G der jeweils ausgewählte Sollzustand der veränderbaren physikalischen Größe ist, ƒ(G) der jeweilige Ausgangszustand der physikalischen Größe ist und a, b und c Koeffizienten der Initialisierungsfunktion sind.
  16. Durch einen Computer implementiertes Verfahren nach Anspruch 9, wobei das Verfahren weiterhin aufweist: Messen eines weiteren Istwerts der physikalischen Größe des Speicherelements und eines Istzeitraums, wobei der Istzeitraum durch eine verstrichene Zeit zwischen dem Anfangszeitpunkt und einem Istzeitpunkt in einem Teilschritt des zweiten Schritts definiert ist; Speichern des weiteren Istwerts der physikalischen Größe und des Istzeitraums in der Datenbank in einem weiteren Teilschritt des zweiten Schritts; Wiederholen des Teilschritts und des weiteren Teilschritts des zweiten Schritts, während Zeit ab dem Anfangszeitpunkt verstreicht, um mehrere verschiedene weitere Istwerte der physikalischen Größe und entsprechende Istzeiträume in der Datenbank zu speichern; und Entwickeln der Initialisierungsfunktion auf der Grundlage der Datenbank.
  17. Durch einen Computer implementiertes Verfahren nach Anspruch 16, wobei das Verfahren weiterhin Entwickeln einer entsprechenden zeitabhängigen Initialisierungsfunktion für jeden Anfangswert der physikalischen Größe aufweist, wobei die entsprechende zeitabhängige Initialisierungsfunktion eine zeitabhängige Drift der physikalischen Größe des Speicherelements ausgehend von dem entsprechenden Ausgangszustand der physikalischen Größe des Speicherelements darstellt.
  18. Durch einen Computer implementiertes Verfahren nach Anspruch 16, wobei das Verfahren weiterhin Entwickeln der Initialisierungsfunktion aufweist, sodass die Initialisierungsfunktion die Beziehung zwischen dem jeweiligen ausgewählten Sollzustand der veränderbaren physikalischen Größe des Speicherelements und dem entsprechenden Ausgangszustand der physikalischen Größe des Speicherelements und einem ausgewählten verstrichenen Zeitraum nach Setzen der physikalischen Größe des Speicherelements in den entsprechenden Ausgangszustand darstellt, wobei der ausgewählte verstrichene Zeitraum von einer vordefinierten zukünftigen Nutzung des Speicherelements abhängig ist.
  19. Computersystem zum Entwickeln einer Initialisierungsfunktion, wobei die Initialisierungsfunktion eine Beziehung zwischen einem jeweiligen ausgewählten Sollzustand einer veränderbaren physikalischen Größe eines Speicherelements zum Speichern von Informationen und einem entsprechenden Ausgangszustand der physikalischen Größe des Speicherelements darstellt, wobei die physikalische Größe des Speicherelements an den entsprechenden Ausgangszustand der physikalischen Größe einstellbar ist, um in Richtung auf den jeweiligen ausgewählten Sollzustand der physikalischen Größe zu driften, wobei das Computersystem aufweist: einen oder mehrere Computerprozessoren; ein oder mehrere durch einen Computer lesbare Speichermedien; und Programmanweisungen, die auf dem einen oder mehreren durch einen Computer lesbaren Speichermedien zum Ausführen durch mindestens einen der einen oder mehreren Computerprozessoren gespeichert sind, wobei die Programmanweisungen aufweisen: Programmanweisungen zum Setzen der physikalischen Größe des Speicherelements auf einen Anfangswert zu einem Anfangszeitpunkt in einem ersten Schritt; Programmanweisungen zum Messen eines Istwerts der physikalischen Größe des Speicherelementes nach einem verstrichenen vorgegebenen Zeitraum in einem zweiten Schritt, wobei der verstrichene vorgegebene Zeitraum am Anfangszeitpunkt beginnt; Programmanweisungen zum Speichern des Anfangswerts und des Istwerts der physikalischen Größe in einer Datenbank in einem dritten Schritt; Programmanweisungen zum Wiederholen des ersten, zweiten und dritten Schritts und Setzen der physikalischen Größe des Speicherelements auf einen anderen Anfangswert bei jeder Wiederholung des ersten Schritts, um mehrere verschiedene Paare des Anfangs- und des Istwerts der physikalischen Größe in der Datenbank zu speichern; und Programmanweisungen zum Entwickeln der Initialisierungsfunktion auf der Grundlage der Datenbank.
  20. Computersystem nach Anspruch 19, wobei das Messen des Istwerts der physikalischen Größe des Speicherelements im zweiten Schritt zu einem ersten Zeitpunkt durchgeführt wird, wobei eine Zeitspanne zwischen dem Anfangszeitpunkt und dem ersten Zeitpunkt dem vorgegebenen Zeitraum entspricht.
  21. Computersystem nach Anspruch 19, wobei der vorgegebene Zeitraum an eine zukünftige Nutzung des Speicherelements angepasst wird.
  22. Computerprogrammprodukt zum Entwickeln einer Initialisierungsfunktion, wobei die Initialisierungsfunktion eine Beziehung zwischen einem jeweiligen ausgewählten Sollzustand einer veränderbaren physikalischen Größe eines Speicherelements zum Speichern von Informationen und einem entsprechenden Ausgangszustand der physikalischen Größe des Speicherelements darstellt, wobei die physikalische Größe des Speicherelements in den entsprechenden Ausgangszustand der physikalischen Größe einstellbar ist, um in Richtung auf den jeweiligen ausgewählten Sollzustand der physikalischen Größe zu driften, wobei das Computerprogrammprodukt aufweist: ein oder mehrere durch einen Computer lesbare Speichermedien; und Programmanweisungen, die auf dem einen oder den mehreren durch einen Computer lesbaren Speichermedien gespeichert sind, wobei die Programmanweisungen aufweisen: Programmanweisungen zum Setzen der physikalischen Größe des Speicherelements auf einen Anfangswert zu einem Anfangszeitpunkt in einem ersten Schritt; Programmanweisungen zum Messen eines Istwerts der physikalischen Größe des Speicherelementes nach einem verstrichenen vorgegebenen Zeitraum in einem zweiten Schritt, wobei der verstrichene vorgegebene Zeitraum am Anfangszeitpunkt beginnt; Programmanweisungen zum Speichern des Anfangswerts und des Istwerts der physikalischen Größe in einer Datenbank in einem dritten Schritt; Programmanweisungen zum Wiederholen des ersten, zweiten und dritten Schritts und Setzen der physikalischen Größe des Speicherelements auf einen anderen Anfangswert bei jeder Wiederholung des ersten Schritts, um mehrere verschiedene Paare des Anfangs- und des Istwerts der physikalischen Größe in der Datenbank zu speichern; und Programmanweisungen zum Entwickeln der Initialisierungsfunktion auf der Grundlage der Datenbank.
DE102021123580.4A 2020-10-30 2021-09-13 Verfahren zum entwickeln einer initialisierungsfunktion zum programmieren eines speicherelements Pending DE102021123580A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/085,071 US11430524B2 (en) 2020-10-30 2020-10-30 Method for designing an initialization function for programming a memory element
US17/085,071 2020-10-30

Publications (1)

Publication Number Publication Date
DE102021123580A1 true DE102021123580A1 (de) 2022-05-05

Family

ID=78595095

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021123580.4A Pending DE102021123580A1 (de) 2020-10-30 2021-09-13 Verfahren zum entwickeln einer initialisierungsfunktion zum programmieren eines speicherelements

Country Status (4)

Country Link
US (1) US11430524B2 (de)
CN (1) CN114446339A (de)
DE (1) DE102021123580A1 (de)
GB (1) GB2601415B (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11221375B1 (en) * 2020-11-25 2022-01-11 Headspin, Inc. System for determining power consumption by a test device
CN116127729B (zh) * 2022-12-28 2023-08-15 青芥一合碳汇(武汉)科技有限公司 基于线性动态模型的二氧化碳捕集精准预测方法及系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2510339A (en) 2013-01-30 2014-08-06 Ibm Method and apparatus for read measurement of a plurality of resistive memory cells
KR102079370B1 (ko) * 2013-02-05 2020-02-20 삼성전자주식회사 비휘발성 메모리 장치 및 그것의 쓰기 방법
KR20150020478A (ko) * 2013-08-16 2015-02-26 삼성전자주식회사 비휘발성 메모리 장치의 독출 방법
KR20150044475A (ko) * 2013-10-16 2015-04-27 에스케이하이닉스 주식회사 저항성 메모리 장치 및 동작 방법 방법과 이를 포함하는 시스템
US11501131B2 (en) 2016-09-09 2022-11-15 SK Hynix Inc. Neural network hardware accelerator architectures and operating method thereof
US10079058B1 (en) 2017-08-24 2018-09-18 International Business Machines Corporation Resistive memory device for matrix-vector multiplications
US10679698B2 (en) 2018-03-28 2020-06-09 Intel Corporation Memory preset adjustment based on adaptive calibration
US11461640B2 (en) 2019-04-18 2022-10-04 International Business Machines Corporation Mitigation of conductance drift in neural network resistive processing units
CN110163016B (zh) 2019-04-29 2021-08-03 清华大学 混合计算系统和混合计算方法

Also Published As

Publication number Publication date
US11430524B2 (en) 2022-08-30
GB2601415A (en) 2022-06-01
US20220139464A1 (en) 2022-05-05
GB202114411D0 (en) 2021-11-24
CN114446339A (zh) 2022-05-06
GB2601415B (en) 2022-12-14

Similar Documents

Publication Publication Date Title
DE112018005726B4 (de) Resistive verarbeitungseinheit auf zählerbasis für programmierbare und rekonfigurierbare künstliche neuronale netzwerke
DE112018000272T5 (de) Resistive Verarbeitungseinheit mit hysteretischen Aktualisierungen zum Trainieren neuronaler Netze
DE102019116095A1 (de) Multiplikation unter verwendung von nichtflüchtigen speicherzellen
DE3689030T2 (de) Schaltung zur Bestimmung der besten Anpassung an Eingangssignale.
DE112018002950B4 (de) System und Verfahren zum Aufbauen von synaptischen Gewichten für künstliche neuronale Netze aus mit Vorzeichen versehenen analogen Leitwertpaaren unterschiedlicher Wertigkeit
DE102021123580A1 (de) Verfahren zum entwickeln einer initialisierungsfunktion zum programmieren eines speicherelements
DE102019116305A1 (de) Pipelining zur verbesserung der inferenzgenauigkeit neuronaler netze
DE112016000148B4 (de) Neuromorpher Speicherschaltkreis sowie zugehöriges Verfahren, Computerprogrammprodukt und Computerprogramm
DE112019005119T5 (de) Abgleichtechniken zum angleichen des symmetriepunktes als null-gewichtungspunkt in analogen kreuzungspunktanordnungen
DE112019000226T5 (de) Neuromorpher chip zum aktualisieren präziser synaptischer gewichtswerte
DE112011101370T5 (de) Neuronales Netz mit kanonischen gepulsten Neuronen für einen raumzeitlichen Assoziativspeicher
DE102011083180A1 (de) Auslesungsverteilungsverwaltung für Phasenwechselspeicher
DE112018000723T5 (de) Aktualisierungsverwaltung für eine RPU-Anordnung
DE112020002186T5 (de) Dnn-training mit asymmetrischen rpu-einheiten
DE112020000929T5 (de) Programmieren eines phasenwechselspeichersin einer geschlossenen schleife
DE102021207661A1 (de) Ratiometrische zeitdomänen-auslesungschnittstellen für speicherinterne, analoge mischsignal-rechen-crossbar-netzwerke
DE102021207970A1 (de) Eine nurlesespeicherarchitektur für analoge matrixoperationen
DE112012005565T5 (de) Elektronische Synapsen aus stochastischen binären Speichereinheiten
DE102021208010A1 (de) Hardware-rechenstruktur für tiefe gleichgewichtsmodelle
DE112017004156T5 (de) Speicherzellenstruktur
DE102020120212A1 (de) Netzwerk zur automatischen Programmierspannungsauswahl
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
DE102021108823A1 (de) System für eine flexible leitwerttraverse

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication