US10896004B2 - Data storage device and control method for non-volatile memory, with shared active block for writing commands and internal data collection - Google Patents
Data storage device and control method for non-volatile memory, with shared active block for writing commands and internal data collection Download PDFInfo
- Publication number
- US10896004B2 US10896004B2 US16/505,264 US201916505264A US10896004B2 US 10896004 B2 US10896004 B2 US 10896004B2 US 201916505264 A US201916505264 A US 201916505264A US 10896004 B2 US10896004 B2 US 10896004B2
- Authority
- US
- United States
- Prior art keywords
- data
- block
- active block
- transfer
- source block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000015654 memory Effects 0.000 title claims abstract description 52
- 238000013500 data storage Methods 0.000 title claims description 31
- 238000000034 method Methods 0.000 title claims description 25
- 238000013480 data collection Methods 0.000 title 1
- 238000012546 transfer Methods 0.000 claims abstract description 112
- 238000012937 correction Methods 0.000 claims description 5
- 238000005516 engineering process Methods 0.000 abstract description 5
- 238000013507 mapping Methods 0.000 description 6
- 238000013403 standard screening design Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 2
- 230000001351 cycling effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000008014 freezing Effects 0.000 description 1
- 238000007710 freezing Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0626—Reducing size or complexity of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Definitions
- the present invention relates to control techniques for non-volatile memory.
- non-volatile memory for long-term data storage, such as flash memory, magnetoresistive RAM, ferroelectric RAM, resistive RAM, spin transfer torque-RAM (STT-RAM), and so on.
- flash memory magnetoresistive RAM
- ferroelectric RAM ferroelectric RAM
- resistive RAM resistive RAM
- spin transfer torque-RAM STT-RAM
- Non-volatile memory typically has its own specific storage characteristics. There is a need in the art for the development of control techniques for the specific storage characteristics of non-volatile memory.
- a data storage device has a non-volatile memory and a controller.
- the controller allocates spare blocks of the non-volatile memory to provide an active block and writes data issued by the host to the active block.
- the controller further uses the active block as the destination for data transferred from a first source block when there are fewer spare blocks than the threshold amount.
- the controller uses the active block as the destination for data transferred from the second source block.
- the controller permits data to be transferred from a later source block to the active block after finishing the data transfer from an earlier source block to the active block.
- the controller performs a data transfer from a source block to the active block in sections. Between different sections of the data transfer, the controller permits data issued by the host to be written to the active block.
- the controller estimates the ratio of valid data size within the source block to spare space in the active block. According to the ratio, the controller sets a data-transfer amount in each section of the data transfer. According to the ratio, the controller may further set a writing amount between the different sections of the data transfer for the host to write data to the active block
- the controller estimates the ratio of valid data within the source block to write data requested by the host. According to the ratio, the controller sets a data-transfer amount in each section of the data transfer.
- the second source block meets the transfer requirements when there is a failure in error checking and correction.
- the second source block meets the transfer requirements when an early move is needed.
- the second source block meets the transfer requirements when selected for wear leveling.
- the controller prior to closing the active block, releases a source block whose valid data has been completely transferred to the active block.
- the controller uses a flag to permit the transfer of valid data from another source block to the active block.
- a control method for non-volatile memory may be realized according to the aforementioned concepts, which includes the following steps: operating a non-volatile memory as requested by a host; allocating spare blocks of the non-volatile memory to provide an active block and writing data issued by the host to the active block; further using the active block as the destination for data transferred from a first source block when there are fewer spare blocks than the threshold amount; and when a second source block meets the transfer requirements, using the active block as the destination for data transferred from the second source block.
- FIG. 1 is a block diagram depicting a data storage device 100 in accordance with an exemplary embodiment of the disclosure
- FIGS. 2A and 2B show a flowchart illustrating a high-performance data storage method implemented in accordance with an exemplary embodiment of the present invention, wherein a flag, cleanflag, is utilized to control the data transfer;
- FIG. 3 depicts an example of the transfer of data from a source block to a destination in sections with inserted writing issued by the host.
- a non-volatile memory for long-term data retention may be a flash memory, a magnetoresistive RAM, a ferroelectric RAM, a resistive RAM, a spin transfer torque-RAM (STT-RAM) and so on.
- flash memory a magnetoresistive RAM, a ferroelectric RAM, a resistive RAM, a spin transfer torque-RAM (STT-RAM) and so on.
- STT-RAM spin transfer torque-RAM
- Flash memory Today's data storage devices often use flash memory as the storage medium for storing user data from the host. There are many types of data storage devices, including memory cards, USB flash devices, SSDs, and so on.
- a flash memory may be packaged with a controller to form a multiple-chip package called eMMC.
- a data storage device using a flash memory as a storage medium can be applied in a variety of electronic devices, including a smartphone, a wearable device, a tablet computer, a virtual reality device, etc.
- a calculation module of an electronic device may be regarded as a host that operates a data storage device equipped on the electronic device to access a flash memory within the data storage device.
- a data center may be built with data storage devices using flash memories as the storage medium.
- a server may operate an array of SSDs to form a data center.
- the server may be regarded as a host that operates the SSDs to access the flash memories within the SSDs.
- FIG. 1 is a block diagram depicting a data storage device 100 in accordance with an exemplary embodiment of the disclosure.
- the data storage device 100 includes a flash memory 102 and a controller 104 .
- a host 106 accesses the flash memory 102 through the controller 104 .
- the controller 104 receives and executes write commands from the host 106 .
- the controller 104 further involves user data transfer within the flash memory 102 without commands from the host 106 .
- a flash memory has its special storage characteristics, as described below.
- the host 106 distinguishes user data by logical address (e.g., logical block address LBA or global host page number GHP . . . etc.).
- logical address e.g., logical block address LBA or global host page number GHP . . . etc.
- the physical space in the flash memory 102 is divided into a plurality of blocks. Each block includes a plurality of pages. Each page includes N sectors, where N is an integer greater than 1, such as: 4. A 16 KB page may be divided into four sectors, each sector is 4 KB.
- a block is allocated from a low to high page number to store user data.
- a data storage device adopts a multi-channel accessing technology. Blocks accessed through different channels may be managed as one super block, and pages of the different blocks may be managed as one super page.
- the data storage device managed in the units of super block (or super page) therefore has improved data throughput.
- the data storage device For storage of user data, the data storage device records the mapping between logical address of the user data and physical address storing the user data in a logical-to-physical mapping table (L2P Table).
- L2P Table logical-to-physical mapping table
- the storage space in the flash memory needs to be erased before being allocated again to store data.
- the minimum unit of erasure is a block.
- An active block may be selected from the spare blocks to store user data.
- the active block is closed (e.g., by writing of EOB (end of block) information) and changed to a data block.
- EOB end of block
- old user data in the data blocks are invalidated.
- a data block is erased and changed to a spare block.
- the block erasure is performed later.
- a block in which only invalid data remains is first changed to a spare block and is erased when selected to serve as an active block.
- the control of a flash memory involves data transfer between blocks, including data transfer for garbage collection and data transfer for purposes other than garbage collection.
- garbage collection is required.
- sparse pieces of valid data that remain in the blocks may be collected in an active block (called a destination block). After garbage collection, source blocks are released, thereby increasing the number of spare blocks.
- Data transfer for purposes other than garbage collection may be performed when there is a transfer requirement.
- a data block containing ECC (error checking and correction) failed data may be regarded as a source block and the readable data is rescued and transferred to another block.
- a data block read too frequently may be also regarded as a source block. Because the frequent reading may damage the data retention capability of a data block, an early move action is required to transfer data to another block.
- data transfer may be performed because of wear leveling. For example, a block with a low read count may be regarded as a source block. Data in the source block may be moved to an active block (i.e.
- the concept of wear leveling is combined with garbage collection. Based on the wear leveling concept, valid data scattered on the source blocks is moved to an active block (destination block) having a high erase count.
- the data transfer is preferably implemented by copying data to the destination.
- the flash memory 102 has a pool 108 of spare blocks and a pool 110 of data blocks.
- the controller 104 selects one spare block from the spare block pool 108 as an active block A 0 , and the number of spare blocks is reduced by one.
- User data is written/transferred to the active block A 0 .
- the active block A 0 is closed and becomes a data block, the number of data blocks is increased by one.
- a high-efficiency data storage technique is proposed in the disclosure for different storage purposes.
- the data storage technique may further involve the transfer of user data obtained from a source block. This data transfer may occur due to garbage collection, ECC failure, early move, wear leveling, and so on.
- the controller 104 typically uses an active block A 0 to receive user data issued by the host 106 .
- the host 106 typically uses a write command to issue user data.
- the controller 104 instead of additionally using another active block A 1 (which is distinguished from active block A 0 ) to store user data obtained from a source block for data transfer, the controller 104 also regards the active block A 0 as the destination for the data transfer.
- a request for a data transfer e.g., due to garbage collection, ECC failure, early move, wear leveling, and so on
- user data obtained from a source block is collected in the active block A 0 .
- the design of the disclosure has several advantages and is described below.
- the active block A 0 not only stores user data issued by the host 106 through a write command, but it also stores user data transferred from a source block, which saves space in the spare blocks.
- the active block A 1 is abandoned during a sudden power-off recovery (SPOR) procedure for data reliability.
- SPOR sudden power-off recovery
- Source blocks are accessed during the SPOR procedure to provide reliable user data. Therefore, as long as the active block A 1 has not been closed, all source blocks of the data transfer must be retained and cannot be released.
- the aforementioned design obviously drags down the recycling of source blocks. The number of spare blocks cannot be increased over time. Other types of data transfer may be induced.
- the disclosure uses the active block A 0 as the destination block for the data transfer.
- the active block A 0 is not discarded during the SPOR procedure. There is no need to maintain the source blocks and the source blocks are released right after the data transfer. Therefore, compared with conventional technology in which the active block A 1 is required as the destination block for the data transfer, the disclosure effectively increases the number of spare blocks.
- dummy data is filled to the active block A 1 (that works as the destination block for the data transfer) to close the active block A 1 early.
- the data storage capacity therefore, is reduced.
- the erasure frequency is increased, which shorten the life of flash memory.
- the active block A 0 is used as the destination block of data transfer in the disclosure, which avoids the writing of dummy data.
- the controller 104 must finish transferring valid data from the earlier source block to the active block A 0 before transferring valid data from the later source block to the active block A 0 .
- the data transfer may be performed due to garbage collection or other purposes.
- the data transfer may be due to garbage collection or other purposes.
- the controller 104 starts the garbage collection process and uses the active block A 0 as the destination block.
- the garbage collection path is GC.
- the controller 104 also uses the active block A 0 as the destination block. As shown, path Non_GC is established for data transfers that are performed for purposes other than garbage collection.
- the active block A 0 for storage of user data issued by the host 106 also serves as a destination block for garbage collection.
- the active block A 0 may be used as a destination block for garbage collection to store user data obtained from a source block, e.g., BLK # 0 .
- a source block e.g., BLK # 0 .
- the source block BLK # 0 may be released as a spare block without waiting for the active block A 0 to be closed.
- the active block A 0 for storage of user data issued by the host 106 also serves as a destination block for data transfers that are performed for purposes other than garbage collection.
- the active block A 0 may be used as a destination block for data transfers that are performed for purposes other than garbage collection.
- User data obtained from a source block, e.g., BLK # 1 is transferred to the active block A 0 .
- the source block BLK # 1 may be released as a spare block without waiting for the active block A 0 to be closed.
- the active block A 0 for storage of user data issued by the host 106 also serves as a destination block no matter the data transfer is due to garbage collection or not.
- the active block A 0 may be used as the destination block for the data transfer.
- the data transfer may be caused by garbage collection to store user data obtained from a source block, e.g., BLK # 0 , or it may be performed for another purpose (other than garbage collection) to store user data obtained from a source block, e.g., BLK # 1 .
- the source block BLK # 0 /BLK # 1 may be released as spare blocks without waiting for the active block A 0 to be closed.
- the user data issued by the host 106 and the user data transferred due to garbage collection and other purposes are preferably segmented into sections and written to the active block A 0 in an interleaving way.
- the different sections of user data may have equal size (according to a preset writing amount and a preset transferring amount).
- the segmenting is based on a timer (according to a preset writing interval and a preset transferring interval). The different sections of user data issued by the host 106 are inserted between the writing of the different sections of user data transferred from a source block.
- the controller 104 estimates the ratio of valid data within the source block to write data requested by the host 106 . According to the ratio, the controller 104 sets a data-transfer amount in each section of the data transfer, and sets a data amount for writing, between the different sections of the data transfer, data issued by the host 106 to the active block A 0 . In another exemplary embodiment, the controller 104 estimates the ratio of valid data size within the source block to spare space in the active block A 0 . According to the ratio, the controller 104 sets a data-transfer amount in each section of the data transfer, and sets a data amount for writing, between the different sections of the data transfer, data issued by the host 106 to the active block A 0 .
- FIGS. 2A and 2B show a flowchart illustrating a high-performance data storage method implemented in accordance with an exemplary embodiment of the present invention, wherein a flag cleanflag is utilized to control the data transfer.
- step S 202 the controller 104 allocates an active block A 0 .
- the controller 104 selects one spare block from the pool 108 of spare blocks as the active block A 0 .
- step S 204 the controller 104 initializes the flag cleanflag to “DISABLE”. According to the “DISABLE” state, the active block A 0 is not only used to store data issued by the host 106 and is permitted to be a destination block for data transfers.
- step S 206 the controller 104 determines whether to execute data transfer or not. If yes, step S 210 is performed, and if not, step S 208 is performed.
- the controller 104 starts (executes) data transfer when a preset condition is satisfied. For example, the preset condition is judged by determining whether the number of spare blocks is less than a threshold number TH 1 , or whether an error correction failure occurs.
- step S 208 the controller 104 determines whether to close the active block A 0 or not. If yes, step S 214 is performed, and if not, step S 212 is performed. When the active block A 0 still has spare space to store data, the controller 104 does not close the active block A 0 .
- step S 212 the controller 104 writes the user data issued by the host 106 to the active block A 0 , and then returns to step S 206 .
- the controller 104 first executes step S 206 , and then executes step S 208 and step S 212 , which means according to the controller 104 the data transfer is in a higher priority than the writing of user data issued by the host 106 .
- the controller 104 performs step S 208 and step S 212 prior to performing step S 206 , which means that the writing of user data issued by the host 106 is in a higher priority than the data transfer from the source block to the active block A 0 .
- step S 214 the controller 104 closes the active block A 0 .
- the controller 104 closes the active block A 0 and writes EOB information to the last page of the active block A 0 .
- the controller 104 determines the data-transfer amount, which may be a fixed value.
- the fixed data-transfer amount depends on the ratio of valid data within the source block to write data requested by the host 106 .
- the fixed data-transfer amount depends on the ratio of valid data size within the source block to spare space in the active block A 0 .
- the source block used in the data transfer may be selected for garbage collection or other purposes.
- the data-transfer amount may be the total amount of valid data within the source block.
- step S 216 the controller 104 sets the flag cleanflag to “START” to start using the active block A 0 as the destination block for a data transfer. “START” shows that the controller 104 is ready to perform data transfer.
- step S 218 the controller 104 transfers user data from the source block to the active block A 0 .
- the controller 104 may transfer user data from the source block to the active block A 0 at one time or in sections.
- the amount of user data in the source block is x units
- the amount of user data issued by the host 106 is n*x units.
- a ratio, 1:n is obtained.
- x is 16, and n is 10.
- the controller 104 may transfer the M units of user data to the active block A 0 in each section, where M, for example, is 4.
- FIG. 3 illustrates an example of segmented data transfer. After user data Data #0 . . .
- Data #3 is transferred to the active block A 0
- the host 106 writes user data to the active block A 0
- user data Data #4 . . . Data #7 is transferred to the active block A 0
- the remaining eight units of user data are moved from the source block to the active block A 0 in two sections.
- the data transfer is performed without being interrupted by the writing of user data issued by the host 106
- the controller 104 transfers all 16 sectors of user data to the active block A 0 at one time.
- the number M of data transfers in each section is preferably a multiple of the number of sectors, and may cover one or more pages.
- step S 220 the controller 104 sets the flag cleanflag to “FINISH” to indicate that the data transfer, in which the data was transferred at one time or in sections, has been completed.
- step S 222 the controller 104 writes user data issued by the host 106 to the active block A 0 .
- the controller 104 regards the host 106 as the source of data.
- the controller 104 writes user data issued by the host 106 to the active block A 0 .
- the controller 104 may write a fixed amount of user data to the active block A 0 in this step.
- the fixed data amount may depend on the aforementioned ratio 1:n.
- the fixed data amount may be 40 units, which is a product of n and M, where n is 10 and M is 4.
- step S 224 the controller 104 determines whether the data transfer is complete. If yes, step S 226 is performed, and if not, step S 216 is performed. The controller 104 repeats steps S 216 to S 224 to move user data from the source block to the active block A 0 in sections. For example, the number of repetitions is 4 when there are 16 units of user data and 4 units of user data are transferred in each section of data transfer.
- step S 226 the controller 104 sets the flag cleanflag to “DISABLE”.
- step S 228 the controller 104 changes the source block to a spare block.
- the number of spare blocks is increased by one.
- the number of spare blocks increases over time without waiting for the active block A 0 to close.
- the controller 104 may update the logical-to-physical address mapping table with the writing of the active block A 0 .
- the controller 104 generates a physical-to-logical mapping table (a small table) for the active block A 0 , and then updates a logical-to-physical mapping table (a large table) based on the physical-to-logical mapping table.
- step S 222 may count time. When the time limit is exceeded in step S 222 , the flowchart proceeds to step S 224 .
- the data amount of segmented data transfer (S 218 ) and the data amount of segmented data writing (S 222 ) may depend on the ratio of valid data size within the source block to spare space in the active block A 0 .
- the controller 104 increases the data amount of the segmented data transfer (S 218 ), or/and limits the data amount of the segmented writing (S 222 ) of user data issued by the host 106 . In this manner, it is guaranteed that a source block will be completely transferred before the active block A 0 is closed.
- the user may be in the habit of repeatedly powering down and up a device (referred to as power cycling). For example, a mobile phone user may flip the phone cover to check messages. A lot of spare blocks are consumed in power cycling. A need for garbage collection arises. Some blocks are read repeatedly. A need for data transfer, e.g., due to ECC failure, early move, wear leveling, and so on, may arise. According to the disclosure, the number of spare blocks increases over time.
- controller 104 performs on the flash memory 102 may be implemented by other structures. Any case that performs a data transfer without further allocating an active block A 1 should be considered as within the scope of the present invention. In this case, the control method of the non-volatile memory can be realized by the foregoing concept.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/505,264 US10896004B2 (en) | 2018-09-07 | 2019-07-08 | Data storage device and control method for non-volatile memory, with shared active block for writing commands and internal data collection |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862728134P | 2018-09-07 | 2018-09-07 | |
TW108106466A TWI696916B (zh) | 2018-09-07 | 2019-02-26 | 資料儲存裝置以及非揮發式記憶體控制方法 |
TW108106466A | 2019-02-26 | ||
TW108106466 | 2019-02-26 | ||
US16/505,264 US10896004B2 (en) | 2018-09-07 | 2019-07-08 | Data storage device and control method for non-volatile memory, with shared active block for writing commands and internal data collection |
Publications (2)
Publication Number | Publication Date |
---|---|
US20200081657A1 US20200081657A1 (en) | 2020-03-12 |
US10896004B2 true US10896004B2 (en) | 2021-01-19 |
Family
ID=69719528
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/505,264 Active US10896004B2 (en) | 2018-09-07 | 2019-07-08 | Data storage device and control method for non-volatile memory, with shared active block for writing commands and internal data collection |
Country Status (2)
Country | Link |
---|---|
US (1) | US10896004B2 (zh) |
CN (1) | CN110888591B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102653235B1 (ko) * | 2019-10-16 | 2024-04-01 | 에스케이하이닉스 주식회사 | 메모리 블록을 효율적으로 관리할 수 있는 메모리 시스템 및 메모리 시스템의 동작방법 |
Citations (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060155920A1 (en) | 2004-12-16 | 2006-07-13 | Smith Peter J | Non-volatile memory and method with multi-stream updating |
US20060161722A1 (en) * | 2004-12-16 | 2006-07-20 | Bennett Alan D | Scratch pad block |
US20070168632A1 (en) * | 2006-01-19 | 2007-07-19 | Sigmatel, Inc. | Non-volatile memory |
US20070234183A1 (en) * | 2006-03-31 | 2007-10-04 | Sang-Won Hwang | Multi-bit memory device and memory system |
US7609564B2 (en) * | 2005-12-31 | 2009-10-27 | Intel Corporation | Systems and techniques for non-volatile memory buffering |
CN101645309A (zh) | 2008-08-05 | 2010-02-10 | 威刚科技(苏州)有限公司 | 非挥发性存储装置及其控制方法 |
US8040744B2 (en) * | 2009-01-05 | 2011-10-18 | Sandisk Technologies Inc. | Spare block management of non-volatile memories |
US20120084490A1 (en) * | 2010-10-04 | 2012-04-05 | Seong Hyeog Choi | Method for changing read parameter for improving read performance and apparatuses using the same |
US20120159051A1 (en) | 2010-12-16 | 2012-06-21 | Kabushiki Kaisha Toshiba | Memory system |
US8225028B2 (en) * | 2008-10-28 | 2012-07-17 | Silicon Motion, Inc. | Memory devices and methods for programming flash memory utilizing spare blocks |
US8356136B2 (en) * | 2009-12-24 | 2013-01-15 | National Taiwan University | Block management method of a non-volatile memory |
US20130173875A1 (en) | 2011-12-28 | 2013-07-04 | Samsung Electronics Co., Ltd. | Method of managing storage region of memory device, and storage apparatus using the method |
US8667210B2 (en) * | 2011-02-15 | 2014-03-04 | Phison Electronics Corp. | Memory management method, memory controller and memory storage apparatus |
US8886990B2 (en) * | 2011-01-27 | 2014-11-11 | Apple Inc. | Block management schemes in hybrid SLC/MLC memory |
US9021177B2 (en) * | 2010-04-29 | 2015-04-28 | Densbits Technologies Ltd. | System and method for allocating and using spare blocks in a flash memory |
CN104732153A (zh) | 2013-12-18 | 2015-06-24 | 群联电子股份有限公司 | 数据抹除方法、存储器控制电路单元及存储器存储装置 |
US20160078966A1 (en) * | 2014-09-14 | 2016-03-17 | Transcend Information, Inc. | Method of performing wear management in non-volatile memory devices |
US20160188455A1 (en) * | 2014-12-29 | 2016-06-30 | Sandisk Technologies Inc. | Systems and Methods for Choosing a Memory Block for the Storage of Data Based on a Frequency With Which the Data is Updated |
US20170199703A1 (en) * | 2016-01-13 | 2017-07-13 | Sandisk Technologies Inc. | Physical addressing schemes for non-volatile memory systems employing multi-die interleave schemes |
US20170221584A1 (en) | 2016-01-29 | 2017-08-03 | Realtek Semiconductor Corp. | Ssd controlling circuit for determining reusability of data block of ssd |
US9747201B2 (en) * | 2015-03-26 | 2017-08-29 | Facebook, Inc. | Methods and systems for managing memory allocation |
TWI613652B (zh) | 2017-03-27 | 2018-02-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及其操作方法 |
TWI615710B (zh) | 2016-12-14 | 2018-02-21 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
CN107817943A (zh) | 2016-09-13 | 2018-03-20 | 大心电子股份有限公司 | 数据传输方法、存储器存储装置及存储器控制电路单元 |
US20180150390A1 (en) | 2016-11-28 | 2018-05-31 | Silicon Motion, Inc. | Data Storage Device and Operating Method Therefor |
TWI627531B (zh) | 2016-11-28 | 2018-06-21 | 慧榮科技股份有限公司 | 資料儲存裝置以及其操作方法 |
US20190108119A1 (en) * | 2017-10-11 | 2019-04-11 | Western Digital Technologies, Inc. | Non-volatile memory with adaptive wear leveling |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102033811B (zh) * | 2009-09-24 | 2013-04-17 | 慧荣科技股份有限公司 | 用于管理闪存多个区块的方法和相关记忆装置及其控制器 |
CN102609378B (zh) * | 2012-01-18 | 2016-03-30 | 中国科学院计算技术研究所 | 一种消息式内存访问装置及其访问方法 |
CN103218306B (zh) * | 2013-03-29 | 2016-03-30 | 四川长虹电器股份有限公司 | 一种实现基于ubi的动态磨损均衡的方法 |
TWI520140B (zh) * | 2014-11-03 | 2016-02-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及快閃記憶體控制方法 |
CN107708108B (zh) * | 2017-09-30 | 2020-01-10 | Oppo广东移动通信有限公司 | 信息处理方法、装置、计算机可读存储介质和计算机设备 |
-
2019
- 2019-04-22 CN CN201910323781.0A patent/CN110888591B/zh active Active
- 2019-07-08 US US16/505,264 patent/US10896004B2/en active Active
Patent Citations (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060161722A1 (en) * | 2004-12-16 | 2006-07-20 | Bennett Alan D | Scratch pad block |
US20060155920A1 (en) | 2004-12-16 | 2006-07-13 | Smith Peter J | Non-volatile memory and method with multi-stream updating |
US7609564B2 (en) * | 2005-12-31 | 2009-10-27 | Intel Corporation | Systems and techniques for non-volatile memory buffering |
US20070168632A1 (en) * | 2006-01-19 | 2007-07-19 | Sigmatel, Inc. | Non-volatile memory |
US20070234183A1 (en) * | 2006-03-31 | 2007-10-04 | Sang-Won Hwang | Multi-bit memory device and memory system |
US8205036B2 (en) | 2008-08-05 | 2012-06-19 | A-Data Technology (Suzhou) Co., Ltd. | Non-volatile memory and controlling method thereof |
CN101645309A (zh) | 2008-08-05 | 2010-02-10 | 威刚科技(苏州)有限公司 | 非挥发性存储装置及其控制方法 |
US8225028B2 (en) * | 2008-10-28 | 2012-07-17 | Silicon Motion, Inc. | Memory devices and methods for programming flash memory utilizing spare blocks |
US8040744B2 (en) * | 2009-01-05 | 2011-10-18 | Sandisk Technologies Inc. | Spare block management of non-volatile memories |
US8356136B2 (en) * | 2009-12-24 | 2013-01-15 | National Taiwan University | Block management method of a non-volatile memory |
US9021177B2 (en) * | 2010-04-29 | 2015-04-28 | Densbits Technologies Ltd. | System and method for allocating and using spare blocks in a flash memory |
US20120084490A1 (en) * | 2010-10-04 | 2012-04-05 | Seong Hyeog Choi | Method for changing read parameter for improving read performance and apparatuses using the same |
US20120159051A1 (en) | 2010-12-16 | 2012-06-21 | Kabushiki Kaisha Toshiba | Memory system |
US8886990B2 (en) * | 2011-01-27 | 2014-11-11 | Apple Inc. | Block management schemes in hybrid SLC/MLC memory |
US8667210B2 (en) * | 2011-02-15 | 2014-03-04 | Phison Electronics Corp. | Memory management method, memory controller and memory storage apparatus |
US20130173875A1 (en) | 2011-12-28 | 2013-07-04 | Samsung Electronics Co., Ltd. | Method of managing storage region of memory device, and storage apparatus using the method |
CN104732153A (zh) | 2013-12-18 | 2015-06-24 | 群联电子股份有限公司 | 数据抹除方法、存储器控制电路单元及存储器存储装置 |
US20160078966A1 (en) * | 2014-09-14 | 2016-03-17 | Transcend Information, Inc. | Method of performing wear management in non-volatile memory devices |
US20160188455A1 (en) * | 2014-12-29 | 2016-06-30 | Sandisk Technologies Inc. | Systems and Methods for Choosing a Memory Block for the Storage of Data Based on a Frequency With Which the Data is Updated |
US9747201B2 (en) * | 2015-03-26 | 2017-08-29 | Facebook, Inc. | Methods and systems for managing memory allocation |
US20170199703A1 (en) * | 2016-01-13 | 2017-07-13 | Sandisk Technologies Inc. | Physical addressing schemes for non-volatile memory systems employing multi-die interleave schemes |
TWI604441B (zh) | 2016-01-29 | 2017-11-01 | 瑞昱半導體股份有限公司 | 用來判斷固態硬碟之資料區塊可再使用性的固態硬碟控制電路 |
US20170221584A1 (en) | 2016-01-29 | 2017-08-03 | Realtek Semiconductor Corp. | Ssd controlling circuit for determining reusability of data block of ssd |
CN107817943A (zh) | 2016-09-13 | 2018-03-20 | 大心电子股份有限公司 | 数据传输方法、存储器存储装置及存储器控制电路单元 |
US20180150390A1 (en) | 2016-11-28 | 2018-05-31 | Silicon Motion, Inc. | Data Storage Device and Operating Method Therefor |
TWI627531B (zh) | 2016-11-28 | 2018-06-21 | 慧榮科技股份有限公司 | 資料儲存裝置以及其操作方法 |
TWI615710B (zh) | 2016-12-14 | 2018-02-21 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
US20180165009A1 (en) | 2016-12-14 | 2018-06-14 | Phison Electronics Corp. | Memory management method, memory storage device and memory control circuit unit |
TWI613652B (zh) | 2017-03-27 | 2018-02-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及其操作方法 |
US20180275887A1 (en) | 2017-03-27 | 2018-09-27 | Silicon Motion, Inc. | Data Storage Device and Operating Method of Data Storage Device |
US20190108119A1 (en) * | 2017-10-11 | 2019-04-11 | Western Digital Technologies, Inc. | Non-volatile memory with adaptive wear leveling |
Non-Patent Citations (1)
Title |
---|
Non-Final Office Action dated Aug. 25, 2020, issued in U.S. Appl. No. US 16/505,192 (copy not provided). |
Also Published As
Publication number | Publication date |
---|---|
CN110888591B (zh) | 2023-05-30 |
US20200081657A1 (en) | 2020-03-12 |
CN110888591A (zh) | 2020-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11416391B2 (en) | Garbage collection | |
US10657047B2 (en) | Data storage device and method of performing partial garbage collection | |
US9507711B1 (en) | Hierarchical FTL mapping optimized for workload | |
US20190102291A1 (en) | Data storage device and method for operating non-volatile memory | |
US11334480B2 (en) | Data storage device and non-volatile memory control method | |
TWI718710B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
US11334272B2 (en) | Memory system and operating method thereof | |
US11573891B2 (en) | Memory controller for scheduling commands based on response for receiving write command, storage device including the memory controller, and operating method of the memory controller and the storage device | |
KR20220077691A (ko) | 호스트, 메모리 컨트롤러 및 메모리 장치를 포함하는 전자 시스템 및 이의 동작 방법 | |
CN112463436A (zh) | 存储器控制器以及操作存储器控制器的方法 | |
TWI696916B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
US11199982B2 (en) | Data storage device and control method for non-volatile memory | |
US20200394131A1 (en) | Data storage device and non-volatile memory control method | |
US10896004B2 (en) | Data storage device and control method for non-volatile memory, with shared active block for writing commands and internal data collection | |
US11036414B2 (en) | Data storage device and control method for non-volatile memory with high-efficiency garbage collection | |
US8850160B2 (en) | Adaptive write behavior for a system having non-volatile memory | |
US20240069782A1 (en) | Storage device including nonvolatile memory device and operating method of storage device | |
US20240078027A1 (en) | Storage device including nonvolatile memory device and operating method of storage device | |
KR20230071005A (ko) | 스토리지 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: SILICON MOTION, INC., TAIWAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:LIN, TING-HAN;HSU, CHE-WEI;REEL/FRAME:049691/0469 Effective date: 20190530 |
|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: AWAITING TC RESP., ISSUE FEE NOT PAID |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |