US20170286289A1 - Data storage device and flash memory control method - Google Patents

Data storage device and flash memory control method Download PDF

Info

Publication number
US20170286289A1
US20170286289A1 US15/629,892 US201715629892A US2017286289A1 US 20170286289 A1 US20170286289 A1 US 20170286289A1 US 201715629892 A US201715629892 A US 201715629892A US 2017286289 A1 US2017286289 A1 US 2017286289A1
Authority
US
United States
Prior art keywords
blocks
flash memory
garbage collection
wear leveling
collection operation
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.)
Abandoned
Application number
US15/629,892
Inventor
Po-Chia Chu
Yen-Hung Lin
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Silicon Motion Inc
Original Assignee
Silicon Motion Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Silicon Motion Inc filed Critical Silicon Motion Inc
Priority to US15/629,892 priority Critical patent/US20170286289A1/en
Assigned to SILICON MOTION, INC. reassignment SILICON MOTION, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CHU, PO-CHIA, LIN, YEN-HUNG
Publication of US20170286289A1 publication Critical patent/US20170286289A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Definitions

  • the spare queue 108 when checking the jail queue 114 and the user behavior, is also checked to determine whether the number of blocks within the spare queue 108 is lower than the clean threshold Clean_TH by at least a predetermined amount but still greater than a threshold amount for discarding the FLASH memory 104 .
  • the erase counts are taken into account during the garbage collection operation only when the number of blocks within the spare queue 108 is lower than the clean threshold Clean_TH by at least the predetermined amount but still greater than the threshold amount for discarding the FLASH memory 104 .
  • the data storage device 102 further includes a random access memory 118 , dynamically recorded with spare queue management information 120 (including Spare_Blk_Cnt and Spare_Blk_Erase_Cnt, where Spare_Blk_Cnt represents the number of blocks within the spare queue 108 , and Spare_Blk_Erase_Cnt shows the erase counts of the different blocks within the spare queue 108 for recognition of hot blocks having erase counts greater than the overused lower threshold OverUsed_L), jail queue management information 122 (e.g., showing whether the jail queue 114 is full or not), a flag Power_Cycle_Flag indicating the power-cycle routine and erase counts Free_Blk_Erase_Cnt of free blocks 116 .
  • spare queue management information 120 including Spare_Blk_Cnt and Spare_Blk_Erase_Cnt, where Spare_Blk_Cnt represents the number of blocks within the spare queue 108 , and Spare_Blk
  • FIG. 2 is a flowchart depicting a FLASH memory control method in accordance with an exemplary embodiment of the invention.
  • the FLASH memory control method may be performed on the FLASH memory 104 by the controller 106 and is discussed with respect to the block diagram of FIG. 1 .

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Read Only Memory (AREA)

Abstract

A FLASH memory control technique with wear leveling between the different blocks of the FLASH memory. By a controller managing the blocks of a FLASH memory within a data storage device, some of the blocks are pushed into a spare queue waiting to be allocated as data blocks or system blocks. When the number of blocks within the spare queue is lower than a clean threshold and any block within the spare queue has an erase count greater than an overused lower threshold, the controller performs a garbage correction operation with wear leveling between the different blocks.

