CN102376362B - Method and related controller applied to flash memory - Google Patents
Method and related controller applied to flash memory Download PDFInfo
- Publication number
- CN102376362B CN102376362B CN201010267969.7A CN201010267969A CN102376362B CN 102376362 B CN102376362 B CN 102376362B CN 201010267969 A CN201010267969 A CN 201010267969A CN 102376362 B CN102376362 B CN 102376362B
- Authority
- CN
- China
- Prior art keywords
- data
- block
- counter
- flash memory
- those
- 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
Links
Landscapes
- Read Only Memory (AREA)
Abstract
The present invention relates to a kind of method and CCU for applying to flash memory.Multiple data cells are provided with flash memory;When reading the flash memory, the number of times that can be read according to each data cell decides whether the data in refresh data unit.
Description
Technical field
The present invention is related to a kind of method and CCU for applying to flash memory, can be according to especially with regard to one kind
It is read the appropriate refresh data of number of times to reduce the method and relevant control of reading interference according to each memory cell in flash memory
Device.
Background technology
Flash memory has turned into one of most important non-volatile memory of modern information society.
The content of the invention
Flash memory is to store electric charge with floating gate (floating gate) with record data.With flash
The product of device increases into degree, and towards advanced process development, the float gate of flash memory is less and less, and it retains the ability of electric charge
Also it is affected.When reading the data recorded in float gate with electric charge each time, float gate can all be lost in the electricity of part
Lotus.Therefore, as flash memory is read number of times increase, the reliability of its data record also declines therewith with correctness;This
Plant influences the phenomenon of data storage to can be considered a kind of reading interference because reading times are accumulated.Although can be applied in digital independent
Error correcting code detects/repaired the data of error, but the ability of error correcting code repair data mistake is fairly limited.Consider number
According to the cost and calculation complexity of reparation, general error correcting code can only repair 1 to 2 bits in the data of a bit group
Mistake;If having more than the mistake of 2 bits in a bit group, error correcting code just can not return the data reparation of mistake original correct
Data.When the number of times that flash memory is read is continued to build up, the degree of error in data also can be continuous worsening, at last more than mistake
The degree that more code can be repaired by mistake.And to be reading interference to be directed to propose a solution to the present invention, with reduction/reduction/
Overcome the reading interference of modern flash memories.
It is an object of the invention to provide a kind of method for being applied to a flash memory;Flash memory is provided with multiple data
Unit (such as paging, page), and the inventive method is included:Number of times that these data cells are read is counted to produce multiple countings
Value, and the number of times being read according to these data cells, decide whether the data refreshed in (refresh) these data cells.
In one embodiment, the present invention can configure multiple counters to record those count values for flash memory, each
Data cell corresponds to one of these counters.When each data cell is read out, so that it may corresponding in each data cell
A preset increments are tired out in counter and increased in the count value of the counter.According to the count value in each counter, so that it may count
The number of times that these data cells are read.
Because the digital independent of flash memory is carried out in units of paging, but data erase with write-in be then with
Block (block) is unit to carry out have multiple pagings in each block.For example, can be provided with M area in a flash memory
There is N number of paging (i.e. N number of data cell) in block, each block, and the present invention can be (Y is more than or equal to 1) per Y data cell
A counter is configured, this Y data cell is corresponded to same counter.Therefore, N number of data cell in each block
It can correspond to Z counter, Z=N/Y, and Z can be more than or equal to 1.
In the aforementioned embodiment, because one counter of Y data units shared, when reading this Y data cell
One of them when, other corresponding (Y-1) individual data cells of same counter can be read in the lump.In this way, same counter correspondence
The number of times that is read of Y data cell will be consistent, and the count value of the counter also can just react this Y data sheet really
The number of times that member is read.
To overcome the influence of reading interference, when the count value of a certain counter is more than a critical value, the present invention will be brushed
Each corresponding data cell of the new counter, is for example that the data cell (example being not used by is found out in flash memory
It is the preliminary data unit that has been erased as said) as substitution data cell, by the corresponding each data cell of the counter
Data are respectively written into substitution data cell.That is, the present invention be read out by counter the record of number of times with
Monitoring;Accumulated in the number of times that each data cell is read to before will influence data safety, the present invention will be by data with weight
The mode that newly writes is refreshed.Enough electric charges can be injected into float gate again due to re-writing, therefore can safeguarded
Data, keep the correctness and reliability of data, enable data to be further continued for bearing follow-up reading, overcome reading interference.
Using replacing data cell to refresh after the corresponding respectively data cell of a counter, respectively replace the counter corresponding to data cell
Count value can be set as an initial value.
As described previously, when realizing the present invention, N number of data cell (paging) in a block can distribute correspondence extremely
Z counter, and Z can be more than 1.Erase and write, this hair because flash memory can carry out data in units of block
It is bright to carry out Refresh Data with units of block.For Z counter of a certain block, if having a certain in this Z counter
The count value of individual counter has been above all N number of data cells in critical value, just refreshable block of the invention, for example
It is that block that another is not used by is found out in flash memory as substitution block, by the number in this N number of data cell
According to N number of corresponding data unit of the write-in into substitution block.Refresh after the block, the meter of the corresponding Z counter of substitution block
Numerical value can be set as initial value together.
In one embodiment, when configuring counter for each data cell, lie in a volatile storage (as it is static and/
Or dynamic random access memory) middle each counter of configuration.For example, if there is X bits group (byte) can in volatile storage
To configure counter, each counter is using 2 bit groups (recordable 0 to 65535 count values), then X bits group can match somebody with somebody
Put out (X/2) individual counter.Because M block of flash memory corresponds to Z counter respectively, altogether using M*Z counting
Device, therefore (M*Z)=X/2, i.e. Z=X/ (2*M).That is, according to the position that can be used for configuration counter in volatile storage
Tuple total number X, and the block sum M in flash memory, so that it may calculate the counter number that each block can be corresponded to
Z;Jointly, corresponding to each counter data cell (paging) total number Y can be calculated as Y=N/Z, and wherein N is in a block
Data cell sum.
When flash memory to be stopped using, the count value of each counter can be written back in flash memory, will
These count values are remained in non-volatile mode.When to begin to use flash memory once again, so that it may by flash memory
The count value recorded in reservoir is loaded into each counter configured in volatile storage, to continue accumulative flash
Device each data cell is read number of times.
It is a further object of the present invention to provide a kind of controller for being applied to a flash memory, include an access mould
Block, a counting module and a judge module, to overcome the reading interference of flash memory using the technology of the present invention.Flash
There are multiple data cells in device;Access module couples flash memory to access flash memory.Counting module counts flash memory
Number of times that the data cell of those in reservoir (paging) is read simultaneously produces multiple count values, and judge module is then according to those count values
The data optionally refreshed in those data cells.
In one embodiment, counting module couples multiple counters, records those count values;Each data cell corresponds to it
In a counter, the number of times that each count value response data unit is read.When a certain data cell is read out, count module
Block, which can tire out a preset increments in the corresponding counter of the data cell, to be increased in the count value of the counter, with according to counting
The number of times that count corresponding data unit in device is read.For example, there are M block, each block in flash memory
In have N number of data cell (paging), per Y, (Y is more than or equal to 1) data cells can correspond to same counter jointly, make
Z counter of each block correspondence.
Access module is also coupled to a buffer storage, and the memory capacity of buffer storage is associated with corresponding to same counter
Y data cell.When access module reads a certain data cell, access module is read corresponding to data cell for this
Counter read other (Y-1) individual data cells corresponding with same counter in the lump, by the corresponding Y numbers of the counter
Read in together to buffer storage according to the data of unit.Being read for the corresponding Y data cell of same counter can so be made
Number of times is identical, and the data in buffer storage can also be used as cache.
When the count value of a certain counter is more than a critical value, judge module makes access module refresh counter correspondence
Y data cell.Judge module can be respectively that each new data element to be brushed is found out one and is not used by memory cache
Data cell is so that as a substitution data cell, access module then writes the data of the corresponding each data cell of the counter respectively
Enter to each corresponding substitution data cell.
For example, when the count value for having some counter in the corresponding Z counter of a certain block is more than critical value,
The counter and all data cells (all data cells namely in the block) corresponding to other (Z-1) individual counters
It will all be refreshed;Judge module can for this new block to be brushed find out a block being not used by using as substitution block, and
The corresponding data list that access module can re-write the data of each data cell in new block to be brushed into substitution block
Member.After refreshing, those are replaced the count value of the corresponding Z counter of data cell to be reset to an initial value by counting module.
Cross as outlined above, each counter can be configured in a volatile storage.When controller will be stopped using
During flash memory, the count value of each counter can be written back in flash memory by access module.Etc. restarting to use
During flash memory, the count value recorded in flash memory can be loaded into volatile storage and be configured by access module
Counter.
For the above and other objects, features and advantages of the present invention can be become apparent, preferred embodiment cited below particularly,
And coordinate accompanying drawing, it is described in detail below.
Brief description of the drawings
It is the flow that Refresh Data is carried out according to one embodiment of the invention shown in Fig. 1.
It is the flow according to one embodiment of the invention to be refreshed using the monitoring trigger data of reading times shown in Fig. 2.
It is the electronic system according to one embodiment of the invention shown in Fig. 3.
Main element symbol description
10 controllers
12 access modules
14 counting modules
16 judge modules
18 volatile storages
20 flash memories
22 buffer storage
300 electronic systems
100th, 200 flow
102-106,202-216 step
B () block
P () data cell
C () counter
Embodiment
As described previously, situation (time that such as each data cell is read that the present invention is used for flash memory
Number) data in flash memory are suitably safeguarded with Refresh Data, it is to avoid the negative effect of reading interference.Flash memory
In N number of data cell (such as paging) can be set in each block provided with M block, the multiple bits of each data cell storage
Data.In flash memory, erasing with write-in for data is carried out in units of block.That is, flash
Device can not only erase some of a certain block data cell (such as paging) without other data cells in the block of erasing;Together
All data cells of one block can be erased in the lump, and data could carry out data write-in after erasing.Because Refresh Data is related to
Data re-write, therefore the present invention can carry out Refresh Data with units of block.
Fig. 1 is refer to, it is illustrated that carries out Refresh Data according to one embodiment of the invention in flash memory
Flow 100.The key step of flow 100 can be described as follows:
Step 102:To refresh a certain block B (i), flow 100 is proceeded by.
Step 104:Find out another block B (j) being not used by flash memory, and by block B (i) data
Write-in is replicated to block B (j).Some blocks can be retained in flash memory as standby block, these standby blocks are not
It can be calculated in the memory space that flash memory can be provided.This step seeks to find out standby block B (j) work
For block B (i) substitution block, to be that the data in block B (i) carry out Refresh Data.
In one embodiment, step 104 can carry out as follows:A spare blocks B (j) being not used by first is found out, then will
Block B (j) is erased, and so as to which the data in block B (i) are write into block B (j), and the block B (i) of script can be worked as
Work is the spare blocks being not used by.If flow 100 will once again carry out and refresh another block B (k), the last time is classified as
Untapped spare blocks B (i) may be chosen as this secondary spare blocks used, therefore in the step 104 for carrying out another wheel
When, spare blocks B (i) data are then erased, and block B (k) data are write to block B (i), and block B (k) then by
It is classified as the spare blocks being not used by.
However, the present invention is in another embodiment, step 104 is:Find out the spare blocks B for being not used by and being erased
(j), block B (i) data write-in is copied in block B (j), data are carried out in the block B (i) of script and are erased, are made
Block B (i) becomes the spare blocks for being not used by and being erased.Will be once again to refresh block B (k) when flow 100
When carrying out step 104, block B (k) data can be write direct into block B (i), and block B (k) can be erased, and be turned into
The spare blocks for being not used by and being erased.
A kind of either that embodiment, the basic object of step 104 of the invention is all to write the data in block B (i)
Enter/be copied in a substitution block B (j) being erased.
Step 104 is followed by step 106:Block B (i) data have been copied in block B (j), and block B
(j) it just may be substituted for the block B (i) of script.When applying flash memory in an electronic system, the main control end of electronic system
(host) addressing flash memory can be carried out according to logical address, by the memory space addressing of flash memory for it is different logically
Location;Logical address can be corresponded to physical address according to an address translation table (lookup table), and flash memory is then
Data access is carried out according to physical address.For example, logical address can be divided soon for unit according to sector (sector)
The memory space of flash memory, each sector stores the data of multiple bit/bit groups;And address translation table is then by each sector point
Each data cell (paging) of each physical blocks is not corresponded into flash memory.In step 106, seek to change this address
The table of comparisons, by block B (i), corresponding logical address Add (i) is transferred to block B (j) originally, makes block B (j) correspondence blocks B
(i) the logical address Add (i) of script, and block B (i) itself is then repositioned to a standby block.
After the completion of flow 100, for main control end, logical address Add (i) data do not change;But with regard to flash memory
For reservoir, logical address Add (i) data are flushed to block B (j) from original block B (i).In flow 100
Before progress, the electric charge in block B (i) each float gate can gradually be lost in because of reading, jeopardize in logical address Add (i)
Data safety;But after flow 100 is carried out, enough electric charges can be injected into block B (j) corresponding float gate with again
Logical address Add (i) data are set up, logical address Add (i) data is possessed sufficient enough and to spare and continues in response to follow-up
Read.
It is the situation (number of times that such as each data cell is read) that is used of monitoring flash memory with suitably with stream
The Refresh Data of journey 100 safeguards the data in flash memory, and the present invention can be every Y data cell in flash memory
(Y is more than or equal to 1) one counter of configuration, makes this Y data cell correspond to same counter.Therefore, each block
In N number of data cell can correspond to Z counter, Z=N/Y, and Z can be more than or equal to 1.Fig. 2 is refer to, it is illustrated
Flow 200 to be the present invention be read number of times according to flash memory carries out Refresh Data to safeguard that a kind of of data implements
Example.The key step of flow 200 can be described as follows:
Step 202:Start digital independent.Main control end sends instruction to read some (or some) in flash memory fans
Area.According to foregoing address translation table, the corresponding entity paging in (a little) sector just can be read in flash memory.
Step 204:It is pre- by one for the corresponding counter of each paging when flash memory reads the paging of each entity
If increment adds up into the count value of each correspondence counter.For example, if there is one counter C (k) of Y data units shared,
When one of them (or several) of this Y data cell are read out, so that it may tire out in counter C (k) and increase preset increments, represent
This Y data cell is read number of times increase.
Step 206:Judge whether the count value of counter has been above a critical value.If so, then carry out to step 210 with
Carry out Refresh Data.If it is not, then may proceed to step 208.As it was previously stated, a block can correspond to Z counter, and in this hair
In a bright embodiment, if the count value for having any one counter in the corresponding Z counter of a certain block B (i) is alreadyd exceed
Critical value, so that it may carry out to step 210 refreshing block B (i) data.
Step 208:Terminate digital independent., can be by step 202 again when reading flash memory once again Deng next main control end
Start flow 200.
Step 210:Refresh Data can be carried out according to flow 100.For example, will be to block B if having determined that in step 206
(i) Refresh Data is carried out, so that it may by the data duplication of each data cell in block B (i) to another standby substitution block B (j),
And the correspondence modified address table of comparisons, block B (i) logical address Add (i) is changed into correspondence to block B (j), that is, by block B
(i) logical address of each data cell changes each corresponding data unit pointed in block B (j) in, is taken block B (j)
For block B (i).
Step 212:In step 210 by after original data duplication/write-in in block B (i) to block B (j), just may be used
The corresponding Z counter of substitution block B (j) is uniformly reset to initial value, the data for representing logical address Add (i) again can be again
Degree bears follow-up reading, reaches that the present invention overcomes the purpose of reading interference.Flash memory is read once again Deng next main control end
When, flow 200 can be restarted by step 202 again.
Step 214:For flash memory, data write-in is also equivalent to Refresh Data.When main control end writes data
When entering to a certain sector, step 210 is equally may proceed to, the corresponding block in the sector is refreshed, and resets correspondence counter
Count value.For example, just can be in step 210 by block B (i) number if the data of the sector are originally stored in block B (i)
According to the block B (j) of write-in to substitution, and its counting of the Z counter reset corresponding to block B (j) in the step 212
Value.
Step 216:Carry out step 202 digital independent when, can for read data carry out error correcting code (ECC,
Error Correction Code) inspection.If the data that error correcting code reaction is read are wrong but can be repaired, so that it may
Calculate correct data according to error correcting code, and correct data be written back to flash memory again, it is equivalent on also
It is counter reset of the Refresh Data with step 212 for carrying out step 210.
It is emphasized that the ability of error correcting code reparation mistake is limited;If not using the technology of the present invention, quick flashing
The data that memory is accumulated by lasting reading are lost in the capabilities for exceeding error correcting code at last with mistake, lead to not repair
Multiple serious error in data.In comparison, the technology of the present invention can complement each other with error correcting code;It is read in same block
Number of times constantly accumulation and enable before error in data degree exceedes the degree repaired of error correcting code, the present invention will carry out data
Refresh, data are re-established with sufficient electric charge, interrupt the accumulation of error in data, error in data degree is limited in mistake
In the range of more code can be repaired.The statistical property that the present invention can accumulate according to error in data carrys out facing in setting procedure 212
Dividing value (with the initial value in step 206).For example, if a certain flash memory retains the ability of electric charge in its float gate
Preferably, the be lost in electric charge of reading is less every time, then the difference between critical value and initial value can be increased, and represent the flash memory
Can the more multiple reading times accumulation of tolerance.Relatively, if the degree of a certain flash memory loss data is more serious, it faces
Difference can then reduce between dividing value and initial value, enable Refresh Data relatively frequently by (step 212) trigger carry out, with overcome compared with
For serious reading interference.
The present invention can be applied to Fig. 3 electronic system embodiment in Fig. 1 and Fig. 2 technology;Set in this electronic system 300
There are a controller 10, a flash memory 20, a volatile storage 18 and a buffer storage 22.Flash memory 20 can be with
It is non-and framework (NAND) multi-level unit type (MLC, a Multi-Level Cell) flash memory or other kinds of fast
Flash memory, to provide non-volatile memory space for electronic system 300.Provided with M block B in flash memory 20
(0) to B (M-1), each block B (m) (m=1 to (M-1)) is provided with N number of data cell (paging) P (m*N) to P ((m+1) * N-
1);For example, there is N number of data cell P (0) in block B (0) to P (N-1), there are N number of data cell P ((M- in block B (M-1)
1) * N) to P (M*N-1).
Volatile storage 18 can be dynamic or static RAM, to provide volatilization for electronic system 300
Property memory space, be for example for controller 10 provide its running needed for temporary memory space.Buffer storage 22 is also
Volatile storage.For example, buffer storage 22 can be realized in same volatile memory device with volatile storage 18;
Or, buffer storage 22 can independently be realized with buffer (such as first in first out buffer).Controller 10 can access flash
Device 20, and buffer storage 22 provides buffer-stored space to the access for flash memory.For example, controller is worked as
During 10 reading flash memory 20, the data read by flash memory 20 can be temporarily stored into buffer storage 22;Work as controller
10 will write before flash memory 20, and to write to the data of flash memory 20 also can first be temporarily stored into buffer storage 22.
To realize the present invention, controller 10 is provided with an access module 12, a counting module 14 and a judge module 16.Access
Module 12 couples flash memory 20 to access flash memory 20 via appropriate interface circuit (being not illustrated in the 3rd figure), also coupling
Volatile storage 18 is connect with buffer storage 22 to enter line access.Counting module 14 counts each data cell P (0) to P (M*N-
1) number of times being read, the number of times that judge module 16 is read according to each data cell decides whether to refresh in each data cell
Data.
As shown in figure 3, counting module 14 can access volatile storage 18 via access module 12, with volatile storage
Multiple counter C (0) are configured in device 18 to C (M*Z-1).Counting module 14 couples these counters, each counter record
One of one count value, and those corresponding counters of each data cell.When access module 12 reads each data cell,
Counting module 14, which tires out a preset increments in the corresponding counter of each data cell, to be increased in count value, with according to each counter
In the number of times that is read of each data cell of count.In the fig. 3 embodiment, per Y data cell, (Y is more than or waited
In 1) meeting by the same counter of correspondence;For example, data cell P (0) to P (Y-1) correspondence counter C (0), data cell P (m*
N) to P (m*N+Y-1) correspondence counter C (m*Z), by that analogy.
When configuring counter, if thering is X bits group (byte) to can be used to configure counter in volatile storage 18, each
Counter is using 2 bit groups (recordable 0 to 65535 count values), then X bits group can configure out (X/2) individual counter.By
Z counter is corresponded to respectively in M block of flash memory 20, altogether using M*Z counter, therefore (M*Z)=X/2, i.e. Z
=X/ (2*M).That is, according to the bit group total number X that can be used for configuration counter in volatile storage 18, and quick flashing
Block sum M in memory 20, so that it may calculate the counter number Z that each block can be corresponded to;Jointly, each counter
Corresponding data cell (paging) total number Y can be calculated as Y=N/Z, and wherein N is the data cell sum in a block.
Due to same counter C (the k) (k=1 to (M*Z- of every Y data cell P (k*Y) to P ((k+1) * Y-1) correspondence
1)), the memory capacity of buffer storage 22 can be associated with Y data cell corresponding to a counter.When access module 12 exists
When reading a certain data cell in data cell P (k*Y) to P ((k+1) * Y-1), access module 12 can be directed to these data cells
Corresponding counter C (k) reads other (Y-1) individual data cells corresponding with same counter C (k) in the lump, will count
The data of the corresponding Y data cell of device C (k) are read in buffer storage 22, and in counter C (k) count value together
It is tired to increase an increment size.Can so make the corresponding Y data cell of same counter to be read number of times identical, and buffer storage
Data in 22 can also be used as cache.
As the flow 200 in Fig. 2, when the count value for having a counter C (k) is more than critical value, judge module 16 is just
The corresponding each data cell P (k*Y) of the refresh counter C (k) of access module 12 can be made to P ((k+1) * Y-1).For example, judge
Module 16 can find out the other Y preliminary data unit P (k ' * Y) to P being not used by data cell P (0) to P (M*N-1)
((k '+1) * Y-1), is used as new data element P (k*Y) to be brushed to P ((k+1) * Y-1) substitution data cell;And access module
12 can accordingly replicate data cell P (k*Y) to P ((k+1) * Y-1) data write-in to each substitution data cell P (k ' *
Y) to P ((k '+1) * Y-1), counting module 14 is then by data cell P (k ' * Y) to P ((k '+1) * Y-1) corresponding counter C
(k ') is reset to initial value.In actual operation, access module 12 can be directed to data cell P (k*Y) to P ((k+1) * Y-
1) the block B (i) belonging to carries out Refresh Data;That is, judge module 16 can be found out in each block B (0) into B (M-1)
One spare blocks B (j) for being not used by is to replace new block B (i) to be brushed, and access module 12 will be by whole block B (i)
In all N number of data cells replicate N number of corresponding data unit of the write-in into substitution block B (j) respectively, and counting module 14
It is then initial value by Z counter reset corresponding to block B (j).
When controller 10 will stop using flash memory 20, access module 12 can be by each counter C (0) to C (M*Z-
1) count value is written back in flash memory 20.When controller 10 will begin to use flash memory 20 once again, mould is accessed
The count value recorded in flash memory 20 just can be loaded into the counter C (0) configured in volatile storage 18 by block 12
To C (M*Z-1), the situation being read with lasting monitoring flash memory 20.For example, when electronic system 300 will shut down, just
Count value in volatile storage 18 can be write to flash memory 20, in terms of retaining these using non-volatile mode
Numerical value;When being started shooting once again etc. electronic system 300, it just can utilize based on these count values, continue the accumulative quilt of flash memory 20
The number of times of reading.Or, flash memory 20 can be a pluggable storage device;When by flash memory 20 by electricity
When subsystem 300 is removed, just first count value can be write to flash memory 20;Electronics is inserted into once again Deng flash memory 20
During system 300, so that it may in flash memory 20 by the count value originally retained be loaded into volatile storage 18 to accrued
In number device.
In controller 10, the function of counting module 14 and judge module 16 can be by the microprocessor core in controller 10
(being not illustrated in Fig. 3) performs software or Solid Procedure code and realized.Buffer storage 22 and/or volatile storage 18 can and be controlled
Device 10 is integrated in same control chip together.Or, controller 10, buffer storage 22 and/or volatile storage 18 can
To be different chips.
In summary, the situation (number of times being read) that the present invention can be used according to flash memory suitably refreshes soon
Data in flash memory, with safeguard data it is complete with it is correct.Some video signal electronic systems (being for example DPF)
In, the video signal data in flash memory can be continually read because of frame updating, make such a electronic system to flash
The reading interference of device is very sensitive.If using the present invention in such a electronic system, it is possible to overcome the reading of flash memory
Interference, the error in data being prevented effectively from caused by reading times accumulation and loss.
Although the present invention is disclosed as above with preferred embodiment, so it is not limited to the present invention, any to be familiar with this skill
Art field person, without departing from the spirit and scope of the present invention, when can make a little change and retouching, therefore the protection of the present invention
Scope, which is worked as, to be defined by tbe claims.
Claims (14)
1. a kind of method for being applied to a flash memory, the flash memory is provided with multiple data cells, this method is included:
Number of times that those data cells are read is counted to produce multiple count values;And
According to those count values, decide whether the data refreshed in those data cells,
Wherein this method is also included:
Configure multiple counters, it records those count values, and make those counters of each data cell correspondence wherein it
One;
When respectively the data cell is read out, a preset increments are tired out in the corresponding counter of the respectively data cell and increase to this
In count value;And
The number of times being read according to these counts those data cells in those counters,
Wherein, the flash memory, which is included in multiple blocks, each block, multiple data cells, and this method is also included:
When configure those counters when, be the multiple corresponding counters of each block arrangement, make in the respectively block it is each should
Data cell corresponds to one of those counters;And
When the count value of one of those corresponding counters of each block is more than a critical value, refresh the block,
When configuring those counters, multiple data cells are made to correspond to same counter,
Wherein, methods described is also included:
When to read one of those data cells, it is read the corresponding counter of data cell for this and reads in the lump
Take other data cells corresponding with the same counter.
2. the method as described in claim 1, it is characterised in that also include:
When the count value of one of those counters is more than a critical value, refresh the corresponding respectively data of the counter
Unit.
3. method as claimed in claim 2, it is characterised in that when to refresh the corresponding respectively data cell of the counter,
It is that respectively the new data element to be brushed finds out a corresponding data unit being not used by be used as a substitution in the flash memory
Data cell, and the data of the corresponding respectively data cell of the counter are respectively written into each substitution data cell.
4. method as claimed in claim 2, it is characterised in that also include:
When refreshing the corresponding respectively data cell of the counter, by the count value of the respectively corresponding counter of the data cell
It is set to an initial value.
5. the method as described in claim 1, it is characterised in that when refreshing the block, one is found out in the flash memory
The corresponding block being not used by is as a substitution block, and by respectively the data of the data cell are respectively written into this and taken in the block
For respectively data cell in block.
6. method as claimed in claim 5, it is characterised in that also include:
When refreshing the block, the count value of those corresponding counters of block is replaced to be set to an initial value this.
7. the method as described in claim 1, it is characterised in that when configuring those counters, in a volatile storage
Configure those counters;
Wherein, when to stop using the flash memory, the count value of those counters is written back to the flash memory
In.
8. method as claimed in claim 7, it is characterised in that also include:
When to begin to use the flash memory, the count value recorded in the flash memory is loaded into the volatility and deposited
Those counters configured in reservoir.
9. a kind of controller for being applied to a flash memory, the flash memory is provided with multiple data cells to store data,
And the controller includes:
One access module, is coupled to the flash memory, to access the flash memory;
One counting module, counts number of times that those data cells are read to produce multiple count values;And
One judge module, according to those count values optionally to refresh the data in those data cells,
Wherein, the counting module couples multiple counters, records those count values, and those the corresponding countings of each data cell
One of device;Each count value reacts the number of times that these data cells are read,
Wherein, the flash memory, which is included in multiple blocks, each block, multiple data cells, and each block corresponds to
Multiple corresponding counters, make one of those corresponding counters of each data cell in the respectively block, when each
When the count value of one of those corresponding counters of the block is more than a critical value, the access module refreshes the block,
The counting module by multiple data cells correspond to those counters in it is same,
Wherein, the access module also more couples a buffer storage, and the memory capacity of the buffer storage is associated with the same meter
The plurality of data cell corresponding to number device;When the access module reads one of those data cells, the access mould
Block reads other data corresponding with the same counter in the lump for the counter being read corresponding to data cell
Unit, the data of those corresponding data cells of the counter are read in the buffer storage.
10. controller as claimed in claim 9, it is characterised in that when the count value of one of those counters is more than
During one critical value, the judge module makes the access module refresh the corresponding respectively data cell of the counter.
11. controller as claimed in claim 10, it is characterised in that the counter is corresponding respectively should when the access module refreshes
During data cell, the judge module be respectively in the flash memory respectively the new data element to be brushed find out one and be not used by
Data cell as one to replace data cell, and the access module divides the data of the corresponding respectively data cell of the counter
Do not write to the respectively corresponding substitution data cell.
12. controller as claimed in claim 11, it is characterised in that the counter is corresponding respectively should when the access module refreshes
During data cell, the counting module by respectively this replace the count value of the corresponding counter of data cell to be set to an initial value.
13. controller as claimed in claim 9, it is characterised in that when the access module refreshes the block, the judge module
A corresponding block being not used by is found out as replacing block, and the access mould for the new block to be brushed in the flash memory
Block is by respectively the data of the data cell are respectively written into this respectively data cell for replacing in block in the new block to be brushed.
14. controller as claimed in claim 13, it is characterised in that when the access module refreshes the block, the count module
This is replaced the count value of those corresponding counters of block to be set to an initial value by block.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010267969.7A CN102376362B (en) | 2010-08-24 | 2010-08-24 | Method and related controller applied to flash memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010267969.7A CN102376362B (en) | 2010-08-24 | 2010-08-24 | Method and related controller applied to flash memory |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102376362A CN102376362A (en) | 2012-03-14 |
CN102376362B true CN102376362B (en) | 2017-08-11 |
Family
ID=45794834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010267969.7A Expired - Fee Related CN102376362B (en) | 2010-08-24 | 2010-08-24 | Method and related controller applied to flash memory |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102376362B (en) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104750577B (en) * | 2015-04-13 | 2017-09-29 | 中国人民解放军国防科学技术大学 | Any multidigit fault-tolerance approach and device of Large Copacity buffer storage on towards piece |
CN105702293B (en) * | 2016-01-06 | 2019-09-17 | 上海芯泽电子科技有限公司 | A kind of method and device for examining nonvolatile memory cell to be disturbed |
KR102606490B1 (en) * | 2016-06-30 | 2023-11-30 | 삼성전자주식회사 | Storage device including nonvolatile memory device and controller |
KR20180108939A (en) * | 2017-03-23 | 2018-10-05 | 에스케이하이닉스 주식회사 | Data storage device and operating method thereof |
CN109582229A (en) * | 2018-11-16 | 2019-04-05 | 陕西千山航空电子有限责任公司 | A kind of storage of solid state record device data and lookup method |
KR20200079851A (en) * | 2018-12-26 | 2020-07-06 | 에스케이하이닉스 주식회사 | Memory system and operating method thereof |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101188141A (en) * | 2006-11-22 | 2008-05-28 | 奇梦达北美公司 | Resistive memory including refresh operation |
CN101266834A (en) * | 2007-03-15 | 2008-09-17 | 财团法人工业技术研究院 | Writing drive method and system for phase change memory |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008181380A (en) * | 2007-01-25 | 2008-08-07 | Toshiba Corp | Memory system, and method for controlling the same |
-
2010
- 2010-08-24 CN CN201010267969.7A patent/CN102376362B/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101188141A (en) * | 2006-11-22 | 2008-05-28 | 奇梦达北美公司 | Resistive memory including refresh operation |
CN101266834A (en) * | 2007-03-15 | 2008-09-17 | 财团法人工业技术研究院 | Writing drive method and system for phase change memory |
Also Published As
Publication number | Publication date |
---|---|
CN102376362A (en) | 2012-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10600491B2 (en) | Method for managing data blocks and method of data management for data storage device | |
CN102376362B (en) | Method and related controller applied to flash memory | |
US8316257B2 (en) | NAND power fail recovery | |
CN108733510A (en) | Data storage device and mapping table reconstruction method | |
EP2077559B1 (en) | Refresh method of a flash memory | |
US10776264B2 (en) | Data storage device with power recovery procedure and method for operating non-volatile memory | |
US10020065B2 (en) | Corruption-preventative programming in solid-state data storage | |
CN101494085B (en) | Prevent nonvolatile memory from method and the controller thereof of interference occurring to read | |
US8533385B2 (en) | Method for preventing read-disturb happened in non-volatile memory and controller thereof | |
US20100199020A1 (en) | Non-volatile memory subsystem and a memory controller therefor | |
US20090172256A1 (en) | Data writing method for flash memory, and flash memory controller and storage device thereof | |
CN102157202B (en) | Method and controller for preventing nonvolatile memory from occurring read interference | |
CN100458718C (en) | Method of correcting error code for multiple sector | |
CN103578565A (en) | Calibration method and device of NAND Flash memory chip | |
TWI479314B (en) | Method of storing system data, and memory controller and memory storage apparatus using the same | |
TW201816787A (en) | Data storage device and data writing method thereof | |
CN101567220B (en) | The bad block identifying method of flash memory, stocking system and controller thereof | |
US20120215962A1 (en) | Partitioning pages of an electronic memory | |
US10446252B2 (en) | Data storage device and method for data error management | |
TW201611018A (en) | Method of performing wear management in non-volatile memory devices | |
TWI490869B (en) | Method and associated controller for flash memory | |
TW201730892A (en) | Method and apparatus for logically removing defective pages in non-volatile memory storage device | |
CN103984506A (en) | Method and system for data writing of flash memory storage equipment | |
US20170010810A1 (en) | Method and Apparatus for Providing Wear Leveling to Non-Volatile Memory with Limited Program Cycles Using Flash Translation Layer | |
CN110069362A (en) | Data memory device and data processing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170811 Termination date: 20190824 |