A solid-state drive, a data writing method, device, host, and storage medium thereof
By optimizing the write request processing method of solid-state drives, and configuring the cache address and cache granularity according to the flash memory type, the problems of insufficient write performance and waste of resources are solved, the write performance is improved and context resources are saved.
Patent Information
- Application Number
- CN202211466418.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-11-22
- Publication Date
- 2025-07-25
- Estimated Expiration
- 2042-11-22
AI Technical Summary
The prior art has problems of insufficient write performance and waste of write process context resources in solid-state drives, especially when different NAND types of flash memory are used, performance fluctuations and resource waste are severe.
By configuring a preset number of cache addresses and cache granularity in the solid-state drive to the minimum programming unit data volume of each flash memory type, the write request processing method of the flash conversion layer module is optimized, the binding relationship between the write request context and the cache space is released, and the cache space is released only after a single programming unit is completed.
It improves the writing performance of the solid-state drive, reduces the processing time of the writing process, and effectively saves the writing process context resources, and improves the user experience.
Smart Images

Figure CN115756327B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of solid state drives, and particularly to a data writing method, apparatus, solid state drive, host, and computer-readable storage medium for a solid state drive. Background Art
[0002] A solid state drive (SSD), which uses NAND flash chips as storage media, has the main advantages of being removable, fast, and long-lived. The key to maintaining such high performance and stability of the SSD lies in the NAND particles. The increase in the storage density of a single CELL (the smallest unit for storing data in the NAND medium) will bring problems such as easy charge leakage and unstable data storage. To solve this problem, many NAND manufacturers adopt the strategy of mixing multiple NAND types (flash types) in a single die (the smallest unit of the NAND command).
[0003] Although the mixed NAND arrangement can solve the data stability problem, it poses higher requirements for the design of the firmware algorithm, and there are the following problems: 1) For different NAND types, the amount of unit data (wordline) of the NAND program is not fixed, and the firmware needs to organize the data volume according to the NAND type; 2) For different NAND types, there are differences in the program programming time, and the differences in the NAND program performance will cause certain performance fluctuations.
[0004] The conventional SSD write process is as follows: The front-end module first caches the host data in a cache buff (cache space), such as double data rate synchronous dynamic random access memory DDR or static random access memory SRAM. When the data volume of a cache buff granularity is collected, it is sent to the FTL (Flash Translation Layer) module. The FTL module is responsible for mapping the NAND positions. When the data volume for the NAND program is collected, it is sent to the back-end flash module (NAND module) for storage. After the NAND module completes the NAND program, it updates the mapping table and releases the front-end cache buff.
[0005] In the prior art, the mainstream technical solutions are as follows: 1) The granularity of the configured cache buff is 16K, that is, the front-end module sends a full 16K cache buff to the FTL module, which results in too many message interactions between the front-end module and the FTL module, consuming excessive CPU utilization. At the same time, each 16K occupies a context resource, consuming excessive RAM (Random Access Memory) resources; 2) The granularity of the configured cache buff is 48K, such that the data within a 48K cache buff may span two wordlines. The FTL module needs to wait for the two wordline program operations to complete before modifying the mapping table and releasing the cache buff, indirectly lengthening the entire write process time and reducing performance.
[0006] Therefore, how to effectively save the context resources of the write process while improving the write performance of the solid-state drive is an urgent problem to be solved today. Summary of the Invention
[0007] The object of the present invention is to provide a data write method, device, solid-state drive, host, and computer-readable storage medium for a solid-state drive to effectively save the context resources of the write process while improving the write performance of the solid-state drive, thereby enhancing the user experience.
[0008] To solve the above technical problems, the present invention provides a data write method for a solid-state drive, including:
[0009] Receiving a front-end write request sent by a front-end module by means of a flash translation layer module; wherein, the front-end write request includes a preset number of cache addresses to be written, the cache addresses to be written are cache addresses corresponding to the data to be written with a preset cache granularity, the preset number is greater than or equal to 2, and the preset cache granularity is the data volume of the smallest programming unit corresponding to each flash type in the solid-state drive;
[0010] Configuring a flash write request corresponding to the currently to-be-written flash according to the front-end write request and the flash type corresponding to each flash in the solid-state drive; wherein, the currently to-be-written flash is any one of the flashes, and the flash write request includes the cache addresses to be written corresponding to the data to be written with the current programming unit data volume; the current programming unit data volume is the programming unit data volume of the currently to-be-written flash;
[0011] Sending the flash write request to the flash module of the solid-state drive to write the data to be written corresponding to the cache addresses to be written in the flash write request into the currently to-be-written flash through the flash module;
[0012] Updating the mapping table of the solid-state drive according to the flash write completion information corresponding to the flash write request returned by the flash module, and releasing the cache space corresponding to the cache addresses to be written in the flash write request.
[0013] Optionally, before the flash translation layer module receives the front-end write request sent by the front-end module, it further includes:
[0014] Using the front-end module to obtain the data to be written by the host;
[0015] Writing the data to be written into the cache space with the preset cache granularity;
[0016] Configuring and sending the front-end write request to the flash translation layer module according to the cache space and the preset quantity.
[0017] Optionally, the configuring and sending the front-end write request to the flash translation layer module according to the cache space and the preset quantity includes:
[0018] After the current cache space is full, determining the current cache space as the target cache space, and determining whether the quantity of the target cache space reaches the preset quantity;
[0019] If so, configuring and sending the front-end write request to the flash translation layer module according to the target cache space, and determining the target cache space as a non-target cache space.
[0020] Optionally, after writing the data to be written into the cache space with the preset cache granularity, it further includes:
[0021] Using the front-end module to send the completion information corresponding to the data to be written to the host after the writing of the data to be written is completed.
[0022] Optionally, before using the front-end module to obtain the data to be written by the host, it further includes:
[0023] Using the front-end module to apply for the cache space with the preset cache granularity.
[0024] Optionally, the using the front-end module to obtain the data to be written by the host includes:
[0025] The solid-state drive uses the front-end module to receive the data to be written corresponding to the nvme command sent by the host.
[0026] Optionally, the updating the mapping table of the solid-state drive according to the flash write completion information corresponding to the flash write request returned by the flash module, and releasing the cache space corresponding to the write cache address in the flash write request includes:
[0027] The solid-state drive updates the mapping table stored in the solid-state drive by using the flash conversion layer module according to the flash write completion information corresponding to the flash write request returned by the flash module, and releases the cache space in the solid-state drive corresponding to the cache address to be written in the flash write request.
[0028] Optionally, updating the mapping table of the solid-state drive according to the flash write completion information corresponding to the flash write request returned by the flash module, and releasing the cache space corresponding to the cache address to be written in the flash write request includes:
[0029] The host uses the flash conversion layer module to update the mapping table according to the flash write completion information corresponding to the flash write request returned by the flash module, and releases the cache space in the host corresponding to the cache address to be written in the flash write request.
[0030] Optionally, the mapping table is stored in the host.
[0031] Optionally, releasing the cache space corresponding to the cache address to be written in the flash write request includes:
[0032] Using the flash conversion layer module to configure and send the front-end write completion information corresponding to the cache address to be written in the flash write request to the front-end module, so as to use the front-end module to release the cache space corresponding to the cache address to be written in the flash write request.
[0033] Optionally, the front-end write request includes the cache address and logical address corresponding to the data to be written with the preset number of preset cache granularities, and the interaction context information.
[0034] Optionally, after sending the flash write request to the flash module, it further includes:
[0035] The solid-state drive uses the flash module to write the data to be written corresponding to the flash write request into the currently writeable flash through a flash programming command;
[0036] After detecting that the writing of the data to be written corresponding to the flash write request is completed, configure and send the flash write completion information corresponding to the flash write request to the flash conversion layer module.
[0037] Optionally, the preset number is 3.
[0038] Optionally, the flash in the solid-state drive includes SLC flash, MLC flash, and TLC flash, and the preset cache granularity is 16K.
[0039] Optionally, configuring a flash write request corresponding to the currently to-be-written flash according to the front-end write request and the flash types corresponding to the flash memories in the solid-state drive includes:
[0040] Determining a target data volume according to the flash type of the currently to-be-written flash; wherein, the target data volume is the data volume of the programming unit of the currently to-be-written flash;
[0041] Using the unallocated to-be-written cache addresses in the front-end write request to allocate to-be-written cache addresses corresponding to the to-be-written data of the target data volume;
[0042] Configuring a flash write request corresponding to the currently to-be-written flash according to the to-be-written cache addresses corresponding to the to-be-written data of the target data volume.
[0043] Optionally, using the unallocated to-be-written cache addresses in the front-end write request to allocate to-be-written cache addresses corresponding to the to-be-written data of the target data volume includes:
[0044] According to the receiving order of the front-end write requests, using the unallocated cache addresses in the front-end write requests to allocate cache addresses corresponding to the to-be-written data of the target data volume.
[0045] The present invention further provides a data write device for a solid-state drive, including:
[0046] A request receiving unit, configured to receive a front-end write request sent by a front-end module by using a flash translation layer module; wherein, the front-end write request includes a preset number of to-be-written cache addresses, the to-be-written cache addresses are cache addresses corresponding to to-be-written data of a preset cache granularity, the preset number is greater than or equal to 2, and the preset cache granularity is the minimum data volume of the programming unit corresponding to each flash type in the solid-state drive;
[0047] A request configuration unit, configured to configure a flash write request corresponding to the currently to-be-written flash according to the front-end write request and the flash types corresponding to the flash memories in the solid-state drive; wherein, the currently to-be-written flash is any one of the flash memories, the flash write request includes to-be-written cache addresses corresponding to to-be-written data of the current programming unit data volume; the current programming unit data volume is the data volume of the programming unit of the currently to-be-written flash;
[0048] A request sending unit, configured to send the flash write request to a flash module of the solid-state drive, so as to write the to-be-written data corresponding to the to-be-written cache address in the flash write request into the currently to-be-written flash through the flash module;
[0049] An information receiving unit, configured to update a mapping table of the solid state drive according to flash write completion information corresponding to the flash write request returned by the flash memory module, and release a cache space corresponding to a cache address to be written in the flash write request.
[0050] The present invention also provides a solid state drive, including:
[0051] A memory, configured to store a computer program;
[0052] A processor, configured to implement the steps of the data write method of the solid state drive as described above when executing the computer program.
[0053] The present invention also provides a host, including:
[0054] A memory, configured to store a computer program;
[0055] A processor, configured to implement the steps of the data write method of the solid state drive as described above when executing the computer program.
[0056] In addition, the present invention also provides a computer-readable storage medium, on which a computer program is stored, and when the computer program is executed by a processor, the steps of the data write method of the solid state drive as described above are implemented.
[0057] A data write method of a solid state drive provided by the present invention includes: receiving a front-end write request sent by a front-end module by using a flash translation layer module; wherein, the front-end write request includes a preset number of cache addresses to be written, and the cache address to be written is a cache address corresponding to data to be written with a preset cache granularity, the preset number is greater than or equal to 2, and the preset cache granularity is the data amount of the smallest programming unit corresponding to each flash type in the solid state drive; configuring a flash write request corresponding to the currently to-be-written flash according to the front-end write request and the flash type corresponding to each flash in the solid state drive; wherein, the currently to-be-written flash is any flash, and the flash write request includes a cache address to be written corresponding to the data to be written with the current programming unit data amount; the current programming unit data amount is the data amount of the programming unit of the currently to-be-written flash; sending the flash write request to the flash memory module of the solid state drive, so as to write the data to be written corresponding to the cache address to be written in the flash write request into the currently to-be-written flash through the flash memory module; updating the mapping table of the solid state drive according to the flash write completion information corresponding to the flash write request returned by the flash memory module, and releasing the cache space corresponding to the cache address to be written in the flash write request;
[0058] It can be seen that according to the front-end write request and the flash types corresponding to the flash memories in the solid-state drive, the present invention configures the flash write request corresponding to the currently to-be-written flash memory, enabling the flash translation layer module to release the binding relationship between the write request context and the cache space. Instead of waiting for all the data to be written in multiple cache spaces corresponding to the same front-end write request to be completely written before releasing all the cache spaces, the corresponding cache space can be released as soon as any wordline write is completed, reducing the processing time of the write process, improving the write performance of the solid-state drive, and accelerating the release of the write request context, effectively saving the context resources of the write process. In addition, the present invention also provides a data write device for a solid-state drive, a solid-state drive, a host, and a computer-readable storage medium, which also have the above beneficial effects. BRIEF DESCRIPTION OF THE DRAWINGS
[0059] In order to more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the following will briefly introduce the drawings required for use in the description of the embodiments or the prior art. Obviously, the drawings in the following description are only the embodiments of the present invention. For those of ordinary skill in the art, without creative efforts, other drawings can also be obtained based on the provided drawings.
[0060] Figure 1 It is a flowchart of a data write method for a solid-state drive provided by an embodiment of the present invention;
[0061] Figure 2 It is a schematic diagram of the data volume granularity of each module of another data write method for a solid-state drive provided by an embodiment of the present invention;
[0062] Figure 3 It is a flowchart of another data write method for a solid-state drive provided by an embodiment of the present invention;
[0063] Figure 4 It is a structural block diagram of a data write device for a solid-state drive provided by an embodiment of the present invention;
[0064] Figure 5 It is a schematic structural diagram of a solid-state drive provided by an embodiment of the present invention;
[0065] Figure 6 It is a schematic structural diagram of a host provided by an embodiment of the present invention;
[0066] Figure 7 It is a specific structural diagram of a host provided by an embodiment of the present invention. DETAILED DESCRIPTION OF THE EMBODIMENTS
[0067] To make the objectives, technical solutions, and advantages of the embodiments of the present invention clearer, the following will clearly and completely describe the technical solutions in the embodiments of the present invention with reference to the accompanying drawings in the embodiments of the present invention. Apparently, the described embodiments are some, but not all, of the embodiments of the present invention. All other embodiments obtained by those of ordinary skill in the art based on the embodiments of the present invention without creative efforts shall fall within the protection scope of the present invention.
[0068] Please refer to Figure 1 , Figure 1 which is a flowchart of a data writing method for a solid-state drive provided by an embodiment of the present invention. The method may include:
[0069] Step 101: Receive a front-end write request sent by a front-end module using a flash translation layer module; wherein, the front-end write request includes a preset number of cache addresses to be written, the cache addresses to be written are the cache addresses corresponding to the data to be written with a preset cache granularity, the preset number is greater than or equal to 2, and the preset cache granularity is the data volume of the smallest programming unit corresponding to each flash type in the solid-state drive.
[0070] It should be noted that the data writing method for the solid-state drive provided in this embodiment can be applied to a solid-state drive, that is, the processor of the solid-state drive (such as the main control chip) can execute the steps of the data writing method for the solid-state drive provided in this embodiment to store the data to be written into the flash memory of the solid-state drive; that is to say, in this embodiment, the FTL (flash translation layer) processing process can be responsible by the processor of the solid-state drive, that is, the front-end module, the FTL module, and the back-end flash module can all be set in the solid-state drive (i.e., the device side). The data writing method for the solid-state drive provided in this embodiment can be applied to a host connected to the solid-state drive, that is, the processor of the host can execute the steps of the data writing method for the solid-state drive provided in this embodiment to store the data to be written into the flash memory of the solid-state drive; that is to say, in this embodiment, the FTL (flash translation layer) processing process can be responsible by the processor of the host, that is, the front-end module and the FTL module can be set in the host (i.e., the host side), and the back-end flash module can be set in the solid-state drive (i.e., the device side). This embodiment does not make any restrictions on this.
[0071] It can be understood that the front-end write request in this embodiment can be a write request sent by the front-end module of the solid-state drive (SSD) to the FTL module (i.e., the flash translation layer module), such as a write request sent by the front-end module of the solid-state drive (SSD) to the FTL module of the solid-state drive. The preset cache granularity in this embodiment can be the cache granularity (i.e., Buff granularity) of the cache space (i.e., cache Buff) for the front-end module to cache the data to be written, that is, the size of each cache space, such as Figure 2 the cache data volume granularity X in
[0072] Correspondingly, in this embodiment, the preset cache granularity can be the smallest programming unit data volume (wordline) of the flash memory types (i.e., NAND types) of each flash memory (NAND) in the solid-state drive, so that the data to be written in one cache space does not cross multiple NAND program wordlines. For example, the flash memory in the solid-state drive includes three types of NAND, namely SLC (Single-Level Cell) flash memory, MLC (Multi-Level Cell) flash memory, and TLC (Triple-Level Cell) flash memory. For instance, inside a BLOCK, page 0 to page 15 is SLC, page 16 to page 50 is MLC, page 51 to page 3080 is TLC, page 3081 to page 3096 is MLC, and page 3097 to page 4000 is SLC; since the programming unit data volume (i.e., the programming unit data volume) of SLC programming is 16K, the programming unit data volume of MLC programming is 32K, and the programming unit data volume of TLC programming is 48K, the preset cache granularity can be the programming unit data volume of SLC programming, i.e., 16K.
[0073] Specifically, the cache address to be written in this embodiment can be the cache address corresponding to the data to be written with the preset cache granularity, that is, the cache address corresponding to the cache space of the preset cache granularity when the cache is full and waiting for data to be written. In this embodiment, the front-end write request can include a preset number of cache addresses to be written, that is, the cache addresses corresponding to the data to be written with the preset cache granularity of a preset number (N), that is, the data volume interacted between the front-end module and the FTL module is N * pre-cache granularity; that is to say, the front-end module can configure and send a front-end write request to the FTL module after accumulating the data to be written in N cache buffs, so as to save the message interaction between the front-end module and the FTL module and reduce the context resources. For the specific value of the preset number in this embodiment, it can be set by the designer according to the practical scenario and user requirements. For example, the preset number can be 2, that is, the front-end module can configure and send a front-end write request to the FTL module after accumulating the data to be written in 2 cache buffs, so that the front-end write request can include the cache addresses corresponding to the data to be written with 2 preset cache granularities. The preset number can also be a positive integer greater than 2, such as 3, and this embodiment does not make any restrictions on this.
[0074] Correspondingly, before step 101, the solid-state drive or the host can also use the front-end module to obtain the cached data to be written and configure the front-end write request. For example, the solid-state drive or the host can use the front-end module to obtain the data to be written from the host. For example, the front-end module of the solid-state drive can receive the data to be written sent by the host, write the data to be written into the cache space with a preset cache granularity, and configure and send a front-end write request to the flash translation layer module according to the cache space and the preset quantity.
[0075] Among them, before this step in this embodiment, the solid-state drive or the host can use the front-end module to apply for a cache space with a preset cache granularity. For example, the solid-state drive can use the front-end module to apply for a cache space with a preset cache granularity in the solid-state drive, and the host can use the front-end module to apply for a cache space with a preset cache granularity in the host.
[0076] It should be noted that the specific content of the front-end write request in this embodiment can be set by the designer according to the practical scenario and user requirements. For example, it can be set in a manner similar to the write request sent by the front-end module to the FTL module in the prior art. For example, the front-end write request in this embodiment can include the cache address corresponding to the data to be written with a preset quantity of preset cache granularity (i.e., the cache address to be written) and the logical address, and can also include the interaction context information of the data interaction between the front-end module and the FTL module. For example, when the flash memory in the solid-state drive includes SLC flash memory, MLC flash memory, and TLC flash memory, the specific content of the front-end write request sent by the front-end module to the FTL module can be as follows: {U32 sram_buff_addr[3]; / / Cache addresses for multiple 16k (SLC wordline) data
[0077] U32 lba
[12] ; / / Multiple 4k logical addresses
[0078] }cache_write_req; / / Context of data interaction between the front-end and the FTL
[0079] Step 102: Configure a flash write request corresponding to the currently to-be-written flash according to the front-end write request and the flash type corresponding to each flash in the solid-state drive. Among them, the currently to-be-written flash is any flash, and the flash write request includes the cache address to be written corresponding to the data to be written with the data volume of the current programming unit. The data volume of the current programming unit is the data volume of the programming unit of the currently to-be-written flash.
[0080] It can be understood that the flash memory type in this step can be the type of flash memory (NAND) in a solid-state drive. For example, when the flash memory in a solid-state drive includes SLC flash memory, MLC flash memory, and TLC flash memory, the flash memory type can include SLC type, MLC type, and TLC type. The currently to-be-written flash memory in this step can be the flash memory that can currently write data (i.e., the to-be-written data). The data volume of the current programming unit in this step can be the data volume of the programming unit of the currently to-be-written flash memory.
[0081] Specifically, the flash memory write request in this step can be a write request sent by the FTL module of the solid-state drive or the host to the flash memory module of the solid-state drive. In this step, after the processor of the solid-state drive or the host receives the front-end write request through the FTL module, that is, after receiving a write request for the to-be-written data with a preset number of the smallest wordline granularities (for example, the smallest wordline granularity can be 16K for SLC wordline), according to the flash memory type of the flash memory (NAND) in the solid-state drive, it uses the data (i.e., the to-be-written data) in the front-end cache buff (i.e., the cache space) to organize the data volume of the wordline granularity (i.e., the data volume of the programming unit) of the currently to-be-written flash memory (such as Figure 2 the data volume granularity M in). For example, if the currently to-be-written flash memory is page 0->page15 belonging to SLC NAND (i.e., SLC flash memory), 1 front-end cache buff is required; if the currently to-be-written flash memory is page 16->page 50 belonging to MLC NAND, 2 front-end cache buffs are required; if the currently to-be-written flash memory is page 51->page3080 belonging to TLC NAND, 3 front-end cache buffs are required.
[0082] Correspondingly, for the specific manner in which the processor in this embodiment configures the flash write request corresponding to the currently to-be-written flash according to the front-end write request and the flash types corresponding to each flash in the solid-state drive, it can be set by the designer himself. For example, the processor can use the FTL module to determine the target data volume according to the flash type of the currently to-be-written flash. The target data volume is the data volume of the programming unit of the currently to-be-written flash. Use the unallocated to-be-written cache address in the front-end write request to allocate the to-be-written cache address corresponding to the to-be-written data of the target data volume. Configure the flash write request corresponding to the currently to-be-written flash according to the to-be-written cache address corresponding to the to-be-written data of the target data volume. For example, the FTL module can allocate the unallocated to-be-written cache addresses in each front-end write request in sequence according to the order of receipt of each front-end write request. That is, the processor can allocate the to-be-written cache address corresponding to the to-be-written data of the target data volume using the unallocated to-be-written cache address in the front-end write request according to the receipt order of each front-end write request to configure the flash write request corresponding to the currently to-be-written flash. As long as the processor can use the FTL module to configure the flash write request corresponding to the currently to-be-written flash according to the front-end write request and the flash types corresponding to each flash in the solid-state drive, this embodiment does not impose any restrictions on this.
[0083] Step 103: Send the flash write request to the flash module of the solid-state drive to write the to-be-written data corresponding to the to-be-written cache address in the flash write request into the currently to-be-written flash through the flash module.
[0084] It can be understood that in this embodiment, the solid-state drive or the host uses the FTL module to organize the data volume of the wordline granularity of the currently to-be-written flash. After configuring the flash write request, the flash write request can be sent to the NAND module (i.e., the flash module) of the back-end solid-state drive to write the to-be-written data corresponding to the cache address (i.e., the to-be-written cache address) in the flash write request into the currently to-be-written flash through the flash module of the solid-state drive, completing the flash storage of the to-be-written data corresponding to the flash write request.
[0085] Correspondingly, after this step, it can also include that the solid-state drive uses the flash module to write the to-be-written data corresponding to the to-be-written cache address in the flash write request into the currently to-be-written flash; after detecting that the writing of the to-be-written data corresponding to the to-be-written cache address of the flash write request is completed, configure and send the flash write completion information corresponding to the flash write request to the flash translation layer module. The flash write completion information can be the write completion information corresponding to the flash write request sent by the flash module to the FTL module. For example, after the NAND program corresponding to the flash write request is completed, the write completion information is sent to the FTL module.
[0086] Step 104: Update the mapping table of the solid-state drive according to the flash write completion information corresponding to the flash write request returned by the flash memory module, and release the cache space corresponding to the cache address to be written in the flash write request.
[0087] Among them, in this embodiment, the solid-state drive or the host can use the FTL module to modify and update the mapping table (i.e., the address mapping table) of the solid-state drive according to the flash write completion information corresponding to the flash write request returned by the flash memory module, and release the cache space corresponding to the cache address (i.e., the cache address to be written) in the flash write request that has been written. That is to say, the FTL module does not need to wait for all other wordlines of the same front-end write request to be written before releasing the cache space corresponding to the front-end write request, but can release the corresponding cache space after receiving any wordline write completion. That is, the FTL module only needs to ensure that the total data volume of the cache buff of the received front-end write request is equal to the written data volume, and does not need to ensure that the cache addresses of the cache buff are consistent, thereby accelerating the release of the write request context and improving the performance of the solid-state drive.
[0088] Specifically, when the FTL processing process is responsible for by the processor of the solid-state drive, in this step, the processor of the solid-state drive can use the FTL module to update the mapping table stored in the solid-state drive according to the flash write completion information corresponding to the flash write request returned by the flash memory module, and release the cache space in the solid-state drive corresponding to the cache address to be written in the flash write request. When the FTL processing process is responsible for by the processor of the host, in this step, the processor of the host can use the FTL module to update the mapping table of the solid-state drive according to the flash write completion information corresponding to the flash write request returned by the flash memory module of the solid-state drive, and release the cache space in the host corresponding to the cache address to be written in the flash write request.
[0089] Correspondingly, when the FTL processing process is responsible for by the processor of the host, the mapping table of the solid-state drive can be stored in the host. That is, in this step, the processor of the host can use the FTL module to update the mapping table of the solid-state drive stored in the host according to the flash write completion information corresponding to the flash write request returned by the flash memory module of the solid-state drive, and release the cache space in the host corresponding to the cache address in the flash write request.
[0090] It should be noted that for the specific manner in which the processor in this step updates the mapping table of the solid-state drive according to the flash write completion information corresponding to the flash write request returned by the flash module and releases the cache space corresponding to the cache address to be written in the flash write request, the designer can set it according to the practical scenario and user requirements. For example, the processor can use the FTL module to update the mapping table of the solid-state drive in the same or similar manner as the method for modifying and updating the mapping table of the solid-state drive in the prior art according to the flash write completion information corresponding to the flash write request returned by the flash module. After the mapping table is updated, the processor configures and sends the front-end write completion information corresponding to the cache address to be written in the flash write request to the front-end module to use the front-end module to release the cache space corresponding to the cache address to be written in the flash write request. For example, after the host uses the FTL module to update the mapping table of the solid-state drive, the host configures and sends the front-end write completion information corresponding to the cache address (i.e., the cache address to be written) in the flash write request to the front-end module of the host, and uses the front-end module to release the cache space of the host corresponding to the cache address in the flash write request.
[0091] In this embodiment, the embodiment of the present invention configures the flash write request corresponding to the currently to-be-written flash according to the front-end write request and the flash types corresponding to each flash in the solid-state drive, so that the flash translation layer module can release the binding relationship between the write request context and the cache space. Instead of waiting for all the data to be written in multiple cache spaces corresponding to the same front-end write request to be written and then releasing all the cache spaces, the corresponding cache space can be released after any wordline write is completed, which reduces the processing time of the write process, improves the write performance of the solid-state drive, and can accelerate the release of the write request context, effectively saving the write process context resources.
[0092] Based on the above embodiment, the present invention also provides another data write method for a solid-state drive. Specifically, please refer to Figure 3 , Figure 3 which is the flowchart of another data write method for a solid-state drive provided by the embodiment of the present invention; this method is applied to a solid-state drive and may include:
[0093] Step 201: Use the front-end module to obtain the data to be written by the host.
[0094] It can be understood that this embodiment takes the data writing method of a solid-state drive in which the processor of the solid-state drive is responsible for the FTL processing process as an example for display, that is, the front-end module, the FTL module, and the back-end flash module can all be set in the solid-state drive; for the data writing method of a solid-state drive in which the processor of the host is responsible for the FTL processing process, it can be set correspondingly in a similar manner to the method provided in this embodiment, and this embodiment does not make any restrictions on this. Among them, in this embodiment, the solid-state drive (SSD) can use the front-end module to receive the data to be written sent by the host (host); for example, the solid-state drive can use the front-end module to receive the data to be written corresponding to the nvme (NVM Express, Non-Volatile Memory Host Controller Interface Specification) command sent by the host.
[0095] Step 202: Use the front-end module to write the data to be written into the cache space with a preset cache granularity; where the preset cache granularity is the smallest programming unit data volume among the programming unit data volumes of each flash type in the solid-state drive.
[0096] It can be understood that in this step, the solid-state drive can use the front-end module to cache the data to be written sent by the host into the cache buff (i.e., the cache space) with a preset cache granularity. The granularity of each cache buff can be the preset cache granularity; the preset cache granularity can be the smallest wordline data volume (i.e., the programming unit data volume) among the wordline data volumes corresponding to each flash, such as the 16K SLC wordline which is the smallest wordline among the three types of NAND, namely SLC, MLC, and TLC.
[0097] Specifically, for the specific manner of using the front-end module to write the data to be written into the cache space with a preset cache granularity in this embodiment, it can be set by the designer himself. For example, after the current cache space is full, the front-end module can determine the current cache space as the target cache space and determine whether the number of target cache spaces reaches the preset number; if so, configure and send a front-end write request to the flash translation layer module according to the target cache space, and determine the target cache space as a non-target cache space; if not, end this process or return to step 201 to continue receiving and caching the data to be written into the next cache space.
[0098] Correspondingly, before this step in this embodiment, the solid-state drive can use the front-end module to apply for the cache space with a preset cache granularity.
[0099] Further, after the solid-state drive in this embodiment writes the data to be written into the cache space of the preset cache granularity by using the front-end module, it can also use the front-end module to send the completion information corresponding to the data to be written to the host after the data to be written is written, so as to quickly return the write completion information corresponding to the data to be written to the host. Correspondingly, the solid-state drive can also use the front-end module to send the corresponding completion information to the host after releasing all or part of the cache space of the data to be written. This embodiment does not impose any restrictions on this.
[0100] Step 203: Configure and send a front-end write request to the FTL module by using the front-end module according to the cache space and the preset quantity; wherein, the front-end write request includes a preset quantity of cache addresses to be written, and the cache address to be written is the cache address corresponding to the data to be written of the preset cache granularity, and the preset quantity is greater than or equal to 2.
[0101] Specifically, in this step, the solid-state drive can use the front-end module to collect enough cache space of the preset quantity, and use the cache addresses corresponding to the cache space of the preset quantity filled with the data to be written (i.e., the cache addresses to be written) to configure and send a front-end write request to the FTL module (Flash Translation Layer module). The front-end write request in this embodiment can include the cache addresses and logical addresses corresponding to the data to be written of the preset cache granularity of the preset quantity and the interaction context information of the data interaction between the front-end module and the FTL module
[0102] Step 204: Use the FTL module to receive the front-end write request sent by the front-end module.
[0103] Step 205: Configure the flash write request corresponding to the currently to-be-written flash according to the front-end write request and the flash types corresponding to each flash in the solid-state drive by using the FTL module; wherein, the currently to-be-written flash is any flash, and the flash write request includes the cache address to be written corresponding to the data to be written of the current programming unit data volume; the current programming unit data volume is the programming unit data volume of the currently to-be-written flash.
[0104] Among them, steps 204 and 205 in this embodiment are similar to steps 101 and 102, and will not be elaborated here.
[0105] Step 206: Use the FTL module to send the flash write request to the flash module, so as to use the flash module to write the data to be written corresponding to the cache address to be written in the flash write request into the currently to-be-written flash.
[0106] It can be understood that in this embodiment, after the solid-state drive uses the FTL module to send the flash write request to the flash module, the flash module can be used to write the data to be written corresponding to the cache address (i.e., the cache address to be written) in the flash write request into the current flash to be written. For example, after the flash module receives the flash write request from the FTL module, it can send a NAND program command (i.e., a flash programming command), and send a write completion message (i.e., a flash write completion message) to the FTL module after detecting that the NAND program is completed; that is to say, the solid-state drive can use the flash module to write the data to be written corresponding to the flash write request into the current flash to be written through the flash programming command; after the flash module detects that the data to be written corresponding to the flash write request is written, it configures and sends the flash write completion message corresponding to the flash write request to the flash translation layer module.
[0107] Step 207: Use the FTL module to update the mapping table of the solid-state drive according to the flash write completion message corresponding to the flash write request returned by the flash module.
[0108] Among them, after the solid-state drive receives the flash write completion message corresponding to the flash write request by using the FTL module, it correspondingly modifies and updates the stored mapping table of the solid-state drive.
[0109] Step 208: Use the FTL module to configure and send the front-end write completion message corresponding to the cache address to be written in the flash write request to the front-end module, so as to use the front-end module to release the cache space corresponding to the cache address to be written in the flash write request.
[0110] It can be understood that in this embodiment, the solid-state drive can use the FTL module to send the front-end write completion message corresponding to the cache address to be written in the flash write request to the front-end module after updating the mapping table of the solid-state drive, so as to use the front-end module to release the cache space corresponding to the cache address to be written in the flash write request and release the corresponding request context.
[0111] Correspondingly, after this step, the solid-state drive can use the front-end module to release the cache space corresponding to the cache address to be written in the flash write request according to the received front-end write completion message.
[0112] In this embodiment, in the embodiment of the present invention, the solid-state drive uses the FTL module to configure and send the front-end write completion message corresponding to the cache address to be written in the flash write request to the front-end module, so that the front-end module can release the cache space corresponding to the cache address to be written in the flash write request, enabling the FTL module to not wait for all wordlines of the same front-end write request to be written before replying to the front-end module with the write completion, but can prepare the front-end write completion message after receiving any wordline write completion, which can accelerate the release of the write request context and improve the performance of the solid-state drive.
[0113] Corresponding to the above method embodiments, an embodiment of the present invention further provides a data writing device for a solid-state drive. A data writing device for a solid-state drive described below can be correspondingly referred to with a data writing method for a solid-state drive described above.
[0114] Please refer to Figure 4 , Figure 4 which is a structural block diagram of a data writing device for a solid-state drive provided by an embodiment of the present invention. The device may include:
[0115] A request receiving unit 10, configured to receive a front-end write request sent by a front-end module by using a flash translation layer module; wherein, the front-end write request includes a preset number of cache addresses to be written, and the cache address to be written is a cache address corresponding to the data to be written with a preset cache granularity. The preset number is greater than or equal to 2, and the preset cache granularity is the data volume of the smallest programming unit corresponding to each flash type in the solid-state drive;
[0116] A request configuration unit 20, configured to configure a flash write request corresponding to the currently to-be-written flash according to the front-end write request and the flash type corresponding to each flash in the solid-state drive; wherein, the currently to-be-written flash is any flash, and the flash write request includes the cache address to be written corresponding to the data to be written with the current programming unit data volume; the current programming unit data volume is the programming unit data volume of the currently to-be-written flash;
[0117] A request sending unit 30, configured to send the flash write request to a flash module of the solid-state drive, so as to write the data to be written corresponding to the cache address to be written in the flash write request into the currently to-be-written flash through the flash module;
[0118] An information receiving unit 40, configured to update a mapping table of the solid-state drive according to the flash write completion information corresponding to the flash write request returned by the flash module, and release the cache space corresponding to the cache address to be written in the flash write request.
[0119] Optionally, the device may further include:
[0120] A data caching unit, configured to obtain the data to be written by the host by using a front-end module; write the data to be written into a cache space with a preset cache granularity; configure and send a front-end write request to a flash translation layer module according to the cache space and the preset number.
[0121] Optionally, the data caching unit may be specifically configured to, after the current cache space is full, determine the current cache space as a target cache space, and determine whether the number of target cache spaces reaches the preset number; if so, configure and send a front-end write request to the flash translation layer module according to the target cache space, and determine the target cache space as a non-target cache space. Optionally, the device may further include:
[0122] A completion return unit, configured to use the front-end module to send completion information corresponding to the data to be written to the host after the data to be written is successfully written.
[0123] Optionally, the device may further include:
[0124] A cache application unit, configured to use the front-end module to apply for a cache space with a preset cache granularity. Optionally, when the device is applied to a solid-state drive, the data cache unit may be specifically configured to use the front-end module to receive the data to be written corresponding to the nvme command sent by the host.
[0125] Optionally, when the device is applied to a solid-state drive, the information receiving unit 40 may be specifically configured to use the flash translation layer module to update the mapping table stored in the solid-state drive according to the flash write completion information corresponding to the flash write request returned by the flash module, and release the cache space in the solid-state drive corresponding to the cache address to be written in the flash write request.
[0126] Optionally, when the device is applied to a host, the information receiving unit 40 may be specifically configured to use the flash translation layer module to update the mapping table according to the flash write completion information corresponding to the flash write request returned by the flash module, and release the cache space in the host corresponding to the cache address to be written in the flash write request.
[0127] Optionally, the mapping table is stored in the host.
[0128] Optionally, the information receiving unit 40 may be specifically configured to use the flash translation layer module to configure and send the front-end write completion information corresponding to the cache address to be written in the flash write request to the front-end module, so as to use the front-end module to release the cache space corresponding to the cache address to be written in the flash write request.
[0129] Optionally, the front-end write request includes cache addresses, logical addresses, and interaction context information corresponding to a preset number of cache addresses to be written.
[0130] Optionally, when the device is applied to a solid-state drive, the device may further include:
[0131] A flash storage unit, configured to use the flash module to write the data to be written corresponding to the flash write request to the currently to-be-written flash through a flash programming command; after detecting that the data to be written corresponding to the flash write request is successfully written, configure and send the flash write completion information corresponding to the flash write request to the flash translation layer module. Optionally, the preset number is 3.
[0132] Optionally, the flash in the solid-state drive includes SLC flash, MLC flash, and TLC flash, and the preset cache granularity is 16K.
[0133] Optionally, the request configuration unit 20 includes:
[0134] A determination subunit, configured to determine a target data volume according to the flash memory type to be written into the flash memory currently; wherein, the target data volume is the data volume of the programming unit to be written into the flash memory currently.
[0135] An allocation subunit, configured to allocate write cache addresses corresponding to the data to be written with a target data volume by using the unallocated cache addresses in the front-end write request.
[0136] A configuration subunit, configured to configure a flash memory write request corresponding to the flash memory to be written currently according to the write cache addresses corresponding to the data to be written with a target data volume.
[0137] Optionally, the allocation subunit may be specifically configured to allocate write cache addresses corresponding to the data to be written with a target data volume by using the unallocated write cache addresses in the front-end write request according to the receiving order of each front-end write request.
[0138] In this embodiment, in the embodiment of the present invention, the request configuration unit 20 configures a flash memory write request corresponding to the flash memory to be written currently according to the front-end write request and the flash memory types corresponding to each flash memory in the solid-state drive, so that the flash translation layer module can release the binding relationship between the write request context and the cache space, without waiting for all the data to be written in multiple cache spaces corresponding to the same front-end write request to be completely written before releasing all the cache spaces, but can release the corresponding cache space after any wordline is written, reducing the processing time of the write process, improving the write performance of the solid-state drive, and being able to accelerate the release of the write request context, effectively saving the write process context resources.
[0139] Corresponding to the above method embodiment, the embodiment of the present invention further provides a solid-state drive. A solid-state drive described below can be mutually corresponding and referred to with the data write method of a solid-state drive described above.
[0140] Please refer to Figure 5 , Figure 5 which is a schematic structural diagram of a solid-state drive provided by the embodiment of the present invention. The solid-state drive may include:
[0141] A memory D1, configured to store a computer program;
[0142] A processor D2, configured to implement the steps of the data write method of the solid-state drive applied to the solid-state drive provided by the above method embodiment when executing the computer program.
[0143] Corresponding to the above method embodiment, the embodiment of the present invention further provides a host. A host described below can be mutually corresponding and referred to with the data write method of a solid-state drive described above.
[0144] Please refer toFigure 6 , Figure 6 This is a schematic structural diagram of a host provided by an embodiment of the present invention. The host may include:
[0145] A memory D3 for storing computer programs;
[0146] A processor D4 for implementing the steps of the data writing method for a solid-state drive applied to the host provided by the above method embodiment when executing the computer program.
[0147] Specifically, please refer to Figure 7 , Figure 7 This is a specific structural diagram of a host provided by an embodiment of the present invention. The host 310 may vary greatly due to different configurations or performances, and may include one or more processors (central processing units, CPUs) 322 (for example, one or more processors) and a memory 332, and one or more storage media 330 for storing application programs 342 or data 344 (for example, one or more mass storage devices). Among them, the memory 332 and the storage media 330 may be transient storage or persistent storage. The programs stored in the storage media 330 may include one or more units (not shown in the figure), and each unit may include a series of instruction operations on the host. Further, the central processor 322 may be configured to communicate with the storage media 330 and execute a series of instruction operations in the storage media 330 on the host 310.
[0148] The host 310 may further include one or more power supplies 326, one or more wired or wireless network interfaces 350, one or more input / output interfaces 358, and / or one or more operating systems 341. For example, Windows ServerTM, Mac OS XTM, UnixTM, LinuxTM, FreeBSDTM, etc.
[0149] Specifically, the host provided by this embodiment is specifically a computer device connected to a solid-state drive.
[0150] The steps in the data writing method for a solid-state drive applied to the host described above may be implemented by the structure of the host.
[0151] Corresponding to the above method embodiment, an embodiment of the present invention further provides a computer-readable storage medium. The computer-readable storage medium described below can be mutually corresponding and referred to with the data writing method for a solid-state drive described above.
[0152] A computer-readable storage medium stores a computer program thereon. When the computer program is executed by a processor, the steps of the data writing method for a solid-state drive provided in the above method embodiment are implemented.
[0153] Specifically, the computer-readable storage medium may be a U disk, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disc, etc., which are all computer-readable storage media capable of storing program codes.
[0154] In the description of the specification, the embodiments are described in a progressive manner. Each embodiment focuses on the differences from other embodiments. For the same and similar parts among the embodiments, reference can be made to each other. For the devices, solid-state drives, hosts, and computer-readable storage media disclosed in the embodiments, since they correspond to the methods disclosed in the embodiments, the description is relatively simple. For the relevant parts, reference can be made to the description in the method part.
[0155] The above has introduced in detail a data writing method, a device, a solid-state drive, a host, and a computer-readable storage medium provided by the present invention. Specific examples are used in this article to elaborate on the principle and implementation manner of the present invention. The description of the above embodiments is only used to help understand the method and its core idea of the present invention. It should be noted that for those of ordinary skill in the art in the technical field, without departing from the principle of the present invention, several improvements and modifications can still be made to the present invention, and these improvements and modifications also fall within the protection scope of the claims of the present invention.
Claims
1. A data writing method for a solid state drive, characterized in that, Including: Receiving a front-end write request sent by a front-end module by using a flash translation layer module; wherein, the front-end write request includes a preset number of cache addresses to be written, the cache addresses to be written are cache addresses corresponding to data to be written with a preset cache granularity, the preset number is greater than or equal to 2, and the preset cache granularity is the data volume of the smallest programming unit corresponding to each flash type in the solid-state drive; Configuring a flash write request corresponding to the currently to-be-written flash according to the front-end write request and the flash type corresponding to each flash in the solid-state drive; wherein, the currently to-be-written flash is any one of the flashes, and the flash write request includes a cache address to be written corresponding to data to be written with the current programming unit data volume; the current programming unit data volume is the programming unit data volume of the currently to-be-written flash; Sending the flash write request to the flash module of the solid-state drive to write the data to be written corresponding to the cache address to be written in the flash write request into the currently to-be-written flash through the flash module; Updating the mapping table of the solid-state drive according to the flash write completion information corresponding to the flash write request returned by the flash module, and releasing the cache space corresponding to the cache address to be written in the flash write request.
2. The data writing method for the solid state drive according to claim 1, wherein Before receiving the front-end write request sent by the front-end module by using the flash translation layer module, it further includes: Obtaining the data to be written by the host by using the front-end module; Writing the data to be written into the cache space with the preset cache granularity; Configuring and sending the front-end write request to the flash translation layer module according to the cache space and the preset number.
3. The data writing method of the solid-state drive according to claim 2, wherein The configuring and sending the front-end write request to the flash translation layer module according to the cache space and the preset number includes: After the current cache space is full, determining the current cache space as the target cache space, and judging whether the number of the target cache spaces reaches the preset number; If so, configuring and sending the front-end write request to the flash translation layer module according to the target cache space, and determining the target cache space as a non-target cache space.
4. The data writing method of the solid state drive according to claim 2, characterized in that, After writing the data to be written into the cache space with the preset cache granularity, it further includes: Using the front-end module to send a completion information corresponding to the data to be written to the host after the writing of the data to be written is completed.
5. The data writing method of the solid state drive according to claim 2, characterized in that Before obtaining the data to be written by the host by using the front-end module, it further includes: Applying for a cache space with the preset cache granularity by using the front-end module.
6. The data writing method of the solid state drive according to claim 2, wherein The obtaining the data to be written by the host by using the front-end module includes: The solid-state drive receives the data to be written corresponding to the nvme command sent by the host by using the front-end module.
7. The data writing method of the solid state drive according to claim 2, characterized in that The updating the mapping table of the solid-state drive according to the flash write completion information corresponding to the flash write request returned by the flash module, and releasing the cache space corresponding to the cache address to be written in the flash write request includes: The solid-state drive updates the mapping table stored in the solid-state drive by using the flash conversion layer module according to the flash write completion information corresponding to the flash write request returned by the flash module, and releases the cache space in the solid-state drive corresponding to the cache address to be written in the flash write request.
8. The data writing method of the solid state drive according to claim 2, wherein Updating the mapping table of the solid-state drive according to the flash write completion information corresponding to the flash write request returned by the flash module, and releasing the cache space corresponding to the cache address to be written in the flash write request includes: The host uses the flash conversion layer module to update the mapping table according to the flash write completion information corresponding to the flash write request returned by the flash module, and releases the cache space in the host corresponding to the cache address to be written in the flash write request.
9. The data writing method of the solid state drive according to claim 8, wherein, The mapping table is stored in the host.
10. The data writing method of the solid-state drive according to claim 1, wherein, Releasing the cache space corresponding to the cache address to be written in the flash write request includes: Using the flash conversion layer module to configure and send the front-end write completion information corresponding to the cache address to be written in the flash write request to the front-end module, so as to use the front-end module to release the cache space corresponding to the cache address to be written in the flash write request.
11. The data writing method of the solid state drive according to claim 1, characterized in that, The front-end write request includes the preset number of cache addresses to be written, logical addresses, and interaction context information.
12. The data writing method of the solid state drive according to claim 1, characterized in that, After sending the flash write request to the flash module, it further includes: The solid-state drive uses the flash module to write the data to be written corresponding to the flash write request into the currently writeable flash through a flash programming command. After detecting that the writing of the data to be written corresponding to the flash write request is completed, configure and send the flash write completion information corresponding to the flash write request to the flash conversion layer module.
13. The data writing method of the solid state drive according to claim 1, characterized in that, The preset number is 3.
14. The data writing method of the solid state drive according to claim 1, characterized in that, The flash in the solid-state drive includes SLC flash, MLC flash, and TLC flash, and the preset cache granularity is 16K.
15. The data writing method of the solid state drive according to any one of claims 1 to 14, characterized in that, Configuring the flash write request corresponding to the currently writeable flash according to the front-end write request and the flash type corresponding to each flash in the solid-state drive includes: Determining the target data volume according to the flash type of the currently writeable flash; wherein, the target data volume is the programming unit data volume of the currently writeable flash. Using the unallocated cache addresses to be written in the front-end write request to allocate the cache addresses to be written corresponding to the target data volume of the data to be written. Configuring the flash write request corresponding to the currently writeable flash according to the cache addresses to be written corresponding to the target data volume of the data to be written.
16. The data writing method of the solid state drive according to claim 15, characterized in that, Using the unallocated cache addresses to be written in the front-end write request to allocate the cache addresses to be written corresponding to the target data volume of the data to be written includes: According to the receiving order of each front-end write request, using the unallocated cache addresses to be written in the front-end write request to allocate the cache addresses to be written corresponding to the target data volume of the data to be written.
17. A data writing device for a solid state drive, characterized in that, Includes: A request receiving unit, configured to receive a front-end write request sent by a front-end module by using a flash translation layer module; wherein, the front-end write request includes a preset number of cache addresses to be written, the cache addresses to be written are cache addresses corresponding to data to be written with a preset cache granularity, the preset number is greater than or equal to 2, and the preset cache granularity is the data volume of the smallest programming unit corresponding to each flash type in the solid-state drive; A request configuration unit, configured to configure a flash write request corresponding to the currently to-be-written flash according to the front-end write request and the flash type corresponding to each flash in the solid-state drive; wherein, the currently to-be-written flash is any one of the flashes, and the flash write request includes the cache addresses to be written corresponding to the data to be written with the data volume of the current programming unit; the data volume of the current programming unit is the data volume of the programming unit of the currently to-be-written flash; A request sending unit, configured to send the flash write request to the flash module of the solid-state drive, so as to write the data to be written corresponding to the cache addresses to be written in the flash write request into the currently to-be-written flash through the flash module; An information receiving unit, configured to update the mapping table of the solid-state drive according to the flash write completion information corresponding to the flash write request returned by the flash module, and release the cache space corresponding to the cache addresses to be written in the flash write request.
18. A solid-state drive, characterized in that, Comprising: A memory, configured to store a computer program; A processor, configured to implement the steps of the data writing method of the solid-state drive according to any one of claims 1 to 7 and 10 to 16 when executing the computer program.
19. A host, characterized in that, Comprising: A memory, configured to store a computer program; A processor, configured to implement the steps of the data writing method of the solid-state drive according to any one of claims 1 to 5, 8 to 11 and 13 to 16 when executing the computer program.
20. A computer-readable storage medium, characterized in that, A computer program is stored on the computer-readable storage medium, and when the computer program is executed by a processor, the steps of the data writing method of the solid-state drive according to any one of claims 1 to 16 are implemented.
Citation Information
Patent Citations
Key value storage management method based on storage path optimization of flash memory
CN107678685A
User write request processing method of solid state disk adaptive to flash page difference
CN108829346A