Solid state storage device and patrol reading method using character line grouping
By using the character line grouping method in the solid-state storage device, the read threshold voltage representing the character line is selected for patrol reading, and the read threshold voltage in the group is updated according to the reading results, the problem of excessive update of the read threshold voltage in the traditional method is solved, and the efficiency of the device is improved.
Patent Information
- Application Number
- CN202311628363.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-11-30
- Publication Date
- 2025-05-30
AI Technical Summary
In patrol and read operations, traditional solid-state storage devices cannot effectively ensure that the same read threshold voltage is applicable to the character lines in the same character line group, resulting in the read threshold voltage being updated too frequently, which reduces the device performance.
By using a character line grouping method in the solid state storage device, a controller selects a first character line group from a plurality of character line groups, and performs a reading operation using the read threshold voltage representing the character line of the group, and updates the read threshold voltage in the group when the read fails.
This method can effectively reduce the invalid read threshold voltage update operation, improve the effectiveness of the solid-state storage device, and reduce the probability of conflict with the read or write operation.
Smart Images

Figure CN120072006A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a solid state storage device, and more particularly to a solid state storage device and a patrol read method using word line grouping.
[0002] Prior Art
[0003] A solid state storage device uses non-volatile memory to store data. With the development of technology, it has been widely used in different computer systems. Non-volatile memory is formed by arranging a plurality of flash memory cells and is cross-connected by a plurality of word lines and a plurality of bit lines. When reading the data stored in the non-volatile memory, a previously set read threshold voltage is applied to the corresponding word line. Since the previously set read threshold voltage will shift due to many factors, the solid state storage device will perform a patrol read operation on the non-volatile memory. When a traditional solid state storage device performs a patrol read operation, it reads each word line in its non-volatile memory one by one to determine whether the number of error bits in the read data is too large, so as to determine whether the read threshold voltage of the word line needs to be updated. In addition, since storing the read threshold voltage of each word line requires a lot of memory space, in a traditional solid state storage device, a plurality of physically adjacent word lines are regarded as a group and the same read threshold voltage is used. However, this method of dividing groups cannot ensure that the word lines in the same group are all suitable for the same read threshold voltage, and it also makes that during the process of patrolling and reading each word line one by one, as long as any word line in the group is updated with the read threshold voltage, the read threshold voltage commonly used by the group will be updated together. In other words, if there are as many word lines in the group that are updated with the read threshold voltage, the read threshold voltage commonly used by the group will be updated that many times. However, no matter how many times the read threshold voltage used in the same group is updated, the updated read threshold voltage still cannot be guaranteed to be suitable for all the word lines in the group. Therefore, this traditional patrol read operation not only consumes a lot of time, but also generates many ineffective read threshold voltage update operations, and is also prone to conflict with the write operation or read operation performed by the solid state storage device, so it will reduce the performance of the solid state storage device. Summary of the Invention
[0004] Therefore, the present invention provides a solid state storage device and a patrol read method using word line grouping to solve the above problems.
[0005] In one embodiment, the present invention provides a solid-state storage device, comprising: a controller; and a non-volatile memory electrically connected to the controller. The non-volatile memory includes a plurality of blocks, and each block includes a plurality of word lines, and each word line has a corresponding read threshold voltage. The controller is configured to select a first word line group from a plurality of word line groups, wherein the word line groups are obtained by grouping the word lines according to the read threshold voltages of the respective word lines, and the representative word line corresponding to each word line group is set according to the read threshold voltage associated with each word line group. The controller is further configured to use the read threshold voltage of the first representative word line corresponding to the first word line group to read the page data of the first representative word line. When the controller cannot correctly read the page data of the first representative word line using the read threshold voltage of the first representative word line, the controller is further configured to update the read threshold voltage of the first representative word line in the first word line group.
[0006] In another embodiment, the present invention further provides a method for grouping word lines for inspection reading, which is used for a solid-state storage device. The solid-state storage device includes a controller and a non-volatile memory, and the non-volatile memory includes a plurality of blocks, and each block includes a plurality of word lines, and each word line has a corresponding read threshold voltage. The method includes: using the controller to select a first word line group from a plurality of word line groups, wherein the word line groups are obtained by grouping the word lines according to the read threshold voltages of the respective word lines, and the representative word line corresponding to each word line group is set according to the read threshold voltage associated with each word line group; using the controller to read the page data of the first representative word line by using the read threshold voltage of the first representative word line corresponding to the first word line group; and when the controller cannot correctly read the page data of the first representative word line using the read threshold voltage of the first representative word line, using the controller to update the read threshold voltage of the first representative word line in the first word line group.
[0007] Brief Description of the Drawings
[0008] Figure 1 It is a block diagram of a computer system according to an embodiment of the present invention.
[0009] Figure 2 It is a circuit diagram of each block in a non-volatile memory according to an embodiment of the present invention.
[0010] Figure 3A It is a schematic diagram of grouping word lines by using a neural network through the read threshold voltage of a specific page according to an embodiment of the present invention.
[0011] Figure 3B It is a schematic diagram of grouping word lines according to read threshold voltages in different states according to an embodiment of the present invention.
[0012] Figure 3C According to Figure 3B It is a schematic diagram of the word line group 311 in the embodiment.
[0013] Figure 4 It is a flowchart of an inspection read method using word line grouping according to an embodiment of the present invention.
[0014] Figure 5 According to Figure 4 It is a flowchart of the word line grouping method in the embodiment.
[0015] Embodiments
[0016] The following description is a preferred implementation for completing the invention, which aims to describe the basic spirit of the present invention but is not used to limit the present invention. The actual content of the invention must refer to the claims hereafter.
[0017] It must be understood that words such as "comprising" and "including" used in this specification are used to indicate the existence of specific technical features, numerical values, method steps, operations, elements, and / or components, but do not exclude the addition of more technical features, numerical values, method steps, operations, elements, components, or any combination of the above.
[0018] Words such as "first", "second", and "third" used in the claims are used to modify the components in the claims, and do not indicate a priority order, precedence relationship, or that one component precedes another component, or the chronological order of performing method steps, but are only used to distinguish components with the same name.
[0019] The phrase "configured to" can describe or claim that various units, circuits, or other components are "configured to" perform one or more tasks. In such contexts, the phrase "configured to" is used to imply structure by indicating that the unit / circuit / component includes a structure (e.g., circuitry) that performs those task(s) during operation. Thus, even when the specified unit / circuit / component is not currently operating (e.g., not powered on), it can still be said that the unit / circuit / component is configured to perform the task. The unit / circuit / component used with the phrase "configured to" includes hardware - such as: circuits, memory (storing program instructions executable to implement operations), etc. In addition, "configured to" can include a generic structure (e.g., a generic circuitry) that is manipulated by software and / or firmware (e.g., an FPGA or a general-purpose processor executing software) to operate in a manner capable of performing the task(s) to be solved. "Configured to" can also include adapting a manufacturing process (e.g., a semiconductor manufacturing facility) to manufacture a device (e.g., an integrated circuit) that is adapted to implement or execute one or more tasks.
[0020] Figure 1 FIG. is a block diagram of a computer system according to an embodiment of the present invention.
[0021] As Figure 1 shown, the computer system 1 includes a solid-state storage device 10 and a host 20, wherein the solid-state storage device 10 is electrically connected to the host 20 through a bus 11 for instruction and data transmission. In some embodiments, the bus 11 can be a Universal Serial Bus (USB), a Serial Advanced Technology Attachment (SATA) bus, a Peripheral Component Interconnect Express (PCIe) bus, etc., but the present disclosure is not limited thereto.
[0022] The solid-state storage device 10 includes a controller 102, a cache 104, a volatile memory 106, and a non-volatile memory 108. The controller 102 is electrically connected to the cache 104, the volatile memory 106, and the non-volatile memory 108, and is used to control the data access of the cache 104, the volatile memory 106, and the non-volatile memory 108. In some embodiments, the controller 102 may be, for example, a general-purpose processor, a microcontroller, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), etc., but the present disclosure is not limited thereto.
[0023] The cache 104 includes, for example, a static random access memory (SRAM). The volatile memory 106 includes, for example, a dynamic random access memory (DRAM), but the present disclosure is not limited thereto. In some embodiments, the cache 104 and the volatile memory 106 may be disposed outside the controller 102, for example. In other embodiments, the cache 104 and the volatile memory 106 may be integrated into the controller 102, for example. The non-volatile memory 108 is, for example, a NAND flash memory for storing the write data provided by the host 20.
[0024] The host 20 includes, for example, a processor 202 and a system memory 204, and the processor 202 is electrically connected to the system memory 204. In some embodiments, the processor 202 may be, for example, a central processing unit, a general-purpose processor, a microprocessor, etc., but the present disclosure is not limited thereto. In addition, the processor 202 includes a controller (not shown) for controlling the data access of the system memory 204. The system memory 204 includes, for example, a dynamic random access memory, but the present disclosure is not limited thereto.
[0025] In some embodiments, the host 20 can support, for example, the Non-Volatile Memory Express (NVMe) communication protocol, and a submission queue 2041, a completion queue 2042, and a data buffer 2043 are configured in the system memory 204. The submission queue 2041 is used to record access instructions issued by the processor 202, the completion queue 2042 is used to record the status of the solid-state storage device 10 in response to the completed access instructions, and the data buffer 2043 is used to store the data that the host 20 desires to write to the solid-state storage device 10 and the data that the host 20 reads from the solid-state storage device 10.
[0026] In some embodiments, the solid-state storage device 10 can support, for example, the Non-Volatile Memory Express (NVMe) communication protocol, and the controller 102 can retrieve access instructions, such as write instructions, read instructions, etc., from the submission queue 2041 of the host 20 and store the retrieved access instructions in the cache 104.
[0027] In some embodiments, the non-volatile memory 108 can be implemented, for example, with a single die, and it includes a plurality of blocks 1081, and each block includes a plurality of pages. For example, the non-volatile memory 108 contains 1024 blocks 1081, and each block 1081 includes 64 pages. Assuming that the capacity of each page is 16 Kbytes, the capacity of each block 1081 is 1 Mbytes. The above data is for illustration only, and the manufacturer of the non-volatile memory 108 can determine the number of pages in each block 1081 and the capacity of each page. In other embodiments, the non-volatile memory 108 includes a plurality of dies (not shown), and the Figure 1 blocks 1081 therein can be located on different dies.
[0028] In some embodiments, the controller 102 includes an Error Correction Code (ECC) circuit 1021 for correcting the page data read by the controller 102 from the non-volatile memory 108. For example, the ECC circuit 1021 is a hardware circuit with a predetermined error bit correction capability (ECC capability), such as X bits. When the number of error bits Y of the page data read by the controller 102 from the non-volatile memory 108 for a specific character line is less than or equal to X, the ECC circuit 1021 can correct the error bits in the page data to correct bits in a hardware error correction manner, and the controller 102 can transmit the corrected page data to the host 20.
[0029] When the number of error bits Y of the page data read by the controller 102 from the non-volatile memory 108 is greater than the error bit correction ability of the ECC circuit 1021 (i.e., Y>X), it means that the ECC circuit 1021 can no longer correct the error bits in the page data to correct bits simply by using the hardware error correction method. At this time, the controller 102 can perform a read retry operation to read the page data of the specific character line with the next read retry voltage. When the number of error bits Y1 of the page data read by the controller 102 from the specific character line via the read retry operation is less than the error bit correction ability of the ECC circuit 1021, the controller 102 can transfer the page data corrected by the ECC circuit 1021 to the host 20. If the number of error bits Y1 of the page data read from the specific character line by the read retry operation still exceeds the error bit correction ability of the ECC circuit 1021, the controller 102 can perform the next read retry operation until the error in the page data can be corrected or until the number of read retry operations reaches a predetermined number.
[0030] Figure 2 It is a circuit diagram of each block in the non-volatile memory according to an embodiment of the present invention.
[0031] In some embodiments, each block 1081 in the non-volatile memory 108 includes a plurality of transistors 231 and 233, and a plurality of flash memory cells 232. The transistor 231 is located on the string select line (SSL), and the transistor 233 is located on the ground select line (GSL). For ease of illustration, the two-dimensional array formed by the flash memory cells 232 includes N word lines (such as word lines WL0 to WL(N-1)) and M bit lines (such as bit lines BL0 to BL(M-1)), where M and N are positive integers. In some embodiments, each block 1081 includes a plurality of word lines. The flash memory cells 232 on the same word line (such as any one of the word lines WL0 to WL(N-1)) form one or more pages, depending on the type of the flash memory cells 232, such as Single-Level Cell (SLC), Multi-Level Cell (MLC), Triple-Level Cell (TLC), Quad-Level Cell (QLC), Penta-Level Cell (PLC), Hexa-Level Cell (HLC), and so on. For example, when the types of the flash memory cells 232 are Single-Level Cell, Multi-Level Cell, Triple-Level Cell, Quad-Level Cell, Penta-Level Cell, and Hexa-Level Cell respectively, the flash memory cells 232 can store 1, 2, 3, 4, 5, and 6 bits of data respectively, and the number of the above pages is 1, 2, 3, 4, 5, and 6 respectively.
[0032] In some embodiments, when the controller 102 desires to perform a patrol read on Figure 2 the block 1081, the controller 102 asserts the string select line SSL and the ground select line GSL to a high logic state, so that the transistor 231 on the string select line SSL and the transistor 233 on the ground select line GSL are turned on. The controller 102 reads the page data corresponding to the representative word line in each word line group using a predetermined read threshold voltage. When the number of error bits in the page data read from any representative word line exceeds a predetermined threshold, the controller 102 updates the read threshold voltage used by the word lines belonging to the word line group corresponding to the representative word line according to the read threshold voltage update mechanism. The definition of the representative word line will be described with reference to Figure 3B and Figure 3C in the following paragraphs.
[0033] In some embodiments, the controller 102 actively performs a patrol read operation on the non-volatile memory 108 in the background, and the above-mentioned patrol read operation is based on the character line groups of each block 1081 of the non-volatile memory 108 and for the representative character line of each character line group. The controller 102 performs the patrol read operation to detect blocks with increased errors. For example, the data stored in the non-volatile memory 108 is read every specific unit time, and the read page data is tested based on the error correction result in the ECC circuit 1021. The test process is, for example, comparing the number of error bits of the read data with the error bit correction ability of the ECC circuit 1021, and updating the read threshold voltage of the character line corresponding to the page data whose number of error bits exceeds the error bit correction ability.
[0034] Figure 3A It is a schematic diagram of character line grouping using a neural network based on the read threshold voltage of a specific page according to an embodiment of the present invention. Figure 3B It is a schematic diagram of character line grouping based on the read threshold voltage in different states according to an embodiment of the present invention. Figure 3C According to Figure 3B A schematic diagram of the character line group 311 in the embodiment.
[0035] For ease of explanation, in the following embodiments, the flash memory cell 232 takes a four-layer memory cell as an example. In some embodiments, when the flash memory cell 232 is a four-layer memory cell, it means that the flash memory cell 232 can record 4-bit data and can be represented by 16 different data states, such as from state S0 to S15. It should be noted that the 4-bit values represented by states S0 to S15 are not continuous. In addition, the page data read by the controller 102 for a specific character line in the block 1081 can include four types of pages, such as a low page, a middle page, an up page, and a top page. For example, when the controller 102 wants to read the page data of the low page of a specific character line, the controller 102 needs to use the read threshold voltages corresponding to states S6, S8, and S10 respectively to read the page data of the low page on the specific character line. In addition, the controller 102 can determine the optimal read threshold voltages VTHS6B, VTHS8B, and VTHS10B corresponding to states S6, S8, and S10 after multiple read retry operations, which means that the page data read from the non-volatile memory 108 has the minimum number of error bits. Similarly, when the controller 102 wants to read the page data of the middle page, the up page, or the top page, the controller 102 can determine the optimal read threshold voltages of each state corresponding to the middle page, the up page, or the top page after multiple read retry operations.
[0036] In some embodiments, the controller 102 may input the read threshold voltage settings (e.g., the optimal read threshold voltages) corresponding to the low page, middle page, upper page, and top page of each character line in the block 1081 to the input nodes (e.g., input nodes 302, 304, and 306) of the neural network 1022 respectively for clustering the read threshold voltage settings of each character line, as Figure 3A shown. For the sake of illustration, in Figure 3A , the optimal read threshold voltages VTHS6B, VTHS8B, and VTHS10B corresponding to the states S6, S8, and S10 of the low page of each character line are input to the input nodes 302, 304, and 306 of the neural network 1022 respectively. For example, as Figure 3B shown, the combination of the read threshold voltages VTHS6B, VTHS8B, and VTHS10B of the above character lines can form a coordinate point in the three-dimensional topological space 320 (with the read threshold voltages VTHS6, VTHS8, and VTHS10 as axes), which can be regarded as a set of read threshold voltage settings, and each read threshold voltage setting of the character lines has a corresponding coordinate point. As Figure 3A shown, the neural network 1022 classifies the coordinate points formed by the optimal read threshold voltages VTHS6B, VTHS8B, and VTHS10B of the low page of each character line into groups 310 to 31N, and the controller 102 can classify each character line in the block 1081 into a plurality of character line groups associated with the groups 310 to 31N.
[0037] In some embodiments, the neural network 1022 is, for example, a Kohonen network (KN), which is a self-organizing map. The neural network 1022 can use the topological space 320 to represent the distribution of each output value and its classification (cluster or group). The number of groups classified by the neural network 1022 is not limited, but depends on the distribution of the input data. For the sake of illustration, Figure 3B the topological space 320 includes groups 310, 311, 312, and 313. In some embodiments, the neural network 1022 can calculate the center point coordinates of each group 310 to 31N, for example, by using the coordinate points classified into each group to calculate the center point coordinates. It should be noted that the above center point coordinates may not correspond to the actually existing character lines, so the controller 102 will select the coordinate point closest to the center point coordinates in each group 310 to 31N as the center point of each group 310 to 31N, and use the corresponding character line as the representative word line of each character line group.
[0038] In some embodiments, when the controller 102 performs a patrol read operation on the non-volatile memory 108, it reads the representative word lines of each word line group. When the number of error bits of the page data read from the representative word line of the word line group exceeds a predetermined threshold, the controller 102 updates the read threshold voltage of the word lines belonging to the corresponding word line group of the representative word line according to the read threshold voltage update mechanism. In other words, during the patrol read operation, the controller 102 determines whether to update the read threshold voltage of the word lines in the word line group according to the read result of the representative word line of each word line group.
[0039] In some embodiments, the neural network 1022 can set the distance threshold D used for each group, that is, the distance between the center point of a specific group and each coordinate point does not exceed the distance threshold D. In some embodiments, the distance threshold D is, for example, 2 ticks, and can be adjusted according to the actual situation. 1 tick represents the difference in the read threshold voltage between adjacent gears when the controller 102 performs a read retry operation, and it is a fixed value. As Figure 3C shown, the group 311 includes a center point 3111, and the distance D from its boundary of the group 311 is, for example, 2 ticks.
[0040] In some embodiments, when the maximum value of the distances in each dimension between the new coordinate point input to the neural network 1022 and the center point 3111 of the group 311 is less than or equal to the distance threshold D, the neural network 1022 classifies the new coordinate point into the group 311. When the maximum value of the distances in each dimension between the new coordinate point input to the neural network 1022 and the center point 3111 of the group 311 is greater than the distance threshold D, the neural network 1022 classifies the new coordinate point into other groups outside the group 311. Therefore, the number of word lines in each word line group obtained by the neural network 1022 classifying the word lines of each block 1081 is non-uniform, that is, some word line groups contain a larger number of word lines, and some word line groups contain a smaller number of word lines.
[0041] It should be noted that the above embodiments illustrate that the neural network 1022 executed by the controller 102 can classify the word lines of a specific block 1081 into multiple word line groups, determine its representative word line from each word line group, and determine whether to select a refresh indicator wordline according to the coordinate distribution of each word line group. Each word line group has a representative word line, but does not necessarily have a refresh indicator wordline.
[0042] For example, for multiple word lines classified into the same word line group, their respective read threshold voltages will be close to the read threshold voltage of the representative word line of the word line group. However, there may still be specific word lines in the same word line group whose read threshold voltages have a relatively large voltage deviation value compared to the read threshold voltage of the representative word line (for example, it may exceed 2 steps). Therefore, the controller 102 can set the specific word line with a voltage deviation value exceeding a predetermined threshold and the number of error bits greater than a predetermined ratio as the update index word line of the word line group. During the patrol read operation of the controller 102 on the non-volatile memory 108, when the controller 102 reads the update index word line and the number of error bits in the page data obtained after performing the read retry operation within a predetermined number of times exceeds the error bit correction ability of the ECC circuit 1021, the controller 102 determines that the stored data of the word lines in the word line group where the update index word line is located needs to perform a data relocation operation. In some embodiments, the controller 102 can determine that the stored data of the block 1081 where the update index word line is located needs to perform a data relocation operation.
[0043] In some embodiments, the neural network 122 executed by the controller 102 can also classify the word lines of the specific block 1081 into multiple word line groups for the read page, upper page, and top page respectively in a similar manner, and determine the representative word line from each word line group, and determine whether to select an update index word line according to the coordinate distribution of each group (similar to Figure 3A groups 310 to 31N). In addition, there will be at least one word line group with an update index word line among all the word line groups for the read low page, middle page, upper page, and top page respectively. In other embodiments, after the controller 102 has classified the word lines of the specific block 1081 into multiple word line groups for a certain page type (such as the top page) in a similar manner, the controller 102 may no longer classify the word lines of the specific block 1081 into multiple word line groups for other page types (such as the low page, middle page, and upper page) respectively, but uniformly use the word line groups classified for one page type, such as the top page.
[0044] For example, for the sake of convenience of explanation, the specific block 1081 includes, for example, 100 word lines numbered from 0 to 99. Through classification by the neural network 1022, these 100 word lines are classified into 20 word line groups (abbreviated as groups in Table 1) numbered from 1 to 20, as shown in Table 1. Table 1 shows the word line groups and corresponding word line numbers in the specific block 1081, as well as the representative word line numbers and update index word line numbers for the low page (low page), middle page (middle page), high page (high page), and top page (top page).
[0045]
[0046]
[0047] Table 1
[0048] Taking the character line group 1 as an example, it includes character line numbers 0, 2, 12, 23, 48, and 60. In addition, the controller 102 can determine the representative character lines and their numbers for the low page, medium page, high page, and top page from each group in the topological space (similar to the topological space 320 shown in Figure 3B ) established by the neural network 1022 in the foregoing manner. For example, the representative character lines and their numbers for the low page, medium page, high page, and top page in the character line group 1 are 48, 12, 2, and 23 respectively.
[0049] Taking the character line group 20 as an example, it includes character line numbers 6, 7, 14, 28, 31, 52, and 80. In addition, the controller 102 can determine the representative character lines and their numbers for the low page, medium page, high page, and top page from each group in the topological space (such as the topological space 320 shown in Figure 3B ) established by the neural network 1022. For example, they are 28, 6, 52, and 52 respectively.
[0050] In other words, for the character line group 1, when the controller 102 checks the page data of the low page, medium page, high page, and top page, it will perform read operations using the read threshold voltages of multiple data states corresponding to the character line numbers 48, 12, 2, and 23 respectively. For the character line group 20, when the controller 102 checks the page data of the low page, medium page, high page, and top page, it will perform read operations using the read threshold voltages of multiple data states corresponding to the character line numbers 28, 6, 52, and 52 respectively.
[0051] In the embodiment of Table 1, the character line groups 2 and 20 include update index character lines for some page types, while the character line group 1 does not include update index character lines for the low page, medium page, high page, and top page. For example, in the character line group 2, the update index character lines for the low page and high page are included, and their numbers are 100 and 4 respectively, but the medium page and top page do not include corresponding update index character lines. The update index character line number for the low page in the character line group 20 is 14. However, the character line group 20 does not include update index character lines for the medium page, high page, and top page.
[0052] In some embodiments, when the controller 102 performs a patrol read operation on the non-volatile memory 108, it reads the representative word lines of each word line group and determines whether to update the read threshold voltage of the word lines in the word line group according to the read result of the representative word line. In addition, if the word line group includes an update index word line, the controller 102 also reads the update index word line and determines whether to perform a data transfer operation on the stored data of the word lines in the word line group according to the read result of the update index word line. In some embodiments, the controller 102 can determine whether to perform a data transfer operation on the stored data of the block 1081 where the index word line is located according to the read result of the update index word line.
[0053] Figure 4 It is a flowchart of a patrol read method using word line grouping according to an embodiment of the present invention.
[0054] Taking the word line group in Table 1 as an example, for the sake of convenience of description, when the controller 102 performs a patrol read on the block 1081, it takes reading a low page as an example, and a similar patrol read process can be used for other read pages. In step S402, during the period when the controller 102 performs a patrol read on the block 1081, the controller 102 first selects a word line group, such as word line group 1. In step S404, when the controller 102 checks word line group 1, the controller 102 uses the read threshold voltage of the representative word line WL48 of word line group 1 to read the page data of the representative word line WL48. For example, the controller 102 uses the read threshold voltage of the representative word line WL48 to read the page data from the representative word line WL48. In some embodiments, the read threshold voltage of the representative word line can be the default read threshold voltage of the representative word line or the previously updated read threshold voltage. In some embodiments, the read threshold voltage of the representative word line can be set to the read threshold voltage of its corresponding word line group, that is, the read threshold voltage commonly used by the word lines in the word line group.
[0055] In step S406, the controller 102 determines whether the page data can be correctly read in step S404. When the controller 102 can correctly read the page data of the representative word line WL48 using the read threshold voltage representing the word line WL48 (step S406: Yes), that is, the number of error bits in the page data read from the representative word line WL48 using the read threshold voltage representing the word line WL48 is less than the error bit correction ability of the ECC circuit 1021, the controller 102 does not need to update the read threshold voltage of the word lines in the word line group, nor does it need to perform a patrol read operation on other word lines in the word line group, and returns to step S402. The controller 102 will select the next word line group (such as word line group 2) to perform a patrol read operation for inspection. When the controller 102 cannot correctly read the page data of the representative word line WL48 using the read threshold voltage representing the word line WL48 (step S406: No), that is, the number of error bits in the page data read from the representative word line WL48 using the read threshold voltage representing the word line WL48 is greater than the error bit correction ability of the ECC circuit 1021, it enters step S408, and the controller 102 will update the read threshold voltage of the representative word line in word line group 1.
[0056] In some embodiments, in step S408, the controller 102 performs a read retry operation on the representative word line of the selected word line group to update the corresponding read threshold voltage of the representative word line. For example, the controller 102 gradually adjusts the read threshold voltage of the representative word line WL48 (for example, differing by 1 step from the previous read threshold voltage), and uses the adjusted read threshold voltage to sequentially read the page data from the representative word line WL48. When the page data can be correctly read from the representative word line WL48 using one of the adjusted read threshold voltages, that is, the number of error bits in the page data read from the representative word line WL48 using the adjusted read threshold voltage is less than the error bit correction ability of the ECC circuit, the controller 102 will update the read threshold voltage of the representative word line WL48 to the adjusted read threshold voltage, and complete the operation of updating the read threshold voltage of the representative word line WL48.
[0057] In some embodiments, at step S408, the controller 102 updates the read threshold voltage corresponding to the representative word line of the selected word line group, and directly sets the updated read threshold voltage of the representative word line as the read threshold voltage of the selected word line group. In this embodiment, the read threshold voltage of the representative word line is set as the read threshold voltage of its corresponding word line group, that is, the read threshold voltage commonly used by the word lines in the word line group. For example, the controller 102 updates the read threshold voltage corresponding to the representative word line WL48 of the selected word line group 1, and directly sets the updated read threshold voltage of the representative word line WL48 as the read threshold voltage of the selected word line group 1. That is, when selecting other word lines WL0, WL2, WL12, WL23, WL60 in the word line group 1, they directly use the updated read threshold voltage of the representative word line WL48. This is equivalent to updating the read threshold voltages of other word lines WL0, WL2, WL12, WL23, WL60 in the word line group 1 to the updated read threshold voltage of the representative word line WL48.
[0058] In some embodiments, the controller 102 determines whether the selected word line group includes an update index word line. If so, the controller 102 uses the read threshold voltage of the update index word line to read the page data of the update index word line, and determines whether the page data of the update index word line can be correctly read out. If the controller 102 can correctly read out the page data of the update index word line using the read threshold voltage of the update index word line, the controller 102 does not perform additional operations. If the controller 102 cannot correctly read out the page data of the update index word line using the read threshold voltage of the update index word line, the controller 102 performs a data transfer operation on the page data stored in each word line of the selected word line group. In some embodiments, the controller 102 performs a data transfer operation on the data stored in the block 1081 where the update index word line is located.
[0059] For example, during a patrol read operation, the controller 102 selects the character line group 20 for inspection. If the controller 102 determines that the character line group 20 includes the updated index character line WL14, the controller 102 uses the read threshold voltage of the updated index character line WL14 to read the page data of the updated index character line WL14. If the controller 102 can correctly read the page data of the updated index character line WL14 using the read threshold voltage of the updated index character line WL14, the controller 102 does not perform additional operations. If the controller 102 cannot correctly read the page data of the updated index character line WL14 using the read threshold voltage of the updated index character line WL14, the controller 102 performs a data transfer operation on the page data stored in the character lines WL6, WL7, WL14, WL28, WL31, WL52, and WL80 in the character line group 20. In some embodiments, the controller 102 only performs a data transfer operation on the page data stored in the updated index character line WL14 in the character line group 20. In some embodiments, the controller 102 performs a data transfer operation on the data stored in the block 1081 where the index character line WL14 is located.
[0060] Figure 5 is based on Figure 4 Flowchart of the character line grouping method in the embodiment. Please also refer to Figure 1 and Figure 5 .
[0061] In step S510, the read threshold voltages associated with each character line of each block 1081 in the non-volatile memory 108 are obtained. For example, the read threshold voltages of each character line include a plurality of read threshold voltages corresponding to multiple data states for different page types, where the page type depends on the type of flash memory cells in the non-volatile memory 108, such as single-level memory cells, multi-level memory cells, three-level memory cells, four-level memory cells, five-level memory cells, and six-level memory cells, etc. Taking four-level memory cells as an example, each of its low page, middle page, high page, and top page has corresponding multiple data states. Each character line in each block 1081 has a corresponding default read threshold voltage for each data state, which can be the best read threshold voltage (e.g., minimizing the number of error bits in the page data) obtained after testing each character line for each data state, or the updated read threshold voltage after a read retry process.
[0062] In step S520, the read threshold voltages associated with the word lines of each block 1081 are input to the neural network 1022 to classify the word lines of each block 1081 into a plurality of word line groups. For example, the neural network 1022 can be a Kohonen network (KN), which can utilize the read threshold voltages of the word lines of each block 1081 corresponding to different data states of different page types to construct a topological space (such as the topological space 320 shown in Figure 3B ), and classify multiple groups of read threshold voltages in the topological space into a plurality of groups, that is, the controller 102 can correspondingly classify the word lines of each block 1081 into a plurality of word line groups, where each word line group includes at least one word line. It should be noted that the neural network 1022 can set the distance threshold D used for each group, that is, the distance between the center point of a specific group and each coordinate point does not exceed the distance threshold D, for example, it is 2 ticks, and it can be adjusted according to the actual situation.
[0063] In step S530, the controller 102 is used to set the representative word lines corresponding to each word line group according to the read threshold voltages associated with each word line group. In some embodiments, the controller 102 can further set the updated index word lines corresponding to some word line groups. Then, in step S540, during the operation of the patrol read, the controller 102 sequentially selects the word line groups, reads the representative word lines of the selected word line groups, and determines whether to update the read threshold voltages of the representative word lines in the selected word line groups according to the read results of the representative word lines, as shown in the flowchart of Figure 4 . In some embodiments, if the selected word line group includes an updated index word line, the controller 102 will also read the updated index word line, and determine whether to perform a data transfer operation on the data stored in the word lines in the selected word line group, or perform a data transfer operation on the data stored in the block 1081 where the updated index word line is located according to the read result of the updated index word line.
[0064] In summary, the present invention provides a solid-state storage device and a patrol reading method using character line grouping, which can read the corresponding representative character lines and updated index character lines (if any) of each character line group in each block 1081 during the patrol reading of each block 1081, and determine subsequent operations according to the reading results, without the need to additionally read other character lines outside the representative character lines and updated index character lines (if any) of each character line group. Therefore, on the premise of maintaining the data reliability of the solid-state storage device 10, the patrol reading method using character line grouping proposed by the present invention can greatly save the time required for the solid-state storage device 10 to perform patrol reading, and can reduce the probability of conflict between the solid-state storage device 10 during the execution of read operations or write operations and the patrol reading operation, thereby improving the performance of the solid-state storage device 10.
[0065] Although the present invention is disclosed above with preferred embodiments, it is not intended to limit the scope of the present invention. Any person with ordinary knowledge in the technical field to which the present invention pertains can make some modifications and refinements without departing from the spirit and scope of the present invention. Therefore, the protection scope of the present invention shall be subject to that defined by the appended claims.
[0066] Description of the Reference Numerals
[0067] 1 Computer system
[0068] 10 Solid-state storage device
[0069] 11 Bus
[0070] 20 Host
[0071] 102 Controller
[0072] 104 Cache
[0073] 106 Volatile memory
[0074] 108 Non-volatile memory
[0075] 1021 ECC circuit
[0076] 1022 Neural network
[0077] 1081 Block
[0078] 202 Processor
[0079] 204 System memory
[0080] 231, 233 Transistor
[0081] 232 Flash memory cell
[0082] 2041 Commit queue
[0083] 2042 Completion Queue
[0084] 2043 Data Buffer
[0085] 302, 304, 306 Input Nodes
[0086] 310 - 31N Groups
[0087] 320 Topological Space
[0088] 3111 Central Point
[0089] 400, 500 Methods
[0090] S402 - S408, S510 - S540 Steps
[0091] SSL String Selection Line
[0092] GSL Grounding Selection Line
[0093] WL0 - WL(N - 1) Word Lines
[0094] BL0 - BL(M - 1) Bit Lines
[0095] VTHS6B, VTHS8B, VTHS10B Optimal Read Threshold Voltages
[0096] VTHS6, VTHS8, VTHS10 Read Threshold Voltages
[0097] D Distance Threshold.
Claims
1. A solid-state storage device, comprising: a controller; and a non-volatile memory electrically connected to the controller, wherein the non-volatile memory includes a plurality of blocks, and each block includes a plurality of word lines, and each word line has a corresponding read threshold voltage; wherein, the controller is configured to select a first word line group from a plurality of word line groups, wherein the word line groups are obtained by clustering the word lines according to the read threshold voltage of each word line, and the representative word line corresponding to each word line group is set according to the read threshold voltage associated with each word line group; wherein, the controller is further configured to use the read threshold voltage of the first representative word line corresponding to the first word line group to read the page data of the first representative word line; wherein, when the controller cannot correctly read the page data of the first representative word line using the read threshold voltage of the first representative word line, the controller is further configured to update the read threshold voltage of the first representative word line in the first word line group.
2. The solid-state storage device according to claim 1, wherein, when the controller can correctly read the page data of the first representative word line using the read threshold voltage of the first representative word line, the controller is further configured to select a second word line group from the word line groups for a patrol read operation.
3. The solid-state storage device according to claim 1, wherein, the read threshold voltage corresponding to each word line of each block is input to a neural network, and the neural network is configured to construct a topological space using the read threshold voltage corresponding to each word line of each block, and classify the read threshold voltages in the topological space into a plurality of groups, wherein the groups respectively correspond to the word line groups.
4. The solid-state storage device according to claim 3, wherein, the neural network is further configured to calculate the center point of each group according to a plurality of coordinate points formed by the read threshold voltages in each group, and the word line closest to the center point in each group is the representative word line of each word line group.
5. The solid-state storage device according to claim 4, wherein, the controller is further configured to determine whether to set an update index word line in each word line group according to the distribution of the coordinate points in each group.
6. The solid-state storage device according to claim 5, wherein when the first word line group has a set update pointer word line, the controller is further configured to read the update pointer word line of the first word line group, and determine whether to perform a data transfer operation on the stored data in the block where the first word line group is located according to the read result of the update pointer word line of the first word line group.
7. A patrol reading method using character line grouping for a solid-state storage device, where the solid-state storage device includes a controller and a non-volatile memory, and the non-volatile memory includes a plurality of blocks, and each block includes a plurality of character lines, and each character line has a corresponding read threshold voltage, and the method includes: using the controller to select a first character line group from a plurality of character line groups, where the character line groups are obtained by grouping the character lines according to the read threshold voltages of the respective character lines, and the representative character line corresponding to each character line group is set according to the read threshold voltage associated with each character line group; using the controller to read the page data of the first representative character line using the read threshold voltage of the first representative character line corresponding to the first character line group; and when the controller cannot correctly read the page data of the first representative character line using the read threshold voltage of the first representative character line, using the controller to update the read threshold voltage of the first representative character line in the first character line group.
8. The method according to claim 7, further including: when the controller can correctly read the page data of the first representative character line using the read threshold voltage of the first representative character line, using the controller to select a second character line group from the character line groups for a patrol reading operation.
9. The method according to claim 7, wherein, the read threshold voltages corresponding to the respective character lines of each block are input to a neural network, and the neural network constructs a topological space based on the read threshold voltages corresponding to the respective character lines of each block, and classifies the read threshold voltages in the topological space into a plurality of groups, where the groups respectively correspond to the character line groups.
10. The method according to claim 9, wherein, the neural network calculates the center point of each group based on a plurality of coordinate points formed by the read threshold voltages in each group, and the character line closest to the center point in each group is the representative character line of each character line group.
11. The method according to claim 10, further including: using the controller to determine whether to set an update pointer character line in each character line group according to the distribution of the coordinate points in each group.
12. The method according to claim 11, further including: when the first character line group has a set update pointer character line, using the controller to read the update pointer character line of the first character line group, and judging whether to perform a data transfer operation on the stored data in the block where the first character line group is located according to the read result of the update pointer character line of the first character line group.