CN108536619A - The method and apparatus of fast quick-recovery FTL tables - Google Patents

The method and apparatus of fast quick-recovery FTL tables Download PDF

Info

Publication number
CN108536619A
CN108536619A CN201710126446.2A CN201710126446A CN108536619A CN 108536619 A CN108536619 A CN 108536619A CN 201710126446 A CN201710126446 A CN 201710126446A CN 108536619 A CN108536619 A CN 108536619A
Authority
CN
China
Prior art keywords
ftl
daily record
blocks
frame
frames
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.)
Granted
Application number
CN201710126446.2A
Other languages
Chinese (zh)
Other versions
CN108536619B (en
Inventor
孙宝勇
居颖轶
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Memblaze Technology Co Ltd
Original Assignee
Beijing Memblaze Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Memblaze Technology Co Ltd filed Critical Beijing Memblaze Technology Co Ltd
Priority to CN201710126446.2A priority Critical patent/CN108536619B/en
Publication of CN108536619A publication Critical patent/CN108536619A/en
Application granted granted Critical
Publication of CN108536619B publication Critical patent/CN108536619B/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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • 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/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • G06F2212/2228Battery-backed RAM
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

The application provides a kind of method and apparatus of fast quick-recovery FTL tables.The method of the fast quick-recovery FTL tables provided includes:First CPU obtains the FTL frames for belonging to the first FTL blocks, and obtains the daily record frame for belonging to the first FTL blocks, and the FTL frames for belonging to the first FTL blocks and mesh will frame are respectively stored into the different zones of memory;2nd CPU obtains the daily record frame for belonging to the first FTL blocks from the memory, and updates the first FTL blocks using daily record frame.

Description

The method and apparatus of fast quick-recovery FTL tables
Technical field
This application involves field of computer technology, more particularly to a kind of method and apparatus of fast quick-recovery FTL tables.
Background technology
With the development of science and technology the storage capacity and reaction speed for electronic equipment propose increasingly higher demands. Fig. 1 shows the block diagram of solid storage device in the prior art (Solid Storage Device, SSD).
Solid storage device 102 is coupled with host, for providing storage capacity for host.The same solid storage device of host It can be coupled in several ways between 102, coupled modes include but not limited to for example, by SATA (Serial Advanced Technology Attachment, Serial Advanced Technology Attachment), SCSI (Small Computer System Interface, Small computer system interface), SAS (Serial Attached SCSI, Serial Attached SCSI (SAS)), IDE (Integrated Drive Electronics, integrated drive electronics), USB (Universal Serial Bus, universal serial bus), PCIE (Peripheral Component Interconnect Express, PCIe, peripheral component interconnection), NVMe (NVM Express, high speed non-volatile memory), Ethernet, optical-fibre channel, the connection host such as cordless communication network and solid storage device 102.Host can be the information processing equipment that can be communicated through the above way with storage device, for example, personal computer, Tablet computer, server, portable computer, the network switch, router, cellular phone, personal digital assistant etc..Storage is set Standby 102 include interface 103, control unit 104, one or more NVM (nonvolatile storage, Non-Volatile Memory) Chip 105 and DRAM (Dynamic Random Access Memory, dynamic RAM) 110.Nand flash memory, Phase transition storage, FeRAM, MRAM etc. are common NVM.Interface 103 can adapt to for example, by SATA, IDE, USB, PCIE, The modes such as NVMe, SAS, Ethernet, optical-fibre channel and host exchanging data.Control unit 104 is for controlling in interface 103, NVM Data transmission between chip 105 and firmware memory 110 is additionally operable to storage management, host logical address to flash memory physics Address of cache, erasure balance, bad block management etc..Control unit can be realized by the various ways of software, hardware, firmware or combinations thereof Part 104.Control unit 104 can be FPGA (Field-programmable gate array, field programmable gate array), ASIC (Application Specific Integrated Circuit, application specific integrated circuit) or a combination thereof shape Formula.Control unit 104 can also include processor or controller, and software is executed in processor or controller and carrys out manipulation and control The hardware of component 104 handles host I/O command.Control unit 104 is additionally coupled to DRAM 110, and may have access to DRAM's 110 Data.The data of the host I/O command of FTL tables and/or caching can be stored in DRAM.
Control unit 104 includes flash interface controller (or being flash memory channel controller).Flash interface controller coupling NVM chips 105 are closed, and order is sent out to NVM chips 105 in a manner of following the interface protocol of NVM chips 105, with operation NVM chips 105, and receive the command execution results exported from NVM chips 105.The interface protocol of NVM chips 105 includes Interface protocol or standard well known to " Toggle ", " ONFI " etc..
Memory target (Target) is that the shared chip in nand flash memory encapsulation enables (CE, Chip Enable) signal One or more logic units (LUN, Logic UNit).Each logic unit has logical unit number (Logic Unit Number).It may include one or more tube cores (Die) in nand flash memory encapsulation.Typically, logic unit corresponds to single pipe Core.Logic unit may include multiple planes (Plane).Multiple planes in logic unit can be with parallel access, and nand flash memory Multiple logic units in chip can execute order and report state independently of one another.Can be fromhttp:// Www.micron.com/~/media/Documents/Products/Other%20Documents/ONFI3_ 0Gold.ashxIn " the Open NAND Flash Interface Specification (Revision 3.0) " that obtains, carry The meaning about target (target), logic unit, LUN, plane (Plane) has been supplied, has been a part for the prior art.
Solid storage device includes multiple NVM chips.Each NVM chips include one or more tube cores (DIE) or patrol Collect unit (LUN, Logic UNit).Read-write operation can be responded between tube core or logic unit parallel.In same tube core or patrol Multiple reading and writing or the erasing operation sequence collected on unit execute.
Data are usually stored and read on storage medium by page.And data are erased in blocks.Block includes multiple pages.Storage Page (being known as Physical Page) on medium has fixed size, such as 17664 bytes.Physical Page can also have other rulers It is very little.May include multiple data frames (data frame) in Physical Page, data frame has specified size, such as 4096 or 4416 Byte.
In solid storage device, using FTL (Flash Translation Layer, flash translation layer (FTL)) come safeguard from Map information of the logical address to physical address.Logical address constitutes the solid-state that the upper layer software (applications)s such as operating system are perceived and deposits Store up the memory space of equipment.Physical address is the address of the physical memory cell for accessing solid storage device.In existing skill Also implement address of cache using intermediate address form in art.Such as logical address is mapped as intermediate address, and then will be intermediate Address is further mapped as physical address.
The table structure for storing the map information from logical address to physical address is referred to as FTL tables.FTL tables are that solid-state is deposited Store up the important metadata in equipment.The data item of usual FTL tables has recorded the ground in solid storage device as unit of data page Location mapping relations.FTL tables are the important metadata in solid storage device.The data item of usual FTL tables has recorded solid-state storage Address mapping relation in equipment as unit of data page.The FTL tables of solid storage device have larger size, such as several GB grades.And when solid storage device is closed, it needs completely to preserve FTL tables, when solid storage device starts, needs to complete FTL is loaded completely.
FTL tables include multiple FTL table clauses (or list item).In one embodiment, it is had recorded in each FTL table clauses The correspondence of one logical page address and a Physical Page.In another example, it is had recorded in each FTL table clauses continuous Multiple logical page addresses and continuous multiple Physical Page correspondence.In yet another embodiment, in each FTL table clauses Have recorded the correspondence of logical block address and physical block address.In still another embodiment, logical block is recorded in FTL tables The mapping relations of the mapping relations and/or logical page address and physical page address of address and physical block address.
In read command of the processing from host, solid storage device utilizes the logical address that is carried in read command from FTL Obtain corresponding physical address in table, and read request sent out to NVM chips according to physical address, and receive NVM chips in response to The data of read request output.When handling the write order from host, solid storage device is write order allocated physical address, In FTL tables record write order logical address and distribution physical address correspondence, and according to the physical address of distribution to NVM chips send out write request.
In the prior art, the logic corresponding to the Physical Page is additionally stored in each Physical Page of solid storage device Address.It when solid storage device starts, needs to access all Physical Page, to obtain corresponding to each Physical Page logically Location, and rebuild FTL tables.However such operation will need the plenty of time, and solid storage device start-up course is caused to take very It is long.
Stand-by power supply is also provided in some solid storage devices, when accident power-off occurs, is set from stand-by power supply to storage It is standby that interim electric energy is provided, for backing up metadata and processing still outstanding command.Stand-by power supply includes super capacitor, aluminium Capacitance, tantalum polymer capacitance, lithium battery etc..
Invention content
In view of this, the application provides a kind of method and apparatus of fast quick-recovery FTL tables.
According to the first aspect of the invention, the first daily record based on FTL tables according to the first aspect of the invention is provided Generation method, including:Record the corresponding logical address of operation requests and physical address;Corresponding to foundation operation requests logically Location generates daily record frame with physical address;FTL frames are generated using the part of the first FTL blocks, wherein FTL tables include multiple FTL blocks; The FTL frames and daily record frame of generation are stored on NVM, wherein the first FTL blocks multiple daily record frames composition daily record frame chained list and institute State multiple FTL frames composition FTL frame chained lists of the first FTL blocks.
Daily record generation method of first according to the first aspect of the invention based on FTL tables, provides according to the present invention Daily record generation method of the second of first aspect based on FTL tables, wherein to be written to NVM different from its of FTL frames or daily record frame His frame is selected according to the priority of different frame by the deposit sequence of FTL frames, daily record frame and other frames.
Daily record generation method of first, second or third according to the first aspect of the invention based on FTL tables, provides root According to the daily record generation method of the third based on FTL tables of the first aspect of the present invention, wherein in response to recognizing the 2nd FTL blocks Renewal frequency is higher than the renewal frequency of the first FTL blocks, and the FTL frames and daily record frame of the 2nd FTL blocks are preferentially belonged to NVM write-ins.
Daily record generation method of first according to the first aspect of the invention based on FTL tables, provides according to the present invention Daily record generation method of the 4 of first aspect based on FTL tables, wherein correspond to read-only storage in response to recognizing the 2nd FTL blocks Area, without generating FTL frames for the 2nd FTL blocks.
Daily record generation method of one of first to fourth according to the first aspect of the invention based on FTL tables, provides root According to the 5th daily record generation method based on FTL tables of the first aspect of the present invention, further include:According to the more newly-generated of bad block table Bad block table more new frame;Bad block table data frame is generated using the part of bad block table block, wherein bad block table includes multiple bad block table blocks; The bad block table more new frame and bad block table data frame of generation are stored on NVM, wherein multiple bad block tables more new frame of the bad block table block Form multiple bad block table data frames composition bad block table data frame chained list of bad block table more new frame chained list and the bad block table block;And To belong to NVM write-ins than the bad block table more new frame of the bad block table block and the priority of bad block table data vertical frame dimension are written to NVM The FTL frames of 2nd FTL blocks and daily record frame.
Daily record generation method of one of first to fourth according to the first aspect of the invention based on FTL tables, provides root According to the 6th daily record generation method based on FTL tables of the first aspect of the present invention, further include:According to the volatile of host accessible The more newly-generated first kind frame of property storage region;The second class is generated using the part of the volatile storage area block of host accessible Frame, wherein volatile storage area include multiple volatile storage area blocks;The first kind frame and second of generation is stored on NVM Class frame, wherein the first kind frame composition first kind frame chained list of the volatile storage area block, and the volatile storage area Second class frame of block forms the second class frame chained list.
Daily record generation method of the 6th according to the first aspect of the invention based on FTL tables, provides according to the present invention Daily record generation method of the 7 of first aspect based on FTL tables further include:With than the volatile storage area is written to NVM The priority of the first kind frame of block and the second class vertical frame dimension belongs to the FTL frames and daily record frame of the 2nd FTL blocks to NVM write-ins.
According to the second aspect of the invention, the first offer non-volatile RAM according to the second aspect of the invention is provided Method, including:According to the more newly-generated first kind frame of the volatile storage area to host accessible, wherein the volatibility is deposited Storage area domain is as the non-volatile RAM provided to host;The is generated using the part of the volatile storage area block of host accessible Two class frames, wherein volatile storage area include multiple volatile storage area blocks;Stored on NVM generation first kind frame and Second class frame, wherein the first kind frame composition first kind frame chained list of the volatile storage area block, and the volatile storage Second class frame of region unit forms the second class frame chained list.
According to the third aspect of the invention we, the first reconstruction non-volatile RAM according to the third aspect of the invention we is provided Method, including:Obtain the storage location of the first kind frame and the second class frame of volatile storage area block;Reading belongs to described volatile Property storage region block multiple first kind frames and multiple second class frames;The volatibility is rebuild using the multiple first kind frame to deposit Store up region unit;And update the volatile storage area block using the multiple second class frame, wherein the wherein described volatibility Storage region includes multiple volatile storage area blocks as the non-volatile RAM and volatile storage area provided to host.
According to the fourth aspect of the invention, the first daily record based on FTL tables according to the fourth aspect of the invention is provided Update method, including:It determines the first FTL blocks of update, wherein the first FTL blocks are by full storage to NVM, and belongs to first The last FTL frames of FTL blocks have the first address, and the initial daily record frame for belonging to the first FTL blocks has the second address;Record away from The third address of the nearest daily record frame for belonging to the first FTL blocks for being written into NVM of current time;Use the portion of the first FTL blocks It is mitogenetic at FTL frames;It records the logical address corresponding to current operation request and generates daily record frame with physical address;By FTL frames and day NVM is written in will frame;In response to anomalous event occur, when anomalous event occurs, away from current time recently be written into NVM's Belong to the 5th address of the daily record frame of the first FTL blocks, if the first FTL blocks are starting not yet by full storage again to NVM The first address, the second address and the 5th address are recorded in page.
Daily record update method of first according to the fourth aspect of the invention based on FTL tables, provides according to the present invention Daily record update method of the second of fourth aspect based on FTL tables, wherein occur in response to anomalous event, if the first FTL blocks By full storage again to NVM, and belong to the first FTL blocks being stored again last FTL frames have the 4th address, belong to In the first FTL blocks being stored again last daily record frame have the 5th address, in starting page record the 4th address, third Address and the 5th address.
Daily record update method of the first or second according to the fourth aspect of the invention based on FTL tables is provided according to this Daily record update method of the third of the fourth aspect of invention based on FTL tables, wherein in the daily record number of frames for belonging to the first FTL blocks More than threshold value either predetermined time cycle either the idle storage space of daily record memory block less than threshold value or in response to The instruction of user determines the first FTL blocks of update.
Daily record update method of first, second or third according to the fourth aspect of the invention based on FTL tables, provides root According to the 4th daily record update method based on FTL tables of the fourth aspect of the present invention, plurality of FTL blocks are arrived by full storage When NVM, the first FTL blocks of update are determined according to according to the priority of multiple FTL blocks.
According to the fifth aspect of the invention, the side of the first fast quick-recovery FTL tables according to a fifth aspect of the present invention is provided Method, including:First CPU obtains the FTL frames for belonging to the first FTL blocks, and obtains the daily record frame for belonging to the first FTL blocks, and will belong to It is respectively stored into the different zones of memory in the FTL frames and daily record frame of the first FTL blocks;2nd CPU is obtained from the memory The daily record frame for belonging to the first FTL blocks is taken, and the first FTL blocks are updated using daily record frame.
The method of the first fast quick-recovery FTL tables according to the fifth aspect of the invention is provided according to the 5th side of the invention The method of the second fast quick-recovery FTL tables in face, wherein record has in the metadata of each daily record frame belongs to phase with the daily record frame With the storage address of the previous daily record frame of FTL blocks.
The method of the second fast quick-recovery FTL tables according to the fifth aspect of the invention is provided according to the 5th side of the invention The method of the fast quick-recovery FTL tables of third in face, wherein the first CPU is obtained from specified storage address belongs to the first FTL blocks most The daily record frame generated afterwards, and daily record frame is read from the storage address;And the first CPU obtained from the metadata of daily record frame with It belongs to the first storage address of the previous daily record frame of identical FTL blocks, and previous daily record frame is read from the first storage address;Directly To obtaining all daily record frames for belonging to the FTL blocks.
The method of the first, second or third fast quick-recovery FTL tables according to the fifth aspect of the invention is provided according to this Invent the 5th aspect the 4th fast quick-recovery FTL tables method, further include:In response to all daily records of the first FTL blocks will be belonged to Frame stores in memory, is sent to the first CPU and belongs to the message that all daily record frames reading of the first FTL blocks is completed.
The method of the fast quick-recovery FTL tables of any one of first to fourth according to the fifth aspect of the invention, provides root According to the method for the 5th fast quick-recovery FTL tables of fifth aspect present invention, further include:Further include:In response to the first FTL blocks will be belonged to All FTL frames and all daily record frames store in memory, the first CPU instructions update the first FTL blocks by the 2nd CPU.
The method of the fast quick-recovery FTL tables of any one of first to fourth according to the fifth aspect of the invention, provides root According to the method for the 6th fast quick-recovery FTL tables of fifth aspect present invention, further include:In response to all of the first FTL blocks will be belonged to Daily record frame stores in memory, and the first CPU instructions update the first FTL blocks by the 2nd CPU.
The method of the 5th or the 6th fast quick-recovery FTL tables according to the fifth aspect of the invention, provides according to the present invention The method of 7th fast quick-recovery FTL tables of the 5th aspect, wherein the update of the 2nd CPU pairs of the first FTL block includes:2nd CPU from Journal entries are extracted successively in all daily record frames for belonging to the first FTL blocks in memory;And the 2nd CPU according to each daily record The logical address recorded in entry determines FTL table clauses corresponding with the logical address in the first FTL blocks in memory, The physical address in FTL table clauses determined by physical address update corresponding with the logical address in journal entries is used in combination.
The method of the 7th fast quick-recovery FTL tables according to the fifth aspect of the invention is provided according to the 5th side of the invention The method of the 8th fast quick-recovery FTL tables in face, wherein multiple journal entries of multiple daily record frames to belonging to same FTL blocks, the The sequence that two CPU are generated according to journal entries updates FTL blocks with each journal entries successively from front to back or from back to front.
The method of the 7th or the 8th fast quick-recovery FTL tables according to the fifth aspect of the invention, provides according to the present invention 5th aspect the 9th fast quick-recovery FTL tables method, further include:2nd CPU is also the FTL entries setting that each is updated Label.
The method of the 9th fast quick-recovery FTL tables according to the fifth aspect of the invention is provided according to the 5th side of the invention The method of the tenth fast quick-recovery FTL tables in face, when updating FTL entries successively with the journal entries extracted, if to be updated There is label in FTL entries, then the 2nd CPU updates FTL blocks without using extracted journal entries.
The method of the 9th or the tenth fast quick-recovery FTL tables according to the fifth aspect of the invention, provides according to the present invention The method of 11st fast quick-recovery FTL tables of the 5th aspect, after being fully completed to the update of the first FTL blocks, the 2nd CPU removes the All labels being set of one FTL blocks.
The method of the 5th or the 6th fast quick-recovery FTL tables according to the fifth aspect of the invention, provides according to the present invention The method of 12nd fast quick-recovery FTL tables of the 5th aspect, wherein the update of the 2nd CPU pairs of the first FTL block includes:2nd CPU Extraction belongs to the journal entries of the first FTL blocks from memory;And the 2nd CPU recorded logically according in journal entries Location determines FTL table clauses corresponding with the logical address in the first FTL blocks in memory, be used in combination in journal entries and this Physical address in FTL table clauses determined by the corresponding physical address update of logical address.
The method of the 12nd fast quick-recovery FTL tables according to the fifth aspect of the invention is provided according to the present invention the 5th The method of 13rd fast quick-recovery FTL tables of aspect further includes:2nd CPU determines the ground of next journal entries in memory Location obtains next journal entries from memory.
The method of the 13rd fast quick-recovery FTL tables according to the fifth aspect of the invention is provided according to the present invention the 5th The method of 14th fast quick-recovery FTL tables of aspect, wherein multiple daily record items of multiple daily record frames to belonging to same FTL blocks Mesh, the sequence that the 2nd CPU is generated according to journal entries update FTL blocks with journal entries successively from front to back or from back to front.
The method of the fast quick-recovery FTL tables of any one of first to the 14th according to the fifth aspect of the invention, provides The method of the 15th fast quick-recovery FTL tables according to a fifth aspect of the present invention further includes:In response to the 2nd FTL blocks will be belonged to All FTL frames store in memory with daily record frame, and the first CPU instructions update the 2nd FTL blocks by the 3rd CPU.
The method of the fast quick-recovery FTL tables of any one of first to the 14th according to the fifth aspect of the invention, provides The method of the 16th fast quick-recovery FTL tables according to a fifth aspect of the present invention further includes:In response to the 2nd FTL blocks will be belonged to In the storage to memory of daily record frame, the first CPU instructions update the 2nd FTL blocks by the 3rd CPU.
The method of the 15th or the 16th fast quick-recovery FTL tables according to the fifth aspect of the invention is provided according to this The method for inventing the 17th fast quick-recovery FTL tables of the 5th aspect, the operation of the 2nd CPU the first FTL blocks of update and the 3rd CPU are more The operation of new 2nd FTL blocks is carried out at the same time.
The method of the fast quick-recovery FTL tables in the 15th, the 16th or the 17th according to the fifth aspect of the invention, provides The method of the 18th fast quick-recovery FTL tables according to a fifth aspect of the present invention, the 2nd CPU update the operation and the of the first FTL blocks The operation that one CPU obtains the FTL frames for belonging to the 2nd FTL blocks and obtains the daily record frame for belonging to the 2nd FTL blocks is carried out at the same time.
The method of the fast quick-recovery FTL tables of any one of the 12nd to the 18th according to the fifth aspect of the invention, provides The method of the 19th fast quick-recovery FTL tables according to a fifth aspect of the present invention further includes:2nd CPU with regard to the first FTL blocks more The first CPU of new completion notice.
The method of the fast quick-recovery FTL tables of any one of the 12nd to the 18th according to the fifth aspect of the invention, provides The method of the 20th fast quick-recovery FTL tables according to a fifth aspect of the present invention further includes:The 2nd CPU is come from response to receiving The first FTL blocks update completion notice, the space that occupies of mesh will frame of the first FTL blocks in the first CPU release memories, and depositing Allocation space is used to store the daily record frame of the 3rd FTL blocks in reservoir, and obtains the daily record frame for belonging to the 3rd FTL blocks.
The method of the fast quick-recovery FTL tables of any one of first to the 20th according to the fifth aspect of the invention, provides The method of the 21st fast quick-recovery FTL tables according to a fifth aspect of the present invention, wherein updated using different CPU different FTL blocks.
The method of the fast quick-recovery FTL tables of any one of first to the 21st according to the fifth aspect of the invention, provides The method of the 22nd fast quick-recovery FTL tables according to a fifth aspect of the present invention further includes:First CPU determines to be reconstructed FTL blocks.
According to the sixth aspect of the invention, the first daily record based on FTL tables according to the fifth aspect of the invention is provided Generating means, including:Address logging modle, for recording the corresponding logical address of operation requests and physical address;Daily record frame is given birth to At module, for generating daily record frame with physical address according to the logical address corresponding to operation requests;FTL frame generation modules are used In generating FTL frames using the part of the first FTL blocks, wherein FTL tables include multiple FTL blocks;Memory module, for being deposited on NVM Store up generate FTL frames and daily record frame, wherein the first FTL blocks multiple daily record frames composition daily record frame chained list and described first Multiple FTL frames of FTL blocks form FTL frame chained lists.
According to the seventh aspect of the invention, the first daily record based on FTL tables according to the seventh aspect of the invention is provided Updating device, including:FTL block determining modules, for determining the first FTL blocks of update, wherein the first FTL blocks are arrived by full storage NVM, and belong to the first FTL blocks last FTL frames have the first address, and belong to the first FTL blocks initial daily record frame tool There is the second address;Record the third address away from the nearest daily record frame for belonging to the first FTL blocks for being written into NVM of current time; FTL frame generation modules, for generating FTL frames using the part of the first FTL blocks;Daily record frame generation module, for recording current behaviour Corresponding logical address is asked to generate daily record frame with physical address;NVM writing modules, for writing FTL frames and daily record frame Enter NVM;Exception processing module, it is nearest away from current time when anomalous event occurs for occurring in response to anomalous event It is written into the 5th address of the daily record frame for belonging to the first FTL blocks of NVM, if the first FTL blocks are not yet by full storage again To NVM, the first address, the second address and the 5th address are recorded in starting page.
According to the eighth aspect of the invention, the first solid state disk according to the eighth aspect of the invention, including control are provided Device processed, NVM, random access storage device;Controller is respectively coupled to NVM and random access storage device;NVM include log area with User data area;Solid state disk daily record is stored in log area;User data is stored in user data area;Wherein in memory FTL tables are stored with, the FTL tables include multiple FTL blocks;The wherein described controller is for executing first party according to the present invention Method in terms of face, second aspect, the third aspect, fourth aspect or the 5th.
According to the ninth aspect of the invention, a kind of program including program code is provided, when be loaded into storage device and When being executed in storage device, said program code make the storage device execute according to a first aspect of the present invention based on FTL tables Mesh will generation method.
According to the tenth aspect of the invention, a kind of program including program code is provided, when be loaded into storage device and When being executed in storage device, the offer that said program code makes the storage device execute according to a second aspect of the present invention is non-volatile The method of RAM.
According to the eleventh aspect of the invention, a kind of program including program code is provided, when being loaded into storage device simultaneously When executing on a storage device, the reconstruction that said program code makes the storage device execute according to a third aspect of the present invention is non-easily The method for losing RAM.
According to the twelfth aspect of the invention, a kind of program including program code is provided, when being loaded into storage device simultaneously When executing on a storage device, said program code make the storage device execute according to a fourth aspect of the present invention based on FTL The daily record update method of table.
According to the thirteenth aspect of the invention, a kind of program including program code is provided, when being loaded into storage device simultaneously When executing on a storage device, said program code makes the fast quick-recovery of the storage device execution according to a fifth aspect of the present invention The method of FTL tables.
Description of the drawings
In order to illustrate the technical solutions in the embodiments of the present application or in the prior art more clearly, to embodiment or will show below There is attached drawing needed in technology description to be briefly described, it should be apparent that, the accompanying drawings in the following description is only this Some embodiments described in application can also be obtained according to these attached drawings other for those of ordinary skill in the art Attached drawing.
Fig. 1 is the block diagram of solid storage device in the prior art;
Fig. 2 is the structure diagram of solid state disk daily record according to an embodiment of the invention;
Fig. 3 is the structure diagram of FTL tables according to an embodiment of the invention;
Fig. 4 is the structure diagram of " writing " daily record according to an embodiment of the invention
Fig. 5 is the flow chart of solid state disk daily record generation method according to an embodiment of the invention;
Fig. 6 is the structure diagram of solid state disk daily record according to another embodiment of the invention;
Fig. 7 is the flow chart of solid state disk daily record generation method according to still another embodiment of the invention;
Fig. 8 is the flow chart according to an embodiment of the invention that FTL table methods are rebuild using daily record;
Fig. 9 is the block diagram of solid state disk according to the ... of the embodiment of the present invention;
Figure 10 is the schematic diagram according to the ... of the embodiment of the present invention that solid state disk daily record is generated in response to power loss event;
Figure 11 A are the newer schematic diagrames of FTL blocks according to further embodiment of this invention;
Figure 11 B are the newer schematic diagrames of FTL blocks according to another embodiment of the present invention;
Figure 12 is the block diagram according to the solid state disk of still another embodiment of the present invention;
Figure 13 is the structure diagram of non-volatile RAM daily record according to an embodiment of the invention;
Figure 14 is the structure diagram of non-volatile RAM daily record according to another embodiment of the invention;
Figure 15 is the flow chart of solid state disk daily record generation method according to still another embodiment of the invention;
Figure 16 is the flow chart of equipment starting method according to an embodiment of the invention;
Figure 17 is the block diagram of the solid state disk of still another embodiment according to the present invention;
Figure 18 is the schematic diagram of FTL tables reconstruction process according to the ... of the embodiment of the present invention;
Figure 19 is the flow chart that FTL tables are rebuild in multiple CPU cooperations according to the ... of the embodiment of the present invention;
Figure 20 is the flow chart of multiple CPU cooperation reconstruction FTL tables according to still another embodiment of the invention.
Specific implementation mode
The application proposes a kind of daily record update method, by when daily record frame is long, being carried out more to the FTL blocks of log area Newly, the occupancy to log area memory space is reduced, and effectively improves the speed of journal recovery.
Certainly, implementing any technical solution of the application must be not necessarily required to reach simultaneously above all advantages.
In order to make those skilled in the art more fully understand the technical solution in the application, below in conjunction with the embodiment of the present application In attached drawing, technical solutions in the embodiments of the present application is clearly and completely described, it is clear that described embodiment is only Only it is some embodiments of the present application, instead of all the embodiments.Based on the embodiment in the application, ordinary skill The every other embodiment that personnel are obtained, shall fall within the protection scope of the present application.
Further illustrate that the application implements with reference to illustrations.
Fig. 2 is the structure diagram of solid state disk daily record according to an embodiment of the invention.In order to be opened in solid state disk When dynamic, FTL tables can be quickly rebuild, and reduce unnecessary FTL block writes, provided according to an embodiment of the invention solid State hard disk daily record 210.Solid state disk daily record 210 is stored in non-volatile memory medium.Referring to Fig. 2, solid state disk daily record 210 is wrapped FTL frames 1-1 (220), FTL frames 1-2 (221) ... FTL frames 2-3 (225) are included, solid state disk daily record 210 further includes daily record frame 230 ... daily record frames 235.FTL frames are the component parts of FTL blocks, and in the example in figure 2, FTL blocks 1 include 3 FTL frames, by FTL frame 1-1, FTL frame 1-2 and FTL frames 1-1 compositions.Daily record frame 0-1 (230) is first for FTL blocks 0 (being not shown in Fig. 2) A daily record frame, daily record frame 1-1 (231) are first daily record frames for FTL blocks 1, and daily record frame 1-3 (232) is to be used for FTL blocks 1 The 2nd daily record frame, daily record frame 1-3 (235) is the 3rd daily record frame for FTL blocks 1, and daily record frame 2-1 (233) is FTL blocks 2 The 1st daily record frame, daily record frame 4-1 (234) is first daily record frame for FTL blocks 4.It is recorded in the metadata of daily record frame Information, to indicate the FTL blocks belonging to the daily record frame.And optionally, in first number of daily record frame (for example, daily record frame 1-3 (232)) Also record belongs to the previous daily record frame in the daily record frame of identical FTL blocks (for example, daily record frame 1-3 (232) and daily record frame 1-1 in (231) FTL blocks 1 are belonged to, and the previous daily record frame of daily record frame 1-3 (232) is daily record frame 1-1 (231)).In the embodiment of Fig. 2 In, FTL blocks occupy continuous physical address space (optionally, skipping bad block) in solid state disk.Optionally, in solid state disk Daily record memory block is provided with non-volatile memory medium, FTL blocks are stored in the continuation address space of daily record memory block.FTL frames The Physical Page that non-volatile memory medium is occupied with daily record frame, so as in a write operation, by the combination of FTL frames and daily record frame Non-volatile memory medium is written.
According to one embodiment of present invention, non-volatile memory medium is MLC (Multi Level Cell, multistage Unit) or TLC (Triple Level Cell, three-level unit) non-volatile memory medium, solid state disk mesh will is stored to non-easy When losing the data page of storage medium, pSLC (pseudo-SLC, pseudo- SLC) patterns or SLC (Single Level Cell, list are used Grade unit) mode access non-volatile memory medium, or only in LSB (Least Significant Bit, least significant bit) page Upper storage solid state disk daily record, to accelerate solid state disk daily record storing process and obtain higher data reliability.As another Kind embodiment, stores solid state disk daily record in SLC non-volatile memory mediums.It is non-in MLC in still another embodiment Solid state disk daily record is stored in the LSB page of volatile storage media.
It can be different corresponding to the quantity of the daily record frame of each FTL blocks.Referring to Fig. 2, it is not present whithin a period of time Update to FTL blocks 3, thus there is no the daily record frames corresponding to FTL blocks 3 in solid state disk daily record 210.And exist to FTL The multiple update of block 1, thus all updates of FTL blocks 1 are operated with 3 daily record frames (231,232,235) record.
In the embodiment of fig. 2, the sequential storage of memory address of the FTL blocks in FTL tables is pressed in solid state disk daily record 210 FTL blocks (for example, FTL blocks 2 store after FTL blocks 1), and the journal daily record frame generated by daily record frame.Each daily record frame Belong to and only belongs to a FTL block.In one example, " writing " journal entries for belonging to each FTL blocks are cached in memory. When belonging to " writing " journal entries of some FTL block and filling up a daily record frame, solid state disk daily record is written into daily record frame.
By this method, FTL tables can only need to preserve a complete documentation in solid state disk daily record, and in solid state disk day Each update of the record to FTL list items in will.When FTL entry updatings do not occur, no longer need to FTL tables being recorded in solid state disk In daily record, to save system resource.When FTL entry updatings occur, only by the modification record of FTL list items in daily record frame In, reduce the write-in data volume of solid state disk daily record.
Using solid state disk daily record 210, FTL tables can be rebuild.Due to storage device power down etc., the FTL in memory Table disappears, and needs to read solid state disk daily record 210 and rebuilds FTL tables.To rebuild FTL tables, non-volatile in solid state disk is deposited In storage media, storage address (physical address) of each FTL blocks in solid state disk is also stored, and belong to each FTL blocks The physical address (physical address for optionally, also storing the earliest daily record frame for belonging to each FTL blocks) of last daily record frame.
When rebuilding FTL tables, as an example, the FTL frames of the FTL blocks 1 stored in non-volatile memory medium are obtained solid Physical address in state hard disk daily record 210, and read (including FTL frame 1-1, FTL frames of the FTL blocks 1 in solid state disk daily record 210 1-2 and FTL frame 1-3).Next, obtaining the object for the last daily record frame (referring to Fig. 2, daily record frame 1-3 (235)) for belonging to FTL blocks 1 Address is managed, and according to the backward for the journal entries for pressing address arrangement in daily record frame 1-3 (235), with note in daily record frame 1-3 (235) The correspondence FTL entries in FTL blocks 1 in the journal entries update memory of record.As an example, FTL blocks are updated with journal entries The meaning of corresponding entry includes, using the logical address of journal entries as index accesses FTL blocks, the physical address of journal entries being used in combination Replace the physical address for the FTL entries being indexed in FTL blocks.Due to updating FTL blocks 1 according to the backward of daily record frame 1-3 (235), And the posterior journal entries in position contain the posterior update to FTL entries in daily record frame 1-3 (235), thus rebuilding FTL During table, only need update primary to each FTL entries.For this purpose, further, also marking the FTL items being updated Mesh so that during rebuilding FTL tables, the FTL entries being updated no longer are updated.More with daily record frame 1-3 (235) After new FTL blocks 1, obtains and belong to the previous daily record frame of FTL blocks 1 (referring to Fig. 2, daily record frame 1-2 with daily record frame 1-3 (235) (232));Until by all daily record frames of FTL blocks 1 (FTL frames 1-1 (231), FTL frames 1-2 (232) and FTL frames 1-3 (235)) all All entries for updating FTL blocks 1 or FTL blocks 1 are all updated.As an example, it is had recorded in daily record frame 1-3 (235) same Belong to the address of the previous FTL frames 1-2 (232) of FTL blocks 1.
As another citing of the present invention FTL blocks 1 stored in non-volatile memory medium are obtained to rebuild FTL tables Physical address of the FTL frames in solid state disk daily record 210, and read (including the FTL frames of the FTL blocks 1 in solid state disk daily record 210 1-1, FTL frame 1-2 and FTL frame 1-3).Next, obtaining the first daily record frame for belonging to FTL blocks 1 (referring to Fig. 2, daily record frame 1-1 (231)) physical address, and according to the sequence for the journal entries for pressing address arrangement in daily record frame 1-1 (231), with daily record frame 1-1 (231) the correspondence FTL entries in FTL blocks 1 in the journal entries update memory recorded in.As another citing, with daily record item The meaning that mesh updates the corresponding entry of FTL blocks includes, using the logical address of journal entries as index accesses FTL blocks, daily record being used in combination The physical address of entry replaces the physical address for the FTL entries being indexed in FTL blocks.Due to according to the suitable of daily record frame 1-1 (231) Sequence updates FTL blocks 1, thus during rebuilding FTL tables, need to be updated to FTL blocks with each journal entries.With daily record frame After 1-1 (231) updates FTL blocks 1, obtain with daily record frame 1-1 (231) belong to FTL blocks 1 latter daily record frame (referring to Fig. 2, Daily record frame 1-2 (232));Until by all daily record frames of FTL blocks 1 (FTL frames 1-1 (231), FTL frames 1-2 (232) and FTL frames 1- 3 (235)) it all updates and arrives FTL blocks 1.As an example, the next FTL for belonging to FTL blocks 1 is had recorded in daily record frame 1-1 (231) The address of frame 1-2 (232).
Fig. 3 is the structure diagram of FTL tables according to an embodiment of the invention.FTL tables include multiple FTL table clauses (or List item).In one embodiment, the corresponding pass of a logical page address and a Physical Page is had recorded in each FTL table clauses System.In yet another embodiment, the correspondence of logical block address and physical block address is had recorded in each FTL table clauses. Still in another embodiment, mapping relations and/or the logical page (LPAGE) of logical block address and physical block address are recorded in FTL tables The mapping relations of location and physical page address.In still another embodiment, FTL table organizations are tree construction.
In still another embodiment, FTL tables are stored in continuous memory address space, in each FTL table clauses Recording physical address, and the logical address corresponding to physical address is represented with the memory address of each FTL table clauses itself.FTL The quantity of table clause corresponds to the size of solid storage device logical address space.
It is data frame by FTL table organizations to store the purpose of FTL tables in non-volatile memory medium.Referring to Fig. 3, FTL Table (310) includes FTL frames 1, FTL frames 2, FTL frames 3 ... FTL frames 600.Each FTL frames, including multiple FTL table clauses.Each The size of FTL frames is corresponding (for example, page) with the minimum write-in unit of non-volatile memory medium.The data of non-volatile memory medium Page is typically sized to 2KB, 4KB, 8KB or 16KB.In one embodiment, the data page size of non-volatile memory medium is 16KB, and FTL frame signs are 2KB, 4KB or 8KB.In another embodiment, the data page size of non-volatile memory medium is 4KB, and FTL frame signs are 512B, 1KB or 2KB.Usually, FTL frame signs are selected so that the data of non-volatile memory medium Page size is the integral multiple of FTL frame signs, in order to which the storage of multiple FTL frames to be arrived to the data page for non-volatile memory medium. In one example, FTL frames 1 that FTL tables include, FTL frames 2, FTL frames 3 ... FTL frames 600 are continuous by memory address in memory Storage.
In an embodiment according to the present invention, FTL tables (310) are also organized as FTL blocks.FTL blocks include multiple FTL frames, Preferably, including the continuous multiple FTL frames of memory address.In the example in figure 3, FTL blocks 1 (320) include 100 FTL frames (FTL frames 1 arrive FTL frames 100), FTL blocks 2 (321) include that FTL frames 101 arrive FTL frames 200, and FTL blocks 6 (325) include FTL frames 501 arrive FTL frames 600.As an example, FTL frame signs are 4KB, including a FTL entries of 1K (1024), and each FTL entries correspond to 4KB logical/physical address spaces, thus each FTL frames correspond to 4MB logical/physical address spaces, and each FTL blocks include 100 FTL frames have corresponded to 400MB logical/physical address spaces.
In solid storage device processing write requests, for the write request allocated physical address, and records this in FTL tables and write The logical address of request and the correspondence of physical address.In another embodiment, by the host of access solid storage device It safeguards FTL tables, when needing to send out write request to solid-state storage, the physical address of solid storage device is distributed for the write request, And the logical address of the write request and the correspondence of physical address are recorded in FTL tables.
Fig. 4 is the structure diagram of " writing " daily record according to an embodiment of the invention.In solid storage device processing write requests When, also generate " writing " daily record.The corresponding logical address of write operation and physical address are had recorded in " writing " daily record.For each The update of FTL list items is asked, and corresponding " a writing " journal entries are generated.
In order to store the purpose of " writing " daily record in non-volatile memory medium, daily record " will be write " and be organized as (the ginseng of daily record frame 410 See Fig. 4).Each daily record frame 410 includes multiple " writing " journal entries (422,424,42n) (or " list item ").Each " write " day Will entry (422,424 or 42n) includes a logical address and corresponding physical address.According to reception FTL table quilts Newer sequencing generates and organizes " writing " journal entries in daily record frame.Thus in " writing " daily record, it is understood that there may be have " writing " journal entries of same logical address and/or physical address.
The size of each daily record frame 410 is corresponding (for example, page) with the minimum write-in unit of non-volatile memory medium.It is non-easy The data page for losing storage medium is typically sized to 2KB, 4KB, 8KB or 16KB.In one embodiment, non-volatile memory medium Data page size is 16KB, and daily record frame sign is 2KB, 4KB, 8KB or 16KB.In another embodiment, non-volatile memory The data page size of medium is 4KB, and daily record frame sign is 512B, 1KB or 2KB or 4KB.Usually, daily record frame sign is selected, So that the data page size of non-volatile memory medium is the integral multiple of daily record frame sign, in order to deposit one or more daily record frames Store up the data page of non-volatile memory medium.In yet another embodiment, one or more FTL frames and one or more " writing " days Will data frame constitutes a data page of non-volatile memory medium.
Further include metadata 440 in daily record frame 410 according to the ... of the embodiment of the present invention, daily record is indicated in metadata 440 Frame 410 belongs to FTL blocks 1.Mesh will frame 410 belongs to FTL blocks 1, it is meant that the entry in daily record frame 410 has recorded the item to FTL blocks 1 Purpose updates, and in other words, the logical address of the entry in daily record frame 410 is in the ranges of logical addresses of FTL blocks 1.
In one example, queue is provided to accommodate " writing " journal entries.When " writing " daily record is generated, by journal entries It is inserted into queue (tail of the queue).Optionally, multiple entries are combined and are inserted into queue in an internal storage access operates, combined is multiple The size of entry can be equal to highway width or memory interface width.In taking out journal entries from the team of queue head, by daily record Frame sign takes out the journal entries specified number.Queue is first in first out, so that can hold in solid state disk daily record The genesis sequence of journal entries easy to identify.The depth of appropriate selection queue so that when power down occurs, in stand-by power supply power supply In finite time, the journal entries in queue can be written to solid state disk daily record.
In another example, daily record frame buffer zone is provided to accommodate " writing " journal entries.Daily record frame buffer zone have pair It should be in the size of one or more daily record frames.The size of appropriate selection buffering area so that when power down occurs, supplied in stand-by power supply In the finite time of electricity, the journal entries in daily record frame buffer zone can be written to solid state disk daily record.When daily record frame buffers When area has accumulated the data of daily record frame sign, its content is written in solid state disk daily record.
In further example, when adding " writing " journal entries to queue or daily record frame buffer zone, also check for queue or In buffering area whether the existing entry with same logical address.If having been had recorded with identical in queue or buffering area The entry of logical address will be write then with the existing entry in the journal entries to be written update queue or buffering area to reduce Enter the data volume of solid state disk daily record.
As shown in figure 5, being the flow of the solid state disk daily record generation method according to an embodiment of the invention based on FTL tables Figure.When updating FTL tables, the logical address for the FTL list items being updated and the correspondence (510) of physical address are recorded.It is optional Ground accordingly updates FTL tables.Cache the correspondence of recorded logical address and physical address, each logical address and physics The correspondence of address constitutes " a writing " journal entries.Certain amount " writes " journal entries and constitutes a daily record frame.Same What " writing " journal entries in daily record frame recorded is the update to the FTL entries of identical FTL blocks.When caching it is a plurality of logically When the correspondence of location and physical address can constitute a daily record frame, a plurality of logical address and physical address of caching are utilized Correspondence generates daily record frame (520).The part of one of multiple FTL blocks of FTL tables in memory is also selected to generate FTL frames (530).For example, selected FTL frames 1-1 is the part for being not yet written to non-volatile memory medium of FTL blocks 1.Preferred In embodiment, FTL frames 1-1 (220) corresponds to the non-volatile memory medium of solid state disk with the size of the combination of daily record frame (230) Data page size, so as to by the write operation of a non-volatile memory medium by FTL frames 1-1 (220) and daily record frame (230) Combination write-in solid state disk non-volatile memory medium (540).
According to still another embodiment of the invention, the write request of predetermined quantity is often received, a daily record frame is generated, wherein The mapping relations of the logical address and physical address corresponding to the write request of the predetermined quantity can be accommodated in one daily record frame.And A daily record frame is often generated, then the part of FTL tables is selected to generate FTL frames.Still another embodiment according to the present invention, period Ground utilizes " writing " journal entries cached to generate daily record frame.And often generate a daily record frame, then select the part of FTL tables to give birth to At FTL frames.Still another embodiment according to the present invention, the size of daily record frame correspond to the data page of non-volatile memory medium The size of size, FTL frames also corresponds to the data page size of non-volatile memory medium.
Still another embodiment according to the present invention, when generating the FTL frames of FTL tables, by the FTL blocks memory address of itself And the part of FTL blocks is selected to generate FTL frames.
For example, selecting the length in FTL blocks 1 since address 0 for the part of the FTL blocks of L, to constitute FTL frames 1-1.Choosing The part for selecting the FTL blocks that the length in FTL blocks 1 since the L of address is L, to constitute FTL frames 1-2.It selects in FTL blocks 1 from address (N-1) length that * L start is the part of the FTL blocks of L, to constitute FTL frames 1-N.Successively by each FTL blocks FTL frames of FTL tables And non-volatile memory medium is written so that complete FTL tables are able to record in solid state disk daily record.
By this method, a Physical Page is stored to solid state disk every time.Even if can be in stand-by power supply if solid state disk power down In the limited working time, the storage of FTL tables is completed.
One of ordinary skill in the art will realize in some cases, not include complete FTL tables in solid state disk daily record. For example, for new or blank solid state disk, with the use to solid state disk, the part of 3 selection FTL tables and generate Power down occurs after FTL frames, at this point, only FTL blocks 1 are effective in FTL tables, FTL blocks 1 are only had recorded in solid state disk daily record.It is logical It crosses in solid state disk daily record and marks used data block and/or not used data block, and identify in solid state disk day Valid data frame in will, to rebuild FTL tables when solid state disk power down.
Fig. 6 is the structure diagram of solid state disk daily record according to another embodiment of the invention.Solid state disk daily record 610 It is stored in non-volatile memory medium.Referring to Fig. 6, solid state disk daily record 410 include multiple Physical Page (Physical Page 620,621, 622……628、629).Physical Page 620 includes FTL frames 1-1, FTL frame 1-2, FTL frame 1-3 and daily record frame 0-1.FTL frames with Daily record frame size having the same.FTL frame 1-1, FTL frame 1-2 ... FTL frames 1-100 contains all FTL items of FTL blocks 1 Mesh, daily record frame 1-1, daily record frame 1-2 and daily record frame 1-3 are the daily record frames for belonging to FTL blocks 1.Solid state disk daily record 610 further includes it The frame (other frames 1, other frames 2 and other frames 3) of his type.
Each FTL frames further include metadata, have recorded the FTL blocks belonging to the FTL frames and belong to the previous of same FTL blocks The storage location (physical address) of a FTL frames.Multiple FTL frames to belong to same FTL blocks are organized into chained list.Each daily record Frame also includes metadata, has recorded the FTL blocks belonging to the daily record frame and belongs to the storage of the previous daily record frame of same FTL blocks Position (physical address).Multiple daily record frames to belong to same FTL blocks are organized into chained list.
In the example of fig. 6, FTL frames 1-1 is first FTL frame of FTL blocks 1, and FTL frames 1-2 is the 2nd of FTL blocks 1 FTL frames, and so on, FTL frames 1-100 is the last one FTL frame of FTL blocks 1.The multiple FTL frames for belonging to same FTL blocks can be with The discontinuous storage in solid state disk daily record 610.When the other types frame for having high priority occurs, can be deposited in time Store up solid state disk daily record.Daily record frame 0-1 is first daily record frame for FTL blocks 0 (being not shown in Fig. 6), and daily record frame 1-1 is For first daily record frame of FTL blocks 1, daily record frame 1-2 is the 2nd daily record frame for FTL blocks 1, and daily record frame 1-3 is to be used for 3rd daily record frame of FTL blocks 1.Entry being ranked sequentially by generation in daily record frame.
Fig. 7 is the flow chart of solid state disk daily record generation method according to still another embodiment of the invention.According to the reality of Fig. 7 Example is applied, solid state disk daily record 610 as shown in FIG. 6 is generated.
When updating FTL tables, the logical address for the FTL list items being updated and the correspondence (710) of physical address are recorded. Optionally accordingly update FTL tables.Cache recorded logical address and physical address correspondence, each logical address with The correspondence of physical address constitutes " a writing " journal entries.Certain amount " writes " journal entries and constitutes a daily record frame. What " writing " journal entries in same daily record frame recorded is the update to the FTL entries of identical FTL blocks.A plurality of when caching is patrolled When the correspondence of volume address and physical address can constitute a daily record frame, a plurality of " writing " journal entries of caching is utilized to generate Daily record frame, and mark in daily record frame the FTL blocks (720) belonging to it (referring to Fig. 6 and Fig. 7, such as daily record frame 0-1).Optionally, Also label belongs to the storage location of the previous daily record frame of same FTL blocks with the daily record frame in daily record frame.Referring to Fig. 6, daily record Frame 0-1 is first daily record frame of FTL blocks 0 (being not shown in Fig. 6), its previous daily record frame is marked not deposit in daily record frame 0-1 .
One of multiple FTL blocks of FTL tables in memory (for example, FTL blocks 1) is also selected to generate FTL frames (730).By institute Non-volatile memory medium (740) is written in one or more FTL frames of generation together with daily record frame.In the example of fig. 6,3 FTL The combination of frame and 1 daily record frame occupies a Physical Page of non-volatile memory medium.Step 710-740 is repeated, at any time Solid state disk daily record is written into daily record frame and FTL frames.
In one example, one of selection FTL blocks (for example, FTL blocks 1) generate FTL frames, and are write completely by FTL blocks 1 It before entering solid state disk daily record 610, avoids that other FTL blocks are written to solid state disk daily record as possible, so that FTL blocks are as possible intensively It is distributed in solid state disk daily record.However, since FTL frames include indicating the metadata of previous FTL frames, thus belong to same The FTL frames of FTL blocks need not in solid state disk daily record Coutinuous store.It can be by other kinds of frame (for example, other frames 1 of Fig. 6) Or the FTL frames (for example, FTL frame 2-1 of Fig. 6) of other FTL blocks are stored between multiple FTL frames of FTL blocks 1.
When electric on a storage device, FTL frames and daily record frame can be read from solid state disk daily record 610, to rebuild FTL tables. In one example, by reading complete solid state disk daily record 610, find recorded in solid state disk daily record 610 it is each FTL blocks and corresponding daily record frame, and determine before storage device power down, the state of FTL tables.In another example, To accelerate FTL table reconstruction process, the first FTL frames of multiple FTL frames of each FTL blocks are also recorded in non-volatile memory medium And/or the storage location of last FTL frames, and record the first daily record frame of multiple daily record frames of each FTL blocks and/or last day The storage location of will frame.To which when electric on a storage device, the FTL frames of each FTL blocks and depositing for daily record frame can be positioned rapidly Storage space is set, and restores each FTL blocks, without reading complete solid state disk daily record 610.
In one embodiment, in response to storage device power down, even if the journal entries lazy weight of caching is to form Daily record frame also fills the journal entries of caching to form daily record frame, and solid state disk daily record is written.And in non-volatile memory medium First FTL frames of the middle multiple FTL frames for recording each FTL blocks and/or the storage location of last FTL frames, and record each FTL First daily record frame of multiple daily record frames of block and/or the storage location of last daily record frame.Referring back to Fig. 6, in solid state disk day In will, complete documentation 100 FTL frames of FTL blocks 1;Thus, in response to storage device power down, in non-volatile memory medium The storage location of record FTL frame 1-1 and/or FTL frames 1-100, the storage location with daily record frame 1-1 and/or daily record frame 1-3, with Just restore FTL blocks 1 from solid state disk daily record.And as an example, in power down, not yet 100 FTL of complete documentation FTL blocks 2 Frame, but update of the complete documentation to FTL blocks 2 in daily record frame, in the case, without using recording in solid state disk daily record 610 FTL frames 2-1, FTL frame 2-2, FTL frame 2-3, FTL frame 2-7, FTL frame 2-8, FTL frame 2-9 rebuild FTL blocks 2, but only make FTL blocks 2 are rebuild with the daily record frame 2-1 for belonging to FTL blocks 2, and other list items for the FTL2 not being recorded in daily record frame 2-1 exist It can be labeled as when reconstruction unallocated.In another example, more parts of complete FTL blocks 2 are had recorded in solid state disk daily record 610 The FTL blocks 2 of (every part of FTL block 2 includes 100 FTL frames) with non-complete documentation, in response to storage device power down, and non-volatile The first FTL frames of newest a complete FTL blocks 2 and/or the storage location of last FTL frames are recorded in storage medium, and are used for FTL is rebuild.
Fig. 8 is the flow chart of equipment starting method according to an embodiment of the invention.It can according to the method for the embodiment of Fig. 8 It, can also be by the host implementation of access solid state disk to be implemented by solid state disk.When the equipment of such as solid state disk starts, need Rebuild FTL tables.
In an embodiment according to the present invention, FTL tables are divided into multiple FTL blocks, are independently weighed from solid state disk daily record Build each FTL blocks.Determine FTL blocks (800) to be reconstructed.For example, being rebuild from first FTL BOB(beginning of block).Alternatively, estimation storage system By the storage region accessed first (for example, storage region of host storage program area) after system startup, and preferentially load pair Answer the FTL blocks in this partial memory area domain.Alternatively, in solid state disk (for example, in solid state disk daily record) storage it is last or The logical address or corresponding FTL blocks that previous solid state disk is accessed first after starting, and the FTL alternatively preferentially rebuild The foundation of block.When solid state disk powers on, stored logical address (one or more) or FTL blocks are obtained.In solid state disk On store before start after accessed first logical address when, select FTL blocks so that the logical address of selected FTL blocks Range includes the logical address accessed first.
In another example, the FTL blocks corresponding to I/O Request that identification storage device receives are (comprising the IO received Ask the FTL blocks of requested logical address), and preferentially load this part FTL blocks.
Still in another example, after equipment starts, FTL tables are rebuild by the sequence of FTL block address.Work as reconstruction When to FTL blocks 3, the I/O Request that the access from host corresponds to the logical address of FTL blocks 5 is received, then pause is to FTL blocks 3 Reconstruction operation starts the reconstruction to FTL blocks 5, after the completion of FTL blocks 5 are rebuild, responds the I/O Request, in being then further continued for previously Disconnected FTL table sequence reconstruction operations.
Still in another example, after equipment starts, FTL tables are rebuild in a manner of prediction, when predicting down One when by accessed FTL blocks being FTL blocks 2, is rebuild FTL blocks 2.If at this moment receiving the access from host to correspond to The I/O Request of the logical address of FTL blocks 5, then pause start the reconstruction to FTL blocks 5, in FTL blocks 5 to the reconstruction operation of FTL blocks 2 After the completion of reconstruction, the I/O Request is responded, then predicts FTL blocks to be reconstructed again, and carry out reconstruction operation.
To rebuild FTL blocks, is obtained from the precalculated position in non-volatile memory medium and specify FTL blocks (such as FTL blocks 1) The storage location (810) of FTL frames and/or daily record frame (if present) in solid state disk daily record.According to one embodiment of present invention, The storage location of last 1 FTL frame of FTL blocks 1 and last 1 daily record frame of FTL blocks 1 are recorded in non-volatile memory medium Storage location.
FTL frames are read from the storage location of last 1 FTL frame of FTL blocks 1, and obtain preceding 1 from read FTL frames The storage location of a FTL, and preceding 1 FTL frame is read, by this method, is read from solid state disk daily record and belong to FTL blocks 1 All FTL frames (820).And if in the presence of the daily record frame for belonging to FTL blocks, also from the storage position of last 1 daily record frame of FTL blocks 1 It sets and reads daily record frame, the storage location of preceding 1 daily record frame is obtained from read daily record frame, by this method from solid state disk day All daily record frames for belonging to FTL blocks 1 are read in will.
By each FTL frames of reading, by it, the part that memory is used as FTL blocks 1 is written in the position in FTL blocks 1.It will belong to All FTL frames of FTL blocks 1 are put into memory, to form the substance (830) of FTL blocks 1.If next, in the presence of FTL blocks 1 are belonged to Daily record frame, also the FTL blocks 1 in memory are updated with daily record frame, to complete reconstruction (840) to FTL blocks 1.More with daily record frame New FTL blocks 1 need to follow specified sequence.For example, being generated the backward of sequence by the journal entries in daily record frame to update FTL Block 1.First, the last 1 daily record frame for belonging to FTL blocks 1 is obtained from solid state disk daily record, it will be more in the last one daily record frame A journal entries are by sequential update from back to front to FTL blocks 1.The meaning that FTL blocks are updated with journal entries is, with daily record item Logical address in mesh replaces the physical address for being indexed entry in FTL blocks 1 as index.Belong to FTL next, obtaining Journal entries update FTL blocks 1 therein are used in combination in the penultimate daily record frame of block 1.
Due in journal entries there may be multiple entries with same logical address, and it is last in these entries Entry describes the what be new of corresponding FTL entries, to avoid being substituted newly by the old content of FTL entries when updating FTL blocks 1 Content.For this purpose, during rebuilding FTL blocks 1, to the FTL entry setting flags that each is updated, in subsequent reconstruction In the process, if waiting for there is label in the newer FTL entries of journal entries, ignore the journal entries (that is, not using the daily record Entry updates FTL blocks).And after having handled all daily record frames of FTL blocks 1, remove all labels being set of FTL blocks 1.
As another embodiment of the present invention, it is generated sequentially by the journal entries in daily record frame to update FTL blocks 1, it is first First, the first daily record frame for belonging to FTL blocks 1 is obtained from solid state disk daily record, multiple journal entries in the first daily record frame are pressed Sequential update from front to back is to FTL blocks 1.With journal entries update FTL blocks meaning be, in journal entries logically The physical address for being indexed entry in FTL blocks 1 is replaced as index in location.Next, obtaining the second daily record for belonging to FTL blocks 1 Journal entries update FTL blocks 1 therein are used in combination in frame.
After the completion of the reconstruction of FTL blocks 1, although not yet reconstructing complete FTL tables, to 1 counterlogic address model of FTL blocks The I/O Request enclosed can be responded.
Next, it is determined whether there is also other FTL blocks (850) to be reconstructed.If reconstructed FTL tables is all FTL blocks can complete system and start (860).If still remaining the FTL blocks that do not rebuild, continues step 800 and determination is to be reconstructed FTL blocks.
Fig. 9 is the block diagram of solid state disk according to the ... of the embodiment of the present invention.Storage device include controller, nand flash memory, DRAM and NOR flash memory.Controller is respectively coupled to nand flash memory, NOR flash memory and DRAM.Nand flash memory include start page, Log area and user data area.Solid state disk daily record according to the ... of the embodiment of the present invention is stored in log area, in user data area The user data that storage solid state disk is preserved as storage device.It is stored in solid state disk daily record from multiple FTL blocks FTL frames and daily record frame.
Store FTL tables in DRAM, in Fig. 9, the part by the FTL tables indicated by shade is the FTL tables being updated Partly (for example, corresponding to FTL frames 1).The daily record frame 1-1 stored in log area and daily record frame 1-2 has recorded FTL tables more Newly.And the address of the FTL frames 1 corresponding to it is also stored in daily record frame 1-1, and daily record frame 1-2 is stored and belonged to FTL frames 1 Previous daily record frame (daily record frame 1-2) address.To reset daily record frame by the way that the FTL exterior portion indicated by FTL frames 1 point is upper The update recorded in 1-1 and daily record frame 1-2, can obtain by the FTL exterior portion indicated by shade point.
In the example of figure 9, the FTL frames of each FTL blocks are stored in the startup page of nand flash memory with daily record frame in daily record The address in area.Optionally, the FTL frames for belonging to same FTL blocks are organized into chained list, and the daily record frame for belonging to same FTL blocks is also organized For chained list, stored in starting page the FTL frames chained lists of each FTL blocks and daily record frame chained list log area first address with tail Location.Or stored in starting page each FTL blocks FTL frame chained lists head node and tail node log area storage location, And storage location of the head node of daily record frame chained list with tail node in log area.
In a further embodiment, multiple startup pages are stored in nand flash memory, for provides startup page backup or Start the different editions of page.The storage location of effectively start page is stored also in NOR flash memory (in nand flash memory physically Location).When solid state disk powers on, controller obtains the address of effectively start page from NOR flash memory, and is dodged from NAND according to the address Deposit middle acquisition effectively start page, and then rebuild in DRAM according to the FTL frame address and/or daily record frame address that start page instruction FTL tables.
Figure 10 illustrates the schematic diagram according to the ... of the embodiment of the present invention that solid state disk daily record is generated in response to power loss event. In the embodiment of Figure 10, solid state disk daily record 1010 include Physical Page 1020, Physical Page 1021, Physical Page 1022 ... physics Page 1028 and Physical Page 1029.When power down occurs, Physical Page 1022 has been written to non-volatile memory medium.After a power failure, The limited time of stand-by power supply power supply, for the last state of FTL tables is stored in non-volatile memory medium within the limited time, The ratio for changing the FTL frames and daily record frame of write-in Physical Page, increases the accounting of daily record frame.In the example of Figure 10, power down occurs Afterwards, it is filled up completely Physical Page 1028 and 1029 with daily record frame, and FTL frames is no longer written, to write daily record frame as much as possible Enter non-volatile memory medium.
During stand-by power supply is powered, even if being completely written to daily record frame is not written into FTL frames, non-volatile memory Jie can be written The daily record frame of matter is also limited.According to one embodiment of present invention, to ensure that the update of FTL tables can be saved The quantity of the daily record frame of non-volatile memory medium can be written according to during stand-by power supply is powered to non-volatile memory medium Come determine caching journal entries quantity.For example, if stand-by power supply can be supported N number of daily record frame write-in non-volatile memory being situated between Matter, the then total amount of the journal entries cached are no more than the quantity for the journal entries that N number of daily record frame is accommodated.Further, due to Daily record frame is corresponding with FTL blocks, and the quantity of daily record frame is no more than N.If having filled daily record in N number of daily record frame in memory Entry suspends the generation of new daily record frame, Yi Jike before one or more write-in non-volatile memory mediums by these daily record frames Selection of land suspends the response of the operation (for example, write order, erasing order, Trim orders etc.) to needing to update FTL table clauses.
In another embodiment in accordance with the invention, it is not only in response to power loss event, also adjusts FTL according to other reasons The ratio of frame and daily record frame.For example, when write order frequently occurs, more journal entries have been cached in memory, adjust solid-state The ratio of FTL frames and daily record frame in the Physical Page of hard disk daily record, non-volatile memory medium is written in journal entries as early as possible.
Wherein, occur in response to anomalous event, be included in the last FTL tables number for storing each FTL blocks in the startup page of NVM Each FTL blocks are stored according to address in NVM of address of the frame in NVM and last daily record frame or in the startup page of NVM most Physical page address of the FTL tables data frame group in NVM and physical page address of the last daily record frame group in NVM, wherein FTL tables afterwards The multiple FTL frames and daily record frame group that data frame group is stored on identical NVM Physical Page are stored in identical NVM Physical Page On multiple daily record frames.
Figure 11 A and Figure 11 B are the newer schematic diagrames of FTL blocks according to further embodiment of this invention.
Referring to Figure 11 A, solid state disk daily record 1110 includes multiple Physical Page (Physical Page 1120,1121,1122 ... 1128、1129).Physical Page 1120 includes FTL frames 1-1, FTL frame 1-2, FTL frame 1-3 and daily record frame 1-1.FTL frames and daily record Frame size having the same.FTL frame 1-1, FTL frame 1-2 ... FTL frames 1-6 contains all FTL entries (6 of FTL blocks 1 FTL frames), daily record frame 1-1, daily record frame 1-2 ... daily record frames 1-10 are the daily record frames for belonging to FTL blocks 1.Solid state disk daily record 1110 In further include the frame (for example, belonging to the FTL frames 2 of FTL blocks 2, belonging to the FTL frames 3 of FTL blocks 3) for belonging to other FTL blocks.
After non-volatile memory apparatus is written in Physical Page 1128, and daily record frame 1-10 is generated, and prepared daily record frame Non-volatile memory apparatus is written in 1-10 (referring to Figure 11 A, indicated by " current time ").Need selection from which FTL block at this time It is middle to generate FTL frames (or other need the data that persistence preserves).In an embodiment according to the present invention, compare and belong to each The quantity of the daily record frame of FTL blocks.In the example of Figure 11 A, in solid state disk daily record 1110, the daily record frame for belonging to FTL blocks 1 has 9, the daily record frame for belonging to FTL blocks 2 has 1.From possessing FTL frames are generated in the FTL blocks more than daily record frame be advantageous.From solid-state When rebuilding FTL blocks in hard disk daily record, foundation is needed to belong to all daily record frames of the FTL blocks to update FTL blocks.To daily record frame Quantity increase can slow down the speed of FTL blocks reconstruction, and the increase of daily record number of frames also results in the solid state disk daily record of bigger Memory space.
Figure 11 A are returned, at current time, determines and generates FTL frames from FTL blocks 1, to update in solid state disk daily record FTL blocks 1.Update the FTL blocks 1 in solid state disk daily record, it is meant that had existed including complete in solid state disk daily record 1110 In the case of the FTL frames of FTL blocks 1, new FTL blocks 1 are written into solid state disk daily record 1110.When new FTL blocks 1 are completely write Enter solid state disk daily record 1110, old FTL blocks 1 can be deleted from solid state disk daily record.
For the FTL blocks 1 in update solid state disk daily record, the FTL frames for belonging to FTL blocks 1 are generated from the FTL blocks 1 in memory 1-1, FTL frame 1-2 and FTL frame 1-3 form Physical Page 1129, and be written to non-volatile memory medium together with daily record frame 1-10. At this point, if power down occurs and needs to rebuild FTL blocks 1, can only by read from solid state disk daily record 1110 Physical Page 1120 with Physical Page 1121 obtains FTL frames 1-1 to FTL frame 1-6, to restore FTL blocks 1, and according to daily record frame 1-1 to daily record frame 1-10 come Update FTL blocks 1.Thus, if power down occurs after Physical Page 1129 is written into nonvolatile storage, it is also necessary in non-volatile memory Record belongs to the storage location of the last FTL frames of FTL blocks 1 for the position of the FTL1-6 in Physical Page 1121 in device, and belongs to The storage location of the last daily record frame of FTL blocks 1 is the storage location of the daily record frame 1-10 in Physical Page 1129.
Similarly, it if power down occurs for " current time " in Figure 11 A, needs to record in nonvolatile storage and belongs to The storage location of the last FTL frames of FTL blocks 1 is the position of the FTL1-6 in Physical Page 1121, and belongs to the last of FTL blocks 1 The storage location of daily record frame is the storage location of the daily record frame 1-9 in Physical Page 1128, and belongs to the 1st daily record of FTL blocks 1 The storage location of frame is the storage location of the daily record frame 1-1 in Physical Page 1120.In another example, belong to FTL blocks 1 The quantity of FTL frames can be known (for example, 6), to which the last FTL frames (FTL1-6) according to FTL blocks 1 trace forward 5 FTL frames belong to all FTL frames of FTL blocks 1 to obtain, the storage location of the 1st FTL frame without recording FTL blocks 1.
Referring to Figure 11 B, all 6 FTL for belonging to FTL blocks 1 have been stored in Physical Page 1129 and Physical Page 1130 Frame.And daily record frame 1-11 has recorded last daily record newer to FTL blocks 1 before write-in Physical Page 1130.At this point, if desired rebuilding FTL blocks 1 then need to only read FTL frames 1 to FTL frames 6 from Physical Page 1129 and Physical Page 1130, and obtain and generate physics Page 1129 is with during Physical Page 1130, and to the daily record that FTL blocks 1 are updated, these daily records are recorded in daily record frame 1-10 and day In will frame 1-11.To which if power down occur at this time, need to record the last FTL frames for belonging to FTL blocks 1 in nonvolatile storage Storage location is the position of the FTL1-6 in Physical Page 1130, and it is object to belong to the storage location of the last daily record frame of FTL blocks 1 Manage the storage location of the daily record frame 1-11 in page 1130.Further, the storage for the 1st FTL frame for belonging to FTL blocks 1 is also recorded Position is the position of the FTL1-1 in Physical Page 1129, and it is physics to belong to the storage location of the 1st daily record frame of FTL blocks 1 The storage location of daily record frame 1-10 in page 1129.
At this point, Physical Page 1120 can be deleted with the FTL frames stored in Physical Page 1121 and daily record frame 1-1 is to daily record Frame 1-9 can also be deleted.These memory spaces can be wiped free of and for storing other data.
It, can be there are many plan to select to generate FTL frames (or other need the data that persistence preserves) from which FTL block Slightly.FTL blocks correspond to logical address space.Known or identify the more frequent situation of the write operation of certain logical address spaces Under, the preferably corresponding FTL blocks of such logical address space are updated, to reduce the daily record number of frames for these FTL blocks. Or the more frequent either read-only zones of read operation that is known or identifying certain logical address spaces, can reduce it is such logically The renewal frequency of the corresponding FTL blocks in location space.Other than FTL blocks, the method that can also provide according to embodiments of the present invention by Non-volatile memory apparatus is written in other kinds of data, for example, the bad block table in storage device.Under normal circumstances, bad block table is believed Breath renewal frequency is relatively low, and the data frame of solid state disk daily record is written for its generation with lower priority.In another example certain data Reliability requirement it is not high, then lowest priority can be used that the data frame of solid state disk daily record is written for its generation.
Figure 12 is the block diagram of another solid state disk according to the ... of the embodiment of the present invention.Storage device includes controller, NAND sudden strains of a muscle It deposits, DRAM and NOR flash memory.Controller is respectively coupled to nand flash memory, NOR flash memory and DRAM.Include starting in nand flash memory Page, log area and user data area.Solid state disk daily record according to the ... of the embodiment of the present invention is stored in log area, in user data The user data that area's storage solid state disk is preserved as storage device.It is stored in solid state disk daily record from multiple FTL blocks FTL frames and daily record frame and the NVRAM blocks frame from multiple NVRAM blocks and NVRAM daily record frames.
FTL tables are stored in DRAM, and provide NVRAM by DRAM.NVRAM is the storage in the DRAM of solid state disk Area;Host can access NVRAM (Non-Volatile RAM, non-volatile RAM) memory block in the way of accessing memory;Although by DRAM provides the memory blocks NVRAM, but is non-volatile in host NVRAM;By way of similar to record FTL tables, deposit Storage equipment is recorded by NVRAM blocks and to the update of NVRAM in NVM;To restore from NVM if even if power down occurs The content of NVRAM realizes non-volatile characteristic.In the present invention, NVRAM also piecemeals, the piecemeal plan of the strategy and FTL tables of piecemeal It is slightly identical.
In Figure 12, the part by the NVRAM indicated by shade be updated NVRAM part (for example, corresponding to NVRAM blocks 1).NVRAM frames 1, NVRAM frames 2, and (NVRAM) daily record frame 1-1, (NVRAM) daily record are stored in log area Frame 1-2.NVRAM frames 1 constitute NVRAM blocks 1 with NVRAM frames 2, and daily record frame 1-1 and daily record frame 1-2 has recorded to NVRAM's The update of NVRAM blocks 1.Optionally, NVRAM daily records frame 1-1 is also stored the mark of the NVRAM blocks 1 corresponding to it, and NVRAM Daily record frame 1-2 stores the address for the previous NVRAM daily records frame (NVRAM daily records frame 1-1) for belonging to NVRAM blocks 1.By The update recorded in NVRAM daily record frame 1-1 and NVRAM daily record frames 1-2 is reset on NVRAM blocks 1 (or is, with NVRAM daily record frames 1-1 and NVRAM daily record frames 1-2 update NVRAM blocks 1), it can obtain by the part of the NVRAM indicated by shade.
In a further embodiment, multiple startup pages are stored in nand flash memory, for provides startup page backup or Start the different editions of page.The storage location of effectively start page is stored also in NOR flash memory (in nand flash memory physically Location).When solid state disk powers on, controller obtains the address of effectively start page from NOR flash memory, and is dodged from NAND according to the address Middle acquisition effectively start page is deposited, and then according to the NVRAM frame address and/or NVRAM daily record frames of the NVMRAM blocks for starting page instruction Address rebuilds NVRAM in DRAM.
Figure 13 is the structure diagram of NVRAM according to an embodiment of the invention.Solid state disk daily record 1310 is stored in In non-volatile memory medium.Referring to Figure 13, solid state disk daily record 1310 include multiple Physical Page (Physical Page 1320,1321, 1322……1328、1329).Physical Page 1320 includes NVRAM frame 1-1, NVRAM frame 1-2, NVRAM frame 1-3 and NVRAM days Will frame 0-1.NVRAM frames and NVRAM daily record frames size having the same.NVRAM frame 1-1, NVRAM frame 1-2 ... NVRAM frames 1- 100 contain all the elements of NVRAM blocks 1, and NVRAM daily record frame 1-1, NVRAM daily record frame 1-2 and NVRAM daily record frames 1-3 is to belong to In the NVRAM daily record frames of NVRAM blocks 1.Solid state disk daily record 1310 further include other kinds of frame (other frames 1, other frames 2 with Other frames 3).In the example of Figure 13, the combination of 3 NVRAM frames and 1 NVRAM daily record frame occupies non-volatile memory medium One Physical Page.
Optionally, each NVRAM frames further include metadata, have recorded and belong to the previous of same NVRAM blocks with the NVM frames The storage location (physical address on non-volatile memory medium) of NVRAM frames.Further, metadata further includes the NVRAM NVRAM blocks belonging to frame.Multiple NVRAM frames to belong to same NVRAM blocks are organized into chained list.Each NVRAM daily record frames Also include metadata, have recorded the NVRAM blocks belonging to the NVRAM daily record frames and belong to the previous NVRAM of same NVRAM blocks The storage location (physical address) of daily record frame.Multiple NVRAM daily records frames to belong to same NVRAM blocks are organized into chained list.
In the example of Figure 13, NVRAM frames 1-1 is first NVRAM frame of NVRAM blocks 1, and NVRAM frames 1-2 is NVRAM 2nd NVRAM frame of block 1, and so on, NVRAM frames 1-100 is the last one NVRAM frame of NVRAM blocks 1.Belong to same Multiple NVRAM frames of NVRAM blocks can the discontinuous storage in solid state disk daily record 1310.In other classes for having high priority When type frame occurs, other types frame can be stored into solid state disk daily record in time.NVRAM daily record frames 0-1 is to be used for NVRAM First NVRAM mesh will frame of block 0 (being not shown in Figure 13), NVRAM daily record frames 1-1 are first for NVRAM blocks 1 NVRAM daily record frames, NVRAM daily record frames 1-2 are the 2nd NVRAM daily record frames for NVRAM blocks 1, and NVRAM daily record frames 1-3 is to use In the 3rd NVRAM daily record frame of NVRAM blocks 1.Entry being ranked sequentially by generation in daily record frame.
Figure 14 is the structure diagram of NVRAM according to another embodiment of the invention.NVRAM1410 is stored in non-volatile In storage medium.Referring to Figure 14, solid state disk daily record 1410 includes multiple Physical Page (Physical Page 1420,1421,1422 ... 1430、1431).Physical Page 1420 includes FTL frames 1-1, FTL frame 1-2, FTL frame 1-3 and daily record frame 0-1.FTL frames and daily record Frame size having the same.Physical Page 1421 includes NVRAM frame 1-1, NVRAM frame 1-2, NVRAM frame 1-3 and NVRAM daily records Frame 0-1.NVRAM frames and NVRAM daily record frames size having the same.NVRAM frame 1-1, NVRAM frame 1-2 ... NVRAM frames 1- 100 contain all the elements of NVRAM blocks 1, and NVRAM daily record frame 1-1, NVRAM daily record frame 1-2 and NVRAM daily record frames 1-3 is to belong to In the NVRAM daily record frames of NVRAM blocks 1.Solid state disk daily record 1410 further include other kinds of frame (for example, other frames 1, other Frame 2 and other frames 3).
In the example of Figure 14, NVRAM frames 1-1 is first NVRAM frame of NVRAM blocks 1, and NVRAM frames 1-2 is NVRAM 2nd NVRAM frame of block 1, and so on, NVRAM frames 1-100 is the last one NVRAM frame of NVRAM blocks 1.Belong to same Multiple NVRAM frames of NVRAM blocks can the discontinuous storage in solid state disk mesh will 1410.In the example of Figure 14, FTL frames 1-1 is first FTL frame of FTL blocks 1, and FTL frames 1-2 is the 2nd FTL frame of FTL blocks 1, and FTL frames 1-3 is the last of FTL blocks 1 One FTL frame.The multiple FTL frames for belonging to same FTL blocks can the also discontinuous storage in solid state disk daily record 1410.When When NVRAM frames are high priority, it is preferentially stored into solid state disk daily record 1410, when FTL frames are high priority, by it It, can also be according to priority when the other types frame for having higher priority occurs in preferential storage to solid state disk daily record 1410 Sequence is stored to solid state disk daily record in time.
Figure 15 is the flow chart of solid state disk daily record generation method according to still another embodiment of the invention.According to Figure 15's Embodiment generates solid state disk daily record 1310 as shown in fig. 13 that.
When updating NVRAM, the NVRAM access unit address being updated and memory cell content (1510) are recorded.It can Selection of land accordingly updates NVRAM.NVRAM access unit address can be the physical address or the visible NVRAM of host of DRAM Address.Caching recorded address and memory cell content, it is each to address and memory cell content, constitute one NVRAM days Will entry.Certain amount NVRAM journal entries constitute a NVRAM daily record frame.NVRAM journal entries in same daily record frame What is recorded is the update to identical NVRAM blocks.When the multipair address of caching and memory cell content can constitute a NVRAM When daily record frame, NVRAM daily records frame (1520) is generated using a plurality of NVRAM journal entries of caching.Optionally, in NVRAM daily records The NVRAM blocks belonging to it are marked in frame (referring to Figure 13, such as daily record frame 0-1).Optionally, it is also marked in NVRAM daily record frames Belong to the storage location of the previous NVRAM daily records frame of same NVRAM blocks with the NVRAM daily record frames.Referring to Figure 13, NVRAM days Will frame 0-1 is first NVRAM daily record frame of NVRAM blocks 0 (being not shown in Figure 13), before marking it in NVRAM daily record frames 0-1 One NVRAM daily record frame is not present.
One of multiple NVRAM blocks of NVRAM in memory (for example, NVRAM blocks 1) is also selected to generate NVRAM frames (1520).Non-volatile memory medium (1540) is written into the one or more NVRAM frames generated together with NVRAM daily record frames. Step 1510-1540 is repeated, solid state disk daily record is written in NVRAM daily records frame and NVRAM frames at any time.
In one example, selection one of NVRAM blocks (for example, NVRAM blocks 1) generate NVRAM frames, and by NVRAM Block 1 is completely written to before solid state disk daily record 1310 (referring to Figure 13), avoids the frame that other NVRAM blocks are written to NVRAM as possible Or the frame of other blocks, so that the NVRAM frames of same NVRAM blocks are intensively distributed in solid state disk daily record 1310 as possible.However, Since NVRAM frames include indicating the metadata of previous NVRAM frames, thus the NVRAM frames for belonging to same NVRAM blocks need not be Coutinuous store in solid state disk daily record.Can by other kinds of frame (for example, other frames 1 of Figure 13 or FTL frame 1-1 of Figure 14) or The NVRAM frames (for example, NVRAM frame 2-1 of Figure 13) of other NVRAM blocks are stored between multiple NVRAM frames of NVRAM blocks 1.
When electric on a storage device, NVRAM frames and NVRAM daily record frames can be read from solid state disk daily record 1310, with weight Build NVRAM.In one example, it by reading complete solid state disk daily record 1310, finds in solid state disk daily record 1310 The each NVRAM frames and corresponding NVRAM daily record frames of record, and determine before storage device power down, the shape of NVRAM State.In another example, to accelerate NVRAM reconstruction process, the more of each NVRAM blocks are also recorded in non-volatile memory medium First NVRAM frames of a NVRAM frames and/or the storage location of last NVRAM frames, and record the multiple of each NVRAM blocks First NVRAM daily records frame of NVRAM daily record frames and/or the storage location of last NVRAM daily records frame.To on a storage device When electric, the storage location of the NVRAM frames and NVRAM daily record frames of each NVRAM blocks can be positioned rapidly, and restores each NVRAM Block, without reading complete solid state disk daily record 1310.
In one embodiment, in response to storage device power down, though the NVRAM journal entries lazy weight of caching with NVRAM daily record frames are formed, also fill the NVRAM journal entries of caching to form NVRAM daily record frames, and solid state disk day is written Will.And the first NVRAM frames of multiple NVRAM frames of each NVRAM blocks and/or last are recorded in non-volatile memory medium The storage location of NVRAM frames, and record multiple NVRAM daily records frames of each NVRAM blocks the first NVRAM daily records frame and/or The storage location of last NVRAM daily record frames.Referring back to Figure 13, in solid state disk daily record 1310, complete documentation NVRAM blocks 1 100 NVRAM frames.Thus, in response to storage device power down, recorded in non-volatile memory medium NVRAM frames 1-1 and/or The storage location of NVRAM frames 1-100, the storage location with NVRAM daily record frame 1-1 and/or NVRAM daily record frames 1-3, so as to from admittedly Restore NVRAM blocks 1 in state hard disk daily record 1310.In another example, in power down, not yet complete documentation NVRAM blocks 2 100 NVRAM frames, but complete documentation does not use all updates of NVRAM blocks 2 in the case in NVRAM daily record frames NVRAM frame 2-1, NVRAM frame 2-2, NVRAM frame 2-3, NVRAM frame 2-7, NVRAM frames 2- recorded in solid state disk daily record 1310 8, NVRAM frames 2-9 rebuilds NVRAM blocks 2, but rebuilds NVRAM using only the NVRAM daily record frame 2-1 for belonging to NVRAM blocks 2 Block 2, and the other parts content for the NVRAM blocks 2 not being recorded in NVRAM daily record frames 2-1 can be labeled as not making when rebuilding With or be set as initial value.In another example, it is (every that more parts of complete NVRAM blocks 2 are had recorded in solid state disk daily record 1310 Part NVRAM block 2 includes 100 NVRAM frames) NVRAM blocks 2 with non-complete documentation, in response to storage device power down, and it is non-easily Lose the storage position of the first NVRAM frames and/or last NVRAM frames that newest a complete NVRAM blocks 2 are recorded in storage medium It sets, and for the reconstruction of NVRAM blocks 2.
Figure 16 is the flow chart of equipment starting method according to an embodiment of the invention.According to the method for the embodiment of Figure 16 It can be implemented by solid state disk, it can also be by the host implementation of access solid state disk.When the equipment of such as solid state disk starts, It needs to rebuild NVRAM.
In an embodiment according to the present invention, NVRAM is divided into multiple NVRAM blocks, is independently rebuild from NVRAM each NVRAM blocks.Determine NVRAM blocks (1600) to be reconstructed.For example, being rebuild from first NVRAM BOB(beginning of block).Alternatively, estimation storage The region that system is accessed NVRAM after starting first, and preferentially load the NVRAM blocks of this corresponding subregion.At another In example, the NVRAM blocks corresponding to NVRAM access requests that identification storage device receives (have received access request The NVRAM blocks of requested address), and preferentially load this part NVRAM blocks.
Next it is obtained from the precalculated position in non-volatile memory medium and specifies NVRAM blocks (such as NVRAM blocks 1) The storage location (1610) of NVRAM frames and/or NVRAM daily record frame (if present) in solid state disk daily record.It is according to the present invention One embodiment, the storage location and NVRAM blocks of last 1 NVRAM frame of record NVRAM blocks 1 in non-volatile memory medium The storage location of 1 last 1 NVRAM mesh will frames.
NVRAM frames are read from the storage location of last 1 NVRAM frame of NVRAM blocks 1, and from read NVRAM frames The storage location of preceding 1 NVRAM frame is obtained, and reads preceding 1 NVRAM frame and is read from solid state disk daily record by this method Belong to all NVRAM frames (1620) of NVRAM blocks 1.And if in the presence of the NVRAM daily record frames for belonging to NVRAM blocks 1, also from NVRAM The storage location of last 1 NVRAM daily record frames of block 1 reads NVRAM daily record frames, is obtained from read NVRAM daily records frame The storage location of preceding 1 NVRAM daily record frames reads from solid state disk daily record belong to all of NVRAM blocks 1 by this method NVRAM daily record frames.
By each NVRAM frames of reading, by it, the part that memory is used as NVRAM blocks 1 is written in the position in NVRAM blocks 1. All NVRAM frames for belonging to NVRAM blocks 1 are put into memory, to form the substance (1630) of NVRAM blocks 1.If next, In the presence of the NVRAM daily record frames for belonging to NVRAM blocks 1, the NVRAM blocks 1 in memory also are updated with NVRAM daily records frame, with completion pair The reconstruction (1640) of NVRAM blocks 1.It needs to follow specified sequence with NVRAM daily record frames update NVRAM blocks 1.In an example In, the backward of sequence is generated by the journal entries in NVRAM daily record frames to update NVRAM blocks 1.First, from solid state disk day The last 1 NVRAM daily record frames for belonging to NVRAM blocks 1 are obtained in will, by multiple NVRAM days in the last one NVRAM daily record frame Will entry is by the sequential update of generated time from back to front to NVRAM blocks 1.The meaning of NVRAM blocks is updated with NVRAM journal entries It is, uses the address in NVRAM journal entries as index, NVRAM blocks are replaced with the memory cell content of NVRAM journal entries The content for being indexed storage unit in 1.Next, obtaining the penultimate NVRAM daily record frames for belonging to NVRAM blocks 1, it is used in combination NVRAM journal entries update NVRAM blocks 1 therein.
After the completion of the reconstruction of NVRAM blocks 1, sound can be obtained to the NVRAM access requests of 1 corresponding address range of NVRAM blocks It answers.
Since there may be multiple entries with identical address in NVRAM mesh will entries, and in these entries most Entry describes the what be new of corresponding NVRAM entries afterwards, and the old content by NVRAM entries is avoided when updating NVRAM blocks 1 New content is substituted.For this purpose, during rebuilding NVRAM blocks 1, the NVRAM storage units that each is updated are set Tagging, if waiting for there is label in the newer NVRAM storage units of NVRAM journal entries, is neglected during subsequent reconstruction The slightly NVRAM journal entries (that is, updating NVRAM blocks without using the NVRAM journal entries).And works as and handled NVRAM blocks 1 After all daily record frames, all labels being set of NVRAM blocks 1 are removed.
Next, it is determined whether there is also other NVRAM blocks (1650) to be reconstructed.If the reconstructed institute of NVRAM There are NVRAM blocks, the reconstruction process of NVRAM to complete (1660).If still remaining the NVRAM blocks that do not rebuild, continue step 1600 simultaneously Determine NVRAM blocks to be reconstructed.
Figure 17 is the block diagram according to the solid state disk of the still another embodiment of the application.Solid state disk includes control unit Part, nand flash memory and DRAM.Control unit is respectively coupled to nand flash memory and DRAM.Include log area and use in nand flash memory User data area.It is hard to store solid-state according to the solid state disk daily record of the embodiment of the present application in user data area for storage in log area The user data that disk is preserved as storage device.The FTL frames from multiple FTL blocks and daily record are stored in solid state disk daily record Frame.Control unit includes multiple CPU, and CPU 0, CPU 1 and CPU 2 are shown as in Figure 17.
Solid state disk daily record includes FTL frames and daily record frame.In Figure 17, by b-th of FTL of " FTL frames a-b " instruction FTL blocks a Frame.By b-th of daily record frame of " daily record frame a-b " instruction FTL blocks a.Optionally, FTL frames and daily record frame size having the same.Figure In 17, FTL frame 1-1, FTL frame 1-2 ... FTL frames 1-6 contains all FTL frames of FTL blocks 1, daily record frame 1-1 and daily record frame 1- 2 be the daily record frame for belonging to FTL blocks 1.FTL frame 2-1 to FTL frames 2-6 is all FTL frames of FTL blocks 2, and daily record frame 2-1 is to belong to The daily record frame of FTL blocks 2.Daily record frame 0-1 is the daily record frame for belonging to 0 (not shown) of FTL blocks.
Optionally, the FTL frames for belonging to identical FTL blocks are stored on continuous Physical Page, on multiple Physical Page Continuous read operation obtains the FTL frames for belonging to same FTL blocks.And FTL frames and daily record frame can be stored simultaneously in Physical Page, and Specified address area storage FTL frames and the daily record frame of Physical Page.
Optionally, each FTL frames further include metadata, have recorded the FTL blocks belonging to the FTL frames and belong to same FTL The storage location (physical address) of the previous FTL frames of block.Multiple FTL frames to belong to same FTL blocks are organized into chained list. Each daily record frame also includes metadata, has recorded the FTL blocks belonging to the daily record frame and belongs to the previous daily record of same FTL blocks The storage location (physical address) of frame.Multiple daily record frames to belong to same FTL blocks are organized into chained list.
In the example of Figure 17, FTL frames 1-1 is first FTL frame of FTL blocks 1, and FTL frames 1-2 is the 2nd of FTL blocks 1 FTL frames, and so on, FTL frames 1-6 is the last one FTL frame of FTL blocks 1.The multiple FTL frames for belonging to same FTL blocks can be It is continuously or non-continuously stored in solid state disk daily record.Daily record frame 0-1 is first for FTL blocks 0 (being not shown in Figure 17) Daily record frame, daily record frame 1-1 are first daily record frames for FTL blocks 1, and daily record frame 1-2 is the 2nd daily record for FTL blocks 1 Frame.Entry being ranked sequentially by generation in daily record frame.
To rebuild FTL tables, the FTL blocks 1 obtained from log area and FTL blocks 2 are stored in DRAM.From the daily record of nand flash memory Area reads all FTL frames (for example, FTL frame 1-1 to FTL frame 1-6) for belonging to FTL blocks 1, and DRAM is arrived in storage, to form FTL blocks 1. All FTL frames (for example, FTL frame 2-1 to FTL frame 2-6) for belonging to FTL blocks 2 are read from the log area of nand flash memory, storage is arrived DRAM, to form FTL blocks 2.It is to be appreciated that FTL tables may be logically divided into multiple FTL blocks, and stored in log area.And it is rebuilding When FTL tables, obtains multiple FTL blocks from the areas Mu Zhi and store into DRAM.
With the FTL blocks in the FTL entries update DRAM recorded in daily record frame.In Figure 17, by the FTL blocks indicated by shade Part has been updated.Journal entries in daily record frame have recorded logical address and corresponding physical address.According to journal entries Logical address determine FTL FTL entries in the block, and FTL entries determined by the physical address update with journal entries.
In Figure 17, the daily record frame 1-1 and daily record frame 1-2 stored in log area has recorded the update of FTL blocks 1.And day The mark of the FTL blocks 1 corresponding to it is also stored in will frame 1-1, and daily record frame 1-2 is stored and belonged to the previous of FTL blocks 1 with it The address of a daily record frame (daily record frame 1-1).To be recorded in daily record frame 1-1 and daily record frame 1-2 by resetting on FTL blocks 1 Update, can obtain updated FTL blocks 1.Similarly, the daily record frame for belonging to FTL blocks 2 is obtained from log area, by journal entries The backward of the sequence of generation obtains each journal entries, and journal entries update FTL blocks 2 are used in combination.
According to an embodiment of the present application, for the reconstruction process for accelerating to FTL tables, assisted by multiple CPU of control unit Implement together and concurrently the reconstruction to FTL tables.In FTL table reconstruction process, for each FTL blocks, CPU 0 is from nand flash memory Log area reads the multiple FTL frames for belonging to the FTL blocks, is stored in DRAM, is formed in the FTL blocks in DRAM (for example, FTL blocks 1) the multiple daily record frames for belonging to the FTL blocks are read, and from the log area of nand flash memory, and be stored in DRAM, is formed in Log buffer area (for example, referring to Figure 17, log buffer area 1) in DRAM.It will be used for one of FTL blocks (for example, FTL blocks 1) All daily record frames be stored in log buffer area after, CPU 0 informs CPU1, and the update of the FTL blocks is handled by CPU 1.Together When, CPU 0 obtains another FTL block (for example, referring to Figure 17, FTL blocks 2) from nand flash memory and belongs to another FTL All daily record frames of block, and store into DRAM (for example, referring to Figure 17, log buffer 2).CPU 0 and CPU 1 can be held parallel Row is stored the FTL frames of the FTL block (for example, FTL blocks 2) in nand flash memory and daily record frame into DRAM by CPU 0, and By CPU 1 another FTL block is updated with the daily record frame of another FTL block (for example, FTL blocks 1) in DRAM.To FTL blocks Update after the completion of, form the part of rebuild FTL tables.
It is to be appreciated that according to an embodiment of the present application, control unit further includes other CPU (for example, CPU 2). For CPU 0 by after FTL blocks 2 and its storage to DRAM of daily record frame, instruction CPU 2 handles the update to FTL blocks 2.And control unit It may also include more CPU, in addition to CPU 0, other each CPU handle the update to one of FTL blocks.
According to an embodiment of the present application, is handled by CPU 0 and move the FTL frames in nand flash memory with daily record frame The process of DRAM, and the process that FTL blocks are updated according to the journal entries of daily record frame is handled by other CPU.Due to each FTL blocks and Its log buffer is located at the different memory spaces of DRAM, a number of other CPU to the update of FTL blocks can parallel processing, into one Step accelerates the reconstruction process of FTL tables.
Optionally, when CPU 0 obtains daily record frame, the address of next daily record frame is determined based on the metadata of current log frame, To relatively low to the occupancy of the bandwidth in flash memory channel when reading daily record frame.To improve bandwidth availability ratio, CPU 0 obtains N number of simultaneously The daily record frame of FTL blocks (N is positive integer, for example, 1-4, and FTL tables may include more than ten or tens FTL blocks).Other CPU update When FTL blocks, the multiple journal entries for belonging to FTL blocks are accessed from DRAM, and FTL blocks are updated according to journal entries, this process is deposited It is accessed in a large amount of small size DRAM, accessing resource to the DRAM of CPU has larger occupancy.FTL tables are thus divided into multiple FTL Block, each CPU handle the update to one of FTL blocks.By this method, reasonable layout rebuilds FTL between each section of control component The task of table reduces the stand-by period caused by resource contention, accelerates the reconstruction process of FTL tables.
Further, during other CPU update FTL blocks, CPU 0 can be simultaneously by other FTL blocks in nand flash memory FTL frames and daily record frame move DRAM.To further promote the concurrency of the reconstruction process of FTL tables.
By cooperateing with the task of processing reconstructed FTL tables by multiple CPU, the reconstruction process of FTL tables is accelerated, solid-state is reduced The stand-by period of user after hard disk startup.
Figure 18 is the schematic diagram according to the FTL table reconstruction process of the embodiment of the present application.For each FTL blocks, CPU 0 ( Referring to Figure 17) the FTL frames for constituting same FTL blocks (for example, FTL blocks 2) are read from nand flash memory, and it is stored in DRAM 1620 In.The daily record frame that CPU 0 also belongs to FTL blocks 2 from reading in nand flash memory (in the example of Figure 18, stores in nand flash memory Daily record frame 2-1 to daily record frame 2-M is all daily record frames for belonging to FTL blocks), and these daily record frames are stored in DRAM 1610. By FTL blocks 2 and belong to FTL blocks 2 daily record frame be stored in DRAM after, CPU 0 indicate CPU 1 (referring also to Figure 17) with belong to In the daily record frame update FTL blocks 2 of FTL blocks 2.Following CPU0 can be read from nand flash memory another FTL blocks (for example, FTL blocks 3, It is not shown), and by FTL blocks 3 and after belonging to the mesh will frame storage to DRAM of FTL blocks 3, instruction CPU2 uses the day for belonging to FTL blocks 3 Will frame updates FTL blocks 3.
To obtain the daily record frame for belonging to FTL blocks (for example, FTL blocks 2), CPU0 is obtained from the specified address (1602) of nand flash memory Take the daily record frame (daily record frame 2-M) (1) ultimately produced for belonging to FTL blocks 2.In the metadata of each daily record frame, have recorded same The daily record frame belongs to storage address of the previous daily record frame of identical FTL blocks in nand flash memory.CPU 0 is from last daily record frame 2-M Storage address (1604) (2) of the middle penultimate daily record frame 2- (M-1) for obtaining FTL blocks 2 in nand flash memory, and from NAND The position (1604) of flash memory reads daily record frame 2- (M-1) (3).Similarly, CPU 0 is obtained from daily record frame 2- (M-1) and is belonged to The storage address (4) of the previous daily record frame of FTL blocks 2, and daily record frame is read from the storage address, until CPU 0 is from nand flash memory In have read all daily record frames (5-7) for belonging to FTL blocks 2.The read daily record frame for belonging to FTL blocks 2 is stored in by CPU0 In DRAM 1610.Then, CPU 0 indicates the daily record frame of 1 start to process FTL blocks 2 of CPU.
In response to receiving the instruction of CPU 0, CPU 1 accesses the daily record frame for belonging to FTL blocks 2 in DRAM 1610.CPU 1 from The first daily record frame (the daily record frame 2-1 generated earliest) belonged in all daily record frames of FTL blocks 2 starts, from daily record frame 2-1 The logical address (for example, LBA z) recorded in each journal entries and physical address (PBA) (8) are extracted, is looked for according to logical address To the FTL table clauses in FTL blocks 2, it is used in combination the physical address (PBA) recorded in journal entries to update and corresponds in DRAM 1620 Physical address (PBA) (9) in the FTL table clauses of logical address LBA z.For all daily record frames of FTL blocks 2, CPU1 is according to day The sequence that will frame generates, from front to back successively with the FTL entries (10-13) in each journal entries update FTL blocks 2.
Optionally, to belong to same FTL blocks multiple daily record frames multiple journal entries by sequential update from back to front FTL blocks.Due in journal entries there may be multiple entries with same logical address, and the last item in these entries Mesh describes the what be new of corresponding FTL entries, to avoid being substituted in new by the old content of FTL entries when updating FTL blocks Hold.For this purpose, during rebuilding FTL blocks, to the FTL entry setting flags that each is updated, in subsequent reconstruction mistake Cheng Zhong ignores the journal entries (that is, not using the daily record item if waiting for there is label in the newer FTL entries of journal entries Mesh updates FTL blocks).And after having handled all daily record frames of FTL blocks, remove all labels being set of FTL blocks.
In Figure 18, the sequence that is occurred by the operation indicated by arrow of digital indication in arrow.In response to completing use Complete update of the journal entries to FTL blocks 2 (as an example), CPU 1 (as an example) notify CPU 0.To which CPU 0 is releasable Log buffer 2 for FTL blocks 2.And available 2 response I/O command of FTL blocks.
Optionally, each CPU of control unit may include SRAM or Cache.To update FTL blocks, CPU using journal entries Journal entries are loaded into one's own SRAM or Cache by 1 or CPU 2 from the log buffer in DRAM, and identify daily record item Logical address indicated by mesh and physical address, and utilize the FTL items of logical address and the FTL blocks in physical address update DRAM Mesh.SRAM or Cache has than the access speed of DRAM high (lower delay), and journal entries are loaded into SRAM or Cache In be conducive to quickening journal entries update FTL blocks process.
Figure 19 is to be cooperated with rebuilding the flow chart of FTL tables according to multiple CPU of the embodiment of the present application.According to the embodiment of Figure 19 Method can be implemented by the control unit of solid state disk, can also access solid state disk host control under implement. When the equipment of such as solid state disk starts, need to rebuild FTL tables.
In an embodiment according to the present invention, FTL tables are divided into multiple FTL blocks, are independently weighed from solid state disk daily record Build each FTL blocks.FTL blocks (1910) to be reconstructed are determined by CPU 0.For example, being rebuild from first FTL BOB(beginning of block).Alternatively, estimating It counts the storage region accessed first (for example, storage region of host storage program area) after storage system starts, and excellent First load the FTL blocks in this corresponding partial memory area domain.Alternatively, in solid state disk in (for example, in solid state disk daily record) storage The logical address or corresponding FTL blocks that primary or previous solid state disk is accessed first after starting, and it is alternatively preferential The foundation of the FTL blocks of reconstruction.When solid state disk powers on, stored logical address (one or more) or FTL blocks are obtained. When the logical address accessed first after starting before being stored on solid state disk, FTL blocks are selected so that selected FTL blocks Ranges of logical addresses includes the logical address accessed first.
To rebuild FTL blocks, CPU 0 is obtained from the precalculated position in non-volatile memory medium specifies FTL blocks (such as FTL blocks 1) storage location of the FTL frames in solid state disk daily record.According to one embodiment of present invention, it is recorded in non-volatile memory medium The storage location of last 1 FTL frame of FTL blocks 1.CPU 0 reads FTL from the storage location of last 1 FTL frame of FTL blocks 1 Frame, and obtain from read FTL frames the storage location of preceding 1 FTL, and read preceding 1 FTL frame, by this method, from consolidating All FTL frames (1912) for belonging to FTL blocks 1 are read in state hard disk daily record.
Next, CPU 0, which is also obtained from the precalculated position in non-volatile memory medium, specifies FTL blocks (such as FTL blocks 1) Storage location of the daily record frame in solid state disk daily record.According to one embodiment of present invention, FTL is recorded in non-volatile memory medium The storage location of last 1 daily record frame of block 1.CPU 0 reads daily record from the storage location of last 1 daily record frame of FTL blocks 1 Frame obtains the storage location of preceding 1 daily record frame from read daily record frame, reads belong to from solid state disk daily record by this method In all daily record frames (1914) of FTL blocks 1, and will be in the read all daily record frames storage to DRAM for belonging to FTL blocks 1.
By FTL blocks 1 and belong to FTL blocks 1 daily record frame be stored in DRAM after, in order to rebuild FTL blocks 1, CPU 0 refers to Show the reconstruction handled by CPU 1 to FTL blocks 1.CPU 1 obtains the journal entries (1920) for belonging to FTL blocks 1 from DRAM, and institute is used in combination The journal entries update FTL blocks 1 (1922) of acquisition.For example, the backward for being generated sequence by the journal entries in daily record frame is come more New FTL blocks 1.First, the last 1 daily record frame for belonging to FTL blocks 1 is obtained from solid state disk daily record, by the last one daily record frame In multiple journal entries by sequential update from back to front to FTL blocks 1.The meaning that FTL blocks are updated with journal entries is, uses Logical address in journal entries replaces the physical address for being indexed entry in FTL blocks 1 as index.Belong to next, obtaining In next daily record frame of FTL blocks 1, journal entries update FTL blocks 1 therein are used in combination.
Next, it is judged that whether FTL blocks 1 update completion (1924), if FTL blocks 1 have been updated over completion, FTL blocks 1 are completed Reconstruction (1926).If FTL blocks 1 do not update completion, continues step 1920 and obtain other daily record frames for belonging to FTL blocks 1, and With journal entries therein update FTL blocks 1.
In an embodiment according to the present invention, to promote the concurrency of FTL table reconstruction process, FTL blocks 1 are rebuild in CPU 1 While, the FTL frames of other FTL blocks (such as FTL blocks 2) of nand flash memory and daily record frame are also moved DRAM by CPU 0.
During other CPU update FTL blocks (such as CPU 1 updates FTL blocks 1), to accelerate the reconstruction of FTL tables Journey, the instructions of CPU 0 are handled by CPU 2 to the reconstruction tasks of FTL blocks 2, to reduce that user after solid state disk starts waits for when Between.
CPU 2 obtains the journal entries (1930) for belonging to FTL blocks 2 from DRAM, and acquired journal entries is used in combination to update FTL Block 2 (1932).For example, being generated the backward of sequence by the journal entries in daily record frame to update FTL blocks 2.
Next, it is judged that whether FTL blocks 2 update completion (1934), if FTL blocks 2 have been updated over completion, FTL blocks 2 are completed Reconstruction (1936).If FTL blocks 2 do not update completion, continue step 1930, and obtain other daily record frames for belonging to FTL blocks 2, Journal entries update FTL blocks 2 therein are used in combination.
Figure 20 is to be cooperated with rebuilding the flow chart of FTL tables according to multiple CPU of the another embodiment of the application.
In an embodiment according to the present invention, FTL tables are divided into multiple FTL blocks, are independently weighed from solid state disk daily record Build each FTL blocks.FTL blocks (2010) to be reconstructed are determined by CPU 0.
To rebuild FTL blocks, CPU 0 is obtained from the precalculated position in non-volatile memory medium specifies FTL blocks (such as FTL blocks 1) storage location of the FTL frames in solid state disk daily record.According to one embodiment of present invention, it is recorded in non-volatile memory medium The storage location of last 1 FTL frame of FTL blocks 1.CPU 0 reads FTL from the storage location of last 1 FTL frame of FTL blocks 1 Frame, and obtain from read FTL frames the storage location of preceding 1 FTL, and read preceding 1 FTL frame, by this method, from consolidating All FTL frames (2012) for belonging to FTL blocks 1 are read in state hard disk daily record.
It is rebuild as log buffer area to accommodate next, CPU 0 distributes memory space (2016) in DRAM FTL blocks 1 daily record frame, and ask to read from the precalculated position of non-volatile memory medium and belong to the daily record frames of FTL blocks 1 (2014).Since each FTL blocks include multiple daily record frames, need to be read out multiple daily record frames according to certain sequence.According to One embodiment of the present of invention belongs to the daily record frames of FTL blocks 1 to read, and CPU 0 is from the precalculated position in non-volatile memory medium Obtain storage location of the daily record frame in solid state disk daily record of FTL blocks 1.Wherein, FTL blocks 1 are recorded in non-volatile memory medium The storage location of last 1 daily record frame.CPU 0 reads daily record frame from the storage location of last 1 daily record frame of FTL blocks 1, from institute The storage location of preceding 1 daily record frame is obtained in the daily record frame of reading, by this method, is read from solid state disk daily record and is belonged to FTL All daily record frames of block 1.
In the example of Figure 20, the operation (2014) that daily record frame is read in request is asynchronous.Day is being read from flash memory After will frame, CPU 0 will receive daily record frame and read completion message (2018).Completion message, CPU 0 are read in response to receiving daily record frame By read daily record frame storage to (2020) in DRAM.Optionally, step 2010, which arrives step 2014, to be multiple FTL blocks simultaneously Read FTL frames and daily record frame.Particularly, the occupied flash memory bandwidth of step 2014 is relatively low, by being multiple FTL blocks in DRAM Memory space is distributed, and sends out multiple requests for reading daily record frame and (step 2014) is performed a plurality of times and is utilized to improve flash memory bandwidth Rate.
Next, CPU 0 judges whether to have obtained all daily record frames (2022) for belonging to FTL blocks 1.If having obtained category In all daily record frames of FTL blocks 1, then CPU 0 sends the message to notice CPU 1 to CPU 1 and is updated to FTL blocks 1.If not yet All daily record frames (2022) for belonging to FTL blocks 1 are obtained, then according to the address recorded in read daily record frame, request, which is read, to be belonged to In next daily record frame (2024) of FTL blocks 1.And it is similar to step 2014, step 2024 is also asynchronous.Step 2024 processing After the completion, completion message is read to receive daily record frame by step 2018 in response.In step 2022, CPU0 judges whether to have obtained All daily record frames for belonging to FTL blocks 1 have been taken, if having obtained all daily record frames for belonging to FTL blocks 1, message has been sent to CPU1, refers to Show CPU 1 with daily record frame to update FTL blocks 1.
In response to receiving the notice (2026) of CPU 0, to update FTL tables, CPU 1 is obtained from DRAM belongs to FTL blocks 1 Journal entries (2028).It is used in combination acquired journal entries to update FTL blocks 1 (2030).Optionally, if CPU 0 is multiple simultaneously FTL blocks read FTL frames and daily record frame, and in step 2022, for having obtained the FTL blocks of all daily record frames, CPU 0 selects more One of a CPU, and selected CPU is indicated to update FTL blocks, to which multiple CPU can update respective FTL blocks simultaneously.
Next, it is judged that whether the update of FTL blocks 1 completes (2032), if FTL blocks 1 have been updated over completion, notify CPU0 to the releasable log buffer areas distributed by the daily record frame of FTL blocks 1 CPU 0, and log buffer differentiation is used in Store the daily record frame of other FTL blocks.If FTL blocks 1 do not update completion (2032), it is determined that next journal entries depositing in DRAM Storage space sets (2034), and continues step 2028 acquisition and belong to other journal entries of FTL blocks 1 to update FTL blocks 1.In step 2034, in same daily record frame, journal entries are arranged by genesis sequence, and the storage locations of next journal entries is close to current log Entry;If current log entry is the last journal entries in daily record frame, next daily record frame is obtained, and from next daily record frame Obtain next journal entries of current log entry.
It will be understood by those skilled in the art that embodiments herein can be provided as method, apparatus (equipment) or computer Program product.Therefore, in terms of the application can be used complete hardware embodiment, complete software embodiment or combine software and hardware Embodiment form.Moreover, the application can be used in one or more wherein include computer usable program code meter The computer journey implemented in calculation machine usable storage medium (including but not limited to magnetic disk storage, CD-ROM, optical memory etc.) The form of sequence product.
The application is flow chart of the reference according to method, apparatus (equipment) and computer program product of the embodiment of the present application And/or block diagram describes.It should be understood that each flow in flowchart and/or the block diagram can be realized by computer program instructions And/or the combination of the flow and/or box in box and flowchart and/or the block diagram.These computer programs can be provided to refer to Enable the processor of all-purpose computer, special purpose computer, Embedded Processor or other programmable data processing devices to generate One machine so that by the instruction that computer or the processor of other programmable data processing devices execute generate for realizing The device for the function of being specified in one flow of flow chart or multiple flows and/or one box of block diagram or multiple boxes.
These computer program instructions, which may also be stored in, can guide computer or other programmable data processing devices with spy Determine in the computer-readable memory that mode works so that instruction generation stored in the computer readable memory includes referring to Enable the manufacture of device, the command device realize in one flow of flow chart or multiple flows and/or one box of block diagram or The function of being specified in multiple boxes.
These computer program instructions also can be loaded onto a computer or other programmable data processing device so that count Series of operation steps are executed on calculation machine or other programmable devices to generate computer implemented processing, in computer or The instruction executed on other programmable devices is provided for realizing in one flow of flow chart or multiple flows and/or block diagram one The step of function of being specified in a box or multiple boxes.
Although the preferred embodiment of the application has been described, created once a person skilled in the art knows basic Property concept, then additional changes and modifications may be made to these embodiments.So it includes excellent that the following claims are intended to be interpreted as It selects embodiment and falls into all change and modification of the application range.Obviously, those skilled in the art can be to the application Various modification and variations are carried out without departing from spirit and scope.If in this way, these modifications and variations of the application Belong within the scope of the application claim and its equivalent technologies, then the application is also intended to exist comprising these modification and variations It is interior.

Claims (10)

1. the method for fast quick-recovery FTL tables, which is characterized in that including:
First CPU, which is obtained, belongs to the FTL frames of the first FTL blocks, and obtains the daily record frame for belonging to the first FTL blocks, and will belong to the The FTL frames of one FTL blocks are respectively stored into the different zones of memory with daily record frame;
2nd CPU obtains the daily record frame for belonging to the first FTL blocks from the memory, and updates the first FTL blocks using daily record frame.
2. according to the method described in claim 1, it is characterized in that, further including:In response to all days of the first FTL blocks will be belonged to Will frame stores in memory, is sent to the first CPU and belongs to the message that all daily record frames reading of the first FTL blocks is completed.
3. according to the method in claim 2 or 3, which is characterized in that further include:In response to the institute of the first FTL blocks will be belonged to There are FTL frames to be stored in memory with all daily record frames, the first CPU instructions update the first FTL blocks by the 2nd CPU.
4. according to the method described in one of claim 1-3, which is characterized in that further include:In response to the first FTL blocks will be belonged to All daily record frames store in memory, and the first CPU instructions update the first FTL blocks by the 2nd CPU.
5. method according to claim 3 or 4, which is characterized in that the update of the 2nd CPU pairs of the first FTL block includes:
2nd CPU extracts journal entries successively from all daily record frames for belonging to the first FTL blocks in memory;And
2nd CPU is determining in the first FTL blocks in memory to be patrolled with this according to the logical address recorded in each journal entries The corresponding FTL table clauses in address are collected, FTL determined by physical address update corresponding with the logical address is used in combination in journal entries Physical address in table clause.
6. method according to claim 3 or 4, which is characterized in that the update of the 2nd CPU pairs of the first FTL block includes:
2nd CPU extracts the journal entries for belonging to the first FTL blocks from memory;And
2nd CPU is determined with this logically according to the logical address recorded in journal entries in the first FTL blocks in memory FTL table items determined by physical address update corresponding with the logical address are used in combination in journal entries in the corresponding FTL table clauses in location Physical address in mesh.
7. according to the method described in one of claim 1-6, which is characterized in that further include:In response to the 2nd FTL blocks will be belonged to All FTL frames store in memory with daily record frame, and the first CPU instructions update the 2nd FTL blocks by the 3rd CPU.
8. according to the method described in one of claim 1-6, which is characterized in that further include:In response to the 2nd FTL blocks will be belonged to In the storage to memory of daily record frame, the first CPU instructions update the 2nd FTL blocks by the 3rd CPU.
9. method according to claim 7 or 8, which is characterized in that the 2nd CPU updates operation and the third of the first FTL blocks The operation that CPU updates the 2nd FTL blocks is carried out at the same time.
10. a kind of solid storage device, which is characterized in that including control unit, NVM chips and memory, control unit difference It is coupled to NVM chips and memory, includes multiple CPU in control unit, stored in the log area in NVM chips multiple The FTL frames of FTL blocks and daily record frame;
When solid storage device powers on, the first CPU in the multiple CPU is used for, and is obtained from NVM chips and is belonged to the first FTL The FTL frames of block, and the daily record frame for belonging to the first FTL blocks is obtained from the log area in NVM chips, and the first FTL will be belonged to The FTL frames of block are respectively stored into the different zones of memory with daily record frame;
The 2nd CPU in the multiple CPU is used for, and the daily record frame for belonging to the first FTL blocks is obtained from the memory, and utilize Daily record frame updates the first FTL blocks.
CN201710126446.2A 2017-03-03 2017-03-03 Method and device for rapidly recovering FTL table Active CN108536619B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710126446.2A CN108536619B (en) 2017-03-03 2017-03-03 Method and device for rapidly recovering FTL table

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710126446.2A CN108536619B (en) 2017-03-03 2017-03-03 Method and device for rapidly recovering FTL table

Publications (2)

Publication Number Publication Date
CN108536619A true CN108536619A (en) 2018-09-14
CN108536619B CN108536619B (en) 2021-12-14

Family

ID=63489194

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710126446.2A Active CN108536619B (en) 2017-03-03 2017-03-03 Method and device for rapidly recovering FTL table

Country Status (1)

Country Link
CN (1) CN108536619B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111367830A (en) * 2018-12-06 2020-07-03 北京忆恒创源科技有限公司 Method for rebuilding FTL table with participation of host and storage device thereof

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101495980A (en) * 2006-07-28 2009-07-29 日本电气株式会社 Cpu connection circuit, data processing device, operation device, and mobile communication terminal and data transfer method using them
CN102043727A (en) * 2009-10-10 2011-05-04 成都市华为赛门铁克科技有限公司 Method and device for recovering solid-state hard disc mapping table
CN102760161A (en) * 2012-06-12 2012-10-31 天津神舟通用数据技术有限公司 Log organization structure clustered based on transaction aggregation and method for realizing corresponding recovery protocol thereof
CN102955742A (en) * 2012-10-31 2013-03-06 浪潮集团有限公司 Fast rebuilding method of solid state hard disk address mapping table after system electrification
CN103136116A (en) * 2011-12-05 2013-06-05 财团法人工业技术研究院 Memory storage system and central control device, management method and blackout recovery method thereof
CN103201725A (en) * 2010-11-25 2013-07-10 国际商业机器公司 Memory access device for memory sharing among plurality of processors, and access method for same
US20150339058A1 (en) * 2013-03-26 2015-11-26 Hitachi, Ltd. Storage system and control method
WO2016069192A1 (en) * 2014-10-27 2016-05-06 Sandisk Enterprise Ip Llc Tracking intermix of writes and un-map commands across power cycles
CN105988726A (en) * 2014-10-31 2016-10-05 株式会社东芝 Storage device and method for processing power disable signal
CN106354615A (en) * 2015-07-21 2017-01-25 北京忆恒创源科技有限公司 Solid state disk log generating method and device

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101495980A (en) * 2006-07-28 2009-07-29 日本电气株式会社 Cpu connection circuit, data processing device, operation device, and mobile communication terminal and data transfer method using them
CN102043727A (en) * 2009-10-10 2011-05-04 成都市华为赛门铁克科技有限公司 Method and device for recovering solid-state hard disc mapping table
CN103201725A (en) * 2010-11-25 2013-07-10 国际商业机器公司 Memory access device for memory sharing among plurality of processors, and access method for same
CN103136116A (en) * 2011-12-05 2013-06-05 财团法人工业技术研究院 Memory storage system and central control device, management method and blackout recovery method thereof
CN102760161A (en) * 2012-06-12 2012-10-31 天津神舟通用数据技术有限公司 Log organization structure clustered based on transaction aggregation and method for realizing corresponding recovery protocol thereof
CN102955742A (en) * 2012-10-31 2013-03-06 浪潮集团有限公司 Fast rebuilding method of solid state hard disk address mapping table after system electrification
US20150339058A1 (en) * 2013-03-26 2015-11-26 Hitachi, Ltd. Storage system and control method
WO2016069192A1 (en) * 2014-10-27 2016-05-06 Sandisk Enterprise Ip Llc Tracking intermix of writes and un-map commands across power cycles
CN105988726A (en) * 2014-10-31 2016-10-05 株式会社东芝 Storage device and method for processing power disable signal
CN106354615A (en) * 2015-07-21 2017-01-25 北京忆恒创源科技有限公司 Solid state disk log generating method and device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111367830A (en) * 2018-12-06 2020-07-03 北京忆恒创源科技有限公司 Method for rebuilding FTL table with participation of host and storage device thereof
CN111367830B (en) * 2018-12-06 2023-11-14 北京忆恒创源科技股份有限公司 Method for rebuilding FTL table with participation of host and storage device thereof

Also Published As

Publication number Publication date
CN108536619B (en) 2021-12-14

Similar Documents

Publication Publication Date Title
CN102841851B (en) Flash memory management method and flash memory device
CN107346290A (en) Zoned logic is reset to physical data address conversion table using parallelization log list
CN106354615A (en) Solid state disk log generating method and device
CN102576330A (en) Memory system having persistent garbage collection
CN103999042B (en) Bootload data
CN109164975A (en) A kind of method and solid state hard disk writing data into solid state hard disk
CN106557432B (en) Buffer storage supervisory method, memorizer control circuit unit and storage device
CN101840380A (en) The protection metadata is avoided the apparatus and method of accident power-off influence
CN109086219A (en) It removes distribution command handling method and its stores equipment
CN107066202B (en) Storage device with multiple solid state disks
CN107797934A (en) The method and storage device that distribution is ordered are gone in processing
CN108228473A (en) The load balance distributed by dynamically transmitting memory range
CN108664213A (en) Atom write command processing method based on distributed caching and solid storage device
CN109558334B (en) Garbage data recovery method and solid-state storage device
CN109101185A (en) Solid storage device and its write order and read command processing method
CN109558333A (en) Solid storage device NameSpace with variable additional storage space (OP)
KR101061483B1 (en) Memory circuit and memory circuit access method, memory management system and memory management method
CN109164976A (en) Optimize storage device performance using write buffer
CN107797938A (en) Accelerate to go the method and storage device for distributing command process
CN109521944A (en) data storage device and data storage method
CN109976664A (en) The daily record data tissue of solid storage device
CN107544912A (en) A kind of log recording method, loading method and its device
CN109840048A (en) Store command processing method and its storage equipment
CN109426436A (en) Rubbish recovering method and device based on variable length bulk
CN109213425A (en) Atomic commands are handled in solid storage device using distributed caching

Legal Events

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

Address after: 100192 room A302, building B-2, Dongsheng Science Park, Zhongguancun, 66 xixiaokou Road, Haidian District, Beijing

Applicant after: Beijing yihengchuangyuan Technology Co.,Ltd.

Address before: 100192 Room 302, 3 / F, building B-2, Dongsheng Science Park, 66 xixiaokou Road, Haidian District, Beijing

Applicant before: BEIJING MEMBLAZE TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant