Method and system for improving read-write performance of storage device and computer readable storage medium
By dividing the storage device into SLC and non-SLC blocks and splitting the data blocks into SLC and non-SLC split data blocks, the performance of TLC NAND Flash under high load scenarios is solved, achieving higher write and read performance stability and improving write and read performance.
Patent Information
- Application Number
- CN202210994153.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-08-18
- Publication Date
- 2025-11-18
- Estimated Expiration
- 2042-08-18
AI Technical Summary
Existing TLC NAND Flash storage devices cannot consistently provide high-speed write and read performance under high-load data volume scenarios, and the partial configuration of SLC Blocks will lead to physical capacity loss and increased costs.
The storage device's Super Block is divided into SLC blocks and non-SLC blocks according to the ratio of actual capacity to original capacity. Data blocks are then divided into SLC split data blocks and non-SLC split data blocks, and the split data is written to the corresponding blocks in sequence.
It achieves high-speed, consistently stable write and read performance by combining the performance of SLC and non-SLC blocks without reclaiming SLC blocks, thereby improving the overall performance of the storage device.
Smart Images

Figure CN115437563B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of data read / write technology for storage devices, specifically to a method, system, and computer-readable storage medium for improving the read / write performance of storage devices. Background Technology
[0002] NAND Flash is a type of erasable, non-volatile memory. It boasts advantages such as high density, low cost, non-volatility, low power consumption, and fast read / write and erase speeds, leading to its widespread application in data storage. Based on different storage media implementation principles, NAND Flash primarily includes the following cell types: SLC (Single-Level Cell), MLC (Multi-Level Cell), TLC (Triple-Level Cell), and QLC (Quad-Level Cell). Different cells offer varying capacities, performance, and lifespans, with storage capacity increasing progressively from SLC to MLC to TLC to QLC, while performance gradually decreases.
[0003] Taking the currently mainstream TLC NAND Flash as an example, although the storage capacity has increased, its performance is far inferior to SLC NAND Flash. To solve the performance problem, NAND Flash manufacturers provide an additional configuration that configures some or all blocks of the TLC NAND Flash to be used in SLC mode. The overhead is that only 1 / 3 of the TLC capacity can be used.
[0004] Most mainstream TLC / QLC storage products currently available are configured with SLC blocks, either fully or partially, to improve performance. If all blocks are configured as SLC blocks, two-thirds of the physical capacity will be lost, resulting in higher costs. If only some blocks are configured as SLC blocks, when the storage device is idle, the data stored in the SLC blocks will be moved to the TLC block area for SLC block reclamation. However, this approach also presents some problems: firstly, after the SLC blocks are reclaimed, their read performance reverts to TLC; secondly, in high-load, high-data-volume usage scenarios, because SLC blocks cannot be reclaimed in a timely manner, this approach cannot maintain high-speed write performance. Summary of the Invention
[0005] The purpose of this invention is to overcome the shortcomings of the above-mentioned background technology and provide a method, system, and computer-readable storage medium for improving the read and write performance of storage devices.
[0006] In a first aspect, this application provides a method for improving the read / write performance of a storage device, comprising the following steps:
[0007] The capacity of SLC blocks and non-SLC blocks is obtained by dividing all Super Blocks in the storage device according to the ratio of actual capacity to original capacity. The Super Block is a concurrent unit composed of all identical blocks in all independent NAND Flash Dies of the storage device.
[0008] Based on the obtained SLC block and non-SLC block capacities, obtain the capacity percentage of each block;
[0009] Based on the obtained capacity ratio of each block, the data blocks are divided into SLC split data blocks and non-SLC split data blocks;
[0010] When data is written to the storage device, the SLC-separated data blocks and non-SLC-separated data blocks are controlled to be written to the corresponding blocks in sequence.
[0011] According to the first aspect, in a first possible implementation of the first aspect, the non-SLC block is a TLC block, an MLC block, or a QLC block.
[0012] According to the first aspect, in a second possible implementation of the first aspect, the step of dividing all Super Blocks in the storage device according to the ratio of actual capacity to original capacity to obtain the capacity of SLC blocks and non-SLC blocks specifically includes the following steps:
[0013] Get the number N of Super Blocks in the storage device r ;
[0014] Obtain the ratio r between the actual capacity and the original capacity;
[0015] Based on the number N of Super Blocks in the obtained storage device r The ratio r between the actual capacity and the original capacity is used to obtain the capacity of SLC blocks and non-SLC blocks.
[0016] According to the second possible implementation of the first aspect, in the third possible implementation of the first aspect, the step of determining the number N of Super Blocks in the acquired storage device... r The steps to obtain the capacity of SLC blocks and non-SLC blocks, based on the ratio r of the actual capacity of the storage device to the total capacity of the storage device, specifically include the following steps:
[0017] The number N of Super Blocks in the acquired storage device r The ratio r of the actual storage device capacity to the total storage device capacity is obtained by parameter transformation according to the following formula to obtain the TLC block n. t and SLC block capacity n s :
[0018]
[0019] Where m is the capacity conversion ratio between non-SLC Block and SLC Block.
[0020] According to the third possible implementation of the first aspect, in the fourth possible implementation of the first aspect, the step of obtaining the capacity ratio of each block based on the obtained SLC block and non-SLC block capacities specifically includes the following steps:
[0021] The obtained TLC block n t and SLC block capacity n s To obtain the capacity percentage of each block:
[0022]
[0023] Where, r s r represents the percentage of SLC block capacity. t denoted as TLC block capacity percentage, and m is the capacity conversion ratio between non-SLC blocks and SLC blocks.
[0024] According to the fourth possible implementation of the first aspect, in the fifth possible implementation of the first aspect, the step of dividing the data block into SLC-based data blocks and non-SLC-based data blocks according to the obtained capacity ratio of each block specifically includes the following steps:
[0025] The obtained block capacity proportions are used to divide the data blocks into SLC-based data blocks and non-SLC-based data blocks according to the following formula:
[0026]
[0027] In the formula, d t For TLC offloading data blocks, d s For SLC split data blocks, m is the capacity conversion ratio between non-SLC blocks and SLC blocks, and d is the capacity conversion ratio between non-SLC blocks and SLC blocks. u Data streams are broken down into blocks by storage devices.
[0028] Secondly, this application provides a system for improving the read / write performance of a storage device, comprising:
[0029] The block capacity acquisition module is used to divide all Super Blocks in the storage device according to the ratio of actual capacity to original capacity to obtain the capacity of SLC blocks and non-SLC blocks. The Super Block is a concurrent unit composed of all identical blocks in all independent NAND Flash Dies in the storage device.
[0030] A block capacity percentage acquisition module, which is communicatively connected to the block capacity acquisition module, is used to acquire the capacity percentage of each block based on the acquired SLC block and non-SLC block capacities.
[0031] The data block acquisition module is communicatively connected to the block capacity ratio acquisition module and is used to divide the data block into SLC data blocks and non-SLC data blocks according to the acquired block capacity ratio.
[0032] The split-flow writing module is communicatively connected to the split-flow data block acquisition module. When the storage device writes data, it controls the SLC split-flow data blocks and non-SLC split-flow data blocks to be split and written to the corresponding blocks in sequence.
[0033] According to the second aspect, in a first possible implementation of the second aspect, the block capacity percentage acquisition module includes:
[0034] The Super Block Count Acquisition Submodule is used to obtain the number N of Super Blocks in the storage device. r ;
[0035] The actual capacity ratio acquisition submodule is used to obtain the ratio r of the actual capacity of the storage device to the total capacity of the storage device;
[0036] Each block capacity acquisition submodule is communicatively connected to the Super Block quantity acquisition submodule and the actual capacity ratio acquisition submodule, and is used to acquire the number N of Super Blocks in the storage device. r The ratio r between the actual capacity and the original capacity is used to obtain the capacity of SLC blocks and non-SLC blocks.
[0037] Thirdly, this application provides a computer-readable storage medium storing a computer program, which, when executed by a processor, implements all the method steps of the storage device read / write performance improvement method described above.
[0038] Compared with the prior art, the advantages of the present invention are as follows:
[0039] The storage device read / write performance improvement method provided in this application divides the storage block into SLC split data blocks and non-SLC split data blocks, and writes them sequentially to the corresponding blocks. This combines the performance of SLC data blocks and non-SLC data blocks, and does not require the recycling of SLC data blocks, thus providing high-speed, continuous and stable write and read performance. Attached Figure Description
[0040] Figure 1This is a flowchart of a method for improving the read / write performance of a storage device according to an embodiment of this application;
[0041] Figure 2 This is a block distribution state diagram of an embodiment of this application;
[0042] Figure 3 This is a schematic diagram of the data block splitting unit in an embodiment of this application;
[0043] Figure 4 This is a schematic diagram of data block splitting in an embodiment of this application;
[0044] Figure 5 The graphs show the function curves of v versus r for different n values in the embodiments of this application.
[0045] Figure 6 This is a functional block diagram of the storage device read / write performance improvement system according to an embodiment of this application;
[0046] Figure 7 This is a block diagram of another functional module of the storage system for improving read / write performance in this application embodiment. Detailed Implementation
[0047] Referring now to specific embodiments of the invention, examples of which are illustrated in the accompanying drawings. Although the invention will be described in conjunction with specific embodiments, it will be understood that it is not intended to limit the invention to the described embodiments. Rather, it is intended to cover variations, modifications, and equivalents included within the spirit and scope of the invention as defined by the appended claims. It should be noted that the method steps described herein can be implemented by any functional block or functional arrangement, and any functional block or functional arrangement can be implemented as a physical entity or a logical entity, or a combination of both.
[0048] To enable those skilled in the art to better understand the present invention, the present invention will be further described in detail below with reference to the accompanying drawings and specific embodiments.
[0049] Note: The examples described below are merely specific examples and are not intended to limit the embodiments of the present invention to the specific steps, values, conditions, data, order, etc. Those skilled in the art can utilize the concept of the present invention to construct more embodiments not mentioned herein by reading this specification.
[0050] Firstly, please refer to Figure 1 This application provides a method for improving the read / write performance of a storage device, comprising the following steps:
[0051] Step S1: Divide all Super Blocks in the storage device according to the ratio of actual capacity to original capacity to obtain the SLC block capacity and non-SLC block capacity;
[0052] Step S2: Based on the obtained SLC block and non-SLC block capacities, obtain the capacity ratio of each block;
[0053] Step S3: Based on the obtained capacity ratio of each block, divide the data block into SLC split data blocks and non-SLC split data blocks.
[0054] Step S4: When the storage device writes data, it controls the SLC split data blocks and non-SLC split data blocks to be split and written to the corresponding blocks in sequence.
[0055] When the storage device reads data, the control reads data from the corresponding block splitting sequentially from the SLC splitting data block and the non-SLC splitting data block.
[0056] In one embodiment, a concurrent unit consisting of all identical blocks in all independent NAND Flash Dies in the storage device is called a Super Block.
[0057] The storage device read / write performance improvement method provided in this application divides the storage block into SLC split data blocks and non-SLC split data blocks, and writes them sequentially to the corresponding blocks. This combines the performance of SLC data blocks and non-SLC data blocks, and does not require the recycling of SLC data blocks, thus providing high-speed, continuous and stable write and read performance.
[0058] Among them, the split data block is defined as the sub-data block after the data block is split, and the data on the sub-data block is split for writing or reading operations.
[0059] In one embodiment, the non-SLC block is a non-SLC Super Block, which is a TLC block, an MLC block, or a QLC block.
[0060] In one embodiment, taking TLC NAND Flash as an example, when the TLC Super Block is configured as SLC Super Block, its capacity is 1 / 3 of the original capacity, that is, the capacity conversion ratio m between the non-SLC Block and the SLC Block is 3.
[0061] In one embodiment, the step of dividing all Super Blocks in the storage device according to the ratio of actual capacity to original capacity to obtain the capacity of SLC blocks and non-SLC blocks specifically includes the following steps:
[0062] Get the number N of Super Blocks in the storage device r ;
[0063] Obtain the ratio r of the actual capacity of the storage device to the total capacity of the storage device;
[0064] Based on the number N of Super Blocks in the obtained storage device r The ratio of the actual capacity of the storage device to the total capacity of the storage device.
[0065] In one embodiment, the step is based on the number N of Super Blocks in the acquired storage device. r The steps to obtain the capacity of SLC blocks and non-SLC blocks, based on the ratio r between the actual capacity and the original capacity, specifically include the following steps:
[0066] The number N of Super Blocks in the acquired storage device r The ratio r of actual capacity to original capacity is transformed according to the following formula to obtain the TLC block n. t and SLC block capacity n s :
[0067] Single SLC Super Block capacity
[0068] Among them, C t For the capacity of a single TLC Super Block, C s Capacity of a single SLC Super Block;
[0069] C r =N r C t ;
[0070] Among them, C r This refers to the maximum total capacity of the storage devices;
[0071] The capacities of different blocks conform to the following equation:
[0072]
[0073] Among them, C x The actual capacity required by the storage device.
[0074] Transform Equation 1 to obtain Equation 2:
[0075]
[0076] r is the ratio of actual capacity to original capacity. 1 / 3≤r≤1, where m is the ratio of the capacity of the SLC block to the capacity of the non-SLC block.
[0077] Transform Equation 2 to obtain Equation 3:
[0078]
[0079] Based on block size c s and c t The number of Super Blocks in an SLC block can be determined. The number of Super Blocks in TLC blocks Equation 4 is obtained by combining the results:
[0080]
[0081] in, This is the ratio of the SLC block capacity to the TLC block capacity.
[0082] In one embodiment, the step of obtaining the capacity ratio of each block based on the obtained SLC block and non-SLC block capacities specifically includes the following steps:
[0083] The capacity c of each block is calculated according to Equation 3. s and c t This allows us to obtain the SLC block capacity percentage. TLC block capacity percentage Substituting the values into equation three yields the percentage of each block's capacity relative to its total block capacity:
[0084]
[0085] Where, r s r represents the percentage of SLC block capacity. t This represents the percentage of TLC block capacity. This is the ratio of the SLC block capacity to the TLC block capacity.
[0086] In one embodiment, during actual operation, the storage device splits the write data stream into data blocks, with the data block splitting unit being... Splitting coefficient N s The larger the value, the more stable the performance.
[0087] In one embodiment, the step of dividing the data block into SLC-based data blocks and non-SLC-based data blocks according to the obtained block capacity ratio specifically includes the following steps:
[0088] The obtained block capacity proportions are used to divide the data blocks into SLC-based data blocks and non-SLC-based data blocks according to the following formula:
[0089]
[0090] In the formula, d t For TLC offloading data blocks, d sFor SLC split data blocks, d is the ratio of SLC block capacity to TLC block capacity. u Data streams are broken down into blocks by storage devices.
[0091] By using pre-defined parameters and the number of SLC and TLC Super Blocks allocated according to Equation 4, the size of the distributed data blocks is determined by Equation 6 during use, and data is written to different blocks sequentially until the entire disk is filled. Throughout the process, because data is distributed across different blocks according to a predetermined ratio, and there is no need to reclaim SLC data blocks, the write and read performance combines the performance of both SLC and TLC blocks. This results in higher sustained write and read performance than TLC, thus improving the overall performance of the storage device.
[0092] In one embodiment, when the storage device writes or reads data, it controls the data on the SLC split data block and the non-SLC split data block to be split and written sequentially into the corresponding SLC block and the non-SLC block, or controls the data on the SLC split data block and the non-SLC split data block to be split and read sequentially from the SLC block and the non-SLC block.
[0093] In one embodiment, the sequential writing or reading of data is not in any particular order, and step S3 is repeated until the data writing or reading operation is completed.
[0094] The present invention will now be described in further detail with reference to specific implementation examples and accompanying drawings.
[0095] Step 1: In this example, the number N of NAND Flash Dies in the storage device has been determined. d The number of Super Blocks N r The capacity C of the Super Block t Maximum capacity C r =N r C t capacity ratio
[0096] Step 2: Obtain the SLC block capacity according to Equation 3. and SLC block capacity
[0097] Step 3: Obtain the number of SLC Super Blocks according to Equation 4. TLC Super Block Quantity Block distribution status as follows Figure 2 As shown;
[0098] Step 4: Obtain the SLC block proportion according to Equation 5. TLC block percentage
[0099] Step 5: When determining data splitting, write the data block splitting coefficient N. s =8N d The data block splitting unit can be obtained.
[0100] Step 6: Obtain the SLC split data block size according to Equation 6. and TLC split data block size like Figure 3 As shown;
[0101] Step 7: During the actual operation of the storage device, the write data stream is split into data blocks, decomposed into d s and d t It is written sequentially to the SLC block and TLC block until the data transmission is complete, such as... Figure 4 As shown.
[0102] In one embodiment, the sustained write performance w of SLC blocks in the storage device is determined. s And TLC block continuous write performance w t Its performance relationship conforms to Equation 7: w s =nw t (n>1), calculate the total performance of the storage device after load balancing. Substituting equations 6 and 7, we can derive equation 8: Extracting the TLC performance coefficients from Equation 7 separately yields Equation 8: Given n≥1 and 1 / 3≤r≤1, we can conclude that v≥1 always holds true, which means w≥w t ,like Figure 5 As shown, the function curves of Equation 8 are plotted for different values of n. It is evident that this data distribution method provides storage devices with great flexibility. The required capacity and performance can be configured using the above formula according to actual needs, resulting in higher sustained write and read speeds during actual use, thus improving the overall performance of the storage device.
[0103] Secondly, please refer to Figure 6 This application provides a system for improving the read / write performance of a storage device, comprising:
[0104] The block capacity acquisition module 100 is used to divide all Super Blocks in the storage device according to the ratio of actual capacity to original capacity to obtain the capacity of SLC blocks and non-SLC blocks. The Super Block is a concurrent unit composed of all identical blocks in all independent NAND Flash Dies in the storage device.
[0105] The block capacity percentage acquisition module 200 is communicatively connected to the block capacity acquisition module 100 and is used to acquire the capacity percentage of each block based on the acquired SLC block and non-SLC block capacities.
[0106] The data block acquisition module 300 is communicatively connected to the block capacity ratio acquisition module 200 and is used to divide the data block into SLC data blocks and non-SLC data blocks according to the acquired block capacity ratio.
[0107] The split write module 400 is communicatively connected to the split data block acquisition module 300. When the storage device writes or reads data, it controls the data on the SLC split data block and non-SLC split data block to be split and written to the corresponding blocks in sequence, or controls the data on the SLC split data block and non-SLC split data block to be split and read from the corresponding blocks in sequence.
[0108] In one embodiment, please refer to Figure 7 The block capacity percentage acquisition module 200 includes:
[0109] Super Block Count Acquisition Submodule 210 is used to acquire the number N of Super Blocks in the storage device. r ;
[0110] The actual capacity ratio acquisition submodule 220 is used to obtain the ratio r of the actual capacity of the storage device to the total capacity of the storage device;
[0111] The block capacity acquisition submodule 230 is communicatively connected to the Super Block quantity acquisition submodule and the actual capacity ratio acquisition submodule, and is used to acquire the number of Super Blocks N in the storage device. r The ratio r between the actual capacity and the original capacity is used to obtain the capacity of SLC blocks and non-SLC blocks.
[0112] Thirdly, this application provides a computer-readable storage medium storing a computer program, which, when executed by a processor, implements all the method steps of the storage device read / write performance improvement method described above.
[0113] Fourthly, this application provides a storage device that, when executed, implements all the method steps of the storage device read / write performance improvement method described above. It has at least two different operating units. By executing the storage device read / write performance improvement method described above, by dividing the storage block into SLC split data blocks and non-SLC split data blocks, and writing them sequentially into the corresponding blocks, the performance of SLC data blocks and non-SLC data blocks is combined. At the same time, there is no need to reclaim SLC data blocks, thus possessing high-speed, continuously stable write performance and read performance.
[0114] In one embodiment, taking TLC NAND Flash as an example, the storage device includes two different data operation units: TLC Block and TLC Block. The non-SLC Super Block is a TLC Super Block, an MLC Super Block, or a QLC Super Block.
[0115] Based on the same inventive concept, embodiments of this application also provide a computer-readable storage medium storing a computer program thereon, which, when executed by a processor, implements all or part of the method steps of the above method.
[0116] The present invention can implement all or part of the processes in the above methods, or it can be accomplished by a computer program instructing related hardware. The computer program can be stored in a computer-readable storage medium, and when executed by a processor, it can implement the steps of the various method embodiments described above. The computer program includes computer program code, which can be in the form of source code, object code, executable file, or some intermediate form. The computer-readable medium can include: any entity or device capable of carrying computer program code, recording media, USB flash drive, portable hard drive, magnetic disk, optical disk, computer memory, read-only memory (ROM), random access memory (RAM), electrical carrier signals, telecommunication signals, and software distribution media, etc. It should be noted that the content included in the computer-readable medium can be appropriately added or removed according to the requirements of legislation and patent practice in the jurisdiction. For example, in some jurisdictions, according to legislation and patent practice, the computer-readable medium does not include electrical carrier signals and telecommunication signals.
[0117] Based on the same inventive concept, embodiments of this application also provide an electronic device, including a memory and a processor. The memory stores a computer program that runs on the processor. When the processor executes the computer program, it implements all or part of the method steps described above.
[0118] The processor can be a Central Processing Unit (CPU), or other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. A general-purpose processor can be a microprocessor or any conventional processor. The processor is the control center of the computer device, connecting all parts of the computer device through various interfaces and lines.
[0119] Memory can be used to store computer programs and / or modules. The processor performs various functions of the computer device by running or executing the computer programs and / or modules stored in the memory, and by accessing data stored in the memory. Memory can primarily include a program storage area and a data storage area. The program storage area can store the operating system and at least one application program required for a function (e.g., sound playback, image playback, etc.); the data storage area can store data created based on the use of the mobile phone (e.g., audio data, video data, etc.). Furthermore, memory can include high-speed random access memory, and can also include non-volatile memory, such as hard disks, RAM, plug-in hard disks, SmartMedia Cards (SMC), Secure Digital (SD) cards, Flash Cards, at least one disk storage device, flash memory device, or other volatile solid-state storage devices.
[0120] Those skilled in the art will understand that embodiments of the present invention can be provided as methods, systems, servers, or computer program products. Therefore, the present invention can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, the present invention can take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage and optical storage) containing computer-usable program code.
[0121] This invention is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), servers, and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart... Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.
[0122] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.
[0123] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.
[0124] Obviously, those skilled in the art can make various modifications and variations to this invention without departing from its spirit and scope. Therefore, if these modifications and variations fall within the scope of the claims of this invention and their equivalents, this invention also intends to include these modifications and variations.
Claims
1. A method for improving the read / write performance of a storage device, characterized in that, Includes the following steps: The capacity of SLC blocks and the capacity of non-SLC blocks are obtained by dividing all Super Blocks in the storage device according to the ratio of actual capacity to original capacity. The Super Block is a concurrent unit composed of all identical blocks in all independent NAND Flash Dies in the storage device. Based on the obtained SLC block and non-SLC block capacities, obtain the capacity percentage of each block; Based on the obtained capacity ratio of each block, the data blocks are divided into SLC split data blocks and non-SLC split data blocks; When the storage device writes or reads data, it controls the data on the SLC split data block and the non-SLC split data block to be split and written to the corresponding block in sequence, or controls the data on the SLC split data block and the non-SLC split data block to be read from the corresponding block in sequence. The step of dividing all Super Blocks in the storage device according to the ratio of actual capacity to original capacity to obtain the capacity of SLC blocks and non-SLC blocks specifically includes the following steps: Get the number of Super Blocks in the storage device ; Obtain the ratio of the actual capacity of the storage device to the total capacity of the storage device. ; Based on the number of Super Blocks in the obtained storage device and the ratio of actual capacity to original capacity Get the capacity of SLC blocks and non-SLC blocks.
2. The method for improving the read / write performance of a storage device as described in claim 1, characterized in that, The non-SLC blocks are TLC blocks, MLC blocks, or QLC blocks.
3. The method for improving the read / write performance of a storage device as described in claim 1, characterized in that, The number of Super Blocks in the acquired storage device and the ratio of actual capacity to original capacity The steps to obtain the capacity of SLC blocks and non-SLC blocks specifically include the following: The number of Super Blocks in the acquired storage device and the ratio of actual capacity to original capacity The parameters are transformed according to the following formula to obtain the TLC block. and SLC block capacity : ; in, .
4. The method for improving the read / write performance of a storage device as described in claim 3, characterized in that, The step of obtaining the capacity ratio of each block based on the obtained SLC block and non-SLC block capacities specifically includes the following steps: The obtained TLC blocks and SLC block capacity The following formula is used to transform the parameters and obtain the capacity ratio of each block: ; in, This represents the percentage of SLC block capacity. This represents the percentage of TLC block capacity. 。 5. The method for improving the read / write performance of a storage device as described in claim 4, characterized in that, The step of dividing the data block into SLC-based data blocks and non-SLC-based data blocks according to the obtained capacity ratio of each block specifically includes the following steps: The obtained block capacity proportions are used to divide the data blocks into SLC-based data blocks and non-SLC-based data blocks according to the following formula: ; In the formula, For TLC split data blocks, For SLC split data blocks, , Data streams are broken down into blocks by storage devices.
6. A system for improving the read / write performance of a storage device, characterized in that, include: The block capacity acquisition module is used to divide all Super Blocks in the storage device into SLC blocks and non-SLC blocks according to the ratio of actual capacity to original capacity. The Super Block is a concurrent unit composed of all identical Blocks in all independent NAND Flash Dies in the storage device. A block capacity percentage acquisition module, which is communicatively connected to the block capacity acquisition module, is used to acquire the capacity percentage of each block based on the acquired SLC block and non-SLC block capacities. The data block acquisition module is communicatively connected to the block capacity ratio acquisition module and is used to divide the data block into SLC data blocks and non-SLC data blocks according to the acquired block capacity ratio. The split read / write control module is communicatively connected to the split data block acquisition module. When the storage device writes or reads data, it controls the data on the SLC split data block and the non-SLC split data block to be split and written to the corresponding blocks in sequence, or controls the data on the SLC split data block and the non-SLC split data block to be split and read from the corresponding blocks in sequence. The block capacity percentage acquisition module includes: The Super Block count acquisition submodule is used to obtain the number of Super Blocks in the storage device. ; The actual capacity ratio acquisition submodule is used to obtain the ratio of the actual capacity of the storage device to the total capacity of the storage device. ; Each block capacity acquisition submodule is communicatively connected to the Super Block quantity acquisition submodule and the actual capacity ratio acquisition submodule, and is used to acquire the number of Super Blocks in the storage device. and the ratio of actual capacity to original capacity Get the capacity of SLC blocks and non-SLC blocks.
7. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program, which, when executed by a processor, implements all the method steps of the storage device read / write performance improvement method as described in any one of claims 1 to 5.
Citation Information
Patent Citations
Data storage device and system and data writing method
CN111562880A
Computer readable storage medium and data storage method and device of flash memory
CN114327240A