DE112020003371T5 - Unterdrücken von ausreisserdriftkoeffizienten während des programmierens von phasenwechsel-speichersynapsen - Google Patents

Unterdrücken von ausreisserdriftkoeffizienten während des programmierens von phasenwechsel-speichersynapsen Download PDF

Info

Publication number
DE112020003371T5
DE112020003371T5 DE112020003371.6T DE112020003371T DE112020003371T5 DE 112020003371 T5 DE112020003371 T5 DE 112020003371T5 DE 112020003371 T DE112020003371 T DE 112020003371T DE 112020003371 T5 DE112020003371 T5 DE 112020003371T5
Authority
DE
Germany
Prior art keywords
conductance
time
programming
pcm
target
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
DE112020003371.6T
Other languages
English (en)
Inventor
Geoffrey Burr
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 DE112020003371T5 publication Critical patent/DE112020003371T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/0033Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • 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
    • 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/0004Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells
    • 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/004Reading or sensing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/70Resistive array aspects
    • G11C2213/79Array wherein the access device being a transistor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/70Resistive array aspects
    • G11C2213/82Array having, for accessing a cell, a word line, a bit line and a plate or source line receiving different potentials

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Neurology (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Chemical & Material Sciences (AREA)
  • Crystallography & Structural Chemistry (AREA)
  • Evolutionary Computation (AREA)
  • Computer Hardware Design (AREA)
  • Semiconductor Memories (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Advance Control (AREA)

Abstract

Ein computerumgesetztes Verfahren zum Unterdrücken von Ausreißerdrift einer Phasenwechsel-Speichereinheit (PCM-Einheit) enthält ein Programmieren eines Leitwerts der PCM-Einheit durch eine Steuereinheit, wobei das Programmieren ein Konfigurieren des Leitwerts der PCM-Einheit auf einen ersten Leitwert zu einem ersten Zeitpunkt enthält, wobei der erste Zeitpunkt ein Programmierzeitpunkt ist. Das Programmieren enthält ferner ein Bestimmen zu einem ersten Vorkompensationszeitpunkt, dass sich der Leitwert der PCM-Einheit auf einen zweiten Leitwert geändert hat, der sich von einem Zielleitwert um nicht mehr als einen vorbestimmten Schwellenwert unterscheidet. Ferner enthält das Programmieren auf Grundlage der vorstehenden Bestimmung, ein Umprogrammieren der PCM-Einheit auf den ersten Leitwert zu einem zweiten Zeitpunkt, einschließlich erneutes Messen der Vorkompensation, aber zu einem zweiten Vorkompensationszeitpunkt.

Description

  • HINTERGRUND
  • Die vorliegende Erfindung bezieht sich allgemein auf Computertechnologie, und insbesondere auf ein Programmieren eines Phasenwechselspeichers (phase-change memory (PCM)) und auf Verfahren zum Unterdrücken von Ausreißerdrift während eines Programmierens des PCM.
  • Der PCM nutzt Charakteristika von Materialien, welche die Eigenschaft eines Wechselns zwischen zwei Phasen mit abgegrenzten elektrischen Eigenschaften besitzen. Zum Beispiel können diese Phasen zwischen einer amorphen, ungeordneten Phase und einer kristallinen oder polykristallinen, geordneten Phase wechseln. Diese zwei Phasen sind erheblich verschiedenen Werten des spezifischen elektrischen Widerstands zugeordnet. Zusätzlich können Zwischenkonfigurationen, in denen das Material nur teilweise zu der amorphen Phase oder zu der kristallinen Phase gewechselt hat, Zwischenwerten des spezifischen elektrischen Widerstands zugeordnet sein.
  • KURZDARSTELLUNG
  • Gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung enthält ein computerumgesetztes Verfahren zum Unterdrücken von Ausreißerdrift einer Phasenwechsel-Speichereinheit (PCM-Einheit) ein Programmieren eines Leitwerts der PCM-Einheit durch eine Steuereinheit, wobei das Programmieren ein Konfigurieren des Leitwerts der PCM-Einheit auf einen ersten Leitwert zu einem ersten Zeitpunkt enthält, wobei der erste Zeitpunkt ein Programmierzeitpunkt ist. Das Programmieren enthält ferner ein Bestimmen zu einem ersten Vorkompensationszeitpunkt, dass sich der Leitwert der PCM-Einheit auf einen zweiten Leitwert geändert hat, der sich von einem Zielleitwert um nicht mehr als einen vorbestimmten Schwellenwert unterscheidet. Ferner enthält das Programmieren auf Grundlage der vorstehenden Bestimmung ein Umprogrammieren der PCM-Einheit auf den ersten Leitwert zu einem zweiten Zeitpunkt, einschließlich erneutes Messen der Vorkompensation, aber zu einem zweiten Vorkompensationszeitpunkt. Der Leitwert der PCM-Einheit ändert sich wegen der Leitwertdrift auf den zweiten Leitwert.
  • In einem oder mehreren Beispielen befindet sich der Vorkompensationszeitpunkt zu einer vorbestimmten Zeitdauer nach dem Programmierzeitpunkt. Ferner wird in einem oder mehreren Beispielen der Zielleitwert zu dem ersten Vorkompensationszeitpunkt auf Grundlage eines Zielzeitfensters bestimmt, das sich zu einer zweiten vorbestimmten Dauer nach dem Programmierzeitpunkt befindet. Der Leitwert der PCM-Einheit ist in einem bestimmten Bereich während des Zielzeitfensters zu halten.
  • In einem oder mehreren Beispielen wird das Programmieren fortgesetzt, bis die Differenz zwischen (i) dem zweiten Leitwert zu dem Vorkompensationszeitpunkt und (ii) dem Zielleitwert kleiner als der vorbestimmte Schwellenwert ist.
  • Wenn zu dem Vorkompensationszeitpunkt die Differenz zwischen dem zweiten Leitwert zu dem Vorkompensationszeitpunkt und dem Zielleitwert kleiner als der vorbestimmte Schwellenwert ist, enthält das Verfahren ferner ein Bestimmen an einem ersten Prüfpunkt, dass sich der Leitwert der PCM-Einheit auf einen dritten Leitwert geändert hat, der sich von einem zweiten Zielleitwert um nicht mehr als den vorbestimmten Schwellenwert unterscheidet. Das Verfahren enthält ferner ein Programmieren der PCM-Einheit auf den ersten Leitwert zu einem dritten Zeitpunkt, einschließlich erneutes Messen der Vorkompensation.
  • In einem oder mehreren Beispielen befindet sich der erste Prüfpunkt zu einer zweiten vorbestimmten Zeitdauer nach dem Programmierzeitpunkt. Der zweite Zielleitwert an dem ersten Prüfpunkt wird auf Grundlage eines Zielzeitfensters bestimmt, das sich zu einer zweiten vorbestimmten Dauer seit dem Programmierzeitpunkt befindet, wobei der Leitwert der PCM-Einheit innerhalb eines bestimmten Bereichs während des Zielzeitfensters gehalten wird.
  • In einem oder mehreren Beispielen wird die PCM-Einheit als eine Synapse in einem künstlichen neuronalen Netzsystem verwendet, wobei der Leitwert eine Gewichtung ist, die der Synapse zugewiesen wird.
  • In einem oder mehreren Beispielen enthält die PCM-Einheit mehrere PCM-Einheiten, wobei jede PCM-Einheit einem jeweiligen Zielleitwert zugeordnet wird.
  • Die vorstehend beschriebenen Merkmale können auch mindestens durch ein System, ein Computerprogrammprodukt und eine Maschine bereitgestellt werden.
  • Gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung enthält ein computerumgesetztes Verfahren ein Konfigurieren aus einer Mehrzahl von Phasenwechsel-Speichereinheiten (PCM-Einheiten) in einer Kreuzschienenanordnung eines Leitwerts einer PCM-Einheit durch eine Steuereinheit, durch Empfangen eines Signals zum Konfigurieren des Leitwerts der PCM-Einheit auf einen ersten Leitwert zu einem ersten Zeitpunkt, wobei der erste Zeitpunkt ein Programmierzeitpunkt ist. Das Verfahren enthält ferner ein Bestimmen zu einem Vorkompensationszeitpunkt, dass sich der Leitwert der PCM-Einheit auf einen zweiten Leitwert geändert hat, der sich von einem Zielleitwert um nicht mehr als einen vorbestimmten Schwellenwert unterscheidet. Das Verfahren enthält ferner ein Empfangen eines weiteren Signals zum Konfigurieren des Leitwerts der PCM-Einheit auf den ersten Leitwert zu einem zweiten Zeitpunkt, einschließlich erneutes Messen der Vorkompensation, aber zu einem zweiten Vorkompensationszeitpunkt.
  • Die vorstehend beschriebenen Merkmale können auch mindestens durch ein System, ein Computerprogrammprodukt und eine Maschine bereitgestellt werden.
  • Eine oder mehrere Ausführungsformen der vorliegenden Erfindung ermöglichen dementsprechend eine praktische Anwendung und eine Verbesserung an Computertechnologie, insbesondere zum Programmieren von PCM-Einheiten und zum Unterdrücken der Ausreißerdrift. Ausführungsformen der vorliegenden Erfindung können angewendet werden, wenn bekannt ist, was die Gewichtungen von PCM-Einheiten sein sollen, und die PCM-Einheiten werden in einer solchen Weise programmiert, dass sie an dem richtigen Gewichtungswert zur richtigen Zeit in der Zukunft ankommen. Da die Entwicklung der PCM-Einheiten in einer logarithmischen Skala erfolgt, besteht die Verwirklichung darin, dass selbst nach einer relativ kurzen (verglichen damit, wann die Gewichtung verwendet werden soll) Zeitdauer (z.B. 1 Sekunde, 1 Minute usw.) Messungen der Gewichtungen der PCM-Einheiten verwendet werden können, um vorherzusagen, ob die PCM-Einheit die gewünschte Zielgewichtung in dem gewünschten Zielzeitfenster (z.B. 6 Monate, ein Jahr usw.) besitzen wird.
  • Der Vorkompensationszeitpunkt befindet zu einer ersten vorbestimmten Zeitdauer nach dem Programmierzeitpunkt. Der Zielleitwert zu dem Vorkompensationszeitpunkt wird auf Grundlage eines Zielzeitfensters bestimmt, das sich zu einer zweiten vorbestimmten Dauer nach dem Programmierzeitpunkt befindet. Der Leitwert der PCM-Einheit ist in einem bestimmten Bereich während des Zielzeitfensters zu halten.
  • Zusätzliche technische Merkmale und Vorteile werden durch die Techniken der vorliegenden Erfindung verwirklicht. Ausführungsformen und Aspekte der Erfindung werden hierin im Detail beschrieben und als Teil des beanspruchten Gegenstandes angesehen. Für ein besseres Verständnis sind die detaillierte Beschreibung und die Zeichnungen heranzuziehen.
  • Figurenliste
  • Die Besonderheiten der hierin beschriebenen ausschließlichen Rechte werden besonders in den Ansprüchen am Ende der Patentschrift dargelegt und klar beansprucht. Die vorhergehenden und weitere Merkmale und Vorteile der Ausführungsformen der Erfindung werden anhand der folgenden detaillierten Beschreibung in Verbindung mit den begleitenden Zeichnungen ersichtlich, in denen:
    • 1 ein Blockschaubild eines tiefen neuronalen Netzes darstellt;
    • 2A, 2B und 2C Blockschaltbilder eines tiefen neuronalen Netzes unter Verwendung einer Kreuzschienenanordnung von analogem Speicher gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung darstellen;
    • 3 ein Blockschaubild einer Phasenwechsel-Speicheranordnungseinheit gemäß einer oder mehreren Ausführungsform der vorliegenden Erfindung darstellt;
    • 4 eine Struktur eines neuromorphen Systems darstellt, das unter Verwendung einer Kreuzschienenanordnung umgesetzt ist, das mit mehreren Neuronen als ein Netz gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung verbunden ist;
    • 5 eine Beispieldrift von Widerstands-/Leitwerten von Phasenwechsel-Speichereinheiten gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung darstellt;
    • 6 v-Koeffizienten für Beispieleinheiten gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung darstellt;
    • 7 einen Ablaufplan eines Verfahrens zum Unterdrücken von Ausreißerdriftkoeffizienten während eines Programmierens von Phasenwechsel-Speichereinheiten gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung darstellt;
    • 8 Beispiel-Phasenwechsel-Speichereinheiten darstellt, die gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung programmiert werden; und
    • 9 ein System zum Programmieren von Phasenwechsel-Speichereinheiten mit einer Unterdrückung von Ausreißerdrift gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung darstellt.
  • Die hierin dargestellten Darstellungen sind veranschaulichend. Es kann viele Variationen an der Darstellung oder den darin beschriebenen Operationen geben, ohne vom Geist der Erfindung abzuweichen. Zum Beispiel können die Aktionen in einer abweichenden Reihenfolge durchgeführt werden, oder Aktionen können hinzugefügt, entfernt oder modifiziert werden. Zudem beschreibt der Begriff „verbunden“ und Variationen davon ein Besitzen eines Datenübertragungspfads zwischen zwei Elementen und impliziert keine direkte Verbindung zwischen den Elementen ohne dazwischengefügte Elemente/Verbindungen zwischen ihnen. Alle diese Variationen werden als ein Teil der Patentschrift angesehen.
  • In den begleitenden Figuren und der folgenden detaillierten Beschreibung der offenbarten Ausführungsformen werden die verschiedenen in den Figuren veranschaulichten Elemente mit zwei- oder dreistelligen Bezugsziffern bereitgestellt. Mit kleineren Ausnahmen entsprechen die eine oder mehreren Stellen ganz links in jeder Bezugsziffer der Figur, in der ihr Element zuerst veranschaulicht ist.
  • DETAILLIERTE BESCHREIBUNG
  • Vielfältige Ausführungsformen der Erfindung werden hierin unter Bezugnahme auf die zugehörigen Zeichnungen beschrieben. Alternative Ausführungsformen der Erfindung können entwickelt werden, ohne vom Umfang dieser Erfindung abzuweichen. Vielfältige Verbindungen und Positionsbeziehungen (z.B. über, unter, benachbart usw.) werden zwischen Elementen in der folgenden Beschreibung und in den Zeichnungen dargelegt. Diese Verbindungen und/oder Positionsbeziehungen können direkt oder indirekt sein, und die vorliegende Erfindung soll in dieser Hinsicht nicht einschränkend sein, sofern nicht anderweitig spezifiziert. Dementsprechend kann sich ein Verbinden von Entitäten auf entweder eine direkte oder eine indirekte Verbindung beziehen, und eine Positionsbeziehung zwischen Entitäten kann eine direkte oder indirekte Positionsbeziehung sein. Darüber hinaus können die hierin beschriebenen vielfältigen Aufgaben und Prozessschritte in eine umfassendere Prozedur oder einen solchen Prozess mit zusätzlichen Schritten oder Funktionalität, die hierin nicht im Detail beschrieben sind, einbezogen werden.
  • Die folgenden Definitionen und Abkürzungen sind für die Interpretation der Ansprüche und der Patentschrift zu verwenden. Wie hierin verwendet, sollen die Begriffe „weist auf“, „aufweisend“, „enthält“, „enthaltend“, „besitzen“, „besitzend“, „beinhaltet“ oder „beinhaltend“ oder eine beliebige andere Variation davon eine nicht ausschließliche Einschließung abdecken. Zum Beispiel ist eine Zusammensetzung, eine Mischung, ein Prozess, ein Verfahren, ein Artikel oder eine Vorrichtung, die eine Liste von Elementen aufweist, nicht notwendigerweise auf nur diese Elemente beschränkt, sondern kann andere Elemente enthalten, die nicht ausdrücklich aufgeführt sind oder für solch eine Zusammensetzung, Mischung, Prozess, Verfahren, Artikel oder Vorrichtung inhärent sind.
  • Zusätzlich wird der Begriff „beispielhaft“ hierin in der Bedeutung von „als ein Beispiel, ein Fall oder eine Veranschaulichung dienend“ verwendet. Jede hierin als „beispielhaft“ beschriebene Ausführungsform oder Gestaltung ist nicht notwendigerweise als bevorzugt oder vorteilhaft gegenüber anderen Ausführungsformen oder Gestaltungen anzusehen. Die Begriffe „mindestens ein“ und „ein oder mehrere“ können so verstanden werden, dass sie eine beliebige ganze Zahl größer als oder gleich eins enthalten, d.h. eins, zwei, drei, vier usw. Die Begriffe „eine Mehrzahl“ können so verstanden werden, dass sie eine beliebige ganze Zahl größer als oder gleich zwei enthalten, d.h. zwei, drei, vier, fünf usw. Der Begriff „Verbindung“ kann sowohl eine indirekte „Verbindung“ als auch eine direkte „Verbindung“ enthalten.
  • Die Begriffe „etwa“, „im Wesentlichen“, „annähernd“ und Variationen davon sollen das Ausmaß eines Fehlers enthalten, das einer Messung der bestimmten Menge auf Grundlage der zur Zeit des Einreichens der Anmeldung verfügbaren Ausrüstung zugeordnet ist. Zum Beispiel kann „etwa“ einen Bereich von ±8 % oder 5 %, oder 2 % eines gegebenen Wertes enthalten.
  • Der Kürze wegen können herkömmliche Techniken bezüglich eines Herstellens und Verwendens von Aspekten der Erfindung hierin im Detail beschrieben sein, müssen dies aber nicht. Insbesondere sind vielfältige Aspekte von Datenverarbeitungssystemen und spezifischen Computerprogrammen, um die vielfältigen hierin beschriebenen technischen Merkmale umzusetzen, allgemein bekannt. Dementsprechend sind im Interesse der Kürze viele herkömmliche Umsetzungsdetails hierin nur kurz erwähnt oder sind vollständig weggelassen, ohne das allgemein bekannte System und/oder Prozessdetails bereitzustellen.
  • Wie zuvor angemerkt, nutzen Phasenwechsel-Speicherelemente (PCM-Elemente) die Charakteristika von Materialien, welche die Eigenschaft eines Wechselns zwischen zwei Phasen mit abgegrenzten elektrischen Eigenschaften besitzen. Derzeit können die Legierungen der Gruppe VI des Periodensystems, wie beispielsweise Te oder Se, die als Chalkogenide oder chalkogene Materialen bezeichnet werden, vorteilhaft in Phasenwechselzellen verwendet werden. Bei Chalkogeniden variiert der spezifische elektrische Widerstand um zwei oder mehr Größenordnungen, wenn das Material von der amorphen Phase (höherer Widerstand) zu der kristallinen Phase (weniger Widerstand) übergeht und umgekehrt.
  • Solche Charakteristika machen PCM-Elemente hoch geeignet zum Bereitstellen von Speicherzellen und Anordnungen für eine digitale und analoge Datenspeicherung. Insbesondere wird bei Phasenwechselspeichern ein Teil des Chalkogenidmaterials als ein programmierbarer Widerstand verwendet, der durch einen gesteuerten Strom elektrisch erwärmt werden kann, um zwischen einem Zustand mit hohem Widerstand und einem Zustand mit niedrigem Widerstand und umgekehrt zu wechseln, denen jeweils ein erster logischer Wert und ein zweiter logischer Wert zugeordnet ist. Der Zustand des Chalkogenids kann durch Anlegen einer Spannung, die ausreichend niedrig ist, um kein Erwärmen zu verursachen, und Messen des durchfließenden Stroms gelesen werden. Da der Strom proportional zum Leitwert des Chalkogenidmaterials ist, ist es möglich, die zwei Zustände zu unterscheiden. Zum Beispiel wird ein Chalkogenid, das durch eine Legierung von Ge, Sb und Te (Ge2Sb2Te5, GST) gebildet wird, weithin zum Speichern von Informationen in überschreibbaren Speichereinheiten, wie beispielsweise in Computern und anderen Arten von digitalen Speicherungseinheiten, verwendet.
  • Die Phasenübergänge zwischen dem hochohmigen amorphen Zustand und dem hochleitfähigen kristallinen Zustand können elektrisch durch Stromimpulse geeigneter Amplitude und Dauer induziert werden. Insbesondere der Übergang zum amorphen Zustand („Zurücksetzen“) wird erhalten, indem Stromimpulse einer Amplitude angelegte werden, die ausreichend ist, um das Chalkogenid durch den Joule-Effekt über den Schmelzpunkt hinaus zu erwärmen. Die Stromimpulse, die verwendet werden, besitzen steile Flanken, so dass ein Kühlen des Chalkogenids ausreichend schnell ist, um eine Kristallisation zu verhindern, zum Beispiel rechteckige Stromimpulse. Der Übergang zum kristallinen Zustand („Setzen“) kann unter Verwendung unterschiedlicher Techniken induziert werden. Da sich die Leitwerte der Phasen der PCM-Einheit unterscheiden, ist es dementsprechend möglich, dieses Phänomen zu verwenden, um Bits zu speichern. Es ist auch möglich, die interne Temperatur und ihre zeitliche Entwicklung zu steuern, so dass das Bit in einen Zustand mit einem Zwischenleitwert eintritt. Zusätzlich zum Speichern von Bits kann dies verwendet werden, um Berechnungen durchzuführen, da sich eine vorbestimmte Gruppe (oder ein Satz) von Phasenwechseln unter dem Schwellenwert allmählich zu einem Bitkippen addieren können.
  • Die Vorteile eines Durchführens von Berechnungen auf diese Weise sind zweifach: es vermeidet Touren zurück und vorwärts zum Speicher, da die Operationen in dem Speicher stattfinden, und Operationen könne parallel ausgeführt werden. Diese Differenzen besitzen natürliche Parallelen zum Verhalten einer Population von Neuronen, was PCM-Einheiten zur Verwendung in künstlichen neuronalen Netzen (artificial neural networks (ANNs)), wie beispielsweise einem tiefen neuronalen Netz (deep neural network (DNN)) geeignet macht.
  • PCM eignet sich ferner zur Verwendung in DNNs (oder anderen Typen von neuronalen Netzen). Dies liegt daran, dass die neuronale Aktivität kein binärer Zustand Alles oder Nichts ist — sie kann einen Bereich von Zwischenverhalten zwischen ein und aus annehmen. Daher erlaubt es die Fähigkeit einer PCM-Einheit, einen Zustand zwischen 1 und 0 anzunehmen, das Verhalten von Neuronen direkt zu modellieren.
  • Um dies für ein Training zu verwenden, kann ein Gitter (oder eine Anordnung) von PCM-Einheiten (Bits) auf jede Schicht eines DNNs abgebildet werden. Ein aus Verdrahtung hergestelltes Datenübertragungsnetzwerk erlaubt es den Neuronen, untereinander Daten auszutauschen. Die Stärke dieses Datenaustausches wird durch den Zustand des Speichers eingestellt — wobei er in dem Spektrum zwischen vollständig ein und vollständig aus liegt. Dieser Zustand wiederum wird durch alle Bits eingestellt, die ihm zugeführt werden. Die Datenübertragungshardware übersetzt die Signale variabler Stärke von dem Phasenwechselbit in Signale unterschiedlicher Dauern, die mit dem digitalen Datenübertragungsnetzwerk kompatibel sind.
  • Üblicherweise können zum Umsetzen eines DNNs Vorwärtsinferenzberechnungen langsam und energieintensiv sein, was der Notwendigkeit, die Gewichtungsdaten für das Netzwerk zwischen herkömmlichen digitalen Speicherchips und Prozessorchips zu übertragen, und der Notwendigkeit, die Gewichtungen konstant in dem Speicher zu halten, geschuldet ist. Wie vorstehend beschrieben, kann analoger nichtflüchtiger Speicher auf Grundlage von PCM die Vorwärtsinferenz beschleunigen und den Energieverbrauch verringern, indem parallele Multiplizier-Akkumulier-Operationen in der analogen Domäne am Ort der Gewichtungsdaten durchgeführt werden, was die Notwendigkeit, gespeicherte Gewichtungsdaten in dem Speicher zu aktualisieren, verringert. Praktische Anwendungen eines solchen DNNs sind unbegrenzt und können Echtzeit-Sensordatenverarbeitung und -Inferenz für loT-Einheiten und dergleichen enthalten.
  • Die Genauigkeit der Vorwärtsinferenz hängt stark von der Genauigkeit des Gewichtungsprogrammierens ab. Das Programmieren von analogem Speicher, wie PCM, auf die gewünschten analogen Leitwerte ist nicht trivial, speziell bei Variabilität in einer analogen Speicheranordnung. Nachdem eine PCM-Einheit auf einen bestimmten Widerstandszustand programmiert ist (dies kann zum Beispiel der Zustand niedrigen Widerstands oder SETZ-Zustand, des hohen Widerstands oder ZURÜCKSETZ-Zustand oder irgendein Zwischenzustand zwischen den SETZ-/ZURÜCKSETZ-Zuständen sein, wie beispielsweise R1, R2 oder R3), kann der bestimmte Widerstandswert oder Widerstandszustand mit der Zeit driften. Zum Beispiel ist Widerstandsdrift ein physikalischer Prozess, bei dem PCM-Einheiten weiterhin stationäre lineare Anstiege in LOG(Widerstand) (äquivalent zu Abnahmen in LOG(Leitwert)) als eine Funktion von LOG(Zeit) zeigen. Obwohl dies bedeutet, dass der Leitwert zuerst als eine lineare Funktion der Zeit schnell abfällt und sich dann (als eine lineare Funktion der Zeit) zu sättigen scheint, fällt der Leitwert über ein Zeitintervall, das mindesten eine vorbestimmte Dauer (z.B. 6 Wochen, 3 Monate, 1 Jahr usw.) beträgt, weiterhin ab. Eine solche Drift kann ein Problem beim Unterscheiden eines Widerstandszustands von einem anderen schaffen, speziell wenn die Speichereinheit in einem Mehrfachzustandsmodus betrieben wird. Dies kann bewirken, dass ein System, wie beispielsweise ein ANN, das die PCM-Einheiten verwendet, entweder gezwungen wird, die PCM-Einheiten wiederholt umzuprogrammieren oder (aufgrund von unterschiedlichen Werten aus den PCM-Einheiten) unerwartete Ergebnisse zu erzeugen. Fortan wird in diesem Dokument die minimale Dauer, nach der die Drift bewirkt, dass sich der Leitwert einer PCM-Einheit um mindestens einen vorbestimmten Wert ändert, als eine „Driftdauer“ bezeichnet.
  • Für die Vorwärtsinferenz von ANNs, die unter Verwendung von PCM-Einheiten umgesetzt werden, die mindestens in der Vergangenheit programmiert wurden, während der durchschnittliche Leitwertverlust teilweise durch Aufwärtsskalieren der Leseströme kompensiert werden kann, kann die Ausbreitung des Leitwerts aufgrund zufälliger Zyklus-zu-Zyklus-Variationen des Driftkoeffizienten „Ny“ nicht einfach auf diese Weise korrigiert werden. Es bleibt ein Bedarf nach einem Weg, um ein Codieren von synaptischen Gewichtungsdaten in PCM-gestützte synaptische Gewichtungen zu vermeiden, die durch einen durchschnittlichen Skalierungskoeffizienten schlecht korrigiert werden.
  • Die hierin beschriebenen Techniken unter Verwendung von einer oder mehreren Ausführungsformen der vorliegenden Erfindung überwinden solche technischen Herausforderungen. Eine oder mehrere Ausführungsformen der vorliegenden Erfindung ermöglichen dementsprechend eine praktische Anwendung und eine Verbesserung an Computertechnologie, insbesondere zum Programmieren von PCM-Einheiten und zum Unterdrücken der Ausreißerdrift. Andere Vorteile und praktische Anwendungen, die durch eine oder mehrere Ausführungsformen der vorliegenden Erfindung bereitgestellt werden, werden für den Fachmann auf Grundlage der Beschreibung hierin ersichtlich.
  • Eine oder mehrere Ausführungsformen der vorliegenden Erfindung lösen die hierin beschriebenen technischen Herausforderungen auf Grundlage dessen, dass der Leitwert zuerst abfällt und sich später sättigt. Sobald die PCM-Einheit programmiert ist (Programmierereignis), ist die Leitwertentwicklung immer eine gerade Linie auf einer Darstellung von LOG(Leitwert) über LOG(Zeit), solange die Zeit die Zeit seit dem Programmierereignis ist. Ein Verwenden eines anderen Ursprungspunktes t = 0 führt entweder zu Datenpunkten, welche die Kausalität verletzen, oder zu Kurven, die für die ersten Größenordnungen auf der Zeitachse flach sind und sich erst später krümmen, um mit dem realen zugrundeliegenden Ny-Koeffizienten übereinzustimmen.
  • Eine Beschreibung einer oder mehrerer Ausführungsformen der vorliegenden Erfindung wird nun bereitgestellt, die ein Verwenden von PCM-Einheiten als Synapsen in ANNs enthalten, und welche die technischen Herausforderungen durch Integrieren von Techniken zum Unterdrücken der Ausreißerdriftkoeffizienten lösen, während die Synapsen in den ANNs programmiert werden.
  • 1 stellt ein Blockschaubild eines tiefen neuronalen Netzes dar. Das dargestellte DNN besitzt eine Eingangsschicht 110, eine verborgene Schicht 120 und eine Ausgabeschicht 130, die jeweils Neuronen 105 enthalten. DNNs sind lose durch biologische neuronale Netze inspiriert. Die Neuronen 105 agieren als parallele Verarbeitungseinheiten, die durch plastische Synapsen verbunden sind. Durch Abstimmen von Gewichtungen der Verbindungen kann das DNN 100 gewisse Probleme, wie beispielsweise Klassifizierungsprobleme, effizient lösen. Das Training des DNNs 100 beruht allgemein auf einem globalen überwachten Lernalgorithmus, der üblicherweise als Rückpropagierung bezeichnet wird. Während des Trainings werden die Eingangsdaten durch die Neuronenschichten 110, 120 und 130 vorwärtspropagiert, wobei die synaptischen Netze Multiplizier-Akkumulier-Operationen durchführen. Die Antworten der finalen Schicht (Ausgangsschicht 130) werden mit den Eingangsdatenkennzeichnungen verglichen und die Fehler werden rückpropagiert. Sowohl die Schritte der Vorwärtspropagierung als auch der Rückwärtspropagierung enthalten Sequenzen von Matrix-Vektor-Multiplikationen. Anschließend werden die synaptischen Gewichtungen aktualisiert, um den Fehler zu verringern. Aufgrund der Notwendigkeit, diese Operationen unter Verwendung sehr großer Datensätze (mehrere Gigabytes) für sehr große neuronale Netze wiederholt durchzuführen, kann dieser Brute-Force-Optimierungsansatz mehrere Tage oder Wochen dauern, um hochmoderne Netze auf Von-Neumann-Maschinen zu trainieren. Dementsprechend wird in einer oder mehreren Ausführungsformen der vorliegenden Erfindung ein Coprozessor verwendet, der mehrere Kreuzschienenanordnungen von PCM-Einheiten und andere analoge Datenverarbeitungsverbindungen und periphere Schaltkreise enthält, um solche Schritte des tiefen Lernens zu beschleunigen
  • 2A, 2B und 2C stellen Blockschaltbilder eines tiefen neuronalen Netzes unter Verwendung einer Kreuzschienenanordnung von analogem Speicher gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung dar. Die synaptischen Gewichtungen, die jeder Schicht (110, 120 und 130) des DNNs hinsichtlich der Leitwerte von nichtflüchtigen Speichereinheiten (non-volatile memory (NVM) devices) 210 zugeordnet sind, sind in einer Kreuzschienenanordnung organisiert. Die NVM-Einheiten 210 können PCM-Einheiten, „Resistance Random Access Memory‟(RRAM)-Einheiten und dergleichen sein. In 2A, 2B und 2C sind verschiedene Phasen eines Umsetzens des DNNs 100 dargestellt - eine Vorwärtspropagierung in 2A, eine Rückwärtspropagierung in 2B und eine Gewichtungsaktualisierung in 2C.
  • In einem oder mehreren Beispielen gibt es mehrere solche Kreuzschienenanordnungen, die jeweils jeder der mehreren Schichten (110, 120 und 130) des DNNs 100 entsprechen. Gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung enthält ein Coprozessor/Chip/System solche Kreuzschienenanordnungen 200 zusammen mit zusätzlichen peripheren Schaltkreisen, um die neuronalen Aktivierungsfunktionen und die Datenübertragung zwischen den Kreuzschienenanordnungen 200 umzusetzen.
  • 3 stellt ein Blockschaubild einer Phasenwechsel-Speicheranordnungseinheit gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung dar. Die Architektur stellt mehrere identische Anordnungsblöcke 310 dar, die durch ein flexibles Routingnetzwerk auf einem Chip/System 300 verbunden sind. Jeder Anordnungsblock 310 stellt eine Kreuzschienenanordnung 200 der NVM-Einheiten 210 dar. Das flexible Routingnetzwerk hat mindestens drei Aufgaben: (1) Übermitteln von Chipeingängen (wie beispielsweise Beispieldaten, Beispielkennzeichnungen und Gewichtungsübersteuerungen) von dem Rand des Chips 300 zu den Einheitenanordnungen 310, (2) Tragen von Chipausgängen (wie beispielsweise abgeleitete Klassifizierungen und aktualisierte Gewichtungen) von den Anordnungen 310 zum Rand des Chips 300 und (3) Verbinden verschiedener Anordnungen 310, um mehrschichtige neuronale Netze umzusetzen. Jede Anordnung 310 besitzt Eingangsneuronen 110 (hier auf der „West“-Seite jeder Anordnung gezeigt) und Ausgangsneuronen 130 („Süd“-Seite), die mit einem dichten Gitter von synaptischen Verbindungen 115 verbunden sind. Der periphere Schaltkreis ist in einen Schaltkreis, der einzelnen Zeilen (Zeilenschaltkreis 320) und Spalten (Spaltenschaltkreis 330) zugewiesen ist, einen Schaltkreis, der zwischen einer Anzahl von benachbarten Zeilen und Spalten gemeinsam genutzt wird, unterteilt.
  • Gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung sind die NVM-Einheiten 210 (zum Beispiel PCM-Einheiten) in der Kreuzschienenanordnung 200 gemäß vortrainierten Gewichtungen programmiert. Eine vortrainierte Gewichtung ist eine Gewichtung, welche die NVM-Einheit 210 innerhalb der neuronalen Netzberechnungen trotz etwaiger Unsicherheit/Verteilung der Drift umsetzen sollte, welche die NVM-Einheit zwischen der Programmierzeit und dem Punkt in der Zukunft, die tatsächliche Inferenzverwendungszeit, durchlaufen wird.
  • 4 stellt eine Struktur eines neuromorphen Systems dar, das unter Verwendung einer Kreuzschienenanordnung umgesetzt ist, das mit mehreren Neuronen als ein Netz gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung verbunden ist. Das dargestellte neoromorphe System 400 enthält mehrere Neuronen 414, 416, 418 und 420, die unter Verwendung der Kreuzschienenanordnung 200 verbunden sind. In einem Beispiel besitzt die Kreuzschienenanordnung 200 einen Abstand im Bereich von etwa 0,1 nm bis 10 µm. Das System 400 enthält ferner Synapseneinheiten 422, welche die NVM-Einheiten 210 enthalten, die als Widerstände mit variablem Zustand an den Kreuzungspunktverbindungen der Kreuzschienenanordnung 412 verwendet werden. Die Synapseneinheiten 422 sind mit Axonwegen 424, Dendritenwegen 426 und Membranwegen 427 verbunden, so dass die Axonwege 424 und die Membranwege 427 orthogonal zu den Dendriten 426 sind. Die Begriffe „Axonweg“, „Dendritenweg“ und „Membranweg“ werden manchmal als „Axon“, „Dendrit“ bzw. „Membran“ bezeichnet.
  • Die Kreuzschienenanordnung 200, die eine Kreuzschienenanordnung auf Nanomaßstabsebene sein kann, welche die NVM-Einheiten an den Kreuzungspunktverbindungen enthält, wird benutzt, um eine beliebige und plastische Konnektivität zwischen den elektronischen Neuronen umzusetzen. Jede Synapseneinheit 422 enthält ferner eine Zugriffs- oder Steuereinheit 425, die einen Feldeffekttransistor (FET), der nicht als eine Diode verdrahtet ist, an jeder Kreuzschienenverbindung enthalten kann, um ein Übersprechen während einer Signaldatenübertragung (neuronale Feuerelemente) zu verhindern und eine Leckage und Leistungsaufnahme zu minimieren. Es sollte angemerkt werden, dass in anderen Ausführungsformen andere Typen von Schaltungen als Steuereinheiten 425 verwendet werden können und ein FET in der Beschreibung hierin als ein mögliches Beispiel verwendet wird.
  • Die elektronischen Neuronen 414, 416, 418 und 420 sind als Schaltungen an der Peripherie der Kreuzschienenanordnung 200 konfiguriert. Zusätzlich zu der einfachen Gestaltung und Fertigung stellt die Kreuzschienenarchitektur eine effiziente Verwendung des verfügbaren Raums bereit. Eine vollständige Neuronenkonnektivität, die der vollen Kreuzschienenanordnung inhärent ist, kann durch elektrische Initialisierung oder Weglassen von Maskierungsschritten an unerwünschten Stellen während der Fertigung in jede beliebige Konnektivität umgewandelt werden. Die Kreuzschienenanordnung 200 kann so konfiguriert sein, dass die Datenübertragung zwischen den Neuronen angepasst wird (z.B. tauscht ein Neuron niemals Daten mit einem anderen Neuron aus). Beliebige Verbindungen können durch Blockieren gewisser Synapsen auf der Fertigungsebene erhalten werden. Daher kann das architektonische Prinzip des Systems 400 alle direkten Verdrahtungskombinationen imitieren, die in biologischen neuronalen Netzen beobachtet werden.
  • Die Kreuzschienenanordnung 200 enthält ferner Treibereinheiten X2, X3 und X4, wie in 4 gezeigt. Die Einheiten X2, X3 und X4 können Schnittstellentreibereinheiten enthalten. Insbesondere besitzen die Dendriten 426 die Treibereinheiten X2 auf einer Seite der Kreuzschienenanordnung 200 und die Ebenenübersetzereinheiten (z.B. Leseverstärker) X4 auf der anderen Seite der Kreuzschienenanordnung. Die Axons 424 besitzen die Treibereinheiten X3 auf einer Seite der Kreuzschienenanordnung 200. Die Treibereinheiten können CMOS-Logikschaltungen enthalten, welche die hierin beschriebenen Funktionen umsetzen, wie beispielsweise die „West“-Seite und die „Süd“-Seite (3).
  • Diese Signalisierungstechniken werden für die Operationen verwendet, um das DNN 100 unter Verwendung der Kreuzschienenanordnung 200 umzusetzen, wie in 2A, 2B und 2C dargestellt. Bezug nehmend auf 2A enthält die Vorwärtspropagierung Verarbeitungsdaten durch die Neuronenschichten (110, 120 und 130), wobei die synaptischen Netze Multiplizier-Akkumulier-Operationen durchführen. Die Matrix-Vektor-Multiplizierungen, die dem Vorwärtsdurchlauf zugeordnet sind, können mit einer Komplexität von O(1) unter Verwendung der dargestellten Kreuzschienenanordnung 200 umgesetzt werden. Um zum Beispiel Ax = b durchzuführen, wobei A eine Matrix ist und x und b Vektoren sind, werden die Elemente von A linear auf die Leitwerte der PCM-Einheiten 210 abgebildet, die in der Kreuzschiene 200 organisiert sind. Die x-Werte werden in die Amplituden oder Dauern von Lesespannungen codiert, die entlang den Zeilen angelegt werden. Die positiven und negativen Elemente von A werden auf separaten Einheiten zusammen mit einer Subtraktionsschaltung codiert. Alternativ werden in einem oder mehreren Beispielen negative Vektorelemente als negative Spannungen angelegt. Die resultierenden Ströme entlang der Spalten sind proportional zum Ergebnis b. Wenn Eingänge in Dauern codiert werden, ist das Ergebnis b die Gesamtladung (z.B. Strom über der Zeit integriert). Die Eigenschaft der NVM-Einheit 210, die verwendet wird, ist die Mehrebenen-Speicherungsfähigkeit sowie die Kirchhoffschen Schaltungsgesetze: das Ohmsche Gesetz und der erste Kirchhoffsche Satz.
  • Es sollte angemerkt werden, dass die Beschreibung der Kreuzschienenanordnung 210 und des neuromorphen Systems 400 eine mögliche Beispielumsetzung ist und dass eine oder mehrere Ausführungsformen der vorliegenden Erfindung in anderen Umsetzungstypen verwendet werden können.
  • Üblicherweise erfolgt das Programmieren der NVM-Einheit 210 (Aktualisieren der Gewichtungen) durch iteratives Anlegen von SETZ-Impulsen mit stetig zunehmendem Compliance-Strom. Anders ZURÜCKSETZ-Impulse, die einen abrupten Übergang zu niedrigeren Leitwerten verursachen können, wobei die sukzessive Anlegung eines teilweisen SETZ-Impulses zu einer fortschreitenderen Zunahme des Leitwerts der NVM-Einheiten 210 führt. Somit werden für neuromorphe Systeme 400 unter Verwendung der NVM-Einheiten 210 bei bestehenden Lösungen die teilweisen SETZ-Impulse verwendet, um die PCM-Einheiten auf die gewünschten synaptischen Gewichtungen abzustimmen
  • Zum Beispiel besteht die übliche Programmierstrategie für analoges Leitwertabstimmen der NVM-Einheiten 210 darin, iterativ SETZ-Impulse mit stetig zunehmendem Compliance-Strom anzulegen (während zudem die Impulsdauer potenziell erhöht wird), um analoge Zielleitwerte zu erreichen. Die NVM-Einheiten 210 werden durch einen durchschnittlichen Skalierkoeffizienten korrigiert. Das Codieren von synaptischen Gewichtungsdaten in PCM-gestützte synaptische Gewichtungen werden nicht durch solch einen durchschnittlichen Skalierkoeffizienten über der Driftdauer korrigiert.
  • 5 stellt eine Beispieldrift von Widerstands-/Leitwerten von NVM-Einheiten gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung dar. Es versteht sich, dass die Darstellung aus beispielhaften Werten besteht und dass andere Widerstands-/Leitwerte und eine andere Drift in anderen Beispielen möglich sind. 5 veranschaulicht eine Drift in dem Widerstand/Leitwert von separaten NVM-Einheiten 210 über der Zeit. Wie zu sehen ist, können die Einheiten voneinander unterschiedlich driften. Die unterschiedlichen Driften für jede Einheit können als ein Driftkoeffizient („v‟(Ny)-Koeffizient) der jeweiligen NVM-Einheiten 210 ausgedrückt werden. Der v-Koeffizient einer NVM-Einheit 210 gibt die Trajektorie der Leitwertentwicklung für eine NVM-Einheit 210 an, welche die Steigung einer geraden Linie in einer Darstellung von log(Leitwert) über log(Zeit) darstellt.
  • 6 stellt v-Koeffizienten für Beispieleinheiten gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung dar. Die Darstellung in 6 zeigt die Trajektorien der Leitwertänderung über der Zeit für separate NVM-Einheiten 210. Die v-Koeffizienten der jeweiligen NVM-Einheiten sind ebenfalls gezeigt. Der Leitwert und die Zeit, wann der Leitwert zuletzt gelesen wurde, sind beide unter Verwendung einer LOG-Skala dargestellt. Der v-Koeffizient ist kein Wert, welcher der NVM-Einheit zugewiesen werden kann. Vielmehr scheint der v-Koeffizient durch die NVM-Einheit 230 zufällig angenommen zu werden, wenn die Einheit programmiert wird. Diese Phänomene werden der zufälligen Verteilung von polykristallinen Körnern innerhalb der NVM-Einheit nach jedem Programmierereignis zugeschrieben. Somit ist die Drift der NVM-Einheit 210 unvorhersagbar, was zu den hierin erörterten technischen Herausforderungen führt.
  • Eine oder mehrere Ausführungsformen der vorliegenden Erfindung lösen solche technischen Herausforderungen durch Programmieren eines Gewichtungswerts in einer NVM-Einheit 210 (Synapsen) und Prüfen eines geänderten Gewichtungswerts in der NVM-Einheit 210 nach einer vorbestimmten Dauer. Zum Beispiel wird der geänderte Gewichtungswert nach Abwarten von 1 bis 60 Sekunden geprüft, bis die Trajektorie aufgrund des v-Koeffizienten klar ist. Wenn sich der geänderte Gewichtungswert nach der vorbestimmten Dauer (z.B. 1 bis 60 Sekunden) von dem Zielwert um mindestens einen vorbestimmten Schwellenwert unterscheidet, wird die NVM-Einheit 210 umprogrammiert.
  • Dieser Zyklus wird fortgesetzt, bis die NVM-Einheit 210 einen v-Koeffizienten auswählt, der ausreichend nahe an dem Median der erwarteten Verteilung der v-Koeffizienten liegt. Dies kann in einem vernünftigen Intervall von 1 Sekunde bis 1 Minute geprüft werden, indem geprüft wird, dass der Leitwert der Einheit zu dieser Zeit innerhalb einer gegebenen Begrenzungsbox bezüglich der ursprünglichen Begrenzungsbox liegt, und zwar durch ein Verhältnis, das der Leitwertänderung für eine Einheit entspricht, die innerhalb des Median-v-Koeffizienten über diesem Zeitintervall driftet. Da jede Prüfung weniger als 1 Minute pro Versuch dauert, können vernünftigerweise mehrere Programmierversuche umgesetzt werden, um das neuronale Netz vor Ausreißer-Ny-Koeffizienten über lange Zeitspannen in die Zukunft zu schützen. Mit anderen Worten ist das mehrfache Aufwenden des „Zusatz“-Zeitprogramms akzeptabel, wenn berücksichtigt wird, dass es dazu führt, dass die NVM-Einheit 210 in einer Weise programmiert wird, die den Gewichtungswert unterdrückt, der über einen vorbestimmten Schwellenwert driften wird. Dies liegt daran, dass die Drift erfordern kann, dass die NVM-Einheit 210 umprogrammiert wird oder zu fehlerhaften Ergebnissen aus der NVM-Einheit 210 führt.
  • 7 stellt einen Ablaufplan eines Verfahrens zum Unterdrücken von Ausreißerdriftkoeffizienten während eines Programmierens von NVM-Einheiten gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung dar. 8 stellt Beispiel-NVM-Einheiten dar, die gemäß dem in 7 veranschaulichten Verfahren 700 programmiert werden.
  • Das Verfahren 700 enthält bei 702 ein Bestimmen eines Leitwertziels für die NVM-Einheit 210 zu einem Vorkompensationszeitpunkt 810 (z.B. 20 ns) dar, der die durchschnittliche erwartete Drift zwischen diesem Zeitpunkt 810 nach dem Programmieren der NVM-Einheit 210 und einem gewünschten Zielfenster 850 (z.B. 7 Stunden, 2 Wochen, 6 Monate usw.) nach dem Programmierzeitpunkt 805 kompensiert. Der Vorkompensationszeitpunkt 810 stellt eine vorbestimmte Dauer (z.B. 20 ns) dar, bei der eine Leitwertänderung der NVM-Einheit 210 geprüft wird.
  • Bezug nehmend auf 8 wird die NVM-Einheit 210 zum Zeitpunkt 805 programmiert. Das gewünschte (Ziel-) Zeitfenster 850 ist bei annähernd 6 Stunden dargestellt - 6 Monate seit dem Programmierzeitpunkt 805. Es versteht sich, dass das gewünschte Zeitfenster 850 in anderen Beispielen unterschiedlich sein kann. Das gewünschte Zeitfenster 850 stellt die Dauer dar, für die sich der Leitwert, der in die NVM-Einheit 210 programmiert ist, nicht über einen vorbestimmten Schwellenwert außerhalb eines vorbestimmten Intervalls um die erwartete Drift zu dieser Dauer aufgrund des Mediandriftkoeffizienten ändert. Der Vorkompensationszeitpunkt 850 ist zu einer ersten vorbestimmten Dauer von 20 ns nach dem Programmierzeitpunkt 805 dargestellt. Es versteht sich, dass der Vorkompensationszeitpunkt 810 in anderen Beispielen eine unterschiedliche Dauer sein kann.
  • Dementsprechend enthält das Bestimmen des Leitwertziels für die NVM-Einheit 210 zu dem Vorkompensationszeitpunkt 810 ein Berechnen eines Leitwerts, den die NVM-Einheit 210 nach der vorbestimmten Dauer besitzen sollte. Wenn der Leitwert der NVM-Einheit 210 innerhalb eines vorbestimmten Schwellenwerts von dem Leitwertziel liegt, gilt der v-Koeffizient als innerhalb eines akzeptablen Bereichs liegend, so dass der Leitwert der NVM-Einheit 210 nicht über einen vorbestimmten Schwellenwert in dem Zielfenster 850 hinaus driftet. Wenn der Leitwert der NVM-Einheit 210 zu dem Vorkompensationszeitpunkt 819 nicht innerhalb des vorbestimmten Schwellenwerts von dem Leitwertziel liegt, gilt der v-Koeffizient als außerhalb des akzeptablen Bereichs liegend. Mit anderen Worten wird vorhergesagt, dass der Leitwert der NVM-Einheit 210 über den vorbestimmten Schwellenwert in dem Zielfenster 850 hinaus driftet.
  • In einem oder mehreren Beispielen enthält das Verfahren 700 ein Bestimmen mehrerer Leitwertzielwerte zu unterschiedlichen Zeitpunkten. Zum Beispiel wird ein erster Leitwert für den Vorkompensationszeitpunkt 805 berechnet, ein zweiter Leitwert wird für einen Prüfpunkt 815 berechnet und so weiter. Aus der Perspektive einer praktischen Umsetzung muss die Anzahl von Leitwertzielwerten, auf die hin geprüft werden kann, begrenzt werden, zum Beispiel auf zwei, vier oder jede andere solche Zahl, die mehrfaches Programmieren und Prüfen der NVM-Einheit innerhalb einer begrenzten Zeit, wie 1 Minute, 5 Minuten oder jede andere solche Programmierzeit, ermöglichen kann.
  • Nun Bezug nehmend auf 7 wird bei 704 die NVM-Einheit 210 mit dem Leitwert programmiert, welcher der in der durch die NVM-Einheit 210 dargestellten Synapse zu speichernden Gewichtung entspricht. Die Programmierung geschieht zu dem Zeitpunkt 805, wie früher angemerkt. Das Verfahren 700 enthält bei 706 ferner ein Messen des Leitwerts der NVM-Einheit zu dem Vorkompensationszeitpunkt (810). Der gemessene Leitwert wird bei 708 mit dem Zielleitwert verglichen. Wenn der gemessene Leitwert zu dem Vorkompensationszeitpunkt 810 nicht innerhalb eines ersten vorbestimmten Schwellenwerts des Leitwertzielwerts liegt, welcher dem Vorkompensationszeitpunkt 810 entspricht, wird die NVM-Einheit 210 umprogrammiert, und diese Prüfung wird fortgesetzt (704, 706, 708).
  • Wenn bei 710 der gemessene Leitwert innerhalb des ersten vorbestimmten Schwellenwerts des Zielleitwerts liegt, misst das Verfahren 700 den Leitwert erneut zu einem zweiten Prüfpunkt 815. In dem in 8 dargestellten Beispiel ist der Prüfpunkt 815 bei 1 s von dem Programmierzeitpunkt 805 gezeigt; es versteht sich jedoch, dass in anderen Beispielen andere Prüfpunkte verwendet werden können.
  • Der zweite gemessene Leitwert wird bei 712 mit einem zweiten Zielleitwert verglichen, der dem Prüfpunkt 815 entspricht. Wenn der zweite gemessene Leitwert zu dem Prüfpunkt 815 nicht innerhalb eines ersten vorbestimmten Schwellenwerts des zweiten Leitwertzielwerts liegt, welcher dem Prüfpunkt 815 entspricht, wird die NVM-Einheit 210 umprogrammiert, und die Operationen des Verfahrens wiederholt (704, 706, 708, 710). Wenn der zweite gemessene Leitwert innerhalb des vorbestimmten Schwellenwerts des zweiten Zielleitwerts liegt, wird die NVM-Einheit 210 als mit unterdrückter Ausreißerdrift programmiert angesehen.
  • 8 stellt unterschiedliche Fälle dar, in denen der v-Koeffizient variiert, was bewirkt, dass der Leitwert um unterschiedliche Beträge zu dem Vorkompensationspunkt 810 und/oder dem Prüfpunkt 815 driftet. Die Trajektorien 860 und 865 in 8 stellen die NVM-Vorrichtungen dar, die so programmiert sind, dass die Leitwerte in dem Zielfenster 850 wie gewünscht sind. Andere Trajektorien sind dargestellt, um zu veranschaulichen, dass, wenn die gemessenen Leitwerte die Zielleitwerte nicht erfüllen, dies dazu führt, dass die NVM-Einheiten 210 Leitwerte besitzen, die von den in dem Zielfenster 850 gewünschten unterschiedlich sind.
  • Da dem v-Koeffizienten zum Zeitpunkt des Programmierens der NVM-Einheiten für die Mehrheit von Programmierereignissen eine Zufälligkeit zugeordnet ist, die dem zentralen Bereich der zufälligen Verteilung des v-Koeffizienten entspricht, wird der Leitwert innerhalb der berechneten Zielbereiche liegen. Wenn die gemessenen Leitwerte innerhalb der Schwellenwerte der Zielwerte liegen, besitzen die NVM-Einheiten höchstwahrscheinlich den gewünschten Leitwert zur Zeitspanne von Interesse für die Anwendung (hier 6 Stunden bis 6 Monate), dargestellt durch das Zielzeitfenster 850. Wenn stattdessen der Leitwert, von dem bekannt ist, dass er zum Vorkompensationszeitpunkt 810 (20 ns) nach dem Programmieren erfolgreich innerhalb des ersten Zielbereichs lag, dann zum Prüfpunkt 815 außerhalb des zweiten Zielleitwertbereichs liegt, gibt dies an, dass der v-Koeffizient ein Ausreißer ist. Dementsprechend kann in diesem Fall vorhergesagt werden, dass der erwartete Leitwert zur Zeitspanne der Anwendung von Interesse höher oder niedriger als der gewünschte Wert ist.
  • Diese Verfahren des Umprogrammierens der NVM-Einheit 210 und Prüfens der Leitwertmessungen zu den Prüfpunkten nach dem Programmieren kann innerhalb einer praktisch akzeptablen Programmierzeitgrenze durchgeführt werden. Dementsprechend kann nach mehreren Versuchen, die NVM-Einheit mit einem akzeptablen „durchschnittlichen“ v-Koeffizienten zu programmieren, die Ausreißerdrift der NVM-Einheit als unterdrückt angesehen werden, und vorhergesagt werden, dass der Leitwert während des Zielzeitfensters innerhalb des gewünschten Bereichs liegt.
  • 9 stellt ein System zum Programmieren von NVM-Einheiten mit einer Unterdrückung der Ausreißerdrift gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung dar. Das System 900, das dargestellt ist, enthält eine Steuereinheit 910 und ein NVM-Einheitensystem 920, wie beispielsweise ein neuronales Netzsystem, das eine oder mehrere NVM-Einheiten 210 enthält. Die Steuereinheit 910 kann eine Datenverarbeitungseinheit sein, die eine oder mehrere Verarbeitungseinheiten enthält, die eine oder mehrere computerausführbare Anweisungen enthält, die in einer Speichereinheit gespeichert sind. Zum Beispiel kann die Steuereinheit 910 ein Desktop-Computer, ein Tablet-Computer, ein Telefon, ein Server-Computer oder eine beliebige andere Datenverarbeitungseinheit sein. Die Steuereinheit 910 und das NVM-Einheitensystem 920 sind miteinander verbunden, so dass die Steuereinheit 910 den Widerstand/Leitwert (d.h. Gewichtungen) der NVM-Einheiten 210 in dem NVM-Einheitensystem 920 konfigurieren kann. Die Steuereinheit 910 kann ferner den Widerstand/Leitwert der NVM-Einheiten 210 lesen/messen. In einem oder mehreren Beispielen setzt die Steuereinheit 910 ein oder mehrere hierin beschriebene Verfahren um. Obwohl die Steuereinheit 910 und das NVM-Einheitensystem 920 in 9 als separate Blöcke gezeigt sind, können in einer oder mehreren Ausführungsformen der vorliegenden Erfindung die Steuereinheit 910 und die NVM-Einheiten 210 als Teil eines einzigen Blocks integriert sein.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann ein durch einen Computer lesbares Speicherungsmedium (oder -medien) mit durch einen Computer lesbaren Programmanweisungen darauf umfassen, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speicherungsmedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch ein System zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speicherungsmedium kann es sich zum Beispiel um eine elektronische Speicherungseinheit, eine magnetische Speicherungseinheit, eine optische Speicherungseinheit, eine elektromagnetische Speicherungseinheit, eine Halbleiterspeicherungseinheit 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 Speicherungsmediums gehören die Folgenden: eine auswechselbare 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 auswechselbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch kodierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speicherungsmedium 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. Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speicherungsmedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten 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 Speicherungseinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server umfassen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speicherungsmedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben 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 fernen Computer oder vollständig auf dem fernen 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 Weitverkehrsnetz (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, so dass 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 Speicherungsmedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speicherungsmedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt umfasst, 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, so dass 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) umfassen. 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.
  • Die Beschreibungen der vielfältigen Ausführungsformen der vorliegenden Erfindung wurden zu Zwecken der Veranschaulichung vorgelegt, sind jedoch nicht als erschöpfend oder auf die offenbarten Ausführungsformen beschränkt beabsichtigt. Viele Modifikationen und Variationen sind für den Fachmann ersichtlich, ohne vom Umfang 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 auf dem Markt anzutreffenden Technologien am besten zu erklären oder um es anderen Fachleuten zu ermöglichen, die hierin beschriebenen Ausführungsformen zu verstehen.
  • In einer bevorzugten Ausführungsform der hierin beschriebenen Erfindung wird eine Kreuzschienenanordnung bereitgestellt, aufweisend: eine Mehrzahl von Phasenwechsel-Speichereinheiten (PCM-Einheiten), wobei sich ein PCM an jedem einer Mehrzahl von Kreuzungspunkten in der Kreuzschienenanordnung befindet, wobei eine oder mehrere PCM-Einheiten eine analoge Synapse in einem künstlichen neuronalen Netz darstellt, wobei ein Programmieren eines Leitwerts einer PCM-Einheit aus der Kreuzschienenanordnung aufweist: Empfangen eines Signals, um einen Leitwert der PCM-Einheit auf einen ersten Leitwert zu einem ersten Zeitpunkt zu konfigurieren, wobei der erste Leitwert ein Programmierzeitpunkt ist; Bestimmen, zu einem Vorkompensationszeitpunkt, dass sich der Leitwert der PCM-Einheit auf einen zweiten Leitwert geändert hat, der sich von einem Zielleitwert um nicht mehr als einen vorbestimmten Schwellenwert unterscheidet; und Empfangen eines weiteren Signals, um den Leitwert der PCM-Einheit auf den ersten Leitwert zu einem zweiten Zeitpunkt zu konfigurieren, einschließlich erneutes Messen der Vorkompensation, aber zu einem zweiten Vorkompensationszeitpunkt. Vorzugsweise ist der Vorkompensationszeitpunkt zu einer vorbestimmten Zeitdauer nach dem Programmierzeitpunkt, und wobei der Zielleitwert zu dem Vorkompensationszeitpunkt auf Grundlage eines Zielzeitfensters bestimmt wird, das zu einer zweiten vorbestimmten Dauer nach dem Programmierzeitpunkt ist, wobei der Leitwert der PCM-Einheit in einem bestimmten Bereich während des Zielzeitfensters zu sein hat.
  • In einer weiteren bevorzugten Ausführungsform der hierin beschriebenen Erfindung wird ein computerumgesetztes Verfahren bereitgestellt, aufweisend: Konfigurieren von einer Mehrzahl von Phasenwechsel-Speichereinheiten (PCM-Einheiten) in einer Kreuzschienenanordnung eines Leitwerts einer PCM-Einheit durch: Empfangen eines Signals, um den Leitwert der PCM-Einheit auf einen ersten Leitwert zu einem ersten Zeitpunkt zu konfigurieren, wobei der erste Leitwert ein Programmierzeitpunkt ist; Bestimmen, zu einem Vorkompensationszeitpunkt, dass sich der Leitwert der PCM-Einheit auf einen zweiten Leitwert geändert hat, der sich von einem Zielleitwert um nicht mehr als einen vorbestimmten Schwellenwert unterscheidet; und Empfangen eines weiteren Signals, um den Leitwert der PCM-Einheit auf den ersten Leitwert zu einem zweiten Zeitpunkt zu konfigurieren, einschließlich erneutes Messen der Vorkompensation, aber zu einem zweiten Vorkompensationszeitpunkt.

Claims (12)

  1. Computerumgesetztes Verfahren zum Unterdrücken einer Ausreißerdrift einer Phasenwechsel-Speichereinheit (PCM-Einheit), wobei das Verfahren aufweist: Programmieren eines Leitwerts der PCM-Einheit durch eine Steuereinheit, wobei das Programmieren aufweist: Konfigurieren des Leitwerts der PCM-Einheit auf einen ersten Leitwert zu einem ersten Zeitpunkt, wobei der erste Zeitpunkt ein Programmierzeitpunkt ist; Bestimmen zu einem ersten Vorkompensationszeitpunkt, dass sich der Leitwert der PCM-Einheit auf einen zweiten Leitwert geändert hat, der sich von einem Zielleitwert um nicht mehr als einen vorbestimmten Schwellenwert unterscheidet; und Umprogrammieren der PCM-Einheit auf den ersten Leitwert zu einem zweiten Zeitpunkt, einschließlich erneutes Messen der Vorkompensation, aber zu einem zweiten Vorkompensationszeitpunkt.
  2. Verfahren nach Anspruch 1, wobei sich der erste Vorkompensationszeitpunkt zu einer vorbestimmten Zeitdauer nach dem Programmierzeitpunkt befindet.
  3. Verfahren nach Anspruch 2, wobei der Zielleitwert zu dem ersten Vorkompensationszeitpunkt auf Grundlage eines Zielzeitfensters bestimmt wird, das eine zweite vorbestimmten Dauer nach dem Programmierzeitpunkt besitzt, wobei gewünscht wird, dass sich der Leitwert der PCM-Einheit in einem bestimmten Bereich während des Zielzeitfensters befindet.
  4. Verfahren nach Anspruch 2, wobei das Programmieren fortgesetzt wird, bis die Differenz zwischen (i) dem zweiten Leitwert zu dem Vorkompensationszeitpunkt und (ii) dem Zielleitwert kleiner als der vorbestimmte Schwellenwert ist.
  5. Verfahren nach Anspruch 1, wobei das Programmieren ferner aufweist: Bestimmen zu einem ersten Vorkompensationszeitpunkt, dass die Differenz zwischen dem zweiten Leitwert zu dem Vorkompensationszeitpunkt und dem Zielleitwert kleiner als der vorbestimmte Schwellenwert ist; Bestimmen an einem ersten Prüfpunkt, dass sich der Leitwert der PCM-Einheit auf einen dritten Leitwert geändert hat, der sich von einem zweiten Zielleitwert um nicht mehr als den vorbestimmten Schwellenwert unterscheidet; und Programmieren der PCM-Einheit auf den ersten Leitwert zu einem dritten Zeitpunkt, einschließlich erneutes Messen der Vorkompensation.
  6. Verfahren nach Anspruch 5, wobei sich der erste Prüfpunkt zu einer zweiten vorbestimmten Zeitdauer nach dem Programmierzeitpunkt befindet.
  7. Verfahren nach Anspruch 5, wobei der zweite Zielleitwert an dem ersten Prüfpunkt auf Grundlage eines Zielzeitfensters bestimmt wird, das sich zu einer zweiten vorbestimmten Dauer seit dem Programmierzeitpunkt befindet, wobei der Leitwert der PCM-Einheit innerhalb eines bestimmten Bereichs während des Zielzeitfensters gehalten wird.
  8. Verfahren nach Anspruch 1, wobei die PCM-Einheit als eine Synapse in einem künstlichen neuronalen Netzsystem verwendet wird, wobei der Leitwert eine Gewichtung ist, die der Synapse zugewiesen wird.
  9. Verfahren nach Anspruch 1, wobei die PCM-Einheit eine Mehrzahl von PCM-Einheiten aufweist, wobei jede PCM-Einheit einem jeweiligen Zielleitwert zugeordnet wird.
  10. Verfahren nach Anspruch 1, wobei sich der Leitwert der PCM-Einheit wegen der Leitwertdrift auf den zweiten Leitwert ändert.
  11. System aufweisend: eine Steuereinheit; und einen Coprozessor, der eine oder mehrere Kreuzschienenanordnungen aufweist; und wobei die Steuereinheit so konfiguriert ist, dass sie ein künstliches neuronales Netz unter Verwendung des Coprozessors umsetzt, indem eine Schicht des künstlichen neuronalen Netzes mit einer Kreuzschienenanordnung abgebildet wird, wobei ein Umsetzen des künstlichen neuronalen Netzes ein Verfahren wie in einem der Ansprüche 1 bis 10 beansprucht aufweist.
  12. Computerprogrammprodukt aufweisend ein computerlesbares Speicherungsmedium mit damit ausgebildeten Programmanweisungen, wobei die Programmanweisungen durch eine Verarbeitungsschaltung ausführbar sind, um ein Verfahren durchzuführen, um eine Ausreißerdrift einer Phasenwechsel-Speichereinheit (PCM-Einheit) zu unterdrücken, wobei das Verfahren wie in einem der Ansprüche 1 bis 10 beansprucht ist.
DE112020003371.6T 2019-08-28 2020-07-17 Unterdrücken von ausreisserdriftkoeffizienten während des programmierens von phasenwechsel-speichersynapsen Pending DE112020003371T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/554,018 2019-08-28
US16/554,018 US11183238B2 (en) 2019-08-28 2019-08-28 Suppressing outlier drift coefficients while programming phase change memory synapses
PCT/IB2020/056747 WO2021038334A1 (en) 2019-08-28 2020-07-17 Suppressing outlier drift coefficients while programming phase change memory synapses

Publications (1)

Publication Number Publication Date
DE112020003371T5 true DE112020003371T5 (de) 2022-05-12

Family

ID=74680010

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112020003371.6T Pending DE112020003371T5 (de) 2019-08-28 2020-07-17 Unterdrücken von ausreisserdriftkoeffizienten während des programmierens von phasenwechsel-speichersynapsen

Country Status (6)

Country Link
US (1) US11183238B2 (de)
JP (1) JP7442625B2 (de)
CN (1) CN114341890A (de)
DE (1) DE112020003371T5 (de)
GB (1) GB2600890B (de)
WO (1) WO2021038334A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220101142A1 (en) * 2020-09-28 2022-03-31 International Business Machines Corporation Neural network accelerators resilient to conductance drift

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7571901B2 (en) * 2007-06-21 2009-08-11 Qimonda North America Corp. Circuit for programming a memory element
US7978508B2 (en) 2009-01-20 2011-07-12 Ovonyx, Inc. Reduction of drift in phase-change memory via thermally-managed programming
US8250010B2 (en) 2009-05-21 2012-08-21 International Business Machines Corporation Electronic learning synapse with spike-timing dependent plasticity using unipolar memory-switching elements
KR101069680B1 (ko) * 2009-07-29 2011-10-04 주식회사 하이닉스반도체 비휘발성 반도체 메모리 회로 및 그의 제어 방법
US20120084240A1 (en) 2010-09-30 2012-04-05 International Business Machines Corporation Phase change memory synaptronic circuit for spiking computation, association and recall
JP5138836B2 (ja) 2011-04-13 2013-02-06 パナソニック株式会社 参照セル回路とそれを用いた抵抗変化型不揮発性記憶装置
US8854872B2 (en) * 2011-12-22 2014-10-07 International Business Machines Corporation Drift mitigation for multi-bits phase change memory
US20130336047A1 (en) * 2012-04-24 2013-12-19 Being Advanced Memory Corporation Cell Refresh in Phase Change Memory
US8737121B2 (en) 2012-05-23 2014-05-27 International Business Machines Corporation Drift-insensitive or invariant material for phase change memory
US9047944B2 (en) * 2013-04-24 2015-06-02 Micron Technology, Inc. Resistance variable memory sensing
WO2016046980A1 (ja) 2014-09-26 2016-03-31 株式会社日立製作所 半導体記憶装置
CN105427892B (zh) 2015-11-23 2018-05-01 北京大学深圳研究生院 一种面向相变存储的非均匀纠错方法及相变存储装置
US9627055B1 (en) 2015-12-26 2017-04-18 Intel Corporation Phase change memory devices and systems having reduced voltage threshold drift and associated methods
KR101979987B1 (ko) 2017-01-31 2019-05-17 한양대학교 산학협력단 저항값 드리프트를 보상하는 동적 기준 값을 갖는 상변화 메모리 감지 장치 및 방법
US10755170B2 (en) 2017-03-01 2020-08-25 International Business Machines Corporation Resistive processing unit with hysteretic updates for neural network training
CN107425118A (zh) 2017-07-21 2017-12-01 吉林大学 一种高性能锗锑碲相变薄膜材料及其制备方法
US10079058B1 (en) 2017-08-24 2018-09-18 International Business Machines Corporation Resistive memory device for matrix-vector multiplications
US11074499B2 (en) 2017-11-20 2021-07-27 International Business Machines Corporation Synaptic weight transfer between conductance pairs with polarity inversion for reducing fixed device asymmetries
US10910051B1 (en) * 2019-11-17 2021-02-02 Winbond Electronics Corp. Method and electronic circuit for verifying operation performed by cell of RRAM

Also Published As

Publication number Publication date
GB202202192D0 (en) 2022-04-06
GB2600890A (en) 2022-05-11
GB2600890B (en) 2023-11-01
US11183238B2 (en) 2021-11-23
JP7442625B2 (ja) 2024-03-04
WO2021038334A1 (en) 2021-03-04
CN114341890A (zh) 2022-04-12
US20210065794A1 (en) 2021-03-04
JP2022546032A (ja) 2022-11-02

Similar Documents

Publication Publication Date Title
DE112018000272T5 (de) Resistive Verarbeitungseinheit mit hysteretischen Aktualisierungen zum Trainieren neuronaler Netze
DE102011083180B4 (de) Auslesungsverteilungsverwaltung für Phasenwechselspeicher
DE112018004223T5 (de) Trainieren künstlicher neuronaler Netze
DE112018005726B4 (de) Resistive verarbeitungseinheit auf zählerbasis für programmierbare und rekonfigurierbare künstliche neuronale netzwerke
DE102019116300A1 (de) Realisierung von binären neuronalen Netzen in Nand-Speicherarrays
DE112016000699T5 (de) Neuromorphe Synapsen
DE112016000148B4 (de) Neuromorpher Speicherschaltkreis sowie zugehöriges Verfahren, Computerprogrammprodukt und Computerprogramm
DE112018002950B4 (de) System und Verfahren zum Aufbauen von synaptischen Gewichten für künstliche neuronale Netze aus mit Vorzeichen versehenen analogen Leitwertpaaren unterschiedlicher Wertigkeit
DE112011101370T5 (de) Neuronales Netz mit kanonischen gepulsten Neuronen für einen raumzeitlichen Assoziativspeicher
DE112019005119T5 (de) Abgleichtechniken zum angleichen des symmetriepunktes als null-gewichtungspunkt in analogen kreuzungspunktanordnungen
DE112016003245T5 (de) Resistive Verarbeitungseinheit
DE112020000929T5 (de) Programmieren eines phasenwechselspeichersin einer geschlossenen schleife
DE112012005565T5 (de) Elektronische Synapsen aus stochastischen binären Speichereinheiten
DE102021207970A1 (de) Eine nurlesespeicherarchitektur für analoge matrixoperationen
DE102019116407A1 (de) Realisierung neuronaler netze mit ternären eingängen und binären gewichten in nand-speicherarrays
DE112020002186T5 (de) Dnn-training mit asymmetrischen rpu-einheiten
DE112021005864T5 (de) Nichtflüchtige analoge widerstands-speicherzellen zum verwenden von ferroelektrischen auswahltransistoren
DE102021208010A1 (de) Hardware-rechenstruktur für tiefe gleichgewichtsmodelle
DE102021115503A1 (de) Mehrstufiger inferenzmaschinenbeschleuniger mit sehr niedrigem stromverbrauch
DE112020003371T5 (de) Unterdrücken von ausreisserdriftkoeffizienten während des programmierens von phasenwechsel-speichersynapsen
DE102021123580A1 (de) Verfahren zum entwickeln einer initialisierungsfunktion zum programmieren eines speicherelements
DE112021001968T5 (de) Driftregularisierung zum entgegenwirken einer variation in driftkoeffizienten für analoge beschleuniger
Mallinson et al. Reservoir computing using networks of memristors: effects of topology and heterogeneity
DE102021108823A1 (de) System für eine flexible leitwerttraverse
DE112021005218T5 (de) Neuromorphe Einheit mit mehreren Anschlüssen

Legal Events

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