Physical block topology management method and device of SSD (Solid State Disk), computer equipment and storage medium

By setting the direct correspondence between RU number and physical block number in the SSD, and optimizing physical block topology management with valid flag and a distinct block patch pool, the hardware concurrent channel occupation problem of SSD when compatible with FDP and non-FDP scenarios is solved, achieving more efficient resource allocation and overall performance improvement.

CN120144055APending Publication Date: 2025-06-13成都芯忆联信息技术有限公司
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202510218661.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-02-26
Publication Date
2025-06-13

Smart Images

  • Figure CN120144055A_ABST
    Figure CN120144055A_ABST
Patent Text Reader

Abstract

The invention relates to the technical field of solid state disks, and discloses a physical block topology management method and device of an SSD, computer equipment and a storage medium. The method comprises the following steps: obtaining an RU number distribution set by adopting vertical division; calculating according to the number of standard dies, marking an invalid RU id by using a valid flag, and putting the special-shaped topological dies which do not participate in calculation into a special-shaped block patch pool; a vacant RU id is searched, and compensation is carried out by using a corresponding granularity die so as to obtain a physical block topology combination relationship; and traversing the physical block topological combination relationship, and placing the remaining patch blocks in the vacant RU id of the same concurrent channel in sequence or placing the remaining patch blocks in the vacant RU position in sequence. By implementing the method provided by the invention, the accuracy and the high efficiency of the RU number distribution set are ensured, the management complexity is simplified, the conflict and the confusion of the RU numbers are effectively avoided, and the effectiveness of the RU numbers is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to solid state drive technology, and more particularly to a physical block topology management method, device, computer device and storage medium for an SSD. Background Art

[0002] With the continuous progress of solid state drive (SSD) technology, the way of data storage and management is undergoing a profound change. Among them, the proposal of Flexible Data Placement (FDP) technology marks the advancement of SSD data management strategies towards higher levels of intelligence and customization. The FDP technology allows the host system to have more refined control over the data location stored in the SSD, aiming to reduce the write amplification effect by optimizing the data layout, thereby significantly improving the overall performance of the SSD.

[0003] In the internal architecture of the SSD, the firmware plays a crucial role, which is responsible for managing core tasks such as the allocation, recycling and garbage collection of physical storage units (such as flash blocks). In order to realize the advantages of the FDP technology, the SSD firmware needs to design a more precise and detailed physical block partitioning strategy to ensure that data can be stored efficiently and orderly inside the SSD according to the strategy specified by the host.

[0004] However, in practical applications, the SSD not only needs to support the application scenarios of the FDP technology, but also needs to take into account the requirements of traditional non-FDP scenarios to achieve wide compatibility. The patent CN117762341A proposes an innovative solution, which optimizes the garbage collection process by constructing different capacity Garbage Collection Units (GCUs) in FDP application scenarios and non-FDP application scenarios. Specifically, in the FDP application scenario, the capacity of the recycling unit is designed to be relatively small to meet the requirements for rapid data migration and reorganization in this scenario; while in the non-FDP application scenario, a larger capacity recycling unit is adopted to optimize the garbage collection efficiency and reduce fragmentation. This design strategy enables the storage device to adapt to and efficiently serve two completely different application scenarios at the same time, significantly expanding the applicable range of the storage device and improving the utilization rate of the storage space.

[0005] Although the CN117762341A patent has made significant progress in compatibility and space utilization, it still faces an important challenge in actual deployment: the optimization of hardware concurrent channel occupancy. SSDs are usually equipped with multiple concurrent channels to support high-speed data transmission. If the design of the recycling unit fails to fully cover all concurrent channels, it may lead to uneven resource allocation. Specifically, when some channels face command accumulation due to insufficient recycling unit capacity, other channels may be idle. This unbalanced load distribution will directly affect the overall performance of the SSD and increase the risk of performance degradation.

[0006] Therefore, in the process of continuing to promote the development of FDP technology and its related storage management strategies, how to effectively solve the problem of hardware concurrent channel occupancy and ensure load balancing among channels has become a key technical problem that needs to be solved urgently in the current SSD design and optimization field. Summary of the invention

[0007] The purpose of the present invention is to overcome the deficiencies of the prior art and to provide a method, device, equipment and medium for managing physical block topology of an SSD.

[0008] In order to solve the above technical problems, the present invention adopts the following technical solutions:

[0009] In a first aspect, a method for managing physical block topology of an SSD is provided, including:

[0010] In the set disk mode, the RU number is equal to the physical block number, and vertical division is adopted, and numbering is performed according to the set formula to obtain the RU number allocation set;

[0011] According to the RU number allocation set, the standard die quantity is calculated, and invalid RU ids are marked with valid flags. Then, the heterogeneous topology dies that are not involved in the calculation are put into the heterogeneous block patch pool.

[0012] Search for missing RU ids from the patch pool of the special-shaped block in ascending order, and use the corresponding granularity die from the patch pool of the special-shaped block to compensate, so as to obtain the topological combination relationship of the physical block;

[0013] Traverse the physical block topology combination relationship. If there are still free patch blocks in the special-shaped block patch pool, put the remaining patch blocks into the vacant RU id of the same concurrent channel in sequence or put the remaining patch blocks into the vacant RU positions in sequence.

[0014] In a second aspect, a physical block topology management device for an SSD is provided, including:

[0015] A setting division unit is used to set the RU number to be equal to the physical block number in the standard disk mode, and adopt vertical division and perform numbering according to a set formula to obtain an RU number allocation set;

[0016] The calculation tags are put into the unit, which is used to allocate sets according to the RU number, calculate according to the standard die quantity, mark the invalid RU id with a valid flag, and then put the non - standard - shaped topology dies that do not participate in the calculation into the non - standard - shaped block patch pool;

[0017] Find the compensation unit, which is used to find the vacant RU id in the non - standard - shaped block patch pool in ascending order and take the corresponding - granularity dies from the non - standard - shaped block patch pool for compensation to obtain the physical block topology combination relationship;

[0018] Traverse the put - in unit, which is used to traverse the physical block topology combination relationship. If there are still idle patch blocks in the non - standard - shaped block patch pool, the remaining patch blocks are put into the vacant RU ids of the same concurrent channel in order or the remaining patch blocks are put into the vacant RU positions in order.

