A storage block testing method and device
By performing XOR calculation and feature curve fitting on the feature value subtable of the memory block, the deviation of the memory block is determined, and the problem of difficulty in screening bad blocks in the prior art is solved, and the reliability and accuracy of the memory is improved.
Patent Information
- Application Number
- CN202111653635.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-12-30
- Publication Date
- 2024-12-20
- Estimated Expiration
- 2041-12-30
AI Technical Summary
The prior art is difficult to effectively screen out bad blocks in flash memory that are seriously disturbed, resulting in a decrease in the stability of the memory and the inability to accurately judge the quality of the memory block, which affects the reliability of the memory.
By obtaining the first storage information flip table of the storage block under normal environment and the second storage information flip table of the test environment for XOR calculation, the eigenvalue subtable is obtained, the adjacent maximum and minimum eigenvalues are found, and the fitting is done Maximum and minimum characteristic curves, calculate the deviation, and judge whether the deviation is less than the threshold to determine the quality of the memory block.
Improve the reliability of memory block screening, avoid the use of severely disturbed memory blocks, and improve the overall reliability and accuracy of the memory.
Smart Images

Figure CN114373501B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the technical field of solid state hard disks, and in particular to a storage block testing method and device. Background Art
[0002] In recent years, electronic product technology has developed rapidly, and consumers have higher and higher requirements for the experience of electronic products, and the demand for faster and more convenient storage products is increasing. Flash memory is most suitable for portable electronic products because of its characteristics of non-volatility, power saving, small size, no mechanical structure and fast read and write speed. Therefore, it has gradually developed into the mainstream memory in electronic products.
[0003] With the continuous update of flash memory technology, the three-layer storage mode (Trinary Level Cell, TLC) of flash memory has developed from 64 layers, 96 layers to 128 layers, and the storage density has been greatly improved, and the storage capacity has also been correspondingly improved. However, as the oxide layer of flash memory is compressed thinner and thinner, the storage medium is more and more sensitive to erase and program (Erase & Program, EP), and the mutual interference between each storage block is very serious, resulting in reduced stability of flash memory. Therefore, when building flash memory, it is also necessary to test the storage blocks to eliminate bad blocks that are severely interfered with and retain good blocks that are less interfered with.
[0004] Based on this, there is an urgent need for a storage block testing method to judge the quality of the storage block. Summary of the invention
[0005] The present application provides a storage block testing method for determining whether a storage block is good or bad.
[0006] In a first aspect, the present application provides a storage block testing method, comprising: obtaining a characteristic value subtable corresponding to the storage block, the characteristic value subtable containing multiple rows and multiple columns of characteristic values, the multiple rows and multiple columns of characteristic values being obtained by performing an XOR calculation on a first storage information flip table of the storage block under a normal environment and a second storage information flip table under a test environment; starting from an initial position of the characteristic value subtable, sequentially searching along a first direction to obtain adjacent maximum characteristic values and minimum characteristic values, fitting a maximum characteristic curve according to the adjacent maximum characteristic values found, and fitting a minimum characteristic curve according to the adjacent minimum characteristic values found; calculating the deviation between the maximum characteristic curve and the characteristic curve; judging whether the deviation is less than a first threshold value, and if so, determining that the storage block is a good block, and if not, determining that the storage block is a bad block.
[0007] By adopting the above method, the storage blocks with large differences in each part are screened as the storage blocks with serious interference, which can improve the reliability of storage block screening and avoid using them in the memory, which helps to improve the overall reliability of the memory.
[0008] A possible implementation method, obtaining a characteristic subtable corresponding to a storage block, includes: obtaining a first storage information flip table of the storage block under a normal environment and a second storage information flip table under a test environment; performing an XOR calculation on the first storage information flip table of the storage block under a normal environment and the second storage information flip table of the storage block under a test environment to obtain an original data matrix corresponding to the storage block, wherein the value of each element in the original data matrix is used to indicate the difference between the storage unit corresponding to the element in the storage block in the test environment and the normal environment; dividing the original data matrix into A sub-matrices, calculating the sum of all elements of each sub-matrix in the A sub-matrices, taking the sum of all elements as the eigenvalue of each sub-matrix, and obtaining an eigenvalue table; dividing the eigenvalue table into B sub-tables, calculating the sum of all eigenvalues of each sub-table in the B sub-tables, and taking the sub-table with the largest sum of all eigenvalues as the characteristic sub-table; wherein A and B are both positive integers greater than or equal to 2.
[0009] Through the above method, the first storage information flip table of the storage block under a normal environment and the second storage information flip table under a test environment are obtained, and the two tables are XORed, so that different information in the two tables can be screened out. In this way, storage information that will also be reversed under normal circumstances is excluded, which can maximize the reflection of the degree to which the storage block is disturbed by the test environment, thereby improving the accuracy and reliability of the storage block test.
[0010] A possible implementation method is to obtain a first storage information flip table of a storage block under a normal environment and a second storage information flip table under a test environment, including: obtaining a first data matrix stored in the storage block; obtaining a second data matrix stored in the storage block under a normal environment, and obtaining the first storage information flip table of the storage block under a normal environment according to the value of each element in the first data matrix and the second data matrix; obtaining a third data matrix stored in the storage block under a test environment, and obtaining the second storage information flip table of the storage block under the test environment according to the value of each element in the first data matrix and the third data matrix.
[0011] Through the above method, a first storage information flip table stored in the storage block under a normal environment and a second storage information flip table stored in a test environment are obtained, and the differences and similarities between the normal environment and the test environment can be evaluated accordingly, avoiding the situation where only the flip information is used to judge the quality of the storage block while ignoring the interference between the storage blocks, thereby improving the reliability of the storage block test.
[0012] A possible implementation method starts from the initial position of the eigenvalue subtable and searches in sequence along the first direction to obtain the adjacent maximum eigenvalue, including: for any current position, obtaining the first eigenvalue in the adjacent position on the first side of the current position and the second eigenvalue in the adjacent position on the second side of the current position; if the first eigenvalue is larger than the second eigenvalue, the first eigenvalue is used as the adjacent maximum eigenvalue corresponding to the current position; if the first eigenvalue is smaller than the second eigenvalue, the second eigenvalue is used as the adjacent maximum eigenvalue corresponding to the current position; if the first eigenvalue and the second eigenvalue are the same, according to the number of all remaining positions on the first side and the second side The minimum number among all the remaining positions, calculate the difference between the eigenvalues of the nearest minimum number of positions remaining on the first side and the sum of the eigenvalues of the nearest minimum number of positions remaining on the second side, if the difference is greater than the second threshold, then the eigenvalue in the adjacent position on the side with the larger sum of eigenvalues is used as the adjacent maximum eigenvalue corresponding to the current position, if the difference is less than the second threshold, then according to the value of a preset flag bit, the eigenvalue in the adjacent position on one side corresponding to the value is used as the adjacent maximum eigenvalue corresponding to the current position, and the value of the flag bit is changed, and the changed value is used to indicate that the eigenvalue in the adjacent position on the other side is used as the adjacent maximum eigenvalue corresponding to the current position.
[0013] Through the above method, the eigenvalue of the side with the larger eigenvalue on the two sides adjacent to the current position is taken as the maximum eigenvalue. When the two adjacent sides are the same, the maximum eigenvalue is determined by analyzing the eigenvalues of the remaining positions, ensuring that the maximum characteristic curve is constructed from the true maximum eigenvalue. In this way, the maximum characteristic curve can more accurately reflect the interference situation of the storage block, thereby improving the accuracy of the storage block test.
[0014] In the second aspect, the present application also provides a storage block testing device, including: an acquisition unit, used to acquire a characteristic value subtable corresponding to the storage block, the characteristic value subtable containing multiple rows and multiple columns of characteristic values, and the multiple rows and multiple columns of characteristic values are obtained by XOR calculation of a first storage information flip table of the storage block under a normal environment and a second storage information flip table under a test environment; a fitting unit, used to start from the initial position of the characteristic value subtable, and sequentially search along a first direction to obtain adjacent maximum eigenvalues and minimum eigenvalues, and obtain a maximum characteristic curve by fitting according to the adjacent maximum eigenvalues found, and obtain a minimum characteristic curve by fitting according to the adjacent minimum eigenvalues found; a calculation unit, used to calculate the deviation of the maximum characteristic curve and the minimum characteristic curve; a judgment unit, used to judge whether the deviation is less than a first threshold value, and if so, determine that the storage block is a good block, and if not, determine that the storage block is a bad block.
[0015] In a possible implementation, the acquisition unit is also used to: acquire a first storage information flip table of the storage block under a normal environment and a second storage information flip table under a test environment; perform XOR calculation on the first storage information flip table of the storage block under a normal environment and the second storage information flip table of the storage block under a test environment to obtain an original data matrix corresponding to the storage block, wherein the value of each element in the original data matrix is used to indicate the difference between the storage unit corresponding to the element in the storage block in the test environment and the normal environment; divide the original data matrix into A sub-matrices, calculate the sum of all elements of each sub-matrix in the A sub-matrices, and use the sum of all elements as the eigenvalue of each sub-matrix to obtain an eigenvalue table; divide the eigenvalue table into B sub-tables, calculate the sum of all eigenvalues of each sub-table in the B sub-tables, and use the sub-table with the largest sum of all eigenvalues as the characteristic sub-table; wherein A and B are both positive integers greater than or equal to 2.
[0016] In a possible implementation, the acquisition unit is also used to: acquire a first data matrix stored in the storage block; acquire a second data matrix stored in the storage block under a normal environment, and obtain a first storage information flip table of the storage block under a normal environment based on the value of each element in the first data matrix and the second data matrix; acquire a third data matrix stored in the storage block under a test environment, and obtain a second storage information flip table of the storage block under a test environment based on the value of each element in the first data matrix and the third data matrix.
[0017] In a possible implementation, the fitting unit is further used to: for any current position, obtain a first eigenvalue in an adjacent position on the first side of the current position and a second eigenvalue in an adjacent position on the second side of the current position; if the first eigenvalue is larger than the second eigenvalue, use the first eigenvalue as the adjacent maximum eigenvalue corresponding to the current position; if the first eigenvalue is smaller than the second eigenvalue, use the second eigenvalue as the adjacent maximum eigenvalue corresponding to the current position; if the first eigenvalue and the second eigenvalue are the same, calculate the difference between the eigenvalues of the nearest minimum number of positions remaining on the first side and the sum of the eigenvalues of the nearest minimum number of positions remaining on the second side according to the number of all remaining positions on the first side and the minimum number of all remaining positions on the second side; if the difference is greater than a second threshold, use the eigenvalue in the adjacent position on the side with the larger sum of eigenvalues as the adjacent maximum eigenvalue corresponding to the current position; if the difference is less than the second threshold, use the eigenvalue in the adjacent position on the side corresponding to the value as the adjacent maximum eigenvalue corresponding to the current position according to the value of a preset flag bit, and change the value of the flag bit, and the changed value is used to indicate that the eigenvalue in the adjacent position on the other side is used as the adjacent maximum eigenvalue corresponding to the current position.
[0018] In a third aspect, the present application provides a computer-readable storage medium, which stores a computer program. When the computer program is run, any one of the methods in the first aspect is executed.
[0019] In a fourth aspect, the present application provides a computing device, comprising: a memory for storing program instructions; a processor for calling the program instructions stored in the memory, and executing the method in any one of the designs in the above-mentioned first aspect according to the obtained program.
[0020] In a fifth aspect, the present application provides a computer program product, which, when executed on a processor, implements a method as in any one of the designs of the first aspect.
[0021] The beneficial effects of the second to fifth aspects mentioned above can be specifically referred to the beneficial effects that can be achieved by any design of the first aspect mentioned above, and will not be described in detail here. BRIEF DESCRIPTION OF THE DRAWINGS
[0022] Figure 1 A schematic diagram of an application scenario provided by an embodiment of the present application is exemplified;
[0023] Figure 2 A schematic diagram of a storage block testing method provided by an embodiment of the present application is exemplarily shown;
[0024] Figure 3 A schematic diagram of a method for obtaining a characteristic value subtable provided in an embodiment of the present application is exemplarily shown;
[0025] Figure 4 A schematic diagram of a process for finding adjacent maximum eigenvalues provided by an embodiment of the present application is exemplarily shown;
[0026] Figure 5 A schematic diagram of a process of searching for adjacent minimum eigenvalues provided in an embodiment of the present application is exemplarily shown;
[0027] Figure 6 A schematic diagram of a fitting curve provided in an embodiment of the present application is exemplarily shown;
[0028] Figure 7 A schematic diagram of a storage block testing device provided in an embodiment of the present application is exemplarily shown. DETAILED DESCRIPTION
[0029] In order to make the purpose, technical scheme and advantages of the present invention clearer, the present invention will be further described in detail below with reference to the accompanying drawings. Obviously, the described embodiments are only part of the embodiments of the present invention, rather than all the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention.
[0030] Figure 1 The following is a schematic diagram of an application scenario provided by an embodiment of the present application. Figure 1 As shown, a storage particle may include multiple storage blocks (such as storage block 1 to storage block N, N is a positive integer), each storage block includes multiple storage units, and multiple storage units may be presented as follows Figure 1 The array is shown schematically, and each storage unit is used to store one bit of binary data, such as 0 or 1.
[0031] Before introducing the specific embodiments, some of the terms used below are introduced exemplarily:
[0032] (1) Storage Information Flip Table
[0033] When writing binary data into a storage unit, since the characteristics of the storage unit are not stable, the binary data actually stored in the storage unit may be different from the binary data to be written, that is, the stored data is flipped.
[0034] For example, when writing the binary data table shown in Table 1a into a storage unit, if the binary data in the gray part of Table 1a is erroneously flipped, the actual storage block will store a binary data table as shown in Table 1b. In this way, by recording the storage unit where the binary data is flipped as 1 and recording the storage unit where the binary data is not flipped as 0, a storage information flip table as shown in Table 1c can be obtained. In the storage information flip table, a storage unit marked as 1 means that the data actually stored in the storage unit is different from the data to be stored, that is, the actual stored data and the data to be stored are flipped, and a storage unit marked as 0 means that the data actually stored in the storage unit is the same as the data to be stored, that is, the actual stored data is the data to be stored.
[0035]
[0036] (2) Storage information flip table corresponding to normal environment
[0037] In an embodiment of the present application, the storage particles can be placed in a normal temperature environment, and a preset binary data table can be stored in the storage particles. Based on the binary data table actually stored in the storage particles in the normal temperature environment and the binary data table to be stored, a storage information flip table of the storage particles in the normal temperature environment can be obtained by comparison. The storage information flip table is the storage information flip table corresponding to the normal environment, which can be used as benchmark data for subsequent testing of the storage block.
[0038] (3) Storage information flip table corresponding to the test environment
[0039] In the embodiment of the present application, in order to determine the adaptability of the storage particles to different temperature environments, different test temperatures can be selected in advance, and the storage particles are placed in different test temperature environments, and a preset binary data table is stored in the storage particles. According to the binary data table actually stored in the storage particles in each test temperature environment and the binary data table to be stored, the storage information flip table of the storage particles in each test temperature environment is obtained by comparison. Among them, each test temperature can be set by a person skilled in the art based on experience, for example, it can cover a temperature range of -50°C to 150°C.
[0040] At present, when the industry tests the quality of storage blocks, it usually calculates the error flip rate of the storage information in each storage block under the test environment based on the storage information flip table corresponding to the storage particles under the test environment, defines the storage blocks with high flip rates as strong storage blocks, and defines the storage blocks with low flip rates as weak storage blocks. The quality of the storage particles is judged by analyzing the number of strong and weak storage blocks in each storage particle. However, since the probability of binary data flipping in the storage blocks at the edge of the storage particles is greater than that of other storage blocks, if the quality of the storage blocks is judged only by the flip rate, there will usually be a large error. Moreover, in this test method, there is no way to screen out storage blocks that interfere seriously with each other but have low flip rates, which is not conducive to improving the reliability of judging the quality of storage particles.
[0041] Based on this, an embodiment of the present application provides a storage block testing method to improve the accuracy and reliability of judging the quality of storage particles.
[0042] Figure 2 A schematic diagram showing a flow chart of a storage block testing method provided by an embodiment of the present application is shown as follows: Figure 2 As shown, the process includes the following steps:
[0043] Step 201, obtaining a feature value subtable corresponding to a storage block.
[0044] In the above step 201, the characteristic value subtable corresponding to the storage block contains characteristic values of multiple rows and columns, and the characteristic values of the multiple rows and columns are obtained by performing XOR calculation on the first storage information flip table of the storage block under the normal environment and the second storage information flip table under the test environment. In other words, the characteristic subtable corresponding to the storage block can be used to characterize the storage error of the storage block under the test environment compared with the normal environment.
[0045] For example, Figure 3 A schematic diagram of a method for obtaining a characteristic value subtable corresponding to a storage block provided in an embodiment of the present application is shown, and the method includes the following steps:
[0046] Step 301: Obtain a first data matrix stored in a storage block.
[0047] For example, the first data matrix may be a data matrix storing a photo, which is stored in the form of a binary data table in the storage block, that is, stored in the form of 0 or 1 in each storage unit of the storage block.
[0048] Step 302, obtaining a second data matrix stored in the storage block under normal conditions, and obtaining a first storage information flip table of the storage block under normal conditions according to the value of each element in the first data matrix and the second data matrix.
[0049] For example, it is assumed that a partial representation of the first data matrix for storing a certain photo is as shown in Table 2a:
[0050] Table 2a
[0051]
[0052] The second data matrix storing the photo under normal conditions is shown in Table 2b:
[0053] Table 2b
[0054]
[0055] Then, by comparing Table 2a and Table 2b, it is found that the storage values in the storage cells marked in gray in Table 2b are flipped, and the flipped storage cell values are recorded as 1, and the non-flipped storage cell values are recorded as 0, and the first storage information flip table shown in Table 2c below is obtained:
[0056] Table 2c
[0057]
[0058] Step 303, obtain a third data matrix stored in the storage block under the test environment, and obtain a second storage information flip table of the storage block under the test environment according to the value of each element in the first data matrix and the third data matrix. The test environment can be a test environment at different temperatures, in which the storage block can expose the characteristics of the storage block to the maximum extent.
[0059] Assume that the third data matrix storing the same photo above in the test environment is as shown in Table 2d:
[0060] Table 2d
[0061]
[0062] Then, by comparing Table 2a and Table 2d, it is found that the storage values in the storage cells marked in gray in Table 2d are flipped, and the flipped storage cell values are recorded as 1, and the non-flipped storage cell values are recorded as 0, and the second storage information flip table shown in Table 2e is obtained:
[0063] Table 2e
[0064]
[0065] Step 304, perform an XOR calculation on the first storage information flip table of the storage block in a normal environment and the second storage information flip table in a test environment to obtain an original data matrix corresponding to the storage block, and the value of each element in the original data matrix is used to indicate the difference between the storage unit corresponding to the element in the storage block in the test environment and the normal environment.
[0066] Exemplarily, the first storage information flip table 2c and the second storage information flip table 2e are XORed, that is, for the same storage unit, if the values in Table 2c and Table 2e are the same, they are marked as 0, and if they are different, they are marked as 1, so that the following Table 2f can be obtained:
[0067] Table 2f
[0068] 0 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 0 1 1 0 0 1 0 0 0 1 0 1 0 0 1 0 1 0 1 0 0 1 1 1 1 0 1 0 0 0 0 1 1 0 0 1 0 0 1 0 0 1 0 0 1 1 0 1 0 0
[0069] It should be noted that since Table 2a is a part of the first data matrix of a photo, Table 2f is also a part of the original data matrix, and the entire original data matrix corresponding to the photo can contain multiple sub-matrices as shown in Table 2f, which are no longer listed in the embodiment of the present application.
[0070] Step 305, divide the original data matrix into A sub-matrices, calculate the sum of all elements of each sub-matrix in the A sub-matrices, take the sum of all elements as the eigenvalue of each sub-matrix, and obtain an eigenvalue table, where A is a positive integer greater than or equal to 2.
[0071] Exemplarily, the original data matrix can be divided into A sub-matrices of the size shown in Table 2f, and the sum of all elements in each sub-matrix is calculated. For example, taking the sub-matrix shown in Table 2f as an example, the sum of all elements in this matrix is 28, then 28 is used as the eigenvalue of the sub-matrix shown in Table 2f. In this way, after calculating the eigenvalue of each sub-matrix, an eigenvalue table can be obtained.
[0072] Step 306: divide the eigenvalue table into B subtables, calculate the sum of all eigenvalues of each subtable in the B subtables, and take the subtable with the largest sum of all eigenvalues as the characteristic subtable, where B is a positive integer greater than or equal to 2.
[0073] In the above step 306, the larger the characteristic value of the sub-table is, the higher the energy of the storage block in this part is, and the greater the impact of the test environment is on the storage block.
[0074] For example, it is assumed that the entire eigenvalue table is divided into B sub-tables of the sizes shown in Table 3 below:
[0075] Table 3
[0076]
[0077] For further example, assuming that among the B sub-tables, the sum of all the eigenvalues in Table 3 is the largest, then Table 3 is used as the characteristic sub-table. For the convenience of explanation, the rows and columns of Table 3 can also be numbered, and the Xth row and the Yth column can be represented as (X, Y), resulting in the following Table 4:
[0078] Table 4
[0079]
[0080] Step 202, starting from the initial position of the eigenvalue subtable, sequentially search for adjacent maximum eigenvalues and minimum eigenvalues along the first direction, fit the maximum characteristic curve according to the adjacent maximum eigenvalues found, and fit the minimum characteristic curve according to the adjacent minimum eigenvalues found.
[0081] The following takes the maximum characteristic curve as an example to introduce the detailed steps of finding the adjacent maximum eigenvalue:
[0082] Figure 4 A schematic diagram of a process for finding adjacent maximum eigenvalues provided in an embodiment of the present application is exemplarily shown, such as Figure 4 As shown, the process includes:
[0083] Step 401, for any current position, obtain a first eigenvalue in a position adjacent to a first side of the current position and a second eigenvalue in a position adjacent to a second side of the current position.
[0084] Exemplarily, the initial position may be set by a person skilled in the art based on experience, and may preferably be set to the position of the first storage unit in the upper left corner.
[0085] As shown in Table 4, assuming that the initial position is the position of the 0th row and the 0th column, recorded as (0,0), the first side adjacent position can be the right adjacent position (0,1), the second side adjacent position can be the lower adjacent position (1,0), the first eigenvalue at the right adjacent position (0,1) is 16, and the second eigenvalue at the lower adjacent position (1,0) is 6.
[0086] Step 402, determine whether the first eigenvalue and the second eigenvalue are the same, if so, execute step 403, if not, execute step 407.
[0087] Still using the above example for description, assuming that the first eigenvalue is 16 and the second eigenvalue is 6, and the first eigenvalue and the second eigenvalue are different, then step 407 is executed.
[0088] For further example, assuming that at a certain moment, the position is reached (2,0), the first eigenvalue of the position (2,1) adjacent to the right of the position (2,0) is 2, and the second eigenvalue of the position (3,0) adjacent to the bottom of the position (2,0) is also 2, and the first eigenvalue and the second eigenvalue are the same, then execute step 403.
[0089] Step 403, based on the minimum number of all remaining positions on the first side and the minimum number of all remaining positions on the second side, calculate the difference between the sum of the eigenvalues of the nearest minimum number of positions remaining on the first side and the sum of the eigenvalues of the nearest minimum number of positions remaining on the second side.
[0090] Still using the above example to illustrate, at the current position (2,0), the first eigenvalue and the second eigenvalue are the same. At this time, there are 8 positions left to the right of the position (2,0) and 13 positions left to the bottom. So the minimum number is 8. The sum of the eigenvalues of the 8 positions to the right of the position (2,0) is 57, the sum of the eigenvalues of the 8 positions closest to the bottom of the position (2,0) is 66, and the difference between the sums of the two eigenvalues is 9.
[0091] Step 404, determining whether the difference is greater than a second threshold, if so, executing step 405, if not, executing step 406.
[0092] In the above step 404, the difference between the sum of the two eigenvalues indicates the degree of difference between the eigenvalues on the right side and the lower side. If the difference is greater than the second threshold, it means that the difference in the eigenvalues is relatively large. At this time, the side with the larger sum of the eigenvalues should be selected as the maximum eigenvalue, and one side should not be selected at random, otherwise it will have a greater impact on the final result. On the contrary, if the difference is not greater than the second threshold, it means that the difference in the eigenvalues is relatively small, and selecting either side as the maximum eigenvalue will not have a significant impact on the final result.
[0093] The second threshold value may be set according to human experience. For example, the second threshold value may be any integer in the range of 3 to 15.
[0094] Still using the above example, assuming that the difference between the sums of the two eigenvalues is 9, then:
[0095] Case 1: if the second threshold is set to 8, at this time, the difference between the sums of the two eigenvalues is 9, which is greater than the second preset threshold, then step 405 is executed.
[0096] Case 2: if the second threshold is set to 11, at this time, the difference between the sums of the two eigenvalues is 9, which is not greater than the second threshold, then step 406 is executed.
[0097] Step 405: The eigenvalue in the adjacent position on the side with the larger sum of eigenvalues is taken as the adjacent maximum eigenvalue corresponding to the current position.
[0098] Still taking the above situation 1 as an example, since the difference between the sums of the two eigenvalues is greater than the second threshold, and the sum of the eigenvalues on the lower side is relatively large, the eigenvalue of the lower position (3, 0) adjacent to (2, 0) can be taken as the maximum eigenvalue, and the current position is moved to (3, 0).
[0099] Step 406, according to the value of the preset flag bit, the feature value in the adjacent position on one side corresponding to the value is used as the adjacent maximum feature value corresponding to the current position, and the value of the flag bit is changed. The changed value is used to indicate that the feature value in the adjacent position on the other side is used as the adjacent maximum feature value corresponding to the position.
[0100] In the above step 406, the preset flag is used to indicate which side of the adjacent position is used as the adjacent maximum eigenvalue corresponding to the current position. For example, when the flag is 0, it indicates that the eigenvalue in the lower adjacent position is used as the adjacent maximum eigenvalue corresponding to the current position, and when the flag is 1, it indicates that the eigenvalue in the right adjacent position is used as the adjacent maximum eigenvalue corresponding to the current position. By default, the initial preset flag can be set to 0 or 1, and after each use of the preset flag, the preset flag can be switched to another value, so that when the difference between the sum of the eigenvalues on both sides is not large, the eigenvalues on both sides are selected in turn as the maximum eigenvalue, so as to balance the selection of the maximum eigenvalue.
[0101] Still taking the above situation 2 as an example, at this time, the difference between the sums of the two eigenvalues is not greater than the second threshold, which means that selecting either side as the maximum eigenvalue will not have a significant impact on the final result. Therefore, if the current preset flag is 0, then the eigenvalue at the lower adjacent position (3,2) is used as the adjacent maximum eigenvalue corresponding to the current position. After that, the preset flag is flipped to 1. In this way, when the same situation is encountered next time, the eigenvalue of the adjacent position on the right will be selected as the adjacent maximum eigenvalue corresponding to the current position.
[0102] Step 407, determine whether the first eigenvalue is greater than the second eigenvalue, if so, execute step 408, if not, execute step 409.
[0103] Step 408: Use the first eigenvalue as the adjacent maximum eigenvalue corresponding to the current position.
[0104] Still using the example in step 402 above for explanation, assuming that the first eigenvalue is 16 and the second eigenvalue is 6, the first eigenvalue is greater than the second eigenvalue, and thus the first eigenvalue 16 can be used as the adjacent maximum eigenvalue corresponding to the position (0,0).
[0105] Step 409: Use the second eigenvalue as the adjacent maximum eigenvalue corresponding to the current position.
[0106] According to the above method, adjacent maximum eigenvalues are searched in turn, and the adjacent maximum eigenvalues found are marked, such as marked as light-colored shading as shown in Table 4. Then, the marked maximum eigenvalue is projected onto the coordinate axis, and the maximum characteristic curve is obtained by fitting.
[0107] The following takes the minimum characteristic curve as an example to introduce the detailed steps of finding the adjacent minimum eigenvalue:
[0108] Figure 5 A schematic diagram of a process of finding adjacent minimum eigenvalues provided in an embodiment of the present application is exemplarily shown, such as Figure 5 As shown, the process includes:
[0109] Step 501, for any current position, obtain a third eigenvalue in a position adjacent to a first side of the current position and a fourth eigenvalue in a position adjacent to a second side of the current position.
[0110] Step 502, determine whether the third eigenvalue and the fourth eigenvalue are the same. If yes, execute step 503, if not, execute step 507.
[0111] Step 503, based on the minimum number of all remaining positions on the first side and the minimum number of all remaining positions on the second side, calculate the difference between the sum of the eigenvalues of the nearest minimum number of positions remaining on the first side and the sum of the eigenvalues of the nearest minimum number of positions remaining on the second side.
[0112] Step 504, determining whether the difference is greater than a second threshold, if so, executing step 505, if not, executing step 506.
[0113] Step 505: The eigenvalue in the adjacent position on the side with the smaller sum of eigenvalues is taken as the adjacent minimum eigenvalue corresponding to the current position.
[0114] Step 506, according to the value of the preset flag bit, the feature value in the adjacent position on one side corresponding to the value is used as the adjacent minimum feature value corresponding to the current position, and the value of the flag bit is changed. The changed value is used to indicate that the feature value in the adjacent position on the other side is used as the adjacent minimum feature value corresponding to the position.
[0115] Step 507, determine whether the third eigenvalue is less than the fourth eigenvalue, if so, execute step 508, if not, execute step 509.
[0116] Step 508: Use the third eigenvalue as the adjacent minimum eigenvalue corresponding to the current position.
[0117] Step 509: Use the fourth eigenvalue as the adjacent minimum eigenvalue corresponding to the current position.
[0118] According to the above method, the adjacent minimum eigenvalues are found, the coordinates of each position point passed by the adjacent minimum eigenvalues are marked on the coordinate axis, and the minimum characteristic curve is obtained by fitting. As shown in Table 4, the dark background is each position passed by the adjacent minimum eigenvalues.
[0119] Step 203: Calculate the degree of deviation between the maximum characteristic curve and the minimum characteristic curve.
[0120] Figure 6 A schematic diagram of a fitting curve provided in an embodiment of the present application is exemplarily shown, such as Figure 6 As shown, Lmax is the maximum characteristic curve and Lmin is the minimum characteristic curve. Figure 6 As shown in the figure, a possible implementation method is that the divergence between the two curves can be calculated according to the following formula:
[0121]
[0122] Among them, n represents the number of test points, p represents the dimension of statistical points, k is the point currently calculated, and m represents the modulus one dimension. as well as It represents the m-dimensional data of the k-th test point of the curve Lmax and Lmin. The final result D E (L max ,L min ) represents the deviation between the two curves, and the probability of bad blocks is proportional to the deviation;
[0123] Step 204, determining whether the degree of deviation is less than a first threshold, if so, executing step 205, if not, executing step 206.
[0124] Exemplarily, the value range of the first threshold may be 2 to 8. Preferably, the first threshold may be 7.
[0125] Step 205: determine whether the storage block is a good block.
[0126] In an optional implementation, after determining that the degree of deviation is less than the first threshold value, before determining that the storage block is a bad block, the sum Vmax of the eigenvalues of each position passed by the maximum eigenvalue and the sum Vmin of the eigenvalues of each position passed by the minimum eigenvalue can also be calculated, and it is determined that the difference between Vmax and Vmin is less than the third threshold value. On the contrary, if the difference between Vmax and Vmin is not less than the third threshold value, it can be determined that the storage block is a bad block. In this way, the sum of the maximum eigenvalue and the sum of the minimum eigenvalue are taken into account in the storage block test, and the difference between the two reflects the difference in interference of each part of the storage block, and then reflects the degree of interference of the storage block as a whole, which can further improve the accuracy of the storage block test.
[0127] Step 206, determine whether the storage block is a bad block.
[0128] In one possible implementation, there are multiple storage blocks in a storage particle. After determining whether each storage block is a good block or a bad block, the ratio of good blocks to bad blocks in the multiple storage blocks can also be determined. If the ratio exceeds a fourth threshold, or the number of bad blocks exceeds a fifth threshold, then this storage particle cannot be used to construct an access device to ensure the reliability of the memory.
[0129] The above embodiment provides a storage block testing method, by obtaining the characteristic value subtable corresponding to the storage block, and starting from the initial position of the characteristic value subtable, searching for the adjacent maximum characteristic value and the minimum characteristic value in sequence along the first direction, fitting the maximum characteristic curve according to the adjacent maximum characteristic value found, fitting the minimum characteristic curve according to the adjacent minimum characteristic value found, and then calculating the deviation of the maximum characteristic curve and the minimum characteristic curve, and determining the storage block with the deviation exceeding the first threshold as a bad block. Through this method, the storage blocks with relatively large differences in various parts of the storage block can be screened out, and then the storage blocks with serious interference are excluded, which improves the reliability of storage block screening, and then avoids using them in flash memory, and improves the overall reliability of the flash memory.
[0130] Based on the same technical concept, an embodiment of the present application further provides a storage block testing device, which can execute the process of the storage block testing method provided in the aforementioned embodiment.
[0131] Figure 7 A schematic diagram of a storage block testing device provided in an embodiment of the present application is exemplarily shown. Figure 7 As shown, the device comprises:
[0132] An acquisition unit 701 is used to acquire a characteristic value subtable corresponding to a storage block, wherein the characteristic value subtable includes multiple rows and multiple columns of characteristic values, and the multiple rows and multiple columns of characteristic values are obtained by performing an XOR calculation on a first storage information flip table of the storage block under a normal environment and a second storage information flip table under a test environment;
[0133] A fitting unit 702 is used to find adjacent maximum eigenvalues and minimum eigenvalues in sequence along a first direction starting from an initial position of the eigenvalue subtable, and to fit a maximum characteristic curve according to the found adjacent maximum eigenvalues, and to fit a minimum characteristic curve according to the found adjacent minimum eigenvalues;
[0134] The calculation unit 703 is used to calculate the degree of deviation between the maximum characteristic curve and the minimum characteristic curve.
[0135] The judging unit 704 is used to judge whether the degree of deviation is less than a first threshold value, and if so, determine that the storage block is a good block, and if not, determine that the storage block is a bad block.
[0136] In a possible implementation, the acquisition unit 701 is also used to: acquire a first storage information flip table of the storage block under a normal environment and a second storage information flip table under a test environment; perform XOR calculation on the first storage information flip table of the storage block under a normal environment and the second storage information flip table of the storage block under a test environment to obtain an original data matrix corresponding to the storage block, wherein the value of each element in the original data matrix is used to indicate the difference between the storage unit corresponding to the element in the storage block in the test environment and the normal environment; divide the original data matrix into A sub-matrices, calculate the sum of all elements of each sub-matrix in the A sub-matrices, and use the sum of all elements as the eigenvalue of each sub-matrix to obtain an eigenvalue table; divide the eigenvalue table into B sub-tables, calculate the sum of all eigenvalues of each sub-table in the B sub-tables, and use the sub-table with the largest sum of all eigenvalues as the characteristic sub-table; wherein A and B are both positive integers greater than or equal to 2.
[0137] A possible implementation method is characterized in that the acquisition unit 701 is also used to: acquire a first data matrix stored in the storage block; acquire a second data matrix stored in the storage block under a normal environment, and obtain a first storage information flip table of the storage block under a normal environment according to the value of each element in the first data matrix and the second data matrix; acquire a third data matrix stored in the storage block under a test environment, and obtain a second storage information flip table of the storage block under a test environment according to the value of each element in the first data matrix and the third data matrix.
[0138] In a possible implementation, the fitting unit 702 is further used to: for any current position, obtain a first eigenvalue in a position adjacent to the first side of the current position and a second eigenvalue in a position adjacent to the second side of the current position; if the first eigenvalue is larger than the second eigenvalue, use the first eigenvalue as the adjacent maximum eigenvalue corresponding to the current position; if the first eigenvalue is smaller than the second eigenvalue, use the second eigenvalue as the adjacent maximum eigenvalue corresponding to the current position; if the first eigenvalue and the second eigenvalue are the same, select the minimum eigenvalue according to the number of all remaining positions on the first side and the number of all remaining positions on the second side. The difference between the eigenvalues of the nearest minimum number of positions remaining on the first side and the sum of the eigenvalues of the nearest minimum number of positions remaining on the second side is calculated; if the difference is greater than a second threshold, the eigenvalue in the adjacent position on the side with the larger sum of eigenvalues is used as the adjacent maximum eigenvalue corresponding to the current position; if the difference is less than the second threshold, the eigenvalue in the adjacent position on the side corresponding to the value is used as the adjacent maximum eigenvalue corresponding to the current position according to the value of a preset flag bit, and the value of the flag bit is changed, and the changed value is used to indicate that the eigenvalue in the adjacent position on the other side is used as the adjacent maximum eigenvalue corresponding to the current position.
[0139] Based on the same technical concept, an embodiment of the present invention further provides a computing device, including: a memory for storing program instructions;
[0140] A processor is used to call the program instructions stored in the memory and execute the following according to the obtained program: Figure 2 to Figure 5 The method indicated.
[0141] Based on the same technical concept, the embodiment of the present invention further provides a computer-readable storage medium, when the computer program product is run on a processor, Figure 2 to Figure 5 The method indicated.
[0142] Based on the same technical concept, an embodiment of the present invention further provides a computer program product, which, when executed on a processor, implements the following Figure 2 to Figure 5 The method indicated.
[0143] Those skilled in the art will appreciate that the embodiments of the present application may be provided as methods, systems, or computer program products. Therefore, the present application may adopt the form of a complete hardware embodiment, a complete software embodiment, or an embodiment in combination with software and hardware. Moreover, the present application may adopt the form of a computer program product implemented in one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) that include computer-usable program code.
[0144] The present application is described with reference to the flowcharts and / or block diagrams of the methods, devices (systems), and computer program products according to the present application. It should be understood that each process and / or box in the flowchart and / or block diagram, as well as the combination of the processes and / or boxes in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing device generate instructions for implementing the processes in the flowchart and / or block diagram. Figure 1 A process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.
[0145] These computer program instructions may also be stored in a computer-readable memory capable of directing a computer or other programmable data processing device to operate in a specific manner, so that the instructions stored in the computer-readable memory produce an article of manufacture comprising an instruction device, which implements the process Figure 1 A process or multiple processes and / or boxes Figure 1 A function specified in one or more boxes.
[0146] These computer program instructions can also be loaded onto a computer or other programmable data processing device so that a series of operating steps are executed on the computer or other programmable device to produce a computer-implemented process, thereby providing instructions for implementing the process. Figure 1 A process or multiple processes and / or boxes Figure 1 The steps for the functions specified in one or more boxes.
[0147] Obviously, those skilled in the art can make various changes and modifications to the present application without departing from the spirit and scope of the present application. Thus, if these modifications and variations of the present application fall within the scope of the claims of the present application and their equivalents, the present application is also intended to include these modifications and variations.
Claims
1. A storage block testing method, characterized in that: The method comprises: Obtaining a characteristic value subtable corresponding to a storage block, wherein the characteristic value subtable contains multiple rows and multiple columns of characteristic values, and the multiple rows and multiple columns of characteristic values are obtained by performing an XOR calculation on a first storage information flip table of the storage block under a normal environment and a second storage information flip table under a test environment; Starting from the initial position of the eigenvalue subtable, adjacent maximum eigenvalues and minimum eigenvalues are sequentially searched along the first direction to obtain a maximum characteristic curve according to the adjacent maximum eigenvalues found, and a minimum characteristic curve is obtained by fitting according to the adjacent minimum eigenvalues found; Calculating the degree of deviation between the maximum characteristic curve and the minimum characteristic curve; Determine whether the deviation is less than a first threshold, if so, determine that the storage block is a good block, if not, determine that the storage block is a bad block; The deviation is calculated according to the following formula: Among them, D E (L max ,L min ) is the deviation, L max is the maximum characteristic curve, the L min is the minimum characteristic curve, as well as are respectively the m-dimensional data of the k-th test point of the maximum characteristic curve and the minimum characteristic curve, n is the number of test points, p is the dimension of the statistical point, k is the currently calculated test point, and m is the currently calculated dimension.
2. The method according to claim 1, characterized in that The step of obtaining a characteristic value subtable corresponding to a storage block includes: Obtaining a first storage information flip table of the storage block under a normal environment and a second storage information flip table under a test environment; Performing an XOR calculation on a first storage information flip table of the storage block in a normal environment and a second storage information flip table in a test environment to obtain an original data matrix corresponding to the storage block, wherein the value of each element in the original data matrix is used to indicate the difference between the storage unit corresponding to the element in the storage block in the test environment and the normal environment; Divide the original data matrix into A sub-matrices, calculate the sum of all elements of each sub-matrix in the A sub-matrices, and use the sum of all elements as the eigenvalue of each sub-matrix to obtain an eigenvalue table; Divide the eigenvalue table into B subtables, calculate the sum of all eigenvalues of each subtable in the B subtables, and take the subtable with the largest sum of all eigenvalues as the eigenvalue subtable; Wherein, A and B are both positive integers greater than or equal to 2.
3. The method according to claim 2, characterized in that The obtaining of a first storage information flip table of the storage block under a normal environment and a second storage information flip table under a test environment comprises: Acquire a first data matrix stored in the storage block; Acquire a second data matrix stored in the storage block under the normal environment, and obtain a first storage information flip table of the storage block under the normal environment according to the value of each element in the first data matrix and the second data matrix; A third data matrix stored in the storage block under the test environment is obtained, and a second storage information flip table of the storage block under the test environment is obtained according to the value of each element in the first data matrix and the third data matrix.
4. The method according to claim 1, characterized in that Starting from the initial position of the eigenvalue subtable, searching in sequence along the first direction to obtain adjacent maximum eigenvalues includes: For any current position, obtain a first feature value in a position adjacent to a first side of the current position and a second feature value in a position adjacent to a second side of the current position; If the first eigenvalue is larger than the second eigenvalue, the first eigenvalue is used as the adjacent maximum eigenvalue corresponding to the current position; if the first eigenvalue is smaller than the second eigenvalue, the second eigenvalue is used as the adjacent maximum eigenvalue corresponding to the current position; If the first eigenvalue and the second eigenvalue are the same, then the difference between the sum of the eigenvalues of the nearest minimum number of positions remaining on the first side and the sum of the eigenvalues of the nearest minimum number of positions remaining on the second side is calculated based on the minimum number of all remaining positions on the first side and the minimum number of all remaining positions on the second side; if the difference is greater than a second threshold, the eigenvalue in the adjacent position on the side with the larger sum of the eigenvalues is used as the adjacent maximum eigenvalue corresponding to the current position; if the difference is less than the second threshold, then based on the value of a preset flag bit, the eigenvalue in the adjacent position on the side corresponding to the value is used as the adjacent maximum eigenvalue corresponding to the current position, and the value of the flag bit is changed, and the changed value is used to indicate that the eigenvalue in the adjacent position on the other side is used as the adjacent maximum eigenvalue corresponding to the current position.
5. A storage block testing device, characterized in that: The device comprises: An acquisition unit, used for acquiring a characteristic value subtable corresponding to a storage block, wherein the characteristic value subtable includes a plurality of rows and columns of characteristic values, and the plurality of rows and columns of characteristic values are obtained by performing an XOR calculation on a first storage information flip table of the storage block under a normal environment and a second storage information flip table under a test environment; A fitting unit, used to start from the initial position of the eigenvalue subtable, sequentially search for adjacent maximum eigenvalues and minimum eigenvalues along a first direction, fit a maximum characteristic curve according to the adjacent maximum eigenvalues found, and fit a minimum characteristic curve according to the adjacent minimum eigenvalues found; A calculation unit, used for calculating the degree of deviation between the maximum characteristic curve and the minimum characteristic curve; a judging unit, configured to judge whether the degree of deviation is less than a first threshold, and if so, determine that the storage block is a good block, and if not, determine that the storage block is a bad block; The calculation unit calculates the deviation according to the following formula: Among them, D E (L max ,L min ) is the deviation, L max is the maximum characteristic curve, the L min is the minimum characteristic curve, as well as are respectively the m-dimensional data of the k-th test point of the maximum characteristic curve and the minimum characteristic curve, n is the number of test points, p is the dimension of the statistical point, k is the currently calculated test point, and m is the currently calculated dimension.
6. The device according to claim 5, characterized in that The acquisition unit is also used for: Obtaining a first storage information flip table of the storage block under a normal environment and a second storage information flip table under a test environment; Performing an XOR calculation on a first storage information flip table of the storage block in a normal environment and a second storage information flip table in a test environment to obtain an original data matrix corresponding to the storage block, wherein the value of each element in the original data matrix is used to indicate the difference between the storage unit corresponding to the element in the storage block in the test environment and the normal environment; Divide the original data matrix into A sub-matrices, calculate the sum of all elements of each sub-matrix in the A sub-matrices, and use the sum of all elements as the eigenvalue of each sub-matrix to obtain an eigenvalue table; Divide the eigenvalue table into B subtables, calculate the sum of all eigenvalues of each subtable in the B subtables, and take the subtable with the largest sum of all eigenvalues as the eigenvalue subtable; Wherein, A and B are both positive integers greater than or equal to 2.
7. The device according to claim 6, characterized in that The acquisition unit is also used for: Acquire a first data matrix stored in the storage block; Acquire a second data matrix stored in the storage block under the normal environment, and obtain a first storage information flip table of the storage block under the normal environment according to the value of each element in the first data matrix and the second data matrix; A third data matrix stored in the storage block under the test environment is obtained, and a second storage information flip table of the storage block under the test environment is obtained according to the value of each element in the first data matrix and the third data matrix.
8. The device according to claim 5, characterized in that The fitting unit is also used for: For any current position, obtain a first feature value in a position adjacent to a first side of the current position and a second feature value in a position adjacent to a second side of the current position; If the first eigenvalue is larger than the second eigenvalue, the first eigenvalue is used as the adjacent maximum eigenvalue corresponding to the current position; if the first eigenvalue is smaller than the second eigenvalue, the second eigenvalue is used as the adjacent maximum eigenvalue corresponding to the current position; If the first eigenvalue and the second eigenvalue are the same, then the difference between the sum of the eigenvalues of the nearest minimum number of positions remaining on the first side and the sum of the eigenvalues of the nearest minimum number of positions remaining on the second side is calculated based on the minimum number of all remaining positions on the first side and the minimum number of all remaining positions on the second side; if the difference is greater than a second threshold, the eigenvalue in the adjacent position on the side with the larger sum of the eigenvalues is used as the adjacent maximum eigenvalue corresponding to the current position; if the difference is less than the second threshold, then based on the value of a preset flag bit, the eigenvalue in the adjacent position on the side corresponding to the value is used as the adjacent maximum eigenvalue corresponding to the current position, and the value of the flag bit is changed, and the changed value is used to indicate that the eigenvalue in the adjacent position on the other side is used as the adjacent maximum eigenvalue corresponding to the current position.
9. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, and when the computer program is executed, the method according to any one of claims 1 to 4 is executed.
10. A computing device, characterized in that include: A memory for storing program instructions; A processor is used to call the program instructions stored in the memory and execute the method according to any one of claims 1 to 4 according to the obtained program.
