A control card, data processing method, and computing device

By integrating the main controller, RAID controller, and CXL controller into a control card, the problem of server PCIe resource consumption was solved, achieving efficient resource management and flexible communication.

CN119576823BActive Publication Date: 2026-06-16XFUSION DIGITAL TECH CO LTD

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
XFUSION DIGITAL TECH CO LTD
Filing Date
2024-11-27
Publication Date
2026-06-16

Smart Images

  • Figure CN119576823B_ABST
    Figure CN119576823B_ABST
Patent Text Reader

Abstract

The application provides a control card, a data processing method and a computing device. The control card comprises a circuit board, a main controller, a RAID (Redundant Array of Independent Disks) controller, a CXL (Compute Express Link) controller and a first connector and a second connector which are arranged on the circuit board. The main controller is connected with a processor of a server through the first connector to interact with the processor. The main controller is also connected with the RAID controller and the CXL controller to manage the RAID controller and the CXL controller. The RAID controller and the CXL controller are connected with hard disks and / or extended memories through the second connector. The RAID controller is used for managing the connected hard disks, and the CXL controller is used for managing the connected extended memories. The application can reduce the consumption of the PCIe resources of the server by the PCIe device connected with the server.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of computer technology, and in particular to a control card, a data processing method, and a computing device. Background Technology

[0002] With the development of computer technology, peripheral component interconnect express (PCIe) devices are becoming increasingly common, such as compute express link (CXL) memory and non-volatile memory express (NVMe) hard drives. These PCIe devices can be configured within servers to improve server performance. For example, multiple CXL memory modules can be configured to increase the server's memory capacity and improve data access speed; similarly, multiple NVMe hard drives can be configured to increase the server's storage capacity and data storage capacity.

[0003] Both CXL memory and NVMe hard drives require the use of CPU PCIe resources. When there are many types and numbers of PCIe devices connected to the server, the consumption of the server's PCIe resources is even greater. Therefore, how to reduce the consumption of server PCIe resources by PCIe devices connected to the server is an urgent problem to be solved. Summary of the Invention

[0004] This application provides a control card, a data processing method, and a computing device to reduce the PCIe resource consumption of the server by PCIe devices connected to the server.

[0005] In a first aspect, embodiments of this application provide a control card, including a circuit board, and a main controller, a disk array RAID controller, a compute fast interconnect CXL controller, and a first connector and a second connector disposed on the circuit board;

[0006] The main controller is connected to the server's CPU via the first connector to interact with the CPU;

[0007] The main controller is also connected to the RAID controller and the CXL controller to manage the RAID controller and the CXL controller;

[0008] The RAID controller and the CXL controller are connected to the hard drive and / or extended memory via the second connector, wherein the RAID controller is used to manage the connected hard drive, and the CXL controller is used to manage the connected extended memory.

[0009] In the above technical solution, in addition to integrating the RAID controller and CXL controller, the control card also integrates a main controller for managing the RAID controller and CXL controller. In this way, when the RAID controller and CXL controller are connected to PCIe devices, such as hard drives and / or extended memory, the main controller can manage the RAID controller and CXL controller. This can free up the resources consumed by the CPU in managing the RAID controller and CXL controller, such as PCIe resources, and reduce the consumption of PCIe resources on the server.

[0010] In one possible implementation, the main controller communicates with the CPU via the PCIe protocol for high-speed peripheral interconnect, the main controller communicates with the RAID controller via the NVMe protocol for non-volatile memory high-speed storage, and the main controller communicates with the CXL controller via the CXL protocol.

[0011] The main controller is used for protocol conversion between any two of the PCIe protocol, the NVMe protocol, and the CXL protocol.

[0012] In the above technical solution, through the protocol conversion processing of the main controller, communication between any two of the CPU, RAID control and CXL controller can be realized, which can improve the communication flexibility of the control card.

[0013] In one possible implementation, the number of the second connectors is at least two;

[0014] Each second connector is connected to both the RAID controller and the CXL controller. The main controller is also used to identify the storage disk connected to any of the second connectors and control the link between the second connector and the target controller. The storage disk includes the hard disk or the extended memory. The target controller is the controller that matches the storage disk among the RAID controller and the CXL controller.

[0015] In the above technical solution, the main controller also has a selection capability. When each second connector is connected to both the RAID controller and the CXL controller, it can select either the RAID controller or the CXL controller by identifying the storage disk connected to the control card. In this way, different types of storage disks can be connected through a single second connector, which can improve the flexibility of the connection method between the control card and the storage disk.

[0016] In one possible implementation, the number of the second connectors is at least two;

[0017] A portion of at least two second connectors is connected to the RAID controller, and another portion of the at least two second connectors is connected to the CXL controller.

[0018] In the above technical solution, each second connector is connected to only one of the RAID controller and CXL controller, making the connection method relatively simple; and a certain type of storage disk is fixedly connected to each second connector, which can improve the convenience of the controller card in managing the storage disk.

[0019] A second aspect of this application provides a computing device, including a motherboard, a control card, and a storage disk. The motherboard includes a CPU, which is connected to the control card. The control card is also connected to the storage disk, which includes a hard disk and / or extended memory.

[0020] The control card includes a circuit board and a main controller, a disk array RAID controller, a compute fast interconnect CXL controller, a first connector, and a second connector mounted on the circuit board.

[0021] The main controller is connected to the CPU via the first connector to communicate with the CPU;

[0022] The main controller is also connected to the RAID controller and the CXL controller to manage the RAID controller and the CXL controller;

[0023] The RAID controller and the CXL controller are connected to the hard drive and / or the extended memory via the second connector, wherein the RAID controller is used to manage the connected hard drive, and the CXL controller is used to manage the connected extended memory.

[0024] In the above technical solution, hard drives and extended memory can be connected to the server through a controller card. Since the controller card integrates the main controller, RAID controller, and CXL controller, and the main controller can manage the RAID controller and CXL controller, when the RAID controller and CXL controller are connected to PCIe devices, such as hard drives and / or extended memory, the resources consumed by the CPU in managing the RAID controller and CXL controller, such as PCIe resources, can be freed up, thus reducing the consumption of PCIe resources on the server.

[0025] A third aspect of this application provides a data processing method applied to a main controller in a control card, the control card further including a disk array (RAID) controller and a compute fast interconnect (CXL) controller; the main controller manages the RAID controller and the CXL controller, the RAID controller manages the connected hard drives, and the CXL controller manages the connected extended memory; the method includes:

[0026] Obtain the first instruction sent by the server's processor CPU, the first instruction being used to instruct the storage or retrieval of target data;

[0027] Based on the first instruction, the target storage disk is determined;

[0028] When the target storage disk is a hard disk, the main controller controls the RAID controller to process the storage or retrieval of the target data;

[0029] When the target storage disk is an extended memory, the main controller controls the CXL controller to process the storage or retrieval of the target data.

[0030] In the above technical solution, if the hard disk and / or extended memory are connected to the server's CPU through a control card, the main controller will handle the data read or store instructions for the hard disk and / or extended memory without the CPU's involvement. This frees up the computing resources or PCIe resources required by the CPU to process the data read or store instructions, thus saving CPU resources.

[0031] In one possible implementation, when the target storage disk is a hard disk, the main controller controls the RAID controller to handle the storage or retrieval of target data, including:

[0032] When storing the target data, the main controller performs protocol conversion processing on the target data to convert the format of the target data into a format that conforms to the NVMe protocol;

[0033] The main controller sends the target data after protocol conversion to the RAID controller;

[0034] When reading the target data, the main controller sends the storage address of the target data to the RAID controller;

[0035] The main controller obtains the target data returned by the RAID controller and performs protocol conversion processing on the target data to convert the format of the target data into a format that conforms to the PCIe protocol.

[0036] The main controller sends the target data after protocol conversion to the CPU.

[0037] In the above technical solution, the main controller converts the target data into data in a format that conforms to the NVMe protocol or a format that conforms to the PCIe protocol through protocol conversion processing, which can realize communication between the CPU and the hard drive.

[0038] In one possible implementation, when the target storage disk is extended memory, the main controller controls the CXL controller to handle the storage or retrieval of target data, including:

[0039] When storing the target data, the main controller performs protocol conversion processing on the target data to convert the format of the target data into a format that conforms to the CXL protocol;

[0040] The main controller sends the target data after protocol conversion to the CXL controller;

[0041] When reading the target data, the main controller sends the storage address of the target data to the CXL controller;

[0042] The main controller obtains the target data returned by the CXL controller and performs protocol conversion processing on the target data to convert the format of the target data into a format that conforms to the PCIe protocol.

[0043] The main controller sends the target data after protocol conversion to the CPU.

[0044] In the above technical solution, the main controller converts the target data into data in a format that conforms to the CXL protocol or into a format that conforms to the PCIe protocol through protocol conversion processing, which can realize communication between the CPU and the extended memory.

[0045] In one possible implementation, when the target storage disk is a hard disk, the main controller controls the RAID controller to process the storage or retrieval of the target data, including:

[0046] When storing the target data, multiple segments of data corresponding to the target data are determined, and the main controller controls the RAID controller to write the multiple segments of data to the hard disk in multiple steps;

[0047] When reading the target data, multiple segments of data corresponding to the target data are determined. The main controller acquires the multiple segments of data multiple times through the RAID controller, and combines the multiple segments of data into the target data, which is then sent to the CPU.

[0048] In the above technical solution, the main controller can control the RAID controller to write data to the hard drive in a segmented writing manner and read data from the hard drive in a segmented reading manner, making the data reading and writing method relatively simple.

[0049] In one possible implementation, the main controller controls the RAID controller to write the multiple segments of data to the hard disk in multiple stages, including:

[0050] The main controller controls the CXL controller to write the multiple segmented data into the extended memory;

[0051] The main controller retrieves the multiple segments of data from the extended memory in multiple steps through the CXL controller, and controls the RAID controller to write the retrieved segments of data to the hard disk each time, until all the multiple segments of data are written to the hard disk.

[0052] In the above technical solution, when the main controller controls the RAID controller to write data to the hard drive in a segmented writing manner, it is necessary to use memory to cache the multiple segments of data. In this case, the memory space corresponding to the extended memory on the same controller card can be used first. Since the extended memory is closer to the hard drive than the CPU memory, the data writing speed can be improved.

[0053] In one possible implementation, the main controller acquires multiple segments of data multiple times through the RAID controller, and combines the multiple segments into the target data, which is then sent to the CPU, including:

[0054] The main controller controls the RAID controller to acquire the multiple segments of data in multiple transactions, and controls the CXL controller to write the acquired segment data into the extended memory each time.

[0055] The main controller retrieves the multiple segmented data from the extended memory in multiple steps through the CXL controller, integrates the multiple segmented data into the target data, and sends it to the CPU.

[0056] In the above technical solution, when the main controller controls the RAID controller to read data from the hard drive in a segmented reading manner, it is necessary to use memory to cache the multiple segments of data. In this case, the memory space corresponding to the extended memory on the same controller card can be used first. Since the extended memory is closer to the hard drive than the CPU memory, the data reading speed can be improved.

[0057] Furthermore, through the protocol conversion processing of the main controller, communication between the CPU, RAID control, and any two of the CXL controllers can be realized, which can improve the communication flexibility of the control card.

[0058] In one possible implementation, the first instruction also includes the hot / cold level of the target data;

[0059] The step of determining the target storage disk based on the first instruction includes:

[0060] When the temperature rating is higher than the preset level, the target storage disk is determined to be the extended memory;

[0061] When the temperature rating is not higher than the preset rating, the target storage disk is determined to be the hard disk.

[0062] In the above technical solution, data with different hot and cold levels can be stored on different storage disks. For example, hot data with a higher hot and cold level can be stored in extended content, while cold data with a lower hot and cold level can be stored on the hard disk. In this way, when reading and writing data, the main controller can determine the target storage disk corresponding to the target data based on the hot and cold level of the target data being read and written. The determination method is relatively simple and easy to implement.

[0063] In one possible implementation, the method further includes:

[0064] The main controller records the first data that has been read from the hard disk a number greater than or equal to a preset number;

[0065] The main controller obtains the first data through the RAID controller and controls the CXL controller to store the first data into the extended memory.

[0066] In the above technical solution, if the number of times the first data is read is large, it indicates that the data is of a high cold or hot level. Therefore, if the number of times the data is read is greater than or equal to the preset number, the data can be written to the extended memory, so that the CPU can read the data more quickly and reduce the data processing latency.

[0067] In one possible implementation, the RAID controller and the CXL controller are connected to the hard drive and / or the extended memory via connectors, and the method further includes:

[0068] When the connector is connected to the storage disk, the main controller obtains a handshake request sent by the connected storage disk. The handshake request includes the communication protocol supported by the storage disk, which includes the Non-Volatile Memory Fast Storage (NVMe) protocol or the Compute Fast Interconnect (CXL) protocol.

[0069] If the communication protocol included in the handshake request is the NVMe protocol, the main controller determines that the type of the connected storage disk is the hard disk;

[0070] If the communication protocol included in the handshake request is the CXL protocol, the main controller determines that the type of the connected storage disk is the extended memory.

[0071] In the above technical solution, the main controller can identify the storage disk connected to any connector through a handshake protocol, which can improve the accuracy of storage disk identification.

[0072] In one possible implementation, the connector is connected to both the RAID controller and the CXL controller, and the method further includes:

[0073] If the type of the connected storage disk is determined to be the hard disk, the main controller controls the link between the connector and the RAID controller to be established;

[0074] If the type of the connected storage disk is determined to be the extended memory, the main controller controls the connection to be established with the CXL controller.

[0075] In the above technical solution, the main controller also has a selection capability. When each connector is connected to both the RAID controller and the CXL controller, it can select either the RAID controller or the CXL controller by identifying the storage disk connected to the control card. In this way, different types of storage disks can be connected through a single connector, which can improve the flexibility of the connection method between the control card and the storage disk. Attached Figure Description

[0076] Figure 1 This is a schematic diagram of an example structure of the control card 100 provided in an embodiment of this application;

[0077] Figure 2 A schematic diagram illustrating another example of the structure of the control card 100 provided in this application embodiment;

[0078] Figure 3 A schematic diagram illustrating another example of the structure of the control card 100 provided in this application embodiment;

[0079] Figure 4 A schematic diagram illustrating another example of the structure of the control card 100 provided in this application embodiment;

[0080] Figure 5 A schematic diagram of an example of a computing device provided in an embodiment of this application;

[0081] Figure 6 A schematic diagram illustrating an example of the connection between the motherboard 501 and the control card 502 provided in an embodiment of this application;

[0082] Figure 7A A schematic diagram illustrating another example of the connection between the motherboard 501 and the control card 502 provided in this application embodiment;

[0083] Figure 7B A schematic diagram illustrating another example of the connection between the motherboard 501 and the control card 502 provided in this application embodiment;

[0084] Figure 8 A schematic diagram illustrating another example of the connection between the motherboard 501 and the control card 502 provided in this application embodiment;

[0085] Figure 9 A schematic diagram illustrating another example of a computing device provided in the embodiments of this application;

[0086] Figure 10 A flowchart illustrating an example of a data processing method provided in an embodiment of this application. Detailed Implementation

[0087] To facilitate a clear description of the technical solutions of the embodiments of this application, the following description is provided in conjunction with the accompanying drawings.

[0088] In the embodiments of this application, terms such as "first" and "second" are used to distinguish identical or similar items with essentially the same function and effect. For example, "first instruction" and "second instruction" are used to distinguish different user instructions, but do not limit their order. Those skilled in the art will understand that terms such as "first" and "second" do not limit the quantity or execution order, and that "first" and "second" do not necessarily imply that they are different.

[0089] It should be noted that, in this application, the words "exemplarily" or "for example" are used to indicate examples, illustrations, or explanations. Any embodiment or design described as "exemplarily" or "for example" in this application should not be construed as being more preferred or advantageous than other embodiments or designs. Specifically, the use of words such as "exemplarily" or "for example" is intended to present the relevant concepts in a specific manner.

[0090] "At least one" means one or more, while "more" means two or more. "And / or" describes the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can mean: A alone, A and B simultaneously, or B alone, where A and B can be singular or plural. "At least one of the following" or similar expressions refer to any combination of these items, including any combination of single or plural items.

[0091] With the continuous advancement of computer technology, the performance requirements for servers are gradually increasing. For example, servers need to provide higher data throughput and lower response latency.

[0092] As an example, server performance can be improved by connecting PCIe devices to the server. For instance, to increase the server's data storage capacity, hard drives, such as NVMe drives, can be connected to provide more storage space. To improve the server's data throughput and response latency, CXL memory can be connected to the server, enabling memory expansion and sharing to meet the needs of higher data throughput and lower response latency.

[0093] Taking CXL memory as an example, CXL memory can be connected to the server through a CXL adapter card, and the CXL adapter card can be connected to the server by inserting it into the PCIe slot of the server motherboard; communication between CXL memory and the server host also requires the use of a PCIe link. It can be seen that in order to achieve the above functions, PCIe devices need to occupy the server's PCIe resources.

[0094] When there are more types and more PCIe devices connected to the server, the consumption of the server's PCIe resources is greater. Therefore, how to reduce the consumption of the server's processor (CPU) PCIe resources by the PCIe devices connected to the server is an urgent problem to be solved.

[0095] In view of this, embodiments of this application provide a control card, including a circuit board, and a main controller, a disk array RAID controller, a compute fast interconnect (CXL) controller, and a first connector and a second connector disposed on the circuit board;

[0096] The main controller is connected to the server's CPU via the first connector to interact with the CPU;

[0097] The main controller is also connected to the RAID controller and the CXL controller to manage the RAID controller and the CXL controller;

[0098] The RAID controller and the CXL controller are connected to the hard drive and / or extended memory via the second connector, wherein the RAID controller is used to manage the connected hard drive, and the CXL controller is used to manage the connected extended memory.

[0099] In the above technical solution, in addition to integrating the RAID controller and CXL controller, the control card also integrates a main controller for managing the RAID controller and CXL controller. In this way, when the RAID controller and CXL controller are connected to PCIe devices, such as hard drives and / or extended memory, the main controller can manage the RAID controller and CXL controller. This can free up the resources consumed by the CPU in managing the RAID controller and CXL controller, such as PCIe resources, and reduce the consumption of PCIe resources on the server.

[0100] The control card provided in the embodiments of this application is described below with reference to the accompanying drawings.

[0101] Please refer to Figure 1 This is a structural block diagram of an example of a control card provided in an embodiment of this application. Figure 1 As shown, the control card 100 includes a circuit board 101, and a main controller 102, a disk array RAID controller 103, a compute fast interconnect (CXL) controller 104, a first connector 105, and a second connector 106 disposed on the circuit board 101.

[0102] The main controller 102 is connected to the first connector 105, and through the first connector 105, it is connected to the server's processor CPU to interact with the CPU. Figure 1 The CPU is not shown.

[0103] The main controller 102 is also connected to the RAID controller 103 and the CXL controller 104 to manage the RAID controller 103 and the CXL controller 104. In this embodiment, the main controller 102 and the RAID controller 103 communicate via the Non-Volatile Memory Fast Storage (NVMe) protocol, and the main controller 102 and the CXL controller 104 communicate via the CXL protocol.

[0104] Because different controllers communicate using different protocols, the main controller 102 in this embodiment is also used for protocol conversion. For example, it can convert between any two protocols among the PCIe protocol, the NVMe protocol, and the CXL protocol. Specifically, when the main controller 102 controls the RAID controller 103 to communicate with the CPU, the main controller 102 is used for protocol conversion between the PCIe protocol and the NVMe protocol; when the main controller 102 controls the CXL controller 104 to communicate with the CPU, the main controller 102 is used for protocol conversion between the PCIe protocol and the CXL protocol; when the main controller 102 controls the RAID controller 103 to communicate with the CXL controller 104, the main controller 102 is used for protocol conversion between the NVMe protocol and the CXL protocol.

[0105] RAID controller 103 and CXL controller 104 are connected to hard disk and / or extended memory via the second connector 106. Since both hard disk and extended memory can be used to store data, in this embodiment, hard disk and extended memory can be collectively referred to as storage disk.

[0106] The controller card 100 can connect to different types of storage disks via a second connector. It is understood that different types of storage disks refer to PCIe devices that support different communication protocols and are used for data storage. The communication protocol of a PCIe device can include a physical layer protocol, a data link layer protocol, and an application layer protocol. If two PCIe devices have different application layer protocols, they can be considered as different types of PCIe devices. As an example, if the application layer of CXL memory supports the CXL protocol, while the application layer of the NVMe hard drive supports the Redundant Array of Independent Disks (RAID) protocol, then the CXL memory and the NVMe hard drive can be considered as different types of PCIe devices. In this embodiment, the hard drive and the extended memory have different application layer protocols. For example, the hard drive can use non-volatile memory for fast NVMe protocol storage, while the extended memory can use the CXL protocol. Therefore, the hard drive and the extended memory are different types of storage disks. Based on the protocols supported by the RAID controller 103 and the CXL controller 104 respectively, in this embodiment, the RAID controller 103 is used to manage the connected hard drive, and the CXL controller 104 is used to manage the connected extended memory.

