DE102017112560A1 - ADAPTIVE WEAR ADJUSTMENT - Google Patents
ADAPTIVE WEAR ADJUSTMENT Download PDFInfo
- Publication number
- DE102017112560A1 DE102017112560A1 DE102017112560.4A DE102017112560A DE102017112560A1 DE 102017112560 A1 DE102017112560 A1 DE 102017112560A1 DE 102017112560 A DE102017112560 A DE 102017112560A DE 102017112560 A1 DE102017112560 A1 DE 102017112560A1
- Authority
- DE
- Germany
- Prior art keywords
- blocks
- sets
- flash memory
- active
- memory circuits
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000003044 adaptive effect Effects 0.000 title abstract description 15
- 238000013500 data storage Methods 0.000 claims abstract description 64
- 238000013442 quality metrics Methods 0.000 claims abstract description 32
- 238000000034 method Methods 0.000 claims description 45
- 230000003247 decreasing effect Effects 0.000 claims description 7
- 238000012544 monitoring process Methods 0.000 claims description 6
- 230000001351 cycling effect Effects 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 3
- 230000004044 response Effects 0.000 claims 4
- 230000008569 process Effects 0.000 description 24
- 238000005516 engineering process Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 6
- 230000014509 gene expression Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000012937 correction Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 206010011906 Death Diseases 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 241000258963 Diplopoda Species 0.000 description 1
- 229930186371 GBB Natural products 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007935 neutral effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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
Eine Vorrichtung, die adaptive Abnutzungs-Nivellierung bereitstellt, umfasst mindestens einen Prozessor. Der mindestens eine Prozessor benutzt Mengen von Blöcken von Flash-Speicherschaltungen für Datenspeicherungsoperationen, wobei jede Menge von Blöcken einen Block aus jeder Flash-Speicherschaltung umfasst und mindestens einige der Blöcke als für die Datenspeicherungsoperationen aktiv markiert sind. Der mindestens eine Prozessor überwacht eine Qualitätsmetrik jedes Blocks, während die als aktiv markierten Blöcke für Datenspeicherungsoperationen benutzt werden. Der mindestens eine Prozessor bestimmt, wann die Qualitätsmetrik eines Blocks unter einen Mindestwert fällt, und markiert den Block als vorübergehend inaktiv, wobei der Block nicht für die Datenspeicherungsoperationen benutzt wird, während er als vorübergehend inaktiv markiert ist. Wenn ein Kriterium erfüllt ist, markiert der mindestens eine Prozessor den Block als aktiv, so dass der Block wieder für die Datenspeicherungsoperationen benutzt werden kann.An apparatus that provides adaptive wear leveling includes at least one processor. The at least one processor uses sets of blocks of flash memory circuits for data storage operations, each set of blocks comprising one block from each flash memory circuit and at least some of the blocks being marked active for the data storage operations. The at least one processor monitors a quality metric of each block while the blocks marked as active are used for data storage operations. The at least one processor determines when the quality metric of a block falls below a minimum value and marks the block as temporarily inactive, which block is not used for the data storage operations while being marked as temporarily inactive. If a criterion is met, the at least one processor marks the block as active so that the block can be reused for the data storage operations.
Description
VERWEIS AUF VERWANDTE ANMELDUNGEN REFER TO RELATED APPLICATIONS
Die vorliegende Anmeldung beansprucht den Nutzen der vorläufigen US-Patentanmeldung Nr. 62/368,967 mit dem Titel „Adaptive Wear Levelling“, eingereicht am 29.7.2016, die hiermit für alle Zwecke durch Bezugnahme vollständig aufgenommen wird. The present application claims the benefit of US Provisional Patent Application No. 62 / 368,967, entitled "Adaptive Wear Leveling", filed July 29, 2016, which is hereby incorporated by reference in its entirety for all purposes.
TECHNISCHES GEBIET TECHNICAL 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 TECHNIK STATE 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. In a flash memory system, the system typically uses a wear leveling algorithm to maintain long life, keeping all physical blocks within a narrow range of cumulative programming / erasing (P / E) cycles. The assumption is that the physical blocks all have the same life (ignoring the weak blocks that are compensated for by over provisioning) and therefore all wear out at substantially the same time. However, in practice, the physical blocks do not all have the same lifetime. Thus, the flash memory system can reach its specified end of life, although many of the physical blocks are still usable.
KURZFASSUNG SHORT VERSION
Der offenbarte Gegenstand betrifft eine Vorrichtung, die mindestens einen Prozessor umfasst. Der mindestens eine Prozessor kann ausgelegt sein zum Benutzen 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. Der mindestens eine Prozessor kann ferner ausgelegt sein zum Ü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. Der mindestens eine Prozessor 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. Der mindestens eine Prozessor kann ferner ausgelegt sein zum 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. Der mindestens eine Prozessor kann ferner ausgelegt sein zum Markieren des einen der Blöcke der einen der Mengen von Blöcken als aktiv, wenn mindestens ein 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. The disclosed subject matter relates to a device comprising at least one processor. The at least one processor may be configured to use sets of blocks of flash memory circuits for data storage operations, each of the sets of blocks comprising at least one block of each of the flash memory circuits and marking at least some of the blocks of at least some of the sets of blocks as active wherein the at least some of the blocks of the at least some of the sets of blocks marked active are used for the data storage operations. The at least one processor may be further configured to monitor quality metrics of each block of each of the sets of blocks while using the at least some of the blocks of the at least some of the sets of blocks marked as active for the data storage operations. The at least one processor may be further 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 at least one processor may be further configured to mark one of the blocks of the one of the sets of blocks as temporarily inactive, wherein the one of the blocks of the one of the sets of blocks is not used for the data storage operations while being marked as temporarily inactive. The at least one processor may be further configured to mark one of the blocks of the one of the sets of blocks as active if at least one criterion is satisfied, wherein the one of the blocks of the one of the sets of blocks is reused for the data storage operations while it is being used marked as active.
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 comprising at least one block of each of the plurality of flash memory circuits and at least some of the blocks of at least some 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 the data storage operations. The method may further comprise monitoring a remaining cycle count of each of the blocks of each of the sets of blocks, while using the at least some of the blocks of the at least some of the sets of blocks marked as active 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 containing each of the blocks of each of the sets of blocks. The method may further comprise marking the one of the blocks of the one of the sets of blocks as temporarily inactive if the remaining cycle count of one of the blocks of one of the sets of blocks meets at least a first criterion, wherein the one of the blocks is one of the sets of Blocks is not used for the data storage operations while it is marked as temporarily inactive. The method may further comprise marking the one of the blocks of the one of the sets of blocks as active if at least a second criterion is met, wherein the one of the blocks of the one of the sets of blocks is reused for the data storage operations while serving as is active.
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 access a respective physical block of each of a plurality of flash memory circuits 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 comprise code for determining 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 to be any one of Variety of flash memory circuits falls below the minimum quality value. The code may further comprise 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, a random access memory (RAM) configured to store a data structure comprising 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 temporarily inactive, an interface and controller communicatively coupled to a host device. 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 blocks comprising at least one block of 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 be further configured to monitor a quality metric 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 in the data structure are used for the data storage operations. The controller may be further 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 be further configured to mark one of the blocks of the one of the sets of blocks as temporarily inactive in the data structure, wherein the one of the blocks of the one of the sets of blocks is not used for the data storage operations while being temporarily inactive in the data storage operations Data structure is highlighted. The controller may be further configured to mark 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, wherein the one of the blocks of the one of the sets of blocks is reused for the data storage operations 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 will 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 by way of illustration. It should be understood that the present technology may have other and different configurations and its several details may be modified in various other respects without departing from the scope of the present technology. The drawings and detailed description are accordingly to be regarded as illustrative and not restrictive.
KURZE BESCHREIBUNG DER ZEICHNUNGEN BRIEF DESCRIPTION OF THE DRAWINGS
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. Certain features of the present technology are set forth in the appended claims. However, for purposes of explanation, several embodiments of the present technology are set forth in the following figures.
AUSFÜHRLICHE BESCHREIBUNG DETAILED 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 given below is a description of various Concepts of the present technology are not intended to be the only configurations in which the present technology can be practiced. The attached drawings are incorporated herein and form a part of the detailed description. The detailed description includes specific details for the purpose of providing a thorough understanding of the present technology. However, the present technology is not limited to the specific details set forth herein and may be practiced using one or more implementations. In one or more instances, structures and components are shown in block diagram form 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 (eg, a single flash memory chip) is quickly cycled (P / E -cycled) until a quality metric associated with the physical block (eg, error count, error rate, time to program) 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, there is an assumption that the life 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 amounts 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 remaining number of cycles for each of the physical blocks. The expected remaining number of cycles 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 short of the expected remaining number of cycles of other blocks in the given set of blocks. In this case, the present system marks the block as temporarily inactive, preventing the block from being used in the data storage operations. If 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, making the block available again for use in data storage operations. The present system may also mark the block active, regardless of the expected remaining cycle counts, e.g. to meet other storage conditions, which will be 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. Alternatively or additionally, the present system may also provide adaptive wear leveling by using code rate shifting. In this case, the present system can not perform the initial fast cycling of a respective block of each of the flash memory circuits, but instead can monitor a quality metric of each of the blocks while using the sets of blocks 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. If 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 quality reduction of the blocks that were temporarily inactive. After the code rate has been reduced for the given set of blocks, all blocks of the given set of blocks are marked as active. The present system can also reduce the code rate of a given set of blocks regardless of the number of blocks of the given set marked as inactive and mark the blocks of the given set of blocks as active, e.g. to meet other storage conditions, which will be 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 may implement both the initial fast cycling of a respective block of each of the flash memory circuits and the code rate shift to provide adaptive wear leveling. For example, for each block of a set of blocks, the present system may estimate an expected number of cycles before the quality metric of each block at the current code rate falls below the minimum quality value, eg, 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, eg by temporarily deactivating one or more of the blocks as necessary, so that most of the blocks of the set of blocks at substantially the same time for the given one Code rate reach the minimum quality value. 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 available again 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 implemented in part or in full 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 may 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 may be any storage medium that may be read, written to, or otherwise accessed by a general purpose or specialized computing device, including any processing electronics and / or processing circuitry capable of executing instructions. By way of example and not limitation, the computer-readable medium may include any volatile semiconductor memory such as RAM, DRAM, SRAM, T-RAM, Z-RAM, and TTRAM. The computer readable medium may also include any nonvolatile semiconductor memory such as ROM, PROM, EPROM, EEPROM, NVRAM, Flash, nvSRAM, FeRAM, FeTRAM, MRAM, PRAM, CBRAM, SONOS, RRAM, NRAM, Racetrack Memory, FJG, and Millipede memory.
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 may include any non-semiconductor memory, such as optical disk storage, magnetic disk storage, magnetic tape, other magnetic storage devices, or any other media capable of storing one or more instructions. In some implementations, the tangible computer readable storage medium may be directly coupled to a data processing device, while in other implementations the tangible computer readable storage medium may be e.g. may be indirectly coupled to a data processing 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. Instructions can be directly executable or can be used to develop executable statements. For example, instructions may be implemented as executable or non-executable machine code or as high-level instructions that may be compiled to produce executable or non-executable machine code. Further, instructions may also be implemented as data or may include such. Computer-executable instructions may 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, Structure, sequence and organization of instructions, 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 relates primarily to microprocessor or multi-core processors executing software, one or more implementations are performed 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 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. It will be appreciated by those skilled in the art that the various example blocks, modules, elements, components, methods, and algorithms described herein may be implemented as electronic hardware, computer software, or combinations of both. To illustrate this interchangeability of hardware and software, various exemplary blocks, modules, elements, components, methods, and algorithms have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends on the particular application and design constraints imposed on the overall system. Those skilled in the art can implement the described functionality in different ways for each particular application. Various components and blocks may be rearranged (e.g., arranged in a different order or otherwise partitioned) without 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 will be understood that each specific order or hierarchy of blocks in the disclosed processes is an exemplification of exemplary approaches. On the basis of design preferences, it is understood that the specific order or hierarchy of blocks in the processes may be rearranged or that all the blocks presented may be executed. Any of the blocks can be executed simultaneously. In one or more implementations, multitasking and parallel processing may be beneficial. Moreover, the separation of various system components in the embodiments described above should not be construed as requiring such a separation in all embodiments, and it should be understood that the described program components and systems are generally integrated together into a single software product or into several Software products can be packed.
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 claims of the present application, the terms "base station", "receiver", "computer", "server", "processor" and "memory" all refer to electronic or other technological devices , These expressions exclude persons or groups of persons. 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 phrase "at least one of" preceding a series of items modifies the term "and" or "or" to separate any of the items, the list as a whole, rather than each item of the list (ie, each item). , The phrase "at least one of" does not require selection of at least one of each listed item; instead, the term allows a meaning that includes at least one of any of the items and / or at least one of any combination of items and / or at least one of each of the items. For example, the terms "at least one of A, B and C" or "at least one of" A, B or C "refer to A, B only or C only. any combination of A, B and C; and / or at least one 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 to," "operable to," and "programmed to" do not imply any concrete tangible or intangible modification of a subject, but are instead to be used interchangeably. In one or more implementations, a processor configured to monitor and control an operation or a 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 may be construed 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 one aspect, the aspect, another aspect, some aspects, 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 variants thereof, and the like are of convenience and do not require that a such term or expression is essential to the present technology or that such disclosure applies to all configurations of the present technology. A revelation regarding such term (s) may apply to all configurations or one or more configurations. A disclosure relating to such term (s) may give one or more examples. An expression, such as an aspect or some aspects, may refer to one or more aspects and vice versa, and the like applies to other terms 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 herein 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. As far as the term "contain", "comprise" or the like is used in the specification or in the claims, such expression shall further be inclusive in a similar manner as the term "comprise", as "to include" is interpreted as a transitional word used in a claim.
Alle strukturellen und funktionalen Äquivalente der Elemente der verschiedenen Aspekte, die im Verlauf der vorliegenden Offenbarung beschrieben werden, die bekannt sind oder später Fachleuten zur Kenntnis kommen, sind hier durch Bezugnahme ausdrücklich aufgenommen und sollen durch die Ansprüche eingeschlossen werden. Außerdem soll nichts hier Offenbartes der Öffentlichkeit gewidmet sein, gleichgültig, ob diese Offenbarung ausdrücklich in den Ansprüchen angeführt wird. Kein Anspruchselement ist unter den Bestimmungen des sechsten Paragraphs von 35 U.S.C. §112 aufzufassen, sofern das Element nicht ausdrücklich unter Verwendung des Ausdrucks „Mittel zum“ angeführt wird oder im Fall eines Verfahrensanspruchs das Element unter Verwendung des Ausdrucks „Schritt zum“ angeführt wird. All structural and functional equivalents of the elements of the various aspects described in the course of the present disclosure which are known or later will become apparent to those skilled in the art are expressly incorporated herein by reference and are intended to be encompassed by the claims. In addition, nothing here disclosed should be devoted to the public, regardless of whether this disclosure is explicitly stated in the claims. No claim element is under the provisions of the sixth paragraph of 35 U.S.C. §112 unless the item is expressly cited using the term "means for" or, in the case of a claim, the item is cited using the phrase "move to".
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. Those skilled in the art will readily appreciate various modifications of these aspects, and the generic principles defined herein may be applied to other aspects. The claims should therefore not be limited to the aspects shown here, but should be given the full scope of protection compatible with the language claims, with mention of an element in the singular should not mean "one and only one", unless it is specifically stated, but " one or more ". Unless otherwise stated, the term "some" refers to one or more. Male pronouns (e.g., being) include the female and neutral sex (e.g., her and his) and vice versa. Any titles and subtitles are for convenience only and do not limit the present disclosure.
Claims (22)
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 true DE102017112560A1 (en) | 2018-02-01 |
DE102017112560B4 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) |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009072104A2 (en) * | 2007-12-05 | 2009-06-11 | Densbits Technologies Ltd. | Flash memory device with physical cell value deterioration accommodation and methods useful in conjunction therewith |
-
2017
- 2017-06-07 DE DE102017112560.4A patent/DE102017112560B4/en active Active
Also Published As
Publication number | Publication date |
---|---|
DE102017112560B4 (en) | 2020-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102017001433B4 (en) | Systems and methods for adaptive read level adjustment | |
DE112020006139B4 (en) | PRE-READ AND READ THRESHOLD VOLTAGE OPTIMIZATION | |
DE112016002631B4 (en) | Memory health monitoring | |
DE112016005869T5 (en) | Predictive memory maintenance | |
DE102010030745B4 (en) | Non-volatile memory for storing memory remapping information | |
DE112014004761T5 (en) | Influencing Wear Leveling in Storage Systems | |
DE102018123891A1 (en) | Handling non-aligned writes | |
DE112010004656B4 (en) | In-block compensation for decreasing functionality of memories | |
DE112020006215T5 (en) | Block family based error prevention for memory devices | |
DE112015004536T5 (en) | Hardware automation for storage management | |
DE112015000339T5 (en) | Mitigate reading error in a crosspoint memory | |
DE102017120840A1 (en) | Method and device for the detection and handling of reading disorders | |
DE112018004256T5 (en) | REDUNDANCY CODE STRIPS BASED ON INTERNAL ADDRESSES OF STORAGE DEVICES | |
DE102017114078A1 (en) | ERROR WAKE-OFF FOR 3D NAND FLASH MEMORY | |
DE102018105440A1 (en) | Power failure treatment using stop commands | |
DE112017005637T5 (en) | Method and system for write enhancement analysis | |
DE102013100596B4 (en) | Non-volatile memory system with programming and erasing methods and block management methods | |
DE112021000776T5 (en) | MANAGEMENT OF WRITE OPERATIONS IN A NON-VOLATILE MEMORY DEVICE USING A VARIABLE READ-OUT VOLTAGE LEVEL | |
DE102008030859A1 (en) | Method of conditioning resistive memory cells of memory array, involves applying pulse to unreliable cell such that pulse shifts resistance respectively associated with unreliable cell to predetermined reliable resistance range | |
DE112018002500T5 (en) | Storage array for hybrid data | |
DE112020000230T5 (en) | DATA STORAGE DEVICE WITH DYNAMIC STRIP LENGTH MANAGER | |
DE102019134290A1 (en) | Method and system for improving the performance of a storage device using asynchronous, independent level reading functionality | |
DE102017120826A1 (en) | A method and apparatus for monitoring memory using a background media scan | |
DE112020005001T5 (en) | QLC PROGRAMMING METHOD WITH FINE DATA RESTORE | |
DE112020004452T5 (en) | MANAGING DATA DEPENDENCES FOR NON-SEQUENTIAL PROCESSING IN A HYBRID DIMM |
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 Representative=s name: DEHNS GERMANY PARTNERSCHAFT MBB, DE |
|
R081 | Change of applicant/patentee |
Owner name: SANDISK TECHNOLOGIES, INC. (N.D.GES.D. STAATES, US Free format text: FORMER OWNER: WESTERN DIGITAL TECHNOLOGIES, INC., SAN JOSE, CALIF., US |
|
R081 | Change of applicant/patentee |
Owner name: SANDISK TECHNOLOGIES, INC. (N.D.GES.D. STAATES, US Free format text: FORMER OWNER: SANDISK TECHNOLOGIES, INC. (N.D.GES. D. STAATES DELAWARE), MILPITAS, CA, US |