Solid state disk block management method, device and computer equipment based on multiple programming

By introducing a UPC table to count the number of unclosed pages, the problem of traditional VPC tables being unable to manage NAND flash memory blocks that have been programmed multiple times is solved, thus realizing reasonable management of physical blocks and normal read/write functionality of solid-state drives.

CN117149090BActive Publication Date: 2026-07-31SUZHOU UNIONMEMORY INFORMATION SYST LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
SUZHOU UNIONMEMORY INFORMATION SYST LTD
Filing Date
2023-10-09
Publication Date
2026-07-31

AI Technical Summary

Technical Problem

Traditional VPC table solutions cannot effectively manage NAND flash memory blocks that have been programmed multiple times, leading to improper physical block management in multiple programming scenarios, resulting in the inability to properly retain or release blocks.

Method used

A UPC table is introduced to count the number of unclosed pages, and the UPC count is adjusted during data migration and programming to ensure proper management of physical blocks.

Benefits of technology

It achieves the correct retention and release of NAND flash memory blocks that have been programmed multiple times, ensuring the read and write functions of the solid-state drive.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117149090B_ABST
    Figure CN117149090B_ABST
Patent Text Reader

Abstract

This application relates to a method, apparatus, computer device, and storage medium for solid-state drive (SSD) block management based on multiple programming. The method includes: creating a UPC table to count the number of unclosed pages; when moving data from an old physical block to a new physical block, determining whether the destination block requires multiple programming; if multiple programming is required, incrementing the UPC count of the old physical block by the number of logical page data during the first programming operation; and decrementing the UPC count of the old physical block corresponding to the programming data by the number of logical page data during the final programming operation. This invention can correctly and reasonably retain or release physical blocks for NAND flash memory requiring multiple programming, ensuring the read and write functionality of the SSD.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of solid-state drive (SSD) technology, and in particular to a method, apparatus, computer device, and storage medium for SSD block management based on multiple programming. Background Technology

[0002] Solid-state drives (SSDs) are widely used in various applications and have gradually replaced traditional HDDs (hard disk drives) in the PC market, providing users with a better experience in terms of reliability and performance. With the evolution of NAND technology, it has progressed from the early 1 bit / cell (SLC) to 2 bit / cell (MLC), 3 bit / cell (TLC), and 4 bit / cell (QLC), increasing the data storage capacity. However, the increased number of bits per cell leads to a more complex programming model. Typical NAND such as SLC / MLC / TLC only requires one programming to complete data storage, after which it can be read normally. QLC, due to its complex NAND cell voltage distribution, requires multiple programming steps to truly complete data storage for subsequent data retrieval. Furthermore, to eliminate the influence between adjacent wordlines, these multiple programming steps need to be interleaved among multiple wordlines, resulting in a larger number of wordlines in an unstable state. Since these wordlines cannot be read, their corresponding data needs to be cached in other, correctly readable locations. For consumer-grade SSDs with limited memory and power reserves, SLC caching is typically used, followed by migration to NAND regions (such as QLC) that require multiple programming iterations. Subsequent programming operations require rereading the cached data from these SLC caching blocks.

[0003] Currently, traditional solutions typically use a VPC (Valid Page Count Table) to manage data blocks. The VPC table is organized by physical block, with each physical block maintaining a count representing the logical page data of valid data within the block. When valid data is written to a physical block, the count of valid logical page data for that physical block is incremented. When logical page address data is written to another physical block, the VPC count of the physical block originally mapped to that logical page address is decremented. When a physical block has been programmed and the VPC count is 0, it indicates that there is no valid data left in the physical block, and it can be reclaimed. However, in scenarios requiring multiple programming iterations, even if a physical block no longer contains valid data, it may still be necessary to read data from that physical block for subsequent programming iterations. The traditional VPC table solution can no longer meet the physical block management requirements of NAND flash memory that requires multiple programming iterations. Summary of the Invention

[0004] Therefore, it is necessary to provide a solid-state drive block management method, apparatus, computer device, and storage medium based on multiple programming to address the aforementioned technical problems.

[0005] A solid-state drive block management method based on multiple programming, the method comprising:

[0006] Create a UPC table to count the number of pages that are not closed;

[0007] When moving data from an old physical block to a new physical block, determine whether the destination block requires multiple programming operations.

[0008] If multiple programming operations are required, the UPC count of the old physical block is increased by the number of logical page data during the first programming operation.

[0009] During the final programming, the UPC count of the old physical block corresponding to the programming data is subtracted from the number of logical page data.

[0010] In one embodiment, after determining whether the destination block requires multiple programming steps when moving data from the old physical block to the new physical block, the method further includes:

[0011] When moving data from an old physical block to a new physical block, the UPC table is not modified if the destination block does not require multiple programming steps.

[0012] In one embodiment, the method further includes:

[0013] When writing data, if the destination block needs to be programmed multiple times, the number of logical page data written is subtracted from the VPC count of the old physical block pointed to by the logical page address during the last programming, and the number of logical page data written is increased in the VPC count of the new physical block to which the logical page address is written.

[0014] In one embodiment, the method further includes:

[0015] If a physical block has been programmed and the counts in both the VPC table and the UPC table of the physical block are 0, then the physical block can be reclaimed.

[0016] A solid-state drive block management device based on multiple programming, the device comprising:

[0017] A creation module is provided, which is used to create a UPC table, which is used to count the number of unclosed pages.

[0018] The judgment module is used to determine whether the destination block needs to be programmed multiple times when moving data from the old physical block to the new physical block.

[0019] The first processing module is configured to, if multiple programming operations are required, increment the UPC count of the old physical block by the number of logical page data during the first programming operation.

[0020] The second processing module is used to subtract the number of logical page data from the UPC count of the old physical block corresponding to the programming data during the last programming.

[0021] In one embodiment, the determining module is further configured to:

[0022] When moving data from an old physical block to a new physical block, the UPC table is not modified if the destination block does not require multiple programming steps.

[0023] In one embodiment, the apparatus further includes a VPC counting module, the VPC counting module being used for:

[0024] When writing data, if the destination block needs to be programmed multiple times, the number of logical page data written is subtracted from the VPC count of the old physical block pointed to by the logical page address during the last programming, and the number of logical page data written is increased in the VPC count of the new physical block to which the logical page address is written.

[0025] In one embodiment, the apparatus further includes a recycling module, the recycling module being used for:

[0026] If a physical block has been programmed and the counts in both the VPC table and the UPC table of the physical block are 0, then the physical block can be reclaimed.

[0027] A computer device includes a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the computer program to implement the steps of any of the methods described above.

[0028] A computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the steps of any of the above methods.

[0029] The aforementioned solid-state drive (SSD) block management method, apparatus, computer device, and storage medium based on multiple programming (MPD) utilizes a UPC table to count the number of unclosed pages. When moving data from an old physical block to a new physical block, it determines whether the destination block requires multiple programming operations. If multiple programming is required, the UPC count of the old physical block is incremented by the number of logical page data during the first programming operation. During the final programming operation, the UPC count of the old physical block corresponding to the programming data is subtracted from the number of logical page data. This invention can correctly and reasonably retain or release physical blocks for NAND flash memory requiring multiple programming operations, ensuring the read and write functionality of the SSD. Attached Figure Description

[0030] Figure 1 This is a flowchart illustrating the data writing process in a traditional VPC environment.

[0031] Figure 2 This is a schematic diagram illustrating the process of determining whether a physical block can be reclaimed in the traditional VPC method.

[0032] Figure 3 This is a flowchart illustrating a solid-state drive block management method based on multiple programming in one embodiment;

[0033] Figure 4 This is a flowchart illustrating the data transfer process in one embodiment;

[0034] Figure 5 This is a flowchart illustrating the processing flow of the last programming step in a series of programming operations in one embodiment.

[0035] Figure 6 This is a schematic diagram of the process for determining whether a physical block can be recycled in one embodiment;

[0036] Figure 7 This is a structural block diagram of a solid-state drive block management device based on multiple programming in one embodiment;

[0037] Figure 8 This is a structural block diagram of a solid-state drive block management device based on multiple programming in another embodiment;

[0038] Figure 9 This is a structural block diagram of a solid-state drive block management device based on multiple programming in another embodiment;

[0039] Figure 10 This is an internal structural diagram of a computer device in one embodiment. Detailed Implementation

[0040] To make the objectives, technical solutions, and advantages of this application clearer, the following detailed description is provided in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the scope of this application.

[0041] like Figure 1 The flowchart shown illustrates the traditional VPC process when writing data. When writing one logical page of data, a new physical page address PPA1 is allocated; a mapping for the logical page address is checked. If a mapping exists, the VPC count of the physical block containing the old mapping is decremented by 1. If no mapping exists, no further processing is performed; the mapping of the logical page address is set to the newly allocated physical page address PPA1; and the VPC count of the physical block containing PPA1 is incremented by 1.

[0042] like Figure 2 The diagram illustrates the traditional VPC method for determining whether a physical block can be reclaimed. When the physical block is fully programmed and the VPC count is 0, it is considered that the physical block can be reclaimed; otherwise, it is considered that the physical block still contains valid data and cannot be reclaimed.

[0043] Therefore, it is evident that the traditional VPC table scheme can no longer meet the requirements of physical block management for NAND flash memory that has undergone multiple programming.

[0044] Based on this, the present invention proposes a solid-state drive block management method based on multiple programming, which aims to enable physical blocks to be correctly and reasonably retained or released when multiple programming is required.

[0045] In one embodiment, such as Figure 3 As shown, a solid-state drive block management method based on multiple programming is provided, the method including:

[0046] Step 302: Create a UPC table, which is used to count the number of unclosed pages;

[0047] Step 304: When moving data from the old physical block to the new physical block, determine whether the destination block needs to be programmed multiple times.

[0048] Step 306: If multiple programming operations are required, the UPC count of the old physical block is increased by the number of logical page data during the first programming operation.

[0049] Step 308: During the last programming, subtract the number of logical page data from the UPC count of the old physical block corresponding to the programming data.

[0050] In this embodiment, a solid-state drive block management method based on multiple programming is proposed. This method adds a UPC table (Unclosed PageCount Table) to the traditional VPC table (Valid Page Count Table). The UPC table is used to count the number of unclosed pages.

[0051] When moving data from an old physical block to a new physical block, it is determined whether the destination block requires multiple programming operations. If the destination block requires multiple programming operations, the UPC count of the old physical block is increased by the number of logical page data during the first programming operation. If the physical block requires multiple programming operations, the UPC count of the old physical block corresponding to the programming data is decreased by the number of logical page data during the last programming operation.

[0052] In one embodiment, when moving data from an old physical block to a new physical block, after determining whether the destination block requires multiple programming steps, the method further includes: when moving data from an old physical block to a new physical block, if the destination block does not require multiple programming steps, then the UPC table is not modified.

[0053] Specifically, when moving data from an old physical block to a new physical block, the UPC table is not modified if the destination block does not require multiple programming iterations.

[0054] When writing data, if the target block needs to be programmed multiple times, the VPC count of the old physical block pointed to by the logical page address is reduced by the amount of logical page data written during the last programming, and the VPC count of the new physical block to which the logical page address is written is increased by the amount of logical page data written.

[0055] In the above embodiments, a UPC table is created to count the number of unclosed pages. When moving data from an old physical block to a new physical block, it is determined whether the destination block requires multiple programming operations. If multiple programming operations are required, the UPC count of the old physical block is increased by the number of logical page data during the first programming operation. During the last programming operation, the UPC count of the old physical block corresponding to the programming data is subtracted from the number of logical page data. This solution can correctly and reasonably retain or release physical blocks for NAND flash memory that requires multiple programming operations, ensuring the read and write functionality of the solid-state drive.

[0056] In one embodiment, a solid-state drive block management method based on multiple programming is provided, the method further comprising:

[0057] When writing data, if the destination block needs to be programmed multiple times, the number of logical page data written is subtracted from the VPC count of the old physical block pointed to by the logical page address during the last programming, and the number of logical page data written is increased in the VPC count of the new physical block to which the logical page address is written.

[0058] Specifically, refer to Figure 4 The flowchart illustrating the data migration process includes:

[0059] 4.1 When moving data from one logical page, allocate a new physical page address PPA1.

[0060] 4.2 Determine if the physical page address needs to be programmed multiple times. If not, proceed as with the traditional VPC scheme: decrement the VPC count of the physical block where the old mapping is located by 1, map the logical page address to the newly allocated physical page address PPA1, increment the VPC count of the physical block where PPA1 is located by 1, and the process ends.