[0107] In this embodiment, the number of the first connector and the second connector is not limited. To enable the control card to connect to different types of storage disks, the number of the second connector can be set to at least two, so that each second connector can connect to one storage disk.

[0108] When there are at least two second connectors, the connection methods between the second connectors and RAID controller 103 and / or CXL controller 104 include, but are not limited to, the following two:

[0109] In the first connection method, a portion of one of the at least two second connectors is connected to the RAID controller 103, and the other portion of the at least two second connectors is connected to the CXL controller 104.

[0110] like Figure 1 In the example shown, the second connector 106 can be classified according to the different controllers to which the first connector is connected. Figure 1 In the diagram, the second connector 106 is labeled as the first type connector 1061 and the second type connector 1062. The first type connector 1061 is connected to the RAID controller 103, and the second type connector 1062 is connected to the CXL controller 104. In this way, different types of second connectors can connect to different types of storage disks. For example, the first type connector 1061 can connect to a hard drive, such as an NVMe hard drive, and the second type connector 1062 can connect to extended memory, such as CXL memory.

[0111] like Figure 1 As shown, each first-type connector 1061 is connected to the same RAID controller 103, and each second-type connector 1062 is connected to the same CXL controller 104. This can be understood as connectors of the same type sharing the same controller.

[0112] In other examples, each connector may use its own dedicated controller. Please refer to [reference needed]. Figure 2 This is a structural block diagram illustrating another example of how the second connector connects to the RAID controller 103 and / or the CXL controller 104. (See diagram for example.) Figure 2 As shown, each controller connects to only one second connector. Figure 2 and Figure 1 In this configuration, the number of first-type connectors 1061 and second-type connectors 1062 is the same, but the number of RAID controllers 103 and CXL controllers 104 is different. Figure 1 The RAID controller 103 and CXL controller 104 each include one, while Figure 2 Both the RAID controller 103 and the CXL controller 104 include multiples, and the number of RAID controllers 103 is the same as that of the first type connector 1061, and the number of CXL controllers 104 is the same as that of the second type connector 1062.

[0113] In the first connection method, the connection positions of different types of storage disks are preset when connecting different types of storage disks.

[0114] In order to enable flexible access to different types of storage disks, that is, to allow access to any type of storage disk through any second connector 106, the following second connection method is provided.

[0115] In the second connection method, each second connector 106 is connected to the RAID controller 103 and the CXL controller 104 respectively, so that the second connector 106 can be connected to any type of storage disk.

[0116] Please refer to Figure 3 This is a structural block diagram illustrating another example of how the second connector connects to the RAID controller 103 and / or the CXL controller 104. (See diagram for example.) Figure 3 As shown, each second connector 106 connects to two controllers, and the number of RAID controllers 103 and CXL controllers 104 is the same as the number of second connectors 106.

[0117] To simplify the structure of the control card 100, the control card 100 may also include only one RAID controller 103 and one CXL controller 104, such as Figure 4 As shown. In Figure 4 In this configuration, each second connector 106 is connected to the same RAID controller 103 and CXL controller 104.

[0118] Since a second connector 106 can only be controlled by one controller at a time, in this embodiment of the application, if a second connector 106 is connected to two controllers, the main controller 102 needs to select which controller to connect the second connector 106 to and disconnect the link between the second connector 106 and the other controller. This can be understood as the main controller 102 also having a selection function.

[0119] As an example, the main controller 102 is also used to identify a storage disk connected to any of the second connectors 106, and control the link between the second connector 106 and the target controller, wherein the storage disk includes the hard disk or the extended memory, and the target controller is the RAID controller or the controller in the CXL controller that matches the storage disk.

[0120] In this embodiment, the controller matched with the storage disk can be understood as a controller capable of managing the storage disk. If the storage disk is a hard disk, the controller matched with the storage disk is a RAID controller 103; if the storage disk is extended memory, the controller matched with the storage disk is a CXL controller 104.

[0121] After the storage disk is connected to the control card 100 via the second connector 106, the main controller 102 first identifies the type of the storage disk. The type of the storage disk may include hard disk type or extended memory type. The specific identification method may be determined by the handshake protocol between the storage disk and the controller. This will be described in the following method embodiments and will not be described in detail here.

[0122] When the type of the connected storage disk is determined to be the hard disk, the main controller 102 controls the link between the connector and the RAID controller 103 to be established; when the type of the connected storage disk is determined to be the extended memory, the main controller 102 controls the link between the connector and the CXL controller 104 to be established.

[0123] Specifically, if the main controller 102 identifies the storage disk as a hard disk, it will connect the link between the second connector 106 and the RAID controller 103 and disconnect the link between the second connector 106 and the CXL controller 104; if the main controller 102 identifies the storage disk as an extended memory type, it will connect the link between the second connector 106 and the CXL controller 104 and disconnect the link between the second connector 106 and the RAID controller 103.

[0124] Through the above technical solution, each of the second connectors 106 in the control card 100 can be connected to any type of storage disk, which can improve the versatility of the second connectors 106. Furthermore, the access position of the storage disk in the control card 100 can be flexibly set, which can improve the convenience of user operation.

[0125] It is understandable that, in specific implementation, the main controller 102, RAID controller 103, and CXL controller 104 can be independent chips with corresponding functions, or they can be integrated chips that have the functions of each device burned onto the same chip through firmware. No restrictions are imposed here.

[0126] The above is a description of the structure of the control card 100.

[0127] Based on the aforementioned control card 100, this application embodiment also provides a computing device. Please refer to... Figure 5This is a structural block diagram of an example of a computing device 500 provided in an embodiment of this application.

[0128] like Figure 5 As shown, the computing device 500 includes a motherboard 501, a control card 502, and a storage disk 503. The motherboard 501 includes a processor CPU 5011, which is connected to the control card 502. The control card 502 is also connected to the storage disk 503, which includes a hard disk and / or extended memory.

[0129] In this embodiment, the control card 502 is similar to the control card 100 in the aforementioned example, and will not be described again here. For ease of description, the various components of the control card 502 will be labeled as main controller 5021, RAID controller 5022, CXL controller 5023, first connector 5024, and second connector 5025. Figure 5 Only the first connector 5024 and the second connector 5025 are shown in the image.

[0130] like Figure 5 As shown, the motherboard 501 includes a CPU 5011 and a PCIe port 5012 for high-speed peripheral interconnect. The PCIe port 5012 is connected to the first connector 5024 of the control card 502, and the second connector 5025 of the control card 502 is connected to the storage disk 503. Depending on the type of device connected by the different connectors, the end of the control card 502 with the first connector 5024 can be called the host end, and the end of the control card 502 with the second connector 5025 can be called the device end.

[0131] The following sections will describe the connection methods between the motherboard 501, including the CPU 5011 and the PCIe port 5012, and the connection methods between the control card 502 and the storage disk 503.

[0132] First, the connection method between the motherboard 501, including the CPU 5011 and the PCIe port 5012, will be explained.

[0133] In this embodiment, the CPU 5011 and the PCIe port 5012 can be connected via a PCIe bus, including but not limited to the following three methods:

[0134] First connection method:

[0135] like Figure 6 As shown, CPU5011 is connected to PCIe port 5012 through root complex (RC) 5013. It can be understood that root complex 5013 and PCIe port 5012 form a point-to-point connection pair.

[0136] The root complex 5013 manages communication between the CPU 5011 and other PCIe devices. The root complex 5013 can contain multiple sub-components, such as the processor interface and memory controller, which will not be listed here. Figure 2 Not shown in the diagram. Additionally, PCIe port 5012 can also be understood as an endpoint.

[0137] The root complex 5013 and PCIe port 5012 can also be configured with an upstream port (USP) or a downstream port (DSP), for example, as shown below. Figure 2 As shown, a DSP is located below the root complex 5013, and a USP is located above the PCIe port 5012. The root complex 5013 and the PCIe port 5012 are connected through the DSP and the USP.

[0138] The second connection method:

[0139] exist Figure 6 In the example shown, only one PCIe port 5012 is used. In other examples, the host can be configured with multiple PCIe ports 5012. In this embodiment, the number of PCIe ports 5012 is not limited.

[0140] When the number of PCIe 5012 ports includes multiple ports, such as Figure 7A As shown, CPU 5011 is connected to multiple PCIe ports 5012 via root complex 5013 and switch 5014. This extends the PCIe links of host 110 through the switch, and each PCIe port 5012 can connect to a PCIe device, allowing host 110 to connect to multiple PCIe devices.

[0141] refer to Figure 6 The example shown, Figure 7A The switch in the system may also include a USP and multiple DSPs. The USP is connected to the DSP of the root complex 5013, and the USP of each PCIe port 5012 is connected to one DSP of the switch.

[0142] exist Figure 7A The example shown uses one switch; in other examples, the number of switches may be multiple. Please refer to [reference needed]. Figure 7B This is a block diagram illustrating an example of a structure that includes multiple switches. Figure 7BIn the process, CPU 5011 is connected to multiple PCIe ports 5012 via root complex 5013 and multiple switches 5014. The multiple switches 5014 include a first switch 50141 and a second switch 50142. One DSP of the first switch 50141 is connected to one USP of the second switch 50142. The remaining DSPs of the first switch 50141 and all the DSPs of the second switch 50142 are respectively connected to the USP of a PCIe port 5012.

[0143] The third connection method:

[0144] In the examples above, the PCIe bus used by CPU5011 was used. In other examples, CPU5011 can also use other types of buses, such as PCI bus or PCI-X bus. In this case, a bridge can be used to convert other types of buses into PCIe bus, such as... Figure 8 As shown.

[0145] exist Figure 8 In the process, CPU 5011 is connected to PCIe port 5012 through root compound 5013 and bridge 5015. Root compound 5013 is equipped with DSP, and bridge 5015 is equipped with USP. The DSP of root compound 5013 is connected to USP of bridge 5015, and bridge 5015 is connected to PCIe port 5012.

[0146] The connection method between CPU 5011 and PCIe port 5012 in host 110 has been described above. Of course, in other embodiments, CPU 5011 and PCIe port 5012 may also adopt other connection methods, which are not limited here.

[0147] Of course, the motherboard 501 may also include other components, which will not be listed here.

[0148] The connection method between the control card 502 and the storage disk 503 in the embodiments of this application will be described below.

[0149] In this embodiment of the application, the control card 502 includes two ends, which are respectively connected to the motherboard 501 and the storage disk 503. For ease of description, the end connected to the motherboard 501 is referred to as the host end, and the end connected to the storage disk is referred to as the device end.

[0150] The connection between the motherboard 501 and the control card 502 is achieved through the first connector 5204 on the host side and the PCIe port 5012 included in the motherboard 501. In this embodiment, the number of PCIe ports 5012 is not limited. When the motherboard 501 includes one PCIe port 5012, the control card 502 can be equipped with one first connector 5024; when the motherboard 501 includes multiple PCIe ports 5012, the control card 502 can be equipped with one first connector 5024, and the control card 502 connects to one PCIe port 5012 through the first connector 5024 to achieve connection with the CPU 5011; of course, the control card 502 can also be equipped with multiple first connectors 5024, and the control card 502 connects to multiple PCIe ports 5012 through multiple first connectors 5024 to achieve connection with the CPU 5011. Those skilled in the art can set it according to actual usage requirements.

[0151] The device side of the control card 502 is provided with one or more second connectors 5025.

[0152] As a connection method, the storage disk 503 can be directly connected to the second connector 5025. Therefore, the number of storage disks 503 that the control card 502 can connect to is limited by the number of second connectors 5025.

[0153] To increase the number of storage disks 503 that the control card 502 can connect to, a backplane can be provided between the control card 502 and the storage disks 503, allowing more storage disks 503 to be connected via the backplane. This example is described below with reference to the accompanying drawings.

[0154] Please refer to Figure 9 This is a schematic diagram illustrating an example of the connection method between the control card 502 and the storage disk 503 provided in this application embodiment.

[0155] like Figure 9 As shown, the back panel 504 includes a first end 5041 and a second end 5042. The first end 5041 includes a third connector 50411, and the second end 5042 includes a plurality of fourth connectors 50421. The third connectors 50411 are connected to the second connectors 5025, and the fourth connectors 50421 are connected to the storage disk 503. In this way, the storage disk can be connected to the control card 502 through the back panel 504.

[0156] The second end 5042 of the backplane 504 is usually provided with multiple fourth connectors 50421. In this way, more storage disks 503 can be connected through multiple fourth connectors 50421, which can improve the device integration and scalability of the server.

[0157] As an example, each fourth connector 50421 can be connected to a backplane 504, so multiple fourth connectors 50421 can be connected to multiple backplanes 504, thereby further increasing the number of connectable storage disks 503. Figure 9 The example is the connection between the backplane 504 and one of the fourth connectors 50421.

[0158] It should be noted that in this embodiment, the fourth connector 50421 can be a slot, through which the storage disk 503 is connected to the backplane 504. When different types of storage disks 503, such as hard drives and extended memory, are connected to the control card 502, the hard drive and extended memory can be inserted into slots on the same backplane 504 or into slots on different backplanes 504; this is not limited here. Figure 9 In the example, the memory and hard drive are inserted into the same backplane 504.

[0159] As an example, the second connector 5025 can be a UBC connector, and the third connector 50411 can be a UBC cable, with the connection achieved through the UBC cable to the UBC connector. This allows the cable length to be adjusted according to the different distances between the storage disk 503 and the motherboard 501, improving connection flexibility.