Description

    CROSS REFERENCE TO RELATED APPLICATIONS
  • This application is a Continuation application of pending U.S. application Ser. No. 14/255,165, filed on Apr. 17, 2014, which claims priority of Taiwan Patent Application No. 102131199, filed on Aug. 30, 2013, the entirety of which is incorporated by reference herein.
  • BACKGROUND OF THE INVENTION Field of the Invention
  • The present invention relates to data storage devices, and in particular to FLASH memory control methods.
  • Description of the Related Art
  • Flash memory is a general non-volatile storage device that is electrically erased and programmed. A NAND Flash, for example, is primarily used in memory cards, USB flash devices, solid-state drives, and so on. In another application with a multi-chip package technique, a NAND FLASH chip and a controller chip are combined in one package as an embedded MultiMediaCard (eMMC).
  • Generally, the physical storage space of a FLASH memory (e.g. a NAND FLASH) comprises a plurality of blocks. To release a block as a spare block, the entire block has to be erased. However, a block is not always erasable. A block may be damaged if an erase operation is performed too many times. To prolong the lifetime of a FLASH memory, a wear leveling between the different blocks is an important issue in the FLASH memory, to narrow the gap between the erase counts of the different blocks.
  • BRIEF SUMMARY OF THE INVENTION
  • Data storage devices and FLASH memory control methods are disclosed.
  • A data storage device in accordance with an exemplary embodiment of the invention comprises a controller and a FLASH memory. The physical storage space provided by the FLASH memory comprises a plurality of blocks. The controller for the management of the plurality of blocks pushes some of the blocks into a spare queue, waiting to be allocated as system blocks or data blocks. When the number of blocks within the spare queue is lower than a clean threshold and any block within the spare queue has an erase count greater than an overused lower threshold, a garbage collection operation with wear leveling between the blocks is performed by the controller.
  • In another exemplary embodiment of the invention, a FLASH memory control method is disclosed, which comprises the following steps: managing a plurality of blocks of a FLASH memory to push some of the plurality of blocks into a spare queue waiting to be allocated as system blocks or data blocks; and performing a garbage collection operation with wear leveling between the blocks when the number of blocks within the spare queue is lower than a clean threshold and any block within the spare queue has a erase count greater than an overused lower threshold.
  • A detailed description is given in the following embodiments with reference to the accompanying drawings.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The present invention can be more fully understood by reading the subsequent detailed description and examples with references made to the accompanying drawings, wherein:
  • FIG. 1 is a block diagram depicting a data storage device in accordance with an exemplary embodiment of the invention; and
  • FIG. 2 is a flowchart depicting a FLASH memory control method in accordance with an exemplary embodiment of the invention.
  • DETAILED DESCRIPTION OF THE INVENTION
  • The following description is of the best-contemplated mode of carrying out the invention. This description is made for the purpose of illustrating the general principles of the invention and should not be taken in a limiting sense. The scope of the invention is best determined by reference to the appended claims.
  • FIG. 1 is a block diagram depicting a data storage device 102 in accordance with an exemplary embodiment of the invention. The data storage device 102 comprises a FLASH memory 104 and a controller 106. The FLASH memory 104 provides a physical storage space which includes a plurality of blocks BLKs. The controller 106 is provided for the management of the plurality of blocks BLKs. Under the control of the controller 106, some of the blocks BLKs are pushed into a spare queue 108 waiting to be allocated as systems blocks 110 for storage of system information or data blocks 112 for storage of user data. The controller 106 further pushes the blocks having erase counts higher than an overused higher threshold (OverUsed_H) to a jail queue 114 to freeze these blocks. The controller 106 specially monitors the number of blocks within the spare queue 108 and the erase counts of the blocks within the spare queue 108. When the number of blocks within the spare queue 108 is lower than a clean threshold (Clean_TH) and any block within the spare queue 108 has an erase count greater than an overused lower threshold (OverUsed_L), it means that there are not enough blocks within the spare queue 108 and some blocks within the spare queue 108 had been frequently rewritten with data. Thus, the controller 106 performs a garbage collection operation (cleaning the storage space) with wear leveling between the different blocks. In an exemplary embodiment, for wear leveling between the blocks, the controller 106 determines whether to clean the FLASH memory 104 (i.e., for space release, also known as a garbage collection operation) based on the number of blocks within the jail queue 114 (e.g., determining whether the number of blocks within the jail queue 114 is greater than a predetermined amount) and/or user performance (e.g. determining whether a routine of powering on and off is repeated) as well as the erase counts of the blocks.
  • In accordance with the disclosed techniques, the wear leveling between the blocks is achieved even when there are not enough blocks within the spare queue 108 and there is an urgent need to clean the storage space.
  • Under the conditions that the number of blocks within the spare queue 108 is lower than the clean threshold Clean_TH and any block within the spare queue 108 has an erase count greater than the overused lower threshold OverUsed_L, the controller, 106 in accordance with an exemplary embodiment of the invention, performs a garbage collection operation on the FLASH memory 104 with wear leveling between the different blocks when the jail queue 114 is full and/or the user operates the FLASH memory 104 in a power-cycling manner (by which a routine of powering on and off is repeated).
  • When the jail queue 114 is full, it means that the data stored in the other spaces rather than the jail queue 114 is cold data. Because the blocks stored with the cold data just contain a few invalid pages, there is less opportunity to release the space of these blocks having the lower erase counts (the blocks outside the jail queue 114). Furthermore, it is not unusual for a smartphone to operate a FLASH memory in a power-cycling manner. In a smartphone, the FLASH memory 104 may be written with a large amount of data and most of the blocks may be allocated as data blocks 112, leaving just a few blocks waiting for a new allocation. When the user of a smartphone randomly turns off the phone screen when visiting web sites and repeats this behavior at his pleasure, the limited spare blocks may be frequently rewritten for browsing websites and recording the power off/on system information, and so on (corresponding to the power-cycle routines). Thus, it may result in high erase counts in some blocks. In conclusion, the full status of the jail queue 114 and/or the repeating power on/off operation performed by the user is very unfavorable to the wear leveling between the different blocks of the FLASH memory 104. Fortunately, in accordance with the disclosure, the wear leveling between the different blocks is not ignored even if an urgent clean-space request happens (i.e., the number of blocks within the spare queue 108 is lower than the clean threshold Clean_TH). In response to the requests for space cleaning as well as wear leveling, the controller 106 takes erase counts into consideration when cleaning the space of the FLASH memory 104. Thus, a garbage collection operation is performed with wear leveling between the different blocks. The lifetime of the FLASH memory 104 is significantly extended.
  • In an exemplary embodiment, to clean the space of the FLASH memory 104 based on the erase counts, the controller 106 uses the block having the highest erase count between the blocks within the spare queue 108 as a valid data collection block. In this manner, an overused block is allocated for storage of cold data instead of being frequently rewritten with data. In other exemplary embodiments, the valid data collection block is implemented by the block having the second highest erase count between the blocks within the spare queue 108 instead of the block having the highest erase count between the blocks within the spare queue 108.
  • In an exemplary embodiment, to clean the space of the FLASH memory 104 based on the erase counts, the controller 106 performs a garbage collection operation particularly on the data block(s) having the lower erase count(s) (e.g., the block having the lowest erase count in the spare queue 108, or the blocks having the lowest and the second-lowest erase counts in the spare queue 108 or the block having the lowest or the second-lowest erase count in the spare queue 108) or also having the more invalid pages. In this manner, the blocks which have not been frequently rewritten with data are released to wait for an allocation.
  • In an exemplary embodiment, the controller 106 selects the block having the lowest erase count between the blocks within the spare queue 108 in response to a block allocation request for writing data (different from the valid data collection during a garbage collection operation). In this manner, the blocks which have not been frequently rewritten with data are allocated for write-data storage. In other exemplary embodiments, block(s) having the lower erase count(s) between the blocks within the spare queue 108 (e.g., the block having the lowest erase count in the spare queue 108, or the blocks having the lowest and the second-lowest erase counts in the spare queue 108 or the block having the lowest or the second-lowest erase count in the spare queue 108) may be allocated for write-data storage.
  • In an exemplary embodiment, after performing a garbage collection operation on the FLASH memory 104 based on erase counts, the controller 106 rearranges the spare queue 108 to contain the blank blocks having the lower erase counts between the free blocks 116 and the old spare queue 108. By the rearrangement of the spare queue 108, the blocks having low erase counts between the free blocks 116 gain the opportunity to be allocated for data storage (e.g. storage of user data or system information).
  • In another exemplary embodiment, when checking the jail queue 114 and the user behavior, the spare queue 108 is also checked to determine whether the number of blocks within the spare queue 108 is lower than the clean threshold Clean_TH by at least a predetermined amount but still greater than a threshold amount for discarding the FLASH memory 104. The erase counts are taken into account during the garbage collection operation only when the number of blocks within the spare queue 108 is lower than the clean threshold Clean_TH by at least the predetermined amount but still greater than the threshold amount for discarding the FLASH memory 104.
  • Referring to the exemplary embodiment of FIG. 1, the data storage device 102 further includes a random access memory 118, dynamically recorded with spare queue management information 120 (including Spare_Blk_Cnt and Spare_Blk_Erase_Cnt, where Spare_Blk_Cnt represents the number of blocks within the spare queue 108, and Spare_Blk_Erase_Cnt shows the erase counts of the different blocks within the spare queue 108 for recognition of hot blocks having erase counts greater than the overused lower threshold OverUsed_L), jail queue management information 122 (e.g., showing whether the jail queue 114 is full or not), a flag Power_Cycle_Flag indicating the power-cycle routine and erase counts Free_Blk_Erase_Cnt of free blocks 116. Based on the spare queue management information 120 (or even the jail queue management information 122 and the flag Power_Cycle_Flag) dynamically recorded in the random access memory 118, the controller 106 determines whether a garbage collection is performed on the FLASH memory 104 based on erase counts. Furthermore, the controller 106 may rearrange the spare queue 108 based on the erase counts Spare_Blk_Erase_Cnt of the blocks within the spare queue 108 and the erase counts Free_Blk_Erase_Cnt of free blocks 116. In this manner, the spare queue 108 is rearranged to contain blank blocks having lower erase counts.
  • Referring to FIG. 1, the data storage device 102 may be coupled to a host 124 and be controlled by the host 124. A data storage device of the disclosure may be implemented as a memory card, a USB flash device, a solid-state drive (SSD), and so on. In another application with a multi-chip package technique, a NAND FLASH chip and a controller chip are combined in one package as an embedded MultiMediaCard (eMMC). An eMMC may be equipped onto a portable electronic device, such as a smartphone, as a storage medium.
  • FIG. 2 is a flowchart depicting a FLASH memory control method in accordance with an exemplary embodiment of the invention. The FLASH memory control method may be performed on the FLASH memory 104 by the controller 106 and is discussed with respect to the block diagram of FIG. 1.
  • In steps S202 and S204, the spare queue 108 is monitored. When the number within blocks Spare_Blk_Cnt within the spare queue 108 is lower than a clean threshold Clean_TH but no block within the spare queue 108 has an erase count higher than an overused lower threshold OverUsed_L, step S206 is performed for a normal space clean operation. The normal space clean operation is irrelevant to the erase counts of the different blocks, just using a spare block to collect the valid data within the blocks having considerable invalid pages and thereby releasing the space of blocks. When the number of blocks Spare_Blk_Cnt within the spare queue 108 is lower than the clean threshold Clean_TH and any block within the spare queue 108 has an erase count greater than the overused lower threshold OverUsed_L, the determination step S208 is performed to determine whether the jail queue 114 is full and/or whether the flag Power_Cycle_Flag is true. In another exemplary embodiment, it is further determined in step S208 whether the number of blocks Spare_Blk_Cnt within the spare queue 108 is lower than the clean threshold Clean_TH by at least a predetermined amount but still greater than a threshold amount for discarding the FLASH memory. When it shows true in step S208, step S210 is performed to clean the space of the FLASH memory based on the erase counts for wear leveling between the different blocks of the FLASH memory 104.
  • Step S212 is performed after step S210, to rearrange the spare queue 108 and thereby the spare queue 108 contains blank blocks having the lower erase counts. In step S214, it is monitored whether a write request requiring a new allocation of a block is received (different from the block allocation for valid data collection during a garbage collection operation). When a new block allocation is called for, step S216 is performed and the block having the lower erase count (or even the lowest) within the spare queue 108 is allocated for storage of write data. After the block allocation of step S216, steps S202 and S204 are repeated to continue the monitoring of the spare queue 108. Step S212 is further performed after the normal space clean operation S206. Note that step S212 is optional and may be omitted in some exemplary embodiments.
  • In some exemplary embodiments, the controller 106 may include a computing unit and a read-only memory (ROM). The technical steps of the disclosure may be implemented by firmware with program coding. The related program codes are loaded in the read-only memory to be executed by the computing unit. Any control technique for a FLASH memory involving the technical concepts of the disclosure is also in the scope of the invention. FLASH memory control methods are also introduced in the disclosure and may be performed by any controller architecture.
  • While the invention has been described by way of example and in terms of the preferred embodiments, it is to be understood that the invention is not limited to the disclosed embodiments. On the contrary, it is intended to cover various modifications and similar arrangements (as would be apparent to those skilled in the art). Therefore, the scope of the appended claims should be accorded the broadest interpretation so as to encompass all such modifications and similar arrangements.

Claims (20)

What is claimed is:
1. A data storage device, comprising:
a flash memory; and
a controller, for management of a spare queue for the flash memory, blocks within the spare queue contain no valid data and are waiting for allocation,
wherein:
the controller further manages a jail queue to freeze blocks whose erase counts are greater than an overused higher threshold;
the controller checks whether any of two specific conditions is true to perform a garbage collection operation with wear leveling accordingly;
one of the two specific conditions shows that the blocks frozen within the jail queue are more than a predetermined amount and another of the two specific condition shows that the flash memory is in a power-cycle routine; and
when performing the garbage collection operation with wear leveling, the controller selects one block from higher erase count blocks in the spare queue to collect valid data.
2. The data storage device as claimed in claim 1, wherein:
the controller performs the garbage collection operation with wear leveling when any of the two specific conditions is true.
3. The data storage device as claimed in claim 1, wherein:
the controller further checks whether the blocks within the spare queue are less than a clean threshold for performing the garbage collection operation with wear leveling accordingly.
4. The data storage device as claimed in claim 3, wherein:
the controller performs the garbage collection operation with wear leveling when the blocks within the spare queue are less than the clean threshold and any of the two specific conditions is true.
5. The data storage device as claimed in claim 3, wherein:
the controller further checks whether any block within the spare queue has an erase count greater than an overused lower threshold for performing the garbage collection operation with wear leveling accordingly.
6. The data storage device as claimed in claim 5, wherein:
the controller performs the garbage collection operation with wear leveling when the blocks within the spare queue are less than the clean threshold, any block within the spare queue has an erase count greater than the overused lower threshold, and any of the two specific conditions is true.
7. The data storage device as claimed in claim 1, wherein:
when performing the garbage collection operation with wear leveling, the controller cleans a data block having a lower erase count in comparison with most other data blocks.
8. The data storage device as claimed in claim 1, wherein:
when performing the garbage collection operation with wear leveling, the controller cleans a data block having a lower erase count and having more invalid pages in comparison with most other data blocks.
9. The data storage device as claimed in claim 1, wherein:
after the garbage collection operation with wear leveling is performed, the controller selects one block having the lowest erase count in the spare queue for write-data storage.
10. The data storage device as claimed in claim 1, wherein:
after the garbage collection operation with wear leveling is performed, the controller selects one block from blocks having lower erase counts in the spare queue for write-data storage.
11. A flash memory control method, comprising:
managing a spare queue for a flash memory, wherein blocks within the spare queue contain no valid data and are waiting for allocation;
managing a jail queue for the flash memory to freeze blocks whose erase counts are greater than an overused higher threshold; and
checking whether any of two specific conditions is true to perform a garbage collection operation with wear leveling accordingly,
wherein:
one of the two specific conditions shows that the blocks frozen within the jail queue are more than a predetermined amount and another of the two specific condition shows that the flash memory is in a power-cycle routine; and
when the garbage collection operation with wear leveling is performed, one block is selected from higher erase count blocks in the spare queue to collect valid data.
12. The flash memory control method as claimed in claim 11, wherein:
the garbage collection operation with wear leveling is performed when any of the two specific conditions is true.
13. The flash memory control method as claimed in claim 11, further comprising:
checking whether the blocks within the spare queue are less than a clean threshold for performing the garbage collection operation with wear leveling accordingly.
14. The flash memory control method as claimed in claim 13, wherein:
the garbage collection operation with wear leveling is performed when the blocks within the spare queue are less than the clean threshold and any of the two specific conditions is true.
15. The flash memory control method as claimed in claim 13, further comprising:
checking whether any block within the spare queue has an erase count greater than an overused lower threshold for performing the garbage collection operation with wear leveling accordingly.
16. The flash memory control method as claimed in claim 15, wherein:
the garbage collection operation with wear leveling is performed when the blocks within the spare queue are less than the clean threshold, any block within the spare queue has an erase count greater than the overused lower threshold, and any of the two specific conditions is true.
17. The flash memory control method as claimed in claim 11, wherein:
during the garbage collection operation with wear leveling, a data block having a lower erase count in comparison with most other data blocks is cleaned.
18. The flash memory control method as claimed in claim 11, wherein:
during the garbage collection operation with wear leveling, a data block having a lower erase count and more invalid pages in comparison with most other data blocks is cleaned.
19. The flash memory control method as claimed in claim 11, wherein:
after the garbage collection operation with wear leveling is performed, one block having the lowest erase count in the spare queue is selected for write-data storage.
20. The flash memory control method as claimed in claim 11, wherein:
after the garbage collection operation with wear leveling is performed, one block is selected from blocks having lower erase counts in the spare queue for write-data storage.
US15/629,892 2013-08-30 2017-06-22 Data storage device and flash memory control method Abandoned US20170286289A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/629,892 US20170286289A1 (en) 2013-08-30 2017-06-22 Data storage device and flash memory control method

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
TW102131199 2013-08-30
TW102131199A TWI529719B (en) 2013-08-30 2013-08-30 Data storage device and flash memory control method
US14/255,165 US9720820B2 (en) 2013-08-30 2014-04-17 Data storage device and flash memory control method
US15/629,892 US20170286289A1 (en) 2013-08-30 2017-06-22 Data storage device and flash memory control method

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US14/255,165 Continuation US9720820B2 (en) 2013-08-30 2014-04-17 Data storage device and flash memory control method

