CN109669641B - Data storage method and device for reducing SSD bit error rate - Google Patents

Data storage method and device for reducing SSD bit error rate Download PDF

Info

Publication number
CN109669641B
CN109669641B CN201811581965.9A CN201811581965A CN109669641B CN 109669641 B CN109669641 B CN 109669641B CN 201811581965 A CN201811581965 A CN 201811581965A CN 109669641 B CN109669641 B CN 109669641B
Authority
CN
China
Prior art keywords
data
physical block
read
read count
count
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.)
Active
Application number
CN201811581965.9A
Other languages
Chinese (zh)
Other versions
CN109669641A (en
Inventor
王猛
徐伟华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Union Memory Information System Co Ltd
Original Assignee
Shenzhen Union Memory Information System Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Union Memory Information System Co Ltd filed Critical Shenzhen Union Memory Information System Co Ltd
Priority to CN201811581965.9A priority Critical patent/CN109669641B/en
Publication of CN109669641A publication Critical patent/CN109669641A/en
Application granted granted Critical
Publication of CN109669641B publication Critical patent/CN109669641B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Abstract

The invention discloses a data storage method and a data storage device for reducing the error rate of an SSD, wherein the method comprises the following steps: tracking and recording the read count of each physical block; comparing the read count with a preset threshold value, and dividing data in each physical block into cold data or hot data; and writing the distinguished cold data and hot data into a new physical block in an interleaving manner. According to the scheme, the physical blocks are divided into cold data and hot data, the cold data and the hot data are written into the same physical block in a staggered mode, and the left/right shift effects of the Retention and the Read Disturb are mutually offset, so that the probability of data errors is greatly reduced, and the SSD data reading performance is improved.

Description

Data storage method and device for reducing SSD bit error rate
Technical Field
The present invention relates to data reading optimization, and more particularly, to a data storage method and apparatus for reducing an SSD error rate.
Background
SSDs, also known as solid state disks, have been widely used in various applications, and are gradually replacing conventional hard disks due to their excellent indexes in terms of performance, power consumption, environmental suitability, and the like.
Due to the physical characteristics of NAND, there are different failure scenarios for CELL CELLs that store data: for example, under the influence of factors such as the number of times of erasing/reading/data storage time, the state of CELL may be turned over, which may further cause errors in the data stored in the NAND.
Typically, a special ECC error correction algorithm is used to process errors within a certain range inside the SSD, but as the error data accumulates, a specific voltage offset may need to be introduced to read the data, which may greatly affect the read-write performance; further, with the increase of error data, the above method can no longer guarantee data error correction, thereby resulting in user data loss.
Disclosure of Invention
In order to solve the above-mentioned drawbacks of the prior art, an object of the present invention is to provide a data storage method and apparatus for reducing the SSD error rate.
In order to achieve the purpose, the technical scheme of the invention is as follows:
a data storage method for reducing the error rate of an SSD is characterized by comprising the following steps:
tracking and recording the read count of each physical block;
comparing the read count with a preset threshold value, and dividing data in each physical block into cold data or hot data;
and writing the distinguished cold data and hot data into a new physical block in an interleaving manner.
Further, the step of tracking and recording the read count of each physical block comprises,
establishing and maintaining a counting table, and recording the reading count of each physical block in the counting table;
and (4) sorting the part of the count table with the read count being not 0 in an increasing mode according to the read count.
Further, the step of tracking and recording the read count of each physical block comprises,
when data in a physical block is erased, the read count of the physical block is reset to 0
When data in a physical block is read, the corresponding read count is incremented.
Further, the step of comparing the read count with a preset threshold and dividing the data in each physical block into cold data or hot data includes,
presetting a cold data reading counting threshold and a hot data reading counting threshold;
comparing the read count with the cold data read count threshold, and if the read count is smaller than the cold data read count threshold, setting the data in the physical block as cold data;
and comparing the read count with a hot data read count threshold, and if the read count is greater than the hot data read count threshold, setting the data in the physical block as hot data.
Further, before the step of comparing the read count with a preset threshold and distinguishing data in each physical block into cold data or hot data, comprising,
and periodically scanning the counting table, and periodically acquiring the read count of each physical block.
The invention also provides a data storage device for reducing the error rate of the SSD, which comprises the following components:
a tracking recording unit for tracking and recording the read count of each physical block;
the comparison and classification unit is used for comparing the read count with a preset threshold value and dividing the data in each physical block into cold data or hot data;
and the interleaving writing unit is used for interleaving and writing the distinguished cold data and hot data into a new physical block.
Further, the trace recording unit comprises a recording module and a sorting module,
the recording module is used for establishing and maintaining a counting table, and the reading count of each physical block is recorded in the counting table;
and the sequencing module is used for increasing and sequencing the part, which is not 0, of the read count in the count table according to the read count.
Further, the trace recording unit also comprises a reset module and an increment module,
the reset module is used for resetting the read count of the physical block to 0 when the data in the physical block is erased
And the increment module is used for incrementing the corresponding read count when the data in the physical block is read.
Further, the contrast classification unit comprises a preset module, a first contrast module and a second contrast module,
the preset module is used for presetting a cold data reading counting threshold and a hot data reading counting threshold;
the first comparison module is used for comparing the read count with the cold data read count threshold, and if the read count is smaller than the cold data read count threshold, setting the data in the physical block as cold data;
and the second comparison module is used for comparing the read count with the hot data read count threshold, and if the read count is greater than the hot data read count threshold, setting the data in the physical block as hot data.
Further, the system also comprises a periodic scanning unit, which is used for periodically scanning the counting table and periodically acquiring the read count of each physical block.
The invention has the beneficial effects that: the physical block is divided into cold data and hot data, the cold data and the hot data are written into the same physical block in an interlaced mode, and the left/right shift effects of the Retention and the Read Disturb are mutually offset, so that the probability of data errors is greatly reduced, and the SSD data reading performance is improved.
Drawings
FIG. 1 is a flow chart of a method for storing data to reduce the SSD bit error rate according to an embodiment of the present invention;
FIG. 2 is a flowchart of a method of tracking and recording the read count step for each physical block according to the present invention;
FIG. 3 is a flowchart of a method of the present invention for comparing the read count to a predetermined threshold to divide the data in each physical block into cold data or hot data;
FIG. 4 is a flowchart of a method for storing data to reduce the SSD error rate according to another embodiment of the present invention;
FIG. 5 is a block diagram of a data storage device for reducing the SSD error rate according to another embodiment of the present invention;
FIG. 6 is a block diagram of the trace recording unit according to the present invention;
FIG. 7 is a block diagram of the comparative classification unit according to the present invention;
FIG. 8 is a voltage distribution diagram for a NAND Cell default scenario and a failure scenario;
FIG. 9 is an exemplary diagram of a count table according to the present invention;
FIG. 10 is a diagram of a physical block state with interleaved cold and hot data according to the present invention.
Detailed Description
For the purpose of illustrating the spirit and objects of the present invention, the present invention will be further described with reference to the accompanying drawings and specific embodiments.
The technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention, and it is obvious that the described embodiments are only a part of the embodiments of the present invention, and not all of the embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
It should be noted that all directional indicators (such as up, down, left, right, front, back, etc.) in the embodiments of the present invention are only used to explain the relative position relationship between the components, the motion situation, etc. in a specific posture (as shown in the drawings), and if the specific posture is changed, the directional indicator is changed accordingly, and the connection may be a direct connection or an indirect connection.
In addition, the descriptions related to "first", "second", etc. in the present invention are only for descriptive purposes and are not to be construed as indicating or implying relative importance or implicitly indicating the number of technical features indicated. Thus, a feature defined as "first" or "second" may explicitly or implicitly include at least one such feature. In addition, technical solutions between various embodiments may be combined with each other, but must be realized by a person skilled in the art, and when the technical solutions are contradictory or cannot be realized, such a combination should not be considered to exist, and is not within the protection scope of the present invention.
In this specification, "/" denotes "or" unless otherwise specified.
Referring to fig. 1 to 4, a data storage method for reducing an SSD error rate, comprising the steps of:
s1, tracking and recording the read count of each physical block.
And S2, comparing the read count with a preset threshold value, and dividing the data in each physical block into cold data or hot data.
And S3, interleaving and writing the distinguished cold data and hot data into a new physical block.
A typical NAND composition is as follows: DIE, independently concurrently operable units; a Block, which is an independently erasable unit, wherein after data at each physical position is written, the whole Block must be erased before the next writing; page, read-write-unit, pages within the same physical block must be programmed in order 0- >1- >2- >3 ….
As shown in fig. 8, the voltage distribution of the NAND under various scenarios is shown. Taking MLC as an example, each CELL corresponds to four possible states, A/B/C/D, wherein A is a default erased state, and B/C/D is a Program to a certain state respectively. Generally, the Cell numbers in a certain state are normally distributed in the graph and are clearly separated from each other. During reading, the state of a certain Cell can be confirmed by comparing the reference voltage with the Vref _ A/Vref _ B/Vref _ C reference voltage, and the stored value can be known.
When some pages in a certain physical block are Read repeatedly, a Read Disturb effect is caused, the overall voltage distribution is shifted to the right, as shown in the figure, the voltage distributions of partial states are overlapped, and the state of the Cell cannot be judged correctly when the Cell is Read by using the default reference voltage. At this time, it is necessary to try to adjust the position of the reference voltage to Vref _ a '/Vref _ B '/Vref _ C ', and try to read data. This trial process may result in a reduction in read performance and if the voltage offset is too large, a suitable reference voltage may not be found and correct data may not be obtained.
Similarly, if data in a physical block is rarely accessed, a retentivity effect is generated, the overall voltage distribution is shifted to the left, and an attempt to adjust the reference voltage is also made.
In a conventional SSD, the cold and hot data are distinguished according to the data writing time, and the cold data are collected and stored in a centralized manner. Primarily because hot data is expected to soon be overwritten by the host and thus fail according to this partitioning policy. The partitioning model cannot distinguish the characteristics of data reading, and is easy to cause the problems of Retention and Read Disturb, so that the data access performance is low, and even the data is lost. As shown in fig. 9, in order to introduce a data distribution model of a count table according to the present invention, cold data and hot data are distinguished according to the frequency of data reading, and the cold data and the hot data are written into a physical block in an interleaving manner.
Cold data is rarely read, and the previous information shows that the Retention problem is easy to occur, so that the voltage distribution in the physical block is shifted to the left; the hot data is repeatedly accessed, so that the Read Disturb problem is easily caused, and the voltage distribution in the physical block is shifted to the right.
For step S1, a count table is maintained, the number of times data in the physical block is read is obtained by tracking the number of times each physical block is read, and the count table is updated and recorded for later distinguishing whether the data in the physical block is cold data or hot data by reading count.
Referring to fig. 2, step S1 includes the steps of:
and S11, establishing and maintaining a counting table, wherein the reading count of each physical block is recorded in the counting table.
And S12, the part, not being 0, of the read count in the count table is sorted in an increasing mode according to the read count.
S13, when the data in the physical block is erased, the read count of the physical block is reset to 0.
S14, when the data in the physical block is read, incrementing the corresponding read count.
For steps S11 and S12, a count table is established, and the read counts of different physical blocks are recorded by the count table, as shown in fig. 9, the Number (Block Number) of the physical Block is recorded in the count table, and the read count (RD Counter) of the corresponding physical Block is recorded at the same time. Meanwhile, the read count non-zero values are sequentially and progressively sorted from small to large, the physical blocks with small read count values are arranged in the front, the physical blocks with large read count values are arranged in the rear, cold and hot data can be conveniently searched after sorting, and the processing efficiency is improved.
For steps S13 and S14, maintaining a count table, updating the read counts of different physical blocks according to the read-write state of the physical blocks in real time, and resetting the read counts of the physical blocks to 0 when the data in the physical blocks are erased; when the data in the physical block is read, the corresponding reading count is increased progressively, namely, one is automatically added to the reading count corresponding to the physical block every time the data is read more, so that the reading count of the physical block is updated in real time, and the reading count of the physical block is accurate and reliable.
For step S2, the cold data is rarely read, and as can be seen from the previous information, the Retention problem is easily occurred, resulting in the voltage distribution in the physical block shifting to the left; the hot data can be repeatedly accessed, the Read Disturb problem easily occurs, the voltage distribution in the physical block is shifted to the right, the cold data and the hot data are mixed together, the two effects can be mutually offset, and the voltage distribution shift of the physical block is effectively reduced. The data in all physical blocks is therefore differentiated into hot data and cold data by a preset threshold for comparison with the real-time read count of the physical block.
Referring to fig. 3, step S2 includes the steps of:
and S21, presetting a cold data reading counting threshold and a hot data reading counting threshold.
And S22, comparing the read count with the cold data read count threshold, and if the read count is smaller than the cold data read count threshold, setting the data in the physical block as cold data.
S23, comparing the read count with the hot data read count threshold, and if the read count is greater than the hot data read count threshold, setting the data in the physical block as hot data.
For step S21, a COLD data read count threshold (COLD _ RD _ TH) and a HOT data read count threshold (HOT _ RD _ TH) are individually set according to industry-owned data, and the read count of the physical block is individually compared with the COLD data read count threshold (COLD _ RD _ TH) and the HOT data read count threshold (HOT _ RD _ TH) to divide the data in the physical block into COLD data or HOT data.
For steps S23 and S22, when the read count of the physical block is less than the cold data read count threshold, then the data in the physical block is set as cold data. And when the read count of the physical block is greater than the hot data read count threshold, setting the data in the physical block as hot data. The read count of the physical block is compared with the cold data read count threshold and the hot data read count threshold independently, and cold data and hot data are distinguished through the size relationship, so that the method is simple and reliable.
For step S3, the classified cold data and hot data are written into the same physical block in an interleaving manner, the cold data is rarely Read and the voltage distribution in the physical block is shifted to the left due to the Retention effect, the hot data is often Read and the voltage distribution in the physical block is shifted to the right due to the Read Disturb effect, and the voltage shift effects of the cold data and the hot data in the same physical block are mutually cancelled, so that the voltage distribution shift of the physical block is effectively reduced, the data reading performance is stable, and the problem of data uncorrectable and further data loss is avoided. Specifically, as shown in fig. 10, cold data and hot data are moved from different physical blocks to the same physical block and written alternately.
Referring to fig. 4, prior to step S2 of the present invention, further comprising:
and S20, periodically scanning the count table to acquire the read count of each physical block.
For step S20, the reading count of the physical block is periodically obtained through the periodic scanning count table, and the time interval for returning to the periodic scanning can be set as required, so as to avoid inaccurate reading count result and inaccurate cold and hot data classification caused by too long interval time.
According to the scheme, the physical blocks are divided into cold data and hot data, the cold data and the hot data are written into the same physical block in a staggered mode, and the left/right shift effects of the Retention and the Read Disturb are mutually offset, so that the probability of data errors is greatly reduced, and the SSD data reading performance is improved.
Referring to fig. 5 to 7, the present invention further provides a data storage device for reducing the SSD error rate, including:
and a tracking recording unit 10 for tracking and recording the read count of each physical block.
And a period scanning unit 20, configured to periodically scan the count table, and periodically obtain the read count of each physical block.
And the comparison and classification unit 30 is configured to compare the read count with a preset threshold, and classify data in each physical block into cold data or hot data.
And an interleaving write unit 40 for interleaving the distinguished cold data and hot data into a new physical block.
A typical NAND composition is as follows: DIE, independently concurrently operable units; a Block, which is an independently erasable unit, wherein after data at each physical position is written, the whole Block must be erased before the next writing; page, read-write-unit, pages within the same physical block must be programmed in order 0- >1- >2- >3 ….
As shown in fig. 8, the voltage distribution of the NAND under various scenarios is shown. Taking MLC as an example, each CELL corresponds to four possible states, A/B/C/D, wherein A is a default erased state, and B/C/D is a Program to a certain state respectively. Generally, the Cell numbers in a certain state are normally distributed in the graph and are clearly separated from each other. During reading, the state of a certain Cell can be confirmed by comparing the reference voltage with the Vref _ A/Vref _ B/Vref _ C reference voltage, and the stored value can be known.
When some pages in a certain physical block are Read repeatedly, a Read Disturb effect is caused, the overall voltage distribution is shifted to the right, as shown in the figure, the voltage distributions of partial states are overlapped, and the state of the Cell cannot be judged correctly when the Cell is Read by using the default reference voltage. At this time, it is necessary to try to adjust the position of the reference voltage to Vref _ a '/Vref _ B '/Vref _ C ', and try to read data. This trial process may result in a reduction in read performance and if the voltage offset is too large, a suitable reference voltage may not be found and correct data may not be obtained.
Similarly, if data in a physical block is rarely accessed, a retentivity effect is generated, the overall voltage distribution is shifted to the left, and an attempt to adjust the reference voltage is also made.
In a conventional SSD, the cold and hot data are distinguished according to the data writing time, and the cold data are collected and stored in a centralized manner. Primarily because hot data is expected to soon be overwritten by the host and thus fail according to this partitioning policy. The partitioning model cannot distinguish the characteristics of data reading, and is easy to cause the problems of Retention and Read Disturb, so that the data access performance is low, and even the data is lost. Fig. 9 shows a data distribution model after the present invention is introduced. And distinguishing cold and hot data according to the frequency of data reading, and interleaving and writing the cold and hot data into the physical block.
Cold data is rarely read, and the previous information shows that the Retention problem is easy to occur, so that the voltage distribution in the physical block is shifted to the left; the hot data is repeatedly accessed, so that the Read Disturb problem is easily caused, and the voltage distribution in the physical block is shifted to the right.
For the trace recording unit 10, a count table is maintained, the number of times that data in a physical block is read is obtained by tracing the number of times that each physical block is read, and the count table is updated and recorded for distinguishing whether the data in the physical block is cold data or hot data by reading and counting in the following.
Referring to fig. 6, the trace recording unit 10 includes a recording module 11, a sorting module 12, a resetting module 13, and a incrementing module 14.
And the recording module 11 is configured to establish and maintain a count table, where the read count of each physical block is recorded in the count table.
And the sorting module 12 is used for increasing and sorting the read count non-0 part in the count table according to the read count.
And a reset module 13, configured to reset the read count of the physical block to 0 when the data in the physical block is erased.
And an incrementing module 14 for incrementing a corresponding read count when data in the physical block is read.
For the recording module 11 and the sorting module 12, a count table is established, and read counts of different physical blocks are recorded through the count table, as shown in fig. 9, the count table records the Number (Block Number) of a physical Block, and simultaneously records the read count (RD Counter) of the corresponding physical Block. Meanwhile, the reading counting non-zero values are sequentially and progressively sorted from small to large, the physical blocks with small reading counting values are arranged in the front, and the physical blocks with large reading counting values are arranged in the back.
For the reset module 13 and the increment module 14, maintaining a count table, updating the read counts of different physical blocks according to the read-write state of the physical blocks in real time, and resetting the read counts of the physical blocks to 0 when data in the physical blocks are erased; when the data in the physical block is read, the corresponding reading count is increased progressively, namely, one is automatically added to the reading count corresponding to the physical block every time the data is read more, so that the reading count of the physical block is updated in real time, and the reading count of the physical block is accurate and reliable.
For the periodic scanning unit 20, the reading count of the physical block is periodically obtained through the periodic scanning count table, and the time interval for returning to the periodic scanning can be set as required, so that the inaccurate reading count result and the inaccurate cold and hot data classification caused by too long interval time are avoided.
For the classification unit 30, the cold data is rarely read, and as can be seen from the previous information, the Retention problem is easily caused, which results in the voltage distribution in the physical block being shifted to the left; the hot data can be repeatedly accessed, the Read Disturb problem easily occurs, the voltage distribution in the physical block is shifted to the right, the cold data and the hot data are mixed together, the two effects can be mutually offset, and the voltage distribution shift of the physical block is effectively reduced. The data in all physical blocks is therefore differentiated into hot data and cold data by a preset threshold for comparison with the real-time read count of the physical block.
Referring to fig. 7, the contrast classification unit 30 includes a preset module 31, a first contrast module 32, and a second contrast module 33.
The presetting module 31 is used for presetting a cold data reading counting threshold and a hot data reading counting threshold.
And the first comparing module 32 is configured to compare the read count with the cold data read count threshold, and if the read count is smaller than the cold data read count threshold, set the data in the physical block as the cold data.
And a second comparing module 33, configured to compare the read count with the hot data read count threshold, and if the read count is greater than the hot data read count threshold, set the data in the physical block as hot data.
For the preset module 31, a COLD data read count threshold (COLD _ RD _ TH) and a HOT data read count threshold (HOT _ RD _ TH) are individually set according to industry-existing data, and the read count of the physical block is individually compared with the COLD data read count threshold (COLD _ RD _ TH) and the HOT data read count threshold (HOT _ RD _ TH), so as to divide the data in the physical block into COLD data or HOT data.
For the first and second comparison modules 32 and 33, when the read count of the physical block is less than the cold data read count threshold, then the data in the physical block is set as cold data. And when the read count of the physical block is greater than the hot data read count threshold, setting the data in the physical block as hot data. The read count of the physical block is compared with the cold data read count threshold and the hot data read count threshold independently, and cold data and hot data are distinguished through the size relationship, so that the method is simple and reliable.
For the interleaving write unit 40, classified cold data and hot data are interleaved and written into the same physical block, the voltage distribution in the physical block is shifted to the left due to the Retention effect when the cold data is rarely Read, the voltage distribution in the physical block is shifted to the right due to the Read Disturb effect when the hot data is often Read, and the voltage shift effects of the cold data and the hot data in the same physical block are mutually counteracted, so that the voltage distribution offset of the physical block is effectively reduced, the stability of the data reading performance is ensured, the problem of data uncorrectable and further data loss is avoided. Specifically, as shown in fig. 10, cold data and hot data are moved from different physical blocks to the same physical block and written alternately.
According to the scheme, the physical blocks are divided into cold data and hot data, the cold data and the hot data are written into the same physical block in a staggered mode, and the left/right shift effects of the Retention and the Read Disturb are mutually offset, so that the probability of data errors is greatly reduced, and the SSD data reading performance is improved.
The above description is only a preferred embodiment of the present invention, and not intended to limit the scope of the present invention, and all modifications of equivalent structures and equivalent processes, which are made by using the contents of the present specification and the accompanying drawings, or directly or indirectly applied to other related technical fields, are included in the scope of the present invention.

Claims (6)

1. A data storage method for reducing the error rate of an SSD is characterized by comprising the following steps:
tracking and recording the read count of each physical block;
comparing the read count with a preset threshold value, and dividing data in each physical block into cold data or hot data;
writing the distinguished cold data and hot data into a new physical block in an interleaving manner;
the step of tracking and recording the read count of each physical block includes,
establishing and maintaining a counting table, and recording the reading count of each physical block in the counting table;
the part of the count table with the read count being not 0 is sorted in an increasing way according to the read count;
the step of tracking and recording the read count of each physical block includes,
resetting a read count of a physical block to 0 when data in the physical block is erased;
incrementing a corresponding read count when data in the physical block is read;
the counting table records the serial numbers of the physical blocks, simultaneously records the reading counts of the corresponding physical blocks, simultaneously, the non-zero values of the reading counts are sequentially and progressively ordered from small to large, the physical blocks with small reading count values are arranged in the front, and the physical blocks with large reading count values are arranged in the back; maintaining a count table, updating the read counts of different physical blocks according to the read-write state of the physical blocks in real time, and resetting the read counts of the physical blocks to 0 when data in the physical blocks are erased; when the data in the physical block is read, the corresponding read count is incremented, that is, one is automatically added to the read count corresponding to the physical block every time reading is carried out, so that the read count of the physical block is updated in real time.
2. The method of claim 1, wherein the step of comparing the read count with a predetermined threshold to divide the data in each physical block into cold data or hot data comprises,
presetting a cold data reading counting threshold and a hot data reading counting threshold;
comparing the read count with the cold data read count threshold, and if the read count is smaller than the cold data read count threshold, setting the data in the physical block as cold data;
and comparing the read count with a hot data read count threshold, and if the read count is greater than the hot data read count threshold, setting the data in the physical block as hot data.
3. The method of claim 1, wherein the step of comparing the read count to a predetermined threshold to distinguish the data in each physical block as cold data or hot data comprises,
and periodically scanning the counting table, and periodically acquiring the read count of each physical block.
4. A data storage device for reducing SSD error rates, comprising:
a tracking recording unit for tracking and recording the read count of each physical block;
the comparison and classification unit is used for comparing the read count with a preset threshold value and dividing the data in each physical block into cold data or hot data;
an interleaving write unit for interleaving writing the distinguished cold data and hot data into a new physical block,
the tracking recording unit comprises a recording module and a sorting module,
the recording module is used for establishing and maintaining a counting table, and the reading count of each physical block is recorded in the counting table;
the sorting module is used for increasing and sorting the part, which is not 0, of the read count in the count table according to the read count;
the trace recording unit further comprises a reset module and an increment module,
the reset module is used for resetting the read count of the physical block to 0 when the data in the physical block is erased;
the increment module is used for incrementing the corresponding read count when the data in the physical block is read;
the counting table records the serial numbers of the physical blocks, simultaneously records the reading counts of the corresponding physical blocks, simultaneously, the non-zero values of the reading counts are sequentially and progressively ordered from small to large, the physical blocks with small reading count values are arranged in the front, and the physical blocks with large reading count values are arranged in the back; maintaining a count table, updating the read counts of different physical blocks according to the read-write state of the physical blocks in real time, and resetting the read counts of the physical blocks to 0 when data in the physical blocks are erased; when the data in the physical block is read, the corresponding read count is incremented, that is, one is automatically added to the read count corresponding to the physical block every time reading is carried out, so that the read count of the physical block is updated in real time.
5. The data storage device for reducing the error rate of the SSD according to claim 4, wherein the comparison classification unit comprises a preset module, a first comparison module and a second comparison module,
the preset module is used for presetting a cold data reading counting threshold and a hot data reading counting threshold;
the first comparison module is used for comparing the read count with the cold data read count threshold, and if the read count is smaller than the cold data read count threshold, setting the data in the physical block as cold data;
and the second comparison module is used for comparing the read count with the hot data read count threshold, and if the read count is greater than the hot data read count threshold, setting the data in the physical block as hot data.
6. The data storage device for reducing the bit error rate of the SSD of claim 4, further comprising a cycle scanning unit for periodically scanning the count table to periodically obtain the read count for each physical block.
CN201811581965.9A 2018-12-24 2018-12-24 Data storage method and device for reducing SSD bit error rate Active CN109669641B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811581965.9A CN109669641B (en) 2018-12-24 2018-12-24 Data storage method and device for reducing SSD bit error rate

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811581965.9A CN109669641B (en) 2018-12-24 2018-12-24 Data storage method and device for reducing SSD bit error rate

Publications (2)

Publication Number Publication Date
CN109669641A CN109669641A (en) 2019-04-23
CN109669641B true CN109669641B (en) 2022-03-29

Family

ID=66147099

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811581965.9A Active CN109669641B (en) 2018-12-24 2018-12-24 Data storage method and device for reducing SSD bit error rate

Country Status (1)

Country Link
CN (1) CN109669641B (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110704332B (en) * 2019-08-29 2021-11-09 深圳大普微电子科技有限公司 Flash memory medium optimization method and nonvolatile storage device
CN111124295B (en) * 2019-12-11 2021-06-04 成都信息工程大学 Agricultural data storage processing system and method based on ternary influence factor

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103064792A (en) * 2012-12-26 2013-04-24 北京创毅讯联科技股份有限公司 Method and device for writing data
CN106527995A (en) * 2016-11-22 2017-03-22 青海师范大学 Data expansion and migration method for I/O equilibrium
CN106610901A (en) * 2015-10-21 2017-05-03 深圳市江波龙电子有限公司 Wear frequency balancing method and apparatus for memory
CN106844227A (en) * 2017-01-14 2017-06-13 郑州云海信息技术有限公司 Solid state hard disc abrasion equilibrium method and device based on grouping mechanism
CN106909472A (en) * 2015-12-22 2017-06-30 中国移动通信集团河北有限公司 The input/output load regulation method and device of a kind of distributed file system
CN106951187A (en) * 2017-03-07 2017-07-14 记忆科技(深圳)有限公司 A kind of solid-state storage static wear implementation method in a balanced way
CN107562381A (en) * 2017-08-30 2018-01-09 紫光华山信息技术有限公司 A kind of data processing method and device
CN107590021A (en) * 2017-08-22 2018-01-16 华中科技大学 A kind of coding and decoding device and coding and decoding method for reducing the flash memory bit error rate
CN108628552A (en) * 2018-05-10 2018-10-09 南京道熵信息技术有限公司 A kind of method, control device and storage system improving Flash wear-out lifes

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105677242B (en) * 2015-12-31 2018-11-30 杭州华为数字技术有限公司 The separation method and device of cold and hot data
CN107680632B (en) * 2016-08-01 2020-10-16 大唐移动通信设备有限公司 Method and device for testing service life of solid state disk
US10289317B2 (en) * 2016-12-31 2019-05-14 Western Digital Technologies, Inc. Memory apparatus and methods thereof for write amplification aware wear leveling

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103064792A (en) * 2012-12-26 2013-04-24 北京创毅讯联科技股份有限公司 Method and device for writing data
CN106610901A (en) * 2015-10-21 2017-05-03 深圳市江波龙电子有限公司 Wear frequency balancing method and apparatus for memory
CN106909472A (en) * 2015-12-22 2017-06-30 中国移动通信集团河北有限公司 The input/output load regulation method and device of a kind of distributed file system
CN106527995A (en) * 2016-11-22 2017-03-22 青海师范大学 Data expansion and migration method for I/O equilibrium
CN106844227A (en) * 2017-01-14 2017-06-13 郑州云海信息技术有限公司 Solid state hard disc abrasion equilibrium method and device based on grouping mechanism
CN106951187A (en) * 2017-03-07 2017-07-14 记忆科技(深圳)有限公司 A kind of solid-state storage static wear implementation method in a balanced way
CN107590021A (en) * 2017-08-22 2018-01-16 华中科技大学 A kind of coding and decoding device and coding and decoding method for reducing the flash memory bit error rate
CN107562381A (en) * 2017-08-30 2018-01-09 紫光华山信息技术有限公司 A kind of data processing method and device
CN108628552A (en) * 2018-05-10 2018-10-09 南京道熵信息技术有限公司 A kind of method, control device and storage system improving Flash wear-out lifes

Also Published As

Publication number Publication date
CN109669641A (en) 2019-04-23

Similar Documents

Publication Publication Date Title
US10656875B2 (en) Method for re-reading page data
US8751726B2 (en) System and methods employing mock thresholds to generate actual reading thresholds in flash memory devices
US8694715B2 (en) Methods for adaptively programming flash memory devices and flash memory systems incorporating same
US20110258495A1 (en) Methods of calculating compensation voltage and adjusting threshold voltage and memory apparatus and controller
US8892812B2 (en) Flash memory device and data writing method for a flash memory
KR20150014437A (en) System and method of adjusting a programming step size for a block of a memory
CN109599143B (en) Memory system with read threshold mechanism and method of operation thereof
US9235470B2 (en) Adaptive EPWR (enhanced post write read) scheduling
CN103578565A (en) Calibration method and device of NAND Flash memory chip
US9514843B2 (en) Methods for accessing a storage unit of a flash memory and apparatuses using the same
CN109669641B (en) Data storage method and device for reducing SSD bit error rate
US20090024787A1 (en) Data writing method and apparatus
CN112068772B (en) Data storage method, data storage device and storage device
CN112466378A (en) Solid state disk operation error correction method and device and related components
US20090164869A1 (en) Memory architecture and configuration method thereof
CN111522684A (en) Method and device for simultaneously correcting soft and hard errors of phase change memory
CN112347001A (en) Flash memory garbage recovery verification method and device and electronic equipment
CN113241112B (en) Bad block screening method and device, computer readable storage medium and electronic equipment
CN113419688B (en) Error rate analysis method, system and device of MLC chip
CN113035265B (en) Bad block screening method and device, readable storage medium and electronic equipment
CN112863591B (en) Test and processing method for Open Block
CN110289036B (en) Read voltage optimization method and memory controller
CN111949198A (en) Bad block management method and device and storage equipment
CN116610269B (en) Data storage method, device, storage medium and controller
CN110322907A (en) The method of adjustment, system and 3D flash memory of threshold voltage in 3D flash memory

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
GR01 Patent grant