CN109976664B - Log data organization for solid state storage devices - Google Patents

Log data organization for solid state storage devices Download PDF

Info

Publication number
CN109976664B
CN109976664B CN201711456111.3A CN201711456111A CN109976664B CN 109976664 B CN109976664 B CN 109976664B CN 201711456111 A CN201711456111 A CN 201711456111A CN 109976664 B CN109976664 B CN 109976664B
Authority
CN
China
Prior art keywords
log
metadata
block
frame
blocks
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
CN201711456111.3A
Other languages
Chinese (zh)
Other versions
CN109976664A (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 CN201711456111.3A priority Critical patent/CN109976664B/en
Publication of CN109976664A publication Critical patent/CN109976664A/en
Application granted granted Critical
Publication of CN109976664B publication Critical patent/CN109976664B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • 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

Abstract

The application provides log data organization for solid state storage devices. The provided method for a storage device includes: acquiring available log blocks from a log area, and determining storage positions of metadata streams stored in the log blocks; metadata is acquired from the metadata stream to generate metadata frames, and the metadata frames are written into the storage positions.

Description

Log data organization for solid state storage devices
Technical Field
The present application relates to the field of data storage, and more particularly to log data organization for solid state storage devices.
Background
Among existing electronic products, solid-state storage devices are very widely used. FIG. 1 illustrates a block diagram of a solid state storage device. The solid state storage device 102 is coupled to a host for providing storage capability for the host. The host and solid state storage device 102 may be coupled by a variety of means including, but not limited to, connecting the host to the solid state storage device 102 via, for example, SATA (Serial Advanced Technology Attachment ), SCSI (Small Computer System Interface, small computer system interface), SAS (Serial Attached SCSI ), IDE (Integrated Drive Electronics, integrated drive electronics), USB (Universal Serial Bus ), PCIE (Peripheral Component Interconnect Express, PCIE, peripheral component interconnect Express), NVMe (NVM Express), ethernet, fibre channel, wireless communications network, and the like. The host may be an information processing device capable of communicating with the storage device in the manner described above, such as a personal computer, tablet, server, portable computer, network switch, router, cellular telephone, personal digital assistant, or the like. The memory device 102 includes an interface 103, a control unit 104, one or more NVM chips 105, and a DRAM (Dynamic Random Access Memory ) 110.
NAND flash memory, phase change memory, feRAM (Ferroelectric RAM, ferroelectric memory), MRAM (Magnetic Random Access Memory, magnetoresistive memory), RRAM (Resistive Random Access Memory, resistive memory), and the like are common NVM.
The interface 103 may be adapted to exchange data with a host by way of, for example, SATA, IDE, USB, PCIE, NVMe, SAS, ethernet, fibre channel, etc.
The control unit 104 is used to control data transfer among the interface 103, NVM chip 105, and DRAM 110, and also for memory management, host logical address to flash physical address mapping, erase balancing, bad block management, etc. The control component 104 can be implemented in a variety of ways, such as software, hardware, firmware, or a combination thereof, for example, the control component 104 can be in the form of an FPGA (Field-programmable gate array, field programmable gate array), an ASIC (Application Specific Integrated Circuit, application-specific integrated circuit), or a combination thereof. The control component 104 may also include a processor or controller in which software is executed to manipulate the hardware of the control component 104 to process IO (Input/Output) commands. Control unit 104 may also be coupled to DRAM 110 and may access data of DRAM 110. FTL tables and/or cached data of IO commands may be stored in the DRAM.
The control section 104 includes a flash interface controller (or referred to as a media interface controller, a flash channel controller) that is coupled to the NVM chip 105 and issues commands to the NVM chip 105 in a manner conforming to an interface protocol of the NVM chip 105 to operate the NVM chip 105 and receive a command execution result output from the NVM chip 105. Known NVM chip interface protocols include "Toggle", "ONFI", and the like.
The memory Target (Target) is one or more Logic Units (LUNs) of a shared (CE, chip Enable) signal within the NAND flash package. One or more dies (Die) may be included within the NAND flash package. Typically, a Logical Unit (LUN) corresponds to a single die. The logic cell may include multiple planes (planes). Multiple planes within a logic unit may be accessed in parallel, while multiple logic units within a NAND flash memory chip may execute commands and report status independently of each other. In "Open NAND Flash Interface Specif ication (review 3.0)" available from http:// www.micron.com/-/media/Documents/Products/Other% 20Documents/ONFI3_0gold. Ashx, the meaning of target, logical unit, LUN, plane is provided as part of the prior art.
Data is typically stored and read on a storage medium on a page basis. While data is erased in blocks. A block (also called a physical block) contains a plurality of pages. A block contains a plurality of pages. Pages on a storage medium (referred to as physical pages) have a fixed size, e.g., 17664 bytes. The physical pages may also have other sizes.
In solid state storage devices, 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 may also be implemented in the related 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.
Disclosure of Invention
According to a first aspect of the present application, there is provided a method for a storage device according to the first aspect of the present application, the method comprising: acquiring available log blocks from a log area, and determining storage positions of metadata streams stored in the log blocks; metadata is acquired from the metadata stream to generate metadata frames, and the metadata frames are written into the storage positions.
According to a first method for a storage device of the first aspect of the present application, there is provided a second method for a storage device according to the first aspect of the present application, further recording, in a metadata frame, a storage location of a precursor and/or successor node of itself in a metadata linked list in a log area.
According to a third aspect of the present application, there is provided a method for a storage device according to the first or second aspect of the present application, wherein a log indicating an update of metadata is obtained from a metadata stream and a log frame is generated, and the log frame is written to the storage location.
According to a third method for a storage device according to the first aspect of the present application, there is provided a fourth method for a storage device according to the first aspect of the present application, further recording in the log frame the storage locations of the own predecessor and/or successor nodes in the log frame linked list in the log area.
According to a fifth method for a storage device according to the first aspect of the present application, a storage location of a head node and/or a tail node of a linked list of metadata frames and/or log frames of one or more metadata streams in a log block is recorded in a super page of the storage device.
According to any one of the first to fifth methods for a storage device of the first aspect of the present application, there is provided a sixth method for a storage device according to the first aspect of the present application, wherein the log area of the storage device includes one or more log blocks, the designated location of the log block stores log block metadata, and the log block metadata records a bad block table of the log block in which the log block metadata is located; and/or the log block metadata records the storage positions of metadata frames of one or more metadata streams in the log block and/or the head node and/or the tail node of the log frame linked list.
According to a seventh method for a storage device according to the first aspect of the present application, in a log area, log frames belonging to the same metadata stream are organized into a linked list, and metadata frames belonging to the same metadata stream are organized into a linked list.
According to a method for a storage device according to any one of the first to seventh aspects of the present application, there is provided a method for a storage device according to the eighth aspect of the present application, wherein one or more copies of the metadata stream are stored in the log area.
According to a method for a storage device according to an eighth aspect of the present application, there is provided a method for a storage device according to the ninth aspect of the present application, each physical block in the log block is ordered, ordered in the order of logical unit number and plane number in which the physical block is located, a portion of the metadata stream to be recorded in the log block is also ordered, and the metadata stream and its copy are sequentially allocated to each available physical block of the log block.
According to a tenth method for a storage device according to the first aspect of the present application, the physical blocks in the log block are ordered, the physical blocks are ordered in the order of logical unit number and plane number where the physical blocks are located, the part of the metadata stream to be recorded in the log block and its copy are also ordered, and each available physical block of the log block is sequentially allocated to the part of the metadata stream and its copy.
According to a ninth or tenth method for storing a device of the first aspect of the present application, there is provided a method for storing a device according to the eleventh aspect of the present application, the plurality of copies of the log frame and/or the metadata frame being stored in physical blocks of the log block from each of the plurality of planes having the same physical block address, respectively.
According to a twelfth method for a storage device according to the first aspect of the present application, there is provided a method for a storage device according to the first aspect of the present application, the plurality of copies of the log frame and/or the metadata frame are stored in a first physical block and a second physical block of the log block, respectively, wherein the first physical block and the second physical block are available physical blocks and are adjacent physical blocks in the log block according to an ordering of the physical blocks.
According to a twelfth method for a storage device of the first aspect of the present application, there is provided the method for a storage device according to the thirteenth method of the first aspect of the present application, wherein each physical block in the log block is ordered in the order of logical unit number and plane number in which the physical block is located.
According to a second or thirteenth method for a storage device of the first aspect of the present application, there is provided a fourteenth method for a storage device according to the first aspect of the present application, the first physical block having the same physical block address as the second physical block.
According to a fifteenth method for a storage device according to the first aspect of the present application, there is provided the method for a storage device according to the first aspect of the present application, the content stored in the metadata frame includes: the metadata frame belongs to the metadata stream, and the address of the previous and/or subsequent metadata frames belonging to the same metadata stream as the metadata frame in the log area is the same as the metadata frame, and whether the metadata frame belongs to the first metadata frame or the last metadata frame of the metadata stream.
According to a sixteenth method for a storage device according to the first aspect of the present application, after recording one or more metadata streams to the log area, further comprising: updating the super page, recording a bad block table of the log area in the super page, and storing the first and/or last metadata frame of the one or more metadata streams and the log frame in the log area.
According to a second aspect of the present application, there is provided a method for a storage device according to the first aspect of the present application, the method comprising: reading the super page from the specified address of the NVM storage medium; if the super page is available, the super page is read to obtain the addresses of one or more metadata streams recorded in the log area, and metadata is reconstructed according to the read metadata streams.
According to a first method for a storage device of a second aspect of the present application, there is provided a method for a first storage device of a second aspect of the present application, further comprising: if the superpage is not available, one or more log blocks of the log area are scanned, the storage addresses of one or more log streams in the log blocks are determined from the log block metadata, the metadata streams are read from the log blocks, and the metadata is reconstructed.
According to a method for a storage device according to any of the first or second aspects of the present application, there is provided a method for a second storage device according to the second aspect of the present application, wherein the superpages record the head node address and/or the tail node address of the metadata frame linked list for each metadata stream and its copy.
According to a second method for a storage device according to the second aspect of the present application, there is provided a method for a third storage device according to the second aspect of the present application, the super page further recording a bad block table for each log block of the log area.
According to a second method for a storage device according to a second aspect of the present application, there is provided a method for a fourth storage device according to the second aspect of the present application, wherein the other nodes of the metadata frame linked list are acquired according to the read head node or tail node until the complete metadata frame linked list is read.
According to a first method for a storage device of a second aspect of the present application, there is provided a method for a fifth storage device of the second aspect of the present application, wherein if different storage locations of a head node and/or a tail node of the same metadata stream are recorded in a plurality of log block metadata, the storage locations of the head node and/or the tail node of the metadata stream recorded in one of the log block metadata are determined to be valid according to the time stamp or the sequence number of the record of the plurality of log block metadata.
According to a method for a storage device according to a first aspect of the present application, there is provided a method for a sixth storage device according to the second aspect of the present application, reading a bad block table from log block metadata of a log block, scanning each available physical block of the log block according to the bad block table, deriving metadata frames and/or log frames from the physical blocks, and identifying metadata frames and/or log frames belonging to a head node and/or a tail node of a linked list of metadata streams, and reconstructing metadata therefrom.
According to a first method for a storage device of a second aspect of the present application, there is provided a method for a seventh storage device of the second aspect of the present application, reading, from log block metadata of a log block, a head node and/or a tail node of a linked list of one or more metadata streams recorded by the log block, and reconstructing metadata therefrom.
According to a sixth or seventh method for a storage device according to the second aspect of the present application, there is provided a method for an eighth storage device according to the second aspect of the present application, in response to a metadata frame and/or a log frame corruption, obtaining a copy of the metadata frame and/or the log frame from an available physical block of the log block.
According to a ninth method for a storage device according to the second aspect of the present application, there is provided the method for a storage device according to the ninth storage device of the second aspect of the present application, further wherein the copy of the metadata frame and/or the log frame and the metadata frame and/or the log frame are stored in storage locations of the same logical unit having different plane numbers with the same physical address.
According to an eighth method for a storage device according to the second aspect of the present application, there is provided a method according to the tenth storage device of the second aspect of the present application, the copies of the metadata frames and/or the log frames being recorded in physical blocks adjacent to physical blocks storing the metadata frames and/or the log frames, wherein the physical blocks in the log blocks are ordered in the order of logical unit number and plane number in which the physical blocks are located.
According to an eighth method for a storage device according to the second aspect of the present application, there is provided a method according to the eleventh storage device of the second aspect of the present application, the copies of the log frame and/or the metadata frame being stored in a first physical block and a second physical block of the log block, respectively, wherein the first physical block and the second physical block are available physical blocks and are adjacent physical blocks in the log block according to an ordering of the physical blocks.
According to an eleventh method for a storage device according to the second aspect of the present application, there is provided a method for a twelfth storage device according to the second aspect of the present application, wherein each physical block in the log block is ordered in the order of the logical unit number and the plane number in which the physical block is located.
According to an eleventh or twelfth method for a storage device of the second aspect of the present application, there is provided a method for a thirteenth storage device of the second aspect of the present application, the first physical block having the same physical block address as the second physical block.
According to a third aspect of the present application, there is provided a first storage device according to the third aspect of the present application, comprising: a memory controller and an NVM storage medium; the NVM storage medium includes a super page, a log area, and a user data area; the controller performs the method described above.
According to a first memory device of a third aspect of the present application, there is provided a second memory device according to the third aspect of the present application, further comprising a DRAM, the DRAM storing metadata.
Drawings
In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the following description will briefly introduce the drawings that are required to be used in the embodiments or the description of the prior art, and it is obvious that the drawings in the following description are only some embodiments described in the present application, and other drawings may also be obtained according to these drawings for a person having ordinary skill in the art.
FIG. 1 is a block diagram of a prior art solid state storage device;
FIG. 2 is a schematic illustration of a solid state storage device of the prior art;
FIG. 3 is a data organization chart of log blocks in a log area provided by the present application;
FIG. 4 is another data organization diagram of log blocks in a log area provided herein;
FIGS. 5A, 5B, 5C, 5D are schematic diagrams of data organization of log areas provided herein;
FIG. 6 is a flow chart of a method for storing metadata streams in a log area provided herein;
FIG. 7 is a flow chart of a solid state storage device power-up provided herein.
Detailed Description
The following description of the embodiments of the present invention will be made clearly and fully with reference to the accompanying drawings, in which it is evident that the embodiments described are some, but not all, of the embodiments of the present application. All other embodiments, which can be made by those skilled in the art based on the embodiments herein without making any inventive effort, are intended to be within the scope of the present application.
The control component of the solid state storage device maintains a variety of metadata. Such as FTL tables, bad block tables, etc. of solid state storage devices. Some metadata will be updated and a log generated accordingly. Some metadata needs to be recorded in the NVM chip so that the metadata can still be used after the solid state storage device is disconnected or restarted. In response to the update of the metadata, the metadata is continuously written to the NVM chip. Chinese patent application 201610499631.1, which is incorporated herein by reference, provides a solution for log generation, storage and reconstruction of solid state storage devices.
The metadata that is continuously written to the NVM chip forms a metadata stream. The metadata stream may have multiple metadata streams, each corresponding to different kinds, sources, or different portions of the same metadata (e.g., FTL table portions corresponding to different logical address ranges). Some metadata streams also include a log that records updates to the metadata. Metadata can be recovered by recording the metadata stream on the NVM chip.
The portion of metadata having a specified size (e.g., 4 KB) is referred to as a metadata frame. The portion of the log having a specified size (e.g., 4 KB) is referred to as a log frame.
FIG. 2 is a block diagram of a solid state storage device according to an embodiment of the present application. The memory device includes a control unit, an NVM storage medium, and a DRAM. The control unit is coupled to the NVM storage medium and the DRAM, respectively. The NVM storage medium provides storage space including a superpage, a log area, and a user data area. The log area is used to store the metadata stream. The user data area is used to store user data held by the solid state storage device as a storage device.
Metadata is stored in the DRAM. In fig. 3, the part of the metadata indicated by the hatching is the part of the metadata that has been updated. Metadata logs corresponding to updates of metadata are also stored in the DRAM.
Metadata frames (e.g., metadata frame 1 and metadata frame 2) are recorded in the log area. Metadata frame 1 and metadata frame 2 may belong to the same metadata stream or different metadata streams. The log area also records log frames (log frame 1 and log frame 2). By way of example, in fig. 3, log frame 2 is a log frame generated after log frame 1. The log frame belongs to one of the metadata streams.
By way of example, metadata frame 1 corresponds to metadata frame 2 for the metadata portion indicated by shading within the DRAM in fig. 3; and log frame 1 and log frame 2 correspond to the metadata log in fig. 3. Thus, the metadata part indicated by the shading in fig. 3 can be reconstructed through the metadata frame 1 and the metadata frame 2, and then the update indicated by the log frame 1 and the log frame 2 is applied to the metadata part indicated by the shading, so as to obtain a result after the metadata part indicated by the shading is updated.
In the log area, log frames belonging to the same metadata stream are organized into a list, and log frames belonging to the same metadata stream are also organized into a linked list. In the example of fig. 2, the start page of the NVM storage medium stores the head and/or tail addresses of the linked list of metadata frames of the respective metadata streams in the log area. The start page of the NVM storage medium also stores the head address and/or tail address of the linked list of log frames of the respective metadata streams in the log area.
Alternatively, a valid memory location (physical address in the NAND flash) is stored in the NOR flash. When the solid state disk is powered on, the controller acquires the address of the effective super page from the NOR flash memory, acquires the effective super page from the NVM storage medium according to the address, and rebuilds metadata according to the metadata frame address and/or the log frame address indicated by the super page.
FIG. 3 illustrates a data organization of log blocks of a log area according to an embodiment of the present application. The storage space of the log area is from one or more log blocks. The log block includes physical blocks from each of a plurality of Logical Units (LUNs) (also referred to as logical unit groups). Each logical unit may provide one physical block for a log block. For example, in the schematic diagram of the log block shown in fig. 3, the log block is constructed on every 16 Logical Units (LUNs). Each log block includes 16 physical blocks from 16 Logical Units (LUNs), respectively. In the example of FIG. 3, log block 0 includes physical block 0 from each of the 16 Logical Units (LUNs), while log block 1 includes physical block 1 from each Logical Unit (LUNs). Log blocks may also be constructed in a variety of other ways.
According to the embodiment of FIG. 3, page stripes are constructed in log blocks, and physical pages of the same physical address in each Logical Unit (LUN) constitute a "page stripe". In FIG. 3, physical pages P0-0, physical pages P0-1 … …, and physical pages P0-x constitute page stripe 0. In one example, physical pages P0-0, P0-1, … … physical pages P0-14 are used to store metadata streams, while physical pages P0-x are used to store parity data calculated from all metadata streams within a stripe. In yet another example, physical pages P0-0, physical pages P0-1 and … … physical pages P0-15 are all used to store metadata streams.
Similarly, in FIG. 3, physical pages P2-0, P2-1 … …, and P2-x constitute page stripe 2. As yet another example, in FIG. 3A of the China patent application No. 201710752321.0 and the related description of FIG. 3A in its specification, a large block of construction is provided that may also be used to construct metadata blocks.
Referring back to FIG. 2, the super page records the storage locations of the head node and/or tail node of the metadata frame/log frame linked list of one or more metadata streams in the log block of FIG. 3.
According to embodiments of the present application, log block metadata is also stored at specified locations of log blocks. Referring to FIG. 3, the physical page P1-0 provided by LUN 0 of log block 0 stores log block metadata 0, and the physical page P1-0 provided by LUN 0 of log block 1 stores log block metadata 1. The log block metadata records a time stamp or sequence number of the log block being updated, so that the order in which the plurality of log blocks are updated (the order by the time stamp or sequence number of the log block metadata) can be identified according to the log block metadata. The log block metadata also records a bad block table of the log block in which it resides to indicate which physical blocks and/or which physical pages are available or unavailable in the log block. The log block metadata also records the storage locations of the head node and/or tail node of the metadata frame/log frame linked list of one or more metadata streams recorded in the log block.
For example, log block metadata 0 records the storage locations of the head node and/or tail node of the metadata frame/log frame linked list of one or more metadata streams recorded in log block 0. Log block metadata 1 records the storage locations of the head node and/or tail node of the metadata frame/log frame linked list of one or more metadata streams recorded in log block 1. If the storage positions of the head node and/or the tail node of the same metadata stream are recorded in the log block metadata 0 and the log block metadata 1, determining which storage position of the head node and/or the tail node of the metadata stream recorded in the log block metadata is adopted according to the time stamp or the sequence number recorded in the log block metadata 0 and the log block metadata 1. For example, a selection timestamp or sequence number indicates that it is recorded later. Thus, even if the super page is damaged, the storage positions of the head node and/or the tail node of the metadata frame/log frame linked list of all metadata streams recorded in the log area can be obtained from the log block metadata of all log blocks in the log area, and then all metadata streams are read from the log area and the metadata is reconstructed.
In an alternative embodiment, the bad block table and/or the good block table of the log block are recorded in the log block metadata, and the storage locations of the head node and/or the tail node of the metadata frame/log frame linked list of the metadata stream are not recorded. The metadata frames/log frames stored in the log blocks also record whether or not they are head nodes and/or tail nodes of the metadata frames/log frame linked list, and the storage locations of their predecessor and/or successor nodes in the linked list in the log area. To read the metadata stream, the log block metadata for each log block is scanned to obtain all available physical blocks/physical pages of the log block. And scanning all available physical blocks/physical pages of the log block again to obtain storage positions of head nodes and/or tail nodes of metadata frames/log frame linked lists of one or more metadata streams recorded in the log block.
FIG. 4 illustrates a data organization of a solid-state storage device according to yet another embodiment of the present application. The storage space of the log area is from one or more log blocks. The log block includes physical blocks from each of a plurality of Logical Units (LUNs) (also referred to as logical unit groups). Each LUN includes 4 planes, denoted Plane 0, plane 1, plane 2, and Plane, respectively. Each plane includes a plurality of physical blocks. In FIG. 4, each logical unit may provide log blocks with at most as many physical blocks as there are planes (each plane of a LUN provides a physical block for a log block). For example, in the schematic diagram of the log block shown in fig. 4, the log block is constructed on every 4 Logical Units (LUNs). Each log block includes 16 physical blocks from 4 Logical Units (LUNs). Each LUN provides 4 physical blocks for log blocks. Alternatively, the 4 physical blocks are each from each of the 4 planes belonging to the LUN, and have the same physical block number. In the example of FIG. 4, log block 0 includes 4 planar physical blocks B1 from each of the 4 Logical Units (LUNs), while log block 1 includes 4 planar physical blocks B2 from each of the Logical Units (LUNs), log block 2 includes 4 planar physical blocks B3 from each of the Logical Units (LUNs). In fig. 4, the reference numeral "block B1" indicates a physical block B1 of plane 0 in combination with "plane 0", and "block B1" indicates a physical block B1 of plane 1 in combination with "plane 1". Similarly, "block B2" is associated with "plane 3" to indicate the physical block B2 provided by plane 3.
In the embodiment according to fig. 4, superblock 0 comprises 4 planar physical blocks B0 from each of the 4 Logical Units (LUNs). Super block 0 stores super pages.
The specified location of the log block stores log block metadata. By way of example, log block metadata records a timestamp or sequence number of the log block being updated. Optionally, the log block metadata records bad block tables and/or good block tables of the log block in which it resides. Still optionally, the log block metadata also records storage locations of head nodes and/or tail nodes of a metadata frame/log frame linked list of one or more metadata streams recorded in the log block. Thus, even if the super page is damaged, the storage positions of the head node and/or the tail node of the metadata frame/log frame linked list of all metadata streams recorded in the log area can be obtained from the log block metadata of all log blocks in the log area, and then all metadata streams are read from the log area and the metadata is reconstructed.
Fig. 5A-5D are schematic diagrams of data organization of log areas according to embodiments of the present application. Wherein the combination of the reference number "M" and a number indicates the physical block storing the log frame/metadata frame, the number indicates the sequence number and implies the position of the stored content in the metadata stream. The combination of the reference numeral "MM" and a number indicates log block metadata. In fig. 5A to 5D, physical blocks are arranged in the physical block address order in the vertical direction, and physical blocks located in the same row have the same physical block address. And each LUN includes 4 planes; while log blocks are constructed from physical blocks from 4 LUNs.
Referring to fig. 5A, a log frame and/or a metadata frame of a metadata stream are sequentially recorded into respective physical blocks of a log block. For example, physical blocks of each plane 0 of LUN0 ordered by plane number are written first, followed by physical blocks of each plane 0 of LUN 1 ordered by plane number. When all physical blocks 0 of LUNs 0 through 3 are written with data, physical block 1 of each plane of LUNs 0 ordered by plane number is rewritten. If a bad block is encountered, the bad block is skipped (no data is written to the bad block) and the log frame and/or metadata frame of the metadata stream is written to the next physical block. Thus, even if the log block has bad blocks, all log frames and/or metadata frames in the log block can be sequentially read out according to the bad block table of the log block.
According to the embodiment shown in fig. 5B, multiple (e.g., at least 3) copies of the metadata stream are stored in the log area. In each log block, multiple copies of portions of the metadata stream (log frames and/or metadata frames) are stored. In physical blocks of the log block from each LUN having the same numbered plane, the same portion of the metadata stream is stored. For example, the same portion (M0) of the metadata stream is stored in 4 physical blocks provided for log block 0 in plane 0 of LUN 0-LUN 3. The same part (M1) of the metadata stream is stored in 4 physical blocks provided for the log block in plane 1 of LUN0 to LUN 3. Thus, the parts (M1, M2, M3, and M4) of the metadata stream all store 4 copies in the log block, thereby improving the reliability with which the metadata stream is stored. The same part (M0) of the metadata stream is stored in 4 physical blocks provided for log block 0 in plane 0 of LUN0 to LUN 3.
Further, the log frame and/or metadata frame, with any copy thereof, is not stored in the same LUN. So that even if a single LUN fails, the log block still stores a sufficient number of copies for the log frame and/or metadata frame to ensure reliability.
As yet another example, plane 1 and plane 3 of LUN 0 provide physical blocks for log block 1 that are bad blocks (bad block 0 and bad block 1). In the physical blocks of log block 1 from the same numbered planes of each LUN, the same parts of the metadata stream (M4, M5, M6, and M7) are stored. For bad blocks, no part of the metadata stream is stored therein.
As yet another example, plane 1 of LUN 0 and plane 0 of LUN 1 provide physical blocks for log block 2 that are bad blocks (bad block 2 and bad block 3). In the physical blocks of log block 2 from the same numbered planes of each LUN, the same parts of the metadata stream (M8, M9, M10 and M11) are stored. For bad blocks, no part of the metadata stream is stored therein.
Further, if a plurality (e.g., at least 2) of physical blocks, among the physical blocks of the log block provided by the planes having the specified numbers from the respective LUNs, are bad blocks, the log block is discarded without writing the metadata stream thereto. For example, in FIG. 5B, the physical blocks provided by plane 2 of LUN 1 and LUN 2 for log block 3 are bad blocks, where the log block 3 is discarded entirely and no metadata stream is recorded therein. To ensure that a sufficient number of copies are accommodated in the log blocks being used.
According to the embodiment shown in fig. 5C, multiple (e.g., at least 3) copies of the metadata stream are stored in the log area. In each log block, multiple copies of portions of the metadata stream (log frames and/or metadata frames) are stored. For example, the log block includes physical blocks provided by each of the 4 planes of LUN 0 through LUN 3. For log block 3, there are no bad physical blocks. The metadata stream portions made up of M0, M1, M2, and M3 are written sequentially into log block 3, and the storage space provided by each LUN for log block 3 stores the same portions (M0, M1, M2, and M3) of the metadata stream.
For log block 4, there are bad blocks (bad block 0, bad block 1, and bad block 2) in the physical blocks provided by each LUN for log block 4. The log block 4 is used to record parts (M4, M5, M6 and M7) of the metadata stream. The metadata streams are placed in the log block 4 in the order of M4, M5, M6 and M7. If a bad block is encountered, it is skipped and the metadata stream is placed in the next physical block of log block 4. Thus, M4, M5 are recorded in LUN 0, and M6 and M7 are recorded in LUN 1. While other copies of M4, M5, M6, and M7 are recorded in LUN 1, LUN 2, and LUN 3. Optionally, after 3 copies of the parts (M4, M5, M6, and M7) of the metadata stream are recorded in log block 4, there is remaining storage space (physical blocks of LUN 3 provided by plane 3 for log block 4). The data stream portion (M4) may be written to the remaining memory space. Other data may also be filled into the remaining storage space.
Alternatively, the sizes of the metadata stream portions (M4, M5, M6, and M7) written to the log block 4 are known, and the distribution positions of the data stream portions (M4, M5, M6, and M7) in the log block 4 can be obtained from the bad block table of the log block 4. Thus, when writing the metadata stream portion (M4), it may be determined that M4 is to be written to plane 0 of LUN 0, plane 3 of LUN 1, plane 3 of LUN 2, and optionally plane 3 of LUN 3 of log block 4; m4 is written to these storage locations in parallel. Still alternatively, the metadata stream portions may be written by the distribution of M4, M5, M6, or M7 across the log block 4, thereby determining the data to be written by each LUN of the log block (for LUN 0, M4 and M5 are written; for LUN 1, M6, M7, and M4 are written), thereby writing data to the various planes within the LUN in parallel.
According to the embodiment of FIG. 5C, the physical blocks of the log blocks are ordered. For example, the LUN numbers and the plane numbers where the physical blocks are located are ordered in the order of each other. And the portions of the metadata stream to be recorded in the log block (e.g., M4, M5, M6, and M7) are also ordered. Portions of the metadata stream (and their copies) are assigned to individual physical blocks of the log blocks (and bypass bad blocks) in order. Or each physical block of the log block (skip bad block) is assigned to a portion of the metadata stream (and its copy) in order.
Still referring to FIG. 5C, log block 5 includes 4 bad blocks and 3 copies of portions (M8, M9, M10, and M11) of the metadata stream are recorded.
Alternatively, if the number of bad blocks in a log block is too large to accommodate 3 copies of the portion of the metadata stream, the log block is discarded (the metadata stream is not recorded therein).
According to the embodiment shown in fig. 5D, multiple (e.g., at least 3) copies of the metadata stream are stored in the log area. In each log block, multiple copies of portions of the metadata stream (log frames and/or metadata frames) are stored. One or more copies of log block metadata are also stored at specified locations of the log blocks.
For example, for log block 6, there are no bad physical blocks. The metadata stream portion composed of M0, M1, M2, and M3 is sequentially written to the log block 6, and the log block metadata MM0 of the log block 6 is written to the log block 6. And M0, M1, M2, and M3 are ordered, and log block metadata MM0 and M0, M1, M2, and M3 are also ordered in a specified order. The log block 6 stores therein a plurality of copies of the metadata stream portion and also stores therein a plurality of copies of the log block metadata MM 0. Alternatively, log block metadata MM0 need not occupy the entire physical block, and log block metadata MM0 may occupy the same physical block as the portion of the metadata stream. For the log block 7, the log block metadata MM1 is set at the first physical block of the log block 7, and the metadata stream portions (M4, M5, M6, and M7) are sequentially set at the other physical blocks of the log block 7. For log block 8, since there are 4 bad blocks thereon, to ensure that the metadata stream portions (M8, M9, M10) have a sufficient number (e.g., 3) of copies on log block 8, the size of the metadata stream portions placed on log block 8 is reduced. And the log block metadata MM2 is placed on the first good block after the skip bad block of the log block 8.
FIG. 6 is a flow chart of storing metadata streams in a log area according to an embodiment of the present application.
In operation of the solid state storage device, or prior to shutdown of the solid state storage device, one or more metadata streams of the solid state storage device are stored to the log area. The flow according to fig. 6 is implemented, for example, by the CPU of the control part (see fig. 2, control part) of the solid-state storage device.
The control component obtains available log blocks from the log area based on the bad block table and determines a placement location of the metadata stream on the log blocks (610). Further, placement locations of multiple copies of the metadata stream on the log block are also determined. For example, FIGS. 5A-5D illustrate the placement of various metadata streams on log blocks. Optionally, the placement of the metadata stream on the log block is resolvable, so that the placement of the metadata stream can be obtained without using an address mapping device such as FTL table, so that the placement of the metadata stream on the log block can be determined and read out from the log block by knowing the bad block table of the log block. Still alternatively, the storage location of each of the plurality of copies of the log stream in the log block is determined from a bad block table of the log block. For example, referring to FIG. 5A, the same copy of the metadata stream is stored in physical blocks of the log block having the same plane number; while physical blocks of log blocks having different plane numbers store different copies of the log stream. For another example, referring to FIG. 5B, physical blocks of a log block are provided with a specified order, the same copy of the metadata stream is placed in order among multiple physical blocks of the log block, and a specified number of available physical blocks (non-bad blocks) are spaced between the two physical blocks. For another example, referring to fig. 5D, the size of the metadata stream (the number of occupied physical blocks) stored in a log block is also determined according to the number of available physical blocks of the log block, the same copy of the metadata stream is placed in order among a plurality of physical blocks of the log block, and a specified number of available physical blocks (non-bad blocks) are spaced between the two physical blocks (the determined number of occupied physical blocks).
For example, the metadata stream is acquired (620) by a CPU of a control section (see fig. 2) of the solid-state storage device. Optionally, the metadata stream has one or more, the control component further distinguishes the one or more metadata streams to organize and identify metadata frames and/or log frames belonging to the same metadata stream such that metadata is reconstructed from metadata frames and/or log frames read from the log area. By way of example, the means for generating and/or using metadata generates a metadata stream and provides it to the control component that obtains the metadata stream.
The control component obtains metadata of a specified size (e.g., 4 KB) from the metadata stream, generating metadata frames (630). Optionally, the control unit further records, in the metadata frame, a metadata stream to which the metadata frame belongs, and an address in the log area of a previous (and/or next) metadata frame that belongs to the same metadata stream as the metadata frame, and whether the metadata frame belongs to a first metadata frame or a last metadata frame of the metadata stream.
Optionally, some metadata streams further include an update log. The control component obtains an update log of a specified size (e.g., 4 KB) from the metadata stream, generating a log frame (640). Optionally, the control unit further records, in the log frame, a metadata stream to which the log frame belongs, and an address in the log area of a previous (and/or a next) log frame that belongs to the same metadata stream as the log frame, and whether the log frame belongs to a first log frame or a last log frame of the metadata stream.
The control component stores the metadata frame and optionally the log frame in a specified location of the log block (650), and also records log block metadata in the specified location of the log block (660).
Optionally, the control component further updates the superpage after recording the one or more metadata streams to the log area of the solid state storage device, and records the bad block table of the log area in the superpage with the storage location of the first and/or last metadata frame (and optionally the log frame) of the one or more metadata streams in the log area.
FIG. 7 illustrates a flowchart of a solid state storage device powering up according to an embodiment of the present application.
In response to the solid state storage device powering up or being instructed to boot (710), the control component (see also FIG. 2) first attempts to read the super page from the specified address of the NVM storage medium (720). If the superpage is available, the superpage is read to obtain addresses of one or more metadata streams recorded in the log area (730). For example, the superpage records the head node address and/or the tail node address of the metadata frame link list for each metadata stream (and its copy). Reading the head node or the tail node, and further acquiring other nodes of the metadata frame linked list until the complete metadata frame linked list is read. Metadata is reconstructed from the read metadata stream (740). Optionally, the metadata stream further comprises a log frame. The super page also records the head node address and/or the tail node address of the log frame linked list of each metadata stream (and its copy), further reads out the complete log frame linked list, and rebuilds metadata according to the read-out metadata frame and log frame.
If the superpage is not available, the control component scans one or more log blocks of the log area, obtains log block metadata for each log block from the log block metadata (750), and determines a storage address of one or more log streams in the log block based on the log block metadata (760). And reading out the metadata stream from the log block and reconstructing the metadata (770).
In one example, only bad block tables are read from log block metadata of log blocks, each available physical block of the log blocks is scanned according to the bad block tables, metadata frames and/or log frames are derived from the physical blocks, and metadata frames and/or log frames belonging to head nodes and/or tail nodes of a linked list of metadata streams are identified. And for multiple log blocks, it is possible to identify head nodes and/or tail nodes from multiple linked lists of the same metadata stream. In this case, the latest log block of the plurality of log blocks is obtained from the time stamp or sequence number recorded in the log block metadata, and the head node and/or the tail node of the linked list of the metadata stream recorded by the latest log block is valid.
In yet another example, only the head node and/or tail node of a linked list of one or more metadata streams recorded by a log block are read from the log block metadata of the log block and the data is reconstructed accordingly. And for multiple log blocks, it is possible to identify head nodes and/or tail nodes from multiple linked lists of the same metadata stream. In this case, the latest log block of the plurality of log blocks is obtained from the time stamp or sequence number recorded in the log block metadata, and the head node and/or the tail node of the linked list of the metadata stream recorded by the latest log block is valid.
There is further provided in accordance with an embodiment of the present application a solid state storage device including a controller and a non-volatile memory chip, wherein the controller performs any one of the processing methods provided in the embodiments of the present application.
There is also provided, in accordance with an embodiment of the present application, a program stored on a readable medium, which when executed by a controller of a solid state storage device, causes the solid state storage device to perform any one of the processing methods provided in accordance with the embodiments of the present application.
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 in the present application without departing from the spirit or scope of the application. Thus, if such modifications and variations of the present application fall within the scope of the claims and the equivalents thereof, the present application is intended to cover such modifications and variations.

Claims (26)

1. A method for a storage device, comprising:
Acquiring available log blocks from a log area according to a bad block table, determining storage positions of metadata streams stored in the available log blocks, and reading the metadata streams from the available log blocks; wherein the bad block table is used to indicate that physical blocks and/or physical pages in the log block are available or unavailable;
metadata is acquired from the metadata stream to generate metadata frames, and the metadata frames are written into the storage positions.
2. The method of claim 1, further recording in the metadata frame the storage locations of the own predecessor and/or successor nodes in the metadata link table in the log area.
3. The method of claim 1, obtaining a log from the metadata stream indicating updates to the metadata and generating a log frame, writing the log frame to the storage location.
4. A method according to claim 3, further recording in the log frame the storage locations in the log area of the own predecessor and/or successor nodes in the log frame linked list.
5. The method of claim 1, recording in a superpage of a storage device a storage location in a log block of a head node and/or a tail node of a log frame linked list and/or metadata frames of one or more metadata streams.
6. The method of claim 1, wherein the log area of the storage device comprises one or more log blocks, the designated locations of the log blocks store log block metadata, and the log block metadata records a bad block table of the log block in which the log block metadata is located; and/or the log block metadata records the storage positions of metadata frames of one or more metadata streams in the log block and/or the head node and/or the tail node of the log frame linked list.
7. The method of claim 1, wherein in the log area, log frames belonging to the same metadata stream are organized into a log frame linked list, and metadata frames belonging to the same metadata stream are organized into a metadata linked list.
8. The method of claim 6, storing one or more copies of the metadata stream in a log area.
9. The method of claim 8, wherein each physical block in the log block is ordered by the order of logical unit number and plane number in which the physical block is located, and the portion of the metadata stream to be recorded in the log block is also ordered, and the metadata stream and its copy are sequentially allocated to each available physical block of the log block.
10. The method of claim 1, wherein each physical block in the log block is ordered in the order of logical unit number and plane number in which the physical block is located, and the portion of the metadata stream to be recorded in the log block and its copy are also ordered, and each available physical block in the log block is assigned to the portion of the metadata stream and its copy in order.
11. The method according to claim 9 or 10, the multiple copies of the log frame and/or metadata frame being stored in physical blocks of the log block from each of the multiple planes having the same physical block address, respectively.
12. The method of claim 8, wherein the plurality of copies of the log frame and/or metadata frame are stored in first and second physical blocks of the log block, respectively, wherein the first and second physical blocks are available physical blocks and are adjacent physical blocks of the log block according to an ordering of the physical blocks.
13. The method of claim 12, wherein the physical blocks in the log block are ordered by logical unit number and plane number in which the physical blocks are located.
14. The method of claim 13, wherein the first physical block and the second physical block have the same physical block address.
15. The method of claim 14, the content stored in the metadata frame comprising: the metadata frame belongs to the metadata stream, and the address of the previous and/or subsequent metadata frames belonging to the same metadata stream as the metadata frame in the log area is the same as the metadata frame, and whether the metadata frame belongs to the first metadata frame or the last metadata frame of the metadata stream.
16. The method of claim 15, further comprising, after recording the one or more metadata streams to the log area: updating the super page, recording a bad block table of the log area in the super page, and storing the first and/or last metadata frame of the one or more metadata streams and the log frame in the log area.
17. A method for a storage device, comprising:
reading the super page from the specified address of the NVM storage medium;
if the super page is available, reading the super page to acquire addresses of one or more metadata streams recorded in the log area, and reconstructing metadata according to the read metadata streams;
if the superpage is not available, one or more log blocks of the log area are scanned, the storage addresses of one or more log streams in the log blocks are determined from the log block metadata, the metadata streams are read from the log blocks, and the metadata is reconstructed.
18. The method of claim 17, wherein the superpages record head node addresses and/or tail node addresses of metadata frame links for each metadata stream and its copy.
19. The method of claim 18, wherein the superpage further records a bad block table for each log block of the log area.
20. The method of claim 18, further comprising:
and acquiring other nodes of the metadata frame linked list according to the read head node or the read tail node until the complete metadata frame linked list is read.
21. The method of claim 17, wherein if different storage locations of a head node and/or a tail node of the same metadata stream are recorded in the plurality of log block metadata, determining that the storage locations of the head node and/or the tail node of the metadata stream recorded in one of the plurality of log block metadata are valid according to a time stamp or a sequence number of the plurality of log block metadata records.
22. The method of claim 17, wherein a bad block table is read from the log block metadata of the log blocks, each available physical block of the log blocks is scanned according to the bad block table, metadata frames and/or log frames are derived from the physical blocks, and metadata frames and/or log frames belonging to a head node and/or a tail node of a linked list of metadata streams are identified, and the metadata is reconstructed therefrom.
23. The method of claim 22, obtaining a copy of the metadata frame and/or the log frame from available physical blocks of the log block in response to the metadata frame and/or the log frame being corrupted.
24. The method of claim 23, wherein the copies of the metadata frames and/or the log frames are recorded in physical blocks adjacent to physical blocks storing the metadata frames and/or the log frames, wherein the physical blocks in the log blocks are ordered in the order of logical unit number and plane number in which the physical blocks are located.
25. The method of claim 23, wherein copies of metadata frames and/or log frames are stored with metadata frames and/or log frames in storage locations of the same logical unit having different plane numbers with the same physical address.
26. A memory device, comprising:
A memory controller and an NVM storage medium; the NVM storage medium includes a super page, a log area, and a user data area;
the controller performs the method of claims 1 to 25.
CN201711456111.3A 2017-12-28 2017-12-28 Log data organization for solid state storage devices Active CN109976664B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711456111.3A CN109976664B (en) 2017-12-28 2017-12-28 Log data organization for solid state storage devices

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711456111.3A CN109976664B (en) 2017-12-28 2017-12-28 Log data organization for solid state storage devices

Publications (2)

Publication Number Publication Date
CN109976664A CN109976664A (en) 2019-07-05
CN109976664B true CN109976664B (en) 2024-01-19

Family

ID=67074268

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711456111.3A Active CN109976664B (en) 2017-12-28 2017-12-28 Log data organization for solid state storage devices

Country Status (1)

Country Link
CN (1) CN109976664B (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113448877A (en) * 2020-03-26 2021-09-28 伊姆西Ip控股有限责任公司 Method, apparatus and computer program for data storage
CN112035410B (en) * 2020-08-18 2023-08-18 腾讯科技(深圳)有限公司 Log storage method, device, node equipment and storage medium
CN113709131B (en) * 2021-08-22 2024-01-09 山东云海国创云计算装备产业创新中心有限公司 Network data transmission method, device, computer equipment and readable medium
CN117251386A (en) * 2023-11-20 2023-12-19 西安图为电气技术有限公司 Log management method of embedded system and embedded system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9489296B1 (en) * 2012-10-17 2016-11-08 Western Digital Technologies, Inc. Methods, devices and systems for hardware-based garbage collection in solid state drives
CN106354615A (en) * 2015-07-21 2017-01-25 北京忆恒创源科技有限公司 Solid state disk log generating method and device

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101790165B1 (en) * 2011-08-09 2017-11-20 삼성전자 주식회사 Memory system and meta data managing method thereof
US9164887B2 (en) * 2011-12-05 2015-10-20 Industrial Technology Research Institute Power-failure recovery device and method for flash memory

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9489296B1 (en) * 2012-10-17 2016-11-08 Western Digital Technologies, Inc. Methods, devices and systems for hardware-based garbage collection in solid state drives
CN106354615A (en) * 2015-07-21 2017-01-25 北京忆恒创源科技有限公司 Solid state disk log generating method and device

Also Published As

Publication number Publication date
CN109976664A (en) 2019-07-05

Similar Documents

Publication Publication Date Title
US9886383B2 (en) Self-journaling and hierarchical consistency for non-volatile storage
CN106448737B (en) Method and device for reading flash memory data and solid state drive
TWI645404B (en) Data storage device and control method for non-volatile memory
CN106354615B (en) Solid state disk log generation method and device
CN109976664B (en) Log data organization for solid state storage devices
US8341336B2 (en) Region-based management method of non-volatile memory
EP2920697A1 (en) Methods, data storage devices and systems for fragmented firmware table rebuild in a solid state drive
KR20110107857A (en) Solid state memory formatting
US20110320689A1 (en) Data Storage Devices and Data Management Methods for Processing Mapping Tables
JP4460967B2 (en) MEMORY CARD, NONVOLATILE SEMICONDUCTOR MEMORY, AND SEMICONDUCTOR MEMORY CONTROL METHOD
KR20210028729A (en) Logical vs. physical table fragments
CN107807788B (en) Block strip construction method and device and solid-state storage equipment
CN110554833B (en) Parallel processing IO commands in a memory device
WO2020103468A1 (en) Flash memory-based information garbage processing method, solid state disk, and storage device
CN108628762B (en) Solid-state storage device and IO command processing method thereof
CN108614671B (en) Key-data access method based on namespace and solid-state storage device
CN107808686B (en) Read error test method and device
CN110865945B (en) Extended address space for memory devices
CN112148626A (en) Storage method and storage device for compressed data
CN109815157B (en) Programming command processing method and device
CN112181274A (en) Large block organization method for improving performance stability of storage device and storage device thereof
WO2019148757A1 (en) Non-volatile random access memory and method for providing same
CN112115065A (en) Unified address space for memory devices
CN110928482A (en) Partial page stripes and memory devices using the same and methods thereof
US20240143219A1 (en) Software-hardware combination method for internal mapping address query of zoned namespace

Legal Events

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

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

Applicant after: Beijing yihengchuangyuan Technology Co.,Ltd.

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

Applicant before: BEIJING MEMBLAZE TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant