CN103164342B - Coordinate during the carry of availability of data - Google Patents

Coordinate during the carry of availability of data Download PDF

Info

Publication number
CN103164342B
CN103164342B CN201210534198.2A CN201210534198A CN103164342B CN 103164342 B CN103164342 B CN 103164342B CN 201210534198 A CN201210534198 A CN 201210534198A CN 103164342 B CN103164342 B CN 103164342B
Authority
CN
China
Prior art keywords
nvm
file system
lba
data
block
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
CN201210534198.2A
Other languages
Chinese (zh)
Other versions
CN103164342A (en
Inventor
D·J·波斯特
N·J·瓦卡拉特
V·科麦尔尼斯基
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.)
Apple Inc
Original Assignee
Apple Computer 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 Apple Computer Inc filed Critical Apple Computer Inc
Publication of CN103164342A publication Critical patent/CN103164342A/en
Application granted granted Critical
Publication of CN103164342B publication Critical patent/CN103164342B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1847File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
    • 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/7201Logical to physical mapping or translation of blocks or pages

Abstract

Provide the method and system for determining availability of data.Be disclosed for the system and method for coordination data availability during carry.During System guides, nonvolatile memory (" NVM ") can be enumerated, and NVM drive mapping can be obtained.Described NVM drive mapping can comprise the actual availability of LBA in NVM.So file system by carry, and can generate generation file system distribution state.Described file system distribution state can indicate the file system view of LBA availability.Subsequently, availability of data Coordination Treatment can be performed.That is, file system distribution state and NVM drive mapping can be superposed and are compared mutually, to disclose any difference.

Description

Coordinate during the carry of availability of data
Background technology
The nonvolatile memory (NVM) of nand flash memory and other types is often used to massive store.For example, the electronic equipment for consumption of portable electronic device and so on often contains the flash memory for storing music, video and other media.
System can store dissimilar file in NVM.When system suffers from mistake, between the actual file stored in the file system view of the file stored in NVM and NVM, likely there will be difference.Finally, when file system needs access one specific file, this system may find that this file is damage or is non-existent in NVM.So this situation will make file system attempt from external source recovery file.For Consumer's Experience, during Dynamic System, find that difference and follow-up Recovery processing are likely destructive.
Summary of the invention
The system and method that disclosed is for coordination data availability during carry.During System guides, nonvolatile memory (NVM) driver can be enumerated, and NVM drive mapping can be obtained.This NVM drive mapping can comprise the actual availability of LBA in NVM.Then, file system can by carry, and can spanned file system assignment state.Described file system distribution state can indicate the file system view of LBA availability.Subsequently, availability of data can be performed coordinate.That is.File system distribution state and NVM drive mapping can be superposed and are compared mutually, to disclose any difference.
Accompanying drawing explanation
Come in conjunction with the drawings, with reference to the following detailed description, above and other aspect of the present invention and advantage can be more clearly understood, the part that reference character identical in accompanying drawing index is all the time identical, and wherein:
Fig. 1 and Fig. 2 is the block diagram of the electronic equipment according to various embodiments of the present invention configuration;
Fig. 3 is the process flow diagram for the exemplary process of coordination data availability during System guides according to various embodiments of the present invention;
Fig. 4 is the graphics view mapped according to the illustration usability status of it seems from the angle of file system and non volatile memory drives of various embodiments of the present invention;
Fig. 5 is the process flow diagram of the exemplary process for recovering data according to various embodiments of the present invention;
Fig. 6 is the process flow diagram of the exemplary process for determining availability of data according to various embodiments of the present invention;
Fig. 7 is the block diagram for providing logic to the illustration of physical mappings to set according to various embodiments of the present invention; And
Fig. 8 be according to various embodiments of the present invention for the treatment of can not the process flow diagram of exemplary process of correction data.
Embodiment
Provide system and method for coordination data availability during carry.During System guides, nonvolatile memory (NVM) driver can be enumerated, and NVM drive mapping can be acquired.Described NVM drive mapping can comprise the actual availability of LBA in NVM.
So can carry file system.The file system distribution state of the file system view being used to indicate LBA availability can be generated during carry.Subsequently, availability of data can be performed coordinate.That is, file system distribution state and NVM drive mapping can be superposed and are compared mutually, to disclose any difference.
More specifically, for the available LBA scope of each in file system distribution state, file system can send order to the NVM interface of system.Once receive this order, NVM interface just can determine whether NVM drive mapping has consistent state.
If NVM interface determines NVM drive mapping inconsistent (such as LBA scope unavailable at least partially), so NVM interface can send the information of this inconsistency of instruction to file system.For LBA scope used herein, if learn that described LBA scope is not recoverable or unmapped, described LBA scope is exactly " disabled ".Once receive this information, then file system can regulative strategy, in order to restore these data be associated at least partially with LBA scope.
Shown in Fig. 1 is the block diagram of electronic equipment 100.In certain embodiments, electronic equipment 100 can be or can comprise the electronic equipment of portable electronic device, cell phone, the personal computer of pocket size, PDA(Personal Digital Assistant), desktop PC, laptop computer and other any suitable types.
Electronic equipment 100 can comprise SOC (system on a chip) (SoC) 110 and nonvolatile memory (NVM) 120.Nonvolatile memory 120 can comprise nand flash memory, NOR flash memory, Erarable Programmable Read only Memory (EPROM), EEPROM (Electrically Erasable Programmable Read Only Memo) (EEPROM), ferroelectric formula RAM(FRAM based on floating boom or electric charge capture technology), magnetic resistance RAM(MRAM) or its any combination.
NVM120 can be organized into " block ", and described piece can be minimum erasable unit, and can be organized into further " page ", and the described page is the minimum unit that can be programmed or read.In certain embodiments, NVM120 can comprise multiple integrated circuit, and wherein each integrated circuit can have multiple pieces.Storage unit (page of such as block or block) from corresponding integrated circuit can be formed " superblock ".Each storage unit (the such as page or block) of NVM120 can use physical address (such as physical page address or physical block address) to quote.
In certain embodiments, one or more physical blocks of NVM120 can store contextual information." contextual information " used herein refers to the information be associated with the state of whole NVM at concrete time point.Such as, contextual information can be included in the logic of each block of the relevant NVM120 of concrete moment to physical mappings." logic is to physical mappings " used herein can be the mapping between one or more logical addresses (such as logic sector) of page of data and physical page address.
In certain embodiments, one or more pieces of NVM120 can comprise block contents table (TOC).Each block TOC can comprise the information of block page-map to respective logical addresses.In certain embodiments, block TOC can only include the logical address (such as LBA (Logical Block Addressing) (LBA) or logical page number) for each page be programmed in block.In other embodiments, block TOC can also comprise the comparative lifetime (such as some pages are relative to the update time of other pages) of the renewal carried out for the page.In this type of embodiment, block TOC can comprise the logical address-life-span pairing of each page for being programmed.
SOC (system on a chip) 110 can comprise SoC control circuit 112, storer 114 and NVM interface 118.SoC control circuit 112 can the routine operation of miscellaneous part of control SoC110 and SoC110 or equipment 100 and function.Such as, in response to user's input and/or application or the instruction of operating system, SoC control circuit 112 can issue read or write command to NVM interface 118, to obtain data or data are write NVM120 from NVM120.Although data may not apply direct correlation with user or user, for the sake of clarity, SoC control circuit 112 can be asked the data storing or retrieve to be called " user data " here.Or rather, user data can be any suitable digital information sequence being generated or obtained (such as via application or operating system) by SoC control circuit 112.
SoC control circuit 112 can be comprised hardware, software and firmware and can be carried out any combination of any assembly of function of drive electronics 100, circuit or logic by operation.Such as, SoC control circuit 112 can be included in one or more processors of operating under the control of the software/firmware stored in NVM120 or storer 114.
Storer 114 can comprise the volatile memory of any suitable type, such as random-access memory (ram) (such as static RAM (SRAM) (SRAM), dynamic RAM (DRAM), Synchronous Dynamic Random Access Memory (SDRAM), Double Data Rate (DDR) RAM), cache memory, ROM (read-only memory) (ROM) or its any combination.Storer 114 can comprise storing temporarily and is programmed in nonvolatile memory 120 or the data source of the user data therefrom read.In certain embodiments, storer 114 can serve as the primary memory of any processor that the part as SoC control circuit 112 is implemented.
Storer 114 can comprise for stored logic to one or more data structures of physical mappings.Such as, storer 114 can comprise the tree that can provide mapping between LBA scope and NVM120 respective physical address.Composition graphs 6 and Fig. 7 these trees will be described in more detail hereinafter.
NVM interface 118 can comprise any appropriately combined of hardware, software and/or the firmware being configured to serve as interface between SoC control circuit 112 and NVM120 or driver.For any software module be included in NVM interface 118, corresponding program code can be stored in NVM120 or storer 114.
NVM interface 118 can perform the several functions of the storage unit (such as the page, block, superblock, integrated circuit) allowing SoC control circuit 112 to access NVM120 and management NVM120 and the data (such as user data) stored in it.Such as, NVM interface 118 can explain the read or write request from SoC control circuit 112, performs wear leveling, and generates the reading compatible mutually with the bus protocol of NVM120 and programming instruction.
Although NVM interface 118 and SoC control circuit 112 to be depicted as module separately, this is only used to simplify the description about the embodiment of the present invention.It should be understood that these modules can share each hardware component, each software part or both.Such as, SoC control circuit 112 can be the memory drives that NVM interface 118 performs based on software.
In certain embodiments, electronic equipment 100 can comprise the target device of some or all (such as, conversion layer as will be discussed) wherein including NVM120 and NVM interface 118, and such as flash drive or secure digital (SD) block.In these embodiments, SoC110 or SoC control circuit 112 can serve as the console controller of target device.Such as, as console controller, SoC110 can issue to target device and read and write request.
Fig. 2 is exemplified with the block diagram of the electronic equipment 200 according to each embodiment, and wherein this figure illustrate in more detail electronic equipment 100(Fig. 1) in some firmwares, software and/or hardware component.Electronic equipment 200 can have any Characteristic and function described in above composition graphs 1, and vice versa.As shown, what dotted line was demarcated is layering.It should be understood that about the description fallen within calibration line of which assembly be only exemplary, and one or more parts can be under the jurisdiction of different layers.
Electronic equipment 200 can comprise file system 210, NVM driver 212, NVM bus controller 216 and NVM220.In certain embodiments, file system 210 and NVM driver 212 can be software or firmware module, and NVM bus driver 216 and NVM220 can be hardware modules.Correspondingly, in these embodiments, NVM driver 212 can represent software or the firmware aspect of NVM interface 218, and NVM bus controller 216 can represent the hardware aspect of NVM interface 218.
File system 210 can comprise the file system of any suitable type, such as file allocation table (FAT) file system or expansion hierarchical file system (HFS+), and can be a part (part for the SoC control circuit of such as Fig. 1) for the operating system of electronic equipment 200.In certain embodiments, file system 210 can comprise the page is provided logic to the flash file system of physical mappings.In these embodiments, file system 210 can perform the some or all of functions of NVM driver 212 as described below, and thus, file system 210 and NVM driver 212 both can be may not be module separately.
File system 210 can manage file and the folder structure of application and operating system.Work under the control of the application that file system 210 can be run on electronic equipment 200 or operating system, and can application operating system request from NVM220 reading information or to its stored in during information to NVM driver 212 provide read and write order.Together with each read or write command, the position that file system 210 can also provide a logical address should be read with indicating user data or write, such as logical page address or have the page skew LBA.
File system 210 can provide to directly not compatible with NVM220 NVM driver 212 and read and write request.Such as, logical address can use the system stipulations observed of typical case based on hard-drive or agreement.Different from flash memory, based on hard-drive system can when the erasing of not first execution block overwrite storage unit.In addition, hard-drive can not need wear leveling process to improve the serviceable life of equipment.Therefore, NVM interface 218 can the specific function of execute store, the specific function of producer or these two kinds of functions all, thus process file system requests in the mode of applicable NVM220 and perform other management functions.
NVM driver 212 can comprise conversion layer 214.In certain embodiments, conversion layer 214 can be or comprise flash conversion layer (FTL).For write order, provided logical address can be mapped to the free physical position of having wiped on NVM220 by conversion layer 214.For reading order, conversion layer 214 can use provided logical address to determine the physical address storing requested data.Because each NVM likely has different layouts according to the size of NVM or producer, therefore, this map operation is likely specific to storer and/or producer.Except logical-physical address maps, conversion layer 214 can also perform other any suitable functions.For example, conversion layer 214 can perform other any functions that flash conversion layer typical case has, such as refuse collection (GC) and wear leveling.
For example, conversion layer 214 can discharge the block of the NVM220 be programmed by performing refuse collection, to wipe.For example, once be released and wipe, each storage unit then can be used for storing the new user data being received from file system 210.In some cases, GC process can comprise by valid data from block copy of programming to another block with the storage unit of having wiped, and the valid data taking this to make to programme in block are invalid.Once make all storage unit of programming in block invalid, then conversion layer 214 can guide bus controller 216 to perform erase operation to described block of having programmed." valid data " used herein can refer to the user data be programmed in response to the nearest write order corresponding with one or more logical address (such as LBA), and can be effective version of the user data for one or more logical address thus.
NVM driver 212 can dock with NVM bus controller 216, to complete NVM access command (such as programme, read and erase command).Bus controller 216 can serve as the hardware interface being docked to NVM220, and can use the bus protocol of NVM220, data rate and other specifications to communicate with NVM220.
NVM interface 218 can manage NVM220 based on memory management data, and described data are here also sometimes referred to as " metadata ".Metadata can be generated by NVM driver 212, or can be by the CMOS macro cell operated under the control of NVM driver 212.For example, metadata can comprise for managing following any information: the mapping between logic and physical address, bad block management, wear leveling, for detecting or error correcting code (ECC) data of correction of data mistake or its any combination.Described metadata can comprise together with user data the data that file system provides, such as logical address.So generally speaking, " metadata " can refer to about user data or any information relevant to user data, or is be normally used for the operation of managing non-volatile memory and any information of storage unit.
NVM interface 218 can be configured to storing metadata in NVM220.In certain embodiments, the metadata store be associated with user data can be stored the same memory cell (such as the page) of user data wherein by NVM interface 218.Give an example, NVM interface 218 can in one or more cell stores user data of NVM220, the logical address be associated and the ECC data about user data.NVM interface 218 can also store up the metadata of the other types relevant to user data in identical memory cell.
NVM interface 218 can store logical addresses, thus when NVM220 is energized or during NVM220 operation, electronic equipment 200 can determine the data residing in this storage unit place.More specifically, because file system 210 can quote this user data by its physical location not non-according to the logical address of user data, therefore user data and logical address can be stored together by NVM interface 218, to keep its relevance.Thus, for example, even if keep the concordance list of physics-logical mappings out-of-date in NVM220, NVM interface 218 also still can be energized at electronic equipment 200 or determine appropriate mapping when guiding.
Usually, when system suffers from mistake (such as expendable NVM mistake during Dynamic System, file system error, or conventional system mistake) time, there is difference between the actual file stored in the file system view of the file that likely can store in NVM and NVM.For example, reboot period halfway, file system is likely for file allocation LBA(such as metadata has been updated to reflect that file is downloaded), but this file is not but still programmed to NVM.
In such situations, file system likely supposes that one or more LBA can use (the recoverable user data stored in such as one or more LBA and NVM is associated), but described one or more LBA reality is likely disabled." unavailable LBA " used herein can refer to the LBA not being assigned with/not mapping (LBA be not such as associated with the user data stored in NVM) or known not recoverable (error correcting code of the user data be such as associated with described LBA is inoperative).In a certain moment after a while, when file system needs to access one or more LBA, this system likely finds that the user data be associated is lost or damages.So file system likely attempts the user data recovering to be associated with one or more LBA.But this process likely can have a negative impact to Consumer's Experience.
In certain embodiments, to intercept difference different from wait user, and system can be initiated a complete NVM and scan during Dynamic System.By by the file system view about LBA availability compared with NVM scanning result, system can detect difference.This can be a process consuming time, and because system needs are fully in response to application request, therefore also can throw into question while Dynamic System.
Correspondingly, in order to avoid these performance issues, system can comparatively early the moment initiates Coordination Treatment, especially during System guides one.Can allow like this to perform coordination when affecting minimum on system performance.More specifically, because file system not yet must make response to the reading and write request carrying out self-application during guiding, therefore this system has sufficient time to perform Coordination Treatment.Thus, the baseline of available LBA can be determined before system becomes overall operations, and system access can be put off, until system reaches a Known good state.In addition, due to Coordination Treatment reply is only the small data structure be stored in volatile memory, and therefore, compared with the process of intactly NVM being read a time, this Coordination Treatment can be performed by faster.
With reference now to Fig. 3, the process 300 of coordination data availability during System guides that what this illustrated is.Process 300 can start from step 302, and in step 304, NVM driver (the NVM driver 212 of such as Fig. 2) can be enumerated.More specifically, the NVM drive mapping be stored in volatile memory (storer 114 of such as Fig. 1) can be obtained during enumerating.Described NVM drive mapping can comprise the actual availability of the LBA in NVM.
Enumerating of NVM driver can by the NVM220 of NVM120 or Fig. 2 of scan N VM(such as Fig. 1) perform.Such as, NVM interface (NVM interface 118 of such as Fig. 1 or the NVM interface 218 of Fig. 2) can read the contextual information be stored in NVM, and wherein said contextual information comprises logic to physical mappings.Then, logic can be loaded in volatile memory to physical mappings by NVM interface.In some cases, NVM interface can identify to have the logic that do not caught by contextual information one or more pieces (blocks of such as recent renewal) to physical mappings.Thus, NVM interface can scan the block TOC of one or more pieces, so that the logic upgraded in volatile memory is to physical mappings.
In certain embodiments, logic to the physical mappings of renewal can be stored in suitable data structure, such as tree or mapping table.Based on the result (logic such as upgraded is to physical mappings) that NVM driver is enumerated, NVM interface can obtain the NVM drive mapping of the availability of the LBA that can indicate in NVM.Tree and NVM drive mapping will be discussed in more detail by composition graphs 6 and 7 hereinafter.
In other embodiments, NVM interface can obtain NVM drive mapping (such as by checking the state of the one or more marks be stored in NVM) by direct scan N VM.Below will composition graphs 8 be discussed by this process in more detail.
NVM drive mapping can adopt any suitable form.For example, with reference now to Fig. 4, this figure shows the mapping of illustrative usability status from the angle of file system and NVM driver.More specifically, NVM drive mapping 402 can indicate the availability of the LBA scope 1-5 determined by NVM interface (such as, the NVM interface 118 of Fig. 1 or the NVM interface 218 of Fig. 2).As shown, the LBA that available LBA(is such as associated with the recoverable user data stored in NVM) indicate with horizontal line, disabled LBA(does not such as map or uncorrectable LBA) then indicate by blank spaces.It will be understood by those skilled in the art that NVM drive mapping 402 can provide all LBA in the LBA(of any right quantity such as system) availability.For simplicity, illustrate only a subset of NVM drive mapping in the diagram.
NVM drive mapping 402 can be stored in volatile memory (storer 114 of such as Fig. 1) as any suitable data structure, and wherein for example, described data structure can be bitmap, mapping table or range list.In certain embodiments, each entry of NVM drive mapping 402 can correspond to individual bit.That is, each entry of described bitmap can store a binary value (such as 0 or 1), and wherein each binary value can corresponding to the usability status of the LBA be associated (such as can with or unavailable).As replacement, each entry of described bitmap can correspond to multiple bit, and can store the additional information relevant to the usability status of the LBA be associated (such as LBA be available, unavailable-do not map or unavailable-not recoverable) thus.Because NVM drive mapping 402 only needs the availability storing LBA, therefore NVM drive mapping 402 can take relatively little space in volatile memory.
Back with reference to figure 3, in step 306, file system (file system 210 of such as Fig. 2) can by carry.During carry process, can spanned file system assignment state from file system journal.This file system assignment state can indicate the file system view of LBA availability.For example, refer again to Fig. 4, file system distribution state 404 can represent the file system view of the availability of LBA scope 1-5.Similar to NVM drive mapping 402, file system distribution state 404 can be stored, such as bitmap, mapping table or range list as any suitable data structure.In addition, each entry of file system distribution state 404 can correspond to one or more bit.
Continue the step 308 of Fig. 3, do not map when can perform guiding.More specifically, file system can provide list about current unmapped LBA to NVM driver.Then, process 300 and can move to step 310.
In step 310, availability of data Coordination Treatment can be performed.More specifically, new communication path can be set up between file system and NVM interface, and file system distribution state can be superposed and is compared mutually with NVM drive mapping, to disclose any difference.Because file system distribution state and NVM drive mapping are the relatively little data structures be stored in volatile memory, therefore, this execution speed comparing process is relatively very fast.
In desirable sight, file system distribution state and NVM drive mapping should be identical.But, any difference between file system distribution state and NVM drive mapping wherein file system can be indicated to suppose one or more LBA is available and these LBA reality are disabled situations in NVM.Based on these differences, file system can start a multiple process, to restore the data be associated with one or more disabled LBA.
With reference now to Fig. 5, what illustrate is exemplary process 500 for recovering data.Process 500 can start from step 502, and in step 504, file system (file system 210 of such as Fig. 2) can determine file system distribution state (the file system distribution state 404 of such as Fig. 4) during System guides.
So, in step 506, for the available LBA scope of each in file system distribution state, file system can transmit order, to determine whether NVM drive mapping (the NVM drive mapping 402 of such as Fig. 4) has consistent state to NVM interface (NVM interface 118 of such as Fig. 1 or the NVM interface 218 of Fig. 2).In some cases, this order can adopt the form that application programming interface (API) is ordered.API can be any suitable interface allowing software program or module and other software interactives.
So, file system is supposed that for each LBA scope of distributing in file system distribution state (the LBA scope 1-5 of such as Fig. 4), file system can transmit api command.In certain embodiments, the api command transmitted can have following form:
IsAllValid(LBA,LBAend,callback);(1),
Wherein LBA can correspond to the end LBA of LBA scope corresponding to initial LBA, the LBA_End of LBA scope, and readjustment can correspond to call back function.This call back function can be the function that this NVM interface can be docked with file system.
In other embodiments, the api command transmitted can have following form:
IsAllValid(LBA,LBA_end,list[]);(2),
Initial LBA, LBA_end that wherein LBA can correspond to LBA scope can correspond to the end LBA of LBA scope, and list [] can correspond to wherein can the list of add items.It will be understood by those skilled in the art that the order transmitted from file system can have any suitable form.Those skilled in the art also can understand, and different from transmitting single LBA scope in order, file system can transmit the list of LBA scope in individual command.
Continue step 508, file system can receive from NVM interface the information that the one or more LBA scope of instruction has inconsistent state.That is, based on the comparing of NVM drive mapping, NVM interface can determine in one or more LBA scope to be disabled (such as do not map or not recoverable) at least partially.
So in step 510, file system can restore the data (such as user data) be associated with described one or more LBA scope by regulative strategy.The strategy called for concrete LBA scope can based on the file path be associated with described LBA scope.For example, if the data be associated with LBA scope are ephemeral data (such as data that are deleted and that re-create when each guiding device subsequently), so file system can stop restoring this data.On the other hand, if the data be associated with this LBA scope are the internal datas be associated with file system, so file system can use this internal data to carry out restored data.Another act one example, if the data be associated with this LBA scope apply the data generated, so file system can be called the strategy that is associated with respective application and comes to recover data from outside or backup source (such as externally source is issued to restore and ordered, request application backup, or equipment is inserted computing machine by request user).Once restore data, then file system can these data of carry again.So process 500 can terminate in step 512.
With reference now to Fig. 6, what illustrate is process 600 for determining availability of data.Process 600 can start from step 602, and in step 604, NVM interface (NVM interface 118 of such as Fig. 1 or the NVM interface 218 of Fig. 2) can detect that electronic equipment guides.
Continue step 606, NVM interface can obtain the usability status of LBA from the data structure be stored in volatile memory (storer 114 of such as Fig. 1) (such as setting).
For example, with reference now to Fig. 7, NVM interface can use tree 700 to obtain the usability status of LBA.Tree 700 can comprise multiple node, and wherein each node can have the consistent size (such as, each node can have the fixed size of 64 bytes) for storage allocation object.For simplicity, tree 700 is shown as and comprises a small amount of node.Thus, the dotted line frame set in 700 can indicate other nodes of the tree 700 be not shown specifically.
In addition, each node setting 700 can comprise one or more entry.For example, as shown in Figure 7, node 702 can comprise two entries (such as entry 704 and 706).Each entry of node can be associated with multiple field.Such as, each entry setting 700 can be encoded (rle-compresses) scope with LBA scope 712(such as compression travel) and page address 714 be associated.In addition, each entry setting 700 can comprise the pointer field 716 that has particular token value.It will be understood by those skilled in the art that each entry 704-710 of tree 700 can comprise unshowned added field in Fig. 7.But for simplicity, here only for each entry in tree 700 shows three fields.
In certain embodiments, each pointer field of entry can have and node pointer, NVM pointer, the non-map pointer of NVM or the NVM value that recoverable pointer is not corresponding.Such as, the entry 708 of tree 700 is shown as and comprises the pointer that node pointer 720(such as points to another node 730).As another example, entry 706 is shown as and comprises the NVM pointer 722 corresponding with a physical address of NVM.
As another example, entry 704 can comprise the non-map pointer 724 of NVM, and described pointer can be the pointer pointing to NVM.But what the non-map pointer of NVM 724 can also show entry 704 correspondence be associated is unmapped space.As another example, entry 710 is shown as and comprises NVM not recoverable pointer 726, and described pointer can be the pointer pointing to NVM equally.Recoverable pointer 726 can not show entry 710 correspondence be associated to NVM is uncorrectable space.
In certain embodiments, the pointer in tree 700 can be upgraded during refuse collection (" GC ") process.Such as, while conversion layer (conversion layer 214 of such as Fig. 2) just performs GC to the block of programming of NVM, when reading the valid data in block, this conversion layer likely finds that these data are uncorrectable.Subsequently, conversion layer can abandon these data, and the pointer be associated in tree 700 is updated to NVM not recoverable pointer.
By keeping different token value for the pointer in tree 700, tree 700 can keep and the distribution state of LBA (such as map/do not map) and can not the relevant information of correcting state.Thus, by detecting the different token value of the pointer of tree 700, NVM interface can obtain NVM drive mapping (the NVM drive mapping 402 of such as Fig. 4).More specifically, the LBA be associated with NVM pointer can be considered to available LBA, and can be considered to disabled LBA with the non-map pointer of NVM and the NVM LBA that recoverable pointer is not associated.
Back with reference to figure 6, in step 608, NVM interface can receive the request relevant to the availability of data of LBA scope from file system (file system 210 of such as Fig. 2).As previously combined process 500(Fig. 5) as described in, this request can adopt the form of api command.
Then, in step 610, NVM interface can based on the usability status of LBA (such as based on the comparing of NVM drive mapping of the NVM drive mapping 402 with such as Fig. 4 and so on) determine LBA scope at least partially whether unavailable (such as do not map or not recoverable).In step 610, if NVM interface determines LBA scope is available at least partially, so processing 600 can terminate in step 612.
In step 610, if NVM interface determines the unavailable at least partially of LBA scope on the contrary, so process 600 and can move to step 614.For example, in response to the request of the availability of data of the LBA scope 4 about Fig. 4 from file system, NVM interface can determine a part for the LBA scope 4 in NVM drive mapping 402 unavailable (part such as between LBA scope 4a and LBA scope 4b).
So in step 614, NVM interface can transmit the disabled at least partially information of instruction LBA scope to file system.NVM interface can adopt any suitable method to inform that this is unavailable to file system.In certain embodiments, NVM interface can call call back function (the initial api command that such as, described call back function can be issued by file system provides).In some cases, call back function can be called when the unavailable part of LBA scope being detected at every turn.As replacement, in LBA scope, the unavailable part of how much quantity no matter detected, described call back function is all only called once.
In other embodiments, this at least one LBA scope can be additional to the list (such as, described list can be associated with the initial api command that file system is issued) be associated with api command by NVM interface.Subsequently, this list can be sent to file system by described NVM interface.In some cases, NVM interface can transmit this list after all unavailable LBA have been found and have been affixed to list.As replacement, NVM interface also can transmit this list once there being LBA scope to be added into list.
NVM interface can transmit the universal or special information relevant to LBA unavailability to file system.Such as, NVM interface can provide the general information relevant to the unavailability of LBA scope.As replacement, NVM interface can provide relevant specific information unavailable to which part in LBA scope.After transferring described information, process 600 can terminate in step 612.
Therefore, by the usability status of the file system view coordinating LBA availability of data during System guides and the LBA obtained from data structure, NVM interface can pass on any inconsistency in the moment of comparatively morning to file system.This makes file system can process described inconsistency during System guides, instead of after system is started working comprehensively by the time.
In certain embodiments, and whether not non-usage sets the information (such as one concrete LBA recoverable) obtained about LBA availability, NVM interface can obtain NVM drive mapping (such as by checking the state of the one or more marks stored in NVM) by direct scan N VM.Such as, LBA can not can directly be remained in NVM by correcting state.
Forward Fig. 8 to now, what illustrate is for the treatment of can not the process 800 of correction data.Process 800 can start from step 802, and in step 804, NVM interface (NVM interface 118 of such as Fig. 1 or the NVM interface 218 of Fig. 2) can define the necessary NVM220 to NVM120 or Fig. 2 of NVM(such as Fig. 1) first block perform refuse collection.
So in step 806, what NVM interface can detect the valid data be stored in first block is uncorrectable at least partially.Process 800 can move to step 808 subsequently.
In step 808, NVM interface can tokenized or mobile valid data to second piece of NVM.For example, in certain embodiments, valid data can be moved to second piece by NVM interface.In other embodiments, NVM interface can tokenized uncorrectable data.That is, in NVM interface allocative efficiency data this at least partially can not correcting state as logic to the token value in physical mappings system.
Proceed to step 810, NVM interface can store token value on NVM, or the block TOC of one or more mark in the one or more page of set and/or second piece, to indicate the described of valid data to be uncorrectable at least partially.So process 800 can terminate in step 812.
Thus, by direct in NVM, keep one or more LBA can not correcting state, NVM interface need not use this information to upgrade the data structure (such as setting) in volatile memory.When NVM interface needs to obtain NVM drive mapping, NVM interface can in order to each block scan block TOC of NVM.By scanning block TOC, NVM interface can determine the state of one or more mark, and whether the corresponding data (such as user data) that described state can store in indicator dog is correctable.NVM interface can use this information to upgrade NVM drive mapping.
In other embodiments, not during System guides, perform this Coordination Treatment, but can operationally period performs this Coordination Treatment, and this Coordination Treatment can be interted with system input/output request (such as read and write order).That is, system can at carry file system and when marching to operation when not performing availability of data and coordinating after going when completing operation to map.In some cases, operationally period, system can delay the reading order for some not yet coordinated LBA scope.Then, once generation particular event (such as when NVM driver is idle first, when NVM driver find can not correction data time, and/or during refuse collection), then can perform availability of data Coordination Treatment.
It should be understood that Fig. 3,5, the process 300,500,600 and 800 of 6 and 8 can perform by the one or more parts in system (electronic equipment 100 of such as Fig. 1 or the electronic equipment 200 of Fig. 2).Such as, at least some step in these process can be performed by control circuit (the SoC control circuit 112 of such as Fig. 1).
In addition be also to be understood that Fig. 3,5, the process 300,500,600 and 800 of 6 and 8 is only illustrative.Without departing from the present invention, this wherein any step all can be removed, revise or combine, and any additional step all can add.
For illustration, unrestriced object presents the above embodiment of the present invention.

