Method, device, equipment and medium for storing multiple storage disks

Connecting with multiple NVMe devices through the motherboard, using the preset access correspondence relationship to determine the target address access space, and sending IO commands to drop data, solving the problem of dropping the disk in the existing technology that can only support a single storage disk, and realizing the The efficient disk drop and storage efficiency of NVMe multi-storage disks are improved.

CN117806545BActive Publication Date: 2025-02-11YUSUR TECH CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202311622344.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-11-30
Publication Date
2025-02-11
Estimated Expiration
2043-11-30

AI Technical Summary

Technical Problem

The existing NVMe disk drop technology can only support the disk drop of a single storage disk, and cannot meet the needs of NVMe services for efficient storage and multi-storage media.

Method used

Connecting with multiple NVMe devices through the motherboard, using the preset access correspondence relationship, determine the target address access space corresponding to each IO command, and send the IO command to the target controller for data drop.

Benefits of technology

It realizes efficient disk drop of multiple storage disks, improving the scalable capacity and efficiency of NVMe storage.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117806545B_ABST
    Figure CN117806545B_ABST
Patent Text Reader

Abstract

The present disclosure relates to a method, device, equipment and medium for dropping data on multiple storage disks. The method is executed by a mainboard, which is connected to multiple controllers, each of which is connected to a storage disk; the method includes: receiving an IO queue including multiple IO commands; obtaining a target identity of a target storage disk to be accessed from a current IO command; wherein each IO command in the IO queue is used as a current IO command; determining a target address access space corresponding to the current IO command according to a target identity and a preset access correspondence; sending the current IO command to a target controller in an NVMe device corresponding to the target address access space, so as to control the target storage disk to drop data on the disk through the target controller. The present disclosure can realize the drop of data on multiple NVMe storage disks, and improve the scalable capacity and efficiency of NVMe storage.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of computer technology, and in particular to a method, device, equipment and medium for storing multiple storage disks. Background Art

[0002] Currently, in NVMe (NVM Express, non-volatile memory host controller interface specification) storage applications, only a single storage disk can be stored, that is, only one storage disk can be accessed at a time. This method has limited storage efficiency and capacity, and the efficiency of single disk access is also relatively low, which cannot meet the NVMe business's requirements for efficient storage and support for multiple storage media. Summary of the invention

[0003] In order to solve the above technical problems, the present disclosure provides a method, device, equipment and medium for storing data on multiple storage disks.

[0004] According to one aspect of the present disclosure, a method for placing multiple storage disks is provided, the method being executed by a mainboard, the mainboard being connected to a plurality of NVMe devices, the NVMe devices comprising a controller for controlling the storage disks, each of the controllers being respectively connected to a storage disk; the method comprising:

[0005] receiving an IO queue including a plurality of IO commands;

[0006] Obtaining a target identity of a target storage disk to be accessed from a current IO command; wherein each of the IO commands in the IO queue is used as the current IO command;

[0007] Determine the target address access space corresponding to the current IO command according to the target identity and the preset access correspondence relationship; wherein the access correspondence relationship represents a one-to-one correspondence between the plurality of controllers and the plurality of address access spaces;

[0008] The current IO command is sent to the target controller in the NVMe device corresponding to the target address access space, so as to control the target storage disk through the target controller to store data.

[0009] According to another aspect of the present disclosure, a disk placement device for multiple storage disks is provided, wherein the device is arranged on a mainboard, the mainboard is connected to a plurality of NVMe devices, the NVMe devices include a controller for controlling the storage disks, each of the controllers is respectively connected to a storage disk; the device includes:

[0010] A command receiving module, used for receiving an IO queue including a plurality of IO commands;

[0011] An identity acquisition module, used to acquire a target identity of a target storage disk to be accessed from a current IO command; wherein each of the IO commands in the IO queue is used as the current IO command;

[0012] An address determination module, configured to determine a target address access space corresponding to the current IO command according to the target identity and a preset access correspondence relationship; wherein the access correspondence relationship represents a one-to-one correspondence between a plurality of the controllers and a plurality of address access spaces;