[0019] In a third aspect, a computer device is provided, including a memory, a processor, and a computer program stored in the memory and executable on the processor. When the processor executes the computer program, the steps of the above - mentioned physical block topology management method of the SSD are implemented.

[0020] In a fourth aspect, a computer - readable storage medium is provided. The computer - readable storage medium stores a computer program. When the computer program is executed by the processor, the steps of the above - mentioned physical block topology management method of the SSD are implemented.

[0021] For the above - mentioned physical block topology management method of the SSD, by setting the direct correspondence relationship between the RU number and the physical block number in the calibration disk mode and using vertical division and a specific formula for numbering, the accuracy and efficiency of the RU number allocation set are ensured. This design not only simplifies the management complexity but also effectively avoids the conflict and confusion of RU numbers, thus significantly improving the effectiveness of RU numbers; at the same time, using a valid flag to mark the invalid RU id can quickly identify and exclude invalid accesses, reducing the resource waste and performance loss caused by invalid accesses; in addition, for the possible non - standard - shaped topology structure in the SSD, the concept of a non - standard - shaped block patch pool is proposed. After calculating the standard die quantity and marking the invalid RU id, the non - standard - shaped topology dies that do not participate in the calculation are included in the patch pool, realizing the reasonable utilization of the non - standard - shaped structure. When compensating for the vacant RU id, suitable dies can be found from the patch pool in ascending order for compensation, thus obtaining a complete physical block topology combination relationship. This design not only improves the flexibility of physical block allocation but also ensures the full utilization of the internal space of the SSD.

[0022] The present invention will be further described below with reference to the accompanying drawings and specific embodiments. Description of the Drawings

[0023] To more clearly illustrate the technical solutions of the embodiments of the present invention, the following will briefly introduce the drawings required for the description of the embodiments. Obviously, the drawings in the following description are some embodiments of the present invention. For those of ordinary skill in the art, without creative efforts, other drawings can also be obtained based on these drawings.

[0024] Figure 1 It is a schematic flowchart of the physical block topology management method for the SSD provided by the embodiments of the present invention;

[0025] Figure 2 It is a schematic diagram of the allocation of physical blocks in the FDP mode provided by the embodiments of the present invention;

[0026] Figure 3 It is a schematic diagram of the application scenario of the special-shaped topology structure provided by the embodiments of the present invention;

[0027] Figure 4 It is a schematic diagram of the application scenario of the patch block format allocation provided by the embodiments of the present invention;

[0028] Figure 5 It is a schematic block diagram of the physical block topology management device for the SSD provided by the embodiments of the present invention;

[0029] Figure 6 It is a schematic diagram of the structure of the computer device in the embodiments of the present invention. Specific Embodiments

[0030] The following will clearly and completely describe the technical solutions in the embodiments of the present invention in conjunction with the drawings in the embodiments of the present invention. Obviously, the described embodiments are some, but not all, of the embodiments of the present invention. Based on the embodiments of the present invention, all other embodiments obtained by those of ordinary skill in the art without creative efforts fall within the protection scope of the present invention.

[0031] It should be understood that when used in this specification and the appended claims, the terms "comprising" and "including" indicate the presence of the described features, wholes, steps, operations, elements, and / or components, but do not exclude the presence or addition of one or more other features, wholes, steps, operations, elements, components, and / or their combinations.

[0032] It should also be understood that the terms used in this specification of the present invention are only for the purpose of describing specific embodiments and are not intended to limit the present invention. As used in this specification of the present invention and the appended claims, unless the context clearly indicates otherwise, the singular forms "a", "an", and "the" are intended to include the plural forms.

[0033] It should also be further understood that the term "and / or" used in the specification and appended claims of the present invention refers to any combination and all possible combinations of one or more of the associated listed items, and includes these combinations.

[0034] Please refer to Figures 1 to 4 the specific embodiments shown. The present invention discloses a method for physical block topology management of an SSD, including the following steps:

[0035] S110, in the set disk mode, the RU number is equal to the physical block number, and vertical division is adopted, and numbering is performed according to the set formula to obtain the RU number allocation set;

[0036] Specifically, in the FDP mode, according to the configuration, the SSD physical blocks will be finely allocated to facilitate the host to participate in the SSD data management. Assume that there are 4 dies under 1 concurrent channel, and the allocation granularity is all physical blocks under 1 concurrent channel as a virtual block structure RU (Reclaim Uint). Please refer to Figure 2 the illustration. At this time, one RU cannot cover all concurrent channels. When writing data, if the SSD firmware algorithm always gets the RU under channel 0, all write commands will pile up in the current channel and cannot be executed in time, while the RUs of channel 1+ are not used, resulting in waste of concurrent channels and affecting performance.

[0037] More specifically, in the set disk mode, since the management is relatively simple, the RU number (RU_id) is directly set to be equal to the physical block number (block_id). This means that each physical block directly corresponds to one RU, without additional number conversion or calculation. For example, if the physical block number is 0, the corresponding RU number is also 0; if the physical block number is 1, the corresponding RU number is 1, and so on.

[0038] In the FDP mode, since the physical block management is more refined, it is necessary to combine the dies managed under different concurrent channels to form a new RU. First, determine the effective Bit value (ch_id) of the concurrent channel and the effective Bit value (die_id) of the die number under the current concurrent channel. These values are usually determined according to the hardware design of the SSD and the number of concurrent channels. Then, calculate the RU number according to the formula RU_id = ch_id << shift1 + die_id << shift2 + block_id. Here, << represents the left shift operation, shift1 and shift2 are the number of bits for the left shift of ch_id and die_id respectively, ch_id is the effective Bit value of the concurrent channel, and die_id is the effective Bit value of the die number under the current concurrent channel. For example, assume there are 2 concurrent channels (ch_id is 0 or 1), each channel has 4 dies (die_id is from 0 to 3), and the physical block number starts from 0. If shift1 is 4 (indicating that ch_id occupies 4 bits) and shift2 is 2 (indicating that die_id occupies 2 bits), then for physical block 0 in die0 under channel 0, its RU number is 0 << 4 + 0 << 2 + 0 = 0; for physical block 1 in die2 under channel 1, its RU number is 1 << 4 + 2 << 2 + 1 = 21. To ensure that the RUs of the same concurrent channel are in continuous memory space, in the vertical division method, the RUs are allocated according to the physical block number under each concurrent channel. This means that within the same concurrent channel and physical block number range, the RU numbers will be continuous.

[0039] By implementing the above setting of the dial mode, where the RU number is equal to the physical block number, and using the vertical division and numbering according to the set formula to obtain the RU number allocation set, this technical feature brings the following technical effects:

[0040] Improve the search efficiency: In the dial mode, since the RU number is directly equal to the physical block number, no additional search or calculation steps are required, simplifying the management process. In the FDP mode, the RU numbers calculated by the formula ensure that the RUs of the same concurrent channel are at continuous memory addresses. This enables direct access within the corresponding RU range when batch searching for RUs of the same concurrent channel, without having to traverse the entire RU set, thus significantly improving the search efficiency.

[0041] Optimize the garbage collection (GC) process: When the GC selects the source block, since the RUs of the same concurrent channel are at continuous memory addresses, the source block can be directly selected within the corresponding RU range, reducing the search scope and complexity during the selection process. This not only improves the block selection efficiency of the GC but also helps reduce resource consumption and latency during the GC process, thereby enhancing the overall performance and stability of the SSD.

[0042] Enhance system scalability: In this embodiment, the RU number is calculated by a formula, and the values of shift1 and shift2 can be flexibly adjusted according to the hardware design of the SSD and the number of concurrent channels to adapt to SSDs of different scales and configurations.

[0043] S120, allocate the set according to the RU number, calculate according to the standard die number, mark the invalid RU id with the valid flag, and then put the non-standard topology die that does not participate in the calculation into the non-standard block patch pool;

[0044] Specifically, refer to Figure 3 As shown, when facing the scenario where the number of dies under each concurrent channel is inconsistent, first identify the number of standard dies and the number of non-standard dies. For the standard die part, calculate according to the established formula RU_id = ch_id << shift1 + die_id << shift2 + block_id, where ch_id, die_id, and block_id represent the concurrent channel ID, die number, and physical block number respectively, and shift1 and shift2 are displacement amounts used to adjust the bit widths of each part. For the non-standard die part, it does not directly participate in the calculation of the above formula, but is regarded as an additional resource or patch. First, calculate the complete RU number allocation set according to the number of standard dies. Subsequently, the non-standard dies that cannot directly participate in the calculation are specially marked and put into a set called the "non-standard block patch pool". This pool is used to manage all non-standard dies that do not directly participate in the RU calculation.

[0045] Considering the situation where the block bits may not be fully filled, first determine the range of actually available physical block numbers and adjust the bit width of block_id accordingly. For the Bit positions vacant due to medium particle limitations, they are not regarded as waste but are used for more refined management of RUs. For example, by adjusting the values of shift1 and shift2, the RU numbers can cover a wider range, even if some RUs actually point to invalid physical blocks. After calculating the complete set of RU number allocations, use the valid flag to mark each RU. If the RU corresponds to a valid combination of physical blocks, it is marked as valid; if the RU cannot correspond to a valid physical block due to medium limitations or irregular topologies, it is marked as invalid. For the RUs marked as invalid, in subsequent operations such as garbage collection and data migration, these RUs will be skipped to avoid resource waste and performance degradation caused by invalid operations. The irregular block patch pool is used to store all the irregular dies that do not directly participate in the RU calculation. These dies can be dynamically allocated when needed to compensate for the insufficient RU capacity caused by medium limitations or irregular topologies. When the system detects that a certain RU cannot reach the predetermined capacity due to a lack of sufficient dies, appropriate irregular dies can be selected from the irregular block patch pool for compensation, thus forming a complete RU with a capacity meeting the requirements. The management strategy of the irregular block patch pool can be adjusted according to actual needs. For example, the irregular dies with the smallest difference from the standard dies can be preferentially used for compensation to reduce the performance impact caused by irregular topologies.

[0046] By implementing the above technical feature of calculating according to the RU number allocation set based on the standard die quantity, marking the invalid RU ids with the valid flag, and then putting the irregular topology dies that do not participate in the calculation into the irregular block patch pool, the following technical effects are brought:

[0047] Improve the reliability and flexibility of RU ids: Through special conversion and the management of the irregular block patch pool, the present invention ensures that even under irregular topologies and medium limitations, valid and reliable RU ids can be calculated. At the same time, the irregular block patch pool provides additional flexibility, enabling the system to dynamically adjust the capacity and composition of RUs according to actual needs.

[0048] Reduce invalid traversal and resource waste: Using the valid flag to mark RUs avoids invalid operations during sequential traversal of RUs, thus saving system resources and improving traversal efficiency. By adjusting the bit width of the block bits and utilizing the vacant Bit positions, the present invention reduces the resource waste caused by medium particle limitations.

[0049] S130: Search for the missing RU id in the special block patch pool in ascending order, and take the corresponding granularity die from the special block patch pool for compensation to obtain the physical block topology combination relationship;

[0050] Specifically, first, the system traverses the RU number allocation set in ascending order to find those RU ids that have not been effectively allocated. These RU ids may not be directly mapped to valid physical block combinations due to media limitations or special topologies. Whenever a missing RU id is found, the system selects the corresponding number of dies of the appropriate granularity from the special block patch pool (special_patch_pool) for compensation. To optimize performance, the system tries to select dies with the same concurrent channels as the missing RU id and with physically adjacent block numbers for compensation. This can reduce the performance loss caused by special topologies and make the compensated RUs physically closer to each other, which is beneficial for fast data access. For the RUs compensated through the special block patch pool, the system records a patch flag indicating that the RU is composed of special block patches. At the same time, the system also records a valid flag indicating that the RU is currently valid and can be accessed and used normally. If for some reason (such as media failure or data corruption) the RU becomes unusable, the system can set the valid flag to invalid to avoid invalid access to the RU. If the dies in the special block patch pool cannot meet the compensation requirements for a missing RU id (for example, there are not enough dies with the same concurrent channels and adjacent physical block numbers), the system temporarily marks the RU id as missing and continues to try to compensate it in subsequent management operations.

