-
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]