CN100508073C - Flash storage data access method - Google Patents

Flash storage data access method Download PDF

Info

Publication number
CN100508073C
CN100508073C CNB2006100836574A CN200610083657A CN100508073C CN 100508073 C CN100508073 C CN 100508073C CN B2006100836574 A CNB2006100836574 A CN B2006100836574A CN 200610083657 A CN200610083657 A CN 200610083657A CN 100508073 C CN100508073 C CN 100508073C
Authority
CN
China
Prior art keywords
data
converted
information
transcoding
binary message
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.)
Expired - Fee Related
Application number
CNB2006100836574A
Other languages
Chinese (zh)
Other versions
CN1851827A (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.)
Vimicro Corp
Original Assignee
Vimicro Corp
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 Vimicro Corp filed Critical Vimicro Corp
Priority to CNB2006100836574A priority Critical patent/CN100508073C/en
Publication of CN1851827A publication Critical patent/CN1851827A/en
Application granted granted Critical
Publication of CN100508073C publication Critical patent/CN100508073C/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

This invention provides a data access method for MLC flash storages, which transfers the original data to get the code-transferred data before storing data then to be stored and carries out inverse data-transfer process to the stored data to get the recovered data before reading, then reading the data after correcting them to reduce the error probability of high-bit number information.

Description

A kind of flash storage data access method
Technical field
The present invention relates to the flash storage data access technology, be meant a kind of data access method especially based on multi-stag (MLC) flash memory.
Background technology
Novel MLC flash memory has appearred in the development along with flash memory (Flash Memory) technology, might substitute traditional single stage type (SLC) flash memory, becomes the flash memory medium of main flow.
MLC is the unit of 2 Bit datas of storage in a floating gate structure unit, and data information stored may be 00,01,10 or 11 in the MLC unit.In a MLC unit, storage area is arranged to low by height according to level, can be divided into 00 grade, 01 grade, 10 grades and 11 grades, corresponding respectively storing data information 00,01,10 or 11 situation.For example, when needing storage data 01, level is adjusted into 01 grade, shows and in this MLC unit, stored data message 01; When the needs reading of data, according to level rank at that time, obtain with the corresponding storing data information of this level rank as restoring data information; After this, this restoring data information is carried out correcting data error handle, obtain correct data read and come out.
Unspoiled MLC flash memory generation data message mistake be its level rank is descended change due to.For example, when owing to electric leakage makes level when 01 grade drops to 10 grades, level decline one-level, corresponding storing data information becomes 10 by 01, and 2 bit information mistakes take place in code word; When owing to electric leakage makes level when 01 grade drops to 11 grades, level decline two-stage, corresponding storage data become 11 by 01, and 1 bit information mistake takes place in code word.
Electric leakage size in the reality has relation with level itself, but level at different levels electric leakage is at the similar order of magnitude.Following analysis is for convenience carried out certain simplification at this and is handled, and supposes promptly that in a MLC because of electric leakage makes the probability of each level rank decline one-level identical, described is A because of electric leakage causes the probable value of level decline one-level, and A is very little value.
Fig. 1 is the synoptic diagram that 1 Bit data information errors takes place in the MLC unit.As shown in Figure 1, for 1 Bit data information errors takes place, be divided into four kinds of situations in a MLC unit:
1) level drops to 01 grade from 00 grade, one-level takes place change, and its data message error probability is A;
2) level drops to 10 grades from 00 grade, secondary takes place change, and its data message error probability is A*A;
3) level drops to 11 grades from 01 grade, secondary takes place change, and its data message error probability is A*A;
4) level drops to 11 grades from 10 grades, one-level takes place change, and its data message error probability is A.
Therefore, total data message error probability is 2A+2A*A.Because the A value is very little, the A*A item is compared with it and can be ignored.Therefore, for the situation that 1 Bit data information errors takes place in a MLC unit, the data message error probability is about the 2A order of magnitude.
Fig. 2 is the synoptic diagram that 2 Bit data information errors take place in the MLC unit.As shown in Figure 2, for 2 Bit data information errors take place, be divided into two kinds of situations in a MLC unit:
1) level drops to 11 grades from 00 grade, and three grades of changes take place, and its data message error probability is A*A*A;
2) level drops to 10 grades from 01 grade, one-level takes place change, and its data message error probability is A.
Therefore, total data message error probability is A+A*A*A.Because A*A*A very I ignores, therefore, for the situation that 2 Bit data information errors take place in a MLC unit, the data message error probability is about the A order of magnitude.
For 4 Bit data information errors take place, be divided into three kinds of situations in a page or leaf:
1) four 1 bit mistakes, its data message error probability is about 2A*2A*2A*2A, and is very little;
2) two 1 bit mistakes and one 2 bit mistake, its data message error probability is about 2A*2A*A, also is very little;
3) two 2 bit mistakes, its data message error probability is about A*A, and is high more a lot of than preceding two kinds of situations.
Therefore, 4 Bit data information errors occurring mainly causes because two 2 Bit data information errors take place.As previously mentioned, if 2 Bit data information spinners take place because level drops to 10 grades from 01 grade to be caused, can think: the main cause that 4 Bit data information errors occur is that level drops to 10 grades from 01 grade.
In sum, availablely find out: the situation that the data message mistake takes place owing to electric leakage for MLC flash memory data, it mainly is because level generation one-level descends caused that the data message mistake takes place, and level generation secondary descends or the probability of three grades of declines is much smaller by contrast, can ignore in the analysis below.Therefore, the situation that the storing data information mistake takes place in a MLC unit is specially: 1 bit mistake takes place mainly be to drop to 11 grades because level drops to 01 grade and level from 00 grade from 10 grades, its wrong probability of happening is about 2A; 2 bit mistakes take place mainly be because level drops to 10 grades from 01 grade, its wrong probability of happening is about A; 4 bit mistakes take place mainly also be because level drops to 10 grades from 01 grade, its wrong probability that takes place is about A*A.As shown in the table:
The situation of storage data generation information errors The principal element of data message mistake takes place The general probability (magnitude) of data message mistake takes place
1 bit mistake takes place Level drops to 01 grade of level from 00 grade and drops to 11 grades from 10 grades 2A
2 bit mistakes take place Level drops to 10 grades from 01 grade A
4 bit mistakes take place Level drops to 10 grades from 01 grade A*A
For traditional SLC flash memory,, therefore only need have correcting data error (ECC) ability of 2 bits because it is very little that the probability of the above data message mistake of 2 bits takes place.Compare with it, the storage density of MLC flash memory improves a lot, and cost reduces greatly, but it is bigger the probability of the above higher bit data message mistake of 2 bits to occur, therefore, need have the error correction capability of 4 bits.
In the prior art,, simple correcting data error disposal route can be adopted,, the needs of its 2 Bit data error correcting capability can be satisfied as the standard ECC algorithm that employing has 2 Bit data error correcting capabilities for traditional SLC flash memory.And for the MLC flash memory, usually need to adopt more complicated correcting data error disposal route could satisfy the needs of its 4 Bit data error correcting capability, for example, the correcting data error processing is carried out in the standard ECC algorithm and Read-Solomon (RS) the algorithm mixing use that will have 4 Bit data error correcting capabilities, so just can realize stronger error correction capability, reach 4 required Bit data error correcting capabilities of MLC flash memory, but have to take long code word simultaneously.
This shows, the available data access method that the MLC flash memory is adopted, make that the probability of data generation higher bit information errors is higher, therefore the complex data error correction algorithm that must employing has 4 Bit data error correcting capabilities at least just can reach the MLC flash memory and use necessary 4 Bit data error correcting capabilities.
Summary of the invention
In view of this, the invention provides a kind of data access method, can reduce the probability of data message generation higher bit mistake based on the MLC flash memory.
Technical scheme provided by the invention is specific as follows:
The invention provides a kind of data access method based on multi-stag MLC flash memory, the implementation procedure of this method is: before data storage, the raw data of receiving is carried out the transcoding processing obtain the transcoding data, and then the storage data; Before data read, the transcoding data of storage are carried out inversion code handle, make the information code word of the inversion code data that obtain between adjacent inversion code data message rank, differ 1 bit, with these inversion code data as restoring data, reading of data then; Described transcoding is handled and handled with described inversion code is reciprocal.
The zero level of the levels of information of described inversion code data, one-level, secondary and three grades, corresponding described MLC level storage level is other 00 grade, 01 grade, 10 grades and 11 grades respectively, and the pairing information code word of adjacent inversion code levels of information differs 1 bit.
It can be to carry out decoding processing in the gray code decoder mode for data that described transcoding is handled, and it is to carry out encoding process in the gray encoding mode for data that described inversion code is handled.
Described transcoding is handled, and is that binary message 00 is converted into 00, and binary message 10 is converted into 01, and binary message 11 is converted into 10, and binary message 01 is converted into 11.
Described transcoding is handled, and can be that binary message 11 is converted into 00, and binary message 01 is converted into 01, and binary message 00 is converted into 10, and binary message 10 is converted into 11.
Described transcoding is handled, and is binary message 11 can be converted into 00, and binary message 10 is converted into 01, and binary message 00 is converted into 10, and binary message 01 is converted into 11.
Described transcoding is handled, and can be that binary message 01 is converted into 00, and binary message 00 is converted into 01, and binary message 10 is converted into 10, and binary message 11 is converted into 11.
Described transcoding is handled, and can be that binary message 01 is converted into 00, and binary message 11 is converted into 01, and binary message 10 is converted into 10, and binary message 00 is converted into 11.
Described transcoding is handled, and can be that binary message 10 is converted into 00, and binary message 00 is converted into 01, and binary message 01 is converted into 10, and binary message 11 is converted into 11.
Described transcoding is handled, and can be that binary message 10 is converted into 00, and binary message 11 is converted into 01, and binary message 01 is converted into 10, and binary message 00 is converted into 11.
According to method provided by the invention, describedly the raw data of receiving is carried out transcoding handle and to obtain the transcoding data, and then data storing method is: whenever receive 2 bit raw data information, then this information is carried out the transcoding processing and obtain 2 bit transcoding data messages, store this 2 bit transcoding data message; Repeatedly repeat aforesaid operations, all primary data information (pdi)s of receiving are carried out finishing storage after transcoding is handled.
Said method provided by the invention further comprises: calculate initial error correction ECC value and this initial ECC value of storage according to described raw data; Before described reading of data, calculate the ECC value according to described restoring data, and compare with initial ECC value, restoring data is carried out correction process.
The initial error correction ECC of described calculating value is to adopt the error correction algorithm with 2 bit error correcting capabilities to calculate initial ECC value; Described calculating ECC value is to adopt the error correction algorithm with 2 bit error correcting capabilities to calculate the ECC value.
According to method provided by the invention, describedly calculate initial error correction ECC value and storage this initial ECC value according to described raw data, for: whenever receive the individual 2 bit raw data information of N, then draw 1 initial ECC information, store this initial ECC information according to this information; Repeatedly repeat aforesaid operations, draw a plurality of initial ECC information according to all primary data information (pdi)s of receiving; Draw initial ECC value according to described a plurality of initial ECC information, store this initial ECC value.Wherein, described N is a positive integer.
By the invention provides a kind of data access method based on the MLC flash memory, before data storage, the raw data of receiving is carried out the transcoding processing obtain the transcoding data, store this transcoding data then; Before data read, the transcoding data of storage are carried out inversion code handle and to obtain restoring data, can carry out reading of data after the correction process to this restoring data then.
For the data that are stored in the MLC flash memory, as previously mentioned, the above higher bit data message mistake of 2 bits takes place mainly is since level decline one-level from 01 grade drop to 10 grades caused, at this moment, correct information 01 becomes wrong canned data 10, and the information errors of 2 bits has taken place code word.The present invention is by carrying out inversion code and handle and obtain restoring data being stored in transcoding data among the MLC, with the above-mentioned 2 bit codewords information errors that occur between correct data information and the wrong storing data information, change the 1 bit codewords information errors that occurs between correct data information and the wrong restoring data information into, thereby, reduce the bit number that data message makes a mistake, and reduced the probability of data message generation higher bit mistake.Like this, when after this carrying out correction process, just can adopt simple correcting data error algorithm, realize 4 required Bit data error correcting capabilities of MLC flash memory for restoring data.
Above-mentioned transcoding and inversion code to data handled, and can pass through Gray code (Grey Code) and realize.
When storage during data, raw data is carried out transcoding handle, promptly gray code decoder is handled, and obtains the transcoding data and stores.In described transcoding treatment step, correct data information 01 is converted into correct transcoding data message 01 through behind the gray code decoder.
When level decline one-level when 01 grade drops to 10 grades, correct transcoding data message 01 becomes wrong storing data information 10, the information errors of 2 bits has taken place in code word.
When the needs reading of data, carry out the inversion code processing to being stored in MLC transit code data, promptly gray encoding is handled, and obtains restoring data.In described inversion code treatment step, mistake storing data information 10 is converted into wrong restoring data information 11 through behind the gray encoding, and this information 11 is compared with correct data information 01, and 1 bit information mistake has taken place code word.
This shows, handle by transcoded data provided by the invention, handle as gray code decoder, and the inversion code processing, handle as gray encoding, with the 2 bit codewords information errors that occur between correct data information and the wrong storing data information, change the 1 bit codewords information errors that occurs between correct data information and the wrong restoring data information into, thereby, reduced the bit number that data message makes a mistake, and reduced the probability of data message generation higher bit mistake.Therefore can be when described restoring data be carried out correction process follow-up, employing has the simple error correction algorithm of low bit error correcting capability, just can realize the error correction capability of upper bit, thereby reach the correcting data error effect of the higher bit that the complicated error correction algorithm of use just can reach in the prior art.
Description of drawings
Fig. 1 is the situation synoptic diagram that 1 Bit data information errors takes place in the MLC unit;
Fig. 2 is the situation synoptic diagram that 2 Bit data information errors take place in the MLC unit;
Fig. 3 carries out transcoding for the employing Gray code and inversion code is handled the data comparison synoptic diagram that obtains;
Fig. 4 is the data access method embodiment synoptic diagram of MLC flash memory provided by the invention.
Embodiment
The data access method that reduces data message generation higher bit error probability in the MLC flash memory provided by the invention before data storage, is carried out the transcoding processing to the raw data of receiving and is obtained the transcoding data, stores this transcoding data then; Before data read, the transcoding data of storage are carried out inversion code handle and to obtain restoring data, can carry out reading of data after the correction process to this restoring data then.Wherein, described transcoding processing is reciprocal with described inversion code processing.
For the data that are stored in the MLC flash memory, the level rank is respectively 00 grade, 01 grade, 10 grades and 11 grades from high to low.As previously mentioned, it mainly is because level reduction one-level is caused that the above higher bit data message mistake of 2 bits takes place, and wherein, it is again most important reason that level drops to 10 grades from 01 grade.At this moment, corresponding correct information 01 becomes wrong canned data 10, the low level of mistake canned data 10 is 0, with the low level 1 of correct information 01 is different, and the high position of wrong canned data 10 is 1, also is different with the high position 0 of correct information 01, therefore, in fact in the MLC storage unit, the information errors of 2 bits has taken place in code word.
In the prior art, when reading of data,, also be to read the data message corresponding with it according to the rank of level at that time even data information stored makes a mistake because of the level rank reduces, and with this information directly as restoring data information, the correcting data error that carries out is subsequently handled.Like this, if level drops to 10 grades and cause correct information 01 to become wrong canned data 10 from 01 grade, 2 bit information mistakes take place in code word, so, with described wrong canned data 10 directly as restoring data information, therefore, restoring data information 10 also will produce the codeword information mistake of 2 bits.So, when subsequently restoring data being carried out the correcting data error processing, must adopt complicated error correction algorithm to carry out correcting data error and handle with 4 Bit data error correcting capabilities.
In the present invention, during data, raw data is carried out transcoding according to selected transcoding mode handle, obtain the transcoding data and it is stored in the MLC flash memory in storage; When reading of data, read the storage transcoding data message corresponding according to the rank of level at that time with it, to its carry out that inversion code is handled and with the inversion code data message that obtains as restoring data information, the correcting data error that carries out is subsequently handled.
Described inversion code is handled, be according to level ranks different in the MLC flash memory cells, corresponding inversion code data message rank is set, be 00 grade, 01 grade, 10 grades and 11 grades of level, the respectively zero level of corresponding inversion code data message, one-level, secondary and three grades, therefore, if level generation one-level reduces, one-level also correspondingly takes place and reduces in then described inversion code data message rank.Described other principal feature of inversion code data message level is: between adjacent inversion code data message rank, corresponding information code word differs 1 bit, be between the zero level and one-level of described inversion code information, between one-level and the secondary, between secondary and three grades, the code word of institute's corresponding informance all only differs 1 bit.
For example, if level is in 01 grade, then its corresponding canned data is 01, and this canned data 01 is converted into one-level inversion code information after handling through described inversion code; If level is in 10 grades, then its corresponding canned data is 10, and this canned data 10 is converted into two day reversal sign indicating number information after handling through described inversion code; And because the levels of information of described one-level inversion code information and described two day reversal sign indicating number information is adjacent, therefore, the code word of the two differs 1 bit.
As previously mentioned, when level reduced one-level, described inversion code data message rank also correspondingly reduced one-level.Because the code word of other inversion code data message of neighbor information level only differs 1 bit, therefore cause storing data when level reduction one-level when making a mistake, the codeword information mistake that no matter takes place is 1 bit or 2 bits, and the code word mistake of the corresponding generation of described inversion code data message must be 1 bit.
This shows, the present invention is by carrying out inversion code and handle and obtain restoring data being stored in transcoding data among the MLC, can be with the above-mentioned 2 bit codewords information errors that occur between correct data information and the wrong storing data information, be converted into the 1 bit codewords information errors that occurs between correct data information and the wrong restoring data information, thereby, reduce the bit number that data message makes a mistake, and reduced the probability of data message generation higher bit mistake.Like this, when after this carrying out correction process, just can adopt simple correcting data error algorithm, realize 4 required Bit data error correcting capabilities of MLC flash memory for restoring data.With the above-mentioned 2 bit information mistakes that occur in the transcoding data, be converted into the 1 bit information mistake that occurs in the restoring data.
The above-mentioned transcoding that carries out for data handles and inversion code is handled, and can realize by different modes.For example, can select for use Gray code to carry out described transcoding processing and inversion code processing.Gray code is a kind of standard code words, is usually used in the design of asynchronous first in first out (FIFO).Handle by data being carried out gray encoding, available binary data 00,01,10 and 11 is separately converted to gray encoding data 00,01,11 and 10.Can see that in the above-mentioned gray encoding data, between 00 and 01, between 01 and 11, between 11 and 10, code word all only differs 1 bit.In this case, describedly data are carried out transcoding handle to be and data are carried out gray code decoder handle, describedly data are carried out inversion code handle, be and data are carried out gray encoding handle.
As previously mentioned, level generation one-level reduces that to drop to 10 grades from 01 grade be the main cause that the higher bit information errors takes place in the MLC unit, therefore, is the analysis below convenient, only this kind situation is discussed in detail.If adopt Gray code to carry out described transcoding processing and inversion code processing:
1) when the storage data, correct information 01 is converted into gray code decoder information 01, and is stored in the MLC unit;
2) at memory period, level might reduce one-level and drop to 10 grades from 01 grade, and in this case, correct information 01 will become wrong canned data 10, and 2 bit information mistakes take place code word;
3) when reading of data,, promptly do not take place as 2 if level does not reduce) described mistake, then according to 01 grade of correct level rank, obtain correct canned data 01, then it is carried out gray encoding and handle the correct inversion code information 01 that is converted into; If level has taken place as 2) described mistake, then according to 10 grades of the level ranks of mistake, obtain wrong canned data 10, then it is carried out gray encoding and handle the wrong inversion code information 11 that is converted into, compare with described correct inversion code information 01: the low level of mistake inversion code information 11 is 1, and is identical with the low level 1 of correct inversion code information 01; And the high position of wrong inversion code information 11 is 1, and is different with the high position 0 of correct inversion code information 01, and therefore, in fact 1 bit information mistake has taken place code word.
The contrast situation of level rank, corresponding stored information, inversion code levels of information and gray encoding information in the MLC unit, as shown in the table:
MLC unit level rank Canned data The inversion code levels of information Gray encoding information
00 grade 00 Zero level 00
01 grade 01 One-level 01
10 grades 10 Secondary 11
11 grades 11 Three grades 10
For making the purpose, technical solutions and advantages of the present invention clearer, the present invention is described in further detail below in conjunction with accompanying drawing.
Fig. 3 carries out transcoding for the employing Gray code and inversion code is handled the data comparison synoptic diagram that obtains.As shown in Figure 3, when needs storage data, the raw data of receiving is carried out transcoding handle, promptly gray code decoder is handled, and stores data then; When the needs reading of data, will store data and carry out the inversion code processing, promptly gray encoding is handled, and obtains restoring data then.After this, can carry out correcting data error to described restoring data and handle, then reading of data.As shown in Figure 3, when the needs reading of data, obtain corresponding storing data information:, obtain restoring data information 00 after then handling through above-mentioned gray encoding if storing data information is 00 according to level rank at that time; If storing data information is 01, obtain restoring data information 01 after then handling through above-mentioned gray encoding; If storing data information is 10, obtain restoring data information 11 after then handling through above-mentioned gray encoding; If storing data information is 11, obtain restoring data information 10 after then handling through above-mentioned gray encoding.Make correct information 01 become wrong canned data 10 if the storage data drop to 10 grades owing to the level one-level reduces by 01 grade, 2 bit information mistakes take place in code word.So, when the needs reading of data, mistake canned data 10 is handled through above-mentioned gray encoding and is converted into wrong restore information 11, compares with correct information 01, and 1 bit information mistake takes place code word.
This shows, handle and the inversion code processing mode, handle and the Gray code coding processing mode, can effectively reduce the probability of data message generation higher bit mistake as gray code decoder by adopting above-mentioned transcoding.In following table,, the present invention's processing procedure and prior art to data when storing data and reading of data compared to be stored in the data in the MLC unit because the reduction of level one-level is an example by 01 grade of situation that drops to 10 grades.Wherein, the present invention has adopted the Gray code mode that data are handled.
Sequence number Comparative run Prior art The technology of the present invention
1 Primary data information (pdi) (correct information) 01 01
2 Transcoding (gray code decoder) data message - 01
3 Storing data information 01 01
4 The mistake storing data information 10 10
5 Inversion code (gray encoding) data message - 11
6 The mistake restore information 10 11
7 Compare the information errors bit number that wrong restore information takes place with primary data information (pdi) (correct information) 2 bits 1 bit
As above shown in the table, in the prior art, when the needs reading of data, the level rank by at that time obtains pairing storing data information, and with it directly as restoring data information, carry out correcting data error and handle.If drop to 10 by 01 because level reduces one-level, then will obtain wrong canned data 10 according to level rank 10 wrong in the MLC unit, 2 bit codewords information errors take place.Prior art should mistake storing data information 10 directly as wrong restoring data information, thereby 2 bit codewords information errors have also taken place in wrong restoring data information 10.Therefore, follow-up when this wrong restoring data information 10 that 2 bit codewords information errors have taken place is carried out correction process, must adopt complicated error correction algorithm with the above error correction capability of 2 bits, as the complicated error correction algorithm with 4 Bit data error correcting capabilities, to reach the requirement of higher bit error correction capability.
As above shown in the table, in the present invention, when the needs reading of data, level rank by at that time obtains pairing storing data information, and it is carried out inversion code handle, handle as gray encoding, then with the inversion code data message that obtains as restoring data information, carry out correcting data error and handle.If drop to 10 by 01 because level reduces one-level, then will obtain wrong canned data 10 according to level rank 10 wrong in the MLC unit, 2 bit codewords information errors take place.The present invention should mistake storing data information 10 carry out the inversion code processing, handle as gray encoding, obtain wrong inversion code information 11, and with this information 11 as wrong restoring data information, this mistake restoring data information 11 is compared with correct information 10, and 1 bit codewords information errors has only taken place.Therefore, follow-up when this wrong restoring data information 11 that 1 bit codewords information errors has taken place is carried out correction process, only need to adopt simple error correction algorithm with the above error correction capability of 1 bit, as the simple error correction algorithm with 2 Bit data error correcting capabilities, just can reach the requirement of higher bit error correction capability.
This shows that by Gray code transcoding processing mode provided by the invention, the bit number that data message is made a mistake reduces, and reduces the probability that higher bit data message mistake takes place.Therefore, follow-up when above-mentioned restoring data information is carried out correction process, employing has the simple error correction algorithm of low bit error correcting capability, just can realize the error correction capability of upper bit, thereby reach the correcting data error effect of the higher bit that the complicated error correction algorithm of use just can reach in the prior art.For the MLC flash memory, use data access method provided by the invention, can adopt simple error correction algorithm with 2 bit error correcting capabilities, just can realize the error correction capability of 4 bits, thereby reach its correcting data error requirement.
As previously mentioned, described other principal feature of inversion code data message level is: between adjacent inversion code data message rank, corresponding information code word differs 1 bit, be between the zero level and one-level of described inversion code information, between one-level and the secondary, between secondary and three grades, the code word of institute's corresponding informance all only differs 1 bit.
In aforementioned embodiment as shown in Figure 3, adopt Gray code to carry out transcoding processing and inversion code processing, promptly carry out transcoding and handle and handle by gray encoding by-election inversion code by gray code decoder.In fact, except Gray code, can also select for use other to satisfy the transcoding and the inversion code processing mode of described inversion code data message rank characteristics.When needs storage data, processing is converted into the transcoding data storage in the MLC unit through transcoding with raw data; When reducing one-level, the MLC level drops to 10 grades and when making that 2 bit codewords information errors take place canned data by 01 grade, the transcoding data (promptly storing data) that are stored in the MLC unit are handled the inversion code data through inversion code, and with these inversion code data as the restoring data that is used for follow-up correction process, maximum 1 bit codewords information errors only take place in described inversion code data (being restoring data).Specific as follows:
1) transcoding and inversion code mode 1: described transcoding is handled, and is that binary message 00 is converted into 00, and binary message 10 is converted into 01, and binary message 11 is converted into 10, and binary message 01 is converted into 11, and is as shown in the table:
Primary data information (pdi) Storing data information (transcoding data message)
00 00
10 01
11 10
01 11
Restoring data information (inversion code data message) Storing data information (transcoding data message)
2) transcoding and inversion code mode 2: described transcoding is handled, and is that binary message 11 is converted into 00, and binary message 01 is converted into 01, and binary message 00 is converted into 10, and binary message 10 is converted into 11, and is as shown in the table:
Primary data information (pdi) Storing data information (transcoding data message)
11 00
01 01
00 10
10 11
Restoring data information (inversion code data message) Storing data information (transcoding data message)
3) transcoding and inversion code mode 3: described transcoding is handled, and is that binary message 11 is converted into 00, and binary message 10 is converted into 01, and binary message 00 is converted into 10, and binary message 01 is converted into 11, and is as shown in the table:
Primary data information (pdi) Storing data information (transcoding data message)
11 00
10 01
00 10
01 11
Restoring data information (inversion code data message) Storing data information (transcoding data message)
4) transcoding and inversion code mode 4: described transcoding is handled, and is that binary message 01 is converted into 00, and binary message 00 is converted into 01, and binary message 10 is converted into 10, and binary message 11 is converted into 11, and is as shown in the table:
Primary data information (pdi) Storing data information (transcoding data message)
01 00
00 01
10 10
11 11
Restoring data information (inversion code data message) Storing data information (transcoding data message)
5) transcoding and inversion code mode 5: described transcoding is handled, and is that binary message 01 is converted into 00, and binary message 11 is converted into 01, and binary message 10 is converted into 10, and binary message 00 is converted into 11, and is as shown in the table:
Primary data information (pdi) Storing data information (transcoding data message)
01 00
11 01
10 10
00 11
Restoring data information (inversion code data message) Storing data information (transcoding data message)
6) transcoding and inversion code mode 6: described transcoding is handled, and is that binary message 10 is converted into 00, and binary message 00 is converted into 01, and binary message 01 is converted into 10, and binary message 11 is converted into 11, and is as shown in the table:
Primary data information (pdi) Storing data information (transcoding data message)
10 00
00 01
01 10
11 11
Restoring data information (inversion code data message) Storing data information (transcoding data message)
7) transcoding and inversion code mode 7: described transcoding is handled, and is that binary message 10 is converted into 00, and binary message 11 is converted into 01, and binary message 01 is converted into 10, and binary message 00 is converted into 11, and is as shown in the table:
Primary data information (pdi) Storing data information (transcoding data message)
10 00
11 01
01 10
00 11
Restoring data information (inversion code data message) Storing data information (transcoding data message)
Fig. 4 is the data access method embodiment synoptic diagram of MLC flash memory provided by the invention.In the present embodiment, adopt the Gray code code word that data are carried out transcoding processing and inversion code processing.As shown in Figure 4, when needs storages data, earlier the raw data of receiving is carried out gray code decoder and handles and obtain the transcoding data, i.e. gray code decoder data, then with this transcoding data storage in the MLC flash memory; When the needs reading of data, earlier carry out inversion code and handle being stored in transcoding data in the MLC flash memory, promptly gray encoding is handled and is obtained restoring data, again restoring data is carried out correction process, reads the data after the error correction then.Wherein, carrying out described correcting data error when handling, the ECC algorithm that adopts can be the simple ECC algorithm with 2 bit information error correcting capabilities, just can realize the error correcting capability of 4 bits, thereby reach the requirement of 4 required Bit data error correcting capabilities of MLC flash memory.Data access method embodiment step provided by the invention is specific as follows:
Step 410 detects whether receive the order of access data, if receive the order of access data, then execution in step 420; Otherwise, finish to return.
Step 420, judgement are will store data or want reading of data, if will store data, then execution in step 431; If want reading of data, then execution in step 441.
Step 431 when needs storages data, is carried out transcoding to the raw data that receives and is handled, and promptly gray code decoder is handled, and obtains the transcoding data, then with the transcoding data storage in the MLC flash memory.Specifically can be: whenever receive 2 bit raw data information, then this information is carried out the transcoding processing and obtain 2 bit transcoding data messages, store this 2 bit transcoding data message; By repeatedly repeating aforesaid operations, all primary data information (pdi)s of receiving can be carried out finishing storage after transcoding is handled.
Step 432 according to the described raw data of step 431, is calculated and storing initial ECC value.Specifically can be: whenever receive N 2 bit raw data information, then draw 1 initial ECC information, store this initial ECC information according to this information; Repeatedly repeat aforesaid operations, draw a plurality of initial ECC information according to all primary data information (pdi)s of receiving; Draw initial ECC value according to described a plurality of initial ECC information, store this initial ECC value, wherein said N is a positive integer.This step also can be specially: after receiving all raw data, draw initial ECC value according to it, store this initial ECC value.
Step 441 when the needs reading of data, is carried out inversion code to the transcoding data of storage and is handled, and promptly gray encoding is handled, and obtains restoring data.
Step 442 according to the restoring data that step 441 obtains, is calculated and storage ECC value.
Step 443 compares the initial ECC value that calculates in the ECC value that calculates in the step 442 and the step 432, and the restoring data described in the step 441 is carried out correction process.
Step 470 reads the data after the correction process.
In sum, will adopt the transcoding processing and the inversion code disposal route of Gray code to be applied to the processing of MLC data access, the bit number that data message is made a mistake reduces, and reduces the probability that the higher bit information errors occurs.Like this, when MLC flash memory data are carried out correction process, employing has the simple error correction algorithm of low bit error correcting capability, just can realize the error correction capability of upper bit, thereby reaches the correcting data error effect of the higher bit that the complicated error correction algorithm of use just can reach in the prior art.For the MLC flash memory, adopt existing simple error correction algorithm with 2 bit error correcting capabilities, just can realize the error correcting capability of 4 bits, thereby under the situation of not using complicated error correction algorithm, satisfy of the requirement of MLC flash memory for 4 bit error correcting capabilities.
In a word, the above is preferred embodiment of the present invention only, is not to be used to limit protection scope of the present invention.