[0051] Refer to Figure 4 As shown, to efficiently manage and access the RUs compensated through the special block patch pool, the system creates an index table (patch_table). Part of this table records the relationship between the offset Index and the RU id. The valid range of Index dynamically increases according to the actual addition situation. Each Index corresponds to a unique RU id, enabling the system to quickly locate the corresponding RU through the Index. Another part of the patch_table records the corresponding die numbers and physical block numbers according to the Index. In this way, when the system needs to access a certain RU, it can find the actual physical block address through the patch_table and then access the data stored therein. In subsequent traversal and access operations, the system first finds the corresponding Index in the patch_table through the RU id, and then obtains the actual die number and physical block number through the Index. Finally, the system accesses the data stored in the physical block based on these numbers.

[0052] By implementing the above-mentioned technique of finding the vacant RUid from the special-shaped block patch pool in ascending order and taking the corresponding granularity die from the special-shaped block patch pool for compensation to obtain the physical block topology combination relationship, the following technical effects are brought about:

[0053] Optimize RU composition and access efficiency: Through the compensation strategy and index management of the special-shaped block patch pool, the system can flexibly combine and utilize special-shaped dies to form effective RUs. This not only improves the utilization rate of RUs but also optimizes the data access efficiency.

[0054] Reduce resource waste and performance loss: The system reduces the performance loss caused by special-shaped topologies by selecting dies with the same concurrent channels and similar physical block numbers for compensation. At the same time, through index management, invalid traversal and access operations are avoided, reducing resource waste.

[0055] Improve system reliability and scalability: By recording the patch flag and valid flag, the system can timely detect and handle invalid RUs, improving system reliability. At the same time, the dynamic expansion ability of the index table patch_table enables the system to adapt to storage requirements of different scales and configurations, improving system scalability.

[0056] S140, traverse the physical block topology combination relationship. If there are still idle patch blocks in the special-shaped block patch pool, put the remaining patch blocks into the vacant RU ids of the same concurrent channel in sequence or put the remaining patch blocks into the vacant RU positions in sequence.

[0057] Specifically, the system first traverses the established physical block topology combination relationships, which include standard blocks and blocks compensated by the special-shaped block patch pool. During the traversal process, if it is found that there are still idle patch blocks in the special-shaped block patch pool (Patch pool), the system adopts the following strategies for processing:

[0058] a. Put into the vacant RU ids of the same concurrent channel: The system attempts to put these remaining patch blocks into the vacant RU ids of the same concurrent channel as them in sequence. This is done to maintain data locality and access efficiency because physical blocks of the same concurrent channel are often physically closer.

[0059] b. Put into the vacant RU positions: If no vacant RU id of the same concurrent channel as the remaining patch blocks can be found (possibly due to limitations in the number of concurrent channels), the system puts these patch blocks into any vacant RU positions in sequence.

[0060] For the patch blocks put into the RU through the above steps, the system needs to record the corresponding flag bits:

[0061] valid flag: This flag indicates that the current RU is valid and can be accessed and used normally.

[0062] patch flag: This indicates that the RU contains blocks compensated through the special-shaped block patch pool.

[0063] patch mix flag (in specific scenarios): When the patch blocks are placed in the vacant RU positions and the corresponding concurrent channels of these patch blocks are irregular, the system records this flag. This helps the system identify and handle these special RUs in subsequent operations.

[0064] Scenario 1: If the remaining patch blocks cannot make up a complete RU (i.e., their number of concurrent channels is insufficient), the system will place these patch blocks in the vacant RU ids with the same concurrent channel in sequence and record the valid flag and patch flag. At this time, due to the insufficient number of patch blocks, the capacity of the RU will be relatively small.

[0065] Scenario 2: If the corresponding block positions have been used up and no new RUs can be added (this situation may be encountered in step C-1), the system will place these remaining patch blocks in the vacant RU positions in sequence and record the valid flag, patch flag, and patch mix flag. This indicates that the block corresponding concurrent channels of the current RU are irregular and special attention needs to be paid to the processing.

[0066] By implementing the above traversal of the physical block topology combination relationship, if there are still idle patch blocks in the special-shaped block patch pool, the remaining patch blocks will be placed in the vacant RU ids with the same concurrent channel in sequence or the remaining patch blocks will be placed in the vacant RU positions in sequence. This technical feature brings the following technical effects:

[0067] Efficient utilization of patch blocks: By placing the remaining patch blocks in the vacant RUs in sequence, the system can efficiently utilize these patch blocks and avoid waste of resources.

[0068] Optimization of data access efficiency: Placing the patch blocks in the vacant RUs with the same concurrent channel as much as possible helps to maintain data locality, thereby improving data access efficiency.

[0069] Enhancement of system flexibility: The system can handle two special scenarios, namely, the situation where the patch blocks cannot make up a complete RU and the situation where the block positions have been used up. This enhances the flexibility and adaptability of the system.

[0070] Improving system reliability: By recording flag bits such as the valid flag, patch flag, and patch mix flag, the system can accurately identify and process RUs containing patch blocks, thereby improving the system's reliability.

[0071] Simplifying management operations: Clear flag bits and policies enable the system to more easily manage and access RUs containing patch blocks, simplifying storage management operations.

[0072] In one embodiment, after the step of sequentially placing the remaining patch blocks into the vacant RU ids of the same concurrent channel or sequentially placing the remaining patch blocks into the vacant RU positions, the method further includes:

[0073] Obtaining the RU id and identifying whether the current RU is valid through the valid flag;

[0074] If the current RU is valid, identifying whether the current RU needs to obtain the physical location through the patch table by the patch flag;

[0075] If needed, obtaining the physical location through the patch table;

[0076] If not needed, obtaining the real physical address through the RU conversion formula.

[0077] Specifically, the system first obtains the id of the RU to be accessed. This id is an identifier used by the system internally to uniquely identify each RU. Then, the system determines whether the current RU is valid by checking the valid flag. The valid flag is a flag bit used to indicate whether the RU is currently available. If the valid flag is true (or 1), it means the RU is valid; if it is false (or 0), it means the RU is invalid, possibly due to media failure, data corruption, or other reasons. If the RU is valid, the system then determines whether the current RU needs to obtain the physical location through the patch table by checking the patch flag. The patch flag is a flag bit used to indicate whether the RU contains blocks compensated by the special-shaped block patch pool. If the patch flag is true, it means the RU contains patch blocks and needs to obtain the actual physical location through the patch table; if it is false, it means the RU does not contain patch blocks and the real physical address can be directly obtained through the RU conversion formula.

[0078] Based on the value of the patch flag, the system adopts different strategies to obtain the physical location of the RU: If a patch table is required, the system obtains the actual physical location of the RU by querying the die number and physical block number recorded in the patch table. The patch table is an index table used to record the correspondence between the RU and the physical block. If a patch table is not required, the system directly uses the RU conversion formula to calculate the true physical address of the RU. This formula is usually determined based on the id of the RU and the physical layout of the storage system. After obtaining the physical location of the RU, the system can perform read and write operations on the data. At the same time, the system also records the valid flag and patch flag of each RU to quickly identify the validity of the RU and whether a patch table is required for access in subsequent operations. When the system needs to access the RU again, it can directly determine its validity quickly through the valid flag and decide whether to query the patch table to obtain the physical location through the patch flag, thus improving the access efficiency.

[0079] That is to say, through the quick identification of the valid flag and patch flag, the system can quickly judge the validity and access method of the RU, reduce unnecessary query and calculation operations, and improve the access efficiency. The system can efficiently manage the RU containing the heterogeneous block patches. By combining the use of the patch table and the RU conversion formula, it realizes the flexible handling of the complex storage layout. The use of the valid flag enables the system to promptly discover and handle invalid RUs, avoiding data errors or system crashes caused by accessing invalid RUs.

[0080] In one embodiment, after the step of sequentially placing the remaining patch blocks into the vacant RU ids of the same concurrent channel or sequentially placing the remaining patch blocks into the vacant RU positions, it further includes:

[0081] Dividing the number of partitions of the free block pool according to the maximum number of concurrent channels in the current RU allocation granularity;

[0082] Specifically, in the SSD firmware algorithm, a certain number of free blocks are usually reserved and placed in the free block pool (freepool) to facilitate writing new data after the previous block is full. In the FDP mode, free RUs are stored in the free pool, and their function is like that of a standard disk. However, during the operation of the SSD, due to the changing writing data times, the RUs stored in the free pool cannot be predicted. At this time, the obtained RUs may all be under the same concurrent channel and cannot evenly traverse each concurrent channel, and there is also a risk that the concurrent channels cannot be fully utilized. That is to say, the system needs to determine the maximum number of concurrent channels in the RU allocation granularity in the current SSD, which refers to the maximum number of concurrent channels that a single RU can utilize simultaneously. At the same time, the system also needs to know the number of concurrent channels actually occupied by each RU. Based on the maximum number of concurrent channels and the number of concurrent channels occupied by each RU, the system calculates the number of free pool partitions to be divided. The calculation formula is: the number of pools = the maximum number of concurrent channels / the number of concurrent channels occupied by each RU. For example, if the maximum number of concurrent channels is 16 and each RU occupies 4 concurrent channels, then the number of pools is 4. The system applies for free block pool partitions corresponding to the calculated number of pools according to the calculated number of pools. Each partition is an independent free block pool for managing free RUs belonging to different concurrent channels. During the operation of the SSD, when new data needs to be written, the system first selects the corresponding free block pool partition according to the target concurrent channel. Then, a free RU is allocated from this partition for data writing. In this way, the system can ensure that the RUs of different concurrent channels are evenly used, avoiding the situation where some channels are overloaded while other channels are idle. After each allocation or release of an RU, the system needs to update the information of the corresponding free block pool partition to ensure the accuracy of the free block pool status. This includes updating information such as the number and location of free RUs. In some special cases, such as when there are insufficient free RUs in a certain concurrent channel, the system may need to adopt additional strategies, such as borrowing free RUs from other partitions, dynamically adjusting the partition size, or triggering garbage collection and other mechanisms to recycle free RUs.

[0083] That is to say, by dividing the free block pool into multiple partitions and allocating them according to the concurrent channels, the system can ensure that the RUs of different concurrent channels are evenly used. This helps to improve the utilization rate of concurrent channels and reduce performance bottlenecks caused by some channels being overloaded. Evenly using concurrent channels can reduce competition and conflicts inside the SSD, thereby improving the overall performance of the storage system. In addition, by reasonably managing the free block pool partitions, the system can also reduce the frequency and overhead of garbage collection, further improving the storage efficiency.

[0084] Obtain the first channel number of the current RU, and determine the partition number to which the RU belongs through a modulo operation;

[0085] Specifically, when the system needs to allocate or manage an RU, it first obtains the first channel number of the RU. This number is an identifier used by the system internally to uniquely identify the concurrent channel to which the RU belongs. Usually, each RU is associated with one or more concurrent channels, and the first channel number refers to the number of the first concurrent channel associated with the RU. Next, the system uses the modulo operation to determine the partition number of the free block pool to which the current RU belongs. The calculation formula is: partition number = first channel number % number of pools. Here, the number of pools is the total number of free block pool partitions calculated previously based on the number of concurrent channels of the SSD and the RU allocation granularity. According to the calculated partition number, the system allocates the current RU to the corresponding free block pool partition. If the current RU is free, it is added to the free RU list of this partition; if data needs to be written to the current RU, the system allocates a free RU from this partition and writes the data into it. After each allocation or release of an RU, the system needs to update the information of the corresponding free block pool partition to ensure the accuracy of the free block pool status, which includes updating information such as the number and location of free RUs.

[0086] That is to say, by determining the partition number of the free block pool to which the RU belongs according to the first channel number of the RU, the system can ensure the balanced allocation and management of RUs in different concurrent channels. This helps to avoid the situation where some channels are overloaded while others are idle, thereby improving the utilization rate of concurrent channels. This solution uses a simple modulo operation to determine the partition number, without the need for complex algorithms or data structures. This simplifies the storage management operation, reduces the management complexity, and improves the system response speed.

[0087] Add the statistical information of the current number of open RUs for each partition of the free block pool. When obtaining an RU from the free block pool for writing data each time, check the RU quantity count of each partition and select the RU in the partition with the smallest count.

[0088] Specifically, the system adds a new statistic for each partition of the free block pool to record the number of open (i.e., free and available for writing data) RUs in the current partition. This statistic can be a simple counter that is dynamically updated as RUs are allocated and released. When the system needs to write data and obtains an RU from the free block pool, it first checks the RU quantity statistics of each partition. Then, it selects an RU from the partition with the smallest count for allocation. This means that the system always preferentially allocates RUs from the partition with the fewest free RUs to ensure balanced utilization of RUs in each partition. After each allocation or release of an RU, the system needs to update the RU quantity statistics of the corresponding partition. This includes decreasing the count when an RU is allocated and increasing the count when an RU is released. By maintaining the accuracy of the statistics, the system can more effectively manage the free block pool. In the early stage of SSD operation, since the number of RUs in each partition is relatively balanced, the system can issue write commands according to the concurrent channels. This means that the system can fully utilize the concurrent processing ability of the SSD, evenly distribute the write commands to different concurrent channels, and thus improve the stability of the write performance and the performance of the overall storage system.

[0089] That is to say, by adding the statistic of the number of RUs for each partition of the free block pool and selecting the most suitable RU according to this statistic when writing data, the system can ensure balanced utilization of RUs in each partition. This helps to avoid the situation where some partitions are overloaded while others are idle, thereby improving resource utilization and storage performance. In the early stage of SSD operation, since the number of RUs in each partition is relatively balanced, the system can issue write commands according to the concurrent channels. This helps to fully utilize the concurrent processing ability of the SSD, improve the stability of the write performance and the performance of the overall storage system. In addition, balanced utilization of the concurrent channels can also reduce competition and conflicts within the SSD, further reducing the write latency.

[0090] In one embodiment, after the step of adding the statistic of the current number of open RUs for each partition of the free block pool and checking the RU quantity count of each partition and selecting an RU from the partition with the smallest count when obtaining an RU from the free block pool for each write data, it further includes:

[0091] Setting an RU quantity threshold for each partition of the free block pool to monitor the number of RUs in each partition;

[0092] Specifically, after the SSD runs for a long time, due to different operating scenarios, there will be differences in the EC values (erase counts) and VC values (amount of valid data) of different RUs. According to the traditional GC scheme, only considering the RUs corresponding to the EC and VC values for migration will result in inconsistent numbers of RUs in the free pool of each partition. In the worst case, there is a risk of only the RUs under the same concurrent channel, causing a decrease in performance when the SSD runs for a long time.

[0093] That is to say, the system sets a RU quantity threshold for each partition of the free block pool. This threshold is determined comprehensively based on factors such as the overall capacity of the SSD, the number of concurrent channels, and the expected load distribution. The purpose of the threshold is to monitor the RU quantity of each partition and ensure that they are maintained within a reasonable range, thereby avoiding the situation where some partitions are overloaded while others are idle. During the operation of the SSD, the system continuously monitors the RU quantity of each partition of the free block pool. Whenever a RU is allocated or released, the system updates the RU quantity statistics of the corresponding partition and compares it with the preset threshold.

[0094] When the RU quantity of a certain partition is less than the preset threshold, select the eligible blocks among the RUs corresponding to the concurrent channels in this partition as source blocks for garbage collection.

[0095] Specifically, when the RU quantity of a certain partition is lower or higher than the preset threshold, the system will trigger a GC operation. The goal of the GC operation is to move some RUs from other partitions to this partition (if the quantity is too low), or move some RUs from this partition to other partitions (if the quantity is too high). The basis for the movement can be the erase count (EC value) and the valid data quantity (VC value) of the RUs, as well as other possible factors such as data locality and write mode. When performing the GC operation, the system not only considers the EC and VC values but also the RU quantity balance between partitions. This means that the system needs to formulate a more complex GC strategy to ensure that the performance optimization and resource balance requirements can be met simultaneously when moving RUs.

[0096] That is to say, during the operation of the SSD, the system continuously monitors the RU count of each free block pool partition. Whenever an RU is allocated or released, the system updates the RU count statistics of the corresponding partition and compares it with a preset threshold. When the RU count of a certain partition is lower than the preset threshold, the system triggers the GC operation. When selecting the source block, the system first looks for the free block pool partition with the lowest RU count and preferentially selects from the RUs of the corresponding concurrent channel in this partition. This is to ensure that the free RU count of each partition can be replenished in a timely manner and maintain overall balance. After determining the concurrent channel where the source block is located, the system further traverses the RU range corresponding to this channel, refers to information such as the erase count (EC) and valid data volume (VC), and selects the most suitable RU for GC. This step aims to ensure that the selected RU not only meets the conditions for GC but also minimizes the impact on storage performance. The system migrates the data in the selected source block to other free RUs and updates the relevant metadata. At the same time, the system also needs to release the space occupied by the source block so that it can be added back to the free block pool. After each GC operation, the system updates the RU count statistics of the corresponding partition and adjusts the threshold according to the actual situation. This helps the system adapt to the load changes during the operation of the SSD and ensures that the RU count of each partition always remains within a reasonable range.

[0097] The present invention ensures the accuracy and efficiency of the RU number allocation set by setting the direct correspondence between the RU number and the physical block number in the dial mode, and using vertical partitioning and a specific formula for numbering. This design not only simplifies the management complexity but also effectively avoids the conflict and confusion of RU numbers, thereby significantly improving the effectiveness of RU numbers. At the same time, by using the valid flag to mark invalid RU ids, invalid access can be quickly identified and excluded, reducing the resource waste and performance loss caused by invalid access. In addition, for the possible irregular topology structures in SSDs, the concept of an irregular block patch pool is proposed. After calculating the number of standard dies and marking invalid RU ids, the irregular topology dies that do not participate in the calculation are incorporated into the patch pool, realizing the rational utilization of irregular structures. When compensating for missing RU ids, suitable dies can be found from the patch pool in ascending order for compensation, thus obtaining a complete physical block topology combination relationship. This design not only improves the flexibility of physical block allocation but also ensures the full utilization of the internal space of SSDs. In addition, the present invention also considers the management problem of concurrent channels. By partitioning and managing according to concurrent channels, the risk of blocking of concurrent channels is effectively avoided. This strategy ensures the load balance between channels and maximizes the advantages of concurrent channels. Especially when dealing with irregular block patches, the remaining patch blocks can be sequentially placed into the missing RU ids or missing RU positions in the same concurrent channel, thereby further stabilizing the write data performance and improving the overall response speed and throughput of the SSD. In addition, the physical block topology management method of the present invention is not only applicable to standard SSD structures but also can well be compatible with and handle irregular topology structures, showing good compatibility and scalability. This enables SSDs to maintain high performance and stability in different application scenarios and meet diverse storage requirements.

