A data storage method, a data reading method and related products

By alternating data storage in adjacent odd and even blocks in 3D flash memory, the problem of slow read speed caused by word line switching or block switching is solved, and faster data reading is achieved.

CN122309389APending Publication Date: 2026-06-30SHANGHAI JIAMAI TECHNOLOGY CO LTD

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
SHANGHAI JIAMAI TECHNOLOGY CO LTD
Filing Date
2026-04-02
Publication Date
2026-06-30

AI Technical Summary

Technical Problem

Existing 3D flash memory has a slow overall data reading speed because word line layer switching or memory block switching takes a long time.

Method used

By optimizing the data storage method, the data to be stored is alternately stored in adjacent odd and even blocks, and the multi-level data of the same type is stored in two adjacent odd and even storage blocks. The last data of the Nth level and the first data of the N+1th level are distributed in different storage blocks.

Benefits of technology

The word line voltage setup time consumption during word line switching or block switching is hidden during the data reading process, which improves the overall data reading speed.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122309389A_ABST
    Figure CN122309389A_ABST
Patent Text Reader

Abstract

This application discloses a data storage method, a data reading method, and related products, applicable to the semiconductor technology field. The data storage method is used in a 3D flash memory comprising at least two storage blocks. The method includes: acquiring data of a target category to be stored; the data to be stored includes M layers of data, where M is a positive integer greater than or equal to 2; and, according to the data reading order, alternately storing each piece of data in the data to be stored into a first storage block and a second storage block; the first and second storage blocks are adjacent odd-numbered blocks and even-numbered blocks, or adjacent even-numbered blocks and odd-numbered blocks; the last piece of data in the Nth layer and the first piece of data in the (N+1)th layer are distributed in different storage blocks; N is a positive integer less than or equal to M-1. Thus, by optimizing the data storage method, the word line voltage setup time consumption caused by word line switching or block switching is hidden, improving the overall data reading speed.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of semiconductor technology, and in particular to a data storage method, a data reading method, and related products. Background Technology

[0002] 3D NAND flash memory is a non-volatile memory technology that breaks through the scaling limits of traditional 2D flash memory by vertically stacking memory cells. Unlike planar structures, 3D NAND flash memory uses thin-film deposition and deep-hole etching processes to stack memory cells in multiple layers like a "skyscraper," thereby achieving higher capacity, lower cost, and better power consumption within the same chip area.

[0003] Existing 3D NAND flash memory reads data sequentially from each selected memory block. When reading from any memory block, a read voltage is applied to the selected word line, while an on voltage is applied to the other unselected word lines within the block. During reading, data on each word line is read sequentially, and a read voltage is only applied to the next word line after the data on the current word line has been read completely. When all the data in a memory block has been read, before starting to read from the next memory block, on-state voltages are applied to all word lines of the next memory block, and then the voltage on the selected word lines is switched from on-state voltage to read voltage. However, due to the large capacitance on the word line layer, the setup time for word line or memory block switching is relatively long, resulting in a slow overall data reading speed.

[0004] Therefore, how to improve the overall data reading speed is a problem that urgently needs to be solved by those skilled in the art. Summary of the Invention

[0005] To address the aforementioned issues, this application provides a data storage method, a data reading method, and related products. By optimizing the data storage method, the word line voltage setup time consumption caused by word line switching or block switching is hidden, thereby improving the overall data reading speed.

[0006] In a first aspect, embodiments of this application provide a data storage method for a 3D flash memory, the 3D flash memory comprising at least two storage blocks, the data storage method comprising: Obtain the target category's data to be stored; the data to be stored includes M layers of data, where M is a positive integer greater than or equal to 2; According to the data reading order, each piece of data in the data to be stored is alternately stored in the first storage block and the second storage block; the first storage block and the second storage block are adjacent odd blocks and even blocks, or adjacent even blocks and odd blocks; the last piece of data in the Nth layer and the first piece of data in the N+1th layer are distributed in different storage blocks; N is a positive integer less than or equal to M-1.

[0007] Optionally, the data storage method further includes: When the three-dimensional flash memory includes at least four storage blocks, and the total storage space of the first storage block and the second storage block is less than the required storage space corresponding to the data to be stored, a third storage block and a fourth storage block are determined; the third storage block and the fourth storage block are adjacent odd-numbered blocks and even-numbered blocks, or adjacent even-numbered blocks and odd-numbered blocks; The last L layers of data in the data to be stored are stored in the third storage block and the fourth storage block; where L is a positive integer less than M.

[0008] Secondly, embodiments of this application provide a data storage device, including: The acquisition module is used to acquire the data to be stored for the target category; the data to be stored includes M layers of data, where M is a positive integer greater than or equal to 2; The storage module is used to alternately store each piece of data in the data to be stored into the first storage block and the second storage block according to the data reading order; the first storage block and the second storage block are adjacent odd blocks and even blocks, or adjacent even blocks and odd blocks; the last piece of data in the Nth layer and the first piece of data in the N+1th layer are distributed in different storage blocks; N is a positive integer less than or equal to M-1.

[0009] Thirdly, embodiments of this application provide a data storage device, including: Memory, used to store computer programs; A processor for implementing the data storage method described above when executing the computer program.

[0010] Fourthly, embodiments of this application provide a data reading method, which is used to read data stored by the above-described data storage method. The data reading method includes: Determine the first category corresponding to the Nth layer of data to be read; Based on the first category, determine the first block to be read and the second block to be read; According to the data reading order, the Nth layer data is read from the first block to be read and the second block to be read, and the second category is determined; The third and fourth blocks to be read are determined based on the second category; According to the data reading order, the N+1th layer of data is read from the third and fourth blocks to be read.

[0011] Optionally, before reading the Nth layer data from the first block to be read and the second block to be read in the data reading order, and determining the second category, the method further includes: Adjust all word lines in the first and second blocks to be read to the on-state voltage.

[0012] Optionally, the data reading method further includes: Before reading the Kth data in the Nth layer of data, the voltage of the word line containing the Kth data is changed to the read voltage; where K is a positive integer greater than or equal to 1. When reading the Kth data, the voltage of the word line containing the (K+1)th data is changed to the reading voltage; The word line corresponding to the Kth data and the word line corresponding to the (K+1)th data are located on two adjacent storage blocks with odd and even numbers.

[0013] Optionally, the data reading method further includes: If the third block to be read and the fourth block to be read are different from the first block to be read and the second block to be read, then when reading the Nth layer data, all word lines corresponding to all target storage blocks where the N+1th layer data in the 3D flash memory is located will be adjusted to the on-state voltage. When reading the last data in the Nth layer of data, the word line corresponding to the first data in the (N+1)th layer of data in the target storage block is adjusted to the read voltage.

[0014] Fifthly, embodiments of this application provide a data reading device, including: The first determining module is used to determine the first category corresponding to the Nth layer data to be read; The second determining module is used to determine the first block to be read and the second block to be read based on the first category; The first reading module is used to read the Nth layer data from the first block to be read and the second block to be read in the data reading order, and to determine the second category; The third determining module is used to determine the third block to be read and the fourth block to be read based on the second category; The second reading module is used to read the N+1th layer of data from the third and fourth blocks to be read in the order of data reading.

[0015] Sixthly, embodiments of this application provide a data reading device, including: Memory, used to store computer programs; A processor for executing the computer program to implement the steps of the data reading method described above.

[0016] As can be seen from the above technical solutions, compared with the prior art, this application has the following advantages: The data storage method provided in this application is used in a 3D flash memory containing at least two storage blocks. The method includes: firstly, acquiring data of a target category to be stored. The data to be stored includes M layers of data, where M is a positive integer greater than or equal to 2. Then, according to the data reading order, each piece of data in the data to be stored is alternately stored in a first storage block and a second storage block. The first and second storage blocks are adjacent odd and even blocks, or adjacent even and odd blocks; the last piece of data in the Nth layer and the first piece of data in the (N+1)th layer are distributed in different storage blocks; N is a positive integer less than or equal to M-1. Thus, by optimizing the data storage method, multiple layers of data of the same type are stored in two adjacent odd and even storage blocks, and the last piece of data in the previous layer and the first piece of data in the next layer of adjacent layers of the same type are stored in two separate storage blocks. This hides the word line voltage setup time consumption caused by word line switching or block switching during subsequent data reading, improving the overall data reading speed. Attached Figure Description

[0017] Figure 1 A schematic diagram of a storage array for a storage block in a three-dimensional flash memory is provided as an embodiment of this application; Figure 2 A flowchart illustrating a data storage method provided in an embodiment of this application; Figure 3 A schematic diagram illustrating a data storage method provided in an embodiment of this application; Figure 4 A flowchart illustrating a data reading method provided in an embodiment of this application; Figure 5 A schematic diagram illustrating the data reading order within a layer, provided as an embodiment of this application; Figure 6 This is a schematic diagram of the structure of a data storage device provided in an embodiment of this application; Figure 7 This is a schematic diagram of the structure of a data reading device provided in an embodiment of this application. Detailed Implementation

[0018] As mentioned earlier, existing methods suffer from slow overall data retrieval speed. Specifically, Figure 1This is a schematic diagram of a storage array for a single storage block in a three-dimensional flash memory, provided as an embodiment of this application. (In conjunction with...) Figure 1 As shown, this memory block has 8192 bit lines (BL), BL<0:8191> (meaning 8192 bits of data can be read at once). In the bit line direction, there are 4 Top Select Gate (TSG) lines, TSG_0<0:3>, used to select and read 1 / 4 of the data from the selected word line (WL). Vertically, there are 256 layers of word lines WL_0<0:255>, one layer of TSG lines TSG_0<0:3>, and one layer of Bottom Select Gate (BSG) lines BSG. <0> and source line (SL) <0> Existing methods, when reading from 3D flash memory, first select the storage block (e.g., ...). Figure 1 (As shown in the memory block diagram) Within the selected memory block, a conduction voltage needs to be applied to the unselected word lines, a read voltage to the selected word lines, a TSG (Top Select Gate) line selected and a conduction voltage applied, all bottom select gates selected and a conduction voltage applied, and the source line nodes and all word lines in the unselected memory blocks are set to 0 voltage. Then, within the current memory block, in the read order, a layer of word lines is selected first, a read voltage is applied, and the data on the current word line is read. During the read process, by sequentially applying a conduction voltage to each top select gate line (the remaining top select gate lines need to be set to 0 voltage), the data on the word lines corresponding to each top select gate line is read sequentially. When the data (on all word lines corresponding to all top select gate lines) is read, the word line is switched, and the top select word lines are selected sequentially to read the data on the selected word lines. This process is repeated until the data on all word lines in the current memory block is read, at which point the process switches to the next memory block. However, due to the large capacitance on the word line layer, the switching setup for word lines or memory blocks takes a long time, resulting in a slow overall data read speed.

[0019] To address the aforementioned problems, this application provides a data storage method for a 3D flash memory comprising at least two storage blocks. The method includes: first, acquiring data of a target category to be stored. The data to be stored includes M layers of data, where M is a positive integer greater than or equal to 2. Then, according to the data reading order, each piece of data in the data to be stored is alternately stored into a first storage block and a second storage block. The first and second storage blocks are adjacent odd-numbered blocks and even-numbered blocks, or adjacent even-numbered blocks and odd-numbered blocks; the last piece of data in the Nth layer and the first piece of data in the (N+1)th layer are distributed in different storage blocks; N is a positive integer less than or equal to M-1.

[0020] In this way, by optimizing the data storage method, multi-layer data of the same type is stored in two adjacent odd and even storage blocks, and the last data of the previous layer and the first data of the next layer of the same type of data are stored in two separate storage blocks. This hides the word line voltage setup time consumption caused by word line switching or block switching during subsequent data reading, thereby improving the overall data reading speed.

[0021] It should be noted that the data storage method, data retrieval method, and related products provided in this application can be applied to the field of semiconductor technology. The above are merely examples and do not limit the application areas of the data storage method, data retrieval method, and related products provided in this application.

[0022] To make the objectives, technical solutions, and advantages of the embodiments of this application clearer, the technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the scope of protection of this application.

[0023] Figure 2 This is a flowchart illustrating a data storage method provided in an embodiment of this application. (In conjunction with...) Figure 2 As shown in the embodiment of this application, a data storage method can be used in a 3D flash memory, the 3D flash memory comprising at least two storage blocks, and the data storage method may include: S101: Obtain the data to be stored for the target category; the data to be stored includes M layers of data, where M is a positive integer greater than or equal to 2.

[0024] In practical applications, each piece of data to be stored has its own corresponding category, and different pieces of data to be stored may correspond to different categories. This application embodiment uses any one category of data to be stored as an example. Therefore, it is first necessary to obtain the data to be stored in the target category. The target category is the category corresponding to the currently obtained data to be stored, and can be any specific category (e.g., category 1, category 2, category 3, category 4, etc.). Furthermore, the data to be stored obtained in this application embodiment can correspond to at least two storage layers, that is, the data to be stored includes M layers of data, where M is a positive integer greater than or equal to 2.

[0025] S102: According to the data reading order, each piece of data in the data to be stored is alternately stored into the first storage block and the second storage block; the first storage block and the second storage block are adjacent odd blocks and even blocks, or adjacent even blocks and odd blocks; the last piece of data in the Nth layer and the first piece of data in the N+1th layer are distributed in different storage blocks; N is a positive integer less than or equal to M-1.