[0061] 4.3 If PPA1 requires multiple programming iterations, then only the first programming iteration will be processed. The UPC count of the physical block containing the old mapping will be incremented by 1, and the processing will end.

[0062] refer to Figure 5 The flowchart shown illustrates the processing flow of the last programming step in a series of programming operations, including:

[0063] 5.1 During the last programming operation that processes data from one logical page, decrement the UPC count of the physical block containing the old mapping by 1.

[0064] 5.2. Subtract 1 from the VPC count of the physical block where the old mapping is located.

[0065] 5.3 Map the logical page address to the newly allocated physical page address PPA1.

[0066] 5.4. Increment the VPC count of the physical block where PPA1 is located by 1.

[0067] In one embodiment, a solid-state drive block management method based on multiple programming is provided, the method further comprising: if a physical block has been programmed and the counts in the VPC table and UPC table of the physical block are both 0, then the physical block can be reclaimed.

[0068] For specific details, please refer to Figure 6 The flowchart shown illustrates the process of determining whether a physical block can be reclaimed, and includes the following steps:

[0069] 6.1 When a physical block is fully programmed, and the VPC count is 0 and the UPV count is 0, the physical block is considered reclaimable.

[0070] 6.2 Otherwise, the physical block is considered to still contain valid data and cannot be reclaimed.

[0071] In this embodiment, the problem that the traditional VPC method cannot be applied to NAND flash memory that requires multiple programming sessions is solved, so that physical blocks can be correctly and reasonably retained or released when multiple programming sessions are required.

[0072] It should be understood that, although Figures 3-6 The steps in the flowchart are shown sequentially as indicated by the arrows, but these steps are not necessarily executed in the order indicated by the arrows. Unless otherwise specified herein, there is no strict order in which these steps are executed, and they can be performed in other orders. Figures 3-6At least some of the steps in the process may include multiple sub-steps or multiple stages. These sub-steps or stages are not necessarily completed at the same time, but can be executed at different times. The execution order of these sub-steps or stages is not necessarily sequential, but can be executed in turn or alternately with other steps or at least some of the sub-steps or stages of other steps.

[0073] In one embodiment, such as Figure 7 As shown, a solid-state drive block management device 700 based on multiple programming is provided, the device comprising:

[0074] A creation module 701 is used to create a UPC table, which is used to count the number of unclosed pages.

[0075] The judgment module 702 is used to determine whether the destination block needs to be programmed multiple times when data is moved from the old physical block to the new physical block.

[0076] The first processing module 703 is used to increment the UPC count of the old physical block by the number of logical page data during the first programming if multiple programming operations are required.

[0077] The second processing module 704 is used to subtract the number of logical page data from the UPC count of the old physical block corresponding to the programming data during the last programming.

[0078] In one embodiment, the determining module 702 is further configured to:

[0079] When moving data from an old physical block to a new physical block, the UPC table is not modified if the destination block does not require multiple programming steps.

[0080] In one embodiment, such as Figure 8 As shown, a solid-state drive block management device 700 based on multiple programming is provided. This device further includes a VPC counting module 705, which is used for:

[0081] When writing data, if the destination block needs to be programmed multiple times, the number of logical page data written is subtracted from the VPC count of the old physical block pointed to by the logical page address during the last programming, and the number of logical page data written is increased in the VPC count of the new physical block to which the logical page address is written.

[0082] In one embodiment, such as Figure 9 As shown, a solid-state drive block management device 700 based on multiple programming is provided. This device further includes a recycling module 706, which is used for:

[0083] If a physical block has been programmed and the counts in both the VPC table and the UPC table of the physical block are 0, then the physical block can be reclaimed.

[0084] For specific limitations regarding solid-state drive block management devices based on multiple programming, please refer to the limitations of solid-state drive block management methods based on multiple programming mentioned above, which will not be repeated here.

[0085] In one embodiment, a computer device is provided, the internal structure of which can be shown as follows: Figure 10 As shown, the computer device includes a processor, memory, and a network interface connected via a device bus. The processor provides computing and control capabilities. The memory includes a non-volatile storage medium and internal memory. The non-volatile storage medium stores operating devices, computer programs, and a database. The internal memory provides an environment for the operation of the operating devices and computer programs stored in the non-volatile storage medium. The network interface is used for communication with external terminals via a network connection. When the computer program is executed by the processor, it implements a solid-state drive block management method based on multiple programming.

[0086] Those skilled in the art will understand that Figure 10 The structure shown is merely a block diagram of a portion of the structure related to the present application and does not constitute a limitation on the computer device to which the present application is applied. Specific computer devices may include more or fewer components than those shown in the figure, or combine certain components, or have different component arrangements.

[0087] In one embodiment, a computer device is provided, including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the computer program to implement the steps in the various method embodiments described above.

[0088] In one embodiment, a computer-readable storage medium is provided having a computer program stored thereon, which, when executed by a processor, implements the steps in the various method embodiments described above.

[0089] Those skilled in the art will understand that all or part of the processes in the methods of the above embodiments can be implemented by a computer program instructing related hardware. The computer program can be stored in a non-volatile computer-readable storage medium, and when executed, it can include the processes of the embodiments of the above methods. Any references to memory, storage, databases, or other media used in the embodiments provided in this application can include non-volatile and / or volatile memory. Non-volatile memory can include read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), or flash memory. Volatile memory can include random access memory (RAM) or external cache memory. By way of illustration and not limitation, RAM is available in various forms, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), dual data rate SDRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), synchronous link DRAM (SLDRAM), RAMbus direct RAM (RDRAM), direct memory bus dynamic RAM (DRDRAM), and RAMbus dynamic RAM (RDRAM), etc.

[0090] The technical features of the above embodiments can be combined in any way. For the sake of brevity, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.

[0091] The embodiments described above are merely illustrative of several implementation methods of this application, and while the descriptions are relatively specific and detailed, they should not be construed as limiting the scope of the invention patent. It should be noted that those skilled in the art can make various modifications and improvements without departing from the concept of this application, and these all fall within the protection scope of this application. Therefore, the protection scope of this patent application should be determined by the appended claims.

Claims

1. A solid-state drive block management method based on multiple programming, the method comprising: Create a UPC table to count the number of pages that are not closed; When moving data from an old physical block to a new physical block, determine whether the destination block requires multiple programming operations. If multiple programming operations are required, the UPC count of the old physical block is increased by the number of logical page data during the first programming operation. During the last programming iteration, the UPC count of the old physical block corresponding to the programming data is subtracted from the number of logical page data. When writing data, if the target block needs to be programmed multiple times, the number of logical page data written is subtracted from the VPC count of the old physical block pointed to by the logical page address during the last programming, and the number of logical page data written is increased in the VPC count of the new physical block to which the logical page address is written. If a physical block has been programmed and the counts in both the VPC table and the UPC table of the physical block are 0, then the physical block can be reclaimed.

2. The multi-program based solid state disk block management method of claim 1, wherein, When moving data from the old physical block to the new physical block, after determining whether the destination block requires multiple programming steps, the process further includes: When moving data from an old physical block to a new physical block, the UPC table is not modified if the destination block does not require multiple programming steps.

3. A solid-state drive block management device based on multiple programming, characterized in that, The device includes: A creation module is provided, which is used to create a UPC table, which is used to count the number of unclosed pages. The judgment module is used to determine whether the destination block needs to be programmed multiple times when moving data from the old physical block to the new physical block. The first processing module is configured to, if multiple programming operations are required, increment the UPC count of the old physical block by the number of logical page data during the first programming operation. The second processing module is used to subtract the number of logical page data from the UPC count of the old physical block corresponding to the programming data during the last programming. The VPC counting module is used to: when writing data, if the target block needs to be programmed multiple times, then during the last programming, the VPC count of the old physical block pointed to by the logical page address is reduced by the number of logical page data written, and the VPC count of the new physical block to which the logical page address is written is increased by the number of logical page data written. The recycling module is configured to: if a physical block has been programmed and the counts in both the VPC table and the UPC table of the physical block are 0, then the physical block can be recycled.

4. The solid-state drive block management device based on multiple programming according to claim 3, characterized in that, The judgment module is also used for: When moving data from an old physical block to a new physical block, the UPC table is not modified if the destination block does not require multiple programming steps.

5. A computer device, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that, When the processor executes the computer program, it implements the steps of the method of claim 1 or 2.

6. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by a processor, it implements the steps of the method of claim 1 or 2.