[0098] Figure 5 FIG. 4 is a schematic block diagram of a physical block topology management apparatus 300 for an SSD provided by an embodiment of the present invention. As Figure 5 shown, corresponding to the above physical block topology management method for an SSD, the present invention also provides a physical block topology management apparatus 300 for an SSD. The physical block topology management apparatus 300 for an SSD includes units for executing the above physical block topology management method for an SSD, and the apparatus can be configured in a server. Specifically, please refer to Figure 5 FIG. 4, the physical block topology management apparatus 300 for an SSD includes a setting and partitioning unit 301, a calculating, marking and placing unit 302, a searching and compensating unit 303, and a traversing and placing unit 304;

[0099] The setting and partitioning unit 301 is configured to set that in the dial mode, the RU number is equal to the physical block number, and perform vertical partitioning and numbering according to a set formula to obtain a RU number allocation set;

[0100] The calculation tag is placed into unit 302, which is used to allocate sets according to the RU number, calculate according to the standard die quantity, mark invalid RU ids with the valid flag, and then place the non - standard - shaped topology dies that do not participate in the calculation into the non - standard - shaped block patch pool;

[0101] The compensation unit 303 is used to find the vacant RU ids in the non - standard - shaped block patch pool in ascending order and take the corresponding - granularity dies from the non - standard - shaped block patch pool for compensation to obtain the physical block topology combination relationship;

[0102] The traversal placement unit 304 is used to traverse the physical block topology combination relationship. If there are still idle patch blocks in the non - standard - shaped block patch pool, the remaining patch blocks are placed into the vacant RU ids of the same concurrent channel in sequence or the remaining patch blocks are placed into the vacant RU positions in sequence.

[0103] In one embodiment, the device further includes:

[0104] The acquisition and recognition unit is used to acquire the RU id and recognize whether the current RU is valid through the valid flag;

[0105] The recognition unit is used to, if the current RU is valid, recognize whether the current RU needs to obtain the physical location through the patch flag;

[0106] The acquisition unit is used to, if not, obtain the real physical address through the RU conversion formula.

[0107] In one embodiment, the device further includes:

[0108] The partitioning unit is used to partition the number of partitions of the idle block pool according to the maximum number of concurrent channels in the current RU allocation granularity;

[0109] The acquisition and determination unit is used to acquire the first channel number of the current RU and determine the partition number to which the RU belongs through the remainder operation;

[0110] The new selection unit is used to add the statistical information of the current number of open RUs for each partition of the idle block pool. When obtaining an RU from the idle block pool for each write data, check the RU quantity count of each partition and select the RU in the partition with the smallest count.

[0111] In one embodiment, the device further includes:

[0112] The setting unit is used to set the RU quantity threshold for each partition of the idle block pool to monitor the RU quantity of each partition;

[0113] A selection and recycling unit is configured to, when the number of RUs in a certain partition is less than a preset threshold, select qualified blocks from the RUs corresponding to the concurrent channels in that partition as source blocks for garbage collection.

[0114] It should be noted that those skilled in the art can clearly understand the specific implementation processes of the above SSD physical block topology management device 300 and each unit. They can refer to the corresponding descriptions in the foregoing method embodiments. For the sake of convenience and brevity of description, they will not be elaborated here.

[0115] In one embodiment, a computer device is provided. This computer device can be a server, and its internal structure diagram can be as Figure 6 shown. The computer device includes a processor, a memory, a network interface, and a database connected through a system bus. Among them, the processor of the computer device is used to provide computing and control capabilities. The memory of the computer device includes a non-volatile and / or volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system, a computer program, and a database. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The network interface of the computer device is used to communicate with an external client through a network connection. When the computer program is executed by the processor, it realizes the functions or steps on the server side of an SSD physical block topology management method.

[0116] In one embodiment, a computer device is provided, including a memory, a processor, and a computer program stored on the memory and executable on the processor. When the processor executes the computer program, the following steps are implemented:

[0117] In the set disk mode, the RU number is equal to the physical block number, and vertical division is adopted. Numbering is performed according to a set formula to obtain a RU number allocation set; according to the RU number allocation set, calculations are performed according to the standard die quantity, and invalid RU ids are marked with valid flag. Then, the special-shaped topology dies that do not participate in the calculation are placed in the special-shaped block patch pool; search for vacant RU ids in the special-shaped block patch pool in ascending order, and take corresponding granularity dies from the special-shaped block patch pool for compensation to obtain a physical block topology combination relationship; traverse the physical block topology combination relationship. If there are still idle patch blocks in the special-shaped block patch pool, the remaining patch blocks are sequentially placed into the vacant RU ids of the same concurrent channel or the remaining patch blocks are sequentially placed into the vacant RU positions.

[0118] In one embodiment, a computer-readable storage medium is provided, on which a computer program is stored. When the computer program is executed by a processor, the following steps are implemented:

[0119] In the set dial mode, the RU number is equal to the physical block number, and vertical division is adopted. Numbering is performed according to the set formula to obtain the RU number allocation set; according to the RU number allocation set, calculate according to the standard die quantity, mark the invalid RU id with a valid flag, and then put the special-shaped topology dies that do not participate in the calculation into the special-shaped block patch pool; find the vacant RU id in the special-shaped block patch pool in ascending order, and take the corresponding granularity die from the special-shaped block patch pool for compensation to obtain the physical block topology combination relationship; traverse the physical block topology combination relationship. If there are still idle patch blocks in the special-shaped block patch pool, put the remaining patch blocks into the vacant RU ids of the same concurrent channel in sequence or put the remaining patch blocks into the vacant RU positions in sequence.

[0120] It should be noted that for the functions or steps that can be realized by the above computer-readable storage medium or computer device, reference can be made to the relevant descriptions on the server side and the client side in the foregoing method embodiments. To avoid repetition, they will not be described one by one here.