[0013] The disk placement module is used to send the current IO command to the target controller in the NVMe device corresponding to the target address access space, so as to control the target storage disk to place data on the disk through the target controller.

[0014] According to another aspect of the present disclosure, an electronic device is provided, the electronic device comprising:

[0015] processor;

[0016] a memory for storing instructions executable by the processor;

[0017] The processor is used to read the executable instructions from the memory and execute the instructions to implement the above method.

[0018] According to another aspect of the present disclosure, a computer-readable storage medium is provided, wherein the storage medium stores a computer program, and the computer program is used to execute the above method.

[0019] Compared with the prior art, the technical solution provided by the embodiments of the present disclosure has the following advantages:

[0020] The embodiments of the present invention provide a method, device, equipment and medium for dropping data on multiple storage disks. The method is executed by a mainboard, and the mainboard is connected to multiple NVMe devices. The NVMe devices include controllers for controlling the storage disks, and each controller is connected to a storage disk. The method includes: receiving an IO queue including multiple IO commands; obtaining a target identity of a target storage disk to be accessed from a current IO command; determining a target address access space corresponding to the current IO command according to the target identity and a preset access correspondence; wherein the access correspondence represents a one-to-one correspondence between multiple controllers and multiple address access spaces; and sending the current IO command to a target controller in the NVMe device corresponding to the target address access space, so as to control the target storage disk to drop data on the disk through the target controller.

[0021] In the process of controlling the disk placement, the technical solution first determines the target address access space that each IO command needs to be placed on disk for processing according to the access correspondence and the target identity in each IO command in the IO queue; wherein, the mainboard pre-allocates different address access spaces for different controllers, which is equivalent to distinguishing mutually independent hardware paths for each controller; based on this, each IO command is independently sent to the target controller corresponding to its target address access space, and each target controller independently controls a target storage disk to place data on disk. Compared with the existing disk placement controller of a single storage disk, this embodiment expands multiple controllers and multiple storage disks, and controls and schedules multiple controllers uniformly through the mainboard. At the same time, each controller controls a storage disk for placement, thereby realizing that the mainboard manages multiple controllers to independently control the storage disks for placement, improving the flexibility of multi-storage disk access, and ensuring that each controller can efficiently perform storage access, thereby better realizing NVMe multi-storage disk placement, and improving the scalable capacity and NVMe storage efficiency of NVMe storage. BRIEF DESCRIPTION OF THE DRAWINGS

[0022] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the present disclosure and, together with the description, serve to explain the principles of the present disclosure.

[0023] In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, for ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative labor.

[0024] Figure 1 A schematic diagram of a disk placement architecture of multiple storage disks according to an embodiment of the present disclosure;

[0025] Figure 2 This is a flow chart of the method for storing multiple storage disks according to an embodiment of the present disclosure;

[0026] Figure 3 A schematic diagram of the implementation process of multi-storage disk management according to an embodiment of the present disclosure;

[0027] Figure 4 It is a schematic diagram of the structure of the disk placement device for multiple storage disks according to an embodiment of the present disclosure;

[0028] Figure 5 It is a schematic diagram of the structure of the electronic device described in the embodiment of the present disclosure. DETAILED DESCRIPTION

[0029] In order to more clearly understand the above-mentioned objectives, features and advantages of the present disclosure, the scheme of the present disclosure will be further described below. It should be noted that the embodiments of the present disclosure and the features in the embodiments can be combined with each other without conflict.

[0030] In the following description, many specific details are set forth to facilitate a full understanding of the present disclosure, but the present disclosure may also be implemented in other ways different from those described herein; it is obvious that the embodiments in the specification are only part of the embodiments of the present disclosure, rather than all of the embodiments.

[0031] For storage disks such as SSD (Solid State Disk), multi-disk storage applications have become a mainstream storage trend. NVMe's way of dropping data to a single storage disk can no longer meet the NVMe business's requirements for efficient storage and support for multiple storage media. Therefore, NVMe needs to adapt to and meet the multi-disk drop scenario. In order to meet the application scenario of NVMe supporting multiple storage disks, the embodiments of the present disclosure provide a method, device, equipment, and medium for dropping data to multiple storage disks. The embodiments of the present disclosure are described below.

[0032] First, for ease of understanding, this embodiment provides a disk placement architecture for multiple storage disks, and exemplifies a practical application scenario of a disk placement method for multiple storage disks.

[0033] The architecture for placing multiple storage disks includes: RDMA (Remote Direct Memory Access), memory devices, motherboard (MB), AXI Interconnect, multiple NVMe devices and multiple storage disks; the above NVMe devices include NVMe transceivers and controllers. Among them, the memory devices are connected to RDMA and the motherboard respectively, the motherboard is connected to AXI Interconnect, and AXI Interconnect is connected to multiple NVMe transceivers; in the same NVMe device, the NVMe transceiver and the controller are connected through an internal bus; each controller is connected to each storage disk one by one, and the controller is used to control and schedule the storage disk connected to it; multiple controllers are also connected to the memory device. The above motherboard is used to independently control and schedule each controller through AXI Interconnect, and accordingly, each controller controls a storage disk for placement.

[0034] In a specific embodiment, the memory device may include DDR (Double Data Rate), the storage disk may include SSD, and the controller may include SSD controller. Figure 1A multi-storage disk drop architecture is shown. In the multi-storage disk drop architecture, one end of the motherboard is connected to the DDR, and the other end is connected to the AXI bus and the AXI Interconnect. The motherboard is also connected to the NVMe transceivers in multiple NVMe devices through the AXI Interconnect. In the NVMe device, the NVMe transceiver and the SSD controller are connected through the internal bus. The SSD controller is connected to the SSD through PCIe (peripheral component interconnect express, a high-speed serial computer expansion bus standard). Each SSD controller is also connected to the DDR through the AXI bus. In addition, the DDR and AXIInterconnect can also be connected to RDMA respectively.

[0035] Reference Figure 2 The flowchart of the method for dropping multiple storage disks is shown. The method can be applied to the scenario where NVMe supports dropping multiple storage disks. Also, the method for dropping multiple storage disks can be implemented by the multi-storage disk drop architecture provided by the above embodiment. In this embodiment, the method for dropping multiple storage disks can be executed by a mainboard. The mainboard is connected to multiple NVMe devices. The NVMe devices include: an NVMe transceiver for sending and receiving commands, and a controller for controlling the storage disks. Each controller is connected to a storage disk. Figure 2 As shown, the method specifically comprises the following steps:

[0036] S102, receiving an IO queue including multiple IO commands. The mainboard receives an IO queue for requesting data processing, and one IO queue includes multiple IO commands. The IO command may carry an identity identifier representing the storage disk, such as the disk number, SSD ID, etc.; based on the carried identity identifier, different IO commands are used to instruct different controllers to control data placement on the storage disk, that is, different IO commands are used to instruct data placement on different storage disks.

[0037] S104, obtaining a target identity of a target storage disk to be accessed from the current IO command; wherein each IO command in the IO queue is used as a current IO command.

[0038] In this embodiment, the mainboard processes multiple IO commands in the IO queue in parallel, and simultaneously writes data to the disk according to the multiple IO commands. During execution, each IO command can be used as the current IO command, and the current IO command can be parsed to obtain the target identity carried by it, and the target identity is used to indicate the target storage disk to be accessed by the current IO command. It can be understood that different IO commands in the same IO queue carry different identities, that is, one IO command corresponds to one controller to control the data falling to the disk, and multiple IO commands correspond to multiple different controllers to control the data falling to the disk.

[0039] According to the above method, the mainboard obtains the respective target identity from each IO command in the IO queue.

[0040] S106. Determine the target address access space corresponding to the current IO command according to the target identity and a preset access correspondence relationship; wherein the access correspondence relationship represents a one-to-one correspondence between multiple controllers and multiple address access spaces.

[0041] In this embodiment, the mainboard is connected to multiple NVMe devices via AXI Interconnect; on this basis, the access correspondence between the controller and the address access space can be determined in the following manner: AXI Interconnect is used to allocate access space to multiple AXI buses connected to NVMe devices, multiple address access spaces corresponding to multiple NVMe devices are obtained, and the access correspondence between each NVMe device and each address access space is determined.

[0042] Among them, AXI Interconnect can manage the AXI bus and support a motherboard to access multiple NVMe devices using the AXI bus. The principle is to allocate different address access spaces to the AXI bus of the NVMe device, so that the motherboard can access different NVMe devices through different address access spaces. Since the controller in the NVMe device is called by the motherboard and controls the storage disk, it can also be said that the access space is allocated for the AXI buses connected to multiple controllers. Based on this, the motherboard of this embodiment uses AXI Interconnect to divide the address access space of multiple controllers. The address access space of each controller corresponds to an AXI bus connected to the motherboard, so that the motherboard can effectively distinguish the access controller physically, which is equivalent to opening a hardware channel for each storage disk to land, and each channel is independent of each other; the motherboard corresponds to each controller according to the divided address access space, and each controller is connected to a storage disk, so that it can be realized by using the motherboard to manage multiple controllers to realize the landing of multiple storage disks, which significantly improves the storage capacity and storage efficiency of NVMe.

[0043] In this embodiment, the mainboard determines the target controller to be accessed according to the target storage disk uniquely represented by the target identity in the current IO command; and then determines the target address access space corresponding to the target controller according to the above access correspondence.

[0044] S108. Send the current IO command to the target controller in the NVMe device corresponding to the target address access space, so as to control the target storage disk through the target controller to store data on the disk.

[0045] In one implementation, the motherboard first sends the current IO command to AXI Interconnect, and after passing through AXI Interconnect, the current IO command is sent to the NVMe transceiver in the NVMe device corresponding to the target address access space, and the current IO command is sent to the target controller through the NVMe transceiver using the NVMe protocol. Specifically, AXIInterconnect locks the target AXI interface according to the target address access space, and sends the current IO command to the NVMe transceiver connected to the target AXI interface; the NVMe transceiver uses the NVMe protocol to perform protocol conversion processing on the current IO command, and sends the processed current IO command to the target controller.

[0046] After receiving the current IO command, the target controller controls the target storage disk to write data to the disk according to the current IO command. Specifically, the target controller is connected to the memory device, and the target controller writes the data in the memory device to the target storage disk according to the current IO command.

[0047] At this point, the disk placement process indicated by the current IO command is completed. It can be understood that each IO command in the IO queue is independently placed on disk in accordance with the above method, so as to achieve placement on multiple storage disks.

[0048] According to the above embodiments, a method is provided herein. Figure 3 The diagram shows the implementation process of motherboard-based multi-storage disk management.

[0049] In this embodiment, the motherboard obtains the target identity (SSD id) of the target SSD to be accessed from the received IO command. Then, based on the target identity and the access correspondence, the motherboard determines which address access space should be used as the target address access space for the IO service to be processed. The access correspondence can be referred to in Figure 3 The table shown records the one-to-one correspondence between multiple identity identifiers (SSD id) and multiple address access spaces (addr).

[0050] AXI Interconnect manages the AXI buses of multiple address access spaces. In this embodiment, determining the target address access space also determines the hardware path for the IO commands issued by the mainboard to be written to the disk after passing through the AXI Interconnect. Each hardware path for writing to the disk is independent of each other and does not affect each other. The mainboard only needs to perform hardware branching on the disk according to the IO commands, and send the IO commands to the target SSD controller corresponding to the target address access space through the AXI Interconnect. The target SSD controller writes the data in the memory device to the target SSD.

[0051] In this embodiment, the mainboard is responsible for managing and maintaining each SSD controller. An IO command of an IO queue can only be processed on one SSD controller at a time, but multiple IO commands of the same IO queue can be processed on different SSD controllers, that is, data of the same IO queue can be placed on multiple SSDs.

[0052] Based on the above embodiments, the method may further include: monitoring the disk processing results fed back by each controller for IO commands; wherein, when the controller successfully completes the disk processing on the storage disk, the disk processing results will be fed back to the mainboard.

[0053] If the disk placement processing result is not monitored within the preset time, abnormal disk information is generated. If a controller among multiple controllers does not feedback the disk placement processing result within the preset time, the mainboard generates abnormal disk information and reports the abnormal disk information to the user to remind the user that the controller and the storage disk connected to it have a disk placement abnormality.

[0054] In summary, the method for dropping multiple storage disks provided by the embodiment of the present disclosure is executed by a mainboard, the mainboard is connected to multiple NVMe devices, the NVMe device includes a controller for controlling the storage disk, and each controller is respectively connected to a storage disk; the method includes: receiving an IO queue including multiple IO commands; obtaining a target identity of a target storage disk to be accessed from a current IO command; wherein each IO command in the IO queue is respectively used as a current IO command; determining a target address access space corresponding to the current IO command according to the target identity and a preset access correspondence; wherein the access correspondence represents a one-to-one correspondence between multiple controllers and multiple address access spaces; sending the current IO command to a target controller in the NVMe device corresponding to the target address access space, so as to control the target storage disk to drop data through the target controller.

[0055] In the process of controlling the disk placement, the technical solution first determines the target address access space that each IO command needs to be placed on disk for processing according to the access correspondence and the target identity in each IO command in the IO queue; wherein, the mainboard pre-allocates different address access spaces for different controllers, which is equivalent to distinguishing mutually independent hardware paths for each controller; based on this, each IO command is independently sent to the target controller corresponding to its target address access space, and each target controller independently controls a target storage disk to place data on disk. Compared with the existing disk placement controller of a single storage disk, this embodiment expands multiple controllers and multiple storage disks, and controls and schedules multiple controllers uniformly through the mainboard. At the same time, each controller controls a storage disk for placement, thereby realizing that the mainboard manages multiple controllers to independently control the storage disks for placement, improving the flexibility of multi-storage disk access, and ensuring that each controller can efficiently perform storage access, thereby better realizing NVMe multi-storage disk placement, and improving the scalable capacity and NVMe storage efficiency of NVMe storage.

[0056] Reference Figure 4 The schematic diagram of the structure of the device for dropping multiple storage disks is shown in the figure. The device is arranged on the mainboard. The mainboard is connected to multiple NVMe devices. The NVMe devices include controllers for controlling storage disks. Each of the controllers is connected to a storage disk. The device is used to implement the method for dropping multiple storage disks provided in the above embodiment. Figure 4 As shown, the disk placement device for multiple storage disks includes the following modules:

[0057] A command receiving module 210, configured to receive an IO queue including a plurality of IO commands;

[0058] The identity acquisition module 220 is used to acquire the target identity of the target storage disk to be accessed from the current IO command; wherein each of the IO commands in the IO queue is used as the current IO command;

[0059] The address determination module 230 is used to determine the target address access space corresponding to the current IO command according to the target identity and a preset access correspondence relationship; wherein the access correspondence relationship represents a one-to-one correspondence between the plurality of controllers and the plurality of address access spaces;

[0060] The disk placement module 240 is used to send the current IO command to the target controller in the NVMe device corresponding to the target address access space, so as to control the target storage disk to place data on the disk through the target controller.

[0061] In some embodiments, the mainboard is connected to the plurality of NVMe devices via an AXI Interconnect; the apparatus further comprises a distribution module, which is used to:

[0062] The AXI Interconnect is used to allocate access space for multiple AXI buses connected to the NVMe devices, to obtain multiple address access spaces corresponding to the multiple NVMe devices, and to determine the access correspondence between each of the NVMe devices and each of the address access spaces.

[0063] In some embodiments, the NVMe device further includes an NVMe transceiver connected to the controller and the AXIInterconnect respectively; the disk placement module 240 is further used for:

[0064] After passing through the AXI Interconnect, the current IO command is sent to the NVMe transceiver in the NVMe device corresponding to the target address access space, and the current IO command is sent to the target controller through the NVMe transceiver using the NVMe protocol.

[0065] In some embodiments, the controller is also connected to a memory device; the disk placement module 240 is further used to: place the data in the memory device onto the target storage disk through the target controller according to the current IO command.

[0066] In some embodiments, the device further includes a monitoring module, which is used to: monitor the disk processing results fed back by each of the controllers in response to the IO command; and generate abnormal disk information if the disk processing results are not monitored within a preset time.

[0067] In some embodiments, the controller is connected to the storage disk via a high-speed serial computer expansion bus standard PCIe.

[0068] In some embodiments, the memory device is also connected to remote direct memory access (RDMA).

[0069] The implementation principle and technical effects of the device provided in this embodiment are the same as those of the aforementioned method embodiment. For the sake of brief description, for matters not mentioned in the device embodiment, reference may be made to the corresponding contents in the aforementioned method embodiment.

[0070] Figure 5 The structure diagram of an electronic device provided by the embodiment of the present disclosure is shown in FIG. Figure 5 As shown, the electronic device 300 includes one or more processors 301 and a memory 302 .

[0071] The processor 301 may be a central processing unit (CPU) or other forms of processing units having data processing capabilities and / or instruction execution capabilities, and may control other components in the electronic device 300 to perform desired functions.

[0072] The memory 302 may include one or more computer program products, and the computer program product may include various forms of computer-readable storage media, such as volatile memory and / or non-volatile memory. The volatile memory may include, for example, random access memory (RAM) and / or cache memory (cache), etc. The non-volatile memory may include, for example, read-only memory (ROM), hard disk, flash memory, etc. One or more computer program instructions may be stored on the computer-readable storage medium, and the processor 301 may run the program instructions to implement the multi-storage disk drop method of the embodiment of the present disclosure described above and / or other desired functions. Various contents such as input signals, signal components, noise components, etc. may also be stored in the computer-readable storage medium.

[0073] In one example, the electronic device 300 may further include: an input device 303 and an output device 304 , and these components are interconnected via a bus system and / or other forms of connection mechanisms (not shown).

[0074] In addition, the input device 303 may also include, for example, a keyboard, a mouse, and the like.

[0075] The output device 304 can output various information to the outside, including the determined distance information, direction information, etc. The output device 304 can include, for example, a display, a speaker, a printer, a communication network and a remote output device connected thereto, and the like.

[0076] Of course, to simplify, Figure 5 Only some of the components related to the present disclosure in the electronic device 300 are shown, and components such as a bus, an input / output interface, etc. are omitted. In addition, according to specific application situations, the electronic device 300 may also include any other appropriate components.

[0077] Furthermore, this embodiment also provides a computer-readable storage medium, wherein the storage medium stores a computer program, and the computer program is used to execute the above-mentioned method for storing data on multiple storage disks.

[0078] The embodiments of the present disclosure provide a method, device, electronic device, and computer program product for placing multiple storage disks on disk, including a computer-readable storage medium storing program code. The instructions included in the program code can be used to execute the methods described in the previous method embodiments. The specific implementation can be found in the method embodiments, which will not be described in detail here.

[0079] It should be noted that, in this article, relational terms such as "first" and "second" are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Moreover, the terms "include", "comprise" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, the elements defined by the sentence "comprise a ..." do not exclude the existence of other identical elements in the process, method, article or device including the elements.

[0080] The above description is only a specific embodiment of the present disclosure, so that those skilled in the art can understand or implement the present disclosure. Various modifications to these embodiments will be apparent to those skilled in the art, and the general principles defined herein may be implemented in other embodiments without departing from the spirit or scope of the present disclosure. Therefore, the present disclosure will not be limited to the embodiments described herein, but will conform to the widest scope consistent with the principles and novel features disclosed herein.

Claims

1. A method for placing multiple storage disks, characterized in that: The method is performed by a mainboard, the mainboard is connected to a plurality of NVMe devices, the NVMe devices include a controller for controlling a storage disk, each of the controllers is respectively connected to a storage disk; the mainboard is used to independently control and schedule each of the controllers through AXI Interconnect, and the mainboard pre-allocates different address access spaces for different controllers; the method includes: receiving an IO queue including a plurality of IO commands; Obtaining a target identity of a target storage disk to be accessed from a current IO command; wherein each of the IO commands in the IO queue is used as the current IO command; Determine the target address access space corresponding to the current IO command according to the target identity and the preset access correspondence relationship; wherein the access correspondence relationship is used to represent a one-to-one correspondence between the plurality of controllers and the plurality of address access spaces; The current IO command is sent to the target controller in the NVMe device corresponding to the target address access space, so as to control the target storage disk through the target controller to store data on the disk.

2. The method according to claim 1, characterized in that The mainboard is connected to the plurality of NVMe devices via AXI Interconnect; the method further comprising: The AXI Interconnect is used to allocate access space for multiple AXI buses connected to the NVMe devices, to obtain multiple address access spaces corresponding to the multiple NVMe devices, and to determine the access correspondence between each of the NVMe devices and each of the address access spaces.

3. The method according to claim 2, characterized in that The NVMe device also includes an NVMe transceiver connected to the controller and the AXI Interconnect respectively; The sending the current IO command to the target controller in the NVMe device corresponding to the target address access space includes: After passing through the AXI Interconnect, the current IO command is sent to the NVMe transceiver in the NVMe device corresponding to the target address access space, and the current IO command is sent to the target controller through the NVMe transceiver using the NVMe protocol.

4. The method according to claim 1, characterized in that The controller is also connected to the memory device; and controlling the target storage disk to store data through the target controller includes: The target controller writes the data in the memory device to the target storage disk according to the current IO command.

5. The method according to claim 1, characterized in that The method further comprises: Monitor the disk processing results fed back by each of the controllers in response to the IO command; If the disk placement processing result is not monitored within a preset time, abnormal disk information is generated.

6. The method according to claim 1, characterized in that The controller is connected to the storage disk via a high-speed serial computer expansion bus standard PCIe.

7. The method according to claim 4, characterized in that The memory device is also connected with Remote Direct Memory Access RDMA.

8. A disk placement device for multiple storage disks, characterized in that: The device is arranged on a mainboard, the mainboard is connected to a plurality of NVMe devices, the NVMe devices include a controller for controlling a storage disk, each of the controllers is respectively connected to a storage disk; the mainboard is used to independently control and schedule each of the controllers through AXI Interconnect, and the mainboard pre-allocates different address access spaces for different controllers; the device includes: A command receiving module, used for receiving an IO queue including a plurality of IO commands; An identity acquisition module, used to acquire a target identity of a target storage disk to be accessed from a current IO command; wherein each of the IO commands in the IO queue is used as the current IO command; An address determination module, used to determine the target address access space corresponding to the current IO command according to the target identity and a preset access correspondence relationship; wherein the access correspondence relationship is used to represent a one-to-one correspondence between the plurality of controllers and the plurality of address access spaces; The disk placement module is used to send the current IO command to the target controller in the NVMe device corresponding to the target address access space, so as to control the target storage disk to place data on the disk through the target controller.

9. An electronic device, characterized in that: The electronic device comprises: processor; a memory for storing instructions executable by the processor; The processor is used to read the executable instructions from the memory and execute the instructions to implement the method described in any one of claims 1 to 7.

10. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores instructions, and when the instructions are executed on a terminal device, the terminal device implements the method according to any one of claims 1 to 7.

Citation Information

Patent Citations

  • A method, system, and apparatus for multi-channel data processing of storage devices.

    CN102298561A

  • Method of accessing memory and corresponding circuit

    CN113568851A

  • Field programmable gate array (FPGA)-based disk data read-write control method and device and storage terminal

    CN115269455A