[0026] Figure 3 This is a schematic diagram illustrating a data storage method provided in an embodiment of this application. (In conjunction with...) Figure 3 As shown, this application embodiment provides a three-dimensional flash memory comprising 64 memory blocks and 232 word lines. As... Figure 3As shown, this 3D flash memory includes storage blocks 0, 1, 2, ..., 63. Each storage block includes word line 0 (WL0), word line 1 (WL1), ..., word line 231 (WL231). Word lines of the same layer in different storage blocks are disconnected; for example, wl0 in block 0 and wl1 in block 1 are physically and electrically disconnected. Taking the target category corresponding to the acquired data to be stored as category 1 as an example, each piece of data in the data to be stored can be alternately stored in the first storage block (storage block 0) and the second storage block (storage block 1) according to the data reading order. When the first piece of data in category 1, layer 1 is stored in WL0 in storage block 0, the second piece of data will be stored in WL0 in storage block 1, the third piece of data will be stored in WL1 in storage block 0, ..., and the 15th piece of data will be stored in WL7 in storage block 0. The data reading order can be either an increasing order of the number of layers within each data category, or an increasing order of the number of records within each layer. For the data to be stored corresponding to category 1, the corresponding data reading order is from layer 1 to layer 58, and within each layer, it is from the 1st record to the 15th record. Each layer of data requires 15 word lines, which are distributed in adjacent odd-numbered blocks (storage block 1) and even-numbered blocks (storage block 0). Furthermore, the word line corresponding to the last record in layer 1 of category 1 and the word line corresponding to the first record in layer 2 of category 1 must be distributed in two different storage blocks (i.e., when the word line corresponding to the last record in layer 1 of category 1 is WL7 in storage block 0, the word line corresponding to the first record in layer 2 of category 1 cannot be WL8 in storage block 0, but should be WL8 in storage block 1). In other words, for adjacent layers of the same data type, the word line corresponding to the last data in the preceding layer (layer N) and the word line corresponding to the first data in the following layer (layer N+1) must be located in two separate memory blocks. Here, N is a positive integer less than or equal to M-1. It is understandable that... Figure 3 As an example only, the number of storage blocks and word lines can be other than other numbers, the number of data entries corresponding to each storage layer can also be other than other numbers, the data to be stored corresponding to category 1 can also be stored in storage block 3 and storage block 2, and the data to be stored corresponding to category 3 can also be stored in storage block 0 and storage block 1. This application embodiment does not limit this.

[0027] In addition, since different storage spaces of storage blocks may lead to different storage methods, this application embodiment can describe one possible storage method.

[0028] In one instance, the data storage method further includes: When the three-dimensional flash memory includes at least four storage blocks, and the total storage space of the first storage block and the second storage block is less than the required storage space corresponding to the data to be stored, a third storage block and a fourth storage block are determined; the third storage block and the fourth storage block are adjacent odd-numbered blocks and even-numbered blocks, or adjacent even-numbered blocks and odd-numbered blocks; The last L layers of data in the data to be stored are stored in the third storage block and the fourth storage block; where L is a positive integer less than M.