[0121] Those of ordinary skill in the art can understand that all or part of the processes of implementing the methods in the above embodiments can be completed by instructing relevant hardware through a computer program. The computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the above method embodiments. Among them, any reference to a memory, storage, database, or other medium used in the embodiments provided in the present application can include non-volatile and / or volatile memories. The non-volatile memory can include read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), or flash memory. The volatile memory can include random access memory (RAM) or an 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), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), synchronous link (Synchlink) DRAM (SLDRAM), memory bus (Rambus) direct RAM (RDRAM), direct memory bus dynamic RAM (DRDRAM), and memory bus dynamic RAM (RDRAM), etc.

[0122] Those skilled in the art can clearly understand that, for the convenience and conciseness of description, only the division of the above-mentioned functional units and modules is used as an example. In actual applications, the above-mentioned functions can be assigned to different functional units and modules according to needs, that is, the internal structure of the device is divided into different functional units or modules to complete all or part of the functions described above.

[0123] The above-described embodiments are only used to illustrate the technical solutions of the present invention, rather than to limit them; although the present invention has been described in detail with reference to the foregoing embodiments, those of ordinary skill in the art should understand that they can still modify the technical solutions recorded in the foregoing embodiments, or perform equivalent replacements on some of the technical features; and these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the spirit and scope of the technical solutions of the embodiments of the present invention, and should all be included in the protection scope of the present invention.

Claims

1. A physical block topology management method for SSD, characterized in that: include: In the set disk mode, the RU number is equal to the physical block number, and vertical division is adopted, and numbering is performed according to the set formula to obtain the RU number allocation set; According to the RU number allocation set, the standard die quantity is calculated, and invalid RU ids are marked with valid flags. Then, the heterogeneous topology dies that are not involved in the calculation are put into the heterogeneous block patch pool. Search for missing RUids from the patch pool of the special-shaped blocks in ascending order, and use the corresponding granularity die from the patch pool of the special-shaped blocks to compensate, so as to obtain the topological combination relationship of the physical blocks; Traverse the physical block topology combination relationship. If there are still free patch blocks in the special-shaped block patch pool, put the remaining patch blocks into the vacant RU id of the same concurrent channel in sequence or put the remaining patch blocks into the vacant RU positions in sequence.

2. The method for managing physical block topology of an SSD according to claim 1, characterized in that: After the step of sequentially placing the remaining patch blocks into the vacant RU ids of the same concurrent channel or sequentially placing the remaining patch blocks into the vacant RU positions, the method further includes: Get the RU id and use the valid flag to identify whether the current RU is valid; If the current RU is valid, the patch flag is used to identify whether the current RU needs a patch table to obtain the physical location; If not required, the real physical address is obtained through the RU conversion formula.

3. The method for managing physical block topology of an SSD according to claim 1, characterized in that: After the step of sequentially placing the remaining patch blocks into the vacant RU ids of the same concurrent channel or sequentially placing the remaining patch blocks into the vacant RU positions, the method further includes: Divide the number of partitions of the free block pool according to the maximum number of concurrent channels in the current RU allocation granularity; Get the first channel number of the current RU, and determine the partition number to which the RU belongs through the modulo operation; For each partition of the free block pool, add the statistical information of the current number of open RUs. Each time you write data and get RUs from the free block pool, check the RU counts of each partition and select the RU in the partition with the smallest count.

4. The method for managing physical block topology of an SSD according to claim 3, characterized in that: The method further includes: adding statistical information of the number of currently open RUs to each partition of the free block pool, checking the RU count of each partition each time RUs are obtained from the free block pool when writing data, and selecting the RU in the partition with the smallest count. Set a RU quantity threshold for each partition of the free block pool to monitor the RU quantity of each partition; When the number of RUs in a partition is less than the preset threshold, the blocks that meet the requirements in the RUs of the corresponding concurrent channels in the partition are selected as source blocks for garbage collection.

5. A physical block topology management device for an SSD, characterized in that: include: A setting division unit is used to set the RU number to be equal to the physical block number in the standard disk mode, and adopt vertical division and perform numbering according to a set formula to obtain an RU number allocation set; The calculation mark is placed in the unit, which is used to calculate according to the RU number allocation set, according to the standard die quantity, and mark the invalid RU id with validflag, and then put the heterogeneous topology die that does not participate in the calculation into the heterogeneous block patch pool; A compensation unit is used to find the missing RU ID from the patch pool of the special-shaped block in ascending order, and to compensate the corresponding granularity die from the patch pool of the special-shaped block to obtain the topological combination relationship of the physical block; The traversal placement unit is used to traverse the topological combination relationship of the physical blocks. If there are still free patch blocks in the special-shaped block patch pool, the remaining patch blocks are placed in the vacant RU id of the same concurrent channel in sequence or the remaining patch blocks are placed in the vacant RU positions in sequence.

6. The physical block topology management device of SSD according to claim 5, characterized in that: The device also includes: Get identification unit, used to get RUid, and identify whether the current RU is valid through valid flag; An identification unit, used to identify whether the current RU needs a patch table to obtain a physical location through a patch flag if the current RU is valid; The acquisition unit is used to obtain the real physical address through the RU conversion formula if it is not needed.

7. The physical block topology management device of SSD according to claim 5, characterized in that: The device also includes: A partitioning unit is used to divide the number of partitions of the free block pool according to the maximum number of concurrent channels in the current RU allocation granularity; An acquisition and determination unit, used to acquire the first channel number of the current RU, and determine the partition number to which the RU belongs by a modulo operation; A new selection unit is added to add statistical information about the number of currently open RUs for each partition of the free block pool. Each time RUs are obtained from the free block pool when writing data, the RU counts of each partition are checked, and the RU in the partition with the smallest count is selected.

8. The physical block topology management device of SSD according to claim 7, characterized in that: The device also includes: A setting unit, used to set a RU quantity threshold for each partition of the free block pool, and used to monitor the RU quantity of each partition; The recycling unit is selected to select the blocks that meet the requirements in the RUs of the corresponding concurrent channels in a partition as source blocks for garbage collection when the number of RUs in the partition is less than a preset threshold.

9. 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, the steps of the physical block topology management method of the SSD as claimed in any one of claims 1 to 4 are implemented.

10. A storage medium, wherein the computer-readable storage medium stores a computer program, characterized in that: When the computer program is executed by a processor, the steps of the physical block topology management method of the SSD as claimed in any one of claims 1 to 4 are implemented.

Citation Information

Patent Citations

  • Adaptive construction method of storage block and storage device

    CN117762341A