CN113590504B - Solid state disk for storing log frames and log entries - Google Patents

Solid state disk for storing log frames and log entries Download PDF

Info

Publication number
CN113590504B
CN113590504B CN202110926537.0A CN202110926537A CN113590504B CN 113590504 B CN113590504 B CN 113590504B CN 202110926537 A CN202110926537 A CN 202110926537A CN 113590504 B CN113590504 B CN 113590504B
Authority
CN
China
Prior art keywords
ftl
log
frame
frames
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110926537.0A
Other languages
Chinese (zh)
Other versions
CN113590504A (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 CN202110926537.0A priority Critical patent/CN113590504B/en
Publication of CN113590504A publication Critical patent/CN113590504A/en
Application granted granted Critical
Publication of CN113590504B publication Critical patent/CN113590504B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • 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)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

A solid state disk is provided that stores log frames and log entries. The provided solid state disk comprises: a nonvolatile storage medium including a plurality of physical pages; wherein the physical page includes one or more FTL frames and/or one or more log frames; wherein each FTL frame comprises a plurality of FTL table entries and metadata recording a storage location of a previous FTL frame belonging to the same FTL block as the FTL frame, each log frame comprises a plurality of operation log entries and a storage location recording a previous log frame belonging to the same FTL block as the log frame, each operation log entry comprises a logical address and a physical address corresponding thereto, and the FTL block is part of the FTL table.

Description

