DE102019133027A1 - Datenspeichersysteme und -verfahren für selbstadaptive chipfreigabeeinrichtungszeit - Google Patents

Datenspeichersysteme und -verfahren für selbstadaptive chipfreigabeeinrichtungszeit Download PDF

Info

Publication number
DE102019133027A1
DE102019133027A1 DE102019133027.0A DE102019133027A DE102019133027A1 DE 102019133027 A1 DE102019133027 A1 DE 102019133027A1 DE 102019133027 A DE102019133027 A DE 102019133027A DE 102019133027 A1 DE102019133027 A1 DE 102019133027A1
Authority
DE
Germany
Prior art keywords
volatile memory
memory device
value
dropped
counter value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102019133027.0A
Other languages
English (en)
Inventor
Niang-Chu CHEN
Jun Tao
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Western Digital Technologies Inc
Original Assignee
Western Digital Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Western Digital Technologies Inc filed Critical Western Digital Technologies Inc
Publication of DE102019133027A1 publication Critical patent/DE102019133027A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • 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/061Improving I/O performance
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

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)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Vorrichtungen, Medien, Verfahren und Systeme für Datenspeichersysteme und -verfahren für eine selbstadaptive Chipfreigabeeinrichtungszeit. Ein Datenspeichersystem kann eine oder mehrere nichtflüchtige Speichervorrichtungen und eine Steuerung aufweisen. Die Steuerung ist eingerichtet, um zu bestimmen, ob ein Befehl an eine erste nichtflüchtige Speichervorrichtung der einen oder mehreren nichtflüchtigen Speichervorrichtungen fallengelassen wird. Die Steuerung ist eingerichtet, um, wenn bestimmt wird, dass der Befehl an die erste nichtflüchtige Speichervorrichtung fallengelassen wird, einen ersten Zählerwert zu aktualisieren, der eine Anzahl von Befehlen an die erste nichtflüchtige Speichervorrichtung angibt, die fallengelassen wurden. Die Steuerung ist eingerichtet, um, wenn bestimmt wird, dass der Befehl an die erste nichtflüchtige Speichervorrichtung fallengelassen wird, einen Wert eines Chip-Freigabe-Einrichtungszeitparameters für die erste nichtflüchtige Speichervorrichtung um eine erste Zeitdauer zu erhöhen, basierend auf mindestens einem von einem ersten Zählerwert und einem oder mehreren Parameterwerten der ersten nichtflüchtigen Speichervorrichtung.

Description

  • HINTERGRUND
  • Im Allgemeinen befindet sich eine nichtflüchtige Speichervorrichtung zum Zeitpunkt, zu dem ein Befehl von der nichtflüchtigen Speichervorrichtung empfangen wird, nicht in einem stabilen Zustand. Die Zeit, die eine nichtflüchtige Speichervorrichtung benötigt, um einen stabilen Zustand zu erreichen, kann durch verschiedene Faktoren beeinflusst werden, einschließlich, aber nicht beschränkt auf die Betriebsumgebung des Datenspeichersystems, die Qualität der nichtflüchtigen Speichervorrichtung und dergleichen. Eine der Konsequenzen des Nichtbereitstellens eines stabilen Zustands zum Zeitpunkt, zu dem ein Befehl empfangen wird, ist, dass ein Befehl oder ein Teil eines Befehls fallengelassen und nicht erfolgreich ausgeführt werden kann. Das Fallenlassen von Befehlen kann dazu führen, dass veraltete Daten an das Hostsystem übertragen werden, und kann eine irreversible Datenverfälschung verursachen.
  • Die im Hintergrundabschnitt vorgesehene Beschreibung sollte nicht als Stand der Technik angenommen werden, lediglich weil sie in dem Hintergrundabschnitt erwähnt wird oder diesem zugeordnet ist. Der Hintergrundabschnitt kann Informationen einschließen, die einen oder mehrere Aspekte der vorliegenden Technologie beschreiben, und die Beschreibung in diesem Abschnitt schränkt die Erfindung nicht ein.
  • Figurenliste
    • 1 stellt ein beispielhaftes Liniendiagramm dar, das ein Zeitdiagramm von Signalen veranschaulicht, die für eine nichtflüchtige Speichervorrichtung bereitgestellt wurden.
    • 2 stellt ein beispielhaftes Liniendiagramm dar, das Änderungen eines Werts eines Chip-Freigabe-Einrichtungszeitparameters einer nichtflüchtigen Speichervorrichtung auf Basis davon veranschaulicht, ob Befehle an diese nichtflüchtige Speichervorrichtung erfolgreich ausgeführt werden.
    • 3 ist ein Blockdiagramm, das Komponenten eines Datenspeichersystems gemäß veranschaulichender Implementierungen darstellt.
    • 4 ist ein Flussdiagramm eines beispielhaften Verfahrens zum Einstellen eines Werts eines Chip-Freigabe-Einrichtungszeitparameters einer nichtflüchtigen Speichervorrichtung.
  • Bei einer oder mehreren Implementierungen können nicht alle der dargestellten Komponenten in jeder Figur erforderlich sein, und eine oder mehrere Implementierungen können zusätzliche Komponenten einschließen, die in einer Figur nicht gezeigt sind. Variationen in der Anordnung und dem Typ der Komponenten können vorgenommen werden, ohne vom Umfang der vorliegenden Offenbarung abzuweichen. Zusätzliche Komponenten, unterschiedliche Komponenten oder weniger Komponenten können innerhalb des Umfangs der vorliegenden Offenbarung verwendet werden.
  • DETAILLIERTE BESCHREIBUNG
  • Die nachstehend dargelegte detaillierte Beschreibung ist als eine Beschreibung verschiedener Konfigurationen der vorliegenden Offenbarung gedacht und soll nicht die einzigen Konfigurationen darstellen, in denen die vorliegende Offenbarung in der Praxis umgesetzt werden kann. Die beigefügten Zeichnungen sind in dieses Dokument integriert und Bestandteil der detaillierten Beschreibung. Die detaillierte Beschreibung beinhaltet spezifische Details, um ein gründliches Verständnis der vorliegenden Offenbarung zu ermöglichen. Jedoch wird für Fachleute offensichtlich sein, dass die vorliegende Offenbarung ohne diese spezifischen Details in der Praxis umgesetzt werden kann. In einigen Fällen sind Strukturen und Komponenten in Blockdiagrammform gezeigt, um zu vermeiden, dass die Konzepte der vorliegenden Offenbarung unklar werden. Gleiche Komponenten sind zum leichteren Verständnis mit identischen Elementnummern gekennzeichnet.
  • Die vorliegende Beschreibung bezieht sich im Allgemeinen auf Datenspeichersysteme und -verfahren und insbesondere auf, zum Beispiel und ohne Einschränkung, Datenspeichersysteme und -verfahren für eine selbstadaptive Chipfreigabeeinrichtungszeit. Eine nichtflüchtige Speichervorrichtung, wie beispielsweise eine NAND-Flash-Speichervorrichtung, kann sich in einem stabilen Zustand befinden, um einen an die nichtflüchtige Speichervorrichtung gesendeten Befehl erfolgreich auszuführen. In einigen Implementierungen kann eine erfolgreiche Ausführung eines Befehls das Ausführen eines Befehls sein, ohne dass irgendein Teil des Befehls fallengelassen wird. Die Zeit, die eine nichtflüchtige Speichervorrichtung zum Übergang von einem Ruhezustand in einen stabilen Zustand benötigt, kann durch einen Wert des Chip-Freigabe-Einrichtungszeitparameters der nichtflüchtigen Speichervorrichtung dargestellt werden. Beispielsweise ist, wie in dem in 1 dargestellten Zeitdiagramm gezeigt, der durch die Notation tcs des Chipfreigabesignals (CEn) dargestellte Wert ein Wert des Chip-Freigabe-Einrichtungszeitparameters und stellt die maximale Zeitdauer dar, die die nichtflüchtige Speichervorrichtung hat, um von einem Ruhezustand in einen stabilen Zustand überzugehen. Wie in 1 dargestellt, kann eine nichtflüchtige Speichervorrichtung verschiedene andere Signale erhalten, wie etwa ein Befehl-Zwischenspeicher-Freigabe- (CLE) -Signal, ein Schreibfreigabe- (WEn) -Signal, ein Adressfreigabe- (ALE) -Signal, ein Bereitschafts-(R/Bn) -Signal und ein Lesefreigabe- (REn) -Signal, sodass die Eingabe/Ausgabe (E/A) auf Grundlage des Chipfreigabesignals sowie dieser anderen Signale verarbeitet werden kann.
  • In einigen zuvor implementierten Techniken kann der Wert eines Chip-Freigabe-Einrichtungszeitparameters von jeder nichtflüchtigen Speichervorrichtung eines Datenspeichersystems so vorbestimmt werden, dass er derselbe Wert ist. Solch ein Wert des Chip-Freigabe-Einrichtungszeitparameters darf nicht auf irgendeiner Herstellungsvarianz der nichtflüchtigen Speichervorrichtung oder irgendwelchen spezifischen Eigenschaften der nichtflüchtigen Speichervorrichtung basieren. Darüber hinaus wird als Reaktion auf eine Bestimmung, dass ein Befehl an eine nichtflüchtige Speichervorrichtung fallengelassen wird, der Wert des Chip-Freigabe-Einrichtungszeitparameters auf einen Wert erhöht, der groß genug ist, um alle möglichen Fehlerursachen abzudecken. Jedoch führt das Erhöhen des Werts des Chip-Freigabe-Einrichtungszeitparameters auf einen solchen großen Wert zu einer Erhöhung der Ausführungszeit der Befehle. Somit können solche Erhöhungen des Chip-Freigabe-Einrichtungszeitparameters die Leistung des Datenspeichersystems reduzieren.
  • Eine oder mehrere Implementierungen der vorliegenden Technologie stellen Datenspeichersysteme, -verfahren und -techniken bereit, die einen Standardwert eines Chip-Freigabe-Einrichtungszeitparameters basierend auf einer Herstellungsvarianz der nichtflüchtigen Speichervorrichtung und einer Kalibrierung der nichtflüchtigen Speichervorrichtung auf einen Satz von Bezugswerten bestimmen. Eine Steuerung eines Datenspeichersystems kann eingerichtet sein, um zu bestimmen, ob ein Befehl an eine nichtflüchtigen Speichervorrichtung fallengelassen wird oder nicht, und als Reaktion darauf kann die Steuerung eingerichtet sein, um den Wert des Chip-Freigabe-Einrichtungszeitparameters der nichtflüchtigen Speichervorrichtung einzustellen.
  • Beispielsweise kann, wie in 2 gezeigt, ein Wert des Chip-Freigabe-Einrichtungszeitparameters einer nichtflüchtigen Speichervorrichtung auf der Grundlage einer Bestimmung, dass ein Befehl an die nichtflüchtige Speichervorrichtung fallengelassen wird (siehe z. B. 11a, 11b, 11c), erhöht werden. Solch ein Wert kann verringert werden, wenn eine Aktualisierungsbedingung erfüllt ist (z. B. wenn eine Schwellenanzahl von Befehlen nicht fallengelassen wird oder wenn Befehle für einen Zeitraum nicht fallengelassen werden) (siehe z. B. 12a, 12b, 12c, 12d, 12e, 12f). Wenn jedoch der Chip-Freigabe-Einrichtungszeitparameters bereits auf den Standardwert gesetzt ist, dann wird der Chip-Freigabe-Einrichtungszeitparameters selbst dann nicht verringert, wenn eine Aktualisierungsbedingung erfüllt ist (siehe z. B. 13).
  • Das Ausmaß der Zunahme und Abnahme des Wertes des Chip-Freigabe-Einrichtungszeitparameters kann basierend auf einer Herstellungsvarianz der nichtflüchtigen Speichervorrichtung und einer Kalibrierung der nichtflüchtigen Speichervorrichtung auf einen Satz von Bezugswerten bestimmt werden. Der Betrag, um den der Wert des Chip-Freigabe-Einrichtungszeitparameters verringert wird, kann ein Bruchteil des Betrags sein, um den der Wert des Chip-Freigabe-Einrichtungszeitparameters erhöht wird. Zusätzliche Details des Bestimmens, ob ein Befehl an die nichtflüchtige Speichervorrichtung fallengelassen wird, und das Einstellen der Werte des Chip-Freigabe-Einrichtungszeitparameters werden unten und hierin ausführlich beschrieben.
  • 3 ist ein Blockdiagramm, das beispielhafte Komponenten eines Datenspeichersystems 100 gemäß einem oder mehreren Aspekten der gegenständlichen Technologie darstellt. Das Datenspeichersystem 100 schließt unter anderem die Steuerung 102, die Codier-/Decodier-Maschine 104, das Speichermedium 106 und das nichtflüchtige Speichervorrichtungs-Array 108 ein. Wie in 3 dargestellt, kann das Datenspeichersystem 100 mit einer Host-Vorrichtung 110 über die Host-Schnittstelle 112 verbunden sein.
  • Die Steuerung 102 kann mehrere interne Komponenten (nicht gezeigt), wie einen oder mehrere Prozessoren 103, einen Nur-Lese-Speicher, eine nichtflüchtige Komponentenschnittstelle (beispielsweise einen Multiplexer zum Verwalten von Befehls- und Datentransport entlang einer Verbindung zu dem nichtflüchtigen Speichervorrichtungs-Array 108), eine E/A-Schnittstelle, eine Fehlerkorrekturschaltung und dergleichen, beinhalten. Ein Prozessor der Steuerung 102 kann den Betrieb der Komponenten in der Datenspeichersteuerung 102 überwachen und steuern. Der Prozessor und/oder die Steuerung 102 können ein Mehrkernprozessor, ein Allzweck-Mikroprozessor, ein Mikrocontroller, ein digitaler Signalprozessor (DSP), ein anwendungsspezifischer integrierter Schaltkreis (ASIC), eine anwenderprogrammierbare Gatteranordnung (Field Programmable Gate Array, FPGA), ein programmierbarer Logikbaustein (PLD), eine Steuerung, eine Zustandsmaschine, ein Logikgatter, einzelne Hardwarekomponenten oder eine Kombination der Vorstehenden sein. In einigen Implementierungen können eines oder mehrere Elemente der Steuerung 102 in einem einzelnen Chip integriert sein. In einigen Implementierungen können die Elemente in zwei oder mehr einzelnen Komponenten implementiert sein.
  • Die Steuerung 102 kann einen Code oder Anweisungen ausführen, um die hierin beschriebenen Operationen und Funktionen durchzuführen. Zum Beispiel kann die Steuerung 102 Operationen zum Verwalten von Anforderungsfluss- und Adressenabbildungen durchführen, Berechnungen durchführen und Befehle erzeugen. Eine oder mehrere Sequenzen von Anweisungen können als Firmware in Speicher in der Steuerung 102 gespeichert sein. Eine oder mehrere Sequenzen von Anweisungen können Software sein, die von dem Speichermedium 106 und dem nichtflüchtigen Speichervorrichtungs-Array 108 gespeichert und gelesen wird oder von der Host-Vorrichtung 110 empfangen wird (zum Beispiel über die Host-Schnittstelle 112). Das Speichermedium 106 und das nichtflüchtige Speichervorrichtungs-Array 108 beinhalten Beispiele von maschinen- oder computerlesbaren Medien, auf denen Anweisungen/Codes, die durch die Steuerung 102 ausführbar sind, gespeichert werden können. Die Begriffe maschinen- oder computerlesbare Medien können allgemein jedes materielle und nichtflüchtige Medium oder jeden Datenträger bezeichnen, das/der verwendet wird, um Anweisungen an die Steuerung 102 bereitzustellen, einschließlich sowohl flüchtiger Medien, wie beispielsweise einem dynamischen Speicher, der für Speichermedien oder für Puffer in der Steuerung 102 verwendet wird, als auch nichtflüchtige Medien, wie elektronische Medien, optische Medien und magnetische Medien. Die hierin beschriebenen Operationen und Funktionen können auch unter Verwendung zum Beispiel von logischen Schaltungen in Hardware oder einer Kombination von Hardware und Software/Firmware implementiert sein.
  • Nach einigen Aspekten stellt das Speichermedium 106 den flüchtigen Speicher dar, der zum temporären Speichern von Daten und Informationen verwendet wird, die dazu dienen, das Datenspeichersystem 100 zu verwalten. Nach Aspekten der vorliegenden Offenbarung ist das Speichermedium 106 ein Speicher mit wahlfreiem Zugriff (RAM), wie ein RAM mit doppelter Datenrate (DDR). Andere Typen von RAM können auch verwendet werden, um das Speichermedium 106 zu implementieren. Das Speichermedium 106 kann unter Verwendung eines einzelnen RAM-Moduls oder mehrerer RAM-Module implementiert werden. Während das Speichermedium 106 als von der Steuerung 102 verschieden dargestellt ist, versteht es sich, dass das Speichermedium 106 in die Steuerung 102 integriert sein kann, ohne vom Umfang der vorliegenden Offenbarung abzuweichen. Alternativ kann das Speichermedium 106 ein nichtflüchtiger Speicher sein, wie eine Magnetplatte, ein Flash-Speicher, ein Peripherie-SSD und dergleichen.
  • Die Host-Schnittstelle 112 kann mit der Host-Vorrichtung 110 gekoppelt werden, um Daten von der Host-Vorrichtung 110 zu empfangen und Daten an diese zu senden. Die Host-Schnittstelle 112 kann sowohl elektrische als auch physische Verbindungen enthalten, um die Host-Vorrichtung 110 betriebsmäßig mit der Steuerung 102 zu koppeln. Die Host-Schnittstelle 112 kann Daten, Adressen und Steuersignale zwischen der Host-Vorrichtung 110 und der Steuerung 102 kommunizieren. Auf diese Weise kann die Steuerung 102, als Reaktion auf einen Schreibbefehl von der Host-Vorrichtung 110, von der Host-Vorrichtung 110 empfangene Daten im nichtflüchtigen Speichervorrichtungs-Array 108 speichern und im nichtflüchtigen Speichervorrichtungs-Array 108 gespeicherte Daten lesen und die gelesenen Daten, als Reaktion auf einen Lesebefehl von der Host-Vorrichtung 110, über die Host-Schnittstelle 112 an die Host-Vorrichtung 110 übertragen.
  • Host-Vorrichtung 110 stellt jede Vorrichtung dar, die mit dem Datenspeichersystem 100 gekoppelt werden kann und Daten in dem Datenspeichersystem 100 speichert. Die Host-Vorrichtung 110 kann ein Rechensystem, wie ein Personalcomputer, ein Server, eine Workstation, ein Laptop-Computer, ein PDA, ein Smartphone und dergleichen, sein. Alternativ kann die Host-Vorrichtung 110 eine elektronische Vorrichtung, wie eine Digitalkamera, ein digitaler Audioplayer, ein digitaler Videorecorder und dergleichen, sein.
  • Wie ferner in 3 dargestellt, können die Hostvorrichtung 110 und das Datenspeichersystem 100 über einen Bus 114 miteinander kommunizieren. Der Bus kann geeignete Schnittstellenstandards verwenden, einschließlich, aber nicht beschränkt auf: Serial Advanced Technology Attachment (SATA), Advanced Technology Attachment (ATA), Small Computer System Interface (SCSI), PCI-extended (PCI-X), Fiber-Channel-Technologie, Serial Attached SCSI (SAS), Secure Digital (SD), Embedded Multi-Media Card (EMMC), Universal Flash Storage (UFS) und Peripheral Component Interconnect Express (PCle). Gemäß einigen Aspekten kann das Datenspeichersystem 100 Stifte (oder eine Buchse) einschließen, um sich mit einer entsprechenden Buchse (oder Stiften) auf der Host-Vorrichtung 110 zu verbinden, um eine elektrische und physikalische Verbindung herzustellen.
  • Die Steuerung kann einen internen Systembus 115 einschließen. Der Systembus 115 kann eine Kombination aus einem Steuerbus, Adressbus und Datenbus einschließen und die Komponenten der Steuerung 102 (z. B. einen darin befindlichen Prozessor und/oder Speicher) mit anderen Komponenten des Datenspeichersystems 100 verbinden, einschließlich der Kodier-/Dekodier-Maschine 104, des Speichermediums 106, des nichtflüchtigen Speichervorrichtungs-Arrays 108 und der Host-Schnittstelle 112. Daten werden zwischen den verschiedenen Komponenten über den Systembus 115 übertragen. Der Systembus 115 kann sich teilweise außerhalb und teilweise innerhalb der Steuerung 102 befinden.
  • Die Host-Vorrichtung 110 und das Datenspeichersystem 100 können über eine verdrahtete oder drahtlose Verbindung miteinander kommunizieren und können lokal oder entfernt voneinander sein. Nach einem oder mehreren anderen Aspekten beinhaltet das Datenspeichersystem 100 (oder die Host-Schnittstelle 112) einen drahtlosen Transceiver, um das Host-Gerät 110 und das Datenspeichersystem 100 in drahtlose Kommunikation miteinander zu bringen.
  • Die Steuerung 102 kann Daten und/oder Speicherzugriffsbefehle von einem Speicherschnittstellenmodul 116 (z. B. einem Gerätetreiber) der Host-Vorrichtung 110 empfangen. Von der Speicherschnittstelle 116 kommunizierte Speicherzugriffsbefehle können von dem HostSystem 110 ausgegebene Schreib- und Lesebefehle beinhalten. Lese- und Schreibbefehle können eine logische Adresse (z. B. logische Blockadressen oder LBAs) vorgeben, die verwendet wird, um auf Daten zuzugreifen, die in dem Datenspeichersystem 100 gespeichert sind. Die Steuerung 102 kann Befehle in dem nichtflüchtigen Speichervorrichtungs-Array 108 als Reaktion auf Befehle ausführen, die von dem Speicherschnittstellenmodul 116 empfangen werden.
  • Das nichtflüchtige Speichervorrichtungs-Array 108 kann mehrere nichtflüchtige Speichervorrichtungen 118 einschließen. Eine nichtflüchtige Speichervorrichtung 118 stellt eine nichtflüchtige Speichervorrichtung zum Speichern von Daten dar. Gemäß Aspekten der vorliegenden Technologie schließt die nichtflüchtige Speichervorrichtung 118 beispielsweise einen NAND-Flash-Speicher ein. Jede nichtflüchtige Speichervorrichtung 118 kann einen einzelnen nichtflüchtigen Speicherchip oder ein -Modul beinhalten, oder sie kann mehrere nichtflüchtige Speicherchips oder -Module beinhalten. Zum Beispiel können in einem nichtflüchtigen Speichervorrichtungs-Array 108 einige der nichtflüchtigen Speichervorrichtungen 118 ein nichtflüchtiges Modul aufweisen, während andere mehr als ein nichtflüchtiges Modul aufweisen können. Die nichtflüchtige Speichervorrichtung 118 ist nicht auf irgendeine bestimmte Kapazität oder Konfiguration beschränkt. Zum Beispiel können die Anzahl physischer Blöcke, die Anzahl physischer Seiten pro physischem Block, die Anzahl von Sektoren pro physischer Seite und die Größe der Sektoren innerhalb des Umfangs der vorliegenden Technologie variieren.
  • Die nichtflüchtigen Speichervorrichtungen 118 können in mehreren Kanälen angeordnet sein, wobei jeder Kanal eine oder mehrere nichtflüchtige Speichervorrichtungen 118 aufweist. Eine nichtflüchtige Speichervorrichtung 118 kann eine oder mehrere nichtflüchtige Speicherschnittstellen (nicht dargestellt) einschließen. Jede nichtflüchtige Speicherschnittstelle verbindet die Steuerung 102 über einen entsprechenden Kanal mit einer der nichtflüchtigen Speichervorrichtungen. Jeder der Kanäle (nicht dargestellt) kann unter Verwendung von einem oder mehreren physischen E/A-Bussen implementiert werden, die zwischen einer der nichtflüchtigen Speicherschnittstellen und der/den entsprechenden nichtflüchtigen Vorrichtung(en) gekoppelt sind. Jeder Kanal ermöglicht der entsprechenden nichtflüchtigen Speicherschnittstelle, Lese-, Schreib- und/oder Löschbefehle an die entsprechende nichtflüchtige(n) Speichervorrichtung(en) zu senden. Jede nichtflüchtige Speicherschnittstelle kann ein Register (z. B. ein First-In-First-Out- (FIFO) -Register) beinhalten, das Lese-, Schreib- und/oder Löschbefehle von der Steuerung 102 für die entsprechende nichtflüchtige Speichervorrichtung in einer Warteschlange anordnet. Obwohl sich der Begriff „Kanal“, wie vorstehend verwendet, auf den Bus bezieht, der zwischen einer nichtflüchtigen Speicherschnittstelle und der entsprechenden nichtflüchtigen Speichervorrichtung gekoppelt ist, kann sich der Begriff „Kanal“ auch auf die entsprechende nichtflüchtige Speichervorrichtung beziehen, die durch einen Bus (z. B. den Systembus 115) adressierbar ist.
  • Die nichtflüchtige Speichervorrichtung 118 kann über eine Standardschnittstellenspezifikation verfügen. Dieser Standard stellt sicher, dass Chips von mehreren Herstellern austauschbar verwendet werden können. Die Schnittstelle der nichtflüchtigen Speichervorrichtung 118 kann verwendet werden, um auf interne Register 120 und eine interne nichtflüchtige Steuerung 122 zuzugreifen. Bei einigen Implementierungen können die Register 120 Adress-, Befehls- und/oder Datenregister einschließen, die intern die notwendigen Daten zu und von einem NAND-Speicherzellen-Array 124 abrufen und ausgeben. Beispielsweise kann das Speicherzellen-Array 124 einen Single-Level-Cell-(SLC)-Speicher, einen Multi-Level-Cell-(MLC)-Speicher, eine Three-Level-Cell-(TLC)-Speichervorrichtung usw. aufweisen. In einigen Aspekten kann das nichtflüchtige Speichervorrichtungs-Array 108 eine oder mehrere Hybridspeichervorrichtungen aufweisen, die in einem oder mehreren von einem SLC-, MLC- oder TLC-Modus arbeiten können. Andere Typen von nichtflüchtigen Speichern, wie etwa 3D-NAND-Flash-Speicher, werden in der vorliegenden Technologie ebenfalls in Betracht gezogen.
  • Ein Datenregister (z. B. von Registern 120) kann Daten, die in dem Speicherzellen-Array 124 gespeichert werden sollen, oder Daten nach einem Abruf aus dem Speicherzellen-Array 124 beinhalten und kann außerdem zur temporären Datenspeicherung verwendet werden und/oder wie ein Puffer wirken. Ein Adressenregister kann die Speicheradresse speichern, von der Daten an die Host-Vorrichtung 110 abgerufen werden, oder die Adresse, an die Daten gesendet und gespeichert werden. Nach einigen Aspekten ist ein Befehlsregister enthalten, um die Parität, die Unterbrechungssteuerung und dergleichen zu steuern. Nach einigen Aspekten ist die interne nichtflüchtige Speichersteuerung 122 über ein Steuerregister zugänglich, um das allgemeine Verhalten der nichtflüchtigen Speichervorrichtung 118 zu steuern. Die interne nichtflüchtige Steuerung 122 und/oder das Steuerregister können die Anzahl von Stoppbits, die Wortlänge, die Empfänger-Taktquelle steuern und können außerdem das Umschalten des Adressiermodus, der Paging-Steuerung, der Coprozessorsteuerung und dergleichen steuern.
  • Die Kodier-/Dekodier-Maschine 104 stellt eine oder mehrere Komponenten dar, die Codewörter kodieren und/oder dekodieren können, die in dem nichtflüchtigen Speichervorrichtungs-Array 108 gespeichert und/oder aus diesem gelesen werden sollen. Die Kodier-/Dekodier-Maschine 104 kann einen Kodierer und einen Dekodierer einschließen. Der Decodierer kann einen harten Decodierer und einen Soft-Decision-ECC-Decodierer einschließen. Die Kodier-/Dekodier-Maschine 104 kann die von der Host-Vorrichtung 110 empfangenen Daten in Codewörter kodieren und Codewörter aus der nichtflüchtigen Speichervorrichtung 118 vor dem Senden der dekodierten Daten an den Host dekodieren. Bei einigen Implementierungen kann die Kodier-/Dekodier-Maschine 104 eine oder mehrere Speichervorrichtung(en) und/oder eine oder mehrere Verarbeitungseinheit(en) aufweisen, die verwendet werden, um eine Fehlerkorrektur durchzuführen (z. B. unter Verwendung von LDPC, BCH oder Turbo-Codes). Die Kodier-/Dekodier-Maschine 104 kann auch ein unspezifisches Informationsmodul beinhalten, das unspezifische metrische Eingaben für Kodier- und Dekodierungsoperationen bestimmt und/oder beibehält. Obwohl die Kodier-/Dekodier-Maschine 104 als von der Steuerung 102 verschieden dargestellt ist, versteht es sich, dass die Kodier-/Dekodier-Maschine 104 in die Steuerung 102 integriert sein kann, ohne vom Umfang der vorliegenden Offenbarung abzuweichen.
  • Jede nichtflüchtige Speichervorrichtung 118 kann eingerichtet sein, um basierend auf einem Wert eines Chip-Freigabe-Einrichtungszeitparameters zu arbeiten. Wie oben beschrieben, ist der Wert des Chip-Freigabe-Einrichtungszeitparameters der Zeitraum, während dessen die nichtflüchtige Speichervorrichtung 118 von einem Ruhezustand in einen stabilen Zustand übergeht. Für jede der nichtflüchtigen Speichervorrichtungen 118 kann ein bestimmter Standardwert für den Chip-Freigabe-Einrichtungszeitparameter bestimmt werden. Der Standardwert des Chip-Freigabe-Einrichtungszeitparameters jeder nichtflüchtigen Speichervorrichtung 118 kann unterschiedlich sein. Die Standardwerte des Chip-Freigabe-Einrichtungszeitparameters von jeder der nichtflüchtigen Speichervorrichtungen 118 können basierend auf einer Kalibrierung von jeder der nichtflüchtigen Speichervorrichtungen 118 auf einen Bezugssatz von Werten ausgewählt werden. Die Kalibrierung der nichtflüchtigen Speichervorrichtungen 118 wird auf Grundlage der Herstellungsvarianz der bestimmten nichtflüchtigen Speichervorrichtung 118 durchgeführt. Die Standardwerte des Chip-Freigabe-Einrichtungszeitparameters von jeder der nichtflüchtigen Speichervorrichtungen 118 können in einer Datenstruktur, wie einer Tabelle, im Datenspeichersystem 100 gespeichert werden. Beispielsweise kann die Datenstruktur mit den Standardwerten des Chip-Freigabe-Einrichtungszeitparameters im Speichermedium 106 gespeichert werden.
  • Mit Blick auf 4 wird ein Flussdiagramm gezeigt, das einen Prozess zum Einstellen eines Werts eines Chip-Freigabe-Einrichtungszeitparameters veranschaulicht. Zum Zweck der Veranschaulichung eines klar verständlichen Beispiels werden Komponenten des Datenspeichersystems 100, die in Bezug auf 3 gezeigt und beschrieben wurden, dafür verwendet, um den Prozess des Einstellens eines Werts eines Chip-Freigabe-Einrichtungszeitparameters zu beschreiben.
  • Das Verfahren 400 schließt das Bestimmen, ob ein Befehl an eine bestimmte nichtflüchtige Speichervorrichtung, wie zum Beispiel nichtflüchtige Speichervorrichtungen 118, fallengelassen wurde (Block 401), ein. Die Steuerung 102 kann eingerichtet sein, um unter Verwendung verschiedener Verfahren zu bestimmen, ob ein Befehl an eine bestimmte nichtflüchtige Speichervorrichtung 118 anliegt. Beispielsweise kann die Steuerung 102 für einen Schreibbefehl eingerichtet sein, um eine logische Blockadresse mit Daten des Speicherns der Daten in einer bestimmten nichtflüchtigen Speichervorrichtung 118 einzuschließen, und kann die Steuerung 102 eingerichtet sein, um zu bestimmen, ob der Schreibbefehl fallengelassen wurde, indem sie die gespeicherten Daten aus der nichtflüchtigen Speichervorrichtung 118 ausliest und bestimmt, dass die logische Blockadresse in der Datenauslesung aus der nichtflüchtigen Speichervorrichtung mit der logischen Blockadresse, die mit den Daten gespeichert wurde, übereinstimmt, während die Daten in der nichtflüchtigen Speichervorrichtung 118 gespeichert werden.
  • Wenn die Steuerung 102 bestimmt, dass der Befehl an die bestimmte nichtflüchtige Speichervorrichtung 118 fallengelassen wird („JA“ bei Block 401), fährt das Verfahren 400 damit fort, 402 zu blockieren. Die Steuerung 102 aktualisiert einen Zählerwert (Block 402). Der Zähler ist der bestimmten nichtflüchtigen Speichervorrichtung 118 zugeordnet und der Wert des Zählers gibt eine Anzahl von fallengelassenen Befehlen an. In einigen Implementierungen kann ein solcher Zähler als Zähler für fallengelassene Befehle bezeichnet werden. Jede nichtflüchtige Speichervorrichtung 118 kann einem bestimmten Zähler für fallengelassene Befehle zugeordnet sein und der Wert des Zählers für fallengelassene Befehle gibt die Anzahl von Befehlen an diese bestimmte nichtflüchtige Speichervorrichtung 118 an, die fallengelassen wurden. In einigen Implementierungen kann der Wert des Zählers eine Anzahl von Befehlen darstellen, die über einen bestimmten Zeitraum fallengelassen wurden. In einigen Implementierungen kann der Wert des Zählers auf Null zurückgesetzt werden, wenn eine Schwellenanzahl von aufeinanderfolgenden Befehlen erfolgreich ausgeführt wurde, ohne dass irgendwelche Befehle fallengelassen wurden.
  • Die Steuerung 102 erhöht einen aktuellen Wert des Chip-Freigabe-Einrichtungszeitparameters für die bestimmte nichtflüchtige Speichervorrichtung 118 um einen bestimmten Zeitraum (Block 403). In einigen Implementierungen kann die Steuerung 102 eingerichtet sein, um den bestimmten Zeitraum basierend auf einem Schwellenwert zu bestimmen. Beispielsweise kann der Schwellenwert 10 Nanosekunden (ns) betragen und kann die Steuerung 102 eingerichtet sein, um zu bestimmen, dass der bestimmten Zeitraum 10 Nanosekunden beträgt und um den aktuellen Wert des Chip-Freigabe-Einrichtungszeitparameters um 10 Nanosekunden zu erhöhen. Bei einigen Implementierungen kann der Schwellenwert auf Grundlage einer Kalibrierung der bestimmten nichtflüchtigen Speichervorrichtung 118 auf einen Bezugssatz von Werten vorgegeben werden, wobei die Kalibrierung der bestimmten nichtflüchtigen Speichervorrichtung 118 basierend auf einer Herstellungsvarianz der bestimmten nichtflüchtigen Speichervorrichtung 118 durchgeführt wird. In einigen Implementierungen kann die Steuerung 102 eingerichtet sein, um den bestimmten Zeitraum basierend auf dem Wert des Zählers zu bestimmen. Wenn zum Beispiel der Zählerwert anzeigt, dass ein Befehl an die nichtflüchtige Speichervorrichtung 118 fallengelassen wird, dann kann die Steuerung 102 konfiguriert sein, um den bestimmten Zeitraum als 10 Nanosekunden zu bestimmen. Wenn in ähnlicher Weise der Zählerwert angibt, dass zwei Befehle an die nichtflüchtige Speichervorrichtung 118 fallengelassen wurden, dann kann die Steuerung 102 eingerichtet sein, um zu bestimmen, dass der bestimmte Zeitraum 30 Nanosekunden beträgt, und wenn der Zählerwert angibt, dass drei Befehle an die nichtflüchtige Speichervorrichtung 118 fallengelassen wurden, dann kann die Steuerung 102 eingerichtet sein, um zu bestimmen, dass der bestimmte Zeitraum 40 Nanosekunden beträgt.
  • Die Steuerung 102 kann eingerichtet sein, um den aktualisierten Wert des Chip-Freigabe-Einrichtungszeitparameters in einer Datenstruktur, wie einer Tabelle, zu speichern, die eingerichtet ist, um die Werte des Chip-Freigabe-Einrichtungszeitparameters zu speichern. Beispielsweise kann die Steuerung 102 eingerichtet sein, um den aktualisierten Wert des Chip-Freigabe-Einrichtungszeitparameters in einer Tabelle zu speichern und die Tabelle in einem Speichermedium, wie dem Speichermedium 106, zu speichern. In einigen Implementierungen kann das Datenspeichersystem 100 eingerichtet sein, um für jede nichtflüchtige Speichervorrichtung 118 im Datenspeichersystem 100 eine Datenstruktur aufrechtzuerhalten und kann die Datenstruktur der nichtflüchtigen Speichervorrichtung 118 zugeordnet sein. Die Steuerung 102 kann so eingerichtet sein, dass sie den aktualisierten Wert des Chip-Freigabe-Einrichtungszeitparameters in der Datenstruktur speichert, die der nichtflüchtigen Speichervorrichtung 118 zugeordnet ist. Die Steuerung 102 kann so eingerichtet sein, dass sie die Werte des Chip-Freigabe-Einrichtungszeitparameters in der zugeordneten Datenstruktur über die Lebensdauer der nichtflüchtigen Speichervorrichtung 118 speichert.
  • Wenn die Steuerung 102 bestimmt, dass der Befehl an die nichtflüchtige Speichervorrichtung 118 nicht fallengelassen wurde („NEIN“ bei Block 401), fährt das Verfahren mit Block 404 fort. Die Steuerung 102 bestimmt, ob eine Aktualisierungsbedingung der Chipfreigabeeinrichtungszeit erfüllt ist (Block 404). In einigen Implementierungen kann die Aktualisierungsbedingung der Chipfreigabeeinrichtungszeit ein Schwellenzeitraum sein, während dessen ein Befehl an eine nichtflüchtige Speichervorrichtung 118 nicht fallengelassen wird.
  • Beispielsweise kann die Steuerung 102 eingerichtet sein, um eine Zeitdauer zu bestimmen, die seit dem letzten Fallenlassen eines Befehls an die nichtflüchtige Speichervorrichtung 118 verstrichen ist, und um zu bestimmen, ob die Zeitdauer den Schwellenzeitraum erfüllt (z. B. größer oder gleich).
  • In einigen Implementierungen kann die Aktualisierungsbedingung der Chipfreigabeeinrichtungszeit eine Schwellenanzahl von Befehlen (z. B. 1000 Befehle) an eine nichtflüchtige Speichervorrichtung 118 sein, die erfolgreich ausgeführt wurden, ohne fallengelassen zu werden. Wenn beispielsweise eine solche Aktualisierungsbedingung 1000 Befehle ist, dann kann die Steuerung 102 eingerichtet sein, um eine Anzahl von Befehlen an die nichtflüchtige Speichereinrichtung 118 zu bestimmen, die erfolgreich ausgeführt wurden, ohne fallengelassen zu werden, und um zu bestimmen, ob die Anzahl von Befehlen die Aktualisierungsbedingung, 1000 Befehle, erfüllt (z. B. größer oder gleich ist).
  • Der Steuerung 102 kann eingerichtet sein, um einen Zähler für jede nichtflüchtige Speichervorrichtung 118 aufrechtzuerhalten und/oder zu aktualisieren, um die Anzahl von Befehlen zu verfolgen, die erfolgreich ausgeführt wurden, ohne fallengelassen zu werden. In einigen Implementierungen kann ein solcher Zähler als ein Zähler für erfolgreich ausgeführte Befehle bezeichnet werden. In einigen Implementierungen kann der Zähler für erfolgreich ausgeführte Befehle der bestimmten nichtflüchtigen Speichervorrichtung 118 zugeordnet sein und kann jede nichtflüchtige Speichervorrichtung 118 des Datenspeichersystems 100 einem einzelnen Zähler für erfolgreich ausgeführte Befehle zugeordnet sein. In einigen Implementierungen kann die Aktualisierungsbedingung der Chipfreigabeeinrichtungszeit eine Schwellenanzahl von aufeinanderfolgenden Befehlen (z. B. 1000 aufeinanderfolgende Befehle) an die nichtflüchtige Speichervorrichtung 118 sein, die erfolgreich ausgeführt wurden, ohne fallengelassen zu werden, und kann die Steuerung 102 eingerichtet sein, um zu bestimmen, ob die aufeinanderfolgende Anzahl von Befehlen an die nichtflüchtige Speichervorrichtung 118, die erfolgreich ausgeführt wurden, die Aktualisierungsbedingung der Chipfreigabeeinrichtungszeit (z. B. 1000 aufeinanderfolgende Befehle) erfüllt.
  • In einigen Implementierungen kann die Steuerung 102 eingerichtet sein, um eine fortlaufende Anzahl von Befehlen an die nichtflüchtige Speichervorrichtung 118, die erfolgreich ausgeführt wurden, ohne fallengelassen zu werden, unter Verwendung eines Zählers zu bestimmen. In einigen Implementierungen kann ein solcher Zähler als ein Zähler für erfolgreich ausgeführte aufeinanderfolgende Befehle bezeichnet werden. In einigen Implementierungen kann der Zähler für erfolgreich ausgeführte aufeinanderfolgende Befehle der bestimmten nichtflüchtigen Speichervorrichtung 118 zugeordnet sein und kann jede nichtflüchtige Speichervorrichtung 118 des Datenspeichersystems 100 einem einzelnen Zähler für erfolgreich ausgeführte aufeinanderfolgende Befehle zugeordnet sein.
  • Wenn die Steuerung 102 bestimmt, dass die Aktualisierungsbedingung der Chipfreigabeeinrichtungszeit nicht erfüllt ist („NEIN“ bei Block 404), dann fährt das Verfahren 400 mit Block 407 fort. Die Steuerung 102 hält den aktuellen Chipfreigabezeitwert ohne irgendwelche Aktualisierungen des Werts des Chip-Freigabe-Einrichtungszeitparameters aufrecht. In einigen Implementierungen kann die Steuerung 102 eingerichtet sein, um den aktuellen Wert des Chip-Freigabe-Einrichtungszeitparameters einer aktuellen Zeitperiode zuzuordnen und den aktuellen Wert des Chip-Freigabe-Einrichtungszeitparameters und der aktuelle Zeitperiode in einer Datenstruktur zu speichern. Wenn die Steuerung 102 bestimmt, dass die Aktualisierungsbedingung der Chipfreigabeeinrichtungszeit erfüllt ist („JA“ bei Block 404), fährt das Verfahren 400 mit Block 405 fort. Die Steuerung 102 bestimmt, ob die aktuelle Chipfreigabeeinrichtungszeit einen Schwellenwert für die Chipfreigabeeinrichtungszeit (Block 405) erfüllt. Beispielsweise kann die Steuerung 102 eingerichtet sein, um zu bestimmen, ob ein Wert der aktuellen Chipfreigabeeinrichtungszeit einen Schwellenwert (z. B. gleich oder kleiner als) des Chip-Freigabe-Einrichtungszeitparameters erfüllt. In einigen Implementierungen kann der Schwellenwert des Chip-Freigabe-Einrichtungszeitparameters ein Standardwert des Chip-Freigabe-Einrichtungszeitparameters sein.
  • Wenn die Steuerung 102 bestimmt, dass der aktuelle Wert des Chip-Freigabe-Einrichtungszeitparameters den Schwellenwert des Chip-Freigabe-Einrichtungszeitparameters („JA“ bei Block 405) erfüllt, fährt das Verfahren 400 mit Block 407 fort. Wenn die Steuerung 102 bestimmt, dass der aktuelle Wert des Chip-Freigabe-Einrichtungszeitparameters den Schwellenwert (z. B. größer als) des Chip-Freigabe-Einrichtungszeitparameters nicht erfüllt („NEIN“ bei Block 405), fährt das Verfahren 400 mit Block 406 fort. Die Steuerung 102 verringert den aktuellen Wert des Chip-Freigabe-Einrichtungszeitparameters für die bestimmte nichtflüchtige Speichervorrichtung 118 um einen bestimmten Zeitraum. In einigen Implementierungen kann der bestimmte Zeitraum ein Standardzeitraum sein. In einigen Implementierungen kann die Steuerung 102 eingerichtet sein, um den bestimmten Zeitraum basierend auf einem Zähler zu bestimmen, der eine Anzahl von Befehlen an die bestimmte nichtflüchtige Speichervorrichtung 118 angibt, die erfolgreich ausgeführt wurden, ohne fallengelassen zu werden, und/oder auf einem Zähler, der eine aufeinanderfolgende Anzahl von Befehlen an die bestimmte nichtflüchtige Speichervorrichtung 118 angibt, die erfolgreich ausgeführt wurden, ohne fallengelassen zu werden. Wie oben beschrieben, können solche Zähler in einigen Implementierungen als Zähler für erfolgreich ausgeführte Befehle und Zähler für erfolgreich ausgeführte aufeinanderfolgende Befehle bezeichnet werden.
  • Eine beispielhafte Darstellung des Verfahrens 400 des Einstellens oder Aktualisierens des Werts eines Chip-Freigabe-Einrichtungszeitparameters einer bestimmten nichtflüchtigen Speichervorrichtung 118 wird in 2 gezeigt.
  • Die Blöcke des Flussdiagramms, die in 4 veranschaulicht sind, wurden als sequentiell auftretend beschrieben. Die vorliegende Technologie ist nicht auf die beschriebene sequentielle Durchführung des dargestellten Prozesses beschränkt. Einer oder mehrere der Blöcke kann/können parallel zu anderen Blöcken in dem dargestellten Prozess ausgeführt werden. Andere Variationen in dem dargestellten Prozess liegen innerhalb des Umfangs der vorliegenden Technologie. In einer oder mehreren Implementierungen kann sich ein Befehl auf einen oder mehrere Befehle beziehen.
  • Verschiedene Beispiele von Aspekten der Offenbarung werden nachfolgend beschrieben. Diese dienen als Beispiele und schränken die vorliegende Technologie nicht ein.
  • In einer oder mehreren Implementierungen schließt ein Datenspeichersystem eine oder mehrere nichtflüchtige Speichervorrichtung und eine Steuerung ein. Die Steuerung ist eingerichtet, um zu bestimmen, ob ein Befehl an eine erste nichtflüchtige Speichervorrichtung der einen oder mehreren nichtflüchtigen Speichervorrichtungen fallengelassen wird. Die Steuerung ist eingerichtet, um, wenn bestimmt wird, dass der Befehl an die erste nichtflüchtige Speichervorrichtung fallengelassen wird, einen ersten Zählerwert zu aktualisieren, der eine Anzahl von Befehlen an die erste nichtflüchtige Speichervorrichtung angibt, die fallengelassen wurden. Die Steuerung ist eingerichtet, um, wenn bestimmt wird, dass der Befehl an die erste nichtflüchtige Speichervorrichtung fallengelassen wird, einen Wert eines Chip-Freigabe-Einrichtungszeitparameters für die erste nichtflüchtige Speichervorrichtung um eine erste Zeitdauer zu erhöhen, basierend auf mindestens einem von einem ersten Zählerwert und einem oder mehreren Parameterwerten der ersten nichtflüchtigen Speichervorrichtung.
  • Bei einer oder mehreren Implementierungen schließt ein Computer-implementiertes Verfahren das Bestimmen, ob ein Befehl an eine erste nichtflüchtige Speichervorrichtung einer oder mehrerer nichtflüchtiger Speichervorrichtungen fallengelassen wird, ein. Das Verfahren schließt als Reaktion auf das Bestimmen, dass der Befehl an die erste nichtflüchtige Speichervorrichtung fallengelassen wird, das Aktualisieren eines ersten Zählerwerts ein, der eine Anzahl von Befehlen an die erste nichtflüchtige Speichervorrichtung angibt, die fallengelassen wurden. Das Verfahren schließt als Reaktion auf das Bestimmen, dass der Befehl an die erste nichtflüchtige Speichervorrichtung fallengelassen wird, das Erhöhen eines Werts eines Chip-Freigabe-Einrichtungszeitparameters für die erste nichtflüchtige Speichervorrichtung um eine erste Zeitdauer basierend auf mindestens einem von einem ersten Zählerwert und einem oder mehreren Parameterwerten der ersten nichtflüchtigen Speichervorrichtung ein.
  • In einer oder mehreren Implementierungen schließt das Datenspeichersystem eine oder mehrere nichtflüchtige Speichervorrichtungen ein. Das Datenspeichersystem schließt Mittel zum Bestimmen, ob ein Befehl an eine erste nichtflüchtige Speichervorrichtung der einen oder mehreren nichtflüchtigen Speichervorrichtungen fallengelassen wird, ein. Als Reaktion auf das Bestimmen, dass der Befehl an die erste nichtflüchtige Speichervorrichtung fallengelassen wird, schließt das Datenspeichersystem ein Mittel zum Aktualisieren eines ersten Zählerwerts, der eine Anzahl von Befehlen an die erste nichtflüchtige Speichervorrichtung anzeigt, die fallengelassen wurden, ein. Als Reaktion auf das Bestimmen, dass der Befehl an die erste nichtflüchtige Speichervorrichtung fallengelassen wird, schließt das Datenspeichersystem Mittel zum Erhöhen eines Werts eines Chip-Freigabe-Einrichtungszeitparameters für die erste nichtflüchtige Speichervorrichtung um einen ersten Zeitraum basierend auf mindestens einem von einem ersten Zählerwert und einem oder mehreren Parameterwerten der ersten nichtflüchtigen Speichervorrichtung ein.
  • In einer oder mehreren Implementierungen kann ein nichtflüchtiges maschinenlesbares Medium maschinenausführbare Anweisungen einschließen, die bei Ausführung durch einem Prozessor ein Verfahren ausführen. Das Verfahren schließt das Bestimmen, ob ein Befehl an eine erste nichtflüchtige Speichervorrichtung einer oder mehrerer nichtflüchtiger Speichervorrichtungen fallengelassen wird, ein. Das Verfahren schließt als Reaktion auf das Bestimmen, dass der Befehl an die erste nichtflüchtige Speichervorrichtung fallengelassen wird, das Aktualisieren eines ersten Zählerwerts ein, der eine Anzahl von Befehlen an die erste nichtflüchtige Speichervorrichtung angibt, die fallengelassen wurden. Das Verfahren schließt als Reaktion auf das Bestimmen, dass der Befehl an die erste nichtflüchtige Speichervorrichtung fallengelassen wird, das Erhöhen eines Werts eines Chip-Freigabe-Einrichtungszeitparameters für die erste nichtflüchtige Speichervorrichtung um eine erste Zeitdauer ein, wobei die erste Zeitdauer für die erste nichtflüchtige Speichervorrichtung einrichtbar ist, basierend auf mindestens einem von einem ersten Zählerwert und einem oder mehreren Parameterwerten der ersten nichtflüchtigen Speichervorrichtung.
  • Es versteht sich, dass andere Konfigurationen der vorliegenden Technologie für Fachleute aus der folgenden detaillierten Beschreibung leicht ersichtlich werden, wobei verschiedene Konfigurationen der vorliegenden Technologie zur Veranschaulichung gezeigt und beschrieben werden. Die vorliegende Technologie ermöglicht andere und unterschiedliche Konfigurationen und ihre verschiedenen Details ermöglichen Modifikationen in verschiedener anderer Hinsicht, ohne vom Umfang der vorliegenden Technologie abzuweichen. Dementsprechend sind die Zeichnungen und die detaillierte Beschreibung als veranschaulichend und nicht als einschränkend zu betrachten.
  • Viele der vorstehend beschriebenen Funktionen eines beispielhaften Prozesses und dargelegten Merkmale und Anwendungen können als Software- oder Firmware-Prozesse implementiert sein, die als ein Satz von Anweisungen spezifiziert sind, die auf einem computerlesbaren Speichermedium aufgezeichnet sind (auch als computerlesbares Medium bezeichnet). Wenn diese Anweisungen von einer oder mehreren Verarbeitungseinheit(en) (z. B. einem oder mehreren Prozessoren, Prozessorkernen oder anderen Verarbeitungseinheiten) ausgeführt werden, veranlassen sie die Verarbeitungseinheit(en) zum Durchführen der in den Anweisungen angegebenen Maßnahmen. Beispiele prozessorlesbarer Medien beinhalten, sind aber nicht begrenzt auf, flüchtige Speicher, nichtflüchtige Speicher, sowie andere Formen von Medien wie etwa magnetische Medien, optische Medien und elektronische Medien. Das prozessorlesbare Medium enthält keine Trägerwellen und elektronische Signale, die drahtlos oder über verdrahtete Verbindungen übertragen werden.
  • Der Begriff „Software“ soll gegebenenfalls Firmware beinhalten, die sich im Speicher oder anderen im Speicher gespeicherten Anwendungen befindet, die zur Verarbeitung durch einen Prozessor in den Arbeitsspeicher gelesen werden können. Auch können in einigen Implementierungen mehrere Softwareaspekte der vorliegenden Offenbarung als Unterteile eines größeren Programms implementiert werden, während die übrigen individuellen Softwareaspekte der vorliegenden Offenbarung beibehalten werden. In einigen Implementierungen können auch mehrere Software Aspekte als separate Programme implementiert werden. Schließlich liegt jede beliebige Kombination von separaten Programmen, die zusammen einen hier beschriebenen Softwareaspekt implementieren, innerhalb des Umfangs der vorliegenden Offenbarung. Bei einigen Implementierungen definieren die Softwareprogramme, wenn sie installiert sind, um auf einem oder mehreren elektronischen Systemen zu arbeiten, eine oder mehrere spezifische Maschinenimplementierungen, die die Operationen der Softwareprogramme ausführen und durchführen.
  • Ein Computerprogramm (auch als Programm, Software, Softwareanwendung, Skript oder Code bekannt) kann in jeder Form von Programmiersprache geschrieben sein, einschließlich kompilierter oder interpretierter Sprachen, deklarativer oder prozeduraler Sprachen, und kann in jeder Form eingesetzt werden, einschließlich als ein eigenständiges Programm oder als Modul, Komponente, Subroutine, Objekt oder eine andere Einheit, die zur Verwendung in einer Computerumgebung geeignet ist. Ein Computerprogramm kann, muss aber nicht, einer Datei in einem Dateisystem entsprechen. Ein Programm kann in einem Abschnitt einer Datei gespeichert sein, der andere Programme oder Daten (z. B. ein oder mehrere Skripte, die in einem Markup Language Dokument gespeichert sind) in einer einzelnen Datei, die dem betreffenden Programm zugeordnet ist, oder in mehreren koordinierten Dateien (z. B. Dateien, die ein oder mehrere Module, Unterprogramme oder Codeanteile speichern) enthält.
  • Es versteht sich, dass veranschaulichende Blöcke, Module, Elemente, Komponenten, Verfahren und Algorithmen, die in diesem Dokument beschrieben werden, als elektronische Hardware, Computersoftware oder Kombinationen von beiden implementiert sein können. Um diese Austauschbarkeit von Hardware und Software zu veranschaulichen, wurden verschiedene veranschaulichende Blöcke, Module, Elemente, Komponenten, Verfahren und Algorithmen vorstehend allgemein hinsichtlich ihrer Funktionalität beschrieben. Ob eine derartige Funktionalität als Hardware oder Software implementiert ist, hängt von der spezifischen Anwendung und Designeinschränkungen ab, denen das Gesamtsystem unterliegt. Fachleute können die beschriebene Funktionalität auf verschiedene Arten für jede bestimmte Anwendung implementieren. Verschiedene Komponenten und Blöcke können anders angeordnet sein (z. B. in einer anderen Reihenfolge angeordnet oder in einer anderen Weise aufgeteilt sein), ohne vom Umfang der vorliegenden Offenbarung abzuweichen.
  • Es versteht sich, dass die spezifische Reihenfolge oder Hierarchie von Schritten in den offenbarten Prozessen als eine Veranschaulichung einiger beispielhafter Ansätze dargestellt wird. Basierend auf Designpräferenzen und/oder anderen Überlegungen versteht es sich, dass die spezifische Reihenfolge oder Hierarchie von Schritten in den Prozessen anders angeordnet werden kann. Zum Beispiel können in einigen Implementierungen einige der Schritte gleichzeitig ausgeführt werden. Somit stellen die beigefügten Verfahrensansprüche Elemente der verschiedenen Schritte in einer beispielhaften Reihenfolge dar und sollen nicht auf die spezielle dargestellte Reihenfolge oder Hierarchie beschränkt sein.
  • Die vorhergehende Beschreibung wird bereitgestellt, um es einem Fachmann zu ermöglichen, die verschiedenen hierin beschriebenen Aspekte in der Praxis umzusetzen. Die vorhergehende Beschreibung stellt verschiedene Beispiele der vorliegenden Offenbarung bereit, und die vorliegende Offenbarung ist nicht auf diese Beispiele beschränkt. Verschiedene Modifikationen dieser Aspekte werden dem Fachmann leicht ersichtlich sein, und die hierin definierten generischen Prinzipien können auf andere Aspekte angewendet werden. Daher sollen die Ansprüche nicht auf die hier gezeigten Aspekte beschränkt sein, sondern sollen den vollen Schutzumfang erhalten, der mit den in Sprachform niedergelegten Ansprüchen konsistent ist, wobei die Bezugnahme auf ein Element im Singular nicht „ein und nur ein“ Element bedeuten soll, sofern dies nicht speziell angegeben ist, sondern „ein oder mehrere“. Sofern nicht spezifisch anders angegeben, bezieht sich der Ausdruck „einige“ auf ein(en) oder mehrere. Pronomen im grammatikalischen Maskulin (z. B. sein) schließen das grammatikalische Feminin und Neutrum (z. B. ihr und sein) ein, und umgekehrt. Überschriften und Untertitel, falls vorhanden, werden nur der Einfachheit halber verwendet und schränken die vorliegende Offenbarung nicht ein.
  • Die Prädikatswörter „eingerichtet, um“, „betreibbar, um“ und „programmiert, um“ implizieren keine spezielle materielle oder immaterielle Modifikation eines Subjekts, sondern sollen stattdessen austauschbar verwendet werden. Zum Beispiel kann ein Prozessor, der eingerichtet ist, um eine Operation oder eine Komponente zu überwachen, auch bedeuten, dass der Prozessor so programmiert ist, die Operation zu überwachen und zu steuern, oder der Prozessor betreibbar ist, die Operation zu überwachen und zu steuern. Ebenfalls kann ein Prozessor, der eingerichtet ist, um Code auszuführen, als ein Prozessor ausgelegt sein, der programmiert ist, um Code auszuführen oder betreibbar ist, um Code auszuführen.
  • Die Ausdrücke „in Kommunikation mit“ und „gekoppelt“ bedeuten „in direkter Kommunikation mit“ oder „in indirekter Kommunikation mit“ über eine oder mehrere Komponenten, die in diesem Dokument benannt oder nicht benannt sind (z. B. ein Speicherkartenlesegerät).
  • Ein Ausdruck, wie etwa ein „Aspekt“, bedeutet nicht, dass ein solcher Aspekt für die vorliegende Offenbarung wesentlich ist oder dass ein derartiger Aspekt für alle Konfigurationen der vorliegenden Offenbarung gilt. Eine Offenbarung, die sich auf einen Aspekt bezieht, kann auf alle Konfigurationen oder eine oder mehrere Konfigurationen angewendet werden. Ein Aspekt kann ein oder mehrere Beispiele bereitstellen. Ein Ausdruck, wie beispielsweise ein Aspekt, kann sich auf einen oder mehrere Aspekte beziehen und umgekehrt. Ein Ausdruck, wie etwa eine „Implementierung“, impliziert nicht, dass eine solche Implementierung für die vorliegende Offenbarung wesentlich ist oder dass eine solche Implementierung für alle Konfigurationen der vorliegenden Offenbarung gilt. Eine Offenbarung, die sich auf eine Implementierung bezieht, kann für alle Aspekte oder einen oder mehrere Aspekte gelten. Eine Implementierung kann ein oder mehrere Beispiele bereitstellen. Ein Ausdruck, wie beispielsweise eine „Implementierung“, kann sich auf eine oder mehrere Implementierungen beziehen und umgekehrt. Ein Ausdruck, wie beispielsweise eine „Konfiguration“, impliziert nicht, dass eine solche Konfiguration für die vorliegende Offenbarung wesentlich ist oder dass eine solche Konfiguration für alle Konfigurationen der vorliegenden Offenbarung gilt. Eine Offenbarung, die sich auf eine Konfiguration bezieht, kann auf alle Konfigurationen oder eine oder mehrere Konfigurationen angewendet werden. Eine Konfiguration kann ein oder mehrere Beispiele bereitstellen. Ein Ausdruck, wie z. B. eine „Konfiguration“, kann sich auf eine oder mehrere Konfigurationen beziehen und umgekehrt.
  • Das Wort „beispielhaft“ wird in der Bedeutung „als Beispiel oder zur Veranschaulichung dienend“ verwendet. Jeder Aspekt oder jedes Design, der bzw. das hier als „beispielhaft“ beschrieben wird, ist nicht zwangsläufig als bevorzugt oder vorteilhaft gegenüber anderen Aspekten oder Designs zu verstehen.

Claims (20)

  1. Datenspeichersystem, aufweisend: eine oder mehrere nichtflüchtige Speichervorrichtungen; und eine Steuerung, wobei die Steuerung eingerichtet ist, um: zu bestimmen, ob ein Befehl an eine erste nichtflüchtige Speichervorrichtung der einen oder mehreren nichtflüchtigen Speichervorrichtungen fallengelassen wird; wenn bestimmt wird, dass der Befehl an die erste nichtflüchtige Speichervorrichtung fallengelassen wurde, einen ersten Zählerwert zu aktualisieren, der eine Anzahl von Befehlen an die erste nichtflüchtige Speichervorrichtung angibt, die fallengelassen wurden; und einen Wert eines Chip-Freigabe-Einrichtungszeitparameters für die erste nichtflüchtige Speichervorrichtung basierend auf mindestens einem von einem ersten Zählerwert und einem oder mehreren Parameterwerten der ersten nichtflüchtigen Speichervorrichtung um eine erste Zeitdauer zu erhöhen.
  2. Datenspeichersystem gemäß Anspruch 1, wobei die Steuerung eingerichtet ist, um: wenn bestimmt wird, dass der Befehl an die erste nichtflüchtige Speichervorrichtung nicht fallengelassen wurde, einen zweiten Zählerwert, der der ersten nichtflüchtigen Speichervorrichtung zugeordnet ist, zu aktualisieren; zu bestimmen, ob der zweite Zählerwert einen Schwellenwert erfüllt; und wenn der zweite Zählerwert den Schwellenwert erfüllt, den Wert des Chip-Freigabe-Einrichtungszeitparameters für die erste nichtflüchtige Speichervorrichtung um eine zweite Zeitdauer zu verringern.
  3. Datenspeichersystem gemäß Anspruch 2, wobei die Steuerung eingerichtet ist, um: wenn der zweite Zählerwert den Schwellenwert erfüllt, basierend auf mindestens einem von einem oder mehreren des zweiten Zählerwerts oder des einen oder der mehreren Parameterwerte der ersten nichtflüchtigen Speichervorrichtung die zweite Zeitdauer zu bestimmen.
  4. Datenspeichersystem gemäß Anspruch 2, wobei die Steuerung eingerichtet ist, um: wenn der zweite Zählerwert den Schwellenwert erfüllt, zu bestimmen, ob der Wert des Chip-Freigabe-Einrichtungszeitparameters einen Standardwert des Chip-Freigabe-Einrichtungszeitparameters erfüllt; und wenn der Wert des Chip-Freigabe-Einrichtungszeitparameters den Standardwert des Chip-Freigabe-Einrichtungszeitparameters nicht erfüllt, den Wert des Chip-Freigabe-Einrichtungszeitparameters um die zweite Zeitdauer zu verringern.
  5. Datenspeichersystem gemäß Anspruch 2, wobei der zweite Zählerwert eine Anzahl von aufeinanderfolgenden Befehlen an die erste nichtflüchtige Speichervorrichtung anzeigt, die nicht fallengelassen wurden.
  6. Datenspeichersystem gemäß Anspruch 2, wobei der eine oder die mehreren Parameterwerte auf mindestens einem von einer Herstellungsvarianz der ersten nichtflüchtigen Speichervorrichtung und einer Kalibrierung der ersten nichtflüchtigen Speichervorrichtung basieren.
  7. Datenspeichersystem gemäß Anspruch 1, wobei die erste Zeitdauer für die erste nichtflüchtige Speichervorrichtung einrichtbar ist, basierend auf mindestens einem von der Herstellungsvarianz der ersten nichtflüchtigen Speichervorrichtung und der Kalibrierung der ersten nichtflüchtigen Speichervorrichtung.
  8. Datenspeichersystem gemäß Anspruch 1, wobei die Steuerung eingerichtet ist, um: zu bestimmen, ob ein Befehl an eine zweite nichtflüchtige Speichervorrichtung der einen oder mehreren nichtflüchtigen Speichervorrichtungen fallengelassen wird; und wenn bestimmt wird, dass der Befehl an die zweite nichtflüchtige Speichervorrichtung fallengelassen wird, basierend auf mindestens einem von einem dritten Zählerwert und einem oder mehreren Parameterwerten der zweiten nichtflüchtigen Speichervorrichtung, einen Wert eines Chip-Freigabe-Einrichtungszeitparameters für die zweite nichtflüchtige Speichervorrichtung um einen dritten Zeitraum zu erhöhen, wobei sich der dritte Zeitraum von der ersten Zeitdauer unterscheidet und der dritte Zählerwert eine Anzahl von Befehlen an die zweite nichtflüchtige Speichervorrichtung angibt, die fallengelassen wurden.
  9. Computer-implementiertes Verfahren für ein Datenspeichersystem, aufweisend: das Bestimmen, ob ein Befehl an eine erste nichtflüchtige Speichervorrichtung einer oder mehrerer nichtflüchtiger Speichervorrichtungen fallengelassen wird; als Reaktion auf das Bestimmen, dass der Befehl an die erste nichtflüchtige Speichervorrichtung fallengelassen wird: Aktualisieren eines ersten Zählerwerts, der eine Anzahl von Befehlen an die erste nichtflüchtige Speichervorrichtung angibt, die fallengelassen wurden; und Erhöhen, basierend auf mindestens einem vom einem ersten Zählerwert und einem oder mehreren Parameterwerten der ersten nichtflüchtigen Speichervorrichtung, eines Werts eines Chip-Freigabe-Einrichtungszeitparameters für die erste nichtflüchtige Speichervorrichtung um eine erste Zeitdauer, wobei die erste Zeitdauer für die erste nichtflüchtige Speichervorrichtung einrichtbar ist.
  10. Computer-implementiertes Verfahren gemäß Anspruch 9, weiterhin aufweisend: als Reaktion auf das Bestimmen, dass der Befehl an die erste nichtflüchtige Speichervorrichtung nicht fallengelassen wird: Aktualisieren eines zweiten Zählerwerts, der der ersten nichtflüchtigen Speichervorrichtung zugeordnet ist; Bestimmen, ob der zweite Zählerwert einen Schwellenwert erfüllt; und als Reaktion auf das Bestimmen, dass der zweite Zählerwert den Schwellenwert erfüllt: Verringern des Werts des Chip-Freigabe-Einrichtungszeitparameters für die erste nichtflüchtige Speichervorrichtung um eine zweite Zeitdauer.
  11. Computer-implementiertes Verfahren gemäß Anspruch 10, weiterhin aufweisend: Bestimmen der zweiten Zeitdauer basierend auf mindestens einem von einem oder mehreren des zweiten Zählerwerts oder des einen oder der mehreren Parameterwerte der ersten nichtflüchtigen Speichervorrichtung.
  12. Computer-implementiertes Verfahren gemäß Anspruch 10, weiterhin aufweisend: Bestimmen, ob der Wert des Chip-Freigabe-Einrichtungszeitparameters einen Standardwert des Chip-Freigabe-Einrichtungszeitparameters erfüllt; und als Reaktion auf das Bestimmen, dass der Wert des Chip-Freigabe-Einrichtungszeitparameters nicht den Standardwert des Chip-Freigabe-Einrichtungszeitparameters erfüllt: Verringern des Werts des Chip-Freigabe-Einrichtungszeitparameters um die zweite Zeitdauer.
  13. Computer-implementiertes Verfahren gemäß Anspruch 10, wobei der zweite Zählerwert eine aufeinanderfolgende Anzahl von Befehlen an die erste nichtflüchtige Speichervorrichtung angibt, die nicht fallengelassen wurden.
  14. Computer-implementiertes Verfahren gemäß Anspruch 9, wobei der Schwellenwert ein Zeitgeberwert ist und der erste Zählerwert der ersten nichtflüchtigen Speichervorrichtung zugeordnet ist.
  15. Computer-implementiertes Verfahren gemäß Anspruch 9, weiterhin aufweisend: Bestimmen, ob ein Befehl an eine zweite nichtflüchtige Speichervorrichtung der einen oder mehreren nichtflüchtigen Speichervorrichtungen fallengelassen wird; und als Reaktion auf das Bestimmen, dass bestimmt wird, dass der Befehl an die zweite nichtflüchtige Speichervorrichtung fallengelassen wird: Erhöhen, basierend auf mindestens einem von einem dritten Zählerwert und einem oder mehreren Parameterwerten der zweiten nichtflüchtigen Speichervorrichtung, eines Werts eines Chip-Freigabe-Einrichtungszeitparameters für die zweite nichtflüchtige Speichervorrichtung um eine dritte Zeitdauer, wobei sich die dritte Zeitdauer von der ersten Zeitdauer unterscheidet und der dritte Zählerwert eine Anzahl von Befehlen an die zweite nichtflüchtige Speichervorrichtung angibt, die fallengelassen wurden.
  16. Datenspeichersystem, aufweisend: eine oder mehrere nichtflüchtige Speichervorrichtungen; Mittel zum Bestimmen, ob ein Befehl an eine erste nichtflüchtige Speichervorrichtung der einen oder mehreren nichtflüchtigen Speichervorrichtungen fallengelassen wird; als Reaktion auf das Bestimmen, dass der Befehl an die erste nichtflüchtige Speichervorrichtung fallengelassen wird: Mittel zum Aktualisieren eines ersten Zählerwerts, der eine Anzahl von Befehlen an die erste nichtflüchtige Speichervorrichtung angibt, die fallengelassen wurden; und Mittel zum Erhöhen, basierend auf mindestens einem von einem ersten Zählerwert und einem oder mehreren Parameterwerten der ersten nichtflüchtigen Speichervorrichtung, eines Werts eines Chip-Freigabe-Einrichtungszeitparameters für die erste nichtflüchtige Speichervorrichtung um eine ersten Zeitdauer.
  17. Datenspeichersystem gemäß Anspruch 16, aufweisend als Reaktion auf das Bestimmen, dass der Befehl an die erste nichtflüchtige Speichervorrichtung nicht fallengelassen wird: Mittel zum Aktualisieren eines zweiten Zählerwerts, der der ersten nichtflüchtigen Speichervorrichtung zugeordnet ist; Mittel zum Bestimmen, ob der zweite Zählerwert einen Schwellenwert erfüllt; und als Reaktion auf das Bestimmen, dass der zweite Zählerwert den Schwellenwert erfüllt: Mittel zum Verringern des Werts des Chip-Freigabe-Einrichtungszeitparameters für die erste nichtflüchtige Speichervorrichtung um eine zweite Zeitdauer.
  18. Datenspeichersystem gemäß Anspruch 17, aufweisend: Mittel zum Bestimmen der zweiten Zeitdauer basierend auf mindestens einem von einem oder mehreren des zweiten Zählerwerts oder des einen oder der mehreren Parameterwerte der ersten nichtflüchtigen Speichervorrichtung.
  19. Datenspeichersystem gemäß Anspruch 17, aufweisend: Mittel zum Bestimmen, ob der Wert des Chip-Freigabe-Einrichtungszeitparameters einen Standardwert des Chip-Freigabe-Einrichtungszeitparameters erfüllt; und als Reaktion auf das Bestimmen, dass der Wert des Chip-Freigabe-Einrichtungszeitparameters nicht den Standardwert des Chip-Freigabe-Einrichtungszeitparameters erfüllt: Mittel zum Verringern des Werts des Chip-Freigabe-Einrichtungszeitparameters um die zweite Zeitdauer.
  20. Datenspeichersystem gemäß Anspruch 16, aufweisend: Mittel zum Bestimmen, ob ein Befehl an eine zweite nichtflüchtige Speichervorrichtung der einen oder mehreren nichtflüchtigen Speichervorrichtungen fallengelassen wird; und als Reaktion auf das Bestimmen, dass bestimmt wird, dass der Befehl an die zweite nichtflüchtige Speichervorrichtung fallengelassen wird: Mittel zum Erhöhen, basierend auf mindestens einem von einem dritten Zählerwert und einem oder mehreren Parameterwerten der zweiten nichtflüchtigen Speichervorrichtung, eines Wertes eines Chip-Freigabe-Einrichtungszeitparameters für die zweite nichtflüchtige Speichervorrichtung um eine dritte Zeitdauer, wobei sich die dritte Zeitdauer von der ersten Zeitdauer unterscheidet und der dritte Zählerwert eine Anzahl von Befehlen an die zweite nichtflüchtige Speichervorrichtung angibt, die fallengelassen wurden.
DE102019133027.0A 2019-01-28 2019-12-04 Datenspeichersysteme und -verfahren für selbstadaptive chipfreigabeeinrichtungszeit Pending DE102019133027A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/259,828 2019-01-28
US16/259,828 US10747454B1 (en) 2019-01-28 2019-01-28 Data storage systems and methods for self adaptive chip-enable setup time

Publications (1)

Publication Number Publication Date
DE102019133027A1 true DE102019133027A1 (de) 2020-07-30

Family

ID=71524158

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019133027.0A Pending DE102019133027A1 (de) 2019-01-28 2019-12-04 Datenspeichersysteme und -verfahren für selbstadaptive chipfreigabeeinrichtungszeit

Country Status (3)

Country Link
US (2) US10747454B1 (de)
CN (1) CN111488120B (de)
DE (1) DE102019133027A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111835440B (zh) * 2020-09-10 2021-03-23 翱捷科技(深圳)有限公司 一种芯片射频信号延时测量参数的自动校准方法及***
US11977749B2 (en) * 2022-03-30 2024-05-07 Micron Technology, Inc. Alignment of activation periods

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6802581B2 (en) * 2002-07-30 2004-10-12 Hewlett-Packard Development Company, L.P. Method, program product and system for ink management control
US7836230B1 (en) * 2007-02-14 2010-11-16 Marvell International Ltd. Managing multiple host requests in queued commands that corresponds to receipt of stored acknowledgement commands from the host
KR101501102B1 (ko) * 2011-02-01 2015-03-10 삼성전자 주식회사 화상형성장치 및 그 제어방법
US10129356B2 (en) * 2013-11-15 2018-11-13 The Hong Kong University Of Science And Technology Physical layer caching for flexible MIMO cooperation in wireless networks
US9495312B2 (en) * 2013-12-20 2016-11-15 International Business Machines Corporation Determining command rate based on dropped commands
JP6448571B2 (ja) * 2016-03-08 2019-01-09 東芝メモリ株式会社 ストレージシステム、情報処理システムおよび制御方法
US10452468B2 (en) * 2016-12-30 2019-10-22 Western Digital Technologies, Inc. Method and system for managing non-volatile memory

Also Published As

Publication number Publication date
US10747454B1 (en) 2020-08-18
CN111488120B (zh) 2023-06-27
US20200257463A1 (en) 2020-08-13
CN111488120A (zh) 2020-08-04
US20200241776A1 (en) 2020-07-30

Similar Documents

Publication Publication Date Title
DE102018105943A1 (de) Kontextbewusste dynamische Befehlsplanung für ein Datenspeichersystem
DE112020000184T5 (de) In zonen unterteilte namensräume in festkörperlaufwerken
DE102019133129A1 (de) Mehrphasenprogrammierung mit symmetrischer gray-codierung
DE102018123926A1 (de) Dynamische mehrstufige Decodierung
DE102017128994A1 (de) Weiche Dekodierungs-Planung
DE102015014851A1 (de) Ressourcenzuteilung und -freigabe für die Energieverwaltung in Vorrichtungen
DE102020112512A1 (de) Datenspeichergerät und Betriebsverfahren dafür
DE102019125060A1 (de) Datenspeichersysteme und verfahren zum autonomen anpassen der leistung, kapazität und/oder der betriebsanforderungen eines datenspeichersystems
DE112019000167T5 (de) Anpassbare Lesewiederholungsreihenfolge basierend auf einem Decodierungserfolgstrend
DE102013020269A1 (de) Umordnen des Zurückschickens für einen Host-Lesebefehl basierend auf der Zeitschätzung des Abschlusses eines Flash-Lesebefehls
DE102008033518B4 (de) Datenverarbeitungsverfahren für eine Solid-State-Disk-Steuereinheit, Solid-State-Disk-Steuereinheit und Datenspeicherelement
DE102013016993A1 (de) Embedded Multimedia Card (eMMC), einen Host steuernde eMMC und Verfahren zum Betreiben eines eMMC-Systems
DE112011102160T5 (de) Wear-levelling bei Zellen/Seiten/Teilseiten/Blöcken eines Speichers
DE102008036822A1 (de) Verfahren zum Speichern von Daten in einem Solid-State-Speicher, Solid-State-Speichersystem und Computersystem
DE102019133147A1 (de) Datenspeichersysteme und verfahren zur optimierten planung von hintergrund-verwaltungsoperationen
DE112018000230T5 (de) System und Verfahren zur spekulativen Befehlsausführung unter Verwendung des Steuerungsspeicherpuffers
DE112020004591T5 (de) L2P-Übersetzungstechniken in begrenzten RAM-Systemen
DE102018123880A1 (de) Adaptive Verwaltung von Zwischenspeichern
DE112019005511T5 (de) Halten von schreibbefehlen in gezonten namensräumen
DE102017128999A1 (de) Lesebetrieb und weiches Dekodierungs-Timing
DE112020001937T5 (de) Vorausschauender datenvorabruf in einer datenspeicher-vorrichtung
DE112020005787T5 (de) Verbesserte dateisystem-unterstützung für zonen-namespace-speicher
DE102019104871A1 (de) Nichtflüchtige dateiaktualisierungsmedien
DE102020115970B3 (de) Befehlsoptimierung durch intelligente schwellwertdetektion
DE112020000159T5 (de) Systeme und verfahren zum definieren von speicher-unterblöcken

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