WO2007028026B1 - Flash drive fast wear leveling - Google Patents

Flash drive fast wear leveling

Info

Publication number
WO2007028026B1
WO2007028026B1 PCT/US2006/034243 US2006034243W WO2007028026B1 WO 2007028026 B1 WO2007028026 B1 WO 2007028026B1 US 2006034243 W US2006034243 W US 2006034243W WO 2007028026 B1 WO2007028026 B1 WO 2007028026B1
Authority
WO
WIPO (PCT)
Prior art keywords
memory blocks
pointers
memory
wear
leveling table
Prior art date
Application number
PCT/US2006/034243
Other languages
French (fr)
Other versions
WO2007028026A2 (en
WO2007028026A3 (en
Inventor
Steve Kolokowsky
Original Assignee
Cypress Semiconductor Corp
Steve Kolokowsky
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cypress Semiconductor Corp, Steve Kolokowsky filed Critical Cypress Semiconductor Corp
Priority to JP2008529311A priority Critical patent/JP2009507302A/en
Priority to KR1020087007800A priority patent/KR101383853B1/en
Publication of WO2007028026A2 publication Critical patent/WO2007028026A2/en
Publication of WO2007028026A3 publication Critical patent/WO2007028026A3/en
Publication of WO2007028026B1 publication Critical patent/WO2007028026B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles

Abstract

A system and method comprising a non- volatile memory including one or more memory blocks to store data, a controller to allocate one or more of the memor blocks to store data, and a wear-leveling table populated with pointers to unallocated memory blocks in the non-volatile memory, the controller to identify one or more pointers in the wear-leveling table and to allocate the unallocated memory blocks associated with the identified pointers for the storage of data.

Claims

AMENDED CLAIMS [Received by the International Bureau on 07 January 2008 (07.01.08)]
1. A system comprising; a controller to allocate one or more of the memory blocks in a non-volatile memory to store data; a logical-to-physical table populated with pointers to the memory blocks in the nonvolatile memory, the controller to initially allocate the memory blocks to store data according to the pointers in the logical-to-physical table; and a wear-leveling table to store pointers to unallocated memory blocks in the non-volatile memory, the unallocated memory blocks previously allocated to store data by the controller according to the pointers in the logical-to-physical table, the controller to identify one or more pointers in the wear-leveling table and to store data to the memory blocks associated with the identified pointers.
2. The system of claim 1 where the controller is configured to erase data stored in one or more of the memory blocks and to populate the wear-leveling table with pointers to the erased memory blocks,
3. The system of claim 2 where the controller is configured to prioritize the pointers in the wear- leveling table according to when the memory blocks associated with the pointers were erased
4. The system of claim 3 where the controller is configured to linearly search the wear-leveling table for pointers to unallocated memory blocks that are available to store data.
5. The system of claim 1 where the controller is configured to identify erased memory blocks and faulty memory blocks in the non- volatile memory, to compare a number of identified erased memory blocks and faulty memory blocks to a threshold, and to populate the wear-leveling table responsive to the comparing or initializing the non-volatile memory with pointers to the memory blocks responsive to the comparing.
6. The system of claim 1 where the controller initializes the logical-to-physical table with the pointers concurrently to populating the wear-leveling table with pointers to the unallocated memory blocks.
7. The system of claim 6 where the controller is configured to allocate the memory blocks associated with the pointers in the logical-to-physical table prior to the controller accessing the wear-leveling table for pointers to the unallocated memory blocks.
8. The system of claim 1 where the wear-leveling table does not store pointers to the allocated memory blocks; and where the unallocated memory blocks were previously erased by the controller.
9. The system of claim 1 where the unallocated memory blocks include one or more memory blocks available to store data and one or more faulty memory blocks not to store data.
10. The system of claim 9 where the wear-leveling table is configured to indicate to the controller which of the pointers are associated with the faulty memory blocks.
11. The system of claim 1 where the non-volatile memory includes multiple memory zones, each memory zone including a plurality of memory blocks and having a different wear-leveling table, the controller to receive a write command identifying a memory zone to store data, to determine the wear-leveling table does not correspond to the identified memory zone, and to re- populate the wear-leveling table with pointers to memory blocks corresponding to the identified memory zone.
12. A method comprising: populating a wear-leveling table with pointers to one or more memory blocks it) a flash memory, where the pointers are associated with erased memory blocks or memory blocks that are faulty, identifying at least one pointer in the wear-leveling table associated with an erased memory block;
18 storing data to the memory block associated with the identified pointer; identifying erased memory blocks and faulty memory blocks in the flash memory; comparing a number of identified erased memory blocks and faulty memory blocks to a threshold; and populating the wear-leveling table responsive to the comparing or initializing the flash memory with pointers to the memory blocks responsive to the comparing.
13. The method of claim 12 includes erasing data stored in one or more of the memory blocks responsive to the identifying at least one pointer in the wear-leveling table and prior to storing data to the memory block associated with the identified pointer.
14. The method of claim 12 includes prioritizing the pointers in the wear-leveling table according to when the memory blocks associated with the pointers were erased.
15. The method of claim 14 includes accessing the wear-leveling table for pointers according to the prioritizing.
16. The method of claim 12 includes prioritizing the pointers in the wear-leveling table according to the number of write operations performed on the memory blocks associated with the pointers.
17. The method of claim 12 includes initializing a logical-to-physical table with pointers to the memory blocks in the flash memory concurrently to populating the wear-leveling table with pointers associated with the erased memory blocks.
18. The method of claim 17 includes allocating the memory blocks associated with the pointers in the logical-to-physical table prior to accessing the wear-leveling table for pointers to erased memory blocks.
19. A method comprising: populating a wear-leveling table with pointers to one or more memory blocks in a flash
19 memory, where the pointers are associated with erased memory blocks or memory blocks that are faulty; receiving a write command identifying a zone of the flash memory to store data; determining the wear-leveling table does not correspond to the identified zone; re-populating the wear-leveling table with pointers to memory blocks corresponding to the identified zone; identifying at least one pointer in the re-populated wear-leveling table associated with an erased memory block; and storing data to the memory block associated with the identified pointer.
20. The method of claim 19 identifying erased memory blocks and faulty memory blocks in the flash memory; comparing a number of identified erased memory blocks and faulty memory blocks to a threshold; and populating the wear-leveling table responsive to the comparing.
21. The method of claim 19 identifying erased memory blocks and faulty memory blocks in the flash memory; comparing a number of identified erased memory blocks and faulty memory blocks to a threshold; and initializing the flash memory with pointers to the memory blocks responsive to the comparing.
20
PCT/US2006/034243 2005-09-01 2006-08-31 Flash drive fast wear leveling WO2007028026A2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008529311A JP2009507302A (en) 2005-09-01 2006-08-31 High-speed wear leveling of flash drives
KR1020087007800A KR101383853B1 (en) 2005-09-01 2006-08-31 Flash drive fast wear leveling

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US71391305P 2005-09-01 2005-09-01
US60/713,913 2005-09-01
US11/468,569 US7853749B2 (en) 2005-09-01 2006-08-30 Flash drive fast wear leveling
US11/468,569 2006-08-30

Publications (3)

Publication Number Publication Date
WO2007028026A2 WO2007028026A2 (en) 2007-03-08
WO2007028026A3 WO2007028026A3 (en) 2007-12-27
WO2007028026B1 true WO2007028026B1 (en) 2008-03-06

Family

ID=37805689

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2006/034243 WO2007028026A2 (en) 2005-09-01 2006-08-31 Flash drive fast wear leveling

Country Status (4)

Country Link
US (2) US7853749B2 (en)
JP (1) JP2009507302A (en)
KR (1) KR101383853B1 (en)
WO (1) WO2007028026A2 (en)

Families Citing this family (119)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7680977B2 (en) * 2004-02-26 2010-03-16 Super Talent Electronics, Inc. Page and block management algorithm for NAND flash
US8156403B2 (en) * 2006-05-12 2012-04-10 Anobit Technologies Ltd. Combined distortion estimation and error correction coding for memory devices
CN103258572B (en) 2006-05-12 2016-12-07 苹果公司 Distortion estimation in storage device and elimination
US7697326B2 (en) * 2006-05-12 2010-04-13 Anobit Technologies Ltd. Reducing programming error in memory devices
US8239735B2 (en) * 2006-05-12 2012-08-07 Apple Inc. Memory Device with adaptive capacity
WO2008026203A2 (en) 2006-08-27 2008-03-06 Anobit Technologies Estimation of non-linear distortion in memory devices
US7975192B2 (en) 2006-10-30 2011-07-05 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
CN101601094B (en) 2006-10-30 2013-03-27 苹果公司 Reading memory cells using multiple thresholds
US7924648B2 (en) 2006-11-28 2011-04-12 Anobit Technologies Ltd. Memory power and performance management
US8151163B2 (en) * 2006-12-03 2012-04-03 Anobit Technologies Ltd. Automatic defect management in memory devices
US7593263B2 (en) * 2006-12-17 2009-09-22 Anobit Technologies Ltd. Memory device with reduced reading latency
US7900102B2 (en) * 2006-12-17 2011-03-01 Anobit Technologies Ltd. High-speed programming of memory devices
US7751240B2 (en) * 2007-01-24 2010-07-06 Anobit Technologies Ltd. Memory device with negative thresholds
US8151166B2 (en) * 2007-01-24 2012-04-03 Anobit Technologies Ltd. Reduction of back pattern dependency effects in memory devices
WO2008101316A1 (en) 2007-02-22 2008-08-28 Mosaid Technologies Incorporated Apparatus and method for using a page buffer of a memory device as a temporary cache
US8086785B2 (en) * 2007-02-22 2011-12-27 Mosaid Technologies Incorporated System and method of page buffer operation for memory devices
CN101715595A (en) * 2007-03-12 2010-05-26 爱诺彼得技术有限责任公司 Adaptive estimation of memory cell read thresholds
US8001320B2 (en) * 2007-04-22 2011-08-16 Anobit Technologies Ltd. Command interface for memory devices
US7689762B2 (en) * 2007-05-03 2010-03-30 Atmel Corporation Storage device wear leveling
WO2008139441A2 (en) 2007-05-12 2008-11-20 Anobit Technologies Ltd. Memory device with internal signal processing unit
US8234545B2 (en) * 2007-05-12 2012-07-31 Apple Inc. Data storage with incremental redundancy
US7925936B1 (en) 2007-07-13 2011-04-12 Anobit Technologies Ltd. Memory device with non-uniform programming levels
US8259497B2 (en) 2007-08-06 2012-09-04 Apple Inc. Programming schemes for multi-level analog memory cells
US8174905B2 (en) * 2007-09-19 2012-05-08 Anobit Technologies Ltd. Programming orders for reducing distortion in arrays of multi-level analog memory cells
US7773413B2 (en) 2007-10-08 2010-08-10 Anobit Technologies Ltd. Reliable data storage in analog memory cells in the presence of temperature variations
US8000141B1 (en) 2007-10-19 2011-08-16 Anobit Technologies Ltd. Compensation for voltage drifts in analog memory cells
US8527819B2 (en) * 2007-10-19 2013-09-03 Apple Inc. Data storage in analog memory cell arrays having erase failures
US8068360B2 (en) * 2007-10-19 2011-11-29 Anobit Technologies Ltd. Reading analog memory cells using built-in multi-threshold commands
US8270246B2 (en) * 2007-11-13 2012-09-18 Apple Inc. Optimized selection of memory chips in multi-chips memory devices
US8225181B2 (en) 2007-11-30 2012-07-17 Apple Inc. Efficient re-read operations from memory devices
US8209588B2 (en) * 2007-12-12 2012-06-26 Anobit Technologies Ltd. Efficient interference cancellation in analog memory cell arrays
US8456905B2 (en) 2007-12-16 2013-06-04 Apple Inc. Efficient data storage in multi-plane memory devices
US8085586B2 (en) * 2007-12-27 2011-12-27 Anobit Technologies Ltd. Wear level estimation in analog memory cells
TWI354996B (en) * 2007-12-31 2011-12-21 Phison Electronics Corp Wear leveling method and controller thereof
US8156398B2 (en) * 2008-02-05 2012-04-10 Anobit Technologies Ltd. Parameter estimation based on error correction code parity check equations
US7924587B2 (en) * 2008-02-21 2011-04-12 Anobit Technologies Ltd. Programming of analog memory cells using a single programming pulse per state transition
US7864573B2 (en) 2008-02-24 2011-01-04 Anobit Technologies Ltd. Programming analog memory cells for reduced variance after retention
US8230300B2 (en) * 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
US8400858B2 (en) 2008-03-18 2013-03-19 Apple Inc. Memory device with reduced sense time readout
US8059457B2 (en) * 2008-03-18 2011-11-15 Anobit Technologies Ltd. Memory device with multiple-accuracy read commands
US8082384B2 (en) 2008-03-26 2011-12-20 Microsoft Corporation Booting an electronic device using flash memory and a limited function memory controller
KR101437123B1 (en) 2008-04-01 2014-09-02 삼성전자 주식회사 Memory system and wear leveling method thereof
US20090254729A1 (en) * 2008-04-07 2009-10-08 Skymedi Corporation Method of wear leveling for a non-volatile memory
US20090259819A1 (en) * 2008-04-09 2009-10-15 Skymedi Corporation Method of wear leveling for non-volatile memory
TWI385667B (en) * 2008-06-26 2013-02-11 Phison Electronics Corp Block accessing method for flash memory and storage system and controller using the same
FR2933803B1 (en) * 2008-07-08 2010-09-24 Thales Sa DEVICE AND METHOD FOR BACKING UP DATA ON NON-VOLATILE MEMORY MEDIA OF A NAND FLASH TYPE FOR ONBOARD CALCULATORS
US7924613B1 (en) 2008-08-05 2011-04-12 Anobit Technologies Ltd. Data storage in analog memory cells with protection against programming interruption
US8498151B1 (en) 2008-08-05 2013-07-30 Apple Inc. Data storage in analog memory cells using modified pass voltages
US8949684B1 (en) 2008-09-02 2015-02-03 Apple Inc. Segmented data storage
US8169825B1 (en) 2008-09-02 2012-05-01 Anobit Technologies Ltd. Reliable data storage in analog memory cells subjected to long retention periods
US8000135B1 (en) 2008-09-14 2011-08-16 Anobit Technologies Ltd. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8482978B1 (en) 2008-09-14 2013-07-09 Apple Inc. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8239734B1 (en) 2008-10-15 2012-08-07 Apple Inc. Efficient data storage in storage device arrays
US8082386B2 (en) * 2008-10-21 2011-12-20 Skymedi Corporation Method of performing wear leveling with variable threshold
US8891298B2 (en) 2011-07-19 2014-11-18 Greenthread, Llc Lifetime mixed level non-volatile memory system
US8261159B1 (en) 2008-10-30 2012-09-04 Apple, Inc. Data scrambling schemes for memory devices
US8275933B2 (en) * 2008-11-10 2012-09-25 Fusion-10, Inc Apparatus, system, and method for managing physical regions in a solid-state storage device
US8208304B2 (en) * 2008-11-16 2012-06-26 Anobit Technologies Ltd. Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N
US8825940B1 (en) 2008-12-02 2014-09-02 Siliconsystems, Inc. Architecture for optimizing execution of storage access commands
US8174857B1 (en) 2008-12-31 2012-05-08 Anobit Technologies Ltd. Efficient readout schemes for analog memory cell devices using multiple read threshold sets
US8248831B2 (en) * 2008-12-31 2012-08-21 Apple Inc. Rejuvenation of analog memory cells
US9176859B2 (en) * 2009-01-07 2015-11-03 Siliconsystems, Inc. Systems and methods for improving the performance of non-volatile memory operations
US8924661B1 (en) 2009-01-18 2014-12-30 Apple Inc. Memory system including a controller and processors associated with memory devices
US8228701B2 (en) 2009-03-01 2012-07-24 Apple Inc. Selective activation of programming schemes in analog memory cell arrays
US10079048B2 (en) * 2009-03-24 2018-09-18 Western Digital Technologies, Inc. Adjusting access of non-volatile semiconductor memory based on access time
US8832354B2 (en) * 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
US8259506B1 (en) 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
US8238157B1 (en) 2009-04-12 2012-08-07 Apple Inc. Selective re-programming of analog memory cells
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US8266344B1 (en) * 2009-09-24 2012-09-11 Juniper Networks, Inc. Recycling buffer pointers using a prefetch buffer
US8495465B1 (en) 2009-10-15 2013-07-23 Apple Inc. Error correction coding over multiple memory pages
KR101097438B1 (en) * 2009-10-29 2011-12-23 주식회사 하이닉스반도체 Solid State Storage System For Controlling of Wear-Leveling Flexibly and Method of Controlling the Same
US8677054B1 (en) 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
KR101090394B1 (en) * 2009-12-24 2011-12-07 주식회사 하이닉스반도체 Solid State Storage System For Controlling of Reserved Area Flexibly and Method of Controlling the Same
US8694814B1 (en) 2010-01-10 2014-04-08 Apple Inc. Reuse of host hibernation storage space by memory controller
US8572311B1 (en) 2010-01-11 2013-10-29 Apple Inc. Redundant data storage in multi-die memory systems
JP5612508B2 (en) * 2010-03-25 2014-10-22 パナソニック株式会社 Nonvolatile memory controller and nonvolatile storage device
US8694853B1 (en) 2010-05-04 2014-04-08 Apple Inc. Read commands for reading interfering memory cells
US8572423B1 (en) 2010-06-22 2013-10-29 Apple Inc. Reducing peak current in memory systems
US8595591B1 (en) 2010-07-11 2013-11-26 Apple Inc. Interference-aware assignment of programming levels in analog memory cells
US9104580B1 (en) 2010-07-27 2015-08-11 Apple Inc. Cache memory for hybrid disk drives
US8645794B1 (en) 2010-07-31 2014-02-04 Apple Inc. Data storage in analog memory cells using a non-integer number of bits per cell
US8856475B1 (en) 2010-08-01 2014-10-07 Apple Inc. Efficient selection of memory blocks for compaction
US8694854B1 (en) 2010-08-17 2014-04-08 Apple Inc. Read threshold setting based on soft readout statistics
US9021181B1 (en) 2010-09-27 2015-04-28 Apple Inc. Memory management for unifying memory cell conditions by using maximum time intervals
US9003247B2 (en) 2011-04-28 2015-04-07 Hewlett-Packard Development Company, L.P. Remapping data with pointer
US9098399B2 (en) 2011-08-31 2015-08-04 SMART Storage Systems, Inc. Electronic system with storage management mechanism and method of operation thereof
US9021231B2 (en) 2011-09-02 2015-04-28 SMART Storage Systems, Inc. Storage control system with write amplification control mechanism and method of operation thereof
US9063844B2 (en) 2011-09-02 2015-06-23 SMART Storage Systems, Inc. Non-volatile memory management system with time measure mechanism and method of operation thereof
US9021319B2 (en) 2011-09-02 2015-04-28 SMART Storage Systems, Inc. Non-volatile memory management system with load leveling and method of operation thereof
US9239781B2 (en) 2012-02-07 2016-01-19 SMART Storage Systems, Inc. Storage control system with erase block mechanism and method of operation thereof
US9116792B2 (en) * 2012-05-18 2015-08-25 Silicon Motion, Inc. Data storage device and method for flash block management
US9671962B2 (en) 2012-11-30 2017-06-06 Sandisk Technologies Llc Storage control system with data management mechanism of parity and method of operation thereof
US9123445B2 (en) 2013-01-22 2015-09-01 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US9329928B2 (en) 2013-02-20 2016-05-03 Sandisk Enterprise IP LLC. Bandwidth optimization in a non-volatile memory system
US9214965B2 (en) 2013-02-20 2015-12-15 Sandisk Enterprise Ip Llc Method and system for improving data integrity in non-volatile storage
US9183137B2 (en) 2013-02-27 2015-11-10 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US8812744B1 (en) 2013-03-14 2014-08-19 Microsoft Corporation Assigning priorities to data for hybrid drives
US9043780B2 (en) 2013-03-27 2015-05-26 SMART Storage Systems, Inc. Electronic system with system modification control mechanism and method of operation thereof
US10049037B2 (en) 2013-04-05 2018-08-14 Sandisk Enterprise Ip Llc Data management in a storage system
US9170941B2 (en) 2013-04-05 2015-10-27 Sandisk Enterprises IP LLC Data hardening in a storage system
US9543025B2 (en) 2013-04-11 2017-01-10 Sandisk Technologies Llc Storage control system with power-off time estimation mechanism and method of operation thereof
US10546648B2 (en) 2013-04-12 2020-01-28 Sandisk Technologies Llc Storage control system with data management mechanism and method of operation thereof
US9626126B2 (en) 2013-04-24 2017-04-18 Microsoft Technology Licensing, Llc Power saving mode hybrid drive access management
US9946495B2 (en) 2013-04-25 2018-04-17 Microsoft Technology Licensing, Llc Dirty data management for hybrid drives
US9244519B1 (en) 2013-06-25 2016-01-26 Smart Storage Systems. Inc. Storage system with data transfer rate adjustment for power throttling
US9367353B1 (en) 2013-06-25 2016-06-14 Sandisk Technologies Inc. Storage control system with power throttling mechanism and method of operation thereof
US9146850B2 (en) 2013-08-01 2015-09-29 SMART Storage Systems, Inc. Data storage system with dynamic read threshold mechanism and method of operation thereof
US9431113B2 (en) * 2013-08-07 2016-08-30 Sandisk Technologies Llc Data storage system with dynamic erase block grouping mechanism and method of operation thereof
US9361222B2 (en) 2013-08-07 2016-06-07 SMART Storage Systems, Inc. Electronic system with storage drive life estimation mechanism and method of operation thereof
US9448946B2 (en) 2013-08-07 2016-09-20 Sandisk Technologies Llc Data storage system with stale data mechanism and method of operation thereof
US9747157B2 (en) 2013-11-08 2017-08-29 Sandisk Technologies Llc Method and system for improving error correction in data storage
US9152555B2 (en) 2013-11-15 2015-10-06 Sandisk Enterprise IP LLC. Data management with modular erase in a data storage system
CN104102459A (en) * 2014-07-03 2014-10-15 优佰特电子科技(无锡)有限公司 Flash memory device and data processing method thereof
KR102211868B1 (en) * 2014-12-15 2021-02-04 삼성전자주식회사 Storage device and operating method of storage device
EP3035195A1 (en) * 2014-12-16 2016-06-22 SFNT Germany GmbH A wear leveling method and a wear leveling system for a non-volatile memory
US10157141B2 (en) 2016-03-09 2018-12-18 Toshiba Memory Corporation Memory system and method of controlling nonvolatile memory
US11556416B2 (en) 2021-05-05 2023-01-17 Apple Inc. Controlling memory readout reliability and throughput by adjusting distance between read thresholds
US11847342B2 (en) 2021-07-28 2023-12-19 Apple Inc. Efficient transfer of hard data and confidence levels in reading a nonvolatile memory

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5568423A (en) * 1995-04-14 1996-10-22 Unisys Corporation Flash memory wear leveling system providing immediate direct access to microprocessor
US6263399B1 (en) * 1998-06-01 2001-07-17 Sun Microsystems, Inc. Microprocessor to NAND flash interface
KR100484147B1 (en) * 2002-07-26 2005-04-18 삼성전자주식회사 Flash memory management method
TWI235915B (en) * 2003-03-13 2005-07-11 Ritek Corp Device and method for recording the status of block of a nonvolatile memory
US7032087B1 (en) * 2003-10-28 2006-04-18 Sandisk Corporation Erase count differential table within a non-volatile memory system
US7441067B2 (en) * 2004-11-15 2008-10-21 Sandisk Corporation Cyclic flash memory wear leveling

Also Published As

Publication number Publication date
JP2009507302A (en) 2009-02-19
KR101383853B1 (en) 2014-04-17
WO2007028026A2 (en) 2007-03-08
US7853749B2 (en) 2010-12-14
US20070050536A1 (en) 2007-03-01
US8417881B1 (en) 2013-04-09
KR20080082601A (en) 2008-09-11
WO2007028026A3 (en) 2007-12-27

Similar Documents

Publication Publication Date Title
WO2007028026B1 (en) Flash drive fast wear leveling
EP1559113B1 (en) Tracking the most frequently erased blocks in non-volatile storage systems
EP1559015B1 (en) Method and apparatus for managing an erase count block
EP1559016B1 (en) Maintaining erase counts in non-volatile storage systems
US20170160942A1 (en) Data storage device and flash memory control method
US7188228B1 (en) Hybrid mapping implementation within a non-volatile memory system
EP1559112B1 (en) Maintaining an average erase count in a non-volatile storage system
US7096313B1 (en) Tracking the least frequently erased blocks in non-volatile memory systems
US20100169540A1 (en) Method and apparatus for relocating selected data between flash partitions in a memory device
US20090157947A1 (en) Memory Apparatus and Method of Evenly Using the Blocks of a Flash Memory
US10860474B2 (en) Multilevel addressing
US20130304966A1 (en) Non-volatile memory device and method for programming the same
EP1559018A2 (en) Wear leveling in non-volatile storage systems
US20110078364A1 (en) Solid state storage system for controlling reserved area flexibly and method for controlling the same
US20140075268A1 (en) Method for dodging bad page and bad block caused by suddenly power off
US8582358B2 (en) Memory system, controller, and method for controlling memory system
CA2619190A1 (en) Information storage device and stored data processing method
WO2015041858A1 (en) Apparatus and method of using dummy data while storing data at a multi-bit storage element

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2008529311

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 1020087007800

Country of ref document: KR

122 Ep: pct application non-entry in european phase

Ref document number: 06802818

Country of ref document: EP

Kind code of ref document: A2