CN114995753A - Method and device for improving reliability of 3DNAND solid state disk - Google Patents
Method and device for improving reliability of 3DNAND solid state disk Download PDFInfo
- Publication number
- CN114995753A CN114995753A CN202210583459.3A CN202210583459A CN114995753A CN 114995753 A CN114995753 A CN 114995753A CN 202210583459 A CN202210583459 A CN 202210583459A CN 114995753 A CN114995753 A CN 114995753A
- Authority
- CN
- China
- Prior art keywords
- physical
- data
- page
- physical block
- order
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 239000007787 solid Substances 0.000 title claims abstract description 31
- 238000003860 storage Methods 0.000 claims abstract description 80
- 230000014759 maintenance of location Effects 0.000 claims abstract description 55
- 238000013500 data storage Methods 0.000 claims abstract description 38
- 238000013507 mapping Methods 0.000 claims abstract description 20
- 230000015654 memory Effects 0.000 claims description 91
- 238000012937 correction Methods 0.000 abstract description 16
- 238000013519 translation Methods 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 10
- 230000007423 decrease Effects 0.000 description 3
- 230000007774 longterm Effects 0.000 description 2
- 230000007334 memory performance Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 235000012431 wafers Nutrition 0.000 description 2
- 230000032683 aging Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011065 in-situ storage Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Read Only Memory (AREA)
Abstract
The invention discloses a method and a device for improving the reliability of a 3DNAND solid state disk, which relate to the technical field of data storage. By optimizing the page mapping level algorithm from the logical page to the physical page in the flash translation layer, errors caused by high-order data stored in the physical page with weak data retention capacity are avoided, so that the probability of a large number of concentrated errors after long-time storage is reduced, the error correction module cannot process the large number of concentrated errors is avoided, and the reliability of the 3DNAND solid state disk is improved.
Description
Technical Field
The invention relates to the technical field of data storage, in particular to a method and a device for improving the reliability of a 3DNAND solid state disk.
Background
Memory is an important memory device in computer systems that can store operating systems, application programs, and personal data of users. In the field of semiconductor memory, the memory can be classified into two types according to the volatility characteristic (i.e. whether data can be stored for a long time after power failure): one is volatile memory (data failure after power failure) such as memory (DRAM), cache (SRAM), etc., and the other is non-volatile memory (data can still be stored after power failure) such as Solid State Disk (SSD). Due to their non-volatility and low cost, solid state drives are often used to meet the demands of long-term storage and large storage space.
Computer systems often use mechanical hard disks to provide long term data retention services before solid state disks have not been made available. Compared with a mechanical hard disk, the solid state hard disk uses a magnetic disk as a storage medium, and the solid state hard disk uses a flash memory as the storage medium, so that the solid state hard disk has the characteristics of high read-write response speed, high storage density and light volume. However, the current flash memory (NAND) as the final storage medium has its own defects, and the solid state disk has its own disadvantages. For example, compared with the magnetic disk storage, the flash memory medium has the upper limit of the erasing times, namely the service life of the solid state disk is limited; secondly, the data retention of the solid state disk is weaker than that of a magnetic disk, namely the original error rate of the data stored in the solid state disk is higher; finally, as the number of times of erasing and writing increases, the data retention capability of the flash memory medium gradually decreases and the disk does not, which leads to an increase in the original error rate, which leads to a decrease in the service life of the solid state disk. Therefore, higher use requirements are put on the reliability of the solid state disk.
The mainstream method for improving reliability of the solid state disk at present is to place an error correction module (ECC) on a main control chip to perform efficient error correction on original data read by a flash memory medium terminal, so that a user terminal does not feel that own data is in error. Generally, if the error correction capability of the error correction module of the solid state disk master is stronger, the service life of the same flash memory medium end is longer. However, the error correction capability of the error correction module is limited, and the error correction cannot be carried out infinitely. Meanwhile, if the error correction capability of the error correction module is stronger, the more hardware resources it occupies. Meanwhile, the time consumed by error correction of the error correction module will also increase along with the increase of the original error rate of the data at the flash memory medium end, and even the condition of error correction may occur, which may seriously affect the service quality of the solid state disk.
However, in the process of implementing the technical solution of the invention in the embodiments of the present application, the inventors of the present application find that the above-mentioned technology has at least the following technical problems:
with the continuous progress of the technology, the flash memory technology and the error correcting code technology are greatly improved. The mainstream flash memory in the market at present is a three-dimensional flash memory (3DNAND) utilizing multi-bit storage, and compared with an early plane flash memory (2DNAND) utilizing single-bit storage, the storage density and the read-write speed of the flash memory are greatly improved, but the problems of reliability and service life are more serious. In order to solve the reliability problem, the error correcting code technology also completes the conversion from the early BCH code to the LDPC code with higher error correcting capability, although the error correcting capability of the LDPC code is strong, the circuit is complex, the development difficulty is high, and simultaneously, the consumption of precious hardware resources in a chip is huge.
Disclosure of Invention
The embodiment of the application provides a method and a device for improving the reliability of a 3DNAND solid state disk, so that the problem of unstable reliability in the prior art is solved, the probability of a large number of concentrated errors after long-time storage is reduced, the error correction module cannot process the large number of concentrated errors is avoided, and the possibility that data stored by a user is lost or errors are generated is further reduced.
The embodiment of the application provides a method for improving the reliability of a 3DNAND solid state disk, which comprises the following steps:
dividing physical blocks of which the data retention capacity of a current idle physical page is lower than the specific data retention capacity into a low-order data service physical block pool, and dividing physical blocks of which the data retention capacity of the current idle physical page is higher than the specific data retention capacity into a high-order data service physical block pool, wherein the current idle physical page is an idle physical page with the lowest number in the physical blocks;
determining whether the written data is low-order state data or high-order state data according to the storage charge state of the written data in the storage units of the physical page, wherein the high-order state data is the written data in which the proportion of the number of the high-order state storage units in the physical page to the total number of the storage units exceeds a first threshold value, and the low-order state data is the written data in which the proportion of the total number of the high-order state storage units in the physical page to the number of the storage units is lower than or equal to the first threshold value;
if the written data is low-order data, selecting a physical block from the low-order data service physical block pool to be allocated to the written data storage, and if the written data is high-order data, selecting a physical block from the high-order data service physical block pool to be allocated to the written data storage;
and selecting a current free physical page from the allocated physical blocks, and determining the mapping relation between the current free physical page and the logical page.
Optionally, the sorting the physical blocks of which the data retention capacity of the current free physical page is lower than the specific data retention capacity into a lower data serving physical block pool, and sorting the physical blocks of which the data retention capacity of the current free physical page is higher than the specific data retention capacity into a higher data serving physical block pool includes:
according to different number ranges of current idle physical pages in the physical blocks, dividing the physical blocks of which the current idle physical page numbers are smaller than or equal to a second threshold value into a low-order page group, dividing the physical blocks of which the current idle physical page numbers are larger than the second threshold value and smaller than or equal to a third threshold value into a middle-order page group, and dividing the physical blocks of which the current idle physical page numbers are larger than the third threshold value into a high-order page group;
grouping the lower page group and the upper page group into the lower data service physical block pool;
and grouping the middle page group into the high-order data service physical block pool.
Optionally, the second threshold is one third of the maximum value of the physical page number; the third threshold is two-thirds of the maximum value of the physical page number.
Optionally, the first threshold is 1/2.
Alternatively, one physical page may correspond to m logical pages, where one physical page includes N memory cells, each memory cellThe memory cells can store m bits of data, and the stored charge state of each memory cell is 2 m One of the bit states, present 2 m-1 The memory cell of the individual state is a low-level memory cell, and the second bit is represented by 2 m-1 The memory cells of a single bit state are high bit state memory cells.
Optionally, the selecting a physical block from the lower data service physical block pool to allocate to the write data storage includes:
and selecting the physical block with the least free physical pages in the lower-order page group from the lower-order data service physical block pool to be allocated to the write data storage.
Optionally, the selecting a physical block from the high data service physical block pool to allocate to the write data storage includes:
and selecting the physical block with the least free physical pages from the middle bit page group in the high-order data service physical block pool to be distributed to the write data storage.
Optionally, the method further includes updating the lower data serving physical block pool, including:
traversing the low-bit data service physical block pool, and checking the number range of the current idle physical page in the physical block;
after the data in the low-order page group is written, transferring the physical block of the physical page with the current idle physical page number larger than a second threshold value to the high-order data service physical block pool;
and after the data in the high-order page group is written, the physical block with the full physical page is kicked out of the low-order data service physical block pool.
Optionally, the method further comprises updating the high data services physical block pool, including:
traversing the high-order data service physical block pool, and checking the number range of the current idle physical page in the physical block;
and after the data in the middle bit page group is written, transferring the physical block of the physical page with the current idle physical page number larger than a third threshold value to the low bit state data service physical block pool.
The embodiment of the application provides a device for improving the reliability of a 3DNAND solid state disk, and the device comprises:
the physical block pool judging module is used for dividing the physical blocks of which the data retention capacity of the current idle physical page is lower than the specific data retention capacity into a low-order data service physical block pool, and dividing the physical blocks of which the data retention capacity of the current idle physical page is higher than the specific data retention capacity into a high-order data service physical block pool, wherein the current idle physical page is the idle physical page with the lowest number in the physical blocks;
the bit state judging module is used for determining that the written data is low-bit state data or high-bit state data according to the storage charge state of the written data in the storage units of the physical page, wherein the high-bit state data is the written data of which the proportion of the number of the high-bit state storage units in the physical page to the total number of the storage units exceeds a first threshold value, and the low-bit state data is the written data of which the proportion of the total number of the high-bit state storage units in the physical page to the number of the storage units is lower than or equal to the first threshold value;
the matching module is used for selecting a physical block from the low-order data service physical block pool to be allocated to the written data storage if the written data is low-order data, and selecting a physical block from the high-order data service physical block pool to be allocated to the written data storage if the written data is high-order data;
and the mapping relation determining module is used for selecting a current idle physical page from the allocated physical blocks and determining the mapping relation between the current idle physical page and the logical page.
One or more technical solutions provided in the embodiments of the present application have at least the following technical effects or advantages:
the method comprises the steps of classifying physical blocks according to the data retention capacity of a current idle physical page by utilizing the characteristics that the threshold voltage offset of high-order data is large and error is easy to occur, and the threshold voltage offset of low-order data is small and error is not easy to occur, determining that the written data is low-order data or high-order data according to the storage charge state of the written data in a storage unit of the physical page, selecting a physical block from a low-order data service physical block pool to be allocated to written data storage if the written data is the low-order data, and selecting the physical block from the high-order data service physical block pool to be allocated to the written data storage if the written data is the high-order data.
By optimizing the page mapping level algorithm from the logical page to the physical page in the flash translation layer, the logical page with more high-order data is processed by the physical page with strong data retention capability in the same physical block, and the logical page with more low-order data is processed by the physical page with weaker data retention capability. Therefore, errors in high-order data stored in a physical page with weak data retention capacity can be avoided, the probability of a large number of concentrated errors after long-time storage is reduced, the error correction module cannot process the large number of concentrated errors, the possibility that data stored by a user is lost or generates errors is reduced, and the reliability of the 3DNAND solid-state disk is improved.
Drawings
FIG. 1 is a level diagram of a flash memory chip;
FIG. 2 is a flowchart of a method for improving the reliability of a 3DNAND solid state disk according to the present application;
FIG. 3 is a graph of data retention for different physical pages in a physical block of 3 DNAND;
FIG. 4 is a flowchart of another method for improving the reliability of a 3DNAND solid state disk according to the present application;
FIG. 5 is a conceptual diagram of page group classification in the present application;
FIG. 6 is a conceptual diagram of physical block classification in the present application;
FIG. 7 is a stored charge state diagram for a memory cell in TLC storage according to the present application;
FIG. 8 is a graph of different state threshold voltage shifts in TLC storage in the present application;
FIG. 9 is a flow chart of updating a lower data service physical block pool according to the present application;
FIG. 10 is a flow chart of updating a high data service physical block pool according to the present application;
FIG. 11 is a diagram illustrating the periodic transition of the state of a physical block in the present application;
FIG. 12 is a block diagram of an apparatus for improving the reliability of a 3DNAND solid state disk.
Detailed Description
Fig. 1 is a schematic diagram of a flash memory chip hierarchy, which is a chip-wafer-group-physical block-physical page-memory unit. As shown in fig. 1, a chip generally includes an even number of wafers, and a wafer generally includes two groups, where a group generally includes one thousand or more physical blocks, each of which typically includes hundreds of physical pages, and each of which typically includes 4KB or 16KB memory cells. The minimum unit of the flash memory read-write operation is a physical page, the minimum unit of the erase operation is a physical block, and the flash memory must be written in the sequence from the low number to the high number when writing the physical page in the physical block. Meanwhile, when the original data is updated, the data cannot be updated in situ, the data must be updated in different places, namely, a new physical page is used for storing the data, the original physical page is marked as invalid, and meanwhile, garbage collection operation is carried out periodically, namely, the invalid physical block is erased to be changed into a blank physical block.
During writing, data writing requests sent from the upper computer to the solid state disk are analyzed according to a communication protocol, the analyzed data are cached in a cache of the main control chip, then the data are divided into a plurality of sub-requests according to the size of the logical pages, the logical page numbers are grouped according to a multi-bit storage technology, and the logical pages are grouped into one group. The grouped logical pages are cached in the memory according to the page mapping granularity to wait for the number of the corresponding physical page to be allocated.
The multi-bit storage technology refers to a storage unit (cell) of a memory capable of storing a plurality of bits (bits) of data. At present, the existing Multi-bit memory technology mainly includes a double-layer memory Cell (MLC), a triple-layer memory Cell (TLC), and a four-layer memory Cell (QLC). Correspondingly, one cell of the MLC stores 2 bits, a storage space of one physical page stores write-in data of 2 logical pages, one cell of the TLC stores 3 bits, a storage space of one physical page stores write-in data of 3 logical pages, one cell of the QLC stores 4 bits, and a storage space of one physical page stores write-in data of 4 logical pages.
The application relates to a page mapping level algorithm optimization from a logical page to a physical page in a flash translation layer. Fig. 2 is a flowchart of a method for improving reliability of a 3d nand solid-state disk in an embodiment of the present application.
As shown in fig. 2, the method includes:
s101: and dividing the physical blocks of which the data retention capacity of the current idle physical page is lower than the specific data retention capacity into a low-order data service physical block pool, and dividing the physical blocks of which the data retention capacity of the current idle physical page is higher than the specific data retention capacity into a high-order data service physical block pool, wherein the current idle physical page is the idle physical page with the lowest number in the physical blocks.
In particular, data retention may be measured in terms of the original error rate of the physical page. The specific data retention capability may be determined based on user requirements for data accuracy and memory performance differences.
S102: determining whether the written data is low-order data or high-order data according to the storage charge state of the written data in the storage units of the physical page, wherein the high-order data is the written data in which the proportion of the number of the high-order storage units in the physical page to the total number of the storage units exceeds a first threshold, and the low-order data is the written data in which the proportion of the total number of the high-order storage units in the physical page to the number of the storage units is lower than or equal to the first threshold.
Specifically, in a multi-bit memory technology, one physical page may correspond to m logical pages, one physical page includes N memory cells, each memory cell may store m bits of data, and the stored charge state of each memory cell may be 2 m One of the bit states, present 2 m-1 The memory cell of the individual bit state is a low-bit state memory cell, and the second bit state is represented by 2 m-1 The memory cells of the individual states are high-order memory cells.
When the method is realized, the written data is encoded according to a common encoding mode of 2-3-2 or 1-2-5, the storage charge state of the written data in the storage unit of the physical page is determined, and then the written data is determined to be low-order data or high-order data according to the storage charge state of the written data in the storage unit of the physical page.
The high-order data threshold voltage offset is large and is easy to make mistakes, and the low-order data threshold voltage offset is small and is not easy to make mistakes. The probability of error of the write data can be graded by determining whether the write data is low-order data or high-order data according to the storage charge state of the write data in the memory cells of the physical page.
S103: and if the written data is low-order data, selecting a physical block from the low-order data service physical block pool to be allocated to the written data storage, and if the written data is high-order data, selecting a physical block from the high-order data service physical block pool to be allocated to the written data storage.
Specifically, a physical block is selected from the low-bit data service physical block pool and allocated to the written data for storage, so that a physical page with weak data retention is allocated to low-bit data which is not easy to make errors; and selecting a physical block from the high-order data service physical block pool to distribute the physical block to the written data for storage, so that a physical page with strong data retention is distributed to high-order data which is easy to make mistakes, and the probability of a large number of concentrated errors after long-time storage is reduced.
S104: and selecting a current free physical page from the allocated physical blocks, and determining the mapping relation between the current free physical page and the logical page.
The method comprises the steps of classifying physical blocks according to the data retention capacity of a current idle physical page by utilizing the characteristics that high-order data is high in threshold voltage offset and easy to make errors, determining whether the written data is low-order data or high-order data according to the storage charge state of the written data in a storage unit of the physical page, selecting a physical block from a low-order data service physical block pool to be allocated to the written data to be stored if the written data is the low-order data, selecting a physical block from a high-order data service physical block pool to be allocated to the written data to be stored if the written data is the high-order data, selecting a current idle physical page from the allocated physical blocks, and determining the mapping relation between the current idle physical page and a logic page.
By optimizing the page mapping level algorithm from the logical pages to the physical pages in the flash translation layer, the physical pages with strong data retention capability in the same physical block can process the logical pages with more high-order data, and the physical pages with weaker data retention capability can process the logical pages with more low-order data. Therefore, errors in high-order data stored in a physical page with weak data retention capacity can be avoided, the probability of a large number of concentrated errors after long-time storage is reduced, the error correction module cannot process the large number of concentrated errors, the possibility that data stored by a user is lost or generates errors is reduced, and the reliability of the 3DNAND solid-state disk is improved.
In order to better understand the technical solution, the technical solution will be described in detail with reference to the drawings and the specific embodiments.
FIG. 3 is a distribution diagram of original error rates of different physical pages in a physical block of 3DNAND, as shown in FIG. 3, the data retention capability of the physical pages at different positions in the same physical block of 3DNAND is significantly different, and the difference exists in an initial state without erasing and an aging state with a certain number of times of erasing. Physical pages in the physical blocks of the three-dimensional flash memory chip are stacked from low to high, and the numbers are numbered from low to high, wherein the data retention capacity of the physical pages with the numbers near the minimum value and the maximum value is weak, and the data retention capacity of the physical pages with the numbers in the middle part is strong. It will be appreciated that the original error rate during storage, which is inversely proportional to the data retention, is distributed in an inverse parabolic curve.
Fig. 4 is a flowchart of another method for improving the reliability of a 3DNAND solid state disk according to an embodiment of the present invention. As shown in fig. 4, the method includes:
s201: and dividing the physical block into a low-order page group, a middle-order page group and a high-order page group according to different numbering ranges of the current idle physical page in the physical block.
Specifically, since the flash memory must write in the sequence from the low to the high according to the number when performing the write operation on the physical page in one physical block, the physical page may be partially occupied and partially idle. Physical blocks with current free physical page numbers smaller than or equal to a second threshold value can be divided into a low-order page group, physical blocks with current free physical page numbers larger than the second threshold value and smaller than or equal to a third threshold value can be divided into a middle-order page group, and physical blocks with current free physical page numbers larger than the third threshold value can be divided into a high-order page group. The current free physical page refers to a free physical page with the lowest number in the physical block.
Because the original error rate distribution in the storage process presents an inverse parabolic curve, the physical block is divided into a low-order page group, a middle-order page group and a high-order page group according to the method, the low-order page group and the high-order page group have the characteristics of weak data retention capacity and high original error rate, and the middle-order page group has the characteristics of strong data retention capacity and low original error rate.
Optionally, the first threshold is one third of a maximum value of a physical page number; the second threshold is two-thirds of the maximum value of the physical page number.
Taking the physical page shown in fig. 5 as an example, the maximum value of the physical page number is 9, so that the physical blocks whose current free physical page number is less than or equal to 3 are divided into a lower page group, the physical blocks whose current free physical page number is greater than 3 and less than or equal to 6 are divided into a middle page group, and the physical blocks whose current free physical page number is greater than 6 are divided into a higher page group.
S202, grouping the low-order page group and the high-order page group into a low-order data service physical block pool;
in some embodiments, the lower page group of the physical page with the current free physical page number less than or equal to the second threshold and the upper page group of the physical block with the current free physical page number greater than the third threshold may be grouped into a lower data service physical block pool to provide storage service for providing lower data.
As shown in fig. 6, for example, if physical page 1 in a physical block is occupied and physical pages 2 to 9 are free, then the current free physical page in the physical block is physical page 2, and since the number of the current free physical page is less than one third of the maximum value of the physical page number, the physical block can be classified into a lower-order page group and classified into a lower-order data service physical block pool.
For another example, if physical pages 1 to 7 in a physical block are occupied, and physical pages 8 and 9 are idle, then the current idle physical page in the physical block is physical page 8, and the number of the current idle physical page is greater than two-thirds of the maximum value of the number of the physical page, and the physical block can be classified into a high-order page group and classified into a low-order data service physical block pool.
And S203, the middle bit page group is put into the high bit data service physical block pool.
In some embodiments, the middle page group of the physical block with the current free physical page number greater than the second threshold and less than or equal to the third threshold may be grouped into the high data service physical block pool to provide storage service for providing high data.
As shown in fig. 6, for example, if the physical pages 1-5 are occupied and the physical pages 6-9 are free, the current free physical page in the physical block is the physical page 6, and since the number of the current free physical page is greater than one third of the maximum value of the physical page number and less than two thirds of the maximum value of the physical page number, the physical block can be classified as a middle page group and classified into the high-bit data service physical block pool.
And for example, if the physical pages 1 to 4 are occupied and the physical pages 5 to 9 are free, the current free physical page in the physical block is the physical page 5, and because the number of the current free physical page is greater than one third of the maximum value of the physical page number and less than two thirds of the maximum value of the physical page number, the physical block can be classified as a middle page group and classified into the high-bit data service physical block pool.
In some embodiments, the physical blocks that provide storage services may also include a pool of free physical blocks that are all blank pages.
S204: determining whether the written data is low-order data or high-order data according to the storage charge state of the written data in the storage units of the physical page, wherein the high-order data is the written data in which the proportion of the number of the high-order storage units in the physical page to the total number of the storage units exceeds a first threshold, and the low-order data is the written data in which the proportion of the total number of the high-order storage units in the physical page to the number of the storage units is lower than or equal to the first threshold.
Specifically, in the multi-bit memory technology, one physical page may correspond to m logical pages, one physical page includes N memory cells, each memory cell may store m bits of data, and the stored charge state of each memory cell may be 2 m One of the bit states, present 2 m-1 The memory cell of the individual bit state is a low-bit state memory cell, and the second bit state is represented by 2 m-1 The memory cells of the individual states are high-order memory cells.
In the following description, a TLC flash memory is taken as an example, and currently, three-dimensional flash memories all adopt a one-shot-program (otp) write-in method, that is, three logical page data to be written into one physical page are combined together and written in by otp. The stored charge state of each memory cell in a physical page is therefore related to the writing of data in three logical pages of the memory cell. In actual processing, the written data in three logical pages are usually encoded according to a fixed encoding manner, as shown in fig. 7, and the stored charge state of each memory cell assumes one of 8 states according to the difference of the written data. For example, one TLC physical page memory cell has 16kB and can store 48kB of data in a logical page, and each memory cell in the physical page stores 3 bits of data in the logical page. The 3-bit data is encoded in a fixed coding scheme, presentation 2 3 One of a plurality of different states.
FIG. 8 is a graph of different state threshold voltage shifts in TLC storage in the present application. As shown in fig. 8, as the bit state number increases, the threshold voltage distribution offset between the ideal state and the real state increases, and the difference between the threshold voltage distribution offset and the corresponding discrimination voltage decreases, that is, the data stored in the high bit state is more prone to error than the data stored in the low bit state after being stored for a long time.
If the stored charge state of the memory cell is one of the left 4 states, the memory cell is defined as a low state memory cell, and if the stored charge state of the memory cell is one of the right 4 states, the memory cell is defined as a high state memory cell.
In some embodiments, the stored charge state of each of the 16kB memory cells of 1 physical page may be counted. If the proportion of the number of the high-order-state storage units to the number of the storage units exceeds a first threshold value, the written data written into the physical page is high-order-state data; and if the proportion of the number of the high-order memory cells to the number of the memory cells is lower than or equal to a first threshold, the written data written into the physical page is low-order data. The high-order data is used for marking data which are easy to be mistaken, and the low-order data is used for marking data which are not easy to be mistaken.
Alternatively, the first threshold may be a fixed value, for example, the first threshold is 1/2. It will be appreciated that the settings may be adjusted according to actual circumstances such as memory performance differences or requirements for data accuracy.
In implementation, the flash translation layer in the main control may set a high-order threshold discrimination module, and this module may count the number distribution of the high-order memory cells in each logical page group, and if the number exceeds the threshold, the high-order memory cells are marked as high-order data, otherwise, the high-order memory cells are marked as low-order data.
In some embodiments, if the write data is low state data, then S205-S207 are performed; if the write data is high state data, S208-S210 are performed.
S205: and if the written data is low-order data, selecting a physical block from the low-order data service physical block pool to be distributed to the written data storage.
Optionally, the physical block selected from the low-bit data service physical block pool is allocated to the write data storage, and may be allocated according to a priority padding principle.
Specifically, the physical block with the least free physical pages in the low-order data service physical block pool is selected from the low-order data service physical block pool and allocated to the write data storage, so that sufficient resources are provided for the high-order data service physical block pool, and the situation that the high-order data are more in the upper computer load request is facilitated to be handled.
S206: and selecting a current free physical page from the allocated physical blocks, and determining the mapping relation between the current free physical page and the logical page.
Specifically, a current free physical page is selected from the allocated physical blocks, and the mapping relationship between the current free physical page and the logical page is determined, that is, the page mapping level algorithm optimization from the logical page to the physical page in the flash translation layer is completed.
During implementation, the logical page group allocated with the corresponding physical address waits for the flash transaction scheduling module to arrange the writing sequence, and writes the logical page group into the specific physical page of the specific physical block of the corresponding flash chip through the flash channel controller.
The physical block continuously completes the operation from the idle physical block pool to the low-order data storage service physical block pool, then to the high-order data storage service physical block pool, and finally returns to the low-order data storage service physical block pool until the page data is stored fully and the storage service is not provided. The ranges of the pool of lower data service physical blocks and the pool of higher data service physical blocks are thus dynamically adjusted.
Therefore, the method may further include S207: and updating the low-bit data service physical block pool.
Specifically, as shown in fig. 9, updating the lower data service physical block pool includes:
s2071: traversing the low-bit data service physical block pool, and checking the number range of the current idle physical page in the physical block;
s2072: after the data in the low-order page group is written, transferring the physical block of the physical page with the current idle physical page number larger than a second threshold value to the high-order data service physical block pool;
in some embodiments, updating the lower data serving physical block pool further comprises:
s2073: and after the data in the high-order page group is written, the physical block with the full physical page is kicked out of the low-order data service physical block pool.
S2074: the free physical block pool is supplemented into the low-order data service physical block pool according to the traditional wear leveling principle.
S208: and if the written data is high-order data, selecting a physical block from the high-order data service physical block pool to be distributed to the written data storage.
Optionally, the physical block selected from the high-order data service physical block pool is allocated to the write data storage, and may be allocated according to a priority padding principle.
Specifically, the physical block with the least free physical pages in the middle bit page group is selected from the high bit data service physical block pool and allocated to the write data storage, so as to provide resources for the low bit data service physical block pool.
S209: and selecting a current free physical page from the allocated physical blocks, and determining the mapping relation between the physical page and the logical page.
S210: and updating the high-order data service physical block pool.
Specifically, as shown in fig. 10, updating the high data service physical block pool includes:
s2101: traversing the high-order data service physical block pool, and checking the number range of the current idle physical page in the physical block;
s2102: and after the data in the middle bit page group is written, transferring the physical block of the physical page with the current idle physical page number larger than a third threshold value to the low bit state data service physical block pool.
FIG. 11 is a diagram of state periodic transition of physical blocks, as shown in FIG. 11, since the writing order of physical pages in a physical block must be performed from low to high, a physical block life cycle will be changed from one member of the free physical block pool to one member of the low-order data storage service physical block pool, as the low-order page group is consumed, it will be changed to one member of the high-order data storage service physical block pool, and as the medium-order page group is consumed, it will be changed to one member of the low-order data storage service physical block pool. And finally, after all the physical pages in the physical block are written with data, continuously storing the data and not providing writing service until invalid pages in the physical block are increased to a certain threshold value, starting garbage collection operation and returning to the free physical block pool from the beginning.
FIG. 12 is a block diagram of an apparatus for improving the reliability of a 3DNAND solid state disk. The device comprises a physical block pool judging module 301, a bit state judging module 302, a matching module 303 and a mapping relation determining module 304.
A physical block pool distinguishing module 301, configured to divide a physical block of which data retention capacity of a current idle physical page is lower than a specific data retention capacity into a low-order data serving physical block pool, and divide a physical block of which data retention capacity of the current idle physical page is higher than the specific data retention capacity into a high-order data serving physical block pool, where the current idle physical page is an idle physical page with a lowest number in the physical blocks;
a bit state determining module 302, configured to determine, according to a storage charge state of write data in memory cells of a physical page, that the write data is low-bit data or high-bit data, where the high-bit data is write data in which a ratio of the number of high-bit memory cells in the physical page to the total number of memory cells exceeds a first threshold, and the low-bit data is write data in which a ratio of the total number of high-bit memory cells in the physical page to the number of memory cells is lower than or equal to the first threshold;
a matching module 303, configured to select a physical block from the lower data service physical block pool to allocate to the write data storage if the write data is in a lower state, and select a physical block from the higher data service physical block pool to allocate to the write data storage if the write data is in a higher state;
and a mapping relation determining module 304, configured to select a current free physical page from the allocated physical blocks, and determine a mapping relation between the current free physical page and the logical page.
Optionally, the physical block pool distinguishing module 301 includes:
the grouping submodule is used for dividing the physical blocks of which the current idle physical page number is less than or equal to a second threshold value into a low-order page group, dividing the physical blocks of which the current idle physical page number is greater than the second threshold value and less than or equal to a third threshold value into a middle-order page group and dividing the physical blocks of which the current idle physical page number is greater than the third threshold value into a high-order page group according to different number ranges of the current idle physical page in the physical blocks;
the first dividing module divides the low-order page group and the high-order page group into the low-order data service physical block pool;
and the first dividing module is used for dividing the middle page group into the high-order data service physical block pool.
Optionally, the second threshold is one third of the maximum value of the physical page number; the third threshold is two-thirds of the maximum value of the physical page number.
Optionally, the first threshold is 1/2.
Alternatively, one physical page may correspond to m logical pages, where one physical page includes N memory cells, each memory cell may store m bits of data, and the stored charge state of each memory cell is 2 m One of the bit states, present 2 m-1 The memory cell of the individual state is a low-order memory cell, and exhibits the second 2 m-1 The memory cells of a single bit state are high bit state memory cells.
Optionally, the matching module 303 is further configured to select, from the lower data service physical block pool, a physical block with the least free physical pages in the lower page group to allocate to the write data storage.
Optionally, the matching module 303 is further configured to select a physical block with the least free physical pages from the middle bit page group in the high data service physical block pool to allocate to the write data storage.
Optionally, the apparatus further includes a first updating module 305, configured to traverse the lower data serving physical block pool, and check a number range of a currently free physical page in a physical block; after the data in the low-order page group is written, transferring the physical block of the physical page with the current idle physical page number larger than a second threshold value to the high-order data service physical block pool; and after the data in the high-order page group is written, the physical block with the full physical page is kicked out of the low-order data service physical block pool.
Optionally, the apparatus further includes a second updating module 306, configured to traverse the high-order data service physical block pool, and check a number range of a currently free physical page in a physical block; and after the data in the middle bit page group is written, transferring the physical block of the physical page with the current idle physical page number larger than a third threshold value to the low bit state data service physical block pool.
With regard to the apparatus in the above-described embodiment, the specific manner in which each module performs the operation has been described in detail in the embodiment related to the method, and will not be elaborated here.
Claims (10)
1. A method for improving the reliability of a 3DNAND solid state disk is characterized by comprising the following steps:
dividing physical blocks of which the data retention capacity of a current idle physical page is lower than the specific data retention capacity into a low-order data service physical block pool, and dividing physical blocks of which the data retention capacity of the current idle physical page is higher than the specific data retention capacity into a high-order data service physical block pool, wherein the current idle physical page is an idle physical page with the lowest number in the physical blocks;
determining whether the written data is low-order data or high-order data according to the storage charge state of the written data in the storage units of the physical page, wherein the high-order data is the written data of which the proportion of the number of the high-order storage units in the physical page to the total number of the storage units exceeds a first threshold value, and the low-order data is the written data of which the proportion of the total number of the high-order storage units in the physical page to the number of the storage units is lower than or equal to the first threshold value;
if the written data is low-order data, selecting a physical block from the low-order data service physical block pool to be distributed to the written data storage, and if the written data is high-order data, selecting a physical block from the high-order data service physical block pool to be distributed to the written data storage;
and selecting a current free physical page from the allocated physical blocks, and determining the mapping relation between the current free physical page and the logical page.
2. The method as claimed in claim 1, wherein the step of grouping the physical blocks of which the data retention capacity of the current free physical page is lower than the specific data retention capacity into a lower data serving physical block pool and the physical blocks of which the data retention capacity of the current free physical page is higher than the specific data retention capacity into an upper data serving physical block pool comprises:
according to different number ranges of current idle physical pages in the physical blocks, dividing the physical blocks of which the current idle physical page numbers are smaller than or equal to a second threshold value into a low-order page group, dividing the physical blocks of which the current idle physical page numbers are larger than the second threshold value and smaller than or equal to a third threshold value into a middle-order page group, and dividing the physical blocks of which the current idle physical page numbers are larger than the third threshold value into a high-order page group;
grouping the lower page group and the upper page group into the lower data service physical block pool;
and grouping the middle page group into the high-order data service physical block pool.
3. The method of claim 2, wherein the second threshold is one-third of a maximum value of a physical page number; the third threshold is two-thirds of the maximum value of the physical page number.
4. The method of claim 1, wherein the first threshold is 1/2.
5. The method of claim 1, wherein a physical page corresponds to m logical pages, a physical page comprises N memory cells, each memory cell stores m bits of data, and each memory cell has a stored charge state of 2 m One of the bit states, present 2 m-1 The memory cell of the individual state is a low-level memory cell, and the second bit is represented by 2 m-1 The memory cells of a single bit state are high bit state memory cells.
6. The method of claim 2, wherein said selecting a physical block from said pool of lower data service physical blocks to allocate to said write data storage comprises:
and selecting the physical block with the least free physical pages in the lower-order page group from the lower-order data service physical block pool to be allocated to the write data storage.
7. The method of claim 2, wherein said selecting a physical block from said pool of high data service physical blocks to allocate to said write data storage comprises:
and selecting the physical block with the least free physical pages from the middle bit page group in the high-order data service physical block pool to be distributed to the write data storage.
8. The method of any one of claims 1-7, further comprising updating the lower data serving physical block pool, including:
traversing the low-bit data service physical block pool, and checking the number range of the current idle physical page in the physical block;
after the data in the low-order page group is written, transferring the physical block of the physical page with the current idle physical page number larger than a second threshold value to the high-order data service physical block pool;
and after the data in the high-order page group is written, the physical block with the full physical page is kicked out of the low-order data service physical block pool.
9. The method of any one of claims 1-7, further comprising updating the high data serving physical block pool, comprising:
traversing the high-order data service physical block pool, and checking the number range of the current idle physical page in the physical block;
and after the data in the middle bit page group is written, transferring the physical block of the physical page with the current idle physical page number larger than a third threshold value to the low bit state data service physical block pool.
10. An apparatus for improving reliability of a 3DNAND solid state disk, the apparatus comprising:
the physical block pool judging module is used for dividing the physical blocks of which the data retention capacity of the current idle physical page is lower than the specific data retention capacity into a low-order data service physical block pool, and dividing the physical blocks of which the data retention capacity of the current idle physical page is higher than the specific data retention capacity into a high-order data service physical block pool, wherein the current idle physical page is the idle physical page with the lowest number in the physical blocks;
the bit state judging module is used for determining that the written data is low-bit state data or high-bit state data according to the storage charge state of the written data in the storage units of the physical page, wherein the high-bit state data is the written data of which the proportion of the number of the high-bit state storage units in the physical page to the total number of the storage units exceeds a first threshold value, and the low-bit state data is the written data of which the proportion of the total number of the high-bit state storage units in the physical page to the number of the storage units is lower than or equal to the first threshold value;
the matching module is used for selecting a physical block from the low-order data service physical block pool to be allocated to the written data storage if the written data is low-order data, and selecting a physical block from the high-order data service physical block pool to be allocated to the written data storage if the written data is high-order data;
and the mapping relation determining module is used for selecting a current idle physical page from the allocated physical blocks and determining the mapping relation between the current idle physical page and the logical page.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210583459.3A CN114995753B (en) | 2022-05-25 | 2022-05-25 | Method and device for improving reliability of 3DNAND solid state disk |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210583459.3A CN114995753B (en) | 2022-05-25 | 2022-05-25 | Method and device for improving reliability of 3DNAND solid state disk |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114995753A true CN114995753A (en) | 2022-09-02 |
CN114995753B CN114995753B (en) | 2024-07-16 |
Family
ID=83028652
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210583459.3A Active CN114995753B (en) | 2022-05-25 | 2022-05-25 | Method and device for improving reliability of 3DNAND solid state disk |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114995753B (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120268364A1 (en) * | 2008-04-24 | 2012-10-25 | Minnen David | Fast fingertip detection for initializing a vision-based hand tracker |
CN108595286A (en) * | 2018-03-29 | 2018-09-28 | 深圳忆联信息***有限公司 | A kind of method and solid state disk promoting reliability of flash memory |
CN110189783A (en) * | 2019-04-15 | 2019-08-30 | 华中科技大学 | The multivalue programmed method and system of nonvolatile three-dimensional semiconductor memory device |
-
2022
- 2022-05-25 CN CN202210583459.3A patent/CN114995753B/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120268364A1 (en) * | 2008-04-24 | 2012-10-25 | Minnen David | Fast fingertip detection for initializing a vision-based hand tracker |
CN108595286A (en) * | 2018-03-29 | 2018-09-28 | 深圳忆联信息***有限公司 | A kind of method and solid state disk promoting reliability of flash memory |
CN110189783A (en) * | 2019-04-15 | 2019-08-30 | 华中科技大学 | The multivalue programmed method and system of nonvolatile three-dimensional semiconductor memory device |
Non-Patent Citations (1)
Title |
---|
王丽娜;王强;: "闪存数据管理中闪存转换层映射策略研究", 中国新通信, no. 13, 5 July 2018 (2018-07-05) * |
Also Published As
Publication number | Publication date |
---|---|
CN114995753B (en) | 2024-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9983929B2 (en) | Redundant data storage schemes for multi-die memory systems | |
EP2565792B1 (en) | Block management schemes in hybrid SLC/MLC memory | |
US9489299B2 (en) | Data encoding for non-volatile memory | |
US9489294B2 (en) | Data encoding for non-volatile memory | |
US9535611B2 (en) | Cache memory for hybrid disk drives | |
US10579518B2 (en) | Memory management method and storage controller | |
US20230176965A1 (en) | Media management based on data access metrics | |
US11720493B2 (en) | Cache management based on memory device over-provisioning | |
CN113724775B (en) | Meta information management method, solid state disk controller and solid state disk | |
CN113590505B (en) | Address mapping method, solid state disk controller and solid state disk | |
US11360885B2 (en) | Wear leveling based on sub-group write counts in a memory sub-system | |
CN114995753B (en) | Method and device for improving reliability of 3DNAND solid state disk | |
US20240211346A1 (en) | Methods and systems for managing memory with dynamic ecc protection | |
US20240211347A1 (en) | Improved ecc configuration in memories | |
CN115061623A (en) | Data storage method and device based on wear leveling algorithm | |
US20240061589A1 (en) | Code rate as function of logical saturation | |
CN113724776B (en) | Meta information management method, solid state disk controller and solid state disk | |
US11789861B2 (en) | Wear leveling based on sub-group write counts in a memory sub-system | |
US20240111431A1 (en) | Adaptive super block wear leveling | |
US20240231632A1 (en) | Adaptive die selection for block family scan | |
WO2024129243A1 (en) | Segregating large data blocks for data storage system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |