DE102022101950A1 - Digitale temperaturkompensationsfilterung - Google Patents

Digitale temperaturkompensationsfilterung Download PDF

Info

Publication number
DE102022101950A1
DE102022101950A1 DE102022101950.0A DE102022101950A DE102022101950A1 DE 102022101950 A1 DE102022101950 A1 DE 102022101950A1 DE 102022101950 A DE102022101950 A DE 102022101950A DE 102022101950 A1 DE102022101950 A1 DE 102022101950A1
Authority
DE
Germany
Prior art keywords
value
temperature
temperature value
historical
memory
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
DE102022101950.0A
Other languages
English (en)
Inventor
Henry Chin
Hua-Ling Cynthia Hsu
Wei Zhao
Fanglin Zhang
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.)
SanDisk Technologies LLC
Original Assignee
SanDisk Technologies LLC
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 SanDisk Technologies LLC filed Critical SanDisk Technologies LLC
Publication of DE102022101950A1 publication Critical patent/DE102022101950A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • G11C5/147Voltage reference generators, voltage or current regulators; Internally lowered supply levels; Compensation for voltage drops
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • 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/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/20Cooling means
    • 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/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
    • G11C11/5635Erasing 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/5642Sensing or reading circuits; Data output circuits
    • 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/0038Power 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/10Programming or data input 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/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/04Arrangements for writing information into, or reading information out from, a digital store with means for avoiding disturbances due to temperature effects
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10BELECTRONIC MEMORY DEVICES
    • H10B41/00Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates
    • H10B41/20Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates characterised by three-dimensional arrangements, e.g. with cells on different height levels
    • H10B41/23Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates characterised by three-dimensional arrangements, e.g. with cells on different height levels with source and drain on different levels, e.g. with sloping channels
    • H10B41/27Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates characterised by three-dimensional arrangements, e.g. with cells on different height levels with source and drain on different levels, e.g. with sloping channels the channels comprising vertical portions, e.g. U-shaped channels
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10BELECTRONIC MEMORY DEVICES
    • H10B43/00EEPROM devices comprising charge-trapping gate insulators
    • H10B43/20EEPROM devices comprising charge-trapping gate insulators characterised by three-dimensional arrangements, e.g. with cells on different height levels
    • H10B43/23EEPROM devices comprising charge-trapping gate insulators characterised by three-dimensional arrangements, e.g. with cells on different height levels with source and drain on different levels, e.g. with sloping channels
    • H10B43/27EEPROM devices comprising charge-trapping gate insulators characterised by three-dimensional arrangements, e.g. with cells on different height levels with source and drain on different levels, e.g. with sloping channels the channels comprising vertical portions, e.g. U-shaped channels
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L2225/00Details relating to assemblies covered by the group H01L25/00 but not provided for in its subgroups
    • H01L2225/03All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00
    • H01L2225/04All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers
    • H01L2225/065All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers the devices being of a type provided for in group H01L27/00
    • H01L2225/06503Stacked arrangements of devices
    • H01L2225/06506Wire or wire-like electrical connections between devices
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L2225/00Details relating to assemblies covered by the group H01L25/00 but not provided for in its subgroups
    • H01L2225/03All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00
    • H01L2225/04All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers
    • H01L2225/065All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers the devices being of a type provided for in group H01L27/00
    • H01L2225/06503Stacked arrangements of devices
    • H01L2225/0651Wire or wire-like electrical connections from device to substrate
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L2225/00Details relating to assemblies covered by the group H01L25/00 but not provided for in its subgroups
    • H01L2225/03All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00
    • H01L2225/04All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers
    • H01L2225/065All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers the devices being of a type provided for in group H01L27/00
    • H01L2225/06503Stacked arrangements of devices
    • H01L2225/06513Bump or bump-like direct electrical connections between devices, e.g. flip-chip connection, solder bumps
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L2225/00Details relating to assemblies covered by the group H01L25/00 but not provided for in its subgroups
    • H01L2225/03All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00
    • H01L2225/04All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers
    • H01L2225/065All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers the devices being of a type provided for in group H01L27/00
    • H01L2225/06503Stacked arrangements of devices
    • H01L2225/06517Bump or bump-like direct electrical connections from device to substrate
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L2225/00Details relating to assemblies covered by the group H01L25/00 but not provided for in its subgroups
    • H01L2225/03All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00
    • H01L2225/04All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers
    • H01L2225/065All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers the devices being of a type provided for in group H01L27/00
    • H01L2225/06503Stacked arrangements of devices
    • H01L2225/06541Conductive via connections through the device, e.g. vertical interconnects, through silicon via [TSV]
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L2225/00Details relating to assemblies covered by the group H01L25/00 but not provided for in its subgroups
    • H01L2225/03All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00
    • H01L2225/04All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers
    • H01L2225/065All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers the devices being of a type provided for in group H01L27/00
    • H01L2225/06503Stacked arrangements of devices
    • H01L2225/06555Geometry of the stack, e.g. form of the devices, geometry to facilitate stacking
    • H01L2225/06562Geometry of the stack, e.g. form of the devices, geometry to facilitate stacking at least one device in the stack being rotated or offset
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L2225/00Details relating to assemblies covered by the group H01L25/00 but not provided for in its subgroups
    • H01L2225/03All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00
    • H01L2225/04All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers
    • H01L2225/065All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers the devices being of a type provided for in group H01L27/00
    • H01L2225/06503Stacked arrangements of devices
    • H01L2225/06582Housing for the assembly, e.g. chip scale package [CSP]
    • H01L2225/06586Housing with external bump or bump-like connectors
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L24/00Arrangements for connecting or disconnecting semiconductor or solid-state bodies; Methods or apparatus related thereto
    • H01L24/80Methods for connecting semiconductor or other solid state bodies using means for bonding being attached to, or being formed on, the surface to be connected
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L25/00Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof
    • H01L25/03Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes
    • H01L25/04Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes the devices not having separate containers
    • H01L25/065Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes the devices not having separate containers the devices being of a type provided for in group H01L27/00
    • H01L25/0657Stacked arrangements of devices
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L25/00Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof
    • H01L25/18Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof the devices being of types provided for in two or more different subgroups of the same main group of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10BELECTRONIC MEMORY DEVICES
    • H10B43/00EEPROM devices comprising charge-trapping gate insulators
    • H10B43/10EEPROM devices comprising charge-trapping gate insulators characterised by the top-view layout

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Power Engineering (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Semiconductor Memories (AREA)

Abstract

Die hierin offenbaren Techniken bewältigen Temperaturauswirkungen in nichtflüchtigen Speichersystemen. Eine Steuerschaltung ist eingerichtet, um eine aktuelle Temperatur des Speichersystems zu erfassen und Daten an den nichtflüchtigen Speicherzellen durch Modifizieren eines oder mehrerer Lese-/Verifizierungs-/Programmier-/Löschparameter basierend auf einem Temperaturkompensationswert zu lesen, zu verifizieren, zu programmieren und zu löschen. Die Steuerschaltung ist weiterhin eingerichtet, um Daten zu lesen, zu verifizieren, zu programmieren und zu löschen, indem sie auf einen im Speichersystem gespeicherten historischen Temperaturwert zugreift, wobei der historische Temperaturwert eine Temperatur aufweist, bei der ein vorheriger Lese-, Verifizierungs-, Programmierungs- oder Löschvorgang stattgefunden hat, und einen aktuellen Temperaturwert misst. Die Steuerschaltung bestimmt den Temperaturkompensationswert durch Anlegen der Glättungsfunktion. Die Glättungsfunktion bestimmt den Temperaturkompensationswert durch Auswählen entweder des historischen Temperaturwerts oder des aktuellen Temperaturwerts als Temperaturkompensationswert basierend auf einer Differenz zwischen dem historischen Temperaturwert und der aktuellen Temperatur bezogen auf einen Schwellenwert oder durch Berechnen des Temperaturkompensationswerts, der sich von dem aktuellen Temperaturwert oder dem historischen Temperaturwert unterscheidet, basierend auf einer Glättungsfunktion, die den aktuellen Temperaturwert und den historischen Temperaturwert nutzt.

Description

  • HINTERGRUND
  • Die vorliegende Technologie bezieht sich auf nichtflüchtige Speichersysteme.
  • Halbleiterspeichervorrichtungen sind zur Verwendung in verschiedenen elektronischen Vorrichtungen beliebter geworden. In einer Halbleiterspeichervorrichtung kann ein Ladungsspeichermaterial wie ein leitendes Floating-Gate oder ein nichtleitendes ladungseinfangendes Material verwendet werden, um eine Ladung zu speichern, die einen Datenzustand darstellt. Die Speicherzelle kann ein Transistor sein, in dem sich das Ladungsspeichermaterial zwischen einem Kanal und einem Steuergate befinden kann. Das Ladungsspeichermaterial kann sowohl von dem Kanal als auch von dem Steuergate isoliert sein. Das Ladungsspeichermaterial kann vertikal in einer dreidimensionalen (3D) gestapelten Speicherstruktur oder horizontal in einer zweidimensionalen (2D) Speicherstruktur angeordnet sein. Ein Beispiel für eine 3D-Speicherstruktur ist die Bit-Cost-Scalable-Architektur (BiCS-Architektur), die einen Stapel alternierender leitender und dielektrischer Schichten aufweist.
  • Einige Typen von Speicherzellen können durch Veränderung der Ladung in dem Ladungsspeichermaterial programmiert werden, um dadurch die Schwellenspannung (Vth) des Speicherzelletransistors zu verändern. Bei einer Technik wird eine Programmierspannung an das Steuergate mit einer niedrigen Spannung in dem Kanal angelegt, um dem Ladungsspeichermaterial Ladung hinzuzufügen. Nach Anlegen der Programmierspannung wird die Schwellenspannung der Speicherzelle durch Anlegen einer Prüfspannung an das Steuergate getestet, und es wird getestet, ob die Speicherzelle einen signifikanten Strom leitet. Weitere Programmierspannungen können an das Steuergate angelegt werden, gefolgt von Prüfspannungen, bis der Schwellenstrom der Speicherzelle innerhalb eines Zielbereichs liegt.
  • Andere Arten von Speicherzellen können auf verschiedene Widerstandspegel programmiert werden. Zum Beispiel kann ein resistiver Random-Access-Speicher (ReRAM) reversibel zwischen einem Zustand hohen Widerstands und einem Datenzustand niedrigen Widerstands umgeschaltet werden. In einigen Speicherzellen kann eine ReRAM-Zelle reversibel zwischen mehr als zwei verschiedenen Widerstandszuständen geschaltet werden. Jeder Widerstandszustand kann einem Bereich von Widerständen entsprechen.
  • Eine Speicherzelle kann durch Anlegen eines oder mehrerer Referenzsignale gelesen werden, um zu bestimmen, in welchen Bereich ihre Schwellenspannung, ihr Widerstand oder eine andere physikalische Eigenschaft fällt. Häufig werden die Speicherzellen in einer Grundeinheit programmiert, die als „Seite“ bezeichnet wird. Die Seite enthält Benutzerdaten und Overhead-Daten, in einigen Techniken. Overhead-Daten schließen typischerweise Paritätsbits eines Fehlerkorrekturcodes (ECC) ein, die aus den Benutzerdaten berechnet wurden. Eine Fehlerkorrektursteuerungs--Maschine (ECC-Maschine) codiert Benutzerdaten, indem sie die Paritätsbits hinzufügt, um ein Codewort zu bilden. Die ECC-Maschine decodiert und korrigiert das aus dem System des nichtflüchtigen Speichers gelesene Codewort.
  • Die Temperatur von Speicherzellen kann eine Auswirkung auf die Größe der Referenzsignale aufweisen, die verwendet werden, um den Zustand der Zelle zu lesen oder
  • Figurenliste
  • Gleich nummerierte Elemente beziehen sich auf gemeinsame Komponenten in den verschiedenen Figuren.
    • 1 ist ein Blockdiagramm, das eine Ausführungsform eines Speichersystems darstellt.
    • 2A ist ein Blockdiagramm einer Ausführungsform eines Speicherchips.
    • 2B ist ein Blockdiagramm einer Ausführungsform einer integrierten Speicherbaugruppe.
    • 2C und 2D stellen verschiedene Ausführungsformen von integrierten Speicherbaugruppen dar.
    • 3 ist eine perspektivische Ansicht eines Abschnitts einer Ausführungsform einer monolithischen dreidimensionalen Speicherstruktur.
    • 4A ist ein Blockdiagramm einer Speicherstruktur mit zwei Ebenen.
    • 4B stellt eine Draufsicht auf einen Abschnitt eines Speicherzellenblocks dar.
    • 4C stellt eine Querschnittsansicht eines Teils eines Speicherzellenblocks dar.
    • 4D ist eine Querschnittsansicht einer vertikalen Speicherzellenspalte.
    • 4E ist eine schematische Darstellung einer Vielzahl von NAND-Ketten mit mehreren Unterblöcken.
    • 5 stellt Schwellenspannungsverteilungen dar.
    • 6 ist eine Tabelle, die ein Beispiel einer Zuordnung von Datenwerten zu Datenzuständen beschreibt.
    • 7 ist ein Flussdiagramm, das eine Ausführungsform eines Prozesses zum Programmieren von nichtflüchtigem Speicher beschreibt.
    • 8 stellt ein Beispiel für eine Temperaturerfassungsschaltung dar, die in dem Speichersystem von 1A verwendet werden kann.
    • 9 ist ein schematisches Diagramm einer Schaltung für einen Abtastverstärker.
    • 10A ist ein Diagramm des Temperaturkompensationswerts (TEMPCODE) bezogen auf die Quellenspannung für eine Speicherzelle.
    • 10B ist ein Diagramm, das die Temperaturkompensation für verschiedene Parameter veranschaulicht, die auf eine Speicherzelle in Bezug auf eine Temperaturänderung angewandt werden.
    • 11 ist ein Flussdiagramm, das ein Verfahren gemäß der vorliegenden Technologie zur Filterung von Temperaturkompensationswerten darstellt.
    • 12A veranschaulicht eine konstante Temperaturänderungsrampe im Zeitverlauf.
    • 12B veranschaulicht die Wirksamkeit jeder der Hysterese-induzierenden Funktionen und der digitalen Filterfunktionen im Vergleich zu einem Temperaturkompensationsdesign nach dem Stand der Technik, wenn das Speichersystem einem kontinuierlich ansteigenden Temperaturprofil unterliegt.
    • 12C veranschaulicht die Wirksamkeit einer Glättungsfunktion bezogen auf eine konstante Temperaturänderungsrampe.
    • 13A veranschaulicht eine stabile Temperatur mit Rauschen in der gemessenen Temperatur.
    • 13B veranschaulicht die Wirksamkeit einer Temperaturkompensation nach dem Stand der Technik, der Hysterese-induzierenden Funktion und der digitalen Filterfunktion, wenn sie einem stabilen Temperaturprofil mit Rauschen unterliegen.
    • 13C veranschaulicht die Wirksamkeit einer Glättungsfunktion bezogen auf eine konstante Temperatur mit Rauschen bei der Temperaturerfassung.
    • 14A veranschaulicht ein Umgebungstemperaturprofil mit großen diskreten Sprüngen.
    • 14B veranschaulicht die Wirksamkeit der oben beschriebenen Temperaturkompensation nach dem Stand der Technik, der Hysterese-induzierenden Funktion und der digitalen Filterfunktion, wenn das Speichersystem einem Temperaturprofil unterliegt, das relativ große Temperaturänderungen aufweist.
    • 14C veranschaulicht die Wirksamkeit einer Glättungsfunktion, die eine Hysterese-induzierende Funktion und eine digitale Filterfunktion kombiniert, bezogen auf ein Temperaturprofil mit großen Temperaturänderungen.
  • DETAILLIERTE BESCHREIBUNG
  • Die vorliegende Technologie betrifft nichtflüchtige Speichersysteme. Die hierin offenbart Technologie bewältigt temperaturübergreifende Auswirkungen in nichtflüchtigen Speichersystemen.
  • Viele Arten von nichtflüchtigen Speicherzellen weisen temperaturabhängige Auswirkungen in Bezug auf ihren Datenzustand auf. Zum Beispiel werden einige Speicherzellen programmiert, indem Ladung entweder in einem Floating-Gate oder in einem Ladungseinfangbereich gespeichert wird. In der Regel variiert die Schwellenspannung (Vth) einer solchen Speicherzelle mit der Temperatur. Somit kann, wenn eine Speicherzelle bei einer Temperatur auf einen bestimmten Ladezustand programmiert und bei einer anderen Temperatur ausgelesen wird, die Schwellenspannung unterschiedlich sein, selbst wenn die Speicherzelle den programmierten Ladezustand beibehält. Somit kompensieren viele nichtflüchtige Speichersysteme die Temperatur, indem sie Temperaturwerte speichern, die basierend auf einer Temperaturänderung des Systems zur Änderung von Lese-, Prüf-, Programmier- und Löschparametern verwendet werden können.
  • Hierin werden Beispiele für Temperatureffekte (und technologische Lösungen zur Kompensation von Temperatureffekten) in Speicherzellen beschrieben, die Ladung speichern, um die Schwellenspannung der Speicherzelle zu steuern. Die Temperatureffekte (und die hierin offenbarten technologischen Lösungen) sind jedoch nicht auf Speicherzellen beschränkt, die Ladung speichern, um die Schwellenspannung zu steuern. Zum Beispiel können nichtflüchtige Speicherzellen, bei denen ein Datenzustand durch einen Widerstand dargestellt wird, auch temperaturübergreifende Auswirkungen aufweisen. Des Weiteren können nichtflüchtige Speicher, bei denen ein Datenzustand durch eine andere physikalische Eigenschaft als die Schwellenspannung oder den Widerstand dargestellt wird, temperaturübergreifende Auswirkungen aufweisen.
  • Die optimalen Lesepegel zum Lesen einer Datenseite können von der Temperatur abhängig sein. Es ist zu beachten, dass die optimalen Lesepegel nicht nur von der aktuellen Temperatur, sondern auch von der Programmtemperatur abhängen können. Wenn das Speichersystem keine großen Temperaturänderungen kompensiert, kann die Bitfehlerrate (BER) zunehmen. Der Durchsatz der ECC-Maschine kann stark mit der BER korrelieren. Zum Beispiel kann die ECC-Maschine einen Algorithmus ausführen, der länger braucht, um zu konvergieren, wenn die BER höher ist. Somit können große Wechseltemperaturen die Leistung des Speichersystems (z. B. den Durchsatz) verringern.
  • Die Benutzer können dies als FBC-Schwankungen bei wiederholten Lesevorgängen beobachten. Es besteht auch die Sorge, dass das Ergebnis ungültig sein könnte, wenn ein Vorgang wie beispielsweise eine Optimierung auf Leseebene bei einer solchen kritischen Temperatur durchgeführt wird.
  • 1 ist ein Blockdiagramm einer Ausführungsform eines Speichersystems 100, das die hierin beschriebene vorgeschlagene Technologie implementiert. In einer Ausführungsform ist das Speichersystem 100 ein Solid-State-Laufwerk („SSD“). Das Speichersystem 100 kann auch eine Speicherkarte, ein USB-Laufwerk oder eine andere Art von Speichersystem sein. Die vorgeschlagene Technologie ist nicht auf eine Art von Speichersystem beschränkt. Das Speichersystem 100 ist mit dem Host 102 verbunden, der ein Computer, Server, elektronischer Vorrichtung (z. B. Smartphone, Tablet oder andere mobile Vorrichtung), ein Gerät oder eine andere Einrichtung sein kann, das bzw. die Speicher verwendet und Datenverarbeitungsfähigkeiten aufweist. In einigen Ausführungsformen ist der Host 102 von dem Speichersystem 100 separiert, aber mit diesem verbunden. In anderen Ausführungsformen ist das Speichersystem 100 in den Host 102 eingebettet.
  • Die Komponenten des in 1 dargestellten Speichersystems 100 sind elektrische Schaltungen. Das Speichersystem 100 schließt eine Speichersteuerung 120, die mit einem nichtflüchtigen Speicher 130 und einem lokalen flüchtigen Hochgeschwindigkeitsspeicher 140 (z. B. DRAM) verbunden ist, ein. Der lokale flüchtige Hochgeschwindigkeitsspeicher 140 wird von der Steuerung 120 verwendet, um bestimmte Funktionen auszuführen. Zum Beispiel speichert der lokale flüchtige Hochgeschwindigkeitsspeicher 140 Tabellen der Übersetzung von logischen Adressen in physische („L2P-Tabellen“).
  • Die Speichersteuerung 120 weist eine Host-Schnittstelle 152 auf, die mit dem Host 102 verbunden ist und mit diesem in Kommunikation steht. In einer Ausführungsform implementiert die Host-Schnittstelle 152 ein NVM Express (NVMe) über PCI Express (PCIe). Andere Schnittstellen können ebenfalls verwendet werden, wie SCSI, SATA usw. Die Host-Schnittstelle 152 ist ebenfalls mit einem Network-on-Chip (NOC) 154 verbunden. Ein NOC ist ein Kommunikationssubsystem auf einer integrierten Schaltung. NOCs können synchrone und asynchrone Taktdomänen umspannen oder eine ungetaktete asynchrone Logik verwenden. Die NOC-Technologie wendet Netzwerktheorie und -verfahren auf On-Chip-Kommunikationen an und liefert beträchtliche Verbesserungen gegenüber herkömmlichen Bus- und Crossbar-Verbindungen. Ein NOC verbessert die Skalierbarkeit von Systemen auf einem Chip (SoC) und die Leistungseffizienz komplexer SoCs im Vergleich zu anderen Designs. Die Drähte und die Verbindungen des NOC werden von vielen Signalen gemeinsam genutzt. Eine hohe Parallelität wird erreicht, da alle Verbindungen in dem NOC gleichzeitig an unterschiedlichen Datenpaketen arbeiten können. Daher stellt ein NOC, wenn die Komplexität integrierter Subsysteme wächst, eine verbesserte Leistung (wie Durchsatz) und Skalierbarkeit im Vergleich zu früheren Kommunikationsarchitekturen (z. B. dedizierten Punkt-zu-Punkt-Signaldrähten, gemeinsam genutzten Bussen oder segmentierten Bussen mit Brücken) bereit. In anderen Ausführungsformen kann NOC 154 durch einen Bus ersetzt werden. Mit dem NOC 154 verbunden und in Kommunikation mit ihm sind der Prozessor 156, die ECC-Maschine 158, die Speicherschnittstelle 160 und die DRAM-Steuerung 164. Die DRAM-Steuerung 164 wird verwendet, um mit einem lokalen flüchtigen Hochgeschwindigkeitsspeicher 140 (z. B. DRAM) zu arbeiten und damit zu kommunizieren. In anderen Ausführungsformen kann der lokale flüchtige Hochgeschwindigkeitsspeicher 140 ein SRAM oder eine andere Art eines flüchtigen Speichers sein.
  • Die ECC-Maschine 158 führt Fehlerkorrekturdienste durch. Zum Beispiel führt die ECC-Maschine 158 Datencodierung und -decodierung gemäß der implementierten ECC-Technik durch. In einer Ausführungsform ist die ECC-Maschine 158 eine elektrische Schaltung, die durch Software programmiert wird. Zum Beispiel kann die ECC-Maschine 158 ein Prozessor sein, der programmiert werden kann. In anderen Ausführungsformen ist die ECC-Maschine 158 eine kundenspezifische und dedizierte Hardware-Schaltung ohne jegliche Software. In einer anderen Ausführungsform wird die Funktion der ECC-Maschine 158 durch den Prozessor 156 implementiert.
  • Der Prozessor 156 führt die verschiedenen Steuerungsspeichervorgänge wie Programmierung, Löschen, Lesen und Speicherverwaltungsprozesse durch. In einer Ausführungsform wird der Prozessor 156 durch Firmware programmiert. In anderen Ausführungsformen ist der Prozessor 156 eine kundenspezifische und dedizierte Hardware-Schaltung ohne jegliche Software. Der Prozessor 156 implementiert auch ein Übersetzungsmodul, als ein Software/Firmware-Prozess oder als eine dedizierte Hardware-Schaltung. In vielen Systemen wird der nichtflüchtige Speicher innerhalb des Speichersystems unter Verwendung von physischen Adressen, verbunden mit einem oder mehreren Speicherchips, adressiert. Jedoch verwendet das Host-System logische Adressen, um die verschiedenen Speicherorte zu adressieren. Dies ermöglicht dem Host, Daten aufeinander folgenden logischen Adressen zuzuweisen, während das Speichersystem die Daten an beliebigen Orten des einen oder der mehreren Speicherchips frei speichern kann. Um dieses System zu implementieren, führt die Speichersteuerung 120 (z. B. das Übersetzungsmodul) eine Adressübersetzung zwischen den logischen Adressen, die von dem Host verwendet werden, und den physischen Adressen, die von den Speicherchips verwendet werden, durch. Eine beispielhafte Implementierung besteht darin, Tabellen (d. h. die vorstehend erwähnten L2P-Tabellen) beizubehalten, die die aktuelle Übersetzung zwischen logischen Adressen und physischen Adressen identifizieren. Ein Eintrag in der L2P-Tabelle kann eine Identifikation einer logischen Adresse und einer entsprechenden physischen Adresse einschließen. Obwohl Tabellen mit einer Zuordnung von logischer Adresse zu physischer Adresse (oder L2P-Tabellen) das Wort „Tabellen“ einschließen, müssen sie nicht tatsächlich Tabellen sein. Die Tabellen mit einer Zuordnung von logischer Adresse zu physischer Adresse (oder L2P-Tabellen) können vielmehr jede Art von Datenstruktur sein. In einigen Beispielen ist der Speicherplatz eines Speichersystems so groß, dass der lokale Speicher 140 nicht alle L2P-Tabellen tragen kann. In einem solchen Fall wird der gesamte Satz von L2P-Tabellen in einem Speicherchip 130 gespeichert, und ein Teilsatz der L2P-Tabellen wird in dem lokalen flüchtigen Hochgeschwindigkeitsspeicher 140 zwischengespeichert (L2P-Cache).
  • Die Speicherschnittstelle 160 kommuniziert mit dem nichtflüchtigen Speicher 130. In einer Ausführungsform stellt die Speicherschnittstelle eine Schaltmodus-Schnittstelle bereit. Es können auch andere Schnittstellen verwendet werden. In einigen beispielhaften Implementierungen implementiert die Speicherschnittstelle 160 (oder ein anderer Abschnitt der Steuerung 120) einen Scheduler und Puffer zum Übertragen von Daten an und Empfangen von Daten von einem oder mehreren Speicherchips.
  • In einer Ausführungsform weist der nichtflüchtige Speicher 130 einen oder mehrere Speicherchips auf. 2A ist ein Funktionsblockdiagramm einer Ausführungsform eines Speicherchips 200, der einen nichtflüchtigen Speicher 130 aufweist. Jeder des einen oder der mehreren Speicherchips des nichtflüchtigen Speichers 130 kann als Speicherchip 200 von 2A implementiert werden. Die in 2A dargestellten Komponenten sind elektrische Schaltungen. Der Speicherchip 200 schließt ein Speicherarray 202 ein, das nichtflüchtige Speicherzellen aufweisen kann, wie nachstehend noch ausführlicher beschrieben wird. Die Array-Anschlussleitungen des Speicherarrays 202 schließen die verschiedenen Schichten von Wortleitungen, die als Zeilen organisiert sind, und die verschiedenen Schichten von Bitleitungen, die als Spalten organisiert sind, ein. Jedoch können aber auch andere Orientierungen umgesetzt werden. Der Speicherchip 200 schließt eine Zeilensteuerschaltung 220 ein, deren Ausgänge 208 mit jeweiligen Wortleitungen des Speicherarrays 202 verbunden sind. Die Zeilensteuerschaltung 220 empfängt eine Gruppe von M Zeilenadresssignalen und ein oder mehrere verschiedene Steuersignale von der Systemsteuerlogikschaltung 206 und kann üblicherweise Schaltungen wie Zeilendecoder 222, Array-Anschluss-Treiber 224 und Blockauswahlschaltungen 226 für sowohl Lese- als auch Schreibvorgänge (Programmierung) einschließen. Die Zeilensteuerschaltung 220 kann auch eine Lese-/Schreibschaltung einschließen. Der Speicherchip 200 schließt auch eine Spaltensteuerschaltung 210 mit Leseverstärker(n) 230 ein, deren Eingänge/Ausgänge 206 mit entsprechenden Bitleitungen des Speicherarrays 202 verbunden sind. Obwohl nur ein einziger Block für das Array 202 gezeigt ist, kann ein Speicherchip mehrere Arrays einschließen, auf die einzeln zugegriffen werden kann. Die Spaltensteuerschaltung 210 empfängt eine Gruppe von N Spaltenadresssignalen und eines oder mehrere verschiedene Steuersignale von der Systemsteuerlogik 260 und kann üblicherweise Schaltungen wie Spaltendecoder 212, Array-Anschluss-Empfänger oder Treiberschaltungen 214, Blockauswahlschaltungen 216 sowie Lese-/Schreibschaltungen und E/A-Multiplexer einschließen.
  • Die Systemsteuerlogik 260 empfängt Daten und Befehle von der Speichersteuerung 120 und stellt dem Host Ausgabedaten und einen Status bereit. In einigen Ausführungsformen schließt die Systemsteuerlogik 260 (die eine oder mehrere elektrische Schaltungen aufweist) eine Zustandsmaschine 262 ein, die eine Steuerung von Speichervorgängen auf Chip-Ebene bereitstellt. In einer Ausführungsform ist die Zustandsmaschine 262 durch Software programmierbar. In anderen Ausführungsformen verwendet die Zustandsmaschine 262 keine Software und ist vollständig in die Hardware (z. B. elektrischen Schaltungen) implementiert. In einer anderen Ausführungsform wird die Zustandsmaschine 262 durch einen Mikrocontroller oder Mikroprozessor ersetzt, entweder auf oder außerhalb des Speicherchips. Die Systemsteuerlogik 262 kann auch ein Leistungssteuermodul 264 einschließen, das die Leistung und Spannungen steuert, die den Zeilen und Spalten des Speicherstruktur 202 während der Speichervorgänge zugeführt werden, und kann Ladungspumpen und eine Regelschaltung zum Erzeugen von Regelspannungen einschließen. Die Systemsteuerlogik 262 schließt einen Speicher 366 (z. B. RAM, Register, Latches usw.) ein, der zum Speichern von Parametern für den Betrieb des Speicherarrays 202 verwendet werden kann.
  • Befehle und Daten werden zwischen der Speichersteuerung 120 und Speicherchip 200 über die Speichersteuerungsschnittstelle 268 (auch als „Kommunikationsschnittstelle“ bezeichnet) übertragen. Die Speichersteuerungsschnittstelle 268 ist eine elektrische Schnittstelle zur Kommunikation mit der Speichersteuerung 120. Beispiele für die Speichersteuerungsschnittstelle 268 schließen eine Toggle-Mode-Schnittstelle und eine Open NAND-Flash-Schnittstelle (ONFI) ein. Es können auch andere E/A-Schnittstellen verwendet werden.
  • In einigen Ausführungsformen können alle Elemente des Speicherchips 200, einschließlich der Systemsteuerlogik 360, als Teil eines einzelnen Chips ausgebildet sein. In anderen Ausführungsformen können ein Teil der oder die gesamte Systemsteuerlogik 260 auf einem anderen Chip ausgebildet sein.
  • In einer Ausführungsform weist die Speicherstruktur 202 ein dreidimensionales Array von nichtflüchtigen Speicherzellen auf, in denen mehrere Speicherebenen über einem einzigen Substrat, wie etwa einem Wafer, ausgebildet sind. Die Speicherstruktur kann jede Art von nichtflüchtigem Speicher aufweisen, der monolithisch in einer oder mehreren physischen Ebenen von Speicherzellen ausgebildet ist, die einen aktiven Bereich aufweisen, der über einem Silizium- (oder anderen Typ von) Substrat angeordnet ist. In einem Beispiel weisen die nichtflüchtigen Speicherzellen vertikale NAND-Ketten mit ladungseinfangendem Material auf.
  • In einer anderen Ausführungsform weist die Speicherstruktur 302 ein zweidimensionales Speicherarray von nichtflüchtigen Speicherzellen auf. In einem Beispiel sind die nichtflüchtigen Speicherzellen NAND-Flashspeicherzellen mit Floating-Gates. Andere Arten von Speicherzellen (z. B. NOR-Typ-Flashspeicher) können ebenfalls verwendet werden.
  • Die genaue Art der Speicherarray-Architektur oder der Speicherzelle, die in der Speicherstruktur 202 eingeschlossen ist, ist nicht auf die vorstehenden Beispiele beschränkt. Viele unterschiedliche Arten von Speicher-Array-Architekturen oder Speichertechnologien können verwendet werden, um die Speicherstruktur 202 zu bilden. Es ist keine spezielle nichtflüchtige Speichertechnologie für die Zwecke der neuen beanspruchten Ausführungsformen, die hierin vorgeschlagen werden, erforderlich. Andere Beispiele geeigneter Technologien für Speicherzellen der Speicherstruktur 202 schließen ReRAM-Speicher (resistive Direktzugriffsspeicher), magnetoresistive Speicher (z. B. MRAM, Spin-Transfer-Torque-MRAM, Spin-Orbit-Torque-MRAM), FeRAM, Phasenwechselspeicher (z. B. PCM), und dergleichen ein. Beispiele geeigneter Technologien für die Speicherzellen-Architekturen der Speicherstruktur 202 schließen zweidimensionale Arrays, dreidimensionale Arrays, Kreuzpunktarrays, gestapelte zweidimensionale Arrays, vertikale Bitleitungsarrays und dergleichen ein.
  • Ein Beispiel für einen ReRAM-Kreuzpunktspeicher schließt reversible Widerstandsschaltelemente ein, die in Kreuzpunktarrays angeordnet sind, auf die über X-Leitungen und Y-Leitungen (z. B. Wortleitungen und Bitleitungen) zugegriffen wird. In einer anderen Ausführungsform können die Speicherzellen leitfähige Brückenspeicherelemente einschließen. Ein leitfähiges Brückenspeicherelement kann auch als programmierbare Metallisierungszelle bezeichnet werden. Ein leitfähiges Brückenspeicherelement kann als ein Zustandsänderungselement basierend auf der physikalischen Verlagerung von Ionen innerhalb eines Festelektrolyten verwendet werden. In einigen Fällen kann ein leitfähiges Brückenspeicherelement zwei feste Metallelektroden einschließen, eine relativ inerte (z. B. Wolfram) und die andere elektrochemisch aktive (z. B. Silber oder Kupfer), mit einer dünnen Folie des Festelektrolyten zwischen den beiden Elektroden. Mit steigender Temperatur steigt auch die Mobilität der Ionen, was bewirkt, dass die Programmierschwelle für die leitfähige Brückenspeicherzelle abnimmt. Somit kann das leitfähige Brückenspeicherelement einen weiten Bereich von Programmierschwellen als Funktion der Temperatur aufweisen.
  • Ein weiteres Beispiel ist ein magnetoresistiver Direktzugriffsspeicher (MRAM), der Daten durch magnetische Speicherelemente speichert. Die Elemente sind aus zwei durch eine dünne Isolierschicht getrennte ferromagnetischen Schichten gebildet, von denen jede eine Magnetisierung halten kann. Eine der beiden Schichten ist ein Permanentmagnet, der auf eine bestimmte Polarität eingestellt ist; die Magnetisierung der anderen Schicht kann so geändert werden, dass sie der eines externen Felds zur Speicherung von Speichern entspricht. Eine Speichervorrichtung wird aus einem Gitter solcher Speicherzellen aufgebaut. Bei einer Ausführungsform zum Programmieren liegt jede Speicherzelle zwischen einem Paar von Schreibleitungen, die in rechten Winkeln zueinander parallel zu der Zelle angeordnet sind, eine über und eine unter der Zelle. Wenn Strom durch sie fließt, wird ein Induktionsmagnetfeld erzeugt. MRAM-basierte Speicherausführungsformen werden nachstehend ausführlicher erörtert.
  • Phasenänderungsspeicher (PCM) nutzen das einzigartige Verhalten von Chalkogenidglas aus. Eine Ausführungsform verwendet ein GeTe-Sb2Te3-Übergitter, um nichtthermische Phasenänderungen zu erreichen, indem einfach der Koordinationszustand der Germaniumatome mit einem Laserimpuls (oder Lichtimpuls von einer anderen Quelle) geändert wird. Daher sind die Dosen der Programmierung Laserimpulse. Die Speicherzellen können gesperrt werden, indem die Speicherzellen daran gehindert werden, das Licht zu empfangen. In anderen PCM-Ausführungsformen werden die Speicherzellen durch Stromimpulse programmiert. Es sei darauf hingewiesen, dass die Verwendung von „Impuls“ in diesem Dokument keinen Rechteckimpuls erfordert, sondern eine (kontinuierliche oder nicht kontinuierliche) Schwingung oder einen Stoß eines Schalls, Stroms, Spannungslichts oder einer anderen Welle einschließt. Diese Speicherelemente innerhalb der einzelnen auswählbaren Speicherzellen oder Bits können ein weiteres Reihenelement einschließen, das ein Selektor ist, wie beispielsweise ein ovonischer Schwellwertschalter oder ein Metall-Isolator-Substrat.
  • Der Durchschnittsfachmann wird erkennen, dass die hierin beschriebene Technologie nicht auf eine einzige spezifische Speicherstruktur, Speicherkonstruktion oder Materialzusammensetzung beschränkt ist, sondern viele relevante Speicherstrukturen gemäß dem Geist und Umfang der Technologie, wie hierin beschrieben und wie einem Fachmann bekannt, abdeckt.
  • Die Elemente von 2A können in zwei Teile gruppiert werden: (1) Speicherstruktur 202 und (2) periphere Schaltung, die alle anderen in 2A dargestellten Komponenten einschließt. Eine wichtige Eigenschaft einer Speicherschaltung ist ihre Kapazität, die durch Vergrößerung der Fläche des Speicherchips des Speichersystems 100, die der Speicherstruktur 202 zugewiesen ist, erhöht werden kann; dies reduziert jedoch die für die periphere Schaltung verfügbare Fläche auf dem Speicherchip. Dies kann recht erhebliche Einschränkungen für diese periphere Schaltung bedeuten. Zum Beispiel kann die Notwendigkeit, Leseverstärkerschaltungen in die verfügbare Fläche einzupassen, eine erhebliche Einschränkung für Leseverstärker-Designarchitekturen darstellen. In Bezug auf die Systemsteuerlogik 260 kann eine reduzierte Verfügbarkeit von Fläche die verfügbaren Funktionalitäten einschränken, die auf dem Chip implementiert werden können. Folglich ist ein grundlegender Kompromiss beim Entwurf eines Speicherchips für das Speichersystem 100 die Größe der Fläche, die für die Speicherstruktur 202 vorgesehen ist, und die Größe der Fläche, die für die periphere Schaltung vorgesehen ist.
  • Ein weiterer Bereich, in dem die Speicherstruktur 202 und die periphere Schaltung oft im Widerspruch stehen, ist die an der Bildung dieser Bereiche beteiligte Verarbeitung, da diese Bereiche oftmals unterschiedliche Verarbeitungstechnologien und den Kompromiss beinhalten, unterschiedliche Technologien auf einem einzigen Chip aufzuweisen. Wenn zum Beispiel die Speicherstruktur 202 NAND-Flash ist, handelt es sich um eine NMOS-Struktur, während die periphere Schaltung oftmals auf CMOS basiert. Zum Beispiel verwenden Elemente wie Leseverstärkerschaltungen, Ladungspumpen, Logikelemente in einer Zustandsmaschine und andere periphere Schaltungen in der Systemsteuerlogik 260 oft PMOS-Vorrichtungen. Verarbeitungsvorgänge zum Herstellen eines CMOS-Chips werden sich in vielen Aspekten von den Verarbeitungsvorgängen unterscheiden, die für einen NMOS-Flash-NAND-Speicher oder andere Speicherzellentechnologien optimiert sind.
  • Um diese Einschränkungen zu verbessern, können die nachstehend beschriebenen Ausführungsformen die Elemente von 2A auf separat gebildete Chips aufteilen, die dann miteinander verbunden werden. Genauer gesagt kann die Speicherstruktur 302 auf einem Chip ausgebildet sein (bezeichnet als Speicherchip) und einige oder alle peripheren Schaltungselemente, einschließlich einer oder mehrerer Steuerschaltungen, können auf einem separaten Chip (bezeichnet als Steuerchip) eingeschlossen sein. Zum Beispiel kann ein Speicherchip nur aus den Speicherelementen gebildet sein, wie z. B. dem Array von Speicherzellen eines Flash-NAND-Speichers, eines MRAM-Speichers, eines PCM-Speichers, eines ReRAM-Speichers oder eines anderen Speichertyps. Einige oder alle peripheren Schaltungen, sogar einschließlich Elementen wie Decoder und Leseverstärker, können dann auf einen separaten Steuerchip verlegt werden. Dadurch kann jeder der Speicherchips individuell entsprechend seiner Technologie optimiert werden. Zum Beispiel kann ein NAND-Speicherchip für eine NMOS-basierte Speicherarraystruktur optimiert werden, ohne sich um die CMOS-Elemente zu kümmern, die nun auf einen Steuerchip bewegt wurden, der für die CMOS-Verarbeitung optimiert werden kann. Dies ermöglicht mehr Platz für die peripheren Elemente, die nun zusätzliche Fähigkeiten aufnehmen können, die nicht ohne weiteres aufgenommen werden könnten, wenn sie auf die Ränder desselben Chips beschränkt wären, der das Speicherzellenarray enthält. Die zwei Chips können dann in einer gebondeten Multi-Chip-Speicherschaltung miteinander gebondet werden, wobei das Array auf dem einen Chip mit den peripheren Elementen auf dem anderen Chip verbunden ist. Obwohl im Folgenden der Fokus auf einer gebondeten Speicherschaltung mit einem Speicherchip und einem Steuerchip liegt, können andere Ausführungsformen mehr Chips verwenden, beispielsweise zwei Speicherchips und einen Steuerchip.
  • 2B zeigt eine alternative Anordnung zu der von 2A, die durch Wafer-to-Wafer-Bonden implementiert werden kann, um ein gebondetes Chip-Paar bereitzustellen. 2B stellt ein Funktionsblockdiagramm einer Ausführungsform einer integrierten Speicheranordnung 207 dar. Eine oder mehrere integrierte Speicheranordnungen 207 können verwendet werden, um den nichtflüchtigen Speicher 130 des Speichersystems 100 zu implementieren. Die integrierte Speicheranordnung 307 schließt zwei Arten von Halbleiterchips ein (oder kürzer „Chips“). Der Speicherchip 201 schließt die Speicherstruktur 202 ein. Die Speicherstruktur 202 schließt nichtflüchtige Speicherzellen ein. Der Steuerchip 211 schließt eine Steuerschaltung 260, 210 und 220 (wie oben beschrieben) ein. In einigen Ausführungsformen ist der Steuerchip 211 konfiguriert, um sich mit der Speicherstruktur 202 in dem Speicherchip 201 zu verbinden. In einigen Ausführungsformen sind der Speicherchip 201 und der Steuerchip 211 miteinander verbunden.
  • 2B zeigt ein Beispiel für die periphere Schaltung, einschließlich Steuerschaltungen, die in einer peripheren Schaltung oder einem Steuerchip 311 ausgebildet sind, der mit der in einem Speicherchip 201 ausgebildeten Speicherstruktur 202 gekoppelt ist. Gemeinsame Komponenten sind ähnlich wie in 2A gekennzeichnet. Die Systemsteuerlogik 260, die Zeilensteuerschaltung 220 und die Spaltensteuerschaltung 210 befinden sich im Steuerchip 211. In einigen Ausführungsformen befinden sich die gesamte oder ein Teil der Spaltensteuerschaltlogik 210 und die gesamte oder ein Teil der Zeilensteuerschaltlogik 220 auf dem Speicherchip 201. In einigen Ausführungsformen befindet sich ein Teil der Schaltung in der Systemsteuerlogik 260 auf dem Speicherchip 201.
  • Die Systemsteuerlogik 260, die Zeilensteuerschaltung 220 und die Spaltensteuerschaltung 210 können durch einen gemeinsamen Vorgang (z. B. CMOS-Prozess) gebildet werden, sodass das Hinzufügen von Elementen und Funktionalitäten, wie ECC, die eigentlich üblicherweise eher auf einer Speichersteuerung 120 zu finden sind, möglicherweise wenige oder keine zusätzlichen Prozessschritte erfordert (d. h. dieselben Prozessschritte, die zum Herstellen der Steuerung 120 verwendet werden, können auch zum Herstellen der Systemsteuerlogik 260, der Zeilensteuerschaltung 220 und der Spaltensteuerschaltung 210 verwendet werden). Während das Verschieben solcher Schaltungen von einem Chip, wie beispielsweise dem Speicher 2 Chip 201, die Anzahl der für die Herstellung eines solchen Chips erforderlichen Schritte reduzieren kann, erfordert das Hinzufügen solcher Schaltungen zu einem Chip, wie beispielsweise dem Steuerchip 311, somit nicht viele zusätzliche Prozessschritte. Der Steuerchip 211 kann auch als CMOS-Chip bezeichnet werden, da die CMOS-Technologie verwendet wird, um einige oder alle Steuerschaltungen 260, 210, 220 zu implementieren.
  • 2B zeigt eine Spaltensteuerschaltung 210 einschließlich Leseverstärker(n) 230 auf dem Steuerchip 211, die über elektrische Pfade 206 mit der Speicherstruktur 202 auf dem Speicherchip 201 gekoppelt sind. Zum Beispiel können die elektrischen Pfade 206 eine elektrische Verbindung zwischen dem Spaltendecoder 212, der Treiberschaltung 214 und der Blockauswahl 216 und den Bitleitungen der Speicherstruktur 202 bereitstellen. Elektrische Pfade können sich von der Spaltensteuerungsschaltlogik 210 im Steuerschaltungschip 211 durch Pads auf dem Steuerschaltungschip 211 erstrecken, die mit entsprechenden Pads des Speicherchips 201 gebondet sind, die mit Bitleitungen der Speicherstruktur 202 verbunden sind. Jede Bitleitung der Speicherstruktur 202 kann einen entsprechenden elektrischen Pfad in den elektrischen Pfaden 306 haben, einschließlich eines Paares gebondeter Pads, das mit der Spaltensteuerschaltung 210 verbunden ist. In ähnlicher Art und Weise ist die Zeilensteuerungsschaltlogik 220, einschließlich des Zeilendecodierers 222, der Arraytreiber 224 und der Blockauswahl 226, über elektrische Pfade 208 mit der Speicherstruktur 202 gekoppelt. Jeder der elektrischen Pfade 208 kann einer Wortleitung, einer Dummy-Wortleitung oder einer Auswahl-Gate-Leitung entsprechen. Zusätzliche elektrische Pfade können auch zwischen Steuerchip 211 und Arraychip 201 bereitgestellt werden.
  • Für die Zwecke dieses Dokuments kann die Formulierung „eine oder mehrere Steuerschaltungen“ eine beliebige oder eine Kombination aus einer Speichersteuerung 120, einer Zustandsmaschine 262, der gesamten oder einem Teil der Systemsteuerlogik 260, der gesamten oder einem Teil der Zeilensteuerschaltung 200, der gesamten oder einem Teil der Spaltensteuerschaltung 210, einem Mikrocontroller, einem Mikroprozessor und/oder anderen Schaltungen mit vergleichbarer Funktion einschließen. Die eine oder die mehreren Steuerschaltungen können nur Hardware oder eine Kombination aus Hardware und Software (einschließlich Firmware) einschließen. Zum Beispiel ist eine Steuerung, die durch Firmware programmiert ist, um die hierin beschriebenen Funktionen auszuführen, ein Beispiel einer Steuerschaltung. Eine Steuerschaltung kann einen Prozessor, FGA, ASIC, eine integrierte Schaltung oder eine andere Art von Schaltung einschließen.
  • Bei einigen Ausführungsformen gibt es mehr als einen Steuerchip 211 und mehr als einen Speicherchip 201 in einer integrierten Speicherbaugruppe 207. In einigen Ausführungsformen schließt die integrierte Speicherbaugruppe 207 einen Stapel aus mehreren Steuerchips 211 und mehreren Speicherchips 201 ein. 2C zeigt eine Seitenansicht einer Ausführungsform einer integrierten Speicherbaugruppe 207, die auf einem Substrat 271 gestapelt ist (z. B. ein Stapel, der Steuerchips 211 und Speicherchips 201 aufweist). Die integrierte Speicherbaugruppe 207 weist drei Steuerchips 211 und drei Speicherchips 201 auf. In einigen Ausführungsformen gibt es mehr als drei Speicherchips 201 und mehr als drei Steuerchips 211.
  • Jeder Steuerchip 211 ist mit einem der Speicherchips 201 verbunden (z. B. gebondet). Einige der Bondpads 282/284 sind dargestellt. Es kann viel mehr Bondpads geben. Ein Raum zwischen zwei Chips 201, 211, die zusammengebondet sind, ist mit einer festen Schicht 280 gefüllt, die aus Epoxid oder einem anderen Harz oder Polymer gebildet sein kann. Diese feste Schicht 280 schützt die elektrischen Verbindungen zwischen den Chips 201, 211 und befestigt die Chips weiter miteinander. Verschiedene Materialien können als feste Schicht 280 verwendet werden, doch in Ausführungsformen kann es sich um Hysol-Epoxidharz von Henkel Corp. mit Niederlassungen in Kalifornien, USA, handeln.
  • Die integrierte Speicherbaugruppe 207 kann zum Beispiel mit einem gestuften Versatz gestapelt werden, wobei die Bondpads auf jeder Ebene unbedeckt und von oben zugänglich bleiben. Drahtbonds 270, die mit den Bondpads verbunden sind, verbinden den Steuerchip 211 mit dem Substrat 271. Eine Anzahl solcher Drahtbonds kann über die Breite jedes Steuerchips 211 (d. h. in die Seite von 2C) gebildet werden.
  • Eine Siliziumdurchkontaktierung (TSV) des Speicherchips 276 kann verwendet werden, um Signale durch einen Speicherchip 201 zu leiten. Eine Siliziumdurchkontaktierung (TSV) des Steuerchips 278 kann verwendet werden, um Signale durch einen Steuerchip 211 zu leiten. Die TSV 276, 278 können vor, während oder nach Bilden der integrierten Schaltungen in den Halbleiterchips 201, 211 gebildet werden. Die TSV können durch Ätzen von Löchern durch die Wafer gebildet werden. Die Löcher können dann mit einer Barriere gegen Metalldiffusion ausgekleidet werden. Die Sperrschicht kann wiederum mit einer Impfschicht ausgekleidet sein, und die Impfschicht kann mit einem elektrischen Leiter wie Kupfer beschichtet sein, obwohl andere geeignete Materialien wie Aluminium, Zinn, Nickel, Gold, dotiertes Polysilicium und Legierungen oder Kombinationen davon verwendet werden können.
  • Lötkugeln 272 können optional an Kontaktpads 274 auf einer unteren Oberfläche des Substrats 271 befestigt werden. Die Lötkugeln 272 können verwendet werden, um die integrierte Speicherbaugruppe 207 elektrisch und mechanisch mit einer Hostvorrichtung, beispielsweise einer Leiterplatte, zu koppeln. Lötkugeln 272 können weggelassen werden, wenn die integrierte Speicherbaugruppe 207 als LGA-Gehäuse verwendet werden soll. Lötkugeln 272 können einen Teil der Schnittstelle zwischen der integrierten Speicherbaugruppe 207 und der Speichersteuerung 120 bilden.
  • 2D stellt eine Seitenansicht einer Ausführungsform einer integrierten Speicherbaugruppe 207 dar, die auf einem Substrat 271 gestapelt ist. Die integrierte Speicherbaugruppe 206 von 2D weist drei Steuerchips 211 und drei Speicherchips 201 auf. In einigen Ausführungsformen gibt es viel mehr als drei Speicherchips 201 und viel mehr als drei Steuerchips 211. In diesem Beispiel ist jeder Steuerchip 211 mit mindestens einem Speicherchip 201 verbunden. Optional kann ein Steuerchip 211 mit zwei oder mehr Speicherchips 201 verbunden sein.
  • Einige der Bondpads 282, 284 sind dargestellt. Es kann viel mehr Bondpads geben. Ein Raum zwischen zwei Chips 201, 211, die zusammengebondet sind, ist mit einer festen Schicht 280 gefüllt, die aus Epoxid oder einem anderen Harz oder Polymer gebildet sein kann. Im Gegensatz zu dem Beispiel in 2C weist die integrierte Speicheranordnung 207 in 2D keinen gestuften Versatz auf. Eine Siliziumdurchkontaktierung (TSV) des Speicherchips 276 kann verwendet werden, um Signale durch einen Speicherchip 201 zu leiten. Eine Siliziumdurchkontaktierung (TSV) des Steuerchips 278 kann verwendet werden, um Signale durch einen Steuerchip 211 zu leiten.
  • Lötkugeln 272 können optional an Kontaktpads 274 auf einer unteren Oberfläche des Substrats 271 befestigt werden. Die Lötkugeln 272 können verwendet werden, um die integrierte Speicherbaugruppe 207 elektrisch und mechanisch mit einer Hostvorrichtung, beispielsweise einer Leiterplatte, zu koppeln. Lötkugeln 272 können weggelassen werden, wenn die integrierte Speicherbaugruppe 207 als LGA-Gehäuse verwendet werden soll.
  • Wie oben kurz erörtert, können der Steuerchip 211 und der Speicherchip 201 miteinander verbunden sein. Bondpads auf jedem Chip 201, 211 können zum Verbinden miteinander der beiden Chips verwendet werden. In einigen Ausführungsformen werden die Bondkontaktstellen in einem sogenannten Cu-zu-Cu-Bindungsprozess ohne Lötmittel oder anderes zugesetztes Material direkt miteinander verbunden. Bei einem Cu-zu-Cu-Bindungsprozess werden die Bondpads so gesteuert, dass sie sehr eben sind und in einer stark gesteuerten Umgebung gebildet werden, die weitgehend frei von Umgebungspartikeln ist, die sich sonst auf einem Bondpad absetzen und eine enge Bindung verhindern könnten. Unter solchen angemessen gesteuerten Bedingungen werden die Bondpads ausgerichtet und gegeneinander gepresst, um eine gegenseitige Bindung basierend auf der Oberflächenspannung zu bilden. Solche Bindungen können bei Raumtemperatur gebildet werden, obwohl auch Wärme angewendet werden kann. Bei Ausführungsformen unter Verwendung von Cu-Cu-Bindung können die Bondpads etwa 5 µm im Quadrat und mit einem Pitch von 5 µm zu 5 µm zueinander beabstandet sein. Obschon dieser Prozess hierin als Cu-zu-Cu-Bindung bezeichnet wird, kann dieser Begriff sogar dann gelten, wenn die Bondpads aus anderen Materialien als Cu gebildet sind.
  • Wenn die Fläche der Bondpads klein ist, kann es schwierig sein, die Halbleiterchips miteinander zu verbinden. Die Größe der, und der Abstand zwischen den, Bondpads können weiter verringert werden, indem eine Filmschicht auf den Oberflächen der Halbleiterchips einschließlich der Bondpads bereitgestellt wird. Die Filmschicht ist um die Bondpads herum bereitgestellt. Wenn die Chips zusammengebracht werden, können sich die Bondpads miteinander verbinden, und die Filmschichten auf den jeweiligen Chips können sich miteinander verbinden. Eine solche Bindungstechnik kann als Hybridbindung bezeichnet werden. Bei Ausführungsformen unter Verwendung von Hybrid-Verbindungen können die Bondpads etwa 5 µm im Quadrat und mit einem Pitch von 1 µm bis 5 µm zueinander beabstandet sein. Verbindungstechniken können verwendet werden, um Bondpads mit noch kleineren Größen und Pitches bereitzustellen.
  • Einige Ausführungsformen können einen Film auf der Oberfläche der Chips 201, 211 einschließen. Wenn anfänglich kein solcher Film bereitgestellt ist, kann ein Raum zwischen den Chips mit einem Epoxidharz oder einem anderen Harz oder Polymer unterfüllt werden. Das Unterfüllmaterial kann als Flüssigkeit aufgebracht werden, die dann zu einer festen Schicht aushärtet. Dieser Unterfüllungsschritt schützt die elektrischen Verbindungen zwischen den Chips 201, 211 und befestigt die Chips weiter miteinander. Verschiedene Materialien können als Unterfüllmaterial verwendet werden, aber in Ausführungsformen kann es sich um Hysol-Epoxidharz von Henkel Corp. handeln, die Niederlassungen in Kalifornien, USA, hat.
  • 3 ist eine perspektivische Ansicht eines Abschnitts eines Ausführungsbeispiels für ein monolithisches dreidimensionales Speicherarray/-struktur, das die Speicherstruktur 202 aufweisen kann, die eine Vielzahl nichtflüchtiger Speicherzellen einschließt, die als vertikale NAND-Ketten angeordnet sind. Zum Beispiel zeigt 3 einen Abschnitt eines Speicherblocks. Die dargestellte Struktur schließt einen Satz von Bitleitungen BL ein, die über einem Stapel von alternierenden dielektrischen Schichten und leitenden Schichten positioniert sind. Als Beispiel wird eine der dielektrischen Schichten als D und eine der leitenden Schichten (auch als Wortleitungsschichten bezeichnet) wird als W markiert. Die Anzahl der alternierenden dielektrischen Schichten und der leitenden Schichten kann basierend auf spezifischen Implementierungsanforderungen variieren. Ein Satz von Ausführungsformen schließt zwischen 108-300 alternierende dielektrische Schichten und leitfähige Schichten ein. Mehr oder weniger als 108 bis 300 Schichten können ebenfalls verwendet werden. Wie nachfolgend erläutert, sind die alternierenden dielektrischen Schichten und leitfähigen Schichten durch lokale Zwischenverbindungen LI in vier oder mehr Bereiche (z. B. Unterblöcke) unterteilt. 3 zeigt zwei Finger und zwei lokale Zwischenverbindungen LI. Unterhalb der alternierenden dielektrischen Schichten und Wortleitungsschichten befindet sich eine Source-Leitungsschicht SL. In dem Stapel alternierender dielektrischer Schichten und leitender Schichten sind Speicherlöcher ausgebildet. Zum Beispiel ist eins der Speicherlöcher als MH markiert. Es ist zu beachten, dass in 3 die dielektrischen Schichten durchsichtig dargestellt sind, sodass der Leser die Speicherlöcher sehen kann, die in dem Stapel alternierender dielektrischer Schichten und leitender Schichten positioniert sind. In einer Ausführungsform werden NAND-Ketten gebildet, indem das Speicherloch mit Materialien gefüllt wird, die ein Ladungsfängermaterial einschließen, um eine vertikale Spalte von Speicherzellen zu erzeugen. Jede Speicherzelle kann eines oder mehrere Datenbits speichern. Mehr Details des dreidimensionalen monolithischen Speicherarrays, das die Speicherstruktur 202 aufweist, werden nachstehend in Bezug auf 4A-4E bereitgestellt.
  • 4A ist ein Blockdiagramm zur Erläuterung einer beispielhaften Organisation der Speicherstruktur 326, die in zwei Ebenen 302 und 304 unterteilt ist. Jede Ebene wird dann in M Blöcke unterteilt. In einem Beispiel hat jede Ebene etwa 2000 Blöcke. Doch es können auch andere Anzahlen von Blöcken und Ebenen verwendet werden. In einer Ausführungsform ist ein Speicherzellenblock eine Einheit zum Löschen. D. h. alle Speicherzellen eines Blocks werden zusammen gelöscht. In anderen Ausführungsformen können Speicherzellen aus anderen Gründen in Blöcken gruppiert werden, wie etwa zum Organisieren der Speicherstruktur 326 für die Signalisierungs- und Auswahlschaltungen. In einigen Ausführungsforme stellt ein Block eine Gruppe von verbundenen Speicherzellen dar, da die Speicherzellen eines Blocks einen gemeinsamen Satz von Wortleitungen teilen. Zum Beispiel sind die Wortleitungen eines Blocks alle mit allen vertikalen NAND-Strings dieses Blocks verbunden. Obwohl 4A zwei Ebenen 302/304 zeigt, können auch mehr oder weniger als zwei Ebenen implementiert werden. In einigen Ausführungsformen schließt die Speicherstruktur 202 vier Ebenen ein.
  • Die 4B-4E stellen ein Beispiel einer dreidimensionalen („3D“) NAND-Struktur dar, die der Struktur von 3 entspricht und verwendet werden kann, um die Speicherstruktur 202 der 2A und 2B zu implementieren. 4B ist ein Blockdiagramm zur Darstellung einer Draufsicht auf einen Abschnitt eines Blocks der Speicherstruktur 326. Der Abschnitt des Blocks, der in 4B dargestellt ist, entspricht Abschnitt 306 in Block 2 aus 4A. Wie aus 4B ersichtlich, verläuft der in 4B dargestellte Block in der Richtung von 332. In einer Ausführungsform hat das Speicherarray viele Schichten; Jedoch zeigt 4B nur die obere Schicht.
  • 4B stellt eine Vielzahl von Kreisen dar, die für die vertikalen Spalten stehen. Jede der vertikalen Spalten schließt mehrere Auswahltransistoren (auch als Auswahlgate bezeichnet) und mehrere Speicherzellen ein. In einer Ausführungsform implementiert jede vertikale Spalte eine NAND-Kette. Zum Beispiel stellt 4B die vertikalen Spalten 422, 432, 442 und 452 dar. Die vertikale Spalte 422 implementiert die NAND-Kette 482. Die vertikale Spalte 432 implementiert die NAND-Kette 484. Die vertikale Spalte 442 implementiert die NAND-Kette 486. Die vertikale Spalte 452 implementiert die NAND-Kette 488. Mehr Details der vertikalen Spalten werden nachstehend bereitgestellt. Da der in 4B dargestellte Block in Richtung des Pfeils 332 verläuft, enthält der Block mehr vertikale Spalten als in 4B dargestellt.
  • 4B stellt auch einen Satz Bitleitungen 415 einschließlich der Bitleitungen 411, 412, 413, 414, ... 419 dar. 4B zeigt vierundzwanzig Bitleitungen, da nur ein Abschnitt des Blocks dargestellt ist. Es wird in Betracht gezogen, dass mehr als vierundzwanzig Bitleitungen mit vertikalen Spalten des Blocks verbunden sind. Jeder der Kreise, die vertikale Spalten darstellen, hat ein „x“ zur Kennzeichnung seiner Verbindung mit jeweils einer Bitleitung. Zum Beispiel ist die Bitleitung 414 mit den vertikalen Spalten 422, 432, 442 und 452 verbunden.
  • Der in 4B dargestellte Block schließt einen Satz lokaler Verbindungen 402,404,406, 408 und 410 ein, die die verschiedenen Schichten mit einer Sourceleitung unterhalb der vertikalen Spalten verbinden. Die lokalen Verbindungen 402, 404, 406, 408 und 410 dienen auch zur Unterteilung jeder Schicht des Blocks in vier Bereiche; zum Beispiel ist die in 4B dargestellte obere Schicht in die Bereiche 420, 430, 440 und 450 unterteilt, die als Finger bezeichnet werden. In den Schichten des Blocks, die Speicherzellen implementieren, werden die vier Bereiche als Wortleitungsfinger bezeichnet, die durch die lokalen Verbindungen getrennt sind. In einer Ausführungsform sind die Wortleitungsfinger auf einer gemeinsamen Ebene eines Blocks miteinander verbunden, um eine einzelne Wortleitung zu bilden. In einer anderen Ausführungsform sind die Wortleitungsfinger auf derselben Ebene nicht miteinander verbunden. In einer beispielhaften Implementierung ist eine Bitleitung mit nur einer vertikalen Spalte in jedem der Bereiche 420, 430, 440 und 450 verbunden. In dieser Implementierung hat jeder Block sechzehn Reihen aktiver Spalten und ist jede Bitleitung mit vier Reihen in jedem Block verbunden. In einer Ausführungsform sind alle vier Reihen, die mit einer gemeinsamen Bitleitung verbunden sind, mit derselben Wortleitung verbunden (über verschiedene Wortleitungsfinger auf derselben Ebene, die miteinander verbunden sind); daher verwendet das System die sourceseitigen Auswahlleitungen und die drainseitigen Auswahlleitungen, um einen (oder eine andere Untermenge) der vier zu wählen, die einer Speicheroperation (Programmieren, Prüfen, Lesen und/oder Löschen) unterzogen werden sollen.
  • Obwohl 4B jeden Bereich mit vier Reihen vertikaler Spalten, vier Bereichen und sechzehn Reihen vertikaler Spalten in einem Block darstellt, sind diese genauen Zahlen eine beispielhafte Implementierung. Andere Ausführungsformen können mehr oder weniger Bereiche pro Block, mehr oder weniger Reihen vertikaler Spalten pro Bereich und mehr oder weniger Reihen vertikaler Spalten pro Block beinhalten.
  • 4B zeigt auch, dass die vertikalen Spalten gestaffelt sind. In anderen Ausführungsformen können verschiedene Staffelungsmuster verwendet werden. In einigen Ausführungsformen sind die vertikalen Spalten nicht gestaffelt.
  • 4C stellt einen Abschnitt einer Ausführungsform einer dreidimensionalen Speicherstruktur 326 dar, die eine Querschnittsansicht entlang der Linie AA von 4B zeigt. Diese Querschnittsansicht schneidet die vertikalen Spalten 432 und 434 und den Bereich 430 (siehe 4B). Die Struktur von 4C enthält vier Drain-seitige Auswahlschichten SGDO, SGD1, SGD2 und SGD3; vier sourceseitige Auswahlschichten SGSO, SGS1, SGS2 und SGS3; sechs Dummy-Wortleitungsschichten DD0, DD1, DS0, DS1, WLDL, WLDU; und sechsundneunzig Datenwortleitungsschichten WLL0-WLL95 zum Verbinden mit Datenspeicherzellen. Andere Ausführungsformen können mehr oder weniger als vier drain-seitige Auswahlschichten, mehr oder weniger als vier source-seitige Auswahlschichten, mehr oder weniger als sechs Dummy-Wortleitungsschichten und mehr oder weniger als sechsundneunzig Wortleitungen implementieren. Vertikale Spalten 432 und 434 sind als durch die Drain-seitigen Auswahlschichten, Source-seitigen Auswahlschichten, Dummy-Wortleitungsschichten und Wortleitungsschichten hervorstehend dargestellt. In einer Ausführungsform weist jede vertikale Spalte eine vertikale NAND-Kette auf. Zum Beispiel weist die vertikale Spalte 432 die NAND-Kette 484 auf. Unter den vertikalen Spalten und den unten aufgelisteten Schichten befinden sich ein Substrat 101, eine Isolationsschicht 454 auf dem Substrat und eine Sourceleitung SL. Die NAND-Kette der vertikalen Spalte 432 hat ein Source-Ende an einer Unterseite des Stapels und ein Drain-Ende an einer Oberseite des Stapels. Wie in Übereinstimmung mit 4B zeigt 4C die vertikale Spalte 432, die mit der Bitleitung 414 über den Verbinder 417 verbunden ist. Lokale Verbindungen 404 und 406 sind ebenfalls dargestellt.
  • Zur leichteren Bezugnahme werden vier Drain-seitige Auswahlschichten SGDO, SGD1, SGD2 und SGD3; vier Source-seitige Auswahlschichten SGSO, SGS1, SGS2 und SGS3; Dummy-Wortleitungsschichten DD0, DD1, DS0, DS1, WLDL und WLDU; und Datenwortleitungsschichten WLL0-WLL95 werden zusammen als die leitenden Schichten bezeichnet. In einer Ausführungsform sind die leitenden Schichten aus einer Kombination von TiN und Wolfram hergestellt. In anderen Ausführungsformen können andere Materialien verwendet werden, um die leitenden Schichten zu bilden, wie dotiertes Polysilicium, Metall wie Wolfram oder Metallsilizid. In einigen Ausführungsformen können verschiedene leitende Schichten aus unterschiedlichen Materialien gebildet werden. Zwischen leitenden Schichten befinden sich dielektrische Schichten DL0-DL111. Beispielsweise befinden sich dielektrische Schichten DL104 über einer Wortleitungsschicht WLL94 und unter einer Wortleitungsschicht WLL95. In einer Ausführungsform sind die dielektrischen Schichten aus SiO2 hergestellt. In anderen Ausführungsformen können andere dielektrische Materialien verwendet werden, um die dielektrischen Schichten zu bilden.
  • In einer Ausführungsform wählen die Schichten SGDO, SGD1, SGD2 und SGD3 drain-seitige Auswahlleitungen; source-seitige Auswahlschichten SGSO, SGS1, SGS2 und SGS3 implementieren die Auswahlleitungen auf der Quellenseite; Dummy-Wortleitungsschichten DD0, DD1, DS0, DS1, WLDL und WLDU implementieren Dummy-Wortleitungen; und Datenwortleitungsschichten WLL0-WLL95 implementieren Datenwortleitungen. In einer Ausführungsform werden Datenwortleitungen, Dummy-Wortleitungen, drain-seitige Auswahlleitungen und source-seitige Auswahlleitungen allgemein als Wortleitungen bezeichnet.
  • Die nichtflüchtigen Speicherzellen sind entlang vertikaler Spalten ausgebildet, die durch alternierende leitende und dielektrische Schichten im Stapel verlaufen. In einer Ausführungsform sind die Speicherzellen in NAND-Ketten angeordnet. Die Wortleitungsschichten WLL0-WLL95 sind mit Speicherzellen (auch Datenspeicherzellen genannt) verbunden. Dummy-Wortleitungsschichten DD0, DD1, DS0, DS1, WLDL und WLDU sind mit Dummy-Speicherzellen verbunden. Eine Dummy-Speicherzelle speichert keine Host-Daten (Daten, die von dem Host bereitgestellt werden, wie Daten von einem Benutzer des Hosts) und ist nicht dazu geeignet, sie zu speichern, während eine Datenspeicherzelle dazu geeignet ist, Host-Daten zu speichern. In einigen Ausführungsformen können Datenspeicherzellen und Dummy-Speicherzellen die gleiche Struktur aufweisen. Eine Dummy-Wortleitung ist mit Dummy-Speicherzellen verbunden. Drain-seitige Auswahlschichten SGDO, SGD1, SGD2 und SGD3 werden zum elektrischen Verbinden und Trennen von NAND-Ketten von Bitleitungen verwendet. Source-seitige Auswahlschichten SGSO, SGS1, SGS2 und SGS3 werden zum elektrischen Verbinden und Trennen von NAND-Ketten von der Sourceleitung SL verwendet.
  • 4C zeigt auch einen Stoßbereich. In einer Ausführungsform ist es teuer und/oder schwierig, sechsundneunzig Wortleitungsschichten zu ätzen, die mit dielektrischen Schichten vermischt sind. Zur Erleichterung dieser Belastung schließt eine Ausführungsform das Ablegen eines ersten Stapels von achtundvierzig Wortleitungsschichten, die sich mit dielektrischen Schichten abwechseln, das Ablegen des Stoßbereichs und das Ablegen eines zweiten Stapels von achtundvierzig Wortleitungsschichten, die sich mit dielektrischen Schichten abwechseln, ein. Der Stoßbereich ist zwischen dem ersten Stapel und dem zweiten Stapel positioniert. Der Stoßbereich wird dazu verwendet, um den ersten Stapel mit dem zweiten Stapel zu verbinden. In 4C wird der erste Stapel als „Unterer Satz von Wortleitungen“ und der zweite Stapel als „Oberer Satz von Wortleitungen“ bezeichnet. In einer Ausführungsform besteht der Stoßbereich aus den gleichen Materialien wie die Wortleitungsschichten. In einem beispielhaften Satz von Ausführungsformen besteht die Vielzahl von Wortleitungen (Wortleitungen sind ein Beispiel für Steuerleitungen, aber auch Bitleitungen können als Steuerleitungen betrachtet werden) aus einem ersten Stapel von abwechselnden Wortleitungsschichten und dielektrischen Schichten, einem zweiten Stapel von abwechselnden Wortleitungsschichten und dielektrischen Schichten und einem Stoßbereich zwischen dem ersten Stapel und dem zweiten Stapel, wie in 4C dargestellt.
  • 4D stellt eine Querschnittsansicht des Bereichs 429 aus 4C dar, der einen Teil der vertikalen Spalte 432 (Speicherloch) einschließt. In einer Ausführungsform sind die vertikalen Spalten rund; in anderen Ausführungsformen können jedoch andere Formen verwendet werden. In einer Ausführungsform beinhaltet die vertikale Säule 432 eine innere Kernschicht 470, die aus einem Dielektrikum, wie beispielsweise SiO2, hergestellt ist. Es können auch andere Materialien verwendet werden. Der umgebende innere Kern 470 ist ein Polysiliziumkanal 471. Es können auch andere Materialien als Polysilicium verwendet werden. Es ist zu beachten, dass es der Kanal 471 ist, der mit der Bitleitung und der Source-Leitung verbunden ist. Der umgebende Kanal 471 ist ein Tunneldielektrikum 472. In einer Ausführungsform hat das Tunneldielektrikum 472 eine ONO-Struktur. Das umgebende Tunneldielektrikum 472 ist eine Ladungsfängerschicht 473, wie (zum Beispiel) Siliziumnitrid. Andere Speichermaterialien und Strukturen können ebenfalls verwendet werden. Die hierin beschriebene Technologie ist nicht auf ein spezifisches Material oder eine spezifische Struktur beschränkt.
  • 4D stellt dielektrische Schichten DLL105, DLL104, DLL103, DLL102 und DLL101 sowie Wortleitungsschichten WLL95, WLL94, WLL93, WLL92 und WLL91 dar. Jede der Wortleitungsschichten schließt einen Wortleitungsbereich 476 ein, der von einer Aluminiumoxidschicht 477 umgeben ist, die von einer Blockieroxidschicht 478 umgeben ist. In anderen Ausführungsformen kann die Blockieroxidschicht eine vertikale Schicht sein, die parallel zu und angrenzend an die Ladungsfängerschicht 473 ist. Die physikalische Wechselwirkung der Wortleitungsschichten mit der vertikalen Spalte bildet die Speicherzellen. Somit weist eine Speicherzelle in einer Ausführungsform Kanal 471, Tunneldielektrikum 472, Ladungsfängerschicht 473, Blockieroxidschicht 478, Aluminiumoxidschicht 477 und Wortleitungsbereich 476 auf. Beispielsweise weisen die Wortleitungsschicht WLL95 und ein Abschnitt der vertikalen Spalte 432 eine Speicherzelle MC1 auf. Die Wortleitungsschicht WLL94 und ein Abschnitt der vertikalen Spalte 432 weisen eine Speicherzelle MC2 auf. Die Wortleitungsschicht WLL93 und ein Abschnitt der vertikalen Spalte 432 weisen eine Speicherzelle MC3 auf. Die Wortleitungsschicht WLL92 und ein Abschnitt der vertikalen Spalte 432 weisen eine Speicherzelle MC4 auf. Die Wortleitungsschicht WLL91 und ein Abschnitt der vertikalen Spalte 432 weisen eine Speicherzelle MC5 auf. In anderen Architekturen kann eine Speicherzelle eine andere Struktur haben; die Speicherzelle wäre jedoch immer noch die Speichereinheit.
  • Wenn eine Speicherzelle programmiert wird, werden Elektronen in einem Teil der Ladungsfängerschicht 473 gespeichert, der der Speicherzelle zugeordnet ist. Diese Elektronen werden in die Ladungsfängerschicht 473 aus dem Kanal 471, durch das Tunneldielektrikum 472 in Reaktion auf eine entsprechende Spannung im Wortleitungsbereich 476 gezogen. Die Schwellenspannung (Vth) einer Speicherzelle wird proportional zur Menge der gespeicherten Ladung erhöht. In einer Ausführungsform wird die Programmierung durch Fowler Nordheim-Tunneln der Elektronen in die Ladungsfängerschicht erreicht. Während eines Löschvorgangs kehren die Elektronen in den Kanal zurück oder werden Löcher in die Ladungsfängerschicht injiziert, um sich mit Elektronen zu rekombinieren. In einer Ausführungsform wird Löschen unter Verwendung von Löcherinjektion in die Ladungsfängerschicht über einen physikalischen Mechanismus, wie etwa durch Gate induziertes Drain-Leck (GIDL), erreicht.
  • 4E ist ein schematisches Diagramm eines Abschnitts des in den 3-4D dargestellten Speichers. 4E zeigt physikalische Datenwortleitungen WLL0-WLL95, die über den gesamten Block verlaufen. Die Struktur von 4E entspricht Abschnitt 306 in Block 2 von 4A-D einschließlich der Bitleitungen 411, 412, 413, 414, ... 419. Innerhalb des Blocks ist jede Bitleitung mit vier NAND-Strings verbunden. Drain-seitige Auswahlleitungen SGDO, SGD1, SGD2 und SGD3 werden dazu verwendet, um zu bestimmen, welche der vier NAND-Ketten mit der(den) zugehörigen Bitleitung(en) verbunden sind. Die sourceseitigen Auswahlleitungen SGSO, SGS1, SGS2 und SGS3 werden verwendet, um zu bestimmen, welche der vier NAND-Ketten mit der gemeinsamen Source-Leitung verbunden sind. Der Block kann auch als in vier Unterblöcke SB0, SB1, SB2 und SB3 unterteilt betrachtet werden. Unterblock SB0 entspricht solchen vertikalen NAND-Strings, die durch SGD0 und SGS0 gesteuert werden, Unterblock SB1 entspricht solchen vertikalen NAND-Strings, die durch SGD1 und SGS1 gesteuert werden, Unterblock SB2 entspricht solchen vertikalen NAND-Strings, die durch SGD2 und SGS2 gesteuert werden, und Unterblock SB3 entspricht solchen vertikalen NAND-Strings, die durch SGD3 und SGS3 gesteuert werden.
  • Obwohl das beispielhafte Speichersystem von 3-4E eine dreidimensionale Speicherstruktur ist, die vertikale NAND-Ketten mit Ladungsfängermaterial einschließt, können auch andere (2D und 3D) Speicherstrukturen mit der hierin beschriebenen Technologie verwendet werden.
  • Die vorstehend erörterten Speichersysteme können gelöscht, programmiert und gelesen werden. Am Ende eines erfolgreichen Programmierprozesses (mit Verifizierung) sollten die Schwellenspannungen der Speicherzellen innerhalb einer oder mehrerer Verteilungen von Schwellenspannungen für programmierte Speicherzellen oder innerhalb einer Verteilung von Schwellenspannungen für gelöschte Speicherzellen, wie zutreffend, liegen. 5 ist ein Diagramm der Schwellenspannung in Abhängigkeit von der Anzahl der Speicherzellen und veranschaulicht exemplarische Schwellenspannungsverteilungen für das Speicherarray, wenn jede Speicherzelle drei Datenbits speichert. Andere Ausführungsformen können jedoch andere Datenkapazitäten pro Speicherzelle verwenden (wie etwa ein, zwei, vier oder fünf Bits an Daten pro Speicherzelle). 5 zeigt acht Schwellenspannungsverteilungen, die acht Datenzuständen entsprechen. Bei einem Datenzustand N hat dieser Datenzustand N höhere Schwellenspannungen als der Datenzustand N-1 und niedrigere Schwellenspannungen als der Datenzustand N+1. Die erste Schwellenspannungsverteilung (Datenzustand) S0 steht für Speicherzellen, die gelöscht sind. Die anderen sieben Schwellenspannungsverteilungen (Datenzustände) S1-S7 stellen Speicherzellen dar, die programmiert sind und daher auch programmierte Zustände oder programmierte Datenzustände genannt werden. In einigen Ausführungsformen können sich die Datenzustände S1 bis S7 überlappen, wobei sich die Steuerung 122 auf die Fehlerkorrektur stützt, um die korrekten Daten, die gespeichert werden, zu identifizieren.
  • 5 zeigt sieben Lesereferenzspannungen Vr1, Vr2, Vr3, Vr4, Vr5, Vr6 und Vr7 zum Lesen von Daten aus Speicherzellen. Durch Testen (z. B. Ausführen von Lesevorgängen), ob die Schwellenspannung einer gegebenen Speicherzelle über oder unter den sieben Lesereferenzspannungen liegt, kann das System bestimmen, in welchem Datenzustand (d. h. S0, S1, S2, S3, ...) sich eine Speicherzelle befindet.
  • 5 zeigt auch sieben Verifizierungsreferenzspannungen, Vv1, Vv2, Vv3, Vv4, Vv5, Vv6 und Vv7 (auch als Verifizierungszielspannungen bezeichnet). Wenn Speicherzellen auf Datenzustand S1 programmiert werden, prüft das System, ob diese Speicherzellen eine Schwellenspannung aufweisen, die größer oder gleich Vv1 ist. Wenn Speicherzellen auf den Datenzustand S2 programmiert werden, prüft das System, ob diese Speicherzellen eine Schwellenspannung aufweisen, die größer oder gleich Vv2 ist. Wenn Speicherzellen auf den Datenzustand S3 programmiert werden, bestimmt das System, ob Speicherzellen ihre Schwellenspannung aufweisen, die größer oder gleich Vv3 ist. Wenn Speicherzellen auf Datenzustand S4 programmiert werden, prüft das System, ob diese Speicherzellen eine Schwellenspannung aufweisen, die größer oder gleich Vv4 ist. Wenn Speicherzellen auf Datenzustand S5 programmiert werden, prüft das System, ob diese Speicherzellen eine Schwellenspannung aufweisen, die größer oder gleich Vv5 ist. Wenn Speicherzellen auf Datenzustand S6 programmiert werden, prüft das System, ob diese Speicherzellen eine Schwellenspannung aufweisen, die größer oder gleich Vv6 ist. Wenn Speicherzellen auf Datenzustand S7 programmiert werden, prüft das System, ob diese Speicherzellen eine Schwellenspannung aufweisen, die größer oder gleich Vv7 ist.
  • In einer Ausführungsform, die als Vollsequenzprogrammierung bekannt ist, können Speicherzellen aus dem gelöschten Datenzustand S0 direkt auf einen der programmierten Datenzustände S1 bis S7 programmiert werden. Zum Beispiel kann eine Population von Speicherzellen, die programmiert werden sollen, zuerst gelöscht werden, so dass sich alle Speicherzellen in der Population im gelöschten Datenzustand S0 befinden. Dann wird ein Programmierprozess verwendet, um Speicherzellen direkt in Datenzustände S1, S2, S3, S4, S5, S6 und/oder S7 zu programmieren. Während zum Beispiel einige Speicherzellen von dem Datenzustand S0 auf den Datenzustand S1 programmiert werden, werden andere Speicherzellen vom Datenzustand S0 auf den Datenzustand S2 und/oder vom Datenzustand S0 auf den Datenzustand S3 und so weiter programmiert. Die Pfeile von 5 stellen die vollständige Sequenzprogrammierung dar. Die hierin beschriebene Technologie kann auch mit anderen Programmierarten zusätzlich zur Vollsequenzprogrammierung einschließlich (aber nicht beschränkt auf) Mehrstufen-/Phasenprogrammierung verwendet werden.
  • Jede Schwellenspannungsverteilung (Datenzustand) in 5 entspricht vorbestimmten Werten für den Satz von Datenbits, die in den Speicherzellen gespeichert sind. Die spezifische Beziehung zwischen den in die Speicherzelle programmierten Daten und den Schwellenspannungspegeln der Speicherzelle hängt von dem Datencodierschema ab, das für die Speicherzellen verwendet wird. In einer Ausführungsform werden Datenwerte den Schwellenspannungsbereichen unter Verwendung einer Gray-Code-Zuweisung zugewiesen, sodass, wenn sich die Schwellenspannung eines Speichers fälschlicherweise in seinen benachbarten physikalischen Zustand verschiebt, nur ein Bit betroffen ist.
  • 6 ist eine Tabelle, die ein Beispiel einer Zuordnung von Datenwerten zu Datenzuständen beschreibt. In der Tabelle von 6, S0=111 (gelöschter Zustand), S1=110, S2=100, S3=000, S4=010, S5=011, S6=001 und S7=101. Andere Datencodierungen können ebenfalls verwendet werden. Keine spezifische Datencodierung ist von der hier offenbarten Technologie erforderlich. In einer Ausführungsform werden, wenn ein Block einem Löschvorgang unterzogen wird, alle Speicherzellen in den Datenzustand S0, den gelöschten Zustand, gebracht.
  • Im Allgemeinen wird die ausgewählte Wortleitung während der Verifizierungsvorgänge und Lesevorgänge mit einer Spannung (ein Beispiel eines Referenzsignals) verbunden, deren Pegel für jeden Lesevorgang (siehe z. B. Lesereferenzspannungen Vr1, Vr2, Vr3, Vr4, Vr5, Vr6 und Vr7 von 5) oder Verifizierungsvorgang (siehe z. B. Verifizierungsreferenzspannungen Ev, Vv1, Vv2, Vv3, Vv4, Vv5, Vv6 und Vv7 von 5) spezifiziert ist, um zu bestimmen, ob eine Schwellenspannung der betreffenden Speicherzelle einen derartigen Pegel erreicht hat. Nach Anlegen der Wortleitungsspannung wird der Leitungsstrom der Speicherzelle gemessen, um zu bestimmen, ob die Speicherzelle in Reaktion auf die an die Wortleitung angelegte Spannung eingeschaltet ist (Strom leitet). Wenn der Leitungsstrom gemäß Messungen größer als ein bestimmter Wert ist, dann wird angenommen, dass die Speicherzelle eingeschaltet ist und die an die Wortleitung angelegte Spannung größer als die Schwellenspannung der Speicherzelle ist. Falls der Leitungsstrom gemäß Messungen nicht größer als der bestimmte Wert ist, dann wird angenommen, dass die Speicherzelle nicht eingeschaltet ist und die an die Wortleitung angelegte Spannung nicht größer als die Schwellenspannung der Speicherzelle ist. Während eines Lese- oder Verifizierungsprozesses werden die nicht ausgewählten Speicherzellen mit einer oder mehreren Lesedurchgangsspannungen (die auch als Bypass-Spannungen bezeichnet werden) an ihren Steuer-Gates versehen, sodass diese Speicherzellen als Pass-Gates fungieren (z. B. Strom leiten ungeachtet dessen, ob sie programmiert oder gelöscht sind).
  • Es gibt viele Wege, um den Leitungsstrom einer Speicherzelle während eines Lese- oder Verifizierungsvorgangs zu messen. In einem Beispiel wird der Leitungsstrom einer Speicherzelle durch die Rate gemessen, mit der sie einen dedizierten Kondensator in dem Leseverstärker entlädt oder lädt. In einem anderen Beispiel ermöglicht der Leitungsstrom der ausgewählten Speicherzelle der NAND-Kette, welche die Speicherzelle einschließt (bzw. ermöglicht dieser nicht), eine entsprechende Bitleitung zu entladen. Die Spannung auf der Bitleitung wird nach einer gewissen Zeit gemessen, um zu sehen, ob sie entladen wurde. Es ist zu beachten, dass die hierin beschriebene Technologie mit verschiedenen Verfahren verwendet werden kann, die nach dem Stand der Technik zum Verifizieren/Lesen bekannt sind. Andere Lese- und Verifizierungstechniken, die nach dem Stand der Technik bekannt sind, können ebenfalls verwendet werden.
  • 7 ist ein Flussdiagramm, das eine Ausführungsform eines Prozesses zum Programmieren beschreibt, der von einem Speicherchip 200 und/oder einer integrierten Anordnung 207 ausgeführt wird. In einer beispielhaften Ausführungsform wird der Prozess von 7 auf dem Speicherchip 200 unter Verwendung der oben erläuterten Steuerschaltung (Systemsteuerlogik 260, Spaltensteuerschaltung 210, Zeilensteuerschaltung 220) durchgeführt. In einer Ausführungsform wird der Prozess von 7 durch die integrierte Speicherbaugruppe 207 unter Verwendung der Steuerschaltung (Systemsteuerlogik 260, Spaltensteuerschaltung 210, Zeilensteuerschaltung 220) des Steuerchips 211 durchgeführt, um Speicherzellen auf dem Speicherchip 201 zu programmieren. Der Prozess schließt mehrere Schleifen ein, von denen jede eine Programmphase und eine Verifizierungsphase einschließt. Der Prozess von 7 wird durchgeführt, um die vollständige Sequenzprogrammierung sowie andere Programmierschemata einschließlich Mehrstufenprogrammierung zu implementieren. Wenn eine Mehrstufenprogrammierung implementiert wird, wird der Prozess von 7 verwendet, um jede/alle Stufen des Mehrstufenprogrammierprozesses zu implementieren.
  • Üblicherweise wird die Programmierspannung, die an die Steuer-Gates (über eine ausgewählte Datenwortleitung) während eines Programmiervorgangs angelegt wird, als eine Reihe von Programmierimpulsen (z. B. Spannungsimpulsen) angelegt. Zwischen Programmierimpulsen befindet sich ein Satz von Verifizierimpulsen (z. B. Spannungsimpulse), um eine Verifizierung durchzuführen. In vielen Implementierungen wird die Größe der Programmierimpulse mit jedem sukzessiven Impuls um eine vorbestimmte Schriftgröße erhöht. In Schritt 502 von 7 wird die Programmierspannung (Vpgm) auf die Startgröße (z. B. -12-20 V oder einen anderen geeigneten Pegel) initialisiert und ein Programmzähler PC, der durch die Zustandsmaschine 262 geführt wird, wird bei 1 initialisiert.
  • In einer Ausführungsform wird der Satz der ausgewählten zu programmierenden Speicherzellen (die hierin als die ausgewählten Speicherzellen bezeichnet werden) gleichzeitig programmiert und alle mit derselben Wortleitung (der ausgewählten Wortleitung) verbunden. Es wird wahrscheinlich andere Speicherzellen geben, die nicht zum Programmieren ausgewählt sind (nicht ausgewählte Speicherzellen), die ebenfalls mit der ausgewählten Wortleitung verbunden sind. Das heißt, die ausgewählte Wortleitung wird auch mit Speicherzellen verbunden, deren Programmierung eigentlich gehemmt werden soll. Wenn Speicherzellen ihren beabsichtigten Zieldatenzustand erreichen, werden sie außerdem in der weiteren Programmierung gehemmt. Bei NAND-Ketten (z. B. nicht ausgewählten NAND-Ketten), die Speicherzellen einschließen, die mit der ausgewählten Wortleitung verbunden sind und deren Programmierung gehemmt werden soll, werden ihre Kanäle verstärkt, um die Programmierung zu hemmen. Wenn ein Kanal eine verstärkte Spannung hat, ist die Spannungsdifferenz zwischen dem Kanal und der Wortleitung nicht groß genug, um eine Programmierung zu bewirken. Zur Unterstützung der Verstärkung lädt das Speichersystem bei Schritt 504 Kanäle von NAND-Ketten vor, die Speicherzellen einschließen, die mit der ausgewählten Wortleitung verbunden sind und deren Programmierung gehemmt werden soll. In Schritt 506 haben die NAND-Ketten, die Speicherzellen einschließen, die mit der ausgewählten Wortleitung verbunden sind und deren Programmierung gehemmt werden soll, verstärkte Kanäle, um die Programmierung zu hemmen. Solche NAND-Ketten werden hierin als „nicht ausgewählte NAND-Ketten“ bezeichnet. In einer Ausführungsform empfangen die nicht ausgewählten Datenwortleitungen eine oder mehrere Verstärkungsspannungen (z. B. -7-11 Volt), um Verstärkungsschemata durchzuführen. Eine Programmhemmspannung wird an die Bitleitungen angelegt, die mit der nicht ausgewählten NAND-Kette gekoppelt sind.
  • In Schritt 508 wird ein Programmimpuls (z. B. ein Spannungsimpuls) des Programmsignals Vpgm an die ausgewählte Wortleitung (die zur Programmierung ausgewählte Datenwortleitung) angelegt. Wenn eine Speicherzelle auf einer NAND-Kette programmiert werden soll, wird in einer Ausführungsform die entsprechende Bitleitung mit einer Programmaktivierspannung vorgespannt. Hierin wird eine solche NAND-Kette als „ausgewählte NAND-Kette“ bezeichnet. In Schritt 508 wird der Programmierimpuls gleichzeitig an alle Speicherzellen angelegt, die mit der ausgewählten Wortleitung verbunden sind, sodass alle Speicherzellen, die mit der ausgewählten Wortleitung verbunden sind, gleichzeitig programmiert werden (sofern ihre Programmierung nicht gehemmt ist). Das heißt, sie werden zur gleichen Zeit oder während überlappenden Zeiten (die beide als gleichzeitig betrachtet werden) programmiert. Auf diese Weise ändern alle Speicherzellen, die mit der ausgewählten Wortleitung verbunden sind, gleichzeitig ihre Vt, sofern ihre Programmierung nicht gehemmt ist.
  • In Schritt 510 werden Speicherzellen, die ihre Zielzustände erreicht haben, von der weiteren Programmierung ausgeschlossen. Schritt 510 kann das Durchführen einer Verifizierung auf einem oder mehreren Verifizierungsreferenzstufen einschließen. In einer Ausführungsform wird der Verifizierungsprozess durchgeführt, indem geprüft wird, ob die Schwellenspannungen der zur Programmierung ausgewählten Speicherzellen die geeignete Verifizierungsreferenzspannung erreicht haben.
  • In Schritt 510 kann eine Speicherzelle gesperrt werden, nachdem (durch einen Test der Vt) verifiziert wurde, dass die Speicherzelle ihren Zielzustand erreicht hat. Falls in Schritt 512 bestimmt wird, dass alle Speicherzellen ihre Zielschwellenspannungen erreicht haben (bestanden), ist der Programmierprozess abgeschlossen und erfolgreich, da alle gewählten Speicherzellen programmiert und auf ihre Zielzustände verifiziert wurden. In Schritt 514 wird ein Status von „BESTANDEN“ gemeldet. Wenn andernfalls in Schritt 512 bestimmt wird, dass nicht alle Speicherzellen ihre Zielschwellenspannungen erreicht haben (durchgefallen), fährt der Programmierprozess mit Schritt 516 fort.
  • In Schritt 516 zählt das System die Anzahl von Speicherzellen, die ihre jeweilige Ziel-Vt-Verteilung noch nicht erreicht haben. Das heißt, das System zählt die Anzahl von Speicherzellen, die bislang ihren Zielzustand nicht erreicht haben. Dieses Zählen kann von der Zustandsmaschine 262, der Speichersteuerung 120 oder einer anderen Logik ausgeführt werden. In einer Implementierung speichert jeder der Leseblöcke den Status (bestanden/durchgefallen) ihrer jeweiligen Zellen. In einer Ausführungsform gibt es einen Gesamtzählwert, der die Gesamtzahl der gegenwärtig programmierten Speicherzellen wiedergibt, die den letzten Verifizierungsschritt nicht bestanden haben. In einer anderen Ausführungsform werden separate Zählwerte für jeden Datenzustand ermittelt.
  • In Schritt 518 wird bestimmt, ob der Zählwert von Schritt 516 kleiner oder gleich einer vorgegebenen Grenze ist. In einer Ausführungsform ist die vorbestimmte Grenze die Anzahl von Bits, die durch Fehlerkorrekturcodes (ECC) während eines Leseprozesses für eine Seite (z. B. die Programmier- und Leseeinheit) von Speicherzellen korrigiert werden können. Wenn die Anzahl durchgefallener Speicherzellen kleiner oder gleich der vorbestimmten Grenze ist, kann der Programmierprozess beendet werden und in Schritt 514 wird der Status „BESTANDEN“ gemeldet. In dieser Situation können ausreichend Speicherzellen korrekt programmiert werden, sodass die wenigen verbleibenden Speicherzellen, die nicht vollständig programmiert worden sind, unter Verwendung von ECC während des Lesevorgangs korrigiert werden können. In einigen Ausführungsformen ist die in Schritt 518 verwendete vorbestimmte Grenze kleiner als die Anzahl von Bits, die durch Fehlerkorrekturcodes (ECC) während eines Leseprozesses korrigiert werden können, um zukünftige/zusätzliche Fehler zu berücksichtigen. Wenn weniger als alle Speicherzellen für eine Seite programmiert werden oder ein Zählwert für nur einen Datenzustand (oder weniger als alle Zustände) verglichen wird, kann die vorbestimmte Grenze ein Anteil (oder ein anderer) der Anzahl von Bits sein, die durch ECC während eines Leseprozesses für die Seite von Speicherzellen korrigiert werden können. In einigen Ausführungsformen ist die Grenze nicht vorbestimmt. Stattdessen ändert sie sich basierend auf der Anzahl der bereits gezählten Fehler für die Seite, der Anzahl der durchgeführten Programmier-/Löschzyklen oder anderer Kriterien.
  • Wenn die Anzahl durchgefallener Speicherzellen nicht kleiner als die vorbestimmte Grenze ist, dann fährt der Programmierprozess mit Schritt 520 fort und der Programmzähler PC wird gegen den Programmgrenzwert (PL) überprüft. Beispiele für Programmgrenzwerte schließen 1, 12, 16, 20 und 30 ein; jedoch können andere Werte verwendet werden. Wenn der Programmzähler PC nicht kleiner als der Programmgrenzwert PL ist, dann wird der Programmprozess als durchgefallen betrachtet und der Status „DURCHGEFALLEN“ wird in Schritt 524 gemeldet. Wenn der Programmzähler PC kleiner als der Programmgrenzwert PL ist, dann fährt der Prozess mit Schritt 522 fort, während der Programmzähler PC um 1 erhöht wird und die Programmierspannung Vpgm auf die nächste Größe erhöht wird. Zum Beispiel hat der nächste Impuls eine Größe, die um eine Schrittgröße (z. B. eine Schrittgröße von 0,1 bis 1,0 Volt) größer als der vorherige Impuls ist. Nach Schritt 522 kehrt der Prozess zu Schritt 504 zurück und ein weiterer Programmierimpuls wird an der ausgewählten Wortleitung angelegt, sodass eine weitere Iteration (Schritte 504-522) des Programmierprozesses von 7 durchgeführt wird.
  • Da es möglich ist, dass Fehler beim Programmieren oder Lesen auftreten können und Fehler beim Speichern von Daten auftreten können (z. B. aufgrund von Driften von Elektronen, Datenhalteproblemen oder anderen Phänomenen), wird eine Fehlerkorrektur mit der Programmierung von Daten verwendet. Speichersysteme verwenden oft Error Correction Codes (ECC), um Daten vor einer Beschädigung zu schützen. Viele ECC-Codierungsschemata sind nach dem Stand der Technik gut bekannt. Diese herkömmlichen Fehlerkorrekturcodes sind besonders nützlich bei großen Speichern, einschließlich Flash-Speichern (und anderen nichtflüchtigen), aufgrund der beträchtlichen Auswirkung auf die Produktionsausbeute und die Zuverlässigkeit der Vorrichtung, die derartige Codierungsschemata bereitstellen können, wenn sie Vorrichtungen, die einige nicht programmierbare oder defekte Zellen aufweisen, dahingehend ändern, dass sie nutzbar werden. Natürlich besteht ein Kompromiss zwischen der Ertragseinsparung und den Kosten des Bereitstellens zusätzlicher Speicherzellen, um die Codebits zu speichern (d. h. die Code-„Rate“). Als solches sind einige ECC-Codes besser geeignet für Flash-Speichereinrichtungen als andere. Generell neigen ECC-Codes für Flash-Speichereinrichtungen dazu, höhere Code-Raten (d. h. ein niedrigeres Verhältnis von Codebits zu Datenbits) als die in Datenkommunikationsanwendungen verwendeten Codes (die Code-Raten von nur 1/2 haben können) aufzuweisen. Beispiele für gut bekannte ECC-Codes, die üblicherweise in Verbindung mit einer Flash-Speicherspeicherung verwendet werden, schließen Reed-Solomon-Codes, andere BCH-Codes, Hamming-Codes und dergleichen ein. Manchmal sind die in Verbindung mit Flash-Speicherspeicherung verwendeten Fehlerkorrekturcodes dahingehend „systematisch“, dass der Datenteil des letztendlichen Codeworts von den eigentlichen Daten, die codiert werden, unverändert ist, wobei die Code- oder Paritätsbits an die Datenbits angehängt sind, um das vollständige Codewort zu bilden.
  • Die spezifischen Parameter für einen bestimmten Fehlerkorrekturcode schließen die Art des Codes, die Größe des Blocks tatsächlicher Daten, von denen das Codewort abgeleitet wird, und die Gesamtlänge des Codeworts nach der Codierung ein. Zum Beispiel kann ein typischer BCH-Code, der auf einen Sektor von 512 Bytes (4096 Bits) von Daten angewendet wird, bis zu vier Fehlerbits korrigieren, wenn mindestens 60 ECC- oder Paritätsbits verwendet werden. Reed-Solomon-Codes sind eine Teilsatz von BCH-Codes und werden auch allgemein zur Fehlerkorrektur verwendet. Zum Beispiel kann ein typischer Reed-Solomon-Code bis zu vier Fehler in einem 512 Byte-Datensektor korrigieren, wobei etwa 72 ECC-Bits verwendet werden. Im Kontext von Flash-Speichern bietet Fehlerkorrektur-Codierung eine wesentliche Verbesserung bei der Produktionsausbeute sowie bei der Zuverlässigkeit des Flash-Speichers im Zeitverlauf.
  • In einigen Ausführungsformen empfängt die Speichersteuerung 120 Hostdaten (auch als Benutzerdaten oder Daten von einer Entität außerhalb des Speichersystems bezeichnet), auch als Informationsbits bezeichnet, die in der nichtflüchtigen Speicherstruktur 202 gespeichert werden sollen. Die Informationsbits werden durch die Matrix i=[1 0] dargestellt (es ist zu beachten, dass zwei Bits nur als Beispiel verwendet werden und viele Ausführungsformen Codeworte aufweisen, die länger als zwei Bits sind). Ein Fehlerkorrektur-Codierungsprozess (wie einer der vor- bzw. nachstehend erwähnten Prozesse) wird von der ECC-Maschine 158 der Speichersteuerung 120 implementiert, bei dem Paritätsbits zu den Informationsbits hinzugefügt werden, um Daten bereitzustellen, die durch die Matrix oder das Codewort v=[1 0 1 0] dargestellt sind, was anzeigt, dass zwei Paritätsbits an die Datenbits angehängt worden sind. Andere Techniken können verwendet werden, die Eingangsdaten auf komplexere Weise zu Ausgangsdaten zuweisen. Beispielsweise können Paritätsprüfcodes niedriger Dichte (LDPC), die auch als Gallager-Codes bezeichnet werden, verwendet werden. Mehr Details über LDPC-Codes sind in R. G. Gallager, „Low-density parity-check codes,“ IRE Trans. Inform. Theory, Band IT 8, S. 21 28, Januar 1962; und D. MacKay, Information Theory, Inference and Learning Algorithms, Cambridge University Press 2003, Kapitel 47, zu finden. In der Praxis werden derartige LDPC-Codes üblicherweise auf mehrere Seiten (z. B. von ECC-Maschine 158) angewendet, die über eine Anzahl von Speicherzellen codiert sind, aber sie müssen nicht über mehrere Seiten angewendet werden. Die Datenbits können auf eine logische Seite abgebildet und in der Speicherstruktur 202 gespeichert werden, indem eine oder mehrere Speicherzellen auf einen oder mehrere Programmierzustände programmiert werden, der v entspricht.
  • In einer Ausführungsform dient die Programmierung dazu, die Schwellenspannung der Speicherzellen auf einen der programmierten Datenzustände S1-S7 anzuheben. Das Löschen dient dazu, die Schwellenspannung der Speicherzellen auf den Datenlöschzustand S0 zu senken.
  • Eine Technik zum Löschen von Speicherzellen in einigen Speichereinrichtungen ist das Vorspannen eines p-Well-Substrats (oder andere Arten von Substraten) auf eine Hochspannung, um einen NAND-Kanal aufzuladen. Eine Löschfreigabespannung (z. B. Niederspannung) wird an die Steuer-Gates von Speicherzellen angelegt, während sich der NAND-Kanal auf einer Hochspannung befindet, um die nichtflüchtigen Speicherungselemente (Speicherzellen) zu löschen. Dies wird hierin als p-Well-Löschvorgang bezeichnet.
  • Ein anderer Ansatz zum Löschen von Speicherzellen besteht darin, Gate-induzierten Drain-Leckstrom (GIDL-Strom) zu erzeugen, um den NAND-Kettenkanal aufzuladen. An Steuer-Gates der Speicherzellen wird eine Löschfreigabespannung angelegt, während das NAND-Ketten-Kanal-Potential aufrechterhalten wird, um die Speicherzellen zu löschen. Dies wird hierin als GIDL-Löschvorgang bezeichnet. Sowohl p-Well-Löschvorgang als auch GIDL-Löschvorgang können verwendet werden, um die Schwellenspannung (Vt) von Speicherzellen zu senken.
  • In einer Ausführungsform wird der GIDL-Strom durch Bewirken einer Drain-zu-Gate-Spannung an einem Auswahltransistor (z. B. SGD und/oder SGS) erzeugt. Eine Transistor-Drainzu-Gate-Spannung, die einen GIDL-Strom erzeugt, wird hierin als eine GIDL-Spannung bezeichnet. Der GIDL-Strom kann entstehen, wenn die Drain-Spannung des Auswahltransistors deutlich höher ist als die Steuer-Gate-Spannung des Auswahltransistors. Der GIDL-Strom ist ein Ergebnis der Trägererzeugung, d. h. der Elektronenloch-Paarerzeugung aufgrund von Band-zu-Band-Tunneln und/oder fallen unterstützter Erzeugung. In einer Ausführungsform kann der GIDL-Strom dazu führen, dass eine Art von Trägern, z. B. Löcher, sich vorwiegend in den NAND-Kanal bewegen, wodurch das Potential des Kanals angehoben wird. Die anderen Arten von Trägern, z. B. Elektronen, werden aus dem Kanal in Richtung einer Bitleitung oder in Richtung einer Sourceleitung durch ein elektrisches Feld extrahiert. Während des Löschens können die Löcher vom Kanal zu einem Ladungsspeicherungsbereich von Speicherzellen durchtunneln und dort mit Elektronen rekombinieren, um die Schwellenspannung der Speicherzellen zu senken.
  • Der GIDL-Strom kann an jedem Ende der NAND-Kette erzeugt werden. Eine erste GIDL-Spannung kann zwischen zwei Anschlüssen eines Auswahltransistors (z. B. des drainseitigen Auswahltransistors) erzeugt werden, der mit einer Bitleitung verbunden ist, um einen ersten GIDL-Strom zu erzeugen. Eine zweite GIDL-Spannung kann zwischen zwei Anschlüssen eines Auswahltransistors (z. B. des sourceseitigen Auswahltransistors) erzeugt werden, der mit einer Sourceleitung verbunden ist, um einen zweiten GIDL-Strom zu erzeugen. Das Löschen basierend auf dem GIDL-Strom an nur einem Ende der NAND-Kette wird als ein einseitiger GIDL-Löschvorgang bezeichnet. Das Löschen basierend auf dem GIDL-Strom an beiden Enden der NAND-Kette wird als ein zweiseitiger GIDL-Löschvorgang bezeichnet.
  • Ein nichtflüchtiges Speichersystem ist offenbart, das mehrere Triple-Wells verwendet und die Wortleitungsschalttransistoren in Triple-Wells gruppiert, basierend auf Wortleitungsspannungsbereichen, die während des Programmierprozesses verwendet werden. In einer Ausführungsform sind für einen gegebenen Block die mit Datenwortleitungen verbundenen Wortleitungsschalttransistoren in einem ersten Triple-Well positioniert und die mit Auswahl- und Dummy-Wortleitungen verbundenen Wortleitungsschalttransistoren in einem zweiten Triple-Well. Diese Struktur ermöglicht es, die Triple-Wells unterschiedlich vorzuspannen, sodass die Spannungsdifferenz über den Wortleitungsschalttransistoren reduziert wird. Da die Wortleitungsschalttransistoren nur eine geringere Spannungsdifferenz als frühere Systeme bewältigen müssen, können die Wortleitungsschalttransistoren kleiner ausgeführt werden, wodurch die für die Wortleitungsschalttransistoren verwendete Fläche auf dem Halbleiterchip reduziert wird.
  • Wie vorstehend mit Bezug auf 7 erläutert, weist eine Ausführungsform zum Programmieren das Anlegen einer Hochspannung auf eine ausgewählte Datenwortleitung auf, mit anderen Spannungen auf nicht ausgewählten Wortleitungen und geeigneten Spannungen auf Auswahlleitungen (z. B. SGD, SGS). Die nicht ausgewählten Datenwortleitungen sind die Datenwortleitungen, die von der ausgewählten Wortleitung abweichen. Eine Technik zum Anlegen der erforderlichen Spannungen an die Wortleitungen ist die Verwendung von Wortleitungsschalttransistoren. Bei einigen Techniken muss das Gate des Wortleitungsschalttransistors mindestens auf die Programmspannung plus die Schwellenspannung des Transistors vorgespannt werden, um den Wortleitungsschalttransistor einzuschalten und die Programmspannung auf die Wortleitung zu übertragen. Daher kann in einigen Fällen die an das Gate des Wortleitungsschalttransistors angelegte Spannung ~29 Volt betragen. In der Vergangenheit wurden alle Wortleitungsschalttransistoren in einem gemeinsamen Triple-Well implementiert, der in der Regel während der Programmierung auf 0 Volt vorgespannt ist. Daher müssen die Wortleitungsschalttransistoren groß genug sein, um die Spannung von 29 Volt über dem Gate zum Kanal zuverlässig zu absorbieren.
  • Die größte Spannung am Wortleitungstransistor tritt während der Programmierung auf. Um die Spannung an den Wortleitungsschalttransistoren zu reduzieren, können mehrere Triple-Wells verwendet und die Wortleitungsschalttransistoren in Triple-Wells gruppiert werden, basierend auf den während des Programmierprozesses verwendeten Wortleitungsspannungsbereichen. In einer Ausführungsform sind für einen gegebenen Block die mit Datenwortleitungen verbundenen Wortleitungsschalttransistoren in einem ersten Triple-Well positioniert und die mit Auswahl- und Dummy-Wortleitungen verbundenen Wortleitungsschalttransistoren in einem zweiten Triple-Well. Diese Struktur ermöglicht es, die Triple-Wells unterschiedlich vorzuspannen, sodass die Spannungsdifferenz über den Wortleitungsschalttransistoren reduziert wird. Da die Wortleitungsschalttransistoren nur eine geringere Spannungsdifferenz als frühere Systeme bewältigen müssen, können die Wortleitungsschalttransistoren kleiner sein, wodurch die für die Wortleitungsschalttransistoren verwendete Fläche auf dem Halbleiterchip reduziert wird.
  • Im Allgemeinen wird die ausgewählte Wortleitung während der Verifizierungsvorgänge und Lesevorgänge mit einer Spannung (ein Beispiel eines Referenzsignals) verbunden, deren Pegel für jeden Lesevorgang (siehe z. B. Lesevergleichsebenen Vr1, Vr2, Vr3, Vr4, Vr5, Vr6 und Vr7 von 5) oder Verifizierungsvorgang (siehe z. B. Verifizierungszielebenen Vv1, Vv2, Vv3, Vv4, Vv5, Vv6 und Vv7 von 5) spezifiziert ist, um zu bestimmen, ob eine Schwellenspannung der betreffenden Speicherzelle einen derartigen Pegel erreicht hat. Nach Anlegen der Wortleitungsspannung wird der Leitungsstrom der Speicherzelle gemessen, um zu bestimmen, ob die Speicherzelle in Reaktion auf die an die Wortleitung angelegte Spannung eingeschaltet ist (Strom leitet). Wenn der Leitungsstrom gemäß Messungen größer als ein bestimmter Wert ist, dann wird angenommen, dass die Speicherzelle eingeschaltet ist und die an die Wortleitung angelegte Spannung größer als die Schwellenspannung der Speicherzelle ist. Falls der Leitungsstrom gemäß Messungen nicht größer als der bestimmte Wert ist, dann wird angenommen, dass die Speicherzelle nicht eingeschaltet ist und die an die Wortleitung angelegte Spannung nicht größer als die Schwellenspannung der Speicherzelle ist. Während eines Lese- oder Verifizierungsprozesses werden die nicht ausgewählten Speicherzellen mit einer oder mehreren Lesedurchgangsspannungen an ihren Steuergates versorgt, so dass diese Speicherzellen als Durchgangs-Gate fungieren (z. B. Strom leiten ungeachtet dessen, ob sie programmiert oder gelöscht sind).
  • Es gibt viele Wege, um den Leitungsstrom einer Speicherzelle während eines Lese- oder Verifizierungsvorgangs zu messen. In einem Beispiel wird der Leitungsstrom einer Speicherzelle durch die Rate gemessen, mit der sie einen dedizierten Kondensator in dem Leseverstärker entlädt oder lädt. In einem anderen Beispiel ermöglicht der Leitungsstrom der ausgewählten Speicherzelle der NAND-Kette, welche die Speicherzelle einschließt (bzw. ermöglicht dieser nicht), eine entsprechende Bitleitung zu entladen. Die Spannung auf der Bitleitung wird nach einer gewissen Zeit gemessen, um zu sehen, ob sie entladen wurde. Es ist zu beachten, dass die hierin beschriebene Technologie mit verschiedenen Verfahren verwendet werden kann, die nach dem Stand der Technik zum Verifizieren/Lesen bekannt sind. Andere Lese- und Verifizierungstechniken, die nach dem Stand der Technik bekannt sind, können ebenfalls verwendet werden.
  • 8 ist ein schematisches Diagramm einer Ausführungsform einer Abtastverstärkerschaltung, die zum Messen des Leitungsstroms einer Speicherzelle während eines Lese- oder Verifizierungsvorgangs verwendet werden kann und die oben veranschaulichten Abtastverstärker 230 aufweisen kann. Wie nachstehend beschrieben, lädt die Schaltung von 8 einen Kondensator (oder eine andere Speicherungsvorrichtung) auf eine Vorladegröße vor, leitet den Kondensator über die Speicherzelle für die Dauer einer Abtastzeit ab und erfasst die Spannung am Kondensator nach der Abtastzeit. Die Abtastspannung gibt an, ob die Speicherzellen den abgetasteten Strom geleitet haben, was ein Hinweis darauf ist, ob die Schwellenspannung der Speicherzelle größer oder kleiner als die abgetastete Schwellenspannung ist. Wenn die Schwellenspannung der Speicherzelle größer ist als die zu prüfende Schwellenspannung, schließt die Speicherzelle während eines Verifizierungsvorgangs die Programmierung ab, wie es auf der Grundlage der hierin beschriebenen Prozesse angemessen ist. 8 zeigt den Transistor 800, der mit der Bitleitung und dem Transistor 802 verbunden ist. Der Transistor 800 empfängt das Signal BLS an seinem Gate und wird verwendet, um die Bitleitung zu verbinden oder zu isolieren. Der Transistor 802 empfängt das Signal BLC an seinem Gate und wird als Spannungsklemme verwendet. Die Gate-Spannung BLC wird auf eine konstante Spannung vorgespannt, die der gewünschten Bitleitungsspannung plus der Schwellenspannung des Transistors 802 entspricht. Die Funktion des Transistors 802 besteht daher darin, während einer konstanten Bitleitungsspannung während eines Abtastvorgangs (während dem Lesen oder Verifizieren) aufrechtzuerhalten, auch wenn sich der Strom durch die Bitleitung ändert.
  • Der Transistor 802 ist mit den Transistoren 804, 806 und 808 verbunden. Der Transistor 806 ist mit dem Kondensator 816 an dem mit SEN markierten Knotenpunkt verbunden. Der Transistor 806 dient dazu, den Kondensator 816 mit der Bitleitung 800 zu verbinden und den Kondensator 816 von der Bitleitung 800 zu trennen, sodass der Kondensator 816 selektiv mit der Bitleitung 800 verbunden ist. Mit anderen Worten regelt der Transistor 806 die Abtastzeit. Das heißt, wenn der Transistor 806 eingeschaltet ist, kann sich der Kondensator 816 über die Bitleitung entladen, und wenn der Transistor 806 ausgeschaltet ist, kann sich der Kondensator 816 nicht über die Bitleitung entladen. Um die Abtastzeit zu steuern, steuert die Zustandsmaschine 812 (optional in Richtung der Steuerung 822) den Transistor 806.
  • Der Knoten, an dem der Transistor 806 mit dem Kondensator 816 verbunden ist, ist auch mit dem Transistor 810 und dem Transistor 814 verbunden. Der Transistor 810 ist mit den Transistoren 808, 812 und 818 verbunden. Der Transistor 818 ist auch mit dem Transistor 820 verbunden. Die Transistoren 818 und 820 sind PMOS-Transistoren, während die anderen Transistoren von 8 NMOS-Transistoren sind. Die Transistoren 810, 818 und 820 stellen einen Vorladepfad zum Kondensator 816 bereit. An die Quelle des Transistors 820 wird eine Spannung (z. B. Vdd oder eine andere Spannung) angelegt. Durch entsprechendes Vorspannen der Transistoren 810, 818 und 820 kann die an der Quelle des Transistors 820 angelegte Spannung zum Vorladen des Kondensators 816 verwendet werden. Nach dem Vorladen kann sich der Kondensator 816 über die Bitleitung über den Transistor 806 entladen (vorausgesetzt, die Transistoren 800 und 802 sind leitend).
  • Die Schaltung von 8 schließt Wechselrichter 830 und 832 ein, die eine Verriegelungsschaltung bilden. Der Ausgang des Wechselrichters 832 ist mit dem Eingang des Wechselrichters 830 verbunden, und der Ausgang des Wechselrichters 830 ist mit dem Eingang des Wechselrichters 832 sowie mit den Transistoren 820 und 822 verbunden. Der Eingang des Wechselrichters 832 empfängt Vdd und die beiden Wechselrichter 830, 832 fungieren als Verriegelung zum Speichern von Vdd. Der Eingang des Wechselrichters 832 kann auch mit einem anderen Wert verbunden sein. Die Transistoren 812 und 822 stellen einen Pfad zum Übermitteln der von den Wechselrichtern 830 und 832 gespeicherten Daten an den Transistor 814 bereit. Der Transistor 822 empfängt das Signal FCO an seinem Gate. Der Transistor 812 empfängt das Signal STRO an seinem Gate. Durch Anheben oder Absenken von FCO und STRO wird ein Pfad zwischen den Wechselrichtern 830, 832 und dem Transistor (Abtastschalter) 814 bereitgestellt oder unterbrochen. Das Gate des Transistors 814 ist mit dem Kondensator 816, dem Transistor 806 und dem Transistor 810 an dem mit SEN markierten Knotenpunkt verbunden. Das andere Ende des Kondensators 816 ist mit dem Signal CLK verbunden.
  • Wie vorstehend erläutert, wird der Kondensator 816 über die Transistoren 810, 818 und 820 vorgeladen. Dadurch wird die Spannung am SEN-Knoten auf einen Vorladespannungspegel (Vpre) angehoben. Wenn der Transistor 806 eingeschaltet wird, kann der Kondensator 816 seine Ladung über die Bitleitung und die ausgewählte Speicherzelle entladen, wenn die Schwellenspannung der Speicherzelle unterhalb des Spannungspegels liegt, auf den geprüft wird. Wenn sich der Kondensator 816 entladen kann, dann sinkt die Spannung am Kondensator (am SEN-Knoten).
  • Die Vorladespannung (Vpre) am SEN-Knoten ist größer als die Schwellenspannung des Transistors 814; daher ist der Transistor 814 vor der Abtastzeit eingeschaltet (leitend). Da der Transistor 814 während der Abtastzeit eingeschaltet ist, sollte der Transistor 812 ausgeschaltet sein. Wenn sich der Kondensator während der Abtastzeit nicht entlädt, bleibt die Spannung am SEN-Knoten über der Schwellenspannung des Transistors 814 und die Ladung an den Wechselrichtern 830, 832 kann in das CLK-Signal abgeleitet werden, wenn STRO den Transistor 812 einschaltet. Wenn sich der Kondensator während der Abtastzeit ausreichend entlädt, sinkt die Spannung am SEN-Knoten unter die Schwellenspannung des Transistors 814; dadurch wird der Transistor 914 ausgeschaltet und die in den Wechselrichtern 830, 832 gespeicherten Daten (z. B. Vdd) werden nicht mehr über CLK abgeleitet. So wird die Prüfung, ob die Dioden 830, 832 ihre Ladung aufrechterhalten oder sich entladen, das Ergebnis des Verifizierungsprozesses angeben. In einer Ausführungsform kann das Ergebnis am Knoten A über den Transistor 834 (Data Out) ausgelesen werden, indem das Gate-Signal NCO des Transistors 834 eingeschaltet wird.
  • Der Vorladepegel des Kondensators 816 (und somit die Vorladespannung am Knoten SEN) wird durch den Strom begrenzt, der durch den Transistor 810 fließt. Der Strom, der durch den Transistor 810 fließt, wird durch die Gate-Spannung H00 begrenzt. Somit ist die Vorladespannung am Knoten SEN begrenzt durch die Spannung H00 weniger die Schwellenspannung des Transistors 810. Mit dieser Anordnung kann das System die Vorladespannung am Knoten SEN durch die Regelung H00 regulieren. Eine größere Spannung an H00 führt beim Vorladen zu einer größeren Spannung am SEN-Knoten. Eine geringere Spannung an H00 führt beim Vorladen zu einer geringeren Spannung am SEN-Knoten.
  • Wenn das System einen Lese- oder Verifizierungsvorgang durchführt (beides sind Abtastvorgänge), kann die am Steuer-Gate der Zelle angelegte Spannung veranlassen, dass der Kanal (der mit der Bitleitung verbunden ist) der Zelle leitet. In diesem Fall wird ein Kondensator durch den Kanal entladen, wobei die Spannung beim Entladen sinkt.
  • Im Allgemeinen wird die ausgewählte Wortleitung während der Verifizierungsvorgänge und Lesevorgänge mit einer Spannung (ein Beispiel eines Referenzsignals) verbunden, deren Pegel für jeden Lesevorgang (siehe z. B. Lesevergleichsebenen Vr1, Vr2, Vr3, Vr4, Vr5, Vr6 und Vr7 von 5) oder Verifizierungsvorgang (siehe z. B. Verifizierungszielebenen Vv1, Vv2, Vv3, Vv4, Vv5, Vv6 und Vv7 von 5) spezifiziert ist, um zu bestimmen, ob eine Schwellenspannung der betreffenden Speicherzelle einen derartigen Pegel erreicht hat. Nach Anlegen der Wortleitungsspannung wird der Leitungsstrom der Speicherzelle gemessen, um zu bestimmen, ob die Speicherzelle in Reaktion auf die an die Wortleitung angelegte Spannung eingeschaltet ist (Strom leitet). Wenn der Leitungsstrom gemäß Messungen größer als ein bestimmter Wert ist, dann wird angenommen, dass die Speicherzelle eingeschaltet ist und die an die Wortleitung angelegte Spannung größer als die Schwellenspannung der Speicherzelle ist. Falls der Leitungsstrom gemäß Messungen nicht größer als der bestimmte Wert ist, dann wird angenommen, dass die Speicherzelle nicht eingeschaltet ist und die an die Wortleitung angelegte Spannung nicht größer als die Schwellenspannung der Speicherzelle ist. Während eines Lese- oder Verifizierungsprozesses werden die nicht ausgewählten Speicherzellen mit einer oder mehreren Lesedurchgangsspannungen an ihren Steuergates versorgt, so dass diese Speicherzellen als Durchgangs-Gate fungieren (z. B. Strom leiten ungeachtet dessen, ob sie programmiert oder gelöscht sind).
  • Es gibt viele Wege, um den Leitungsstrom einer Speicherzelle während eines Lese- oder Verifizierungsvorgangs zu messen. In einem Beispiel wird der Leitungsstrom einer Speicherzelle durch die Rate gemessen, mit der sie einen dedizierten Kondensator in dem Leseverstärker entlädt oder lädt. In einem anderen Beispiel ermöglicht der Leitungsstrom der ausgewählten Speicherzelle der NAND-Kette, welche die Speicherzelle einschließt (bzw. ermöglicht dieser nicht), eine entsprechende Bitleitung zu entladen. Die Spannung auf der Bitleitung wird nach einer gewissen Zeit gemessen, um zu sehen, ob sie entladen wurde. Es ist zu beachten, dass die hierin beschriebene Technologie mit verschiedenen Verfahren verwendet werden kann, die nach dem Stand der Technik zum Verifizieren/Lesen bekannt sind. Andere Lese- und Verifizierungstechniken, die nach dem Stand der Technik bekannt sind, können ebenfalls verwendet werden.
  • 9 stellt ein Beispiel für eine Temperaturerfassungsschaltung 915 dar, die in dem Speichersystem 100 von 1 verwendet werden kann. In diesem Beispiel speichert die Temperaturerfassungsschaltung 915 einen Temperaturcode im Speicherbereich 913. Die Schaltung schließt pMOSFETs 931a, 931b und 934, Bipolartransistoren 933a und 933b und Widerstände R1, R2 und R3 ein. I1, I2 und I3 bezeichnen Ströme. Voutput ist eine temperaturbasierte Ausgangsspannung, die einem Analog-Digital-Wandler (ADC) 929 bereitgestellt wird. Vbg ist eine temperaturunabhängige Spannung. Eine Spannungspegel-Erzeugungsschaltung 935 verwendet Vbg, um eine Reihe von Spannungspegeln einzustellen. Zum Beispiel kann eine Referenzspannung durch eine Widerstandsteilerschaltung in mehrere Pegel unterteilt werden.
  • Der ADC vergleicht Voutput mit den Spannungspegeln und wählt die nächstliegende Übereinstimmung unter den Spannungspegeln aus, wobei er einen entsprechenden digitalen Wert (VTemp) an den Speicherbereich 913 ausgibt. Dies sind Daten, die eine Temperatur der Speichervorrichtung angeben.
  • Vbg wird durch Addieren der Basis-Emitter-Spannung (Vbe) über dem Transistor 931b und dem Spannungsabfall über dem Widerstand R2 erhalten. Der Bipolartransistor 933a hat eine größere Fläche (um einen Faktor N) als der Transistor 933b. Die PMOS-Transistoren 931a und 931b sind gleich groß und in einer Stromspiegelkonfiguration angeordnet, sodass die Ströme I1 und I2 im Wesentlichen gleich sind. Man hat Vbg=Vbe+R2×I2 und I1=Ve/R1, sodass I2=Ve/R1. Als Ergebnis ist Vbg=Vbe+R2xkT In(N)/R1xq, wobei T die Temperatur, k die Boltzmann-Konstante und q eine Einheit der elektrischen Ladung ist. Die Source des Transistors 934 ist mit einer Versorgungsspannung Vdd verbunden und der Knoten zwischen dem Drain des Transistors und dem Widerstand R3 ist die Ausgangsspannung, Voutput. Das Gate des Transistors 934 ist mit dem gleichen Anschluss verbunden wie die Gates der Transistoren 931a und 931 b und der Strom durch den Transistor 934 spiegelt den Strom durch die Transistoren 931a und 931 b wieder.
  • Der im Speicherbereich 912 gespeicherte VTemp-Wert ist ein digitaler Wert, der hierin als digitaler Temperaturcode oder „TEMPCODE“ bezeichnet wird. In einer Ausführungsform ist der TEMPCODE eine binäre Zeichenfolge. In dem Speicherbereich können ein oder mehrere TEMPCODE-Werte gespeichert werden. Wenn ein Lese-, Verifizierungs-, Programm- oder Löschvorgang durchgeführt werden soll, kann die vor dem Lese-/Verifizierungs-/Programm-/Löschvorgang erfasste Temperatur den „aktuellen Temperaturwert“ des Systems aufweisen, während die zuvor angewendeten TEMPCODE-Werte „historische Temperaturwerte“ aufweisen.
  • Um temperaturabhängige Schwankungen in den Speicherzellen auszugleichen, kann die Temperaturkompensation während der Lese- oder Verifizierungsabtastung erfolgen, wie zum Beispiel zu Beginn eines Lese- oder Programmverifizierungsvorgangs. Die Temperaturkompensation kann auch erfolgen, um Parameter anzupassen, die für Programmier- oder Löschvorgänge verwendet werden. In Ausführungsformen wird die Temperatur bestimmt und es können verschiedene Betriebsparameter eingestellt werden, wie die Source-Spannung der Zelle (VCELSRC - angelegt an die Source-Leitung SL (gezeigt in 4E)), die Spannung (VSL) einer Zellen-Bitleitung (BL), eine Zellen-Steuer-Gate-Spannung (VCG, wobei VCGRV die Lese-/Verifizierspannung des Steuer-Gates ist), die Länge der Abtastzeit, der Abtaststrom und jeder andere Lese-/Verifizierungs-/ Programmier-/Löschparameter.
  • Bei Designs nach dem Stand der Technik kann jeder Lese-/Verifizierungs-/Programmier-/Löschparameter basierend auf einer Änderung zwischen aufeinanderfolgenden Messungen der Temperatur während der aufeinanderfolgenden Lese-/Verifizierungs-/Programmier-/Löschvorgänge kompensiert werden. Eine beliebige Anzahl von Parametern, die bei solchen Vorgängen verwendet werden, kann verändert werden (höher oder niedriger, länger oder kürzer), um Temperaturschwankungen zwischen aufeinanderfolgenden Vorgängen zu kompensieren.
  • In verschiedenen Ausführungsformen nutzt das Speichersystem 100 eine „digitale“ Temperaturkompensation, wobei die Temperaturkompensation auf dem TEMPCODE-Wert basiert. Durch digitale Berechnungen wird bestimmt, welcher quantisierte Spannungspegel oder welche Zeitdauer für verschiedene Parameter verwendet werden soll. In einigen Ausführungsformen ist die Auflösung des Spannungspegels relativ groß. Zusätzlich kann jeder Parameter bei einer oder mehreren unterschiedlichen Temperaturänderungen angepasst werden, aber in bestimmten Fällen kann der Änderungspunkt der Temperaturkompensation für verschiedene Parameter konvergieren, was dazu führt, dass sich mehrere Parameter gleichzeitig ändern. In einigen Fällen ist eine Anzahl von Graden (Celsius) an Temperaturänderung erforderlich, um die Zielspannung eines Parameters zu erhöhen oder zu verringern. Dies liegt unter anderem daran, dass die digitale Natur der Kompensation und die Auflösung der Spannungspegel von der Auflösung des Digital-Analog-Wandlers abhängen.
  • 10A veranschaulicht einen Vergleich einer Einstellung des VCELSRC bezogen auf eine Änderung der gemessenen Temperatur. In der Figur ist die Referenztemperatur 85 °C, wobei keine Kompensation bereitgestellt wird. In einer Ausführungsform, in der VCELSRC eine DAC-Auflösung von 12,5 mV aufweist, ist der Betrag der Temperaturkompensation immer ein Vielfaches von 12,5 mV. Somit sind bei verschiedenen Temperaturen diskrete Sprünge von 12,5 mV zu beobachten. Andere Auflösungen von DACs sind möglich und innerhalb des Schutzumfangs der vorliegenden Technologie.
  • 10B veranschaulicht eine Situation, wobei mehrere Lese-/Verifizierungs-/Programmier-/Löschparameter basierend auf einer Temperaturänderung angepasst werden können, um eine Lese-/Verifizierungs-/Programmier-/Löschkompensation bereitzustellen. Wenn mehrere Parameter eingestellt werden, können Temperaturen vorhanden sein, bei denen mehrere Parameter bei genau der gleichen Temperatur umschalten; in diesem Fall kann die Kompensation der offensichtlichen Zellschwellenspannung (Vt) zu groß sein. In dem in 10B gezeigten Beispiel sind die Beiträge von verschiedenen temperaturkompensierten Parametern - - einschließlich der Bitleitungsklemmenspannung VBLC, der Zellen-Source-Spannung VCELSRC, der WL-Spannung VCGRV und der Abtastzeit SEN des Abtastverstärkers -- bezogen auf die Temperatur veranschaulicht. In diesem Beispiel erhöhen sich drei der vier veranschaulichten Parameter von 21 °C auf 22 °C, was zu einem großen Sprung führt, wenn alle kombiniert werden.
  • Bei einer Implementierung nach dem Stand der Technik wird bei jeder Änderung des TEMPCODE nur eine begrenzte Anzahl von Parametern angepasst. In diesen Fällen wird die in 10B veranschaulichte Auswirkung reduziert, aber auch die Wirksamkeit der Temperaturkompensation kann reduziert sein.
  • Jeder Parameter, der einer Temperaturkompensation unterliegt, kann in dem Speichersystem ausgewählt und aktiviert werden. Für jeden Parameter kann die erforderliche Differenz zwischen einer aktuell erfassten Temperatur und einer zuvor angelegten oder „historischen“ Temperatur definiert werden.
  • Es sollte beachtet werden, dass, obwohl Temperaturänderungen eine Temperaturkorrektur im System bewirken können, selbst wenn die Umgebungstemperatur stabil ist, ein Rauschen in den gemessenen Temperaturwerten eines Speichersystems vorhanden sein kann, das Schwankungen in der Größenordnung von beispielsweise 1 °C veranlasst. Wenn die Umgebungstemperatur nahe einer dieser kritischen Temperaturen liegt (bei der sich mehrere Parameter ändern können), kann das Rauschen der Temperaturkompensation unnötige Korrekturen veranlassen.
  • Ausführungsformen des Speichersystems nutzen eine TEMPCODE-Stabilisierungstechnik, um die Stabilität der auf der TEMPCODE-Messung basierenden Temperaturkompensation zu verbessern. Wie hierin erläutert, wird eine Glättungsfunktion auf gemessene TEMPCODE-Werte angelegt, um zu berechnen, ob ein neuer, gemessener TEMPCODE zum Bereitstellen der Temperaturkompensation im Speichersystem verwendet werden sollte.
  • 11 veranschaulicht ein Verfahren gemäß solchen Ausführungsformen. Das Verfahren von 11 kann für alle Lese-, Programmierverifizierungs-, Programmier- oder Löschvorgänge durchgeführt werden. Bei 1102 wird die Umgebungstemperatur unter Verwendung der Schaltung von zum Beispiel 9 gemessen und bei 1104 gespeichert. In dem Speicherbereich 913 können ein oder mehrere historische TEMPCODE-Werte gespeichert werden. Bei 1106 kann auf einen oder mehrere historische TEMPCODE-Werte zugegriffen werden. Bei 1108 werden der gemessene TEMPCODE und ein oder mehrere historische TEMPCODE-Werte verwendet, um einen neuen TEMPCODE unter Verwendung einer Glättungsfunktion zu berechnen. Wie nachstehend erläutert, kann die Glättungsfunktion ein digitaler Filter, eine Hysterese-induzierende Funktion oder eine Kombination aus beidem sein. Beispiele für verschiedene Glättungsfunktionen sind nachstehend aufgeführt. In Ausführungsformen kann die Glättungsfunktion dazu führen, dass der gemessene TEMPCODE (aus Schritt 1102) als neuer TEMPCODE verwendet wird oder dass der vorhandene gespeicherte TEMPCODE nicht geändert wird. Bei 1110, wenn nach dem Anlegen der Glättungsfunktion die Ausgabe der Berechnung ist, dass sich der bestehende TEMPCODE nicht ändern sollte, fährt das Verfahren mit Schritt 1112 fort und es erfolgt keine Temperaturkompensation. Wenn jedoch der TEMPCODE geändert wird, wird bei 1114 der neue TEMPCODE gespeichert und bei 1116 der neue TEMPCODE zur Temperaturkompensation genutzt und ein oder mehrere Parameter werden angepasst, wenn eine Temperaturkompensation erforderlich ist.
  • Eine Form der Glättungsfunktion weist eine Hysterese-induzierende Funktion auf, die eine Hysterese in die Anwendung des TEMPCODE zur Temperaturkompensation einführt. Bei dieser Funktion wird der gemessene TEMPCODE mit einem zuvor angelegten (historischen) TEMPCODE verglichen, und wenn sich der neue TEMPCODE ausreichend von dem historischen TEMPCODE geändert hat, wird der neue TEMPCODE als aktueller TEMPCODE gespeichert und für die Temperaturkompensation verwendet. In einem Gesichtspunkt kann die Hysterese-induzierende Funktion wie folgt gebildet werden: y [ n ] = { y [ n 1 ] i ƒ   | x [ n ] y [ n 1 ] | t   x [ n ] i ƒ   | x [ n ] y [ n 1 ] | > t
    Figure DE102022101950A1_0001
    wobei x[n] der neue, gemessene TEMPCODE ist, y[n] der aktuell anzuwendende TEMPCODE ist und y[n - 1] der zuvor verwendete historische TEMPCODE war.
  • In einer anderen Ausführungsform kann die Hysterese-induzierende Funktion durch Ersetzen von |x[n] - y[n - 1] | ≤ t und |x[n] - y[n - 2] | ≤ t für |x[n] - y[n - 1] | ≤ t in der obigen Gleichung erweitert werden. Diese Ausführungsform der Hysterese-induzierenden Funktion ändert die Berechnung des neuen TEMPCODE so, dass er im Vergleich zu den beiden zuvor angewandten historischen TEMPCODE-Werten eine größere Größe aufweist.
  • Eine zweite Form der Glättungsfunktion weist eine digitale Filterfunktion auf. In dieser Ausführungsform wird, wenn ein neuer TEMPCODE gemessen wird, der neue TEMPCODE mit einem historischen TEMPCODE in einer gewichteten Berechnung gemittelt. Dies ermöglicht es, jegliches Rauschen im gemessenen TEMPCODE zu glätten, bevor ein gemessener TEMPCODE als aktueller TEMPCODE angelegt wird. In einer Ausführungsform kann eine Glättungsfunktion für die digitale Filterung wie folgt gebildet werden: y [ n ] = a x [ n ] + b x [ n 1 ]
    Figure DE102022101950A1_0002
    wobei a + b = 1
    Figure DE102022101950A1_0003
  • In anderen Ausführungsformen können die Hysterese-induzierende Funktion und die digitalen Filterfunktionen kombiniert werden. In einer Ausführungsform kann eine kombinierte Glättungsfunktion wie folgt verallgemeinert werden: y [ n ] = { k = 0 M a k x [ n k ] + k = 1 M b k y [ n k ]   i ƒ   | x [ n ] y [ n 1 ] | t  andernfalls  x [ n ]
    Figure DE102022101950A1_0004
    wobei x die vergangenen M TEMPCODE-Erfassungen (einschließlich der aktuellen Erfassung) und y die vergangenen N TEMPCODE-Anwendungen einschließt.
  • Die Wirksamkeit der TEMPCODE-Glättung kann bezogen auf die 12 - 14 gesehen werden. Die 12A - 14A veranschaulichen drei Temperaturprofile und werden verwendet, um die Wirksamkeit verschiedener Ausführungsformen der Glättungsfunktion zu beschreiben. 12A veranschaulicht eine konstante Temperaturänderungsrampe, wobei die Temperatur gleichmäßig von 15 °C auf 40 °C ansteigt. 13A veranschaulicht eine stabile Temperatur mit zusätzlichem Rauschen bei einer stabilen Umgebungstemperatur von 21 °C. Gaußsches Rauschen (mit σ=0,5 °C) wird über das stabile Temperaturprofil gelegt. 14A veranschaulicht ein Umgebungstemperaturprofil mit großen diskreten Sprüngen.
  • 12B veranschaulicht die Wirksamkeit jeder der Hysterese-induzierenden Funktionen und der digitalen Filterfunktionen wie oben im Vergleich zu einem Temperaturkompensationsdesign nach dem Stand der Technik beschrieben, wenn das Speichersystem einem kontinuierlich ansteigenden Temperaturprofil unterliegt.
  • In 12B zeigt die „Ideale Vt“-Kurve die idealerweise benötigte Vt-Kompensation ohne die diskreten Sprünge, die durch die digitale Temperaturkompensation veranlasst werden, aber immer noch der Quantisierung durch die Digital-Analog-Wandler (für spannungsbasierte Parameter) oder die digitale Uhr (für zeitbasierte Parameter) unterliegen. Das Kompensationsdesign nach dem Stand der Technik zeigt das Verhalten eines Temperaturkompensationsdesigns nach dem Stand der Technik, ohne eine Glättungsfunktion zu verwenden und die Änderung des Vt-Schwellenwerts auf einen Parameter zu begrenzen. Die Variable y stellt den TEMPCODE dar, der vom Chip zur Kompensation verwendet wird, während x den tatsächlich gemessenen TEMPCODE darstellt. In den Designs nach dem Stand der Technik wird der gemessene TEMPCODE direkt angelegt, sodass y[n] = x[n] ist.
  • Die „Hysterese“-Darstellung veranschaulicht das Verhalten, wenn der TEMPCODE nur dann aktualisiert wird, wenn er mehr als einen Schwellenwert t=4 °C vom zuletzt angelegten TEMPCODE entfernt ist, sodass: y [ n ] = { y [ n 1 ] i ƒ   | x [ n ] y [ n 1 ] | 4 ° C x [ n ] andernfalls
    Figure DE102022101950A1_0005
  • Die „gewichtete“ Darstellung bringt eine digitale Filterung zur Anwendung, wobei der zuletzt erfasste TEMPCODE doppelt so stark gewichtet wird wie der neu erfasste TEMPCODE (d. h. a = 1/3 und b = 2/3): y [ n ] = 1 3 x [ n ] + 2 3 x [ n 1 ]
    Figure DE102022101950A1_0006
  • Anschließend wird das Ergebnis gerundet und angewendet. Sowohl die digitale Filterung als auch die Hysterese-induzierende Funktion folgen dem idealen Vt-Wert. Im Allgemeinen verhalten sich alle drei Verfahren ähnlich.
  • 13B veranschaulicht die Wirksamkeit einer Temperaturkompensation nach dem Stand der Technik, der Hysterese-induzierenden Funktion und der digitalen Filterfunktion, wenn sie einem stabilen Temperaturprofil mit Rauschen unterliegen. In diesem Beispiel wird die Umgebungstemperatur bei 21 °C stabil gehalten, und dann wird Gaußsches Rauschen (in diesem Fall mit σ von 0,5 °C) hinzugefügt. Das Design nach dem Stand der Technik zeigt Vt-Sprünge, wenn das Rauschen auftritt, was bewirkt, dass sich der TEMPCODE um 1 °C nach oben oder unten verschiebt. Wie erwähnt, würde dies bei einem relativ stabilen Temperaturprofil zu drastischen Temperaturkompensationsverschiebungen führen. Die Ausführungsformen der Hysterese-induzierenden Funktion und der Glättungsfunktion mit digitaler Filterung halten die Temperaturkompensation (basierend auf dem TEMPCODE) unter verrauschten Bedingungen relativ konstant.
  • 14B veranschaulicht die Wirksamkeit der oben beschriebenen Temperaturkompensation nach dem Stand der Technik, der Hysterese-induzierenden Funktion und der digitalen Filterfunktion, wenn das Speichersystem einem Temperaturprofil unterliegt, das relativ große Temperaturänderungen aufweist.
  • Der Hysteresealgorithmus macht möglicherweise keinen Sprung, wenn die Temperaturverschiebung gering ist (d. h. bei t=15 und 20). Aber wenn der Temperatursprung groß ist (d. h. bei t=40), kann dies sofort berücksichtigt werden. Der digitale Filteralgorithmus kann die Sprünge im Allgemeinen gut verfolgen, benötigt jedoch einige Zeit, um nach einer leichten Verzögerung (wie bei t=40) „aufzuholen“.
  • Die 12C bis 14C veranschaulichen die Wirksamkeit einer Glättungsfunktion, die eine Hysterese-induzierende Funktion und eine digitale Filterfunktion kombiniert. Aus den vorstehenden 12B - 14B ist zu erkennen, dass die Glättungsfunktion der digitalen Filterung gut funktioniert, um Rauschschwankungen zu kompensieren und große Sprünge in den TEMPCODE-Werten zu vermeiden, wenn die Temperatur ansteigt.
  • In der in den 12C - 14C wird bei der Glättungsfunktion zunächst ein gewichteter Mittelwert angelegt, es sei denn, die aktuelle Temperatur liegt 4 °C oder mehr vom vorhergehenden TEMPCODE entfernt, bei dem eine Hysterese-induzierende Funktion angelegt wird: y [ n ] = { 1 3 x [ n ] + 2 3 x [ n 1 ] i ƒ   | x [ n ] y [ n 1 ] | 4 ° C x [ n ] andernfalls
    Figure DE102022101950A1_0007
  • Diese Ausführungsform glättet das Rauschen und passt sich an große Temperaturschwankungen an, die durch lange Leerlaufzeiten verursacht werden können. Zusätzliche Verfeinerungen sind möglich, wie eine Feinabstimmung des Hystereseschwellenwerts oder die Erzwingung zusätzlicher Erfassungen unter bestimmten Umständen.
  • Die 12C bis 14C veranschaulichen, dass das ansteigende Temperaturprofil, das verrauschte Temperaturprofil und die Profile mit großen Temperaturänderungen durch eine Glättungsfunktion, die eine Hysterese-induzierende Funktion und eine digitale Filterfunktion kombiniert, gut verfolgt werden.
  • Ausführungsformen der vorliegenden Technologie schließen eine Vorrichtung ein. Die Vorrichtung schließt ein nichtflüchtiges Speichersystem ein, das einen Block mit nichtflüchtigen Speicherzellen und eine mit den nichtflüchtigen Speicherzellen in Verbindung stehende Steuerschaltung aufweist. Die Steuerschaltung ist so eingerichtet, dass sie eine aktuelle Temperatur des Speichersystems erfasst und Daten in nichtflüchtige Speicherzellen programmiert, die dem Block zugeordnet sind, eine aktuelle Temperatur des Speichersystems erfasst und Daten in den nichtflüchtigen Speicherzellen liest und verifiziert, indem sie einen oder mehrere Lese-/Verifizierungsvorgänge basierend auf einem Temperaturkompensationswert modifiziert. Die Steuerschaltung ist weiterhin so eingerichtet, dass sie die aktuelle Temperatur des Speichersystems erfasst und die Daten aus den nichtflüchtigen Speicherzellen löscht. Die Steuerschaltung ist weiterhin eingerichtet, um Daten zu lesen, zu verifizieren, zu programmieren und zu löschen, indem sie auf einen im Speichersystem gespeicherten historischen Temperaturwert zugreift, wobei der historische Temperaturwert eine Temperatur aufweist, bei der ein vorheriger Lese-, Verifizierungs-, Programmierungs- oder Löschvorgang stattgefunden hat, und einen aktuellen Temperaturwert misst. Die Steuerschaltung bestimmt den Temperaturkompensationswert durch Anlegen der Glättungsfunktion. Die Glättungsfunktion bestimmt den Temperaturkompensationswert durch Auswählen entweder des historischen Temperaturwerts oder des aktuellen Temperaturwerts als Temperaturkompensationswert basierend auf einer Differenz zwischen dem historischen Temperaturwert und der aktuellen Temperatur bezogen auf einen Schwellenwert oder durch Berechnen des Temperaturkompensationswerts, der sich von dem aktuellen Temperaturwert oder dem historischen Temperaturwert unterscheidet, basierend auf einer Glättungsfunktion, die den aktuellen Temperaturwert und den historischen Temperaturwert nutzt. Die Steuerung modifiziert dann einen oder mehrere Lese-/Verifizierungs-/Programmier-/Löschparameter, wenn der Temperaturkompensationswert von dem historischen Temperaturwert abweicht.
  • Ausführungsformen der vorliegenden Technologie schließen ein Verfahren zum Betreiben eines nichtflüchtigen Speichersystems ein. Das Verfahren weist während des Lese-, Verifizierungs-, Programmierungs- oder Löschvorgangs von Daten, die in nichtflüchtigen Speicherzellen in einem Block in dem nichtflüchtigen Speichersystem gespeichert sind, das Programmieren mindestens eines angelegten Temperaturwerts in Speicherzellen des Blocks auf, wobei der angelegte Temperaturwert einen historischen Temperaturwert aufweist. Während eines nachfolgenden Lese-, Verifizierungs-, Programm- oder Löschvorgangs, der einen oder mehrere Lese-/Verifizierungs-/Programmier-/Löschparameter zum Lesen, Verifizieren, Programmieren bzw. Löschen der Daten verwendet, schließt das Verfahren das Messen einer aktuellen Temperatur des nichtflüchtigen Speichersystems ein. Anschließend schließt das Verfahren das Bestimmen eines Temperaturkompensationswerts durch Anlegen einer Glättungsfunktion ein, die den Temperaturkompensationswert aus dem aktuellen Temperaturwert, dem historischen Temperaturwert und einem berechneten Kompensationstemperaturwert auswählt, basierend auf dem aktuellen Temperaturwert und dem angelegten Temperaturwert. Wenn eine Differenz zwischen dem Temperaturkompensationswert und dem historischen Temperaturwert einen Schwellenwert überschreitet, schließt das Verfahren das Anheben oder Absenken eines oder mehrerer Parameter ein, um den Lese-, Verifizierungs-, Programmier- oder Löschvorgang durchzuführen.
  • Ausführungsformen der Technologie schließen ein nichtflüchtiges Speichersystem ein, das einen Block mit nichtflüchtigen Speicherzellen aufweist, sowie eine Steuerschaltung, die mit den nichtflüchtigen Speicherzellen in Verbindung steht. Die Steuerschaltung schließt Mittel zum Erfassen einer aktuellen Temperatur des Speichersystems und Mittel zum Zugreifen auf einen im Speichersystem gespeicherten historischen Temperaturwert ein, wobei der historische Temperaturwert mindestens eine Temperatur aufweist, bei der ein früherer Lese-, Verifizierungs-, Programmier- oder Löschvorgang stattgefunden hat. Die Steuerung schließt weiterhin Mittel zum Bestimmen des Temperaturkompensationswerts durch Anlegen einer Glättungsfunktion ein, die den Temperaturkompensationswert entweder aus dem historischen Temperaturwert oder einem aktuellen Temperaturwert auswählt, wenn eine Differenz zwischen dem historischen Temperaturwert und dem aktuellen Temperaturwert über einem Schwellenwert liegt, und Mittel zum Auswählen eines berechneten Temperaturkompensationswerts, der basierend auf dem aktuellen Temperaturwert und dem historischen Temperaturwert berechnet wird, wenn die Differenz zwischen dem historischen Temperaturwert und dem aktuellen Temperaturwert unter dem Schwellenwert liegt. Die Steuerschaltung schließt weiterhin Mittel zum Lesen, Verifizieren, Programmieren und Löschen von Daten in den nichtflüchtigen Speicherzellen ein, einschließlich Mittel zum Ändern eines oder mehrerer Lese-/Verifizierungs-/Programmier-/Löschparameter basierend auf dem Temperaturkompensationswert, wenn der Temperaturkompensationswert von dem historischen Temperaturwert abweicht.
  • Entsprechende Verfahren, Systeme und von einem Computer oder von einem Prozessor lesbare Speichermedien, die ausführbaren Programmcode zur Durchführung der hierin bereitgestellten Verfahren aufweisen, können ebenfalls bereitgestellt werden.
  • Die vorhergehende detaillierte Beschreibung der Erfindung wurde zu Zwecken der Veranschaulichung und Beschreibung präsentiert. Sie soll nicht erschöpfend sein oder die Erfindung auf die genaue offenbarte Form beschränken. Viele Modifikationen und Variationen sind unter Berücksichtigung der vorstehend genannten Lehre möglich. Zum Beispiel können Beispiele, in denen Speicherzellen basierend auf der Schwellenspannung programmiert werden, so verändert werden, dass Speicherzellen programmiert werden, die Informationen basierend auf dem Widerstand speichern. Die beschriebenen Ausführungsformen wurden gewählt, um die Prinzipien der Erfindung und ihre praktische Anwendung am besten zu erklären, um dadurch anderen Fachleuten zu ermöglichen, die Erfindung in verschiedenen Ausführungsformen und mit verschiedenen Modifikationen, wie sie für die jeweilige beabsichtigte Verwendung geeignet sind, am besten zu nutzen. Es ist beabsichtigt, dass der Schutzumfang der Erfindung durch die hieran angehängten Ansprüche definiert wird.

Claims (20)

  1. Einrichtung, aufweisend: ein nichtflüchtiges Speichersystem, aufweisend einen Block, der nichtflüchtige Speicherzellen aufweist; und eine Steuerschaltung in Kommunikation mit den nichtflüchtigen Speicherzellen, wobei die Steuerschaltung eingerichtet ist zum: Erfassen einer aktuellen Temperatur des Speichersystems; Programmieren, Verifizieren, Lesen oder Löschen von Daten in den nichtflüchtigen Speicherzellen durch Ändern eines oder mehrerer Programm-/Verifizierungs-/Lese-/Löschparameter, basierend auf einem Temperaturkompensationswert durch: Zugreifen auf einen historischen Temperaturwert, der in dem Speichersystem gespeichert ist, wobei der historische Temperaturwert eine Temperatur aufweist, bei der ein früherer Lese- oder Verifizierungsvorgang stattgefunden hat; Messen eines aktuellen Temperaturwerts; Bestimmen des Temperaturkompensationswerts durch Anlegen einer Glättungsfunktion, wobei die Glättungsfunktion den Temperaturkompensationswert bestimmt, durch: Auswählen entweder des historischen Temperaturwerts oder des aktuellen Temperaturwerts als Temperaturkompensationswert basierend auf einer Differenz zwischen dem historischen Temperaturwert und der aktuellen Temperatur bezogen auf einen Schwellenwert; oder Berechnen des Temperaturkompensationswerts, der sich von dem aktuellen Temperaturwert oder dem historischen Temperaturwert unterscheidet, basierend auf einer Glättungsfunktion, die den aktuellen Temperaturwert und den historischen Temperaturwert nutzt; und Modifizieren des einen oder der mehreren Programmier-/Verifizierungs-/Lese-/Löschparameter, wenn der Temperaturkompensationswert von dem historischen Temperaturwert abweicht.
  2. Einrichtung gemäß Anspruch 1, wobei die Glättungsfunktion eine Hysterese-induzierende Funktion aufweist, die den historischen Temperaturwert als Temperaturkompensationswert auswählt, wenn die Differenz zwischen dem aktuellen Temperaturwert und dem historischen Temperaturwert unter oder gleich dem Schwellenwert ist, und die aktuelle Temperatur als Temperaturkompensationswert auswählt, wenn die Differenz zwischen dem aktuellen Temperaturwert und dem historischen Temperaturwert über dem Schwellenwert liegt.
  3. Einrichtung gemäß Anspruch 1, wobei die Glättungsfunktion eine Hysterese-induzierende Funktion aufweist, die den historischen Temperaturwert als Temperaturkompensationswert auswählt, wenn die Differenz zwischen dem aktuellen Temperaturwert und mindestens zwei historischen Temperaturwerten unter oder gleich dem Schwellenwert ist, und die aktuelle Temperatur als Temperaturkompensationswert auswählt, wenn die Differenz zwischen dem aktuellen Temperaturwert und dem historischen Temperaturwert über dem Schwellenwert liegt.
  4. Einrichtung gemäß Anspruch 1, wobei die Steuerschaltung den Temperaturkompensationswert basierend auf einer Glättungsfunktion berechnet, die einen gewichteten Mittelwert aus dem historischen Temperaturwert und dem aktuellen Temperaturwert berechnet.
  5. Einrichtung gemäß Anspruch 4, wobei der gewichtete Mittelwert dem historischen Temperaturwert eine größere Gewichtung bereitstellt als dem aktuellen Temperaturwert.
  6. Einrichtung gemäß Anspruch 4, wobei die Steuerschaltung den Temperaturkompensationswert basierend auf einem gewichteten Mittelwert einer ersten Vielzahl von historischen Temperaturwerten und einer zweiten Vielzahl von aktuellen Temperaturwerten berechnet.
  7. Einrichtung gemäß Anspruch 1, wobei durch Bestimmen der Temperaturkompensationswert entweder aus dem historischen Temperaturwert oder einem aktuellen Temperaturwert ausgewählt wird, wenn eine Differenz zwischen dem historischen Temperaturwert und dem aktuellen Temperaturwert größer als ein Schwellenwert ist, und der Temperaturkompensationswert wird berechnet, wenn die Differenz zwischen dem historischen Temperaturwert und dem aktuellen Temperaturwert kleiner als oder gleich dem Schwellenwert ist.
  8. Einrichtung gemäß Anspruch 7, wobei die Steuerschaltung den Temperaturkompensationswert basierend auf einer Glättungsfunktion berechnet, die einen gewichteten Mittelwert des historischen Temperaturwerts und des aktuellen Temperaturwerts berechnet, wobei dem historischen Wert eine größere Gewichtung bereitgestellt wird als dem aktuellen Temperaturwert.
  9. Verfahren zum Betreiben eines nichtflüchtigen Speichersystems, das Verfahren aufweisend: während des Lese-, Verifizierungs-, Programmierungs- oder Löschvorgangs von Daten, die in nichtflüchtigen Speicherzellen in einem Block in dem nichtflüchtigen Speichersystem gespeichert sind, Programmieren mindestens eines angelegten Temperaturwerts in Speicherzellen des Blocks, wobei der angelegte Temperaturwert einen historischen Temperaturwert aufweist; während eines nachfolgenden Lese-, Verifizierungs-, Programmier- oder Löschvorgangs, der einen oder mehrere Lese-/Verifizierungs-/Programmier-/Löschparameter zum Lesen, Verifizieren, Programmieren bzw. Löschen der Daten verwendet, Messen einer aktuellen Temperatur des nichtflüchtigen Speichersystems; Bestimmen eines Temperaturkompensationswerts durch Anlegen einer Glättungsfunktion, die den Temperaturkompensationswert aus dem aktuellen Temperaturwert, dem historischen Temperaturwert und einem berechneten Kompensationstemperaturwert auswählt, basierend auf dem aktuellen Temperaturwert und dem angelegten Temperaturwert; und wenn eine Differenz zwischen dem Temperaturkompensationswert und dem historischen Temperaturwert einen Schwellenwert überschreitet, Anheben oder Absenken eines oder mehrerer Lese-, Verifizierungs-, Programmier- oder Löschparameter, um den Lese-, Verifizierungs-, Programmier- oder Löschvorgang durchzuführen.
  10. Verfahren gemäß Anspruch 9, wobei die Glättungsfunktion eine Hysterese-induzierende Funktion einschließt, die das Auswählen des Temperaturkompensationswerts entweder aus dem historischen Temperaturwert oder einem aktuellen Temperaturwert veranlasst, wenn eine Differenz zwischen dem historischen Temperaturwert und dem aktuellen Temperaturwert größer als ein erster Schwellenwert ist, und das Bestimmen den berechneten Temperaturkompensationswert berechnet, wenn die Differenz zwischen dem historischen Temperaturwert und dem aktuellen Temperaturwert kleiner oder gleich dem ersten Schwellenwert ist.
  11. Verfahren gemäß Anspruch 10, wobei die Hysterese-induzierende Funktion das Auswählen des historischen Temperaturwerts als Temperaturkompensationswert veranlasst, wenn die Differenz zwischen dem aktuellen Temperaturwert und dem historischen Temperaturwert unter oder gleich einem zweiten Schwellenwert ist, und das Auswählen der aktuellen Temperatur als Temperaturkompensationswert veranlasst, wenn die Differenz zwischen dem aktuellen Temperaturwert und dem historischen Temperaturwert über dem zweiten Schwellenwert liegt.
  12. Verfahren gemäß Anspruch 11, wobei das Bestimmen den Temperaturkompensationswert basierend auf einem gewichteten Mittelwert aus dem historischen Temperaturwert und dem aktuellen Temperaturwert berechnet.
  13. Verfahren gemäß Anspruch 12, wobei der gewichtete Mittelwert dem historischen Temperaturwert eine größere Gewichtung bereitstellt als dem aktuellen Temperaturwert.
  14. Verfahren gemäß Anspruch 12, wobei das Bestimmen den Temperaturkompensationswert basierend auf einem gewichteten Mittelwert aus einer ersten Vielzahl von historischen Temperaturwerten und einer zweiten Vielzahl von aktuellen Temperaturwerten berechnet.
  15. Nichtflüchtiges Speichersystem, aufweisend: einen Block, aufweisend nichtflüchtige Speicherzellen; und eine Steuerschaltung in Kommunikation mit den nichtflüchtigen Speicherzellen, die Steuerschaltung aufweisend: Mittel zum Erfassen einer aktuellen Temperatur des Speichersystems; Mittel zum Zugreifen auf einen historischen Temperaturwert, der in dem Speichersystem gespeichert ist, wobei der historische Temperaturwert mindestens eine Temperatur aufweist, bei der ein früherer Lese-, Verifizierungs-, Programmier- oder Löschvorgang stattgefunden hat; Mittel zum Bestimmen des Temperaturkompensationswerts durch Anlegen einer Glättungsfunktion, die den Temperaturkompensationswert entweder aus dem historischen Temperaturwert oder einem aktuellen Temperaturwert auswählt, wenn eine Differenz zwischen dem historischen Temperaturwert und dem aktuellen Temperaturwert über einem Schwellenwert liegt, und Auswählen eines berechneten Temperaturkompensationswerts, der basierend auf dem aktuellen Temperaturwert und dem historischen Temperaturwert berechnet wird, wenn die Differenz zwischen dem historischen Temperaturwert und dem aktuellen Temperaturwert unter dem Schwellenwert liegt; und Mittel zum Lesen, Verifizieren, Programmieren und Löschen von Daten in den nichtflüchtigen Speicherzellen, einschließlich Mittel zum Ändern eines oder mehrerer Lese-, Verifizierungs-, Programmier- oder Löschparameter basierend auf dem Temperaturkompensationswert, wenn der Temperaturkompensationswert von dem historischen Temperaturwert abweicht.
  16. Nichtflüchtiges Speichersystem gemäß Anspruch 15, wobei Mittel zum Bestimmen, welche die Glättungsfunktion nutzen, eine Hysterese-induzierende Funktion einschließen, die den Temperaturkompensationswert entweder aus dem historischen Temperaturwert oder einem aktuellen Temperaturwert auswählt, wenn eine Differenz zwischen dem historischen Temperaturwert und dem aktuellen Temperaturwert größer als ein erster Schwellenwert ist, und die Mittel zum Bestimmen den berechneten Temperaturkompensationswert berechnen, wenn die Differenz zwischen dem historischen Temperaturwert und dem aktuellen Temperaturwert kleiner oder gleich dem ersten Schwellenwert ist.
  17. Nichtflüchtiges Speichersystem gemäß Anspruch 16, wobei die Hysterese-induzierende Funktion, die den historischen Temperaturwert als Temperaturkompensationswert auswählt, wenn die Differenz zwischen dem aktuellen Temperaturwert und dem historischen Temperaturwert unter oder gleich einem zweiten Schwellenwert ist, und die aktuelle Temperatur als Temperaturkompensationswert auswählt, wenn die Differenz zwischen dem aktuellen Temperaturwert und dem historischen Temperaturwert über dem zweiten Schwellenwert liegt.
  18. Nichtflüchtiges Speichersystem gemäß Anspruch 15, wobei die Mittel zum Bestimmen den Temperaturkompensationswert basierend auf einem gewichteten Mittelwert aus dem historischen Temperaturwert und dem aktuellen Temperaturwert berechnen.
  19. Nichtflüchtiges Speichersystem gemäß Anspruch 18, wobei der gewichtete Mittelwert dem historischen Temperaturwert eine größere Gewichtung bereitstellt als dem aktuellen Temperaturwert.
  20. Nichtflüchtiges Speichersystem gemäß Anspruch 15, wobei die Mittel zum Bestimmen den Temperaturkompensationswert basierend auf einem gewichteten Mittelwert aus einer ersten Vielzahl von historischen Temperaturwerten und einer zweiten Vielzahl von aktuellen Temperaturwerten berechnen.
DE102022101950.0A 2021-06-18 2022-01-27 Digitale temperaturkompensationsfilterung Pending DE102022101950A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/352,095 2021-06-18
US17/352,095 US11705203B2 (en) 2021-06-18 2021-06-18 Digital temperature compensation filtering

Publications (1)

Publication Number Publication Date
DE102022101950A1 true DE102022101950A1 (de) 2022-12-22

Family

ID=84283938

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022101950.0A Pending DE102022101950A1 (de) 2021-06-18 2022-01-27 Digitale temperaturkompensationsfilterung

Country Status (3)

Country Link
US (1) US11705203B2 (de)
CN (1) CN115497520A (de)
DE (1) DE102022101950A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116978419A (zh) * 2022-04-21 2023-10-31 联华电子股份有限公司 具温度补偿的感测放大器电路

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7391650B2 (en) 2006-06-16 2008-06-24 Sandisk Corporation Method for operating non-volatile memory using temperature compensation of voltages of unselected word lines and select gates
KR100927782B1 (ko) 2008-05-20 2009-11-20 주식회사 하이닉스반도체 불휘발성 메모리 장치의 독출/검증 기준전압 공급부
US8213255B2 (en) 2010-02-19 2012-07-03 Sandisk Technologies Inc. Non-volatile storage with temperature compensation based on neighbor state information
US8472274B2 (en) 2011-03-02 2013-06-25 Apple Inc. Using temperature sensors with a memory device
US8611157B2 (en) 2011-12-22 2013-12-17 Sandisk Technologies Inc. Program temperature dependent read
US9165668B1 (en) 2013-07-29 2015-10-20 Western Digital Technologies, Inc. Data retention monitoring using temperature history in solid state drives
US9275741B1 (en) 2014-09-10 2016-03-01 Western Digital Technologies, Inc. Temperature compensation management in solid-state memory
US9543028B2 (en) 2014-09-19 2017-01-10 Sandisk Technologies Llc Word line dependent temperature compensation scheme during sensing to counteract cross-temperature effect
US9668337B2 (en) 2015-09-08 2017-05-30 Western Digital Technologies, Inc. Temperature management in data storage devices
US10007311B2 (en) 2016-08-15 2018-06-26 Sandisk Technologies Llc Adaptive temperature and memory parameter throttling
US10026483B1 (en) 2017-06-28 2018-07-17 Western Digital Technologies, Inc. Program temperature aware data scrub
US10446237B1 (en) * 2018-06-29 2019-10-15 Micron Technology, Inc. Temperature sensitive NAND programming
US11017864B2 (en) 2019-06-26 2021-05-25 Seagate Technology Llc Preemptive mitigation of cross-temperature effects in a non-volatile memory (NVM)

Also Published As

Publication number Publication date
CN115497520A (zh) 2022-12-20
US11705203B2 (en) 2023-07-18
US20220406383A1 (en) 2022-12-22

Similar Documents

Publication Publication Date Title
DE102018105529B4 (de) Managementschema zur Vermeidung einer Lösch- und Programmierstörung von Subblöcken im nichtflüchtigen Datenspeicher
DE112017001761B4 (de) NAND-Struktur mit Stufenauswahl-Gate-Transistoren
DE112017002776T5 (de) Nichtflüchtiger Speicher mit angepasster Steuerung vom Typ der Störinjektion während der Programmüberprüfung für eine verbesserte Programmleistung
DE112017004208T5 (de) 3d-nand mit teilblocklöschen
DE102020115935A1 (de) Nichtflüchtiger speicher mit dem überspringen der programmprürung
DE102018105685A1 (de) Multi-Zustands-Programm, das gesteuertes schwaches Boosten für einen nichtflüchtigen Speicher verwendet
DE102018129517A1 (de) Leseverstärker mit negativer schwellenwerterfassung für nicht-flüchtige speicher
DE112019000148T5 (de) Dynamische Bitabtastungstechniken für die Programmierung von Speichervorrichtungen
DE102019124653A1 (de) Ortsabhängige impedanzabschwächung in einem nichtflüchtigen speicher
DE102019124668A1 (de) Transistorschwellenspannungshaltung in 3d-speicher
DE102021107128A1 (de) Abgestufte lesereferenzkalibrierung
DE102021107269A1 (de) Dynamische ressourcenverwaltung in schaltungsgebundener array-architektur
DE112016000654T5 (de) Mehrzustands-Programmierung für nichtflüchtigen Speicher
DE112020000174T5 (de) Adaptive vpass für 3d-flash-speicher mit paarkettenstruktur
DE102017113967A1 (de) Adaptiver betrieb von 3-d-speicher
DE102021115501A1 (de) Leseaktualisierung zur verbesserung der leistung bei datenerhaltung für nichtflüchtigen speicher
DE102018123887A1 (de) Nichtflüchtiges Speichersystem. das fehlerhafte Blöcke regeneriert
DE102021115914A1 (de) Nichtflüchtiger speicher mit speicherarray zwischen schaltungen
DE102021106147A1 (de) Leseverstärkerarchitektur für vorgänge mit niedriger versorgungsspannung
DE102020116365A1 (de) Löschvorgang in 3d-nand
DE102020105991A1 (de) SUBBLOCK-GRÖßENREDUKTION FÜR NICHTFLÜCHTIGE 3D-SPEICHER
DE102021106907A1 (de) Lochvorladeschema mit gate-induzierter drain-leckstromerzeugung
DE102021105757A1 (de) On-chip-kopie für integriertes speichermodul
DE102021106142A1 (de) Abtastverstärkerarchitektur, die eine abtastung kleiner hubspannungen bereitstellt
DE102022101950A1 (de) Digitale temperaturkompensationsfilterung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: MURGITROYD GERMANY PATENTANWALTSGESELLSCHAFT M, DE