Claims (14)

1, a kind of data access method based on multi-stag MLC flash memory, it is characterized in that: the implementation procedure of this method is: before data storage, the raw data of receiving is carried out the transcoding processing obtain the transcoding data, and then the storage data; Before data read, the transcoding data of storage are carried out inversion code handle, make the information code word of the inversion code data that obtain between adjacent inversion code data message rank, differ 1 bit, with these inversion code data as restoring data, reading of data then; Described transcoding is handled and handled with described inversion code is reciprocal.
2, data access method as claimed in claim 1, it is characterized in that: the zero level of the levels of information of described inversion code data, one-level, secondary and three grades, corresponding described MLC level storage level is other 00 grade, 01 grade, 10 grades and 11 grades respectively, and the pairing information code word of adjacent inversion code levels of information differs 1 bit.
3, data access method as claimed in claim 2 is characterized in that: it is to carry out decoding processing in the gray code decoder mode for data that described transcoding is handled, and it is to carry out encoding process in the gray encoding mode for data that described inversion code is handled.
4, data access method as claimed in claim 2 is characterized in that: described transcoding is handled, and is that binary message 00 is converted into 00, and binary message 10 is converted into 01, and binary message 11 is converted into 10, and binary message 01 is converted into 11.
5, data access method as claimed in claim 2 is characterized in that: described transcoding is handled, and is that binary message 11 is converted into 00, and binary message 01 is converted into 01, and binary message 00 is converted into 10, and binary message 10 is converted into 11.
6, data access method as claimed in claim 2 is characterized in that: described transcoding is handled, and is that binary message 11 is converted into 00, and binary message 10 is converted into 01, and binary message 00 is converted into 10, and binary message 01 is converted into 11.
7, data access method as claimed in claim 2 is characterized in that: described transcoding is handled, and is that binary message 01 is converted into 00, and binary message 00 is converted into 01, and binary message 10 is converted into 10, and binary message 11 is converted into 11.
8, data access method as claimed in claim 2 is characterized in that: described transcoding is handled, and is that binary message 01 is converted into 00, and binary message 11 is converted into 01, and binary message 10 is converted into 10, and binary message 00 is converted into 11.
9, data access method as claimed in claim 2 is characterized in that: described transcoding is handled, and is that binary message 10 is converted into 00, and binary message 00 is converted into 01, and binary message 01 is converted into 10, and binary message 11 is converted into 11.
10, data access method as claimed in claim 2 is characterized in that: described transcoding is handled, and is that binary message 10 is converted into 00, and binary message 11 is converted into 01, and binary message 01 is converted into 10, and binary message 00 is converted into 11.
11, as claim 1,2,3,4,5,6,7,8,9 or 10 described data access methods, it is characterized in that: describedly the raw data of receiving is carried out transcoding handle and to obtain the transcoding data, and then data storing method is: whenever receive 2 bit raw data information, then this information is carried out the transcoding processing and obtain 2 bit transcoding data messages, store this 2 bit transcoding data message; Repeatedly repeat aforesaid operations, all primary data information (pdi)s of receiving are carried out finishing storage after transcoding is handled.
12, as claim 1,2,3,4,5,6,7,8,9 or 10 described data access methods, it is characterized in that: this method further comprises: calculate initial error correction ECC value and this initial ECC value of storage according to described raw data;
Before described reading of data, calculate the ECC value according to described restoring data, and compare with initial ECC value, restoring data is carried out correction process.
13, data access method as claimed in claim 12 is characterized in that: the initial error correction ECC of described calculating value is to adopt the error correction algorithm with 2 bit error correcting capabilities to calculate initial ECC value; Described calculating ECC value is to adopt the error correction algorithm with 2 bit error correcting capabilities to calculate the ECC value.
14, data access method as claimed in claim 12, it is characterized in that: described according to described raw data calculate initial error correction ECC value and the storage this initial ECC value, for: whenever receive N 2 bit raw data information, then draw 1 initial ECC information, store this initial ECC information according to this information; Repeatedly repeat aforesaid operations, draw a plurality of initial ECC information according to all primary data information (pdi)s of receiving; Draw initial ECC value according to described a plurality of initial ECC information, store this initial ECC value;
Described N is a positive integer.
CNB2006100836574A 2006-06-02 2006-06-02 Flash storage data access method Expired - Fee Related CN100508073C (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2006100836574A CN100508073C (en) 2006-06-02 2006-06-02 Flash storage data access method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006100836574A CN100508073C (en) 2006-06-02 2006-06-02 Flash storage data access method

Publications (2)

Publication Number Publication Date
CN1851827A CN1851827A (en) 2006-10-25
CN100508073C true CN100508073C (en) 2009-07-01

Family

ID=37133304

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006100836574A Expired - Fee Related CN100508073C (en) 2006-06-02 2006-06-02 Flash storage data access method

Country Status (1)

Country Link
CN (1) CN100508073C (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102708837B (en) * 2009-09-29 2014-07-09 盛群半导体股份有限公司 Brightness compensation device and brightness compensation method
CN103917964A (en) * 2011-11-02 2014-07-09 国立大学法人东京大学 Memory controller and data storage device
US20140359202A1 (en) * 2013-05-31 2014-12-04 Western Digital Technologies, Inc. Reading voltage calculation in solid-state storage devices
CN108647162B (en) * 2018-04-20 2020-05-19 华中科技大学 Low power consumption method based on program memory address bus system

Also Published As

Publication number Publication date
CN1851827A (en) 2006-10-25

Similar Documents

Publication Publication Date Title
US6732322B1 (en) Encoding method and memory device
US9910772B2 (en) Flash memory apparatus and storage management method for flash memory
KR101981355B1 (en) Soft information generation for memory systems
US9015554B2 (en) Management of non-valid decision patterns of a soft read retry operation
CN102741819A (en) Method, device and computer program product for decoding a codeword
US20090132895A1 (en) Error correcting codes for rank modulation
CN102623067A (en) Soft decoding systems and methods for flash based memory systems
KR20090086523A (en) Nonvolatile memory with error correction based on the likehood the error may occur
US8719670B1 (en) Coding architecture for multi-level NAND flash memory with stuck cells
CN103839594A (en) Solid-state storage device and combining encoding and decoding method thereof
CN102138282A (en) Reduced complexity LDPC decoder
CN100508073C (en) Flash storage data access method
CN111061592B (en) Universal Nand Flash bit reversal error correction method
TW201322646A (en) Error-correction decoding with reduced memory and power requirements
CN101980339A (en) Error correction encoding method for dynamic random access memory (DRAM) buffer
CN111710358A (en) Flash memory device, flash memory controller and flash memory storage management method
US9390002B1 (en) Efficient bin labeling schemes for tracking cells in solid state storage devices
EP4057515A1 (en) Devices and methods for encoding and decoding
US7243277B2 (en) Method of combining multilevel memory cells for an error correction scheme
CN109785895B (en) ECC device and method for correcting multi-bit errors in NAND Flash
CN106528437A (en) Data storage system and related method thereof
CN101228698B (en) 4-level logic decoder and method for decoding 4-level input data signal
CN210110352U (en) ECC device for correcting multi-bit errors in NAND Flash
US11916569B2 (en) Flash memory apparatus and storage management method for flash memory
Yamawaki et al. Construction of parallel RIO codes using coset coding with Hamming codes

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090701

Termination date: 20120602