CN104008020B - Robust sector ID scheme for tracking dead sector to search for and transcribe automatically - Google Patents

Robust sector ID scheme for tracking dead sector to search for and transcribe automatically Download PDF

Info

Publication number
CN104008020B
CN104008020B CN201410049600.7A CN201410049600A CN104008020B CN 104008020 B CN104008020 B CN 104008020B CN 201410049600 A CN201410049600 A CN 201410049600A CN 104008020 B CN104008020 B CN 104008020B
Authority
CN
China
Prior art keywords
sector
sectors
indicator
memory
nonvolatile 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.)
Active
Application number
CN201410049600.7A
Other languages
Chinese (zh)
Other versions
CN104008020A (en
Inventor
R·S·斯考勒
J·C·坎宁汉姆
H·P·加斯奎特
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.)
NXP USA Inc
Original Assignee
NXP USA Inc
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 NXP USA Inc filed Critical NXP USA Inc
Publication of CN104008020A publication Critical patent/CN104008020A/en
Application granted granted Critical
Publication of CN104008020B publication Critical patent/CN104008020B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7209Validity control, e.g. using flags, time stamps or sequence numbers

Abstract

The invention discloses a kind of robust sector ID schemes for tracking dead sector to search for and transcribe automatically.A kind of emulator of the resistance to EEPROM to ration the power supply(18)Use the sector identification record for being stored in each sector(45)In multiple sectors status positions(451)Mark is skipped with forward/reverse(452、453)Management is in volatile memory(20)And nonvolatile memory(24)The storage operation at place, multiple sector configuration states for each memory sectors are specified to define multiple multiple positioning indicators sequentially arranged, and automatically bypass the dead sector of one or more of nonvolatile memory array during forward direction is transcribed and operated with reverse search.

Description