[0160] In the above technical solution, the hard drive and extended memory can be connected to the CPU of the motherboard through the controller card. Since the controller card integrates the main controller, RAID controller and CXL controller, and the main controller can manage the RAID controller and CXL controller, when the RAID controller and CXL controller are connected to the hard drive and / or extended memory respectively, the resources consumed by the CPU in managing the RAID controller and CXL controller, such as PCIe resources, can be released, which can reduce the consumption of PCIe resources of the server.

[0161] The above examples illustrate the structure of the control card and computing device provided in this embodiment. The following describes the working principle of the control card provided in this embodiment, taking the main controller of the control card as the execution subject.

[0162] Please refer to Figure 10 This application provides a data processing method for a main controller in a control card, which can be the aforementioned... Figure 1-9 The control card in any of the examples is not described in detail here. Figure 10 As shown, the data processing method includes the following steps:

[0163] S1001, The main controller identifies the connected storage disk.

[0164] When the second connector of the control card can be used to connect different types of storage disks, the main controller also needs to identify the connected storage disk when connecting the storage disk through the second connector.

[0165] The main controller acquires a handshake request sent by the connected storage disk. The handshake request includes the communication protocol supported by the storage disk, which includes the Non-Volatile Memory Fast Storage (NVMe) protocol or the Compute Fast Interconnect (CXL) protocol.

[0166] If the communication protocol included in the handshake request is the NVMe protocol, the main controller determines that the type of the connected storage disk is the hard disk;

[0167] If the communication protocol included in the handshake request is the CXL protocol, the main controller determines that the type of the connected storage disk is the extended memory.

[0168] In the above technical solution, the main controller can identify the storage disk connected to any connector through a handshake protocol, which can improve the accuracy of storage disk identification.

[0169] When a storage disk is connected to the controller card via a connector, the main controller first establishes a physical layer link with the storage disk. Then, through this link, it performs a handshake negotiation to determine the protocols supported by the disk and identifies its type. Finally, based on the determined disk type, the main controller activates the RAID controller and the corresponding CXL controller for that disk type, while deactivating the other controller. This allows the storage disk to communicate with the main controller via the target controller.

[0170] It should be noted that the above process for identifying storage disks is only an example. In other examples, other methods or related technologies can be used for identification, which will not be elaborated here.

[0171] Furthermore, step S1001 is an optional step, meaning it is not mandatory to perform. Figure 10 The middle part is represented by a dashed line.

[0172] S1002. Obtain the first instruction sent by the server's CPU.

[0173] In this embodiment, the first instruction is used to instruct the storage or retrieval of target data. When the first instruction is a read data instruction, the target data may be data stored in a hard disk and / or extended memory connected via a control card; when the first instruction is a write data instruction, the target data may be new data not currently stored in the hard disk and / or extended memory.

[0174] The CPU can communicate with the main controller through the first connector of the control card. As an example, the first connector can be a PCIe port, and the first instruction is an instruction based on the PCIe protocol.

[0175] S1003. Based on the first instruction, determine the target storage disk.

[0176] After the main controller receives the first instruction, it can determine the target storage disk to be read or stored based on the target data indicated by the first instruction.

[0177] As an example, since the main controller can be used to manage both the RAID controller and the CXL controller, it can store information about all data stored to the hard drive via the RAID controller and information about all data stored to the extended memory via the CXL controller. This information can include a first mapping between data tags and storage disk identifiers. Thus, if a first instruction instructs the reading of target data, the main controller can determine, based on this first mapping, whether the storage disk corresponding to the target data to be read is a hard drive or extended memory.

[0178] As another example, the main controller can pre-set a second mapping relationship between data types and storage disk types. Based on this second mapping relationship and the data type, the main controller stores different types of data on the hard disk or extended memory. Then, when the main controller determines that it needs to read or store target data, it can directly determine the target storage disk based on the data type of the target data.

[0179] As another example, the main controller can pre-set a third mapping relationship between data popularity and storage disk type. Based on this third mapping relationship and the data popularity, the main controller stores different data on the hard disk or extended memory. This third mapping relationship can include storing data in extended memory if the hot / cold level is higher than a preset level, and storing data on the hard disk if the hot / cold level is not higher than the preset level. In this case, the first instruction can also include the hot / cold level of the target data. When the hot / cold level of the target data is higher than the preset level, the main controller determines the target storage disk as the extended memory; when the hot / cold level of the target data is not higher than the preset level, the main controller determines the target storage disk as the hard disk.

[0180] By storing data with different hot / cold levels on different storage disks—for example, hot data with higher hot / cold levels can be stored in extended content, while cold data with lower hot / cold levels can be stored on the hard disk—the main controller can determine the target storage disk based on the hot / cold level of the target data during data read / write operations. This determination method is relatively simple and easy to implement.

[0181] Of course, the main controller can also determine the target storage disk corresponding to the target data in other ways, which will not be listed here.

[0182] S1004. If the target storage disk is a hard disk, the main controller controls the RAID controller to process the storage or retrieval of the target data.

[0183] The following will explain step S1004 in terms of both storing and reading the target data.

[0184] The storage of the target data is as follows:

[0185] In one possible implementation, step S1003 specifically includes the following steps:

[0186] The main controller performs protocol conversion processing on the target data, converting the target data format into a format that conforms to the NVMe protocol, and then sends the protocol-converted target data to the RAID controller.

[0187] As mentioned above, since the first instruction uses the PCIe protocol, the target data carried in the first instruction when storing data also uses the PCIe protocol. However, the hard drive uses the NVMe protocol, so the target data needs to be converted to an NVMe-compliant format. After the target data conforms to the NVMe protocol format, it is sent to the RAID controller, which then stores the target data on the hard drive. The main controller, through protocol conversion processing, converts the target data into an NVMe-compliant format, enabling communication between the CPU and the hard drive.

[0188] As an example, since the target data is large, the target data can be segmented during the data storage process described above. At least some of these segments are first cached in memory, and then the main controller controls the RAID controller to write the multiple segments to the hard drive in several steps. In this case, the memory space corresponding to the extended memory on the same controller card can be used preferentially. Since the extended memory is closer to the hard drive than the CPU memory, the data write speed can be improved.

[0189] The process of segmented data storage is explained below.

[0190] After the main controller determines the multiple segments of data corresponding to the target data, the main controller controls the CXL controller to write the multiple segments of data into the extended memory;

[0191] The main controller retrieves the multiple segments of data from the extended memory in multiple steps through the CXL controller, and controls the RAID controller to write the retrieved segments of data to the hard disk each time, until all the multiple segments of data are written to the hard disk.

[0192] As an example, the main controller determines that the target data is divided into segments 1 to 3, then controls the RAID controller to write segment 1 to the hard disk, and controls the CXL controller to write segment 2 and segment 3 to the extended memory. After segment 1 is written to the hard disk, the RAID controller sends a write completion command to the main controller, then the main controller controls the CXL controller to read segment 2 and writes segment 2 to the hard disk. After segment 2 is written to the hard disk, the RAID controller sends a write completion command to the main controller, then the main controller controls the CXL controller to read segment 3 and writes segment 3 to the hard disk. After segment 3 is written to the hard disk, the RAID controller sends a write completion command to the main controller, and the main controller determines that the data storage is complete.

[0193] The following scenarios are involved in reading the target data:

[0194] In one possible implementation, step S1004 specifically includes the following steps:

[0195] The main controller sends the storage address of the target data to the RAID controller, then obtains the target data returned by the RAID controller, and performs protocol conversion processing on the target data to convert the format of the target data into a format that conforms to the PCIe protocol.

[0196] The main controller sends the target data after protocol conversion to the CPU.

[0197] As mentioned above, since the first instruction uses the PCIe protocol, the target data required when reading data also uses the PCIe protocol. However, the hard drive uses the NVMe protocol, so the target data read from the hard drive needs to be converted to a PCIe-compliant format. The main controller performs protocol conversion processing to convert the target data into a PCIe-compliant format, enabling communication between the CPU and the hard drive.

[0198] As an example, since the target data volume is large, and the RAID controller can only read a limited amount of data from the hard drive at a time, multiple data segments will be acquired during the data reading process. The main controller can then combine these multiple segments into the target data and send it to the CPU. In this case, the memory space corresponding to the extended memory on the same controller card can be used preferentially. Since the extended memory is closer to the hard drive than the CPU memory, the data reading rate can be improved.

[0199] The process of reading segmented data is explained below.

[0200] The main controller controls the RAID controller to acquire the multiple segments of data in multiple transactions, and controls the CXL controller to write the acquired segment data into the extended memory each time.

[0201] The main controller retrieves the multiple segmented data from the extended memory in multiple steps through the CXL controller, integrates the multiple segmented data into the target data, and sends it to the CPU.

[0202] As an example, let's take target data comprising segmented data 4 and segmented data 5. The main controller controls the RAID controller to read segmented data 4 and controls the CXL controller to write segmented data 4 into extended memory; then it controls the RAID controller to read segmented data 5 and controls the CXL controller to write segmented data 5 into extended memory. The main controller then combines segmented data 4 and segmented data 5 into target data, converts the target data into a format conforming to the PCIe protocol, and sends the converted target data to the CPU.

[0203] Of course, the main controller can also obtain data from the hard drive in other ways, which are not limited here.

[0204] S1005. If the target storage disk is an extended memory, the main controller controls the CXL controller to process the storage or retrieval of the target data.

[0205] When storing the target data, as explained above, since the first instruction uses the PCIe protocol, the target data carried in the first instruction when storing data also uses the PCIe protocol. However, extended memory uses the CXL protocol; therefore, the format of the target data to be stored needs to be converted to a format conforming to the CXL protocol.

[0206] Accordingly, step S1005 specifically includes the following steps:

[0207] The main controller performs protocol conversion processing on the target data, converting the format of the target data into a format that conforms to the CXL protocol;

[0208] The main controller sends the target data after protocol conversion to the CXL controller;

[0209] When reading the target data, since the extended memory uses the CXL protocol, the format of the target data to be read needs to be converted into a format that conforms to the PCIe protocol.

[0210] Accordingly, step S1005 specifically includes the following steps:

[0211] The main controller sends the storage address of the target data to the CXL controller;

[0212] The main controller obtains the target data returned by the CXL controller and performs protocol conversion processing on the target data to convert the format of the target data into a format that conforms to the PCIe protocol.

[0213] The main controller sends the target data after protocol conversion to the CPU.

[0214] In the above technical solution, the main controller converts the target data into data in a format that conforms to the CXL protocol or into a format that conforms to the PCIe protocol through protocol conversion processing, which can realize communication between the CPU and the extended memory.

[0215] S1006. The main controller obtains the first data through the RAID controller and controls the CXL controller to store the first data into the extended memory.

[0216] In this embodiment, since the hot / cold level of data changes with the number of times the data is read, when the extended memory is used to store data with a hot / cold level higher than the preset level, the main controller can record the first data that has been read from the hard disk more than or equal to the preset number of times, and then store the first data in the extended memory, so that the CPU can read the data more quickly and reduce the latency of the next access to the first data.

[0217] It should be noted that step S1006 is not mandatory; it is an optional step. Figure 10 The middle part is marked by a dotted line.

[0218] In the above technical solution, if the hard disk and / or extended memory are connected to the server's CPU through a control card, the main controller will handle the data read or store instructions for the hard disk and / or extended memory without the CPU's involvement. This frees up the computing resources or PCIe resources required by the CPU to process the data read or store instructions, thus saving CPU resources.

[0219] The foregoing primarily describes the solutions provided by the embodiments of this application from the perspective of the server. It is understood that, to achieve the above functions, the server may include hardware structures and / or software modules corresponding to the execution of each function. Those skilled in the art should readily recognize that, in conjunction with the units and algorithm steps of the various examples described in the embodiments disclosed herein, the embodiments of this application can be implemented in hardware or a combination of hardware and computer software. Whether a function is executed in hardware or by computer software driving hardware depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0220] It should be noted that the division of units (modules) in this embodiment is illustrative and only represents one logical functional division. In actual implementation, there may be other division methods. The functional modules in the embodiments of this application can be integrated into one processing module, or each module can exist physically separately, or two or more modules can be integrated into one module. The integrated modules can be implemented in hardware or as software functional modules.

[0221] It should be understood that the aforementioned processor can be a Central Processing Unit (CPU), or other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. General-purpose processors can be microprocessors or any conventional processor. It is worth noting that the processor can be a processor supporting the Advanced Reduced Instruction Set Computing (RISC) machine (ARM) architecture.

[0222] This application provides a chip system including a processor and potentially a memory, for implementing the functions of the accelerator card described above. The chip system can be composed of chips or may include chips and other discrete components.

[0223] Through the above description of the embodiments, those skilled in the art will understand that, for the sake of convenience and brevity, only the division of the above functional modules is used as an example. In actual applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above.

[0224] In the several embodiments provided in this application, it should be understood that the disclosed apparatus and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of modules or units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another apparatus, or some features may be ignored or not executed. Furthermore, the mutual coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection of apparatus or units may be electrical, mechanical, or other forms.

[0225] The units described as separate components may or may not be physically separate. A component shown as a unit can be one or more physical units; that is, it can be located in one place or distributed in multiple different locations. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.

[0226] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.

[0227] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.

Claims

1. A control card, characterized in that, The system includes a circuit board, and a main controller, a RAID controller, a Compute Fast Interconnect (CXL) controller, and a first connector and a second connector mounted on the circuit board. The main controller is connected to the server's processor via the first connector to interact with the processor. The main controller is also connected to the RAID controller and the CXL controller to manage the RAID controller and the CXL controller. The RAID controller and the CXL controller are connected to hard drives and / or extended memory via the second connector, wherein the RAID controller manages the connected hard drives, and the CXL controller manages the connected extended memory. The second connector includes a first type connector and a second type connector. The RAID controller is connected to the hard drive through the first type connector, and the CXL controller is connected to the extended memory through the second type connector. The main controller communicates with the processor CPU via the PCIe protocol through the Fast Peripheral Component Interconnect (FPCI), the main controller communicates with the RAID controller via the NVMe protocol through the Non-Volatile Memory Fast Storage (NVMe), and the main controller communicates with the CXL controller via the CXL protocol. The main controller is used for protocol conversion between any two of the PCIe, NVMe, and CXL protocols.

2. The control card according to claim 1, characterized in that, The number of the second connectors is at least two; each second connector is connected to the RAID controller and the CXL controller respectively; the main controller is also used to identify the type of storage disk connected to any one of the second connectors and control the link between the second connector and the target controller; the storage disk includes the hard disk or the extended memory, and the target controller is the controller that matches the storage disk among the RAID controller and the CXL controller.

3. A computing device, characterized in that, The system includes a motherboard, a controller card, and a storage disk. The motherboard includes a CPU, which is connected to the controller card. The controller card is also connected to the storage disk, which includes a hard disk and / or extended memory. The controller card includes a circuit board and a main controller, a RAID controller, a Compute Fast Interconnect (CXL) controller, a first connector, and a second connector mounted on the circuit board. The main controller is connected to the CPU via the first connector to communicate with the CPU. The main controller is also connected to the RAID controller and the CXL controller to manage the RAID controller and the CXL controller. The RAID controller and the CXL controller are connected to the hard disk and / or the extended memory via the second connector, wherein the RAID controller manages the connected hard disk, and the CXL controller manages the connected extended memory. The second connector includes a first type connector and a second type connector. The RAID controller is connected to the hard drive through the first type connector, and the CXL controller is connected to the extended memory through the second type connector. The main controller communicates with the processor CPU via the PCIe protocol through the Fast Peripheral Component Interconnect (FPCI), the main controller communicates with the RAID controller via the NVMe protocol through the Non-Volatile Memory Fast Storage (NVMe), and the main controller communicates with the CXL controller via the CXL protocol. The main controller is used for protocol conversion between any two of the PCIe, NVMe, and CXL protocols.

4. A data processing method applied to the main controller in a control card, characterized in that, The control card further includes a RAID controller, a Compute Fast Interconnect (CXL) controller, a first connector, and a second connector; the second connector includes a first type connector and a second type connector, the RAID controller is connected to the hard drive through the first type connector, and the CXL controller is connected to the extended memory through the second type connector; the method includes: obtaining a first instruction sent by the server's CPU, the first instruction being used to instruct the storage or retrieval of target data; determining the target storage disk based on the first instruction; if the target storage disk is a hard drive, the main controller controls the RAID controller to process the storage or retrieval of the target data; if the target storage disk is extended memory, the main controller controls the CXL controller to process the storage or retrieval of the target data; The main controller communicates with the processor CPU via the PCIe protocol through the Fast Peripheral Component Interconnect (FPCI), the main controller communicates with the RAID controller via the NVMe protocol through the Non-Volatile Memory Fast Storage (NVMe), and the main controller communicates with the CXL controller via the CXL protocol. The main controller is used for protocol conversion between any two of the PCIe, NVMe, and CXL protocols.

5. The method according to claim 4, characterized in that, When the target storage disk is a hard disk, the main controller controls the RAID controller to handle the storage or retrieval of target data, including: when storing the target data, the main controller performs protocol conversion processing on the target data to convert the format of the target data into a format conforming to the NVMe protocol; the main controller sends the protocol-converted target data to the RAID controller; when retrieving the target data, the main controller sends the storage address of the target data to the RAID controller; the main controller obtains the target data returned by the RAID controller, performs protocol conversion processing on the target data to convert the format of the target data into a format conforming to the PCIe protocol; the main controller sends the protocol-converted target data to the CPU.

6. The method according to claim 4, characterized in that, When the target storage disk is extended memory, the main controller controls the CXL controller to handle the storage or retrieval of target data, including: when storing the target data, the main controller performs protocol conversion processing on the target data to convert the format of the target data into a format conforming to the CXL protocol; the main controller sends the protocol-converted target data to the CXL controller; when retrieving the target data, the main controller sends the storage address of the target data to the CXL controller; the main controller obtains the target data returned by the CXL controller and performs protocol conversion processing on the target data to convert the format of the target data into a format conforming to the PCIe protocol; the main controller sends the protocol-converted target data to the CPU.

7. The method according to claim 4, characterized in that, When the target storage disk is a hard disk, the main controller controls the RAID controller to process the storage or retrieval of the target data, including: when storing the target data, determining multiple segments of data corresponding to the target data, and the main controller controlling the RAID controller to write the multiple segments of data to the hard disk in multiple steps; when retrieving the target data, determining multiple segments of data corresponding to the target data, the main controller acquiring the multiple segments of data in multiple steps through the RAID controller, and combining the multiple segments of data into the target data, and sending it to the CPU.

8. The method according to claim 7, characterized in that, The main controller controls the RAID controller to write the multiple segments of data to the hard disk in multiple steps, including: the main controller controls the CXL controller to write the multiple segments of data to the extended memory; the main controller obtains the multiple segments of data from the extended memory multiple times through the CXL controller, and controls the RAID controller to write the obtained segments of data to the hard disk each time, until all the multiple segments of data are written to the hard disk.

9. The method according to claim 7, characterized in that, The main controller acquires multiple segments of data multiple times through the RAID controller, and combines the multiple segments into target data, which is then sent to the CPU. This includes: the main controller controlling the RAID controller to acquire the multiple segments of data multiple times, and controlling the CXL controller to write the acquired segments of data into the extended memory each time; the main controller acquiring the multiple segments of data multiple times from the extended memory through the CXL controller, and combining the multiple segments into target data, which is then sent to the CPU.

10. The method according to claim 4, characterized in that, The first instruction also includes the hot / cold level of the target data; determining the target storage disk based on the first instruction includes: when the hot / cold level is higher than a preset level, determining the target storage disk as the extended memory; when the hot / cold level is not higher than the preset level, determining the target storage disk as the hard disk.

11. The method according to claim 4, characterized in that, The method further includes: the main controller acquiring first data from the hard disk a number of times greater than or equal to a preset number; the main controller acquiring the first data through the RAID controller, and controlling the CXL controller to store the first data into the extended memory.

12. The method according to claim 4, characterized in that, The RAID controller and the CXL controller are connected to the hard disk and / or the extended memory via a second connector. The method further includes: when the second connector is connected to the storage disk, the main controller obtains a handshake request sent by the connected storage disk, the handshake request including a communication protocol supported by the storage disk, the communication protocol including the Non-Volatile Memory Fast Storage (NVMe) protocol or the Compute Fast Interconnect (CXL) protocol; if the communication protocol included in the handshake request is the NVMe protocol, the main controller determines that the type of the connected storage disk is the hard disk; if the communication protocol included in the handshake request is the CXL protocol, the main controller determines that the type of the connected storage disk is the extended memory.

13. The method according to claim 12, characterized in that, The second connector is connected to both the RAID controller and the CXL controller. The method further includes: when the type of the connected storage disk is determined to be the hard disk, the main controller controls the link between the second connector and the RAID controller to be established; when the type of the connected storage disk is determined to be the extended memory, the main controller controls the link between the second connector and the CXL controller to be established.