DE102017112013B4 - Adaptive Temperatur- und Speicherparameterdrosselung - Google Patents

Adaptive Temperatur- und Speicherparameterdrosselung Download PDF

Info

Publication number
DE102017112013B4
DE102017112013B4 DE102017112013.0A DE102017112013A DE102017112013B4 DE 102017112013 B4 DE102017112013 B4 DE 102017112013B4 DE 102017112013 A DE102017112013 A DE 102017112013A DE 102017112013 B4 DE102017112013 B4 DE 102017112013B4
Authority
DE
Germany
Prior art keywords
throttling
memory
temperature
usage
storage device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE102017112013.0A
Other languages
English (en)
Other versions
DE102017112013A1 (de
Inventor
Deepak Raghu
Pao-Ling Koh
Philip Reusswig
Chris Nga Yee Yip
Yun Wan
Yan Li
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SanDisk Technologies LLC
Original Assignee
SanDisk Technologies LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SanDisk Technologies LLC filed Critical SanDisk Technologies LLC
Publication of DE102017112013A1 publication Critical patent/DE102017112013A1/de
Application granted granted Critical
Publication of DE102017112013B4 publication Critical patent/DE102017112013B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/20Cooling means
    • G06F1/206Cooling means comprising thermal management
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3225Monitoring of peripheral devices of memory devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Verfahren zur Temperaturdrosselung in einer Speichervorrichtung (100), wobei das Verfahren Folgendes umfasst:Bestimmen (502) eines Gesundheitswerts der Speichervorrichtung;Abändern (508) eines Temperaturdrosselungsschwellenwerts auf Basis des Gesundheitswerts der Speichervorrichtung; undDrosseln (714) der Speichervorrichtung, wenn eine Temperatur der Speichervorrichtung den Temperaturdrosselungsschwellenwert übersteigt (712), wobei die Drosselung eine Verringerung der Leistung der Speichervorrichtung umfasst, wobei die Drosselung ein Ändern einer Programmiergeschwindigkeit (806) und/oder einer Programmierspannung (804) umfasst.

Description

  • TECHNISCHES GEBIET
  • Diese Anmeldung betrifft im Allgemeinen den Einfluss der Temperatur auf Speichervorrichtungen. Genauer betrifft diese Anmeldung das Regulieren der Temperaturdrosselung auf Basis der Verwendung, der Gesundheit oder des Alters der Speichervorrichtung und das Einstellen von Speicherparametern auf Basis der Temperatur.
  • ALLGEMEINER STAND DER TECHNIK
  • Nichtflüchtige Speichersysteme wie etwa Flash-Speicher werden verbreitet zur Verwendung in Verbraucherprodukten eingesetzt. Flash-Speicher können sich in verschiedenen Formen finden, zum Beispiel in der Form einer tragbaren Speicherkarte, die zwischen Host-Vorrichtungen befördert werden kann, oder als Solid-State-Disk (SSD), die in eine Host-Vorrichtung eingebettet ist. Eine Überlegung hinsichtlich der Haltbarkeit und der Verlässlichkeit eines solchen Speichers ist die Überkreuztemperatur. Die Überkreuztemperatur (d.h., X-temp) kann ein Temperaturbereich oder eine Temperaturschwankung zwischen dem Datenprogrammieren und dem -lesen sein. Zum Beispiel kann eine hohe X-temp verursacht werden, wenn Daten bei einer hohen Temperatur (heiß) in eine Speichervorrichtung geschrieben werden, aber dann bei einer niedrigen Temperatur (kalt) gelesen werden. Ebenso ist das Schreiben bei einer kalten Temperatur und das Lesen bei einer heißen Temperatur eine hohe Überkreuztemperatur. Bei Speichervorrichtungen (z.B. einem NAND-Flash-Speicher) kann die X-temp ein Mechanismus zur Begrenzung der Zuverlässigkeit sein. Eine hohe X-temp kann zu Fehlern führen. Insbesondere nimmt die X-temp-Bitfehlerrate (BER) mit einem größeren X-temp-Delta zu. Die Speicherhaltbarkeit und die Leistung könnten durch Ansprechen der X-temp verbessert werden. US 2011 0 319 203 A1 schlägt vor, einen Parameter zu bestimmen, der einen Zeitraum anzeigt, für den gespeicherte Daten ihre Integrität behalten. Der Parameter wird mit einem Schwellenwert verglichen und die Daten werden gegebenenfalls neu geschrieben. US 2016 0 180 946 A1 betrifft ein Verfahren zum Betreiben eines Speichersystems.
  • KURZDARSTELLUNG
  • Erfindungsgemäß werden ein Verfahren zur Temperaturdrosselung in einer Speichervorrichtung, ein Verfahren zum Steuern einer Speichervorrichtungsdrosselung und eine Speichervorrichtung mit den Merkmalen der unabhängigen Ansprüche bereitgestellt; abhängige Ansprüche betreffen bevorzugte Ausführungsformen. Eine Speichervorrichtung mit einem Speicher kann die Drosselung abändern, um Überkreuztemperaturauswirkungen zu verringern. Die Entscheidung, zu drosseln, kann auf einer Speichertemperatur beruhen (d.h., Temperaturdrosselung), oder kann auf der Gesundheit, der Verwendung oder der Leistung (z.B. Hot Count oder Bitfehlerrate) der Speichervorrichtung beruhen. Die Temperaturdrosselung kann so ausgeführt werden, dass die Gesundheit, die Verwendung oder die Leistung (z.B. Hot Count oder Bitfehlerrate) der Speichervorrichtung berücksichtigt wird. Ebenso kann die Drosselung auf Basis der Gesundheit, der Verwendung oder der Leistung der Speichervorrichtung die Temperatur der Speichervorrichtung benutzen, um die Drosselungszeit zu optimieren. Zum Beispiel kann eine Prüfmodusmatrix (test mode matrix, TMM) so abgeändert werden, dass sie von der Temperatur abhängt.
  • Figurenliste
    • 1A ist ein Blockdiagramm eines beispielhaften nichtflüchtigen Speichersystems.
    • 1B ist ein Blockdiagramm eines Speichermoduls, das mehrere nichtflüchtige Speichersysteme enthält.
    • 1C ist ein Blockdiagramm eines hierarchischen Speichersystems.
    • 2A ist ein Blockdiagramm von beispielhaften Komponenten einer Steuerung eines nichtflüchtigen Speichersystems.
    • 2B ist ein Blockdiagramm von beispielhaften Komponenten eines nichtflüchtigen Speichers eines nichtflüchtigen Speichersystems.
    • 3 ist ein Blockdiagramm einer Flash-Vorrichtungs-Steuerung.
    • 4 ist ein Diagramm, das eine beispielhafte Überkreuztemperatur(X-temp)-Situation veranschaulicht.
    • 5 ist ein Ablaufdiagramm zur Abwandlung der Drosselung auf Basis der Speichergesundheit/-verwendung und der Temperatur.
    • 6 ist ein Ablaufdiagramm zur Abwandlung einer Prüfmodusmatrix (TMM) auf Basis der Temperatur.
    • 7 ist ein Ablaufdiagramm eines Temperaturdrosselungsschwellenwerts, der von der Speichergesundheit/-verwendung abhängt.
    • 8 ist ein Diagramm, das beispielhafte Drosselungsparameter veranschaulicht.
    • 9 ist eine Darstellung eines beispielhaften dreidimensionalen (3D) Speicheraufbaus.
    • 10 ist eine beispielhafte physikalische Speicherorganisation eines Speicherblocks.
  • BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
  • Es können Kundenanforderungen bestehen, die dazu führen, dass eine Drosselung nötig ist. Am Beginn der Lebenszeit (beginning of life, „BOL“) können Schwankungen in Vorrichtungen vorliegen und kann eine Drosselung verwendet werden, um die Abweichungen in der Leistung zu beseitigen. Ebenso können Kundenanforderungen hinsichtlich der Leistungsqualität bestehen, die ebenfalls durch eine Drosselung angesprochen werden können. Die Drosselung kann auch verwendet werden, um die Bandbreite zu steuern. Die Rate der Wärmeerzeugung in einer Hochtemperaturumgebung kann ebenfalls durch eine Drosselung angesprochen werden. Die Temperaturdrosselung kann auf Basis einer Temperaturdetektion (z.B. einer heißen Umgebung) erfolgen, um eine Überhitzung zu verhindern. Diese Drosselung kann als thermische Drosselung bezeichnet werden, was die Drosselung zur Steuerung der Wärmeerzeugung abdeckt. Umgekehrt kann sich die Leistungsdrosselung auf das Steuern der Leistung beziehen.
  • Die Drosselung kann verwendet werden, um die X-temp anzusprechen. Der Speicher kann aus verschiedenen Gründen gedrosselt werden, einschließlich zur Begrenzung des Stromverbrauchs, zur Überwachung/Steuerung der Temperatur, zur Erweiterung der Speicherhaltbarkeit oder zur Erzielung einer gleichbleibenderen Speicherleistung. Entsprechend können Leistungsschwankungen, hohe Temperaturen oder Stromüberschüsse einen Grund zum Drosseln darstellen. Wie nachstehend beschrieben kann die Drosselung Abänderungen an einer Anzahl von Speicherparametern wie etwa den in 8 besprochenen Parametern beinhalten. Die Entscheidung, zu drosseln, kann auf einer Speichertemperatur beruhen (d.h., Temperaturdrosselung) oder kann auf der Gesundheit, der Verwendung oder der Leistung der Speichervorrichtung (z.B. Hot Count oder Bitfehlerrate) beruhen. Wie nachstehend beschrieben kann die Temperaturdrosselung die Gesundheit, Verwendung oder Leistung der Speichervorrichtung berücksichtigen, wenn ein Temperaturdrosselungsschwellenwert erstellt wird, während die Drosselung auf Basis der Gesundheit, Verwendung oder Leistung der Speichervorrichtung die Temperatur der Speichervorrichtung benutzen kann, um die Drosselungszeit zu optimieren.
  • Die Temperaturdrosselung kann benutzt werden, um heiße Temperaturen zu begrenzen. Hohe Temperaturen in einer Speichervorrichtung können einen Grund für Fehler darstellen. Entsprechend kann dann, wenn eine Temperatur einen bestimmten Schwellenwert erreicht, der Betrieb der Speichervorrichtung gedrosselt werden, um zu versuchen, die Vorrichtungstemperatur zu verringern. Die Drosselung, die verwendet werden kann, ist in 8 näher beschrieben. Die Temperaturdrosselung kann ein firmwareinitiiertes Verhalten sein, bei dem die Speichervorrichtungsleistung verringert wird, wenn eine höchstzulässige Systemtemperatur erreicht ist. Die Verringerung der Leistung kann sicherstellen, dass der Speicher keine für das System maximal annehmbare Temperatur (Temperaturschwellenwert) überschreitet. Wenn ein Drosselungsschwellenwert über die Lebensdauer der Speichervorrichtung hinweg gleichbleibend ist, kann er früh in der Lebensdauer (wenn der Schwellenwert höher sein könnte) ineffizient sein, während er auch später in der Lebensdauer (wenn der Schwellenwert niedriger sein sollte) möglicherweise weniger genau sein kann. Da die Drosselung die Verringerung der Leistung einer Speichervorrichtung umfassen kann, sollte die Drosselung so weit als möglich verringert werden, um die Leistung zu maximieren. Eine Betrachtung der Gesundheit oder der Verwendung der Speichervorrichtung kann einen genaueren Temperaturdrosselungsschwellenwert bereitstellen.
  • Ebenso kann das Abändern von Prüfparametern (z.B. in einer nachstehend besprochenen Prüfmodusmatrix (TMM)) hinsichtlich der Gesundheit der Speichervorrichtung unter Berücksichtigung der Temperatur ebenfalls eine verringerte Drosselung gestatten. Durch temperaturabhängiges Gestalten der TMM kann der Temperaturüberkreuzbereich ohne Verlässlichkeitsbedenken erweitert werden. Eine Prüfmodusmatrix (TMM) kann verwendet werden, um eine Drosselung bestimmter Speicherparameter herzustellen, um Fehler zu verhindern oder die Bitfehlerrate (BER) zu verringern. Die TMM kann sich auf die Gesundheit oder die Haltbarkeit des Speichers verlassen. Zum Beispiel kann die TMM auf einem Hot Count (z.B. Speicher/Lösch-Zyklen (program/erase, PE-Zyklen)) oder der BER beruhen. Wenn der Hot Count oder die BER einen Schwellenwert übersteigt, können bestimmte Speicherparameter gedrosselt werden, um zukünftige Fehler zu verringern. Die Drosselung, die verwendet werden kann, ist in 8 näher beschrieben. Die TMM kann so abgeändert werden, dass sie temperaturabhängig ist. Insbesondere kann die TMM verwendet werden, um vor Datenverlässlichkeitsproblemen aufgrund eines Temperaturüberkreuzens zu schützen. Durch temperaturabhängiges Gestalten der TMM kann der Temperaturüberkreuzbereich ohne Verlässlichkeitsbedenken erweitert werden.
  • 1A bis 2B sind beispielhafte Speichersysteme, die die hier beschriebene adaptive Drosselung ausführen können. 1A ist ein Blockdiagramm, das ein nichtflüchtiges Speichersystem veranschaulicht. Das nichtflüchtige Speichersystem 100 umfasst eine Steuerung 102 und einen nichtflüchtigen Speicher, der aus einem oder mehreren nichtflüchtigen Speicherchips 104 gebildet sein kann. Wie hier verwendet bezieht sich der Ausdruck „Chip“ auf den Satz von nichtflüchtigen Speicherzellen und die zugehörige Schaltung zur Bewerkstelligung des physikalischen Betriebs dieser nichtflüchtigen Speicherzellen, die auf einem einzelnen Halbleitersubstrat gebildet sind. Die Steuerung 102 ist mit einem Host-System verknüpft und sendet Befehlsabfolgen für Lese-, Programmier- und Löschtätigkeiten an den nichtflüchtigen Speicherchip 104. Der nichtflüchtige Speicherchip 104 kann ein Betriebssystem für den Host speichern.
  • Beispiele für Host-Systeme umfassen, jedoch ohne Beschränkung darauf, PCs (Personal Computers) wie Desktop- oder Laptop- oder andere tragbare Computer, Datenzentrumsserver, Tablets, Mobilvorrichtungen, Mobiltelefone, Smartphones, Minicomputer (PDAs), Spielvorrichtungen, digitale Fotokameras, digitale Filmkameras und tragbare Medienabspielgeräte. Für tragbare Speicherkartenanwendungen kann ein Host eine eingebaute Aufnahme für eine oder mehrere Arten von Speicherkarten oder Flash-Laufwerken aufweisen, oder kann ein Host Adapter, in die eine Speicherkarte gesteckt wird, benötigen. Das Speichersystem kann seine eigene Speichersteuerung und Treiber aufweisen, doch gibt es auch einige Nurspeichersysteme, die statt dessen durch Software, die von dem Host, mit dem der Speicher verbunden ist, ausgeführt wird, gesteuert werden. Bei einigen Speichersystemen, die die Steuerung enthalten, insbesondere jenen, die in einen Host eingebettet sind, sind der Speicher, die Steuerung und Treiber häufig auf einem einzelnen integrierten Schaltungschip gebildet. Der Host kann unter Verwendung jedes beliebigen Kommunikationsprotokolls wie etwa, aber ohne Beschränkung darauf, des Serial-AT-Attachment(SATA)-Protokolls, des Serial-Attached-SCSI(SAS)-Protokolls, des Nonvolatile-Memory-Express(NVMe)-Protokolls, des Secure-Digital(SD)-Prokokolls, des Memory-Stick(ME)-Protokolls und des Universal-Serial-Bus(USB)-Protokolls mit der Speicherkarte kommunizieren.
  • Die Steuerung 102 (die eine Flash-Speicher-Steuerung oder eine Vorrichtungssteuerung sein kann) kann die Form einer Verarbeitungsschaltung, eines Mikroprozessors oder Prozessors, und eines computerlesbaren Mediums, das einen computerlesbaren Programmcode (z.B. Software oder Firmware) speichert, der zum Beispiel durch den (Mikro)prozessor, Logikgatter, Schalter, eine anwendungsspezifische integrierte Schaltung (ASIC), eine programmierbare Logiksteuerung und eine eingebettete Mikrosteuerung ausgeführt werden kann, annehmen. Die Steuerung 102 kann mit Hardware und/oder Software ausgebildet sein, um die verschiedenen Funktionen, die nachstehend beschrieben sind und in den Ablaufdiagrammen gezeigt sind, auszuführen. Außerdem können einige der Komponenten, die als innerhalb der Steuerung gezeigt sind, auch außerhalb der Steuerung gespeichert sein, und können andere Komponenten verwendet werden. Zudem könnte der Ausdruck „betrieblich in Kommunikation mit“ in einer direkten Kommunikation oder durch eine oder mehrere Komponenten, die hier gezeigt oder beschrieben oder nicht gezeigt oder beschrieben sein können, in einer indirekten (verdrahteten oder drahtlosen) Kommunikation bedeuten.
  • Wie hier verwendet handelt es sich bei einer Flash-Speicher-Steuerung um eine Vorrichtung, die in dem Flash-Speicher gespeicherte Daten verwaltet und mit einem Host wie etwa einem Computer oder einer elektronischen Vorrichtung kommuniziert. Eine Flash-Speicher-Steuerung kann zusätzlich zu der bestimmten Funktionalität, die hier beschrieben ist, über verschiedene Funktionalitäten verfügen. Zum Beispiel kann die Flash-Speicher-Steuerung den Flash-Speicher formatieren, um sicherzustellen, dass der Speicher richtig arbeitet, schlechte Flash-Speicherzellen festlegen, und Reservezellen als Ersatz für zukünftige ausgefallene Zellen zuteilen. Ein Teil der Reservezellen kann verwendet werden, um Firmware für den Betrieb der Flash-Speicher-Steuerung zu halten und andere Funktionen auszuführen. Wenn im Betrieb ein Host Daten aus dem Flash-Speicher lesen oder in diesen schreiben muss, wird er mit der Flash-Speicher-Steuerung kommunizieren. Wenn der Host eine logische Adresse bereitstellt, von der Daten gelesen/an die Daten geschrieben werden sollen, kann die Flash-Speicher-Steuerung die von dem Host erhaltene logische Adresse in eine physikalische Adresse in dem Flash-Speicher umwandeln (alternativ kann der Host die physikalische Adresse bereitstellen). Die Flash-Speicher-Steuerung kann auch verschiedene Speicherverwaltungsfunktionen ausführen, wie etwa, aber ohne Beschränkung darauf, eine Abnutzungsverteilung (Verteilen von Schreibvorgängen, um die Abnutzung bestimmter Speicherblöcke, in die andernfalls wiederholt geschrieben würde, zu vermeiden) und eine Speicherbereinigung (nachdem ein Block voll ist, werden nur die gültigen Seiten von Daten zu einem neuen Block bewegt, damit der Block gelöscht und wiederverwendet werden kann).
  • Der nichtflüchtige Speicherchip 104 kann jedes beliebige passende nichtflüchtige Speichermedium, einschließlich, aber ohne Beschränkung darauf, NAND-Flash-Speicherzellen, NOR-Flash-Speicherzellen, Phasenwechselspeichern (Phase Change Memory, PCM), resistiven Direktzugriffsspeichern (reRAM), oder magnetoresistiven Direktzugriffsspeicher (MRAM) beinhalten. Die Speicherzellen können die Form von Festzustands- (z.B. Flash-) Speicherzellen annehmen und können einmal programmierbar, einige Male programmierbar oder viele Male programmierbar sein. Die Speicherzellen können außerdem SingleLevel-Cells (SLC), Multiple-Level-Cells (MLC), Triple-Level-Cells (TLC) sein oder andere Speicherzellenebenentechnologien sein, die derzeit bekannt sind oder später entwickelt werden. Außerdem können die Speicherzellen auf eine zweidimensionale oder eine dreidimensionale Weise hergestellt werden.
  • Die Schnittstelle zwischen der Steuerung 102 und dem nichtflüchtigen Speicherchip 104 kann jede beliebige geeignete Flash-Schnittstelle wie etwa Toggle Mode 200, 400 oder 800 sein. Bei einer Ausführungsform kann das Speichersystem 100 Teil eines eingebetteten Speichersystems sein. Zum Beispiel kann der Flash-Speicher in den Host eingebettet sein, etwa in der Form eines Solid-State-Disk(SSD)-Laufwerks, das in einem Personalcomputer installiert ist. Bei einer anderen Ausführungsform kann das Speichersystem 100 ein kartenbasiertes System sein, wie etwa eine Secure-Digital(SD)- oder eine Micro-Secure-Digital(Micro-SD)-Karte.
  • Obwohl das nichtflüchtige Speichersystem 100 bei dem Beispiel, das in 1A veranschaulicht ist, zwischen der Steuerung 102 und dem nichtflüchtigen Speicherchip 104 einen einzelnen Kanal aufweist, ist der hier beschriebene Gegenstand nicht auf das Aufweisen eines einzelnen Kanals beschränkt. Zum Beispiel können bei einigen NAND-Speichersystemarchitekturen wie in 1B und 1C abhängig von den Fähigkeiten der Steuerung 2, 4, 8 oder mehr NAND-Kanäle zwischen der Steuerung und der NAND-Speichervorrichtung vorhanden sein. Bei jeder der hier beschriebenen Ausführungsformen können zwischen der Steuerung und dem Speicherchip mehr als ein Kanal vorhanden sein, auch wenn in den Zeichnungen ein einzelner Kanal gezeigt ist.
  • 1B veranschaulicht ein Speichermodul 200, das mehrere nichtflüchtige Speichersysteme 100 aufweist. Somit kann das Speichermodul 200 eine Speichersteuerung 202, die mit einem Host und einem Speichersystem 204, das mehrere nichtflüchtige Speichersysteme 100 aufweist, verknüpft ist, aufweisen. Die Schnittstelle zwischen der Speichersteuerung 202 und einem nichtflüchtigen Speichersystem 100 kann eine Busschnittstelle wie etwa eine Serial-Advanced-Technology-Attachment(SATA)- oder eine Peripheral-Component-Interface-Express (PCIe)-Schnittstelle sein. Das Speichermodul 200 kann bei einer Ausführungsform ein Solid-State-Laufwerk (SSD) sein, wie es sich in tragbaren Rechenvorrichtungen wie Laptop-Computern und Tablet-Computern findet.
  • 1C ist ein Blockdiagramm, das ein hierarchisches Speichersystem veranschaulicht. Ein hierarchisches Speichersystem 210 weist mehrere Speichersteuerungen 202 auf, die jeweils ein entsprechendes Speichersystem 204 steuern. Host-Systeme 212 können über eine Busschnittstelle auf Speicher in dem hierarchischen Speichersystem zugreifen. Bei einer Ausführungsform kann die Busschnittstelle eine Non-Volatile-Memory-Express(NVMe)- oder eine Fiber-Channel-over-Ethemet(FCoE)-Schnittstelle sein. Bei einer Ausführungsform kann das in 1C veranschaulichte System ein rahmenmontierbares Massenspeichersystem sein, das für mehrere Host-Computer zugänglich ist, wie es sich etwa in einem Datenzentrum oder an einem anderen Ort, an dem eine Massenspeicherung nötig ist, findet.
  • 2A ist ein Blockdiagramm, das beispielhafte Komponenten der Steuerung 102 ausführlicher zeigt. Die Steuerung 102 weist ein Front-End-Modul 108, das mit einem Host verknüpft ist, ein Back-End-Modul 110, das mit dem einen oder den mehreren nichtflüchtigen Speicherchips 104 verknüpft ist, und verschiedene andere Module, die Funktionen durchführen, welche nun ausführlich beschrieben werden, auf. Das Back-End-Modul 110 kann den Warteschlangenmanager 306 und/oder die Flash-Translation-Layer 138, die in Bezug auf 3 gezeigt und beschrieben sind, aufweisen.
  • Ein Modul kann zum Beispiel die Form einer gepackten funktionellen Hardwareeinheit, die zur Verwendung mit anderen Komponenten gestaltet ist, eines Teils eines Programmcodes (z.B. Software oder Firmware), der durch einen (Mikro)prozessor oder eine Verarbeitungsschaltung, der bzw. die gewöhnlich eine bestimmte Funktion von in Zusammenhang stehenden Funktionen durchführt, ausführbar ist, oder einer eigenständigen Hardware- oder Softwarekomponente, die mit einem größeren System verknüpft ist, annehmen. Zum Beispiel kann jedes Modul eine anwendungsspezifische integrierte Schaltung (ASIC), eine feldprogrammierbare Gateanordnung (FPGA), eine Schaltung, eine digitale logische Schaltung, eine analoge Schaltung, eine Kombination von diskreten Schaltungen, Gates, oder jede beliebige andere Art von Hardware oder Kombinationen davon aufweisen. Alternativ oder zusätzlich kann jedes Modul Speicherhardware aufweisen, wie etwa zum Beispiel einen Teil des Speichers 104, der Befehle umfasst, welche mit einem Prozessor ausführbar sind, um eines oder mehrere der Merkmale des Moduls auszuführen. Wenn ein beliebiges der Module den Teil des Speichers aufweist, der Befehle umfasst, die mit dem Prozessor ausführbar sind, kann das Modul den Prozessor aufweisen oder nicht aufweisen. Bei einigen Beispielen kann jedes Modul nur der Teil des Speichers 104 oder eines anderen physikalischen Speichers sein, der Befehle umfasst, die mit dem Prozessor ausführbar sind, um die Merkmale des entsprechenden Moduls auszuführen.
  • Die Steuerung 102 kann eine Drosselungsschaltung 112 aufweisen. Die Drosselungsschaltung 112 kann bestimmen, wann sich der Speicher in einem Drosselungsmodus befindet, und Parameter für den Drosselungsmodus abändern. Die Drosselungsschaltung 112 kann mit der Flash-Translation-Layer 138 gekoppelt oder ein Teil davon sein. Beispielhafte Drosselungsmechanismem sind in 8 veranschaulicht. 5 bis 7 veranschaulichen beispielhafte Ausführungsformen, bei denen die Drosselung in dem Temperaturkontext abgeändert werden kann. Insbesondere kann die Drosselungsschaltung 112 den Temperaturdrosselungsschwellenwert auf Basis der Speichergesundheit/-haltbarkeit/-verwendung abändern oder die TMM-Drosselung so abändern, dass sie von der Temperatur abhängt, wie nachstehend näher besprochen wird.
  • Unter erneuter Bezugnahme auf Module der Steuerung 102 verwaltet ein Puffermanager/eine Bussteuerung 114 Puffer in dem Direktzugriffsspeicher (RAM) 116, und steuert die interne Buszuteilung der Steuerung 102. Ein Nurlesespeicher (ROM) 118 speichert einen Systembootcode. Obwohl sie in 2A als von der Steuerung 102 getrennt angeordnet veranschaulicht sind, können eines oder beide aus dem RAM 116 und dem ROM 118 bei anderen Ausführungsformen in der Steuerung angeordnet sein. Bei noch anderen Ausführungsformen können sich Teile des RAM und des ROM sowohl innerhalb der Steuerung 102 als auch außerhalb der Steuerung befinden. Ferner können sich bei einigen Ausführungen die Steuerung 102, der RAM 116 und der ROM 118 auf gesonderten Halbleiterchips befinden.
  • Das Front-End-Modul 108 weist eine Host-Schnittstelle 120 und eine Physical-Layer-Interface (PHY) 122, die die elektrische Schnittstelle mit dem Host oder der Speichersteuerung der nächsten Ebene bereitstellen, auf. Die Wahl der Art der Host-Schnittstelle 120 kann von der Art des verwendeten Speichers abhängen. Beispiele für Host-Schnittstellen 120 beinhalten, aber ohne Beschränkung darauf, SATA, SATA Express, SAS, Fibre Channel, USB, PCIe und NVMe. Die Host-Schnittstelle 120 erleichtert typischerweise die Übertragung für Daten, Steuersignale, und Timingsignale.
  • Das Back-End-Modul 110 weist eine Fehlerkorrektursteuerungs(ECC)maschine 124 auf, die die von dem Host empfangenen Datenbytes codiert und die aus dem nichtflüchtigen Speicher gelesenen Datenbytes decodiert und hinsichtlich Fehlern korrigiert. Ein Befehlssequenzer 126 erzeugt Befehlssequenzen wie etwa Programmier- und Löschbefehlssequenzen, die zu dem nichtflüchtigen Speicherchip 104 gesendet werden sollen. Ein RAID(Redundant Array of Independent Drives)-Modul 128 verwaltet die Erzeugung der RAID-Parität und die Wiederherstellung von fehlerhaften Daten. Die RAID-Parität kann als zusätzliche Ebene des Integritätsschutzes für die Daten, die in das nichtflüchtige Speichersystem 100 geschrieben werden, verwendet werden. In manchen Fällen kann das RAID-Modul 128 ein Teil der EEC-Maschine 124 sein. Eine Speicherschnittstelle 130 stellt dem nichtflüchtigen Speicherchip 104 die Befehlssequenzen bereit und erhält von dem nichtflüchtigen Speicherchip 104 Statusinformationen. Bei einer Ausführungsform kann die Speicherschnittstelle 130 eine Schnittstelle mit doppelter Datenrate (DDR) wie etwa eine Toggle-Mode-200-, -400- oder -800-Schnittstelle sein. Eine Flash-Control-Layer 132 steuert den gesamten Betrieb des Back-End-Moduls 110.
  • Zusätzliche Komponenten des in 2A veranschaulichten Systems 100 beinhalten die Flash Translation Layer („FTL“) 138, die einen Abnutzungsausgleich der Speicherzellen des nichtflüchtigen Speicherchips 104 vornimmt. Das System 100 weist auch andere diskrete Komponenten 140 wie etwa externe elektrische Schnittstellen, einen externen RAM, Widerstände, Kondensatoren oder andere Komponenten, die mit der Steuerung 102 verknüpft werden können, auf. Bei alternativen Ausführungsformen sind eines oder mehrere aus der Physical-Layer-Interface 122, dem RAID-Modul 128 und der Pufferverwaltung/Bussteuerung 114 optionale Komponenten, die in der Steuerung 102 nicht erforderlich sind.
  • Die FTL 138 kann auch als Media-Management-Layer („MML“) bezeichnet werden. Die FTL 138 kann als Teil des Flash-Managements oder der Flash-Control-Layer 132 aufgenommen sein, der Flash-Fehler behandeln und eine Verknüpfung mit dem Host herstellen kann. Insbesondere kann die FTL eine Schaltung sein, die für die Interna des NAND-Managements verantwortlich ist. Insbesondere kann die FTL 138 Funktionalität oder einen Algorithmus in der Speichervorrichtungsfirmware aufweisen, die bzw. der Lesungen/Schreibungen von dem Host in Lesungen/Schreibungen in den Flash-Speicher 104 übersetzt. Die FTL 138 kann Befehle zur Ausführung erhalten (oder auf eine Warteschlange von Befehlen zugreifen) (z.B. Programmieren in den nichtflüchtigen Speicher 104 oder Lesen aus dem nichtflüchtigen Speicher 104). Durch das Zugreifen auf eine Warteschlange von Befehlen kann die FTL 138 optimal und leistungsfähig wählen, wann und wie Befehle aus der Warteschlange ausgeführt werden sollen. Bei einem Beispiel kann die FTL 138 Befehle gruppieren, um die Leistungsfähigkeit, mit der auf den nichtflüchtigen Speicher 104 zugegriffen wird, zu steigern. Bei einem Beispiel kann die FTL 138 Befehle wählen, um die Haltbarkeit und die Lebensdauer des nichtflüchtigen Speichers 104 zu erweitern.
  • 2B ist ein Blockdiagramm, das beispielhafte Komponenten des nichtflüchtigen Speicherchips 104 ausführlicher veranschaulicht. Der nichtflüchtige Speicherchip 104 weist periphere Schaltungen 141 und eine nichtflüchtige Speicheranordnung 142 auf. Die nichtflüchtige Speicheranordnung 142 weist die nichtflüchtigen Speicherzellen auf, die verwendet werden, um Daten zu speichern, und in Ebenen angeordnet sein können. Bei einer Ausführungsform kann jeder nichtflüchtige Speicherchip 104 eine oder mehr Ebenen aufweisen. Die nichtflüchtigen Speicherzellen können alle beliebigen nichtflüchtigen Speicherzellen sein, einschließlich NAND-Flash-Speicherzellen und/oder NOR-Flash-Speicherzellen in einer zweidimensionalen und/oder dreidimensionalen Konfiguration. Die peripheren Schaltungen 141 weisen eine Zustandsmaschine 152 auf, die der Steuerung 102 Statusinformationen bereitstellt. Der nichtflüchtige Speicherchip 104 weist ferner einen Datencache 156 auf, der Daten zwischenspeichert. Beispielhafte periphere Schaltungen können Taktgeber, Pumpen, ESD, Stromnebenwiderstände, Stromsenken und/oder dichtgepackte Logikschaltungen aufweisen.
  • 3 kann ein Teil von 1 sein oder eine alternative Ausführungsform veranschaulichen. 3 veranschaulicht eine Ausführungsform der Vorrichtungssteuerung 102, ihre internen Blöcke und ihre Wechselwirkungen. Der Host 212 sendet unter Verwendung einer physikalischen Schnittstelle, die den Host mit der Speichervorrichtungssteuerung 102 verbindet, Befehle an die Vorrichtungssteuerung 102. Für diese Schnittstelle sind in der Industrie viele Protokolle definiert, wie etwa Peripheral-Component-Interconnect-Express (PCIe), SATA usw. Die Host-Schnittstelle (MAC und PHY) 302 kann drei niedrige Protokollschichten (Transaktionsschicht, Datenverbindungsschicht und physikalische Schicht) ausführen. Die Verantwortlichkeit für die Host-Schnittstelle 302 kann darin liegen, sicherzustellen, dass Pakete zwischen dem Host 212 und der Speichervorrichtungssteuerung 102 ohne die in diesen Schichten definierten Fehler übertragen werden.
  • Der Befehlsparser 304 erhält die Tätigkeit wie auch die Administrator-Host-Befehle, analysiert sie und prüft die Richtigkeit der Host-Befehle. Er kann mit dem Warteschlangenmanager 306 zusammenwirken, um die Befehle in die passende Warteschlange zu reihen. Vor den Ausführungen können Host-Befehle bei dem Wartschlangenmanager 306 ausstehend sein. Der Warteschlangenmanager kann einen Entscheidungsmechanismus aufweisen, um Befehlen, die durch den Befehlsausführer 308 ausgeführt werden sollen, Priorität zu verleihen. Die FTL 138 kann die Befehle in der Warteschlange optimieren (Priorität verleihen und gruppieren) oder durch Verzögern von Befehlen oder Ändern anderer Speicherparameter, die nicht mit der Befehlswarteschlange in Zusammenhang stehen, eine Drosselung ausführen. Der Befehlsparser 304 oder der Warteschlangenmanager 306 kann für das Steuern des Datenstroms zwischen der Steuerung und der Vorrichtung verantwortlich sein, indem er Anforderungen oder Befehle in der Warteschlange in eine Reihenfolge bringt. Die Reihenfolge kann auf der Priorität der Anforderung, der Verfügbarkeit von Ressourcen zur Handhabung der Anforderung, einem Adressenbedarf für die Anforderung, dem Alter der Anforderung, der Art der Anforderung (z.B. Lesen oder Schreiben) oder der Zugriffsgeschichte des Anforderers beruhen.
  • Eine Befehlswarteschlange kann eine Warteschlange entweder in der Reihenfolge der Priorität, auf First-in-First-out(FIFO)-Basis oder in jeder beliebigen anderen Reihenfolge sein, um eine Verzögerung der Befehlsausführung (z.B. während der Drosselung) zu ermöglichen. Anstatt auf die Ausführung jedes Befehls zu warten, bevor der nächste gesendet wird, setzt das Programm einfach die Befehle in die Warteschlange und kann andere Prozesse durchführen, während die Warteschlange ausgeführt wird. Eine Warteschlange kann für die Drosselung verwendet werden, um den Datenstrom zwischen der Steuerung und der Vorrichtung zu steuern. Befehle können in die Befehlswarteschlange gesetzt werden und durch den Warteschlangenmanager 306 in eine Reihenfolge gebracht werden. Die Reihenfolge kann auf der Priorität der Anforderung, der Verfügbarkeit von Ressourcen zur Handhabung der Anforderung, einem Adressenbedarf für die Anforderung, dem Alter der Anforderung oder der Zugriffsgeschichte des Anforderers beruhen. Die Befehlswarteschlange kann für die FTL 138 zur Ausführung erreichbar sein, was jedoch nicht in 3 gezeigt ist.
  • Die Host-Schnittstelle 302 kann mit einer Host-Schicht 303 zum Erhalt von Befehlen von dem Host 212 gekoppelt sein. Der Programmausführer 308 kann für die Befehlsauswahl und die Ausführung verantwortlich sein. Über anhängige Befehle kann durch den Warteschlangenmanager 306 durch Senden von Erfassungs- und Übertragungsanforderungen an das Flash-Schnittstellen-Modul (flash interface module, „FIM“) 110 entschieden werden, um den nächsten Befehl zur Ausführung zu wählen. Bei einer Ausführungsform kann das FIM 110 die Erfassungs/Übertragungs- oder Programmiertätigkeiten zu dem/in den Flash 104 erzeugen. Das FIM 110 steht durch Senden von Flash-Befehlen mit dem Flash-Speicher 104 in Wechselwirkung.
  • Das Flash-Management von der Flash-Transformation-Layer (FTL) 138 kann für interne Speicherverwaltungstätigkeiten wie etwa die Adressenübersetzung verantwortlich sein. Die FTL 138 kann auch als Media-Management-Layer (MML) bezeichnet werden. Die Vorrichtungssteuerung kann einen direkten „Lese/Schreib“-Speicherzugang (direct memory access, „DMA“) 310 aufweisen, der für das Übertragen von Daten zwischen dem Host und der Vorrichtung verantwortlich sein kann. Der Befehlsparser 304, der Warteschlangemanager 306, das Flash-Management 138 und der Befehlsausführer 308 können für die Behandlung des Steuerbefehls in der Vorrichtung verantwortlich sein, während der Lese/Schreib-DMA 310 den Datenpfad in der Vorrichtung handhabt. Die Vorrichtungsfirmware 124 kann die Funktionalität dieser Logik steuern und verwalten. In der Initialisierungsphase kann die Firmware die Vorrichtungssteuerung 102 konfigurieren. Während des Betriebs steuert die Firmware 124 die Logik und verwaltet den Flash-Speicher 104. Die Firmware 124 kann auch die Befehlsanalyse sowie Warteschlangenspeicherung und -zugriff unterstützen.
  • 4 ist ein Diagramm, das eine beispielhafte Überkreuztemperatur(X-temp)situation veranschaulicht. Die in 1 bis 3 beschriebene Speichervorrichtung kann ihre Drosselungsmechanismen abändern, um mit der X-temp umzugehen. 4 veranschaulicht die Auswirkungen der X-temp. Die x-Achse veranschaulicht den Hot Count oder die Anzahl der Programmier/Lösch(PE)-Zyklen. Die y-Achse veranschaulicht die Bitfehlerrate (BER). Im Allgemeinen nimmt die BER-Rate mit der Zunahme des PE-Zählwerts zu. Es kann ein Schwellenwert 402 für die BER bestehen, der annehmbar oder korrigierbar ist. Je nach dem Wert der X-temp („TempX“) kann der Schwellenwert 402 bei unterschiedlichen PE-Zyklus-Zählungen erreicht werden. Die größte X-temp zeigt einen X-temp-Wert von 100. Die nächste X-temp zeigt einen X-temp-Wert von 90. Die kleinste X-temp zeigt einen X-temp-Wert von 80.
  • 4 zeigt, dass die BER-Rate den Schwellenwert 402 bei höheren Temperaturen rascher (hinsichtlich der PE-Zyklen) erreicht. Die höchste X-temp von 100 erreicht den BER-Schwellenwert 402 bei 404. Die mittlere X-temp von 90 erreicht den BER-Schwellwert 402 bei 406, wobei es sich um mehr Zyklen als für den höchsten X-temp handelt. Schließlich erreicht die niedrigste X-temp von 80 den BER-Schwellenwert 402 bei 408, wobei es sich um eine größere Anzahl von Zyklen als bei der hohen und der mittleren X-temp handelt. Entsprechend sollte die Drosselung der PE-Zyklus-Zählung auch von der Temperatur abhängen.
  • 4 beweist, dass die BER sowohl von den PE-Zyklen als auch von der Temperatur abhängt. Wenn eine Temperaturdrosselung überlegt wird, sollte das Timing der Temperaturdrosselung von den PE-Zyklen abhängen. Insbesondere sollte der Temperaturdrosselungsschwellenwert in Abhängigkeit von der Speichergesundheit oder der Speicherverwendung festgelegt werden. 4 veranschaulicht PE-Zyklen als ein Beispiel für die Speicherverwendung. Für einen neuen Block mit weniger als einer Anzahl von Zyklen bei 404 könnte der Temperaturdrosselungsschwellenwert höher festgelegt werden (z.B. X-temp von 100). Für einen Block mit einer höheren PE-Zyklus-Zählung bei 408 sollte der Temperaturschwellenwert niedriger sein (z.B. X-temp von 80), da sowohl die X-temp von 100 bei 404 als auch die X-temp von 90 bei 406 bereits den BER-Schwellenwert überschritten haben, wenn die PE-Zyklus-Zählung 406 passiert.
  • 5 ist ein Ablaufdiagramm zur Abwandlung der Drosselung auf Basis der Speichergesundheit/-verwendung und der Temperatur. In Block 502 wird ein Gesundheits- oder Verwendungswert erhalten. Wie in 4 gezeigt ist der Hot Count (oder sind die PE-Zyklen) ein Beispiel für die Verwendung. Es kann andere Beispiele für Speichergesundheitsmessungen geben. In Block 504 wird die Vorrichtungstemperatur erhalten. Die Temperatur kann durch einen Sensor, der Teil des Speichers ist, gemessen werden. Bei anderen Ausführungsformen kann die Temperatur durch andere Quellen erhalten oder geschätzt werden. In Block 506 kann sowohl der Verwendungs-/Gesundheitswert als auch der Temperaturwert mit Kriterien vergleichen werden. Wenn die Kriterien nicht erfüllt werden, wird der Prozess wiederholt. Wenn die Kriterien erfüllt werden, kann in Block 508 eine Drosselung ausgeführt werden. Insbesondere können bestimmte Parameter auf Basis des Verwendungs-/Gesundheitswerts und der Temperatur eingestellt werden. Die Kriterien können wie in 6 veranschaulicht ein Verwendungs-/Gesundheitswert oder ein Prüfparameter sein oder wie in 7 veranschaulicht ein Temperaturschwellenwert sein.
  • 6 ist ein Ablaufdiagramm zur Abwandlung einer Prüfmodusmatrix (TMM) auf Basis der Temperatur. In Block 602 wird der Speicherverwendungs- oder Speichergesundheitswert bestimmt. Dieser Speichergesundheitswert oder die Speicherverwendung wird in Block 604 mit einem Schwellenwert verglichen. Wenn die bestimmte Speichergesundheit oder Speicherverwendung in Block 604 schlechter als der Schwellenwert ist, wird in Block 606 die Vorrichtungstemperatur erhalten. Dann wird in Block 608 die Prüfmodusmatrix (TMM) analysiert. Die TMM wird so reguliert oder abgeändert, dass sie wie in der nachstehenden Tabelle 1 gezeigt von der Temperatur abhängt: Tabelle 1: von der Temperatur abhängige Prüfmodusmatrix (TMM)
    87+°C -70°C - 87° 50°C - 87°C <50°C - 87°C
    Temperatur Verwendung (Programmier/Lösch-Zvklen oder Hot Count)
    frisch-500 501-1000 1K-1.5000 1.5000-2000
    70-85 C Standard (keine Drosselung) Drosselung Stufe 1 Drosselung Stufe 2 Drosselung Stufe 3
    49-69 C Standard (keine Drosselung) Standard (keine Drosselung) Drosselung Stufe 1 Drosselung Stufe 2
    45-48 C Standard (keine Drosselung) Standard (keine Drosselung) Standard (keine Drosselung) Drosselung Stufe 1
    25-44 C Standard (keine Drosselung) Standard (keine Drosselung) Standard (keine Drosselung) Drosselung Stufe 1
    10-24 C Standard (keine Drosselung) Standard (keine Drosselung) Drosselung Stufe 1 Drosselung Stufe 2
    -2-9 C Standard (keine Drosselung) Drosselung Stufe 1 Drosselung Stufe 2 Drosselung Stufe 3
  • Tabelle 1 ist lediglich für eine Ausführungsform einer TMM beispielhaft. Tabelle 1 veranschaulicht, dass die Drosselung sowohl von der Verwendung als auch der Temperatur abhängt. Es kann keine Drosselung vorliegen oder es können verschiedene Stufen der Drosselung vorliegen. Wie in Tabelle 1 gezeigt können drei Stufen der Drosselung vorliegen. Die Drosselung der Stufe 1 ist eine feine Drosselung (kleine Änderung der Leistung), während ansteigende Stufen zu einer vermehrten Drosselung (größeren Verringerungen der Leistung) führen. Zum Beispiel kann die Drosselung der Stufe 1 eine 5 bis 10%ige Verringerung der Leistung sein, die Drosselung der Stufe 2 eine 10 bis 15%ige Verringerung der Leistung sein, und die Drosselung der Stufe 3 eine 15 bis 25%ige Verringerung der Leistung sein. Diese Stufen sind lediglich beispielhaft, und es können mehr oder weniger Stufen mit unterschiedlichen Verringerungen der Leistung vorliegen. Die TMM veranschaulicht, dass die Verwendung und die Temperatur bestimmen, wann und wie viel gedrosselt wird. Die ganz linke Spalte stellt die Temperaturklassen dar, die mit der Verwendung (PE-Zyklen oder Hot Count) gezeigt sind. Die TMM berücksichtigt niedrige Temperaturen und hohe Temperaturen. Die Drosselungsstufen werden auf Basis sowohl der Verwendung als auch der Temperaturen bestimmt. Obwohl keine Darstellung erfolgt, kann sich die Drosselung bei niedrigen Temperaturen von der Drosselung bei hohen Temperaturen unterscheiden. Entsprechend kann bei diesem Beispiel jede der drei Stufen über eine Niedertemperatur- und eine Hochtemperaturversion verfügen, so dass sechs Drosselungsstufen vorliegen.
  • Die TMM kann Prüfparameter umfassen. Tabelle 1 veranschaulicht die Verwendung als Prüfparameter, doch können die Speichergesundheit, das Alter oder die Haltbarkeit andere Beispiele für Prüfparameter sein. Durch das Aufnehmen der Temperaturabhängigkeit in die TMM kann die Drosselung optimiert und effizienter gestaltet werden. Die Drosselung kann Einstellungen von temperaturempfindlichen Parametern wie etwa den Drosselungsparametern in 8 beinhalten.
  • 7 ist ein Ablaufdiagramm eines Temperaturdrosselungsschwellenwerts, der von der Speichergesundheit/-verwendung abhängt. In Block 702 wird die Speichervorrichtungsverwendung bestimmt. Bei einer Ausführungsform kann es sich bei der Verwendung um den Hot Count oder die Programmier/Lösch(PE)-Zyklen handeln. Auf Basis der PE-Zyklen kann in Block 704 eine entsprechende adaptive Drosseltemperatur vorliegen. Die adaptive Drosseltemperatur kann als Schwellenwert bezeichnet werden und ist eine Temperatur, bei der die Vorrichtung als Versuch zur Abkühlung und Fehlervermeidung mit einer Drosselung beginnt. Block 706 veranschaulicht eine beispielhafte Tabelle von PE-Zyklen mit ihren entsprechenden Drosseltemperaturen. Block 706 ist lediglich eine Ausführungsform und veranschaulicht, dass die Drosseltemperatur wie in Tabelle 2 abnimmt, wenn die PE-Zyklen zunehmen: Tabelle 2: Adaptive Temperaturdrosselung auf Basis der Verwendung (z.B. Hot Count).
    Programmier/Lösch(PE) - Zyklen Drosseltemperatur
    <100 70° C
    <350 65° C
    <700 60° C
    <1000 55° C
  • Tabelle 2 und Block 706 veranschaulichen, dass ein frischerer Speicher (z.B. < 100 PE-Zyklen) nicht zu drosseln braucht, bis der Drosseltemperaturschwellenwert hoch ist (z.B. 70 °C). Ein älterer Speicher oder ein Speicher mit einer höheren Verwendung (z.B. 1000 PE-Zyklen) wird bei einem niedrigeren Drosseltemperaturschwellenwert (z.B. 55 °C) drosseln. Mit anderen Worten kann für einen neuen Speicher ein hoher Drosseltemperaturschwellenwert verwendet werden, doch sollte der Drosseltemperaturschwellenwert mit zunehmender Verwendung abnehmen, um Fehler zu minimieren, während auch die Leistung optimiert wird (z.B. durch eine verringernde Drosselung).
  • Tabelle 2 und Block 706 werden verwendet, um den passenden Drosseltemperaturschwellenwert in Block 708 auf Basis der in Block 702 bestimmten PE-Zyklen zu bestimmen. In Block 710 wird die Temperatur der Vorrichtung bestimmt. Wenn die Temperatur der Vorrichtung in Block 712 niedriger als der bestimmte Drosseltemperaturschwellenwert ist, wird der Prozess bei Block 702 fortgesetzt. Doch wenn die Temperatur der Vorrichtung in Block 712 höher als der bestimmte Drosseltemperaturschwellenwert ist, wird in Block 714 eine Drosselung ausgeführt. 8 veranschaulicht beispielhafte Ausführungsformen der Drosselung. Der in 7 veranschaulichte Prozess zur adaptiven Einstellung des Drosseltemperaturschwellenwerts kann die Leistung optimieren, während dennoch eine Drosselung gestattet wird, um die Temperatur zu steuern und Fehler zu verringern.
  • 8 ist ein Diagramm, das beispielhafte Drosselungsparameter veranschaulicht. Die Drosselung kann Einstellungen beliebiger temperaturempfindlicher Parameter beinhalten und kann auf NAND-Parameter bezogen werden, wenn sie auf einen NAND-Speicher angewendet wird. Die Drosselungsparameter 802 sind Merkmale, die eingestellt werden können, wenn der Drosselungsmodus besteht. Wie beschrieben kann die Speichervorrichtung aus verschiedenen Gründen (z.B. Stromverbrauch, Temperatur, Haltbarkeit usw.) gedrosselt werden, und sind die Drosselungsparameter 802 beispielhafte Merkmale, die bei einer Drosselung geändert werden können.
  • Die Drosselung kann Einstellungen an der Programmierspannung 804 beinhalten. Die Programmierspannung kann als Vpass bezeichnet werden. Zudem kann auch die Programmierbreite oder die Verteilung der Spannung eingestellt werden. Die Spannungsverteilung kann enger oder weiter programmiert werden. Die Drosselung kann auch Einstellungen an der Programmiergeschwindigkeit 806 beinhalten. Die Programmiergeschwindigkeit 806 kann auch das Programmiertiming und andere Programmiereinstellungen (z.B. die Programmierimpulsbreite oder die Programmierschrittgröße) beinhalten. Als Teil der Drosselung kann eine langsamere Programmierung verwendet werden.
  • Die Drosselung kann Einstellungen an der Befehlsbehandlung 808 beinhalten. Die Befehle, die an der Speichervorrichtung erhalten werden (z.B. in einer Warteschlange) können während des Drosselns langsamer behandelt werden. Während des Drosselns kann die Warteschlange verzögert werden oder können zusätzliche Befehle aufgenommen werden. Die Befehlsbehandlung 808 kann das Drosseln bestimmter Befehle oder Arten von Befehlen beinhalten. Die Drosselung von Befehlsarten kann das Ändern eines segmentierten oder fortlaufenden Befehls beinhalten. Dies kann sowohl für Programmier- als auch für Löschbefehle gelten. Zum Beispiel können unterteilte Befehle eine Reihe von zunehmenden Programmierungen beinhalten, die auf die zu erreichende Spannung zugehen. Dies kann abgestuft werden, bis der Schwellenwert erreicht wird. Während der Drosselung können die Segmentanzahlen (z.B. die Spannungserhöhungen) abgeändert werden. Bei der Drosselung kann eine etwas geringere Spannung angewendet werden, die sich langsamer in einen Programmierzustand bewegt. Die Befehlsbehandlung 808 kann eine Einstellung der Befehlsverifikation beinhalten. Für ein fortlaufendes Programm kann der NAND die Segmente festlegen und prüfen und nachsehen, ob sie programmiert werden. Dies kann das Ändern interner Einstellungen, um mehr Verifikationen vorzunehmen oder sanftere Programmierungen/Löschungen vorzunehmen, beinhalten. Eine derartige Änderung interner Schritte, dass sie langsamer programmieren, kann eine andere Verifikation beinhalten.
  • Befehlseinstellungen können ein anderes Beispiel für die Befehlsbehandlung 808 darstellen. Die Geschwindigkeits- oder Sicherheitsgrenzen des Speichers können abgeändert werden. Der NAND-Chip verwendet interne Schaltungen, um Schritte anzuwenden und den nichtflüchtigen Zustand zunehmend zwischen gelöschten oder unterschiedlichen Bitwerten zu bewegen. Dies kann sowohl für Löschungen als auch für Programmierungen der Fall sein. Die Schritte zur Vornahme dieser Zustandsbewegungen können so abgeändert werden, dass die Schritte zahlreicher, mit unterschiedlichen Dauern, unterschiedlichen Deltas im angelegten Spannungspegel, unterschiedlichen Anstiegsraten und Einschwingzeiten, unterschiedlichen Ausschlussspannungen an peripheren Zellen, einer unterschiedlichen Reihung von Vorgängen usw. gestaltet werden. Jeder oder alle diese Punkte können sich ändern. Für einige davon wurde eine Korrelation mit der Leistung, der Zelllebensdauerverschlechterung, der Haltbarkeit, dem Stromverbrauch, der Bitfehlerrate (BER) bei zukünftigen Lesungen, der Beständigkeit gegenüber Lesestörungen, dem Datenhalt bei verschiedenen Temperaturen usw. gefunden. Durch Anwenden der Kenntnis der Drosselungsart und der Kennzeichnungsarbeit auf das Obige können wir ein Verhalten für den Standardablauf, eine andere Verhaltenseinstellung für einen temperaturgedrosselten Ablauf, und ein unterschiedliches Verhalten für die Leistungsdrosselung anwählen.
  • Die Chipparameter 810 können eine Anzahl von Parametern im Zusammenhang mit dem NAND-Chip beinhalten. Im Drosselmodus kann zum Beispiel die Taktrate verringert werden. Insbesondere kann die Taktrate verlangsamt werden. Es kann sich die Schaltungsverwendung verringern, da die Vorrichtung mit jedem Einschalten Strom verbrauchen kann. Je langsamer die Taktrate ist, desto geringer wird dieser Strom sein. Er wird möglicherweise niemals verschwinden, doch kann eine niedrigere Taktrate den Blindstrom verringern. Dies ist eine Einsparung hinsichtlich der Wärmeleistung, die zerstreut werden muss, und kann auch eine Einsprung sein, wenn eine Stromdeckelung besteht, wie etwa, wenn eine Gesamtverwendungsgrenze für die Speichervorrichtung besteht. Mit anderen Worten kann die Verringerung der Vorrichtungstaktrate sowohl im Leerlauf, wenn der NAND-Speicher nicht einmal verwendet wird, als auch bei tatsächlicher Verwendung eines Befehls wirksam sein. Da die Befehle langsamer werden, verringert dies den verbrauchten Strom, was dazu führt, dass durch die Aktivität in dem NAND eine niedrigere Temperatur erzeugt wird. Bei einer anderen Ausführungsform kann der Chipparameter 810 als anderen Drosselungsmechanismus das Abschalten von SRAM-Puffern beinhalten. Alternativ kann als Teil der Drosselung die Betriebsspannung des Chips verändert werden. Die Betriebsversorgungsspannung kann auf Leiterplattenebene festgelegt werden. Das Verringern der Spannung kann den Strom während der Drosselung verringern. Als Ergebnis können mehr Verifikationen oder mehr Segmente durchgeführt werden, da für den Chip eine verringerte Fähigkeit besteht, Strom aufzunehmen.
  • Die Flash-Kommunikationsbusparameter 812 können (ein) andere(s) Beispiel(e) für (einen) Drosselungsparameter 802, der/die für die Drosselung eingestellt wird/werden, darstellen. Bei einer Ausführungsform können die Kommunikationsbusparameter 812 unterschiedliche Raten oder Busgeschwindigkeiten für Daten und Befehle aufweisen. Der Flash-Bus kann einen Kommunikationspfad zwischen dem Flash-Schnittstellen-Modul und dem Flash beinhalten. Es kann eine Taktrate damit verbunden sein, und dies kann eine Stromersparnis in der SSD darstellen. Es kann sich um eine einmalige Änderung handeln, die bestimmt, dass die Flash-Busgeschwindigkeit so verringert wird, dass die Kommunikation langsamer erfolgt. Bei einer alternativen Ausführungsform kann es sein, dass keine einmalige globale Einstellung für die Drosselung vorliegt (so dass der Drosselungsparameter während der Drosselung geändert wird). Es kann eine Drosselung bestehen, die auf einer Befehlsbasis beruht, anstatt eine globale Einstellung zu sein. Die Drosselung kann für einen bestimmten Zeitraum erfolgen und/oder für einen bestimmten Kanal und/oder einen bestimmten Chip, der spezifisch gedrosselt wird, spezifisch sein. Die Flash-Busdatenübertragungsgröße kann einen anderen Flash-Kommunikationsbusparameter 812 darstellen, der für die Drosselung eingestellt wird. Kleine Datenübertragungen bedeuten, dass der Chip damit beschäftigt ist, mehr Datenpakete zu der Steuerung zu übertragen. Dies verbraucht mehr Zeit und verzögert zukünftige Aktivitäten für diesen NAND-Chip.
  • Anstelle einer Beschränkung von Befehlen können funktionelle Stücke der Steuerung abgeschaltet werden. Da in dem NAND-Speicher bedeutende Wärme- und Stromanforderungen bestehen, kann das Abschalten von Hardware in der Steuerung ein indirektes Verfahren zur Verringerung der NAND-Aktivität darstellen. Doch nicht alle Steuerungen verfügen über verfeinerte Stromabschaltefähigkeiten an allen Hardwarestücken. Die Antriebsleistungsfähigkeit kann abhängig von dem Einfluss der Hardewareabschaltung verringert werden. Folglich kann es sein, dass es nicht zu einer wirksamen Drosselung der NAND-Speicheraktivität kommt, wenn das bestimmte Hardwarestück keinen Flaschenhals in der gegenwärtigen Antriebsauslastung darstellt (die Antriebsleistungsfähigkeit nicht trifft).
  • Bei einer Ausführungsform kann die Ausführung der Drosselung beinhalten, dass die FTL die Sequenz der Ereignisse des Flash-Schnittstellen-Moduls, die dieses der Reihe nach durchführen wird, um eine Programmierung oder eine Lesung auszuführen, verändert. Dies kann eine einmalige globale Einstellung sein, so dass die FTL einen einmaligen Befehl geben wird und den Befehl zu dem Flash-Schnittstellen-Modul senden wird. Das Flash-Schnittstellen-Modul kann ihn zu dem Flash verteilen und eine Änderung an einem NAND-Parameter (z.B. eine niedrigere NAND-Taktrate) verlangen. Er kann für niedrigere Stromzustände oder zum Abschalten peripherer nicht wesentlicher Schaltungen in dem NAND wie etwa stärker bestromter Speicherpuffer verwendet werden. Es kann sich um eine Beschneidungseinstellung (d.h., eine Einstellung in jedem der Chips) handeln. Es kann eine derartige Reihung erfolgen, dass der Flash langsamer läuft, wenn nicht gedrosselt wird. Es kann ein neuer Befehl hinsichtlich der Taktraten gesendet werden. Bei einer alternativen Ausführungsform kann die Drosselung für einen Kanal oder einen Chip spezifisch sein, so dass nur ein Teil des NAND gedrosselt wird.
  • 9 ist eine Darstellung eines beispielhaften dreidimensionalen (3D) Speicheraufbaus. Die Drosselung und die temperaturabhängigen Veränderungen, die hier beschrieben sind, können in verschiedenen Arten von Speichern wie etwa einem Charge-Trapping(CT)-Speicher oder in dem in 9 veranschaulichten 3D-Speicher benutzt werden. 9 ist eine Darstellung eines beispielhaften dreidimensionalen (3D) Speicheraufbaus. 9 veranschaulicht einen beispielhaften 3D-NAND-Flash mit Bit-Cost-Scaling (BiCS). Die Quellenzeilen und die Bitzeilen sind in Bezug auf 10 näher beschrieben und dargestellt. Der Flash-Speicher, der in diesem Speichersystem verwendet wird, kann ein Flash-Speicher mit einer 3D-NAND-Architektur sein, wobei die Programmierung durch Fowler-Nordheim-Tunnelung des Elektrons in die Charge-Trapping-Schicht (charge trapping layer, CTL) erreicht wird. Das Löschen kann durch Verwendung einer Lochinjektion in die CTL zur Neutralisierung der Elektronen über einen physikalischen Mechanismus wie etwa einen gateinduzierten Drainleckstrom (GIDL) erfolgen. 9 ist ein beispielhafter 3D-Aufbau, wobei jede Zelle durch einen Speichertransistor dargestellt ist, wodurch senkrecht eine Speichersäule gebildet wird (z.B. 48 Wortzeilen). Die Wortzeilen (WL), Bitzeilen (BL) und Strangnummern sind in 9 gezeigt. Es sind vier beispielhafte Stränge gezeigt. Es kann ein Memory Hole (in einer NAND-Säule) vorhanden sein, das einen Memory-Hole-Kontakt aufweist. Eine beispielhafte Wortzeile (die logische Wortzeile LWL 185) ist zusammen mit einer beispielhaften physikalischen Wortzeile (PWL 46) dargestellt. Obwohl sie für 3D-Speicheranwendungen von Bedeutung sind, können die adaptive Temperaturdrosselung und die TMM-Temperaturabhängigkeit für andere Aufbauten einschließlich eines 2D-Flash-Speichers mit Charge-Trapping-Dielektrikum und Tunnelungs-Dielektrikum von Bedeutung sein. Insbesondere kann ein Charge-Trapping-Dielektrikums-Speicher 3D oder 2D sein.
  • 10 ist eine beispielhafte physikalische Speicherorganisation eines Speicherblocks. 10 veranschaulicht eine zum Beispiel in der NAND-Konfiguration organisierte Seite von Speicherzellen, die parallel erfasst oder programmiert wird. Bei einer Ausführungsform veranschaulicht 10 einen der Stränge einer 3D-NAND-Architektur, wobei jede Wortzeile mehrere Stränge (entweder vor oder hinter dem Strang in 10) überspannen kann. In dem beispielhaften Speicher ist eine Bank von NAND-Ketten gezeigt. Eine Seite kann jede beliebige Gruppe von Speicherzellen sein, die in der Lage sind, parallel erfasst oder programmiert zu werden. Die Seite wird durch die Steuergates der Zellen der Seite, die gemeinsam an eine Wortzeile angeschlossen sind, aktiviert, und jede Zelle ist durch eine Erfassungsschaltung, die über eine Bitzeile (Bitzeilen BL0 bis BLm) zugänglich ist, erreichbar. Wenn als Beispiel die Seite von Zellen jeweils erfasst oder programmiert wird, wird jeweils eine Erfassungsspannung oder eine Programmierspannung zusammen mit passenden Spannungen auf den Bitzeilen an eine gemeinsame Wortzeile (z.B. WL2) angelegt. Ein Select-Gate-Drain (SGD) ist zu einem Decodiergate wie etwa einer Select-Gate-Source (SGS) entgegengesetzt gezeigt. SGS kann auch als Sourcegate oder Source bezeichnet werden, während SGD als das Draingate oder der Drain bezeichnet werden kann. Direkt neben den Source/Draingates können sich Dummy-Wortzeilen befinden, die als Puffer wirken, um die Source/Draingates von den normalen Wortzeilen zu trennen und die normalen Wortzeilen vor möglichen Schäden zu schützen.
  • Die Speicherstruktur kann einen Charge-Trapping(CT)- oder einen Floating-Gate-Aufbau benutzen. Bei einer Ausführungsform kann es sich bei der Charge-Trapping-Schicht um ein Dielektrikum wie Siliziumnitrid, Magnesiumoxid oder einen anderen Isolator, der ausreichend porös ist, damit in den Poren Elektronen gefangen werden, handeln. Das Siliziumnitrid kann ein Film sein, der Elektronen speichert. Das CT kann einen SONOS(Halbleiter-Oxid-Nitrid-Oxid-Halbleiter)-Kondensator- oder einen MONOS(Metall-Oxid-Nitrid-Oxide-Halbleiter)-Kondensatoraufbau verwenden, wobei die Information in Ladungsfallen in der dielektrischen Schicht gespeichert wird. Das CT kann auch für entweder einen nichtflüchtigen NOR- oder einen NAND-Flash-Speicher verwendet werden. Zwischen einem Steuergate und einem Kanal kann eine variable Ladung vorhanden sein, um eine Schwellenspannung eines Transistors zu ändern. Die CT-Schicht kann ein Isolator sein, der eine verbesserte Haltbarkeit bereitstellt. Die Programmierung der CT-Schicht kann eine Elektronenbewegung auf die CT-Schicht durch eine Injektion heißer Elektronen (hot electron injection, HEI) oder eine Injektion heißer Ladungsträger in den Kanal beinhalten, wobei sich zwischen dem Steuergate eine hohe Spannung befindet und sich an der Source und dem Drain eine mittlere Spannung befindet, und ein Strom von der Source zu dem Drain induziert wird. Bei einer anderen Ausführungsform kann die Fowler-Nordheim-Tunnelung (FNT) eine Alternative darstellen, wenn sich an dem Steuergate eine hohe Spannung befindet und sich an dem Kanal des Speichertransistors eine niedrige Spannung befindet. Elektronen werden durch die Vorspannungsbedingungen in die CT-Schicht injiziert oder getunnelt. Die Injektion heißer Löcher kann benutzt werden, um eine Ladung aus der CT-Schicht zu beseitigen. Mit anderen Worten kann das Hinzufügen von Löchern (oder einer positiven Ladung aufgrund eines Fehlens von Elektronen) zum Löschen verwendet werden.
  • Die Halbleiterspeicherelemente, die sich in und/oder über einem Substrat befinden, können in zwei oder drei Dimensionen angeordnet sein, wie etwa einem zweidimensionalen Speicheraufbau oder einem dreidimensionalen Speicheraufbau. Bei einem zweidimensionalen Speicheraufbau sind die Halbleiterspeicherelemente in einer einzelnen Ebene oder einer einzelnen Speichervorrichtungsebene angeordnet. Typischerweise sind Speicherelemente bei einem zweidimensionalen Speicheraufbau in einer Ebene (z.B. einer x-z-Richtungsebene) angeordnet, die sich im Wesentlichen parallel zu einer Hauptfläche eines die Speicherelemente tragenden Substrats erstreckt. Das Substrat kann ein Wafer sein, über oder in dem die Schicht der Speicherelemente gebildet ist, oder kann ein Trägersubstrat sein, dass an den Speicherelementen angebracht wird, nachdem diese gebildet wurden. Als nichtbeschränkendes Beispiel kann das Substrat einen Halbleiter wie etwa Silizium enthalten.
  • Die Speicherelemente können in der einzelnen Speichervorrichtungsebene in einer geordneten Anordnung wie etwa in mehreren Reihen und/oder Säulen angeordnet sein. Die Speicherelemente können jedoch in nichtregelmäßigen oder nicht orthogonalen Konfigurationen angeordnet sein. Die Speicherelemente können jeweils zwei oder mehr Elektroden oder Kontaktzeilen wie etwa Bitzeilen und Wortzeilen aufweisen.
  • Eine dreidimensionale Speicheranordnung ist so angeordnet, dass Speicherelemente mehrere Ebenen oder mehrere Speichervorrichtungsebenen belegen, wodurch ein Aufbau in drei Dimensionen (d.h., in der x-, der y- und der z-Richtung, wobei die y-Richtung im Wesentlichen senkrecht zu der Hauptfläche des Substrats verläuft, während die x- und die z-Richtung im Wesentlichen parallel dazu verlaufen) gebildet wird. Als nichtbeschränkendes Beispiel kann ein dreidimensionaler Speicheraufbau senkrecht als Stapel von mehreren zweidimensionalen Speichervorrichtungsebenen angeordnet sein. Als anderes nichtbeschränkendes Beispiel kann eine dreidimensionale Speicheranordnung als mehrere senkrechte Säulen (z.B. Säulen, die sich im Wesentlichen senkrecht zu der Hauptfläche des Substrats, d.h., in der y-Richtung erstrecken) angeordnet sein, wobei jede Säule in jeder Säule mehrere Speicherelemente aufweisen kann. Die Säulen können in einer zweidimensionalen Konfiguration, z.B. in einer x-z-Ebene, angeordnet sein, was zu einer dreidimensionalen Anordnung von Speicherelementen mit Elementen in mehreren senkrecht gestapelten Speicherebenen führt. Andere Konfigurationen von Speicherelementen in drei Dimensionen können ebenfalls eine dreidimensionale Speicheranordnung bilden.
  • Als nichtbeschränkendes Beispiel können die Speicherelemente in einer dreidimensionalen NAND-Anordnung so miteinander gekoppelt sein, dass sie einen NAND-Strang innerhalb einer einzelnen waagerechten (z.B. x-z-) Speichervorrichtungsebene bilden. Alternativ können die Speicherelemente so miteinander gekoppelt sein, dass sie einen senkrechten NAND-Strang bilden, der mehrere waagerechte Speichervorrichtungsebenen quert. Es sind andere dreidimensionale Konfigurationen vorstellbar, bei denen einige NAND-Stränge Speicherelemente in einer einzelnen Speicherebene enthalten, während andere Stränge Speicherelemente enthalten, die mehrere Speichervorrichtungsebenen überspannen. Dreidimensionale Speicheranordnungen können auch in einer NOR-Konfiguration und in einer ReRAM-, PCM- oder STT-MRAM-Konfiguration gestaltet werden.
  • Typischerweise sind in einer monolithischen dreidimensionalen Speicheranordnung eine oder mehrere Speichervorrichtungsebenen über einem einzelnen Substrat gebildet. Optional kann die monolithische dreidimensionale Speicheranordnung auch eine oder mehrere Speicherschichten wenigstens teilweise in dem einzelnen Substrat aufweisen. Als nichtbeschränkendes Beispiel kann das Substrat einen Halbleiter wie etwa Silizium beinhalten. In einer monolithischen dreidimensionalen Anordnung sind die Schichten, die jede Speichervorrichtungsebene der Anordnung bilden, typischerweise auf den Schichten der darunter liegenden Speichervorrichtungsebenen der Anordnung gebildet. Doch Schichten von benachbarten Speichervorrichtungsebenen einer monolithischen dreidimensionalen Speicheranordnung können gemeinsam verwendet werden oder Zwischenschichten zwischen Speichervorrichtungsebenen aufweisen.
  • Andererseits können zweidimensionale Anordnungen gesondert gebildet und dann aneinander gepackt werden, um eine nichtmonolithische Speichervorrichtung mit mehreren Speicherschichten zu bilden. Zum Beispiel können nichtmonolithische gestapelte Speicher gebildet werden, indem Speicherebenen auf gesonderten Substraten gebildet werden und die Speicherebenen dann aufeinander gestapelt werden. Die Substrate können vor dem Stapeln verdünnt oder von den Speichervorrichtungsebenen entfernt werden, doch da die Speichervorrichtungsebenen anfänglich über gesonderten Substraten gebildet wurden, sind die sich ergebenden Speicheranordnungen keine monolithischen dreidimensionalen Speicheranordnungen. Ferner können mehrere zweidimensionale Speicheranordnungen oder dreidimensionale Speicheranordnungen (monolithisch oder nichtmonolithisch) auf gesonderten Chips gebildet und dann aneinander gepackt werden, um eine Stapelchip-Speichervorrichtung zu bilden.
  • Für den Betrieb der Speicherelemente und für die Kommunikation mit den Speicherelementen sind typischerweise zugehörige Schaltungen erforderlich. Als nichtbeschränkende Beispiele können Speichervorrichtungen Schaltungen aufweisen, die verwendet werden, um Speicherelemente zu steuern und anzutreiben, damit Funktionen wie das Programmieren und Lesen erfüllt werden. Diese zugehörigen Schaltungen können sich auf dem gleichen Substrat wie die Speicherelemente und/oder auf einem gesonderten Substrat befinden. Zum Beispiel kann sich eine Steuerung für Speicherlese/schreibtätigkeiten auf einem gesonderten Steuerungschip und/oder auf dem gleichen Substrat wie die Speicherelemente befinden.
  • Ein Fachmann wird erkennen, dass diese Erfindung nicht auf die beschriebenen beispielhaften zweidimensionalen und dreidimensionalen Aufbauten beschränkt ist, sondern alle relevanten Speicheraufbauten innerhalb des hier beschriebenen und von einem Fachmann verstandenen Geists und Umfangs der Erfindung abdeckt.
  • In der vorliegenden Anmeldung können Halbleiterspeichervorrichtungen wie die in der vorliegenden Anmeldung beschriebenen flüchtige Speichervorrichtungen wie dynamische Direktzugriffsspeicher(„DRAM“)- oder statische Direktzugriffsspeicher(„SRAM“)vorrichtungen, nichtflüchtige Speichervorrichtungen wie resistive Direktzugriffsspeicher („ReRAM“), elektrisch löschbare programmierbare Nurlesespeicher („EEPROM“), Flash-Speicher (die auch als Untergruppe der EEPROMs angesehen werden können), ferroelektrische Direktzugriffsspeicher („FRAM“) und magnetoresistive Direktzugriffsspeicher („MRAM“) und andere Halbleiterelemente, die zur Speicherung von Informationen in der Lage sind, beinhalten. Jede Art von Speichervorrichtung kann unterschiedliche Konfigurationen aufweisen. Zum Beispiel können Flash-Speichervorrichtungen in einer NAND- oder in einer NOR-Konfiguration konfiguriert sein.
  • Die Speichervorrichtungen können aus passiven und/oder aktiven Elementen in allen beliebigen Kombinationen gebildet sein. Als nichtbeschränkendes Beispiel beinhalten passive Halbleiterspeicherelemente ReRAM-Vorrichtungselemente, die bei einigen Ausführungsformen ein widerstandwechselndes Speicherelement wie etwa eine Anti-Sicherung, ein Phasenwechselmaterial usw. und optional ein Lenkelement wie etwa eine Diode usw. aufweisen. Als weiteres nichtbeschränkendes Beispiel beinhalten aktive Halbleiterspeicherelemente EEPROM- und Flash-Speicher-Vorrichtungselemente, die bei einigen Ausführungsformen einen Ladungsspeicherbereich wie etwa ein Floating-Gate, leitende Nanopartikel oder ein dielektrisches Ladungsspeichermaterial aufweisen.
  • Mehrere Speicherelemente können so konfiguriert sein, dass sie in Reihe verbunden sind, oder dass jedes Element einzeln zugänglich ist. Als nichtbeschränkendes Beispiel enthalten Flash-Speichervorrichtungen in einer NAND-Konfiguration (NAND-Speicher) typischerweise in Reihe verbundene Speicherelemente. Eine NAND-Speicheranordnung kann so konfiguriert sein, dass die Anordnung aus mehreren Speichersträngen gebildet ist, wobei ein Strang aus mehreren Speicherelementen gebildet ist, die eine einzelne Bitzeile gemeinsam verwenden, und auf die als Gruppe zugegriffen wird. Alternativ können Speicherelemente so konfiguriert sein, dass jedes Element einzeln zugänglich ist, z.B. als NOR-Speicheranordnung. Die NAND- und NOR-Speicherkonfigurationen sind beispielhaft, und die Speicherelemente können auf eine andere Weise konfiguriert sein.
  • Ein „computerlesbares Medium“ „maschinenlesbares Medium“, „Signalverbreitungs" medium und/oder „signaltragendes Medium“ kann jede beliebige Vorrichtung umfassen, die Software zur Verwendung durch oder in Verbindung mit einem System, einem Gerät oder einer Vorrichtung, das bzw. die zur Ausführung von Befehlen in der Lage ist, enthält, speichert, kommuniziert, verbreitet oder transportiert. Das maschinenlesbare Medium kann selektiv, aber ohne Beschränkung darauf, ein elektronisches, magnetisches, optisches, elektromechanisches, Infrarot- oder Halbleitersystem, ein solches Gerät, eine solche Vorrichtung oder ein solches Verbreitungsmedium sein. Eine nichterschöpfende Liste von Beispielen für ein maschinenlesbares Medium würde eine elektrische Anschluss „elektronik" mit einem oder mehreren Drähten, eine tragbare magnetische oder optische Platte, einen flüchtigen Speicher wie etwa einen Direktzugriffsspeicher „RAM“, einen Nurlesespeicher „ROM“, einen löschbaren programmierbaren Nurlesespeicher (EPROM oder Flash-Speicher), oder eine Lichtleitfaser beinhalten. Ein maschinenlesbares Medium kann auch ein greifbares Medium, worauf Software gedruckt ist, beinhalten, da die Software elektronisch als Bild oder in einem anderen Format (z.B. durch eine optische Abtastung) gespeichert, dann zusammengestellt und/oder übersetzt oder auf eine andere Weise verarbeitet werden kann. Das verarbeitete Medium kann dann in einem Computer und/oder einem Maschinenspeicher gespeichert werden. Bei einer alternativen Ausführungsform können zweckbestimmte Hardwareausführungen wie etwa anwendungsspezifische integrierte Schaltungen, programmierbare Logikanordnungen und andere Hardwarevorrichtungen aufgebaut werden, um eines oder mehrere der hier beschriebenen Verfahren auszuführen. Anwendungen, die die Vorrichtungen und Systeme von verschiedenen Ausführungsformen beinhalten können, können allgemein eine Vielfalt von elektronischen und Computersystemen umfassen. Eine oder mehrere hier beschriebene Ausführungsformen können Funktionen unter Verwendung von zwei oder mehr spezifischen verbundenen Hardwaremodulen oder Vorrichtungen mit zugehörigen Steuer- und Datensignalen, die zwischen den Modulen und durch diese kommuniziert werden können, oder als Teile einer anwendungsspezifischen integrierten Schaltung ausführen. Entsprechend umfasst das vorliegende System Software-, Firmware- und Hardwareausführungen.
  • Die Darstellungen der hier beschriebenen Ausführungsformen sollen ein allgemeines Verständnis des Aufbaus der verschiedenen Ausführungsformen bereitstellen. Die Darstellungen sollen nicht als vollständige Beschreibung aller Elemente und Merkmale von Vorrichtungen und Systemen, die die hier beschriebenen Aufbauten oder Verfahren benutzen, dienen. Fachleuten können bei der Durchsicht der Offenbarung viele andere Ausführungsformen offensichtlich sein. Es können andere Ausführungsformen benutzt und aus der Offenbarung abgeleitet werden, so dass bauliche und logische Ersetzungen und Änderungen vorgenommen werden können, ohne von dem Umfang der Offenbarung abzuweichen. Zudem sind die Darstellungen lediglich stellvertretend und möglicherweise nicht maßstabsgetreu. Bestimmte Verhältnisse in den Darstellungen können übertrieben sein, während andere Verhältnisse minimiert sein können. Entsprechend sollen die Offenbarung und die Figuren anstatt als beschränkend vielmehr als erläuternd angesehen werden.
  • Die obige ausführliche Beschreibung soll als Erläuterung ausgewählter Formen, die die Erfindung annehmen kann, und nicht als Definition der Erfindung verstanden werden. Der Umfang der beanspruchten Erfindung soll nur durch die folgenden Ansprüche einschließlich aller Entsprechungen definiert werden. Schließlich sollte angemerkt werden, dass jedweder Gesichtspunkt einer jeden der hier beschriebenen bevorzugten Ausführungsformen allein oder in Kombination mit einem anderen verwendet werden kann.

Claims (22)

  1. Verfahren zur Temperaturdrosselung in einer Speichervorrichtung (100), wobei das Verfahren Folgendes umfasst: Bestimmen (502) eines Gesundheitswerts der Speichervorrichtung; Abändern (508) eines Temperaturdrosselungsschwellenwerts auf Basis des Gesundheitswerts der Speichervorrichtung; und Drosseln (714) der Speichervorrichtung, wenn eine Temperatur der Speichervorrichtung den Temperaturdrosselungsschwellenwert übersteigt (712), wobei die Drosselung eine Verringerung der Leistung der Speichervorrichtung umfasst, wobei die Drosselung ein Ändern einer Programmiergeschwindigkeit (806) und/oder einer Programmierspannung (804) umfasst.
  2. Verfahren nach Anspruch 1, wobei die Temperatur durch einen Temperatursensor in der Speichervorrichtung gemessen wird.
  3. Verfahren nach einem der vorstehenden Ansprüche, wobei der Gesundheitswert eine Verwendung der Speichervorrichtung umfasst, und wobei ferner die Verwendung eine Anzahl von Programmier/Lösch(PE)-Zyklen umfasst.
  4. Verfahren nach einem der vorstehenden Ansprüche, wobei der Temperaturdrosselungsschwellenwert erhöht wird, wenn die Anzahl der PE-Zyklen gering ist.
  5. Verfahren nach einem der vorstehenden Ansprüche, wobei der Temperaturdrosselungsschwellenwert mit der Zunahme der PE-Zyklen allmählich verringert wird.
  6. Verfahren nach einem der vorstehenden Ansprüche, wobei die Verringerung der Leistung das Verringern einer Programmiergeschwindigkeit (806), das Verzögern einer Befehlsausführung oder das Abändern einer Befehlsbehandlung (808) umfasst.
  7. Verfahren nach einem der vorstehenden Ansprüche, wobei die Speichervorrichtung (100) einen NAND-Speicher umfasst, und die Drosselung das Drosseln von Speichervorrichtungsparametern, die wenigstens eines aus einer Taktrate, einer Flash-Bus-Geschwindigkeit, einer Kommunikationsmethodologie, einer Befehlsart, einer Befehlseinstellung, einer Befehlsverifikation, Geschwindigkeitsgrenzen oder einer Betriebsspannung beinhalten, umfasst.
  8. Verfahren zum Steuern einer Speichervorrichtungsdrosselung, wobei das Verfahren Folgendes umfasst: Messen eines Verwendungswerts der Speichervorrichtung (100); Erhalten (504) eines Temperaturwerts der Speichervorrichtung; und Vergleichen (506) eines Speicherverwendungsdrosselungsschwellenwerts mit dem Verwendungswert, wobei der Speicherverwendungsdrosselungsschwellenwert von dem Temperaturwert der Speichervorrichtung abhängt; und Drosseln der Speichervorrichtung, wenn der Verwendungswert den Speicherverwendungsdrosselungsschwellenwert übersteigt, wobei die Drosselung eine Verringerung der Leistung der Speichervorrichtung umfasst, wobei die Drosselung ein Ändern einer Programmiergeschwindigkeit und/oder einer Programmierspannung umfasst.
  9. Verfahren nach einem Anspruch 8, wobei die Verwendung einen Hot Count von Programmier/Löschzyklen umfasst.
  10. Verfahren nach einem der vorstehenden Ansprüche 8 bis 9, wobei die Drosselung der Leistung das Verringern einer Programmiergeschwindigkeit (806), das Verzögern einer Befehlsausführung oder das Abändern einer Befehlsbehandlung (808) umfasst.
  11. Verfahren nach einem der vorstehenden Ansprüche 8 bis 10, wobei die Drosselung den Stromverbrauch verringert, die Temperatur beibehält, die Leistung ändert oder die Haltbarkeit des Flash-Speichers verbessert.
  12. Verfahren nach einem der vorstehenden Ansprüche 8 bis 11, wobei der Temperaturwert durch einen Sensor in der Speichervorrichtung gemessen wird.
  13. Verfahren nach einem der vorstehenden Ansprüche 8 bis 12, wobei der Speicherverwendungsdrosselungsschwellenwert erhöht wird, wenn der Temperaturwert niedrig ist.
  14. Verfahren nach einem der vorstehenden Ansprüche 8 bis 13, wobei der Speicherverwendungsdrosselungsschwellenwert mit dem Ansteigen der Temperatur verringert wird.
  15. Verfahren nach einem der vorstehenden Ansprüche 8 bis 14, wobei der Speicherverwendungsdrosselungsschwellenwert Prüfparameter umfasst.
  16. Verfahren nach einem der vorstehenden Ansprüche 8 bis 15, wobei die Prüfparameter eine Prüfmodusmatrix, die von dem Temperaturwert abhängt, umfassen.
  17. Speichervorrichtung (100), umfassend: einen Temperatursensor, der dazu ausgebildet ist, eine Temperatur der Speichervorrichtung zu messen; eine Prüfmodusmatrix mit Prüfparametern für die Speichervorrichtung, wobei die Prüfparameter von der Temperatur abhängen; und eine Drosselungsschaltung (112), die dazu ausgebildet ist, die Speichervorrichtung auf Basis der Temperatur zu drosseln, um eine Überkreuztemperatur zu verringern, wobei die Drosselung eine Verringerung der Leistung der Speichervorrichtung umfasst, wobei die Drosselung ein Ändern einer Programmiergeschwindigkeit und/oder einer Programmierspannung umfasst.
  18. Speichervorrichtung nach Anspruch 17, wobei die Prüfparameter eine Verwendung, eine Speichergesundheit, ein Alter oder eine Haltbarkeit der Speichervorrichtung umfassen.
  19. Speichervorrichtung nach einem der vorstehenden Ansprüche 17 bis 18, wobei die Drosselungsschaltung abhängig von der Temperatur unterschiedlich drosselt.
  20. Speichervorrichtung nach einem der vorstehenden Ansprüche 17 bis 19, wobei die Überkreuztemperatur einen Temperaturunterschied zwischen dem Schreiben und dem Lesen von Daten umfasst.
  21. Speichervorrichtung nach einem der vorstehenden Ansprüche 17 bis 20, wobei die Drosselungsschaltung (112) ausgebildet ist, um den Stromverbrauch zu verringern, eine Temperatur der Speichervorrichtung zu verringern, die Leistung so zu ändern, dass sie an Herstellungsschwankungen angepasst wird, oder die Belastbarkeit der Speichervorrichtung zu verbessern.
  22. Speichervorrichtung nach einem der vorstehenden Ansprüche 17 bis 21, wobei die Speichervorrichtung einen dreidimensionalen (3D) Speicheraufbau umfasst, und wobei eine Steuerung mit dem Betrieb des Flash-Speichers und dem Speichern in diesem verbunden ist.
DE102017112013.0A 2016-08-15 2017-05-31 Adaptive Temperatur- und Speicherparameterdrosselung Active DE102017112013B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/237,139 US10007311B2 (en) 2016-08-15 2016-08-15 Adaptive temperature and memory parameter throttling
US15/237,139 2016-08-15

Publications (2)

Publication Number Publication Date
DE102017112013A1 DE102017112013A1 (de) 2018-02-15
DE102017112013B4 true DE102017112013B4 (de) 2023-07-27

Family

ID=61018374

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017112013.0A Active DE102017112013B4 (de) 2016-08-15 2017-05-31 Adaptive Temperatur- und Speicherparameterdrosselung

Country Status (3)

Country Link
US (1) US10007311B2 (de)
CN (1) CN107767915B (de)
DE (1) DE102017112013B4 (de)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6482690B1 (ja) * 2018-01-11 2019-03-13 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
US10671298B2 (en) 2018-03-06 2020-06-02 Micron Technology, Inc. Storing page write attributes
TWI659311B (zh) 2018-05-14 2019-05-11 慧榮科技股份有限公司 資料儲存系統以及非揮發式記憶體操作方法
CN109032246B (zh) * 2018-05-31 2021-05-14 北京一数科技有限公司 一种智能穿戴设备的控制方法、装置、电子设备及介质
KR102567108B1 (ko) 2018-11-05 2023-08-14 삼성전자주식회사 데이터 스토리지 디바이스 및 데이터 스토리지 시스템
KR20200072620A (ko) * 2018-12-12 2020-06-23 에스케이하이닉스 주식회사 전자 장치
US11086528B2 (en) * 2018-12-14 2021-08-10 SK Hynix Inc. Memory controller and memory system having the same
US10892024B2 (en) 2018-12-26 2021-01-12 Micron Technology, Inc. Scan optimization from stacking multiple reliability specifications
US11042208B2 (en) 2019-03-08 2021-06-22 Micron Technology, Inc. Thermal leveling
CN110211953A (zh) * 2019-06-06 2019-09-06 深圳佰维存储科技股份有限公司 存储芯片、固态硬盘及其温度控制方法
KR20200143107A (ko) 2019-06-14 2020-12-23 삼성전자주식회사 스토리지 장치의 구동 방법 및 이를 수행하는 스토리지 장치
US11397460B2 (en) * 2019-06-20 2022-07-26 Western Digital Technologies, Inc. Intelligent power saving mode for solid state drive (ssd) systems
US11017864B2 (en) * 2019-06-26 2021-05-25 Seagate Technology Llc Preemptive mitigation of cross-temperature effects in a non-volatile memory (NVM)
CN112151526A (zh) * 2019-06-28 2020-12-29 西部数据技术公司 包括高速异质集成控制器和高速缓存的半导体设备
KR20210016203A (ko) 2019-08-02 2021-02-15 삼성전자주식회사 스토리지 장치의 동작 방법, 및 호스트 장치 및 스토리지 장치를 포함하는 스토리지 시스템의 동작 방법
US11947799B1 (en) 2019-10-11 2024-04-02 Amzetta Technologies, Llc Systems and methods for using the TRIM command with solid state devices
US11334251B2 (en) 2019-11-11 2022-05-17 Western Digital Technologies, Inc. SSD operation in a nonoptimal memory environment
US11449271B2 (en) * 2019-12-30 2022-09-20 Micron Technology, Inc. Implementing fault tolerant page stripes on low density memory systems
US11543970B2 (en) * 2020-01-15 2023-01-03 Micron Technology, Inc. Managing dynamic temperature throttling thresholds in a memory subsystem
CN111261216A (zh) * 2020-03-20 2020-06-09 长江存储科技有限责任公司 三维存储器的控制方法及其控制装置和存储介质
US11762585B2 (en) * 2020-03-23 2023-09-19 Micron Technology, Inc. Operating a memory array based on an indicated temperature
KR20210121686A (ko) * 2020-03-31 2021-10-08 에스케이하이닉스 주식회사 데이터 저장 장치 및 그 동작 방법
CN111816240A (zh) * 2020-07-03 2020-10-23 深圳市国微电子有限公司 闪存Nand Flash的动态测试方法、装置、电子设备及存储介质
US11635794B2 (en) * 2020-08-10 2023-04-25 Micron Technology, Inc. Memory sub-system temperature throttling relaxation
CN111949099B (zh) * 2020-09-01 2022-08-09 深圳大普微电子科技有限公司 一种存储器的温控方法、装置、设备及存储介质
TWI800777B (zh) * 2020-12-15 2023-05-01 宏碁股份有限公司 溫度控制方法與資料儲存系統
CN112786080B (zh) * 2020-12-31 2022-08-02 深圳大普微电子科技有限公司 一种降低闪存误码率的方法、装置及固态硬盘
US11636054B2 (en) * 2021-03-31 2023-04-25 Advanced Micro Devices, Inc. Memory controller power states
US11705203B2 (en) 2021-06-18 2023-07-18 Sandisk Technologies Llc Digital temperature compensation filtering
TWI757216B (zh) * 2021-07-23 2022-03-01 群聯電子股份有限公司 溫度控制方法、記憶體儲存裝置及記憶體控制電路單元
US20230106101A1 (en) * 2021-10-02 2023-04-06 Innogrit Technologies Co., Ltd. Adaptive thermal calibration for throttling prevention
US20230288952A1 (en) 2022-01-25 2023-09-14 Western Digital Technologies, Inc. Storage Device Throttling in Proof of Space Blockchain Systems
US20230315285A1 (en) * 2022-04-05 2023-10-05 Western Digital Technologies, Inc. Storage Optimization Of CAT Table During Background Operations
US11829218B1 (en) 2022-05-10 2023-11-28 Western Digital Technologies, Inc. Solid-state device with multiple thermal power states

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110219203A1 (en) 2008-11-11 2011-09-08 Nokia Corporation Method and device for temperature-based data refresh in non-volatile memories
US20110319203A1 (en) 2010-06-23 2011-12-29 Krishna Ramcharan Sports device for practicing hitting a ball/ball-like object/puck
US20160180946A1 (en) 2014-12-17 2016-06-23 SK Hynix Inc. Memory system and method of operating the same

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7166900B1 (en) * 2005-08-17 2007-01-23 Infineon Technologies Ag Semiconductor memory device
US7245096B2 (en) * 2005-11-21 2007-07-17 Comair Rotron, Inc. Method and apparatus for controlling the speed of a DC motor
US7793059B2 (en) * 2006-01-18 2010-09-07 Apple Inc. Interleaving policies for flash memory
US8078918B2 (en) * 2008-02-07 2011-12-13 Siliconsystems, Inc. Solid state storage subsystem that maintains and provides access to data reflective of a failure risk
KR101504340B1 (ko) * 2008-11-04 2015-03-20 삼성전자주식회사 온도 보상 기능을 가지는 불휘발성 메모리 장치 및 그것을 포함하는 메모리 시스템
US8472274B2 (en) * 2011-03-02 2013-06-25 Apple Inc. Using temperature sensors with a memory device
JP5757772B2 (ja) * 2011-04-13 2015-07-29 ルネサスエレクトロニクス株式会社 半導体装置、及びデータ生成方法
JP2013050818A (ja) * 2011-08-30 2013-03-14 Toshiba Corp メモリシステム
US8873316B2 (en) * 2012-07-25 2014-10-28 Freescale Semiconductor, Inc. Methods and systems for adjusting NVM cell bias conditions based upon operating temperature to reduce performance degradation
US9330790B2 (en) * 2014-04-25 2016-05-03 Seagate Technology Llc Temperature tracking to manage threshold voltages in a memory
US9753657B2 (en) 2015-09-18 2017-09-05 Sandisk Technologies Llc Dynamic reconditioning of charge trapped based memory
US10025522B2 (en) 2016-04-15 2018-07-17 Sandisk Technologies Llc Memory interface command queue throttling

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110219203A1 (en) 2008-11-11 2011-09-08 Nokia Corporation Method and device for temperature-based data refresh in non-volatile memories
US20110319203A1 (en) 2010-06-23 2011-12-29 Krishna Ramcharan Sports device for practicing hitting a ball/ball-like object/puck
US20160180946A1 (en) 2014-12-17 2016-06-23 SK Hynix Inc. Memory system and method of operating the same

Also Published As

Publication number Publication date
CN107767915B (zh) 2021-07-20
US20180046231A1 (en) 2018-02-15
US10007311B2 (en) 2018-06-26
CN107767915A (zh) 2018-03-06
DE102017112013A1 (de) 2018-02-15

Similar Documents

Publication Publication Date Title
DE102017112013B4 (de) Adaptive Temperatur- und Speicherparameterdrosselung
US9792998B1 (en) System and method for erase detection before programming of a storage device
CN111149096B (zh) 借助于主机内存缓冲区范围的自适应装置服务质量
US10025522B2 (en) Memory interface command queue throttling
US10042416B2 (en) Memory system and method for adaptive auto-sleep and background operations
DE112018000180T5 (de) System und verfahren zum adaptiven senden frühzeitiger beendigung unter verwendung eines steuerungsspeicherpuffers
DE112017005887T5 (de) Speichersystem und Verfahren zur thermischen Drosselung über eine Befehlsarbitrierung
CN111433754A (zh) 先占式闲置时间读取扫描
US10656872B2 (en) Storage device with multi-die management
US10629260B2 (en) Dynamic management of programming states to improve endurance
US20190265888A1 (en) Storage System and Method for Performing High-Speed Read and Write Operations
US10228746B1 (en) Dynamic distributed power control circuits
US10558576B2 (en) Storage device with rapid overlay access
WO2019046048A1 (en) MULTIPLE CHIP MEMORY QOS MANAGED
DE112018000230T5 (de) System und Verfahren zur spekulativen Befehlsausführung unter Verwendung des Steuerungsspeicherpuffers
DE102018105871A1 (de) Speichersystem und Verfahren zur Vermeidung von Befehlskollisionen in nicht flüchtigen Datenspeichern mit expliziter Kachelgruppierung
CN111383679A (zh) 用于管理存储器的仲裁技术
DE112016000696T5 (de) Ablaufplanungsschema(ta) für eine Mehrchip-Speichervorrichtung
US11935619B2 (en) Page buffer circuits of three-dimensional memory device
DE102017120971A1 (de) Pipelineverzögerungsdetektion während des Decodierens durch eine Datenspeichereinrichtung
US10424382B2 (en) Increased NAND performance under high thermal conditions
US11984193B2 (en) Page buffer circuits in three-dimensional memory devices
US20230402112A1 (en) Storage System and Method for Inference of Read Thresholds Based on Memory Parameters and Conditions
DE112021000142T5 (de) Speicherungssystem und verfahren zur multiprotokoll-handhabung
TW202303616A (zh) 記憶體元件及其操作方法

Legal Events

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

Representative=s name: DEHNSGERMANY PARTNERSCHAFT VON PATENTANWAELTEN, DE

Representative=s name: DEHNS GERMANY PARTNERSCHAFT MBB, DE

R016 Response to examination communication
R018 Grant decision by examination section/examining division