Testing Method and Device for Read Disturbance Characteristics of SSD
By building a reading data range calculation model and firmware preconfiguration, the precise positioning problem of read interference characteristic testing at the SSD level is solved, and efficient and comprehensive read interference characteristic analysis and firmware design guidance are achieved.
Patent Information
- Application Number
- CN202411336162.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-24
- Publication Date
- 2025-07-08
- Estimated Expiration
- 2044-09-24
AI Technical Summary
The prior art is difficult to accurately locate Nand Flash read interference characteristics at the SSD level, and independent media analysis systems cannot take into account both efficient testing and signal quality, resulting in waste of resources and insufficient test coverage.
By building a reading data range calculation model, accurately read interference characteristics tests are carried out based on the position index number of RG Block, die, plane, WL, and page, including sequential write operations, data checking and firmware preconfiguration, avoiding data refresh and garbage collection, and achieving comprehensive testing.
It realizes accurate positioning and reading interference characteristics analysis at the SSD level, saves development resources, improves test speed and coverage, and guides firmware processing process design.
Smart Images

Figure CN119724308B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of data storage, and in particular, to a method and device for testing the read interference characteristics of an SSD. Background Art
[0002] Enterprise-level SSDs are widely used in data centers and enterprise environments and have attracted much attention due to their high performance and high reliability. However, the read interference problem is a key issue commonly encountered during the use of SSDs. Read interference refers to the interference that occurs to adjacent memory cells (some pages in the upper and lower layer WLs) when certain memory cells (pages) are repeatedly read in an SSD, resulting in a risk of data corruption or error. This phenomenon has a potential negative impact on the lifespan and data integrity of the SSD. Therefore, the research on the read interference characteristics of the storage medium (Nand Flash) is particularly important for the design of SSDs.
[0003] During the development of SSDs, in order to analyze the characteristics of the Nand Flash medium, it is usually necessary to independently develop a dedicated medium analysis hardware system and supporting software, which requires additional resources for supporting development. In addition, an independent medium analysis system is difficult to simultaneously consider the number of tests in one time and the signal quality of the hardware in the high-speed mode, resulting in a small number of tests per time for a set of hardware systems and a low clock frequency of the test platform. Moreover, from the SSD level to study the characteristics of Read Disturb, the current technical solutions mainly verify whether the processing flow of the firmware for Read Disturb and the defined threshold of ReadDisturb meet the product quality requirements. The purpose itself is not for medium research and cannot accurately locate to the granularity of Die, Plane, Block, Wordline, and Page.
[0004] In addition, the research on the read interference of Nand Flash is generally carried out in units of Blocks. The main research is that when the read operations of the entire Block or specific pages in the entire Block accumulate to a certain threshold, data failure will occur. The Blocks studied are divided into full Blocks (RG Blocks filled with data) and open Blocks (RG Blocks not filled with data). Due to the special structure and manufacturing process of NandFlash, there are certain differences between dies, between Blocks, and even between WLs and between pages within a Block. These differences will cause the degree of read interference received by each page under the action of read operations to be different. Therefore, how to provide a read interference characteristic test method that can cover a sufficient variety of samples is of great significance for the research on the read interference of Nand Flash. Summary of the Invention
[0005] In view of the above problems, the present invention is proposed to provide a method and device for testing the read interference characteristics of an SSD that overcomes the above problems or at least partially solves the above problems.
[0006] In one aspect of the present invention, there is provided a method for testing the read interference characteristics of an SSD, the method comprising:
[0007] When a test request is received, perform a test data write operation on the RG Blocks in the SSD to be tested by sequential writing, where the physical blocks Block located on different planes plane in each logical unit die in the SSD to be tested form multiple RG Blocks;
[0008] Based on the physical location distribution structure of each RG Block, the word line WL distribution structure of each Block in the RG Block, and the physical page page distribution structure in one WL, construct a read data range calculation model for the storage units to be tested with different granularities. The read data range calculation model is used to calculate the data read positions corresponding to the test data stored in the storage units to be tested based on the position index numbers of RG Block, die, plane, WL, and page and the data storage amounts of the storage units with different granularities;
[0009] Obtain the target storage unit to be tested and the test mode indicated in the test request, and calculate the first data read position corresponding to the test data stored in the target storage unit to be tested according to the read data range calculation model;
[0010] If the test mode is a comprehensive test mode, traverse the position index numbers of RG Block, die, plane, and / or WL in the read data range calculation model to calculate the second data read position corresponding to the test data stored in the comprehensive test storage area corresponding to the target storage unit to be tested;
[0011] Perform repeated random reads on the test data within the first data read position and the second data read position, and check whether the data is correct to monitor the read times corresponding to each Block in the target storage unit to be tested and the corresponding comprehensive test storage area when a data check error occurs.
[0012] Further, before performing the test data write operation on the RG Blocks in the SSD to be tested by sequential writing, the method further comprises:
[0013] Perform test pre-configuration on the firmware of the SSD to be tested. The test pre-configuration content includes: prohibiting the execution of background data garbage collection operations and wear leveling operations in the firmware processing flow, adding an error reporting function in the firmware processing flow to report error information to the host when a storage unit that cannot be error-corrected is read, and prohibiting the execution of data refresh operations in the current state;
[0014] Perform formatting on the SSD to be tested to make it in an empty disk state.
[0015] Furthermore, performing test data writing operations on the RG Blocks in the SSD to be tested by sequential writing includes:
[0016] Determine the test category of the current read interference test according to the test request. The test category includes full Block tests when the RG Blocks are written full of data and open Block tests when they are not written full of data;
[0017] When the test category is a full Block test, perform test data writing operations on each RG Block in the SSD to be tested by sequential writing until the user data storage space of the entire SSD is written full;
[0018] When the test category is an open Block test, perform test data writing operations on some RG Blocks in the SSD to be tested by sequential writing, and write a data volume less than the size of one RG Block to the last RG Block among the selected partial RG Blocks, so that all the Blocks included in the last RG Block for which the test data writing operation is performed are in the open Block state.
[0019] Furthermore, the read data range calculation model is:
[0020] X*s_rgblk+Z*(Q*N+Q)*a+Q*Y*a+G*a+M*a / S;
[0021] Wherein, X is the position index number of the RG Block where the target storage unit to be tested is located, Y is the position index number of the Die where the target storage unit to be tested is located, G is the position index number of the plane where the target storage unit to be tested is located, Z is the position index number of the WL where the target storage unit to be tested is located, M is the position index number of the page where the target storage unit to be tested is located, the position index numbers of the storage units with a granularity level lower than that of the storage unit to be tested involved when the model is used are set to 0, s_rgblk is the amount of data written to the RG Block, N is the total number of Dies included in the SSD to be tested, a is the amount of data written to each layer of WL, Q is the number of planes included in each Die, and S is the number of pages included in each layer of WL.
[0022] Further, when the test category is a full Block test, calculating the first data reading position corresponding to the test data stored in the target storage unit to be tested by the read data range calculation model includes:
[0023] When the granularity level of the target storage unit to be tested is RG Block, the first data reading position is the amount of data of the entire RG Block corresponding to the position index number;
[0024] When the granularity level of the target storage unit to be tested is Block, traverse the Z value in the read data range calculation model within all value ranges, and accumulate the data reading positions obtained each time as the first data reading position;
[0025] When the granularity level of the target storage unit to be tested is page, traverse the Z value in the read data range calculation model in at least 1 WL adjacent to the upper and lower sides of the WL where the target storage unit to be tested is located and / or the current WL, and accumulate the data reading positions obtained each time as the first data reading position.
[0026] Further, traversing the position index numbers of RG Block, die, plane, and / or WL in the read data range calculation model to calculate the second data reading position corresponding to the test data stored in the comprehensive test storage area corresponding to the target storage unit to be tested includes:
[0027] When the granularity level of the target storage unit to be tested is RG Block or Block, traverse X, Y, G, Z in the read data range calculation model, and accumulate the data reading positions obtained each time as the second data reading position;
[0028] When the granularity level of the target storage unit to be tested is page, keep the value of Z unchanged, traverse X, Y, and G in the read data range calculation model, and accumulate the data reading positions obtained from each traversal as the second data reading position.
[0029] Further, the step of performing a test data write operation on some RG Blocks in the SSD to be tested by means of sequential writing includes:
[0030] Set Y in the read data range calculation model to N, G to 1, and calculate the test data write amount during open Block testing by arbitrarily adjusting the values of X, Z, and M;
[0031] Wherein, when calculating the test data write amount, Z and M in the read data range calculation model cannot both take the value of 0.
[0032] Further, when the test category is open Block testing, the step of calculating the first data reading position corresponding to the test data stored in the target storage unit to be tested according to the read data range calculation model includes:
[0033] Select the page in the open Block included in the last RG Block that is not full of data as the target storage unit to be tested;
[0034] Traverse the value of Z in the read data range calculation model for at least 1 WL adjacent to and above and below the WL where the target storage unit to be tested is located and / or the current WL, and accumulate the data reading positions obtained from each traversal as the first data reading position;
[0035] When the test category is open Block testing, the step of traversing the position index numbers of RG Block, die, plane, and / or WL in the read data range calculation model to calculate the second data reading position corresponding to the test data stored in the comprehensive test storage area corresponding to the target storage unit to be tested includes:
[0036] Traverse the value of Z in the read data range calculation model within all value ranges, and accumulate the data reading positions obtained from each traversal as the second data reading position.
[0037] Further, the method further includes:
[0038] Keep X and M in the read data range calculation model when calculating the test data write volume, set Y to N, set G to 1, traverse the Z value to calculate the test data write volume corresponding to different Z values respectively; respectively select the page in the openBlock included in the last RG Block that is not fully written with data when performing the test data write operation with the test data write volume corresponding to different Z values as the target storage unit to be tested corresponding to the Z value; when calculating the first data reading position corresponding to the test data stored in each current target storage unit to be tested, traverse the Z value in the read data range calculation model in at least 1 WL adjacent to the upper and lower sides of the WL where the target storage unit to be tested is located and / or the current WL, and accumulate the data reading positions obtained by each traversal as the first data reading position corresponding to different Z values; or
[0039] Keep M in the read data range calculation model when calculating the test data write volume, set Y to N, set G to 1, traverse the X and Z values to calculate the test data write volume corresponding to different Z values under different X values respectively; respectively select the page in the open Block included in the last RGBlock that is not fully written with data when performing the test data write operation with the test data write volume corresponding to different Z values as the target storage unit to be tested corresponding to the Z value; when calculating the first data reading position corresponding to the test data stored in each current target storage unit to be tested, traverse the Z value in the read data range calculation model in at least 1 WL adjacent to the upper and lower sides of the WL where the target storage unit to be tested is located and / or the current WL, and accumulate the data reading positions obtained by each traversal as the first data reading position corresponding to different Z values.
[0040] Another aspect of the present invention further provides a read interference characteristic test device for an SSD, and the device includes:
[0041] A data write module, configured to perform a test data write operation on the RGBlock in the SSD to be tested in a sequential write manner when receiving a test request, and the physical blocks Block located on different planes plane in each logical unit die in the SSD to be tested form a plurality of RG Blocks;
[0042] A model construction module is used to construct a read data range calculation model applicable to test storage units of different granularities based on the physical location distribution structure of each RG Block, the word line WL distribution structure of each Block in the RG Block, and the physical page page distribution structure in a WL. The read data range calculation model is used to calculate the data read positions corresponding to the test data stored in the test storage unit based on the position index numbers of the RG Block, die, plane, WL, and page and the data storage amounts of the storage units of different granularities.
[0043] A first address determination module is used to obtain the target test storage unit and test mode indicated in the test request, and calculate the first data read position corresponding to the test data stored in the target test storage unit according to the read data range calculation model.
[0044] A second address determination module is used to traverse the position index numbers of the RG Block, die, plane, and / or WL in the read data range calculation model when the test mode is a comprehensive test mode, so as to calculate the second data read position corresponding to the test data stored in the comprehensive test storage area corresponding to the target test storage unit.
[0045] A data read test module is used to repeatedly perform random reads on the test data within the first data read position and the second data read position, and check whether the data is correct, so as to monitor the read times corresponding to each Block in the target test storage unit and the corresponding comprehensive test storage area when a data check error occurs.
[0046] The read interference characteristic test method and device for the SSD provided by the embodiments of the present invention can comprehensively and accurately analyze the Nand Flash read interference characteristics at the SSD level, can reuse the SSD development environment, save development resources, and with the help of the advantages of the SSD itself, can achieve fast test speed, a sufficient number of dies, Blocks, WLs, and pages to be tested, and comprehensive enough ReadDisturb characteristic data to be collected. Further, the present invention can accurately locate the granularities of Die, Plane, Block, Wordline, and Page to conduct research on the Read Disturb characteristics, so as to guide the design of the firmware's processing flow for Read Disturb and the definition of the Read Disturb threshold according to the research results.
[0047] The above description is only an overview of the technical solution of the present invention. In order to be able to understand the technical means of the present invention more clearly, it can be implemented according to the content of the specification. And in order to make the above and other purposes, features, and advantages of the present invention more obvious and understandable, the following specifically gives the specific embodiments of the present invention. Description of the Drawings
[0048] By reading the following detailed description of the preferred embodiments, various other advantages and benefits will become clear to those of ordinary skill in the art. The drawings are only for the purpose of showing the preferred embodiments and are not considered to be a limitation of the present invention. Also, throughout the drawings, the same reference numerals are used to represent the same components. In the drawings:
[0049] Figure 1 It is a schematic flowchart of the method for testing the read interference characteristics of the SSD provided by the embodiment of the present invention;
[0050] Figure 2 It is a schematic diagram of the physical position distribution structure of the RG Block in the SSD proposed by the embodiment of the present invention;
[0051] Figure 3 It is a distribution diagram of the pages in a single Block according to the actual physical structure proposed by the embodiment of the present invention;
[0052] Figure 4 It is a state diagram of the entire RG Block filled with data proposed by the embodiment of the present invention;
[0053] Figure 5 It is a distribution diagram of the data offset corresponding to each Die, each Block, and each layer of WL of the entire RG Block proposed by the embodiment of the present invention;
[0054] Figure 6 It is a schematic diagram of the data in the pages of the upper and lower adjacent Strings in the WL corresponding to the page being read affected by read interference proposed by the embodiment of the present invention;
[0055] Figure 7 It is the data arrangement method on a certain plane of a certain die in the last RG Block in the open Block test proposed by the embodiment of the present invention;
[0056] Figure 8 It is a schematic diagram of selecting the page in String1 in WL Z1-1 for read interference test when the target storage unit to be tested in the open Block test is in WL Z1 proposed by the embodiment of the present invention;
[0057] Figure 9 It is a schematic structural diagram of the device for testing the read interference characteristics of the SSD proposed by the embodiment of the present invention. Detailed Embodiments
[0058] Exemplary embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although the exemplary embodiments of the present disclosure are shown in the drawings, it should be understood that the present disclosure can be implemented in various forms and should not be limited by the embodiments set forth herein. On the contrary, these embodiments are provided so that the present disclosure can be more thoroughly understood and the scope of the present disclosure can be fully conveyed to those skilled in the art.
[0059] Those skilled in the art of this technology can understand that unless specifically stated, the singular forms "a", "an", "the", and "said" used herein may also include the plural forms. It should be further understood that the term "comprising" used in the specification of the present invention means the presence of the stated features, integers, steps, operations, elements, and / or components, but does not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.
[0060] Those skilled in the art of this technology can understand that unless otherwise defined, all terms (including technical terms and scientific terms) used herein have the same meaning as the general understanding of those of ordinary skill in the art to which the present invention pertains. It should also be understood that terms such as those defined in a general dictionary should be understood to have a meaning consistent with the meaning in the context of the prior art and will not be interpreted in an idealized or overly formal sense unless specifically defined.
[0061] Before introducing the method for testing the read interference characteristics of the SSD in the embodiments of the present invention, the technical terms in the present invention will be briefly introduced:
[0062] Read disturb: In the read operation of NAND Flash, in order to read the data of a certain Page, a reference voltage Vref needs to be applied to the control gate of the Wordline of this Page, while for other Pages in the same Block, a relatively high voltage Vpass needs to be applied to their Wordline control gates to ensure that the transistors in these Pages are in the on state and thus serve as path transistors. However, since Vpass is a relatively large voltage, it will form a relatively strong electric field between the floating gate and the substrate. This electric field may draw some electrons into the floating gate, resulting in a slight change in the data state in these unselected Pages, that is, a slight Program effect, thus causing read disturb.
[0063] NAND Flash: Also known as NAND flash memory, it is a non-volatile random access storage medium based on Flash storage technology.
[0064] Die: Usually refers to the independent chip unit cut from the wafer and formed after encapsulation, also known as the bare die. It is the smallest independently operable component of NAND Flash memory particles.
[0065] Plane: In a NAND Flash memory chip, a plane is an organizational form of a large number of storage blocks, mainly used to improve the parallelism of data storage and management. It is part of the internal logic structure of the flash memory chip and, together with the Block and Page, constitutes the basic storage unit of the flash memory.
[0066] Block: A set of consecutive physical pages in NAND Flash memory. These pages are logically regarded as a whole, and a block is the smallest erasure unit.
[0067] RG Block: A logical concept at the SSD level, the smallest parallel erasure unit in SSD firmware management. An RG Block is formed by organizing multiple Dies, with one block on each plane in each Die, into a parallel operation unit.
[0068] WL (Wordline): Also known as the word line, it is an important part inside the NAND Flash memory chip. The WL plays a role in connecting and selecting storage cells (Cells) in NAND Flash. It is a gated line physically serially connected on the same page.
[0069] Page: The smallest unit for storing data in NAND Flash memory, which allows data to be read and written in units of pages.
[0070] GC (Garbage Collection): Also known as garbage collection, it refers to the process of transferring the valid data on a certain flash memory block (Block) in the SSD to other flash memory blocks and completely erasing the original flash memory block to obtain a new, writable flash memory block for subsequent use.
[0071] Firmware: The program in the chip, used to drive the chip to work. The firmware in the SSD is deeply developed according to the characteristics of NandFlash and the usage scenarios of the SSD. There are many algorithms in the firmware, and the firmware development process is complex. The entire firmware in the SSD can ensure the normal and stable operation of the SSD.
[0072] Figure 1 Schematically shows a flowchart of a method for testing the read interference characteristics of an SSD according to an embodiment of the present invention. Referring to Figure 1 , the specific steps for testing the read interference characteristics of the SSD according to the embodiment of the present invention are as follows:
[0073] S11. When receiving a test request, perform a test data write operation on the RG Blocks in the SSD under test in a sequential write manner. The physical blocks (Blocks) located on different planes in each logical unit die of the SSD under test form multiple RG Blocks.
[0074] Figure 2 Shows a schematic diagram of the physical location distribution structure of RG Blocks in the SSD. As Figure 2 shown, the firmware in the SSD will form RG Blocks by combining Blocks located on different planes in multiple dies for basic data write and erase operations. Eventually, a relatively large number of RG Blocks will be formed in the entire SSD for writing user data and SSD internal management data, such as Figure 1 the RG Blocks from RG Block0 to RG Block(m / 2) shown in Figure 1 In the illustrated embodiment, the SSD includes Die0 to DieN. Each Die is described by taking two planes as an example, including plane0 and plane1. The RG Blocks formed in the SSD are from RG Block0 to RGBlock(m / 2).
[0075] Figure 3 What is shown is the distribution diagram of pages in a single Block according to the actual physical structure. The structure shown in the figure is mainly for demonstration purposes and does not represent the real structure. Figure 3 The page type in Figure 3 is mainly the page organization form of TLC NAND Flash. The present invention is described by taking 3D TLC NAND Flash as an example, but the technical application scope is not limited to TLC NAND Flash. Figure 3 What is shown in
[0076] In the embodiment of the present invention, before performing a test data writing operation on the RG Block in the SSD to be tested by means of sequential writing, the following steps are further included: performing test pre-configuration on the firmware of the SSD to be tested, where the test pre-configuration content includes: prohibiting the execution of background data garbage collection operations and wear leveling operations in the firmware processing flow, adding an error reporting function in the firmware processing flow to report error information to the host when a storage unit that cannot be error-corrected is read, and prohibiting the execution of data refreshing operations in the current state; performing a formatting process on the SSD to be tested to place it in an empty disk state.
[0077] Specifically, in order to comprehensively and accurately test and analyze the read interference characteristics of the NAND Flash storage medium at the SSD level, this application needs to perform certain adaptations based on the product standard firmware, which is directly supported in the standard firmware. The main adaptation points are: closing the background data garbage collection process in the firmware processing flow, closing the wear leveling algorithm, being able to normally report to the host when the firmware reads a storage unit that cannot be error-corrected, and closing the data refreshing operation in this case. By performing test pre-configuration on the firmware, the present invention avoids the data migration and refreshing of the read interference accumulated to a certain extent for data security in the standard firmware. After refreshing, the influence of the read interference on the data is eliminated, which is not conducive to studying the influence of the read interference. At the same time, the host can obtain the Read Count specific to each physical Block through the interface opened by the SSD firmware.
[0078] S12. Construct a read data range calculation model applicable to test storage units of different granularities based on the physical location distribution structure of each RG Block, the word line WL distribution structure of each Block in the RG Block, and the physical page page distribution structure in a WL. The read data range calculation model is used to calculate the data reading position corresponding to the test data stored in the test storage unit of different granularities based on the position index numbers of RG Block, die, plane, WL, and page, that is, the starting address of the data reading address range during the read interference characteristic test.
[0079] S13. Obtain the target test storage unit and test mode indicated in the test request, and calculate the first data reading position corresponding to the test data stored in the target test storage unit according to the read data range calculation model.
[0080] S14. If the test mode is a comprehensive test mode, traverse the position index numbers of RG Block, die, plane, and / or WL in the read data range calculation model to calculate the second data reading position corresponding to the test data stored in the comprehensive test storage area corresponding to the target test storage unit.
[0081] Among them, the test mode includes a full test mode and a normal test mode. If the test mode is the normal test mode, only the test data in the first data reading position is repeatedly read randomly, and whether the data is correct is verified, so as to monitor the read times corresponding to each Block in the target storage unit to be tested when a data verification error occurs, without performing a full test on the full test storage area corresponding to the target storage unit to be tested. If the test mode is the full test mode, it is necessary to further confirm the full test storage area corresponding to the target storage unit to be tested, and traverse any one or at least one of the position index numbers in the RG Block position index number, die position index number, plane position index number, and WL position index number in the read data range calculation model to achieve the positioning of the full test storage area.
[0082] S15. Repeatedly read the test data in the first data reading position and the second data reading position randomly, and verify whether the data is correct, so as to monitor the read times corresponding to each Block in the target storage unit to be tested and the corresponding full test storage area when a data verification error occurs.
[0083] The method for testing the read interference characteristics of the SSD provided by the embodiment of the present invention can comprehensively and accurately analyze the Nand Flash read interference characteristics at the SSD level, can reuse the SSD development environment, save development resources, and with the help of the advantages of the SSD itself, can achieve fast test speed, and the number of dies, Blocks, WLs, and pages tested is sufficient, and the collected Read Disturb characteristic data is comprehensive enough. Further, the present invention can accurately locate the granularity of Dies, Planes, Blocks, Wordlines, and Pages to conduct research on Read Disturb characteristics, so as to guide the design of the firmware's processing flow for Read Disturb and the definition of the Read Disturb threshold according to the research results.
[0084] The read data range calculation model in the embodiment of the present invention is specifically:
[0085] X*s_rgblk+Z*(Q*N+Q)*a+Q*Y*a+G*a+M*a / S;
[0086] Among them, * represents the multiplication operation. X is the position index number of the RG Block where the target storage unit to be tested is located. Y is the position index number of the Die where the target storage unit to be tested is located. G is the position index number of the plane where the target storage unit to be tested is located. Z is the position index number of the WL where the target storage unit to be tested is located. M is the position index number of the page where the target storage unit to be tested is located. The position index numbers of the storage units with a granularity level lower than that of the storage unit to be tested when the model is used are set to 0. s_rgblk is the amount of data written to the RG Block. N is the total number of Dies included in the SSD to be tested. a is the amount of data written to each layer of WL. Q is the number of planes included in each Die. S is the number of pages included in each layer of WL.
[0087] In the embodiment of the present invention, taking Figure 2 and Figure 3 the SSD shown as an example for illustration, each Die includes 2 planes, and each layer of WL includes 18 pages. Then, the read data range calculation model can be obtained as:
[0088] X*s_rgblk + Z*(2N + 2)*a + 2Y*a + G*a + M*a / 18.
[0089] Specifically understood, the number of planes included in each Die and the number of pages included in each layer of WL can be confirmed according to the actual structure of the Nand Flash in the SSD, and the present invention does not limit this.
[0090] In order to clearly illustrate the technical solution of the present invention, the present invention makes the following agreements on the quantities required in the description process. In a given SSD, the amount of data that can be written to the entire RG Block in the standard firmware is fixed. Assume that the amount of data that can be written to the entire RGBlock is s_rgblk, the amount of data that can be written to one layer of WL in the RG Block is s_rgwl, and the amount of data written to the RG page in the RG Block is s_rgpage. Usually, the amount of data in a single write operation in TLC Nand Flash is 3 pages, that is, 3*s_rgpage. The following separately describes the research on the read interference characteristics of full Block and open Block.
[0091] In an embodiment of the present invention, the step of performing a test data write operation on the RG Block in the SSD to be tested by means of sequential writing in step S11 includes the following steps not shown in the drawings:
[0092] S111. Determine the test category of the current read interference test according to the test request. The test category includes the full Block test when the RGBlock is full of data and the open Block test when the data is not full. The following describes the research on the read interference characteristics of full Block and open Block respectively.
[0093] Specifically, the test category of the current read interference test is preset in the test request.
[0094] S112. When the test category is the full Block test, perform the test data writing operation on each RG Block in the SSD to be tested by sequential writing until the user data storage space of the entire SSD is full.
[0095] Figure 4 Display the status diagram of the entire RG Block being full of data. If a blk on a certain plane in a certain Die of a group of RG Blocks is selected for explanation, then the RG Block is in the full Block state.
[0096] Specifically, when performing the test data writing operation for the full Block test, first check whether the SSD to be tested is formatted, mainly to put the disk in an empty disk state. For sample diversity, multiple SSDs can be selected for testing at the same time. First, write full the user data space of the entire SSD by sequential writing. Since the storage space of the SSD is fixed, usually a new RG Block is written only after the previous one is full. On the premise of pre-configuring the test of the firmware of the SSD to be tested, the total amount of written data will correspond to specific RG Blocks in the SSD. Suppose the total amount of data written to the entire SSD is s_total, and the amount of data in each rg blk is s_rgblk. Simply calculated, the number of written RG Blocks is [s_total / s_rgblk], and the square brackets indicate that the result is rounded down to the nearest integer. Then, from RG Block0 to RG Block[s_total / s_rgblk], and then to the specific Die, Block, WL, and page can be normally indexed. For example Figure 5 , assume that in an RG Block, the amount of data that can be stored in each Block on each plane for each layer of WL is represented by a. Then the data offset of the entire RG Block corresponding to each Die, each Block (represented by plane), and each layer of WL has been shown in the figure. The specific data arrangement relationship is related to the processing strategy of the firmware. The figure only demonstrates the usual data layout method. If the data layout method is other methods, the actual corresponding relationship is clear.
[0097] S113. When the test category is the open Block test, perform a test data writing operation on some RG Blocks in the SSD under test by sequential writing. Write an amount of data less than the size of one RG Block to the last RG Block among the selected partial RG Blocks, so that the status of all Blocks included in the RG Block where the test data writing operation is finally performed is an open Block. Specifically, performing a test data writing operation on some RG Blocks in the SSD under test by sequential writing includes: setting Y to N and G to 1 in the read data range calculation model, and calculating the test data writing amount during the open Block test by arbitrarily adjusting the values of X, Z, and M; where when calculating the test data writing amount, Z and M in the read data range calculation model cannot both be 0 at the same time.
[0098] Specifically, when the test data writing operation of the open Block test is executed, first check whether the SSD under test is formatted, mainly to place the disk in an empty disk state. For sample diversity, multiple SSDs can be selected for testing at the same time. First, write some data to the SSD under test by sequential writing. Assume that each Die includes 2 planes and one WL corresponds to 18 pages. The amount of data written can be changed by adjusting the values of X, Z, and M in the formula X*s_rgblk + Z*(2N + 2)*a + 2Y*a + G*a + M*a / 18, where Y is fixed to N, G is fixed to 1, 0 ≤ X ≤ ([s_total / s_rgblk] - 2), Y = N, 0 ≤ Z ≤ 30, G = 1, 0 ≤ M ≤ 17, and Z and M cannot both be 0 at the same time. Judging from the limitation of the formula parameters itself, the last RG Block written is not filled with data, and the status of all Blocks included in this RGBlock is an open Block.
[0099] In one embodiment of the present invention, when the test category is a full Block test, calculating, according to the read data range calculation model, a first data reading position corresponding to test data stored in a target storage unit to be tested includes: when the granularity level of the target storage unit to be tested is RG Block, the first data reading position is the data volume of the entire RG Block corresponding to the position index number; when the granularity level of the target storage unit to be tested is Block, traversing all values of the Z value in the read data range calculation model, and accumulating the data reading positions obtained by each traversal as the first data reading position; when the granularity level of the target storage unit to be tested is page, traversing the Z value in the read data range calculation model in at least one WL adjacent to the upper and lower sides of the WL where the target storage unit to be tested is located and / or the current WL, and accumulating the data reading positions obtained by each traversal as the first data reading position.
[0100] Further, in order to implement a comprehensive performance test, traversing the position index numbers of RG Block, die, plane, and / or WL in the read data range calculation model to calculate a second data reading position corresponding to test data stored in a comprehensive test storage area corresponding to the target storage unit to be tested includes: when the granularity level of the target storage unit to be tested is RG Block or Block, traversing X, Y, G, and Z in the read data range calculation model, and accumulating the data reading positions obtained by each traversal as the second data reading position; when the granularity level of the target storage unit to be tested is page, keeping the value of Z unchanged, traversing X, Y, and G in the read data range calculation model, and accumulating the data reading positions obtained by each traversal as the second data reading position.
[0101] Specifically, due to different granularity levels of the storage unit to be tested, the full Block read interference test includes two cases: Block and single page read interference.
[0102] During the Block read interference test in the full Block, assuming the RG Block to be located is X, in order to read enough Blocks, that is, multiple Blocks contained in the entire RG Block will be full Block reads, we will choose to read the data volume of the entire RG Block. According to the read data range calculation model, the read data range can be obtained as from X*s_rgblk to (X + 1)*s_rgblk. Repeated random reads are performed within this data range, and the data is verified for correctness. In this way, it can be accurately monitored how many reads of each blk will result in data verification errors. If it is necessary to locate a specific Block in a specific Die of a specific RG Block, then assume the located Die is Y, the located plane is G, and the located WL is Z. The location of the read data is from X*s_rgblk + Z*(2N + 2)*a + 2Y*a + G*a to X*s_rgblk + Z*(2N + 2)*a + 2Y*a + (G + 1)*a - 1. If all WLs are traversed, that is, when the values of X, Z, and Y are fixed, only by traversing the value of Z from 0 to 31 can the read interference test of the full Block of a specific Block in a specific Die of a specific RG Block be achieved. To accurately locate the Block in the Die for the read interference test of the full Block, the following will illustrate how to conduct a comprehensive read interference test study. The comprehensive read interference test means performing the read interference test on each Block in each Die of all RG Blocks with written data. The corresponding relationship between the amount of written data, the Block in the Die, and WL has been given above, such as the relational expression X*s_rgblk + Z*(2N + 2)*a + 2Y*a + G*a. During the test, we can achieve a comprehensive and accurate read interference test study of the full Block by traversing the values of X, Y, Z, and G, where 0 ≤ X ≤ ([s_total / s_rgblk] - 1), 0 ≤ Y ≤ N, 0 ≤ Z ≤ 31, and 0 ≤ G ≤ 1.
[0103] During the single page read interference test in the full Block, it has been explained above how to locate the data range of WL in a specific Die. The data range is from X*s_rgblk + Z*(2N + 2)*a + 2Y*a + G*a to X*s_rgblk + Z*(2N + 2)*a + 2Y*a + (G + 1)*a - 1. Figure 3The specific correspondence between WL and page has been given. Simply put, if the data volume in WL is further refined, assuming that one WL corresponds to the data volume of 18 pages, it can be simply considered that the data volume a of the entire WL can be equally divided into 18 parts, which corresponds to specific pages. The actual correspondence between the data layout method in WL and pages is related to the firmware design. The description of the present invention is only for demonstration. Regardless of how the firmware is designed, the correspondence between the data layout method in WL and pages is clear. Assuming that the page to be located is M, where 0 ≤ M ≤ 17, then the correspondence between the data and the page is X*s_rgblk + Z*(2N + 2)*a + 2Y*a + G*a + M*a / 18. Since read interference mainly affects the data in the pages of the upper and lower adjacent Strings corresponding to the String where the read page is located in the WL where the read page is located. For example, Figure 6 in, the page in WL9 of String1 is read, then the data in the pages corresponding to String1, WL8 and WL10 are most affected by read interference. In the actual process, in order to improve the parallelism of the read interference test, random read operations are performed on all data ranges corresponding to a certain layer of WL in the entire RG Block. Specifically, it can be achieved by traversing the value of Z in the above formula.
[0104] Furthermore, by performing random read operations on all data ranges corresponding to a certain layer of WL in the entire RG Block, the read interference test research of a single page of the full Block can be achieved. During the process of performing random read operations on the data range in a certain layer of WL, since the data affected is the data in the pages included in the upper and lower adjacent Strings corresponding to the String where the read page is located in the WL where the read page is located, that is, the target read page and the actually affected page are different. It is necessary to perform data verification on all data in the target Block in parallel during the single page read interference test. If it is a Linux operating system, the work of performing data verification on the data in the target Block in parallel can be achieved through multi-threaded methods. The data indexing method in the target Block can refer to the content in the read interference test research of the full Block.
[0105] Furthermore, only one WL can be selected for the study of single-page read interference for each Block at a time. To comprehensively study the characteristics of single-page read interference, single-page read interference tests are performed on all Blocks with written data. It can also be achieved by traversing X, Y, and G in the formula X * s_rgblk + Z * (2N + 2) * a + 2Y * a + G * a, while keeping the value of Z unchanged, where 0 ≤ X ≤ ([s_total / s_rgblk] - 1), 0 ≤ Y ≤ N, 0 ≤ Z ≤ 31, and 0 ≤ G ≤ 1.
[0106] Furthermore, to cover single-page read operations for all WLs, the above steps can be repeated, ensuring that different Z values are selected for each repeated test.
[0107] In an embodiment of the present invention, when the test category is an open Block test, calculating the first data reading position corresponding to the test data stored in the target storage unit to be tested according to the read data range calculation model includes: selecting the page in the open Block included in the last RG Block that is not fully written with data as the target storage unit to be tested; traversing the Z value in the read data range calculation model for at least one WL adjacent to and above and below the WL where the target storage unit to be tested is located and / or the current WL, and accumulating the data reading positions obtained from each traversal as the first data reading position; furthermore, when the test category is an open Block test, traversing the position index numbers of RG Block, die, plane, and / or WL in the read data range calculation model to calculate the second data reading position corresponding to the test data stored in the comprehensive test storage area corresponding to the target storage unit to be tested includes: traversing the Z value in the read data range calculation model within all value ranges, and accumulating the data reading positions obtained from each traversal as the second data reading position.
[0108] As Figure 7 shown, the data arrangement method of a certain die and a certain plane in the last RG Block (the data of all Blocks included in all dies in this RG Block are arranged in this way), and finally the data is written to WL20, String2. During a test process, X, Z, and M take definite fixed values. For the convenience of subsequent description, X is taken as X1, Z is taken as Z1, and M is taken as M1.
[0109] Specifically, during the single-page read interference test of an open Block, select the open Block included in the last RG Block that is not fully written with data for the single-page read interference test, asFigure 8 As shown, the WL selected for the read interference test is the page in String1 in Z1-1 for the read interference test. Similarly, to test the parallelism, a certain layer of WL in all open Blocks included in the entire RG Block can be selected for testing. Figure 8 What is shown in it is to select the Z1-1 layer.
[0110] During the process of performing random read operations on the data range in a certain layer of WL, since the data affected is in the pages included in the upper and lower adjacent Strings of the corresponding String in the WL where the read page is located, that is, the target read page and the page actually affected are different. It is necessary to perform data verification on all the data in the target OpenBlock in parallel during the single page read interference test. If it is a Linux operating system, the work of performing data verification on the data in the target OpenBlock in parallel can be achieved through the multi-threaded method. The data indexing method in the target OpenBlock can refer to the content in the read interference test research of the full Block. In the open Block, only the part where the written data is located needs to be located.
[0111] For the research of single page read interference of each open Block, only one WL can be selected for research. To comprehensively study the single page read interference characteristics of the open Block, when the number of WL layers written to is the Z1 layer, the test scenario of reading the Z1-2 layer can be added. Just repeat the content in the above steps. Similarly, it is possible to read the Z1-3 layer, Z1-4 layer, and so on of the open Block.
[0112] Furthermore, during the process of performing the single page read interference test of the open Block, the method further includes: keeping X and M in the read data range calculation model set to N, G set to 1 when calculating the written amount of test data, traversing the Z value to calculate the written amount of test data corresponding to different Z values respectively; respectively selecting the page in the open Block included in the last unwritten full RG Block of the SSD when performing the test data write operation with the written amount of test data corresponding to different Z values as the target storage unit to be tested corresponding to the Z value; when calculating the first data reading position corresponding to the test data stored in each current target storage unit to be tested, traversing the Z value in the read data range calculation model in at least 1 WL adjacent to the upper and lower of the WL where the target storage unit to be tested is located and / or the current WL, and accumulating the data reading positions obtained each time as the first data reading position corresponding to different Z values; or
[0113] Keep M and Y in the read data range calculation model when calculating the write amount of test data set to N, G set to 1, traverse the X and Z values to calculate the write amount of test data corresponding to different Z values under different X values respectively; select the page in the open Block included in the RGBlock where the last unwritten data of the SSD is located when performing the test data write operation with the write amount of test data corresponding to different Z values as the target storage unit to be tested corresponding to the Z value; when calculating the first data read position corresponding to the test data stored in each current target storage unit to be tested, traverse the Z value in the read data range calculation model in at least 1 WL adjacent to the WL where the target storage unit to be tested is located and / or the current WL up and down, and accumulate the data read positions obtained each time as the first data read position corresponding to different Z values.
[0114] Specifically, in the single page read interference test of the foregoing open Block, reading layers Z1-1, Z1-2, Z1-3, etc. are all based on the open Block in the last RG Block. The total data write amount remains unchanged, and the WL where the last written RG Block stays remains unchanged. To test enough cases, the X value in the formula X*s_rgblk + Z*(2N + 2)*a + 2Y*a + G*a + M*a / 18 can be fixed, Y is fixed to N, G is fixed to 1, and the M value is fixed, that is, keep these quantities the same as in step 1, and then by traversing the Z value, 0 ≤ Z ≤ 30, in this way, the last written data can stay on different WLs, and then repeat the content in the above steps, and the WL where the open Block in the last RG Block is finally written can be changed.
[0115] Furthermore, the RG Block number corresponding to the last open Block in the above steps remains unchanged. What changes is only the position of the WL where the last data is written and the WL for single page reading. Only multiple WLs in one Block in each plane of each Die are tested. To cover enough RG Blocks, repeat the content in the above steps. Changing the X value in the formula X*s_rgblk + Z*(2N + 2)*a + 2Y*a + G*a + M*a / 18 when writing test data can achieve covering enough Blocks.
[0116] The above separately introduced the block of the full Block, the read interference of the single page, and the single page read interference test of the open Block. By establishing the correspondence between the amount of written data and the RG Block, Die, WL, and Page in the SSD, precise location selection for the read interference test can be achieved. By traversing the operable variables in the corresponding relational expressions, it is possible to cover all the Blocks in the entire SSD. Meanwhile, leveraging the advantage of the parallel high-speed operation of the SSD, a comprehensive, precise, and rapid study of the Nand Flash read interference characteristics can be conducted, and ultimately guidance for firmware design can be provided.
[0117] In addition, an embodiment of the present invention further provides a test device for the read interference characteristics of an SSD, and the device includes functional modules for implementing the above-mentioned method for testing the read interference characteristics of the SSD. Figure 9 The structural schematic diagram of the test device for the read interference characteristics of the SSD according to the embodiment of the present invention is schematically shown. Referring to Figure 9 the test device for the read interference characteristics of the SSD according to the embodiment of the present invention specifically includes a data write module 901, a model construction module 902, a first address determination module 903, a second address determination module 904, and a data read test module 905, where:
[0118] The data write module 901 is configured to perform a test data write operation on the RG Blocks in the SSD to be tested in a sequential write manner when a test request is received. The physical blocks Block located on different planes plane in each logical unit die in the SSD to be tested form multiple RG Blocks;
[0119] The model construction module 902 is configured to construct a read data range calculation model applicable to storage units to be tested with different granularities based on the physical location distribution structure of each RG Block, the word line WL distribution structure of each Block in the RG Block, and the physical page page distribution structure in a WL. The read data range calculation model is used to calculate the corresponding data reading position of the test data stored in the storage unit to be tested based on the position index numbers of the RG Block, die, plane, WL, and page and the data storage amount of the storage unit with different granularities;
[0120] The first address determination module 903 is configured to obtain the target storage unit to be tested and the test mode indicated in the test request, and calculate the first data reading position corresponding to the test data stored in the target storage unit to be tested according to the read data range calculation model;
[0121] The second address determination module 904 is configured to traverse the position index numbers of RG Block, die, plane, and / or WL in the read data range calculation model when the test mode is a comprehensive test mode, so as to calculate a second data reading position corresponding to test data stored in a comprehensive test storage area corresponding to a target storage unit to be tested;
[0122] The data read test module 905 is configured to repeatedly perform random reads on the test data within the first data reading position and the second data reading position, and verify whether the data is correct, so as to monitor the number of reads corresponding to each Block in the target storage unit to be tested and the corresponding comprehensive test storage area when a data verification error occurs.
[0123] For the device embodiment, since it is basically similar to the method embodiment, the description is relatively simple. For related parts, refer to the partial description of the method embodiment.
[0124] The device embodiments described above are merely illustrative. The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed to multiple network units. Some or all of the modules may be selected according to actual needs to achieve the purpose of the solution of this embodiment. A person of ordinary skill in the art can understand and implement it without creative labor.
[0125] In addition, an embodiment of the present invention further provides a solid-state drive, 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 SSD read interference characteristic test method are implemented. For example Figure 1 Steps S11 to S15 shown. Alternatively, when the processor executes the computer program, the functions of each module / unit in the above SSD read interference characteristic test device embodiment are implemented, for example Figure 9 The data write module 901, the model construction module 902, the first address determination module 903, the second address determination module 904, and the data read test module 905 shown.
[0126] The read interference characteristic test method and device for the SSD provided by the embodiments of the present invention can comprehensively and accurately analyze the read interference characteristics of Nand Flash at the SSD level, can reuse the SSD development environment, save development resources, and with the advantages of the SSD itself, can achieve fast test speed, sufficient number of dies, Blocks, WLs, and pages for testing, and comprehensive enough Read Disturb characteristic data collection. Further, the present invention can accurately locate the granularity of Dies, Planes, Blocks, Wordlines, and Pages to conduct research on Read Disturb characteristics, so as to guide the design of the firmware's processing flow for Read Disturb and the definition of the Read Disturb threshold according to the research results.
[0127] Through the description of the above embodiments, those skilled in the art can clearly understand that each embodiment can be implemented by means of software plus a necessary general hardware platform, and of course also by hardware. Based on such an understanding, the above technical solutions, in essence, or the part that contributes to the prior art can be embodied in the form of a software product, which can be stored in a computer-readable storage medium, such as ROM / RAM, magnetic disk, optical disk, etc., including several instructions for causing a computer device (which can be a personal computer, a server, or a network device, etc.) to execute the methods described in each embodiment or some parts of the embodiments.
[0128] In addition, those skilled in the art can understand that although some embodiments herein include certain features included in other embodiments but not other features, the combination of the features of different embodiments means being within the scope of the present invention and forming different embodiments. For example, any one of the claimed embodiments can be used in any combination.
[0129] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention and are not intended 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 for some of the technical features; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the spirit and scope of the technical solutions of the embodiments of the present invention.
Claims
1. A method for testing the read interference characteristics of an SSD, characterized in that The method includes: When a test request is received, perform a test data write operation on the RG Blocks in the SSD to be tested in a sequential write manner. Each physical block Block located on different planes in each logical unit die in the SSD to be tested forms multiple RG Blocks. An RG Block is a parallel operation unit formed by organizing one Block on each Plane in each Die; Based on the physical location distribution structure of each RG Block, the word line WL distribution structure of each Block in the RG Block, and the physical page page distribution structure in a WL, construct a read data range calculation model applicable to storage units to be tested with different granularities. The read data range calculation model is used to calculate the data read position corresponding to the test data stored in the storage unit to be tested based on the position index numbers of the RG Block, die, plane, WL, and page and the data storage amounts of storage units with different granularities. The read data range calculation model is: X*s_rgblk+Z*(Q*N+Q)*a+Q*Y*a+G*a+M*a / S; Wherein, X is the position index number of the RG Block where the target storage unit to be tested is located, Y is the position index number of the Die where the target storage unit to be tested is located, G is the position index number of the plane where the target storage unit to be tested is located, Z is the position index number of the WL where the target storage unit to be tested is located, M is the position index number of the page where the target storage unit to be tested is located. When the model is used, the position index numbers of storage units with a granularity level lower than that of the storage unit to be tested are set to 0. s_rgblk is the data amount written to the RG Block, N is the total number of Dies included in the SSD to be tested, a is the data amount written to each WL, Q is the number of planes included in each Die, and S is the number of pages included in each WL; Obtain the target storage unit to be tested and the test mode indicated in the test request, and calculate the first data read position corresponding to the test data stored in the target storage unit to be tested according to the read data range calculation model; If the test mode is a comprehensive test mode, traverse the position index numbers of the RG Block, die, plane, and / or WL in the read data range calculation model to calculate the second data read position corresponding to the test data stored in the comprehensive test storage area corresponding to the target storage unit to be tested; Perform repeated random reads on the test data within the first data read position and the second data read position, and check whether the data is correct to monitor the read times corresponding to each Block in the target storage unit to be tested and the corresponding comprehensive test storage area when a data check error occurs.
2. The method according to claim 1, wherein Before performing the test data write operation on the RGBlocks in the SSD to be tested in a sequential write manner, the method further includes: Perform test pre-configuration on the firmware of the SSD to be tested. The test pre-configuration content includes: prohibiting the execution of background data garbage collection operations and wear leveling operations in the firmware processing flow, adding an error reporting function in the firmware processing flow to report error information to the host when a storage unit that cannot be error-corrected is read, and prohibiting the execution of data refresh operations in the current state; Perform a formatting process on the SSD to be tested to make it in an empty disk state.
3. The method according to claim 1, wherein Perform test data writing operations on the RG Blocks in the SSD to be tested by sequential writing, including: Determine the test category of the current read interference test according to the test request. The test category includes full Block tests when the RG Block is full of data and open Block tests when the data is not full; When the test category is a full Block test, perform test data writing operations on each RG Block in the SSD to be tested by sequential writing until the user data storage space of the entire SSD is full; When the test category is an open Block test, perform test data writing operations on some RG Blocks in the SSD to be tested by sequential writing, and write a data volume less than the size of one RGBlock to the last RG Block among the selected RG Blocks, so that all Blocks included in the last RG Block where the test data writing operation is finally performed are in the open Block state.
4. The method according to claim 3, characterized in that, When the test category is a full Block test, the calculation of the first data reading position corresponding to the test data stored in the target storage unit to be tested according to the read data range calculation model includes: When the granularity level of the target storage unit to be tested is RG Block, the first data reading position is the data volume of the entire RG Block corresponding to the position index number; When the granularity level of the target storage unit to be tested is Block, traverse the Z value in the read data range calculation model within all its value ranges, and accumulate the data reading positions obtained from each traversal as the first data reading position; When the granularity level of the target storage unit to be tested is page, traverse the Z value in the read data range calculation model in at least one WL adjacent to the WL where the target storage unit to be tested is located and / or the current WL above and below, and accumulate the data reading positions obtained from each traversal as the first data reading position.
5. The method according to claim 4, characterized in that, The traversal of the position index numbers of RGBlock, die, plane, and / or WL in the read data range calculation model to calculate the second data reading position corresponding to the test data stored in the comprehensive test storage area corresponding to the target storage unit to be tested includes: When the granularity level of the target storage unit to be tested is RG Block or Block, traverse X, Y, G, and Z in the read data range calculation model, and accumulate the data reading positions obtained from each traversal as the second data reading position; When the granularity level of the target storage unit to be tested is page, keep the value of Z unchanged, traverse X, Y, and G in the read data range calculation model, and accumulate the data reading positions obtained in each traversal as the second data reading position.
6. The method according to claim 3, characterized in that, The method of performing a test data write operation on a partial RG Block in the SSD to be tested by sequential writing includes: Set Y in the read data range calculation model to N, G to 1, and calculate the test data write amount during open Block testing by arbitrarily adjusting the values of X, Z, and M; Among them, when calculating the test data write amount, Z and M in the read data range calculation model cannot both take 0.
7. The method according to claim 6, wherein When the test category is open Block testing, the method of calculating the first data reading position corresponding to the test data stored in the target storage unit to be tested according to the read data range calculation model includes: Select the page in the open Block included in the last RG Block that has not been filled with data as the target storage unit to be tested; Traverse the Z value in the read data range calculation model in at least one WL adjacent to and above / below the WL where the target storage unit to be tested is located and / or the current WL, and accumulate the data reading positions obtained in each traversal as the first data reading position; When the test category is open Block testing, the method of traversing the position index numbers of RG Block, die, plane, and / or WL in the read data range calculation model to calculate the second data reading position corresponding to the test data stored in the comprehensive test storage area corresponding to the target storage unit to be tested includes: Traverse the Z value in the read data range calculation model within all value ranges, and accumulate the data reading positions obtained in each traversal as the second data reading position.
8. The method according to claim 6, wherein The method further includes: Keep X and M in the read data range calculation model unchanged when calculating the test data write amount, set Y to N, G to 1, traverse the Z value to calculate the test data write amounts corresponding to different Z values respectively; select the page in the open Block included in the last RG Block that has not been filled with data in the SSD when performing the test data write operation with the test data write amounts corresponding to different Z values as the target storage unit to be tested corresponding to the respective Z values; when calculating the first data reading position corresponding to the test data stored in the current respective target storage units to be tested, traverse the Z value in at least one WL adjacent to and above / below the WL where the target storage unit to be tested is located and / or the current WL, and accumulate the data reading positions obtained in each traversal as the first data reading positions corresponding to different Z values; or Keep M and Y in the read data range calculation model when calculating the written amount of test data set to N, G set to 1, traverse the X and Z values to calculate the written amount of test data corresponding to different Z values under different X values respectively; select the page in the open Block included in the RG Block where the last unwritten data of the SSD is located when performing the test data write operation with the written amount of test data corresponding to different Z values as the target storage unit to be tested corresponding to the Z value; when calculating the first data read position corresponding to the test data stored in each current target storage unit to be tested, traverse the Z value in the read data range calculation model for at least 1 WL adjacent to the upper and lower of the WL where the target storage unit to be tested is located and / or the current WL, and accumulate the data read positions obtained by each traversal as the first data read position corresponding to different Z values.
9. A read interference characteristic test device for an SSD, the device comprising: A data write module, configured to perform a test data write operation on the RG Block in the SSD to be tested in a sequential write manner when receiving a test request. Each physical block Block located on different planes plane in each logic unit die in the SSD to be tested forms a plurality of RG Blocks. An RG Block is a parallel operation unit formed by organizing one Block on each Plane in each Die. A model construction module, configured to construct a read data range calculation model applicable to storage units to be tested with different granularities based on the physical position distribution structure of each RG Block, the word line WL distribution structure of each Block in the RG Block, and the physical page page distribution structure in a WL. The read data range calculation model is used to calculate the data read position corresponding to the test data stored in the storage unit to be tested based on the position index numbers of RG Block, die, plane, WL, and page and the data storage amount of storage units with different granularities. The read data range calculation model is: X*s_rgblk+Z*(Q*N+Q)*a+Q*Y*a+G*a+M*a / S; where X is the position index number of the RG Block where the target storage unit to be tested is located, Y is the position index number of the Die where the target storage unit to be tested is located, G is the position index number of the plane where the target storage unit to be tested is located, Z is the position index number of the WL where the target storage unit to be tested is located, M is the position index number of the page where the target storage unit to be tested is located. When the model is used, the position index numbers related to storage units with a granularity level lower than that of the storage unit to be tested are set to 0. s_rgblk is the amount of data written to the RG Block, N is the total number of Dies included in the SSD to be tested, a is the amount of data written to each WL, Q is the number of planes included in each Die, and S is the number of pages included in each WL. The first address determination module is configured to obtain the target storage unit to be tested and the test mode indicated in the test request, and calculate the first data reading position corresponding to the test data stored in the target storage unit to be tested according to the read data range calculation model; The second address determination module is configured to, when the test mode is the comprehensive test mode, traverse the position index numbers of RG Block, die, plane, and / or WL in the read data range calculation model to calculate the second data reading position corresponding to the test data stored in the comprehensive test storage area corresponding to the target storage unit to be tested; The data read test module is configured to repeatedly perform random reads on the test data within the first data reading position and the second data reading position, and verify whether the data is correct, so as to monitor the number of reads corresponding to each Block in the target storage unit to be tested and the corresponding comprehensive test storage area when a data verification error occurs.
Citation Information
Patent Citations
Massive data storage method based on file granularity
CN104657459A
Read interference test method and device, computer readable storage medium and electronic equipment
CN112185453A