Solid state disk for storing log frames and log entries
Technical Field
The application relates to a solid state disk, in particular to generation and use of a solid state disk log.
Background
With the advancement of technology, there is an increasing demand for storage capacity and reaction speed of electronic devices, and fig. 1 shows a block diagram of a solid state storage device (Solid Storage Device, SSD) in the prior art. The storage device 102 is coupled to a host, such as a personal computer, tablet, server, portable computer, network switch, router, cellular telephone, personal digital assistant, etc., via interface 103, which may be an information processing device capable of communicating with the storage device 102 in the manner described above. The storage device 102 includes an interface 103, a control section 104, one or more NVM (Non-Volatile Memory) Memory chips 105, and a firmware Memory 110. The interface 103 may be adapted to exchange data with a host by means of, for example SATA, IDE, USB, PCIE, NVMe, SCSI, ethernet, fibre channel, etc. The control unit 104 is used for controlling data transfer among the interface 103, the NVM memory chip 105 and the firmware memory 110, and also for memory management, host logical address to flash physical address mapping, erase balancing, bad block management, etc. The control component 104 loads firmware from the firmware memory 110 at runtime.
In prior art solid state storage devices, such as storage device 102 shown in fig. 1, FTL (Flash Translation Layer ) is utilized to maintain mapping information from logical addresses to physical addresses. The logical addresses constitute the storage space of the solid state storage device as perceived by upper level software such as the operating system. The physical address is an address for accessing a physical storage unit of the solid state storage device. Address mapping can also be implemented in the prior art using an intermediate address modality. For example, logical addresses are mapped to intermediate addresses, which in turn are further mapped to physical addresses.
The table structure storing mapping information from logical addresses to physical addresses is called FTL table. FTL tables are important metadata in solid state storage devices. Typically, the data items of the FTL table record address mapping relationships in units of data pages in the solid-state storage device. FTL tables of solid state storage devices have a large size, e.g., several GB levels. And when the solid-state storage device is closed, the FTL table needs to be completely stored, and when the solid-state storage device is started, the FTL is required to be completely loaded.
In the prior art, each physical page of the solid-state storage device is additionally stored with a logical address corresponding to the physical page. When the solid-state storage device is started, all physical pages need to be accessed to obtain the logical address corresponding to each physical page, and the FTL table is reconstructed. However, such an operation would require a significant amount of time and result in a lengthy start-up process for the solid state storage device.
In chinese patent application (201510430174.6), a log-based FTL table storing and loading method is provided. According to the FTL table storage and loading method based on the logs, the FTL frames are written in a rotary writing mode, the FTL frames and the log frames are written in the logs according to a fixed proportion, and when an abnormal event occurs, the FTL frames are still written in.
Disclosure of Invention
In view of the above, the present application provides a logging method, loading method and device thereof.
According to a first aspect of the present invention, there is provided a first FTL table-based log generation method according to the first aspect of the present invention, comprising: recording a logical address and a physical address corresponding to the operation request as log entries; generating a log frame by using the log entry; generating FTL frames using portions of FTL blocks, wherein the FTL table comprises a plurality of FTL blocks; the generated FTL frame and the first log frame are stored on the NVM.
According to a first FTL table-based log generation method of the first aspect of the present invention, there is provided a second FTL table-based log generation method of the first aspect of the present invention, wherein a size of a combination of the FTL frame and the log frame corresponds to a size of an NVM physical page.
According to the first or second FTL table-based log generation method of the first aspect of the present invention, there is provided the third FTL table-based log generation method of the first aspect of the present invention, wherein the portion of the FTL block is from a portion of the FTL block not yet written to the nonvolatile storage medium.
According to the first, second or third FTL table-based log generation method of the first aspect of the present invention, there is provided a fourth FTL table-based log generation method according to the first aspect of the present invention, wherein one or more FTL frames are combined with one or more log frames and written to (one) physical page of NVM.
According to a fifth FTL table-based log generation method of the first aspect of the present invention, the first to fourth FTL table-based log generation method of the first aspect of the present invention further comprises, in response to occurrence of an abnormal event, writing a plurality of log frames to a physical page of the NVM such that FTL frames are not included in the physical page.
According to a first to fourth FTL table-based log generation method of the first aspect of the present invention, there is provided a sixth FTL table-based log generation method of the first aspect of the present invention, further comprising, in response to occurrence of an abnormal event, changing a ratio of FTL frames and log frames stored on the NVM according to a priority level.
According to a first to fourth FTL table-based log generation method of the first aspect of the present invention, there is provided a seventh FTL table-based log generation method according to the first aspect of the present invention, wherein in response to occurrence of an abnormal event, further comprising: the address of the last FTL frame of each FTL block in the NVM and the address of the last log frame in the NVM are stored in a boot page of the NVM.
According to the first to fourth FTL table-based log generation methods of the first aspect of the present invention, there is provided the eighth FTL table-based log generation method according to the first aspect of the present invention, wherein in response to occurrence of an abnormal event, further comprising: the physical page address in NVM of the last FTL frame set and the physical page address in NVM of the last log frame set of each FTL block are stored in a boot page of the NVM, wherein FTL frame set is a plurality of FTL frames stored on the same NVM physical page and log frame set is a plurality of log frames stored on the same NVM physical page.
According to a ninth FTL table-based log generation method of the first aspect of the present invention, the FTL table is divided into a plurality of FTL blocks according to memory addresses of the FTL table.
According to a tenth FTL table-based log generation method of the first aspect of the present invention, the plurality of FTL blocks are from different parts of the FTL table.
According to an eleventh FTL table-based log generation method of the first aspect of the present invention, there is provided the FTL table-based log generation method of the first aspect of the present invention, wherein FTL frames are written in the NVM in order of addresses of FTL blocks.
According to a twelfth FTL table-based log generation method of the first aspect of the present invention, there is provided the twelfth FTL table-based log generation method of the first aspect of the present invention, wherein the FTL frame includes metadata, and a storage location on the NVM of a previous FTL frame belonging to the same FTL block as the FTL frame is recorded.
According to one of the first to twelfth FTL table-based log generation methods of the first aspect of the present invention, there is provided the thirteenth FTL table-based log generation method of the first aspect of the present invention, further comprising generating a second FTL frame using a portion of the second FTL block; storing the generated second FTL frame and second log frame on the NVM; wherein the second FTL frame includes a second pointer that records a storage location on the NVM of a previous FTL frame belonging to the second FTL block.
According to a thirteenth FTL table-based log generation method of the first aspect of the present invention, there is provided the fourteenth FTL table-based log generation method of the first aspect of the present invention, wherein the second log frame includes a pointer, and a storage location of the first log frame in the NVM is recorded, wherein the logical addresses of the first log frame and the second log frame belong to the same FTL block.
According to a fifteenth FTL table-based log generation method of the first aspect of the present invention, there is provided the FTL table-based log generation method of the first aspect of the present invention, wherein the log frame includes metadata, and a storage location of a previous log frame belonging to the same FTL block as the log frame is recorded.
According to a sixteenth FTL table-based log generation method of the first aspect of the present invention, there is provided the sixteenth FTL table-based log generation method of the first aspect of the present invention, wherein the first log frame comprises a pointer recording an address storing the third log frame on the NVM, the first log frame and the logical address of the third log frame belonging to the same FTL block.
According to a seventeenth FTL table-based log generation method of the first aspect of the present invention, there is provided a seventeenth FTL table-based log generation method of the first aspect of the present invention, wherein the generating a log frame with the log entry comprises: judging the number of the log entries, and generating a log frame if the number of the log entries reaches the standard of generating the log frame.
According to a seventeenth FTL table-based log generating method of the first aspect of the present invention, there is provided the eighteenth FTL table-based log generating method of the first aspect of the present invention, wherein filling data is generated while generating log entries, and when the number of log entries is determined, after adding the filling data, determining whether the log frame generating standard is reached is performed.
According to a seventeenth or eighteenth FTL table-based log generation method of the first aspect of the present invention, there is provided a nineteenth FTL table-based log generation method according to the first aspect of the present invention, wherein a size of the log frame corresponds to a size of a physical page of the NVM.
According to a seventeenth to nineteenth of the first aspect of the present invention, there is provided the FTL table-based log generation method according to the twenty first aspect of the present invention, wherein a size of a physical page of the NVM is an integer multiple of a size of the log frame.
According to a seventeenth to twentieth of the first aspect of the present invention, there is provided a twenty first FTL table-based log generation method according to the first aspect of the present invention, wherein the log frame further includes metadata; metadata indicates FTL blocks to which the log frames belong.
According to a twenty-first FTL table-based log generation method of the first aspect of the present invention, there is provided the twenty-second FTL table-based log generation method of the first aspect of the present invention, wherein a previous log frame belonging to the same FTL block is also recorded in the metadata.
According to a twenty-third FTL table-based log generation method of the first aspect of the present invention, the first to twenty-second FTL table-based log generation method of the first aspect of the present invention is provided, wherein each log frame includes a logical address and a physical address corresponding to a plurality of write requests issued to the solid state disk or updates to the FTL table after a previous log frame is generated.
According to a second aspect of the present invention, there is provided a method of rebuilding FTL tables with logs according to the first aspect of the present invention, comprising: acquiring storage positions of an FTL frame and a log frame of the FTL block; reading a plurality of FTL frames and a plurality of log frames belonging to the FTL block; reconstructing FTL blocks using the plurality of FTL frames; updating the FTL block with the log frame; wherein the FTL block is part of the FTL table.
According to a first method for reconstructing FTL table by log according to the second aspect of the present invention, there is provided a second method for reconstructing FTL table by log according to the second aspect of the present invention, wherein FTL block to be reconstructed is determined to be reconstructed from the first FTL block.
According to a first or second method for reconstructing FTL table by using log according to the second aspect of the present invention, there is provided a third method for reconstructing FTL table by using log according to the second aspect of the present invention, wherein the obtaining storage locations of FTL frame and log frame of FTL block comprises: the storage location of the last FTL frame of the first FTL block and the storage location of the last log frame of the first FTL block are obtained from the non-volatile storage medium.
According to a fourth aspect of the present invention, there is provided a method for rebuilding FTL table with log, wherein the updating FTL blocks with log frames comprises updating FTL blocks in order of log entries in log frames generated or in reverse order of log entries in log frames generated.
A fourth method of rebuilding FTL tables with logs according to the second aspect of the present invention provides a fifth method of rebuilding FTL tables with logs according to the second aspect of the present invention, wherein the FTL blocks are updated in reverse order of the order in which log entries in log frames are generated, comprising: obtaining a first log frame belonging to a first FTL block; updating the plurality of log entries in the first log frame to the FTL block in a back-to-front order; setting a flag for the updated FTL entry; if the mark exists on the FTL entry to be updated by the log entry, the log entry is ignored; after all log frames belonging to the first FTL block are updated to the first FTL block, or after all FTL entries of the first FTL block have marks, the marks of FTL entries of the current FTL block are cleared.
A fifth method for rebuilding FTL table using log according to the second aspect of the present invention provides a sixth method for rebuilding FTL table using log according to the second aspect of the present invention, further comprising: and acquiring an address of a second log frame from the first log frame, acquiring the second log frame, and updating a first FTL block in reverse order of the order in which log entries in the second log frame are generated, wherein the first log frame and the second log frame belong to the same FTL block.
A sixth method of rebuilding FTL table with log according to the second aspect of the present invention provides a seventh method of rebuilding FTL table with log according to the second aspect of the present invention, wherein the first log frame is the last log frame of the first FTL block; and the second log frame is an immediately preceding log frame of the first log frame in the order of generation.
A fourth method of rebuilding FTL table with log according to the second aspect of the present invention provides the eighth method of rebuilding FTL table with log according to the second aspect of the present invention, wherein the FTL blocks are updated in the order in which log entries in the log frame are generated, comprising: obtaining a first log frame belonging to a first FTL block; updating the plurality of log entries in the first log frame to the FTL block in a front-to-back order; the above steps are repeated to update all log frames belonging to the first FTL block.
An eighth method for rebuilding FTL table by log according to the second aspect of the present invention provides a ninth method for rebuilding FTL table by log according to the second aspect of the present invention, further comprising: and acquiring an address of a second log frame from the first log frame, acquiring the second log frame, and updating a first FTL block according to the generated sequence of log entries in the second log frame, wherein the first log frame and the second log frame belong to the same FTL block.
A ninth method of rebuilding FTL table with log according to the second aspect of the present invention provides a tenth method of rebuilding FTL table with log according to the second aspect of the present invention, wherein the first log frame is the earliest log frame of the first FTL block; and the second log frame is immediately subsequent to the first log frame in the order of generation.
According to a first to tenth method of rebuilding FTL table using log of the second aspect of the present invention, there is provided an eleventh method of rebuilding FTL table using log of the second aspect of the present invention, wherein FTL frame includes metadata, and a storage location of a previous FTL frame belonging to the same FTL block as the FTL frame is recorded.
According to a first to eleventh method of rebuilding FTL table with log according to the second aspect of the present invention, there is provided a twelfth method of rebuilding FTL table with log according to the second aspect of the present invention, wherein the log frame includes metadata, and a storage location of a previous log frame belonging to the same FTL block as the log frame is recorded.
According to a third aspect of the present invention, there is provided a solid state disk storing log frames and log entries according to the first aspect of the present invention, comprising: a nonvolatile storage medium including a plurality of physical pages; wherein each physical page includes one or more FTL frames and/or one or more log frames; wherein each FTL frame comprises a plurality of FTL table entries and metadata recording a storage location of a previous FTL frame belonging to the same FTL block as the FTL frame, each log frame comprises a plurality of operation log entries and a storage location recording a previous log frame belonging to the same FTL block as the log frame, each operation log entry comprises a logical address and a physical address corresponding thereto, and the FTL block is part of the FTL table.
According to the solid state disk of the third aspect of the present invention, there is provided a solid state disk of the second aspect of the present invention, further comprising: the address of the last FTL frame of each FTL block in the NVM and the address of the last log frame in the NVM are stored in a boot page of the NVM.
According to the solid state disk for storing the log frames and the log entries in the first aspect of the invention, the solid state disk for storing the log frames and the log entries in the third aspect of the invention is provided, and the solid state disk further comprises: the physical page address in NVM of the last FTL frame set and the physical page address in NVM of the last log frame set of each FTL block are stored in a boot page of the NVM, wherein FTL frame set is a plurality of FTL frames stored on the same NVM physical page and log frame set is a plurality of log frames stored on the same NVM physical page.
According to the solid state disk for storing the log frame and the log entries in the first aspect of the invention, the fourth solid state disk for storing the log frame and the log entries in the third aspect of the invention is provided, wherein the log frame comprises metadata, and the metadata indicates an FTL block to which the log frame belongs.
According to the solid state disk for storing log frames and log entries in the first aspect of the invention, a solid state disk for storing log frames and log entries in the fifth aspect of the invention is provided, wherein a plurality of FTL frames belonging to the same FTL block occupy continuous physical address space in the solid state disk.
According to a fifth solid state disk for storing log frames and log entries in the third aspect of the present invention, there is provided a solid state disk for storing log frames and log entries in the sixth solid state disk in the third aspect of the present invention, wherein the plurality of FTL frames occupy consecutive physical address spaces in the solid state disk and do not include bad block spaces.
According to the solid state disk of the third aspect of the present invention, which stores log frames and log entries, there is provided a seventh solid state disk of the third aspect of the present invention, which stores log frames and log entries, wherein the nonvolatile storage medium is MLC (Multi LEVEL CELL, multi-level cell) or TLC (TRIPLE LEVEL CELL, three-level cell) nonvolatile storage medium.
According to a third aspect of the present invention, there is provided a solid state disk storing log frames and log entries, wherein the plurality of physical pages are accessed using pSLC (pseudo-SLC) mode or SLC (SINGLE LEVEL CELL, single level unit) mode.
According to a fourth aspect of the present invention, there is provided a first solid state disk according to the fourth aspect of the present invention, characterized by comprising a controller, an NVM, a random access memory; the controller is coupled to the NVM and the random access memory, respectively; the NVM includes a log area and a user data area; storing a solid state disk log in a log area; storing user data in a user data area; wherein a FTL table is stored in the memory, the FTL table comprising a plurality of FTL blocks; wherein the controller is configured to perform the FTL table-based log generation method according to one of the first to twenty-third aspects of the present invention.
According to a first solid state disk of a fourth aspect of the present invention, there is provided a second solid state disk of the fourth aspect of the present invention, wherein an FTL table is stored in a DRAM, and a log frame stored in a log area records an update of the FTL table; the log frame also stores the address of the previous log frame belonging to the same FTL block as the log frame.
According to a third solid state disk of the fourth aspect of the present invention, there is provided a third solid state disk of the fourth aspect of the present invention, wherein FTL frames of respective FTL blocks and addresses of log frames in a log area are stored in a start page of the NVM.
According to the first solid state disk of the fourth aspect of the present invention, there is provided a fourth solid state disk according to the fourth aspect of the present invention, wherein FTL frames belonging to the same FTL block are organized into a linked list, and log frames belonging to the same FTL block are also organized into a linked list; and storing the head address and the tail address of the FTL frame linked list and the log frame linked list of each FTL block in a log area in a starting page.
According to a first solid state disk of a fourth aspect of the present invention, there is provided a fifth solid state disk of the fourth aspect of the present invention, wherein a storage location of a head node and a tail node of an FTL frame linked list of each FTL block in a log area and a storage location of the head node and the tail node of the log frame linked list in the log area are stored in a start page.
According to a first solid state disk of a fourth aspect of the present invention, there is provided a sixth solid state disk according to the fourth aspect of the present invention, further comprising a NOR flash memory, and a plurality of start pages stored in the NAND flash memory for providing a backup of the start pages or different versions of the start pages; the storage location of the valid start page is stored in the NOR flash memory.
According to a fifth aspect of the present invention, there is provided a first solid state disk according to the fifth aspect of the present invention, including a controller, an NVM, a random access memory; the controller is coupled to the NVM and the random access, respectively; the NVM includes a log area and a user data area; storing a solid state disk log in a log area; storing user data in a user data area; wherein a FTL table is stored in the memory, the FTL table comprising a plurality of FTL blocks; the controller performs the method of rebuilding FTL tables using logs according to the first to twelfth aspects of the present invention at the time of the start-up of the solid state disk.
According to a sixth aspect of the present invention, there is provided a first FTL table-based log generating apparatus according to the sixth aspect of the present invention, comprising: the log entry generation module is used for recording a logical address and a physical address corresponding to the operation request as log entries; the log frame generation module is used for generating a log frame through the log entries generated by the log entry generation module; an FTL frame generation module for generating FTL frames using portions of FTL blocks, wherein the FTL table comprises a plurality of FTL blocks; and the storage module is used for storing the generated FTL frame and the first log frame on the NVM.
According to a seventh aspect of the present invention, there is provided a first log-utilized FTL table apparatus according to the seventh aspect of the present invention, comprising: the storage position acquisition module is used for acquiring storage positions of the FTL frames and the log frames of the FTL blocks; the frame reading module is used for reading a plurality of FTL frames and a plurality of log frames belonging to the FTL blocks; an FTL block reconstruction module for reconstructing FTL blocks using the plurality of FTL frames, wherein FTL blocks are part of FTL tables; the FTL block update module updates FTL blocks with log frames, wherein FTL blocks are part of FTL tables.
According to an eighth aspect of the present invention there is provided a program comprising program code which, when loaded into a storage device and executed on the storage device, causes the storage device to perform the FTL table based log generation method according to the first aspect of the present invention.
According to a ninth aspect of the present invention there is provided a program comprising program code which, when loaded into a storage device and executed on the storage device, causes the storage device to perform a method of rebuilding FTL tables using logs according to the second aspect of the present invention.
According to the embodiment of the invention, the FTL table is split into a plurality of FTL blocks, each FTL block corresponds to a corresponding FTL frame and a corresponding log frame, and the FTL frames and the log frames belonging to the same FTL block form a linked list respectively, so that when the FTL table is rebuilt, the data writing amount can be reduced, the recovery speed is improved, when an abnormal event occurs, the data loss can be reduced as much as possible by changing the storage proportion of the log frames in the log, and when the abnormal event occurs, the data of the FTL table can be quickly recovered through the arrangement of the linked list, and meanwhile, when the FTL table is rebuilt and recovered, the recovery speed of the solid state disk can be faster when the abnormal event occurs through updating the FTL table in reverse order.
Drawings
In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings used in the embodiments or the description of the prior art will be briefly described below, and it is obvious that the drawings in the following description are only some embodiments described in the present application, and other drawings may be obtained according to these drawings for a person having ordinary skill in the art.
FIG. 1 is a schematic diagram of a prior art solid state storage device;
FIG. 2 is a block diagram of the structure of a solid state disk log according to one embodiment of the invention;
FIG. 3 is a block diagram of the structure of an FTL table according to an embodiment of the present invention;
FIG. 4 is a block diagram of the structure of a "write" log according to an embodiment of the invention
FIG. 5 is a flow chart of a solid state disk log generation method according to an embodiment of the present invention;
FIG. 6 is a block diagram of the structure of a solid state disk log according to another embodiment of the invention;
FIG. 7 is a flow chart of a solid state disk log generation method according to yet another embodiment of the present invention;
FIG. 8 is a flow chart of a method for rebuilding an FTL table using logs according to an embodiment of the present invention;
FIG. 9 is a block diagram of a solid state disk according to an embodiment of the invention; and
FIG. 10 is a schematic diagram of generating a solid state disk log in response to a power down event according to an embodiment of the invention.
Detailed Description
The application provides a log recording method, a loading method and a device thereof, wherein an FTL table is split into a plurality of FTL blocks, each FTL block corresponds to a corresponding FTL frame and a log frame, and the FTL frames and the log frames belonging to the same FTL block respectively form a linked list, so that the data writing amount can be reduced and the recovery speed can be improved when the FTL table is rebuilt. When an abnormal event occurs, the log use efficiency can be improved as much as possible by changing the storage proportion of the log frames in the log, and when the FTL table is rebuilt, the data of the FTL table can be quickly restored through the arrangement of the linked list, and meanwhile, when the FTL table is rebuilt, the FTL table is updated through the reverse order, so that the restoration speed of the FTL table is higher when the abnormal event occurs.
Of course, it is not necessary for any one of the embodiments of the application to be practiced with all of the advantages described above.
In order to make the technical solution of the present application better understood by those skilled in the art, the technical solution of the present application will be clearly and completely described below with reference to the accompanying drawings in the embodiments of the present application, and it is apparent that the described embodiments are only some embodiments of the present application, not all embodiments. All other embodiments, which are derived by a person skilled in the art based on the embodiments of the application, shall fall within the scope of protection of the application.
The following describes the embodiments of the present application further with reference to the drawings.
FIG. 2 is a block diagram of the structure of a solid state disk log according to one embodiment of the invention. In order to quickly reconstruct FTL tables and reduce unnecessary FTL block write operations when the solid state disk is started, a solid state disk log 210 is provided according to an embodiment of the present invention. The solid state disk log 210 is stored in a nonvolatile storage medium. Referring to FIG. 2, solid state disk log 210 includes FTL frames 1-1 (220), FTL frames 1-2 (221) … … FTL frames 2-3 (225), and solid state disk log 210 also includes log frame 230 … … log frame 235.FTL frames are integral parts of FTL block, FTL block 1 in the example of fig. 2 comprises 3 FTL frames, consisting of FTL frame 1-1, FTL frame 1-2 and FTL frame 1-1. Log frame 0-1 (230) is the first log frame for FTL block 0 (not shown in fig. 2), log frame 1-1 (231) is the first log frame for FTL block 1, log frame 1-3 (232) is the 2 nd log frame for FTL block 1, log frame 1-3 (235) is the 3 rd log frame for FTL block 1, log frame 2-1 (233) is the 1 st log frame for FTL block 2, and log frame 4-1 (234) is the first log frame for FTL block 4. Information is recorded in metadata of a log frame to indicate FTL blocks to which the log frame belongs. And optionally, a previous one of the log frames belonging to the same FTL block (e.g., log frame 1-3 (232) and log frame 1-1 (231) belong to FTL block 1 together and the previous log frame of log frame 1-3 (232) is log frame 1-1 (231)) is also recorded in metadata of the log frame (e.g., log frame 1-3 (232)). In the embodiment of fig. 2, FTL blocks occupy contiguous physical address space in the solid state disk (optionally, bad blocks are skipped). Optionally, the journal storage area is provided in the solid state disk as a non-volatile storage medium, and FTL blocks are stored in a continuous address space of the journal storage area. The FTL frame and the log frame occupy physical pages of the nonvolatile storage medium, so that the combination of the FTL frame and the log frame can be written to the nonvolatile storage medium in one write operation.
In one embodiment according to the present invention, the nonvolatile storage medium is an MLC (Multi LEVEL CELL ) or TLC (TRIPLE LEVEL CELL, three level cell) nonvolatile storage medium, and when the solid state disk log is stored to a data page of the nonvolatile storage medium, the nonvolatile storage medium is accessed using pSLC (pseudo-SLC) mode or SLC (SINGLE LEVEL CELL ) mode, so as to accelerate the solid state disk log storage process and obtain higher data reliability. As another embodiment, the solid state disk log is stored in SLC nonvolatile storage media. In still another embodiment, the solid state disk log is stored in the LSB page of the MLC nonvolatile storage medium.
The number of log frames corresponding to the various FTL blocks may be different. Referring to fig. 2, there is no update to FTL block 3 for a period of time, and thus, there is no log frame corresponding to FTL block 3 in solid state disk log 210. While there are multiple updates to FTL block 1, thus all update operations to FTL block 1 are recorded with 3 log frames (231, 232, 235).
In the embodiment of fig. 2, FTL blocks are stored in the solid state disk log 210 in the order of their memory addresses in the FTL table (e.g., FTL block 2 is stored after FTL block 1), and log frames are recorded in the order of log frame generation. Each log frame belongs to and only belongs to one FTL block. In one example, the write log entries belonging to each FTL block are cached in memory. When a log frame is filled with a write log entry belonging to a certain FTL block, the log frame is written into the solid state disk log.
In this way, the FTL table may only need to save one complete record in the solid state disk log, and record each update to the FTL table entry in the solid state disk log. When the FTL table entry is not updated, the FTL table is not required to be recorded in the solid state disk log, so that system resources are saved. When the FTL table entry is updated, only the modification to the FTL table entry is recorded in the log frame, so that the writing data volume of the solid state disk log is reduced.
With the solid state disk log 210, FTL tables can be reconstructed. Due to power failure of the storage device, the FTL table in the memory disappears, and the solid state disk log 210 needs to be read and the FTL table needs to be reconstructed. To reconstruct the FTL table, in the nonvolatile storage medium of the solid state disk, the storage address (physical address) of each FTL block in the solid state disk, and the physical address of the last log frame belonging to each FTL block (optionally, the physical address of the earliest log frame belonging to each FTL block is also stored) are also stored.
When reconstructing the FTL table, for example, the physical address of FTL frame of FTL block 1 stored in the nonvolatile storage medium in the solid state disk log 210 is obtained, and FTL block 1 (including FTL frame 1-1, FTL frame 1-2, and FTL frame 1-3) in the solid state disk log 210 is read. Next, the physical address of the last log frame belonging to FTL block 1 (see fig. 2, log frames 1-3 (235)) is acquired, and the corresponding FTL entry in FTL block 1 in the memory is updated with the log entry recorded in log frames 1-3 (235) in the reverse order of the log entries arranged by address in log frames 1-3 (235). By way of example, updating the meaning of the corresponding entry of the FTL block with the log entry includes accessing the FTL block with the logical address of the log entry as an index and replacing the physical address of the FTL entry indexed in the FTL block with the physical address of the log entry. Since FTL block 1 is updated in reverse order of log frames 1-3 (235) and the subsequent log entries in log frames 1-3 (235) contain subsequent updates to FTL entries, only one update is required for each FTL entry during the reconstruction of FTL tables. For this purpose, further, the updated FTL entry is marked such that the updated FTL entry is not updated any more during the reconstruction of the FTL table. After FTL block 1 is updated with log frame 1-3 (235), a previous log frame belonging to FTL block 1 identical to log frame 1-3 (235) (see fig. 2, log frame 1-2 (232)); until all log frames of FTL block 1 (FTL frames 1-1 (231), FTL frames 1-2 (232) and FTL frames 1-3 (235)) are updated to FTL block 1 or all entries of FTL block 1 are updated. By way of example, the address of the previous FTL frame 1-2 (232) that belongs to FTL block 1 is recorded in log frame 1-3 (235).
As another example of the present invention, to reconstruct the FTL table, the physical address of the FTL frame of FTL block 1 stored in the nonvolatile storage medium is obtained in the solid state disk log 210, and the FTL block 1 (including FTL frame 1-1, FTL frame 1-2, and FTL frame 1-3) in the solid state disk log 210 is read. Next, the physical address of the first log frame (see fig. 2, log frame 1-1 (231)) belonging to FTL block 1 is acquired, and the corresponding FTL entry in FTL block 1 in the memory is updated with the log entry recorded in log frame 1-1 (231) in the order of the log entries arranged by address in log frame 1-1 (231). As another example, updating the meaning of the corresponding entry of the FTL block with the log entry includes accessing the FTL block with the logical address of the log entry as an index and replacing the physical address of the FTL entry indexed in the FTL block with the physical address of the log entry. Since FTL block 1 is updated in the order of log frames 1-1 (231), FTL block needs to be updated with each log entry in reconstructing FTL table. After FTL block 1 is updated with log frame 1-1 (231), a subsequent log frame belonging to FTL block 1 identical to log frame 1-1 (231) (see fig. 2, log frame 1-2 (232)); until all log frames of FTL block 1 (FTL frames 1-1 (231), FTL frames 1-2 (232) and FTL frames 1-3 (235)) are updated to FTL block 1. By way of example, the address of the next FTL frame 1-2 (232) that belongs to FTL block 1 is recorded in log frame 1-1 (231).
Fig. 3 is a block diagram of the structure of FTL table according to an embodiment of the present invention. FTL tables include a plurality of FTL table entries (or entries). In one embodiment, a correspondence of one logical page address to one physical page is recorded in each FTL table entry. In yet another embodiment, a correspondence of logical block addresses to physical block addresses is recorded in each FTL table entry. In still another embodiment, the FTL table records a mapping relationship between a logical block address and a physical block address, and/or a mapping relationship between a logical page address and a physical page address. In yet another embodiment, the FTL tables are organized in a tree structure.
In yet another embodiment, FTL tables are stored in contiguous memory address space, each FTL table entry records a physical address, and the memory address of each FTL table entry itself represents a logical address corresponding to the physical address. The number of FTL table entries corresponds to the size of the solid state storage device logical address space.
FTL tables are organized into data frames for the purpose of storing FTL tables in a non-volatile storage medium. Referring to fig. 3, FTL table (310) includes FTL frame 1, FTL frame 2, FTL frame 3 … … FTL frame 600. Each FTL frame includes a plurality of FTL table entries. The size of each FTL frame corresponds to a minimum writing unit (e.g., page) of a nonvolatile storage medium. The data page size of a nonvolatile storage medium is typically 2KB, 4KB, 8KB, or 16KB. In one embodiment, the data page size of the nonvolatile storage medium is 16KB, while the FTL frame size is 2KB, 4KB, or 8KB. In another embodiment, the data page size of the nonvolatile storage medium is 4KB, and the FTL frame size is 512B, 1KB, or 2KB. In general, FTL frame size is selected such that the data page size of the nonvolatile storage medium is an integer multiple of FTL frame size, so as to store a plurality of FTL frames to data pages of the nonvolatile storage medium. In one example, FTL frame 1, FTL frame 2, FTL frame 3 … … FTL frame 600 contained in the FTL table is stored in memory in succession by memory address.
FTL tables (310) are also organized into FTL blocks in an embodiment in accordance with the present invention. The FTL block comprises a plurality of FTL frames, preferably a plurality of FTL frames with consecutive memory addresses. In the example of fig. 3, FTL block 1 (320) includes 100 FTL frames (FTL frame 1 through FTL frame 100), FTL block 2 (321) includes FTL frames 101 through FTL frame 200, and FTL block 6 (325) includes FTL frames 501 through FTL frame 600. By way of example, FTL frame size is 4KB, including 1K (1024) FTL entries, and each FTL entry corresponds to 4KB logical/physical address space, thus each FTL frame corresponds to 4MB logical/physical address space, and each FTL block includes 100 FTL frames, corresponding to 400MB logical/physical address space.
When the solid-state storage device processes a write request, a physical address is allocated to the write request, and the corresponding relation between the logical address and the physical address of the write request is recorded in the FTL table. In another embodiment, a host accessing the solid state storage device maintains an FTL table, and when a write request needs to be sent to the solid state storage, a physical address of the solid state storage device is allocated to the write request, and a correspondence between the logical address and the physical address of the write request is recorded in the FTL table.
FIG. 4 is a block diagram of the structure of a "write" log according to an embodiment of the invention. A "write" log is also generated as the solid state storage device processes write requests. The logical address and the physical address corresponding to the write operation are recorded in the "write" log. For each FTL entry update request, a corresponding "write" log entry is generated.
For the purpose of storing the "write" log in the nonvolatile storage medium, the "write" log is organized into log frames 410 (see fig. 4). Each log frame 410 includes a plurality of "write" log entries (422, 424, 42 n) (or "entries"). Each write log entry (422, 424, or 42 n) includes a logical address and a physical address corresponding thereto. The journal entries are generated and organized in journal frames in the order in which the FTL tables were updated. Thus in a "write" log there may be "write" log entries with the same logical and/or physical address.
The size of each log frame 410 corresponds to a minimum write unit (e.g., page) of the nonvolatile storage medium. The data page size of a nonvolatile storage medium is typically 2KB, 4KB, 8KB, or 16KB. In one embodiment, the data page size of the nonvolatile storage medium is 16KB, while the log frame size is 2KB, 4KB, 8KB, or 16KB. In another embodiment, the data page size of the nonvolatile storage medium is 4KB, while the log frame size is 512B, 1KB, or 2KB, or 4KB. Typically, the log frame size is selected such that the data page size of the nonvolatile storage medium is an integer multiple of the log frame size, so as to store one or more log frames to the data page of the nonvolatile storage medium. In yet another embodiment, one or more FTL frames and one or more "write" log data frames constitute one data page of a nonvolatile storage medium.
Metadata 440 is also included in the log frame 410 according to an embodiment of the present invention, where metadata 440 indicates that log frame 410 belongs to FTL block 1. The log frame 410 belongs to FTL block 1, meaning that the entries in the log frame 410 record updates to the entries of FTL block 1, in other words, the logical addresses of the entries in the log frame 410 are all within the logical address range of FTL block 1.
In one example, a queue is provided to accommodate the "write" log entries. When a "write" log is generated, log entries are inserted into the queue (tail). Alternatively, multiple entries may be combined and inserted into the queue in one memory access operation, and the combined multiple entries may be sized to be equal to the bus width or the memory interface width. In retrieving log entries from the head of the queue, a specified number of log entries are retrieved in log frame size. The queue is first-in first-out, thereby enabling easy identification of the order of generation of log entries in the solid state disk log. The depth of the queue is properly selected so that when power failure occurs, log entries in the queue can be written into the solid state disk log within a limited time of the backup power supply.
In another example, a log frame buffer is provided to accommodate "write" log entries. The log frame buffer has a size corresponding to one or more log frames. The size of the buffer zone is properly selected so that when power failure occurs, log entries in the log frame buffer zone can be written into the solid state disk log within the limited time of power supply of the standby power supply. When the log frame buffer area accumulates the data with the log frame size, the content of the data is written into the solid state disk log.
In a further example, when a "write" log entry is added to a queue or log frame buffer, it is also checked whether there is already an entry in the queue or buffer with the same logical address. If entries with the same logical address are already recorded in the queue or buffer, the existing entries in the queue or buffer are updated with the log entries to be written, thereby reducing the amount of data to be written to the solid state disk log.
Fig. 5 is a flowchart of a method for generating a solid state disk log based on FTL table according to an embodiment of the present invention. When the FTL table is updated, the correspondence of the logical address and the physical address of the updated FTL table entry is recorded (510). The FTL table is optionally updated accordingly. And caching the corresponding relation between the recorded logical addresses and the physical addresses, wherein each corresponding relation between the logical addresses and the physical addresses forms a write log entry. A certain number of "write" log entries constitutes a log frame. What is recorded by a "write" log entry in the same log frame is an update to the FTL entry of the same FTL block. When the corresponding relation between the cached logical addresses and the physical addresses can form a log frame, the corresponding relation between the cached logical addresses and the physical addresses is utilized to generate the log frame (520). A portion of one of the plurality of FTL blocks of the FTL table in memory is also selected to generate an FTL frame (530). For example, the portion of FTL block 1 selected is the portion of FTL block 1 that has not been written to a nonvolatile storage medium. In a preferred embodiment, the size of the combination of FTL frame 1-1 (220) and log frame (230) corresponds to the data page size of the nonvolatile storage medium of the solid state disk, such that the combination of FTL frame 1-1 (220) and log frame (230) can be written to the nonvolatile storage medium (540) of the solid state disk by one write operation of the nonvolatile storage medium.
According to a further embodiment of the present invention, a log frame is generated each time a predetermined number of write requests are received, wherein a mapping relationship between a logical address and a physical address corresponding to the predetermined number of write requests can be accommodated in one log frame. And each time a log frame is generated, selecting a portion of the FTL table generates FTL frames. According to yet another embodiment of the present invention, the log frame is periodically generated using the cached "write" log entries. And selecting a portion of the FTL table to generate FTL frames for each generation of one log frame. According to still another embodiment of the present invention, the size of the log frame corresponds to the data page size of the nonvolatile storage medium, and the size of the FTL frame also corresponds to the data page size of the nonvolatile storage medium.
According to still another embodiment of the present invention, when generating FTL frames of the FTL table, FTL frames are generated by selecting portions of FTL blocks according to memory addresses of FTL blocks themselves.
For example, the portion of FTL block 1 of length L starting from address 0 is selected to constitute FTL frame 1-1. The portion of FTL block 1 of length L starting from address L is selected to constitute FTL frame 1-2. The portion of FTL block 1 of length L starting from address (N-1) L is selected to constitute FTL frame 1-N. And sequentially writing the FTL frames of each FTL block of the FTL table into a nonvolatile storage medium, so that the complete FTL table can be recorded in the solid state disk log.
In this way, one physical page is stored to the solid state disk at a time. Even if the solid state disk is powered down, the FTL table can be stored within the limited working time of the standby power supply.
Those skilled in the art will appreciate that in some cases, the solid state disk log does not include a complete FTL table. For example, for a new or blank solid state disk, with the use of the solid state disk, the FTL block 1 is only valid in the FTL table when power failure occurs after the FTL frame is generated by selecting a part of the FTL table 3 times, and only the FTL block 1 is recorded in the solid state disk log. And marking the used data blocks and/or unused data blocks in the solid state disk log to identify effective data frames in the solid state disk log, so as to reconstruct an FTL table when the solid state disk is powered down.
FIG. 6 is a block diagram of the structure of a solid state disk log according to another embodiment of the invention. The solid state disk log 610 is stored in a nonvolatile storage medium. Referring to FIG. 6, solid state disk log 410 includes a plurality of physical pages (physical pages 620, 621, 622 … …, 628, 629). Physical page 620 includes FTL frame 1-1, FTL frame 1-2, FTL frame 1-3, and log frame 0-1.FTL frames have the same size as log frames. FTL frame 1-1, FTL frame 1-2 … … FTL frame 1-100 accommodates all FTL entries of FTL block 1, log frame 1-2 and log frame 1-3 are log frames belonging to FTL block 1. The solid state disk log 610 also includes other types of frames (other frame 1, other frame 2, and other frame 3).
Each FTL frame also includes metadata that records the FTL block to which the FTL frame belongs and the storage location (physical address) of the previous FTL frame belonging to the same FTL block. Whereby multiple FTL frames belonging to the same FTL block are organized into linked lists. Each log frame also includes metadata that records the FTL block to which the log frame belongs and the storage location (physical address) of the previous log frame belonging to the same FTL block. Whereby multiple log frames belonging to the same FTL block are organized into linked lists.
In the example of FIG. 6, FTL frame 1-1 is the first FTL frame of FTL block 1, FTL frame 1-2 is the 2 nd FTL frame of FTL block 1, and so on, FTL frame 1-100 is the last FTL frame of FTL block 1. Multiple FTL frames belonging to the same FTL block may be stored discontinuously in the solid state disk log 610. When other types of frames with high priority appear, the frames can be stored in the solid state disk log in time. Log frame 0-1 is the first log frame for FTL block 0 (not shown in fig. 6), log frame 1-1 is the first log frame for FTL block 1, log frame 1-2 is the 2 nd log frame for FTL block 1, and log frame 1-3 is the 3 rd log frame for FTL block 1. The entries in the log frame are arranged in the order of generation.
Fig. 7 is a flowchart of a solid state disk log generation method according to still another embodiment of the present invention. According to the embodiment of fig. 7, a solid state disk log 610 as shown in fig. 6 is generated.
When the FTL table is updated, the correspondence between the logical address and the physical address of the updated FTL table entry is recorded (710). The FTL table is optionally updated accordingly. And caching the corresponding relation between the recorded logical addresses and the physical addresses, wherein each corresponding relation between the logical addresses and the physical addresses forms a write log entry. A certain number of "write" log entries constitutes a log frame. What is recorded by a "write" log entry in the same log frame is an update to the FTL entry of the same FTL block. When the correspondence of the cached logical addresses and physical addresses can constitute one log frame, a log frame is generated using the cached write log entries, and FTL blocks (720) to which they belong are marked in the log frame (see fig. 6 and 7, e.g., log frames 0-1). Optionally, a storage location of a previous log frame belonging to the same FTL block as the log frame is also marked in the log frame. Referring to fig. 6, log frame 0-1 is the first log frame of FTL block 0 (not shown in fig. 6), and the previous log frame is marked as not present in log frame 0-1.
One of a plurality of FTL blocks (e.g., FTL block 1) of the FTL table in memory is also selected to generate FTL frame (730). The generated one or more FTL frames are written to a nonvolatile storage medium along with the log frame (740). In the example of fig. 6, the combination of 3 FTL frames and 1 log frame occupies one physical page of the nonvolatile storage medium. Steps 710-740 are repeatedly executed to write the log frame and FTL frame into the solid state disk log at any time.
In one example, one of the FTL blocks (e.g., FTL block 1) is selected to generate FTL frames and writing other FTL blocks to the solid state disk log is avoided as much as possible before FTL block 1 is completely written to the solid state disk log 610, so that FTL blocks are distributed as intensively as possible in the solid state disk log. However, since the FTL frame includes metadata indicating the previous FTL frame, FTL frames belonging to the same FTL block do not have to be continuously stored in the solid state disk log. Other types of frames (e.g., other frame 1 of fig. 6) or FTL frames of other FTL blocks (e.g., FTL frame 2-1 of fig. 6) may be stored between FTL frames of FTL block 1.
When the storage device is powered up, FTL frames and log frames may be read from the solid state disk log 610 to reconstruct FTL tables. In one example, by reading the complete solid state disk log 610, each FTL block and the log frame corresponding to each FTL block recorded in the solid state disk log 610 are found, and the state of the FTL table is determined before the storage device is powered down. In another example, to speed up the FTL table reconstruction process, the storage locations of the first FTL frame and/or the last FTL frame of the plurality of FTL frames of each FTL block and the storage locations of the first log frame and/or the last log frame of the plurality of log frames of each FTL block are also recorded in the nonvolatile storage medium. Therefore, when the storage device is powered on, the storage positions of the FTL frames and the log frames of each FTL block can be rapidly positioned, and each FTL block can be recovered without reading the complete solid state disk log 610.
In one embodiment, in response to a storage device powering down, even if the number of cached log entries is insufficient to form a log frame, the cached log entries are filled to form a log frame and written to the solid state disk log. And recording the storage locations of the first FTL frame and/or the last FTL frame of the plurality of FTL frames of each FTL block and the storage locations of the first log frame and/or the last log frame of the plurality of log frames of each FTL block in the nonvolatile storage medium. Referring back to fig. 6, in the solid state disk log, 100 FTL frames of FTL block 1 are completely recorded; thus, in response to a storage device powering down, the storage locations of FTL frames 1-1 and/or FTL frames 1-100 and the storage locations of log frames 1-1 and/or log frames 1-3 are recorded in the nonvolatile storage medium to recover FTL block 1 from the solid state disk log. While, for example, 100 FTL frames of FTL block 2 have not been completely recorded at the time of power failure, but an update to FTL block 2 is completely recorded in the log frame, in this case FTL frame 2-1, FTL frame 2-2, FTL frame 2-3, FTL frame 2-7, FTL frame 2-8, FTL frame 2-9 recorded in the solid state disk log 610 are not used to reconstruct FTL block 2, but only the log frame 2-1 belonging to FTL block 2 is used to reconstruct FTL block 2, and other entries of FTL2 not recorded in the log frame 2-1 may be marked as unallocated at the time of reconstruction. In another example, multiple complete FTL blocks 2 (each FTL block 2 comprising 100 FTL frames) and incomplete FTL blocks 2 are recorded in the solid state disk log 610, and in response to a power down of the storage device, the storage location of the first FTL frame and/or the last FTL frame of the latest complete FTL block 2 is recorded in the nonvolatile storage medium and used for FTL reconstruction.
Fig. 8 is a flowchart of a device start-up method according to an embodiment of the present invention. The method according to the embodiment of fig. 8 may be implemented by a solid state disk, or may be implemented by a host accessing the solid state disk. At the start-up of a device such as a solid state disk, it is necessary to reconstruct the FTL table.
In an embodiment according to the invention, the FTL table is divided into a plurality of FTL blocks, each FTL block is reconstructed independently from the solid state disk log. An FTL block (800) to be reconstructed is determined. For example, the reconstruction starts from the first FTL block. Or to estimate the storage area that will be accessed first after the storage system is started (e.g., the storage area of the host storage operating system) and to preferentially load FTL blocks corresponding to this portion of the storage area. Or storing the logic address or the corresponding FTL block which is accessed first after the last or previous solid state disk is started in the solid state disk (for example, in a solid state disk log), and taking the logic address or the corresponding FTL block as a basis for selecting the FTL block which is reconstructed preferentially. And when the solid state disk is powered on, acquiring the stored logical address(s) or the FTL block. When the first accessed logical address after the previous start is stored on the solid state disk, the FTL block is selected, so that the logical address range of the selected FTL block includes the first accessed logical address.
In another example, FTL blocks corresponding to the IO requests received by the storage device (FTL blocks containing logical addresses requested by the received IO requests) are identified and the FTL blocks are loaded preferentially.
In yet another example, after the device is booted, the FTL table is rebuilt in the order of FTL block addresses. When the FTL block 3 is rebuilt, an IO request from the host accessing the logical address of the corresponding FTL block 5 is received, then the rebuilding operation of the FTL block 3 is paused, the rebuilding of the FTL block 5 is started, after the rebuilding of the FTL block 5 is completed, the IO request is responded, and then the sequential rebuilding operation of the FTL table interrupted previously is continued.
In yet another example, upon device start-up, FTL tables are rebuilt in a predictive manner, FTL block 2 being rebuilt when the next FTL block to be accessed is predicted to be FTL block 2. If an IO request for accessing the logical address of the corresponding FTL block 5 is received from the host, the rebuilding operation of the FTL block 2 is suspended, the rebuilding of the FTL block 5 is started, after the rebuilding of the FTL block 5 is completed, the IO request is responded, and then the FTL block to be rebuilt is rebuilt, and the rebuilding operation is performed.
To reconstruct the FTL block, FTL frames and/or log frames (if present) of a specified FTL block (e.g., FTL block 1) are retrieved from a predetermined location in the non-volatile storage medium at a storage location of the solid state disk log (810). According to one embodiment of the present invention, the storage location of the last 1 FTL frame of FTL block1 and the storage location of the last 1 log frame of FTL block1 are recorded in the nonvolatile storage medium.
The FTL frame is read from the storage location of the last 1 FTL frame of FTL block 1, and the storage location of the first 1 FTL is obtained from the read FTL frames, and the first 1 FTL frame is read, in this way, all FTL frames belonging to FTL block 1 are read from the solid state disk log (820). And if the log frames belonging to the FTL block exist, reading the log frames from the storage positions of the last 1 log frames of the FTL block 1, and acquiring the storage positions of the first 1 log frames from the read log frames, thereby reading all the log frames belonging to the FTL block 1 from the solid state disk log.
Each FTL frame read is written to memory as part of FTL block 1 in its position in FTL block 1. All FTL frames belonging to FTL block 1 are put into memory to form the basic content of FTL block 1 (830). Next, if there is a log frame belonging to FTL block 1, FTL block 1 in the memory is updated with the log frame to complete the reconstruction of FTL block 1 (840). Updating FTL block 1 with log frames requires following a specified order. FTL block 1 is updated, for example, in reverse order of the order in which the log entries in the log frame are generated. Firstly, the last 1 log frame belonging to the FTL block 1 is obtained from the solid state disk log, and a plurality of log entries in the last log frame are updated to the FTL block 1 in a sequence from back to front. Updating FTL blocks with log entries means that the physical address of the indexed entry in FTL block 1 is replaced with the logical address in the log entry as an index. Next, the penultimate log frame belonging to FTL block 1 is acquired and FTL block 1 is updated with the log entry therein.
Since there may be multiple entries in the log entry with the same logical address, and the last of these entries records the latest content of the corresponding FTL entry, replacement of the new content by the old content of the FTL entry is avoided when updating FTL block 1. To this end, during reconstruction of FTL block 1, a flag is set for each updated FTL entry, and during subsequent reconstruction, if there is a flag on the FTL entry to be updated by the log entry, the log entry is ignored (i.e. the FTL block is not updated with the log entry). And after all log frames of FTL block 1 have been processed, all set flags of FTL block 1 are cleared.
As still another embodiment of the present invention, FTL block 1 is updated in the order in which log entries in the log frames are generated, first, a first log frame belonging to FTL block 1 is obtained from the solid state disk log, and a plurality of log entries in the first log frame are updated to FTL block 1 in the order from front to back. Updating FTL blocks with log entries means that the physical address of the indexed entry in FTL block 1 is replaced with the logical address in the log entry as an index. Next, a second log frame belonging to FTL block 1 is acquired and FTL block 1 is updated with log entries therein.
After the reconstruction of FTL block 1 is completed, the IO request to the corresponding logical address range of FTL block 1 may be responded, although the complete FTL table has not been reconstructed yet.
Next, it is determined whether there are additional FTL blocks to be rebuilt (850). If all FTL blocks of the FTL table have been rebuilt, system start-up (860) may be completed. If there are still non-reconstructed FTL blocks, step 800 continues and FTL blocks to be reconstructed are determined.
FIG. 9 is a block diagram of a solid state disk according to an embodiment of the invention. The memory device includes a controller, a NAND flash memory, a DRAM, and a NOR flash memory. The controller is coupled to the NAND flash memory, the NOR flash memory, and the DRAM, respectively. The NAND flash memory includes a start page, a log area, and a user data area. The solid state disk log according to the embodiment of the invention is stored in the log area, and the user data stored by the solid state disk as the storage device is stored in the user data area. FTL frames and log frames from a plurality of FTL blocks are stored in the solid state disk log.
FTL tables are stored in the DRAM, and in fig. 9, the portion of FTL tables indicated by hatching is the FTL table portion (e.g., corresponding to FTL block 1) that has been updated. The log frames 1-1 and 1-2 stored in the log area record the update of FTL block 1 of the FTL table. And log frame 1-1 also stores the address of its corresponding FTL frame 1, while log frame 1-2 stores the address of the previous log frame (log frame 1-2) belonging to FTL frame 1. The FTL table portion indicated by the hatching can be obtained by replaying the updates recorded in the log frames 1-1 and 1-2 on the FTL table portion corresponding to the FTL block 1 (or referred to as updating the FTL table with the log frames 1-1 and 1-2).
In the example of fig. 9, FTL frames of the respective FTL blocks and addresses of log frames in the log area are stored in the start page of the NAND flash memory. Optionally, FTL frames belonging to the same FTL block are organized into a linked list, and log frames belonging to the same FTL block are also organized into a linked list, and the head address and the tail address of the FTL frame linked list and the log frame linked list of each FTL block in the log area are stored in the starting page. Or storing the storage positions of the head node and the tail node of the FTL frame linked list of each FTL block in the log area in the starting page, and the storage positions of the head node and the tail node of the log frame linked list in the log area.
In a further embodiment, a plurality of boot pages are stored in the NAND flash memory for providing a backup of the boot page or different versions of the boot page. The storage location of the valid start page (physical address in NAND flash) is also stored in NOR flash. When the solid state disk is powered on, the controller acquires the address of the effective starting page from the NOR flash memory, acquires the effective starting page from the NAND flash memory according to the address, and rebuilds the FTL table in the DRAM according to the FTL frame address and/or the log frame address indicated by the starting page.
FIG. 10 illustrates a schematic diagram of generating a solid state disk log in response to a power down event in accordance with an embodiment of the invention. In the embodiment of FIG. 10, solid state disk log 1010 includes physical pages 1020, 1021, 1022, … …, 1028, and 1029. By the time power loss occurs, the physical page 1022 has been written to the nonvolatile storage medium. After power failure, the standby power supply has limited power supply time, so that the priority or proportion of FTL frames and log frames written into physical pages is changed for storing the latest state of the FTL table in a nonvolatile storage medium in the limited time, and the duty ratio of the log frames is increased. In the example of fig. 10, after a power loss occurs, physical pages 1028 and 1029 are completely filled with log frames without further writing FTL frames, so that as many log frames as possible are written to the nonvolatile storage medium.
During standby power, even if the full write log frame does not write FTL frames, log frames that can be written to nonvolatile storage media are limited. In one embodiment according to the invention, to ensure that updates to the FTL table can be saved to the nonvolatile storage medium, the number of cached log entries is determined in terms of the number of log frames that can be written to the nonvolatile storage medium during backup power. For example, if the backup power supply is capable of supporting writing N log frames to the nonvolatile storage medium, the total number of cached log entries does not exceed the number of log entries accommodated by the N log frames. Further, since the log frames correspond to FTL blocks, the number of log frames does not exceed N. If log entries have been filled in N log frames in memory, generation of new log frames, and optionally, responses to operations (e.g., write commands, erase commands, trim commands, etc.) requiring updating FTL table entries, are suspended before one or more of these log frames are written to the nonvolatile storage medium.
In yet another embodiment according to the present invention, the ratio of FTL frames to log frames is adjusted not only in response to a power down event, but also for other reasons. For example, when a write command frequently occurs, more log entries are cached in the memory, and the ratio of FTL frames to log frames in the physical pages of the solid state disk log is adjusted so as to write the log entries into the nonvolatile storage medium as soon as possible.
Wherein, in response to the occurrence of the exception event, the method comprises storing an address in the NVM of a last FTL frame of each FTL block and an address in the NVM of a last log frame in the boot page of the NVM or storing a physical page address in the NVM of a last FTL frame set of each FTL block and a physical page address in the NVM of a last log frame set in the boot page of the NVM, wherein the FTL frame set is a plurality of FTL frames stored on a same physical page of the NVM and the log frame set is a plurality of log frames stored on a same physical page of the NVM.
It will be apparent to those skilled in the art that embodiments of the present application may be provided as a method, apparatus (device), or computer program product. Accordingly, the present application may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present application may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and the like) having computer-usable program code embodied therein.
The present application is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (devices) and computer program products according to embodiments of the application. It will be understood that each flow and/or block of the flowchart illustrations and/or block diagrams, and combinations of flows and/or blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
While preferred embodiments of the present application have been described, additional variations and modifications in those embodiments may occur to those skilled in the art once they learn of the basic inventive concepts. It is therefore intended that the following claims be interpreted as including the preferred embodiments and all such alterations and modifications as fall within the scope of the application. It will be apparent to those skilled in the art that various modifications and variations can be made to the present application without departing from the spirit or scope of the application. Thus, it is intended that the present application also include such modifications and alterations insofar as they come within the scope of the appended claims or the equivalents thereof.

Claims (24)

1. The solid state disk for storing log frames and log entries comprises: a nonvolatile storage medium including a plurality of physical pages; wherein the method comprises the steps of
The physical page includes one or more FTL frames and/or one or more log frames; wherein the method comprises the steps of
Each FTL frame includes a plurality of FTL table entries and metadata recorded at a storage location of a previous FTL frame belonging to the same FTL block as the FTL frame, each log frame includes a plurality of operation log entries and a storage location recorded at a previous log frame belonging to the same FTL block as the log frame, each operation log entry includes a logical address and a physical address corresponding thereto, and the FTL block is part of the FTL table.
2. The solid state disk storing log frames and log entries according to claim 1, further comprising: the address of the last FTL frame of each FTL block in the NVM and the address of the last log frame in the NVM are stored in a boot page of the NVM.
3. The solid state disk storing log frames and log entries according to claim 1, further comprising: the physical page address in NVM of the last FTL frame set and the physical page address in NVM of the last log frame set of each FTL block are stored in a boot page of the NVM, wherein FTL frame set is a plurality of FTL frames stored on the same NVM physical page and log frame set is a plurality of log frames stored on the same NVM physical page.
4. The solid state disk storing log frames and log entries of claim 1, wherein a log frame includes metadata indicating FTL blocks to which the log frame belongs.
5. The solid state disk storing log frames and log entries of claim 1, wherein a plurality of FTL frames belonging to a same FTL block occupy consecutive physical address space in the solid state disk.
6. The solid state disk storing log frames and log entries of claim 5 wherein the plurality of FTL frames occupy contiguous physical address space in the solid state disk excluding bad block space.
7. The solid state disk storing log frames and log entries according to claim 1, wherein the nonvolatile storage medium is MLC (Multi LevelCell, multi-level cell) or TLC (TRIPLE LEVELCELL, three-level cell) nonvolatile storage medium.
8. The solid state disk storing log frames and log entries according to claim 1, wherein the plurality of physical pages are accessed using pSLC (pseudo-SLC) mode or SLC (SINGLE LEVEL CELL ) mode.
9. A FTL table-based log generation method, comprising:
Recording a logical address and a physical address corresponding to the operation request as log entries;
Generating a log frame with the log entry and also generating an FTL frame using a portion of FTL blocks, wherein the FTL table comprises a plurality of FTL blocks; and
Storing the FTL frame and the log frame generated on NVM;
wherein the logical addresses of all log entries in the log frame belong to the same FTL block; the log frame includes metadata that records a storage location of a previous log frame belonging to the same FTL block as the log frame.
10. The FTL table based log generation method of claim 9, wherein the FTL frame comprises metadata recording a storage location on NVM of a previous FTL frame belonging to the same FTL block as the FTL frame.
11. The FTL table based log generation method of claim 9, wherein the combined size of FTL frame and log frame corresponds to NVM physical page size.
12. The FTL table based log generation method of claim 11, wherein the portion of the FTL block is from a portion of the FTL block that has not been written to a nonvolatile storage medium.
13. The FTL table based log generation method of claim 12, wherein one or more FTL frames are combined with one or more log frames and written to physical pages of NVM.
14. The FTL table based log generation method of any of claims 9-13, further comprising, in response to occurrence of an abnormal event, changing a ratio of FTL frames and log frames stored on the NVM according to a priority level.
15. The FTL table based log generation method of any of claims 9-13, wherein in response to occurrence of an abnormal event, further comprising: the address of the last FTL frame of each FTL block in the NVM and the address of the last log frame in the NVM are stored in a boot page of the NVM.
16. The FTL table-based log generation method of any of claims 9-13, wherein the FTL table is divided into FTL blocks according to memory addresses of the FTL table.
17. The FTL table based log generation method of any of claims 9-13, wherein the plurality of FTL blocks are from different portions of the FTL table.
18. The FTL table based log generation method of any of claims 9-13, wherein FTL frames are written into NVM in order of addresses of FTL blocks.
19. The FTL table based log generation method of any of claims 9-13, wherein the generating a log frame with log entries comprises: judging the number of the log entries, and generating a log frame if the number of the log entries reaches the standard of generating the log frame.
20. The FTL table-based log generation method of claim 19, wherein the filler data is generated simultaneously with the generation of the log entries, and when the number of the log entries is determined, the filler data is added, and then a determination is made as to whether the log frame generation standard is reached.
21. The FTL table based log generation method of claim 20, wherein the size of the log frame corresponds to a physical page size of NVM.
22. The FTL table based log generation method of claim 21, wherein the physical page size of NVM is an integer multiple of the log frame size.
23. The FTL table-based log generation method of claim 22, wherein the log frame further comprises metadata; metadata indicates FTL blocks to which the log frames belong.
24. The FTL table based log generation method of claim 23, wherein a previous log frame belonging to the same FTL block is further recorded in the metadata.
CN202110926537.0A 2016-06-29 2016-06-29 Solid state disk for storing log frames and log entries Active CN113590504B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110926537.0A CN113590504B (en) 2016-06-29 2016-06-29 Solid state disk for storing log frames and log entries

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201610499397.2A CN107544912B (en) 2016-06-29 2016-06-29 Log recording method, loading method and device
CN202110926537.0A CN113590504B (en) 2016-06-29 2016-06-29 Solid state disk for storing log frames and log entries

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201610499397.2A Division CN107544912B (en) 2016-06-29 2016-06-29 Log recording method, loading method and device

Publications (2)

Publication Number Publication Date
CN113590504A CN113590504A (en) 2021-11-02
CN113590504B true CN113590504B (en) 2024-09-03

Family

ID=60965997

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201610499397.2A Active CN107544912B (en) 2016-06-29 2016-06-29 Log recording method, loading method and device
CN202110926537.0A Active CN113590504B (en) 2016-06-29 2016-06-29 Solid state disk for storing log frames and log entries

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201610499397.2A Active CN107544912B (en) 2016-06-29 2016-06-29 Log recording method, loading method and device

Country Status (1)

Country Link
CN (2) CN107544912B (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110096452B (en) * 2018-01-31 2024-05-28 北京忆恒创源科技股份有限公司 Nonvolatile random access memory and method for providing the same
CN109446000A (en) * 2018-10-08 2019-03-08 郑州云海信息技术有限公司 The recognition methods of hard disk sequence, device, terminal and storage medium under more hard disk backboards
CN112148645A (en) * 2019-06-28 2020-12-29 北京忆芯科技有限公司 De-allocation command processing method and storage device thereof
CN114153379A (en) * 2021-10-29 2022-03-08 尧云科技(西安)有限公司 High-performance hybrid FTL method and solid-state storage device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101937319A (en) * 2009-06-29 2011-01-05 联发科技股份有限公司 Memory systems and mapping methods thereof
CN104603760A (en) * 2012-09-28 2015-05-06 苹果公司 Flash Translation Layer (FTL) database logging scheme

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1277213C (en) * 2004-12-31 2006-09-27 大唐微电子技术有限公司 A flash memory file system management method
KR100885181B1 (en) * 2007-02-06 2009-02-23 삼성전자주식회사 Memory system performing group mapping operation and address mapping method thereof
CN100583050C (en) * 2008-06-11 2010-01-20 华中科技大学 Method for protecting and recovering continuous data based on time stamp diary memory
KR101497074B1 (en) * 2008-06-17 2015-03-05 삼성전자주식회사 Non-volatile memory system and data manage method thereof
CN101446927B (en) * 2008-12-26 2010-12-01 祥硕科技股份有限公司 Flash memory system and control method thereof
KR101678911B1 (en) * 2010-03-12 2016-11-23 삼성전자주식회사 Data storage device and computing system including the same
US9164887B2 (en) * 2011-12-05 2015-10-20 Industrial Technology Research Institute Power-failure recovery device and method for flash memory
CN102760161A (en) * 2012-06-12 2012-10-31 天津神舟通用数据技术有限公司 Log organization structure clustered based on transaction aggregation and method for realizing corresponding recovery protocol thereof
US9268682B2 (en) * 2012-10-05 2016-02-23 Skyera, Llc Methods, devices and systems for physical-to-logical mapping in solid state drives
CN103034586B (en) * 2012-11-30 2016-03-23 记忆科技(深圳)有限公司 By method and the system thereof of flash translation layer (FTL) identification upper layer application
CN103049397B (en) * 2012-12-20 2015-09-16 中国科学院上海微系统与信息技术研究所 A kind of solid state hard disc inner buffer management method based on phase transition storage and system
KR20140094278A (en) * 2013-01-22 2014-07-30 에스케이하이닉스 주식회사 Semiconductor apparatus and method of operating the same
CN104281506B (en) * 2014-07-10 2017-02-15 中国科学院计算技术研究所 Data maintenance method and system for file system
CN104461393B (en) * 2014-12-09 2017-05-17 华中科技大学 Mixed mapping method of flash memory
CN105205008B (en) * 2015-09-18 2018-07-20 成都三零嘉微电子有限公司 Reduce the method that log blocks mapping table memory source occupies in mixed-use developments algorithm
CN105302736B (en) * 2015-09-21 2019-01-04 成都三零嘉微电子有限公司 A kind of method of log blocks data preparation performance in raising mixed-use developments

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101937319A (en) * 2009-06-29 2011-01-05 联发科技股份有限公司 Memory systems and mapping methods thereof
CN104603760A (en) * 2012-09-28 2015-05-06 苹果公司 Flash Translation Layer (FTL) database logging scheme

Also Published As

Publication number Publication date
CN107544912B (en) 2021-09-03
CN113590504A (en) 2021-11-02
CN107544912A (en) 2018-01-05

Similar Documents

Publication Publication Date Title
CN112765006B (en) Solid state disk log generation method and solid state disk thereof
US8909986B2 (en) Data storing method for solid state drive to preserve data integrity after power failure
CN105718530B (en) File storage system and file storage control method thereof
CN111752487B (en) Data recovery method and device and solid state disk
CN107908571B (en) Data writing method, flash memory device and storage equipment
US9891825B2 (en) Memory system of increasing and decreasing first user capacity that is smaller than a second physical capacity
CN112433956A (en) Sequential write based partitioning in a logical-to-physical table cache
CN113590504B (en) Solid state disk for storing log frames and log entries
CN107168647A (en) FLASH data read-write methods and system
KR101077904B1 (en) Apparatus and method for managing flash memory using page level mapping algorithm
CN105468294A (en) Offline deduplication for solid-state storage devices
CN103577121A (en) High-reliability linear file access method based on nand flash
US11030089B2 (en) Zone based reconstruction of logical to physical address translation map
US10552335B2 (en) Method and electronic device for a mapping table in a solid-state memory
CN109164975A (en) A kind of method and solid state hard disk writing data into solid state hard disk
CN109558335B (en) Nor Flash memory based file storage format of embedded system
JP2013222435A (en) Semiconductor storage device and method of controlling the same
JP2010515162A5 (en)
CN102135943B (en) Storing and accessing method of flash memory data and device thereof
CN107203341A (en) Date storage method, device and flash chip based on flash memory
KR101077901B1 (en) Apparatus and method for managing flash memory using log block level mapping algorithm
CN112433889B (en) Log generation method and device based on FTL table
CN107544913B (en) FTL table rapid reconstruction method and device
US20170052899A1 (en) Buffer cache device method for managing the same and applying system thereof
EP2381354A2 (en) Data recording device

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
GR01 Patent grant
GR01 Patent grant