Publications (1)

Publication Number Publication Date
US20170286289A1 true US20170286289A1 (en) 2017-10-05

Family

ID=52584895

Family Applications (2)

Application Number Title Priority Date Filing Date
US14/255,165 Active 2034-09-04 US9720820B2 (en) 2013-08-30 2014-04-17 Data storage device and flash memory control method
US15/629,892 Abandoned US20170286289A1 (en) 2013-08-30 2017-06-22 Data storage device and flash memory control method

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US14/255,165 Active 2034-09-04 US9720820B2 (en) 2013-08-30 2014-04-17 Data storage device and flash memory control method

Country Status (3)

Country Link
US (2) US9720820B2 (en)
CN (1) CN104424112B (en)
TW (1) TWI529719B (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180046376A1 (en) * 2015-09-25 2018-02-15 International Business Machines Corporation Adaptive assignment of open logical erase blocks to data streams
TWI658462B (en) * 2018-01-19 2019-05-01 慧榮科技股份有限公司 Method for managing flash memory module and associated flash memory controller and electronic device
CN110659217A (en) * 2019-08-30 2020-01-07 苏州浪潮智能科技有限公司 Garbage recycling method, device and equipment for solid state disk and storage medium
US10838621B2 (en) * 2018-08-14 2020-11-17 Silicon Motion, Inc. Method and flash memory controller capable of avoiding inefficient memory block swap or inefficient garbage collection
US11567863B2 (en) * 2020-09-02 2023-01-31 SK Hynix Inc. Storage device and operating method thereof

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9329992B2 (en) * 2013-12-04 2016-05-03 Silicon Motion, Inc. Data storage device and flash memory control method
CN106325764B (en) * 2015-07-08 2021-02-26 群联电子股份有限公司 Memory management method, memory control circuit unit and memory storage device
KR102601211B1 (en) 2016-06-01 2023-11-10 삼성전자주식회사 Method for detecting fast reuse memory block and memory block management method using the same
JP2018010507A (en) * 2016-07-14 2018-01-18 富士通株式会社 Memory management program, memory management method and memory management device
JP6553566B2 (en) * 2016-09-23 2019-07-31 東芝メモリ株式会社 Memory system and control method
KR20190073132A (en) * 2017-12-18 2019-06-26 에스케이하이닉스 주식회사 Storage device and operating method thereof
TWI705331B (en) * 2019-06-24 2020-09-21 群聯電子股份有限公司 Valid data merging method, memory control circuit unit and memory storage device
US11481119B2 (en) * 2019-07-15 2022-10-25 Micron Technology, Inc. Limiting hot-cold swap wear leveling
CN111552650B (en) * 2020-04-13 2021-03-02 深圳市时创意电子有限公司 Data storage method and device, storage medium and data storage equipment
TWI748410B (en) * 2020-04-15 2021-12-01 慧榮科技股份有限公司 Method and apparatus for performing block management regarding non-volatile memory
US11550727B2 (en) * 2020-06-18 2023-01-10 Micron Technology, Inc. Zone-aware memory management in memory subsystems
CN112433676A (en) * 2020-11-24 2021-03-02 合肥康芯威存储技术有限公司 Garbage recycling method and system for solid state disk

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8275928B2 (en) 2008-05-15 2012-09-25 Silicon Motion, Inc. Memory module and method for performing wear-leveling of memory module using remapping, link, and spare area tables
US8954654B2 (en) * 2008-06-18 2015-02-10 Super Talent Technology, Corp. Virtual memory device (VMD) application/driver with dual-level interception for data-type splitting, meta-page grouping, and diversion of temp files to ramdisks for enhanced flash endurance
US20100017650A1 (en) 2008-07-19 2010-01-21 Nanostar Corporation, U.S.A Non-volatile memory data storage system with reliability management
TWI364661B (en) * 2008-09-25 2012-05-21 Silicon Motion Inc Access methods for a flash memory and memory devices
US8447915B2 (en) * 2009-07-23 2013-05-21 Hitachi, Ltd. Flash memory device for allocating physical blocks to logical blocks based on an erase count
US8402242B2 (en) * 2009-07-29 2013-03-19 International Business Machines Corporation Write-erase endurance lifetime of memory storage devices
US8316176B1 (en) * 2010-02-17 2012-11-20 Western Digital Technologies, Inc. Non-volatile semiconductor memory segregating sequential data during garbage collection to reduce write amplification
CN102222046B (en) * 2011-06-09 2013-09-18 清华大学 Abrasion equilibrium method and device
US9405670B2 (en) * 2011-06-09 2016-08-02 Tsinghua University Wear leveling method and apparatus
KR20140050941A (en) * 2012-10-22 2014-04-30 삼성전자주식회사 Method for managing data in non-volatile memory device
US9411718B2 (en) * 2012-12-21 2016-08-09 Seagate Technology Llc Method to apply fine grain wear leveling and garbage collection

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180046376A1 (en) * 2015-09-25 2018-02-15 International Business Machines Corporation Adaptive assignment of open logical erase blocks to data streams
US10613784B2 (en) * 2015-09-25 2020-04-07 International Business Machines Corporation Adaptive assignment of open logical erase blocks to data streams
TWI658462B (en) * 2018-01-19 2019-05-01 慧榮科技股份有限公司 Method for managing flash memory module and associated flash memory controller and electronic device
US10474573B2 (en) 2018-01-19 2019-11-12 Silicon Motion Inc. Method for managing flash memory module and associated flash memory controller and electronic device
US10838621B2 (en) * 2018-08-14 2020-11-17 Silicon Motion, Inc. Method and flash memory controller capable of avoiding inefficient memory block swap or inefficient garbage collection
CN110659217A (en) * 2019-08-30 2020-01-07 苏州浪潮智能科技有限公司 Garbage recycling method, device and equipment for solid state disk and storage medium
US11567863B2 (en) * 2020-09-02 2023-01-31 SK Hynix Inc. Storage device and operating method thereof
US11954021B2 (en) * 2020-09-02 2024-04-09 SK Hynix Inc. Storage device and operating method thereof

Also Published As

Publication number Publication date
US9720820B2 (en) 2017-08-01
TW201508749A (en) 2015-03-01
CN104424112B (en) 2017-10-31
US20150067239A1 (en) 2015-03-05
TWI529719B (en) 2016-04-11
CN104424112A (en) 2015-03-18

Similar Documents

Publication Publication Date Title
US20170286289A1 (en) Data storage device and flash memory control method
US20200167083A1 (en) Techniques for controlling recycling of blocks of memory
US9104546B2 (en) Method for performing block management using dynamic threshold, and associated memory device and controller thereof
US7849275B2 (en) System, method and a computer program product for writing data to different storage devices based on write frequency
US9298608B2 (en) Biasing for wear leveling in storage systems
KR102291507B1 (en) Operating method of memory controller
KR100974954B1 (en) Read-time Wear-Leveling Method in Storage System using Flash Memory Device
US8392649B2 (en) Memory storage device, controller, and method for responding to host write commands triggering data movement
CN107329902B (en) Data storage device and flash memory control method
EP2397945A1 (en) Programming method and device for a buffer cache in a solid-state disk system
US20190391916A1 (en) Method for managing flash memory module and associated flash memory controller and electronic device
KR20170086840A (en) Data storage device and operating method thereof
US10528289B2 (en) Data storage method for optimizing data storage device and its data storage device
US9304906B2 (en) Memory system, controller and control method of memory
US20200104384A1 (en) Systems and methods for continuous trim commands for memory systems
TWI594244B (en) Data storage device and flash memory control method

Legal Events

Date Code Title Description
AS Assignment

Owner name: SILICON MOTION, INC., TAIWAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CHU, PO-CHIA;LIN, YEN-HUNG;REEL/FRAME:042782/0468

Effective date: 20140219

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION