DE112017000206T5 - Kompensation von Temperaturschwankungen eines Arbeitsspeichers - Google Patents

Kompensation von Temperaturschwankungen eines Arbeitsspeichers Download PDF

Info

Publication number
DE112017000206T5
DE112017000206T5 DE112017000206.0T DE112017000206T DE112017000206T5 DE 112017000206 T5 DE112017000206 T5 DE 112017000206T5 DE 112017000206 T DE112017000206 T DE 112017000206T DE 112017000206 T5 DE112017000206 T5 DE 112017000206T5
Authority
DE
Germany
Prior art keywords
memory
temperature
data
threshold
read
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.)
Granted
Application number
DE112017000206.0T
Other languages
English (en)
Other versions
DE112017000206T8 (de
Inventor
Eran Sharon
Nian Niles Yang
Idan Alrod
Evgeny Mekhanik
Mark Shlick
Joanna Lai
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.)
Western Digital Technologies Inc
Original Assignee
Western Digital Technologies Inc
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 Western Digital Technologies Inc filed Critical Western Digital Technologies Inc
Publication of DE112017000206T5 publication Critical patent/DE112017000206T5/de
Application granted granted Critical
Publication of DE112017000206T8 publication Critical patent/DE112017000206T8/de
Active legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • 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/5642Sensing 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/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/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/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • 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/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3431Circuits or methods to detect disturbed nonvolatile memory cells, e.g. which still read as programmed but with threshold less than the program verify threshold or read as erased but with threshold greater than the erase verify threshold, and to reverse the disturbance via a refreshing programming or erasing step
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Eine Datenspeicherungsvorrichtung ist konfiguriert, um Daten für die Aktualisierung zu markieren, als Reaktion auf das Bestimmen, dass eine erste gemessene Temperatur, die dem Schreiben von Daten in den Arbeitsspeicher zugeordnet ist, einen ersten Schwellenwert überschreitet. Die Datenspeichervorrichtung ist ferner konfiguriert, markierte Daten zu aktualisieren, als Reaktion auf das Bestimmen, dass eine zweite gemessene Temperatur, die dem Arbeitsspeicher zugeordnet ist, unter einem zweiten Schwellenwert liegt.

