CN1300803C - Method for driving remapping in flash memory and its flash memory system structure - Google Patents

Method for driving remapping in flash memory and its flash memory system structure Download PDF

Info

Publication number
CN1300803C
CN1300803C CNB011177225A CN01117722A CN1300803C CN 1300803 C CN1300803 C CN 1300803C CN B011177225 A CNB011177225 A CN B011177225A CN 01117722 A CN01117722 A CN 01117722A CN 1300803 C CN1300803 C CN 1300803C
Authority
CN
China
Prior art keywords
unit
state
piece
block
flash memory
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 - Lifetime
Application number
CNB011177225A
Other languages
Chinese (zh)
Other versions
CN1348191A (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN1348191A publication Critical patent/CN1348191A/en
Application granted granted Critical
Publication of CN1300803C publication Critical patent/CN1300803C/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

A method of driving remapping in a flash memory, which is capable of writing the status of a block and a unit by reducing the number of partial write cycles as much as possible, and a flash memory architecture adapted thereto are provided. The remapping driving method includes searching for a predetermined physical unit based on mapping information about a predetermined block, searching the found physical unit for another block, the status of which is free, if the predetermined block exists in a valid state in the physical unit; changing the status of the other block into a status next to the status of the predetermined block, writing new data and additional information such as a logical block number to the other block, and changing the status of the predetermined block into a deleted state. Accordingly, the write status of a block or a unit can be managed for a flash memory having a restriction on the number of partial write cycles.

Description

Drive the method and the flash memory architecture thereof of mapping again in the flash memory
Technical field
The present invention relates to the piece that to be unit write data and from the method for flash memory reading of data to flash memory, relate in particular to a kind of when to part being write flash memory that indegree has restriction writes data and being driven method that logical address to physical address shines upon again and the flash memory architecture that is applicable to the method thereof during from this flash memory reading of data.
Background technology
With the same such as other memory devices such as traditional random-access memory (ram), non-volatile memory device and disks, flash memory can arbitrary access be stored in the data on the ad-hoc location.Main difference is how data are rewritten and wipe.That is, if, then must rewrite or wipe the unit that comprises this piece data being write its piece that is divided into preliminary dimension so that after in by a piece of the flash memory of block access these data are rewritten or wipe.Piece in the flash memory is made of the byte with continuous physical address.This piece is the elementary cell that flash memory is operated.A unit constitutes by a plurality of, and it is the elementary cell that can physically once wipe with overwriting data.
Because the rewriting or the erasing characteristic of flash memory, when erasing times increased, write and the update efficiency of data descended.In addition, when flash memory is rewritten/during erase operation, data may be because fault and destroyed.In order to prevent destruction, adopted piece (sector) mapping techniques more to data.
This mapping techniques again is used to manage the physical block number (being abbreviated as " PBN ") of the data that are written into flash memory and the map information between the logical block number (LBN) (being abbreviated as " LBN "), thereby, when corresponding data is rewritten or wipes, even the PBN of data changes, also can adopt identical LBN that data are carried out access.
According to traditional mapping techniques again, if overwriting data, then at first search for the unit of the PBN that comprises data on the flash memory, to find out the physical block that does not write data on it, then data are write this physical block.Upgrade the map information between LBN and the PBN.Therefore, even when the PBN of data changes, the user also can adopt identical LBN to come the corresponding data of access.In this case, wiping is that status information by the previous physical block of relevant data is represented.
For example, in the time of on data being write the unit that has physical location number (PUN) 1 and PUN 2 on the flash memory, as shown in Figure 1, if the user wishes to rewrite and is written into its LBN and is ' 3 ' piece, then PUN1 changes as illustrated in fig. 2.That is to logical unit number (LUN) mapping table, LBN ' 3 ' is corresponding to LUN ' 2 ' with reference to LBN.Then, with reference to LUN to PUN mapping table, LUN ' 2 ' is corresponding to PUN ' 1 '.Therefore, its PUN is searched for for the unit PUN 1 of " 1 ", to seek empty physical block.As can be seen from Figure 1, finding out physical block #4 (PBN 4) is empty physical block.Data corresponding to LBN ' 3 ' are written into PBN 4, upgrade the map information of the piece allocation table of PUN 1 then.Then, represent to wipe by the status information of PBN among the BAM of relevant PUN 1.But in this case, along with the increase of not using the physical block number in the physical location, the service efficiency of flash memory descends.
In order to address this problem,, as shown in Figure 3, at first, only another unit PUN 2 is arrived in used block transfer among the PUN1 according to traditional mapping techniques again.Then, corresponding PUN is transformed into the PUN of another unit, that is, and from PUN 1 to PUN 2.As a result, even data are sent to another unit, also can adopt identical LUN to come these data of access.
As long as in a unit or flash memory, exist empty piece or dummy cell, this traditional mapping techniques more just not to allow the actual erase operation respectively.But, because making, the increase of the number of the piece of wiping do not use the zone to increase in the flash memory, therefore, may need to reuse the method for the part that has the piece of wiping.
In addition, when in write operation or unit again when the system failure between the operating period such as dump, because this fault may be destroyed user data or be used for mapped data again.Therefore, in order to avoid be subjected to the destruction that this fault causes, traditional method writes corresponding piece or unit with status information for protected data, and suitably revises the status information that writes during operation, thereby carries out recovery operation.
As mentioned above, traditional repeatedly operating part write operation of mapping techniques again is so that storage and management map information and data.Therefore, be difficult to traditional former state of mapping techniques again is applied to such as the such flash memory of NAND type flash memory.This is because under NAND type flash memory situation, write indegree or number of run is limited in 5 times or 3 times with the part in one page.Therefore, the information that writes in a piece or the unit can not repeatedly change.For example, under system failure situation, change number of times, therefore, can not normally carry out recovery operation owing to limited the status information that writes in corresponding blocks or the unit as described above.
In addition, be in the treatment state of (00F) in order to express predetermined block such as idle (FF) → distribute (8F) → just be written into (4F) → write (2F) → just be wiped free of (0F) → wipe, or be in such as idle (FF) → just be replicated (8F) → effectively (4F) → just be transmitted the treatment state of (2F) in order to express scheduled unit, identical physical location is carried out 3 times or 5 write operations at least.In addition, consider that user data or error correcting code (ECC) are written into the path of a unit or piece, be difficult to that traditional mapping again is applied to wherein part and write the flash memory that indegree is limited in 3 times or 5 times.
Summary of the invention
In order to address the above problem, first purpose of the present invention provides a kind of be used for driving method that flash memory shines upon again and the flash memory architecture that adopts this method, adopt this method, can part is write indegree remain minimum in, write state with processing block and unit.
Another purpose of the present invention provides a kind of method of mapping again that drives in the flash memory, and the flash memory architecture of this method of employing, this method adopts cycle count (wrap-count) expression to have the status information relevant with piece and unit that smaller portions are write indegree.
A further object of the present invention provide a kind of NAND of being applicable to type flash memory driving mapping method and adopt the flash memory architecture of this method.
Therefore, to achieve these goals, the invention provides and drive the method for mapping again in a kind of flash memory, described flash memory is divided into a plurality of unit, each unit has one or more, this method comprises the following steps: the map information according to relevant predetermined block, the physical location that search is predetermined; If the described predetermined block in the physical location that is found exists with effective status, then search for described physical location to seek another piece that its state is the free time; The state of described another piece is changed over the state of the state of following described predetermined block; Write described another piece with new data with such as the additional information of logical block number (LBN); With the state of described predetermined block is changed into the deletion state.Wherein, the step of the state of described another piece of change comprises: the state that described another piece is set according to the state of described predetermined block, it is configured to one of 4 possible states, if described predetermined block is in idle condition, then the state of described another piece is arranged to first effective status; If described predetermined block is in first effective status, then the setting state with described another piece is second effective status; If described predetermined block is in second effective status, then the setting state with described another piece is the 3rd effective status; If be in the 3rd effective status with described predetermined block, then the setting state with described another piece is first effective status.
Best, this method also comprises the steps: when described predetermined block does not exist or exists with the deletion state, is idle with the setting state of described predetermined block, and searches for its state and be another idle piece, when described another piece does not exist, described physical location is carried out regeneration (reclaim) operation.
Best, the step of carrying out regenerative operation comprises the following steps: definite source unit and delivery unit with regeneration; The state of described source unit and the delivery unit of waiting to be transmitted and to duplicate is set respectively; Duplicate effect piece and relevant metamessage and header information in the described source unit; When increasing described source unit erasing times (wear intensity), its state has been set to the delivery unit that just is being replicated has been set at effective status; With when erasing times is write described source unit, delete described source unit.
The best following formation of flash memory of the present invention: first piece of allocation units, so that write the information of the logical unit number, state validity and the erasing times that comprise previous piece, second piece that distributes described unit, comprise the state that frame is replicated/transmits and the information of erasing times (wear intensity) so that write, and the information of the state of the piece determined according to cycle count of expression is written on the presumptive area of redundancy array in the piece of the data of writing unit on it.
Description of drawings
By below in conjunction with showing that accompanying drawing is described in detail preferred embodiment, above-mentioned and other purposes of the present invention and characteristics will become apparent, wherein:
Fig. 1 is illustrated in a flash memory and the traditional piece of mapped actuation method again and the example of the relation between the unit;
Flash memory and the tradition piece of mapped actuation method and the example of the relation between the unit again when Fig. 2 represents on wiping it as illustrated in fig. 1 piece of flash memory of written data;
Flash memory and the tradition piece of mapped actuation method and the example of the relation between the unit again when Fig. 3 represents to write as illustrated in fig. 1 unit of flash memory of data on wiping it;
Fig. 4 represents the relation between each piece, is used to explain by writing and rewrite operation that the present invention is used for that the method for mapped actuation again of flash memory carries out;
Fig. 5 represents physical location (PU) form of NAND type flash memory;
Fig. 6 represents the process flow diagram by the processing of the write-in block of the method for the mapped actuation again execution of flash memory of the present invention;
The form of Fig. 7 flash memory erases of the present invention unit;
Fig. 8 represents the relation between each unit, is used to explain by writing and rewrite operation that the present invention is used for that the method for mapped actuation again of flash memory carries out; With
Fig. 9 represents the process flow diagram by regeneration (reclaim) operational processes of the method for the mapped actuation again execution of flash memory of the present invention.
Embodiment
At first, in the mapping method again of flash memory, erase unit usefulness is acted on the elementary cell of wiping.This erase unit can be identical with the physical erase piece of flash memory, and number (PUN) 1 of physical location as Figure 1-3 or PUN 2 perhaps can be made of a plurality of erase blocks.Specify a PUN and logical unit number (LUN) for each erase unit.Specifying PUN according to the physical sequential of erase unit, is the logical order of unit and LUN represents.When initial use flash memory, represent the form of LUN to PUN mapping as shown in Figure 3 providing on the flash memory or on the storer that separates.Whenever the mapping relations of flash memory owing to such as wiping, rewrite and operation such as reproduction when changing, this form all changes.
Erase unit is divided into a plurality of (or sectors), as shown in the PUN 1 and PUN 2 of Fig. 1-3.The piece of these same sizes is elementary cells that flash memory is operated.In addition, erase unit comprises erase unit head (EUH) and piece allocation table (BAM).
About the information of whole flash memory and the corresponding required information of erase unit of management are written among the EUH of erase unit.The indication and the bad block table that can comprise the piece size in the erase unit about the information of whole flash memory.Carry out the Single Component Management information necessary and can comprise LUN and wear intensity (wear level).Erase unit can occupy one or more.
After EUH, write user data and BAM, as shown in the PUN 1 and PUN2 of Fig. 1-3.BAM can be collectively written into one or more, perhaps can be write specific space block by block, as the redundancy array of NAND flash memory.
About the information of piece in the erase unit such as logical block number (LBN) (LBN) and bulk state are written among the BAM.LBN is the block address that the user sees.Therefore, BAM represents is LBN and the mapping between the actual physical location that writes relevant block on it.When the data of write-in block changed, the content of BAM such as LBN to PBN map information and status information also changed.
When the piece number that changes when its state increased, unavailable part increased in the flash memory.Therefore, suitably carry out regenerative operation, be wiped free of the occupied space of piece so that reuse.Traditional method of mapped actuation has again been considered this problem, but how regulation does not carry out regenerative operation to write the limited flash memory of indegree such as its part of NAND type flash memory.
Therefore, the present invention proposes a kind of method that adopts cycle count to represent relevant specific status information.This method can be revised has the specific state that smaller portions are write indegree, and can recover specific data under system failure situation.In addition, owing to can adopt the variation of cycle count to distinguish past data and new data in proper order, therefore, can adopt various restoration methods, as after turn over (roll-back) and before turn over (roll-forward) processing.After turn over and handle to adopt new data to come restore data, and before turn over to handle and adopt past data to come restore data.As mentioned above, the mapped actuation again of flash memory operation is divided into 3 main operations: piece writes, empty block search and fault recovery.
The state of each piece is represented as ' free time ', ' effectively ' or ' deletion ' among the BAM.' effectively ' state for example can be divided into 3 state: s0, s1 and s2.In effective status, has recurrence relation between 3 states.For example, s0<s1, s1<s2, s2<s0.Effective status is by this order, and promptly so-called cycle count changes.That is specific is in idle condition at first, and when the opening entry data, specific state is s0.When record data once more, the order that the state of piece is pressed s1, s2, s0 changes.
Fig. 4 represents to adopt above-mentioned status information data to be write the processing of predetermined block.In the example of Fig. 4, ' free time ', ' s0 ', ' s1 ', ' s2 ' and ' deletion ' are set to ' 1111 ', ' 1110 ', ' 1100 ', ' 1000 ' and ' 0000 '.Therefore, adopt 5 values of round-robin that bulk state is set.In the example of Fig. 4, used the NAND type flash memory that constitutes by physical location (PU) shown in Figure 5.
As shown in Figure 5, the piece among the PU of NAND type flash memory is made of main array and redundancy array.Real data is written in the main array.Be written into redundancy array such as logic sector number lsn, cycle count cnt, the information that is used for the error correcting code ecc_lsn of cnt and lsn and is used for the error correcting code ecc_data of data.In this case, this piece is known as page or leaf.
Shared " piece " also is known as the PU of an obliterated data of energy in the data sheet of NAND type flash memory.This piece can be identical with " unit " that reach described in the present embodiment.But in reality was implemented, the unit can constitute by a plurality of.
At first, adopt map information to determine to belong to the LUN and the PUN of the unit of relevant block.The state of relevant block among the BMA of PUN that inspection is determined.If the state of this piece is ' free time ' (1111), then the state of this piece is represented as ' s0 ' (1110).Then, will write this piece such as the information of data and logic sector number lsn.The piece that is in ' free time ' state also has invalid logic sector number lsn.
If the state of relevant block is ' effectively ', then search for corresponding PU to seek the piece of its state for ' free time ' (1111) according to common mapping techniques.Then, the state of the piece that found is changed into the state of the state of following previous piece.For example, if the state of previous piece is designated as ' s0 ' (1110), then the state of new piece is changed ' s1 ' (1100).Block search mode and tradition be identical in the mapped actuation method again.Then, new data and new logic sector number lsn are write the new piece that its state is set to ' s1 ' (1100).The state of previous piece is changed ' deletion ' (0000).
If the state of relevant block is for ' s1 ' and have the piece that is set at ' free time ' (1111) in corresponding units, the state that then is in the piece of ' free time ' state is set to ' s2 ' (1000).Then, will write the relevant block that its state is set to ' s2 ' such as the information of data and logic sector number lsn.The state of previous piece is changed ' deletion ' (0000).
If the state of relevant block is for ' s2 ' and have the piece that is set at ' free time ' (1111) in corresponding units, the state that then is in the piece of ' free time ' state is set to ' s0 ' (1110).Then, data and logic sector number lsn are write the relevant block that its state is set to ' s0 '.The state of previous piece is changed ' deletion ' (0000).
Below with the state variation of each piece of representing with arrow among best explain Fig. 4.
Write and rewrite if by this way each piece is carried out, then can data be write in the piece (prof) by operating part write operation 3 times.If this piece is in ' deletion ' state, suppose except all being effectively such as the data the status information of data and logic sector number lsn, then can be by twice actual data that write of operating part write operation.If step 301 to 407 in because the system failure appears in power fail or other reasons, then carry out recovery operation, therebetween, the state that writes the piece of data on it is set to ' deletion '.During the processing of remainder, under above-mentioned system failure situation, needn't carry out any recovery operation such as power fail.
That is, if when data just are written into one specific, break down, then needn't carry out recovery operation to ' free time ' or ' deletion ' piece.When only having a piece effective with respect to a logical block number (LBN) also is like this.
If have two active blocks, then need recovery operation with identical logical block number (LBN).According to prior art,, then can not distinguish previous piece and new piece, thereby be difficult to determine during recovery operation, wipe which piece if having two active blocks with same logical block number.On the other hand, adopting under the cycle count situation, can distinguish previous piece and new piece, thereby determine to wipe which piece easily.Can determine during recovery operation, to wipe new piece or previous piece according to application type.
That is, if the system failure when the write-in block data, occurs, then check whether have two active blocks with same logical block number.If only there is a piece, then do not need recovery operation, and stop write operation with ' effectively ' state.But,, then distinguish previous piece and new piece according to the cycle count of distributing to each piece if having two pieces that are in ' effectively ' state.Then, delete previous piece or new piece.What Fig. 4 represented is the example of the new piece of deletion.But also can delete previous piece.
Fig. 6 be the present invention again the piece of mapped actuation method write/process flow diagram of rewrite operation.
In step 601, check in corresponding units, whether there is relevant block.If have relevant block, check then whether this relevant block is in ' effectively ' state.If this piece is effective, then check the state of relevant block in step 603.Then, in step 605, check in the corresponding units whether have empty piece.This inspection is performed such, and promptly searches for corresponding units is configured to ' free time ' with searching piece.If in corresponding units, there is free piece, then determine the state value of new piece in step 607.
The state value of new piece is to determine according to the state value of the relevant block that is checked through in step 603.With reference to as described in Fig. 4, if the state of previous piece was configured to ' s0 ', then the state value of new piece is configured to ' s1 ' as above-mentioned.If the state of previous piece was configured to ' s1 ', then the state value of new piece is configured to ' s2 ', and if the state of previous piece is configured to ' s2 ', then the state value of new piece is configured to ' s0 '.If the state of previous piece is configured to ' free time ', then the state value of new piece is configured to ' s0 '.
Then, in step 609, will be written in the empty piece that finds in the step 605 at the state value of the definite new piece of step 607.In step 611, will write new piece with the corresponding data of new piece that its state value has been written into.In step 613, the state of previous piece is changed " deletion ", and stops this processing.In this case, previous piece is the piece that its state had been examined in step 603.
Meanwhile, if the check result in the step 601 is a relevant block not to be existed or it is expressed as other states (that is, the state of relevant block is ' deletion ') except that effective status, then in step 615, relevant block is designated as ' free time '.In this case, if there is no relevant block is then divided the zone that is used in relevant block, and the state of relevant block is appointed as ' free time '.Then, if the check result of step 605 is to have empty piece in the corresponding units, then as determining the state value of new empty piece as described in the step 607.Conversely, if there is no empty piece is then carried out regenerative operation in step 617.Regenerative operation is described with reference to Fig. 7-9 in the back.
After carrying out regenerative operation,, check in corresponding units, whether there is free piece in step 619.If check result is to have free piece in the corresponding units, then treatment scheme turns back to step 607, to determine the state value of new piece.But if there is no empty piece then carries out mistake in step 621 and handles and stop this processing.
For from specific sense data, adopt map information to determine corresponding LUN and PUN.Then, determine specific physical location, afterwards sense data therefrom by the BAM of corresponding units.Readable data just when piece is effective only.Therefore, if there is no active block means then that piece in the corresponding units never is written into or because unavailable and deleted.This piece is set to initial value 0xFF.To carry out block search with the tradition mode that the mapped actuation method is identical again.
Meanwhile, have under the cell cases of a plurality of deleted blocks, carrying out regenerative operation.In this case, need to change location mode equally.Fig. 7 is the format sample of the erase unit of flash memory of the present invention.With reference to Fig. 7, write to erase unit first front unit physical location xpun, regeneration (before) unit wear intensity xcnt, logical unit number lun, significant notation v, bad block table lattice bb tbl, wear intensity cnt, duplicate/transmit cp/xf and data.
The state variation of unit is subjected to the restriction of part write operation number of times.Can be to the cycle count technology of unit application piece.But, EUH is being write in a plurality of, can be on each piece distribution information suitably.
For example, if with location mode be categorized as the free time, effectively, just be replicated and just be transmitted, then on two pieces, write EUH, as shown in Figure 8.' free time ' and ' effectively ' is written into first piece, and ' just being replicated ' and ' just being transmitted ' is written into second piece.In this case, even the unit is ' free time ', still must write the counter that is used to estimate wear intensity.
Idle erase unit is idle, and the normal cell beyond the idle erase unit is effective.Once be represented as ' cp ' that just is being replicated for erase unit and from the unit of piece copy data of regeneration in the past.Before carrying out regenerative operation, the state of first front unit is represented as ' xf ' that just is being transmitted.Active block copies to the unit that just is being replicated from the unit that just is being transmitted, and duplicates the wear intensity cnt and the logical block number (LBN) lun of the unit that just is being transmitted then.The state of the unit that just is being replicated is represented as effective v.Then, delete the unit that just is being transmitted.The wear intensity cnt that equals to be copied to new unit adds the head that 1 wear intensity cnt`` is write new and first front unit respectively.
If during regenerative operation, break down, then on the part shown in the redo of Fig. 8, start this operation, suitably carry out then and recover to handle.That is, under situation, re-execute this operation as the interim state during the regenerative operation ' just being transmitted ' and ' just being replicated '.But, on the part except that the part that is expressed as ' redo ', do not carry out recovery operation.
The failure recovery operation during the regenerative operation with write at piece/failure recovery operation during the rewrite operation is similar.That is, according to the operational processes that just is being performed, suitably carry out regenerative operation once more.For example, if having two unit with identical LUN, one of them just is replicated and another just is being transmitted, then the unit that just is being replicated of deletion.If the wear intensity of first front unit (unit that just is being replicated) does not write the unit that just is being transmitted as yet, the wear intensity that then has been written into the unit that just is being transmitted of first front unit (unit that just is being replicated) is copied to the unit that just is being transmitted, and carries out next step then.
With tradition similar in the mapped actuation method again, be worth the state of representing erase unit by changing on the fixed position each.In addition, the unit head can be write a plurality of in the corresponding units, can specify different positions to each state of unit, and positional value is divided into 0 and 1, thereby determine whether the distribution state value.
For example, the information such as the wear intensity of logical unit number lun, location mode validity and previous piece can be write first piece, and can with such as duplicate/information of delivery status cp/xf and wear intensity writes second piece.In this case, can adopt 3 part write operations to carry out regenerative operation according to order shown in Figure 8.If distribution information on a plurality of is perhaps suitably adjusted the arrangement of status information, then can further reduce the number of times of part write operation.
Fig. 9 is by the present invention's process flow diagram of the processing of the reconstituting piece carried out of mapped actuation method again.In step 901, determine erase unit to be regenerated (source unit) and delivery unit.In step 902, check whether the erasing times to delivery unit surpasses threshold value.Can set the threshold to 3 according to foregoing description.If erasing times is not more than threshold value 3,, the state of source unit is changed into " just being transmitted ", and in step 904, the state of delivery unit is changed and is ' just being replicated ' then in step 903.
Then, duplicate active block and such as the associated metadata of LBN, ECC and bad block table from source unit to delivery unit.Then,, write, then the state of delivery unit is changed into effectively such as the residue header information in the delivery unit of PUN, erasing times and LUN in step 906.In step 907, delete source unit, and new erasing times is write source unit.The value of new erasing times is that previous erasing times adds 1.In step 909, change in the storer data structure such as map information.In this case, owing to this change is carried out in this renewal.Then, in step 910, check whether to have stored source unit number.If have stored source unit number, then treatment scheme turns back to step 901.But, if there is no stored source unit number, then treatment scheme stops.
Meanwhile, surpass threshold value, then store current source unit number in step 911 if the check result of step 902 is erasing times of delivery unit.This is because be unsuitable for the data of source unit are sent to corresponding delivery unit.Therefore,, keep current source unit number,, adopt before the delivery unit regeneration that is changed the source unit of regeneration once then when adopting selected source unit (erase unit) to carry out regenerative operation, to use in step 912.That is at the erase unit of step 912 selective erasing number of times minimum, then, flow process turns back to step 903, thereby carries out regenerative operation as described above.
As previously mentioned, the invention has the advantages that,, manage such as its part of NAND type flash memory and write the piece of the limited flash memory of indegree or the write state of unit by the status information of using cycle count to be provided with.For example, by such as idle (1111) → effectively (s0 (1110) → s1 (1100) → s2 (1000) → s0 (1110) → ... the processing of) → deletion (0000) changes the state of this piece or unit.Therefore, if NAND type flash memory is adopted this processing, then can write data 3 times by the operating part write operation.If delete specific, suppose except that real data and all effective such as the data LBN number the status information, then can come the actual data that write by twice part write operation.
Under the erase unit situation, if be written into first piece such as the information of corresponding LUN and state validity and the wear intensity (erasing times) of first front unit, and, then can move and carry out regenerative operation by 3 subprograms about duplicating/transmit and the information of wear intensity being written into second piece.If distribution information or suitably adjust the arrangement of status information on a plurality of then can further reduce the part number of run.

Claims (9)

1, drive the method for mapping again in a kind of flash memory, described flash memory is divided into a plurality of unit, and each unit has one or more, and described method comprises the following steps:
According to the map information of relevant predetermined block, the physical location that search is predetermined;
If the described predetermined block in the physical location that is found exists with effective status, then search for described physical location to seek another piece that its state is the free time;
The state of described another piece is changed over the state of the state of following described predetermined block;
Write described another piece with new data with such as the additional information of logical block number (LBN);
The state of described predetermined block is changed into the deletion state; With
When described predetermined block does not exist or exists with the deletion state, be idle with the setting state of described predetermined block, and search for its state and be another idle piece,
Wherein, the step of the state of described another piece of change comprises: according to the state of described predetermined block the state of described another piece is set, it is configured to one of 4 possible states,
If described predetermined block is in idle condition, then the state of described another piece is arranged to first effective status;
If described predetermined block is in first effective status, then the setting state with described another piece is second effective status;
If described predetermined block is in second effective status, then the setting state with described another piece is the 3rd effective status; With
If described predetermined block is in the 3rd effective status, then the setting state with described another piece is first effective status.
2, the method for claim 1 also comprises the following steps:
When described another piece does not exist, described physical location is carried out regenerative operation;
Search for its state and be another idle piece;
When finding described another piece, return the state that changes described another piece; With
When not finding described another piece, it is treated to mistake.
3, method as claimed in claim 2, the step of wherein said execution regenerative operation comprises the following steps:
Determine source unit and delivery unit with regeneration;
Respectively with the setting state of described source unit and delivery unit for just transmitting and just being replicated;
Duplicate active block and relevant metamessage and header information in the described source unit;
Increasing described source unit erasing times, promptly wear intensity the time, its state is being set to the delivery unit that just is being replicated has been set at effective status; With
When erasing times is write described source unit, delete described source unit.
4, method as claimed in claim 3, the step of wherein said execution regenerative operation also comprises the following steps:
Check whether described erasing times surpasses threshold value;
If described erasing times does not surpass described threshold value, then return the state that described source unit and described delivery unit are set;
If described erasing times surpasses described threshold value, then wipe the source unit number of described source unit; With
Selection has the source unit of minimum erasing times, returns the state that described source unit and described delivery unit are set then.
5, method as claimed in claim 3, the step of wherein said execution regenerative operation also comprises the following steps:
At the described source unit of deletion with after writing erasing times, upgrade the internal data structure of the map information that comprises relevant flash memory;
Whether inspection source unit to be regenerated also exists; With
If source unit to be regenerated also exists, then return to determine source unit.
6, method as claimed in claim 3, the step of wherein said execution regenerative operation also comprises the following steps:
Whether inspection has two unit with identical logical unit number under failure condition; With
If have two unit with identical logical unit number, one of them just is transmitted and another just is being replicated, the unit that just is being replicated of deletion then, and described erasing times write the unit that just is being replicated.
7, method as claimed in claim 6, the step of wherein said execution regenerative operation also comprises the steps: under failure condition, when described erasing times not being write its state and is set to the unit that just is being transmitted, the erasing times that is written to the described unit that just is being replicated of the described unit that just is being replicated is copied to the described unit that just is being transmitted, then, stop described regenerative operation.
8, the method for claim 1 also comprises the following steps:
Under failure condition, check whether have two unit with identical logical unit number;
If only have an active block, then stop the processing of write-in block state;
If have two active blocks, then check the state of two pieces, and distinguish described predetermined block, promptly previous piece and next piece, promptly new piece; With
Delete described predetermined block or described next piece.
9, a kind of flash memory, it is divided into a plurality of unit, each unit has one or more, wherein, first piece that distributes described unit, so that write the information of the logical unit number, state validity and the erasing times that comprise previous piece, second piece that distributes described unit, just comprise state and the erasing times that is replicated/transmits so that write, be the information of wear intensity, and the information of the state of the piece determined according to cycle count of expression is written on the presumptive area of redundancy array in the piece of the data of writing unit on it.
CNB011177225A 2000-10-11 2001-04-29 Method for driving remapping in flash memory and its flash memory system structure Expired - Lifetime CN1300803C (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR59731/00 2000-10-11
KR1020000059731A KR100644602B1 (en) 2000-10-11 2000-10-11 Method for driving remapping for flash memory and flash memory architecture thereto

Publications (2)

Publication Number Publication Date
CN1348191A CN1348191A (en) 2002-05-08
CN1300803C true CN1300803C (en) 2007-02-14

Family

ID=36848389

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB011177225A Expired - Lifetime CN1300803C (en) 2000-10-11 2001-04-29 Method for driving remapping in flash memory and its flash memory system structure

Country Status (6)

Country Link
US (1) US6381176B1 (en)
EP (1) EP1197868B1 (en)
JP (1) JP3662510B2 (en)
KR (1) KR100644602B1 (en)
CN (1) CN1300803C (en)
DE (1) DE60121697T2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101364438B (en) * 2007-08-08 2011-04-06 奇岩电子股份有限公司 Memory apparatus and method enhancing NAND array flash memory

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7702831B2 (en) * 2000-01-06 2010-04-20 Super Talent Electronics, Inc. Flash memory controller for electronic data flash card
US7610438B2 (en) * 2000-01-06 2009-10-27 Super Talent Electronics, Inc. Flash-memory card for caching a hard disk drive with data-area toggling of pointers stored in a RAM lookup table
US20060161725A1 (en) * 2005-01-20 2006-07-20 Lee Charles C Multiple function flash memory system
KR100484147B1 (en) * 2002-07-26 2005-04-18 삼성전자주식회사 Flash memory management method
US7234036B1 (en) * 2002-10-28 2007-06-19 Sandisk Corporation Method and apparatus for resolving physical blocks associated with a common logical block
US7035967B2 (en) * 2002-10-28 2006-04-25 Sandisk Corporation Maintaining an average erase count in a non-volatile storage system
US7171536B2 (en) * 2002-10-28 2007-01-30 Sandisk Corporation Unusable block management within a non-volatile memory system
US6831865B2 (en) * 2002-10-28 2004-12-14 Sandisk Corporation Maintaining erase counts in non-volatile storage systems
US7103732B1 (en) 2002-10-28 2006-09-05 Sandisk Corporation Method and apparatus for managing an erase count block
US7096313B1 (en) 2002-10-28 2006-08-22 Sandisk Corporation Tracking the least frequently erased blocks in non-volatile memory systems
EP1556868B1 (en) * 2002-10-28 2007-09-05 SanDisk Corporation Automated wear leveling in non-volatile storage systems
US7039788B1 (en) 2002-10-28 2006-05-02 Sandisk Corporation Method and apparatus for splitting a logical block
DE10252059B3 (en) * 2002-11-08 2004-04-15 Infineon Technologies Ag Data memory operating method e.g. for portable data carrier or mobile data processor, using back-up memory for retaining memory cell contents upon current interruption during programming
KR100526178B1 (en) 2003-03-31 2005-11-03 삼성전자주식회사 Access apparatus and method using flash memory
KR100526186B1 (en) * 2003-04-04 2005-11-03 삼성전자주식회사 Method and apparatus for managing bad block in flash memory
US7139863B1 (en) 2003-09-26 2006-11-21 Storage Technology Corporation Method and system for improving usable life of memory devices using vector processing
US7188228B1 (en) 2003-10-01 2007-03-06 Sandisk Corporation Hybrid mapping implementation within a non-volatile memory system
US7032087B1 (en) 2003-10-28 2006-04-18 Sandisk Corporation Erase count differential table within a non-volatile memory system
KR100608602B1 (en) * 2003-12-10 2006-08-03 삼성전자주식회사 Flash memory, Mapping controlling apparatus and method for the same
KR100526188B1 (en) * 2003-12-30 2005-11-04 삼성전자주식회사 Method for address mapping and managing mapping information, and flash memory thereof
KR100526190B1 (en) * 2004-02-06 2005-11-03 삼성전자주식회사 Remapping method for flash memory
US7680977B2 (en) * 2004-02-26 2010-03-16 Super Talent Electronics, Inc. Page and block management algorithm for NAND flash
US20080147964A1 (en) * 2004-02-26 2008-06-19 Chow David Q Using various flash memory cells to build usb data flash cards with multiple partitions and autorun function
JP2006003966A (en) * 2004-06-15 2006-01-05 Oki Electric Ind Co Ltd Write method for flash memory
KR100568115B1 (en) 2004-06-30 2006-04-05 삼성전자주식회사 Incremental merge method and memory system using the same
US7130209B2 (en) * 2004-10-15 2006-10-31 Atmel Corporation Flexible OTP sector protection architecture for flash memories
KR100631765B1 (en) * 2004-10-18 2006-10-09 삼성전자주식회사 Apparatus and method for processing data in flash memory
US7958430B1 (en) * 2005-06-20 2011-06-07 Cypress Semiconductor Corporation Flash memory device and method
JP4933861B2 (en) 2005-09-22 2012-05-16 株式会社日立製作所 Storage control device, data management system, and data management method
US7568075B2 (en) * 2005-09-22 2009-07-28 Hitachi, Ltd. Apparatus, system and method for making endurance of storage media
EP1791055A1 (en) * 2005-11-23 2007-05-30 Incard SA IC card file system
US8194880B2 (en) * 2006-01-30 2012-06-05 Audience, Inc. System and method for utilizing omni-directional microphones for speech enhancement
KR100781517B1 (en) * 2006-02-16 2007-12-03 삼성전자주식회사 Mapping table managing apparatus and method for nonvolatile memory
US20080077590A1 (en) * 2006-09-22 2008-03-27 Honeywell International Inc. Efficient journaling and recovery mechanism for embedded flash file systems
KR100849221B1 (en) 2006-10-19 2008-07-31 삼성전자주식회사 Method for managing non-volatile memory, and memory-based apparatus including the non-volatile memory
KR100771519B1 (en) * 2006-10-23 2007-10-30 삼성전자주식회사 Memory system including flash memory and merge method of thereof
KR100789406B1 (en) 2006-11-03 2007-12-28 삼성전자주식회사 Flash memory system and garbage collection method therof
TWI326028B (en) 2006-11-20 2010-06-11 Silicon Motion Inc Method for flash memory data management
KR100816761B1 (en) * 2006-12-04 2008-03-25 삼성전자주식회사 Memory card system including nand flash memory and sram/nor flash memory and data storage method thereof
KR100857761B1 (en) * 2007-06-14 2008-09-10 삼성전자주식회사 Memory system performing wear levelling and write method thereof
US8533562B2 (en) * 2007-09-12 2013-09-10 Sandisk Technologies Inc. Data protection after possible write abort or erase abort
KR101413736B1 (en) 2007-09-13 2014-07-02 삼성전자주식회사 Memory system with improved reliability and wear-leveling technique thereof
KR101464338B1 (en) 2007-10-25 2014-11-25 삼성전자주식회사 Data storage device, memory system, and computing system using nonvolatile memory device
JP4489127B2 (en) * 2008-02-29 2010-06-23 株式会社東芝 Semiconductor memory device
JP4439569B2 (en) * 2008-04-24 2010-03-24 株式会社東芝 Memory system
US20090313416A1 (en) * 2008-06-16 2009-12-17 George Wayne Nation Computer main memory incorporating volatile and non-volatile memory
KR101497074B1 (en) * 2008-06-17 2015-03-05 삼성전자주식회사 Non-volatile memory system and data manage method thereof
US8245244B2 (en) * 2008-08-26 2012-08-14 Intel Corporation Device, system, and method of executing a call to a routine within a transaction
TWI364661B (en) * 2008-09-25 2012-05-21 Silicon Motion Inc Access methods for a flash memory and memory devices
US8275933B2 (en) * 2008-11-10 2012-09-25 Fusion-10, Inc Apparatus, system, and method for managing physical regions in a solid-state storage device
US8751860B2 (en) 2009-06-03 2014-06-10 Micron Technology, Inc. Object oriented memory in solid state devices
TWI484334B (en) * 2009-12-24 2015-05-11 Univ Nat Taiwan Method for region-based management of non-volatile memory
JP5269213B2 (en) * 2010-02-02 2013-08-21 株式会社東芝 Communication device with storage function
TWI447735B (en) * 2010-02-05 2014-08-01 Phison Electronics Corp Memory management and writing method and rewritable non-volatile memory controller and storage system thereof
CN102193870B (en) * 2010-03-09 2014-06-25 群联电子股份有限公司 Memory management and write-in method, memory controller and memory storage system
KR101666987B1 (en) * 2010-04-20 2016-10-17 삼성전자주식회사 Memory system and operating method thereof
JP2012123499A (en) 2010-12-07 2012-06-28 Toshiba Corp Memory system
US9292392B2 (en) 2011-06-30 2016-03-22 Hewlett Packard Enterprise Development Lp Memory module that includes a memory module copy engine for copying data from an active memory die to a spare memory die
US9239781B2 (en) 2012-02-07 2016-01-19 SMART Storage Systems, Inc. Storage control system with erase block mechanism and method of operation thereof
CN102789403B (en) * 2012-07-11 2015-08-12 忆正科技(武汉)有限公司 A kind of flash controller and control method thereof
US9671962B2 (en) 2012-11-30 2017-06-06 Sandisk Technologies Llc Storage control system with data management mechanism of parity and method of operation thereof
KR102067029B1 (en) 2012-12-13 2020-01-16 삼성전자주식회사 Semiconductor memory devices and memory systems
US9329928B2 (en) 2013-02-20 2016-05-03 Sandisk Enterprise IP LLC. Bandwidth optimization in a non-volatile memory system
KR102015053B1 (en) * 2013-02-20 2019-08-27 삼성전자주식회사 Nonvolatile memory device and data processing method thereof
KR102101304B1 (en) 2013-03-15 2020-04-16 삼성전자주식회사 Memory controller and operating method of memory controller
US10049037B2 (en) 2013-04-05 2018-08-14 Sandisk Enterprise Ip Llc Data management in a storage system
US9543025B2 (en) 2013-04-11 2017-01-10 Sandisk Technologies Llc Storage control system with power-off time estimation mechanism and method of operation thereof
US10546648B2 (en) 2013-04-12 2020-01-28 Sandisk Technologies Llc Storage control system with data management mechanism and method of operation thereof
US9367353B1 (en) 2013-06-25 2016-06-14 Sandisk Technologies Inc. Storage control system with power throttling mechanism and method of operation thereof
US9244519B1 (en) 2013-06-25 2016-01-26 Smart Storage Systems. Inc. Storage system with data transfer rate adjustment for power throttling
US9361222B2 (en) 2013-08-07 2016-06-07 SMART Storage Systems, Inc. Electronic system with storage drive life estimation mechanism and method of operation thereof
US9431113B2 (en) * 2013-08-07 2016-08-30 Sandisk Technologies Llc Data storage system with dynamic erase block grouping mechanism and method of operation thereof
US9448946B2 (en) 2013-08-07 2016-09-20 Sandisk Technologies Llc Data storage system with stale data mechanism and method of operation thereof
US9747157B2 (en) 2013-11-08 2017-08-29 Sandisk Technologies Llc Method and system for improving error correction in data storage
TWI548991B (en) * 2014-02-14 2016-09-11 群聯電子股份有限公司 Memory management method, memory control circuit unit and memory storage apparatus
US9405618B2 (en) * 2014-05-28 2016-08-02 Infineon Technologies Ag Marker programming in non-volatile memories
KR102491624B1 (en) * 2015-07-27 2023-01-25 삼성전자주식회사 Method for operating data storage device and method for operating system having same
FR3051574A1 (en) * 2016-05-20 2017-11-24 Proton World Int Nv MANAGING STORAGE IN A FLASH MEMORY
TWI661299B (en) * 2018-04-30 2019-06-01 大陸商深圳大心電子科技有限公司 Memory management method and storage controller
CN113568579B (en) * 2021-07-28 2022-05-03 深圳市高川自动化技术有限公司 Memory, data storage method and data reading method
TWI804236B (en) * 2022-03-16 2023-06-01 群聯電子股份有限公司 Memory management method, memory storage device and memory control circuit unit

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1098526A (en) * 1993-03-08 1995-02-08 M-系统有限公司 Flash file system
CN1281562A (en) * 1997-10-16 2001-01-24 M-系统快闪盘开拓者公司 Improved flash file system

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6230233B1 (en) * 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
US5485595A (en) * 1993-03-26 1996-01-16 Cirrus Logic, Inc. Flash memory mass storage architecture incorporating wear leveling technique without using cam cells
JPH08212019A (en) * 1995-01-31 1996-08-20 Mitsubishi Electric Corp Semiconductor disk device
US6034891A (en) * 1997-12-01 2000-03-07 Micron Technology, Inc. Multi-state flash memory defect management

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1098526A (en) * 1993-03-08 1995-02-08 M-系统有限公司 Flash file system
CN1281562A (en) * 1997-10-16 2001-01-24 M-系统快闪盘开拓者公司 Improved flash file system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101364438B (en) * 2007-08-08 2011-04-06 奇岩电子股份有限公司 Memory apparatus and method enhancing NAND array flash memory

Also Published As

Publication number Publication date
JP3662510B2 (en) 2005-06-22
EP1197868A3 (en) 2004-01-14
US20020041517A1 (en) 2002-04-11
CN1348191A (en) 2002-05-08
EP1197868B1 (en) 2006-07-26
KR100644602B1 (en) 2006-11-10
EP1197868A2 (en) 2002-04-17
JP2002123421A (en) 2002-04-26
US6381176B1 (en) 2002-04-30
DE60121697T2 (en) 2007-08-02
DE60121697D1 (en) 2006-09-07
KR20020028624A (en) 2002-04-17

Similar Documents

Publication Publication Date Title
CN1300803C (en) Method for driving remapping in flash memory and its flash memory system structure
US9519647B2 (en) Data expiry in a non-volatile device
US8205015B2 (en) Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US8151082B2 (en) Apparatus, system, and method for converting a storage request into an append data storage command
US8195912B2 (en) Apparatus, system, and method for efficient mapping of virtual and physical addresses
US7254668B1 (en) Method and apparatus for grouping pages within a block
US8392798B2 (en) Apparatus, system, and method for validating that correct data is read from a storage device
US10942849B2 (en) Use of a logical-to-logical translation map and a logical-to-physical translation map to access a data storage device
CN1818877A (en) Method, system and article of manufacture for metadata replication and restoration
EP2631916A1 (en) Data deletion method and device
KR101678868B1 (en) Apparatus for flash address translation apparatus and method thereof
JP3579389B2 (en) Disk array device and data recovery method in the device
TW201145020A (en) Physical compression of data with flat or systematic pattern
KR20120129895A (en) Erase command caching to improve erase performance on flash memory
CN112860594B (en) Solid-state disk address remapping method and device and solid-state disk
CN1701300A (en) Method and apparatus for resolving physical blocks associated with a common logical block
CN1093964C (en) I/O device having check recover function
EP0745939A2 (en) Re-entrant garbage collection process for a flash memory resident file system
US20230297242A1 (en) Storage device and data recovery method by storage device

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C14 Grant of patent or utility model
GR01 Patent grant
CX01 Expiry of patent term

Granted publication date: 20070214

CX01 Expiry of patent term