WO2021120645A1 - 数据写入固态硬盘的方法、垃圾回收的方法、装置 - Google Patents
数据写入固态硬盘的方法、垃圾回收的方法、装置 Download PDFInfo
- Publication number
- WO2021120645A1 WO2021120645A1 PCT/CN2020/108800 CN2020108800W WO2021120645A1 WO 2021120645 A1 WO2021120645 A1 WO 2021120645A1 CN 2020108800 W CN2020108800 W CN 2020108800W WO 2021120645 A1 WO2021120645 A1 WO 2021120645A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- group
- data
- reclaimed
- erase block
- pages
- Prior art date
Links
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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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
-
- 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/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Definitions
- This application relates to the field of storage technology, and in particular to a method for writing data into a solid-state hard disk, a method and a device for garbage collection in the solid-state hard disk.
- SSD solid state drive
- the first aspect of the present application provides a method for writing data to a solid-state hard disk.
- the solid-state hard disk includes a flash memory controller and a flash memory chip, the flash memory chip includes a plurality of erasing blocks, and the plurality of erasing blocks are at least divided into a first erasing block set and a second erasing block set.
- An erase block set and the second erase block set use different hierarchical unit flash memory technologies.
- the flash memory controller receives data to be written, and the data to be written includes at least two data blocks. Then, the heat attributes of the at least two data blocks are acquired, and the at least two data blocks are divided into at least a first group of data blocks and a second group of data blocks according to the heat attributes. The heat attribute of the first group of data blocks is different from the heat attribute of the second group of data blocks.
- the first group of data blocks includes at least one data block, and the second group of data blocks includes at least one data block. Then select a first target erase block from the first erase block set, write the first group of data blocks into the first target erase block, and select from the second erase block set
- the second target erasing block writes the second group of data blocks into the second target erasing block.
- the erase block in the solid state drive is divided into at least two erase block sets.
- Different erase block sets use different levels of flash memory technology to store data, so that data with different thermal attributes can use different levels.
- the flash memory technology saves, thereby reducing the number of erasing blocks, which can increase the service life of the solid state drive.
- the data blocks are grouped according to the thermal attributes, and a group of data blocks with similar thermal attributes are written into the same target erase block, which can reduce data movement, thereby reducing write amplification.
- the divided data blocks further include a third group of data blocks, and the third group of data blocks includes at least one data block.
- the flash memory controller may select a target erase block group from the first erase block set, and set the first erase block group to The group of data blocks and the third group of data blocks are written in parallel to a plurality of first target erase blocks included in the target erase block group.
- the flash memory controller may select a target erase block group from the second erase block set, and set the second erase block group to The group of data blocks and the third group of data blocks are written in parallel to a plurality of second target erase blocks included in the target erase block group.
- the popularity attribute includes one or more of the number of rewrites and the rewrite time interval.
- each of the plurality of erase blocks includes at least one A storage unit, the storage unit in the first erase block set is used to use single-layer cell technology, and the storage cell in the second erase block set is used to use multi-layer cell technology, three-layer cell technology, and four-layer cell At least one of the technologies.
- the first erase block set may be a set of erase blocks formed by a single-level cell (SLC), and the second erase block set may be a quad-level cell (QLC). ) The set of erase blocks formed.
- the second erase block set may also be an erase block formed by a multi-level cell (MLC). And/or a collection of erase blocks formed by triple-level cells (TLC).
- MLC multi-level cell
- TLC triple-level cells
- the first erase block set may also be a set of erase blocks formed by MLC.
- the second erase block set may be a set of erase blocks formed by TLC and/or an erase block formed by QLC. Collection.
- the first erase block set may also be a set of erase blocks formed by TLC.
- the second erase block set may be a set of erase blocks formed by QLC.
- the second aspect of the present application provides a method for garbage collection in a solid state hard disk.
- the solid-state hard disk includes a flash memory controller and a flash memory chip, the flash memory chip includes a plurality of erasing blocks, and the plurality of erasing blocks are at least divided into a first erasing block set and a second erasing block set.
- An erase block set and the second erase block set use different hierarchical unit flash memory technologies.
- the flash memory controller obtains the heat attribute of the data block of the page to be reclaimed of at least one of the erase block to be reclaimed in the first erase block set. Then, the flash memory controller divides the pages to be reclaimed into at least a first group of pages to be reclaimed and a second group of pages to be reclaimed according to the heat attribute. The heat attribute of the data blocks of the first group of pages to be reclaimed is different from the heat attribute of the data blocks of the second group of pages to be reclaimed.
- the first group of pages to be recycled includes at least one page to be recycled, and the second group of pages to be recycled includes at least one page to be recycled.
- first target reclaim block from the first erase block set, write the data blocks of the first set of pages to be reclaimed into the first target reclaim block, and select from the second erase block set Select the second target reclaim block in, write the data blocks of the second group of pages to be reclaimed into the second target reclaim block, and release the erase block to be reclaimed.
- the flash memory controller divides the pages to be reclaimed into the first group of pages to be reclaimed and the second group of pages to be reclaimed based on the heat attribute, and writes the data blocks of the first group of pages to be reclaimed into the first erase block set Write the data blocks of the second group of pages to be reclaimed into the second target reclaim block in the second erase block set. Since the data blocks of the same group of pages to be reclaimed have similar life cycles, the data blocks of this group of pages to be reclaimed have a greater chance of being reclaimed within a period of time. Therefore, the data blocks of the same group of pages to be reclaimed are written into the corresponding The target recycling block is recycled, which can avoid repeated writing and effectively reduce write amplification.
- the divided pages to be recycled further include a third group of pages to be recycled.
- the third group of pages to be recycled includes at least one page to be recycled.
- the flash memory controller selects a target reclaimed block group from the first erase block set , Writing the data blocks of the first group of pages to be reclaimed and the data blocks of the third group of pages to be reclaimed in parallel into the multiple first target reclaimed blocks included in the target reclaimed block group.
- the flash memory controller selects a target reclaimed block group from the second set of erased blocks , Writing the data blocks of the second group of pages to be reclaimed and the data blocks of the third group of pages to be reclaimed in parallel into the multiple second target reclaimed blocks included in the target reclaimed block group.
- the flash memory controller may also obtain hot data of at least one erase block in the first erase block set Ratio, when the ratio of the hot data is less than the preset ratio, it is determined that the erase block is the erase block to be recovered.
- the third aspect of the present application provides a device for writing data to a solid state disk, which is used to execute the method described in any implementation manner of the first aspect.
- a fourth aspect of the present application provides a device for garbage collection in a solid-state hard disk, which is used to execute the method described in any implementation manner of the second aspect.
- a fifth aspect of the present application provides a solid state drive, which includes a flash memory controller and a flash memory chip, and the flash memory controller invokes program instructions to execute the method described in any one of the implementation manners of the first aspect or the second aspect.
- a sixth aspect of the present application provides a computer-readable medium, the computer-readable medium stores instructions, which when run on a computer, causes the computer to execute the methods described in the foregoing aspects.
- the seventh aspect of the present application provides a computer program product, which when running on a computer, causes the computer to execute the methods described in the above aspects.
- FIG. 1 is a schematic structural diagram of a solid-state hard disk provided by an embodiment of the application
- FIG. 2 is a schematic flowchart of a method for writing data to a solid-state hard disk provided by an embodiment of the application;
- FIG. 3 is a schematic flowchart of a method for garbage collection in a solid-state hard disk provided by an embodiment of the application;
- FIG. 4 is a schematic structural diagram of a device for writing data to a solid-state hard disk provided by an embodiment of the application;
- FIG. 5 is a schematic structural diagram of a garbage collection device in a solid-state hard disk provided by an embodiment of the application.
- the embodiment of the present application proposes a method for writing data into a solid state drive, a method for garbage collection in a solid state drive, and a solid state drive, which can reduce the number of erasing blocks and increase the service life of the solid state drive.
- a solid-state drive is a memory with a flash memory chip as the medium, also known as a solid-state drive SSD.
- FIG. 1 depicts a composition diagram of a solid state drive provided by an embodiment of the present application.
- the solid state drive 10 includes a flash memory controller 102 and a plurality of flash memory chips 104.
- the flash memory controller 102 is implemented by a control chip, and the flash memory controller 102 is used to execute a data write request to write data into the flash memory chip 104, or execute a data read request to read data from the flash memory chip 104, and so on.
- the write data request and the read data request can be collectively referred to as an I/O request.
- the flash memory controller 102 includes a flash translation layer (FTL).
- the flash translation layer stores the correspondence between the logical address of the data and the actual address. Therefore, the flash translation layer is used to convert the logical address in the I/O request into the actual address of the data in the solid state disk 10.
- the logical address of the data is allocated by the device that initiates the I/O request, such as the host, and can include a subset of the logical address range of a segment.
- the logical address of the data includes a starting logical address and a length, the starting logical address indicates the position of the segment where the data is located, and the length represents the size of the data.
- the actual address of the data may be the physical address of the data in the solid state disk 10, or may be an address that is virtualized on the basis of the physical address and is only visible to the flash memory controller 102.
- the solid state drive 10 generally includes one or more flash memory chips 104. Each flash memory chip 104 includes a number of erase blocks.
- the solid-state drive 10 is based on a page when reading or writing, but the erasing operation can only be based on an erasing block.
- the erasing operation refers to setting all bits of this block to " 1".
- the flash memory controller 102 needs to copy the valid data in this erase block to a blank page in another block.
- the valid data in the erase block refers to the data stored in the block that has not been modified. This part of the data may be read.
- the invalid data in the erase block refers to the data saved in the block that has been modified, and this part of the data is generally not read.
- Each erase block contains multiple pages.
- data is written in units of pages.
- the flash memory controller 102 receives a data write request, and the data write request includes a logical address of the data.
- the flash memory controller 102 continuously writes the data into one or more erase blocks according to the received time sequence.
- Writing one or more erase blocks continuously means that the flash memory controller 102 searches for a blank erase block and writes data into the blank erase block until the blank erase block is filled. When the size of the data exceeds the capacity of the erase block, the flash memory controller 102 searches for the next blank erase block and continues writing.
- the flash translation layer establishes and saves the correspondence between the logical address and the actual address of the page where the data is written.
- the read data request includes the logical address.
- the flash memory controller 102 reads the data according to the logical address and the correspondence between the logical address and the actual address.
- a memory cell is the smallest operation unit of a page.
- a memory cell corresponds to a floating gate transistor. It can store 1-bit or multi-bit data, depending on the type of flash memory.
- the memory cells on one page share one character line.
- the storage unit includes a control gate and a floating gate.
- the floating gate is a unit that actually stores data. Data is stored in the form of electrical charge in the storage unit. The amount of stored charge depends on the voltage applied to the control gate, which controls whether charge is charged into the floating gate or discharged. The data is represented by whether the voltage of the stored charge exceeds a specific threshold. Writing data to the floating gate is to apply a voltage to the control gate so that there is enough charge stored in the floating gate. If it exceeds the threshold, it means zero. To erase the flash memory is to discharge the floating gate so that the charge stored in the floating gate is lower than the threshold, which means 1.
- a type of flash memory that stores one bit of data in a memory cell is called a single-level cell (SLC).
- the floating gate of a single-level cell has a voltage threshold, so it has two states of 0 and 1, which can store One bit of data.
- Single-layer cell flash memory has the advantages of high writing speed, low power consumption, and longer battery durability, so it has a faster transmission speed and a longer service life.
- a multi-level cell (MLC) is a memory cell that uses multiple voltage thresholds, allowing the same number of transistors to store more bits.
- each storage cell can only be in one of two states, while MLC stores four possible states in each storage cell (MLC has four states of 00, 01, 10, and 11) , So you can use each memory cell to store two bits.
- MLC has a higher bit error rate, shorter service life, but lower cost.
- Some solid-state hard drives 10 use part of the dies in the MLC flash memory to simulate a single-bit SLC flash memory, thereby providing a higher writing speed.
- a flash memory that stores three bits in a cell is called a triple-level cell (TLC), and TLC has 8 states.
- TLC triple-level cell
- the shortcomings of MLC also exist and are more prominent on TLC, but TLC also benefits from higher storage density and lower cost.
- the flash memory types also include quad-level cells (QLC) and other multi-level cells, and the embodiment of the present application does not limit the flash memory types.
- this embodiment adopts a storage architecture with mixed flash memories of different levels of cells.
- the hybrid storage architecture of different levels of unit flash memory can be implemented by software or hardware.
- the default storage mode of the flash memories of different levels of the unit at the factory can be set to other storage modes through the set feature command. Based on this, when the flash memory leaves the factory, a part of the erase block of the flash memory is set to a mode other than the default storage mode, and an SSD that mixes the flash memory of different levels of cells can be obtained.
- QLC flash memory Take QLC flash memory as an example.
- the default setting at the factory is QLC storage mode.
- Part of the erase block of QLC flash memory is set to SLC mode in advance, which is used to store hot data, that is, hot data, and then erase the remaining part. The block continues to store less hot data, such as cold data, in the default QLC mode.
- the remaining part of the above-mentioned erase block can also store data with general heat in the default QLC mode, that is, warm data.
- this embodiment When implemented by hardware, this embodiment also supports solid-state hard drives containing two or more flash memory types.
- the solid-state hard disk provided in this embodiment may include two types of storage units with default settings of SLC and QLC at the factory, and may also include two types of storage units with default settings of MLC and QLC at the factory. It can include two types of memory cells whose factory default settings are QLC and TLC, and can also contain three types of storage cells whose factory default settings are MLC, TLC, and QLC, or other combinations.
- the first erase block set may be a set of erase blocks formed by SLC type memory cells
- the second erase block set may be a set of erase blocks formed by QLC type memory cells.
- the first erase block set when the first erase block set is a set of erase blocks formed by SLC type memory cells, the second erase block set may also be a set of erase blocks formed by MLC type memory cells and/ Or a collection of erase blocks formed by TLC type memory cells.
- the first erase block set may also be a set of erase blocks formed by MLC type memory cells.
- the second erase block set may be a set of erase blocks formed by TLC type memory cells and/or A collection of erase blocks formed by QLC type memory cells.
- the first erase block set may also be a set of erase blocks formed by TLC type memory cells.
- the second erase block set may be a set of erase blocks formed by QLC type memory cells.
- the solid-state drive includes two types of storage units, SLC and QLC, as an example.
- the set of erase blocks formed by SLC type storage units is the first erase block set
- QLC type storage units is the second set of erase blocks.
- an embodiment of the present application provides a method for writing data to a solid state drive, which is applied to the solid state drive 10 shown in FIG. 1.
- the solid state drive 10 includes a flash memory controller 102 and a flash memory chip 104,
- the flash memory chip 104 includes multiple erase blocks, and the multiple erase blocks are at least divided into a first erase block set and a second erase block set, and the first erase block set and the second erase block set are different Hierarchical cell flash technology.
- the method may include the following steps:
- S202 The flash memory controller 102 receives the data to be written.
- the host may send at least one I/O request to the solid-state hard disk 10, and the I/O request may specifically be a data write request for writing data to the solid-state hard disk 10.
- the data carried in the write data request is the data to be written.
- the flash memory controller 102 in the solid-state hard disk 10 receives the data to be written, and then writes the data to be written into the flash memory chip 104.
- the data to be written specifically exists in the form of data chunks, and the data to be written includes at least two data chunks.
- the data chunk size is fixed, and it can be set according to actual needs.
- the data chunk size can be set to 64 kilobytes (KB).
- the size of the data carried in the I/O request is not fixed. Therefore, in some cases, the data carried in one I/O request can form a data chunk, or it can be carried in multiple I/O requests.
- the data forms a data chunk.
- the data carried in one I/O request can also form multiple data chunks.
- the flash memory controller 102 obtains the heat attributes of the at least two data chunks, and divides the at least two data chunks into at least a first group of data chunks and a second group of data chunks according to the heat attributes.
- the popularity attribute is specifically used to measure the popularity of the data chunk from at least one dimension.
- the popularity attribute may include one or more of the number of rewrites and the rewrite time interval.
- the number of rewrites is specifically the number of rewrites within a preset time period, and the preset time period can be set according to actual needs, for example, it can be set to one hour.
- the rewrite time interval is specifically the average rewrite time interval in the statistical period. Assuming that N rewrites for a data chunk occur in the statistical period, and N is greater than 2, then the average value of the time between adjacent rewrites in these N rewrites is the The rewriting interval of data chunk.
- the above statistical period can be set according to empirical values, for example, it can be set to one day.
- the flash memory controller 102 includes a write cache. When the flash memory controller 102 receives the data to be written, it first writes the data to be written into the write cache.
- the flash memory controller 102 collects the writing information of the data to be written, and the writing information specifically includes the volume identification (ID), the offset within the volume, that is, the logical block address (logical block address, LBA), the write size, Write a timestamp, etc. Based on the volume ID, LBA, and write size in the written information, the data chunk can be determined.
- the time when the data chunk is written to the write cache is close to the time when it is written to the flash memory chip 104. Therefore, the flash memory controller 102 can use the above write
- the timestamp determines the number of rewrites of the data chunk, the rewrite time interval, etc., so as to obtain the popularity attribute of the data chunk.
- the flash memory controller 102 may store the thermal attribute of the data chunk after determining the thermal attribute of the data chunk, so as to find the thermal attribute during subsequent disk flushing or garbage collection, and write the data to the solid state drive based on the thermal attribute 10 of the flash memory chip 104. It should be noted that the flash memory controller 102 can also update the thermal attribute of the data chunk in real time following the collection process of written information, so that the flash controller 102 writes data into the erase block of the flash memory chip 104 according to the real-time thermal attribute. Reduce data movement as much as possible, reduce write amplification of the solid state drive 10, and improve the performance and life of the solid state drive 10.
- the flash memory controller 102 may use a clustering algorithm to cluster at least two data chunks according to the heat attribute to obtain at least two types of data chunks.
- a type of data chunk can form a data chunk group, so that data chunk grouping can be realized.
- the clustering algorithm may be an online clustering algorithm or an offline clustering algorithm.
- Online clustering algorithms can include streaming k-means (k-means) clustering algorithms, hierarchical clustering algorithms, etc.
- offline clustering algorithms can include k-means clustering algorithms, k-nearest neighbor (KNN) clustering algorithms .
- the flash memory controller 102 may divide the multiple data chunks into at least a first group of data chunks and a second group of data chunks according to the heat attribute.
- the first group of data chunks includes at least one data chunk
- the second group of data chunks includes at least one data chunk.
- the heat attribute of the first group of data chunks is different from the heat attribute of the second group of data chunks.
- the popularity attribute is the number of rewrites
- the number of rewrites of the first set of data chunks may be more than the number of rewrites of the second set of data chunks.
- the rewriting time interval of the first group of data chunks may be less than the rewriting time interval of the second group of data chunks.
- the popularity attribute is the popularity value determined according to the number of rewrites and the rewrite interval
- the popularity value of the first group of data chunks may be greater than the popularity value of the second group of data chunks.
- the flash memory controller 102 selects a first target erase block from the first erase block set, writes the first group of data chunks into the first target erase block, and selects from the second erase block set
- the second target erasure block is to write the second group of data chunks into the second target erasure block.
- the flash memory controller 102 divides multiple groups of data chunks according to the heat attributes, for example, the first group of data chunks and the second group of data chunks have different heat attributes. Different heat attributes generally correspond to different life cycles. That is, the first group of data chunks and the second group of data chunks have different life cycles. Therefore, the flash memory controller 102 can select the first target erase block from the first erase block set, write the first set of data chunks into the first target erase block, and select the second target erase block from the second erase block set. Remove the block and write the second set of data chunks into the second target erase block, so that when garbage collection is performed, a set of data chunks can be recycled at the same time to avoid data trunks with large life cycles from being written into the same erase block. Write zoom. In addition, the first group of data chunks with higher heat are written into the first erase block set, and the second group of data chunks with lower heat are written into the second erase block set, which can improve the overall writing rate and lifespan of the solid state drive 10 .
- the target erase block corresponding to a group of data chunks may be one or multiple.
- the flash memory controller 102 determines a plurality of target erasure blocks, and writes the group of data trunks into the plurality of target erasure blocks.
- the multiple target erase blocks may be consecutive multiple target erase blocks.
- the preset number can be determined according to the size of the erase block and the size of the data trunk.
- the preset number may be the ratio of the size of the erase block to the size of the data trunk. Further, when the ratio is not an integer, the preset number may also be the result of rounding up the ratio.
- the flash memory controller 102 in the solid state drive 10 divides the at least two data trunks into at least two data trunks based on the thermal attributes of the at least two data trunks in the data to be written For the first group of data chunks and the second group of data chunks, select the first target erase block from the set of first erased blocks, write the first group of data chunks into the first target erase block, and start from the second erase block. The second target erase block is selected from the block set, and the second group of data trunk is written into the second target erase block. Because the data trunks of the same group have similar life cycles.
- the life cycle is similar means that the write time difference is less than or equal to the preset time threshold, and the recovery time difference is less than or equal to the preset time threshold. Based on this, a group of data trunks has a greater chance of being recycled within a period of time. Therefore, by writing the same group of data trunks to the corresponding target erase block, the target erase block can be directly erased without repeated writing. The write amplification is effectively reduced, and the performance and lifespan of the solid state hard disk 10 are improved.
- the solid-state hard disk 10 may include multiple flash memory chips 104, a channel is established between the flash memory controller 102 and each flash memory chip 104, and the flash memory controller 102 can operate multiple flash memory chips 104 in parallel through multiple channels. To this end, the flash memory controller 102 may write multiple sets of data trunks in a parallel manner, thereby increasing the data writing rate.
- the divided data chunk may also include a third group of data chunks.
- the third group of data chunks includes at least one data chunk. That is, the data chunk to be written is at least divided into the first group of data chunks, the second group of data chunks, and the third group of data chunks.
- the flash memory controller 102 may select the target erase block group from the first erase block set, and combine the first group of data chunks with the third group of data chunks.
- the group data chunk is written in a parallel manner into the multiple first target erase blocks included in the target erase block group.
- the flash controller 102 can select the target erase block group from the second erase block set, and combine the second group of data chunks with the third group of data chunks.
- the group data chunk writes multiple second target erase blocks included in the target erase block group in a parallel manner.
- the similarity of the heat attributes means that the attribute values of the heat attributes are the same or the difference of the attribute values is within a preset range.
- the above is an example of writing two sets of data chunks in parallel.
- the flash memory controller 104 also supports writing more data chunks in parallel.
- a set of data chunks can correspond to one physical stream, and writing multiple sets of data chunks in parallel is specifically achieved through multiple parallel physical streams. It should be noted that the number of streams written in parallel in a write process does not exceed the number of multiple streams supported by the solid state disk 10.
- Each set of data trunks in at least two sets of data trunks written in parallel to the solid state hard disk 10 also has a similar life cycle. By writing multiple sets of data trunks with similar life cycles into the target erase block group in parallel, not only the write rate can be increased, but also the write amplification of the solid state drive 10 can be further reduced.
- the data written into the solid-state hard disk 10 can also be rewritten. Since the solid state drive 10 generally rewrites data through a remote rewrite mechanism, that is, the modified data is written into the solid state drive 10 except for the erase block where the rewritten data is located, and the rewritten data is located The page is marked as a page that includes invalid data. Therefore, for the specific implementation of the data rewriting process, refer to the description of the related content of writing data to the solid-state hard disk 10.
- FIG. 2 describes the process of writing data into the solid state drive 10, and the process of reading data from the solid state drive 10 can be consistent with the process of writing data. Specifically, if the data is written in a single-layer unit technology, then when reading the data, it is also read out with a single-layer unit technology. If the data is written in a multi-layer unit technology, then the data is also read in multiple layers. Read out the layer unit technology.
- the garbage collection in the solid state hard disk 10 specifically refers to that the flash memory controller 102 first copies the valid data in the erase block to be recycled to a blank erase block, and then erases the erase block to be recycled to obtain a blank erase block.
- the trigger condition of garbage collection in the solid state hard disk 10 includes that the number of blank erase blocks in the solid state hard disk 10 is insufficient.
- the flash memory controller 102 of the solid state drive 10 determines that the number of blank erase blocks in the solid state drive 10 is less than the reclaimed quantity threshold, or the number of blank erase blocks in the solid state drive 10 is relative to the number of erase blocks in the solid state drive 10. When the proportion of the total quantity is less than the recycling ratio threshold, the garbage collection in the solid state hard disk 10 is triggered.
- the flash memory controller of the solid state drive 10 may also periodically trigger the garbage collection mechanism to obtain more blank erased blocks, thereby improving the reading of the solid state drive 10 Write performance.
- an embodiment of the present application provides a method for garbage collection in a solid state drive 10, which is applied to the solid state drive 10 shown in FIG. 1.
- the solid state drive 10 includes a flash memory controller 102 and a flash memory chip 104,
- the flash memory chip 104 includes multiple erase blocks, and the multiple erase blocks are at least divided into a first erase block set and a second erase block set, and the first erase block set and the second erase block set are different Hierarchical cell flash technology.
- the method may include the following steps:
- the flash memory controller 102 obtains the shunt information corresponding to the page to be reclaimed of at least one of the erase blocks to be reclaimed in the first erase block set.
- the erase block to be recycled refers to the erase block that needs to be garbage collected.
- An erase block includes at least two pages, and the page may be a page including valid data or a page including invalid data (also referred to as garbage data).
- data popularity can be divided into high or low, and pages including valid data can be divided into pages including hot data and pages including cold data based on the hot attributes of the valid data.
- the hot data is specifically data with a heating value higher than a preset heating threshold
- the cold data is specifically data with a heating value lower than or equal to the foregoing preset heating threshold.
- the heat value may be determined according to at least one of the number of rewrites and the rewrite time interval.
- pages including valid data can also be divided into pages including hot data, pages including warm data, and pages including cold data based on the hotness attribute of the valid data.
- thermal data specifically refers to data with a heating value higher than the first preset threshold
- cold data refers to data with a heating value lower than or equal to the second preset threshold
- temperature data refers to data with a heating value higher than the second preset threshold.
- Threshold and data lower than the first preset threshold.
- the first preset threshold is greater than the second preset threshold.
- the flash memory controller 102 obtains the hot data ratio of at least one erase block in the first erase block set.
- the flash memory controller 102 may obtain the hot data ratio of each erase block in the first erase block set.
- the ratio of hot data in the erase block specifically refers to the ratio of pages containing hot data in the erase block to the total pages of the erase block. When the hot data ratio is less than the preset ratio, it is determined that the erase block is the erase block to be recovered.
- the page to be reclaimed refers to the page that needs to be reclaimed in the erase block to be reclaimed. Specifically, the page to be reclaimed refers to a page that includes valid data in the erase block to be reclaimed. It should be noted that when the data chunk of the page to be reclaimed is written to the flash memory chip 104, its shunt information is also written to the flash memory chip 104. Wherein, the offloading information includes at least the group identifier of the data chunk group to which the data chunk of the page to be recycled belongs.
- the chip controller 102 when the first group of data chunks are written into the first target erase block, and the second group of data chunks are written into the second target erase block, the chip controller 102 also stores the aforementioned data in the flash memory chip 104.
- the group identifier of the data chunk group to which the chunk belongs Based on this, in the embodiment shown in FIG. 3, when the flash memory controller 102 reclaims the page to be reclaimed of the erase block to be reclaimed, it can obtain the group identifier of the data chunk group to which the data chunk of the page to be reclaimed belongs from the flash memory chip 104.
- the flash memory controller 102 divides the pages to be reclaimed into at least a first group of pages to be reclaimed and a second group of pages to be reclaimed according to the group identifier.
- the first group of pages to be recycled includes at least one page to be recycled
- the second group of pages to be recycled includes at least one page to be recycled.
- the group identifier of the data chunk group to which the data chunk of the first group of pages to be reclaimed belongs is different from the group identifier of the data chunk group to which the data chunk of the second group of pages to be reclaimed belongs.
- the flash memory controller 102 may divide the pages to be reclaimed with the same group ID of the data chunk group to which the data chunk belongs into a group of pages to be reclaimed. In this way, the pages to be reclaimed with different group IDs of the data chunk group to which the data chunk belongs are those pages to be reclaimed. Divide into different groups.
- the flash controller 102 may sort the pages to be reclaimed according to the group identifier, and divide the pages to be reclaimed into at least the first based on the sorting result.
- the data chunks of a group of pages to be recycled may have the same group identifier.
- the data chunks of a group of pages to be recycled may have the same or similar group identifiers.
- the similarity of group identities specifically means that the difference between group identities is less than the preset identification threshold.
- the group identifiers of the data chunk groups to which the data chunks of the multiple pages to be recycled belong are 1, 1, 1, 6, 6, and 7, respectively, and the multiple pages to be recycled are divided into at least two groups. Among them, the group identifier of the data chunk group to which the data chunk of the first group of pages to be reclaimed belongs to 1, and the group identifier of the data chunk group to which the data chunks of the second group of pages to be reclaimed belong to 6 and 7.
- S306 Select a first target reclaim block from the first erase block set, write data chunks of the first group of pages to be reclaimed into the first target reclaim block, and select a second target from the second erase block set Reclaiming the block, writing the data chunk of the second group of pages to be reclaimed into the second target reclaiming block, and releasing the erased block to be reclaimed.
- the flash memory controller 102 Since the data chunks of the pages to be reclaimed are grouped according to their heat attributes and then written to the pages to be reclaimed, a group of data chunks with the same group identifier or a group of pages to be reclaimed with similar group identifiers have similar life cycles, and the flash memory controller 102 will The data chunks of the above group of pages to be recycled are written into the same recycled block for recycling, which can effectively reduce write amplification. When the data chunks of the page to be recycled in an erase block to be recycled are all written into the recycled block, the flash memory controller 102 can erase the erase block to be recycled, thereby releasing the erase block to be recycled and providing more storage space. .
- the target reclaimed block corresponding to the data chunk of a group of pages to be reclaimed may be one or multiple.
- the flash memory controller 102 determines multiple target reclaim blocks, and writes the data trunks of the group of pages to be reclaimed into the multiple target reclaim blocks.
- the aforementioned multiple target recovery blocks may be consecutive multiple recovery blocks.
- the divided pages to be recycled further include a third group of pages to be recycled, and the third group of pages to be recycled includes at least one page to be recycled. That is, the flash memory controller 102 divides the pages to be reclaimed into at least the first group of pages to be reclaimed, the second group of pages to be reclaimed, and the third group of pages to be reclaimed according to the group identifier.
- the shunt information of the page to be reclaimed acquired by the flash memory controller 102 also includes the write identifier of the data chunk of the page to be reclaimed when it is written.
- the write identifiers of multiple data chunks written in parallel are the same.
- the flash memory controller 102 may write data chunks of multiple groups of pages to be reclaimed with the same write identifier into a set of target reclaimed blocks for reclaiming.
- the flash memory controller 102 selects the target reclaimed block group from the first erase block set.
- the data chunk of the first group of pages to be reclaimed and the data chunk of the third group of pages to be reclaimed are written in parallel to the multiple first target reclaimed blocks included in the target reclaimed block group.
- the flash controller 102 selects the target reclaimed block group from the second erase block set, and sets the second The data chunk of the group of pages to be reclaimed and the data chunk of the third group of pages to be reclaimed are written in parallel to the multiple second target reclaimed blocks included in the target reclaimed block group.
- the page to be reclaimed is divided into two or three groups for illustration.
- the pages to be recycled may also be divided into more than three groups.
- the flash controller 102 writes data chunks of multiple groups of pages to be recycled into the target recycling block group in parallel, the number of parallel physical streams does not exceed the number of multiple streams supported by the solid state disk 10.
- the flash memory controller 102 in the solid state drive 10 obtains the shunt information corresponding to the page to be recycled of the erase block to be recycled.
- the page to be reclaimed is at least divided into a first group of pages to be reclaimed and a second group of pages to be reclaimed. Then select the first target reclaim block from the first erase block set, write the data chunk of the first set of pages to be reclaimed into the first target reclaim block, select the second target reclaim block from the second erase block set, and set the second target reclaim block.
- the second target recycling block in the second erasing block set can improve the performance and life of the solid state hard disk 10.
- the flash memory controller 102 may directly obtain the heat attribute of the data trunk of the page to be reclaimed of at least one erase block to be reclaimed in the first erase block set, and divide the page to be reclaimed into at least the first based on the heat attribute. Group the pages to be recycled and the second group of pages to be recycled. In this case, the heat attribute of the data trunk of the first group of pages to be reclaimed is different from the heat attribute of the data trunk of the second group of pages to be reclaimed.
- the flash memory controller 102 selects the first target reclaim block from the first erase block set, writes the data trunk of the first set of pages to be reclaimed into the first target reclaim block, and selects the second target from the second erase block set.
- Reclaim block write the data trunk of the second group of pages to be reclaimed into the second target reclaim block.
- the flash memory controller 102 may release the erase block to be recovered.
- the divided pages to be reclaimed also include the third group of pages to be reclaimed
- the heat attribute of the data trunk of the third group of pages to be reclaimed is similar to the heat attribute of the data trunk of the first group of pages to be reclaimed
- Select a target reclaimed block group from a set of erased blocks, and write the data trunk of the first group of pages to be reclaimed and the data trunk of the third group of pages to be reclaimed into multiple first targets included in the target reclaimed block group in parallel Recycle the block.
- the heat attribute of the data trunk of the third group of pages to be reclaimed is similar to the heat attribute of the data trunk of the second group of pages to be reclaimed, select the target reclaimed block group from the second erase block set, and set the second group of reclaimed pages
- the data trunk of the data trunk and the data trunk of the third group of pages to be recycled are written in parallel to the multiple second target recycling blocks included in the target recycling block group.
- FIGS. 1 to 3 introduce the method of writing data into the solid state hard disk 10 and the garbage collection in the solid state hard disk 10 from the perspective of a single solid state disk 10, and the method of writing data into the solid state disk 10 and the solid state disk 10 provided by this application
- the method of garbage collection in the hard disk 10 can also be applied to a solid-state hard disk array composed of multiple solid-state hard disks 10.
- the solid state drive includes a flash memory controller and a flash memory chip
- the flash memory chip includes a plurality of erasing blocks
- the plurality of erasing blocks are at least divided
- the first erase block set and the second erase block set adopt different hierarchical cell flash memory technologies.
- the device 400 for writing data to the solid state hard disk is located in the flash memory controller, and the device 400 includes:
- the communication module 402 is configured to receive data to be written, and the data to be written includes at least two data blocks;
- the grouping module 404 is configured to obtain the heat attributes of the at least two data blocks, and divide the at least one data block into at least a first group of data blocks and a second group of data according to the heat attributes, and the first group of data
- the heat attribute of the block is different from the heat attribute of the second group of data blocks, the first group of data blocks includes at least one data block, and the second group of data blocks includes at least one data block;
- the input and output module 406 is configured to select a first target erase block from the first erase block set, write the first group of data blocks into the first target erase block, and read from the second erase block A second target erase block is selected from the block set, and the second group of data blocks are written into the second target erase block.
- the specific implementation of the communication module 402 can refer to the description of S202 in the embodiment shown in FIG. 2
- the specific implementation of the grouping module 404 can refer to the description of S204 in the embodiment shown in Figure 2
- the specific implementation of the input and output module 406 can be Refer to the description of S206 in the embodiment shown in FIG. 2.
- the divided data blocks further include a third group of data blocks, and the third group of data blocks includes at least one data block;
- the input and output module 406 is specifically configured to:
- the heat attribute of the third group of data blocks is similar to the heat attribute of the first group of data blocks, select a target erase block group from the first erase block set, and combine the first group of data blocks with The third group of data blocks are written in parallel to a plurality of first target erase blocks included in the target erase block group;
- the heat attribute of the third group of data blocks is similar to the heat attribute of the first group of data blocks, select a target erase block group from the second erase block set, and combine the second group of data blocks with The third group of data blocks are written in parallel to a plurality of second target erase blocks included in the target erase block group.
- the popularity attribute includes one or more of the number of rewrites and the rewrite time interval.
- each erase block of the plurality of erase blocks includes at least one storage unit, and the storage unit in the first erase block set is used to use a single-layer cell technology, the The memory cells in the second erase block set are used to use at least one of multi-layer cell technology, three-layer cell technology, and four-layer cell technology.
- the solid-state hard disk includes a flash memory controller and a flash memory chip
- the flash memory chip includes a plurality of erase blocks
- the plurality of erase blocks are at least divided
- the first erase block set and the second erase block set adopt different hierarchical cell flash memory technologies.
- the device 500 for garbage collection in the solid state hard disk is located in the flash memory controller, and the device 500 includes:
- the communication module 502 is configured to obtain the heat attribute of the data block corresponding to the page to be reclaimed of at least one of the erase block to be reclaimed in the first erase block set;
- the grouping module 504 is configured to divide the pages to be reclaimed into at least a first group of pages to be reclaimed and a second group of pages to be reclaimed according to the heat attributes, and the heat attributes of the data blocks of the first group of pages to be reclaimed are different from The heat attributes of the data blocks of the second group of pages to be reclaimed, the first group of pages to be reclaimed include at least one page to be reclaimed, and the second group of pages to be reclaimed include at least one page to be reclaimed;
- the input and output module 506 is configured to select a first target reclaim block from the first erase block set, write the data blocks of the first group of pages to be reclaimed into the first target reclaim block, and read from the A second target reclaimed block is selected from the second set of erased blocks, the data blocks of the second group of pages to be reclaimed are written into the second target reclaimed block, and the erased blocks to be reclaimed are released.
- the specific implementation of the communication module 502 can refer to the description of the related content of S302 in the embodiment shown in FIG. 3
- the specific implementation of the grouping module 504 can refer to the description of the related content of S304 in the embodiment shown in Figure 3
- the specific implementation of the input and output module 506 can be See the description of S306 in the embodiment shown in FIG. 3.
- the divided pages to be recycled further include a third group of pages to be recycled, and the third group of pages to be recycled includes at least one page to be recycled;
- the input and output module 506 is specifically configured to:
- the heat attributes of the data blocks of the third group of pages to be reclaimed are similar to the heat attributes of the data blocks of the second group of pages to be reclaimed, select a target reclaimed block group from the second erase block set, and then The data blocks of the second group of pages to be reclaimed and the data blocks of the third group of pages to be reclaimed are written in parallel to a plurality of second target reclaimed blocks included in the target reclaimed block group.
- the apparatus 500 further includes:
- a determining module configured to obtain the hot data ratio of at least one erase block in the first erase block set, and when the hot data ratio is less than a preset ratio, determine that the erase block is an erase block to be recovered .
- the device according to the embodiment of the present application may correspond to executing the method described in the embodiment of the present application.
- the above and other operations and/or functions of the modules in the device 400 for writing data to the solid state disk are to implement the corresponding procedures of the methods in FIG.
- the above and other operations and/or functions are used to implement the corresponding procedures of each method in FIG. 3.
- the function of each module can be executed by the control chip in the flash memory controller calling the program in the memory.
- the embodiments of the present application also provide a computer-readable medium having instructions stored in the computer-readable medium, which when run on a computer, cause the computer to execute the methods described in the foregoing aspects.
- the embodiments of the present application also provide a computer program product, which when running on a computer, enables the computer to execute the methods described in the foregoing aspects.
- modules described as separate components may or may not be physically separated, and the components displayed as modules may or may not be physically separate. Modules can be located in one place or distributed to multiple network modules. Some or all of the modules can be selected according to actual needs to achieve the objectives of the solutions of the embodiments.
- connection relationship between the modules indicates that they have a communication connection between them, which may be specifically implemented as one or more communication buses or signal lines.
- Non-transitory (non-transitory) machine-readable media that can store program codes, such as non-volatile memory.
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)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请提供了一种将数据写入固态硬盘的方法,固态硬盘包括闪存控制器和闪存芯片,闪存芯片包括多个擦除块,多个擦除块至少划分为第一擦除块集合和第二擦除块集合,第一擦除块集合和第二擦除块集合采用不同的层级单元闪存技术。该方法包括:闪存控制器接收待写入数据,获取待写入数据中至少两个数据块的热度属性,根据热度属性将至少两个数据块至少划分为第一组数据块和第二组数据块,从第一擦除块集合中选择第一目标擦除块,将第一组数据块写入第一目标擦除块,以及从第二擦除块集合中选择第二目标擦除块,将第二组数据块写入第二目标擦除块。如此可以减少固态硬盘写放大,提高其性能和寿命。
Description
本申请要求于2019年12月20日提交中国国家知识产权局、申请号为201911329490.9、发明名称为“数据写入固态硬盘的方法、垃圾回收的方法、装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请涉及存储技术领域,尤其涉及一种数据写入固态硬盘的方法、固态硬盘中垃圾回收的方法及装置。
随着用户对存储设备读写(input/output,I/O)性能的要求越来越高,一种新型存储设备即固态硬盘(solid state drive,SSD)应运而生。相较于传统磁盘,SSD在读写数据时无需在磁头和磁道之间寻道,因而具有较大的性能优势。然而,写入SSD的数据不能够直接更新的,仅能通过扇区覆盖重写。
在覆盖重写之前先进行擦除,然而擦除操作不能在扇区上完成,仅能在SSD的块上完成,基于此,擦除块之前需要将原有的有效数据读出,然后再与待写入数据一起写入,这个过程被称为垃圾回收(garbage collection,GC)。这些额外的写入现象被称为写放大,写放大直接决定了SSD的性能和寿命。
基于此,如何减少SSD的写放大成为亟待解决的问题。
发明内容
本申请第一方面提供了一种数据写入固态硬盘的方法。所述固态硬盘包括闪存控制器和闪存芯片,所述闪存芯片包括多个擦除块,所述多个擦除块至少划分为第一擦除块集合和第二擦除块集合,所述第一擦除块集合和所述第二擦除块集合采用不同的层级单元闪存技术。
所述闪存控制器接收待写入数据,所述待写入数据包括至少两个数据块。然后获取所述至少两个数据块的热度属性,根据所述热度属性将所述至少两个数据块至少划分为第一组数据块和第二组数据块。所述第一组数据块的热度属性与所述第二组数据块的热度属性不同。所述第一组数据块包括至少一个数据块,所述第二组数据块包括至少一个数据块。接着从所述第一擦除块集合中选择第一目标擦除块,将所述第一组数据块写入所述第一目标擦除块,以及从所述第二擦除块集合中选择第二目标擦除块,将所述第二组数据块写入所述第二目标擦除块。
按照第一方面,固态硬盘中的擦除块被划分为至少两个擦除块集合,不同的擦除块集合在存储数据使用不同层级的闪存技术,从而使得不同热度属性的数据可以利用不同层级的闪存技术保存,从而减少擦除块的擦写次数,可以提高固态硬盘使用寿命。并且,根据热度属性将数据块进行分组,具有相似热度属性的一组数据块写入同一目标擦除块,可以减少数据搬移,从而减少写放大。
在第一方面的第一种实现方式中,划分后的数据块还包括第三组数据块,所述第三组数据块包括至少一个数据块。所述第三组数据块的热度属性与所述第一组数据块的热度属性相似时,闪存控制器可以从所述第一擦除块集合中选择目标擦除块组,将所述第一组数据块和所述第三组数据块并行写入所述目标擦除块组包括的多个第一目标擦除块。所述第三组数据块的热度属性与所述第一组数据块的热度属性相似时,闪存控制器可以从所述第二擦除块集合中选择目标擦除块组,将所述第二组数据块和所述第三组数据块并行写入所述目标擦除块组包括的多个第二目标擦除块。
通过将具有相似生命周期的多组data trunk并行写入目标擦除块组中,不仅可以提高写入速率,而且可以进一步减少固态硬盘10的写放大。
结合第一方面,在第一方面的第二种实现方式中,所述热度属性包括改写次数和改写时间间隔中的一种或多种。
结合第一方面、第一方面的第一种实现方式或第二种实现方式,在第一方面的第三种实现方式中,所述多个擦除块中的每个擦除块包括至少一个存储单元,所述第一擦除块集合中的存储单元用于使用单层单元技术,所述第二擦除块集合中存储单元用于使用多层单元技术、三层单元技术、四层单元技术中的至少一种。
在具体实现时,第一擦除块集合可以是单层单元(single-level cell,SLC)形成的擦除块的集合,第二擦除块集合可以是四层单元(quad-level cell,QLC)形成的擦除块的集合。在其他可能的实现方式中,第一擦除块集合为SLC形成的擦除块的集合时,第二擦除块集合也可以是多层单元(multi-level cell,MLC)形成的擦除块的集合和/或三层单元(triple-level cell,TLC)形成的擦除块的集合。当然,第一擦除块集合也可以是MLC形成的擦除块的集合,此种情形下,第二擦除块集合可以是TLC形成的擦除块的集合和/或QLC形成的擦除块的集合。第一擦除块集合还可以是TLC形成的擦除块的集合,此种情形下,第二擦除块集合可以是QLC形成的擦除块的集合。
本申请第二方面提供了一种固态硬盘中垃圾回收的方法。所述固态硬盘包括闪存控制器和闪存芯片,所述闪存芯片包括多个擦除块,所述多个擦除块至少划分为第一擦除块集合和第二擦除块集合,所述第一擦除块集合和所述第二擦除块集合采用不同的层级单元闪存技术。
所述闪存控制器获取所述第一擦除块集合中至少一个待回收擦除块的待回收页面的数据块的热度属性。然后闪存控制器根据所述热度属性将所述待回收页面至少划分为第一组待回收页面和第二组待回收页面。所述第一组待回收页面的数据块的热度属性不同于所述第二组待回收页面的数据块的热度属性。所述第一组待回收页面包括至少一个待回收页面,所述第二组待回收页面包括至少一个待回收页面。接着从所述第一擦除块集合中选择第一目标回收块,将所述第一组待回收页面的数据块写入所述第一目标回收块,以及从所述第二擦除块集合中选择第二目标回收块,将所述第二组待回收页面的数据块写入所述第二目标回收块,释放所述待回收擦除块。
按照第二方面,闪存控制器基于热度属性将待回收页面划分为第一组待回收页面和第二组待回收页面,将第一组待回收页面的数据块写入第一擦除块集合中的第一目标回收块,将第二组待回收页面的数据块写入第二擦除块集合中的第二目标回收块。由于同一组待回 收页面的数据块具有相似的生命周期,这一组待回收页面的数据块有较大几率在一个时间段内回收,因此,将同一组待回收页面的数据块写入对应的目标回收块进行回收,可以避免反复写入,有效减少了写放大。
结合第二方面,在第二方面的第一种实现方式中,划分后的待回收页面还包括第三组待回收页面。所述第三组待回收页面包括至少一个待回收页面。
所述第三组待回收页面的数据块的热度属性与所述第一组待回收页面的数据块的热度属性相似时,闪存控制器从所述第一擦除块集合中选择目标回收块组,将所述第一组待回收页面的数据块和所述第三组待回收页面的数据块并行写入所述目标回收块组包括的多个第一目标回收块。
所述第三组待回收页面的数据块的热度属性与所述第二组待回收页面的数据块的热度属性相似时,闪存控制器从所述第二擦除块集合中选择目标回收块组,将所述第二组待回收页面的数据块和所述第三组待回收页面的数据块并行写入所述目标回收块组包括的多个第二目标回收块。
如此,一方面可以提高回收效率,另一方面通过将具有相似热度属性的数据块组并行回收至一组独立的目标回收块,可以进一步减少写放大。
结合第二方面或第二方面的第一种实现方式,在第二方面的第二种实现方式中,闪存控制器还可以获取所述第一擦除块集合中至少一个擦除块的热数据比例,当所述热数据的比例小于预设比例时,确定所述擦除块为待回收擦除块。
本申请第三方面提供了一种将数据写入固态硬盘的装置,用于执行第一方面任意一种实现方式所描述的方法。
本申请第四方面提供了一种固态硬盘中垃圾回收的装置,用于执行第二方面任意一种实现方式所描述的方法。
本申请第五方面提供了一种固态硬盘,该固态硬盘包括闪存控制器和闪存芯片,所述闪存控制器调用程序指令以执行第一方面或第二方面任意一种实现方式所描述的方法。
本申请第六方面提供一种计算机可读介质,所述计算机可读介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
本申请第七方面提供一种计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
图1为本申请实施例提供的固态硬盘的结构示意图;
图2为本申请实施例提供的将数据写入固态硬盘的方法的流程示意图;
图3为本申请实施例提供的固态硬盘中垃圾回收的方法的流程示意图;
图4为本申请实施例提供的将数据写入固态硬盘的装置的结构示意图;
图5为本申请实施例提供的固态硬盘中垃圾回收的装置的结构示意图。
本申请实施例提出了一种将数据写入固态硬盘的方法、固态硬盘中垃圾回收的方法以及固态硬盘,可以减少擦除块的擦写次数,从而提升固态硬盘的使用寿命。
固态硬盘是以闪存(flash memory)芯片为介质的存储器,又名固态驱动器SSD。图1描绘了本申请实施例提供的固态硬盘的组成图,如图1所示,固态硬盘10包括闪存控制器102和多个闪存芯片104。其中,闪存控制器102通过控制芯片实现,闪存控制器102用于执行写数据请求向闪存芯片104中写入数据,或者执行读数据请求从闪存芯片104中读取数据等。其中,写数据请求和读数据请求可以统称为I/O请求。
闪存控制器102中包含闪存翻译层(flash translation layer,FTL)。闪存翻译层保存有数据的逻辑地址与实际地址之间的对应关系。因此,闪存翻译层用于将I/O请求中的逻辑地址转化为固态硬盘10中数据的实际地址。数据的逻辑地址是由发起I/O请求的设备如主机分配的,可以包括一个段的逻辑地址区间的子集。数据的逻辑地址包括起始逻辑地址和长度,起始逻辑地址指示所述数据位于的所述段的位置,长度代表所述数据的大小。数据的实际地址可以是固态硬盘10中该数据的物理地址,也可以是在所述物理地址的基础上经过虚拟化,只对闪存控制器102可见的地址。
固态硬盘10通常包括一个或多个闪存芯片104。每个闪存芯片104包括若干个擦除块。固态硬盘10在读取或写入时是以一个页(page)为基础的,但擦除操作只能以一个擦除块为基础,擦除操作是指将这个块的所有位都设置为“1”。在擦除之前,闪存控制器102需要先将这个擦除块中的有效数据复制到另一个块的空白页中去。擦除块中的有效数据是指该块中保存的没有被修改过的数据,这部分数据可能会被读取。擦除块中的无效数据是指该块中保存的已经被修改过的数据,这部分数据一般不会被读取。
每个擦除块包含多个页。固态硬盘10在执行写数据请求时,是以页为单位来写数据的。举例来说,闪存控制器102接收一个写数据请求,所述写数据请求包括数据的逻辑地址。闪存控制器102按照接收的时间顺序将所述数据连续写入一个或多个擦除块中。
连续写入一个或多个擦除块是指,闪存控制器102查找一个空白的擦除块,将数据写入所述空白的擦除块,直至将所述空白的擦除块填满,当所述数据的大小超过擦除块的容量时,闪存控制器102再查找下一个空白的擦除块,继续写入。闪存翻译层建立并保存所述逻辑地址与写入所述数据的页的实际地址之间的对应关系。
当闪存控制器102接收读数据请求,要求读取所述数据时,所述读数据请求中包括所述逻辑地址。闪存控制器102根据所述逻辑地址、以及所述逻辑地址与实际地址之间的对应关系读取所述数据。
存储单元(cell)是页的最小操作单元,一个存储单元对应一个浮栅晶体管,它可以存储1比特(bit)或多比特的数据,这取决于闪存的类型。一个页上的存储单元共享一根字符线。存储单元包括控制栅极和浮置栅极,浮置栅极是真正存储数据的单元。数据在存储单元中是以电荷(electrical charge)形式存储的。存储电荷的多少取决于控制栅极所被施加的电压,其控制了向浮置栅极中冲入电荷还是使其释放电荷。而数据的表示,以所存储的电荷的电压是否超过一个特定的阈值来表示。往浮置栅极 中写入数据就是对控制栅极施加电压,使得浮置栅极中存储的电荷够多,超过阈值,就表示0。对闪存进行擦除操作就是对浮置栅极放电,使得浮置栅极中存储的电荷低于阈值,就表示1。
一个存储单元中存储一个比特数据的闪存类型称之为单层单元(single-level cell,SLC),单层单元的浮置栅极有一个电压阈值,因此具有0和1两种状态,可以存储一个比特的数据。单层单元闪存具有高写入速度、低功耗、更长电池耐久的优点,因此具有更快的传输速度和更长使用寿命。多层单元(multi-level cell,MLC)是使用多个电压阈值的存储单元,从而允许相同数量的晶体管存储更多比特。在单层单元技术中,每个存储单元只能处于两种状态中的一种,而MLC在每个存储单元中存储四个可能的状态(MLC具有00、01、10、11四种状态),因此可以用每个存储单元存储两个比特。相对于SLC来说,MLC的误码率更高,使用寿命更短,但成本更低。一些固态硬盘10使用MLC闪存中的部分晶粒模拟为单比特的SLC闪存,从而提供更高的写入速度。另外,一个单元存储三比特的闪存被称为三层单元(triple-level cell,TLC),TLC具有8种状态。MLC的缺点在TLC上同样存在并更为突出,但TLC也受益于更高的存储密度和更低的成本。另外,闪存类型还有四层单元(quad-level cell,QLC)以及其他多层单元,本申请实施例并不对闪存类型进行限定。
为了弥补传统SSD在写性能和使用寿命上面的缺陷,本实施例采用不同层级单元闪存混合的存储架构。不同层级单元闪存混合的存储架构可以通过软件或硬件实现。
具体地,在通过软件实现时,不同层级单元闪存在出厂时的默认存储方式可以通过设置特征(set feature)命令将存储单元设置成其他的存储方式。基于此,闪存出厂时预先将闪存的一部分擦除块设置为默认存储模式以外的其他模式,可以得到混合不同层级单元闪存的SSD。以QLC闪存为例,其出厂时的默认设置是QLC存储方式,预先将QLC闪存的一部分擦除块设置为SLC模式,用于存储热度较高的数据即热数据,然后剩下的一部分擦除块继续以默认的QLC模式存储热度较低的数据,例如冷数据等。在一些情况下,上述剩下的一部分擦除块还可以以默认的QLC模式存储热度一般的数据,也即温数据。
在通过硬件实现时,本实施例还支持包含两种或两种以上闪存类型的固态硬盘。例如,在本实施例所提供的固态硬盘中可以包含出厂时的默认设置为SLC以及QLC两种类型的存储单元,也可以包含出厂时的默认设置为MLC以及QLC两种类型的存储单元,也可以包含出厂时的默认设置为QLC以及TLC两种类型的存储单元,还可以包含出厂时的默认设置为MLC、TLC以及QLC三种类型的存储单元,或者其他组合。
具体地,第一擦除块集合可以是SLC类型存储单元形成的擦除块的集合,第二擦除块集合可以是QLC类型存储单元形成的擦除块的集合。在其他可能的实现方式中,第一擦除块集合为SLC类型存储单元形成的擦除块的集合时,第二擦除块集合也可以是MLC类型存储单元形成的擦除块的集合和/或TLC类型存储单元形成的擦除块的集合。当然,第一擦除块集合也可以是MLC类型存储单元形成的擦除块的集合,此种情形下,第二擦除块集合可以 是TLC类型存储单元形成的擦除块的集合和/或QLC类型存储单元形成的擦除块的集合。第一擦除块集合还可以是TLC类型存储单元形成的擦除块的集合,此种情形下,第二擦除块集合可以是QLC类型存储单元形成的擦除块的集合。
为了方便描述,后文以固态硬盘包括SLC和QLC两种类型的存储单元进行示例说明,其中,SLC类型的存储单元形成的擦除块的集合为第一擦除块集合,QLC类型的存储单元形成的擦除块的集合为第二擦除块集合。
下面结合附图,对本申请的实施例进行描述。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
如图2所示,本申请实施例提供了一种将数据写入固态硬盘的方法,应用在图1所示的固态硬盘10中,所述固态硬盘10包括闪存控制器102和闪存芯片104,其中闪存芯片104包括多个擦除块,多个擦除块至少划分为第一擦除块集合和第二擦除块集合,第一擦除块集合和所述第二擦除块集合采用不同的层级单元闪存技术。示例性的,该方法可以包括以下步骤:
S202:闪存控制器102接收待写入数据。
具体地,主机host可以向固态硬盘10发送至少一个I/O请求,该I/O请求具体可以是写数据请求,用于向固态硬盘10中写入数据。其中,写数据请求中携带的数据即为待写入数据。固态硬盘10中的闪存控制器102接收该待写入数据,然后将待写入数据写入闪存芯片104中。
待写入数据具体以数据块(data chunk)形式存在,该待写入数据包括至少两个data chunk。其中,data chunk大小是固定的,其可以根据实际需求而设置,例如可以将data chunk大小设置为64千字节(kilo byte,KB)。而I/O请求中携带的数据大小是不固定的,因此,在一些情况下,可以是一个I/O请求中携带的数据形成一个data chunk,也可以是多个I/O请求中携带的数据形成一个data chunk。当然,I/O请求中携带的数据较大时,也可以是一个I/O请求中携带的数据形成多个data chunk。
S204:闪存控制器102获取所述至少两个data chunk的热度属性,根据所述热度属性将所述至少两个data chunk至少划分为第一组data chunk和第二组data chunk。
热度属性具体用于从至少一个维度衡量data chunk热度。在具体实现时,热度属性可以包括改写次数和改写时间间隔中的一种或多种。其中,改写次数具体是预设时间段内的改写次数,该预设时间段可以根据实际需要而设置,例如可以设置为一个小时。改写时间间隔具体是统计周期内的平均改写时间间隔,假设统计周期内发生针对某data chunk的N次改写,N大于2,则这N次改写中相邻改写所间隔时间的平均值即为该data chunk的改写时间间隔。上述统计周期可以根据经验值设置,例如可以设置为一天。
闪存控制器102中包括写缓存。闪存控制器102接收到待写入数据时,先将该待写入 数据写入写缓存。闪存控制器102采集待写入数据的写入信息,该写入信息具体包括卷标识(identity,ID)、卷内偏移也即逻辑区块地址(logical block address,LBA)、写入大小、写入时间戳等。基于该写入信息中的卷ID、LBA和写入大小可以确定出data chunk,data chunk写入写缓存的时间与其写入闪存芯片104的时间接近,因此,闪存控制器102可以采用上述写入时间戳确定data chunk的改写次数、改写时间间隔等,从而得到data chunk的热度属性。
在实际应用时,闪存控制器102可以在确定data chunk的热度属性后,存储该data chunk的热度属性,以便后续刷盘或垃圾回收时查找热度属性,并基于该热度属性将数据写入固态硬盘10的闪存芯片104。需要说明的是,闪存控制器102还可以随着写入信息的采集过程实时更新data chunk的热度属性,以使闪存控制器102根据实时的热度属性将数据写入闪存芯片104的擦除块,尽可能减少数据搬移,减少固态硬盘10的写放大,提高固态硬盘10的性能和寿命。
在本实施例中,闪存控制器102可以根据热度属性,利用聚类算法对至少两个data chunk进行聚类得到至少两类data chunk。一类data chunk可以形成一个data chunk组,如此,可以实现data chunk分组。其中,聚类算法可以是在线聚类算法,也可以是离线聚类算法。在线聚类算法可以包括流式k均值(k-means)聚类算法、层次聚类算法等,离线聚类算法可以包括k-means聚类算法、k近邻(k-nearestneighbor,KNN)聚类算法。
在实际应用时,闪存控制器102可以根据热度属性将多个data chunk至少划分为第一组data chunk和第二组data chunk。第一组data chunk包括至少一个data chunk,第二组data chunk包括至少一个data chunk。其中,第一组data chunk的热度属性与第二组data chunk的热度属性不同。当热度属性为改写次数时,第一组data chunk的改写次数可以多于第二组data chunk的改写次数。当热度属性为改写时间间隔时,第一组data chunk的改写时间间隔可以小于第二组data chunk的改写时间间隔。当然,若热度属性为根据改写次数和改写间隔所确定的热度值时,第一组data chunk的热度值可以大于第二组data chunk的热度值。
S206:闪存控制器102从所述第一擦除块集合选择第一目标擦除块,将第一组data chunk写入第一目标擦除块,以及从所述第二擦除块集合中选择第二目标擦除块,将所述第二组data chunk写入所述第二目标擦除块。
闪存控制器102根据热度属性划分的多组data chunk,如第一组data chunk和第二组data chunk具有不同的热度属性。不同的热度属性一般对应于不同的生命周期。也即第一组data chunk和第二组data chunk具有不同的生命周期。因此,闪存控制器102可以从第一擦除块集合选择第一目标擦除块,将第一组data chunk写入第一目标擦除块,从第二擦除块集合中选择第二目标擦除块,将第二组data chunk写入第二目标擦除块,如此在进行垃圾回收时,可以同时回收一组data chunk,避免生命周期相差较大的data trunk写入同一擦除块导致的写放大。而且将热度较高的第一组data chunk写入第一擦除块集合,热度较低的第二组data chunk写入第二擦除块集合,可以提高固态硬盘10整体的写入速率以及寿命。
在本实施例中,一组data chunk对应的目标擦除块可以是一个,也可以是多个。当一组data trunk中包括data chunk数量达到预设数量时,闪存控制器102确定多个目标擦除 块,将该组data trunk写入这多个目标擦除块。为了便于数据处理,上述多个目标擦除块可以是连续的多个目标擦除块。
预设数量可以根据擦除块的大小与data trunk的大小确定。在一个示例中,预设数量可以是擦除块的大小与data trunk的大小的比值,进一步地,当比值不是整数时,上述预设数量还可以是该比值向上取整所得的结果。
通过上述内容的描述,本申请在将数据写入固态硬盘10时,固态硬盘10中的闪存控制器102基于待写入数据中至少两个data trunk的热度属性,将至少两个data trunk至少划分为第一组data chunk和第二组data chunk,然后从采用第一擦除块集合中选择第一目标擦除块,将第一组data chunk写入第一目标擦除块,从第二擦除块集合中选择第二目标擦除块,将第二组data trunk写入第二目标擦除块。由于同一组的data trunk具有相似的生命周期。其中,生命周期相似是指写入时间差值小于或等于预设时间阈值,以及回收时间差值小于或等于预设时间阈值。基于此,一组data trunk有较大几率在一个时间段内回收,因此,将同一组的data trunk写入对应的目标擦除块,可以直接擦除该目标擦除块,无需反复写入,有效减少了写放大,提高了固态硬盘10的性能和寿命。
考虑到固态硬盘10中可以包括多个闪存芯片104,闪存控制器102与每个闪存芯片104之间建立有通道(channel),闪存控制器102可以通过多通道并行操作多个闪存芯片104。为此,闪存控制器102可以采用并行方式写入多组data trunk,从而提高数据写入速率。
具体地,划分后的data chunk还可以包括第三组data chunk。第三组data chunk包括至少一个data chunk。即待写入的data chunk至少被划分为第一组data chunk、第二组data chunk和第三组data chunk。
当第三组data chunk的热度属性与第一组data chunk的热度属性相似时,闪存控制器102可以从第一擦除块集合中选择目标擦除块组,将第一组data chunk和第三组data chunk以并行方式写入目标擦除块组包括的多个第一目标擦除块。
当第三组data chunk的热度属性与第二组data chunk的热度属性相似时,闪存控制器102可以从第二擦除块集合中选择目标擦除块组,将第二组data chunk和第三组data chunk以并行方式写入目标擦除块组包括的多个第二目标擦除块。
其中,热度属性相似是指热度属性的属性值相同或者属性值的差值在预设范围之内。以上是以两组data chunk并行写入进行示例说明。在一些可能的实现方式中,闪存控制器104还支持并行写入更多组data chunk。一组data chunk可以对应一个物理流,并行写入多组data chunk具体是通过多个并行的物理流实现。需要说明,一次写入过程中并行写入的流数量不超过固态硬盘10支持的多流数量。
并行写入固态硬盘10的至少两组data trunk中的各组data trunk也具有相似的生命周期。通过将具有相似生命周期的多组data trunk并行写入目标擦除块组中,不仅可以提高写入速率,而且可以进一步减少固态硬盘10的写放大。
将数据写入固态硬盘10后,在有些情况下,还可以对写入该固态硬盘10的数据改写。由于固态硬盘10一般是通过异地改写机制进行数据改写,即将修改后的数据写入固态硬盘 10中除被改写的数据所在擦除块以外的其他擦除块中,并将被该改写的数据所在页面标记为包括无效数据的页面,因此,数据改写过程的具体实现可以参见将数据写入固态硬盘10的相关内容描述。
图2所描述的是将数据写入固态硬盘10的过程,对于从固态硬盘10中读取数据的过程则可以和写数据的过程保持一致。具体而言,如果数据是以单层单元技术写入的,那么在读数据的时候也是以单层单元技术读出来,如果数据是以多层单元技术写入的,那么在读数据的时候也是以多层单元技术读出来。
以上对将数据写入固态硬盘10的过程进行介绍,接下来,结合实施例对固态硬盘10中垃圾回收的过程进行介绍。
固态硬盘10中垃圾回收具体是指闪存控制器102先将待回收擦除块中的有效数据,复制到空白的擦除块,然后擦除该待回收擦除块得到空白的擦除块。其中,固态硬盘10中垃圾回收的触发条件包括该固态硬盘10中的空白的擦除块的数量不足。
具体地,固态硬盘10的闪存控制器102确定固态硬盘10中空白的擦除块的数量小于回收数量阈值,或者固态硬盘10中空白的擦除块的数量相对于固态硬盘10中擦除块的总数量的占比小于回收比例阈值时,即触发固态硬盘10中的垃圾回收。
考虑到固态硬盘10的读写性能,在有些情况下,固态硬盘10的闪存控制器也可以周期性地触发垃圾回收机制,以获得较多的空白的擦除块,进而提升固态硬盘10的读写性能。
如图3所示,本申请实施例提供了一种固态硬盘10中垃圾回收的方法,应用在图1所示的固态硬盘10中,所述固态硬盘10包括闪存控制器102和闪存芯片104,其中闪存芯片104包括多个擦除块,多个擦除块至少划分为第一擦除块集合和第二擦除块集合,第一擦除块集合和所述第二擦除块集合采用不同的层级单元闪存技术。示例性的,该方法可以包括以下步骤:
S302:闪存控制器102获取所述第一擦除块集合中至少一个待回收擦除块的待回收页面对应的分流信息。
待回收擦除块是指需要进行垃圾回收的擦除块。一个擦除块包括至少两个页面,该页面可以是包括有效数据的页面,也可以是包括无效数据(也称作垃圾数据)的页面。其中,数据热度有高低之分,包括有效数据的页面可以基于该有效数据的热度属性分为包括热数据的页面和包括冷数据的页面。其中,热数据具体是热度值高于预设热度阈值的数据,冷数据具体是热度值低于或等于上述预设热度阈值的数据。热度值可以根据改写次数、改写时间间隔中的至少一个所确定。
当然,在有些情况下,包括有效数据的页面也可以基于该有效数据的热度属性分为包括热数据的页面、包括温数据的页面和包括冷数据的页面。此时,热数据具体是指热度值高于第一预设阈值的数据,冷数据是指热度值低于或等于第二预设阈值的数据,温数据则是热度值高于第二预设阈值,且低于第一预设阈值的数据。其中,第一预设阈值大于第二预设阈值。
在本申请中,闪存控制器102获取第一擦除块集合中至少一个擦除块的热数据比例。具体实现时,闪存控制器102可以获取第一擦除块集合中每一个擦除块的热数据比例。擦 除块的热数据比例具体是指擦除块中包括热数据的页面相对于擦除块总页面的比例。当热数据比例小于预设比例时,确定所述擦除块为待回收擦除块。
待回收页面是指待回收擦除块中需要回收的页面。具体地,待回收页面是指待回收擦除块中包括有效数据的页面。需要说明的是,待回收页面的data chunk在写入闪存芯片104时,其分流信息也一并被写入到闪存芯片104。其中,分流信息至少包括所述待回收页面的data chunk所属data chunk组的组标识。
参见图2所示实施例,第一组data chunk写入第一目标擦除块,第二组data chunk写入第二目标擦除块时,芯片控制器102还在闪存芯片104中存储上述data chunk所属data chunk组的组标识。基于此,在图3所示实施例中,闪存控制器102回收待回收擦除块的待回收页面时,可以从闪存芯片104中获取将待回收页面的data chunk所属data chunk组的组标识。
S304:闪存控制器102根据所述组标识将所述待回收页面至少划分为第一组待回收页面和第二组待回收页面。
其中,第一组待回收页面包括至少一个待回收页面,第二组待回收页面包括至少一个待回收页面。第一组待回收页面的data chunk所属data chunk组的组标识不同于所述第二组待回收页面的data chunk所属data chunk组的组标识。在具体实现时,闪存控制器102可以将data chunk所属data chunk组的组标识相同的待回收页面划分为一组待回收页面,如此,data chunk所属data chunk组的组标识不同的待回收页面即划分至不同组。
考虑到待回收页面分组的准确性和合理性,当组标识能够反映data chunk组的热度属性时,闪存控制器102可以按照组标识对待回收页面排序,基于排序结果将待回收页面至少划分为第一组待回收页面和第二组待回收页面。其中,一组待回收页面的data chunk可以具有相同的组标识。进一步地,一组待回收页面的data chunk可以具有相同或相似的组标识。其中,组标识相似具体是指组标识的差值小于预设标识阈值。
下面结合具体示例进行说明。在一个示例中,多个待回收页面的data chunk所属data chunk组的组标识分别为1、1、1、6、6、7,这多个待回收页面至少划分为两组。其中,第一组待回收页面的data chunk所属data chunk组的组标识为1,第二组待回收页面的data chunk所属data chunk组的组标识为6和7。
S306:从所述第一擦除块集合中选择第一目标回收块,将第一组待回收页面的data chunk写入第一目标回收块,以及从第二擦除块集合中选择第二目标回收块,将所述第二组待回收页面的data chunk写入所述第二目标回收块,释放所述待回收擦除块。
由于待回收页面的data chunk是根据热度属性分组后写入待回收页面的,因此,data chunk具有相同组标识或者具有相近组标识的一组待回收页面具有相似的生命周期,闪存控制器102将上述一组待回收页面的data chunk写入至同一回收块中进行回收,可以有效减少写放大。当一个待回收擦除块中待回收页面的data chunk均写入回收块时,闪存控制器102可以擦除待回收擦除块,从而释放所述待回收擦除块,提供更多的存储空间。
需要说明,一组待回收页面的data chunk对应的目标回收块可以是一个,也可以是多个。当一组待回收页面的data trunk数量达到预设数量时,闪存控制器102确定多个目标回收块,将该组待回收页面的data trunk写入这多个目标回收块。为了便于数据处理,上述多 个目标回收块可以是连续的多个回收块。
在一些可能的实现方式中,划分后的待回收页面还包括第三组待回收页面,第三组待回收页面包括至少一个待回收页面。即闪存控制器102根据组标识将待回收页面至少划分为第一组待回收页面、第二组待回收页面和第三组待回收页面。
对应地,闪存控制器102获取的待回收页面的分流信息还包括待回收页面的data chunk在写入时的写标识。其中,并行写入的多组data chunk的写标识是相同的。闪存控制器102可以将具有相同写标识的多组待回收页面的data chunk写入一组目标回收块进行回收。
具体地,当第三组待回收页面的data chunk的写标识与第一组待回收页面的data chunk的写标识相同时,闪存控制器102从第一擦除块集合中选择目标回收块组,将第一组待回收页面的data chunk和第三组待回收页面的data chunk并行写入目标回收块组包括的多个第一目标回收块。
当第三组待回收页面的data chunk的写标识与第二组待回收页面的data chunk的写标识相同时,闪存控制器102从第二擦除块集合中选择目标回收块组,将第二组待回收页面的data chunk和第三组待回收页面的data chunk并行写入目标回收块组包括的多个第二目标回收块。
需要说明的是,本实施例仅以待回收页面被划分为两组或者三组进行示例说明。在一些可能的实现方式中,待回收页面还可以被划分为三组以上。此外,闪存控制器102将多组待回收页面的data chunk并行写入目标回收块组时,并行的物理流数量不超过固态硬盘10支持的多流数量。
通过上述内容的描述,本申请在对固态硬盘10中的垃圾回收时,固态硬盘10中的闪存控制器102获取待回收擦除块的待回收页面对应的分流信息。基于该分流信息中待回收页面的data trunk所属data chunk组的组标识将待回收页面至少划分为第一组待回收页面和第二组待回收页面。然后从第一擦除块集合选择第一目标回收块,将第一组待回收页面的data chunk写入第一目标回收块,从第二擦除块集合选择第二目标回收块,将第二组待回收页面的data chunk写入第二目标回收块,并释放原有的待回收擦除块。由于同一组待回收页面的data trunk具有相似的生命周期,这一组待回收页面的data trunk有较大几率在一个时间段内回收,因此,将同一组待回收页面的data trunk写入对应的目标回收块进行回收,可以避免反复写入,有效减少了写放大。
进一步地,将热度较高的第一组待回收页面的data chunk写入第一擦除块集合中的第一目标回收块,将热度较低的第二组待回收页面的data chunk写入第二擦除块集合中的第二目标回收块,可以提高固态硬盘10的性能和寿命。
需要说明的是,图3所示实施例仅为本申请提供的固态硬盘10中垃圾回收的方法的一种具体实现方式。在实际应用时,闪存控制器102可以直接获取第一擦除块集合中至少一个待回收擦除块的待回收页面的data trunk的热度属性,基于该热度属性将待回收页面至少划分为第一组待回收页面和第二组待回收页面。在此种情形下,第一组待回收页面的data trunk的热度属性不同于第二组待回收页面的data trunk的热度属性。
闪存控制器102从第一擦除块集合中选择第一目标回收块,将上述第一组待回收页面的data trunk写入第一目标回收块,从第二擦除块集合中选择第二目标回收块,将上述第二 组待回收页面的data trunk写入第二目标回收块。一个待回收擦除块的待回收页面的数据块均写入目标回收块时,闪存控制器102可以释放该待回收擦除块。
进一步地,划分后的待回收页面还包括第三组待回收页面时,若第三组待回收页面的data trunk的热度属性与第一组待回收页面的data trunk的热度属性相似,则从第一擦除块集合中选择目标回收块组,将第一组待回收页面的data trunk和所述第三组待回收页面的data trunk并行写入所述目标回收块组包括的多个第一目标回收块。
若第三组待回收页面的data trunk的热度属性与第二组待回收页面的data trunk的热度属性相似,则从第二擦除块集合中选择目标回收块组,将第二组待回收页面的data trunk和所述第三组待回收页面的data trunk并行写入所述目标回收块组包括的多个第二目标回收块。
图1至图3所示实施例从单个固态硬盘10的角度对将数据写入固态硬盘10和固态硬盘10中垃圾回收的方法进行了介绍,本申请提供的将数据写入固态硬盘10和固态硬盘10中垃圾回收的方法还可以应用于多个固态硬盘10组成的固态硬盘阵列中。其具体实现可以参见单个固态硬盘10中写入数据和垃圾回收的相关内容描述,在此不再赘述。
以上结合图1至图3对本申请中将数据写入固态硬盘的方法以及固态硬盘中垃圾回收的方法进行介绍,接下来结合附图对本申请的装置、设备进行介绍。
参见图4所示的将数据写入固态硬盘的装置的结构示意图,所述固态硬盘包括闪存控制器和闪存芯片,所述闪存芯片包括多个擦除块,所述多个擦除块至少划分为第一擦除块集合和第二擦除块集合,所述第一擦除块集合和所述第二擦除块集合采用不同的层级单元闪存技术。
所述将数据写入固态硬盘的装置400位于闪存控制器中,所述装置400包括:
通信模块402,用于接收待写入数据,所述待写入数据包括至少两个数据块;
分组模块404,用于获取所述至少两个数据块的热度属性,根据所述热度属性将所述至少一个数据块至少划分为第一组数据块和第二组数据,所述第一组数据块的热度属性与所述第二组数据块的热度属性不同,所述第一组数据块包括至少一个数据块,所述第二组数据块包括至少一个数据块;
输入输出模块406,用于从所述第一擦除块集合中选择第一目标擦除块,将所述第一组数据块写入第一目标擦除块,以及从所述第二擦除块集合中选择第二目标擦除块,将所述第二组数据块写入所述第二目标擦除块。
其中,通信模块402的具体实现可以参见图2所示实施例中S202相关内容描述,分组模块404的具体实现可以参见图2所示实施例中S204相关内容描述,输入输出模块406的具体实现可以参见图2所示实施例中S206相关内容描述。
在一些可能的实现方式中,划分后的数据块还包括第三组数据块,所述第三组数据块包括至少一个数据块;
所述输入输出模块406具体用于:
所述第三组数据块的热度属性与所述第一组数据块的热度属性相似时,从所述第一擦除块集合中选择目标擦除块组,将所述第一组数据块和所述第三组数据块并行写入所述目 标擦除块组包括的多个第一目标擦除块;
所述第三组数据块的热度属性与所述第一组数据块的热度属性相似时,从所述第二擦除块集合中选择目标擦除块组,将所述第二组数据块和所述第三组数据块并行写入所述目标擦除块组包括的多个第二目标擦除块。
在一些可能的实现方式中,热度属性包括改写次数和改写时间间隔中的一种或多种。
在一些可能的实现方式中,所述多个擦除块中的每个擦除块包括至少一个存储单元,所述第一擦除块集合中的存储单元用于使用单层单元技术,所述第二擦除块集合中存储单元用于使用多层单元技术、三层单元技术、四层单元技术中的至少一种。
接下来,参见图5所示的固态硬盘中垃圾回收的装置的结构示意图,固态硬盘包括闪存控制器和闪存芯片,所述闪存芯片包括多个擦除块,所述多个擦除块至少划分为第一擦除块集合和第二擦除块集合,所述第一擦除块集合和所述第二擦除块集合采用不同的层级单元闪存技术。
所述固态硬盘中垃圾回收的装置500位于闪存控制器中,所述装置500包括:
通信模块502,用于获取所述第一擦除块集合中至少一个待回收擦除块的待回收页面对应的数据块的热度属性;
分组模块504,用于根据所述热度属性将所述待回收页面至少划分为第一组待回收页面和第二组待回收页面,所述第一组待回收页面的数据块的热度属性不同于所述第二组待回收页面的数据块的热度属性,所述第一组待回收页面包括至少一个待回收页面,所述第二组待回收页面包括至少一个待回收页面;
输入输出模块506,用于从所述第一擦除块集合中选择第一目标回收块,将所述第一组待回收页面的数据块写入所述第一目标回收块,以及从所述第二擦除块集合中选择第二目标回收块,将所述第二组待回收页面的数据块写入所述第二目标回收块,释放所述待回收擦除块。
其中,通信模块502的具体实现可以参见图3所示实施例中S302相关内容描述,分组模块504的具体实现可以参见图3所示实施例中S304相关内容描述,输入输出模块506的具体实现可以参见图3所示实施例中S306相关内容描述。
在一些可能的实现方式中,划分后的待回收页面还包括第三组待回收页面,所述第三组待回收页面包括至少一个待回收页面;
所述输入输出模块506具体用于:
所述第三组待回收页面的数据块的热度属性与所述第一组待回收页面的数据块的热度属性相似时,从所述第一擦除块集合中选择目标回收块组,将所述第一组待回收页面的数据块和所述第三组待回收页面的数据块并行写入所述目标回收块组包括的多个第一目标回收块;
所述第三组待回收页面的数据块的热度属性与所述第二组待回收页面的数据块的热度属性相似时,从所述第二擦除块集合中选择目标回收块组,将所述第二组待回收页面的数据块和所述第三组待回收页面的数据块并行写入所述目标回收块组包括的多个第二目标回收块。
在一些可能的实现方式中,所述装置500还包括:
确定模块,用于获取所述第一擦除块集合中至少一个擦除块的热数据比例,当所述热数据的比例小于预设比例时,确定所述擦除块为待回收擦除块。
根据本申请实施例的装置可对应于执行本申请实施例中描述的方法。并且,将数据写入固态硬盘的装置400中的各个模块的上述和其它操作和/或功能分别为了实现图2中的各个方法的相应流程,固态硬盘中垃圾回收的装置500中的各个模块的上述和其它操作和/或功能分别为了实现图3中的各个方法的相应流程。以上各个模块的功能可参考图2或图3所示的方法实施例中的描述。每个模块的功能均可由闪存控制器中的控制芯片调用存储器中的程序执行。
本申请实施例还提供一种计算机可读介质,所述计算机可读介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
本申请实施例还提供一种计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
另外需说明的是,以上所描述的实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
本领域普通技术人员可以理解,前述的存储介质包括:U盘、移动硬盘、磁碟、光盘、随机存储器(Random-Access Memory,RAM)、固态硬盘(Solid State Disk,SSD)或者非易失性存储器(non-volatile memory)等各种可以存储程序代码的非短暂性的(non-transitory)机器可读介质。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制。
Claims (16)
- 一种将数据写入固态硬盘的方法,其特征在于,所述固态硬盘包括闪存控制器和闪存芯片,所述闪存芯片包括多个擦除块,所述多个擦除块至少划分为第一擦除块集合和第二擦除块集合,所述第一擦除块集合和所述第二擦除块集合采用不同的层级单元闪存技术,所述方法包括:所述闪存控制器接收待写入数据,所述待写入数据包括至少两个数据块;所述闪存控制器获取所述至少两个数据块的热度属性,根据所述热度属性将所述至少两个数据块至少划分为第一组数据块和第二组数据块,所述第一组数据块的热度属性与所述第二组数据块的热度属性不同,所述第一组数据块包括至少一个数据块,所述第二组数据块包括至少一个数据块;从所述第一擦除块集合中选择第一目标擦除块,将所述第一组数据块写入所述第一目标擦除块,以及从所述第二擦除块集合中选择第二目标擦除块,将所述第二组数据块写入所述第二目标擦除块。
- 根据权利要求1所述的方法,其特征在于,划分后的数据块还包括第三组数据块,所述第三组数据块包括至少一个数据块;所述第三组数据块的热度属性与所述第一组数据块的热度属性相似时,所述从所述第一擦除块集合中选择第一目标擦除块,将所述第一组数据块写入所述第一目标擦除块,包括:从所述第一擦除块集合中选择目标擦除块组,将所述第一组数据块和所述第三组数据块并行写入所述目标擦除块组包括的多个第一目标擦除块;所述第三组数据块的热度属性与所述第一组数据块的热度属性相似时,所述从所述第二擦除块集合选择第二目标擦除块,将所述第二组数据块写入所述第二目标擦除块,包括:从所述第二擦除块集合中选择目标擦除块组,将所述第二组数据块和所述第三组数据块并行写入所述目标擦除块组包括的多个第二目标擦除块。
- 根据权利要求1所述的方法,其特征在于,所述热度属性包括改写次数和改写时间间隔中的一种或多种。
- 根据权利要求1至3任一项所述的方法,其特征在于,所述多个擦除块中的每个擦除块包括至少一个存储单元,所述第一擦除块集合中的存储单元用于使用单层单元技术,所述第二擦除块集合中存储单元用于使用多层单元技术、三层单元技术、四层单元技术中的至少一种。
- 一种固态硬盘中垃圾回收的方法,其特征在于,所述固态硬盘包括闪存控制器和闪存芯片,所述闪存芯片包括多个擦除块,所述多个擦除块至少划分为第一擦除块集合和第二擦除块集合,所述第一擦除块集合和所述第二擦除块集合采用不同的层级单元闪存技术,所述方法包括:所述闪存控制器获取所述第一擦除块集合中至少一个待回收擦除块的待回收页面的数据块的热度属性;所述闪存控制器根据所述热度属性将所述待回收页面至少划分为第一组待回收页面和第二组待回收页面,所述第一组待回收页面的数据块的热度属性不同于所述第二组待回收 页面的数据块的热度属性,所述第一组待回收页面包括至少一个待回收页面,所述第二组待回收页面包括至少一个待回收页面;从所述第一擦除块集合中选择第一目标回收块,将所述第一组待回收页面的数据块写入所述第一目标回收块,以及从所述第二擦除块集合中选择第二目标回收块,将所述第二组待回收页面的数据块写入所述第二目标回收块,释放所述待回收擦除块。
- 根据权利要求5所述的方法,其特征在于,划分后的待回收页面还包括第三组待回收页面,所述第三组待回收页面包括至少一个待回收页面;所述第三组待回收页面的数据块的热度属性与所述第一组待回收页面的数据块的热度属性相似时,所述从所述第一擦除块集合中选择第一目标回收块,将所述第一组待回收页面的数据块写入所述第一目标回收块,包括:从所述第一擦除块集合中选择目标回收块组,将所述第一组待回收页面的数据块和所述第三组待回收页面的数据块并行写入所述目标回收块组包括的多个第一目标回收块;所述第三组待回收页面的数据块的热度属性与所述第二组待回收页面的数据块的热度属性相似时,所述从所述第二擦除块集合中选择第二目标回收块,将所述第二组待回收页面的数据块写入所述第二目标回收块,包括:从所述第二擦除块集合中选择目标回收块组,将所述第二组待回收页面的数据块和所述第三组待回收页面的数据块并行写入所述目标回收块组包括的多个第二目标回收块。
- 根据权利要求5或6所述的方法,其特征在于,所述方法还包括:获取所述第一擦除块集合中至少一个擦除块的热数据比例;当所述热数据的比例小于预设比例时,确定所述擦除块为待回收擦除块。
- 一种将数据写入固态硬盘的装置,其特征在于,所述固态硬盘包括闪存控制器和闪存芯片,所述闪存芯片包括多个擦除块,所述多个擦除块至少划分为第一擦除块集合和第二擦除块集合,所述第一擦除块集合和所述第二擦除块集合采用不同的层级单元闪存技术,所述装置位于所述闪存控制器中,所述装置包括:通信模块,用于接收待写入数据,所述待写入数据包括至少两个数据块;分组模块,用于获取所述至少两个数据块的热度属性,根据所述热度属性将所述至少一个数据块至少划分为第一组数据块和第二组数据,所述第一组数据块的热度属性与所述第二组数据块的热度属性不同,所述第一组数据块包括至少一个数据块,所述第二组数据块包括至少一个数据块;输入输出模块,用于从所述第一擦除块集合中选择第一目标擦除块,将所述第一组数据块写入第一目标擦除块,以及从所述第二擦除块集合中选择第二目标擦除块,将所述第二组数据块写入所述第二目标擦除块。
- 根据权利要求8所述的装置,其特征在于,划分后的数据块还包括第三组数据块,所述第三组数据块包括至少一个数据块;所述输入输出模块具体用于:所述第三组数据块的热度属性与所述第一组数据块的热度属性相似时,从所述第一擦除块集合中选择目标擦除块组,将所述第一组数据块和所述第三组数据块并行写入所述目标擦除块组包括的多个第一目标擦除块;所述第三组数据块的热度属性与所述第一组数据块的热度属性相似时,从所述第二擦除块集合中选择目标擦除块组,将所述第二组数据块和所述第三组数据块并行写入所述目标擦除块组包括的多个第二目标擦除块。
- 根据权利要求8所述的装置,其特征在于,所述热度属性包括改写次数和改写时间间隔中的一种或多种。
- 根据权利要求8至10任一项所述的装置,其特征在于,所述多个擦除块中的每个擦除块包括至少一个存储单元,所述第一擦除块集合中的存储单元用于使用单层单元技术,所述第二擦除块集合中存储单元用于使用多层单元技术、三层单元技术、四层单元技术中的至少一种。
- 一种固态硬盘中垃圾回收的装置,其特征在于,所述固态硬盘包括闪存控制器和闪存芯片,所述闪存芯片包括多个擦除块,所述多个擦除块至少划分为第一擦除块集合和第二擦除块集合,所述第一擦除块集合和所述第二擦除块集合采用不同的层级单元闪存技术,所述装置位于所述闪存控制器中,所述装置包括:通信模块,用于获取所述第一擦除块集合中至少一个待回收擦除块的待回收页面的数据块的热度属性;分组模块,用于根据所述热度属性将所述待回收页面至少划分为第一组待回收页面和第二组待回收页面,所述第一组待回收页面的数据块的热度属性不同于所述第二组待回收页面的数据块的热度属性,所述第一组待回收页面包括至少一个待回收页面,所述第二组待回收页面包括至少一个待回收页面;输入输出模块,用于从所述第一擦除块集合中选择第一目标回收块,将所述第一组待回收页面的数据块写入所述第一目标回收块,以及从所述第二擦除块集合中选择第二目标回收块,将所述第二组待回收页面的数据块写入所述第二目标回收块,释放所述待回收擦除块。
- 根据权利要求12所述的装置,其特征在于,划分后的待回收页面还包括第三组待回收页面,所述第三组待回收页面包括至少一个待回收页面;所述输入输出模块具体用于:所述第三组待回收页面的数据块的热度属性与所述第一组待回收页面的数据块的热度属性相似时,从所述第一擦除块集合中选择目标回收块组,将所述第一组待回收页面的数据块和所述第三组待回收页面的数据块并行写入所述目标回收块组包括的多个第一目标回收块;所述第三组待回收页面的数据块的热度属性与所述第二组待回收页面的数据块的热度属性相似时,从所述第二擦除块集合中选择目标回收块组,将所述第二组待回收页面的数据块和所述第三组待回收页面的数据块并行写入所述目标回收块组包括的多个第二目标回收块。
- 根据权利要求12或13所述的装置,其特征在于,所述装置还包括:确定模块,用于获取所述第一擦除块集合中至少一个擦除块的热数据比例,当所述热数据的比例小于预设比例时,确定所述擦除块为待回收擦除块。
- 一种闪存控制器,其特征在于,所述闪存控制器用于执行如权利要求1至4中任 一项所述的方法,或者用于执行如权利要求5至7中任一项所述的方法。
- 一种固态硬盘,其特征在于,所述固态硬盘包括闪存控制器和闪存芯片,所述闪存控制器调用程序指令,以执行如权利要求1至4中任一项所述的将数据写入固态硬盘的方法,或者执行如权利要求5至7中任一项所述的固态硬盘中垃圾回收的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911329490.9A CN113010091B (zh) | 2019-12-20 | 2019-12-20 | 数据写入固态硬盘的方法、垃圾回收的方法、装置 |
CN201911329490.9 | 2019-12-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021120645A1 true WO2021120645A1 (zh) | 2021-06-24 |
Family
ID=76381849
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2020/108800 WO2021120645A1 (zh) | 2019-12-20 | 2020-08-13 | 数据写入固态硬盘的方法、垃圾回收的方法、装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113010091B (zh) |
WO (1) | WO2021120645A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115469797B (zh) * | 2021-09-09 | 2023-12-29 | 上海江波龙数字技术有限公司 | 一种数据写入方法、存储装置及计算机可读存储介质 |
CN117369712B (zh) * | 2022-10-28 | 2024-07-30 | 华为技术有限公司 | 垃圾回收的方法、页面存储的方法和电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101369451A (zh) * | 2007-08-14 | 2009-02-18 | 三星电子株式会社 | 固态存储器、包含其的计算机系统和操作其的方法 |
CN101526923A (zh) * | 2009-04-02 | 2009-09-09 | 成都市华为赛门铁克科技有限公司 | 一种数据处理方法、装置和闪存存储系统 |
CN103530236A (zh) * | 2013-10-21 | 2014-01-22 | 华为技术有限公司 | 一种混合硬盘的实现方法及装置 |
US20170285967A1 (en) * | 2016-03-29 | 2017-10-05 | Samsung Electronics Co., Ltd. | Multi-ware smart ssd |
CN107608625A (zh) * | 2017-08-11 | 2018-01-19 | 记忆科技(深圳)有限公司 | 一种提升固存储设备读性能的方法 |
CN108255419A (zh) * | 2017-12-19 | 2018-07-06 | 深圳忆联信息系统有限公司 | 一种用于tlc类型ssd的磨损均衡方法及ssd |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8364931B2 (en) * | 2009-06-29 | 2013-01-29 | Mediatek Inc. | Memory system and mapping methods using a random write page mapping table |
CN105677245B (zh) * | 2015-12-31 | 2018-11-20 | 记忆科技(深圳)有限公司 | 一种基于寿命均衡wl多线程提高ssd使用寿命的方法 |
CN106227471A (zh) * | 2016-08-19 | 2016-12-14 | 深圳大普微电子科技有限公司 | 固态硬盘和应用于固态硬盘的数据存取方法 |
CN106406759B (zh) * | 2016-09-13 | 2019-12-31 | 苏州浪潮智能科技有限公司 | 一种数据存储方法及装置 |
CN108646977B (zh) * | 2018-03-07 | 2021-02-05 | 深圳忆联信息系统有限公司 | 一种ssd冷热数据判断的方法及垃圾回收方法 |
CN110554999B (zh) * | 2018-05-31 | 2023-06-20 | 华为技术有限公司 | 基于日志式文件系统和闪存设备的冷热属性识别和分离方法、装置以及相关产品 |
CN108845770A (zh) * | 2018-06-22 | 2018-11-20 | 深圳忆联信息系统有限公司 | 降低ssd写放大的方法、装置及计算机设备 |
CN109164975A (zh) * | 2018-06-28 | 2019-01-08 | 华为技术有限公司 | 一种将数据写入固态硬盘的方法以及固态硬盘 |
CN110515550B (zh) * | 2019-08-21 | 2022-03-29 | 深圳忆联信息系统有限公司 | 一种sata固态硬盘冷热数据分离的方法及其装置 |
-
2019
- 2019-12-20 CN CN201911329490.9A patent/CN113010091B/zh active Active
-
2020
- 2020-08-13 WO PCT/CN2020/108800 patent/WO2021120645A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101369451A (zh) * | 2007-08-14 | 2009-02-18 | 三星电子株式会社 | 固态存储器、包含其的计算机系统和操作其的方法 |
CN101526923A (zh) * | 2009-04-02 | 2009-09-09 | 成都市华为赛门铁克科技有限公司 | 一种数据处理方法、装置和闪存存储系统 |
CN103530236A (zh) * | 2013-10-21 | 2014-01-22 | 华为技术有限公司 | 一种混合硬盘的实现方法及装置 |
US20170285967A1 (en) * | 2016-03-29 | 2017-10-05 | Samsung Electronics Co., Ltd. | Multi-ware smart ssd |
CN107608625A (zh) * | 2017-08-11 | 2018-01-19 | 记忆科技(深圳)有限公司 | 一种提升固存储设备读性能的方法 |
CN108255419A (zh) * | 2017-12-19 | 2018-07-06 | 深圳忆联信息系统有限公司 | 一种用于tlc类型ssd的磨损均衡方法及ssd |
Also Published As
Publication number | Publication date |
---|---|
CN113010091B (zh) | 2023-06-16 |
CN113010091A (zh) | 2021-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10936252B2 (en) | Storage system capable of invalidating data stored in a storage device thereof | |
US10838859B2 (en) | Recency based victim block selection for garbage collection in a solid state device (SSD) | |
CN108121503B (zh) | 一种NandFlash地址映射及块管理方法 | |
CN102012867B (zh) | 资料储存系统 | |
TW201926350A (zh) | 記憶體控制器、記憶體系統及於一記憶體中管理資料配置的方法 | |
US10635343B2 (en) | Streamed program commands with periodic garbage collection | |
US20200183831A1 (en) | Storage system and system garbage collection method | |
CN109710541B (zh) | 针对NAND Flash主控芯片Greedy垃圾回收的优化方法 | |
TWI434175B (zh) | 用來進行區塊管理之方法以及記憶裝置及控制器 | |
JP2014517425A (ja) | Slc/mlc混成メモリのブロック管理構成 | |
CN110362499B (zh) | 电子机器及其控制方法、计算机系统及其控制方法以及主机的控制方法 | |
CN112130749B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
TWI718710B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
WO2021120645A1 (zh) | 数据写入固态硬盘的方法、垃圾回收的方法、装置 | |
KR20220033415A (ko) | 최적의 패리티 공유 구역을 위한 식별된 구역 | |
CN109240939B (zh) | 一种快速处理固态硬盘trim的方法 | |
US11941258B2 (en) | Zoned memory device recovery after a key-value store failure | |
CN111104045A (zh) | 一种存储控制方法、装置、设备和计算机存储介质 | |
WO2017176860A1 (en) | 3d stackable hybrid phase change memory with improved endurance and non-volatility | |
CN116364148A (zh) | 一种面向分布式全闪存储系统的磨损均衡方法及系统 | |
US12001678B2 (en) | Address translation metadata compression in memory devices | |
TWI724550B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
US20240028230A1 (en) | Storage Access Communications and Data Placement for Improved Performance and Reduced Write Amplification | |
US20240028231A1 (en) | Random Storage Access and Data Erasure for Improved Performance and Reduced Write Amplification | |
US20240289053A1 (en) | Data type identification schemes for memory systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20901394 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20901394 Country of ref document: EP Kind code of ref document: A1 |