Data acquisition method, data sending method and data acquisition system
By identifying data types in the RAID controller and generating specific data or retrieving it directly from the storage device, the bandwidth consumption problem when the RAID controller processes garbage collection data is solved, improving data acquisition efficiency and system operating efficiency.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- DAPUSTOR CORP
- Filing Date
- 2025-12-31
- Publication Date
- 2026-05-05
AI Technical Summary
In existing technologies, RAID controllers need to read all data from the storage device when processing garbage collection data, resulting in high bandwidth usage and reduced system operating efficiency.
By querying the address identifier management table in the RAID controller, data types are identified, and specific data is generated based on the type or data is obtained directly from the storage device, reducing data transfer between the RAID controller and the storage device.
It improved data acquisition efficiency, reduced data transmission volume, and enhanced system operating efficiency.
Smart Images

Figure CN121979449A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of storage technology, and in particular to a data acquisition method, a data transmission method, and a data acquisition system. Background Technology
[0002] Redundant Array of Independent Disks (RAID) technology combines multiple disks to form a unified logical storage unit, thereby optimizing and improving the performance, reliability, and capacity of the storage system.
[0003] Currently, the host reads data from the disk and then transmits it back to the host. Alternatively, when reconstructing data on the disk, the RAID reads the data from the disk and directly stores the copied data on another disk. However, for some data with distinct characteristics, such as data that has been garbage collected by the host, it is still necessary to read or copy it in its entirety from the storage device. This requires a large amount of bandwidth within the RAID and reduces the overall operating efficiency of the system. Summary of the Invention
[0004] To address the aforementioned technical problems, embodiments of this application provide a data acquisition method, a data transmission method, and a data acquisition system, which can reduce the amount of data transmission between the RAID controller and the storage device, thereby improving data acquisition efficiency.
[0005] To address the aforementioned technical problems, the embodiments of this application provide the following technical solutions: In a first aspect, embodiments of this application provide a data acquisition method applied to a RAID controller, wherein the RAID controller is connected to a terminal and at least two storage devices, and the method includes: In response to a read command sent by the terminal, the address identifier management table in the RAID controller is queried based on the logical address in the read command to obtain the first type identifier of the data corresponding to the logical address, wherein the first type identifier includes a characteristic data identifier or a non-characteristic data identifier. If the first type of identifier is a feature data identifier, then specific data is generated and sent to the terminal; If the first type of identifier is a non-feature data identifier, then a read operation is initiated to the storage device based on the read command.
[0006] In some embodiments, the method for initiating a read operation to the storage device further includes: Based on the read command, obtain the second type identifier returned by the storage device, wherein the second type identifier includes at least a characteristic data identifier or a non-characteristic data identifier; If the second type of identifier is a feature data identifier, then specific data is generated and sent to the terminal; If the second type of identifier is a non-feature data identifier, the data corresponding to the read command is obtained from the storage device based on the read command.
[0007] In some embodiments, after retrieving the data corresponding to the read command from the storage device, the method further includes: Feature recognition is performed on the data corresponding to the read command to determine the type of data corresponding to the read command. The data type includes feature data or non-feature data. If the data type corresponding to the read command is characteristic data, then update the address identifier management table and send the data corresponding to the read command to the terminal; If the data type corresponding to the read command is non-feature data, the data corresponding to the read command will be returned directly to the terminal.
[0008] In some embodiments, before retrieving the data corresponding to the read command from the storage device, the method further includes: Pre-configure feature data in the RAID controller; Feature identification is performed on the data corresponding to the read command to determine the type of data corresponding to the read command, including: The RAID controller compares the data corresponding to the read command with the characteristic data to determine the type of data corresponding to the read command.
[0009] In some embodiments, the method further includes: In response to a write command sent by the terminal, receive the data corresponding to the write command; After updating the address identifier management table, the data corresponding to the write command is written to the storage device.
[0010] In some embodiments, the method further includes: When the RAID controller is in the reconstruction state, a data reconstruction command is generated. The data reconstruction command includes a source storage device and a target storage device. Both the source storage device and the target storage device are storage devices among at least two storage devices. Send a data reconstruction command to the source storage device to obtain a third type identifier returned by the source storage device, wherein the third type identifier includes a characteristic data identifier or a non-characteristic data identifier; If the third type identifier is a feature data identifier, then a first instruction is generated and sent to the target storage device, causing the target storage device to execute the operation corresponding to the first instruction; If the third type identifier is a non-feature data identifier, a second instruction is generated, based on which data from the source storage device is obtained, and the data from the source storage device is sent to the target storage device.
[0011] Secondly, embodiments of this application provide a data acquisition system, which includes a terminal, a RAID controller, and a storage device. The RAID controller includes a RAID processing engine and a first interface module. The RAID processing engine includes a central processing unit, a second interface module, and a data feature recognition module. The first interface module is connected to the terminal, the second interface module, and the storage device, and is used to receive read commands sent by the terminal. The central processing unit, connected to the second interface module, is used to query the address identifier management table based on the read command sent by the terminal to determine the type identifier corresponding to the logical address in the read command. If the type identifier corresponding to the logical address is determined to be a feature data identifier, specific data is generated and returned to the terminal. If the type identifier corresponding to the logical address is determined to be a non-feature data identifier, the read command is sent to the second interface module. The second interface module is connected to the central processing unit, the data feature recognition module, and the first interface module. It is used to send read commands to the first interface module, and the first interface module sends the read commands to the storage device. The storage device is connected to the first interface module and is used to receive read commands and query the mapping table to determine the type identifier corresponding to the logical address in the read command. If the type identifier corresponding to the logical address is determined to be a feature data identifier, the feature data identifier is sent to the first interface module. If the type identifier corresponding to the logical address is determined to be a non-feature data identifier, the data corresponding to the read command is sent to the first interface module. The data feature recognition module, connected to the second interface module, is used to identify the data returned by the storage device to obtain the data type, and then send the data type to the central processing unit through the second interface module, so that the central processing unit can determine whether to generate specific data.
[0012] In some embodiments, the data feature recognition module includes an interface processing module, a feature configuration module, and a processing control module; The interface processing module, connected to the feature configuration module, the processing control module, and the second interface module, is used to receive data corresponding to the read command returned by the storage device sent by the second interface module. The feature configuration module, connected to the interface processing module and the processing control module, is used to configure preset feature data. The processing control module, connected to the feature configuration module and the interface processing module, is used to identify the data returned by the storage device, determine the data type, and send the data type to the interface processing module, which then sends the data type to the central processing unit.
[0013] In some embodiments, the data type includes feature data and non-feature data, feature data corresponds to feature data identifier, and the storage device includes a front-end module, a data processing module, an algorithm module, a back-end module, and a data storage module. The front-end module, connected to the first interface module and the data processing module, is used to receive read commands and send them to the data processing module. The data processing module, connected to the front-end module and the algorithm module, is used to allocate a buffer area for the data corresponding to the read command and send the read command to the algorithm module. The algorithm module, connected to the data processing module and the backend module, is used to query the mapping table based on the read command. If the type identifier corresponding to the logical address in the read command is a feature data identifier, the feature data identifier is sent to the data processing module. If the type identifier corresponding to the logical address in the read command is a non-feature data identifier, a data read instruction is generated and sent to the backend module. The backend module connects to the algorithm module and the data storage module, and is used to retrieve data from the data storage module based on data read commands.
[0014] The beneficial effects of the embodiments of this application are as follows: Unlike the prior art, the embodiments of this application provide a data acquisition method. This method, in response to a read command sent by a terminal, queries the address identifier management table in the RAID controller based on the logical address in the read command to obtain a first type identifier of the data corresponding to the logical address. If the first type identifier is a feature data identifier, specific data is generated and sent to the terminal. If the first type identifier is a non-feature data identifier, the data corresponding to the read command is obtained from the storage device based on the read command and sent to the terminal. This can reduce the amount of data transmission between the RAID controller and the storage device, thereby improving the data acquisition efficiency. Attached Figure Description
[0015] One or more embodiments are illustrated by way of example with reference to the accompanying drawings. These illustrations do not constitute a limitation on the embodiments. Elements having the same reference numerals in the drawings are denoted as similar elements. Unless otherwise stated, the figures in the drawings are not to be limited by scale.
[0016] Figure 1 This is a schematic diagram illustrating an application environment provided in an embodiment of this application; Figure 2 This is a flowchart illustrating a data acquisition method provided in an embodiment of this application; Figure 3 This is a schematic diagram of a process for feature recognition of data provided in an embodiment of this application; Figure 4This is a schematic diagram of a process for obtaining reconstructed data provided in an embodiment of this application; Figure 5 This is a schematic diagram of a data writing process provided in an embodiment of this application; Figure 6 This is a flowchart illustrating a data transmission method provided in an embodiment of this application; Figure 7 This is a schematic diagram of the structure of a data acquisition system provided in an embodiment of this application; Figure 8 This is a schematic diagram of the structure of a data feature recognition module provided in an embodiment of this application; Figure 9 This is a schematic diagram of the structure of a storage device provided in an embodiment of this application; Figure 10 This is a schematic diagram of the structure of a RAID controller provided in an embodiment of this application; Figure 11 This is a schematic diagram of the structure of a storage device provided in an embodiment of this application.
[0017] Explanation of icon numbers: Detailed Implementation
[0018] To make the objectives, technical solutions, and advantages of the embodiments of this application clearer, 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 invention, not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.
[0019] It should be noted that, unless there is a conflict, the various features in the embodiments of this application can be combined with each other, all of which are within the protection scope of this application. In addition, the terms "first" and "second" used in this application do not limit the data, but only distinguish the same or similar items with basically the same function and effect.
[0020] Before introducing the embodiments of this application, a brief introduction will be given on the data acquisition method known to the inventors of this application, so as to facilitate the understanding of the embodiments of this application later.
[0021] Currently, when the host reads data from the disk and then transmits it back to the host, or when the data on the disk is reconstructed, RAID completely copies the data from the disk to the target disk. However, for some erased or garbage collected data, the repeated reading and transmission process will result in invalid resource consumption, occupy the communication bandwidth between RAID disks, cause delays in the response of host read requests, and reduce the efficiency of disk reconstruction, thereby reducing the operating efficiency of the storage system.
[0022] To address the aforementioned issues, this application provides a data acquisition method. In response to a read command sent by a terminal, the method queries the address identifier management table in the RAID controller based on the logical address in the read command to obtain a first type identifier for the data corresponding to the logical address. If the first type identifier is a characteristic data identifier, specific data is generated and sent to the terminal. If the first type identifier is a non-characteristic data identifier, the method retrieves the data corresponding to the read command from the storage device based on the read command and sends the data corresponding to the read command to the terminal. This method reduces the amount of data transfer between the RAID controller and the storage device, thereby improving data acquisition efficiency.
[0023] The technical solution of this application is described in detail below with reference to the accompanying drawings: Example 1 Please see Figure 1 , Figure 1 This is a schematic diagram illustrating an application environment provided in an embodiment of this application.
[0024] like Figure 1 As shown, the application environment includes a terminal 10, a RAID controller 20, and multiple storage devices 30. The terminal 10, RAID controller 20, and multiple storage devices 30 are connected to each other via wired interfaces, including but not limited to PCIe interfaces and SATA interfaces.
[0025] Terminal 10 is used to send data read commands to RAID controller 20 to retrieve data from storage device 30 based on the data read commands.
[0026] The RAID controller 20 is used to manage multiple storage devices 30, read data from the storage devices 30 to return the read data to the terminal 10, receive write commands sent by the host to write the data corresponding to the write commands to the multiple storage devices 30, and reconstruct the data of the storage devices to prevent data loss when it is determined that a storage device has failed.
[0027] Storage device 30 is used to store data. In this embodiment, when one of the storage devices 30 fails, a new storage device is connected to the RAID controller 20, and the RAID controller 20 reconstructs the data of the other storage devices to copy the data of the other storage devices to the new storage device.
[0028] In this embodiment, the terminal 10 includes, but is not limited to, laptops, servers, etc., the RAID controller 20 includes, but is not limited to, an independent RAID card, and the storage device 30 includes, but is not limited to, a solid state drive (SSD). The RAID card has the ability to support RAID levels such as RAID0, RAID1, and RAID5.
[0029] Example 2 Please see Figure 2 , Figure 2 This is a flowchart illustrating a data acquisition method provided in an embodiment of this application.
[0030] The data acquisition method is applied to a RAID controller. Specifically, the execution entity of the data acquisition method is one or at least two processors of the RAID controller.
[0031] The RAID controller is connected to the terminal and at least two storage devices.
[0032] like Figure 2 As shown, the data acquisition method includes: Step S201: In response to the read command sent by the terminal, query the address identifier management table in the RAID controller based on the logical address in the read command to obtain the first type identifier of the data corresponding to the logical address.
[0033] Specifically, when a terminal needs to use data in a storage device, it generates a read command and sends the read command to the RAID controller. The RAID controller queries the address identifier management table in the RAID controller based on the logical address in the read command to obtain the first type identifier of the data corresponding to the logical address.
[0034] In this embodiment of the application, the RAID controller stores an address identifier management table, which is used to record the data type corresponding to the logical address.
[0035] In this embodiment of the application, the data types include feature data and non-feature data. Feature data corresponds to feature data identifiers, and non-feature data corresponds to non-feature data identifiers. Feature data includes, but is not limited to, unmapped data, trimmed data, and sanitized data. The feature data table identifier includes multiple identifier values, each corresponding to a specific feature data type. For example, the identifier value for unmapped data is 1, the identifier value for trimmed data is 2, and the identifier value for sanitized data is 3.
[0036] Unmapped Data refers to a portion of the address range within the terminal's visible capacity that has never been written to by the terminal, or that portion of the address range has been erased by a terminal command.
[0037] Trimmed Data refers to the data corresponding to the address range that no longer needs to be retained in the storage device, as indicated by the terminal issuing the TRIM command.
[0038] Sanitized Data refers to the address range within the storage device that has been cleaned up by the terminal through the Sanitize command.
[0039] In this embodiment, the address identifier management table includes logical addresses and identifiers corresponding to the logical addresses. The logical address is the logical address corresponding to the physical address in the storage device. The identifier corresponding to the logical address is composed of binary codes. The number of binary codes of the identifier corresponding to the logical address is determined according to the type of feature data. For example, if there are three types of feature data, namely Unmapped Data and Trimmed Data, then the binary code of the identifier corresponding to the logical address includes two bits: 00 represents non-feature data, 01 represents Unmapped Data, 10 represents Trimmed Data, and 11 represents Sanitized Data.
[0040] In this application embodiment, the first type of identifier includes a feature data identifier or a non-feature data identifier.
[0041] In this application embodiment, the feature data also includes unmapped data, trimmed data, and sanitized data. Unmapped data is data composed of all 0s or all 1s, trimmed data is data composed of all 0s, all 1s, or a specified data format (32 bits), and sanitized data is data in a format specified by the host (32 bits).
[0042] In this embodiment of the application, non-feature data does not have the characteristics of feature data. When the data corresponding to the read command is non-feature data, it needs to be obtained from the storage device.
[0043] Step S202: Determine whether the first type identifier is a feature data identifier.
[0044] Specifically, determine whether the first type identifier is a feature data identifier. If the first type identifier is determined to be a feature data identifier, proceed to step S203. If the first type identifier is determined to be a non-feature data identifier, proceed to step S204.
[0045] Step S203: Generate specific data and send the specific data to the terminal.
[0046] Specifically, if the first type identifier is determined to be the characteristic data identifier, the RAID controller generates specific data and sends the specific data to the terminal to end the current read operation.
[0047] In the embodiments of this application, specific data can be all 0s or all 0xFFs.
[0048] In this embodiment of the application, when the first type identifier corresponding to the logical address in the read command is determined to be the first identifier, the type of data stored in the physical address of the storage device is determined to be characteristic data. The RAID controller generates specific data and returns the specific data to the terminal, which can reduce the data transmission between the RAID card and the storage device and improve the data reading efficiency.
[0049] Step S204: Based on the read command, initiate a read operation from the storage device to obtain the second type identifier.
[0050] Specifically, if the first type identifier is determined to be a non-featured data identifier, the RAID controller sends a read command to the storage device to initiate a read operation from the storage device. In response to the read command, the storage device sends a second type identifier to the RAID controller, wherein the second type identifier includes either a featured data identifier or a non-featured data identifier.
[0051] In this embodiment, the storage device includes a mapping table, which is used to manage the mapping relationship between the logical address of data and the physical address in the storage device, and to record the type identifier of the data corresponding to the logical address in the storage device.
[0052] In this embodiment, since the storage device directly manages the physical storage medium, the mapping table is updated in real time when the data status in the physical storage medium changes. However, the address identifier management table of the RAID controller is not updated synchronously with the mapping table and still retains historical records. Therefore, it is possible that the type identifiers corresponding to the logical addresses in the read commands in the address identifier management table are all non-feature data identifiers, while the type identifiers corresponding to the logical addresses in the read commands in the mapping table may be feature data identifiers. In order to reduce the data transmission between the RAID card and the storage device, it is also necessary to identify whether the type of the data corresponding to the read command is feature data before the storage device returns the data corresponding to the read command.
[0053] Specifically, the RAID controller sends a read command to the storage device, the storage device queries the mapping table to obtain the second type identifier of the data corresponding to the logical address in the read command, the storage device encapsulates the second type identifier in a return code, and sends the return code to the RAID controller, wherein the return code includes the second type identifier.
[0054] Step S205: Determine whether the second type identifier is a feature data identifier.
[0055] Specifically, determine whether the second type identifier is a feature data identifier. If the second type identifier is determined to be a feature data identifier, proceed to step S206. If the second type identifier is determined to be a non-feature data identifier, proceed to step S207.
[0056] Step S206: Generate specific data and send the specific data to the terminal.
[0057] Specifically, if the second type of identifier is determined to be a feature data identifier, then specific data is generated and sent to the terminal.
[0058] Step S207: Based on the read command, retrieve the data corresponding to the read command from the storage device.
[0059] Specifically, if the second type identifier is determined to be a non-feature data identifier, the storage device sends the data corresponding to the read command to the RAID controller, and the RAID controller sends the data corresponding to the read command to the terminal.
[0060] In this embodiment, the second type identifier returned by the storage device is obtained to determine the data type of the data corresponding to the read command, so as to ensure that the data type corresponding to the read command is completely consistent with the actual attributes of the data, thereby reducing data transmission and resource consumption.
[0061] Please see Figure 3 , Figure 3 This is a schematic diagram of a process for feature recognition of data provided in an embodiment of this application.
[0062] like Figure 3 As shown, the process of feature recognition of the data includes: Step 301: Perform feature recognition on the data corresponding to the read command to determine the type of data corresponding to the read command.
[0063] In this embodiment of the application, the RAID controller can also directly send read commands to the storage device to directly obtain the data corresponding to the read command, and the RAID controller can directly identify the type of data corresponding to the read command.
[0064] Specifically, after the RAID controller obtains the data corresponding to the read command from the storage device, it performs feature recognition on the data corresponding to the read command to determine the type of data corresponding to the read command.
[0065] In this embodiment, before obtaining the data corresponding to the read command sent by the storage device, feature data (pattern) is pre-configured in the RAID controller. For example, the feature data is a fixed value such as all zeros or all 0xFF, corresponding to the aforementioned feature data. The feature data includes, but is not limited to, unmapped data, trimmed data, and sanitized data. When performing feature identification on the data corresponding to the read command, the feature data and the data corresponding to the read command are compared byte by byte. If the data corresponding to the read command matches the feature data, the type of the data corresponding to the read command is determined to be feature data; if the data corresponding to the read command does not match the feature data, the type of the data corresponding to the read command is determined to be non-feature data.
[0066] Step 302: Determine whether the data type corresponding to the read command is feature data.
[0067] Specifically, determine whether the data type corresponding to the read command is characteristic data. If the data type corresponding to the read command is characteristic data, proceed to step 303. If the data type corresponding to the read command is non-characteristic data, proceed to step 304.
[0068] Step 303: Update the address identifier management table and send the data corresponding to the read command to the terminal.
[0069] Specifically, if it is determined that the data type corresponding to the read command is characteristic data, the RAID controller updates the address identifier management table to update the identifier of the logical address corresponding to the data of the read command to the characteristic data identifier, and sends the data corresponding to the read command to the terminal. At this time, the data sent to the terminal is characteristic data.
[0070] In this embodiment of the application, after determining that the type of data corresponding to the read command is feature data, the address identifier management table is updated to modify the identifier of the logical address corresponding to the data of the read command to the feature data identifier.
[0071] Step 304: Directly return the data corresponding to the read command to the terminal.
[0072] Specifically, if it is determined that the data type corresponding to the read command is non-feature data, then the data corresponding to the read command will be directly returned to the terminal.
[0073] Please see Figure 4 , Figure 4 This is a schematic diagram of a process for obtaining reconstructed data provided in an embodiment of this application.
[0074] like Figure 4 As shown, the process for obtaining reconstructed data includes: Step S401: Generate data reconstruction command.
[0075] Specifically, when one of the storage devices connected to the RAID controller fails, a data reconstruction command is generated. The data reconstruction command includes a source storage device and a target storage device. Both the source and target storage devices are storage devices among at least two storage devices. The source storage device is the sender of the reconstruction data corresponding to the data reconstruction command, and the target storage device is the receiver of the reconstruction data corresponding to the data reconstruction command.
[0076] In this embodiment, the RAID controller monitors the operation of each storage device in real time to obtain the status information of each storage device. The status information includes online status, operating performance status, etc. The online status is used to identify whether the storage device maintains normal communication with the RAID controller. If it cannot maintain normal communication with the RAID controller, it is determined that the storage device has failed. The operating performance status is used to determine whether the storage device can respond normally to the instructions sent by the RAID controller. For example, if the response time of the storage device is less than or equal to a time threshold, it is determined that it can respond normally to the instructions sent by the RAID controller. If the response time of the storage device is greater than the time threshold, it is determined that it cannot respond normally to the instructions sent by the RAID controller, and it is determined that the storage device has failed.
[0077] In this embodiment of the application, before sending the data reconstruction command to the source storage device and the target storage device, a VU command (Vendor Unique) is sent to the source storage device and the target storage device. After receiving the VU command, the source storage device and the target storage device set the current device state to the reconstruction state.
[0078] In this embodiment of the application, the VU command is an extended command of the NVMe protocol. The VU command is customized to instruct the storage device to enter the reconstruction state.
[0079] Step S402: Send a data reconstruction command to the source storage device to obtain the third type identifier returned by the source storage device.
[0080] Specifically, a data reconstruction command is sent to the source storage device. The data reconstruction command also includes the logical address range of the reconstructed data. After receiving the data reconstruction command, the source storage device queries the mapping table to obtain the identifier corresponding to the logical address range of the reconstructed data. This identifier is the third type identifier, and the third type identifier is sent to the RAID controller. The third type identifier includes a characteristic data identifier or a non-characteristic data identifier.
[0081] Step S403: Determine whether the third type identifier is a feature data identifier.
[0082] Specifically, determine whether the third type identifier is a feature data identifier. If the third type identifier is determined to be a feature data identifier, proceed to step S404. If the third type identifier is determined to be a non-feature data identifier, proceed to step S405.
[0083] In this embodiment, the third type identifier includes a feature data identifier or a non-feature data identifier. Both feature data identifiers and non-feature data identifiers include a first bit field and a second bit field. The first bit field is used to carry general instruction information, such as basic instruction content including command execution status, data length, and device status. The second bit field is a data feature bit field, which is used to record the data type identifier. The data feature bit field includes n bits, each bit being 0 or 1, for example, n is 8. The first bit is used to mark whether the data type is feature data, and the remaining 7 bits are used to identify the specific type of data. For example, the first bit being 1 indicates that the data is feature data, and the first bit being 0 indicates that the data is non-feature data. If the first bit is 1 and the remaining 7 bits are all 0, it indicates that the data is Unmapped Data. If the first bit and the second bit are 1 and the remaining 6 bits are all 0, it indicates that the data is Trimmed Data.
[0084] In this embodiment of the application, when the third type identifier is a feature data identifier, the first bit of the first identifier is 1, and when the third type identifier is a non-feature data identifier, the first bit of the second identifier is 0.
[0085] In this application implementation, after the storage device queries the mapping table, if it determines that the reconstructed data is of the first data type, a feature data identifier is generated and sent to the RAID controller. If it determines that the reconstructed data is non-feature data, a non-feature data identifier is generated and sent to the RAID controller.
[0086] In this implementation, after receiving the third type identifier returned by the storage device, the RAID controller identifies the value of the first bit to determine the data type of the reconstructed data.
[0087] Step S404: Generate a first instruction and send the first instruction to the target storage device, so that the target storage device executes the operation corresponding to the first instruction.
[0088] In this embodiment of the application, the operation corresponding to the first instruction refers to the data corresponding to the logical address being operated on being feature data.
[0089] Specifically, if the third type identifier is determined to be the characteristic data identifier, the RAID controller generates a first instruction and sends the first instruction to the target storage device, causing the target storage device to execute the operation corresponding to the first instruction.
[0090] In this embodiment of the application, the first instruction is used to instruct the target storage device to mark the physical address range corresponding to the logical address range of the read command, so as to mark the physical address range as a feature data identifier, and to indicate that the data within the physical address range is feature data.
[0091] Step S405: Generate a second instruction, obtain data from the source storage device based on the second instruction, and send the data from the source storage device to the target storage device.
[0092] Specifically, if the third type identifier is determined to be non-feature data, a second instruction is generated. The second instruction is used to instruct the source storage device to send the data corresponding to the data reconstruction command to the RAID controller, and the RAID controller sends the data corresponding to the data reconstruction command to the target storage device.
[0093] In this embodiment of the application, after the RAID controller sends a data reconstruction command to the source storage device, the source storage device can also directly return the data corresponding to the data reconstruction command. The RAID controller identifies the type of the data corresponding to the data reconstruction command. If it is determined that the data corresponding to the data reconstruction command is characteristic data, the address identifier management table is updated and the data corresponding to the data reconstruction command is sent to the target storage device. If it is determined that the data corresponding to the data reconstruction command is non-characteristic data, the data corresponding to the data reconstruction command is sent directly to the target storage device.
[0094] In this embodiment of the application, when the reconstructed data is determined to be feature data, it is not necessary to obtain the data from the source storage device. Instead, an instruction is directly generated to instruct the target storage device to mark the corresponding logical address range as feature data identifier, thereby reducing data transfer between storage devices and improving the efficiency of data reconstruction.
[0095] Please see Figure 5 , Figure 5 This is a schematic diagram of a data writing process provided in an embodiment of this application.
[0096] like Figure 5 As shown, the data writing process includes: Step S501: In response to the write command sent by the terminal, receive the data corresponding to the write command.
[0097] Specifically, in response to a write command sent by the terminal, the data corresponding to the write command is cached in the cache space of the RAID controller.
[0098] Step S502: After updating the address identifier management table, write the data corresponding to the write command to the storage device.
[0099] Specifically, after receiving the data corresponding to the write command, the identifier of the logical address corresponding to the data of the write command is updated in the address identifier management table to update the identifier of the logical address to a non-feature data identifier. After updating the address identifier management table, the data corresponding to the write command is written to the storage device.
[0100] Example 3 Please see Figure 6 , Figure 6 This is a flowchart illustrating a data transmission method provided in an embodiment of this application.
[0101] The data transmission method is applied to a storage device, and specifically, the execution entity of the data transmission method is one or at least two processors of the storage device.
[0102] The storage device is connected to the RAID controller.
[0103] like Figure 6 As shown, the data transmission method includes: Step S601: In response to the read command sent by the RAID controller, query the mapping table in the storage device based on the logical address corresponding to the read command to obtain the fourth type identifier of the data corresponding to the logical address.
[0104] In this embodiment, the storage device includes a mapping table, which is used to manage the mapping relationship between the logical address of data and the physical address in the storage device, and to record the type identifier of the data corresponding to the physical address in the storage device.
[0105] Specifically, when the storage device receives the read command sent by the RAID controller, it queries the mapping table in the storage device based on the logical address corresponding to the read command to obtain the fourth type identifier of the data corresponding to the logical address. The fourth type identifier includes a feature data identifier or a non-feature data identifier. The feature data identifier corresponds to feature data, and the non-feature data identifier corresponds to non-feature data.
[0106] In the embodiments of this application, the feature data refers to data with obvious characteristics.
[0107] In this embodiment of the application, non-feature data does not have the characteristics of data of the first data type. When the data corresponding to the read command is non-feature data, it needs to be obtained from the storage device.
[0108] In this application embodiment, the feature data includes, but is not limited to, unmapped data, trimmed data, and sanitized data. The feature data table identifier includes multiple identifier values, each corresponding to a specific feature data type. For example, the identifier value for unmapped data is 1, and the identifier value for trimmed data is 2.
[0109] Unmapped Data refers to a portion of the address range within the terminal's visible capacity that has never been written to by the terminal, or that portion of the address range has been erased by a terminal command.
[0110] Trimmed Data refers to the data corresponding to the address range that no longer needs to be retained in the storage device, as indicated by the terminal issuing the TRIM command.
[0111] Sanitized Data refers to the address range within the storage device that has been cleaned up by the terminal through the Sanitize command.
[0112] Step S602: Determine whether the fourth type identifier is a feature data identifier.
[0113] Specifically, determine whether the fourth type identifier is a feature data identifier. If the fourth type identifier is determined to be a feature data identifier, proceed to step S603. If the fourth type identifier is determined to be a non-feature data identifier, proceed to step S604.
[0114] Step S603: Send the feature data identifier to the RAID controller.
[0115] Specifically, if the fourth type identifier is determined to be the feature data identifier, the feature data identifier is sent to the RAID controller.
[0116] Step S604: Send the data corresponding to the read command to the RAID controller.
[0117] Specifically, if the fourth type identifier is determined to be a non-feature data identifier, the data corresponding to the read command will be sent to the RAID controller.
[0118] In this embodiment of the application, if it is determined that the data corresponding to the read command is feature data, the non-feature data identifier is returned. It is not necessary to transmit the actual content of the data corresponding to the read command, so as to reduce data transmission and reduce resource consumption.
[0119] Example 4 Please see Figure 7 , Figure 7 This is a schematic diagram of the structure of a data acquisition system provided in an embodiment of this application.
[0120] like Figure 7 As shown, the data acquisition system 700 includes a terminal 10, a RAID controller 20, and a storage device 30. The RAID controller 20 includes a RAID processing engine 21 and a first interface module 22. The RAID processing engine 21 includes a central processing unit 211, a second interface module 212, and a data feature recognition module 213.
[0121] Terminal 10 is connected to the first interface module 22. Terminal 10 is used to send a read command to RAID controller 20 to obtain the data corresponding to the read command, or to send a write command to RAID controller 20 to write the data corresponding to the write command into storage device 30.
[0122] The first interface module 22 is connected to the terminal 10, the second interface module 212, and the storage device 30. The first interface module 22 is used to receive read commands sent by the terminal.
[0123] In this embodiment, the first interface module 22 includes a PCIe interface, which includes a root port (RP) module and an endpoint port (EP) module. The terminal 10 is connected to the RAID controller 20 through the endpoint port module, and the storage device 30 is connected to the RAID controller 20 through the root port module.
[0124] The central processing unit 211 is connected to the terminal 10 and the second interface module 212. The central processing unit 211 is used to query the address identifier management table based on the read command sent by the terminal to determine the type identifier corresponding to the logical address in the read command. If the type identifier corresponding to the logical address is determined to be a feature data identifier, specific data is generated and returned to the terminal. If the type identifier corresponding to the logical address is determined to be a non-feature data identifier, the read command is sent to the second interface module 212.
[0125] The second interface module 212 is connected to the central processing unit 211, the data feature recognition module 213, and the first interface module 22. The second interface module 212 is used to send read commands to the storage device 30 and receive data returned by the storage device 30.
[0126] Storage device 30 is connected to first interface module 22. Storage device 30 is used to receive read commands and query the mapping table to determine the type identifier corresponding to the logical address in the read command. If the type identifier corresponding to the logical address is determined to be a feature data identifier, the feature data identifier is sent to first interface module 22. If the type identifier corresponding to the logical address is determined to be a non-feature data identifier, the data corresponding to the read command is sent to first interface module 22.
[0127] The data feature recognition module 213 is connected to the second interface module 212 and is used to identify the data returned by the storage device 30 to obtain the data type, so as to send the data type to the central processing unit 211 through the second interface module 212, and the central processing unit 211 determines whether to generate specific data.
[0128] In this embodiment of the application, if the data type is determined to be feature data, the central processing unit generates specific data and stores the generated specific data in a volatile cache. The specific data is then sent to the terminal 10.
[0129] In this embodiment of the application, the data feature recognition module 213 is also used to configure feature data, such as fixed values such as all 0 or all 0xFF.
[0130] In this embodiment of the application, after obtaining the data returned by the storage device 30, the data returned by the storage device 30 is compared byte by byte with the feature data. If the data returned by the storage device 30 matches the feature data, the type of the data returned by the storage device 30 is determined to be feature data. If the data returned by the storage device 30 does not match the feature data, the type of the data returned by the storage device 30 is determined to be non-feature data.
[0131] In this embodiment of the application, the feature data is data with obvious characteristics, including at least one of unmapped data and trimmed data.
[0132] In this embodiment of the application, non-feature data does not have the characteristics of feature data. When the data corresponding to the read command is non-feature data, it needs to be obtained from the storage device 30.
[0133] In this embodiment of the application, if the data returned by the storage device 30 matches the feature data, the type of the data returned by the storage device 30 is sent to the central processing unit 211, the central processing unit 211 generates specific data, returns the specific data to the terminal 10, and ends the current data reading process.
[0134] In the embodiments of this application, specific data can be all 0s or all 0xFFs.
[0135] Please see Figure 8 , Figure 8 This is a schematic diagram of the structure of a data feature recognition module provided in an embodiment of this application.
[0136] like Figure 8 As shown, the data feature recognition module 213 includes an interface processing module 2131, a feature configuration module 2132, and a processing control module 2133.
[0137] The interface processing module 2131 is connected to the feature configuration module 2132, the processing control module 2133, and the second interface module 212. The interface processing module 2131 is used to receive the data corresponding to the read command returned by the storage device 30 sent by the second interface module 212.
[0138] The feature configuration module 2132 is connected to the interface processing module 2131 and the processing control module 2133. The feature configuration module 2132 is used to configure preset feature data. For example, the feature data includes Unmapped Data, Trimmed Data, and Sanitized Data. Unmapped Data is data composed of all 0s or all 1s, and Trimmed Data is data composed of all 0s, all 1s, or a specified data format (32 bits).
[0139] The processing control module 2133 is connected to the feature configuration module 2132 and the interface processing module 2131. The processing control module 2133 is used to identify the data returned by the storage device 30 to determine the data type, and send the data type to the interface processing module 2131, which then sends the data type to the central processing unit 211.
[0140] Please see Figure 9 , Figure 9 This is a schematic diagram of the structure of a storage device provided in an embodiment of this application.
[0141] like Figure 9 As shown, the storage device 30 includes a front-end module 31, a data processing module 32, an algorithm module 33, a back-end module 34, and a data storage module 35.
[0142] The front-end module 31 is connected to the first interface module 22 and the data processing module 32. The front-end module 31 is used to receive read commands and send the read commands to the data processing module 32.
[0143] The data processing module 32 is connected to the front-end module 31 and the algorithm module 33. The data processing module 32 is used to allocate a buffer area for the data corresponding to the read command and send the read command to the algorithm module 33.
[0144] Algorithm module 33 is connected to data processing module 32 and backend module 34. Algorithm module 33 is used to query the mapping table based on read command. If the type identifier corresponding to the logical address in the read command is a feature data identifier, the feature data identifier is sent to the data processing module. If the type identifier corresponding to the logical address in the read command is a non-feature data identifier, a data read instruction is generated and sent to backend module 34.
[0145] The backend module 34 is connected to the algorithm module 33 and the data storage module 35. The backend module 34 is used to retrieve data from the data storage module 35 based on data read instructions.
[0146] In this embodiment of the application, feature data corresponds to feature data identifier, and non-feature data corresponds to non-feature data identifier.
[0147] In this embodiment of the application, when the data in the data storage module 35 is feature data, the table entry of the physical address corresponding to the data is marked as feature data identifier in the mapping table; when the data in the data storage module 35 is non-feature data, the table entry of the physical address corresponding to the data is marked as non-feature data identifier in the mapping table.
[0148] In this embodiment, the algorithm module queries the mapping table based on the logical address in the read command and returns the query result to the data processing module 32.
[0149] In this embodiment of the application, when the storage device is in a reconstruction state, after the storage device receives the data reconstruction command sent by the RAID controller 20, the algorithm module queries the mapping table to determine the type of reconstruction data corresponding to the data reconstruction command. If the type of reconstruction data is feature data, the feature data identifier is sent to the RAID controller 20. The RAID controller 20 receives the feature data identifier, generates a specific command, and sends the specific command to the target storage device to instruct the target storage device to mark the logical address range corresponding to the reconstruction data as the feature data identifier.
[0150] In this embodiment of the application, when the terminal sends a write command to the RAID controller 20, the RAID controller 20 caches the data corresponding to the write command in its internal cache space and identifies the data corresponding to the write command. If it is determined that the data corresponding to the write command is feature data, the mapping table in the RAID controller 20 is updated to update the table entry of the logical address corresponding to the data corresponding to the write command to the feature data identifier. If it is determined that the data corresponding to the write command is non-feature data, the data corresponding to the write command is directly sent to the storage device.
[0151] In this embodiment, if the storage device determines that the data corresponding to the read command is feature data, it will not transmit the actual content of the data corresponding to the read command to the RAID controller, but only transmit the feature data identifier. If the RAID controller determines that the data corresponding to the write command is feature data, it will only send a specific command to the storage device. This can reduce the data transmission between the RAID controller and the storage device, thereby improving the data acquisition efficiency and the data writing efficiency.
[0152] Example 5 Please see Figure 10 , Figure 10 This is a schematic diagram of the structure of a RAID controller provided in an embodiment of this application.
[0153] like Figure 10 As shown, the RAID controller 20 includes one or more processors 23 and a memory 24. Among them, Figure 10 Take a processor 23 as an example.
[0154] Processor 23 and memory 24 can be connected via a bus or other means. Figure 10 Taking the example of a connection between China and Israel via a bus.
[0155] Processor 23 is configured to execute the data acquisition method in Embodiment 2 of this application, including: In response to a read command sent by the terminal, the address identifier management table in the RAID controller is queried based on the logical address in the read command to obtain the first type identifier of the data corresponding to the logical address, wherein the first type identifier includes a characteristic data identifier or a non-characteristic data identifier. If the first type of identifier is a feature data identifier, then specific data is generated and sent to the terminal; If the first type of identifier is a non-feature data identifier, then based on the read command, the data corresponding to the read command is obtained from the storage device and sent to the terminal.
[0156] The memory 24, as a non-volatile computer-readable storage medium, can be used to store non-volatile software programs, non-volatile computer-executable programs, and modules, such as the program instructions / modules corresponding to the data acquisition method in this embodiment of the invention. The processor 23 executes various functional applications and data processing of the electronic device by running the non-volatile software programs, instructions, and modules stored in the memory 24, thereby implementing the data acquisition method of the above-described method embodiment.
[0157] Memory 24 may include high-speed random access memory, and may also include non-volatile memory, such as at least one disk storage device, flash memory device, or other non-volatile solid-state storage device. In some embodiments, memory 24 may optionally include memory remotely located relative to processor 23. Examples of the above-described networks include, but are not limited to, the Internet, corporate intranets, local area networks, mobile communication networks, and combinations thereof.
[0158] One or more modules are stored in memory 24. When executed by one or more processors 23, they perform the data acquisition method in any of the above method embodiments, for example, the method described above. Figure 2 The steps shown.
[0159] Example 6 Please see Figure 11 , Figure 11 This is a schematic diagram of the structure of a storage device provided in an embodiment of this application.
[0160] like Figure 11 As shown, the storage device 30 includes one or more processors 36 and a memory 37. Wherein, Figure 11 Take a processor 36 as an example.
[0161] Processor 36 and memory 37 can be connected via a bus or other means. Figure 11 Taking the example of a connection between China and Israel via a bus.
[0162] Processor 36 is configured to execute the data transmission method in Embodiment 3 of this application, including: In response to a read command sent by the RAID controller, the mapping table in the storage device is queried based on the logical address corresponding to the read command to obtain the fourth type identifier of the data corresponding to the logical address. The fourth type identifier includes a characteristic data identifier or a non-characteristic data identifier. If the fourth type identifier is a feature data identifier, then the feature data identifier is sent to the RAID controller; If the fourth type identifier is a non-feature data identifier, the data corresponding to the read command will be sent to the RAID controller.
[0163] The memory 37, as a non-volatile computer-readable storage medium, can be used to store non-volatile software programs, non-volatile computer-executable programs, and modules, such as the program instructions / modules corresponding to the data transmission method in this embodiment of the invention. The processor 36 executes various functional applications and data processing of the electronic device by running the non-volatile software programs, instructions, and modules stored in the memory 37, thereby implementing the data transmission method of the above-described method embodiment.
[0164] Memory 37 may include high-speed random access memory, and may also include non-volatile memory, such as at least one disk storage device, flash memory device, or other non-volatile solid-state storage device. In some embodiments, memory 37 may optionally include memory remotely located relative to processor 36. Examples of the above-described networks include, but are not limited to, the Internet, corporate intranets, local area networks, mobile communication networks, and combinations thereof.
[0165] One or more modules are stored in memory 37. When executed by one or more processors 36, they perform the data transmission method in any of the above method embodiments, for example, the method described above. Figure 7 The steps shown.
[0166] This application also provides a computer program product, which includes one or more lines of program code stored in a non-volatile computer-readable storage medium. The processor of an electronic device reads the program code from the non-volatile computer-readable storage medium and executes the program code to complete the steps of the data transmission method provided in the above embodiments.
[0167] Based on the above description of the embodiments, those skilled in the art will understand that all or part of the steps of the above embodiments can be implemented by hardware, or by a program or program code related to hardware. The program can be stored in a non-volatile computer-readable storage medium, such as a read-only memory, a disk, or an optical disk.
[0168] Through the above description of the embodiments, those skilled in the art can clearly understand that each embodiment can be implemented using software plus a general-purpose hardware platform, or of course, using hardware. Those skilled in the art will understand that all or part of the processes in the above embodiments can be implemented by a computer program instructing related hardware. The program can be stored in a non-volatile computer-readable storage medium, and when executed, it can include the processes of the embodiments of the above methods. The non-volatile computer-readable storage medium can be a magnetic disk, optical disk, read-only memory (ROM), or random access memory (RAM), etc.
[0169] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of this application, and not to limit them; under the concept of this application, the technical features of the above embodiments or different embodiments can also be combined, the steps can be implemented in any order, and there are many other variations as described above in different aspects of this application, which are not provided in detail for the sake of brevity; although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the foregoing embodiments, or make equivalent substitutions for some of the technical features; and these modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of this application.
Claims
1. A data acquisition method, characterized in that, Applied to a RAID controller, the RAID controller being connected to an endpoint and at least two storage devices, the method includes: In response to a read command sent by the terminal, the address identifier management table in the RAID controller is queried based on the logical address in the read command to obtain a first type identifier of the data corresponding to the logical address, wherein the first type identifier includes a feature data identifier or a non-feature data identifier. If the first type identifier is the feature data identifier, then specific data is generated and the specific data is sent to the terminal; If the first type identifier is the non-feature data identifier, then a read operation is initiated to the storage device based on the read command.
2. The method according to claim 1, characterized in that, The method further includes initiating a read operation to the storage device: Based on the read command, obtain the second type identifier returned by the storage device, wherein the second type identifier includes at least a feature data identifier or a non-feature data identifier; If the second type identifier is the feature data identifier, then the specific data is generated and sent to the terminal; If the second type identifier is the non-feature data identifier, then the data corresponding to the read command is obtained from the storage device based on the read command.
3. The method according to claim 2, characterized in that, After obtaining the data corresponding to the read command from the storage device, the method further includes: The data corresponding to the read command is subjected to feature recognition to determine the type of the data corresponding to the read command, wherein the data type includes feature data or non-feature data; If the data type corresponding to the read command is feature data, then update the address identifier management table and send the data corresponding to the read command to the terminal; If the data type corresponding to the read command is non-feature data, then the data corresponding to the read command is directly returned to the terminal.
4. The method according to claim 3, characterized in that, Before retrieving the data corresponding to the read command from the storage device, the method further includes: The feature data is pre-configured in the RAID controller; The step of performing feature recognition on the data corresponding to the read command to determine the type of data corresponding to the read command includes: The RAID controller compares the data corresponding to the read command with the feature data to determine the type of data corresponding to the read command.
5. The method according to claim 3, characterized in that, The method further includes: In response to a write command sent by the terminal, the system receives the data corresponding to the write command. After updating the address identifier management table, the data corresponding to the write command is written to the storage device.
6. The method according to claim 1, characterized in that, The method further includes: When the RAID controller is in a reconstruction state, a data reconstruction command is generated, wherein the data reconstruction command includes a source storage device and a target storage device, and the source storage device and the target storage device are both storage devices among the at least two storage devices; Send the data reconstruction command to the source storage device to obtain a third type identifier returned by the source storage device, wherein the third type identifier includes a feature data identifier or a non-feature data identifier; If the third type identifier is the feature data identifier, then a first instruction is generated and sent to the target storage device, causing the target storage device to execute the operation corresponding to the first instruction; If the third type identifier is the non-feature data identifier, then a second instruction is generated, the data of the source storage device is obtained based on the second instruction, and the data of the source storage device is sent to the target storage device.
7. A data transmission method, characterized in that, Applied to a storage device connected to a RAID controller, the method includes: In response to a read command sent by the RAID controller, a query is performed on the mapping table in the storage device based on the logical address corresponding to the read command to obtain a fourth type identifier of the logical address, wherein the fourth type identifier includes a feature data identifier or a non-feature data identifier; If the fourth type identifier is a feature data identifier, then the feature data identifier is sent to the RAID controller; If the fourth type identifier is a non-feature data identifier, then the data corresponding to the read command is sent to the RAID controller.
8. A data acquisition system, characterized in that, The system includes a terminal, a RAID controller, and a storage device. The RAID controller includes a RAID processing engine and a first interface module. The RAID processing engine includes a central processing unit, a second interface module, and a data feature recognition module. The first interface module is connected to the terminal, the second interface module, and the storage device, and is used to receive read commands sent by the terminal; The central processing unit is connected to the second interface module and is used to query the address identifier management table based on the read command sent by the terminal to determine the type identifier corresponding to the logical address in the read command. If the type identifier corresponding to the logical address is determined to be a feature data identifier, specific data is generated and the specific data is returned to the terminal. If the type identifier corresponding to the logical address is determined to be a non-feature data identifier, the read command is sent to the second interface module. The second interface module is connected to the central processing unit, the data feature recognition module, and the first interface module, and is used to send the read command to the first interface module, which then sends the read command to the storage device. The storage device is connected to the first interface module and is used to receive the read command and query the mapping table to determine the type identifier corresponding to the logical address in the read command. If the type identifier corresponding to the logical address is determined to be a feature data identifier, the feature data identifier is sent to the first interface module. If the type identifier corresponding to the logical address is determined to be a non-feature data identifier, the data corresponding to the read command is sent to the first interface module. The data feature recognition module is connected to the second interface module and is used to identify the data returned by the storage device to obtain the type of the data. The data type is then sent to the central processing unit through the second interface module, and the central processing unit determines whether to generate specific data.
9. The system according to claim 8, characterized in that, The data feature recognition module includes an interface processing module, a feature configuration module, and a processing control module; The interface processing module is connected to the feature configuration module, the processing control module, and the second interface module, and is used to receive data corresponding to the read command returned by the storage device sent by the second interface module; The feature configuration module is connected to the interface processing module and the processing control module, and is used to configure preset feature data. The processing control module is connected to the feature configuration module and the interface processing module. It is used to identify the data returned by the storage device to determine the type of the data, and send the type of the data to the interface processing module, which then sends the type of the data to the central processing unit.
10. The system according to claim 8, characterized in that, The data types include feature data and non-feature data, the feature data corresponds to a feature data identifier, and the storage device includes a front-end module, a data processing module, an algorithm module, a back-end module, and a data storage module. The front-end module is connected to the first interface module and the data processing module, and is used to receive the read command and send the read command to the data processing module; The data processing module is connected to the front-end module and the algorithm module, and is used to allocate a buffer area for the data corresponding to the read command and send the read command to the algorithm module; The algorithm module is connected to the data processing module and the backend module. It is used to query the mapping table based on the read command. If the type identifier corresponding to the logical address in the read command is a feature data identifier, the feature data identifier is sent to the data processing module. If the type identifier corresponding to the logical address in the read command is a non-feature data identifier, a data read instruction is generated and the data read instruction is sent to the backend module. The backend module is connected to the algorithm module and the data storage module, and is used to obtain data from the data storage module based on the data read instruction.