CN102376362B - Method and related controller applied to flash memory - Google Patents

Method and related controller applied to flash memory Download PDF

Info

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
Application number
CN201010267969.7A
Other languages
Chinese (zh)
Other versions
CN102376362A (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.)
MStar Software R&D Shenzhen Ltd
MStar Semiconductor Inc Taiwan
Original Assignee
MStar Software R&D Shenzhen Ltd
MStar Semiconductor Inc Taiwan
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 MStar Software R&D Shenzhen Ltd, MStar Semiconductor Inc Taiwan filed Critical MStar Software R&D Shenzhen Ltd
Priority to CN201010267969.7A priority Critical patent/CN102376362B/en
Publication of CN102376362A publication Critical patent/CN102376362A/en
Application granted granted Critical
Publication of CN102376362B publication Critical patent/CN102376362B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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

Method and related controller applied to flash memory
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.
CN201010267969.7A 2010-08-24 2010-08-24 Method and related controller applied to flash memory Expired - Fee Related CN102376362B (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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