DE102017112560B4 - ADAPTIVE WEAR LEVELING - Google Patents
ADAPTIVE WEAR LEVELING Download PDFInfo
- Publication number
- DE102017112560B4 DE102017112560B4 DE102017112560.4A DE102017112560A DE102017112560B4 DE 102017112560 B4 DE102017112560 B4 DE 102017112560B4 DE 102017112560 A DE102017112560 A DE 102017112560A DE 102017112560 B4 DE102017112560 B4 DE 102017112560B4
- Authority
- DE
- Germany
- Prior art keywords
- blocks
- sets
- active
- marked
- flash memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/50—Marginal testing, e.g. race, voltage or current testing
- G11C29/50004—Marginal testing, e.g. race, voltage or current testing of threshold voltage
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0409—Online test
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C2029/4402—Internal storage of test result, quality data, chip identification, repair information
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Vorrichtung, umfassend:mindestens einen Prozessor, ausgelegt zumBenutzen von Mengen von Blöcken von Flash-Speicherschaltungen für Datenspeicherungsoperationen, wobei jede der Mengen von Blöcken mindestens einen Block aus jeder der Flash-Speicherschaltungen umfasst und mindestens einige der Blöcke mindestens einiger der Mengen von Blöcken als aktiv markiert sind, wobei die mindestens einigen der Blöcke der mindestens einigen der Mengen von Blöcken, die als aktiv markiert sind, für die Datenspeicherungsoperationen benutzt werden;Überwachen von Qualitätsmetriken jedes Blocks jeder der Mengen von Blöcken, während die mindestens einigen der Blöcke der mindestens einigen der Mengen von Blöcken, die als aktiv markiert sind, für die Datenspeicherungsoperationen benutzt werden;Bestimmen, wann die Qualitätsmetrik eines der Blöcke einer der Mengen von Blöcken unter einen Mindestqualitätswert fällt;Markieren des einen der Blöcke der einen der Mengen von Blöcken als vorübergehend inaktiv, wobei der eine der Blöcke der einen der Mengen von Blöcken nicht für die Datenspeicherungsoperationen benutzt wird, während er als vorübergehend inaktiv markiert ist;Bestimmen, dass mindestens ein Kriterium erfüllt ist, wenn für eine der einen der Mengen von Blöcken zugeordnete Coderate eine Anzahl der Blöcke der einen der Mengen von Blöcken, die als aktiv markiert sind, unter eine Mindestzahl aktiver Blöcke fällt, wobei jede der Mengen von Blöcken der Coderate zugeordnet ist; undwenn das mindestens eine Kriterium erfüllt ist, Markieren des einen der Blöcke der einen der Mengen von Blöcken als aktiv, wobei der eine der Blöcke der einen der Mengen von Blöcken wieder für die Datenspeicherungsoperationen benutzt wird, während er als aktiv markiert ist.An apparatus comprising: at least one processor configured to utilize sets of blocks of flash memory circuits for data storage operations, each of the sets of blocks including at least one block from each of the flash memory circuits and at least some of the blocks at least some of the sets of blocks as active are marked, wherein the at least some of the blocks of the at least some of the sets of blocks marked as active are used for the data storage operations; monitoring quality metrics of each block of each of the sets of blocks while the at least some of the blocks of the at least some of the Sets of blocks marked active are used for data storage operations; determining when the quality metric of any of the blocks of any of the sets of blocks falls below a minimum quality value; marking the one of the one of the sets of blocks as temporarily inactive, wherein of the one of the blocks of the one of the sets of blocks is not used for the data storage operations while it is marked as temporarily inactive; determining that at least one criterion is met if a number of the blocks of the one code rate associated with one of the sets of blocks the set of blocks marked active falls below a minimum number of active blocks, each of the sets of blocks being associated with the code rate; andif the at least one criterion is met, marking the one of the blocks of the one of the sets of blocks as active, the one of the blocks of the one of the sets of blocks being reused for the data storage operations while it is marked as active.
Description
VERWEIS AUF VERWANDTE ANMELDUNGENREFERENCE TO RELATED APPLICATIONS
Die vorliegende Anmeldung beansprucht den Nutzen der vorläufigen
TECHNISCHES GEBIETTECHNICAL AREA
Die vorliegende Beschreibung betrifft allgemein die Abnutzungs-Nivellierung, darunter adaptive Abnutzungs-Nivellierung für Flash-Speichervorrichtungen.The present description relates generally to wear leveling, including adaptive wear leveling for flash memory devices.
STAND DER TECHNIKSTATE OF THE ART
In einem Flash-Speichersystem verwendet das System zur Erzielung hoher Standzeit typischerweise einen Abnutzungs-Nivellierungsalgorithmus, der alle physischen Blöcke in einem engen Bereich kumulativer Zyklen von Programmierung/Löschung (P/E) behält. Die Annahme ist dabei, dass die physischen Blöcke alle dieselbe Standzeit aufweisen (wenn die schwachen Blöcke außer Acht gelassen werden, die durch Überprovisionierung kompensiert werden) und sich deshalb alle im Wesentlichen zur selben Zeit abnutzen. In der Praxis weisen die physischen Blöcke jedoch nicht alle dieselbe Standzeit auf. Somit kann das Flash-Speichersystem sein spezifiziertes Lebensende erreichen, obwohl viele der physischen Blöcke immer noch benutzbar sind. Aus der
Kurzfassung Die vorliegende Erfindung schlägt eineVorrichtung mit den Merkmalen des Patentanspruchs 1, ein Verfahren mit den Merkmalen des Patentanspruchs 12, ein Computerprogrammprodukt mit den Merkmalen des Patentanspruchs 19, sowie ein System mit den Merkmalen des Patentanspruchs 21 vor.Summary The present invention proposes a device with the features of patent claim 1, a method with the features of patent claim 12, a computer program product with the features of patent claim 19, and a system with the features of patent claim 21.
In einem anderen Aspekt kann ein Verfahren Folgendes umfassen: Benutzen von Mengen von Blöcken von einer Vielzahl von Flash-Speicherschaltungen für Datenspeicherungsoperationen, wobei jede der Mengen von Blöcken mindestens einen Block aus jeder der Vielzahl von Flash-Speicherschaltungen umfasst und mindestens einige der Blöcke mindestens einiger der Mengen von Blöcken als aktiv markiert sind, wobei die mindestens einigen der Blöcke der mindestens einigen der Mengen von Blöcken, die als aktiv markiert sind, für die Datenspeicherungsoperationen benutzt werden. Das Verfahren kann ferner Folgendes umfassen: Überwachen eines verbleibenden Zykluszählwerts jedes der Blöcke jeder der Mengen von Blöcken, während die mindestens einigen der Blöcke der mindestens einigen der Mengen von Blöcken, die als aktiv markiert sind, für die Datenspeicherungsoperationen benutzt werden, wobei der verbleibende Zykluszählwert jedes der Blöcke jeder der Mengen von Blöcken mindestens teilweise auf einem erwarteten Zykluszählwert basiert, der jeder der Vielzahl von Flash-Speicherschaltungen zugeordnet ist, die jeden der Blöcke jeder der Mengen von Blöcken enthalten. Das Verfahren kann ferner Folgendes umfassen: Markieren des einen der Blöcke der einen der Mengen von Blöcken als vorübergehend inaktiv, wenn der verbleibende Zykluszählwert eines der Blöcke einer der Mengen von Blöcken mindestens ein erstes Kriterium erfüllt, wobei der eine der Blöcke der einen der Mengen von Blöcken nicht für die Datenspeicherungsoperationen benutzt wird, während er als vorübergehend inaktiv markiert ist. Das Verfahren kann ferner Folgendes umfassen: Markieren des einen der Blöcke der einen der Mengen von Blöcken als aktiv, wenn mindestens ein zweites Kriterium erfüllt ist, wobei der eine der Blöcke der einen der Mengen von Blöcken wieder für die Datenspeicherungsoperationen benutzt wird, während er als aktiv markiert ist.In another aspect, a method may include: using sets of blocks from a plurality of flash memory circuits for data storage operations, each of the sets of blocks including at least one block from each of the plurality of flash memory circuits and at least some of the blocks at least some of the sets of blocks are marked active, the at least some of the blocks of the at least some of the sets of blocks marked active being used for data storage operations. The method may further include: monitoring a remaining cycle count of each of the blocks of each of the sets of blocks while the at least some of the blocks of the at least some of the sets of blocks marked active are being used for the data storage operations, the remaining cycle count each of the blocks of each of the sets of blocks is based at least in part on an expected cycle count associated with each of the plurality of flash memory circuits including each of the blocks of each of the sets of blocks. The method may further include marking the one of the one of the sets of blocks as temporarily inactive when the remaining cycle count of one of the blocks of one of the sets of blocks meets at least a first criterion, the one of the blocks of the one of the sets of Block is not being used for data storage operations while marked as temporarily inactive. The method may further include: marking the one of the one of the sets of blocks as active when at least a second criterion is met, the one of the one of the sets of blocks being reused for the data storage operations while being active is marked.
In einem anderen Aspekt umfasst ein Computerprogrammprodukt Code, der in einem nichttransitorischen computerlesbaren Speicherungsmedium gespeichert ist. Der Code kann Code umfassen, um einen jeweiligen physischen Block jeder einer Vielzahl von Flash-Speicherschaltungen schnell zu zyklieren, bis eine jeweilige Qualitätsmetrik des jeweiligen physischen Blocks jeder der Vielzahl von Flash-Speicherschaltungen unter einen Mindestqualitätswert fällt. Der Code kann ferner Code umfassen, um einen erwarteten Zykluszählwert für jede der Vielzahl von Flash-Speicherschaltungen mindestens teilweise auf der Basis einer Anzahl von schnellen Zyklen zu bestimmen, die benutzt werden, um zu bewirken, dass die jeweilige Qualitätsmetrik des jeweiligen physischen Blocks jeder der Vielzahl von Flash-Speicherschaltungen unter den Mindestqualitätswert fällt. Der Code kann ferner Code umfassen, um in mindestens einer Direktzugriffsspeicherschaltung den erwarteten Zykluszählwert für jede der Vielzahl von Flash-Speicherschaltungen in individueller Assoziation mit physischen Blöcken jeder der Vielzahl von Flash-Speicherschaltungen zu speichern.In another aspect, a computer program product includes code stored in a non-transitory computer readable storage medium. The code may include code to quickly add a respective physical block to each of a variety of flash memory circuits cycle until a respective quality metric of the respective physical block of each of the plurality of flash memory circuits falls below a minimum quality value. The code may further include code to determine an expected cycle count for each of the plurality of flash memory circuits based at least in part on a number of fast cycles used to cause the respective quality metric of the respective physical block of each of the Large number of flash memory circuits fall below the minimum quality value. The code may further include code to store in at least one random access memory circuit the expected cycle count for each of the plurality of flash memory circuits in individual association with physical blocks of each of the plurality of flash memory circuits.
In einem anderen Aspekt kann ein System eine Vielzahl von Flash-Speicherschaltungen, die jeweils Blöcke umfassen, einen Direktzugriffsspeicher (RAM), ausgelegt zum Speichern einer Datenstruktur, die einen Status jedes der Blöcke jeder der Vielzahl von Flash-Speicherschaltungen umfasst, wobei der Status jedes der Blöcke jeder der Vielzahl von Flash-Speicherschaltungen mindestens angibt, ob jeder der Blöcke jeder der Vielzahl von Flash-Speicherschaltungen als aktiv markiert ist oder als vorübergehend inaktiv markiert ist, eine kommunikativ mit einer Host-Vorrichtung gekoppelte Schnittstelle und eine Steuerung umfassen. Die Steuerung kann ausgelegt sein zum Benutzen von Mengen der Blöcke der Vielzahl von Flash-Speicherschaltungen für Datenspeicherungsoperationen, die durch die Host-Vorrichtung angegeben werden, wobei jede der Mengen der Blöcke mindestens einen Block aus jeder der Vielzahl von Flash-Speicherschaltungen umfasst und mindestens einige der Blöcke mindestens einiger der Mengen der Blöcke in der Datenstruktur als aktiv markiert sind, wobei die mindestens einigen der Blöcke der mindestens einigen der Mengen der Blöcke, die in der Datenstruktur als aktiv markiert sind, für die Datenspeicherungsoperationen benutzt werden. Die Steuerung kann ferner ausgelegt sein zum Überwachen einer Qualitätsmetrik jedes der Blöcke jeder der Mengen der Blöcke, während die mindestens einigen der Blöcke der mindestens einigen der Mengen der Blöcke, die in der Datenstruktur als aktiv markiert sind, für die Datenspeicherungsoperationen benutzt werden. Die Steuerung kann ferner ausgelegt sein zum Bestimmen, wann die Qualitätsmetrik eines der Blöcke einer der Mengen von Blöcken unter einen Mindestqualitätswert fällt. Die Steuerung kann ferner ausgelegt sein zum Markieren des einen der Blöcke der einen der Mengen der Blöcke als vorübergehend inaktiv in der Datenstruktur, wobei der eine der Blöcke der einen der Mengen der Blöcke nicht für die Datenspeicherungsoperationen benutzt wird, während er als vorübergehend inaktiv in der Datenstruktur markiert ist. Die Steuerung kann ferner ausgelegt sein zum Markieren des einen der Blöcke der einen der Mengen der Blöcke als aktiv in der Datenstruktur, wenn mindestens ein Kriterium erfüllt ist, wobei der eine der Blöcke der einen der Mengen der Blöcke wieder für die Datenspeicherungsoperationen benutzt wird, während er als aktiv in der Datenstruktur markiert ist.In another aspect, a system may include a plurality of flash memory circuits each comprising blocks, random access memory (RAM) configured to store a data structure including a status of each of the blocks of each of the plurality of flash memory circuits, the status of each the blocks of each of the plurality of flash memory circuits at least indicate whether each of the blocks of each of the plurality of flash memory circuits is marked active or is marked temporarily inactive, include an interface communicatively coupled to a host device, and a controller. The controller may be configured to use sets of the blocks of the plurality of flash memory circuits for data storage operations specified by the host device, each of the sets of the blocks including at least one block from each of the plurality of flash memory circuits and at least some the blocks of at least some of the sets of blocks in the data structure are marked active, the at least some of the blocks of the at least some of the sets of blocks marked active in the data structure being used for the data storage operations. The controller may further be configured to monitor a quality metric of each of the blocks of each of the sets of the blocks while the at least some of the blocks of the at least some of the sets of the blocks marked active in the data structure are being used for data storage operations. The controller can further be configured to determine when the quality metric of one of the blocks of one of the sets of blocks falls below a minimum quality value. The controller may further be configured to mark the one of the blocks of the one of the sets of blocks as temporarily inactive in the data structure, the one of the blocks of the one of the sets of blocks not being used for the data storage operations while it is temporarily inactive in the Data structure is highlighted. The controller may further be configured to mark the one of the blocks of the one of the sets of blocks as active in the data structure when at least one criterion is met, the one of the blocks of the one of the sets of blocks being used again for the data storage operations while it is marked as active in the data structure.
Es versteht sich, dass andere Konfigurationen der vorliegenden Technologie Fachleuten aus der folgenden ausführlichen Beschreibung ohne Weiteres ersichtlich werden, wobei verschiedene Konfigurationen der vorliegenden Technologie zur Veranschaulichung gezeigt und beschrieben werden. Es versteht sich, dass die vorliegende Technologie andere und verschiedene Konfigurationen aufweisen kann und ihre mehreren Einzelheiten in verschiedenen anderen Hinsichten modifiziert werden können, ohne jeweils vom Schutzumfang der vorliegenden Technologie abzuweichen. Die Zeichnungen und die ausführliche Beschreibung sind dementsprechend als veranschaulichend und nicht als einschränkend anzusehen.It should be understood that other configurations of the present technology will become readily apparent to those skilled in the art from the following detailed description, with various configurations of the present technology shown and described for purposes of illustration. It should be understood that the present technology can have other and different configurations, and its several details can be modified in various other respects, without each departing from the scope of the present technology. Accordingly, the drawings and detailed description are to be regarded as illustrative in nature and not restrictive.
FigurenlisteFigure list
Bestimmte Merkmale der vorliegenden Technologie werden in den angefügten Ansprüchen dargelegt. Zur Erläuterung werden jedoch in den folgenden Figuren mehrere Ausführungsformen der vorliegenden Technologie dargelegt.
-
1 zeigt ein beispielhaftes Flash-Speichersystem, das ein System zur Bereitstellung von adaptiver Abnutzungs-Nivellierung implementieren kann, gemäß einer oder mehreren Implementierungen. -
2 zeigt beispielhafte logische Gruppierungen von physischen Blöcken von Flash-Speicherschaltungen in einer beispielhaften Flash-Speichervorrichtung gemäß einer oder mehreren Implementierungen. -
3 zeigt ein Flussdiagramm eines beispielhaften Prozesses zur adaptiven Abnutzungs-Nivellierung unter Verwendung von Coderatenverschiebung gemäß einer oder mehreren Implementierungen. -
4 zeigt ein Flussdiagramm eines beispielhaften Prozesses zur adaptiven Abnutzungs-Nivellierung unter Verwendung von empirisch bestimmten erwarteten Zykluszählwerten gemäß einer oder mehreren Implementierungen.
-
1 FIG. 10 shows an exemplary flash memory system that can implement a system for providing adaptive wear leveling, according to one or more implementations. -
2 FIG. 10 shows example logical groupings of physical blocks of flash memory circuits in an example flash memory device according to one or more implementations. -
3 FIG. 12 is a flow diagram of an exemplary process for adaptive wear leveling using code rate shifting, according to one or more implementations. -
4th FIG. 10 is a flow diagram of an exemplary process for adaptive wear leveling using empirically determined expected cycle counts, according to one or more implementations.
AUSFÜHRLICHE BESCHREIBUNGDETAILED DESCRIPTION
Die nachfolgend dargelegte ausführliche Beschreibung ist als Beschreibung verschiedener Konfigurationen der vorliegenden Technologie gedacht und soll nicht die einzigen Konfigurationen darstellen, in denen die vorliegende Technologie praktiziert werden kann. Die angefügten Zeichnungen sind hierin eingebunden und bilden einen Teil der ausführlichen Beschreibung. Die ausführliche Beschreibung umfasst spezifische Einzelheiten zum Zwecke des Gewährleistens eines umfassenden Verständnisses der vorliegenden Technologie. Die vorliegende Technologie ist jedoch nicht auf die hier dargelegten spezifischen Einzelheiten beschränkt und kann unter Verwendung einer oder mehrerer Implementierungen praktiziert werden. In einem oder mehreren Fällen werden Strukturen und Komponenten in Blockdarstellungsform gezeigt, um eine Verschleierung der Konzepte der vorliegenden Technologie zu vermeiden.The detailed description set forth below is intended as a description of various configurations of the present technology and is not intended to be the only configurations represent in which the present technology can be practiced. The appended drawings are incorporated herein and form a part of the detailed description. The detailed description includes specific details for the purpose of ensuring a thorough understanding of the present technology. However, the present technology is not limited to the specific details set forth and can be practiced using one or more implementations. In one or more cases, structures and components are shown in block diagram form in order to avoid obscuring the concepts of the present technology.
In dem vorliegenden System zur adaptiven Abnutzungs-Nivellierung wird vor der Benutzung von Flash-Speicherschaltungen eines Flash-Speichersystems zur Datenspeicherung ein einzelner physischer Block auf jeder Flash-Speicherschaltung (z.B. einem einzelnen Flash-Speicherchip bzw. -die) schnell zykliert (P/E-zykliert), bis eine dem physischen Block zugeordnete Qualitätsmetrik (z.B. Fehlerzählwert, Fehlerrate, Zeit zum Programmieren) unter einen Mindestqualitätswert fällt. Die Anzahl von Zyklen, die benutzt wird, um zu bewirken, dass die Qualitätsmetrik des jeweiligen physischen Blocks jeder jeweiligen Flash-Speicherschaltung unter den Mindestqualitätswert fällt, wird als der erwartete Zykluszählwert für alle physischen Blöcke der jeweiligen Flash-Speicherschaltung gespeichert. Es erfolgt dementsprechend eine Annahme, dass die Standzeitabweichung zwischen physischen Blöcken einer einzelnen Flash-Speicherschaltung minimal ist.In the present adaptive wear leveling system, prior to using flash memory circuits of a flash memory system for data storage, a single physical block on each flash memory circuit (e.g., a single flash memory chip or die) is rapidly cycled (P / E -cycled) until a quality metric assigned to the physical block (e.g. error count, error rate, time for programming) falls below a minimum quality value. The number of cycles used to cause the quality metric of the respective physical block of each respective flash memory circuit to fall below the minimum quality value is stored as the expected cycle count for all physical blocks of the respective flash memory circuit. Accordingly, an assumption is made that the lifetime deviation between physical blocks of a single flash memory circuit is minimal.
Während die Mengen von Blöcken (oder Superblöcken), die aus den physischen Blöcken der Flash-Speicherschaltungen angeordnet werden, für Datenspeicherungszwecke benutzt werden, überwacht das vorliegende System die erwartete verbleibende Anzahl von Zyklen für jeden der physischen Blöcke. Die erwartete verbleibende Anzahl von Zyklen für einen gegebenen Block kann bestimmt werden, indem der aktuelle Zykluszählwert für den Block von dem erwarteten Zykluszählwert für den Block subtrahiert wird. Das vorliegende System bestimmt, wann die erwartete verbleibende Anzahl von Zyklen in einem Block einer gegebenen Menge von Blöcken hinter die erwartete verbleibende Anzahl von Zyklen anderer Blöcke der gegebenen Menge von Blöcken fällt. In diesem Fall markiert das vorliegende System den Block als vorübergehend inaktiv, was verhindert, dass der Block in den Datenspeicherungsoperationen benutzt wird. Wenn die erwarteten verbleibenden Zykluszählwerte der anderen Blöcke in der Menge von Blöcken den erwarteten verbleibenden Zykluszählwert des Blocks aufholen, markiert das vorliegende System den Block als aktiv, wodurch der Block wieder für die Benutzung für Datenspeicherungsoperationen verfügbar wird. Das vorliegende System kann den Block auch ungeachtet der erwarteten verbleibenden Zykluszählwerte als aktiv markieren, z.B. um anderen Speicherungsbedingungen zu genügen, die nachfolgend weiter besprochen werden.While the sets of blocks (or super blocks) arranged from the physical blocks of the flash memory circuits are used for data storage purposes, the present system monitors the expected number of cycles remaining for each of the physical blocks. The expected number of cycles remaining for a given block can be determined by subtracting the current cycle count for the block from the expected cycle count for the block. The present system determines when the expected remaining number of cycles in a block of a given set of blocks falls below the expected remaining number of cycles in other blocks of the given set of blocks. In this case, the present system marks the block as temporarily inactive, which prevents the block from being used in the data storage operations. When the expected remaining cycle counts of the other blocks in the set of blocks catch up with the expected remaining cycle count of the block, the present system marks the block as active, thereby making the block available again for use for data storage operations. The present system can also mark the block as active regardless of the expected remaining cycle counts, e.g. to meet other storage conditions, which are discussed further below.
Als Alternative oder zusätzlich kann das vorliegende System auch adaptive Abnutzungs-Nivellierung durch Verwendung von Coderatenverschiebung bereitstellen. In diesem Fall kann das vorliegende System das anfängliche schnelle Zyklieren eines jeweiligen Blocks jeder der Flash-Speicherschaltungen nicht durchführen, kann aber stattdessen eine Qualitätsmetrik jedes der Blöcke überwachen, während die Mengen von Blöcken für die Datenspeicherungsoperationen benutzt werden. Wenn die Qualitätsmetrik eines Blocks unter einen Mindestqualitätswert fällt, wird der Block als vorübergehend inaktiv markiert. Wenn eine bestimmte Anzahl von Blöcken einer gegebenen Menge von Blöcken als vorübergehend inaktiv markiert wurde, wird die Coderate für die gegebene Menge von Blöcken verringert, um die Qualitätsreduktion der Blöcke, die vorübergehend inaktiv waren, zu kompensieren. Nachdem die Coderate für die gegebene Menge von Blöcken verringert wurde, werden alle Blöcke der gegebenen Menge von Blöcken als aktiv markiert. Das vorliegende System kann auch die Coderate einer gegebenen Menge von Blöcken ungeachtet der Anzahl von Blöcken der gegebenen Menge, die als inaktiv markiert wurden, verringern und die Blöcke der gegebenen Menge von Blöcken als aktiv markieren, z.B. um andere Speicherungsbedingungen zu erfüllen, die nachfolgend weiter besprochen werden.As an alternative or in addition, the present system can also provide adaptive wear leveling through the use of code rate shifting. In this case, the present system cannot perform the initial fast cycling of a respective block of each of the flash memory circuits, but can instead monitor a quality metric of each of the blocks while the quantities of blocks are used for the data storage operations. If the quality metric of a block falls below a minimum quality value, the block is marked as temporarily inactive. When a certain number of blocks of a given set of blocks have been marked as temporarily inactive, the code rate for the given set of blocks is decreased to compensate for the degradation of the blocks that were temporarily inactive. After the code rate has been decreased for the given set of blocks, all blocks of the given set of blocks are marked as active. The present system can also decrease the code rate of a given set of blocks regardless of the number of blocks of the given set that have been marked as inactive and mark the blocks of the given set of blocks as active, e.g. to meet other storage requirements, which are discussed further below.
Bei einer oder mehreren Implementierungen kann das vorliegende System sowohl das anfängliche schnelle Zyklieren eines jeweiligen Blocks von jeder der Flash-Speicherschaltungen als auch die Coderatenverschiebung implementieren, um adaptive Abnutzungs-Nivellierung bereitzustellen. Zum Beispiel kann das vorliegende System für jeden Block einer Menge von Blöcken eine erwartete Anzahl von Zyklen schätzen, bevor die Qualitätsmetrik jedes Blocks bei der aktuellen Coderate unter den Mindestqualitätswert fällt, z.B. auf der Basis des erwarteten Zykluszählwerts für jeden Block. Das vorliegende System kann dann die benutzten Zyklen der Blöcke der Menge von Blöcken verwalten, z.B. durch vorübergehendes Deaktivieren eines oder mehrerer der Blöcke, so wie es notwendig ist, so dass die meisten der Blöcke der Menge von Blöcken im Wesentlichen zur selben Zeit für die gegebene Coderate den Mindestqualitätswert erreichen. Die Coderate für die Menge von Blöcken wird dann verringert und alle Blöcke der Menge von Blöcken werden als aktiv markiert und sind wieder für Datenspeicherungsoperationen verfügbar.In one or more implementations, the present system can implement both the initial fast cycling of a respective block from each of the flash memory circuits and code rate shifting to provide adaptive wear leveling. For example, for each block of a set of blocks, the present system can estimate an expected number of cycles before the quality metric of each block at the current code rate falls below the minimum quality value, e.g. based on the expected cycle count for each block. The present system can then manage the used cycles of the blocks of the set of blocks, e.g. by temporarily deactivating one or more of the blocks as necessary so that most of the blocks of the set of blocks achieve the minimum quality value for the given code rate at substantially the same time. The code rate for the set of blocks is then decreased and all blocks of the set of blocks are marked as active and are again available for data storage operations.
Das System
Die Schnittstelle
Die Steuerung
Die Steuerung
Da sich die Integrität der Flash-Speicherschaltungen
Um die richtige Coderate zur Verwendung zum Schreiben von Daten in eine gegebene Menge von Blöcken zu bestimmen, kann die Steuerung
Da jedoch jede Menge von Blöcken Blöcke aus verschiedenen Flash-Speicherschaltungen
Die Steuerung
Bei einer oder mehreren Implementierungen können die Steuerung
Die beispielhafte Flash-Speichervorrichtung
Wie in
Wie in
Die Blöcke
Bei einer oder mehreren Implementierungen können die Steuerung
Vor dem Ausführen jeglicher Datenspeicherungsoperationen an den Flash-Speicherschaltungen
Die Steuerung
Die Steuerung
Wenn die Steuerung
Dann bestimmt die Steuerung
Wenn die Steuerung
Wenn die Steuerung
Wenn die Steuerung
Vor dem Ausführen jeglicher Datenspeicherungsoperationen an den Flash-Speicherschaltungen
Die Steuerung
Die Steuerung
Die Steuerung
Wenn zum Beispiel der verbleibende Zykluszählwert des Blocks
Die Steuerung
Implementierungen im Schutzumfang der vorliegenden Offenbarung können teilweise oder vollständig unter Verwendung eines greifbaren computerlesbaren Speicherungsmediums (oder mehrerer greifbarer computerlesbarer Speicherungsmedien eines oder mehrerer Typen), das eine oder mehrere Anweisungen codiert, realisiert werden. Das greifbare computerlesbare Speicherungsmedium kann auch von nichttransitorischer Beschaffenheit sein.Implementations within the scope of the present disclosure may be realized in whole or in part using a tangible computer readable storage medium (or more tangible computer readable storage media of one or more types) that encodes one or more instructions. The tangible computer readable storage medium can also be non-transitory in nature.
Das computerlesbare Speicherungsmedium kann ein beliebiges Speicherungsmedium sein, das durch eine Vielzweck- oder Spezialdatenverarbeitungsvorrichtung, darunter jegliche Verarbeitungselektronik und/oder Verarbeitungsschaltkreise mit der Fähigkeit zum Ausführen von Anweisungen, gelesen und beschrieben werden kann oder auf das sie anderweitig zugreifen können. Zum Beispiel und ohne Beschränkung kann das computerlesbare Medium einen beliebigen flüchtigen Halbleiterspeicher umfassen, wie zum Beispiel RAM, DRAM, SRAM, T-RAM, Z-RAM und TTRAM. Das computerlesbare Medium kann auch einen beliebigen nichtflüchtigen Halbleiterspeicher umfassen, wie zum Beispiel ROM, PROM, EPROM, EEPROM, NVRAM, Flash, nvSRAM, FeRAM, FeTRAM, MRAM, PRAM, CBRAM, SONOS, RRAM, NRAM, Racetrack-Speicher, FJG und Millipede-Speicher.The computer readable storage medium can be any storage medium that can be read and written to or otherwise accessed by general purpose or special purpose computing apparatus, including any processing electronics and / or processing circuitry capable of executing instructions. For example and without limitation, the computer readable medium can include any volatile semiconductor memory, such as RAM, DRAM, SRAM, T-RAM, Z-RAM, and TTRAM. The computer readable medium can also include any non-volatile semiconductor memory such as ROM, PROM, EPROM, EEPROM, NVRAM, Flash, nvSRAM, FeRAM, FeTRAM, MRAM, PRAM, CBRAM, SONOS, RRAM, NRAM, Racetrack memory, FJG and Millipede store.
Ferner kann das computerlesbare Speicherungsmedium einen beliebigen Nicht-Halbleiterspeicher umfassen, wie etwa optische Plattenspeicherung, magnetische Plattenspeicherung, Magnetband, andere magnetische Speichervorrichtungen oder ein beliebiges anderes Medium mit der Fähigkeit zum Speichern einer oder mehrerer Anweisungen. Bei einigen Implementierungen kann das greifbare computerlesbare Speicherungsmedium direkt mit einer Datenverarbeitungsvorrichtung gekoppelt sein, während bei anderen Implementierungen das greifbare computerlesbare Speicherungsmedium z.B. über eine oder mehrere verdrahtete Verbindungen, eine oder mehrere drahtlose Verbindungen oder eine beliebige Kombination davon indirekt mit einer Datenverarbeitungsvorrichtung gekoppelt sein kann.Further, the computer readable storage medium can include any non-semiconductor storage medium, such as optical disk storage, magnetic disk storage, magnetic tape, other magnetic storage devices, or any other medium capable of storing one or more instructions. In some implementations, the tangible computer readable storage medium may be coupled directly to a computing device, while in other implementations the tangible computer readable storage medium may e.g. may be indirectly coupled to a computing device via one or more wired connections, one or more wireless connections, or any combination thereof.
Anweisungen können direkt ausführbar sein oder können zur Entwicklung von ausführbaren Anweisungen verwendet werden. Zum Beispiel können Anweisungen als ausführbarer oder nichtausführbarer Maschinencode oder als Anweisungen in einer hohen Sprache, die kompiliert werden kann, um ausführbaren oder nichtausführbaren Maschinencode zu produzieren, realisiert werden. Ferner können Anweisungen auch als Daten realisiert werden oder können solche umfassen. Computerausführbare Anweisungen können auch in einem beliebigen Format organisiert werden, darunter Routinen, Subroutinen, Programme, Datenstrukturen, Objekte, Module, Anwendungen, Applets, Funktionen usw. Wie für Fachleute erkennbar ist, können Einzelheiten, darunter, aber ohne Beschränkung darauf, die Anzahl, Struktur, Sequenz und Organisation von Anweisungen, sehr unterschiedlich sein, ohne die zugrundeliegende Logik, Funktion, Verarbeitung und Ausgabe zu verändern.Statements can be directly executable or can be used to develop executable statements. For example, instructions can be implemented as executable or non-executable machine code or as high-level language instructions that can be compiled to produce executable or non-executable machine code. Furthermore, instructions can also be implemented as data or can include such. Computer-executable instructions can also be organized in any format including routines, subroutines, programs, data structures, objects, modules, applications, applets, functions, etc. As will be appreciated by those skilled in the art, details including, but not limited to, the number, The structure, sequence and organization of instructions can be very different without changing the underlying logic, function, processing and output.
Obwohl sich die obige Besprechung hauptsächlich auf Mikroprozessor oder Mehrkern-Prozessoren bezieht, die Software ausführen, werden eine oder mehrere Implementierungen durch eine oder mehrere integrierte Schaltungen ausgeführt, wie etwa ASICs (anwendungsspezifische integrierte Schaltungen) oder FPGAs (Field Programmable Gate Arrays). Bei einer oder mehreren Implementierungen führen solche integrierten Schaltungen Anweisungen aus, die auf der Schaltung selbst gespeichert sind.Although the above discussion mainly relates to microprocessors or multi-core processors that execute software, one or more implementations are carried out by one or more integrated circuits, such as ASICs (application specific integrated circuits) or FPGAs (field programmable gate arrays). In one or more implementations, such integrated circuits execute instructions that are stored on the circuit itself.
Für Fachleute ist erkennbar, dass die verschiedenen hier beschriebenen beispielhaften Blöcke, Module, Elemente, Komponenten, Verfahren und Algorithmen als elektronische Hardware, Computersoftware oder Kombinationen von beidem implementiert werden können. Um diese Austauschbarkeit von Hardware und Software zu veranschaulichen, wurden oben verschiedene beispielhafte Blöcke, Module, Elemente, Komponenten, Verfahren und Algorithmen allgemein im Hinblick auf ihre Funktionalität beschrieben. Ob solche Funktionalität als Hardware oder Software implementiert wird, richtet sich nach der konkreten Anwendung und Entwurfsbeschränkungen, die dem Gesamtsystem auferlegt werden. Fachleute können die beschriebene Funktionalität für jede konkrete Anwendung auf unterschiedliche Weisen implementieren. Verschiedene Komponenten und Blöcke können anders angeordnet werden (z.B. in einer anderen Reihenfolge angeordnet oder auf eine andere Weise aufgeteilt werden), ohne jeweils vom Schutzumfang der vorliegenden Technologie abzuweichen.Those skilled in the art will recognize that the various example blocks, modules, elements, components, methods, and algorithms described herein can be implemented as electronic hardware, computer software, or combinations of both. In order to illustrate this interchangeability of hardware and software, various exemplary blocks, modules, elements, components, methods, and algorithms have been described above in general with regard to their functionality. Whether such functionality is implemented as hardware or software depends on the specific application and design constraints that are imposed on the overall system. Those skilled in the art can implement the functionality described in different ways for each specific application. Various components and blocks can be rearranged (e.g., arranged in a different order or divided in a different way) without, in each case, departing from the scope of the present technology.
Es versteht sich, dass jede spezifische Ordnung oder Hierarchie von Blöcken in den offenbarten Prozessen eine Veranschaulichung von beispielhaften Ansätzen ist. Auf der Basis von Entwurfspräferenzen versteht sich, dass die spezifische Ordnung oder Hierarchie von Blöcken in den Prozessen umgeordnet werden kann oder dass alle dargestellten Blöcke ausgeführt werden können. Beliebige der Blöcke können gleichzeitig ausgeführt werden. Bei einer oder mehreren Implementierungen können Multitasking und Parallelverarbeitung vorteilhaft sein. Außerdem sollte die Trennung von verschiedenen Systemkomponenten in den Ausführungsformen, die oben beschrieben werden, nicht als eine solche Trennung in allen Ausführungsformen erfordernd aufgefasst werden, und es versteht sich, dass die beschriebenen Programmkomponenten und Systeme im Allgemeinen zusammen in einem einzigen Softwareprodukt integriert oder in mehrere Softwareprodukte verpackt werden können.It should be understood that any specific order or hierarchy of blocks in the disclosed processes is an illustration of example approaches. Based on design preferences, it will be understood that the specific order or hierarchy of blocks in the processes can be rearranged or that all of the represented blocks can be executed. Any of the blocks can be executed at the same time. In one or more implementations, multitasking and parallel processing may be beneficial. Also should be the separation of different System components in the embodiments described above are not to be construed as requiring such separation in all embodiments, and it is to be understood that the program components and systems described can generally be integrated together in a single software product or packaged into multiple software products.
So wie sie in der vorliegenden Beschreibung und jeglichen Ansprüchen der vorliegenden Anmeldung verwendet werden, beziehen sich die Ausdrücke „Basisstation“, „Empfänger“, „Computer“, „Server“, „Prozessor“ und „Speicher“ alle auf elektronische oder andere technologische Vorrichtungen. Diese Ausdrücke schließen Personen oder Gruppen von Personen aus. Für die Zwecke der Beschreibung bedeuten die Ausdrücke „Anzeige“ oder „Anzeigen“ das Anzeigen auf einer elektronischen Vorrichtung.As used in the present specification and any claims of this application, the terms "base station", "receiver", "computer", "server", "processor" and "memory" all refer to electronic or other technological devices . These terms exclude people or groups of people. For purposes of description, the terms "display" or "display" mean displaying on an electronic device.
Im vorliegenden Gebrauch modifiziert der Ausdruck „mindestens eines von“, der einer Reihe von Posten vorausgeht, mit dem Ausdruck „und“ oder „oder“ zur Trennung beliebiger der Posten, die Liste als Ganzes, statt jedes Element der Liste (d.h. jeden Posten). Der Ausdruck „mindestens eines von“ erfordert nicht Auswahl mindestens eines jedes aufgelisteten Postens; stattdessen erlaubt der Ausdruck eine Bedeutung, die mindestens einen von einem beliebigen der Posten und/oder mindestens einen einer beliebigen Kombination der Posten und/oder mindestens einen von jedem der Posten umfasst. Beispielsweise beziehen sich die Ausdrücke „mindestens eines von A, B und C“ oder „mindestens eines von „A, B oder C“ jeweils auf nur A, nur B oder nur C; eine beliebige Kombination von A, B und C; und/oder mindestens eine jeweils von A, B und C.As used herein, the term "at least one of" preceding a series of items, with the term "and" or "or" to separate any of the items, modifies the list as a whole, rather than each element of the list (i.e., each item) . The phrase "at least one of" does not require selecting at least one of each of the items listed; instead, the term allows for a meaning that includes at least one of any of the items and / or at least one of any combination of the items and / or at least one of any of the items. For example, the terms "at least one of A, B and C" or "at least one of" A, B or C "each refer to only A, only B, or only C; any combination of A, B and C; and / or at least one of each of A, B and C.
Die Prädikate „ausgelegt zum“, „betreibbar zum“ und „programmiert zum“ bedingen nicht irgendeine konkrete greifbare oder nichtgreifbare Modifikation eines Subjekts, sondern sollen stattdessen austauschbar verwendet werden. Bei einer oder mehreren Implementierungen kann ein zum Überwachen und Steuern einer Operation oder einer Komponente ausgelegter Prozessor auch bedeuten, dass der Prozessor dafür programmiert ist, die Operation zu überwachen und zu steuern, oder der Prozessor betreibbar ist zum Überwachen und Steuern der Operation. Ähnlich kann ein zum Ausführen von Code ausgelegter Prozessor als ein Prozessor, programmiert zum Ausführen von Code oder betreibbar zum Ausführen von Code, aufgefasst werden.The predicates “designed for”, “operable for” and “programmed for” do not require any concrete, tangible or intangible modification of a subject, but should instead be used interchangeably. In one or more implementations, a processor designed to monitor and control an operation or component may also mean that the processor is programmed to monitor and control the operation, or the processor is operable to monitor and control the operation. Similarly, a processor designed to execute code can be thought of as a processor programmed to execute code or operable to execute code.
Ausdrücke wie ein Aspekt, der Aspekt, ein anderer Aspekt, einige Aspekte, ein oder mehrere Aspekte, eine Implementierung, die Implementierung, eine andere Implementierung, einige Implementierungen, eine oder mehrere Implementierungen, eine Ausführungsform, die Ausführungsform, eine andere Ausführungsform, einige Ausführungsformen, eine oder mehrere Ausführungsformen, eine Konfiguration, die Konfiguration, eine andere Konfiguration, einige Konfigurationen, eine oder mehrere Konfigurationen, die vorliegende Technologie, die Offenbarung, die vorliegende Offenbarung oder andere Varianten davon und Ähnliches dienen der Zweckmäßigkeit und bedingen nicht, dass eine einen solchen Ausdruck bzw. solche Ausdrücke betreffende Offenbarung für die vorliegende Technologie wesentlich ist oder dass eine solche Offenbarung für alle Konfigurationen der vorliegenden Technologie gilt. Eine Offenbarung bezüglich eines solchen Ausdrucks bzw. solcher Ausdrücke kann für alle Konfigurationen oder eine oder mehrere Konfigurationen gelten. Eine Offenbarung, die einen solchen Ausdruck bzw. solche Ausdrücke betrifft, kann ein oder mehrere Beispiele geben. Ein Ausdruck, wie etwa ein Aspekt oder einige Aspekte, kann sich auf einen oder mehrere Aspekte beziehen und umgekehrt, und Ähnliches gilt für andere obige Ausdrücke.Expressions such as an aspect, the aspect, another aspect, some aspect, one or more aspects, an implementation, the implementation, another implementation, some implementations, one or more implementations, an embodiment, the embodiment, another embodiment, some embodiments , one or more embodiments, a configuration, the configuration, another configuration, some configurations, one or more configurations, the present technology, the disclosure, the present disclosure, or other variations thereof, and the like are for convenience and are not intended to imply any such expression or disclosure relating to such expressions is essential to the present technology or that such disclosure applies to all configurations of the present technology. A disclosure regarding such a term or such terms may apply to all configurations or to one or more configurations. A disclosure relating to such a term or expressions may give one or more examples. A term, such as an aspect or some aspects, can refer to one or more aspects and vice versa, and the same applies to other expressions above.
Das Wort „beispielhaft“ wird hier mit der Bedeutung „als Beispiel, Fall oder Veranschaulichung dienend“ gebraucht. Jede hier als „beispielhaft“ oder als ein „Beispiel“ beschriebene Ausführungsform ist nicht unbedingt als gegenüber anderen Ausführungsformen bevorzugt oder vorteilhaft aufzufassen. Soweit der Ausdruck „enthalten“, „aufweisen“ oder dergleichen in der Beschreibung oder in den Ansprüchen verwendet wird, soll ein solcher Ausdruck ferner auf ähnliche Weise wie der Ausdruck „umfassen“ einschließend sein, da „umfassen“ gedeutet wird, wenn es als Übergangswort in einem Anspruch verwendet wird.The word “exemplary” is used here to mean “serving as an example, case, or illustration”. Any embodiment described herein as “exemplary” or as an “example” is not necessarily to be construed as preferred or advantageous over other embodiments. Further, to the extent that the term “contain”, “have” or the like is used in the specification or claims, such term is intended to be inclusive in a manner similar to the term “comprise” since “comprise” is interpreted when used as a transitional word is used in a claim.
Die obige Beschreibung wird bereitgestellt, um es beliebigen Fachleuten zu ermöglichen, die verschiedenen hier beschriebenen Aspekte zu praktizieren. Fachleuten werden ohne weiteres verschiedene Modifikationen dieser Aspekte einfallen, und die hier definierten generischen Prinzipien können auf andere Aspekte angewandt werden. Die Ansprüche sollen somit nicht auf die hier gezeigten Aspekte beschränkt werden, sondern sollen den vollen Schutzumfang vereinbar mit den Sprachenansprüchen erhalten, wobei Erwähnung eines Elements im Singular nicht „eines und nur eines“ bedeuten soll, sofern es nicht spezifisch so angegeben wird, sondern „eines oder mehrere“. Sofern es nicht ausdrücklich anders angegeben wird, bezieht sich der Ausdruck „einige“ auf eines oder mehrere. Männliche Pronomen (z.B. sein) umfassen das weibliche und neutrale Geschlecht (z.B. ihr und sein) und umgekehrt. Etwaige Titel und Untertitel dienen lediglich der Zweckmäßigkeit und beschränken die vorliegende Offenbarung nicht.The above description is provided to enable any person skilled in the art to practice the various aspects described herein. Various modifications to these aspects will readily occur to those skilled in the art, and the generic principles defined herein can be applied to other aspects. The claims are therefore not to be restricted to the aspects shown here, but are to be given the full scope of protection compatible with the language claims, whereby mention of an element in the singular is not intended to mean “one and only one”, unless it is specifically stated as such, but “ one or more ". Unless specifically stated otherwise, the term “some” refers to one or more. Male pronouns (e.g. his) include the feminine and neutral gender (e.g. her and his) and vice versa. Any titles and subtitles are provided for convenience only and do not limit the present disclosure.
Claims (21)
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662368967P | 2016-07-29 | 2016-07-29 | |
US62/368,967 | 2016-07-29 | ||
US15/331,552 US10282111B2 (en) | 2016-07-29 | 2016-10-21 | Adaptive wear levelling |
US15/331,552 | 2016-10-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE102017112560A1 DE102017112560A1 (en) | 2018-02-01 |
DE102017112560B4 true DE102017112560B4 (en) | 2020-08-27 |
Family
ID=60951460
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102017112560.4A Active DE102017112560B4 (en) | 2016-07-29 | 2017-06-07 | ADAPTIVE WEAR LEVELING |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102017112560B4 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8843698B2 (en) * | 2007-12-05 | 2014-09-23 | Densbits Technologies Ltd. | Systems and methods for temporarily retiring memory portions |
-
2017
- 2017-06-07 DE DE102017112560.4A patent/DE102017112560B4/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8843698B2 (en) * | 2007-12-05 | 2014-09-23 | Densbits Technologies Ltd. | Systems and methods for temporarily retiring memory portions |
Also Published As
Publication number | Publication date |
---|---|
DE102017112560A1 (en) | 2018-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE112014004761B4 (en) | Influencing wear leveling in storage systems | |
DE102017120840B4 (en) | Method and device for detecting and handling reading disorders | |
DE102017001433B4 (en) | Systems and methods for adaptive read level adjustment | |
DE112016005869T5 (en) | Predictive memory maintenance | |
DE112011103295B4 (en) | Decoding in solid-state storage devices | |
DE112011100371B4 (en) | Method, device and computer program product for decoding a code word | |
DE112020006139T5 (en) | PRE-READ AND READ THRESHOLD VOLTAGE OPTIMIZATION | |
DE112011102160B4 (en) | Wear-leveling in cells / pages / subpages / blocks of a memory | |
DE112010004656B4 (en) | In-block compensation for decreasing functionality of memories | |
DE102020112512A1 (en) | Data storage device and operating methods therefor | |
DE112016002631B4 (en) | Memory health monitoring | |
DE102013109235A1 (en) | An abnormal word line detector flash memory system and method for detecting an abnormal word line | |
DE112020006215T5 (en) | Block family based error prevention for memory devices | |
DE102010037290A1 (en) | Memory systems and methods for detecting a distribution of unstable memory cells | |
DE112020000230T5 (en) | DATA STORAGE DEVICE WITH DYNAMIC STRIP LENGTH MANAGER | |
DE112019000162T5 (en) | Method for maximizing power efficiency in a block of a memory interface | |
DE102018105440A1 (en) | Power failure treatment using stop commands | |
DE112021000776T5 (en) | MANAGEMENT OF WRITE OPERATIONS IN A NON-VOLATILE MEMORY DEVICE USING A VARIABLE READ-OUT VOLTAGE LEVEL | |
DE112020004958T5 (en) | DYNAMIC ZONE ACTIVE LIMIT FOR OPEN CNS | |
DE112019000161T5 (en) | MEMORY CACHE MANAGEMENT | |
DE112020005787T5 (en) | IMPROVED FILE SYSTEM SUPPORT FOR ZONE NAMESPACE STORAGE | |
DE112018002500T5 (en) | Storage array for hybrid data | |
DE102018115199A1 (en) | METHOD FOR MAXIMIZING THE FREQUENCY DURING A DATA INTEGRITY TEST ON A PHYSICAL INTERFACE BUS | |
DE102017120826A1 (en) | A method and apparatus for monitoring memory using a background media scan | |
DE102018124836A1 (en) | NEW STORAGE BLOCK |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R012 | Request for examination validly filed | ||
R016 | Response to examination communication | ||
R016 | Response to examination communication | ||
R018 | Grant decision by examination section/examining division | ||
R020 | Patent grant now final | ||
R082 | Change of representative |
Representative=s name: DEHNSGERMANY PARTNERSCHAFT VON PATENTANWAELTEN, DE |