[0029] In practical applications, due to storage space limitations, relying solely on two adjacent storage blocks may not be sufficient to store all the data to be stored for the target category. Continuing with... Figure 3 As shown, taking the data to be stored as category 1 as an example, the first storage block (storage block 0) and the second storage block (storage block 1) are insufficient to store all the data to be stored (e.g., Figure 3 In one example, only the first 29 layers of data are stored. If the 3D flash memory includes at least four storage blocks, then two additional adjacent odd-numbered blocks and even-numbered blocks, or adjacent even-numbered blocks and odd-numbered blocks, can be introduced, i.e., a third storage block (storage block 32) and a fourth storage block (storage block 33) can be introduced. The remaining L layers of data (layers 30 to 58) from the data to be stored are then stored in the third and fourth storage blocks according to the storage method described above. Here, L is a positive integer less than M. It can be understood that the remaining L layers of data refer to the data to be stored that still exists after the data to be stored has been stored in the first and second storage blocks. That is, the first and second storage blocks store the first ML layers of data to be stored, and the third and fourth storage blocks store the remaining L layers of data to be stored. Similarly, if the third and fourth storage blocks are still insufficient to store the subsequent L layers of data to be stored, and the 3D flash memory still has spare storage blocks, then, if hardware conditions permit, other adjacent odd and even blocks, or adjacent even and odd blocks, can be introduced to store the data to be stored using the method described above. Furthermore, this application embodiment only provides an example of M=58 and L=29; in other possible embodiments, M and L can be other values, and this application embodiment does not limit this.

[0030] In summary, the data storage method provided in this application embodiment is used in a 3D flash memory containing at least two storage blocks. The data storage method includes: firstly, acquiring data of a target category to be stored. The data to be stored includes M layers of data, where M is a positive integer greater than or equal to 2. Then, according to the data reading order, each piece of data in the data to be stored is alternately stored in a first storage block and a second storage block. The first and second storage blocks are adjacent odd and even blocks, or adjacent even and odd blocks; the last piece of data in the Nth layer and the first piece of data in the (N+1)th layer are distributed in different storage blocks; N is a positive integer less than or equal to M-1. Thus, by optimizing the data storage method, multiple layers of data of the same type are stored in two adjacent odd and even storage blocks, and the last piece of data in the previous layer and the first piece of data in the next layer of adjacent layers of the same type are stored in two separate storage blocks. This hides the word line voltage setup time consumption caused by word line switching or block switching during subsequent data reading, improving the overall data reading speed.

[0031] Figure 4 This is a flowchart illustrating a data reading method provided in an embodiment of this application. (In conjunction with...) Figure 4 As shown in the figure, this application provides a data reading method for reading data stored by the above-described data storage method. The data reading method may include: S201: Determine the first category corresponding to the Nth layer of data to be read.

[0032] In practical applications, 3D flash memory contains multiple storage blocks, and the data stored in different blocks corresponds to different categories. Furthermore, reading data from 3D flash memory requires reading layer by layer. Therefore, in this embodiment, when reading data from 3D flash memory, it is first necessary to determine the layer number and category of the data to be read, that is, to determine the first category corresponding to the Nth layer of data to be read. Here, N is a positive integer less than or equal to M-1, and M is a positive integer greater than or equal to 2.

[0033] S202: Determine the first block to be read and the second block to be read based on the first category.

[0034] In practical applications, combined with Figure 3 As shown, after determining the layer number and category of the data to be read, the two adjacent storage blocks storing the data in that layer can be directly determined. In this embodiment, these two storage blocks are referred to as the first block to be read and the second block to be read, respectively. Taking N=1 and the first category as category 1 as an example, through... Figure 3 Then the first block to be read and the second block to be read can be directly identified as storage block 0 and storage block 1.

[0035] Furthermore, since the preprocessing procedures before reading data are not entirely the same, this application embodiment can describe one possible preprocessing procedure.

[0036] In one scenario, before reading the Nth layer data from the first and second blocks to be read in the data reading order and determining the second category, the method further includes: Adjust all word lines in the first and second blocks to be read to the on-state voltage.

[0037] In practical applications, after determining the first and second blocks to be read, it is necessary to apply a conduction voltage to all word lines in both blocks. Continuing with the example of N=1 and the first category being category 1, after determining that the first and second blocks to be read are memory block 0 and memory block 1, memory block 0 and memory block 1 are selected, and a conduction voltage is applied to all word lines in memory block 0 and memory block 1.

[0038] S203: Read the Nth layer data from the first block to be read and the second block to be read according to the data reading order, and determine the second category.

[0039] Furthermore, before reading the Kth data in the Nth layer of data, the voltage of the word line containing the Kth data is changed to the reading voltage; where K is a positive integer greater than or equal to 1. When reading the Kth data, the voltage of the word line containing the (K+1)th data is changed to the reading voltage; The word line corresponding to the Kth data and the word line corresponding to the (K+1)th data are located on two adjacent storage blocks with odd and even numbers.

[0040] In practical applications, after determining the first and second blocks to be read corresponding to the data to be read, the Nth layer data can be directly read from the first and second blocks according to the data reading order, and the (second) category corresponding to the next data to be read is determined. The second category is determined based on the calculation result obtained from the Nth layer data. The second category may belong to the same category as the first category, or it may not belong to the same category. For example, both the first and second categories may be category 1, or the first category may be category 1 and the second category may be category 2, etc. In this application example, there are 16 categories. In the first 29 layers, during layer switching, one of the 16 categories in the next layer is selected for reading based on the result of the upper layer. To reduce the word line conduction voltage establishment problem caused by the upper and lower layers not being of the same category during layer switching, it is necessary to apply conduction voltage to all WLs (word lines selected in the blk containing the selected category) corresponding to the 16 categories in the first 29 layers. Figure 5 This is a schematic diagram illustrating an internal data reading order within a layer, provided as an embodiment of this application. (In conjunction with...) Figure 5 As shown, continuing with N=1 and category 1 as an example, the first and second blocks to be read are memory block 0 and memory block 1, respectively, and all word lines in memory block 0 and memory block 1 are applied with an on-state voltage. When reading data in category 1 layer 1, the read voltage (i.e., changing from on-state voltage to read voltage) is first applied to word line 0 of memory block 0 according to the data reading order (1 to 15). Assuming there are 4 top selection gate lines (tsg0 / tsg1 / tsg2 / tsg3), the page data corresponding to tsg0 / tsg1 / tsg2 / tsg3 stored on the selected word line (word line 0 of memory block 0) is read sequentially by switching between tsg0 / tsg1 / tsg2 / tsg3 in memory block 0. While reading data on word line 0 of storage block 0, the voltage of word line 0 in storage block 1 needs to be switched from the on-state voltage to the read voltage, while ensuring that the voltages of tsg0 / tsg1 / tsg2 / tsg3 in storage block 1 are all 0. Thus, after reading the data on word line 0 of storage block 0, data in word line 0 of storage block 1 can be read directly. In other words, before reading the Kth data in the Nth layer of data, the voltage of the word line containing the Kth data needs to be changed to the read voltage, and when reading the Kth data in the Nth layer of data, the voltage of the word line containing the (K+1)th data needs to be changed to the read voltage. Here, K is a positive integer greater than or equal to 1, and the word line corresponding to the Kth data and the word line corresponding to the (K+1)th data are located on two adjacent storage blocks (e.g., storage block 1 and storage block 0). By using this method of reading even blocks and establishing word lines for odd blocks in advance, or reading odd blocks and establishing word lines for even blocks in advance, the word line establishment time is hidden, thereby achieving high-speed reading. Furthermore, combining the data reading method of pre-establishing word lines described above, continue reading the remaining data in Category 1, Layer 1, that is, sequentially read the data on storage block 0 word line 1 (block0 / WL1), storage block 1 word line 1 (block1 / WL1), storage block 0 word line 2 (block0 / WL2), storage block 1 word line 2 (block1 / WL2), storage block 0 word line 3 (block0 / WL3), storage block 1 word line 3 (block1 / WL3), ..., storage block 1 word line 6 (block1 / WL6), and storage block 0 word line 7 (block0 / WL7). Thus, the reading of Category 1, Layer 1 data is completed.

[0041] S204: Determine the third block to be read and the fourth block to be read based on the second category.

[0042] Furthermore, if the third block to be read and the fourth block to be read are different from the first block to be read and the second block to be read, then when reading the Nth layer data, all word lines corresponding to all target storage blocks where the N+1th layer data in the three-dimensional flash memory is located are adjusted to the on-state voltage. When reading the last data in the Nth layer of data, the word line corresponding to the first data in the (N+1)th layer of data in the target storage block is adjusted to the read voltage.

[0043] In practical applications, the next data to be read must be the (N+1)th layer data. Therefore, after determining the layer number and category (second category) corresponding to the data to be read, the two adjacent storage blocks storing that layer of data can be directly determined. In this embodiment, these two storage blocks are referred to as the third and fourth blocks to be read, respectively. Based on the relationship between the first and second categories, the third and fourth blocks to be read may be the same as or different from the first and second blocks to be read. In any case, whenever layer switching is involved, when reading the last data in the Nth layer data, all word lines in the target storage block corresponding to the first data in the (N+1)th layer data need to be adjusted to the read voltage. Here, the target storage block is the storage block corresponding to the (N+1)th layer data. It can be understood that a three-dimensional flash memory may include multiple categories of N+1th layer data, so when reading the last data in the Nth layer data, it is necessary to apply a bias voltage to the read voltage to the word lines corresponding to the first data in the (N+1)th layer data of each category. Figure 3 As shown, continuing with N=1 and category 1 as an example, when reading the last data in layer 1 of category 1, it is necessary to apply a bias voltage to the read voltage for the first word line of the second layer of all 16 categories: category 1, category 2, category 3, category 4, ..., category 16. Furthermore, the 16 categories mentioned in this embodiment are only an example; in other possible embodiments, the total number of categories may be different, and this embodiment does not limit this. Further, for cases involving memory block switching, i.e., where the third and fourth blocks to be read corresponding to the N+1 layer data of the second category are different from the first and second blocks to be read corresponding to the N layer data of the first category, it is necessary to adjust the word lines corresponding to the target memory block where the N+1 layer data in the 3D flash memory is located to the on-state voltage when reading the N layer data. Combined with... Figure 3 As shown, taking N=29 and the first category as category 1 as an example, when reading the data corresponding to category 1 layer 29, it is necessary to adjust all word lines in storage block 32, storage block 33, ..., storage block 62 and storage block 63 where layer 30 is located to the on voltage in advance.

[0044] S205: Read the N+1 layer data from the third block to be read and the fourth block to be read according to the data reading order.

[0045] In practical applications, after determining the third and fourth blocks to be read corresponding to the (N+1)th layer of data in the second category, the (N+1)th layer data can be directly read from these blocks according to the data reading order. Similar to reading the Nth layer data, before reading the Kth data item in the (N+1)th layer, the voltage of the word line containing the Kth data item needs to be changed to the reading voltage. Similarly, when reading the Kth data item in the (N+1)th layer, the voltage of the word line containing the K+1th data item needs to be changed to the reading voltage, until all data in the (N+1)th layer of the second category has been read. Thus, by using this method of reading even blocks and establishing word lines for odd blocks in advance, or vice versa, the word line establishment time is hidden, thereby achieving high-speed reading. Here, K is a positive integer greater than or equal to 1.

[0046] In summary, the data reading method provided in this application first determines the first category corresponding to the Nth layer of data to be read, and then determines the first block to be read and the second block to be read based on the first category. Then, according to the data reading order, the Nth layer of data is read from the first block to be read and the second block to be read, and a second category is determined. Finally, based on the second category, the third block to be read and the fourth block to be read are determined, and according to the data reading order, the (N+1)th layer of data is read from the third block to be read and the fourth block to be read. Thus, combined with the above data storage method, when reading data, if the currently read data is from an odd / even block, a word line is established in advance for the next data in the even / odd block. This hides the time of advance word line establishment by interleaving odd / even block word lines, thereby improving the overall data reading speed.

[0047] Figure 6 This is a schematic diagram of a data storage device provided in an embodiment of this application. (In conjunction with...) Figure 6 As shown, the data storage device 600 includes: The acquisition module 601 is used to acquire the data to be stored for the target category; the data to be stored includes M layers of data, where M is a positive integer greater than or equal to 2; Storage module 602 is used to alternately store each piece of data in the data to be stored into a first storage block and a second storage block according to the data reading order; the first storage block and the second storage block are adjacent odd blocks and even blocks, or adjacent even blocks and odd blocks; the last piece of data in the Nth layer and the first piece of data in the N+1th layer are distributed in different storage blocks; N is a positive integer less than or equal to M-1.

[0048] As one implementation method, regarding how to implement data storage, the aforementioned storage module 602 is further used for: When the three-dimensional flash memory includes at least four storage blocks, and the total storage space of the first storage block and the second storage block is less than the required storage space corresponding to the data to be stored, a third storage block and a fourth storage block are determined; the third storage block and the fourth storage block are adjacent odd-numbered blocks and even-numbered blocks, or adjacent even-numbered blocks and odd-numbered blocks; The last L layers of data in the data to be stored are stored in the third storage block and the fourth storage block; where L is a positive integer less than M.

[0049] In summary, the data storage method provided in this application embodiment is used in a 3D flash memory containing at least two storage blocks. The data storage method includes: firstly, acquiring data of a target category to be stored. The data to be stored includes M layers of data, where M is a positive integer greater than or equal to 2. Then, according to the data reading order, each piece of data in the data to be stored is alternately stored in a first storage block and a second storage block. The first and second storage blocks are adjacent odd and even blocks, or adjacent even and odd blocks; the last piece of data in the Nth layer and the first piece of data in the (N+1)th layer are distributed in different storage blocks; N is a positive integer less than or equal to M-1. Thus, by optimizing the data storage method, multiple layers of data of the same type are stored in two adjacent odd and even storage blocks, and the last piece of data in the previous layer and the first piece of data in the next layer of adjacent layers of the same type are stored in two separate storage blocks. This hides the word line voltage setup time consumption caused by word line switching or block switching during subsequent data reading, improving the overall data reading speed.

[0050] In addition, this application also provides a data storage device, including: a memory for storing a computer program; and a processor for implementing the data storage method described above when executing the computer program.

[0051] In addition, this application also provides a readable storage medium on which a computer program is stored, which, when executed by a processor, implements the steps of the data storage method described above.

[0052] Figure 7 This is a schematic diagram of a data reading device provided in an embodiment of this application. Figure 7 As shown, the data reading device 700 includes: The first determining module 701 is used to determine the first category corresponding to the Nth layer data to be read; The second determining module 702 is used to determine the first block to be read and the second block to be read based on the first category; The first reading module 703 is used to read the Nth layer data from the first block to be read and the second block to be read according to the data reading order, and to determine the second category; The third determining module 704 is used to determine the third block to be read and the fourth block to be read based on the second category; The second reading module 705 is used to read the N+1th layer of data from the third and fourth blocks to be read in the order of data reading.

[0053] As one implementation, the data reading device 700 further includes an adjustment module to regulate the voltage; The first adjustment module is used to adjust all word lines in the first block to be read and the second block to be read to the on-state voltage before reading the Nth layer data from the first block to be read and the second block to be read in the data reading order.

[0054] As one implementation method, regarding how to adjust the voltage, the aforementioned adjustment module is also used for: Before reading the Kth data in the Nth layer of data, the voltage of the word line containing the Kth data is changed to the read voltage; where K is a positive integer greater than or equal to 1. When reading the Kth data, the voltage of the word line containing the (K+1)th data is changed to the reading voltage; The word line corresponding to the Kth data and the word line corresponding to the (K+1)th data are located on two adjacent storage blocks with odd and even numbers.

[0055] As one implementation method, regarding how to adjust the voltage, the aforementioned adjustment module is also used for: If the third block to be read and the fourth block to be read are different from the first block to be read and the second block to be read, then when reading the Nth layer data, all word lines corresponding to all target storage blocks where the N+1th layer data in the 3D flash memory is located will be adjusted to the on-state voltage. When reading the last data in the Nth layer of data, the word line corresponding to the first data in the (N+1)th layer of data in the target storage block is adjusted to the read voltage.

[0056] In summary, the data reading method provided in this application first determines the first category corresponding to the Nth layer of data to be read, and then determines the first block to be read and the second block to be read based on the first category. Then, according to the data reading order, the Nth layer of data is read from the first block to be read and the second block to be read, and a second category is determined. Finally, based on the second category, the third block to be read and the fourth block to be read are determined, and according to the data reading order, the (N+1)th layer of data is read from the third block to be read and the fourth block to be read. Thus, combined with the above data storage method, when reading data, if the currently read data is from an odd / even block, a word line is established in advance for the next data in the even / odd block. This hides the time of advance word line establishment by interleaving odd / even block word lines, thereby improving the overall data reading speed.

[0057] In addition, this application also provides a data reading device, including: a memory for storing a computer program; and a processor for executing the computer program to implement the steps of the data reading method described above.

[0058] In addition, this application also provides a readable storage medium on which a computer program is stored, which, when executed by a processor, implements the steps of the data reading method described above.

[0059] The above description of the disclosed embodiments enables those skilled in the art to make or use this application. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be implemented in other embodiments without departing from the spirit or scope of this application. Therefore, this application is not to be limited to the embodiments shown herein, but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.

Claims

1. A data storage method, characterized in that, The data storage method is used for a three-dimensional flash memory, the three-dimensional flash memory comprising at least two storage blocks, and the data storage method includes: Obtain the target category's data to be stored; the data to be stored includes M layers of data, where M is a positive integer greater than or equal to 2; According to the data reading order, each piece of data in the data to be stored is alternately stored in the first storage block and the second storage block; the first storage block and the second storage block are adjacent odd blocks and even blocks, or adjacent even blocks and odd blocks; the last piece of data in the Nth layer and the first piece of data in the N+1th layer are distributed in different storage blocks; N is a positive integer less than or equal to M-1.

2. The data storage method according to claim 1, characterized in that, The data storage method further includes: When the three-dimensional flash memory includes at least four storage blocks, and the total storage space of the first storage block and the second storage block is less than the required storage space corresponding to the data to be stored, a third storage block and a fourth storage block are determined; the third storage block and the fourth storage block are adjacent odd-numbered blocks and even-numbered blocks, or adjacent even-numbered blocks and odd-numbered blocks; The last L layers of data in the data to be stored are stored in the third storage block and the fourth storage block; where L is a positive integer less than M.

3. A data storage device, characterized in that, include: The acquisition module is used to acquire the data to be stored for the target category; The data to be stored includes M layers of data, where M is a positive integer greater than or equal to 2; The storage module is used to alternately store each piece of data in the data to be stored into the first storage block and the second storage block according to the data reading order; the first storage block and the second storage block are adjacent odd blocks and even blocks, or adjacent even blocks and odd blocks; the last piece of data in the Nth layer and the first piece of data in the N+1th layer are distributed in different storage blocks; N is a positive integer less than or equal to M-1.

4. A data storage device, characterized in that, include: Memory, used to store computer programs; A processor for executing the computer program to implement the steps of the data storage method as described in any one of claims 1 to 2.

5. A data reading method, characterized in that, The data reading method is used to read data stored by the data storage method according to any one of claims 1-2, the data reading method comprising: Determine the first category corresponding to the Nth layer of data to be read; Based on the first category, determine the first block to be read and the second block to be read; According to the data reading order, the Nth layer data is read from the first block to be read and the second block to be read, and the second category is determined; The third and fourth blocks to be read are determined based on the second category; According to the data reading order, the N+1th layer of data is read from the third and fourth blocks to be read.

6. The data reading method according to claim 5, characterized in that, Before reading the Nth layer data from the first and second blocks to be read in the data reading order and determining the second category, the method further includes: Adjust all word lines in the first and second blocks to be read to the on-state voltage.

7. The data reading method according to claim 5, characterized in that, The data reading method further includes: Before reading the Kth data in the Nth layer of data, the voltage of the word line containing the Kth data is changed to the read voltage; where K is a positive integer greater than or equal to 1. When reading the Kth data, the voltage of the word line containing the (K+1)th data is changed to the reading voltage; The word line corresponding to the Kth data and the word line corresponding to the (K+1)th data are located on two adjacent storage blocks with odd and even numbers.

8. The data reading method according to claim 5, characterized in that, The data reading method further includes: If the third block to be read and the fourth block to be read are different from the first block to be read and the second block to be read, then when reading the Nth layer data, all word lines corresponding to all target storage blocks where the N+1th layer data in the 3D flash memory is located will be adjusted to the on-state voltage. When reading the last data in the Nth layer of data, the word line corresponding to the first data in the (N+1)th layer of data in the target storage block is adjusted to the read voltage.

9. A data reading device, characterized in that, include: The first determining module is used to determine the first category corresponding to the Nth layer data to be read; The second determining module is used to determine the first block to be read and the second block to be read based on the first category; The first reading module is used to read the Nth layer data from the first block to be read and the second block to be read in the data reading order, and to determine the second category; The third determining module is used to determine the third block to be read and the fourth block to be read based on the second category; The second reading module is used to read the N+1th layer of data from the third and fourth blocks to be read in the order of data reading.

10. A data reading device, characterized in that, include: Memory, used to store computer programs; A processor, configured to implement the steps of the data reading method as described in any one of claims 5 to 8 when executing the computer program.