Description

  • QUERVERWEISE ZU ÄHNLICHEN ANMELDUNGEN
  • Die vorliegende Anmeldung beansprucht die Priorität der US-Anmeldenr. 15/167,316 eingereicht am 27. Mai 2016, die die Vergünstigungen der vorläufigen US-Anmeldenr. 62/303,891 , eingereicht am 4. März 2016, in Anspruch nimmt, deren jeweilige Inhalte hierin gänzlich durch Verweis aufgenommen sind.
  • GEBIET DER OFFFENBARUNG
  • Diese Offenbarung betrifft Datenspeicherungsvorrichtungen im Allgemeinen und Techniken zur Kompensation von Temperaturschwankungen im Besonderen.
  • HINTERGRUND
  • Nicht flüchtige Datenspeicherungsvorrichtungen, wie Flash-Solid-State-Drive-Speichermedien (SSD) oder herausnehmbare Speicherkarten ermöglichen die verbesserte Portabilität von Daten und Software-Anwendungen. Flash Memory-Medien können die Datenspeicherungsdichte durch die Speicherung von mehreren Bits in jeder einzelnen Flash Memory-Zelle erhöhen. Beispielsweise stellen MCL-Speicherzellen (Multi-Level-Cell) verbesserte Speicherungsdichte durch die Speicherung von 2 Bits pro Zelle, 3 Bits pro Zelle, 4 Bits pro Zelle oder mehr bereit. Obwohl die Zahl der Bits pro Zelle steigt und die Gerätemerkmalsabmessungen reduziert werden, können sowohl die Speicherdichte einer Arbeitsspeichervorrichtung als auch eine Bitfehlerrate (BER) der gespeicherten Daten in der Arbeitsspeichervorrichtung erhöht werden.
  • Zusätzlich dazu, wird die verbesserte BER aufgrund der Temperaturschwankungen zwischen Programmierungstemperatur (z. B. Temperatur eines Arbeitsspeichers, wenn Daten in den Arbeitsspeicher geschrieben werden) und der späteren Lesetemperatur (z. B. Temperatur des Arbeitsspeichers, wenn die Daten aus dem Arbeitsspeicher gelesen werden) ein immer wichtigeres Thema bei den neuesten Generationen von Arbeitsspeichern. Da jedes Speicherelement einer nicht flüchtigen Datenspeicherungsvorrichtung einen bestimmten Kreuztemperaturkoeffizienten hat, weist jedes Speicherelement, aufgrund einer Temperaturveränderung in Bezug auf die Temperatur, bei der das Speicherelement programmiert und verifiziert wurde, eine andere Schwellenspannungsverschiebung (Vt) aus. Die Vt-Verschiebung pro Speicherelement ist eine Funktion der Temperaturdifferenz. Wird daher eine Seite bei einer anderen Temperatur als der Programmierungstemperatur der Seite gelesen, verschieben und weiten sich die Zellenspannungsverteilungen (CVDs) der unterschiedlichen Zustände der Arbeitsspeicher aus und BER steigt. Die Verschiebung und Verbreiterung von CVDs und die erhöhte BER tritt bei Temperaturveränderungen in beide Richtungen auf, also sowohl wenn Daten bei einer höheren Temperatur als jener Temperatur, bei der sie in das Speicherelement geschrieben wurden aus einem Arbeitsspeicher gelesen werden, als auch wenn die Daten bei einer niedrigeren Temperatur als jener Temperatur, bei der sie in das Speicherelement geschrieben wurden aus einem Arbeitsspeicher gelesen werden.
  • Figurenliste
    • 1 ist ein Blockdiagramm eines illustrativen Beispiels für ein System, das eine Datenspeicherungsvorrichtung umfasst, welches für die Anpassung der Speicherzugriffsparameter auf Grundlage der Temperatur konfiguriert ist;
    • 2 ist ein Diagramm, das ein besonderes Beispiel von Temperaturbereichen in Verbindung mit den Datenspeicherungsvorrichtungen aus 1 zeigt;
    • 3 ist ein Diagramm, das ein besonderes Beispiel von Tabellen zeigt, die für Datenspeicherungsvorrichtungen aus 1 verwendet werden können;
    • 4 ist ein Diagramm, das ein besonderes Beispiel einer ersten Konfiguration von mehreren Arbeitsspeichernacktchips des Datenspeichers aus 1 zeigt;
    • 5 ist ein Diagramm, das ein besonderes Beispiel einer zweiten Konfiguration von mehreren Arbeitsspeichernacktchips der Datenspeicherungsvorrichtung aus 1 zeigt;
    • 6 ist ein Blockdiagramm eines illustrativen Beispiels für die Datenspeicherungsvorrichtung den 1;
    • 7 ist ein Blockdiagramm eines weiteren illustrativen Beispiels für die Datenspeicherungsvorrichtung aus 1;
    • 8 ist ein Diagramm, das ein besonderes Beispiel einer ersten Konfiguration eines Speicherelements für die Datenspeicherungsvorrichtung aus 1 zeigt;
    • 9 ist ein Flussdiagramm eines besonderen Beispiels eines Verfahrens zur Aktualisierung von Daten, das von einer Datenspeicherungsvorrichtung aus 1 durchgeführt werden kann;
    • 10 ist ein Flussdiagramm eines besonderen Beispiels eines Verfahrens zur temperaturbasierten Kontrolle, das von einer Datenspeicherungsvorrichtung aus 1 durchgeführt werden kann;
    • 11 ist ein Flussdiagramm eines weiteren besonderen Beispiels eines Verfahrens zur temperaturbasierten Kontrolle, das von einer Datenspeicherungsvorrichtung aus 1 durchgeführt werden kann;
    • 12 ist ein Flussdiagramm eines weiteren besonderen Beispiels eines Verfahrens zur Bestimmung eines abgelesenen Spannungswertes, das von einer Datenspeicherungsvorrichtung aus 1 durchgeführt werden kann;
    • 13 ist ein Flussdiagramm eines weiteren besonderen Beispiels eines Verfahrens zur temperaturbasierten Kontrolle, das von einer Datenspeicherungsvorrichtung aus 1 durchgeführt werden kann; und
    • 14 ist ein Flussdiagramm eines weiteren besonderen Beispiels eines Verfahrens zur Bestimmung der Temperaturbereiche, das von einer Datenspeicherungsvorrichtung aus 1 durchgeführt werden kann.
  • DETAILLIERTE BESCHREIBUNG
  • Eine Kompensation der Verschiebung und Verbreiterung der Vt-Pegel aufgrund der Unterschiede in den Programmierungstemperaturen im Vergleich zu den Lesetemperaturschwankungen wird von Geräten und Methoden bereitgestellt. Beispielsweise kann eine „Schreibtemperatur“ während der Datenprogrammierung gemessen und gespeichert werden. Eine Schreibtemperatur kann einmal für jeden programmierten Block (z. B. einen Löschblock eines NAND Flash Memory) oder einmal für jede Wortleitung (WL) gespeichert werden, wobei diese Beispiele nicht beschränkend sind. In manchen Ausführungen kann ein Kompensationsverfahren ausgeführt werden, wenn die Programmierungstemperatur in einem „anormalen“ Bereich liegt.
  • In manchen Ausführungen kann eine „Lesetemperatur“ für jeden gelesenen Block oder jede WL gemessen werden. Ein oder mehrere Speicherzugriffsparameter, wie etwa die abgelesene Schwellenspannung, können auf Grundlage der Verfolgung von CVD, auf Grundlage von BER, auf Grundlage von Tabellen, die auf dem Unterschied zwischen der Schreibtemperatur und der Lesetemperatur basieren, oder einer Kombination davon, angepasst werden, wobei diese verdeutlichenden Beispiele nicht beschränkend sind.
  • Wird eine „anormale“ Programmierungstemperatur detektiert, werden in manchen Ausführungen eine oder mehrere Kompensationsverfahren ausgeführt. Beispielsweise können die „anormalen“ programmierten Daten für „dringende“ Aktualisierung markiert werden. Zur Verdeutlichung, das Markieren der Daten für „dringende“ Aktualisierung kann eine Datenspeicherungsvorrichtung dazu veranlassen, die markierten Daten prioritär zu aktualisieren, als Antwort darauf, dass die Speichertemperatur auf den „normalen“ Temperaturbereich zurückgegangen ist. Ein anderes Beispiel ist, dass die „anormal“ programmierten Daten unter Verwendung eines langsameren und verlässlicheren Trimms gespeichert werden (z. B. einem Satz von Schreibparametern, der verursacht, dass Daten mit höherer Genauigkeit geschrieben werden). Ein anderes Beispiel ist, dass die „anormalen“ programmierten Daten unter Verwendung eines SLC-Modus anstatt eines MCL-Modus, als mehrfache redundante Kopien unter Verwendung einer größeren Anzahl an Paritätsbits oder einer Kombination davon gespeichert werden können.
  • In manchen Ausführungen kann die Vt-Verschiebung der nicht flüchtigen Arbeitsspeicher (NVM) durch die Anpassung von Leseschwellenwerten kompensiert werden. Die Anpassung der Leseschwellenwerte kann auf Grundlage des Unterschieds zwischen der beim Lesen gemessenen Temperatur im Vergleich zur Temperatur, die beim Programmieren aufgezeichnet wurde (die je Block oder je Wortzeile (WL) gemessen und gespeichert werden kann), ausgeführt werden. Der Anpassungswert der Leseschwelle kann eine Funktion der aufgezeichneten Programmierungstemperatur (und nicht nur des Temperaturunterschieds) sein, falls die Verschiebung bei der Programmierung bei niedriger Temperatur im Vergleich zu hoher Temperatur anders ist. Die Anpassung des Leseschwellenwerts kann unter Verwendung einer vordefinierten Tabelle als Funktion der Temperaturdifferenz und gegebenenfalls als Funktion der Programmierungstemperatur durchgeführt werden. Alternativ dazu kann die Anpassung der Leseschwellenwerte durch Ausführung eines Algorithmus zur Kalibrierung der Leseschwellenwerte, wie etwa CVD-Tracking oder BER-Schätzungsscan, auf einer oder mehreren repräsentativen Seiten des Blocks, die bei gleicher Temperatur programmiert wurden, ausgeführt werden.
  • Falls „extreme“ Temperaturunterschieden selten vorkommen, können Vordergrund-CVD-Tracking oder BES-Verfahren die richtigen Ergebnisse, mit relativ niedriger Komplexität bringen, da das Aufzeichnen und Einstellen der Programmierungstemperatur je WL oder je Block unterlassen werden kann. Falls solche extremen Temperaturdifferenzen häufiger erwartet werden, können die richtigen Ergebnisse mit verbesserter Leistung durch das Messen und Speichern von Schreibtemperaturen und die Anpassung der Temperaturdifferenzen im Vergleich zur Ausführung von Vordergrund-CVD-Tracking oder BES-Verfahren bereitgestellt werden. Alternativ dazu können Gruppen von Blöcken oder WLs, die etwa zur gleichen Zeit und bei der gleichen Temperatur programmiert wurden, mit einer bestimmten Zeit- & Temperaturmarkierung versehen werden, für die geeigneter Satz an Lese- oder Speicherzugriffsparametern erhalten werden kann. Die Lese- oder Speicherzugriffsparameter der Gruppe mit einem bestimmten Zeit- & Temperaturtag können von Zeit zu Zeit durch Ausführung eines Algorithmus zur Kalibrierung der Leseschwellen, wie etwa CVD-Tracking oder BER-Schätzungsscan, auf einer oder mehreren repräsentativen Seiten der Gruppe angepasst werden. Dies kann als Hintergrund-Wartungsprozess ausgeführt werden oder dann ausgelöst werden, wenn suboptimale Lese- und Speicherzugriffsparameter vorgefunden werden (z. B. hohe BER während dem Lesen eines Hosts).
  • Die obengenannten Verfahren (z. B. CVD-Tracking, BES-Verfahren, die Speicherung von Schreibtemperaturen und die Anpassung von Lesespannungen auf Grundlage von Temperaturänderungen) können verwendet werden, um die Vt-Verschiebung, aufgrund von Unterschieden zwischen Programmierungs- und Lesetemperaturen, zu kompensieren. Nichtsdestotrotz kann die Verwendung dieser Verfahren aufgrund von Vt-Verteilungsverbreiterung zu erhöhter BER führen. Die Vt-Verteilungsverbreiterung kann wie im nachfolgenden Beispiel kompensiert werden.
  • In einer Beispielanwendung der Kompensation der Vt-Verteilungsverbreiterung beträgt der maximale, vom Arbeitsspeicher erlaubte Temperaturunterschied 80 Grad Celsius (80 °C). Da der maximale, vom Arbeitsspeicher erlaubte Temperaturunterschied 80 Grad Celsius beträgt, kann das erfolgreiche Lesen von Daten mit einem Schreib-/Lesetemperaturunterschied von über 80 °C nicht garantiert werden, nicht einmal nach der Anpassung oder Verschiebung der Leseschwellen. In diesem Fall kann ein „normaler“ Betriebstemperaturbereich mit einem Temperaturbereich zwischen 5 °C und 65 °C definiert werden. Alles, was außerhalb dieses normalen Temperaturbereiches programmiert ist, erhält eine „Sonderbehandlung“, wie etwa eines oder mehrere der oben beschriebenen Verfahren (z. B. Markierung für dringende Aktualisierung, Speicherung unter Verwendung eines langsameren und verlässlicheren Trimms, Speicherung unter Verwendung eines SLC-Modus anstatt eines MLC-Modus, Speicherung als multiple, redundante Kopien, Schutz durch eine größere Anzahl an Paritätsbits). Da erwartet werden kann, dass die Programmierung außerhalb dieser „normalen“ Temperatur selten passiert, kann die „Sonderbehandlung“ auf einen Bruchteil des Datenaufkommens angewendet werden und hat daher geringe Auswirkungen auf die Geräteleistung.
  • Sind die Daten bei einer Temperatur außerhalb des „normalen“ Temperaturbereichs programmiert, werden die Daten durch eines der oben beschriebenen Verfahren besser geschützt (oder dringend aktualisiert, sobald die Temperatur in den normalen Bereich zurückgeht). Auf der anderen Seite, wenn Daten bei einer Temperatur innerhalb des „normalen“ Temperaturbereichs programmiert sind, auch wenn die Daten bei einer extremen Temperatur gelesen werden, die außerhalb des normalen Bereichs liegt (z. B. bei -25 °C oder 85 °C), übersteigt die maximale Temperaturdifferenz zwischen Schreib- und Lesetemperatur die erlaubten 80 °C nicht.
  • Zusätzliche Temperaturbereiche können angewendet werden. Beispielweise kann es einen „normalen“ Temperaturbereich und mehrere „anormale“ Temperaturbereiche, von leicht außerhalb des Bereichs bis extrem außerhalb des Temperaturbereichs, geben. Die Gegenmaßnahmen („Sonderbehandlungen“) bei Programmierung außerhalb des „normalen“ Temperaturbereichs, können entsprechend des spezifischen Temperaturbereiches (z. B. basierend darauf, wie sehr er vom „normalen“ Temperaturbereich abweicht) angepasst werden. Beispielsweise kann ein Nennprogrammiertrimm („trim0“) zur Programmierung innerhalb des „normalen“ Temperaturbereiches angewendet werden. Ein langsamerer und feinerer Trimm („trim1“) kann zur Programmierung in einem leicht „anormalen“ Temperaturbereich verwendet werden. Ein noch langsamerer und feinerer Trimm („trim2“) kann zur Programmierung in extrem „anormalen“ Temperaturbereichen verwendet werden.
  • Die Temperaturbereiche (sowohl „normal“ als auch „anormal“) können vordefiniert werden. Alternativ dazu können sie dynamisch angepasst werden, entweder nach Speicherregion oder adaptiv durch eine Speichersteuervorrichtung. Zum Beispiel kann die Steuervorrichtung den Temperaturbereich, in dem das meiste Datenaufkommen programmiert ist, nachverfolgen und diesen als den „normalen“ Temperaturbereich definieren.
  • Gegebenenfalls kann eine Hybridpartition verwendet werden, um eine oder mehrere zusätzliche Kopien der Daten bei einer „extremen“ Temperatur zu speichern, anstatt die Daten zu verschieben, sofern die bei der „extremen“ Temperatur geschriebene Datenmenge relativ klein ist. Ein Dekodierer, der eine Fehlerkorrekturkodier- (ECC-) Engine umfasst, kann zur Dekodierung der zwei oder mehr Kopien verwendet werden und Daten wiederherstellen. Die LLR-Eingaben für den Dekodierer können auf den zwei Kopien basieren und die LLRs der beiden Kopien summieren. Das entspricht der Zuordnung von hoher Reliabilität an Bits, in denen die beiden Kopien übereinstimmen und niedriger Reliabilität (oder Null-Reliabilität, wenn die beiden Kopien die gleiche Reliabilität aufweisen), wann immer die beiden Kopien nicht übereinstimmen.
  • In manchen Ausführungen werden partiell geschriebene, offene Blöcke als Antwort auf eine Veränderung in der Programmierungstemperatur über einem gewissen Wert geschlossen, um große Programmierungstemperaturschwankungen innerhalb eines Blocks zu verhindern. Das Schließen der Blöcke verhindert eine Vermischung der Daten, die bei verschiedenen Temperaturen programmiert sind, die möglicherweise problematisch ist, besonders in einem anormalen Temperaturbereich, wie in Bezug auf die 4-5 im Detail beschrieben ist. Grenzwortzeilen/-strangzeilen können durch das Schreiben von Blinddaten, die die Grenz-WLs isolieren und die Grenz-WLs so vor dem Temperaturkreuzeffekt schützen, wie in Bezug auf 4 beschrieben, aufgefüllt werden. Gegebenenfalls können betroffene Grenzstrangzeilen/-wortzeilen sofort oder innerhalb kurzer Zeit nachdem die Entscheidung getroffen wurde, den Block vorzeitig mit hoher Priorität zu schließen, evakuiert werden.
  • In manchen Ausführungen können Abweichungswerte verwendet werden, anstatt Speicherzugriffsparameter (z. B. Lesespannungen) zu speichern, die spezifischen Temperaturen oder Temperaturbereichen entsprechen. Zum Beispiel, wenn Daten bei einer bestimmten Temperatur programmiert werden, gibt es einen Satz an Leseparametern die „optimal“ für das Lesen der Daten bei dieser bestimmten Temperatur sind. Diese Temperatur kann auf Systemebene erfasst werden und der „optimale“ Lesezustand kann berechnet oder bestimmt werden (z. B. durch CVD-Tracking oder BES). Wenn die Daten gelesen werden, kann die Lesetemperatur gemessen werden. Wenn der Temperaturunterschied zwischen der Schreibtemperatur und der Lesetemperatur größer als ein Schwellenwert ist, kann eine Leseabweichung im Originallesezustand (z. B. als Anpassung des „optimalen“ Leseparameters) angewendet werden, sodass die entstehenden Leseparameter ein genaueres Lesen der Daten auf Grundlage des Temperaturunterschieds ermöglichen. Wenn der Unterschied relativ gering ist, kann auf die Daten im OriginalLesezustand ohne Abweichungsausgleich zugegriffen werden.
  • Nach der Generierung von angepassten Leseparametern auf Grundlage der Temperaturdifferenz und dem Lesen der Daten, kann eine BER für die Daten bestimmt werden. Wenn die BER über einem Schwellenwert liegt (z. B. eine Fehlerkorrekturkapazität des ECC-Schemas, das die Daten kodiert, überschreitet), können Originallesezustand oder Abweichung inadäquat sein. In diesem Fall können die Leseparameter mittels CVD-Tracking oder BES kalibriert werden und die Daten können mit den kalibrierten Parametern mit geringerer Fehlerzahl erneut gelesen werden.
  • In manchen Ausführungen kann die Temperaturkompensation nicht anders als während „Heroics“ angewendet werden, wenn eine BER von Daten, die aus einem Arbeitsspeicher gelesen wurde, die Daten als nichtdekodierbar rendert. In solchen Fällen kann die Anwendung von Offset-Werten zum Lesen von Daten, auf Grundlage des Temperaturunterschieds, das Lesen von Daten mit reduzierter BER ermöglichen. In manchen Ausführungen kann die Temperaturkompensation als Antwort auf die Detektion eines Musters von relativ hoher BER während einer Reihe von Leseverfahren ausgeführt werden. Zum Beispiel, als Antwort auf eine Reihe von Lesungen aus einem Arbeitsspeicher, die in hoher (aber noch korrigierbarer) BER resultieren, kann eine Speichersteuervorrichtung eine mit den Daten verbundene Schreibtemperatur lesen und eine Lesespannungsabweichung auf Grundlage des Temperaturunterschieds für die verbleibenden Leseverfahren der Reihe, wie in Bezug auf 7 im Detail beschrieben ist, anwenden.
  • Spezielle Beispiele entsprechend der Offenbarung sind mit Bezug auf die Zeichnungen unten beschrieben. In der Beschreibung sind gemeinsame Merkmale mit gemeinsamen Bezugszeichen gekennzeichnet. Wie hierin verwendet, gibt „beispielhaft“ ein Beispiel, eine Ausführung und/oder einen Aspekt an und soll nicht als beschränkend oder als Hinweis auf eine Präferenz oder eine bevorzugte Ausführung interpretiert werden. Des Weiteren ist zur Kenntnis zu nehmen, dass bestimmte Ordinalzahlen (z. B. „erste/r“ oder „zweite/r“) zur Identifikation und zur besseren Bezugnahme angegeben werden können und nicht unbedingt als physische Eigenschaften oder Ordnungen zu verstehen sind. Folglich, wie hierin verwendet, zeigt ein Ordinalwort (z. B. „erst/e“, „zweite/r“, „dritte/r“), die zur Modifikation eines Elements, wie einer Struktur, einer Komponente, einem Verfahren etc., verwendet wird, nicht unbedingt eine Priorität oder Ordnung des Elements in Bezug auf ein anderes Element an, sondern unterscheidet das Element vom anderen Element mit der (abgesehen von der Verwendung des Ordinalworts) gleichen Bezeichnung. Außerdem meinen unbestimmte Artikel („ein“ und „eine“), wie hierin verwendet, eher „ein/e oder mehr“ als „ein/e“. Wie hierin verwendet können eine Struktur oder ein Verfahren, die ein Element „aufweisen“ oder „miteinschließen“, ein oder mehrere Elemente, die nicht explizit genannt sind, aufweisen. Des Weiteren kann ein Verfahren, das „auf Grundlage“ einer Bedingung oder einem Ereignis ausgeführt wird, auch auf Grundlage einer oder mehrerer Bedingungen und eines oder mehrerer Ereignisse, die nicht explizit genannt sind, ausgeführt werden.
  • 1 zeigt ein illustratives Beispiel eines Systems 100, das eine Datenspeicherungsvorrichtung 102 und eine Zugriffsvorrichtung 180 (z. B. eine Host-Vorrichtung oder eine andere Vorrichtung) umfasst. Die Datenspeicherungsvorrichtung 102 umfasst eine temperaturbasierte Einstellvorrichtung 122, die konfiguriert ist, um eine Kompensation auf Grundlage des Temperaturunterschieds zwischen dem Schreiben von Daten in einen Arbeitsspeicher 104 und dem Lesen von Daten aus dem Arbeitsspeicher 104 durchzuführen. Die temperaturbasierte Einstellvorrichtung 122 ist auch konfiguriert, um einen Ausgleich auf Grundlage einer Programmierungstemperatur (z. B. einer Temperatur von Arbeitsspeicher 104, die direkt vor, während und nach dem Scheiben der Daten in einen Arbeitsspeicher 104 gemessen wird) außerhalb des „normalen“ Temperaturbereiches, durchzuführen.
  • Die Datenspeicherungsvorrichtung 102 und die Zugriffsvorrichtung 180 können mittels einer Verbindung (z. B. einem Kommunikationsweg), wie einem Bus oder einer Drahtlosverbindung, gekoppelt werden. Die Datenspeicherungsvorrichtung 102 kann eine erste Schnittstelle 124 (z. B. eine Zugriffsvorrichtung oder Host-Schnittstelle) umfassen, die die Kommunikation über Kommunikationswege zwischen der Datenspeicherungsvorrichtung 102 und der Zugriffsvorrichtung 180 ermöglicht.
  • Die Datenspeicherungsvorrichtung 102 kann einen Solid-State-Drive (SSD) aufweisen oder einem solchen entsprechen, den eine Zugriffsvorrichtung 180 aufweist oder von dem es getrennt (und dem es zugänglich) ist. Zum Beispiel kann die Datenspeicherungsvorrichtung 102 einen SSD umfassen oder einem solchen entsprechen, der als eingebettetes Arbeitsspeicherlaufwerk (z. B. ein mobiler, eingebettetes Arbeitsspeicherlaufwerk), Enterprise-Speicherlaufwerk (ESD), Client-Speicherlaufwerk oder Cloud-Speicherlaufwerk verwendet werden kann, wobei die Beispiele illustrativ und nicht beschränkend sind. In manchen Ausführungen ist die Datenspeicherungsvorrichtung 102 indirekt mit der Zugriffsvorrichtung 180 gekoppelt, z. B. über ein Netzwerk. Zum Beispiel kann das Netzwerk ein Rechenzentrums-Speichersystem-Netzwerk, ein Enterprise-Speicher-System-Netzwerk, ein Speicherbereichsnetzwerk, ein Cloud-Speichernetzwerk, ein lokales Netzwerk (LAN), ein Großraumnetzwerk (WAN), das Internet, und/oder ein anderes Netzwerk umfassen. In manchen Ausführungen ist die Datenspeicherungsvorrichtung 102 eine Network-Attached-Storage- (NAS-Vorrichtung oder -Komponente eines Rechenzentrums-Speichersystems, eines Enterprise-Speichersystems oder eines Speicherbereichsnetzwerks.
  • In manchen Ausführungen ist die Datenspeicherungsvorrichtung 102 in eine Zugriffsvorrichtung 180 eingebettet, wie etwa entsprechend einer Joint Electron Divices Engineering Counsil (JEDEC) Solid State Technology Association Universal Flash Storage- (UFS-) Konfiguration. Zum Beispiel kann die Datenspeicherungsvorrichtung 102 so konfiguriert sein, dass sie mit der Zugriffsvorrichtung 180 als eingebetteter Arbeitsspeicher, wie etwa eMMC® (eine Marke von JEDEC Solid State Technology Association, Arlington, Virginia) und eCD, als illustrative Beispiele, gekoppelt ist. Zur Veranschaulichung, die Datenspeicherungsvorrichtung 102 kann einer eMMC-Vorrichtung (Vorrichtung mit integrierter Multimediakarte) entsprechen. Als weiteres Beispiel kann die Datenspeicherungsvorrichtung 102 einer Speicherkarte entsprechen, wie etwa einer Secure Digital Card (SD®), einer microSD® Card, einer miniSC® Card (Marken von SD-3C LLC, Wilmington, Delaware), einer MultiMediaCard™ (MMC™) (eine Marke von JEDEC Solid State Technology Association, Arlington, Virginia) oder eine CompactFlash® Card (eine Marke von SanDisk Corporation, Milpitas, Kalifornien). Alternativ dazu kann die Datenspeicherungsvorrichtung 102 aus der Zugriffsvorrichtung 180 herausnehmbar sein (z. B. „herausnehmbar“ mit der Zugriffsvorrichtung 180 gekoppelt). Beispielsweise kann die Datenspeicherungsvorrichtung 102 herausnehmbar mit einer Zugriffsvorrichtung 180 entsprechend der Universal Serial Bus- (USB-) Konfiguration gekoppelt sein.
  • Die Datenspeicherungsvorrichtung 102 kann gemäß einer Industriespezifikation betrieben werden. Zum Beispiel kann die Datenspeicherungsvorrichtung 102 eine SSD umfassen und kann so konfiguriert sein, dass sie mit der Zugriffsvorrichtung 180 unter Verwendung eines Small Computer System Interface (SCSI)-Typen-Protokolls, wie etwa seinem Serial-Attached SCSI (SAS)-Protokoll, kommuniziert. Weitere Beispiele sind, dass die Datenspeicherungsvorrichtung 102 so konfiguriert sein kann, dass sie mit der Zugriffsvorrichtung 180 unter Verwendung eines NVM Express- (NVMe-) Protokolls oder einem Serial-Attached Technology Attachment-(SATA-) Protokoll kommuniziert. In anderen Beispielen wird die Datenspeicherungsvorrichtung 102 gemäß einer JEDEC eMMC-Spezifikation, einer JEDEC Universal Flash Storage- (UFS-) Spezifikation, einer oder mehreren anderen Spezifikationen oder einer Kombination davon betrieben und kann so konfiguriert sein, dass er unter Verwendung eines oder mehrerer Protokolle, wie einem eMMC-Protokoll, einem Universal Flash (UFS)-Protokoll, einem Universal Serial Bus (USB)-Protokoll und/oder einem anderen Protokoll, als illustrative, nicht beschränkende Beispiele, kommuniziert.
  • Die Zugriffsvorrichtung 180 kann eine Speicherschnittstelle (nicht gezeigt) umfassen und kann so konfiguriert sein, dass es mit der Datenspeicherungsvorrichtung 102 über die Datenschnittstelle kommuniziert, um Daten aus der Datenspeicherungsvorrichtung auszulesen und Daten in die Arbeitsspeichervorrichtung 103 der Datenspeicherungsvorrichtung 102 einzuschreiben. Zum Bespiel kann die Zugriffsvorrichtung 180 so konfiguriert sein, dass es mit der Datenspeicherungsvorrichtung 102 unter Verwendung von SAS, SATA oder NVMe-Protokollen kommuniziert. Andere Beispiele sind, dass die Zugriffsvorrichtung 180 gemäß einer Industriespezifikation des Joint Electron Divices Engineering Counsil (JEDEC), wie etwa einer Universal Flash Storage- (UFS-) Zugriffskontrollschnittstellenspezifikation, fungiert. Die Zugriffsvorrichtung 180 kann mit der Arbeitsspeichervorrichtung 103 nach jedem anderen geeigneten Kommunikationsprotokoll kommunizieren.
  • Die Zugriffsvorrichtung 180 kann einen Prozessor und einen Arbeitsspeicher umfassen. Der Arbeitsspeicher kann so konfiguriert sein, dass er Daten und/oder Befehle, die der Prozessor ausführen kann, speichert. Der Arbeitsspeicher kann ein einzelner Arbeitsspeicher sein oder mehrere Arbeitsspeicher umfassen, wie etwa einen oder mehrere nicht flüchtige Arbeitsspeicher, einen oder mehrere flüchtige Arbeitsspeicher oder eine Kombination davon. Die Zugriffsvorrichtung 180 kann einen oder mehrere Befehle ausführen, Daten lesen oder Daten in die Arbeitsspeichervorrichtung 103 von Datenspeicherungsvorrichtung 102 schreiben. Zum Beispiel kann die Zugriffsvorrichtung 180 so konfiguriert werden, dass es Daten, wie Daten 182, zur Speicherung in der Arbeitsspeichervorrichtung 103 bereitstellt oder das Lesen von Daten aus der Arbeitsspeichervorrichtung 103 anfordert. Die Zugriffsvorrichtung 103 kann das Folgende miteinschließen: ein Mobiltelefon, einen Computer (z. B. einen Laptop, ein Tablet oder ein Notebook), einen Musik-Player, einen Video-Player, eine Spieleinrichtung oder Konsole, einen E-Book-Reader, einen persönlichen digitalen Assistenten (PDA), ein portables Navigationsgerät, einen Computer, wie einen Laptop oder ein Notebook, einen Netzwerkcomputer, einen Server, jedes andere elektronische Gerät oder eine Kombination davon, als illustrative, nicht beschränkende Beispiele.
  • Die Arbeitsspeichervorrichtung 103 der Datenspeicherungsvorrichtung 102 kann ein oder mehrere Arbeitsspeichernacktchips (z. B. einen Arbeitsspeichernacktchip, zwei Arbeitsspeichernacktchips, acht Arbeitsspeichernacktchips oder eine andere Anzahl an Arbeitsspeichernacktchips) umfassen. Die Arbeitsspeichervorrichtung 103 umfasst einen Arbeitsspeicher 104, wie etwa einen nicht flüchtigen Arbeitsspeicher von Speicherelementen, die in einem Arbeitsspeichernacktchip der Arbeitsspeichervorrichtung 103 enthalten sind. Zum Beispiel kann der Arbeitsspeicher 104 einen Flashspeicher, wie etwa ein NAND Flash Memory, oder einen resistiven Speicher, wie etwa ein Resistive Random Access Memory (ReRAM), als illustrative, nicht beschränkende Beispiele umfassen. In manchen Ausführungen umfasst oder entspricht der Arbeitsspeicher 104 einem Arbeitsspeichernacktchip der Arbeitsspeichervorrichtung 103. Der Arbeitsspeicher 104 kann eine dreidimensionale (3D) Speicherkonfiguration aufweisen. In einer speziellen Ausführung ist der Arbeitsspeicher 104 ein nicht flüchtiger Arbeitsspeicher mit einer 3D-Speicherkonfiguration, die monolithisch in einer oder mehreren physikalischen Ebenen von Speicherzellenanordnungen mit einem aktiven Bereich, der über einem Siliziumsubstrat angeordnet ist, gebildet ist. Alternativ dazu kann der Arbeitsspeicher 104 eine andere Konfiguration haben, wie etwa eine zweidimensionale (2D) Speicherkonfiguration oder eine nicht-monolithische 3D-Speicherkonfiguration (z. B. ein gestapelter 3D-Speicherkonfigurationsnacktchip).
  • Obwohl die Datenspeicherungsvorrichtung 102 so beschrieben ist, dass sie die Arbeitsspeichervorrichtung 103 miteinschließt, kann die Datenspeicherungsvorrichtung 102 in anderen Ausführungen auch mehrere Speichermedien aufweisen, die in einer ähnlichen Weise konfiguriert sind, wie für die Arbeitsspeichervorrichtung 103 beschrieben ist. Zum Beispiel kann die Datenspeicherungsvorrichtung mehrere Speichermedien aufweisen, wobei jede Arbeitsspeichervorrichtung ein oder mehrere Gehäuse von Arbeitsspeichernacktchips miteinschließt, wobei wiederum jedes Gehäuse von Arbeitsspeichernacktchips ein oder mehrere Arbeitsspeicher, wie den Arbeitsspeicher 104, umfasst. Daten-Striping und Fehlerbehebung, wie in Bezug auf Seiten des Arbeitsspeichers 104 beschrieben, können auf Daten-Striping und Fehlerbehebung über mehrere Nacktchips, mehrere Gehäuse, mehrere Speichermedien oder eine Kombination davon ausgeweitet werden.
  • Der Arbeitsspeicher 104 kann einen oder mehrere Blöcke, wie eine NAND Flash-Löschgruppe von Speicherelementen, aufweisen. Jedes Speicherelement des Arbeitsspeichers 104 kann auf einen Status (z. B. eine Schwellenspannung in einer Flash-Konfiguration oder einen resistiven Zustand in einer resistiven Speicherkonfiguration) programmierbar sein, der eine oder mehrere Werte anzeigt. Jeder Block des Arbeitsspeichers 104 kann eine oder mehrere Wortzeilen umfassen. Jede Wortzeile kann eine oder mehrere Seiten, sowie eine oder mehrere physische Seiten umfassen. In manchen Ausführungen kann jede Seite so konfiguriert werden, dass sie ein Codewort speichert. Eine Wortzeile kann so konfigurierbar sein, dass sie als Single-Level-Cell- (SLC-) Wortzeile, als Multi-Level-Cell- (MLC-) Wortzeile oder als Tri-Level-Cell- (TLC-) Wortzeile betrieben wird, wobei diese illustrativen Beispiele nicht beschränkend sind.
  • Die Arbeitsspeichervorrichtung 103 kann eine Unterstützungsschaltung umfassen, wie etwa eine Lese-/Schreibschaltung 105, um den Betrieb eines oder mehrerer Arbeitsspeichernacktchips der Arbeitsspeichervorrichtung 103 zu unterstützen. Obwohl die Lese/-Schreibschaltung 105 als einzelne Komponente dargestellt ist, kann sie in separate Komponenten der Arbeitsspeichervorrichtung 103 geteilt werden, wie etwa in Leseschaltung und Schreibschaltung. Die Lese/- Schreibschaltung 105 kann außerhalb des einen oder der mehreren Arbeitsspeichernacktchips der Arbeitsspeichervorrichtung 103 liegen. Alternativ dazu können ein oder mehrere individuelle Nacktspeicherchips der Arbeitsspeichervorrichtung 103 eine entsprechende Lese/-Schreibschaltung umfassen, die betreibbar ist, um innerhalb eines individuellen Arbeitsspeichernacktchips einer Arbeitsspeichervorrichtung 103, unabhängig von anderen Lese- und/oder Schreibvorgängen in einem anderen Arbeitsspeichernacktchip, Daten aus einem Datenelement auszulesen und/oder in ein Datenelement einzuschreiben.
  • Die Steuervorrichtung 120 ist mit einem Speicherelement 103 über einen Bus, eine Schnittstelle (z. B. eine Schnittstellenschaltung), eine andere Struktur oder eine Kombination daraus gekoppelt. Zum Beispiel kann der Bus mehrere unterschiedliche Kanäle umfassen, um der Steuervorrichtung 120 die Kommunikation mit jedem Arbeitsspeichernacktchip der Arbeitsspeichervorrichtung 103 parallel mit und unabhängig von der Kommunikation mit anderen Arbeitsspeichernacktchips der Arbeitsspeichervorrichtung 103 zu ermöglichen.
  • Die Steuervorrichtung 120 ist konfiguriert, um Daten und Befehle von der Zugriffsvorrichtung 180 zu empfangen und Daten an die Zugriffsvorrichtung 180 zu senden. Zum Beispiel kann die Steuervorrichtung 120 Daten über die erste Schnittstelle 124 an die Zugriffsvorrichtung 180 senden und die Steuervorrichtung 120 kann die Daten von der Zugriffsvorrichtung 180 über die erste Schnittstelle 124 empfangen. Die Steuervorrichtung 120 ist konfiguriert, um Daten und Befehle an den Arbeitsspeicher 104 zu senden und Daten von Arbeitsspeicher 104 zu empfangen. Zum Beispiel ist die Steuervorrichtung 120 konfiguriert, um Daten zu senden und Befehle zu schreiben, die den Arbeitsspeicher 104 dazu veranlassen, Daten an einer bestimmten Adresse des Arbeitsspeichers 104 zu speichern. Der Schreibbefehl kann eine physische Adresse eines Teils des Arbeitsspeichers 104 angeben (z. B. eine physische Adresse einer Wortzeile des Arbeitsspeichers 104), die die Daten speichern soll. Die Steuervorrichtung 120 kann außerdem konfiguriert sein, Daten und Steuersignale an den Arbeitsspeicher 104 in Zusammenhang mit Hintergrundscanvorgängen, Speicherbereinigungsvorgängen und/oder Verschließausgleichsvorgängen etc. zu senden, wobei die Beispiele illustrativ und nicht beschränkend sind. Die Steuervorrichtung 120 ist konfiguriert, um einen Lesebefehl an den Arbeitsspeicher 104 zum Lesen von Daten aus einer bestimmten Adresse des Arbeitsspeichers 104 zu senden. Der Lesebefehl kann die physische Adresse eines Teils des Arbeitsspeichers 104 (z. B. eine physische Adresse einer Wortzeile des Arbeitsspeichers 104) angeben.
  • Die Arbeitsspeichervorrichtung 103 kann außerdem einen Temperatursensor 112 umfassen. Zum Beispiel kann der Temperatursensor 112 konfiguriert sein, um die Temperatur zu messen und der Steuervorrichtung 120 eine Angabe der gemessenen Temperatur, wie eine Lesetemperatur 162, bereitzustellen. Zum Beispiel kann der Temperatursensor 112 auf ein oder mehrere Steuersignale 160, wie den Befehl die Temperatur zu messen, ansprechen. Die Arbeitsspeichervorrichtung 103 kann einen einzelnen Temperatursensor 112 oder mehrere Temperatursensoren umfassen. Zum Beispiel, in einer Ausführung mit einer Arbeitsspeichervorrichtung 103, die mehrere Arbeitsspeichernacktchips umfasst, kann jedes Arbeitsspeichernacktchip einen eigenen Temperatursensor 112, wie in Bezug auf 8 beschrieben, aufweisen. Jeder der Temperatursensoren 112 kann unabhängig von der Steuervorrichtung 120 befragt werden, um die entsprechende Temperatur 162 des dazugehörigen Arbeitsspeichernacktchips bereitzustellen.
  • Der Arbeitsspeicher 104 ist die repräsentativen Daten 106 umfassend dargestellt. Zum Beispiel kann der Arbeitsspeicher 104 kodierte Daten umfassen, wie ein ECC-Codewort, das in eine oder mehrere Wortzeilen in einen oder mehrere Blöcke des Arbeitsspeichers 104 geschrieben ist. Der Arbeitsspeicher 104 kann außerdem eine den Daten 106 zugeordnete Schreibtemperatur 108 speichern. Zum Beispiel kann die Schreibtemperatur 108 eine Temperaturmessung der Arbeitsspeichervorrichtung 103 zum Zeitpunkt des Schreibens der Daten in den Arbeitsspeicher 104, angeben. Zum Beispiel kann die Schreibtemperatur 108 während, vor oder nach der Programmierung der Daten 106 in den Arbeitsspeicher 104 bestimmt werden. Die Schreibtemperatur 108 kann in einem Block oder einer Wortzeile als Metadaten in einen Blockkopf oder einen Wortzeilenkopf gespeichert sein.
  • Der Arbeitsspeicher 104 umfasst außerdem ein Aktualisierungsstatuszeichen 110, das den Daten 106 zugeordnet ist. Wie weiter unten im Detail beschrieben, kann das Aktualisierungsstatuszeichen 110 angeben, dass die Daten 106 im Arbeitsspeicher 104 bei einer Temperatur, die im anormalen Temperaturbereich liegt, gespeichert waren. Auf das Aktualisierungsstatuszeichen 110 kann über die Steuervorrichtung 120 zugegriffen werden, um die Daten 106 zu identifizieren, die Ziel der Aktualisierung sind, wenn die Temperatur des Arbeitsspeichers 104 wieder auf eine bestimmte Schwellentemperatur zurückgegangen ist.
  • Die Steuervorrichtung 120 umfasst eine temperaturbasierte Einstellvorrichtung 122, eine Liste markierter Daten 126, eine Fehlerkorrekturkodier- (ECC-) Engine 170, eine Temperaturhistorie 130 und eine Datenstruktur (z. B. eine Tabelle 148), die Temperaturunterschiede mit gelesenen Spannungsparametern in Verbindung bringt. Die Fehlerkorrekturkodier- (ECC-) Engine 170 ist konfiguriert, um Daten zu erhalten, die in den Arbeitsspeicher 104 gespeichert werden sollen und um ein Codewort zu generieren. Zum Beispiel kann die ECC-Engine 170 kann in einem Kodierer umfasst sein, der konfiguriert ist, Daten unter Verwendung eines ECC-Schemas zu kodieren, wie dem Reed Solomon-Kodierer, einem Bose-Chaudhuri-Hocquenghem- (BCH-) Kodierer, einem Low-Density Partity Check- (LDPC-) Kodierer, einem Turbo-Code-Kodierer, einem Kodierer, der konfiguriert ist, eine oder mehrere ECC-Kodierungsschemata oder eine Kombination davon zu kodieren. Die ECC-Engine 170 kann einen oder mehrere Dekodierer aufweisen, die konfiguriert sind, um Daten aus einem Arbeitsspeicher 104 bis zu einer Fehlerkorrekturkapazität des ECC-Schemas alle Bitfehler in den Daten zu detektieren und zu korrigieren.
  • Die temperaturbasierte Einstellvorrichtung 122 ist konfiguriert, um einen oder mehrere Vorgänge zur Regelung der Unterschiede zwischen Schreibtemperatur und Lesetemperatur der Daten auszuführen, die in den Arbeitsspeicher 104 geschrieben und/oder gelesen werden. Zum Beispiel umfasst die temperaturbasierte Einstellvorrichtung 122 einen Komparator 132, der konfiguriert ist, um eine gemessene Temperatur 140 mit einer oder mehreren Schwellenwerten, dargestellt als erster Schwellenwert 142 und als zweiter Schwellenwert 144, zu vergleichen. Zum Beispiel kann die anormale Temperatur-Engine 134 aktiviert werden, wenn die gemessene Temperatur 140 der Temperatur zum Zeitpunkt des Schreibens der Daten in den Arbeitsspeicher 114 entspricht, wie etwa einer Temperatur vom Temperatursensor 122 erhaltenen Temperatur, als Antwort auf den Erhalt der Daten 106 bei der Steuerungsvorrichtung 120, die in die Arbeitsspeichervorrichtung 103 geschrieben werden sollen, als Antwort darauf, dass der Komparator 132 bestimmt hat, dass die gemessene Temperatur 140 den ersten Schwellenwert 132 überschreitet.
  • Die anormale Temperatur-Engine 134 kann konfiguriert sein, um einen oder mehrere Vorgänge in Zusammenhang mit dem Schreiben von Daten in den Arbeitsspeicher 104 auszuführen, wenn die Temperatur des Arbeitsspeichers 104 in einem anormalen Bereich liegt. Zum Beispiel kann die anormale Temperatur-Engine 134 auf den Komparator 132 ansprechen, indem sie das Aktualisierungsstatuszeichen 110, das im Arbeitsspeicher 104 gespeichert werden soll, in Zusammenhang mit den Daten 106 hinzufügt, um eine Bezeichnung der Daten 106 in der Liste markierter Daten 126 zu speichern, um eine oder mehrere Aktionen oder eine Kombination davon auszulösen. Zum Beispiel können eine oder mehrere Aktionen von der anormalen Temperatur-Engine 134 ausgelöst werden, die der Bestimmung entsprechen, dass die zu speichernden Daten mittels einer größeren Anzahl an Paritätsbits in der ECC-Engine 170 kodiert werden müssen, als die Daten, die gespeichert werden, wenn die Temperatur nicht im anormalen Temperaturbereich ist. Alternativ oder zusätzlich dazu, kann die anormale Temperatur-Engine 134 verursachen, dass Daten in einen Arbeitsspeicher 104 in einem Single-Level-Cell-(SLC-) Modus gespeichert werden, anstatt in einem Multi-Level-Cell- (MLC-) Modus, mit mehreren Kopien der Daten anstatt einer einzelnen Kopie, und/oder mit einem langsameren und verlässlicheren Timm, z. B. einer erhöhten Anzahl an Programmimpulsen, einer reduzierten Programmierungsspannungsschrittweite oder einer oder mehreren Einstellungen, um die Programmierung verlässlicher zu machen als bei normalem Betrieb.
  • Die Trimmeinstellvorrichtung 136 kann konfiguriert werden, um einen oder mehrere Parameter, die während dem Schreiben von Daten in den Arbeitsspeicher 104 und dem Lesen aus den Arbeitsspeicher 104 verwendet werden, anzupassen. Zum Beispiel kann die Trimmeinstellvorrichtung konfiguriert werden, um einen oder mehrere Abweichungswerte der Tabelle 128 auf Grundlage der Differenz zwischen der Temperatur beim Schreiben von Daten in den Arbeitsspeicher 104 und der Temperatur, bei der die Daten aus dem Arbeitsspeicher 114 gelesen werden sollen, zu erhalten. Zum Beispiel, wenn die Steuervorrichtung 120 die Anforderung der Zugriffsvorrichtung 180 empfängt, die Daten 106 auszulesen, kann die Steuervorrichtung 120 die Schreibtemperatur 108 aus dem Arbeitsspeicher 104 abfragen und außerdem den Temperatursensor 112 instruieren, eine Messung durchzuführen und der Steuervorrichtung 120 die abgelesene Temperatur 162 bereitzustellen. Die Trimmeinstellvorrichtung 136 kann konfiguriert werden, um den Unterschied zwischen der Lesetemperatur 162 und der Schreibtemperatur 108 zu nutzen, um einen Index in Tabelle 128 zu bestimmen. Zum Beispiel kann ein Temperaturunterschied (abgebildet als ΔT1) einer ersten Veränderung in der Lesespannung 152 (ΔVR1) entsprechen. Verschieden große Temperaturunterschiede können verschiedenen Lesespannungsabweichungswerten entsprechen, die aus Tabelle 128 erhalten werden können. Die Trimmeinstellvorrichtung 136 kann konfiguriert werden, um einen Standardwert für einen oder mehrere Trimmparameter, auf Grundlage der Abweichungswerte aus Tabelle 128, einzustellen und die eingestellten Werte der Arbeitsspeichervorrichtung 103 zur Verwendung während der Datenabfrage aus Arbeitsspeicher 104 bereitzustellen.
  • Die obenstehende Beschreibung bezieht sich auf die Veränderung der Leseparameter. Zur Programmierung der Parameter (d. h. für die Veränderung des Programmierungstrimms) kann die Trimmeinstellvorrichtung, beispielsweise, die Programmierungsimpulsschrittweite oder -breite, die Programmierungsstartspannung oder die Verifikationsebenen verändern.
  • Als Antwort auf die Feststellung durch den Komparator 132, dass die gemessene Temperatur 140 von über dem ersten Schwellenwert 142 auf unter bzw. auf den zweiten Schwellenwert 144 gesunken ist, kann der Komparator 132 der Steuervorrichtung 120 angeben, dass die markierten Daten aktualisiert werden müssen (z. B. der zweite Schwellenwert 144 kann gleich dem ersten Schwellenwert 142 oder kleiner als der erste Schwellenwert 142 sein). Zum Beispiel kann die Steuervorrichtung 120 auf die Liste markierter Daten 126 zugreifen und für jeden Eintrag in der Liste markierter Daten 126 das Lesen der Daten, die dem Eintrag im Arbeitsspeicher 104 entsprechen, und eine anschließende Datenschreibung der Daten in den Arbeitsspeicher 104 anweisen. Die Steuervorrichtung 120 kann die ECC-Engine 170 dazu veranlassen, einen Datenfehlerkorrekturvorgang auszuführen, um einen oder mehrere Fehler zu korrigieren, die in den Daten bei niedriger Temperatur vor dem Zurückspeichern der Daten in den Arbeitsspeicher 104 vorkommen können.
  • Die Bereichseinstellvorrichtung 138 kann konfiguriert werden, um einen oder mehrere Temperaturschwellenwerte einzustellen, wie etwa den ersten Schwellenwert 142 und den zweiten Schwellenwert 144 auf Grundlage der Temperaturhistorie 130. Zum Beispiel, wenn die Temperaturhistorie 130 anzeigt, dass ein „normaler“ historischer Betriebstemperaturbereich der Datenspeicherungsvorrichtung 102 seit dem Einstellen des ersten Schwellenwertes 142 gestiegen ist, kann die Bereichseinstellvorrichtung 138 den Wert des ersten Schwellenwertes 142 anpassen. Ebenso kann die Bereichseinstellvorrichtung 138 einen oder mehrere Temperaturschwellenwerte auf Grundlage einer Historie der Temperaturmessungen der Arbeitsspeichervorrichtung 103 anpassen. Ein Beispiel zur Bereichseinstellung ist in Bezug auf 2 beschrieben.
  • Durch die Ausführung einer oder mehrerer Einstellungen auf Grundlage des Unterschieds zwischen Schreib- und Lesetemperatur der in Arbeitsspeicher 104 gespeicherten Daten, basierend darauf, ob die Schreibtemperatur außerhalb des normalen Temperaturbereiches liegt, oder auf Grundlage eines oder mehrerer mit der Temperatur verbundenen Faktoren, kann die Genauigkeit der Datenlese aus Arbeitsspeicher 104 verbessert werden. So kann die Datenkorrektur durch die ECC-Engine 170 verbessert werden und einer weniger starken ECC-Engine wird ermöglicht, eine äquivalente Menge an Datenkorrektur zu erreichen. Alternativ oder zusätzlich dazu kann eine verbesserte Fehlerkorrekturfähigkeit und daher eine längere Nutzungsdauer der Datenspeicherungsvorrichtung 102 erhalten werden.
  • Ein Beispiel 200 einer Temperaturbereichsanpassung ist in 2 gezeigt. Zum Beispiel kann ein erster Graph 202 eine Verteilung der historischen Temperaturmessungen 230 in Zusammenhang mit der Speicherung oder dem Abruf von Daten in und aus der Arbeitsspeichervorrichtung 103 aus 1, angeben. Wie gezeigt, können die historischen Temperaturmessungen 230 im Vergleich zu „neueren“ (z. B. aktuelleren) historischen Temperaturmessungen als „älterer“ Satz von historischen Temperaturmessungen betrachtet werden. Auf Grundlage der älteren historischen Temperaturmessungen 230 können drei oder mehr Temperaturbereiche festgelegt werden, wobei der erste Temperaturbereich 220, der zweite Temperaturbereich 222 und der dritte Temperaturbereich 224 ist.
  • Zum Beispiel kann der erste Temperaturbereich 220 einem „normalen“ Temperaturbereich entsprechen. Der zweite Temperaturbereich 222 kann einem „anormalen“ Temperaturbereich entsprechen, der die höchste Temperatur des ersten Temperaturbereichs 220 übersteigt. Der dritte Temperaturbereich 224 kann als „anormaler“ Temperaturbereich von Temperaturen, die geringer als die erste Temperatur des ersten Temperaturbereichs 220 sind, bezeichnet werden.
  • Der erste Temperaturbereich 220 kann eine von einem ersten Schwellenwert 210 angegebenen Obergrenze haben. Zum Beispiel kann eine erste Obergrenze 210 dem ersten Schwellenwert aus 1 entsprechen. Eine erste Obergrenze 212 ist ebenfalls gezeigt und kann dem zweiten Schwellenwert 144 aus 1 entsprechen. Temperaturen, die den ersten Schwellenwert 210 überschreiten, können als Temperaturen im „anormalen“ Bereich gesehen werden, der vom zweiten Schwellenwert 220 angegeben wird. Der zweite Temperaturbereich 222 kann eine Obergrenze 216 haben, über welcher die Verlässlichkeit der Datenspeicherungsvorrichtung 102 gefährdet ist. Zum Beispiel kann das Design der Datenspeicherungsvorrichtung 102 so bestimmt sein, dass es den leistungsbezogenen Metriken bei Betrieb auf einer Temperatur zwischen Obergrenze 216 und Untergrenze 218 genügt. Ein dritter Schwellenwert 214 kann eine Grenze zwischen dem ersten Temperaturbereich 220 und dem dritten Temperaturbereich 224 angeben.
  • Als Antwort auf die Bereichsanpassung 250, die bestimmt, dass die Verteilung von aktuelleren historischen Temperaturmessungen 232 einen Teil von Messungen umfasst, kann die Bereichseinstellvorrichtung 138 eine oder mehrere Schwellenwerte 210 - 214 anpassen. Zum Beispiel, wie im zweiten Graph 204 gezeigt, kann die Bereichsanpassung 250 einen ersten Schwellenwert 210 ergeben, der bei Aktualisierung auf einen ersten Schwellenwert 260 erhöht werden kann. Der erste aktualisierte Schwellenwert 260 kann so positioniert werden, dass ein bestimmter Prozentsatz der aktuelleren historischen Temperaturmessungen 232 bei niedrigeren Temperaturen liegt, als der erste aktualisierte Schwellenwert 260. Zum Beispiel kann der erste aktualisierte Schwellenwert 260 so gewählt werden, dass ein Prozent, zwei Prozent, eineinhalb Prozent, 10 Prozent oder jeder andere Anteil der aktuelleren historischen Temperaturmessungen 232 den ersten aktualisierten Schwellenwert 260 überschreiten.
  • Der zweite aktualisierte Schwellenwert 262 kann ebenfalls eingestellt werden. Zum Beispiel kann der Offset-Wert, der auf den ersten Schwellenwert 210 angewendet wird, um einen ersten aktualisierten Schwellenwert 260 zu generieren, auch auf den zweiten Schwellenwert 212 angewendet werden, um den zweiten aktualisierten Schwellenwert 262 zu generieren. Alternativ dazu können eine oder mehrere Techniken verwendet werden, um den zweiten aktualisierten Schwellenwert 262 zu bestimmen, wie etwa durch die Selektion des zweiten aktualisierten Schwellenwerts 262, basierend darauf, dass der Anteil der aktuellen historischen Messdaten 232 größer ist als jener des zweiten aktualisierten Schwellenwerts 262.
  • Die Erhöhung des ersten aktualisierten Schwellenwertes 260 kann den zweiten Temperaturbereich 222 verringern und einen zweiten aktualisierten Temperaturbereich 272 bilden. Der erste Temperaturbereich 220 kann so aktualisiert werden, dass er den ersten aktualisierten Temperaturbereich 270 bildet, der sich vom ersten aktualisierten Schwellenwert 260 bis zum dritten aktualisierten Schwellenwert 264 erstreckt. Wie beschrieben, kann zum Beispiel der erste Temperaturbereich 220, auf Grundlage der Verschiebung des ersten Schwellenwertes 210, auf den aktualisierten ersten Schwellenwert 260 verschoben werden. Dementsprechend kann ein Temperaturunterschied zwischen dem ersten aktualisierten Schwellenwert 260 und dem dritten aktualisierten Schwellenwert 264 gleich dem Temperaturunterschied zwischen dem ersten Schwellenwert 210 und dem dritten Schwellenwert 214 sein.
  • Der dritte Temperaturbereich 224 kann angepasst werden, um den aktualisierten dritten Temperaturbereich zu bilden. Zum Beispiel kann die Untergrenze 128 unangepasst bleiben und der aktualisierte dritte Temperaturbereich 274 kann sich zwischen der Untergrenze 202 und dem dritten aktualisierten Schwellenwert 264 erstrecken.
  • Da die Auswirkungen von Temperatur auf Datenspeicherung und -abruf überwiegend auf dem Temperaturunterschied zwischen der Schreib- und der Lesetemperatur basieren, kann das Verhältnis zwischen Datenschreibung und/oder Datenlese im bzw. in den anormalen Temperaturbereich/en reduziert werden, indem die Temperaturbereiche 220 - 224, auf Grundlage einer aktuellen Historie von historischen Temperaturmessungen angepasst werden, woraus sich bessere Leistung und geringere Fehlerraten im Vergleich zum Betrieb in unangepassten Temperaturbereichen 220 - 224 ergeben.
  • 3. zeigt ein Beispiel 300 einer Implementierung, die bei der Datenspeicherungsvorrichtung 102 aus 1 verwendet werden kann. Eine angepasste Lesespannung kann auf Grundlage einer Summe an Standardwerten der Lesespannung 301 oder aus dieser generiert werden, und es kann eine Abweichung aus einer Abweichungstabelle 302 erhalten werden. Zum Beispiel kann die Offset-Tabelle 302 der Tabelle 128 aus 1 entsprechen. Die Offset-Tabelle 302 umfasst mehrere Spalten, wobei jede Spalte einem bestimmten Lesetemperaturbereich entspricht. Die Offset-Tabelle 302 umfasst außerdem eine Menge an Reihen, wobei jede Reihe einem bestimmten Schreibtemperaturbereich entspricht.
  • Ein Beispiel für Temperaturbereiche, die als Lesetemperaturbereiche und Schreibtemperaturbereiche verwendet werden können, ist in der Bereichstabelle 304 gezeigt. Zum Beispiel kann sich Bereich 0 von einer Temperatur von -25 Grad (z. B. Grad Celsius) bis zu einer Temperatur von 0 Grad erstrecken. Bereich 1 kann einer Temperatur im Bereich von einem Grad bis 25 Grad entsprechen. Bereich 2 kann einer Temperatur im Bereich von 26 Grad bis 50 Grad entsprechen. Bereich 3 kann einer Temperatur im Bereich von 51 Grad bis 75 Grad entsprechen. Bereich 4 kann einer Temperatur im Bereich von 76 Grad bis 100 Grad entsprechen.
  • Wie gezeigt, spart die Offset-Tabelle 302 Werte für Einträge aus, welche passenden Schreibtemperaturbereichen und Lesetemperaturbereichen entsprechen. Zum Beispiel umfasst der Eintrag in der Offset-Tabelle 302, der einer Lesetemperatur in Bereich 1 und einer Schreibtemperatur in Bereich 1 entspricht, einem Wert „N/A“, was bedeutet, dass der Eintrag in der Tabelle entweder ausgelassen wurde, keine Daten oder keine Werte enthält (z. B. Null-Abweichung vom Standardwert 301). Andere Einträge der Offset-Tabelle 302 umfassen Offset-Werte, die positive Werte oder negative Werte sein können. Wenn der Lesetemperaturbereich einem niedrigeren Temperaturbereich entspricht als dem Schreibtemperaturbereich, kann die Abweichung in den Tabelleneinträgen einen negativen Wert haben, wie etwa Offset_Neg_1. Ebenso können Tabelleneinträge, bei denen der Schreibtemperaturbereich den Lesetemperaturbereich übersteigt, positiv sein, wie etwa Offset_Pos_1.
  • Wie gezeigt können für fünf Temperaturbereiche eine Gesamtzahl von vier negativen Offset-Werten und vier positiven Offset-Werten verwendet werden. So kann eine reduzierte Datenmenge für das Einstellen der Differenzen zwischen Lesetemperaturbereichen, unter Verwendung einer relativ kleinen Menge an Offset-Daten im Vergleich zur Verwendung eines bestimmten Offset-Werts für jede Temperaturdifferenz, verwendet werden. Obwohl die Offset-Tabelle 302 in Tabellenformat gezeigt ist, können die Werte Offset_Pos_1-4 und Offset_Neg_1.4 in anderen Ausführungen in einer Datenstruktur gespeichert werden, die kein Tabellenformat hat und, auf Grundlage der Differenzen zwischen der Lesetemperatur und der Schreibtemperatur, selektiv abgerufen werden.
  • 4 zeigt ein Beispiel 400 der Arbeitsspeichervorrichtung 103 von 1, nachdem die Steuervorrichtung 120 als Antwort auf die Programmierung von Temperaturänderungen über einem Schwellenwert partiell geschriebene, offene Blöcke geschlossen hat. Zum Beispiel können Daten, die in die Arbeitsspeichervorrichtung 103 geschrieben sind, auf verschiedene Nacktchips, einen ersten Nacktchip 402 und einen zweiten Nacktchip 404 aufweisend, verteilt werden. Der erste Nacktchip 402 kann eine erste Ebene 410 und eine zweite Ebene 412 umfassen und der zweite Nacktchip 404 kann eine erste Ebene 414 und eine zweite Ebene 416 umfassen. Jede Ebene 410 - 416 kann mehrere Stränge umfassen, gezeigt als Strang 0, Strang 2, Strang 2 und Strang 3. Jeder Strang kann einer physischen Seite entsprechen und kann so bemessen sein, dass er eine ausreichende Zahl an Speicherelementen des Arbeitsspeichers 104 aufweist, um einen Datensektor, wie etwa das ECC-Codewort, zu speichern. Jede Ebene 410 - 416 ist so gezeigt, dass sie einen einzigen repräsentativen Block mit 24 Wortzeilen umfasst und von der Steuervorrichtung als „4-Block“-Metablock betrieben werden kann. Obwohl ein einzelner Block für jede Ebene 410 - 416 gezeigt ist, ist es so zu verstehen, dass jede Ebene 410 - 416 jede beliebige Anzahl an Blöcken haben kann.
  • Daten können in der Arbeitsspeichervorrichtung 103 gemäß einer Reihenfolge an Seitenschreibungen, angezeigt als Seitenzahlen, innerhalb der jeweiligen Ebenen 410 - 416 gespeichert werden. Zum Beispiel kann eine erste Datenseite („page 0“) in Strang 0 der ersten Ebene 410 des ersten Nacktchips 402 geschrieben werden. Eine zweite Datenseite kann in einen ersten Strang der zweiten Ebene 412 des ersten Nacktchips 402 geschrieben werden. Eine dritte Datenseite kann in einen ersten Strang der ersten Ebene 414 des zweiten Nacktchips 404 geschrieben und eine vierte Datenseite kann in einen ersten Strang der zweiten Ebene 416 des zweiten Nacktchips 404 geschrieben werden.
  • Wenn Daten zum Schreiben in die Arbeitsspeichervorrichtung 103 der Zugriffsvorrichtung 180 erhalten werden, kann die Steuervorrichtung 120 die Temperatur überprüfen und eine Temperaturveränderung mit einem Blockschwankungsschwellenwert vergleichen. Zum Beispiel kann die Steuervorrichtung 120, als Antwort auf die Detektion einer Temperaturveränderung, die einen Blockschwankungsschwellenwert nach dem Schreiben von Daten in einen Block übersteigt, wie der gezeigte Block der zweiten Ebene 416 des zweiten Nacktchips 404, der die Datenspeicherungsseite 327 umfasst, konfiguriert werden, den Block zu schließen, um weitere Schreibvorgänge in einem unverwendeten Teil des Blocks (oder der mehreren Blocks, falls diese als Metablock betrieben werden) zu verhindern. Zum Beispiel kann jeder Block zunächst alle gelöschten Wortzeilen umfassen, und wenn Daten erhalten werden, können die Wortzeilen, wie in 4 beschrieben, bis Seite 327 in den Arbeitsspeicher geschrieben werden. Nach dem Schreiben von Seite 327 kann eine Temperaturmessung die der Seite 327 zugeordnet ist, eine Temperaturmessung die dem Schreiben von Seite 0 in den Arbeitsspeicher 103 zugeordnet ist, um mehr als den Blockschwankungsschwellenwert überschreiten. Als Antwort auf die Detektion, dass die Temperaturveränderung zwischen dem Schreiben von Seite 327 und dem Schreiben von Seite 0 den Blockschwankungsschwellenwert übersteigt, kann die Steuervorrichtung 120 konfiguriert werden, Blinddaten in die 344 - 359 bezeichneten Seiten einzuschreiben, um eine Grenze zu bilden, die die zuletzt geschriebenen gültigen Daten jedes Blocks, gezeigt als Seiten 328-343, von gelöschten Wortzeilen isoliert, die nach dem Schließen des Blocks nicht geschrieben bleiben.
  • Durch das Schreiben von Blinddaten in die Grenzwortzeilen kann eine erhöhte Datenretention nach dem Schließen des Blocks aufrechterhalten werden. Durch das Schließen des Blocks bei einer Temperaturveränderung über dem Schwellenwert, kann das Lesen der Daten aus dem Block unter Verwendung eines Satzes an Leseparametern erreicht werden, ohne dass eine Anpassung der Leseparameter für unterschiedliche Wortzeilen des Blocks notwendig ist. So kann der Parametereinstellbereich für Daten, die aus dem Block gelesen werden, durch die Beschränkung der Schreibtemperatur für die Daten, die in den Block geschrieben werden, reduziert werden.
  • 5. zeigt ein weiteres Beispiel für die Schließung eines oder mehrere Blöcke als Antwort auf die Temperaturschwankung über ein bestimmtes Maß innerhalb des Blocks. Das Beispiel 500 unterscheidet sich von Beispiel 400 insofern, als die Steuervorrichtung 120 keine Blinddaten an der Grenze, die auf die letzten gültigen in den Arbeitsspeicher 103 geschriebenen Daten folgt, schreibt. Obwohl die Schließung der Blöcke gemäß Beispiel 500 schneller durchgeführt werden kann als in Beispiel 400, weil weniger Daten geschrieben werden (z. B. werden Blinddaten ausgespart), kann in Beispiel 400 eine bessere Datenretention und eine geringere Fehlerrate unter Verwendung von Blinddaten erreicht werden.
  • 6 zeigt ein Beispiel eines Systems 600, das in der Datenspeicherungsvorrichtung 102 aus 1 implementiert werden kann. Zum Beispiel umfasst das System 600 eine Arbeitsspeichervorrichtung 103 und eine Steuervorrichtung 120 aus 1. Die Steuervorrichtung 120 umfasst eine Zeit- und Temperaturgruppenverwaltungseinheit 602 der konfiguriert ist, um auf eine Datenstruktur 604 zuzugreifen, wie etwa eine Tabelle oder Anordnung, die Indikatoren von Datengruppen Speicherzugriffsparametern zuordnen, die den Datengruppen zugeordnet sind. Zum Beispiel kann eine Datengruppe 620, bezeichnet als Gruppe „N“, mit einem ersten Satz an Zugriffsparametern 630 verbunden werden, wie etwa einem ersten Satz an Lesespannungsparametern, einem ersten Satz an Schreibspannungsparametern, einem ersten Satz an Löschparametern oder einer Kombination davon. Ein zweiter Gruppenindikator 622 ist als Gruppe „N+1“ bezeichnet und einem zweiten Satz an Speicherzugangsparametern 632 zugeordnet.
  • Die Zeit- und Temperaturgruppenverwaltungseinheit 602 kann konfiguriert sein, einen Gruppenindikatorzeiger 604 zu erhalten, der eine aktuelle Gruppe angibt, die als Speicherdaten in der Arbeitsspeichervorrichtung 103 verwendet werden sollen. Zeigt der Gruppenindikatorzeiger 640 zum Beispiel auf einen Gruppenindikator N 620, können von der Zugriffsvorrichtung 180 erhaltene Daten, die in die Arbeitsspeichervorrichtung 103 gespeichert werden sollen, mit der Gruppe N verbunden werden und der erste Satz an Parametern 630 kann verwendet werden, um die Daten in die Arbeitsspeichervorrichtung 103 zu schreiben und zu lesen. Die Zeit- und Temperaturgruppenverwaltungseinheit 602 kann konfiguriert sein, den Gruppenindikatorzeiger 640 zu aktualisieren, um auf Grundlage eines oder mehrerer Ereignisse eine nächste Gruppe anzuzeigen.
  • Zum Beispiel kann eine Gruppe einen Zeitschwellenwert 606 haben, der mit einer Zeitmessung (z. B. der aktuellen Zeit) verglichen wird. Als Antwort darauf, dass die aktuelle Zeit den Zeitschwellenwert der aktuellen Gruppe 606 überschreitet, kann die Zeit- und Temperaturgruppenverwaltungseinheit 602 die Generierung einer neuen Gruppe durch einen neuen Gruppengenerator 610 verursachen. Alternativ oder zusätzlich dazu kann ein oberer und/oder unterer Temperaturbereich der aktuellen Gruppe, auf Grundlage des aktuellen Gruppentemperaturschwellenwerts 608, angezeigt werden. Zum Beispiel wenn die aktuelle Gruppe gebildet wird, kann eine gemessene Temperatur der Arbeitsspeichervorrichtung 103 erhalten und dazu verwendet werden, einen aktuellen Gruppentemperaturschwellenwert 608 zu generieren. Zum Beispiel kann der aktuelle Gruppentemperaturschwellenwert 608 verwendet werden, um das Maß an Temperaturschwankung, das bei der Datenschreibung vorkommt, zu beschränken. Zum Beispiel kann die aktuelle Gruppe auf einen bestimmten Temperaturbereich beschränkt werden, wie etwa auf einen Bereich von 20 Grad, der auf eine Schreibtemperatur der Gruppe zentriert ist.
  • Zur Veranschaulichung, wenn eine neue Gruppe gebildet wird, wird eine Temperatur T_new der Arbeitsspeichervorrichtung 103 gemessen. Eine obere Temperatur T_hi für die Gruppe kann mit T_hi = T_new + 10 berechnet werden; eine untere Temperatur T_lo für die Gruppe kann mit T_lo = T_new + 10 berechnet werden. Der aktuelle Gruppentemperaturschwellenwert 608 kann mehrere Elemente (z. B. einen Vektor) umfassen, T_lo und T_hi miteingeschlossen. In diesem Fall ist der aktuelle Gruppentemperaturschwellenwert „über-“ bzw „unterschritten“, wenn eine gemessene Temperatur höher als T_hi ist oder wenn die gemessene Temperatur geringer als T_lo ist. In anderen Ausführungen kann der aktuelle Gruppentemperaturschwellenwert 608 einen Differenzschwellenwert repräsentieren, wie etwa 10 Grad, und kann „überschritten“ werden, wenn ein absoluter Differenzwert zwischen einer gemessenen Temperatur T_meas und T_new (z. B. |Tmeas-Tnew|) größer ist, als der Differenzschwellenwert.
  • Der neue Gruppengenerator 610 kann konfiguriert werden, einen neuen Gruppenindikator und einen neuen Satz an Speicherzugriffsparametern in die Datenstruktur 604 einzupflegen. Zum Beispiel, wenn die aktuelle Gruppe N 620 ist und der aktuelle Gruppenzeitschwellenwert 606 oder der aktuelle Gruppenzeitschwellenwert 608 überschritten werden, kann die Zeit- und Temperaturgruppenverwaltungseinheit einen neuen Gruppengenerator 610 dazu veranlassen, einen neuen Gruppenindikator N+1 622 zu generieren und einen zweiten Speicherzugriffsparameter 632 zu bestimmen, der mit der Gruppe N+1 verbunden ist.
  • Während des Betriebs kann der Gruppenindikatorzeiger 640 den ersten Gruppenindikator 620 angeben. Daten, die die Steuervorrichtung 120 zum Schreiben in die Arbeitsspeichervorrichtung 103 erhält, können Zeitdaten und Temperaturdaten zugeordnet werden. Zum Beispiel, können erste Daten 650, die ersten Zeitdaten 652 und den ersten Temperaturdaten 654 zugeordnet sind, erhalten werden. Zum Beispiel können die ersten Zeitdaten 652 einer chronologischen Zeit, einer Zählung der Speicherzugriffe oder Schreibe-/Löschzyklen, Speichergesundheitsmessung, einer Zählung der Leistungszyklen oder eine andere Angaben von Zeitablauf oder Speicherverwendung entsprechen. Die ersten Temperaturdaten 654 können von einem Temperatursensor der Arbeitsspeichervorrichtung 103 erhalten werden, wie etwa dem Temperatursensor 112 von 1. Die Zeit- und Temperaturgruppenverwaltungseinheit 602 kann die ersten Zeitdaten 652 mit dem aktuellen Gruppenzeitschwellenwert 606 und die ersten Temperaturdaten 654 mit dem aktuellen Gruppenzeitschwellenwert 608 vergleichen. Als Antwort auf die Feststellung, dass die ersten Zeitdaten 652 den aktuellen Gruppenzeitschwellenwert 606 nicht überschreiten und die ersten Temperaturdaten 654 den dem aktuellen Gruppenzeitschwellenwert 608 nicht überschreiten, kann die Zeit- und Temperaturgruppenverwaltungseinheit 602 die ersten Daten 650 der aktuellen Gruppe N zuordnen, und der Arbeitsspeichervorrichtung 103 die ersten Zugriffsspeicherparameter 630 zur Speicherung der ersten Daten 650 bereitstellen.
  • Nach dem Speichern der ersten Daten 650 kann die Steuervorrichtung 610 zweite Daten 660 erhalten, die zweiten Zeitdaten 662 und zweiten Temperaturdaten zugeordnet sind. Obwohl die zweiten Zeitdaten 662 den aktuellen Gruppenzeitschwellenwert 606 nicht überschreiten müssen, können die zweiten Temperaturdaten 664 den aktuellen Gruppenzeitschwellenwert 608 überschreiten.
  • Als Antwort auf die Feststellung, dass die zweiten Temperaturdaten 664 den aktuellen Gruppenzeitschwellenwert 608 überschreiten, kann die Zeit- und Temperaturgruppenverwaltungseinheit 602 eine neue Gruppe N+1 generieren, den zweiten Gruppenindikator 662 generieren, die zweiten Speicherzugriffsparameter 632 bestimmen und der Arbeitsspeichervorrichtung 103 die zweiten Speicherzugriffsparameter 632 zur Speicherung der zweiten Daten 660 bereitstellen. Zusätzlich dazu kann die Zeit- und Temperaturgruppenverwaltungseinheit 602 den Gruppenanzeigenzeiger 640 aktualisieren, sodass dieser auf den zweiten Gruppenindikator 662 zeigt.
  • Ein weiteres Verfahren das für die Entscheidung, ob eine neue Zeit- und Temperaturmarkierung (z. B. die Bildung einer neuen Gruppe mit einem neuen Gruppenindikator) geöffnet werden soll, verwendet werden kann ist, dass wann immer neue Daten programmiert werden (z. B. ein neuer Block), der Block mit den Leseparametern, die der aktuellen Zeit- und Temperaturmarkierung zugeordnet sind, gelesen werden kann. Falls die für das gelesene Ergebnis gemessene BER nicht zur von der Zeit- und Temperaturmarkierung angezeigten BER passt, kann eine neue Zeit- und Temperaturgruppe gebildet werden und der aktuelle Block kann der neuen Gruppe zugeordnet werden. Zum Beispiel, in Fällen von Leistungsabfällen der Datenspeicherungsvorrichtung und wenn der Arbeitsspeicher wieder eingeschaltet wird, ist der Datenspeicherungsvorrichtung möglicherweise nicht bekannt, wie viel Zeit vergangen ist. Daher kann die Steuervorrichtung so konfiguriert sein, dass sie überprüft, ob die der letzten Zeit- & Temperaturgruppe bzw. -markierung zugeordneten Parameter mit dem neu programmierten Block zusammenpassen.
  • Durch die Beschränkung der den Daten zugeordneten Gruppe innerhalb eines üblichen Zeitbereiches und auch innerhalb eines üblichen Temperaturbereichs, kann die Anwendbarkeit der der Gruppe zugeordneten Speicherzugriffsparameter erhalten bleiben. Zum Beispiel kann eine Schwankung von Datencharakteristika der gespeicherten Arbeitsspeichervorrichtung 103 relativ beschränkt werden, sodass die mit der Gruppe verbundenen Speicherzugriffsparameter verlässliches Lesen und Schreiben der Daten unter Verwendung der Datenzugriffsparameter für die Gruppe ermöglichen. Die Anpassung von Speicherzugriffsparametern, wie etwa aufgrund von Gerätenutzung oder als Antwort auf die Temperaturschwankung der Datenspeicherungsvorrichtung, kann durch die Anpassung der mit der Gruppe verbundenen Speicherzugriffsparameter durchgeführt werden, im Gegensatz zur Anpassung der Speicherzugriffsparameter für einzelnen Datenzugriff in der Arbeitsspeichervorrichtung 103. Dies kann durch die Kalibrierung der Parameter auf repräsentativen Seiten der Gruppe gemacht werden, anstelle der Kalibrierung jeder einzelnen Seite innerhalb der Gruppe, wodurch Zeit gespart und die Komplexität der Wartung verringert wird. Die Aktualisierung der Parameter der unterschiedlichen Zeit- und Temperaturgruppen kann in Wartungsvorgängen im Hintergrund durchgeführt werden. Alternativ dazu kann die Aktualisierung der Parameter durch ein Ereignis im Vordergrund ausgelöst werden (z. B. wenn hohe BER während einer Host-Lesung beobachtet wird).
  • 7 ist ein Blockdiagramm eines anderen illustrativen Beispiels der Datenspeicherungsvorrichtung aus 1. 7 zeigt eine Datenspeicherungsvorrichtung 700, die eine Arbeitsspeichervorrichtung 103 umfasst, die mit einer Steuervorrichtung 120 gekoppelt ist. Die Arbeitsspeichervorrichtung 103 und die Steuervorrichtung 120 können eine Arbeitsspeichervorrichtung 103 und eine Steuervorrichtung 120 aus 1 umfassen oder ihnen entsprechen.
  • Die Steuervorrichtung 120 kann eine ECC-Engine 170 und einen temperaturbasierten Regler 122 umfassen. Die Steuervorrichtung 120 kann konfiguriert sein, um mehrere Codewörter aus den Daten aus der Arbeitsspeichervorrichtung 103 auszulesen. Zum Beispiel kann die Steuervorrichtung 120 konfiguriert sein, um ein erstes Codewort 702, ein zweites Codewort 704 und ein drittes Codewort 706 aus der Arbeitsspeichervorrichtung 103 auszulesen. In anderen Ausführungen können mehr als drei oder weniger als drei Codewörter aus der Arbeitsspeichervorrichtung 103 gelesen werden.
  • Die Steuervorrichtung 120 kann konfiguriert sein, eine Fehlerrate verbunden mit dem Lesen der Codewörter der Daten zu bestimmen. Zum Beispiel kann die ECC-Engine 170 der Steuervorrichtung 120 konfiguriert sein, eine erste Fehlerrate (z. B. eine erste Bitfehlerrate (BER)), die dem Lesen des ersten Codeworts 702 zugeordnet ist, eine zweite Fehlerrate, die dem Lesen des zweiten Codeworts 704 zugeordnet ist, eine dritte Bitfehlerrate (BER), die dem Lesen des dritten Codeworts 706 zugeordnet ist, zu bestimmen. Die Steuervorrichtung 120 kann konfiguriert sein, die bestimmten Fehlerraten als Historie von Fehlerratendaten 708, die mehrere Fehlerraten umfasst (z. B. mehrere BERs), zu erhalten. Zum Beispiel kann die ECC-Engine 170 der Steuervorrichtung 120 konfiguriert sein, um die Historie der Fehlerratendaten 708 (z. B. in einem Steuervorrichtungsspeicher) zu erhalten, die eine erste Fehlerrate 710 (z. B. BER 1) und eine n-te Fehlerrate 712 (z. B. BER n) umfassen. Die Anzahl n der Fehlerraten, die in der Historie der Fehlerratendaten 708 umfasst ist, kann der Anzahl an Codewörtern entsprechen, die aus der Arbeitsspeichervorrichtung 103 während eines bestimmten Vorgangs (oder eines Satzes an Vorgängen) gelesen werden.
  • Die temperaturbasierte Einstellvorrichtung 122 der Steuervorrichtung 120 kann konfiguriert sein, um die Fehlerrate mit einer Schwellenwertfehlerrate für eine Schwellenwertanzahl an Codewörtern zu vergleichen. Zum Beispiel kann die temperaturbasierte Einstellvorrichtung 122 einen Komparator 718 umfassen, der konfiguriert ist, eine oder mehrere Fehlerraten aus der Historie der Fehlerratendaten 708 mit einem Fehlerratenschwellenwert 714 zu vergleichen. In einer speziellen Ausführung ist der Fehlerratenschwellenwert 714 niedriger als ein Schwellenwert der korrigierbaren Fehlerrate der ECC-Engine 170. Als Antwort auf die Feststellung, dass die Fehlerraten den Fehlerratenschwellenwert 714 überschreiten, kann die temperaturbasierte Einstellvorrichtung 122 einen Temperaturkompensationsvorgang 136 auslösen. Zur Illustration kann der Codewortschwellenwert 716 drei sein und als Antwort auf das Detektieren, dass die erste Fehlerrate 710 (entsprechend dem ersten Codewort 702), eine zweite Fehlerrate (entsprechend dem zweiten Codewort 704) und die n-te Fehlerrate 712 (entsprechend dem n-ten Codewort 706) jeweils den Fehlerratenschwellenwert 714 überschreiten, kann die temperaturbasierte Einstellvorrichtung 122 den Temperaturkompensationsvorgang 136 auslösen. Der Temperaturkompensationsvorgang kann einen oder mehrere Speicherzugriffsparameter (wie etwa die Lesespannung 164 aus 1) dazu veranlassen, sich auf Grundlage der Temperaturdifferenz zwischen einer ersten Temperatur, die dem Schreiben der mehreren Codewörter 702 - 706 in die Arbeitsspeichervorrichtung 103 zugeordnet ist (z. B. die erste Temperatur ist der ersten Zeitspanne zugeordnet, die erste Zeitspanne umfasst einen Schreibvorgang der Codewörter 702 - 706 in den Arbeitsspeicher 104) und einer zweiten Temperatur, die dem Lesen der mehreren Codewörter 702 - 706 aus der Arbeitsspeichervorrichtung 103 zugeordnet ist (z. B. die zweite Temperatur ist der zweiten Zeitspanne zugeordnet; die zweite Zeitspanne umfasst einen Lesevorgang der mehreren Codewörter 702 - 706 aus Arbeitsspeicher 104), zu modifizieren.
  • Während des Vorgangs kann die Steuervorrichtung 120 mehrere Codewörter, das erste Codewort 702, das zweite Codewort 704 und das dritte Codewort 706 miteingeschlossen, aus der Arbeitsspeichervorrichtung 103 lesen. Die Steuervorrichtung 120 (z. B. die ECC-Engine 170) kann Fehlerraten, die mit den Codewörtern 704 - 706 verbunden sind, erkennen. Die Fehlerraten können in die Historie der Fehlerratendaten 708 einbezogen werden. Die Steuervorrichtung 120 (z. B. die temperaturbasierte Einstellvorrichtung 122) kann die Historie der Fehlerratendaten 708 mit dem Fehlerratenschwellenwert 714 vergleichen. Als Antwort auf die Detektion, dass die Fehlerraten die Schwellenwertanzahl 714 für eine Anzahl von sequentiellen Codewörtern, die die Anzahl von Codewörtern 716 überschreiten, kann die Steuervorrichtung 120 den Temperaturkompensationsvorgang 136 einleiten, der einen oder mehrere Speicherzugriffsparameter, auf Grundlage der Temperaturdifferenz zwischen einer ersten Temperatur, die dem Schreiben mehrerer Codewörter 704 - 706 in die Arbeitsspeichervorrichtung 103 zugeordnet ist, und einer zweiten Temperatur, die dem Lesen der mehreren Codewörter 702 - 706 aus der Arbeitsspeichervorrichtung 103, modifiziert.
  • 8 ist ein Diagramm, das ein besonderes Beispiel einer Konfiguration einer Arbeitsspeichervorrichtung der Datenspeicherungsvorrichtung von 1 zeigt. 8 zeigt eine Datenspeicherungsvorrichtung 800, die eine Arbeitsspeichervorrichtung 103 umfasst. Die Arbeitsspeichervorrichtung 103 kann eine Arbeitsspeichervorrichtung 103 aus 1 umfassen oder diesem entsprechen.
  • Die Arbeitsspeichervorrichtung 103 umfasst einen Stapel 820 an Arbeitsspeichernacktchips. Der Stapel 820 kann verschiedene Arbeitsspeichernacktchips umfassen, wie etwa einen ersten Arbeitsspeichernacktchip 802, einen zweiten Arbeitsspeichernacktchip 804, einen i-ten Arbeitsspeichernacktchip 806 und einen n-ten Arbeitsspeichernacktchip 808. In anderen Ausführungen kann der Stapel 820 mehr als n oder weniger als n Arbeitsspeichernacktchips umfassen. In einer bestimmten Ausführung ist der erste Arbeitsspeichernacktchip 802 ein oberster Nacktchip des Stapels 820 und andere Arbeitsspeicher, wie etwa der zweite Arbeitsspeichernacktchip 804 und der i-te Arbeitsspeichernacktchip 806 sind Arbeitsspeichernacktchips „in der Mitte“ des Stapels 820. Wie hierin verwendet beziehen sich Arbeitsspeichernacktchips „in der Mitte“ auf Arbeitsspeichernacktchips, die weder der oberste Nacktchip oder der unterste Nacktchip des Stapels 820 sind, sowie auf Nacktchips, die im Zentrum des Stapels liegen, z. B. Nacktchip 3 in einem Stapel aus 5 Nacktchips oder Nacktchip 4 und 5 in einem Stapel aus 8 Nacktchips.
  • Jeder Arbeitsspeichernacktchip des Stapels 820 kann einen dazugehörigen Temperatursensor umfassen. Zum Beispiel kann der erste Arbeitsspeichernacktchip 802 einen ersten Temperatursensor 812, der zweite Arbeitsspeichernacktchip 804 einen zweiten Temperatursensor 814, der i-te Arbeitsspeichernacktchip 806 einen i-ten Temperatursensor 816 und der n-te Arbeitsspeichernacktchip 808 einen n-ten Temperatursensor 818 umfassen. Jeder Temperatursensor der Temperatursensoren 812 - 818 kann konfiguriert sein, um einen Temperaturindikator der dazugehörigen Arbeitsspeichernacktchips zu generieren. Zum Beispiel kann der erste Temperatursensor 812 konfiguriert sein, um einen ersten Indikator 832 (T1) einer ersten Temperatur des ersten Arbeitsspeichernacktchips 802 zu generieren; der zweite Temperatursensor 814 kann konfiguriert sein, um einen zweiten Indikator 834 (T2) einer zweiten Temperatur des zweiten Arbeitsspeichernacktchips 804 zu generieren, der i-te Temperatursensor 816 kann konfiguriert sein, um einen dritten Indikator 836 (T3) einer dritten Temperatur des i-ten Arbeitsspeichernacktchips 806 zu generieren und der n-te Temperatursensor 818 kann konfiguriert sein, um einen vierten Indikator 838 (T4) einer vierten Temperatur des n-ten Arbeitsspeichernacktchips 808 zu generieren. Die Arbeitsspeichervorrichtung 103 kann konfiguriert sein, um der Steuervorrichtung 120 die Indikatoren 832 - 838 zur Verarbeitung bereitzustellen.
  • Die Steuervorrichtung kann konfiguriert sein, um verschiedene Indikatoren der Arbeitsspeichervorrichtung 103 zu erhalten und einen Durchschnitt auf Grundlage der verschiedenen Indikatoren zu bestimmen. Zum Beispiel kann die Steuervorrichtung konfiguriert sein, um einen Indikator 832 der ersten Temperatur des ersten Temperatursensors 812 und den dritten Indikator 836 der dritten Temperatur des i-ten Temperatursensors 816 zu erhalten. Die Steuervorrichtung kann konfiguriert sein, eine Durchschnittstemperatur 840 aus der ersten Temperatur und der dritten Temperatur zu bestimmen. Auf diese Weise kann die Durchschnittstemperatur auf Grundlage einer Temperatur einen nicht „in der Mitte“ liegenden Arbeitsspeichernacktchips (z. B. dem ersten Arbeitsspeichernacktchip 802) und einem in der Mitte liegenden Arbeitsspeichernacktchip (z. B. dem i-ten Arbeitsspeichernacktchip 806) bestimmt werden. Da der erste Arbeitsspeichernacktchip 802 der kühlste und der in der Mitte liegende Nacktchip (z. B. der i-te Arbeitsspeichernacktchips 806) der heißeste ist, kann die Durchschnittstemperatur 840 für ein Bandbreite an Temperaturen der Arbeitsspeichernacktchips im Stapel 820 repräsentativ sein.
  • In manchen Ausführungen kann die Durchschnittstemperatur 840 außerdem auf Indikatoren (z. B. dem zweiten Indikator 834, dem n-ten Indikator 838 oder beiden) der Temperaturen anderer Arbeitsspeichernacktchips beruhen. Als nichtbeschränkende Beispiele kann die Durchschnittstemperatur 840 auf Basis des ersten Indikators 832 und des zweiten Indikators 834, des n-ten Indikators 838 und des zweiten Indikators 834, des n-ten Indikators 838 und des i-ten Indikators 836 oder anderen Kombinationen aus zwei oder mehreren der Indikatoren 832 - 838 beruhen. Die Durchschnittstemperatur 840 kann eine Mitteltemperatur, eine gewichtete Mitteltemperatur, eine mittlere Temperatur, einen Modalwert der Temperaturen oder eine andere statistische Messung von zentraler Genauigkeit umfassen oder diesen entsprechen. Die Steuervorrichtung kann des Weiteren konfiguriert sein, einen Temperaturbereich in Verbindung mit einem Speicherzugriff auf Grundlage der Durchschnittstemperatur 840 zu bestimmen. In anderen Ausführungen kann die Arbeitsspeichervorrichtung 103 konfiguriert sein, um die oben beschriebenen Steuervorrichtungsmaßnahmen durchzuführen. Zum Beispiel kann die Arbeitsspeichervorrichtung 103 die Durchschnittstemperatur 840 und einen Temperaturbereich des Stapels 820 auf Grundlage der Durchschnittstemperatur 840 bestimmen.
  • Während des Betriebes können Temperatursensoren der Arbeitsspeichernacktchips aus Stapel 820 Temperaturindikatoren eines entsprechenden Arbeitsspeichernacktchips generieren. Zum Beispiel kann der erste Temperatursensor 812 den ersten Indikator 832 der ersten Temperatur des ersten Arbeitsspeichernacktchips 802 generieren, der zweite Temperatursensor 814 kann den zweiten Indikator 834 der zweiten Temperatur des zweiten Arbeitsspeichernacktchips 804 generieren, der i-te Temperatursensor 816 kann den dritten Indikator 836 der dritten Temperatur des i-ten Arbeitsspeichernacktchips 806 generieren und der n-te Temperatursensor 818 kann den vierten Indikator 838 der vierten Temperatur des n-ten Arbeitsspeichernacktchips 808 generieren. Die Steuervorrichtung (z. B. die Steuervorrichtung 120 aus 1) kann Indikatoren der Arbeitsspeichervorrichtung 103 erhalten und die Durchschnittstemperatur 840 bestimmen. Zum Beispiel kann die Steuervorrichtung einen ersten Indikator 832 der ersten Temperatur und den i-ten Indikator 836 der dritten Temperatur erhalten und die Steuervorrichtung kann die Durchschnittstemperatur 840 für die erste und dritte Temperatur bestimmen. Die Steuervorrichtung kann einen Temperaturbereich in Verbindung mit einem Speicherzugriff auf Grundlage der Durchschnittstemperatur 840 bestimmen. In einer anderen Ausführung kann die Arbeitsspeichervorrichtung 103 den Temperaturbereich und die Durchschnittstemperatur 840 bestimmen und die Arbeitsspeichervorrichtung 103 kann einen Indikator des Temperaturbereichs an die Steuervorrichtung senden.
  • 9 ist ein Flussdiagramm eines besonderen Beispiels für ein Verfahren 900 zur Aktualisierung von Daten. Das Verfahren 900 kann in einer Datenspeicherungsvorrichtung durchgeführt werden, die eine Steuervorrichtung und einen nicht flüchtigen Arbeitsspeicher umfasst. Zum Beispiel kann das Verfahren 900 von der Datenspeicherungsvorrichtung 102 aus 1 ausgeführt werden.
  • Das Verfahren 900 umfasst bei 902 Markierungsdaten, die in einem nicht flüchtigen Arbeitsspeicher zur Aktualisierung als Antwort auf die Feststellung, dass eine erste gemessene Temperatur die dem Schreiben von Daten in den nicht flüchtigen Arbeitsspeicher zugeordnet ist, einen ersten Schwellenwert überschreitet, gespeichert sind. Zum Beispiel kann die temperaturbasierte Einstellvorrichtung 122 aus 1 bestimmen, dass die Schreibtemperatur 108 (z. B. eine erste gemessene Temperatur in Verbindung mit dem Schreiben der Daten 106 in einen Arbeitsspeicher 104) den ersten Schwellenwert 142 überschreitet. In diesem Beispiel kann die temperaturbasierte Einstellvorrichtung 122 die Daten 106 durch Speicherung des Aktualisierungsstatuszeichens 110 markieren, als Antwort auf die Feststellung, dass die Schreibtemperatur 108 den ersten Schwellenwert 142 überschreitet. Alternativ oder zusätzlich dazu kann die temperaturbasierte Einstellvorrichtung 122 einen Indikator (oder einen Identifizierer) der Daten 106 in der Liste markierter Daten 126 speichern.
  • Das Verfahren 900 umfasst bei 904 die Aktualisierung der markierten Daten als Antwort auf die Detektion, dass eine zweite gemessene Temperatur, die dem nicht flüchtigen Arbeitsspeicher zugeordnet ist, einen zweiten Schwellenwert unterschreitet. Zum Beispiel kann die temperaturbasierte Einstellvorrichtung 122 aus 1 die gemessene Temperatur 140 (z. B. die zweite gemessene Temperatur) vom Temperatursensor 112 erhalten. In diesem Beispiel kann der Komparator 132 die gemessene Temperatur 140 mit dem zweiten Schwellenwert 144 vergleichen. Wenn der Wert der gemessenen Temperatur 140 unter dem zweiten Schwellenwert 144 liegt, kann die temperaturbasierte Einstellvorrichtung 122 die Aktualisierung der markierten Daten auslösen. Zur Illustration, wenn der Wert der gemessenen Temperatur 140 unter dem zweiten Schwellenwert 144 liegt, kann die Steuervorrichtung 120 auf die Liste markierter Daten 126 zugreifen, um die markierten Daten zu identifizieren. Die Steuervorrichtung 120 kann Datenaktualisierungsvorgänge auslösen, wie etwa durch das Senden eines Steuersignals 160, um die Aktualisierung der Daten 106 zu bewirken.
  • 10 ist ein Flussdiagramm eines besonderen Beispiels eines Verfahrens 1000 zur temperaturbasierten Steuervorrichtung. Das Verfahren 1000 kann in einer Datenspeicherungsvorrichtung durchgeführt werden, die eine Steuervorrichtung und einen nicht flüchtigen Arbeitsspeicher umfasst. Zum Beispiel kann das Verfahren 1000 von der Datenspeicherungsvorrichtung 102 aus 1 ausgeführt werden.
  • Das Verfahren 1000 umfasst bei 1002 das Schreiben von Daten in einen nicht flüchtigen Arbeitsspeicher. Zum Beispiel können die Daten 106 aus 1 in einen bestimmten Block des Arbeitsspeichers 104 geschrieben werden.
  • Das Verfahren 1000 umfasst bei 1004 das Schließen des Blocks, als Antwort auf die Detektion, dass eine Temperaturänderung einen Blockschwankungsschwellenwert nach dem Schreiben der Daten in den Block überschreitet. Zum Beispiel kann die temperaturbasierte Einstellvorrichtung 122 eine Temperaturänderung (z. B. auf Grundlage der gemessenen Temperatur 140 und der Temperaturhistorie 130) erkennen. Der Komparator 132 kann bestimmen, ob die Temperaturänderung einen Schwellenwert überschreitet. Als Antwort auf die Feststellung, dass die Temperaturänderung einen Schwellenwert überschreitet, kann die Steuervorrichtung 120 den Block schließen, wie in Bezug auf 4-5 beschrieben ist. Das Schließen des Blocks kann Schreibvorgänge in einen unverwendeten Teil des Blocks verhindern. In manchen Ausführungen kann die Steuervorrichtung 120 vor dem Schließen des Blocks Blinddaten in eine Wortzeile des Blocks schreiben.
  • 11 ist ein Flussdiagramm eines anderen besonderen Beispiels eines Verfahrens 1100 zur temperaturbasierten Steuervorrichtung. Das Verfahren 1100 kann in einer Datenspeicherungsvorrichtung durchgeführt werden, die eine Steuervorrichtung und einen nicht flüchtigen Arbeitsspeicher umfasst. Zum Beispiel kann das Verfahren 1100 von der Datenspeicherungsvorrichtung 102 aus 1 ausgeführt werden.
  • Das Verfahren 1100 umfasst bei 1102 die Zuordnung erster Daten, die in einem nicht flüchtigen Arbeitsspeicher gespeichert sind, zu einem ersten Gruppenindikator und, bei 1104, die Zuordnung von ersten Arbeitsspeicherzugriffsparameterwerten zum ersten Gruppenindikator. Zum Beispiel können Zeit- und Temperaturgruppenverwaltungseinheit 602 von 6 die ersten Daten 650 der ersten Gruppe 620 zuordnen. Die Zeit- und Temperaturgruppenverwaltungseinheit 602 kann außerdem die ersten Parameter 630 der ersten Gruppe 620 zuordnen.
  • Das Verfahren 1100 umfasst außerdem bei 1106 die Zuordnung zweiter Daten zur Speicherung im nicht flüchtigen Arbeitsspeicher zu einem zweiten Gruppenindikator und bei 1108 die Zuordnung von zweiten Datenzugriffsparametern zum zweiten Gruppenindikator, als Antwort auf die Detektion einer Temperaturveränderung, die einen Gruppentemperaturschwellenwert, der einem ersten Gruppenindikator zugeordnet ist, überschreitet. Zum Beispiel kann die Zeit- und Temperaturgruppenverwaltungseinheit 602 aus 6 eine Temperaturveränderung feststellen (z. B. durch den Vergleich der ersten Temperaturdaten 654 und den zweiten Temperaturdaten 664 mit einer ersten gespeicherten Temperatur für die erste Gruppe 620). Wenn die Temperaturänderung den aktuellen Gruppentemperaturschwellenwert 608 überschreitet, kann die Zeit- und Temperaturgruppenverwaltungseinheit 602 eine neue Gruppe generieren (z. B. eine zweite Gruppe 622) und die zweiten Daten 660 der zweiten Gruppe 622 zuordnen. Die Zeit- und Temperaturgruppenverwaltungseinheit 602 kann auch die zweiten Parameter 632 der zweiten Gruppe 622 zuordnen.
  • In einer besonderen Ausführung kann die Zeit- und Temperaturgruppenverwaltungseinheit 602 den Gruppenindikatorzeiger 640 speichern, der einen Gruppenindikator angeben kann (z. B. ein erster Indikator der ersten Gruppe 620 oder ein Indikator der zweiten Gruppe 622), der Daten (z. B. Daten, die von der Zugriffsvorrichtung 180 empfangen wurden) zugeordnet werden soll, die in den nicht flüchtigen Arbeitsspeicher geschrieben werden sollen. In diesem besonderen Beispiel kann die Zeit- und Temperaturgruppenverwaltungseinheit 602, als Antwort auf die Detektion von Temperaturänderungen, den Gruppenindikatorzeiger 640 aktualisieren, dass er den Indikator der zweiten Gruppe 622 zeigt.
  • 12 ist ein Flussdiagramm eines weiteren besonderen Beispiels eines Verfahrens 1200 zur Bestimmung des Lesespannungswerts. Das Verfahren 1200 kann in einer Datenspeicherungsvorrichtung durchgeführt werden, die eine Steuervorrichtung und einen nicht flüchtigen Arbeitsspeicher umfasst. Zum Beispiel kann das Verfahren 1200 von der Datenspeicherungsvorrichtung 102 aus 1 ausgeführt werden.
  • Das Verfahren 1200 kann bei 1202 das Bestimmen eines Lesespannungsoffsetwerts auf Grundlage der Datenstruktur, die Lesespannungsoffsetwerte in Bezug auf die Differenzen zwischen Schreibtemperatur und Lesetemperatur abbildet, umfassen. Zum Beispiel kann die Datenstruktur eine Tabelle 128 umfassen und eine temperaturbasierte Einstellvorrichtung 122 kann eine Loopup-Operation durchführen, bei der die Tabelle 128 gelesen wird, um die Lesespannungsoffsetwerte zu bestimmen, wie etwa den ersten Lesespannungsoffsetwert 152, der einem bestimmten Temperaturunterschied entspricht, wie etwa dem ersten Temperaturunterschied 150.
  • In einer besonderen Ausführung ist der Zugriff auf jeden Tabelleneintrag entsprechend eines Schreibtemperaturbereichs und eines Lesetemperaturbereichs möglich. In dieser besonderen Ausführung spart die Tabelle die Lesespannungsoffsetwerte für Einträge, die passenden Schreibtemperaturbereichen und Lesetemperaturbereichen entsprechen, aus. Zum Beispiel kann ein Offset-Wert aus der Offset-Tabelle 302 auf Grundlage eines Schreibtemperaturbereichs und eines Lesetemperaturbereichs bestimmt werden. Des Weiteren spart die Offset-Tabelle 302 Lesespannungsoffsetwerte für Tabelleneinträge, die passenden Schreibtemperaturbereichen und Lesetemperaturbereichen entsprechen, aus.
  • Das Verfahren 1200 kann bei 1204 auch die Bestimmung einer angepassten Lesespannung umfassen, die dem Lesen von Daten aus einem nicht flüchtigen Arbeitsspeicher zugeordnet ist. Der bestimmte, angepasste Wert basierend auf einem Standardwert der Lesespannung und basierend auf dem Lesespannungsoffsetwert. Zum Beispiel kann der Trimmeinsteller 136 den Lesespannungsoffsetwert aus Tabelle 128 und einen Standardwert der Lesespannung (z. B. den Standardwert 301 aus 3) verwenden, um den angepassten Wert der Lesespannung zu bestimmen.
  • 13 ist ein Flussdiagramm eines anderen besonderen Beispiels eines Verfahrens 1300 der temperaturbasierten Steuervorrichtung. Das Verfahren 1300 kann in einer Datenspeicherungsvorrichtung durchgeführt werden, die eine Steuervorrichtung und einen nicht flüchtigen Arbeitsspeicher umfasst. Zum Beispiel kann das Verfahren 1300 von der Datenspeicherungsvorrichtung 102 aus 1 ausgeführt werden.
  • Das Verfahren 1300 umfasst bei 1302 das Lesen mehrerer Codewörter aus dem nicht flüchtigen Arbeitsspeicher. Zum Beispiel, wie in 7 gezeigt, kann die Steuervorrichtung 120 die Codewörter aus der Arbeitsspeichervorrichtung 103 lesen, wie etwa das erste Codewort 702, das zweite Codewort 702 und das dritte Codewort 702.
  • Das Verfahren 1300 umfasst bei 1304 außerdem, als Antwort auf die Detektion einer Fehlerrate, die einen Fehlerratenschwellenwert für eine Schwellenwertanzahl von Codewörtern überschreitet, die Initiation eines Temperaturkompensationsvorgangs, der eine oder mehrere Speicherzugriffsparameter, auf Grundlage der Temperaturdifferenz zwischen einer ersten Temperatur und einer zweiten Temperatur, modifiziert. Zum Beispiel kann die Fehlerkorrekturkodier- (ECC-) Engine 180 die Historie der Fehlerratendaten 708 generieren. In diesem Beispiel kann die temperaturbasierte Einstellvorrichtung 122 die Historie der Fehlerratendaten 708 mit dem Fehlerratenschwellenwert 714 und der Schwellenwertanzahl von Codewörtern 716 vergleichen. In einer besonderen Ausführung ist der Fehlerratenschwellenwert geringer als der Schwellenwert der korrigierbaren Fehlerrate der ECC-Engine 180. Als Antwort auf die Detektion, dass eine Fehlerrate einen Fehlerratenschwellenwert für eine Schwellenwertanzahl von Codewörtern überschreitet, leitet die temperaturbasierte Einstellvorrichtung 122 einen Temperaturkompensationsvorgang 136 ein. Der Temperaturkompensationsvorgang 136 kann verursachen, dass einer oder mehrere Speicherzugriffsparameter (wie die Lesespannung 164 aus 1) modifiziert werden, auf Grundlage einer Temperaturdifferenz zwischen einer ersten Temperatur, die dem Schreiben der Codewörter in den nicht flüchtigen Arbeitsspeicher zugeordnet ist, und einer zweiten Temperatur, die dem Lesen der Codewörter aus dem nicht flüchtigen Arbeitsspeicher zugeordnet ist.
  • 14 ist ein Flussdiagramm eines weiteren besonderen Beispiels für ein Verfahren 1400 zur Bestimmung eines Temperaturbereichs. Das Verfahren 1400 kann in einer Datenspeicherungsvorrichtung durchgeführt werden, die eine Steuervorrichtung und einen nicht flüchtigen Arbeitsspeicher umfasst. Zum Beispiel kann das Verfahren 1400 von der Datenspeicherungsvorrichtung 102 aus 1 ausgeführt werden.
  • Das Verfahren 1400 umfasst bei 1402 das Empfangen eines ersten Indikators einer ersten Temperatur von einem ersten Temperatursensor eines ersten Nacktchips des nicht flüchtigen Arbeitsspeichers. Zum Beispiel kann die Arbeitsspeichervorrichtung 103 einen Stapel 820 von Arbeitsspeichernacktchips aus 8 umfassen. In diesem Beispiel kann der erste Arbeitsspeichernacktchip 802 einen ersten Temperatursensor 812 umfassen, der einen ersten Indikator 832, der eine Temperatur des ersten Arbeitsspeichernacktchips 802 angibt, generieren und senden kann.
  • Das Verfahren 1400 umfasst bei 1404 das Empfangen eines zweiten Indikators einer zweiten Temperatur von einem zweiten Temperatursensor eines zweiten Nacktchips eines nicht flüchtigen Arbeitsspeichers. Zum Beispiel kann der zweite Arbeitsspeichernacktchip dem i-ten Arbeitsspeichernacktchip 806 entsprechen, der den i-ten Temperatursensor 816 umfasst. Der i-te Temperatursensor 816 kann einen i-ten Indikator 836, der eine Temperatur des i-ten Arbeitsspeichernacktchips 806 zeigt, generieren und senden. In diesem Beispiel kann der Stapel 820 auch andere Arbeitsspeichernacktchips umfassen, von denen einer oder mehrere einen weiteren Temperatursensor umfassen können. Zur Illustration, der Stapel 820 aus 8 umfasst einen oder mehrere Arbeitsspeichernacktchips, die zwischen dem ersten Arbeitsspeichernacktchip 802 und dem i-ten Arbeitsspeichernacktchip 806 gestapelt sind, wobei jeder davon einen Temperatursensor umfassen kann. Der Stapel 820 umfasst einen oder mehrere weitere Nacktchips, wie etwa den n-ten Arbeitsspeichernacktchip 808, der den n-ten Temperatursensor 818 umfasst. So können der erste Arbeitsspeichernacktchip 802 und der i-te Arbeitsspeichernacktchip 804 unterschiedliche Teile des Stapels 820 repräsentieren. Zum Beispiel, wie in 8 gezeigt, ist der erste Arbeitsspeichernacktchip 802 der oberste Nacktchip des Stapels 820 und der i-te Arbeitsspeichernacktchip 804 ist der in der Mitte liegende Nacktchip (z. B. ein Arbeitsspeichernacktchip, der weder der oberste Arbeitsspeichernacktchip noch der unterste Arbeitsspeichernacktchip des Stapels 820 ist).
  • Das Verfahren 1400 umfasst bei 1406 außerdem die Bestimmung eines Temperaturbereichs, auf Grundlage eines Durchschnitts der ersten Temperatur und der zweiten Temperatur. Zum Beispiel können die Steuervorrichtung 120 oder die Arbeitsspeichervorrichtung 103 eine Durchschnittstemperatur 840 bestimmen, auf Grundlage des ersten Indikators 832 der ersten Temperatur und auf Grundlage des i-ten Indikators 836 der zweiten Temperatur. In manchen Ausführungen kann die Durchschnittstemperatur 840 außerdem auf Indikatoren (wie etwa dem zweiten Indikator 834, dem n-ten Indikator 838 oder beiden) von anderen Temperaturen anderer Arbeitsspeichernacktchips basieren. Die Durchschnittstemperatur 840 kann eine mittlere Temperatur, eine gewichtete mittlere Temperatur, eine Mediantemperatur, einen Modalwert der Temperaturen oder eine andere statistische Messung von zentraler Tendenz umfassen oder diesen entsprechen. Die Durchschnittstemperatur kann einem Speicherzugriff, wie etwa dem Indikator von Temperaturbedingungen vor, während oder nach Beendigung des Lesens von Daten aus dem Arbeitsspeicher 104 oder des Schreibens in den Arbeitsspeicher 104 zugeordnet sein.
  • Obwohl die Steuervorrichtung 120 und manch andere hierin beschriebene Komponenten als Blockkomponenten gezeigt und in allgemeinen Worten beschrieben sind, können diese Komponenten einen oder mehrere Mikroprozessoren, Zustandsmaschinen und/oder andere Schaltungen umfassen, die der Datenspeicherungsvorrichtung (oder einer oder mehreren Komponenten davon) erlauben, die hierin beschriebenen Vorgänge auszuführen. Hierin beschriebene Komponenten können funktionell an einander gekoppelt werden, unter Verwendung einer oder mehrerer Knoten, eines oder mehrerer Busse (z. B. Datenbusse und/oder Steuervorrichtungsbusse), einer oder mehrerer Strukturen oder einer Kombination davon. Eine oder mehrere hierin beschriebene Komponenten können eine oder mehrere physische Komponenten, wie etwa Hardware-Steuervorrichtungen, Zustandsmaschinen, logische Schaltungen, eine oder mehrere Strukturen oder eine Kombination davon umfassen, um der Datenspeicherungsvorrichtung 102 die Durchführung eines oder mehrerer hierin beschriebener Vorgänge zu ermöglichen.
  • Alternativ oder zusätzlich dazu können ein oder mehrere Aspekte der Datenspeicherungsvorrichtung 102 implementiert werden, unter Verwendung eines Mikroprozessors oder einer Mikrosteuervorrichtung (z. B. durch die Ausführung von Befehlen), um einen oder mehrere hierin beschriebene Vorgänge durchzuführen, wie etwa eine oder mehrere der Verfahren 900 - 1400. In einer besonderen Ausführung umfasst die Datenspeicherungsvorrichtung 102 einen Prozessor, der Befehle (z. B. Firmware), die von der Arbeitsspeichervorrichtung 103 erhalten sind, ausführt. Alternativ oder zusätzlich dazu können Befehle, die vom Prozessor ausgeführt werden, von einem Arbeitsspeicher unabhängig von der Arbeitsspeichervorrichtung 103 erhalten werden, wie etwa in einem Festwertspeicher (ROM), der außerhalb der Arbeitsspeichervorrichtung 103 liegt.
  • Es ist darauf hinzuweisen, dass einen oder mehrere Vorgänge, die wie hierin beschrieben von der Steuervorrichtung 120 ausgeführt werden, auch von der Arbeitsspeichervorrichtung 103 ausgeführt werden können. Ein illustratives Beispiel ist, dass In-Memory-ECC-Vorgänge (z. B. Kodierungsvorgänge und/oder Dekodierungsvorgänge) alternativ oder zusätzlich zur Ausführung der Operationen bei der Steuervorrichtung 120 auch in der Arbeitsspeichervorrichtung 103 ausgeführt werden können.
  • Zur weiteren Illustration kann die Datenspeichervorrichtung 102 konfiguriert sein, um als integrierter Arbeitsspeicher an die Zugriffsvorrichtung 180 gekoppelt zu werden, wie etwa in Verbindung mit einer integrierten Multimedia Card-Konfiguration (eMMC®) (eine Marke von JEDEC Solid State Technology Association, Arlington, Virginia), als illustratives Beispiel. Die Datenspeichervorrichtung 102 kann einer eMMC-Vorrichtung entsprechen. Ein weiteres Beispiel ist, dass die Datenspeichervorrichtung 102 einer Speicherkarte, wie etwa einer Secure Digital Card (SD®), einer micoSD® Card, einer miniSD™ Card (Marken von SD-3C LLC, Wilmington, Delaware), einer MultiMediaCard™ (MMC™) (eine Marke von JEDEC Solid State Technology Association, Arlington, Virginia) oder einer CompactFlash® Card (eine Marke von SanDisk Corporation, Milpitas, Kalifornien) entsprechen kann. Die Datenspeichervorrichtung 102 wird gemäß einer JEDEC-Industriespezifikation betrieben. Zum Beispiel kann die Datenspeichervorrichtung 102 gemäß einer JEDEC eMMC-Spezifikation, einer JEDEC Universal Flash Storage-Spezifikation (UFS), einer oder mehrerer andere Spezifikationen oder einer Kombination davon betrieben.
  • Die Arbeitsspeichervorrichtung 103 kann einen dreidimensionalen (3D) Arbeitsspeicher umfassen, wie etwa einen ReRAM (Resistive Random Access Memory), einen Flash-Speicher (z. B. einen NAND-Speicher, einen NOR-Speicher, einen SLC-Flash-Memory (Single-Level-Cell), einen MLC-Flash-Memory (Multi-Level-Cell), einen geteilten Bit-Line NOR-Speicher (DINOR), einen AND-Speicher, eine Vorrichtung mit hohem kapazitivem Kopplungsverhältnis (HiCR), eine asymmetrische kontaktlose Transistorvorrichtung (ACT) oder einen anderen Flash-Speicher), einen löschbaren programmierbaren Festwertspeicher (EPROM), einen elektronisch löschbaren programmierbaren Festwertspeicher (EEPROM), einen Festwertspeicher (ROM), einen programmierbaren Festwertspeicher (OTP) oder eine Kombination davon. Alternativ oder zusätzlich dazu kann die Arbeitsspeichervorrichtung 103 eine andere Speicherart umfassen. In einer besonderen Ausführung ist die Datenspeicherungsvorrichtung 102 indirekt mit einer Zugriffsvorrichtung (z. B. der Zugriffsvorrichtung 180) über ein Netzwerk gekoppelt. Zum Beispiel kann die Datenspeicherungsvorrichtung 102 ein NAS-Gerät oder eine Komponente (z. B. eine SSD-Komponente) eines Rechenzentrums-Speichersystems, eines Enterprise-Speichersystems oder eines Storage-Area-Netzwerks. Die Arbeitsspeichervorrichtung 103 kann eine Halbleiterspeichervorrichtung umfassen.
  • Halbleiterspeichervorrichtungen umfassen flüchtige Speichervorrichtungen, wie DRAM- (dynamische Zufallszugriffsspeicher) oder SRAM-Vorrichtungen (statische Zufallszugriffsspeicher), nicht flüchtige Speichervorrichtungen, wie ReRAM (Resistive Random Access Memory), MRAM (Magnetic Random Access Memory), EEPROM (elektronisch löschbare programmierbare Festwertspeicher), Flash-Speicher (die auch als Untergruppe von EEPROM gesehen werden können), FRAM (Ferroelectric Random Access Memory) und andere Halbleiterelemente, die Informationen speichern können. Jeder Speichervorrichtungstyp kann andere Konfigurationen haben. Zum Beispiel können Flash-Speichervorrichtungen in einer NAND- oder NOR-Konfiguration konfiguriert sein.
  • Die Speichermedien können aus passiven und/oder aktiven Elementen in jeder Kombination gebildet sein. Ein nicht beschränkendes Beispiel sind passive Halbleiterspeicherelemente ReRAM-Vorrichtungselemente, die in manchen Ausführungen ein Widerstandsschalter-Speicherelement umfassen, wie etwa eine Anti-Sicherung, Phasenänderungsmaterial etc. und gegebenenfalls ein Steuervorrichtungselement, wie eine Diode etc. Ein weiteres nicht beschränkendes Beispiel sind aktive Halbleiterspeicherelemente, die EEPROM- und Flash-Speicher-Vorrichtungselemente umfassen, die in manchen Ausführungen Elemente umfassen, die eine Speicherregion enthalten, wie etwa ein Floating-Gate, leitfähige Nanopartikel oder ein dielektrisches Ladungsspeichermaterial.
  • Mehrere Speicherelemente können konfiguriert sein, um in Serie miteinander verbunden zu sein oder so, dass auf jedes Element einzeln zugegriffen werden kann. Ein nicht beschränkendes Beispiel sind Flash-Speichervorrichtungen in einer NAND-Konfiguration (NAND-Speicher), die üblicherweise in Serie verbundene Speicherelemente enthalten. Eine NAND-Speicheranordnung kann so konfiguriert sein, dass die Anordnung aus mehreren Speichersträngen besteht, worin ein Strang aus mehreren Speicherelementen mit einer gemeinsamen einzelnen Bit-Zeile zusammengesetzt ist und auf die als Gruppe zugegriffen wird. Alternativ dazu können Speicherelemente konfiguriert sein, um den Zugriff auf jedes einzelne Element zu ermöglichen, z. B. eine NOR-Speicheranordnung. NAND- und NOR-Speicherkonfigurationen sind beispielhaft und Speicherelemente können anders konfiguriert sein.
  • Die Halbleiterspeicherelemente, die sich innerhalb eines und/oder über einem Substrat befinden, können in zwei oder drei Dimensionen angeordnet ein, wie etwa als zweidimensionale Speicherstruktur oder dreidimensionale Speicherstruktur. In einer zweidimensionalen Speicherstruktur sind die Halbleiterspeicherelemente in einer einzigen Ebene oder auf einem einzigen Speichervorrichtungsniveau angeordnet. Üblicherweise sind Speicherelemente in einer zweidimensionalen Speicherstruktur auf einer Ebene angeordnet (z. B. in einer Ebene mit x-y-Richtung), die sich im Wesentlichen parallel zur Hauptoberfläche eines Substrats erstreckt, das die Speicherelemente trägt. Das Substrat kann ein Wafer, über oder in dem eine Schicht aus Speicherelementen gebildet wird, oder ein Substratmaterial sein, das an die Speicherelemente angebracht wird, nachdem diese gebildet wurden. Der Träger, kann, zum Beispiel aber nicht ausschließlich, einen Halbleiter wie beispielsweise Silizium aufweisen.
  • Die Speicherelemente können im einzelnen Speichervorrichtungsniveau in einer geordneten Anordnung angeordnet werden, wie etwa in einer Vielzahl an Zeilen und/oder Spalten. Allerdings können die Speicherelemente auch in einer nichtregemäßigen und nicht-orthogonalen Konfiguration angeordnet werden. Die Speicherelemente können je eine oder mehrere Elektroden oder Kontaktleitungen wie Bit-Zeilen und Wortzeilen aufweisen.
  • Eine dreidimensionale Speicheranordnung ist so angeordnet, dass die Speicherelemente mehrere Ebenen oder mehrere Speichervorrichtungsniveaus einnehmen, wodurch sie eine Struktur in drei Dimensionen formen (z. B. in die Richtungen x, y und z, wobei die y-Richtung im Wesentlichen senkrecht und die x- und z-Richtung im Wesentlichen parallel zur Hauptoberfläche des Trägers sind). Eine dreidimensionale Speicherstruktur kann, beispielsweise, jedoch ohne einschränkend zu sein, vertikal als Stapel mehrerer zweidimensionaler Speichervorrichtungsniveaus arrangiert sein. Eine dreidimensionale Speicherstruktur kann, beispielsweise, jedoch ohne einschränkend zu sein, in mehreren vertikalen Spalten angeordnet sein (z. B. in Spalten, die sich im Wesentlichen senkrecht zur Hauptoberfläche des Trägers, d. h. in die y-Richtung, erstrecken), wobei jede Spalte mehrere Speicherelemente umfasst. Die Spalten können in einer zweidimensionalen Konfiguration arrangiert sein, z. B. in einer x-z-Ebene, was eine dreidimensionale Anordnung von Speicherelementen mit Elementen auf mehreren vertikal gestapelten Speicherebenen ergibt. Andere Konfigurationen der Speicherelemente in drei Dimensionen können ebenfalls eine dreidimensionale Speicheranordnung ergeben.
  • In einer dreidimensionalen NAND-Speicheranordnung können die Speicherelemente, beispielsweise, jedoch ohne einschränkend zu sein, aneinander gekoppelt werden, um einen NAND-Strang mit einem einzigen horizontalen Speichervorrichtungsniveau (z. B. x-z) zu bilden. Alternativ dazu können die Speicherelemente aneinander gekoppelt werden, um einen vertikale NAND-Strang zu bilden, der mehrere horizontale Speichervorrichtungsniveaus durchläuft. Andere dreidimensionale Konfigurationen können sich so vorgestellt werden, dass darin einige NAND-Stränge Speicherelemente auf einem einzigen Speichervorrichtungsniveau umfassen, während andere Stränge Speicherelemente umfassen, die sich über mehrere Speichervorrichtungsniveaus erstrecken. Dreidimensionale Speicheranordnungen können also in einer NOR-Konfiguration und in einer ReRAM-Konfiguration konzipiert werden.
  • In einer monolithischen, dreidimensionalen Anordnung werden üblicherweise eine oder mehrere Speichervorrichtungsniveaus über einem einzigen Substrats gebildet. Gegebenenfalls kann die monolithische, dreidimensionale Speicheranordnung auch eine oder mehrere Speicherschichten zumindest teilweise innerhalb des einzelnen Substrats enthalten. Das Substrat, kann zum Beispiel, aber nicht ausschließlich, einen Halbleiter wie beispielsweise Silizium umfassen. In einer monolithischen, dreidimensionalen Anordnung werden die Schichten, die jedes Speichervorrichtungsniveau der Anordnung ausmachen üblicherweise auf den Schichten den darunterliegenden Speichervorrichtungsniveaus der Anordnung gebildet. Allerdings können Schichten nebeneinanderliegender Speichervorrichtungsniveaus einer monolithischen, dreidimensionalen Anordnung geteilt werden oder eingreifende Schichten zwischen den Speichervorrichtungsniveaus haben.
  • Alternativ dazu können zweidimensionale Anordnungen getrennt gebildet werden und dann eingehaust werden, um eine nicht-monolithische Arbeitsspeichervorrichtung mit mehreren Speicherschichten zu bilden. Zum Beispiel können nicht-monolithische, gestapelte Arbeitsspeicher durch die Bildung von Speicherniveaus auf getrennten Substraten konstruiert werden und dann können die Speicherniveaus übereinander gestapelt werden. Die Substrate können dünner gemacht oder aus den Speichervorrichtungsniveaus entfernt werden, bevor sie gestapelt werden, aber da die Speichervorrichtungsniveaus ursprünglich auf unterschiedlichen Substraten gebildet wurden, sind die resultierenden Speicheranordnungen keine monolithischen, dreidimensionalen Speicheranordnungen. Des Weiteren können mehrere zweidimensionale Speicheranordnungen oder dreidimensionale Speicheranordnungen (monolithisch oder nicht-monolithisch) auf getrennten Chips gebildet und dann eingehaust werden, um eine gestapelte Chip-Speichervorrichtung zu bilden.
  • Für den Betrieb der Speicherelemente und die Kommunikation mit den Speicherelementen ist üblicherweise eine dazugehörige Schaltung erforderlich. Speichermedien können, beispielsweise, jedoch nicht ausschließlich, eine Schaltung aufweisen, die zur Steuerung und zum Antrieb von Speicherelementen verwendet wird, um Funktionen wie das Programmieren und Lesen zu erreichen. Diese dazugehörige Schaltung kann auf dem gleichen Subjekt wie das Speicherelement und/oder auf einem getrennten Subjekt liegen. Zum Beispiel kann eine Steuervorrichtung für einen Speicher-Lese-Schreibvorgang auf einem getrennten Steuervorrichtungschip und/oder auf dem gleichen Subjekt wie die Speicherelemente liegen.
  • Für Fachleute wird es offenkundig sein, dass diese Offenbarung nicht auf die beschriebenen zweidimensionalen und dreidimensionalen Beispielstrukturen beschränkt ist, sondern alle relevanten Speicherstrukturen wie hierin beschrieben und von Fachleuten verstanden vom Schutzumfang der Offenbarung umfasst. Die Beispiele der hierin beschriebenen Ausführungen dienen zum allgemeinen Verständnis der unterschiedlichen Ausführungen.
  • Andere Ausführungen können verwendet und aus dieser Offenbarung abgeleitet werden, sodass strukturelle und logische Substitutionen und Veränderungen vorgenommen werden können, ohne vom Anwendungsbereich der Offenbarung abzuweichen. Diese Offenbarung soll alle nachfolgenden Adaptionen oder Variationen der Ausführungen abdecken. Fachleute auf dem Gebiet der Offenbarung werden erkennen, dass diese Modifikationen im Schutzumfang der vorliegenden Offenbarung liegen.
  • Der oben offenbarte Erfindungsgegenstand ist als beispielhaft und nicht beschränkend zu sehen und die angehängten Ansprüche sollen alle Modifikationen, Verbesserungen und andere Ausführungen, die in den Schutzbereich der vorliegenden Offenbarung fallen, abdecken. Daher soll der Schutzbereich der vorliegenden Offenbarung, bis zum gesetzlich maximal erlaubten Maß durch das Gesetz, auf die weiteste erlaubte Interpretation der folgenden Ansprüche und ihrer Äquivalente bestimmt werden und soll durch die voranstehende Beschreibung nicht beschränkt oder limitiert werden.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 15/167316 [0001]
    • US 62/303891 [0001]

Claims (32)

  1. Vorrichtung, die Folgendes aufweist: einen Arbeitsspeicher; und eine mit dem Arbeitsspeicher gekoppelte Steuervorrichtung, wobei die Steuervorrichtung konfiguriert ist, um Daten zur Aktualisierung als Reaktion auf das Bestimmen zu markieren, dass eine erste gemessene Temperatur, die dem Schreiben der Daten in den Arbeitsspeicher zugeordnet ist, einen ersten Schwellenwert überschreitet, wobei die Steuervorrichtung ferner konfiguriert ist, um die markierten Daten als Reaktion auf das Bestimmen zu aktualisieren, dass eine zweite gemessene Temperatur, die dem Arbeitsspeicher zugeordnet ist, unter einem zweiten Schwellenwert liegt.
  2. Vorrichtung nach Anspruch 1, wobei die Steuervorrichtung konfiguriert ist, um die Daten durch das Hinzufügen einer Anzeige der Daten zu einer Liste markierter Daten zu markieren.
  3. Vorrichtung nach Anspruch 2, wobei die Steuervorrichtung konfiguriert ist, um auf die Liste markierter Daten zuzugreifen und einen Datenaktualisierungsvorgang als Reaktion auf das Detektieren einzuleiten, dass die zweite gemessene Temperatur unter dem zweiten Schwellenwert liegt.
  4. Vorrichtung nach Anspruch 1, die ferner einen Temperatursensor aufweist, der konfiguriert ist, um der Steuervorrichtung die erste gemessene Temperatur und die zweite gemessene Temperatur anzuzeigen.
  5. Vorrichtung, die Folgendes aufweist: einen Arbeitsspeicher und eine Steuervorrichtung, die mit dem Arbeitsspeicher gekoppelt ist, wobei die Steuervorrichtung konfiguriert ist, um Daten in einen Block des Arbeitsspeichers zu schreiben und als Reaktion auf die Detektion einer Temperaturänderung, die einen Blockschwankungsschwellenwert nach dem Schreiben der Daten in den Block überschreitet, den Block für weitere Schreibvorgänge in einem unverwendeten Teil des Blocks zu schließen.
  6. Vorrichtung nach Anspruch 5, wobei die Steuervorrichtung konfiguriert ist, um vor dem Schließen des Blocks Blinddaten in eine Wortzeile des Blocks zu schreiben.
  7. Vorrichtung, die Folgendes aufweist: einen Arbeitsspeicher und eine mit dem Arbeitsspeicher gekoppelte Steuervorrichtung, wobei die Steuervorrichtung konfiguriert ist, um erste Daten, die in dem Arbeitsspeicher gespeichert sind, einem ersten Gruppenindikator zuzuordnen und erste Speicherzugriffsparameterwerte dem ersten Gruppenindikator zuzuordnen, wobei die Steuervorrichtung konfiguriert ist, um als Reaktion auf die Detektion einer Temperaturveränderung, die einen dem ersten Gruppenindikator zugeordneten Gruppentemperaturschwellenwert überschreitet, zweite Daten, die in dem Arbeitsspeicher gespeichert werden sollen, einem zweiten Gruppenindikator zuzuordnen und zweite Speicherzugriffsparameterwerte dem zweiten Gruppenindikator zuzuordnen, wobei sich die zweiten Speicherzugriffsparameterwerte von den ersten Speicherzugriffsparameterwerten unterscheiden.
  8. Vorrichtung nach Anspruch 7, wobei die Steuervorrichtung konfiguriert ist, um einen Gruppenindikatorzeiger, der einen Gruppenindikator zeigt, die Daten zuzuordnen ist, die in den Arbeitsspeicher geschrieben werden sollen, und wobei die Steuervorrichtung konfiguriert ist, um als Reaktion auf die Detektion der Temperaturänderung den Gruppenindikatorzeiger zu aktualisieren, um den zweiten Gruppenindikator anzuzeigen.
  9. Vorrichtung, die Folgendes aufweist: einen Arbeitsspeicher und eine mit dem Arbeitsspeicher gekoppelte Steuervorrichtung, wobei die Steuervorrichtung konfiguriert ist, um einen Standardwert einer Lesespannung zu speichern und eine angepasste Lesespannung zu bestimmen, um Daten aus dem Arbeitsspeicher zu lesen, wobei die angepasste Lesespannung auf Grundlage des Standardwerts und auf Grundlage einer Datenstruktur bestimmt wird, welche Lesespannungsoffsetwerte in Bezug auf Differenzen zwischen Schreibtemperaturen und Lesetemperaturen abbildet.
  10. Vorrichtung nach Anspruch 9, wobei die Datenstruktur eine Tabelle aufweist und wobei auf jeden Eintrag der Tabelle gemäß einem Schreibtemperaturbereich und einem Lesetemperaturbereich zugegriffen werden kann.
  11. Vorrichtung nach Anspruch 9, wobei die Tabelle Lesespannungsoffsetwerte für Einträge ausspart, welche passenden Schreibtemperaturbereichen und Lesetemperaturbereichen entsprechen.
  12. Vorrichtung, die Folgendes aufweist: einen Arbeitsspeicher und eine mit dem Arbeitsspeicher gekoppelte Steuervorrichtung, wobei die Steuervorrichtung konfiguriert ist, um mehrere Codewörter von Daten aus dem Arbeitsspeicher zu lesen und als Reaktion auf die Detektion einer Fehlerrate, die einen Fehlerratenschwellenwert für eine Schwellenwertanzahl von Codewörtern überschreitet, einen Temperaturkompensationsvorgang einzuleiten, der einen oder mehrere Speicherzugriffsparameter auf Grundlage einer Temperaturdifferenz zwischen einer ersten Temperatur und einer zweiten Temperatur modifiziert.
  13. Vorrichtung nach Anspruch 12, wobei die erste Temperatur einer ersten Zeitspanne zugeordnet ist, wobei die erste Zeitspanne einen Schreibvorgang mehrerer Codewörter in den Arbeitsspeicher aufweist, und die zweite Temperatur einer zweiten Zeitspanne zugeordnet ist, wobei die zweite Zeitspanne einen Lesevorgang mehrerer Codewörter aus dem Arbeitsspeicher aufweist.
  14. Vorrichtung nach Anspruch 12, die ferner eine Fehlerkorrekturkodier- (ECC-) Engine aufweist, wobei die Schwellenfehlerraten niedriger ist als der Schwellenwert der korrigierbaren Fehlerrate der ECC-Engine.
  15. Vorrichtung, die Folgendes aufweist: einen Arbeitsspeicher, der Folgendes aufweist: einen ersten Arbeitsspeichernacktchip, der einen ersten Temperatursensor aufweist, und einen zweiten Arbeitsspeichernacktchip, der einen zweiten Temperatursensor aufweist, und eine Steuervorrichtung, die mit dem Arbeitsspeicher gekoppelt ist, wobei die Steuervorrichtung konfiguriert ist, um einen ersten Indikator einer ersten Temperatur von dem ersten Temperatursensor und einen zweiten Indikator einer zweiten Temperatur von dem zweiten Temperatursensor zu empfangen, wobei die Steuervorrichtung konfiguriert ist, um einen Temperaturbereich auf Grundlage eines Mittelwerts aus erster und zweiter Temperatur zu bestimmen.
  16. Vorrichtung nach Anspruch 15, wobei der Arbeitsspeicher einen Stapel von Arbeitsspeichernacktchips aufweist, wobei der erste Arbeitsspeichernacktchip der oberste Nacktchip des Stapels ist und wobei der zweite Arbeitsspeichernacktchip ein Nacktchip in der Mitte des Stapels ist.
  17. Verfahren, das Folgendes aufweist: das Durchführen folgender Schritte an einer Datenspeichervorrichtung, die eine mit einem nicht flüchtigen Arbeitsspeicher gekoppelte Steuervorrichtung aufweist: das Markieren von in dem nicht flüchtigen Arbeitsspeicher gespeicherten Daten zur Aktualisierung als Reaktion auf das Bestimmen, dass eine erste gemessene Temperatur, die dem Schreiben der Daten in den Arbeitsspeicher zugeordnet ist, einen ersten Schwellenwert überschreitet; und das Aktualisieren der markierten Daten als als Reaktion auf das Bestimmen, dass eine zweite gemessene Temperatur, die dem nicht flüchtigen Arbeitsspeicher zugeordnet ist, unter einem zweiten Schwellenwert liegt.
  18. Verfahren nach Anspruch 17, wobei das Markieren der Daten das Hinzufügen einer Anzeige der Daten zu einer Liste markierter Daten aufweist.
  19. Verfahren nach Anspruch 18, das ferner nach dem Markieren der Daten Folgendes aufweist: das Zugreifen auf die Liste markierter Daten und das Einleiten von Datenaktualisierungsvorgängen als Reaktion auf die Detektion, dass die zweite gemessene Temperatur unter dem zweiten Schwellenwert liegt.
  20. Verfahren, das Folgendes aufweist: das Durchführen folgender Schritte an einer Datenspeichervorrichtung, die eine mit einem nicht flüchtigen Arbeitsspeicher gekoppelte Steuervorrichtung aufweist: das Schreiben von Daten in einen Block des nicht flüchtigen Arbeitsspeichers und das Schließen des Blocks als Reaktion auf die Detektion einer Temperaturänderung, die einen Blockschwankungsschwellenwert nach dem Schreiben der Daten in den Block überschreitet.
  21. Verfahren nach Anspruch 20, das ferner vor dem Schließen des Blocks das Schreiben von Blinddaten in eine Wortzeile des Blocks aufweist.
  22. Verfahren nach Anspruch 20, wobei das Schließen des Blocks Schreibvorgänge in einem unverwendeten Teil des Blocks verhindert.
  23. Verfahren, das Folgendes aufweist: das Durchführen folgender Schritte an einer Datenspeichervorrichtung, die eine mit einem nicht flüchtigen Arbeitsspeicher gekoppelte Steuervorrichtung aufweist: das Zuordnen erster Daten, die in dem nicht flüchtigen Arbeitsspeicher gespeichert sind, zu einem ersten Gruppenindikator; das Zuordnen erster Speicherzugriffsparameter zu dem ersten Gruppenindikator als Reaktion auf die Detektion einer Temperaturänderung, die einen Gruppentemperaturschwellenwert überschreitet, der dem ersten Gruppenindikator zugeordnet ist; das Zuordnen zweiter Daten, die in dem nicht flüchtigen Arbeitsspeicher gespeichert sind, zu einem zweiten Gruppenindikator und das Zuordnen zweiter Speicherzugriffsparameter zu dem zweiten Gruppenindikator.
  24. Verfahren nach Anspruch 23, das ferner Folgendes aufweist: das Speichern eines Gruppenindikatorzeigers, der einen Gruppenindikator zeigt, der Daten zuzuordnen ist, die in den nicht flüchtigen Speicher geschrieben werden sollen und als Reaktion auf die Detektion einer Temperaturveränderung das Aktualisieren des Gruppenindikatorzeigers, um den zweiten Gruppenindikator anzuzeigen.
  25. Verfahren, das Folgendes aufweist: das Durchführen folgender Schritte an einer Datenspeichervorrichtung, die eine mit einem nicht flüchtigen Arbeitsspeicher gekoppelte Steuervorrichtung aufweist: das Bestimmen eines Lesespannungsoffsetwerts auf Grundlage einer Datenstruktur, die Lesespannungsoffsetwerte in Bezug auf Unterschiede zwischen Schreibtemperaturen und Lesetemperaturen abbildet, und das Bestimmen eines angepassten Werts einer Lesespannung, die dem Lesen von Daten aus dem nicht flüchtigen Arbeitsspeicher zugeordnet ist; wobei der angepasste Wert auf Grundlage eines Standardwerts der Lesespannung und auf Grundlage des Lesespannungsoffsetwerts bestimmt wird.
  26. Verfahren nach Anspruch 25, wobei die Datenstruktur eine Tabelle aufweist, wobei auf jeden Eintrag der Tabelle gemäß einem Schreibtemperaturbereich und einem Lesetemperaturbereich zugegriffen werden kann.
  27. Verfahren nach Anspruch 26, wobei die Tabelle Lesespannungsoffsetwerte für Einträge ausspart, welche passenden Schreibtemperaturbereichen und Lesetemperaturbereichen entsprechen.
  28. Verfahren, das Folgendes aufweist: das Durchführen folgender Schritte an einer Datenspeichervorrichtung, die eine mit einem nicht flüchtigen Arbeitsspeicher gekoppelte Steuervorrichtung aufweist: das Lesen mehrerer Codewörter von Daten aus dem nicht flüchtigen Arbeitsspeicher und als Reaktion auf die Detektion einer Fehlerrate, die einen Fehlerratenschwellenwert für eine Schwellenwertanzahl von Codewörtern überschreitet, das Einleiten eines Temperaturkompensationsvorgangs, der einen oder mehrere Speicherzugriffsparameter auf Grundlage eines Temperaturunterschieds zwischen einer ersten Temperatur und einer zweiten Temperatur modifiziert.
  29. Verfahren nach Anspruch 28, wobei die erste Temperatur einer ersten Zeitspanne zugeordnet ist, wobei die erste Zeitspanne einen Schreibvorgang mehrerer Codewörter in den Arbeitsspeicher aufweist, und die zweite Temperatur einer zweiten Zeitspanne zugeordnet ist, wobei die zweite Zeitspanne einen Lesevorgang mehrerer Codewörter aus dem Arbeitsspeicher aufweist.
  30. Verfahren nach Anspruch 28, wobei der Schwellenfehlerrate niedriger ist als der Schwellenwert der korrigierbaren Fehlerrate einer Fehlerkorrekturkodier- (ECC-) Engine der Datenspeichervorrichtung.
  31. Verfahren, das Folgendes aufweist: das Durchführen folgender Schritte an einer Datenspeichervorrichtung, die eine mit einem nicht flüchtigen Arbeitsspeicher gekoppelte Steuervorrichtung aufweist: das Empfangen eines ersten Indikators einer ersten Temperatur von einem ersten Temperatursensor eines ersten Nacktchips des nicht flüchtigen Arbeitsspeichers; das Empfangen eines zweiten Indikators einer zweiten Temperatur von einem zweiten Temperatursensor eines zweiten Nacktchips des nicht flüchtigen Arbeitsspeichers und das Bestimmen eines Temperaturbereichs auf Grundlage eines Mittelwerts der ersten Temperatur und der zweiten Temperatur.
  32. Verfahren nach Anspruch 31, wobei der nicht flüchtige Speicher einen Stapel von Arbeitsspeichernacktchips aufweist, wobei der erste Nacktchip der oberste Nacktchip des Stapels ist und wobei der zweite Nacktchip ein Nacktchip in der Mitte des Stapels ist.
DE112017000206.0T 2016-03-04 2017-02-27 Kompensation von Temperaturschwankungen eines Arbeitsspeichers Active DE112017000206T8 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662303891P 2016-03-04 2016-03-04
US62/303,891 2016-03-04
US15/167,316 US9996281B2 (en) 2016-03-04 2016-05-27 Temperature variation compensation
US15/167,316 2016-05-27
PCT/US2017/019612 WO2017151474A1 (en) 2016-03-04 2017-02-27 Temperature variation compensation of a memory

Publications (2)

Publication Number Publication Date
DE112017000206T5 true DE112017000206T5 (de) 2018-09-13
DE112017000206T8 DE112017000206T8 (de) 2018-10-25

Family

ID=59722725

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112017000206.0T Active DE112017000206T8 (de) 2016-03-04 2017-02-27 Kompensation von Temperaturschwankungen eines Arbeitsspeichers

Country Status (4)

Country Link
US (3) US9996281B2 (de)
CN (1) CN109074831A (de)
DE (1) DE112017000206T8 (de)
WO (1) WO2017151474A1 (de)

Families Citing this family (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7318027B2 (en) 2003-02-06 2008-01-08 Dolby Laboratories Licensing Corporation Conversion of synthesized spectral components for encoding and low-complexity transcoding
US7318035B2 (en) 2003-05-08 2008-01-08 Dolby Laboratories Licensing Corporation Audio coding systems and methods using spectral component coupling and spectral component regeneration
TWI393120B (zh) 2004-08-25 2013-04-11 Dolby Lab Licensing Corp 用於音訊信號編碼及解碼之方法和系統、音訊信號編碼器、音訊信號解碼器、攜帶有位元流之電腦可讀取媒體、及儲存於電腦可讀取媒體上的電腦程式
WO2016018281A1 (en) * 2014-07-30 2016-02-04 Hewlett-Packard Development Company, L.P. Current behavior of elements
US10115458B2 (en) * 2016-03-30 2018-10-30 Toshiba Memory Corporation Perform read or write on a non-volatile memory having a pending read or write based on temperature thereof
US9891859B1 (en) * 2016-08-09 2018-02-13 Apple Inc. Systems and methods for managing non-volatile memory based on temperature
US10373656B2 (en) * 2016-09-26 2019-08-06 Toshiba Memory Corporation Memory system that carries out temperature-based access to a memory chip
US10627880B2 (en) * 2017-05-19 2020-04-21 Dell Products L.P. Systems and methods for forward compatibility of custom thermal settings
US10553301B2 (en) * 2017-06-03 2020-02-04 Sandisk Technologies Llc Dynamic read table block filter
US10236067B2 (en) * 2017-08-02 2019-03-19 International Business Machines Corporation State-dependent read voltage threshold adaptation for nonvolatile memory
US10354732B2 (en) * 2017-08-30 2019-07-16 Micron Technology, Inc. NAND temperature data management
US10181351B1 (en) * 2017-08-30 2019-01-15 Micron Technology, Inc. Increased NAND performance under high thermal conditions
US10256402B1 (en) * 2017-09-25 2019-04-09 Sandisk Technologies Llc ReRAM read state verification based on cell turn-on characteristics
TWI646548B (zh) * 2017-11-16 2019-01-01 慧榮科技股份有限公司 用來於一記憶裝置中進行刷新管理之方法以及記憶裝置及其控制器
US20190161341A1 (en) * 2017-11-28 2019-05-30 Micron Technology, Inc. Systems and methods for temperature sensor access in die stacks
JP7031268B2 (ja) * 2017-12-08 2022-03-08 富士フイルムビジネスイノベーション株式会社 情報伝達装置及びプログラム
US10276252B2 (en) * 2017-12-11 2019-04-30 Intel Corporation Data storage device with operation based on temperature difference
US10339983B1 (en) * 2017-12-29 2019-07-02 Micron Technology, Inc. Temperature-based memory operations
US10963340B2 (en) * 2018-01-24 2021-03-30 Micron Technology, Inc. Storing critical data at a memory system
US10535383B2 (en) 2018-02-28 2020-01-14 Sandisk Technologies Llc Throughput performance for cross temperature handling scenarios
US10671298B2 (en) * 2018-03-06 2020-06-02 Micron Technology, Inc. Storing page write attributes
US10540228B2 (en) * 2018-03-07 2020-01-21 Micron Technology, Inc. Providing data of a memory system based on an adjustable error rate
JP2019164858A (ja) * 2018-03-19 2019-09-26 東芝メモリ株式会社 メモリシステム
US10379739B1 (en) 2018-03-23 2019-08-13 Western Digital Technologies, Inc. Data storage device read threshold adjustment according to environmental parameters
US10410730B1 (en) 2018-03-30 2019-09-10 Qualcomm Incorporated Selectively synchronizing flash memory block refreshes based in part upon memory block temperature
US10761754B2 (en) * 2018-08-07 2020-09-01 Micron Technology, Inc. Adjustment of a pre-read operation associated with a write operation
US11137808B2 (en) 2018-08-31 2021-10-05 Micron Technology, Inc. Temperature compensation in a memory system
US10761769B2 (en) * 2018-09-04 2020-09-01 Micron Technology, Inc. Accessible accumulated memory temperature readings in a memory sub-system
US10672452B2 (en) 2018-09-21 2020-06-02 Micron Technology, Inc. Temperature informed memory refresh
KR20200053018A (ko) 2018-11-07 2020-05-18 삼성전자주식회사 불휘발성 메모리 장치, 불휘발성 메모리 장치를 포함하는 스토리지 장치, 그리고 불휘발성 메모리 장치를 액세스하는 방법
US11650642B2 (en) * 2018-12-03 2023-05-16 Micron Technology, Inc. Estimating the temperature of a memory sub-system
JP2020155167A (ja) * 2019-03-19 2020-09-24 キオクシア株式会社 不揮発性メモリ
CN109992525A (zh) * 2019-04-01 2019-07-09 合肥沛睿微电子股份有限公司 快闪存储器控制器
KR102201352B1 (ko) * 2019-04-03 2021-01-08 연세대학교 산학협력단 스핀 전달 토크 랜덤 액세스 메모리 기반의 계층적 레지스터 파일 장치
TWI685845B (zh) * 2019-04-08 2020-02-21 大陸商合肥沛睿微電子股份有限公司 快閃記憶體控制器
US11281400B2 (en) * 2019-04-16 2022-03-22 Micron Technology, Inc. Temperature-based storage system organization
US10838645B2 (en) * 2019-04-22 2020-11-17 Micron Technology, Inc. Memory writing operations with consideration for thermal thresholds
US10790031B1 (en) * 2019-06-05 2020-09-29 Western Digital Technologies, Inc. System handling for first read read disturb
US11397460B2 (en) * 2019-06-20 2022-07-26 Western Digital Technologies, Inc. Intelligent power saving mode for solid state drive (ssd) systems
US11128314B2 (en) 2019-06-24 2021-09-21 SK Hynix Inc. Error characteristic estimation for NAND flash
US10908845B1 (en) * 2019-08-27 2021-02-02 Micron Technology, Inc. Managing threshold voltage drift based on a temperature-dependent slope of the threshold voltage drift of a memory sub-system
JP7332406B2 (ja) * 2019-09-13 2023-08-23 キオクシア株式会社 メモリシステム
US11094394B2 (en) 2019-09-24 2021-08-17 Micron Technology, Inc. Imprint management for memory
US11056199B2 (en) 2019-10-30 2021-07-06 International Business Machines Corporation Updating corrective read voltage offsets in non-volatile random access memory
TWI694456B (zh) * 2019-12-03 2020-05-21 華騰國際科技股份有限公司 反及閘型快閃記憶體控制系統及其方法
US11231863B2 (en) 2019-12-19 2022-01-25 Micron Technology, Inc. Block family-based error avoidance for memory devices
US11940892B2 (en) * 2019-12-19 2024-03-26 Micron Technology, Inc. Closing block family based on soft and hard closure criteria
US11094365B1 (en) * 2020-03-17 2021-08-17 Dell Products L.P. System and method for refreshing data for integrity protection at a thermal excursion event
CN113451309A (zh) * 2020-03-25 2021-09-28 长鑫存储技术有限公司 半导体结构及其预热方法
CN111462804B (zh) * 2020-03-27 2021-05-28 长江存储科技有限责任公司 存储器的编程方法及存储器的编程装置
US11315637B2 (en) * 2020-06-03 2022-04-26 Western Digital Technologies, Inc. Adaptive erase voltage based on temperature
US11159176B1 (en) 2020-06-26 2021-10-26 Western Digital Technologies, Inc. Data-assisted LDPC decoding
US11210031B1 (en) 2020-07-08 2021-12-28 Western Digital Technologies, Inc. Thermal region tags and thermal region outlier detection
US11842061B2 (en) * 2020-08-19 2023-12-12 Micron Technology, Inc. Open block family duration limited by temperature variation
US11573720B2 (en) * 2020-08-19 2023-02-07 Micron Technology, Inc. Open block family duration limited by time and temperature
US11435919B2 (en) * 2020-08-25 2022-09-06 Micron Technology, Inc. Associating multiple cursors with block family of memory device
WO2022043726A1 (en) * 2020-08-25 2022-03-03 Micron Technology, Inc. Methods, devices and systems for an improved management of a non-volatile memory
US11366606B2 (en) * 2020-10-01 2022-06-21 Dell Products, L.P. Smarter performance alerting mechanism combining thresholds and historical seasonality
US11675509B2 (en) * 2020-10-29 2023-06-13 Micron Technology, Inc. Multiple open block families supporting multiple cursors of a memory device
US11442833B2 (en) 2020-10-30 2022-09-13 Micron Technology, Inc. Memory sub-system temperature control
EP3995933B1 (de) * 2020-11-05 2023-01-25 Axis AB Verfahren und system zur temperaturregelung einer datenspeichervorrichtung
KR20220067282A (ko) 2020-11-17 2022-05-24 삼성전자주식회사 스토리지 장치, 스토리지 장치를 포함하는 서버 장치 및 스토리지 장치의 구동 방법
CN115004303A (zh) * 2020-12-18 2022-09-02 美光科技公司 存储器子系统中的电荷损失跟踪
CN113010338B (zh) * 2021-02-19 2022-11-15 山东英信计算机技术有限公司 一种内存ce的漏错阈值调整方法、装置、设备及介质
US11756625B2 (en) * 2021-03-12 2023-09-12 Micron Technology, Inc. Adaptive temperature compensation for memory devices
KR20220130409A (ko) * 2021-03-18 2022-09-27 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US11293808B1 (en) * 2021-06-30 2022-04-05 Delphi Technologies Ip Limited Integrated circuit and method for capturing baseline die temperature data
TWI780810B (zh) * 2021-07-08 2022-10-11 力晶積成電子製造股份有限公司 非揮發性記憶體裝置及其讀取驗證電壓的決定方法
US20230061037A1 (en) * 2021-09-01 2023-03-02 Micron Technology, Inc. Apparatus with power-based data protection mechanism and methods for operating the same
CN114067892B (zh) * 2021-10-09 2022-09-27 北京得瑞领新科技有限公司 固态硬盘跨温数据读取方法、存储介质及ssd设备
US11875864B2 (en) * 2021-10-12 2024-01-16 PetaIO Inc. Mitigating edge layer effect in partially written blocks
US11817168B2 (en) * 2021-11-30 2023-11-14 Micron Technology, Inc. Environmental condition tracking for a memory system
US20230186996A1 (en) * 2021-12-13 2023-06-15 Sandisk Technologies Llc Non-volatile memory with differential temperature compensation for super page programming
US11894071B2 (en) 2021-12-13 2024-02-06 Sandisk Technologies Llc Non-volatile memory with differential temperature compensation for bulk programming
US20230266909A1 (en) * 2022-02-24 2023-08-24 Micron Technology, Inc. Operating memory die based on temperature data
US20230343399A1 (en) * 2022-04-20 2023-10-26 Yangtze Memory Technologies Co., Ltd. Voltage supply circuits, three-dimensional memory devices, peripheral circuit, and methods for adjusting voltage supply circuit
CN117234835A (zh) * 2022-06-08 2023-12-15 长鑫存储技术有限公司 存储系统

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7205758B1 (en) 2004-02-02 2007-04-17 Transmeta Corporation Systems and methods for adjusting threshold voltage
JP2006146992A (ja) * 2004-11-16 2006-06-08 Elpida Memory Inc 半導体メモリ装置
US7765825B2 (en) * 2005-12-16 2010-08-03 Intel Corporation Apparatus and method for thermal management of a memory device
US7441949B2 (en) * 2005-12-16 2008-10-28 Micron Technology, Inc. System and method for providing temperature data from a memory device having a temperature sensor
US7590473B2 (en) * 2006-02-16 2009-09-15 Intel Corporation Thermal management using an on-die thermal sensor
US8095851B2 (en) 2007-09-06 2012-01-10 Siliconsystems, Inc. Storage subsystem capable of adjusting ECC settings based on monitored conditions
US7773413B2 (en) 2007-10-08 2010-08-10 Anobit Technologies Ltd. Reliable data storage in analog memory cells in the presence of temperature variations
US7782674B2 (en) 2007-10-18 2010-08-24 Micron Technology, Inc. Sensing of memory cells in NAND flash
JP4635068B2 (ja) 2008-03-25 2011-02-16 株式会社東芝 半導体記憶装置
US7974146B2 (en) 2008-12-19 2011-07-05 Micron Technology, Inc. Wordline temperature compensation
WO2010076828A1 (en) * 2008-12-30 2010-07-08 Emanuele Confalonieri Non-volatile memory with extended operating temperature range
US8305070B2 (en) 2009-11-23 2012-11-06 Intersil Americas Inc. Programmable power supply controller and methodology for automatic phase adjustment of a PWM output signal
JP5554974B2 (ja) 2009-12-11 2014-07-23 ルネサスエレクトロニクス株式会社 データ処理用半導体装置
KR101868332B1 (ko) 2010-11-25 2018-06-20 삼성전자주식회사 플래시 메모리 장치 및 그것을 포함한 데이터 저장 장치
US8472274B2 (en) 2011-03-02 2013-06-25 Apple Inc. Using temperature sensors with a memory device
US8687421B2 (en) 2011-11-21 2014-04-01 Sandisk Technologies Inc. Scrub techniques for use with dynamic read
US9355929B2 (en) * 2012-04-25 2016-05-31 Sandisk Technologies Inc. Data storage based upon temperature considerations
US9046570B2 (en) 2012-08-03 2015-06-02 Freescale Semiconductor, Inc. Method and apparatus for limiting access to an integrated circuit (IC)
US9286986B2 (en) 2012-08-13 2016-03-15 Phison Electronics Corp. Data writing method, and memory control circuit unit and memory storage apparatus using the same
US9202579B2 (en) 2013-03-14 2015-12-01 Sandisk Technologies Inc. Compensation for temperature dependence of bit line resistance
US9465732B2 (en) * 2013-03-15 2016-10-11 Sandisk Technologies Llc Binning of blocks for dynamic linking
US9229806B2 (en) * 2013-11-14 2016-01-05 Sandisk Technologies Inc. Block closure techniques for a data storage device
TWI498732B (zh) * 2014-02-20 2015-09-01 Phison Electronics Corp 資料傳輸方法、記憶體控制電路單元與記憶體儲存裝置
US9330790B2 (en) 2014-04-25 2016-05-03 Seagate Technology Llc Temperature tracking to manage threshold voltages in a memory
US10078546B2 (en) 2014-10-24 2018-09-18 Micron Technology, Inc. Temperature related error management
US9792175B2 (en) * 2015-10-21 2017-10-17 Sandisk Technologies Llc Bad column management in nonvolatile memory
KR102354987B1 (ko) * 2015-10-22 2022-01-24 삼성전자주식회사 온도에 따라 셀프 리프레쉬 사이클을 제어하는 리프레쉬 방법
US20170117053A1 (en) 2015-10-27 2017-04-27 Sandisk Technologies Inc. Systems and methods to compensate for threshold voltage shifts

Also Published As

Publication number Publication date
CN109074831A (zh) 2018-12-21
US20170255403A1 (en) 2017-09-07
US9996281B2 (en) 2018-06-12
DE112017000206T8 (de) 2018-10-25
US20180293009A1 (en) 2018-10-11
US20200225852A1 (en) 2020-07-16
WO2017151474A1 (en) 2017-09-08
US11385802B2 (en) 2022-07-12
US10642510B2 (en) 2020-05-05

Similar Documents

Publication Publication Date Title
DE112017000206T5 (de) Kompensation von Temperaturschwankungen eines Arbeitsspeichers
US11194523B2 (en) Temperature variation compensation
US10446242B2 (en) Temperature variation compensation
DE112018004251T5 (de) Adaptive vorrichtungsdienstqualität durch host-speicherpufferbereich
DE112016002631B4 (de) Speicherfunktionszustandsüberwachung
DE112017002776T5 (de) Nichtflüchtiger Speicher mit angepasster Steuerung vom Typ der Störinjektion während der Programmüberprüfung für eine verbesserte Programmleistung
DE112008001151B4 (de) Mehrbitprogrammiervorrichtung und Verfahren zum Mehrbitprogrammieren
DE102017120961A1 (de) ECC- und Leseeinstellung basierend auf der dynamischen Schätzung eines Speicherfehlermodells
DE112016004148T5 (de) Systeme und Verfahren zur Befehlsautorisierung
DE102017120840A1 (de) Verfahren und Vorrichtung zur Detektion und Handhabung von Lesestörungen
DE102017104257A1 (de) Auf Zellenstrom basierende Bitleitungsspannung
DE102018123891A1 (de) Handhabung nichtabgestimmter Schreibvorgänge
DE102013109235A1 (de) Flash-Speichersystem mit Detektor für anormale Wortleitung und Verfahren zum Erfassen einer anormalen Wortleitung
DE102012112354A1 (de) Speichervorrichtung und nichtflüchtige Speichervorrichtung sowie Betriebsverfahren davon
DE102013108456B4 (de) Nichtflüchtige Speichervorrichtung und Programmierverfahren
DE112017005637T5 (de) Verfahren und System zur Schreibverstärkungsanalyse
DE102013108491A1 (de) Nichtflüchtige Speichervorrichtung und Betriebsverfahren mit variablen Speicherzellenzustandsdefinitionen
DE112015006285T5 (de) Mehrchip-doppelschreiben
DE102018129517A1 (de) Leseverstärker mit negativer schwellenwerterfassung für nicht-flüchtige speicher
DE102015011991A1 (de) Codierungsschema für vertikale 3D-Flash-Speicher
DE112016000696B4 (de) Ablaufplanungsschema(ta) für eine Mehrchip-Speichervorrichtung
DE102020105946A1 (de) Speicherzellen-fehlform-abschwächung
DE112016003416T5 (de) Decodieren von Daten unter Verwendung von Bitleitungsdefektinformationen
DE102018115199A1 (de) Verfahren zur maximierung der frequenz während einer datenintegritätsprüfung auf einem physischen schnittstellenbus
DE102018123494A1 (de) Speichervorrichtung, die zum aktualisieren einesfeldprogrammierbaren gate-arrays ausgestaltetist, und betriebsverfahren dafür

Legal Events

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

Representative=s name: MEWBURN ELLIS LLP, DE

R082 Change of representative

Representative=s name: MURGITROYD GERMANY PATENTANWALTSGESELLSCHAFT M, DE

R016 Response to examination communication