Method for managing open-channel solid state disk and electronic device

By introducing a streamlined storage architecture into open channel SSDs, the problems of low hard drive performance and wasted storage space caused by redundant functions in storage system software and flash conversion layer are solved, achieving efficient data management and improved hard drive performance.

CN122240042APending Publication Date: 2026-06-19INSPUR SUZHOU INTELLIGENT TECH CO LTD

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
INSPUR SUZHOU INTELLIGENT TECH CO LTD
Filing Date
2026-05-22
Publication Date
2026-06-19

AI Technical Summary

Technical Problem

In existing technologies, functional redundancy between storage system software and flash memory conversion layer leads to problems such as low hard drive performance and wasted storage space.

Method used

The management approach of Open Channel SSDs is adopted. By introducing a streamlined storage architecture into the Open Channel SSD, including a streamlined layer, a disk array layer and a protocol layer, efficient management of storage space is achieved. Data storage and write-back functions are optimized by utilizing heat statistics resources, reducing physical block reclamation operations and efficient data migration.

Benefits of technology

It improves hard drive storage performance, reduces disk write/erase frequency, extends hard drive lifespan, and increases storage space utilization.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122240042A_ABST
    Figure CN122240042A_ABST
Patent Text Reader

Abstract

This application discloses a management method and electronic device for an open channel solid-state drive (SSD), relating to the field of SSD technology. It includes a reduced layer managing multiple physical blocks provided by a disk array layer, replacing the storage system software and flash memory conversion layer in related technologies to achieve the corresponding functions, thereby avoiding functional redundancy. The disk array layer provides all the storage space of the hard drive to the reduced layer for data storage, reducing storage space waste. By setting up memory heat statistics resources to characterize the access characteristics of data in memory, data with the same access characteristics are stored in the same physical block, reducing physical block reclamation operations and effective data migration, thereby greatly improving hard drive storage performance and reducing disk erase / write frequency, extending hard drive lifespan. This solves the technical problem of functional redundancy affecting hard drive performance and causing storage space waste, achieving the technical effects of avoiding functional redundancy, improving hard drive performance, and increasing space utilization.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of solid-state drive technology, and in particular to a management method and electronic device for an open channel solid-state drive. Background Technology

[0002] Storage controllers are primarily used for managing the hard drives and the data stored on them at the storage end, while also providing data access services to the server side. In recent years, solid-state drives (SSDs) have gradually replaced hard disk drives (HDDs) due to their extremely high performance advantages, becoming the main data storage medium in the storage field.

[0003] In high-capacity solid-state drives (SSDs), NAND flash memory is the primary storage medium. Flash memory possesses many unique characteristics compared to traditional hard disk media, including: erase-before-write, different read / write / erase granularity, and limited wear life (limited number of erase / write operations). SSDs provide a traditional read / write interface to the storage controller. Between this external interface and the flash memory controller, a Flash Translation Layer (FTL) is introduced to convert traditional read / write operations into internal flash memory read / write / erase operations. The main functions of the translation layer include address mapping, garbage collection, and wear leveling. However, since the SSD can only access the logical addresses provided externally, the storage system software and the flash translation layer share similar functions, such as address mapping and garbage collection. This leads to functional redundancy and further performance issues and wasted storage space. Summary of the Invention

[0004] This application provides a management method and electronic device for an open channel solid-state drive (SSD) to at least solve the problems in related technologies where redundant storage system software and flash memory conversion layer functions affect hard drive performance and lead to wasted storage space.

[0005] This application provides a management method for an Open Channel Solid State Drive (OSD). The OSD and the storage volume include a thin layer, a disk array layer, and a protocol layer. The disk array layer provides storage space from the OSD to the thin layer and divides the storage space into multiple physical blocks. The protocol layer sends erase commands to the OSD to erase data. The method is applied to the thin layer and includes: In response to receiving a data write request, the metadata and data to be written in the data write request are obtained, wherein the metadata includes the data length; According to the data length, free memory resources are obtained from the memory resource pool and the data to be written is stored in the free memory resources. The memory resources for writing the data to be written are then added to the dirty data memory chain. The current time is used as the last access time of the popularity statistics resource to which the memory resource belongs, and the access information of the popularity statistics resource to which the memory resource belongs is updated. When data flushing is triggered, the dirty data in the dirty data memory chain is stored in the target physical block corresponding to the write conditions satisfied by the target access information, based on the target access information of the target access information to the target access information to the target access information to the target access information target access conditions ...

[0006] This application also provides a management device for an Open Channel Solid State Drive (OSD). The OSD and the storage volume include a thin layer, a disk array layer, and a protocol layer. The disk array layer provides storage space from the OSD to the thin layer and divides the storage space into multiple physical blocks. The protocol layer sends erase commands to the OSD to erase data. The device is applied to the thin layer and includes: The information acquisition module is used to, in response to receiving a data write request, acquire the metadata and the data to be written in the data write request, wherein the metadata includes the data length; The first storage module is used to obtain free memory resources from the memory resource pool according to the data length and store the data to be written in the free memory resources, and to attach the memory resources for writing the data to be written to the dirty data memory chain; The information update module is used to use the current time as the last access time of the popularity statistics resource to which the memory resource belongs, and to update the access information of the popularity statistics resource to which the memory resource belongs; The second storage module is used to, when data flushing is triggered, store the dirty data in the dirty data memory chain into the target physical block corresponding to the write conditions satisfied by the target access information, based on the target access information of the target access information to the target access information of the target access information to the target access information to store the dirty data in the dirty data memory chain.

[0007] This application also provides an electronic device, including: a memory for storing a computer program; and a processor for implementing the steps of any of the above-described open channel solid-state drive management methods when executing the computer program.

[0008] This application also provides a computer-readable storage medium storing a computer program, wherein the computer program, when executed by a processor, implements the steps of any of the above-described open channel solid-state drive management methods.

[0009] This application also provides a computer program product, including a computer program that, when executed by a processor, implements the steps of any of the above-described open channel solid-state drive management methods.

[0010] This application establishes a thin layer, a disk array layer, and a protocol layer between the Open Channel SSD and the storage volume. The disk array layer provides storage space from the Open Channel SSD to the thin layer and divides the storage space into multiple physical blocks. The thin layer manages these physical blocks, handling tasks such as mapping volume logical addresses to disk array layer physical addresses, data aggregation and read / write, garbage collection, and wear leveling. It also provides storage services externally as a storage volume, replacing the storage system software and flash memory conversion layer used in related technologies, thus avoiding functional redundancy. The disk array layer provides all the hard drive's storage space to the thin layer for data storage, reducing storage space waste compared to related technologies where the hard drive only provides partial storage space. When the thin layer receives a data write request, it first obtains free memory resources from the memory resource pool based on the data length in the write request and stores the data to be written in the free memory resources. It also adds the memory resources used for writing the data to be written to the dirty data memory chain. By utilizing memory resources to allow data to remain in the thin layer, the write-back function of the storage controller is realized. The access information of the memory resource's heat statistics resource is updated by using the current time as the last access time of the memory resource's heat statistics resource. During data flushing, dirty data is stored in the target physical block corresponding to the write conditions satisfied by the target access information of the dirty data memory chain's heat statistics resource. By setting heat statistics resources for memory to characterize the access characteristics of data in memory, and in conjunction with the write conditions of physical blocks, data whose access characteristics meet the write conditions are written to the corresponding physical blocks. This achieves the storage of data with the same access characteristics in the same physical block, reducing physical block reclamation operations and efficient data migration, thereby greatly improving hard drive storage performance, reducing disk erase / write frequency, and extending hard drive lifespan. Therefore, it can solve the technical problem of functional redundancy affecting hard drive performance and causing storage space waste, achieving the technical effects of avoiding functional redundancy, improving hard drive performance, and increasing space utilization. Attached Figure Description

[0011] To more clearly illustrate the embodiments of this application, the accompanying drawings used in the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0012] Figure 1 A schematic diagram of a simplified storage architecture based on an open channel SSD provided for an exemplary embodiment of this application; Figure 2 A flowchart illustrating an exemplary embodiment of this application for managing an open channel solid-state drive; Figure 3This is a schematic diagram of a multi-level available physical block linked list as an exemplary embodiment of this application; Figure 4 This is a schematic diagram of the structure of a management device for an open channel solid-state drive provided in an embodiment of this application. Detailed Implementation

[0013] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the protection scope of this application.

[0014] It should be noted that, in the description of this application, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. The terms "first," "second," etc., in this application are used to distinguish similar objects and are not used to describe a specific order or sequence.

[0015] In related technologies, storage system software and flash translation layers share similar address mapping and garbage collection functions, leading to functional redundancy and further causing performance issues and wasted storage space. The emergence of open-channel solid-state drives (SSDs) offers a glimmer of hope for solving these problems. An open-channel SSD is a type of bare flash memory device that directly exposes its physical address and read / write / erase interfaces. The storage controller can directly perform read, write, and erase operations on specified flash memory addresses through these interfaces. The flash memory address contains internal layout information and can specify flash page addresses on different concurrent units. This application proposes a streamlined storage architecture based on open-channel SSDs and provides a management method for open-channel SSDs based on this architecture to solve the problems of wasted space, functional redundancy, and low performance in current storage systems.

[0016] To enable those skilled in the art to better understand the present application, the present application will be further described in detail below with reference to the accompanying drawings and specific embodiments.

[0017] The specific application environment architecture or specific hardware architecture on which the management method of Open Channel SSDs depends is described here.

[0018] Figure 1This diagram illustrates a simplified storage architecture based on an Open Channel SSD, provided as an exemplary embodiment of this application. The Open Channel SSD exposes all its NAND flash memory space addresses to the storage controller and provides read / write interfaces. The protocol layer sends instructions to the SSD through these interfaces. Above the protocol layer is the Redundant Arrays of Independent Disks (RAID) layer, where backend SSDs form RAID arrays of different fault tolerance levels to provide redundant data protection. Above the RAID layer is the simplified layer, which is responsible for mapping volume logical addresses to RAID physical addresses, data aggregation read / write, garbage collection, wear leveling, etc., and provides storage services externally in the form of storage volumes. The protocol layer, RAID layer, and simplified layer are components of the storage controller for the Open Channel SSD. The simplified layer performs read / write operations on the backend SSD by executing the Open Channel SSD management method of this embodiment.

[0019] like Figure 1 As shown, the relationship between the Open Channel SSD and the storage volume includes a thin layer, a disk array layer, and a protocol layer. The disk array layer provides storage space from the Open Channel SSD to the thin layer and divides the storage space into multiple physical blocks. The protocol layer sends erase commands to the Open Channel SSD to erase data. Figure 1The storage architecture shown requires initialization of each component. During RAID layer initialization, the protocol layer first sends a query command to the disk to obtain the smallest write unit of the backend disk, denoted as `size_block_disk`. For example, the smallest write unit of a typical disk is `size_block_disk = 512kB`, and then passes this value to the RAID layer. Next, the RAID layer divides the disk into data blocks of uniform size according to the smallest write unit of the backend disk or an integer multiple thereof, and establishes RAID 0 to RAID 6 for each disk's data blocks according to different fault tolerance levels. The RAID layer provides storage space to the thin layer, and divides this storage space into physical blocks according to integer multiples of the RAID layer's basic space unit. This data organization method, aligning the smallest storage units from the disk to the RAID layer to the thin layer, ultimately serves the disk's block-level erase function. During the thin-layer initialization, the thin-layer memory resources are initialized, including: requesting a specified amount of memory from the operating system based on the storage controller's battery capacity to support the amount of memory written to disk, and organizing and managing this memory at a 4kB granularity (memory page granularity) to form a thin-layer write memory resource pool (memory_pool) for front-end write I / O to handle data retrieval; the thin-layer write memory resources are managed in two parts: one is the available memory resource chain (free_memory_list), to which all available write memory is added during system initialization; the other is the dirty data memory chain (dirty_memory_list), which contains memory that has received front-end write I / O data but whose data has not yet been written to the back-end disk; and preparing write heat statistics resource regions (referred to as heat statistics resources), forming a heat statistics resource pool. One heat statistics resource is used for each fixed-length storage capacity address, for example, one heat statistics resource is used for each 4MB address. The heat statistics resource pool exists in the form of resource chains and follows the Least Recently Used (LRU) principle. In the Used (LRU) method, all region member variables on the chain are initialized to 0xffffff during initialization, indicating an unused state. The number of region resources is typically at least 1000 times (memory_pool resources / 4M). The pseudocode for defining a popularity statistics resource region is as follows: Struct region{ uint32 lun_id; / / Volume ID uint32 LBA; / / Logical address uint32 time_access_last; / / Last access time uint32 access_count; / / Number of accesses }

[0020] This application provides a management method for an Open Channel Solid State Drive (OSD). This method can be executed by the OSD management device provided in this application. The device can be implemented in software and / or hardware and can be integrated into [the OSD management system]. Figure 1 The simplified layer is shown below. The method will be described in detail below, taking into account the execution flow of the open channel solid-state drive management method.

[0021] Figure 2 A flowchart illustrating an exemplary embodiment of the present application provides a method for managing an open channel solid-state drive, as shown below. Figure 2 As shown, the management method for this open channel solid-state drive may include the following steps: Step 101: In response to receiving a data write request, obtain the metadata and the data to be written from the data write request. The metadata includes the data length.

[0022] When the host needs to write data to the Open Channel SSD, it issues a data write request (write I / O). The data write request typically includes two parts: metadata and the data to be written. The metadata includes at least the following information: the volume address to which this I / O belongs (i.e., lun_id), the logical block address (LBA) of the data start, the data length, and read / write attributes. Upon receiving the data write request, the data to be written and the data length can be obtained from the data write request.

[0023] Step 102: Obtain free memory resources from the memory resource pool according to the data length and store the data to be written in the free memory resources. Then, attach the memory resources for writing the data to be written to the dirty data memory chain.

[0024] In this embodiment, based on the length of the acquired data, free memory resources can be obtained from the memory resource pool of the simplified layer, and the acquired data to be written can be stored in the free memory resources. Then, the memory resources for writing the data to be written can be added to the dirty data memory chain.

[0025] For example, the memory resource pool is divided into two parts: the available memory resource chain free_memory_list and the dirty data memory chain dirty_memory_list. Based on the data length, free memory resources of the corresponding size are requested from the available memory resource chain free_memory_list to accommodate the data. After the data to be written is stored in the requested memory resources, the memory resources after accommodating the data are added to the head of the dirty data memory chain dirty_memory_list in the memory resource pool.

[0026] Step 103: Use the current time as the last access time of the popularity statistics resource to which the memory resource belongs, and update the access information of the popularity statistics resource to which the memory resource belongs.

[0027] As mentioned earlier, each fixed-length storage capacity address uses a heat statistics resource. In this embodiment, for the memory resource used to receive the data to be written, its corresponding heat statistics resource can be determined, and the current time can be obtained as the last access time of the heat statistics resource to which the memory resource belongs. This is used to update the access information of the heat statistics resource to which the memory resource belongs, that is, to update the last access time in its access information to the current time. Optionally, the heat statistics resource to which the memory resource belongs can be inserted at the head of the heat statistics resource chain to keep the most recently updated heat statistics resource always at the head of the chain, while heat statistics resources that have not been updated will be at the tail of the chain.

[0028] Step 104: When triggering data flushing, based on the target access information of the heat statistics resource to which the dirty data memory chain belongs, the dirty data in the dirty data memory chain is stored in the target physical block corresponding to the write conditions satisfied by the target access information.

[0029] In this embodiment, data flushing is triggered when write memory resources are exhausted, a specified dirty data flushing cycle is reached, or a flushing command is received from the user. At this time, dirty data needs to be flushed to the backend disk, which means that dirty data in the dirty_memory_list of the memory resource pool is removed from the end and written to the backend disk. In this embodiment, when data flushing is triggered, the thin layer stores the dirty data in the dirty data memory chain into the target physical block corresponding to the write conditions satisfied by the target access information, based on the target access information of the heat statistics resource to which the dirty data memory chain belongs.

[0030] For example, multiple physical blocks are divided into two parts. One part is used to store dirty data whose last write time is more than 1 hour from the current time. That is, the write condition for this part of the physical blocks is that the last write time is more than 1 hour from the current time. The other part is used to store dirty data whose last write time is less than 1 hour from the current time. When writing dirty data to physical blocks according to the target access information of the heat statistics resource to which the dirty data memory chain belongs, the last access time is obtained from the target access information, and the time difference between the last access time and the current time is calculated. For dirty data in the dirty data memory chain with a time difference of more than 1 hour, it is stored in the target physical block whose write condition is that the last write time is more than 1 hour from the current time. For dirty data in the dirty data memory chain with a time difference of less than 1 hour, it is stored in the target physical block whose write condition is that the last write time is less than 1 hour from the current time.

[0031] In this embodiment of the application, after the dirty data on the dirty data resource chain is flushed down to the physical block, the memory resources corresponding to the dirty data flushed down this time can be released to the available memory resource chain free_memory_list to realize the reuse of memory resources, so that subsequent written data can obtain the corresponding memory resources to carry it.

[0032] In one optional embodiment of this application, after writing dirty data to the target physical block, the effective data volume of the target physical block can be updated. That is, each block maintains a variable used_size to record the effective data volume in the corresponding block, which is updated according to the following rule: used_size = used_size + the amount of dirty data written this time.

[0033] In one optional embodiment of this application, after each data flush, the mapping relationship between the logical address (LBA) and the physical address (PBA) can be updated. The update rules are as follows: If the dirty data corresponds to an LBA address that was originally mapped to a PBA, then the corresponding block is found according to the original PBA, and the corresponding part of the dirty data in the block is set to invalid. The effective data volume of the corresponding block is updated to used_size minus the amount of dirty data written this time, and the physical address mapped to the LBA is updated to the starting physical address of the dirty data in this block. If the LBA address corresponding to the dirty data does not have an originally mapped PBA, then the mapping relationship between the LBA corresponding to the dirty data and the starting physical address of the dirty data in this block is directly established. The open channel solid-state drive (OSD) management method of this application embodiment establishes a thin layer, a disk array layer, and a protocol layer between the OSD and the storage volume. The disk array layer provides storage space from the OSD to the thin layer and divides the storage space into multiple physical blocks. The thin layer manages these physical blocks, handling tasks such as mapping volume logical addresses to disk array layer physical addresses, data aggregation and read / write, garbage collection, and wear leveling. It also provides storage services externally in the form of a storage volume, replacing the storage system software and flash conversion layer used in related technologies to achieve the corresponding functions, thus avoiding functional redundancy. By providing all the storage space of the hard drive to the thin layer through the disk array layer, compared to the method in related technologies where the hard drive can only provide a portion of the space for data storage, storage space waste is reduced. When the thin layer receives a data write request, it first obtains free memory resources from the memory resource pool according to the data length in the data write request and stores the data to be written in the free memory resources, and then attaches the memory resources for writing the data to be written. The dirty data memory chain, by utilizing memory resources, allows data to remain in the thin layer, thereby enabling the write-back function of the storage controller. It updates the access information of the memory resource's heat statistics resource using the current time as the last access time. During data flushing, dirty data is stored in the target physical block corresponding to the write conditions satisfied by the target access information of the heat statistics resource. By setting heat statistics resources for memory to characterize the access characteristics of data in memory, and in conjunction with the write conditions of physical blocks, data whose access characteristics meet the write conditions are written to the corresponding physical blocks. This allows data with the same access characteristics to be stored in the same physical block, reducing physical block reclamation operations and efficient data migration, thereby significantly improving hard drive storage performance, reducing disk erase / write frequency, and extending hard drive lifespan. Therefore, it can solve the technical problem of functional redundancy affecting hard drive performance and causing storage space waste, achieving the technical effects of avoiding functional redundancy, improving hard drive performance, and increasing space utilization.

[0034] In one optional embodiment of this application, the access information of the popularity statistics resource also includes the number of accesses, and the metadata includes the volume address and the data starting logical address. Before updating the access information of the popularity statistics resource to which the memory resource belongs by using the current time as the last access time, the popularity statistics resource to which the memory resource belongs can be determined first, and then its access information can be updated, including updating the last access time and updating the number of accesses. Specifically, it can be determined whether there is a popularity statistics resource to which the memory resource belongs on the popularity statistics resource chain based on the volume address and the data starting logical address. For example, the data starting logical address can be divided by a fixed length (e.g., 4M, the same as the storage capacity address length corresponding to a popularity statistics resource) to obtain an updated address (data starting logical address / 4M). Based on the updated address and the volume address, the popularity statistics resource chain is searched to see if the corresponding popularity statistics resource exists. If a popularity statistics resource matching the updated address and volume address is found on the popularity statistics resource chain, it is considered that there is a popularity statistics resource to which the memory resource belongs; otherwise, it is considered that there is no such resource. If it is determined that a heat statistics resource belonging to a memory resource exists on the heat statistics resource chain, then it is further determined whether the time interval between the current last access time of the heat statistics resource belonging to the memory resource and the current time exceeds a first preset duration. The specific value of the first preset duration can be set according to actual needs, for example, the first preset duration can be set to 24 hours. The current last access time of the heat statistics resource belonging to the memory resource can be obtained from its access information. This current last access time is the time of the last update, which is earlier than the current time. If the time interval exceeds the first preset duration, the access count of the heat statistics resource belonging to the memory resource is set to 1, that is, access_count=1; if the time interval does not exceed the first preset duration, the access count of the heat statistics resource belonging to the memory resource is incremented by 1, that is, access_count=access_count+1.

[0035] In this embodiment, the existence of a heat statistics resource belonging to a memory resource in the heat statistics resource chain is determined based on the volume address and data start logical address in the data write request. If it is determined that the memory resource belongs to a heat statistics resource, it is further determined whether the time interval between the last access time of the memory resource and the current time exceeds a first preset time. If the time interval exceeds the first preset time, the access count of the memory resource belongs to the heat statistics resource is set to 1. If the time interval does not exceed the first preset time, the access count of the memory resource belongs to the heat statistics resource is incremented by 1. Thus, when a heat statistics resource belonging to a memory resource is matched, the access count is updated according to the distance between the last access time of the heat statistics resource (i.e., the time of the last access) and the current time. This allows the access count to accurately reflect the access frequency of the corresponding memory resource, providing a condition for subsequently storing dirty data separately to the corresponding physical blocks according to the access count.

[0036] Further, in an optional embodiment of this application, if it is determined that there is no heat statistics resource to which the memory resource belongs on the heat statistics resource chain, then the target heat statistics resource located at the tail of the heat statistics resource chain is obtained, that is, the target heat statistics resource is the last region on the heat statistics resource chain; then, based on the volume address and the data start logical address, the target heat statistics resource is initialized to obtain the heat statistics resource to which the memory resource belongs, wherein the access count of the heat statistics resource to which the memory resource belongs is set to 1. That is, when there is no heat statistics resource to which the memory resource belongs on the heat statistics resource chain, the last region on the heat statistics resource chain is extracted and reinitialized with the current IO information (i.e., the relevant address information in this data write request), the initialization content includes: region.lun_id=lun_id (i.e., the volume address in the data write request); region.lba=LBA / 4M (i.e., the data start logical address in the data write request / 4M); region.aceess_count=1.

[0037] Next, for the memory resources to which the matching memory resources belong, or the memory resources to which the re-initialized memory resources belong, their last access time (time_access_last) can be updated to the current time.

[0038] In this embodiment, when there is no heat statistics resource belonging to the memory resource to which the data is being written, the target heat statistics resource is obtained from the tail of the heat statistics resource chain. Based on the volume address and the starting logical address of the data, the target heat statistics resource is initialized to obtain the heat statistics resource to which the memory resource belongs. At the same time, its access count is set to 1. Since the heat statistics resource updated each time is inserted at the head of the heat statistics resource chain, the tail of the heat statistics resource chain is the heat statistics resource that has not been updated for the longest time. Obtaining the heat statistics resource from the tail and initializing it to the heat statistics resource to which the memory resource to be written belongs can release cold data space, minimize the impact of initializing the heat statistics resource on the already written data, and ensure data security.

[0039] In one optional embodiment of this application, the access information of each heat statistics resource includes the last access time and the number of accesses. Based on this, when storing dirty data in the dirty data memory chain into the target physical block corresponding to the write conditions satisfied by the target access information according to the target access information of the heat statistics resource to which the dirty data memory chain belongs, the dirty data can be stored into a suitable target physical block by combining the last access time (referred to as the target last access time for ease of description and distinction) and the number of accesses (referred to as the target number of accesses for ease of description and distinction) in the target access information. Specifically, the target last access time and the target number of accesses in the target access information of the heat statistics resource to which the dirty data memory chain belongs can be obtained, and the time difference between the target last access time and the current time can be determined. The time difference is compared with a second preset duration, wherein the second preset duration can be set according to actual needs, for example, the second preset duration can be set to 1 hour. If the time difference is greater than the second preset duration, the dirty data in the dirty data memory chain is stored in the first physical block. The write condition for the first physical block is that the access time exceeds the second preset duration. If the time difference is not greater than the second preset duration, the dirty data in the dirty data memory chain is stored in the second physical block according to the target access count. The write condition for the second physical block is that the access count within the second preset duration meets the preset number requirement. It is understood that there can be multiple second physical blocks, each used to store dirty data that meets the corresponding access count requirement within the second preset duration. For example, one physical block can be used to store dirty data accessed once within the second preset duration (i.e., the write condition is one access within the second preset duration); one physical block can be used to store dirty data accessed no more than three times within the second preset duration (i.e., the write condition is two or three accesses within the second preset duration); and one physical block can be used to store dirty data accessed more than three times within the second preset duration (i.e., the write condition is more than three accesses within the second preset duration).

[0040] In this embodiment, by obtaining the target's last access time and target access count from the target access information, and determining the time difference between the target's last access time and the current time, dirty data with a time difference greater than a second preset duration is stored in a first physical block whose write condition is that the access time exceeds the second preset duration. For dirty data with a time difference not greater than the second preset duration, it is stored in a second physical block whose write condition is that the access count within the second preset duration meets a preset number requirement. Thus, dirty data is classified and stored separately according to the access count and the last access time. Different physical blocks are used to store data with different access characteristics, so that dirty data with the same access characteristics are stored in the same physical block. This reduces block reclamation operations and effective data migration, thereby greatly improving disk storage performance and reducing the frequency of backend disk erasure and writing, increasing the lifespan of the backend disk, and also providing convenience for physical block management.

[0041] In one optional embodiment of this application, the simplified layer can establish a multi-level linked list of available blocks based on the number of erases for each physical block. Assuming the number of linked lists is n, for example... Figure 3 The multi-level available block list (free_block_list) shown has n=5 blocks. Head-0 is used to link physical blocks with 0 erase counts, head-1 to link physical blocks with 1 erase count, head-2 to link physical blocks with 2 erase counts, head-3 to link physical blocks with 3 erase counts, and head-4 to link physical blocks with 4 erase counts. This list has a variable `min_erase` that records the minimum number of erase counts among all blocks, initialized to 0. It also has a variable `min_index` that records which list currently contains the block with the fewest erase counts, also initialized to 0. Initially, all physical blocks in the reduced layer are linked into the head-0 list pointed to by `min_index`, which is initially empty (null). Six blocks are extracted from the list pointed to by `min_index` and assigned to the following six pointers to record their addresses: 24h_block_ptr: Used to store dirty data that has been accessed for more than 24 hours; 12h_block_ptr: Used to store dirty data that has been accessed for more than 12 hours; 1h_block_ptr: Used to store dirty data that has been accessed for more than 1 hour; immediate_1_block_ptr: Used to store dirty data that has been accessed once within the last hour; immediate_3_block_ptr: Used to store dirty data that has been accessed no more than 3 times within the last hour; immediate_block_ptr: Used to store dirty data that has been accessed more than 3 times within 1 hour.

[0042] Therefore, in this embodiment of the application, when storing dirty data in the dirty data memory chain to the target physical block according to the target access information of the heat statistics resource to which the dirty data memory chain belongs, the following processing can be performed based on the time difference between the current time and the last access time of the region range to which the dirty data belongs: if the time difference is greater than 1h, the dirty data is appended to the tail of the physical blocks corresponding to 1h_block_ptr, 12h_block_ptr, and 24h_block_ptr according to the time difference, and the corresponding physical address PBA is recorded; if the time difference is less than 1h, the dirty data is appended to the tail of the physical blocks corresponding to immediate_1_block_ptr, immediate_3_block_ptr, and immediate_block_ptr according to the number of accesses to the region range to which the dirty data belongs, and the corresponding physical address PBA is recorded. The recorded PBA is used to update the mapping relationship between LBA and PBA. Therefore, by setting up multiple physical blocks to store dirty data that meets different write conditions, dirty data with different access times within one hour are stored in different physical blocks, and dirty data whose last access time is more than one hour and dirty data whose last access time is less than one hour are stored in different physical blocks, fine-grained block storage is achieved, which provides convenience for managing physical blocks.

[0043] In one optional embodiment of this application, the simplified layer includes multiple physical block linked lists. Different physical block linked lists are used to link physical blocks with different erase counts. A minimum index variable (denoted as min_index) is set to record the index value of the physical block linked list with the minimum erase count. For example... Figure 3The method of this application, after storing dirty data from the dirty data memory chain into the target physical block, can also detect whether the target physical block is full, and if it is full, remove a new physical block from the chain for writing dirty data. Therefore, in this embodiment, after writing dirty data into the target physical block, the remaining space of the target physical block can be obtained. If the remaining space of the target physical block is less than a preset value, a physical block is removed from the first physical block chain pointed to by the smallest index variable as the physical block corresponding to the write condition, used to store dirty data that meets the write condition. The preset value can be set according to actual needs. When the remaining space of the target physical block is less than the preset value, it is considered that the target physical block for this dirty data writing is full. At this time, a physical block needs to be removed from the physical block chain with the fewest current erase counts pointed to by the smallest index variable (referred to as the first physical block chain for ease of description and distinction) to store subsequent dirty data. The newly removed physical block has the same write condition as the target physical block for this dirty data writing. For example, when dirty data is written to the block corresponding to immediate_block_ptr, when the block is full, one block is taken from the linked list pointed to by min_index and given back to immediate_block_ptr for subsequent dirty data storage.

[0044] In this embodiment, multiple physical block lists are set up to link physical blocks with different erase counts, and a minimum index variable is set to record the index value of the physical block list with the minimum erase count. After storing dirty data from the dirty data memory chain into the target physical block, if the remaining space of the target physical block is less than a preset value, a physical block is extracted from the first physical block list pointed to by the minimum index variable as the physical block corresponding to the same write condition, and used to store dirty data that meets the corresponding write condition. Thus, a multi-level linked list is established for free blocks based on the number of physical block erases, and the physical block with the minimum number of erases is selected first to store dirty data, so that the use of each physical block is kept as balanced as possible, achieving balanced wear on the hard drive and thus improving the hard drive's lifespan.

[0045] Furthermore, if the first physical block list pointed to by the minimum index variable has no available free blocks, then free blocks need to be extracted from other physical block lists to store subsequent dirty data. Therefore, in one optional embodiment of this application, when there are no free physical blocks in the first physical block list pointed to by the minimum index variable, the value of the minimum index variable is updated, i.e., min_index = (min_index + 1) % n, where n is the number of lists; then, a physical block is extracted from the second physical block list pointed to by the updated minimum index variable as the physical block corresponding to the write condition, used to store dirty data that meets the write condition, i.e., the write condition of the newly extracted physical block is the same as the write condition of the target physical block that is currently filled. Thus, when there are no free physical blocks in the first physical block list pointed to by the minimum index variable, the value of the minimum index variable is further updated, and a physical block is then selected from the second physical block list pointed to by the updated minimum index variable as a physical block with the same write conditions as the target physical block that is full. Since the minimum index variable records the index value of the physical block list with the fewest erase counts, by updating the minimum index variable and selecting a physical block from the list pointed to by the updated value, it can still be guaranteed that the selected physical block is the one with the fewest erase counts, thereby ensuring that the use of each physical block is balanced.

[0046] In one optional embodiment of this application, a minimum erase count variable (denoted as min_erase) can be set to record the minimum erase count among all physical blocks. The initial value is 0. After determining that there are no free physical blocks in the first physical block list, the value of the minimum erase count variable is incremented by 1, i.e., min_erase += 1. This is because initially, all physical blocks are linked into the head-0 list with a minimum erase count of 0, so min_erase = 0. When there are no free blocks available in the head-0 list, the data in the block needs to be erased before new data can be written. Therefore, the value of min_erase is incremented by 1, and the block that has been erased once is linked into the head-1 list. Thus, when there are no free blocks available in the head-0 list, a new physical block can be retrieved from the head-1 list by updating the value of the minimum index variable. Therefore, by incrementing the value of the minimum erase count variable by 1 when there are no free physical blocks in the first physical block list, the minimum erase count of physical blocks can be updated and accurately recorded in a timely manner.

[0047] When the storage capacity provided by the thin layer is lower than a certain threshold of its total capacity, such as 20%, the space occupied by invalid data needs to be reclaimed. For example, the block with the highest invalid space occupancy rate can be selected from all used blocks for reclamation based on the invalid space occupancy rate. Thus, in an optional embodiment of this application, multiple physical blocks each correspond to a data write variable (denoted as used_size) to record the amount of data written in the corresponding physical block. When performing garbage collection on a block, the invalid space occupancy rate corresponding to the used physical block can be determined first based on the value of the data write variable corresponding to the used physical block, i.e., invalid space occupancy rate = 1 – used_size / block_size, where block_size represents the size of the physical block. Next, based on the invalid space occupancy rate, physical blocks to be reclaimed are determined from the used physical blocks. The physical blocks to be reclaimed are those with the highest invalid space occupancy rate among the used physical blocks. Then, the data in the physical blocks to be reclaimed is moved to the third physical block. After the data is moved, the logical address of the physical blocks to be reclaimed is translated through the disk array layer. The translated physical address is sent to the protocol layer, which then issues an erase command to the open channel solid-state drive to erase the data in the corresponding physical block.

[0048] The selection of the third physical block can follow these rules: Find the corresponding heat statistics resource based on the LBA of the data in the physical block to be reclaimed. Then, based on the access frequency and last access time of the corresponding heat statistics resource, move the data in the physical block to be reclaimed to the corresponding physical block. If no corresponding heat statistics resource is found, move the data in the physical block to be reclaimed to 1h_block_ptr. The reference point is that the absence of a corresponding region indicates that this part of the data has a low access frequency. Finally, update the LBA->PBA address mapping of this valid data according to the third physical block to which it has been moved.

[0049] After the data in the physical blocks to be moved is moved, its address can be translated through the RAID layer and sent to the protocol layer. The protocol layer then sends the encapsulated erase / write command to each disk to perform the data erasure operation on the corresponding physical blocks.

[0050] Further, in an optional embodiment of this application, after erasing the data in the physical block to be reclaimed, the physical block to be reclaimed becomes a usable free physical block. The erasure count corresponding to the physical block to be reclaimed is incremented by 1 to obtain the current erasure count. Then, based on the current erasure count, the physical block to be reclaimed (with erased data) can be added to the free linked list corresponding to the simplified layer. Specifically, if the current erasure count is less than the value of the minimum erasure count variable, the physical block to be reclaimed is linked to the head of the third physical block linked list pointed to by the minimum index variable, where the minimum erasure count variable is used to record the minimum erasure count among all physical blocks. If the current erasure count is equal to the value of the minimum erasure count variable, the physical block to be reclaimed is linked to the tail of the third physical block linked list. If the current erasure count is greater than the value of the minimum erasure count variable, the linked list index value is determined based on the current erasure count, the value of the minimum erasure count variable, and the number of linked lists of multiple physical block linked lists, and the physical block to be reclaimed is linked to the tail of the fourth physical block linked list pointed to by the linked list index value.

[0051] In one optional embodiment of this application, when determining the linked list index value based on the current erase count, the value of the minimum erase count variable, and the number of linked lists in the multiple physical block linked lists, the difference between the current erase count and the minimum erase count variable can be determined first. Let's assume the difference is denoted as erase_delta and the minimum erase count variable is denoted as min_erase, then erase_delta = current erase count - min_erase. Next, based on the difference and the number of linked lists in the multiple physical block linked lists, a candidate index value is determined. For example, let the candidate index value be denoted as index_delta and the number of linked lists in the multiple physical block linked lists be n, then index_delta = min(erase_delta, n-1). Then, based on the candidate index value and the number of linked lists in the multiple physical block linked lists, the linked list index value is determined. For example, let's assume the linked list index value is denoted as index, then index = (index_delta + min_index) % n.

[0052] In this embodiment, a multi-level linked list is established for free blocks based on the number of times the blocks are rubbed. Each time, the block with the fewest number of rubbed times and the longest last rubbed time is used first. At the same time, the minimum number of erases is continuously updated to keep the use of blocks as balanced as possible, thereby achieving balanced wear on the SSD and improving the lifespan of the disk.

[0053] In this application's scheme, initially all physical blocks are linked into a linked list head-0 with a minimum erase count of 0 and min_erase=0. When there are no free blocks available in the head-0 linked list, the data in the block is erased and min_erase is updated. The block that has been erased once is linked into the head-1 linked list. By updating the value of the minimum index variable, a new physical block is retrieved from the head-1 linked list. Similarly, when there are no free blocks available in the head-1 linked list, the data in the block is erased and min_erase and the minimum index variable are updated. The free block after data erasure is linked into the head-2 linked list. By updating the value of the minimum index variable, a new physical block is retrieved from the head-2 linked list. This process continues. By continuously erasing data, updating min_erase and the minimum index variable, and linking free blocks into the corresponding linked lists, it is ensured that at least one level of the physical block linked list in the multi-level available block linked list has a free block available. This achieves continuous block availability and avoids the risk of write deadlock caused by no available blocks in any level of the physical block linked list. Furthermore, when the storage capacity provided by the thin layer is lower than a certain threshold of its total capacity, the space occupied by invalid data is reclaimed, and the free physical blocks after data reclamation are linked into the corresponding linked list according to the number of erases. This also ensures that at least one level of the physical block linked list in the multi-level available block list has free blocks available, realizing the continuous availability of blocks and avoiding the risk of write deadlock caused by no available blocks in the physical block linked lists at all levels.

[0054] In summary, this application constructs a three-tier streamlined storage architecture based on open-channel SSDs, abandoning the traditional FTL layer to eliminate functional redundancy and innovatively achieving full-level alignment of storage units. It designs a data-hot-based tiered storage system and an LRU-style dirty data flushing mechanism, coupled with intelligent garbage collection and a multi-level linked list wear leveling strategy. This not only improves the IO processing performance and storage space utilization of the storage system but also reduces the frequency of SSD disk erases and writes, effectively extending their lifespan. Simultaneously, it achieves refined management and efficient flushing of dirty data, reducing system resource consumption and balancing storage performance, resource utilization, and hardware wear. This provides a more efficient, economical, and stable storage solution for high-performance storage scenarios such as enterprise-level storage and cloud data centers, significantly enhancing the technical competitiveness and market adaptability of storage products. This solution improves space utilization by eliminating storage functional redundancy, reduces SSD erase and write frequencies, extends hardware lifespan, reduces hardware procurement and replacement costs, and optimizes the architecture to reduce computing power consumption, saving on maintenance costs. This solution combines architectural innovation with practical value, breaking through the bottlenecks of traditional storage architectures.

[0055] Through the above description of the embodiments, those skilled in the art can clearly understand that the methods according to the above embodiments can be implemented by means of software plus necessary general-purpose hardware platforms. Of course, they can also be implemented by hardware, but in many cases the former is a better implementation method.

[0056] The embodiments of this application also provide a management device for an Open Channel Solid State Drive (OSD). The OSD and the storage volume include a thin layer, a disk array layer, and a protocol layer. The disk array layer is used to provide storage space of the OSD to the thin layer and divide the storage space into multiple physical blocks. The protocol layer is used to send erase commands to the OSD to erase data. The device is applied to the thin layer.

[0057] Figure 4 This is a schematic diagram of the structure of a management device for an open channel solid-state drive provided in an embodiment of this application, as shown below. Figure 4 As shown, the management device 50 for the open channel solid-state drive includes: an information acquisition module 510, a first storage module 520, an information update module 530, and a second storage module 540.

[0058] Among them, the information acquisition module 510 is used to acquire the metadata and data to be written in the data writing request in response to receiving the data writing request. The metadata includes the data length. The first storage module 520 is used to obtain free memory resources from the memory resource pool according to the data length and store the data to be written in the free memory resources, and to attach the memory resources for writing the data to be written to the dirty data memory chain. The information update module 530 is used to update the access information of the memory resource to which the popularity statistics resource belongs by taking the current time as the last access time. The second storage module 540 is used to, when triggering data flushing, store dirty data in the dirty data memory chain into the target physical block corresponding to the write conditions satisfied by the target access information, based on the target access information of the hot statistics resource to which the dirty data memory chain belongs.

[0059] Optionally, the access information for the popularity statistics resource also includes the number of accesses, and the metadata includes the volume address and the logical address where the data originates; the management device 50 for the open channel solid-state drive also includes: The first judgment module is used to determine whether there is a heat statistics resource belonging to a memory resource in the heat statistics resource chain based on the volume address and the data start logical address; The second judgment module is used to determine whether the time interval between the last access time of the memory resource and the current time exceeds the first preset duration when there is a memory resource belonging to the memory resource in the heat statistics resource chain. The first update module is used to set the access count of the popularity statistics resource to which the memory resource belongs to 1 when the time interval exceeds the first preset duration. The second update module is used to increment the access count of the popularity statistics resource to which the memory resource belongs by 1 if the time interval does not exceed the first preset duration.

[0060] Further optionally, the management device 50 for the open channel solid-state drive also includes: The resource acquisition module is used to acquire the target popularity statistics resource located at the end of the popularity statistics resource chain when there is no popularity statistics resource to which the memory resource belongs in the popularity statistics resource chain. The initialization module is used to initialize the target popularity statistics resource based on the volume address and the starting logical address of the data, and obtain the popularity statistics resource to which the memory resource belongs. The access count of the popularity statistics resource to which the memory resource belongs is set to 1.

[0061] Optionally, the second storage module 540 is also used for: Retrieve the last access time and the number of accesses of the target from the target access information of the heat statistics resource to which the dirty data memory chain belongs; Determine the time difference between the target's last access time and the current time; If the time difference is greater than the second preset duration, the dirty data in the dirty data memory chain is stored in the first physical block. The write condition for the first physical block is that the access time exceeds the second preset duration. If the time difference is not greater than the second preset duration, the dirty data in the dirty data memory chain is stored in the second physical block according to the target number of accesses. The writing condition of the second physical block is that the number of accesses within the second preset duration meets the preset number requirement.

[0062] Optionally, the reduced layer includes multiple physical block lists, with different physical block lists used to link physical blocks with different erase counts. A minimum index variable is set to record the index value of the physical block list with the minimum current erase count. The management device 50 for the open channel solid-state drive also includes: The block acquisition module is used to extract a physical block from the first physical block linked list pointed to by the smallest index variable when the remaining space of the target physical block is less than a preset value. This physical block is used as the physical block corresponding to the write condition and is used to store dirty data that meets the write condition.

[0063] Further, optionally, the block acquisition module is also used for: If there are no free physical blocks in the first physical block list, update the value of the minimum index variable; Take a physical block from the linked list of the second physical blocks pointed to by the updated minimum index variable as the physical block corresponding to the write condition, and use it to store dirty data that meets the write condition.

[0064] Optionally, multiple physical blocks each correspond to a data write variable, used to record the amount of data written in the corresponding physical block; the management device 50 of the open channel solid-state drive also includes: The first determining module is used to determine the invalid space occupancy rate corresponding to the used physical block based on the value of the data written to the variable corresponding to the used physical block; The second determining module is used to determine the physical blocks to be reclaimed from the used physical blocks based on the invalid space occupancy rate; The data migration module is used to move the data in the physical block to be reclaimed to the third physical block. After the data migration is completed, the logical address of the physical block to be reclaimed is converted through the disk array layer. The converted physical address is sent to the protocol layer, which then issues an erase command to the open channel solid-state drive to erase the data in the corresponding physical block.

[0065] Optionally, the management device 50 for the open channel solid-state drive also includes: The third update module is used to increment the erase count of the physical block to be recycled by 1 after erasing the data in the physical block to be recycled, so as to obtain the current erase count. The linking module is used to link the physical block to be recycled to the head of the third physical block linked list pointed to by the minimum erase count variable when the current erase count is less than the value of the minimum erase count variable. The minimum erase count variable is used to record the minimum erase count among all physical blocks. When the current erase count is equal to the value of the minimum erase count variable, the physical block to be recycled is linked to the tail of the third physical block linked list. When the current erase count is greater than the value of the minimum erase count variable, the linked list index value is determined based on the current erase count, the value of the minimum erase count variable, and the number of linked lists of multiple physical block linked lists, and the physical block to be recycled is linked to the tail of the fourth physical block linked list pointed to by the linked list index value.

[0066] For a description of the features in the embodiment corresponding to the management device for the open channel solid-state drive, please refer to the relevant description in the embodiment corresponding to the management method for the open channel solid-state drive, which will not be repeated here.

[0067] Embodiments of this application also provide an electronic device, including a memory and a processor, wherein the memory stores a computer program, and the processor is configured to run the computer program to perform the steps in any of the above embodiments of the open channel solid-state drive management method.

[0068] Embodiments of this application also provide a computer-readable storage medium storing a computer program, wherein the computer program is configured to execute the steps in any of the above embodiments of the management method for open channel solid-state drives when it is run.

[0069] In one exemplary embodiment, the aforementioned computer-readable storage medium may include, but is not limited to, various media capable of storing computer programs, such as a USB flash drive, read-only memory (ROM), random access memory (RAM), portable hard disk, magnetic disk, or optical disk.

[0070] Embodiments of this application also provide a computer program product, which includes a computer program that, when executed by a processor, implements the steps in any of the above embodiments of the open channel solid-state drive management method.

[0071] Embodiments of this application also provide another computer program product, including a non-volatile computer-readable storage medium storing a computer program, which, when executed by a processor, implements the steps in any of the above-described open channel solid-state drive management method embodiments.

[0072] Any of the components, modules, units, parts, methods, and operations described herein can be implemented using software, firmware, hardware (e.g., fixed logic circuitry), manual processing, or any combination thereof. Alternatively or additionally, any functionality described herein can be performed at least in part by one or more hardware logic components, such as, but not limited to, a central processing unit (CPU), a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), an application-specific standard product (ASSP), a system-on-a-chip (SoC), a complex programmable logic device (CPLD), a microprocessor (MCU), etc. The terms "system," "computing device," or "apparatus" as used herein encompass various means, devices, and machines for processing data, including, for example, one or more programmable processors, computers, SoCs, or combinations thereof. The apparatus may also include code that creates an execution environment for the computer program in question, such as code constituting processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or a combination thereof. The aforementioned computer program (also known as a program, software, software application, app, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and can be deployed in any form, including as a standalone program or as a module, component, subroutine, object, or other unit suitable for a computing environment.

[0073] Those skilled in the art will further recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of both. To clearly illustrate the interchangeability of hardware and software, the components and steps of the various examples have been generally described in terms of functionality in the foregoing description. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0074] The above provides a detailed description of the management method and electronic device for an open-channel solid-state drive (SSD) provided in this application. Specific examples have been used to illustrate the principles and implementation methods of this application. The descriptions of the embodiments above are only intended to help understand the method and core ideas of this application. It should be noted that those skilled in the art can make various improvements and modifications to this application without departing from its principles, and these improvements and modifications also fall within the protection scope of the claims of this application.

Claims

1. A management method for an open channel solid-state drive, characterized in that, The Open Channel solid-state drive (OSD) and the storage volume include a thin layer, a disk array layer, and a protocol layer. The disk array layer is used to provide the storage space of the OSD to the thin layer and divide the storage space into multiple physical blocks. The protocol layer is used to send erase commands to the OSD to erase data. The method is applied to the simplified layer, including: In response to receiving a data write request, the metadata and data to be written in the data write request are obtained, wherein the metadata includes the data length; According to the data length, free memory resources are obtained from the memory resource pool and the data to be written is stored in the free memory resources. The memory resources for writing the data to be written are then added to the dirty data memory chain. The current time is used as the last access time of the popularity statistics resource to which the memory resource belongs, and the access information of the popularity statistics resource to which the memory resource belongs is updated. When data flushing is triggered, the dirty data in the dirty data memory chain is stored in the target physical block corresponding to the write conditions satisfied by the target access information, based on the target access information of the target access information to the target access information to the target access information to the target access information target access conditions ...

2. The management method for open channel solid-state drives according to claim 1, characterized in that, The access information for the popularity statistics resource also includes the number of accesses, and the metadata also includes the volume address and the data starting logical address; Before updating the access information of the popularity statistics resource to which the memory resource belongs by setting the current time as the last access time, the method further includes: Based on the volume address and the data starting logical address, determine whether there is a heat statistics resource to which the memory resource belongs on the heat statistics resource chain; If it exists, determine whether the time interval between the last access time of the memory resource to which it belongs and the current time exceeds the first preset duration; If the time interval exceeds the first preset duration, the access count of the popularity statistics resource to which the memory resource belongs is set to 1; If the time interval does not exceed the first preset duration, the number of accesses to the popularity statistics resource to which the memory resource belongs is incremented by 1.

3. The management method for an open channel solid-state drive according to claim 2, characterized in that, The method further includes: If the memory resource does not belong to the heat statistics resource in the heat statistics resource chain, obtain the target heat statistics resource located at the end of the heat statistics resource chain; Based on the volume address and the data starting logical address, the target popularity statistics resource is initialized to obtain the popularity statistics resource to which the memory resource belongs, wherein the access count of the popularity statistics resource to which the memory resource belongs is set to 1.

4. The management method for an open channel solid-state drive according to claim 2, characterized in that, The step of storing dirty data in the dirty data memory chain into the target physical block corresponding to the write conditions satisfied by the target access information, based on the target access information of the heat statistics resource to which the dirty data memory chain belongs, includes: Obtain the target's last access time and the target's access count from the target access information of the heat statistics resource to which the dirty data memory chain belongs; Determine the time difference between the last access time of the target and the current time; If the time difference is greater than the second preset duration, the dirty data in the dirty data memory chain is stored in the first physical block. The write condition for the first physical block is that the access time exceeds the second preset duration. If the time difference is not greater than the second preset duration, the dirty data in the dirty data memory chain is stored in the second physical block according to the target number of accesses. The writing condition of the second physical block is that the number of accesses within the second preset duration meets the preset number requirement.

5. The management method for an open channel solid-state drive according to claim 1, characterized in that, The simplified layer includes multiple physical block lists. Different physical block lists are used to link physical blocks with different erase counts. A minimum index variable is set to record the index value of the physical block list with the minimum erase count. After storing the dirty data in the dirty data memory chain into the target physical block, the method further includes: If the remaining space of the target physical block is less than a preset value, a physical block is taken from the first physical block linked list pointed to by the minimum index variable as the physical block corresponding to the write condition, and used to store dirty data that meets the write condition.

6. The management method for an open channel solid-state drive according to claim 5, characterized in that, The method further includes: If there are no free physical blocks in the first physical block list, update the value of the minimum index variable; Take a physical block from the second physical block list pointed to by the updated minimum index variable as the physical block corresponding to the write condition, and use it to store dirty data that meets the write condition.

7. The management method for an open channel solid-state drive according to claim 5 or 6, characterized in that, Each of the multiple physical blocks corresponds to a data write variable, which is used to record the amount of data written in the corresponding physical block; The method further includes: The invalid space occupancy rate corresponding to the used physical block is determined based on the value of the data written variable corresponding to the used physical block; Based on the invalid space occupancy rate, determine the physical blocks to be reclaimed from the used physical blocks; The data in the physical block to be reclaimed is moved to the third physical block. After the data is moved, the logical address of the physical block to be reclaimed is converted through the disk array layer. The converted physical address is sent to the protocol layer, which then issues an erase command to the open channel solid-state drive to erase the data in the corresponding physical block.

8. The management method for an open channel solid-state drive according to claim 7, characterized in that, The method further includes: After erasing the data in the physical block to be recycled, the erasure count corresponding to the physical block to be recycled is incremented by 1 to obtain the current erasure count; If the current erase count is less than the value of the minimum erase count variable, the physical block to be recycled is linked to the head of the third physical block linked list pointed to by the minimum index variable, wherein the minimum erase count variable is used to record the minimum erase count among all physical blocks currently; If the current number of erases is equal to the value of the minimum number of erases variable, the physical block to be recycled is linked to the tail of the third physical block linked list; If the current erase count is greater than the value of the minimum erase count variable, the linked list index value is determined based on the current erase count, the value of the minimum erase count variable, and the number of linked lists of the multiple physical block linked lists, and the physical block to be recycled is linked to the tail of the fourth physical block linked list pointed to by the linked list index value.

9. The management method for an open channel solid-state drive according to claim 8, characterized in that, The step of determining the linked list index value based on the current erase count, the value of the minimum erase count variable, and the number of linked lists in the multiple physical block linked lists includes: Determine the difference between the current number of erases and the minimum number of erases variable; Based on the difference and the number of linked lists of the multiple physical block linked lists, candidate index values ​​are determined; The linked list index value is determined based on the candidate index value and the number of linked lists.

10. An electronic device, characterized in that, include: Memory, used to store computer programs; A processor, configured to implement the steps of the management method for an open channel solid-state drive as described in any one of claims 1 to 9 when executing the computer program.