Robust sector ID scheme for tracking dead sector to search for and transcribe automatically
Technical field
The present invention relates generally to flash memories and its operating methods.On the one hand, the present invention relates to use flash memories To emulate the system and method for Electrically Erasable Programmable Read-Only Memory (EEPROM).
Background technology
Electrically Erasable Programmable Read-Only Memory(EEPROM)It is and microcontroller, microprocessor, computer and other electronics Device(For example, automobile embedded controller)It is used together to store a type of nonvolatile memory of data(NVM). EEPROM is typically characterized by the ability for the single byte for wiping and being written memory in multiple times, while being disconnected when power supply When, programmed position retains its data in the extended period.However, because to the increased cost of eeprom memory and The difficulty that size is required and made, some devices use the sector of erasable flash memories or the part emulation of block Eeprom memory reflects(mirror)The information being stored in RAM so that the information stored quilt when device is not powered on It is maintained in flash memories.However, being stored in flash array overcoming the flash memories period and can negatively affect Emulation EEPROM data integrities reliability in terms of there is also challenges, such as when power supply is unstable(It is referred to as " limit Electricity ")And the asynchronous reset at device can lead to the damage of the Mirror Info at flash memories.In addition, largely compiling Journey and erasing period prevent after solving programming or erasure error, and the latent defect of flash memories may result in for sector Flash disk operation failure, it is in this case, " dead(DEAD)" sector is declared to be invalid and is dropped from operation stream.Although The sector identifying schemes of EEPROM emulation are had proposed to use the mode bit with sector erasing functional interleaving to permit a determination that out Begin, stop and system in sectors status, but find these schemes during update step existing defects and without offer chase after The ability of dead sector in track flash memories.
Description of the drawings
When being considered in conjunction with the accompanying the following detailed description, the present invention and its multiple purposes, feature and the advantage that obtain It is understood that wherein:
Fig. 1 is using the microcontroller architecture for realizing emulation EEPROM for tracking the sectors status identifying schemes of dead sector Schematic block diagram;
Fig. 2 is to be illustrated to can be used for providing sector state information and label one according to the selected implementation of the disclosure Or the table of the sectors status classification and associated sector first code of multiple upcoming dead sectors.
Fig. 3 is to be illustrated to identify first code to search for and transcribe automatically using sector according to the selected implementation of the disclosure The block diagram of multiple flash array sectors in the EEPROM simulating schemes of dead sector is skipped in write sequence;
Fig. 4 is to be illustrated to identify first code automatically to search for for programming sector according to the selected implementation of the disclosure With the block diagram of multiple flash array sectors in the EEPROM simulating schemes for transcribing the exemplary sequence for skipping dead sector in sequence;
Fig. 5 is to can be used for generating the flash array in EEPROM simulation units according to the selected embodiment of the disclosure Controlled address sequence scalar/vector schematic block diagram;
Fig. 6 is to be illustrated according to the selected implementation of the present invention for being emulated using flash memories to execute EEPROM Various methods simplified schematic flowchart.
Specific implementation mode
The method, system and device for executing EEPROM emulation are described, are used for by identifying to store at head in sector Multiple mode bits of each programming operation are together with a pair of of drift marker or label to allow the forward and reverse around dead sector logical Road tracks the record of dead sector or block using robust sector identifying schemes to store information in nonvolatile memory. By interlocking, sector program operation has identified defined in head multiple arranged in order to specify for the multiple of sector in sector The programming of multiple positioning indicators of sector configuration state, rationing the power supply during programming operation or other damage events can be by not Can be in storage state position one indicates.And by the way that each positioning indicator is stored as logically combining(For example, via OR is operated)Multiple positions, sectors status detection scheme do not influenced by programming interference or single position erasing defect.It can also pass through The unique sectors status update step being aligned with multiple mode bits is defined sequentially to track the fan in emulation EEPROM systems The life cycle in area promotes resistance to rationing the power supply property.In selected embodiment, the life process of each sector is different by two Programming operation marks, so that they resistance to ration the power supply and identify head automatic by programming with two drift markers each sector Search and track dead sector to allow forward and reverse by sector during transcribing routine, and send out and will encounter dead sector Warning.
In the disclosure, it describes and solves the problems, such as changing for various emulation eeprom memory device in the prior art Into system, device and its manufacturing method, wherein looking back the surplus of the application with reference to drawings and detailed description book provided herein After remaining part point, the various limitations of traditional solution and technology and disadvantage will become apparent to those skilled in the art. The various illustrative embodiments of the present invention are described in detail with reference to the accompanying drawings.Although elaborating in the following description various Details, it will be understood that, the present invention may be practiced without these specific details, and can be to described herein Invention is made many realization methods and is specifically determined with the specific objective of realization device designer, such as compatible with technology Property or the relevant constraint of design, these are realized to another realization from one and will be different.Although such development effort can Can be complicated and time-consuming, however it will be routine mission for the those skilled in the art for benefiting from the disclosure. For example, in form of a block diagram rather than it is detailed show selected aspect, to avoid limiting or the fuzzy present invention.It is provided herein The some parts of detailed description are presented according to algorithm and the instruction operated to the data stored in computer storage.This The description and expression of sample are used by those skilled in the art to description and the essence that they work are passed to this field other technologies Personnel.In general, algorithm refers to the self-congruent sequence for the step of causing expected result, wherein " step " refers to the manipulation of physical quantity, The physical quantity can with but be not necessarily to using can be by storage, the electric or magnetic for transmission, combining, comparing and manipulating in other ways The form of signal.These signals are known as position, value, element, symbol, character, term, numbers etc. for common usage.These and class As term can be associated with appropriate physical quantity, and be only applied to this tittle convenient label.Unless under It is apparent specifically stated otherwise in the discussion in face, otherwise it should be understood that in the whole instruction, using such as " handle " or " calculating " " or Operation " or the discussion of the terms such as " determination " or " display ", refer to computer system or similar computing electronics, state are mechanical, electrical Sub-circuit, logic, firmware, application-specific integrated circuit(ASIC)Or counting circuit or module, the counting circuit or module are manipulated and are incited somebody to action It is expressed as physics in the register and memory of the computer system(Electronics)The data conversion of amount is at posting in computer system It is similarly represented as the other of physical quantity in storage and memory or other such information-storing device, transmission and display devices Data.
Fig. 1 is the schematic block diagram of data processing equipment framework 100, and the data processing equipment framework 100 includes emulation EEPROM device 18, be used for cover up use Non-Volatile EEPROM Store or flash memory as unique memory store fill The non-volatile memories function of eeprom memory is provided when the limitation set and disadvantage.As shown, emulation EEPROM device 18 Including volatile random access memory(RAM)20, Memory Controller 22 and the EEPROM being stored by controller 22 Simulation unit 23 connects and the flash memory array memory 24 of control.As it will be appreciated, EEPROM simulation units 23 are selected Can be implemented as software-driven in embodiment in whole or in part, and in other embodiments can in whole or in part by It is embodied as hardware.In operation, according to the selected embodiment of the disclosure, EEPROM simulation units 23 realize dead for tracking The sectors status identifying schemes of sector.It is implemented as software, hardware, firmware or any of the above described combination, EEPROM simulation unit knots It closes the function of emulation EEPROM and flash array 24 provides random access memory at RAM20 and accesses, such as tissue data record, Initialization and deinitialization EEPROM, report EEPROM states and reading and writing and deletion data record.In any software realization In, software can be by individual processor(For example, 14)Or by the processor or controller in emulation EEPROM device 18(Do not show Go out)To execute.
In the example depicted in fig. 1, data processing equipment 100 may be implemented as microcontroller(For example, embedded type automobile Controller)Comprising one or more CPU or processor cores 14 and the emulation for programmably storing Nonvolatile data EEPROM device 18.CPU14 and emulation EEPROM device 18 are connected one via one or more buses or system interconnection 12 Play the data to be continually written into during being stored in microcontroller service life(For example, diagnostic data, self adaptive control number According to, and/or secure data), this needs the high program/erase endurance in thousands of periods.In order to avoid with use traditional EEPROM Memory stores the associated cost of Nonvolatile data and disadvantage, provides emulation EEPROM device 18 to use arbitrary access to deposit Reservoir(RAM)20, Memory Controller 22 and the non-volatile flash memory for storing multiple flash memories blocks or sector are deposited Memory array 24 is remembered programmably to store Nonvolatile data, each block or sector including one or more EEPROM data Record.In selected embodiment, flash array 24 may be implemented as nand flash memory, NOR flash memory or other types of non-easy The property lost memory.The data record being stored in flash memory array 24, which refers to, is arranged to processing like being stored in EEPROM In data entry or field set, and may include data-recording status field, data record id field, size of data Field and one or more data fields.The specific application program regulation arranged by handling it of EEPROM data records, and May include regular length and variable-length record.
In described emulation EEPROM device 18, Memory Controller 22 is via being marked with address(ADDRESS)、 DATA_IN, READ_DATA, state(STATUS)And control(CONTROL)Signal wire be connected to non-volatile flash memory Array 24.Although it is not shown, but Memory Controller 22 can be connected to random access memory via similar signal wire (RAM)20.RAM20 and Memory Controller 22 are also coupled to system interconnection 12.In addition, reset signal can be provided to CPU14 and Memory Controller 22.The reset signal can be, for example, the Global reset for data processing equipment 100 is believed Number.Memory Controller 22 includes with the program code for realizing the sectors status identifying schemes for tracking dead sector And/or the EEPROM Simulation drives and/or hardware module 23 of circuit.For illustrative purposes, emulation EEPROM device 18 is shown Go out for discrete device, but emulate EEPROM device 18 and may be implemented as include data processing equipment 100 other components, such as The integrated circuit of processor 14.As it will be appreciated, emulation EEPROM device 18 may be implemented as independent flash memory module, it is described Flash memory module is had the processing function of its own or with the microcontroller, micro- for being emulated eeprom memory using flash memories Processor, computer and other electronic devices.
In order to support the data access request of RAM20, Memory Controller 22 to be configured as depositing at flash array 24 Store up and fetch information.Memory Controller 22 can be by writing via node ADDRESS offers address, via node DATA_IN Enter data, status information and the configuration control at node CONTROL via node STATUS updates for sector or record Information stores information at flash array 24.Similarly, Memory Controller 22 can be by providing ground at node ADDRESS Location and at node CONTROL configuration control information at flash array 24 execute read operation be stored in flash memory to fetch The information of array 24, to be stored in the information at ADDRESS via node R EAD_DATA back to control module 22 and using It is returned via node STATUS in the associated status information of corresponding sector or record.Memory Controller 22 may include It is configured for managing the data processing equipment of program associated with Memory Controller 22, such as microprocessor, microcontroller Device, logic device or combinations thereof.
During operation, processor 14(Or certain other modules with memory access permission or device)It can be via System interconnection 12 is directly communicated with RAM20 to be stored via access request and fetch the information at RAM20.In the setting In, the access request that information is stored at RAM20 is " write-access ", and fetches the access for the information being stored at RAM20 Request is " read access ".Each access request includes access address corresponding with the position at RAM20.In write-access In the case of, access request further includes being written to the data information of provided address.In response to write-access, RAM20 The data of writing of reception are stored at memory location associated with the write address received.In response to read access, RAM20 It fetches the data for being stored in the memory location indicated by address and provides data via system interconnection 12.
In the case of write-access, data associated with write-access are stored in flash memory battle array by Memory Controller 22 At row 24.Therefore in power swing(Including power attenuation)Or the data will be saved in data processing in the case of reseting event At device 100.For example, if Memory Controller 22 determine associated with write request data different from be stored in by with write Ask the data at the memory location of the RAM20 of associated address instruction, Memory Controller 22 that can will be asked with write-in Ask associated address and data as record storage at flash array 24.But if flash array 24 cannot be wiped individually Record, Memory Controller 22 are that each write-access for the modification for leading to the data being stored at RAM20 generates new record.Make For as a result, can have multiple records associated with the specific memory location of RAM20, in this case, with particular memory The associated record storage being newly created in device address be used for the address newest or effective data, and with the ground of RAM20 Location it is associated by newer data substitute any data be known as it is invalid.
When creating new record, Memory Controller 22 operates in a sequential manner, to which each new record is deposited At the logically adjacent position of storage, and follow the position of the record created in previous write-access for memory response closely. As data are stored in order to and be successively recorded in flash array 24 at corresponding with update is created at RAM20, by information The free space for being stored in flash array 24 reduces.In order to provide enough memory spaces in flash memories for newly remembering Record, Memory Controller 22 can be configured for determining the quantity of the free space at flash array 24 when less than definition Or programmable threshold value.When a threshold is reached, Memory Controller 22 executes Data Integration in selected sector or block It is wiped with data, to ensure the position for having compliance recent renewal and can be used for accommodating in response to the data update at RAM20 The empty position of new record.It is executed by continuously creating new record, integrating record and wiping sector for managing flash memory fan The new sector being processed so that in flash array 24 in area can be used for storing data record.
In Fig. 1, with reference to multiple flash memories blocks or sector 30,32,34,36 and 38(Sector 30-38)Show use The processing of flash sector in the non-volatile flash memory 24 that management emulates in EEPROM device 18, wherein sector are to use In the part continuous in logic of the flash array 24 of the one or more records of storage.Flash array 24 can also include one The empty region 40 of a or multiple empty sectors.Empty sector refers to the fan that wherein distribution is all wiped free of for storing all positions of record Area.Shown sector 30-38 includes earliest sector 30(The sector at least filled recently), sector 32 earlier(It is filling The sector being filled after earliest sector 30), the one or more sector 34 newly filled(Than sector 32 earlier closer to quilt The sector of filling), newest filling sector 36(The sector filled recently)The sector 38 currently filled.The sector each filled 30,32,34 and 36 be not included in all positions all include record or comprising status information associated with sector in the sense that Empty position, although it is understood that, the record in the sector of filling may include that can be used for storing for associated with recording The space of the additional data of location.
The sector 38 currently filled is the sector that will be stored in next or " new " record created in flash array 24.With The mode of explanation, the sector 38 currently filled may include first position or the record 45 that first code is identified for storing sector, It can be used to provide for sector state information and the one or more upcoming dead sectors of label.First position 45 can be First sector head or record comprising for storing the first field 451 of multiple mode bits, reversely being skipped for storing(skip) Or drift marker is to avoid in the second field 452 of one or more of reversed adjacent dead sector(Individually or with erasing count Array is closed)And for before storing to skipping or drift marker is to avoid adjacent in one or more of the direction of forward direction The third field 453 of dead sector.The combination of field 451-453 can be referred to as the sector head of the sector 38 for currently filling. As described below, multiple mode bits are written sequentially or are programmed into the first field 451 to interlock with individual programming operation so that Other damage events between any write-in or programming for rationing the power supply or being happened at mode bit will likely cause store the latter's Mode bit and thereby provide failure programming operation instruction.
The sector 38 currently filled can also be included therein the one or more second for being stored with one or more records Position or record 46.In addition, the sector 38 currently filled may include including state information field 481, address information fields 482 The position currently filled with data information field 483 or record 48.Finally, the sector 38 currently filled may include one or It is multiple be additionally illustrated as include " FFFF " empty position 50, FFFF correspond to go out at the position being included at the sector of erasing Existing data value.
In the example programming operation for the sector 38 currently filled, it can be used for storing new record at flash array 24 determining The quantity of erasure location when being less than threshold value, Memory Controller 22 can use the sector 38 currently filled the one of array 24 Data Integration and data erasing are executed in a or multiple sectors.When meeting the threshold value, Memory Controller 22 can be by returning Each record at earliest filling sector 30 is cared for, each of then will find effective recording compressed wherein and copy to work as The position currently filled in the sector 38 of preceding filling or record 48 execute integrated operation.In particular, for duplicated record, deposit Memory controller 22 executes write-access to create new record and will be in the record that be replicated at the sector 38 currently filled Appearance is written to new record.Once Memory Controller 22 determines that all effective records are replicated from earliest filling sector 30 To the sector 38 currently filled, Memory Controller 22 executes erasing operation to wipe earliest filling sector 30.Therefore, it integrates Operation releases space for storing addition record at flash array 24.
Each sector 30-38 in flash memories 24 may include sector identification position or record(For example, 45), can To be used to promote by storing sector state information together with drift marker to mark one or more upcoming dead sectors Into sectors process.In this way, Memory Controller 22 can access sector state information associated with sector to identify Sector is currently just being used.For example, sector state information can be used for identify particular sector be it is empty, erasing, when It is preceding filling or full or be just used for other purpose, such as compress or wipe another sector.Existed by stored interleaved Sector identifies that the programming of the mode bit in position/record, emulation EEPROM device 18 provide resistance to ration the power supply and not by single position The robust state system of the influence of wear mechanism and interference problem.This is the multiple physics distributed by using each mode bit Position defines and realizes to define multiple comprehensive configuration status.Emulation EEPROM device 18 can also handle sector identification position Drift marker in setting/recording is to manage the presence of the dead sector in flash array 24, so as to use automatic search algorithm.
Turning now to Fig. 2, Fig. 2 is illustrated according to the selected implementation of the disclosure can be used to provide for sectors status letter Breath and for mark one or more upcoming dead sectors sectors status classification and associated sector first code table 200.Table 200 includes the first row 210 comprising sector classification, includes example sector mode bit associated with the classification of each sector (In the form of binary)Secondary series 212 and or operation group comprising the mode bit from secondary series 212 third row 214.In selected embodiment, as sector Advance in Classification is by the sequence of programming operation, Memory Controller 22 by with It sets for updating the sectors status position in sector head corresponding with secondary series 212 or third row 214.It is being used in flash array The mode bit of storage record can be only programmed in the embodiment of " logical zero " level at 24, be used to identify the current of sector The sectors status position of classification is the difference is that how many mode bit are programmed to " logical zero " level.In the secondary series 212 of table 200 Shown in example embodiment, be used to identify that the sectors status position of sectors status includes 30 mode bits, can be respective It is arranged as 10 positioning indicator groups of three mode bits(For example, the first sectors status indicator(2:0), the second sector-like State indicator(5:3)... the tenth sectors status indicator(30:28).As it will be appreciated, additional or less group of mode bit May include in sectors status position to identify additional or less state classification.In this way, the state of three programmings Position group in each can be used to distinguish between each sectors status, individually or with the other information group from sector first code It closes.In example implementation, sectors status position is comprised in the position position 90 of sector identification head/record:In 61.Alternatively, it or transports Calculate the position position 70 that sectors status position is comprised in sector identification head/record:In 61.
Although the arrangement and distribution of state hyte shown in table 200 are shown for being wiped free of(ERASED)With it is ready (READY)The identical logical value of (the first programming) state, it will be appreciated that mode bit can be arranged and distribute so that 11 identified Each of a configuration status has its own corresponding sectors status position.For example, ERASED states can be assigned mode bit 111_111_111_111_111_111_111_111_111_111 is configured, READY (the first programming) state can be assigned state Position configuration 111_111_111_111_111_111_111_111_111_000, READY state can be assigned mode bit configuration 111_111_111_111_111_111_111_111_000_000 etc. so that compression(COMPRESS)State can be assigned shape State position configures 000_000_000_000_000_000_000_000_000_000.
As shown in the third row 214 of table 200, each sectors status indicator group of sector position can be by each sector Hyte application logic " OR " operation is indicated with corresponding logic sector mode bit.Pass through three objects with quilt or operation together It manages position and indicates each logic sector mode bit, being maintained at the sector state information at emulation EEPROM device 18 realizes to programming Interference(For example, rationing the power supply)That improves is immune, and also avoids and drawn by one in the mode bit in the group with erasing problem The problem of rising.
Table 200 includes the additional sectors first code that can be included in each sector identification head or record, the additional fan Area's first code can be used to mark one or more upcoming dead sectors.For example, table 200 includes comprising for bypassing anti- The example of dead sector into the direction of search reversely skips code or the 4th row 216 of drift marker value.Reversely skip code or offset Value of statistical indicant can be stored as binary system or hexadecimal value to indicate in assigned direction(For example, inverse direction)It to be skipped The quantity of adjacent dead sector.In selected embodiment, each reversely skip what code can be wiped free of with expression sector The ECOUNT of the sector of number(Wipe cycle count)Value combination.Regardless of whether being combined with ECOUNT values, reversely skips code and all may be used With by error correcting code(ECC)Protection to detect and correct internal corrupted data.
It is reversed to jump in selected embodiment although the dead sector of any desired quantity can be specified by reversely skipping code The dead sector that code is used for specified maximums 2 is crossed, damned sector can be skipped in inverse direction by using 4 positions, wherein 2 A position is assigned to each sector skipped.In these embodiments, reversely skipping code and can effectively specifying to correspond to " does not have Skip ", " skipping 1 sector " and " skipping 2 sectors " instruction 0,1,2 values.Occur back-to-back in three or more dead sectors It is unlikely scenario under, Memory Controller 22 can be configured for reprograming sector and identify head/record to create The ECC twin failures of software intervention will be forced.In an example implementation, the reversed of ECC protections skips code and ECOUNT value quilts The position position 60 of head/record is identified included in sector:In 22.
Table 200 further include comprising before the example for bypassing dead sector in the direction that forward direction is transcribed to skipping code or offset 5th row 218 of mark.By by preceding to skipping code or drift marker value is stored as binary system or hexadecimal value, instruction to Determine direction(For example, forward direction)The quantity for the adjacent dead sector to be skipped.In selected embodiment, forward direction skips code can With by error correcting code(ECC)Protection to detect and correct internal corrupted data.In selected embodiment, forward direction is skipped Code be used to specify the dead sector of the maximum value 2 that can be skipped in inverse direction, although can be referred to skipping code by preceding The dead sector of fixed any desired quantity.By using 4 positions with 2 positions for being assigned to each sector skipped, forward direction 0,1,2 instructed corresponding to " not skipping ", " skipping 1 sector " and " skipping 2 sectors " can effectively be specified by skipping code Value.Three or more dead sectors occur back-to-back it is unlikely scenario under, Memory Controller 22 can be configured to use In reprograming sector identification head/record the ECC twin failures of software intervention will be forced to create.In an example implementation, The forward direction of ECC protections skips the position position 21 that code is comprised in sector identification head/record:In 0.
By the arrangement of mode bit shown in the secondary series 212 in table 200, Memory Controller 22 can be configured to use In first and second groups of continuous programming of staggeredly different sector program operation and mode bit.For example, in the first programming operation Period(For example, being READY by sector configuration), first group of mode bit(For example, the first sectors status indicator(2:0))It can be by Programming, and during subsequent programming operations(For example, being filling (FILLING) (the first programming) by sector configuration), second group Mode bit(For example, the second sectors status indicator(5:3))It can be programmed.This interleaved program is referred in table 200 Row 221-231 illustrates.
In particular, the first row 221 in table 200 includes sector classification ERASED, can be represented as in secondary series 212 Shown in have unprogrammed sectors status place value(For example, 111_111_111_111_111_111_111_111_111_111) And it reversely skips and ECOUNT values(For example, FFFF_FF).As shown in third row 214, three from sectors status place value The logic OR combination producings of a hyte correspond to ERASED sectors status or operation sectors status place value(For example, 11_ 1111_1111).In selected embodiment, reversely skipped and ECOUNT values in first group of sectors status place value and first In " logic 1 " value be sector erasing operate as a result, therefore Memory Controller 22 need not execute individual programming operation To store these values.
Row 222 in table 200 includes sector classification READY(First programming), can be represented as in secondary series 212 It is shown, there is one group of sectors status place value(There is " logic 1 " value)With with the incremental ECOUNT values after ERASE operations. In this way, READY(First programming)Sector classification can be different from ERASE fans by the ECOUNT values in the 4th row 216 Distinguish class.As shown in third row 214, the logic OR combination producings of three hytes from sectors status place value be used for First programming operation of READY sectors status is corresponding or operation sectors status place value(For example, 11_1111_1111), and the Four and the 5th row 216,218 include to identify that the reversed and forward direction of adjacent dead sector skips value(For example, 0,1 or 2).
Row 223 in table 200 includes sector classification READY(Or it is empty(EMPTY)), can be represented as in secondary series There is one group of sectors status place value shown in 212(For example, 111_111_111_111_111_111_111_111_111_000), Wherein, minimum effective status position or hyte(For example, three hyte mode bits)It is programmed to " logical zero " level, to distinguish READY Sector is classified and READY(First programming)Classify sector.As shown in third row 214, three from sectors status place value The logic OR combination producings of group be used for that the second programming operation of READY sectors status to be corresponding or operation sectors status place value (For example, 11_1111_1110), and the 4th and the 5th row 216,218 include to identify that the reversed and forward direction of adjacent dead sector is jumped Cross value(For example, 0,1 or 2).The classification of the sectors READY is corresponding with the sector for example at the empty region of Fig. 1 40.
Row 224 in table 200 includes sector classification FILLING (the first programming), can be represented as in secondary series 212 Shown in, there is one group of sectors status place value(For example, 111_111_111_111_111_111_111_111_000_000), In next minimum effective status position or hyte(For example, the four, the 5th and the 6th minimum effective status position)It is programmed into " logic 0 " level is classified to distinguish FILLING (the first programming) sector classification with the sectors READY.As shown in third row 214, The logic OR combination producings of three hytes from sectors status place value and the first programming operation for FILLING sectors status Corresponding or operation sectors status place value(For example, 11_1111_1100), and the 4th and the 5th row 216,218 include identification phase The reversed and forward direction of adjacent dead sector skips value(For example, 0,1 or 2).
Row 225 in table 200 includes that classification FILLING in sector (or is full of(FULL)), it can be represented as second Shown in row 212, there is one group of sectors status place value(For example, 111_111_111_111_111_111_111_000_000_ 000), wherein next minimum effective status position or hyte(For example, the seven, the 8th and the 9th minimum effective status position)It is programmed To " logical zero " level, classify with FILLING (the first programming) sector to distinguish the classification of the sectors FILLING.Such as arranged in third Shown in 214, the logic OR combination producings of three hytes from sectors status place value and second for FILLING sectors status Programming operation is corresponding or operation sectors status place value(For example, 11_1111_1000), and the 4th and the 5th row 216,218 wrap The reversed and forward direction of the adjacent dead sector containing identification skips value(For example, 0,1 or 2).The sector FILLING (or FULL) is classified and example As Fig. 1 current filling 38 at sector correspond to, and the sector 30 of the classification of the sectors FULL and the filling of Fig. 1,32,34 and 36 pairs It answers.In selected embodiment, additional mode bit can be used to distinguish the sectors FILLING and the sectors FULL.Other In embodiment, the sectors FILLING can be by Memory Controller 22 by being identified from the first empty sector sweep backward to position The first sector with sectors status place value=111_111_111_111_111_111_111_000_000_000.
Row 226 in table 200 includes the previous sector that sector classification is wiped free of(PREVIOUS SECTOR BEING ERASED), can be represented as shown in secondary series 212, there is one group of sectors status place value(For example, 111_111_ 111_111_111_111_000_000_000_000), wherein next minimum effective status position or hyte(For example, the tenth, 11 and the 12nd minimum effective status position)It is programmed into " logical zero " level, to distinguish PREVIOUS SECTOR BEING The sectors ERASED are classified classifies with the sectors FILLING.As shown in third row 214, three hytes from sectors status place value Logic OR combination producings are corresponding with previous sector or operation sectors status place value(For example, 11_1111_0000), and the Four and the 5th row 216,218 include to identify that the reversed and forward direction of adjacent dead sector skips value(For example, 0,1 or 2).
Row 227 in table 200 includes the previous sector of the qualified erasing of sector classification(PREVIOUS SECTOR QUALIFIED FOR ERASE), can be represented as shown in secondary series 212, there is one group of sectors status place value(Example Such as, 111_111_111_111_111_000_000_000_000_000), wherein next minimum effective status position or hyte(Example Such as, the minimum effective status position in the 13rd, the 14th and the 15th)It is programmed into " logical zero " level, to distinguish PREVIOUS The sectors SECTOR QUALIFIED FOR ERASE are classified classifies with the sectors PREVIOUS SECTOR BEING ERASED.Such as exist Shown in third row 214, the logic OR combination producings of three hytes from sectors status place value with for wiping previous sector Second programming operation is corresponding or operation sectors status place value(For example, 11_1110_0000), and the 4th and the 5th row 216, The 218 reversed and forward directions comprising the adjacent dead sector of identification skip value(For example, 0,1 or 2).
Row 228 in table 200 includes sector classification previous sector erasure completion(PREVIOUS SECTOR ERASE COMPLETE), can be represented as shown in secondary series 212, there is one group of sectors status place value(For example, 111_111_ 111_111_000_000_000_000_000_000), wherein next minimum effective status position or hyte(For example, the 16th, 17th and the 18th minimum effective status position)It is programmed into " logical zero " level, to distinguish PREVIOUS SECTOR The sectors ERASE COMPLETE are classified classifies with the sectors PREVIOUS SECTOR QUALIFIED FOR ERASE.Such as in third Shown in row 214, the logic OR combination producings of three hytes from sectors status place value and the third for wiping previous sector Programming operation is corresponding or operation sectors status place value(For example, 11_1100_0000), and the 4th and the 5th row 216,218 wrap The reversed and forward direction of the adjacent dead sector containing identification skips value(For example, 0,1 or 2).
Row 229 in table 200 includes sector classification erasure completion(ERASE COMPLETED), can be represented as Shown in secondary series 212, there is one group of sectors status place value(For example, 111_111_111_000_000_000_000_000_ 000_000), wherein next minimum effective status position or hyte(For example, the 19th, the 20th and the 21st are minimum effectively Mode bit)It is programmed into " logical zero " level, to distinguish the classification of the sectors ERASECOMPLETED and PREVIOUS SECTOR Classify the sectors ERASE COMPLETE.As shown in third row 214, the logic OR groups of three hytes from sectors status place value Symphysis is at or operation sectors status place value corresponding with for wiping the 4th programming operation of previous sector(For example, 11_1000_ 0000), and the 4th and the 5th row 216,218 include to identify that the reversed and forward direction of adjacent dead sector skips value(For example, 0,1 Or 2).The classification of the sectors ERASE COMPLETED is stored in the FULL being filled immediately after the sector that filling is filled earliest At sector.For example, when wiping the sector 30 filled earliest in Fig. 1, the sector 32 of Fig. 1 more early filled be used to store fan Zone state place value=111_111_111_000_000_000_000_000_000_000.
Row 230 in table 200 includes sector classified compression(COMPRESS)(first programming) can be represented as the Shown in two row 212, there is one group of sectors status place value(For example, 111_111_000_000_000_000_000_000_000_ 000), wherein next minimum effective status position or hyte(For example, the 22nd, the 23rd and the 24th are minimum effectively Mode bit)It is programmed into " logical zero " level, to distinguish COMPRESS (the first programming) sector classification and ERASE Classify the sectors COMPLETED.As shown in third row 214, the logic OR group symphysis of three hytes from sectors status place value At with for the first programming operation of COMPRESS sectors status to be corresponding or operation sectors status place value(For example, 11_0000_ 0000), and the 4th and the 5th row 216,218 include to identify that the reversed and forward direction of adjacent dead sector skips value(For example, 0,1 Or 2).
Row 231 in table 200 includes sector classification COMPRESS, can be represented as shown in secondary series 212, have There is one group of sectors status place value(For example, 111_000_000_000_000_000_000_000_000_000), wherein it is next most Low effective status position or hyte(For example, the minimum effective status position in the 25th, the 26th and the 27th)It is programmed into and " patrols 0 " level is collected, is classified with COMPRESS (the first programming) sector to distinguish the classification of the sectors COMPRESS.Such as in third row 214 Shown, the logic OR combination producings of three hytes from sectors status place value are programmed with second for COMPRESS sectors status Operate corresponding or operation sectors status place value(For example, 10_0000_0000), and the 4th and the 5th row 216,218 include to know The reversed and forward direction of not adjacent dead sector skips value(For example, 0,1 or 2).Note that sector become the sector filled earliest and It is compressed and before the candidate that is then wiped free of, will have when the sector that previous earliest is filled is wiped free of and more early fill Sector, and received sectors status place value=111_111_111_000_000_000_000_000_000_000.
As described above, sector first code can sequentially be programmed with track with multiple and different programming operation be in progress it is every The life cycle progress of a sectors status classification is potentially rationed the power supply or the energy of other damage events to provide detection and respond Power.For example, sectors status position can be applied in combination individually or with ECOUNT values to detect as the sectors ERASED are configured as READY and the potential event of rationing the power supply occurred.In the example shown in Figure 2, by programming ECOUNT values in a sequential manner With first group of three mode bit(For example, the first sectors status indicator(2:0), (first compiles these sector first code instructions READY Journey)Occur to configure given sector with READY programming operations.But if Memory Controller 22 fetches instruction ECOUNT Value is programmed and the unprogrammed sector first code of first group of mode bit, then this can send out thing of rationing the power supply to Memory Controller 22 The signal that part may have occurred and that before the second programming operation for READY sectors status programming operations.This can be such as Fruit is in the first sectors status indicator(2:0)When locating to ration the power supply when programming state position, in this case, memory control Sector is classified as the sector newly wiped and again in the first sectors status indicator by device 22 processed(2:0)Locate programming state position The sector newly wiped is identified as the empty or sectors READY.
In addition or in alternative solution, sectors status position or hyte(From least significant bit to higher significance bit)Sequence compile Each life cycle process that journey allows sectors status to classify is realized with two different programming operations, described two different Programming operation can be tracked potentially is rationed the power supply or other damage events with detecting.For example, programming the second He in a sequential manner Three mode bits of third group(For example, the second sectors status indicator(5:3)With third sectors status indicator(8:6)), sector Mode bit indicates FILLING (the first programmings)Occur to configure given sector with FILLING programming operations.But it if deposits Memory controller 22 retries sectors status position from sector identification head/record, wherein dibit is programmed but third group position(Example Such as, 111_111_111_111_111_111_111_111_000_000)It is not programmed, then this can be to Memory Controller 22 Send out the signal that the event of rationing the power supply may occur before the second programming operation for FILLING sectors status programming operations. If this may be in third sectors status indicator(8:6)Locate to occur in the case of rationing the power supply when programming state position, at this In the case of kind, Memory Controller 22 show that sector is the conclusion of sky sector, and again in the second sectors status indicator (5:3)With third sectors status indicator(8:6)Locate sector of the programming state position sector to be classified as currently filling.
Equally, if the 4th and the 5th group of three mode bits(For example, the 4th sectors status indicator(11:9)With the 5th fan Zone state indicator(14:12))It is sequentially programmed to indicate PREVIOUS SECTOR BEING ERASED and PREVIOUS SECTOR QUALIFIED ERASE programming operations have occurred, then and the wherein the 4th(Rather than the 5th)Hyte be programmed (for example, Any of sectors status position 111_111_111_111_111_111_000_000_000_000) fetches, this will send out thing of rationing the power supply The signal that part may occur before PREVIOUS SECTOR QUALIFIED ERASE programming operations.If this may be In the 5th sectors status indicator(14:12)Locate to occur in the case of rationing the power supply when programming state position, in this case, deposit Memory controller 22 show that sector is the conclusion of the sector of filling, and again in the 4th sectors status indicator(11:9)With 5th sectors status indicator(14:12)Place programming state position indicates that previous sector qualification is wiped free of to classify sector.
In a similar way, if the 6th and the 7th group of three mode bits(For example, the 6th sectors status indicator(17: 15)With the 7th sectors status indicator(20:18))It is sequentially programmed to indicate PREVIOUS SECTOR ERASED COMPLETE and ERASE COMPLETED programming operations have occurred, then wherein the 6th(Rather than the 7th)Group position is programmed Any of mode bit fetches (for example, 111_111_111_111_000_000_000_000_000_000), this sends out the event of rationing the power supply The signal that may have occurred before ERASE COMPLETED programming operations.If this may be indicated in the 7th sectors status Device(20:18)Locate to occur in the case of rationing the power supply when programming state position, in this case, Memory Controller 22 obtains fan Area is the conclusion of PREVIOUS SECTOR QUALIFIED FOR ERASE, and again in the 6th sectors status indicator (17:15)With the 7th sectors status indicator(20:18)Place programming state position indicates that erasing operation is completed to classify sector.
Finally, if the 8th and the 9th group of three mode bits(For example, the 8th positioning indicator(23:21)With the 9th state Indicator(26:24))It is sequentially programmed to indicate that COMPRESS (the first programming) and COMPRESS programming operations have occurred, then Wherein the 8th(Rather than the 9th)Group any of position programmed state position fetches (for example, 111_111_000_000_000_ 000_000_000_000_000), this sends out the signal that the event of rationing the power supply may occur before compressing programming operation.This may If in the 9th sectors status indicator(26:24)Locate to occur in the case of rationing the power supply when programming state position, in this feelings Under condition, Memory Controller 22 show that sector erasing operates completed conclusion, and is indicated again in the 8th sectors status Device(23:21)With the 9th sectors status indicator(26:24)Place programming state position indicates that squeeze operation is completed to classify sector.
As described herein, identification state position in sector can be stored by controller 22 and be used for defining and emulating EEPROM systems The life cycle of sector in system matches(align with)Unique sectors status update step.In order to complete this, The classification process of each sector(For example, from ERASED to READY)It is marked so that their resistance to limits by two different programming operations Electricity.If the second programming operation can successfully identify its qualification, the failure programmed on first step can be allowed.Pass through Two programming steps are used to each new sector classification process, can detect and avoid the problem of rationing the power supply.
As it will be appreciated, the one or more sectors or block that are recorded during emulation EEPROM operations may have and cannot solve Programming certainly or erasure error.In this case, the sector of failure is declared as invalid and is operated from emulation EEPROM It abandons so that this sector is automatically skipped subsequently through flash memory array.This is referred to as sector be dropped or dead.For Skip dead sector, the disclosure selected embodiment provides the sector identification side of dead sector that can be in automatic tracking system Case.For this purpose, each sector identifies that head/record storage one or more drift marker, the drift marker allow forward and reverse The warning of dead sector will be encountered by sector and sending out.
Referring now to Fig. 3, it is illustrated according to the selected implementation of the disclosure and identifies first code (for example, 312- using sector 314) with multiple flash array sectors in the EEPROM simulating schemes for skipping dead sector in searching for and transcribing sequence automatically 310,320,330,340 block diagram 300.In the first sector 310(Sector 0)In, first code includes identifying the sector for storing State(For example, ERASED, FILLED etc.)Sector identification state position state bit fields 312, for specify back through The existing of any upcoming dead sector to be skipped during sector reversely skips field 313, for specifying in forward direction Field 314 is skipped by the existing forward direction for any upcoming dead sector to be skipped during sector and for depositing Store up the additional position 311 of the record of the first sector 310.In addition to various fields are instructed to the certain of " not minding " value X wherein Dead sector(For example, 320)Outside, stateful bit field is similarly organized in other flash array sectors 320,330,340(For example, 332、342), reversely skip field(For example, 333,343), forward direction skips field(For example, 334,344)And addition record word Section(For example, 331,341).
In the described example, in the second sector 320(Sector 1)The erasing at place unsuccessfully causes the second sector to be considered as dead Sector.In order to avoid dead sector 320(Sector 1), it is used for third sector 330(Sector 2)Sector identify position/record 332- 334, which are programmed at reserve migration attribute field 333 storage, reversely skips code value RSKIP=1, to indicate any reversely to search Suo Xulie 361 is in processing current sector 330(Sector 2)It skips later(335)Single sector, to avoid dead sector 320(Sector 1)And enter directly into next running sector 310(Sector 0).In order to avoid from opposite or transcribe the dead sector 320 in direction (Sector 1), it is used for the first sector 310(Sector 0)Sector identification position/record 312-314 be programmed to forward direction deviate mark To code value FSKIP=1 is skipped before being stored at will field 314, the first sector is being handled to indicate that any forward direction transcribes sequence 362 310(Sector 0)It skips later(315)Single sector, to avoid dead sector 320(Sector 1)And enter directly into next fortune Make sector 330(Sector 2).In a similar way, remaining sector identification first code, which is programmed to provide, reversely skips code value RSKIP =0 and forward direction skip code value FSKIP=0 to indicate not adjacent dead sector so that reverse search and forward direction transcribe sequence can be with Enter directly into next adjacent sector.
In order to identify the number of sectors to be skipped, it may include being assigned to each jumped that reversed and forward direction, which skips field, The multiple positions for the sector crossed(For example, 2).For example, if inverse direction can have maximum value be two sectors be skipped and Two positions are assigned to each sector being skipped, and are skipped then instruction is not needed sector by RSKIP=1111(Or RSKIP=0). Equally, RSKIP=1100 will indicate that an adjacent sector should be skipped(Or RSKIP=1)And RSKIP=0000 will indicate Two adjacent sectors should be skipped(Or RSKIP=2).
In order to avoid from dead sector location information of the storage for fetching and referring to and passing through the calculating expense of hardware handles With, complexity and delay, the reversed and forward direction in the first code of the disclosure selected embodiment Direct Programming sector skips code or partially Move value of statistical indicant so that automatic sequence can from earliest to it is newest by sector for it is transcribing and reversely be used for record search Operation.Identify that the exemplary sequence of first code is shown referring now to Fig. 4 with the time in order to illustrate for programming sector Passage(For example, from t=1 to t=n+1)Multiple flash array sectors 410,420,430,440 in EEPROM simulating schemes Block diagram 400.In example flash array, each sector 410,420,430,440 is organized stateful field, is reversely skipped (RSKP)Field, forward direction are skipped(FSKP)Field, and instruction have programming state(For example, READY, COMPRESS, RECORDS FILLED etc.)Addition record field.
In first time interval(t=1)Place, flash array includes the first sector 410 for READY(Sector 0)With for The 4th sector 440 of FILLED(Sector 3).In addition it is indicated such as at 401, in the second sector 420(Sector 1)The sector record at place 421 erasing failures, and third sector 430(Sector 2)Including indicating previous sector(For example, sector 1)Just it is being wiped free of(Previously compiled Journey)Status word segment encode(For example, 11_1111_0000).On this time point, state and FSKP fields in sector 410 with Original state programming to specify corresponding conditional code, together with skipping of indicating that no sector is skipped or drift marker value RSKIP= 0、FSKIP=0。
In the second time interval(t=2)Place, if following sector fails to wipe(As indicated at 401), forward direction jump It crosses and is added to the first sector 410(Sector 0)Sector identify position/record(Sector ID).In this regard, it second and the 4th fans The state in area 420,440 remains unchanged.However, third sector 430(Sector 2)Including the record 431 in instruction third sector 430 Mode field 432 being compressed(For example, 10_0000_0000).In addition and as indicated at 402, label is placed on First sector 410(Sector 0)Sector identify position/record(Sector ID)In with indicate in forward direction transcribes direction it is coming The sectors DEAD 422.It is programmed to indicate that any forward direction transcribes sequence in particular, the forward direction in the first sector 410 skips field 411 Row 412 are handling the first sector 410(Sector 0)A sector is skipped later(FSKP=1), to avoid dead sector 420(Sector 1)And enter directly into next running sector 430(Sector 2).Otherwise, the state in sector 410,420,430,440, RSKP It is remained unchanged with FSKP fields.
In third, subsequent time interval(t=n)Locate, the new sector after dead sector has passed through ERASE variations(Such as exist It is indicated at 403).In this regard, the state of the first and second sectors 410,420 remains unchanged.However, in third sector 430(Sector 2)The sector record 433 at place is erasing, and the 4th sector 440 now(Sector 3)Including indicating previous sector (Sector 2)The mode field 441 of erasure completion(For example, 11_1100_0000).Otherwise, in sector 410,420,430,440 State, RSKP and FSKP fields remain unchanged.
In the 4th time interval(t=n+1)Place, is reversely skipped(And optional ECOUNT values)In successful erasing operation (As indicated by 403)It is added to third sector 420 later(Sector 2)Sector identify position/record(Sector ID). On this aspect, second and the 4th the mode field of sector 420,440 remain unchanged.However, in third sector 430(Sector 2)Place Sector record 435 is READY now, and third sector 430(Sector 2)It is including the record 435 in instruction third sector 430 The mode field 436 of READY(For example, 11_1111_1110).In addition it and as indicated at 404, marking and being placed on the Three sectors 430(Sector 2)Sector identify position/record(Sector ID)In with indicate in reverse search direction it is upcoming The sectors DEAD 423.It is programmed to indicate any reverse search sequence in third sector 430 in particular, reversely skipping field 437 438 in processing third sector 430(Sector 2)A sector is skipped later(RSKP=1), to avoid dead sector 420(Sector 1) And enter directly into next running sector 410(Sector 0).Otherwise, the state in sector 410,420,430,440, RSKP and FSKP fields remain unchanged.
Turning now to Fig. 5, shows to be used to generate according to the selected embodiment of the disclosure and be imitated for EEPROM The scalar/vector 506 of the controlled address sequence of flash array 508 in true unit and relevant control module 502,504 Schematic block diagram 500.In selected embodiment, scalar/vector and relevant control module can be in emulation EEPROM dresses Software, hardware, firmware or above-mentioned any combinations are implemented as in the Memory Controller set to be provided to flash memories 508 Controlled address sequence 507, for being fully automatically brought into operation search with the forward and backward skip instruction of programming and transcribing operation To avoid dead sector, come handling dead sector without time-consuming software-interrupt routine.Although not being explicitly illustrated, flash memory storage Device 508 stores the multiple records for being aligned to sector, each includes wherein sector classification conditional code and reversed and forward direction Skip the programmed sector identification position/record of value(Sector ID).As record 509 is read from flash memories 508, Sector ID decoder module 502 is appointed to decode record with identifying using the associated addresses AGU received from scalar/vector 506 What sector identifies position/record(Sector ID), and therefrom extract programmed reversed and forward direction and skip value RSKP, FSKP.Extraction RSKP and FSKP values skip sector count value with forward direction and be provided to dead sector identification module 504 as skipping backward, to Indicate the number of sectors skipped respectively in reversed or forward direction.In order to guide the calculating at dead sector identification module 504, ground Location generation unit 506 provides forward and reverse instruction(For/Rev)To dead sector identification module 504 to indicate scalar/vector 506 whether be forward direction transcribe or reverse search pattern in.By these inputs, dead sector identification module 504 is by by sector Skip the address adjusted value generation sector-size adjustment signal for counting and being converted into being fed to scalar/vector 506(The +/- sectors δ Size).Signal is adjusted using sector-size, scalar/vector 506 can be configured to generate controlled address sequence 507, use In at flash memories 508 search and transcribe operation during automatically avoid dead sector.
In order to illustrate for providing the example EEPROM for searching for and transcribing automatically operation with disclosed sector identification first code Emulation mode, referring now to Fig. 6, it illustrates skipped according to the selected embodiment of the disclosure for programming reversed and forward direction The simplified schematic flowchart 600 of the various methods of value.In the described method, as erasing operation is applied to selected fan Area handles during the forward direction of the array of flash sector transcribes processing and starts from step 601.If sector erasing operation failure (Determine 602 failure result), then handle and the FSKIP values in the sector of the previous qualification with jump value be programmed into and to be located Reason is with the sector for the next qualification compressed(For example, non-dead sector).It is next with the compression of the sector of next qualification The sector of a qualification programs to indicate compressive state its mode field(At step 606), and squeeze operation is to next It is executed on record in qualified sector(At step 608).
At some subsequent point, erasing operation executes on the sector of next qualification.This can be happened at reverse search During operation.Until such erasing operation occurs, the processing of the sector of next qualification lies on the table(Determine 610 negative knot Fruit).However, in the presence of the sector of the next qualification of hand erasing operation when(Determine 610 positive result), handle and return to step 602 to assess the success of erasing operation.If the erasing of the sector of next qualification also fails, step is reprocessed as needed 604,606,608 or until specified limitation, to update programmed FSKIP values to avoid failure or dead sector.However, If sector erasing operates successfully(Determine that 602 pass through result), then the sector being wiped free of at step 612 READY shapes State programs its mode field.In addition, the RSKIP values in the erasing sector with jump value are compiled in the processing at step 612 Journey is to next qualified sector to be processed(For example, non-dead sector).In selected embodiment, ECOUNT values can be by It is included in the programming for the RSKIP values being wiped free of in sector.Once FSKIP and RSKIP values, which are programmed in, is adjacent to one or more In the sector of a dead sector, then dead sector is removed from EEPROM simulation process.After step 612, processing wait for until Erasing operation is applied to next sector(Step 610), handle return to step 602 at this moment.
At present it should be understood that the present invention provides a kind of for emulating in nonvolatile memory or flash memories The method and apparatus of eeprom memory.In disclosed method and system, held on the first nonvolatile memory sector When the first programming operation of row, programmed by storing first state indicator in the identification record of sector non-easy for described first The sector identification record of the property lost memory sectors.Then, second is executed on first nonvolatile memory sector When programming operation, be used as multiple sectors status positions by storing the second positioning indicator in the sector identification record one Divide to program the sector identification record for first nonvolatile memory sector.In selected embodiment, Institute can be used by storing more than first a mode bits in the multiple sectors status position when executing first programming operation First state indicator is stated to program the sector identification record, and can by when executing second programming operation More than second a mode bits are stored in the multiple sectors status position, and the sector identification is programmed with second positioning indicator Record, wherein a mode bit more than described second is adjacent to a mode bit storage more than described first and in the multiple sector-like Higher significance bit position is in state position.In the sector identification record, the multiple sectors status position defines multiple states Indicator, it is described sequentially to arrange to specify multiple sector configuration states for first nonvolatile memory sector, First and second programming operation is wherein needed to change the sector configuration for first nonvolatile memory sector State.With such arrangement, determining that the sector identification record includes the first state indicator but do not include described the Possible sector corruption event associated with the first and second programming manipulation can be detected when two-state indicator.Institute It states the first and second programming operations respectively and is in ready first programming operation and the ready embodiment for completing programming operation, described the One and second positioning indicator be to wipe count value and be stored in the multiple sectors status position first group is minimum has respectively Imitate mode bit.It is the reality for filling the first programming operation and filling completion programming operation respectively in first and second programming operation It applies in example, be stored in respectively in the multiple sectors status position first group of first and second positioning indicator is relatively low to be had Effect mode bit and the higher effective status position of the second adjacent sets being stored in the multiple sectors status position.In described first and Two programming operations are the embodiment of the previous sector programming operation being wiped free of and the previous sector programming operation of qualified erasing respectively In, first group of relatively low effective shape that first and second positioning indicator is stored in respectively in the multiple sectors status position State position and the higher effective status position of the second adjacent sets being stored in the multiple sectors status position.It is compiled described first and second Journey operation is in the embodiment of previous sector erasure completion programming operation and erasure completion programming operation described first and the respectively The first group of relatively low effective status position and be stored in institute that two-state indicator is stored in respectively in the multiple sectors status position State the higher effective status position of the second adjacent sets in multiple sectors status positions.It is pressure respectively in first and second programming operation First programming operation that contracts is completed with compression in the embodiment of programming operation, and first and second positioning indicator is storage respectively First group of relatively low effective status position in the multiple sectors status position and be stored in the multiple sectors status position the The higher effective status position of two adjacent sets.With first and second positioning indicator come when programming the sector identification record, It can determine that first nonvolatile memory sector has been wiped to fail, in such a case, it is possible to by for previous It is programmed to indicator is skipped for being adjacent to described first before being stored in the sector identification record of nonvolatile memory sector The sector identification record of the previous nonvolatile memory sector of nonvolatile memory sector, to be transcribed in forward direction First nonvolatile memory sector is automatically bypassed during sequence.In addition it or in alternative solution, is adjacent in determination When the follow-up nonvolatile memory sector of first nonvolatile memory sector is successfully wiped, can by with Storage is reversely skipped indicator and is used for program in the sector identification record of the follow-up nonvolatile memory sector The sector identification record of the follow-up nonvolatile memory sector, automatically to bypass described the during reverse search sequence One nonvolatile memory sector.
In another form, provide a kind of emulation EEPROM systems, including volatibility RAM, nonvolatile memory, with And control module.The volatibility RAM is used to store and access data via one or more access requests.It is described non-volatile Memory includes multiple sectors of the record for storing the data in the volatile random access memory, wherein often A sector includes corresponding sector head, which is used to store the multiple sectors status positions for defining multiple positioning indicators, The multiple positioning indicator is arranged as being sequentially designated the life cycle sequence of the sector configuration state for the sector.Example Such as, the multiple mode bit may include:A mode bit more than first, for programming first state when executing the first programming operation Indicator;And a mode bit more than second, for programming the second positioning indicator when executing the second programming operation, wherein described A mode bit more than second be adjacent to the storage of a mode bit more than described first and in the multiple sectors status position in compared with High significance bit position.The sector head can also store adjacent for one or more of the nonvolatile memory dead The forward direction of sector skips indicator, and the forward direction is skipped indicator and be can be used for during forward direction transcribes sequence automatically around described One or more adjacent dead sectors, and/or dead adjacent for one or more of described nonvolatile memory of storage The reversed of sector skips indicator, and the reversed indicator of skipping can be used for during reverse search sequence automatically around described One or more adjacent dead sectors.More generally, the sector head can be stored in the nonvolatile memory Indicator is skipped in the sector of one or more adjacent dead sectors, the sector skip indicator can be used in automatic search or One or more of adjacent dead sectors are automatically bypassed during transcribing operation.It is described non-easy in selected embodiment The property lost memory may be implemented as the NAND for storing multiple flash memories sectors or NOR flash memory memory array, often A flash memories sector includes that one or more EEPROM data records and corresponding sector head record.The control mould Block is coupled to the nonvolatile memory and the volatibility RAM, and can be used to utilize the first and second programmings The multiple sectors status position in the sector head to program each sector is operated to change the sector configuration for the sector State.In selected embodiment, the control module includes scalar/vector, for based on from the sector head The sector skip indicator sector-size adjustment signal generate controlled address sequence.
In the form of another, a kind of emulation electrically erasable programmable read-only memory (EEEPROM) device and phase are provided Associated operating method.As disclosed, the EEPROM device includes emulation memory, is had in multiple records The multiple sectors for sequentially storing information, wherein each sector includes:(1)Sector identification record defines multiple shapes for storing Multiple sectors status positions of state indicator, the positioning indicator are arranged as being sequentially designated the sector configuration for the sector The life cycle sequence of state;(2)Forward direction skips indicator, and adjacent for one or more of the emulation memory is dead Sector, the forward direction are skipped indicator and be can be used for during forward direction transcribes sequence automatically around one or more of adjacent Dead sector;And(3)Indicator reversely is skipped, for the adjacent dead sector of one or more of the emulation memory, institute Reversed indicator of skipping is stated to can be used for automatically bypassing one or more of adjacent dead sectors during reverse search sequence. The EEEPROM devices further include the Memory Controller for being couple to the emulation memory, wherein the Memory Controller It can be used to program using the first and second programming operations the multiple in the sector identification record of each sector Sectors status position is to change the sector configuration state for the sector.In selected embodiment, the emulation memory The NAND for storing multiple flash memories sectors or NOR flash memory memory are may be implemented as, each flash memory storage Device sector includes one or more EEPROM data records and corresponding sector identification record.
Although the exemplary embodiment of description disclosed herein is directed to for detecting event of rationing the power supply and searching for and transcribing The method and apparatus that dead sectors process is automatically eliminated during operation, but the present invention is not necessarily limited to illustrate being suitable for for the present invention The example embodiment of the inventive aspect of various EEPROM simulating schemes.In addition, selected embodiment can use other memories System, such as dynamic random access memory (DRAM), static RAM (SRAM), magnetoresistive RAM (MRAM) or phase change random access memory devices (PCRAM) or hard drive storage system are realized.Since the present invention can be with The apparent different but of equal value mode of those skilled in the art with interests taught herein is changed and put into practice, because This, particular embodiments disclosed above is merely illustrative and should not be considered as limitative to the invention.Therefore, preceding The description in face, which is not intended to, limits the invention to illustrated particular form, on the contrary, it is intended to cover such as may include by appended Such substitute, modification and equivalent in spirit and scope of the present invention, to this field skill Art personnel it should be understood that they various modifications may be made, replace and change without departing from this hair in the form of its is broadest Bright spirit and scope.
Benefit, further advantage and solution to the problem are described with regard to specific embodiment above.However, it is possible to lead Any benefit, advantage or solution is caused to occur or become more significant benefit, advantage, solution to the problem, Yi Jiren What element is not interpreted the key of any or all of claim, required or necessary feature or element.Such as institute here It uses, term " comprising " or its any other version are intended to cover nonexcludability content, such as it includes element list But not only include processing, method, object or the device of these elements, and may include be not explicitly listed or in this way Processing, the intrinsic other elements of method, object or device.

Claims (18)

1. a kind of method of the eeprom memory in emulation nonvolatile memory, including:
When executing the first programming operation on the first nonvolatile memory sector, by storing first in the identification record of sector Positioning indicator programs the sector identification record for first nonvolatile memory sector;And
When executing the second programming operation on first nonvolatile memory sector, by the sector identification record The second positioning indicator is stored as a part for multiple sectors status positions to program for first nonvolatile memory The sector identification record of sector,
Wherein the multiple sectors status position is defined non-with specified described first by the multiple positioning indicators sequentially arranged Multiple sector configuration states of volatile memory sector, and wherein need first and second programming operation to change The sector configuration state of the first nonvolatile memory sector is stated,
Wherein, the method further includes:
It determines that first nonvolatile memory sector has been wiped to fail;And
Pass through the sector in the previous nonvolatile memory sector for being adjacent to first nonvolatile memory sector Before being stored in identification record the sector identification note for previous nonvolatile memory sector is programmed to indicator is skipped Record during forward direction transcribes sequence automatically to bypass first nonvolatile memory sector.
2. according to the method described in claim 1, further including determining that the sector identification record includes that the first state refers to When showing device but not including second positioning indicator, possible fan associated with first and second programming operation is detected Area damages event.
3. executing first volume according to the method described in claim 1, wherein storing the first state indicator and being included in When journey operates, more than first a mode bits are stored in the multiple sectors status position, and wherein store second state and refer to When showing that device is included in execution second programming operation, more than second a mode bits are stored in the multiple sectors status position, Described in more than second a mode bits be adjacent to the storage of a mode bit more than described first and in the multiple sectors status position In higher significance bit position.
4. according to the method described in claim 1, wherein described first and second programming operation respectively includes ready first programming Operation and ready completion programming operation, and wherein described first and second positioning indicator respectively includes erasing count value and deposits Store up first group of minimum effective status position in the multiple sectors status position.
5. according to the method described in claim 1, wherein described first and second programming operation respectively includes the first programming of filling Operation and filling complete programming operation, and wherein described first and second positioning indicator respectively include being stored in it is the multiple First group of relatively low effective status position in sectors status position and the second adjacent sets for being stored in the multiple sectors status position compared with High effective status position.
6. according to the method described in claim 1, wherein described first and second programming operation respectively include being wiped free of it is previous Sector program operates and the previous sector programming operation of qualified erasing, and the wherein described first and second positioning indicators difference First group of relatively low effective status position including being stored in the multiple sectors status position and it is stored in the multiple sectors status The higher effective status position of the second adjacent sets in position.
7. according to the method described in claim 1, wherein described first and second programming operation respectively includes previous sector erasing Programming operation and erasure completion programming operation are completed, and wherein described first and second positioning indicator respectively includes being stored in First group of relatively low effective status position in the multiple sectors status position and be stored in the multiple sectors status position second The higher effective status position of adjacent sets.
8. according to the method described in claim 1, wherein described first and second programming operation respectively includes the first programming of compression Operation and compression complete programming operation, and wherein described first and second positioning indicator respectively include being stored in it is the multiple First group of relatively low effective status position in sectors status position and the second adjacent sets for being stored in the multiple sectors status position compared with High effective status position.
9. according to the method described in claim 1, further including:
Determine that the follow-up nonvolatile memory sector for being adjacent to first nonvolatile memory sector is successfully wiped; And
Reversely instruction is skipped by being stored in the sector identification record for the follow-up nonvolatile memory sector Device programs the sector identification record for the follow-up nonvolatile memory sector with automatic during reverse search sequence Ground bypasses first nonvolatile memory sector.
10. a kind of emulation EEPROM systems, including:
Volatile random access memory, for storing and accessing data via one or more access requests;
Nonvolatile memory includes the more of the record for storing the data in the volatile random access memory Each sector of a sector, the multiple sector includes corresponding sector head, and the sector head defines multiple states for storing Multiple sectors status positions of indicator, the multiple positioning indicator is arranged as being sequentially designated matches for the sector of the sector The life cycle sequence of state is set, wherein each sector head further includes for one or more of described nonvolatile memory Indicator post is skipped in the sector that indicator is skipped for storing sector of adjacent dead sector, and indicator energy is skipped in the sector For automatically bypassing one or more of adjacent dead sectors during automatically searching for or transcribing operation;And
Control module is couple to the nonvolatile memory and the volatile memory, wherein the control module can Operate the multiple sectors status position in sector head for programming each sector using the first and second programming operations with Change the sector configuration state for the sector.
11. emulation EEPROM systems according to claim 10, wherein the nonvolatile memory includes for storing The flash memories of multiple flash memories sectors, each flash memories sector include one or more EEPROM data Record and corresponding sector head record.
12. emulation EEPROM systems according to claim 11, wherein flash memories include nand flash memory array or NOR Flash array.
13. emulation EEPROM systems according to claim 10, wherein the multiple mode bit includes:
A mode bit more than first, for programming first state indicator when executing the first programming operation;And
A mode bit more than second, for programming the second positioning indicator when executing the second programming operation,
Wherein described more than second a mode bit is adjacent to a mode bit storage more than described first and in the multiple sector-like Higher significance bit position is in state position.
14. emulation EEPROM systems according to claim 10, wherein each sector head further includes for described non-volatile Property the adjacent dead sector of one or more of memory for skipping indicator position to the forward direction for skipping indicator before storing Set, the forward direction skip indicator can be used to during forward direction transcribes sequence automatically to bypass it is one or more of adjacent dead Sector.
15. emulation EEPROM systems according to claim 10, wherein each sector head further includes for described non-volatile Property the adjacent dead sector of one or more of memory for storing reversed skip the reversed of indicator and skip indicator position Set, it is described it is reversed skip indicator can be used to automatically bypass during reverse search sequence it is one or more of adjacent dead Sector.
16. emulation EEPROM systems according to claim 10 are used wherein the control module includes scalar/vector Controlled address sequence is generated in adjusting signal based on the sector-size for skipping indicator from the sector in the sector head Row.
17. a kind of emulation electrically erasable programmable read-only memory EEEPROM devices, including:
Emulation memory has multiple sectors for sequentially storing information in multiple records, and each sector includes:
Sector identification record position, for storing the multiple sectors status positions for defining multiple positioning indicators, the multiple state Indicator is arranged as being sequentially designated the life cycle sequence of the sector configuration state for the sector;
Forward direction skips indicator post, for the adjacent dead sector of one or more of the emulation memory, the forward direction Skipping indicator post can be used to automatically bypass one or more of adjacent dead sectors during forward direction transcribes sequence;With And
Indicator post reversely is skipped, it is described reversed for the adjacent dead sector of one or more of the emulation memory Skipping indicator post can be used to automatically bypass one or more of adjacent dead sectors during reverse search sequence;With And
Memory Controller is couple to the emulation memory, wherein the Memory Controller can be used to utilize the One and the second the multiple sectors status position in the sector identification record of the programming operation to program each sector to change Sector configuration state for the sector.
18. EEEPROM devices according to claim 17, wherein the emulation memory includes for storing multiple flash memories The flash memories of memory sectors, each flash memories sector include one or more EEPROM data records and phase The sector identification record answered.
CN201410049600.7A 2013-02-25 2014-02-13 Robust sector ID scheme for tracking dead sector to search for and transcribe automatically Active CN104008020B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/776,052 US9424176B2 (en) 2013-02-25 2013-02-25 Robust sector ID scheme for tracking dead sectors to automate search and copydown
US13/776,052 2013-02-25

Publications (2)

Publication Number Publication Date
CN104008020A CN104008020A (en) 2014-08-27
CN104008020B true CN104008020B (en) 2018-10-19

Family

ID=51368684

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410049600.7A Active CN104008020B (en) 2013-02-25 2014-02-13 Robust sector ID scheme for tracking dead sector to search for and transcribe automatically

Country Status (2)

Country Link
US (1) US9424176B2 (en)
CN (1) CN104008020B (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9563491B2 (en) * 2014-09-12 2017-02-07 Nxp Usa, Inc. High voltage failure recovery for emulated electrically erasable (EEE) memory system
US9996458B1 (en) * 2017-07-12 2018-06-12 Nxp Usa, Inc. Memory sector retirement in a non-volatile memory
CN112347002B (en) * 2020-11-13 2023-07-28 杭州芯炬视人工智能科技有限公司 flash data storage method, system, computer equipment and storage medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6904400B1 (en) * 1998-09-30 2005-06-07 Stmicroelectronics S.R.L. Flash EEPROM memory emulator of non-flash EEPROM device and corresponding method
CN102081577A (en) * 2011-01-12 2011-06-01 厦门雅迅网络股份有限公司 Data storage structure of Flash memory and data manipulation mode thereof

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7190617B1 (en) 1989-04-13 2007-03-13 Sandisk Corporation Flash EEprom system
US5784611A (en) 1994-12-19 1998-07-21 Seagate Technology, Inc. Device and process for in-system programming electrically erasable and programmable non-volatile memory
US7058755B2 (en) 2003-09-09 2006-06-06 Ballard Power Systems Corporation EEPROM emulation in flash memory
PL363945A1 (en) 2003-12-08 2005-06-13 Advanced Digital Broadcast Polska Spółka z o.o. Software method for eeprom memory emulation
US7600090B2 (en) 2005-11-28 2009-10-06 Atmel Corporation Microcontroller based flash memory digital controller system
WO2007090432A1 (en) 2006-02-09 2007-08-16 Freescale Semiconductor, Inc. An electronic device having a memory element and method of operation therefor
JP2010020586A (en) 2008-07-11 2010-01-28 Nec Electronics Corp Data processing device
US8010854B2 (en) 2009-05-28 2011-08-30 Freescale Semiconductor, Inc. Method and circuit for brownout detection in a memory system
EP2302638B1 (en) * 2009-09-21 2013-04-17 STMicroelectronics (Rousset) SAS Method for writing and reading data in a non-volatile memory, by means of metadata
US8250319B2 (en) 2009-09-29 2012-08-21 Freescale Semiconductor, Inc. Operating an emulated electrically erasable (EEE) memory
US8271719B2 (en) * 2009-10-29 2012-09-18 Freescale Semiconductor, Inc. Non-volatile memory controller device and method therefor
US8255616B2 (en) * 2010-01-12 2012-08-28 Freescale Semiconductor, Inc. Non-volatile memory device and method therefor
US8473710B2 (en) 2010-04-29 2013-06-25 Freescale Semiconductor, Inc. Multiple partitioned emulated electrically erasable (EEE) memory and method of operation
US8341372B2 (en) 2010-04-29 2012-12-25 Freescale Semiconductor, Inc. Emulated electrically erasable (EEE) memory and method of operation
US8438327B2 (en) 2010-06-30 2013-05-07 Freescale Semiconductor, Inc. Recovery scheme for an emulated memory system
US8516213B2 (en) 2010-11-24 2013-08-20 Freescale Semiconductor, Inc. Method and apparatus for EEPROM emulation for preventing data loss in the event of a flash block failure
US20130268717A1 (en) * 2012-04-09 2013-10-10 Ross S. Scouller Emulated electrically erasable memory having sector management

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6904400B1 (en) * 1998-09-30 2005-06-07 Stmicroelectronics S.R.L. Flash EEPROM memory emulator of non-flash EEPROM device and corresponding method
CN102081577A (en) * 2011-01-12 2011-06-01 厦门雅迅网络股份有限公司 Data storage structure of Flash memory and data manipulation mode thereof

Also Published As

Publication number Publication date
US20140244895A1 (en) 2014-08-28
CN104008020A (en) 2014-08-27
US9424176B2 (en) 2016-08-23

Similar Documents

Publication Publication Date Title
CN103119569B (en) Non-volatile multilevel memory operation based on storage bar
JP3485938B2 (en) Nonvolatile semiconductor memory device
US9923562B1 (en) Data storage device state detection on power loss
JP5413691B2 (en) Built-in mapping information for memory devices
TWI375151B (en) A controller for one type of nand flash memory for emulating another type of nand flash memory and methods for the same
CN108664418A (en) data storage device and operation method thereof
CN107037976A (en) Storage device and its method of work
US7725646B2 (en) Method of using a flash memory for a circular buffer
JP2012523599A5 (en)
CN106155582B (en) Non-volatile memory device and controller
US8516213B2 (en) Method and apparatus for EEPROM emulation for preventing data loss in the event of a flash block failure
TW201931366A (en) Data storage device and control method for non-volatile memory
CN110618892B (en) Bug positioning method and device of solid state disk, electronic equipment and medium
CN109815160A (en) It is ultimately written page search
CN104008020B (en) Robust sector ID scheme for tracking dead sector to search for and transcribe automatically
CN110389906A (en) The method and its controller and system of data are rearranged in memory component
CN109426441A (en) data storage device and operation method thereof
CN105988936B (en) Non-volatile memory device and controller
CN109840162A (en) Memory device and its operating method
KR101627322B1 (en) Apparatus and Method for storing data using non-volatile buffer
CN103870209B (en) Working mode switching method, Memory Controller and memorizer memory devices
CN111324554B (en) Management method and device of flash memory data and elevator controller
CN106528321B (en) Data recovery circuit, semiconductor storage and data reconstruction method
CN104217757B (en) The programmed method of nonvolatile memory
CN109460316A (en) Data reconstruction method and system, storage medium based on temperature difference equilibrium

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Texas in the United States

Applicant after: NXP America Co Ltd

Address before: Texas in the United States

Applicant before: Fisical Semiconductor Inc.

GR01 Patent grant
GR01 Patent grant