CN117406933B - Solid state disk data processing method and device, electronic equipment and storage medium - Google Patents
Solid state disk data processing method and device, electronic equipment and storage medium Download PDFInfo
- Publication number
- CN117406933B CN117406933B CN202311699841.1A CN202311699841A CN117406933B CN 117406933 B CN117406933 B CN 117406933B CN 202311699841 A CN202311699841 A CN 202311699841A CN 117406933 B CN117406933 B CN 117406933B
- Authority
- CN
- China
- Prior art keywords
- data
- address
- range
- area
- data area
- 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
Links
- 239000007787 solid Substances 0.000 title claims abstract description 74
- 238000003672 processing method Methods 0.000 title claims abstract description 15
- 238000000034 method Methods 0.000 claims abstract description 59
- 238000005192 partition Methods 0.000 claims abstract description 37
- 230000001680 brushing effect Effects 0.000 claims description 89
- 238000011010 flushing procedure Methods 0.000 abstract description 27
- 230000008569 process Effects 0.000 abstract description 9
- 238000010586 diagram Methods 0.000 description 17
- 238000013403 standard screening design Methods 0.000 description 12
- 230000008859 change Effects 0.000 description 8
- 238000012005 ligant binding assay Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000003321 amplification Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000003199 nucleic acid amplification method Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
The application provides a solid state disk data processing method and device, electronic equipment and a storage medium, and relates to the technical field of solid state disks. According to the method, random overwriting of data is performed based on a ZRWA partition random writing area in a partition naming space solid state disk, data written in the ZRWA area is explicitly flushed based on a data flushing instruction while the data is written, in the execution process of the explicit flushing, the position of a writing pointer is updated to form a to-be-flushed area, so that the data in a specified flushing range in the ZRWA area is updated to the to-be-flushed area, the data in the specified flushing range in the ZRWA area is marked as to-be-flushed data, and then the to-be-flushed data can be flushed into a flash memory according to the flushing instruction. Therefore, the scene requirements of multi-concurrent writing and random overwriting are met, and the data written into the ZRWA area can be accurately and sequentially written into the flash memory.
Description
Technical Field
The application relates to the technical field of solid state disks, in particular to a solid state disk data processing method, a solid state disk data processing device, electronic equipment and a storage medium.
Background
Partition naming space (abbreviated as ZNS) solid state disk (Solid State Drive, abbreviated as SSD) is widely used in data storage because of its advantages of reducing write amplification, improving service life of the solid state disk, reducing OP (Over-Provisioning) space requirement, reducing DRAM (Dynamic Random Access Memory) requirement, etc.
At present, when the ZNS SSD writes data, sequential writing in each Zone (Zone) is strictly required, and the scene requirements of multiple concurrent writing and local random overwriting in a specified space cannot be met, so that the application scene of the ZNS SSD is single.
Disclosure of Invention
The application aims at overcoming the defects in the prior art, and provides a solid state disk data processing method, device, electronic equipment and storage medium, so that random data overwriting and sequential data downloading of written data in a partition naming space solid state disk can be realized.
In order to achieve the above purpose, the technical solution adopted in the embodiment of the present application is as follows:
in a first aspect, an embodiment of the present application provides a method for processing data of a solid state disk, where the method is applied to a partition namespace solid state disk, and the partition namespace solid state disk includes: a first data area; the start address of the first data area coincides with the address of the write pointer; the method comprises the following steps:
Receiving a first data brushing instruction, and determining a first data brushing range corresponding to the first data area according to the first data brushing instruction;
updating the position of the write pointer according to the first data brushing range;
and updating the swipe identifier of the data in the address range between the starting address and the write pointer in the first data area according to the updated position of the write pointer.
Optionally, the partition namespace solid state disk further includes: a second data area, a start address of the second data area coinciding with a stop address of the first data area; the method further comprises the steps of:
determining the length of a second data brushing range according to the address of the data written in the second data area;
updating the position of the write pointer according to the length of the second data brushing range and the initial position of the first data area;
and updating the swipe identifier of the data in the address range between the starting address and the write pointer in the first data area according to the updated position of the write pointer.
Optionally, the method further comprises: and updating the address range of the first data area according to the updated position of the write pointer and the area length of the first data area.
Optionally, the determining, according to the first data swiping instruction, a first data swiping range corresponding to the first data area includes:
and determining the first data brushing range as the starting address to the target address according to the target address in the first data area and the starting address of the first data area indicated in the first data brushing instruction.
Optionally, the determining the length of the second data swipe range includes:
detecting a data write operation in the second data region;
and determining the length of the second data downshifting range according to the address of the data written in the second data area and the starting address of the second data area.
Optionally, before receiving the first data swipe command, the method further includes:
and writing new data into a designated address range in the first data area according to a data writing request, generating an effective address range of the new data, and updating the effective address range of old data in the designated address range.
Optionally, the updating the swipe identifier of the data in the address range between the start address and the write pointer in the first data area includes:
Judging whether empty data exists in an address range between the starting address and the write pointer in the first data area;
if so, filling the empty data into a preset value, and updating a swipe identification of the data in an address range between the starting address and the write pointer to be swiped.
Optionally, the method further comprises:
receiving a second data brushing instruction, wherein the second data brushing instruction is used for indicating to brush the data in the target address range into the flash memory; the second data swipe down instruction includes: a target address range;
and adjusting the position of each data to be brushed according to the address information of the target data and the effective address range of each data to be brushed, and brushing the data in the target address range into the flash memory in sequence based on the adjusted position.
In a second aspect, an embodiment of the present application further provides a solid state disk data processing device, which is applied to a partition namespace solid state disk, where the partition namespace solid state disk includes: a first data area; the start address of the first data area coincides with the address of the write pointer; the apparatus may include: a determining module and an updating module;
The determining module is used for receiving a first data brushing instruction and determining a first data brushing range corresponding to the first data area according to the first data brushing instruction;
the updating module is used for updating the position of the write pointer according to the first data brushing range;
the updating module is configured to update a swipe identifier of data in an address range between the start address and the write pointer in the first data area according to the updated position of the write pointer.
Optionally, the partition namespace solid state disk further includes: a second data area, a start address of the second data area coinciding with a stop address of the first data area;
the determining module is further configured to determine a length of a second data brushing range according to an address of the data written in the second data area;
the updating module is further configured to update the position of the write pointer according to the length of the second data brushing range and the starting position of the first data area;
the updating module is further configured to update a swipe identifier of data in an address range between the start address and the write pointer in the first data area according to the updated position of the write pointer.
Optionally, the updating module is further configured to update the address range of the first data area according to the updated position of the write pointer and the area length of the first data area.
Optionally, the determining module is specifically configured to determine, according to a target address in the first data area indicated in the first data swipe instruction and a start address of the first data area, that the first data swipe range is from the start address to the target address.
Optionally, the determining module is specifically configured to detect a data write operation in the second data area;
and determining the length of the second data downshifting range according to the address of the data written in the second data area and the starting address of the second data area.
Optionally, the method further comprises: a write module;
the writing module is used for writing new data into the appointed address range in the first data area according to the data writing request, generating an effective address range of the new data, and updating the effective address range of the old data in the appointed address range.
Optionally, the updating module is specifically configured to determine whether there is null data in an address range between the start address and the write pointer in the first data area;
If so, filling the empty data into a preset value, and updating a swipe identification of the data in an address range between the starting address and the write pointer to be swiped.
Optionally, the method further comprises: a lower brush module;
the data downloading module is used for receiving a second data downloading instruction, and the second data downloading instruction is used for indicating to download the data in the target address range into the flash memory; the second data swipe down instruction includes: a target address range;
and adjusting the position of each data to be brushed according to the address information of the target data and the effective address range of each data to be brushed, and brushing the data in the target address range into the flash memory in sequence based on the adjusted position.
In a third aspect, an embodiment of the present application provides an electronic device, including: the system comprises a processor, a storage medium and a bus, wherein the storage medium stores machine-readable instructions executable by the processor, when the electronic device runs, the processor and the storage medium are communicated through the bus, and the processor executes the machine-readable instructions to realize the solid state disk data processing method as provided in the first aspect.
In a fourth aspect, embodiments of the present application provide a computer readable storage medium having a computer program stored thereon, which when executed by a processor performs the solid state disk data processing method as provided in the first aspect.
The beneficial effects of this application are:
the application provides a solid state disk data processing method, device, electronic equipment and storage medium, wherein random overwriting of data is performed based on a ZRWA partition random writing area in a partition naming space solid state disk, data written in the ZRWA area is explicitly flushed based on a data flushing instruction while data writing is performed, in the execution process of the explicit flushing, a to-be-flushed area is formed by updating the position of a writing pointer, so that data in a designated flushing range in the ZRWA area is updated into the to-be-flushed area, the data in the designated flushing range in the ZRWA area is marked as to-be-flushed data, and then the to-be-flushed data can be flushed into a flash memory according to a flushing instruction. Therefore, the scene requirements of multi-concurrent writing and random overwriting are met, and the data written into the ZRWA area can be accurately and sequentially written into the flash memory.
Secondly, when explicit or implicit brushing is executed, the hole positions in the range to be brushed are checked, and then brushing is executed after the hole positions are supplemented, so that the data in the range to be brushed is ensured to be brushed into the flash memory according to the strict sequence writing characteristic in accordance with the ZNS protocol.
In addition, when the data to be brushed is brushed into the flash memory, the position of the data to be brushed can be dynamically adjusted according to the effective address range and the appointed brushing range of the data to be brushed, so that the effective data in the currently selected brushing range is ensured, the data can be brushed normally, and the ordering of the data when the data is brushed into the flash memory is ensured.
Drawings
In order to more clearly illustrate the technical solutions of the embodiments of the present application, the drawings that are needed in the embodiments will be briefly described below, it being understood that the following drawings only illustrate some embodiments of the present application and therefore should not be considered limiting the scope, and that other related drawings may be obtained according to these drawings without inventive effort for a person skilled in the art.
Fig. 1 is a schematic flow chart of a solid state disk data processing method provided in an embodiment of the present application;
fig. 2 is a schematic structural diagram of a partition namespace solid state hard disk according to an embodiment of the present application;
FIG. 3 is a schematic diagram of a structure of another partition namespace solid state disk according to the embodiments of the present application;
fig. 4 is a schematic structural change diagram of a partition namespace solid state hard disk before and after explicit brushing down provided in an embodiment of the present application;
FIG. 5 is a flowchart of another method for processing data of a solid state disk according to an embodiment of the present disclosure;
FIG. 6 is a schematic structural diagram of a partition namespace solid state disk according to an embodiment of the present disclosure;
fig. 7 is a schematic structural change diagram of a partition namespace solid state hard disk before and after implicit brushing according to an embodiment of the present application;
FIG. 8 is a flowchart of another method for processing data of a solid state disk according to an embodiment of the present disclosure;
FIG. 9 is a flowchart of another method for processing data of a solid state disk according to an embodiment of the present disclosure;
FIG. 10 is a flowchart illustrating another method for processing data of a solid state disk according to an embodiment of the present disclosure;
FIG. 11 is a schematic diagram of a solid state disk data processing device according to an embodiment of the present disclosure;
fig. 12 is a schematic structural diagram of an electronic device according to an embodiment of the present application.
Detailed Description
For the purpose of making the objects, technical solutions and advantages of the embodiments of the present application more clear, the technical solutions of the embodiments 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 should be understood that the accompanying drawings in the present application are only for the purpose of illustration and description, and are not intended to limit the protection scope of the present application. In addition, it should be understood that the schematic drawings are not drawn to scale. A flowchart, as used in this application, illustrates operations implemented according to some embodiments of the present application. It should be understood that the operations of the flow diagrams may be implemented out of order and that steps without logical context may be performed in reverse order or concurrently. Moreover, one or more other operations may be added to the flow diagrams and one or more operations may be removed from the flow diagrams as directed by those skilled in the art.
In addition, the described embodiments are only some, but not all, of the embodiments of the present application. The components of the embodiments of the present application, which are generally described and illustrated in the figures herein, may be arranged and designed in a wide variety of different configurations. Thus, the following detailed description of the embodiments of the present application, as provided in the accompanying drawings, is not intended to limit the scope of the application, as claimed, but is merely representative of selected embodiments of the application. All other embodiments, which can be made by those skilled in the art based on the embodiments of the present application without making any inventive effort, are intended to be within the scope of the present application.
It should be noted that the term "comprising" will be used in the embodiments of the present application to indicate the presence of the features stated hereinafter, but not to exclude the addition of other features.
The ZNS SSD (Zone Namespace, solid State Drive partition Namespace solid state disk) is a storage technology based on Zonased Namespaces. It is a partitioned storage model, i.e. zones are linearly distributed in the nasspace. All zones are written sequentially and must be reset before writing again.
In SSDs, "zone" generally refers to dividing the storage space of the SSD into multiple independent areas, each of which can be erased and programmed independently (erase and program) to improve the performance and lifetime of the SSD. In a ZNS SSD, "zones" are part of a namespace, each with independent storage space and access rights, which may correspond to different applications, respectively. By partitioning the namespaces, the ZNS SSD can better manage data, improving storage efficiency and life.
Although the ZNS SSD has the advantages of reducing write amplification, prolonging the service life of the SSD, reducing the space requirement of an OP (Over Provisioning, reserved space) and reducing a DRAM (Dynamic Random Access Memory, state random access memory), the ZNS SSD strictly requires sequential writing in each Zone and cannot meet the scene requirement of local random overwriting in a designated space.
Based on the above, the scheme provides a solid state disk data processing method, which is based on ZRWA (Zone Random Write Area, partition random writing area) protocol of ZNS, and realizes random writing of data in the ZRWA area. After the data writing is completed, explicit and implicit brushing of the data is realized, the data written into the ZRWA is marked as the data to be brushed, and in the process of brushing the data, the hole positions in the ZRWA area are also complemented, so that the data in the brushing range can be ensured to be brushed into a nand (flash memory) according to the strict sequence writing characteristic in accordance with the ZNS protocol. When the data marked to be brushed is brushed into the nand, the positions of the data blocks in the brushing chain table are dynamically adjusted to ensure the ordering of the data brushing. In addition, according to ZRWA protocol requirements, the data range before the write pointer cannot be overwritten, and is flushed into the nand strictly in sequence.
Fig. 1 is a schematic flow chart of a solid state disk data processing method provided in an embodiment of the present application; fig. 2 is a schematic structural diagram of a partition namespace solid state hard disk according to an embodiment of the present application. The execution main body of the method can be computer equipment, the method can be applied to the partition naming space solid state disk, as shown in fig. 2, the partition naming space solid state disk can comprise: a first data area; the start address of the first data area coincides with the address of the write pointer. As shown in fig. 1, the method may include:
s101, receiving a first data brushing instruction, and determining a first data brushing range corresponding to a first data area according to the first data brushing instruction.
In this embodiment, the first data area may be a ZRWA (Zone Random Write Area, partition random write area) area, which has a characteristic of random writing of data, and in the first data area, the data may be overwritten without being written strictly in order.
Optionally, while the first data area is writing data, the data in the first data area may also be flushed to the nand flash memory by performing a flush operation, and the data in the first data area may be stored in the cache (cache memory) until the flush operation is performed.
The present embodiment provides two data swipe modes, one is explicit swipe, which can be triggered to be performed based on external swipe instructions. The ZRWA protocol specifies that explicit swipe down is implemented via Zone Management Send command.
Optionally, the received first data swipe instruction may include: the specified maximum LBA of the explicit flush (Logical Block Addressing, logical block address) and the starting LBA of the explicit flush is the address of the write pointer, so that a first data flush range corresponding to the first data region can be determined.
It is noted that no actual physical meaning of "first" is intended to distinguish between different instructions and different data.
S102, updating the position of the write pointer according to the first data brushing range.
Explicit swipe in this embodiment does not refer to performing an actual swipe action, but rather, by explicit swipe, marks data in the first data region within the first data swipe as data to be swiped.
Fig. 3 is a schematic structural diagram of another partition naming space solid state disk according to an embodiment of the present application. Optionally, in the initial state, that is, in the case that no data to be swiped is marked, as shown in fig. 2, the position of the write pointer is at the start position, and after determining the first data swipe range in the first data area, the position of the write pointer may be correspondingly updated, so that an area to be swiped is formed, as shown in fig. 3, where the end address of the area to be swiped coincides with the address of the write pointer. The data in the first data brushing range in the first data area is included in the to-be-brushed area, so that the data in the first data brushing range in the first data area is pushed into the to-be-brushed area, and then the data in the first data brushing range in the first data area becomes to-be-brushed data.
And S103, updating the down-flushing identifier of the data in the address range between the starting address and the write pointer in the first data area according to the updated position of the write pointer.
Fig. 4 is a schematic structural change diagram of a partition namespace solid state hard disk before and after explicit brushing down provided in an embodiment of the present application.
In fig. 4, the update of the write pointer and the change of the area to be swiped before and after the update of the write pointer are shown in the case where the area to be swiped already exists.
After determining the first data brushing range corresponding to the first data area according to the first data brushing instruction, the write pointer can be correspondingly updated, that is, the write pointer is moved from the current position to the ending address of the first data brushing range in the current first data area, so that the data in the first data brushing range is pushed into the area to be brushed, that is, as can be seen from fig. 4, the position of the write pointer is moved to the ending address of the first data brushing range, so that the data in the first data brushing range in the first data area becomes the data in the area to be brushed, and the marking of the data in the first data brushing range in the first data area as the data to be brushed is realized.
In actual operation, for updating the write pointer, the updated position of the write pointer is obtained after the write pointer is moved by the length of the first swipe range from the current position according to the length of the first swipe range, and the updated position is located at the end address of the first swipe range. Thus an explicit downscaling of the data in the first data area is completed.
In summary, according to the method for processing data of a solid state disk provided in this embodiment, random overwriting of data is performed based on a ZRWA partition random writing area in a partition namespace solid state disk, while data writing is performed, explicit flushing is performed on data written in the ZRWA area based on a data flushing instruction, and in the execution process of explicit flushing, a to-be-flushed area is formed by updating a position of a writing pointer, so that data in a specified flushing range in the ZRWA area is updated to the to-be-flushed area, data in the specified flushing range in the ZRWA area is marked as to-be-flushed data, and then the to-be-flushed data can be flushed to the flash memory according to a flushing instruction. Therefore, the scene requirements of multi-concurrent writing and random overwriting are met, and the data written into the ZRWA area can be accurately and sequentially written into the flash memory.
FIG. 5 is a flowchart of another method for processing data of a solid state disk according to an embodiment of the present disclosure; optionally, the partition namespace solid state disk may further include: and the starting address of the second data area is coincident with the ending address of the first data area. The method of the present application may further comprise:
s501, determining the length of the second data brushing scope according to the address of the data written in the second data area.
Fig. 6 is a schematic structural diagram of a partition namespace solid state hard disk according to another embodiment of the present application, where as shown in fig. 6, the solid state hard disk further includes a second data area, and a start address of the second data area coincides with a termination address of the first data area. The second data region may be an IZFR (implicit ZRWA flush range, implicit zr-wa flush range) region.
The ZRWA protocol specifies that the implicit swipe is implemented by writing to the second data area of fig. 6. The starting address of the implicit swipe is the starting address of the second data area, and the ending address of the implicit swipe is the address of the data written in the second data area. Thus, the length of the second data swipe range can be determined.
In some embodiments, the implicit swipe is not triggered to be performed by an instruction, but when it is detected that there is data writing in the second data area, the second data swipe range is actively determined, and the determined second data swipe range can be used to push the data of the corresponding range in the first data area into the area to be swiped, so as to become the data to be swiped.
That is, although the second data swipe range is determined according to the start address of the second data area and the end address of the data written in the second data area, the second data swipe range is not used to mark data within the second data range in the second data area as data to be swiped, but marks data within the length range indicated by the second data range in the first data area as data to be swiped, that is, the second data area is used to push data in the first data area to become data to be swiped.
S502, updating the position of the write pointer according to the length of the second data brushing range and the initial position of the first data area.
Optionally, the length of the data pushed into the area to be swiped in the first data area may be determined according to the length of the second data swipe range, so that the start position of the first data area will change, and the start position of the first data area may be moved backward by the length of the second data swipe range from the current position, and the position of the write pointer is updated because the start address of the write pointer coincides with the start address of the first data area.
S503, updating the down-flushing identifier of the data in the address range between the starting address and the write pointer in the first data area according to the updated position of the write pointer.
In line with the implementation of step S103 described above, due to the update of the position of the write pointer, data in the address range between the start position in the first data area and the write pointer is pushed into the area to be flushed, which is marked for the data to be flushed.
Fig. 7 is a schematic structural change diagram of a partition namespace solid state hard disk before and after implicit brushing. As shown in fig. 7, according to the writing termination position of the data written in the second data area and the starting position of the second data area, the second data brushing range can be determined; then, the data in the length range corresponding to the length of the second data brushing range can be determined as the data to be brushed from the starting position in the first data area, and therefore the data in the first data area is pushed into the area to be brushed, and becomes the data to be brushed.
Optionally, the method further comprises: and updating the address range of the first data area according to the updated position of the write pointer and the area length of the first data area.
In some embodiments, to ensure that the range sizes of the first data area and the second data area remain unchanged, after updating the position of the write pointer, the address range of the first data area may be updated according to the updated position of the write pointer and the set area length of the first data area, so that the length of the first data area remains unchanged. And because the starting address of the second data area is overlapped with the ending address of the first data area, the address range of the second data area can be correspondingly updated based on the updating of the address range of the first data area and the preset area length of the second data area.
As can be seen in connection with fig. 4 or fig. 7, after the position of the write pointer is updated, the first data area and the second data area are moved backward by corresponding positions, so that the lengths of the first data area and the second data area remain unchanged before and after the explicit or implicit swipe.
Optionally, in step S101, determining a first data brushing range corresponding to the first data area according to the first data brushing instruction includes: and determining the first data brushing range as a starting address to a target address according to the target address in the first data area and the starting address of the first data area indicated in the first data brushing instruction.
The present embodiment describes determination of a first data swipe range at the time of explicit swipe. Since the ZRWA protocol specifies that explicit flushing is performed by the Zone Management Send command, the first data flushing instruction needs to specify the target address in the first data area, so that the first data flushing range can be determined according to the start address of the first data area and the target address in the first data area. The first data swipe range is a range from a start address of the first data area to a target address of the first data area.
FIG. 8 is a flowchart of another method for processing data of a solid state disk according to an embodiment of the present disclosure; optionally, in step S501, determining the length of the second data swipe range may include:
s801, a data write operation in the second data area is detected.
The present embodiment describes the determination of the second data swipe range during the implicit swipe. The data writing operation of the second data area can be monitored in real time, and when the data is written into the second data area, the writing termination address of the data currently written into the second data area is obtained.
S802, determining the length of the second data brushing range according to the address of the data written in the second data area and the starting address of the second data area.
The ZRWA protocol provides that the implicit swipe is implemented by writing into the second data area, the implicit swipe starting address location is the starting address of the second data area, and the ending location is the writing ending address of the data written into the second data area, whereby the length of the second data swipe range can be calculated.
Then, the length of the second data brushing range can be determined according to the writing termination address of the data currently written in the second data area and the starting address of the second data area.
It is noted that, whether explicitly or implicitly, the start address, the end address, the destination address, or the address of the data writing of the first data area refer to the LBA logical block address.
Optionally, in step S101, before receiving the first data swipe command, the method further includes: and writing new data into the appointed address range in the first data area according to the data writing request, generating an effective address range of the new data, and updating the effective address range of the old data in the appointed address range.
In this embodiment, the data writing process in the first data area is described, the data writing may be performed by initiating a data writing request, where the data writing request may include: the data to be written and the specified address range, whereby the data to be written can be written to the specified address range in the first data area in accordance with the data writing request, whereas the data to be written belongs to new data compared to the already written data, i.e. new data is written to the specified address range in the first data area.
The specified address range may be any range within the address range of the first data area, that is, the random overwriting of data in the first data area may be performed, and when new data is written in a certain address range, the original written data will be overwritten.
Alternatively, if no data is written in the specified address range, new data may be written directly in the specified address range, and if data is already written in the specified address range, an overwriting process is required to replace old data with new data.
FIG. 9 is a flowchart of another method for processing data of a solid state disk according to an embodiment of the present disclosure; optionally, in step S103, updating the swipe identifier of the data in the address range between the start address and the write pointer in the first data area may include:
s901, determining whether there is null data in an address range between a start address and a write pointer in the first data area.
In some embodiments, due to the random writing property of the data in the first data area, it is difficult to ensure that all LBAs in the first data area are written with data, and the LBA positions where no data is written can be defined as hole positions, where no data exists, and the hole positions are that means that there is empty data.
Alternatively, when explicit and implicit swiping is performed, based on the determined first and second data swiping ranges, whether there is empty data in the data within the first data region or the range indicated by the length of the second data swiping range in the first data region may be checked first.
And S902, if the data exists, filling the empty data into a preset value, and updating a swipe identifier of the data in an address range between the starting address and the write pointer to be swiped.
If the empty data exists, the empty data needs to be processed to supplement the empty hole position, and then explicit or implicit brushing is performed. Alternatively, the blank data may be filled with a preset value, for example, 0, and by supplementing the blank hole position, it is ensured that when explicit or implicit brushing is performed, the data in the brushing range accords with the ZNS protocol and is brushed into the nand according to the strict sequence writing characteristic.
FIG. 10 is a flowchart illustrating another method for processing data of a solid state disk according to an embodiment of the present disclosure; optionally, the method of the present application further comprises:
s1001, receiving a second data brushing instruction, wherein the second data brushing instruction is used for indicating to brush down data in a target address range into a flash memory; the second data swipe down instruction includes: a target address range.
In contrast to the explicit and implicit swipes described above, the explicit and implicit swipes only mark the data in the first data area as the data to be swiped, but the actual swipe operation is not performed, and in this embodiment, the data marked as the data to be swiped is actually swiped into the flash memory.
The second data swipe instruction is used for indicating to swipe the data in the target address range in the formed area to be swiped into the flash memory.
S1002, adjusting the positions of the data to be brushed according to the address information of the target data and the effective address range of the data to be brushed, and brushing the data in the target address range into the flash memory in sequence based on the adjusted positions.
In order to ensure that the data are strictly brushed into the flash memory according to the sequence, the positions of the data in the area to be brushed need to be dynamically adjusted so as to ensure that the data to be brushed can be sequentially brushed into the flash memory according to the sequence of the effective address range.
The writing of data, explicit swiping down, and the related implementation of data swiping down into flash memory are illustrated by specific examples as follows:
an empty zone is selected, the Write Pointer (WP: write Pointer) of the zone is 0, and at this time, the data in the address range of the first pen 0-31 is written in the ZRWA area of the zone, so as to generate a data block 0, and then the attribute of the first pen of data written at this time (i.e., the data block 0) is as follows: the start address is 0, the length is 32, the identifier fvalidbmp of the effective address range of the data is 0xffff, which represents effective data of the address range of 0-31, the lower-brushing identifier flushbmp of the data is 0, which represents that the data block 0 is also in the ZRWA area (after WP) and does not belong to the data to be lower-brushed.
Writing data of the second address range of 16-23 in the ZRWA area to generate a data block 1, wherein the address range of the written second data (namely, the data block 1) is overlapped with the address range of the written first data based on the characteristic of random overwriting of the data in the ZRWA area, the data of the 16-23 address range in the first data is to be overwritten, and the attribute of the second data is as follows: a start address of 16, a length of 8, a flush of 0; the second data overwrites part of the first data, and writing of the second data causes a change in fvalidbmp of the first data.
It can be observed that the second data and the first data overlap in the range of 16-23 addresses, so that the second data is in the range of 16-23 addresses, so that the first data fvalidbmp is changed from 0xffff to 0xf0ff, representing valid data in the address ranges of 0 to 15 and 24 to 31, the second data fvalidbmp is 0x0f00 representing valid data in the address range of 16-23, and the second data flushbmp is 0 representing that the data is still in the ZRWA area (WP) and not in the data to be swiped.
Executing an explicit swipe command, wherein the explicit swipe designates a swipe range of 0-31 and a swipe length of 32, and the attributes of the first data and the second data change as follows:
(1) The write pointer of the zone is changed from 0 to 32.
(2) The flushbmp of the first data is assigned as fvalidbmp of the first data, from 0 to 0xf0ff, representing the first data becoming data to be flushed (before WP), and the valid data ranges to be flushed are addresses 0 to 15 and 24 to 31.
(3) The flushbmp of the second data is assigned as fvalidbmp of the second data, from 0 to 0x0f00, representing the second data becoming data to be flushed (before WP), and the valid data range to be flushed is addresses 16-23.
(4) Since both the first and second data flush values are 0 before the explicit flush command is executed, they do not belong to the data to be flushed, and neither the first nor the second data flush values are 0 after the explicit flush command is executed, and both the first and second data are marked as the data block to be flushed, the length of the area to be flushed is changed from 0 to 32, which represents that the total address range length of the data to be flushed is 32.
The dynamic management process for the data to be flushed to the flash memory in the area to be flushed (before the write pointer) is as follows:
(1) According to the strict sequence of ZNS protocol requirements, preparing to select an address range of 0-15, and when the swiping starts, orderly hanging first data and second data in a swiping chain table, firstly selecting the first data, wherein the first data has a representative address range of 0-15 (the first data is not concerned with the first data representing the address range 24-31 temporarily), and the second data represents the address range of 16-23.
(2) After the address ranges 0-15 are selected, the first data need to be flushed according to the strict sequence of the ZNS protocol requirements, because it is observed that the address range represented by the first data is changed to 24-31 and the address range represented by the second data is 16-23, the positions of the second data and the first data in the flush chain table are interchanged, the second data is in front, the first data is in back, so that the first data in the address ranges 0-15 can be flushed to the flash memory first, the second data in the address ranges 16-23 can be flushed to the flash memory, and finally the first data in the address ranges 24-31 is flushed to the flash memory.
If the positions of the first data and the second data are not adjusted, the data swipe down error occurs because no valid data exists in the address range 16-23 in the first data.
According to the flow, after each new data is selected, the data positions on the linked list are required to be dynamically adjusted according to the address range represented by each data according to the sequence so as to ensure the order.
Further, each data block in the above-mentioned under-brush linked list represents a different address range by adding a data length to a start address, the data blocks are managed in units of 4k, a 32-bit flush is used for management, and the maximum data block is managed to be not more than 32 units (4 k), and the maximum data block is managed to be 128 k.
In summary, according to the method for processing data of a solid state disk provided in this embodiment, random overwriting of data is performed based on a ZRWA partition random writing area in a partition namespace solid state disk, while data writing is performed, explicit flushing is performed on data written in the ZRWA area based on a data flushing instruction, and in the execution process of explicit flushing, a to-be-flushed area is formed by updating a position of a writing pointer, so that data in a specified flushing range in the ZRWA area is updated to the to-be-flushed area, data in the specified flushing range in the ZRWA area is marked as to-be-flushed data, and then the to-be-flushed data can be flushed to the flash memory according to a flushing instruction. Therefore, the scene requirements of multi-concurrent writing and random overwriting are met, and the data written into the ZRWA area can be accurately and sequentially written into the flash memory.
Secondly, when explicit or implicit brushing is executed, the hole positions in the range to be brushed can be supplemented by checking the hole positions, and then brushing is executed, so that the data in the range to be brushed is ensured to be matched with the ZNS protocol and is brushed into the flash memory according to the strict sequence writing characteristic.
In addition, when the data to be brushed is brushed into the flash memory, the position of the data to be brushed can be dynamically adjusted according to the effective address range and the appointed brushing range of the data to be brushed, so that the effective data in the currently selected brushing range is ensured, the data can be brushed normally, and the ordering of the data when the data is brushed into the flash memory is ensured.
The following describes a device, equipment, a storage medium, etc. for executing the solid state disk data processing method provided in the present application, and specific implementation processes and technical effects of the device and the equipment are referred to above, and are not described in detail below.
Fig. 11 is a schematic diagram of a solid state disk data processing device according to an embodiment of the present application, where functions implemented by the solid state disk data processing device correspond to steps executed by the method. The device can be understood as the computer equipment, the solid state disk data processing device can be applied to the partition naming space solid state disk, and the partition naming space solid state disk comprises: a first data area; the start address of the first data area coincides with the address of the write pointer; as shown in fig. 11, the apparatus may include: a determining module 110, an updating module 120;
The determining module 110 is configured to receive the first data brushing instruction, and determine a first data brushing range corresponding to the first data area according to the first data brushing instruction;
an updating module 120, configured to update the position of the write pointer according to the first data swipe range;
the updating module 120 is configured to update the identifier of the swipe of the data in the address range between the start address and the write pointer in the first data area according to the updated location of the write pointer.
Optionally, the partition namespace solid state disk further includes: the starting address of the second data area is coincident with the ending address of the first data area;
the determining module 110 is further configured to determine a length of the second data swipe range according to an address of the data written in the second data area;
the updating module 120 is further configured to update the position of the write pointer according to the length of the second data brushing range and the start position of the first data area;
the updating module 120 is further configured to update the identifier of the swipe of the data in the address range between the start address and the write pointer in the first data area according to the updated location of the write pointer.
Optionally, the updating module 120 is further configured to update the address range of the first data area according to the updated location of the write pointer and the area length of the first data area.
Optionally, the determining module 110 is specifically configured to determine the first data swipe range as a starting address to a target address according to the target address in the first data area and the starting address of the first data area indicated in the first data swipe instruction.
Optionally, the determining module 110 is specifically configured to detect a data write operation in the second data area;
and determining the length of the second data brushing range according to the address of the data written in the second data area and the starting address of the second data area.
Optionally, the method further comprises: a write module;
and the writing module is used for writing new data into the appointed address range in the first data area according to the data writing request, generating an effective address range of the new data, and updating the effective address range of the old data in the appointed address range.
Optionally, the updating module 120 is specifically configured to determine whether there is null data in an address range between the start address and the write pointer in the first data area;
if so, filling the null data into a preset value, and updating a swipe identification of the data in the address range between the starting address and the write pointer to be swiped.
Optionally, the method further comprises: a lower brush module;
The data downloading module is used for receiving a second data downloading instruction which is used for indicating to download the data in the target address range into the flash memory; the second data swipe down instruction includes: a target address range;
and adjusting the position of each data to be brushed according to the address information of the target data and the effective address range of each data to be brushed, and brushing the data in the target address range into the flash memory in sequence based on the adjusted position.
The foregoing apparatus is used for executing the method provided in the foregoing embodiment, and its implementation principle and technical effects are similar, and are not described herein again.
The above modules may be one or more integrated circuits configured to implement the above methods, for example: one or more application specific integrated circuits (Application Specific Integrated Circuit, abbreviated as ASIC), or one or more microprocessors (digital singnal processor, abbreviated as DSP), or one or more field programmable gate arrays (Field Programmable Gate Array, abbreviated as FPGA), or the like. For another example, when a module above is implemented in the form of a processing element scheduler code, the processing element may be a general-purpose processor, such as a central processing unit (Central Processing Unit, CPU) or other processor that may invoke the program code. For another example, the modules may be integrated together and implemented in the form of a system-on-a-chip (SOC).
The modules may be connected or communicate with each other via wired or wireless connections. The wired connection may include a metal cable, optical cable, hybrid cable, or the like, or any combination thereof. The wireless connection may include a connection through a LAN, WAN, bluetooth, zigBee, or NFC, or any combination thereof. Two or more modules may be combined into a single module, and any one module may be divided into two or more units. It will be clearly understood by those skilled in the art that, for convenience and brevity of description, specific working procedures of the above-described system and apparatus may refer to corresponding procedures in the method embodiments, which are not described in detail in this application.
Fig. 12 is a schematic structural diagram of an electronic device according to an embodiment of the present application, where the device may be a computing device with a data processing function.
The apparatus may include: a processor 801, and a storage medium 802.
The storage medium 802 is used to store a program, and the processor 801 calls the program stored in the storage medium 802 to execute the above-described method embodiment. The specific implementation manner and the technical effect are similar, and are not repeated here.
In which the storage medium 802 stores program code that, when executed by the processor 801, causes the processor 801 to perform various steps in the solid state disk data processing method according to various exemplary embodiments of the present application described in the section of the "exemplary method" above in the present specification.
The processor 801 may be a general purpose processor such as a Central Processing Unit (CPU), digital signal processor (Digital Signal Processor, DSP), application specific integrated circuit (Application Specific Integrated Circuit, ASIC), field programmable gate array (Field Programmable Gate Array, FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, and may implement or perform the methods, steps, and logic blocks disclosed in embodiments of the present application. The general purpose processor may be a microprocessor or any conventional processor or the like. The steps of a method disclosed in connection with the embodiments of the present application may be embodied directly in a hardware processor for execution, or in a combination of hardware and software modules in the processor for execution.
The storage medium 802 is a non-volatile computer-readable storage medium that can be used to store non-volatile software programs, non-volatile computer-executable programs, and modules. The storage medium may include at least one type of storage medium, and may include, for example, flash Memory, a hard disk, a multimedia card, a card-type storage medium, a random access storage medium (Random Access Memory, RAM), a static random access storage medium (Static Random Access Memory, SRAM), a programmable Read-Only storage medium (Programmable Read Only Memory, PROM), a Read-Only storage medium (ROM), a charged erasable programmable Read-Only storage medium (Electrically Erasable Programmable Read-Only storage), a magnetic storage medium, a magnetic disk, an optical disk, and the like. A storage medium is any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer, but is not limited to such. The storage medium 802 in the embodiments of the present application may also be a circuit or any other device capable of implementing a storage function, for storing program instructions and/or data.
Optionally, the present application also provides a program product, such as a computer readable storage medium, comprising a program for performing the above-described method embodiments when being executed by a processor.
In the several embodiments provided in this application, it should be understood that the disclosed apparatus and method may be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative, e.g., the division of the units is merely a logical function division, and there may be additional divisions when actually implemented, e.g., multiple units or components may be combined or integrated into another system, or some features may be omitted or not performed. Alternatively, the coupling or direct coupling or communication connection shown or discussed with each other may be an indirect coupling or communication connection via some interfaces, devices or units, which may be in electrical, mechanical or other form.
The units described as separate units may or may not be physically separate, and units shown as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
In addition, each functional unit in each embodiment of the present application may be integrated in one processing unit, or each unit may exist alone physically, or two or more units may be integrated in one unit. The integrated units may be implemented in hardware or in hardware plus software functional units.
The integrated units implemented in the form of software functional units described above may be stored in a computer readable storage medium. The software functional unit is stored in a storage medium, and includes several instructions for causing a computer device (which may be a personal computer, a server, or a network device, etc.) or a processor (english: processor) to perform part of the steps of the methods described in the embodiments of the present application. And the aforementioned storage medium includes: u disk, mobile hard disk, read-Only Memory (ROM), random access Memory (Random Access Memory, RAM), magnetic disk or optical disk, etc.
Claims (9)
1. The data processing method of the solid state disk is characterized by being applied to the partitioned namespace solid state disk, and the partitioned namespace solid state disk comprises the following steps: a first data area; the start address of the first data area coincides with the address of the write pointer; the method comprises the following steps:
Receiving a first data brushing instruction, and determining a first data brushing range corresponding to the first data area according to the first data brushing instruction;
updating the position of the write pointer according to the first data brushing range;
updating a swipe identifier of data in an address range between the start address and the write pointer in the first data area according to the updated position of the write pointer;
the partition naming space solid state disk further comprises: a second data area, a start address of the second data area coinciding with a stop address of the first data area; the method further comprises the steps of:
determining the length of a second data brushing range according to the address of the data written in the second data area;
updating the position of the write pointer according to the length of the second data brushing range and the initial position of the first data area;
and updating the swipe identifier of the data in the address range between the starting address and the write pointer in the first data area according to the updated position of the write pointer.
2. The method as recited in claim 1, further comprising:
And updating the address range of the first data area according to the updated position of the write pointer and the area length of the first data area.
3. The method of claim 1, wherein the determining, according to the first data swipe instruction, a first data swipe range corresponding to the first data area includes:
and determining the first data brushing range as the starting address to the target address according to the target address in the first data area and the starting address of the first data area indicated in the first data brushing instruction.
4. The method of claim 1, wherein determining the length of the second data swipe range comprises:
detecting a data write operation in the second data region;
and determining the length of the second data downshifting range according to the address of the data written in the second data area and the starting address of the second data area.
5. The method of claim 1, wherein prior to receiving the first data swipe command, further comprising:
and writing new data into a designated address range in the first data area according to a data writing request, generating an effective address range of the new data, and updating the effective address range of old data in the designated address range.
6. The method of claim 1, wherein the updating the swipe identification of data in the address range between the starting address and the write pointer in the first data area comprises:
judging whether empty data exists in an address range between the starting address and the write pointer in the first data area;
if so, filling the empty data into a preset value, and updating a swipe identification of the data in an address range between the starting address and the write pointer to be swiped.
7. The method as recited in claim 1, further comprising:
receiving a second data brushing instruction, wherein the second data brushing instruction is used for indicating to brush the data in the target address range into the flash memory; the second data swipe down instruction includes: a target address range;
and adjusting the position of each data to be brushed according to the address information of the target data and the effective address range of each data to be brushed, and brushing the data in the target address range into the flash memory in sequence based on the adjusted position.
8. The utility model provides a solid state disk data processing device which characterized in that is applied to in the subregion namespace solid state disk, subregion namespace solid state disk includes: a first data area; the start address of the first data area coincides with the address of the write pointer; the device comprises: a determining module and an updating module;
The determining module is used for receiving a first data brushing instruction and determining a first data brushing range corresponding to the first data area according to the first data brushing instruction;
the updating module is used for updating the position of the write pointer according to the first data brushing range;
the updating module is used for updating the brushing identifier of the data in the address range between the starting address and the writing pointer in the first data area according to the updated position of the writing pointer;
the partition namespace solid state disk further comprises: a second data area, a start address of the second data area coinciding with a stop address of the first data area;
the determining module is further configured to determine a length of a second data brushing range according to an address of the data written in the second data area;
the updating module is further configured to update the position of the write pointer according to the length of the second data brushing range and the starting position of the first data area;
the updating module is further configured to update a swipe identifier of data in an address range between the start address and the write pointer in the first data area according to the updated position of the write pointer.
9. An electronic device, comprising: the system comprises a processor, a storage medium and a bus, wherein the storage medium stores program instructions executable by the processor, when the electronic device runs, the processor and the storage medium are communicated through the bus, and the processor executes the program instructions to realize the solid state disk data processing method according to any one of claims 1 to 7.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311699841.1A CN117406933B (en) | 2023-12-12 | 2023-12-12 | Solid state disk data processing method and device, electronic equipment and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311699841.1A CN117406933B (en) | 2023-12-12 | 2023-12-12 | Solid state disk data processing method and device, electronic equipment and storage medium |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117406933A CN117406933A (en) | 2024-01-16 |
CN117406933B true CN117406933B (en) | 2024-03-29 |
Family
ID=89496451
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311699841.1A Active CN117406933B (en) | 2023-12-12 | 2023-12-12 | Solid state disk data processing method and device, electronic equipment and storage medium |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117406933B (en) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114116527A (en) * | 2021-12-01 | 2022-03-01 | 中船重工(武汉)凌久电子有限责任公司 | NVMe SSD storage method and system based on programmable fusion chip |
CN114691020A (en) * | 2020-12-30 | 2022-07-01 | 上海曼卜信息科技有限公司 | ZNS standard based data compression storage device and method thereof |
WO2022252082A1 (en) * | 2021-05-31 | 2022-12-08 | 华为技术有限公司 | Data processing method, device, and system |
WO2023284379A1 (en) * | 2021-07-16 | 2023-01-19 | 深圳大普微电子科技有限公司 | Cache management method, solid state drive controller, and solid state drive |
CN115951839A (en) * | 2023-01-18 | 2023-04-11 | 北京有竹居网络技术有限公司 | Data writing method and device for partition name space solid state disk and electronic equipment |
CN116257460A (en) * | 2021-12-02 | 2023-06-13 | 联芸科技(杭州)股份有限公司 | Trim command processing method based on solid state disk and solid state disk |
CN116301588A (en) * | 2023-01-17 | 2023-06-23 | 成都芯忆联信息技术有限公司 | Write processing method, device, equipment and medium of ZNS solid state disk |
CN116893786A (en) * | 2023-09-05 | 2023-10-17 | 苏州浪潮智能科技有限公司 | Data processing method and device, electronic equipment and storage medium |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11200162B2 (en) * | 2020-04-28 | 2021-12-14 | Western Digital Technologies, Inc. | Condensing logical to physical table pointers in SSDs utilizing zoned namespaces |
-
2023
- 2023-12-12 CN CN202311699841.1A patent/CN117406933B/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114691020A (en) * | 2020-12-30 | 2022-07-01 | 上海曼卜信息科技有限公司 | ZNS standard based data compression storage device and method thereof |
WO2022252082A1 (en) * | 2021-05-31 | 2022-12-08 | 华为技术有限公司 | Data processing method, device, and system |
WO2023284379A1 (en) * | 2021-07-16 | 2023-01-19 | 深圳大普微电子科技有限公司 | Cache management method, solid state drive controller, and solid state drive |
CN114116527A (en) * | 2021-12-01 | 2022-03-01 | 中船重工(武汉)凌久电子有限责任公司 | NVMe SSD storage method and system based on programmable fusion chip |
CN116257460A (en) * | 2021-12-02 | 2023-06-13 | 联芸科技(杭州)股份有限公司 | Trim command processing method based on solid state disk and solid state disk |
CN116301588A (en) * | 2023-01-17 | 2023-06-23 | 成都芯忆联信息技术有限公司 | Write processing method, device, equipment and medium of ZNS solid state disk |
CN115951839A (en) * | 2023-01-18 | 2023-04-11 | 北京有竹居网络技术有限公司 | Data writing method and device for partition name space solid state disk and electronic equipment |
CN116893786A (en) * | 2023-09-05 | 2023-10-17 | 苏州浪潮智能科技有限公司 | Data processing method and device, electronic equipment and storage medium |
Also Published As
Publication number | Publication date |
---|---|
CN117406933A (en) | 2024-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10642729B2 (en) | Data storage device and operating method thereof wherein update to physical-to-logical mapping of destination block is restarted when closing active block | |
EP2605142B1 (en) | Lba bitmap usage | |
EP3436953B1 (en) | Method and apparatus for processing sequential writes to a block group of physical blocks in a memory device | |
US9563375B2 (en) | Method for storing metadata of log-structured file system for flash memory | |
CA2938242C (en) | Array controller, solid state disk, and method for controlling solid state disk to write data | |
CN107066498B (en) | Key value KV storage method and device | |
US20070094440A1 (en) | Enhanced data access in a storage device | |
CN104424030B (en) | Method and device for sharing memory by multi-process operation | |
CN108874298B (en) | Data storage method and device | |
KR20130066525A (en) | Mount-time reconciliation of data availability | |
CN105393228B (en) | Read and write the method, apparatus and user equipment of data in flash memory | |
CN104079613A (en) | Method and system for multiple tenants to share application program objects | |
JP2005174279A (en) | Flash memory, mapping control apparatus and method for flash memory | |
CN112835528B (en) | Dirty page refreshing method and device, electronic equipment and storage medium | |
CN115576501B (en) | Node updating method, system and related device of RAID card | |
CN106020735A (en) | Data storage method and device | |
US20170220252A1 (en) | Flash emulated eeprom wrapper | |
CN113641630A (en) | FLASH memory | |
JP2016533588A (en) | Storage processing method, apparatus and terminal | |
CN106326132B (en) | Storage system, storage management device, memory, hybrid storage device, and storage management method | |
CN117406933B (en) | Solid state disk data processing method and device, electronic equipment and storage medium | |
US9569113B2 (en) | Data storage device and operating method thereof | |
CN103339603A (en) | Computer reprogramming method, data storage medium and motor vehicle computer | |
CN117331498A (en) | Method, device, equipment and medium for constructing mapping table of solid state disk | |
CN110795031A (en) | Data deduplication method, device and system based on full flash storage |
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 |