Claims (28)

1., for determining a method for availability of data, the method comprises:
Nonvolatile memory NVM is scanned to enumerate NVM driver during System guides;
NVM drive mapping is obtained based on enumerated NVM driver;
Installation file system;
Receive the request from the availability of data about at least one LBA (Logical Block Addressing) LBA scope of file system;
Determine that whether at least one part of at least one LBA scope described is unavailable based on NVM drive mapping;
Show the disabled information of at least one part of at least one LBA scope described to file system transmission in response to determining at least one part of at least one LBA scope unavailable;
Recovery processing is initiated to restore the data be associated with at least one part described at least one LBA scope described during System guides; And
Described information is transmitted to file system by calling call back function.
2. method according to claim 1, wherein NVM drive mapping is at least one in bitmap, mapping table and range list.
3. method according to claim 1 and 2, wherein this scanning also comprises:
Read the contextual information be stored in NVM, wherein said contextual information comprises logic to physical mappings; And
Logic is loaded in volatile memory to physical mappings.
4. method according to claim 3, also comprises:
Identify with the logic not yet caught by contextual information at least one block of physical mappings; And
The block contents table TOC of scanning at least one block described is to upgrade logic in volatile memory to physical mappings.
5. method according to claim 4, also comprises: obtain NVM drive mapping based on the logic through upgrading to physical mappings.
6. method according to claim 1 and 2, wherein NVM comprises multiple pieces.
7. method according to claim 6, also comprises:
For each block in multiple pieces, scan the block TOC of this block to determine flag state, whether the corresponding data that wherein said flag state instruction stores in the block is correctable; And
NVM drive mapping is upgraded based on described flag state.
8. method according to claim 1 and 2, also comprises:
At least one LBA scope described is additional to list; And
This list is sent to file system.
9., for determining a system for availability of data, comprising:
Nonvolatile memory NVM;
Operation is with the memory interface keeping NVM drive mapping; And
File system, operation is used for:
File system distribution state is determined during System guides;
For each utilogic block address LBA scope in file system distribution state, transmit application programming interface APl order, to determine whether NVM drive mapping has consistent state to memory interface;
Receive from memory interface and show that at least one LBA scope has the information of inconsistent state; And
Regulative strategy to restore the data that are associated with at least one LBA scope described during System guides, wherein for the described strategy of restored data based on the file path be associated with at least one LBA scope described.
10. system according to claim 9, wherein file system operation is to be stored as at least one in bitmap, mapping table and range list by file system distribution state.
11. systems according to claim 9, wherein file system operation is used for:
Determine that the described data be associated with at least one LBA scope described are ephemeral datas; And
Stop restoring these data.
12. systems according to claim 9, wherein file system operation is used for:
Determine that the described data be associated with at least one LBA scope described are the internal datas be associated with file system;
Use this internal data to restore described data; And
Reinstall the data of recovery.
13. systems according to claim 9, wherein file system operation is used for:
Determine that the described data be associated with at least one LBA scope described apply the data generated;
Call the strategy that is associated with application-specific to recover described data; And
Reinstall the data of recovery.
14. 1 kinds operation be used for equipment guide during perform availability of data be in harmonious proportion memory interfaces, described memory interface comprise control circuit with operation for:
The data structure stored from volatile memory obtains the usability status of LBA (Logical Block Addressing) LBA;
During the guiding of electronic equipment, coordinate the file system view of LBA availability of data and the usability status of the LBA obtained from data structure; And
Inconsistency between described file system view and the described usability status of LBA is conveyed to file system, make file system can process described inconsistency during the guiding of electronic equipment thus, wherein use call back function to pass on described inconsistency.
15. memory interfaces according to claim 14, wherein said data structure is the tree be stored in volatile memory.
16. memory interfaces according to claims 14 or 15, whether wherein said control circuit operation comprises the non-map pointer pointing to NVM with detector tree.
17. memory interfaces according to claims 14 or 15, whether wherein said control circuit operation comprises the not recoverable pointer pointing to NVM with detector tree.
18. memory interfaces according to claims 14 or 15, wherein said control circuit operation is used for:
Receive the request relevant to the availability of data of LBA (Logical Block Addressing) LBA scope from file system; And
Described usability status based on LBA determines that whether at least one part of LBA scope is unavailable.
19. memory interfaces according to claim 18, wherein said control circuit operation is used for:
Determine that at least one part of LBA scope is unavailable; And
The disabled information of at least one part of LBA scope is shown to file system transmission.
20. memory interfaces according to claim 18, the operation of wherein said control circuit is to determine that at least one part of LBA scope does not map or at least one not in recoverable.
21. 1 kinds for determining the system of availability of data, this system comprises:
Nonvolatile memory NVM is scanned to enumerate the device of NVM driver during System guides;
The device of NVM drive mapping is obtained based on enumerated NVM driver;
The device of installation file system;
Receive the device from the request of the availability about at least one LBA (Logical Block Addressing) LBA scope of file system;
The whether disabled device of at least one part of at least one LBA scope described is determined based on NVM drive mapping;
Show the device of the disabled information of at least one part of at least one LBA scope described to file system transmission in response to determining at least one part of at least one LBA scope unavailable;
Recovery processing is initiated to restore the device of the data be associated with at least one part described at least one LBA scope described during System guides; And
To transmit the device of described information to file system by calling call back function.
22. systems according to claim 21, wherein NVM drive mapping is at least one in bitmap, mapping table and range list.
23. systems according to claim 21 or 22, the device wherein for scanning also comprises:
Read the device of the contextual information be stored in NVM, wherein said contextual information comprises logic to physical mappings; And
Logic to physical mappings is loaded into the device in volatile memory.
24. systems according to claim 23, also comprise:
Identify with the logic not yet caught by contextual information to the device of at least one block of physical mappings; And
The block contents table TOC of scanning at least one block described is to upgrade the device of the logic in volatile memory to physical mappings.
25. systems according to claim 24, also comprise: the device obtaining NVM drive mapping based on the logic through upgrading to physical mappings.
26. systems according to claim 21 or 22, wherein NVM comprises multiple pieces.
27. systems according to claim 26, also comprise:
For each block in multiple pieces, scan the block TOC of this block to determine the device of flag state, whether the data that wherein said flag state instruction stores in the block are correctable; And
The device of NVM drive mapping is upgraded based on described flag state.
28. systems according to claim 21 or 22, also comprise:
At least one LBA scope described is additional to the device of list; And
This list is sent to the device of file system.
CN201210534198.2A 2011-12-12 2012-12-12 Coordinate during the carry of availability of data Active CN103164342B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/323,347 US8756458B2 (en) 2011-12-12 2011-12-12 Mount-time reconciliation of data availability
US13/323,347 2011-12-12

Publications (2)

Publication Number Publication Date
CN103164342A CN103164342A (en) 2013-06-19
CN103164342B true CN103164342B (en) 2016-04-06

Family

ID=47469762

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210534198.2A Active CN103164342B (en) 2011-12-12 2012-12-12 Coordinate during the carry of availability of data

Country Status (7)

Country Link
US (2) US8756458B2 (en)
EP (1) EP2605139A3 (en)
JP (1) JP5636034B2 (en)
KR (2) KR101451482B1 (en)
CN (1) CN103164342B (en)
TW (2) TWI490694B (en)
WO (1) WO2013090135A1 (en)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9727570B2 (en) * 2011-06-03 2017-08-08 Apple Inc. Mount-time unmapping of unused logical addresses in non-volatile memory systems
US8756458B2 (en) 2011-12-12 2014-06-17 Apple Inc. Mount-time reconciliation of data availability
US9547457B1 (en) * 2013-09-27 2017-01-17 Veritas Technologies Llc Detection of file system mounts of storage devices
WO2015130314A1 (en) 2014-02-28 2015-09-03 Hewlett-Packard Development Company, L.P. Mapping mode shift
CN104331446B (en) * 2014-10-28 2017-07-18 北京临近空间飞行器系统工程研究所 A kind of massive data processing method mapped based on internal memory
US10824362B2 (en) 2015-03-27 2020-11-03 Hewlett Packard Enterprise Development Lp File migration to persistent memory
WO2016160027A1 (en) 2015-04-02 2016-10-06 Hewlett Packard Enterprise Development Lp Page cache on persistent memory
CN104809037B (en) * 2015-05-13 2018-04-13 深圳芯邦科技股份有限公司 Quick start method and device of the eMMC based on special page
US9639287B1 (en) 2015-06-29 2017-05-02 Western Digital Technologies, Inc. Write command reporting
KR20180045087A (en) 2016-10-24 2018-05-04 에스케이하이닉스 주식회사 Memory system and operating method of memory system
CN108932249B (en) * 2017-05-24 2021-02-12 华为技术有限公司 Method and device for managing file system
KR102276912B1 (en) * 2017-06-07 2021-07-13 삼성전자주식회사 Storage system and operating method thereof
JP7042716B2 (en) * 2018-07-26 2022-03-28 キオクシア株式会社 Storage device and storage control method
US10802734B2 (en) * 2018-09-28 2020-10-13 Western Digital Technologies, Inc. Method for fast boot read
KR20200076531A (en) * 2018-12-19 2020-06-29 에스케이하이닉스 주식회사 Memory controller and operating method thereof
US11301369B2 (en) 2019-01-24 2022-04-12 Western Digital Technologies, Inc. Logical to physical mapping management using low-latency non-volatile memory
KR20200099882A (en) * 2019-02-15 2020-08-25 에스케이하이닉스 주식회사 Memory controller and operating method thereof
CN110647476B (en) * 2019-09-29 2021-10-15 苏州浪潮智能科技有限公司 Method, device and equipment for writing data in solid state disk and storage medium

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201040760A (en) * 2009-03-05 2010-11-16 Sandisk Il Ltd System for optimizing the transfer of stored content in response to a triggering event

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0644144A (en) 1992-07-23 1994-02-18 Mitsubishi Electric Corp Semiconductor disk device
US5359570A (en) 1992-11-13 1994-10-25 Silicon Storage Technology, Inc. Solid state peripheral storage device
US6931440B1 (en) * 1999-04-21 2005-08-16 Emc Corporation Method and apparatus for dynamically determining whether access to a resource connected to a computer has changed and determining how to access the resource with a new identifier
US6944742B1 (en) 2000-04-28 2005-09-13 Microsoft Corporation Compressed file system for non-volatile RAM
US7093161B1 (en) * 2002-08-16 2006-08-15 Onspec Electronic, Inc. Software recovery method for flash media with defective formatting
JP3812933B2 (en) * 2001-04-19 2006-08-23 シャープ株式会社 File system and control method thereof
US6883114B2 (en) 2001-11-08 2005-04-19 M-Systems Flash Disk Pioneers Ltd. Block device driver enabling a ruggedized file system
US20030135729A1 (en) * 2001-12-14 2003-07-17 I/O Integrity, Inc. Apparatus and meta data caching method for optimizing server startup performance
US6895464B2 (en) 2002-06-03 2005-05-17 Honeywell International Inc. Flash memory management system and method utilizing multiple block list windows
US7036040B2 (en) 2002-11-26 2006-04-25 Microsoft Corporation Reliability of diskless network-bootable computers using non-volatile memory cache
US20040255106A1 (en) * 2003-06-10 2004-12-16 Rothman Michael A. Recovery of operating system configuration data by firmware of computer system
US20050097141A1 (en) * 2003-10-30 2005-05-05 International Business Machines Corporation Autonomic filesystem recovery
US7493424B1 (en) 2004-04-30 2009-02-17 Netapp, Inc. Network storage system with shared software stack for LDMA and RDMA
JP4209820B2 (en) 2004-07-15 2009-01-14 株式会社ハギワラシスコム Memory card system, write-once memory card used in the memory card system, system comprising host system and semiconductor storage device
US7873782B2 (en) 2004-11-05 2011-01-18 Data Robotics, Inc. Filesystem-aware block storage system, apparatus, and method
KR100876084B1 (en) 2007-02-13 2008-12-26 삼성전자주식회사 Computing system capable of delivering deletion information to flash storage
US20080250188A1 (en) * 2004-12-22 2008-10-09 Matsushita Electric Industrial Co., Ltd. Memory Controller, Nonvolatile Storage, Nonvolatile Storage System, and Memory Control Method
US8302178B2 (en) 2005-03-07 2012-10-30 Noam Camiel System and method for a dynamic policies enforced file system for a data storage device
JP2007094900A (en) 2005-09-29 2007-04-12 Eastman Kodak Co Access apparatus
KR20070096429A (en) * 2006-03-24 2007-10-02 부산대학교 산학협력단 Fast mounting for a file system on nand flash memory
US8301673B2 (en) * 2006-12-29 2012-10-30 Netapp, Inc. System and method for performing distributed consistency verification of a clustered file system
JP2008191701A (en) 2007-01-31 2008-08-21 Toshiba Corp Method of recovery from error and information processor
US7730090B2 (en) * 2007-03-09 2010-06-01 Emc Corporation Architecture for performing file system checking on an active file system
KR100895429B1 (en) 2007-04-27 2009-05-07 중앙대학교 산학협력단 Flash memory file apparatus and mounting method of the same
US9396103B2 (en) 2007-06-08 2016-07-19 Sandisk Technologies Llc Method and system for storage address re-mapping for a memory device
US7694191B1 (en) * 2007-06-30 2010-04-06 Emc Corporation Self healing file system
JP2009043030A (en) 2007-08-09 2009-02-26 Hitachi Ltd Storage system
US7975171B2 (en) 2007-09-12 2011-07-05 International Business Machines Corporation Automated file recovery based on subsystem error detection results
US7818610B2 (en) 2007-09-27 2010-10-19 Microsoft Corporation Rapid crash recovery for flash storage
US8099544B2 (en) 2008-02-29 2012-01-17 Kabushiki Kaisha Toshiba Information processing apparatus and nonvolatile semiconductor memory drive
JP4164118B1 (en) 2008-03-26 2008-10-08 眞澄 鈴木 Storage device using flash memory
US8130554B1 (en) 2008-09-29 2012-03-06 Emc Corporation Securely erasing flash-based memory
JP5458568B2 (en) 2008-12-25 2014-04-02 ソニー株式会社 Nonvolatile storage device, information recording system, and information recording method
CN104077174B (en) 2009-03-27 2018-05-01 希捷科技有限公司 Method and system for the data write for providing storage system logic block address
US8281065B2 (en) 2009-09-01 2012-10-02 Apple Inc. Systems and methods for determining the status of memory locations in a non-volatile memory
US9063886B2 (en) 2009-09-18 2015-06-23 Apple Inc. Metadata redundancy schemes for non-volatile memories
TWI426528B (en) 2009-09-30 2014-02-11 Phison Electronics Corp Block management method for a flash memory and flash memory controller and storage system using the same
TWI408551B (en) 2009-10-28 2013-09-11 Phison Electronics Corp Falsh memory storage system and flash memory controller and data processing method thereof
JP5525605B2 (en) * 2009-11-04 2014-06-18 株式会社日立製作所 Flash memory module
US9110594B2 (en) * 2009-11-04 2015-08-18 Seagate Technology Llc File management system for devices containing solid-state media
TWI423024B (en) 2009-11-23 2014-01-11 Phison Electronics Corp Data storing method for a flash memory, and flash memory controller and flash memory storage system using the same
US8812816B2 (en) 2010-03-23 2014-08-19 Apple Inc. Garbage collection schemes for index block
US8726126B2 (en) 2010-03-23 2014-05-13 Apple Inc. Non-regular parity distribution detection via metadata tag
US8589730B2 (en) 2010-08-31 2013-11-19 Apple Inc. Handling errors during device bootup from a non-volatile memory
US9727570B2 (en) 2011-06-03 2017-08-08 Apple Inc. Mount-time unmapping of unused logical addresses in non-volatile memory systems
US8756458B2 (en) 2011-12-12 2014-06-17 Apple Inc. Mount-time reconciliation of data availability

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201040760A (en) * 2009-03-05 2010-11-16 Sandisk Il Ltd System for optimizing the transfer of stored content in response to a triggering event

Also Published As

Publication number Publication date
US8756458B2 (en) 2014-06-17
JP2013137771A (en) 2013-07-11
KR20130066639A (en) 2013-06-20
US20140297935A1 (en) 2014-10-02
JP5636034B2 (en) 2014-12-03
WO2013090135A1 (en) 2013-06-20
CN103164342A (en) 2013-06-19
KR101930092B1 (en) 2018-12-17
TW201337563A (en) 2013-09-16
US20130151830A1 (en) 2013-06-13
KR101451482B1 (en) 2014-10-22
US9104329B2 (en) 2015-08-11
EP2605139A2 (en) 2013-06-19
EP2605139A3 (en) 2014-11-26
TW201337561A (en) 2013-09-16
KR20130066525A (en) 2013-06-20
TWI490694B (en) 2015-07-01
TWI545434B (en) 2016-08-11

Similar Documents

Publication Publication Date Title
CN103164342B (en) Coordinate during the carry of availability of data
TWI673606B (en) Method for performing access management in a memory device, associated memory device and controller thereof, and associated electronic device
CN103164346B (en) Use the method and system of LBA bitmap
EP2570927B1 (en) Handling unclean shutdowns for a system having non-volatile memory
US9396107B2 (en) Memory system having memory controller with cache memory and NVRAM and method of operating same
CN102693184B (en) Handling dynamic and static data for a system having a non-volatile memory
US8255614B2 (en) Information processing device that accesses memory, processor and memory management method
US10838629B2 (en) Solid state device with fast boot after ungraceful shutdown
US20130326121A1 (en) Data-storage device and flash memory control method
US9239785B2 (en) Stochastic block allocation for improved wear leveling
US8775758B2 (en) Memory device and method for performing a write-abort-safe firmware update
TW201316169A (en) Mount-time unmapping of unused logical addresses in non-volatile memory systems
CN108108261B (en) Data storage device and operation method thereof
CN111755039A (en) Apparatus and method for reducing cell disturb in a memory system during a recovery process
KR20130034450A (en) Storage device and driving method thereof
JP5204265B2 (en) Semiconductor memory device and method for controlling semiconductor memory device

Legal Events

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