Control card, data processing method and computing equipment

By designing a control card integrating the main controller, RAID controller and CXL controller in the server, the problem of PCIe equipment consumes a lot of server resources is solved, and efficient resource utilization and performance improvement is achieved.

CN119576823AActive Publication Date: 2025-03-07XFUSION DIGITAL TECH CO LTD

Patent Information

Application Number
CN202411726636.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-11-27
Publication Date
2025-03-07
Estimated Expiration
2044-11-27

AI Technical Summary

Technical Problem

When the types and number of PCIe devices connected to the server are large, the consumption of PCIe resources on the server is large, resulting in waste of resources and reduced performance.

Method used

A control card is designed that integrates the main controller, RAID controller and CXL controller. Through the main controller, the RAID and CXL controllers are managed, reducing the PCIe resources consumed by the CPU to manage these controllers.

Benefits of technology

Through the design of the control card, the consumption of server PCIe resources can be effectively reduced and the performance and efficiency of the server can be improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119576823A_ABST
    Figure CN119576823A_ABST
Patent Text Reader

Abstract

The invention provides a control card, a data processing method, computing equipment and the control card, and is characterized in that the control card comprises a circuit board, and a main controller, a disk array RAID controller, a computing fast interconnection CXL controller, a first connector and a second connector which are arranged on the circuit board; the main controller is connected with the processor of the server through the first connector so as to interact with the processor; the main controller is also connected with the RAID controller and the CXL controller so as to manage the RAID controller and the CXL controller; the RAID controller and the CXL controller are connected with the hard disk and / or the extended memory through the second connector, the RAID controller is used for managing the connected hard disk, and the CXL controller is used for managing the connected extended memory. According to the scheme provided by the invention, the consumption of PCIe resources of the server by the PCIe equipment accessed to the server can be reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

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

[0002] With the development of computer technology, there are more and more peripheral component interconnect express (PCIe) devices, such as compute express link (CXL) memory, non-volatile memory express (NVMe) hard disk, etc. These PCIe devices can be configured in the server to improve the performance of the server. For example, multiple CXL memories can be configured to increase the memory space of the server and improve the data access speed of the server; for another example, multiple NVMe hard disks can be configured to increase the storage space of the server and improve the data storage capacity of the server.

[0003] Both CXL memory and NVMe hard disk need to use the PCIe resources of the CPU. When the types and number of PCIe devices connected to the server are large, the consumption of the server's PCIe resources is greater. Therefore, how to reduce the consumption of the server's PCIe resources by the PCIe devices connected to the server is an urgent problem to be solved. Summary of the invention

[0004] Embodiments of the present application provide a control card, a data processing method, and a computing device for reducing the consumption of PCIe resources of a server by a PCIe device accessing the server.

[0005] In a first aspect, an embodiment of the present application provides a control card, including a circuit board, and a main controller, a disk array RAID controller, a computing fast interconnect CXL controller, and a first connector and a second connector arranged on the circuit board;

[0006] The main controller is connected to a processor CPU of the server through 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 a hard disk and / or an extended memory via the second connector, wherein the RAID controller is used to manage the connected hard disk, and the CXL controller is used to manage the connected extended memory.

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

[0010] In a possible implementation, the main controller communicates with the CPU via a peripheral component interconnect (PCIe) protocol, the main controller communicates with the RAID controller via a non-volatile memory express (NVMe) protocol, and the main controller communicates with the CXL controller via a 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, communication between any two of the CPU, RAID control and CXL controller can be achieved through protocol conversion processing of the main controller, which can improve the communication flexibility of the control card.

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

[0014] Each second connector is connected to the RAID controller and the CXL controller respectively; the main controller is also used to identify the storage disk connected to any second connector, 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 of the RAID controller and the CXL controller that matches the storage disk.

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

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

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

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

[0019] A second aspect of an embodiment of the present application provides a computing device, including a mainboard, a control card, and a storage disk, wherein the mainboard includes a CPU, the CPU is connected to the control card, the control card is also connected to the storage disk, and the storage disk includes a hard disk and / or an extended memory;

[0020] The control card includes a circuit board and a main controller, a disk array RAID controller, a computing fast interconnect CXL controller, a first connector and a second connector arranged 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 disk and / or the extended memory via the second connector, wherein the RAID controller is used to manage the connected hard disk, and the CXL controller is used to manage the connected extended memory.

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

[0025] A third aspect of the present application provides a data processing method, which is applied to a main controller in a control card, wherein the control card further includes a disk array RAID controller and a computing fast interconnect CXL controller; the main controller manages the RAID controller and the CXL controller, the RAID controller is used to manage the connected hard disk, and the CXL controller is used to manage the connected extended memory; the method includes:

[0026] Acquire a first instruction sent by a processor CPU of the server, where the first instruction is used to instruct to store or read target data;

[0027] Based on the first instruction, determining a target storage disk;

[0028] In the case where the target storage disk is a hard disk, the main controller controls the RAID controller to process the storage or reading of the target data;

[0029] In the case that the target storage disk is an extended memory, the main controller controls the CXL controller to process the storage or reading of the target data.

[0030] In the above technical solution, if the hard disk and / or extended memory are connected to the CPU of the server through a control card, the main controller processes the data reading or storage instructions for the hard disk and / or extended memory without the participation of the CPU, thereby freeing up the computing resources or PCIe resources required for the CPU to process the data reading or storage instructions, thereby saving CPU resources.

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

[0032] In the case of storing the target data, the main controller performs protocol conversion processing on the target data so that the format of the target data is converted into a format that complies with the NVMe protocol;

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

[0034] In the case of 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, so that the format of the target data is converted into a format that complies with 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 complies with the NVMe protocol, or into a format that complies with the PCIe protocol through protocol conversion processing, thereby realizing communication between the CPU and the hard disk.

[0038] In a possible implementation, when the target storage disk is an extended memory, the main controller controls the CXL controller to process the storage or reading of target data, including:

[0039] In the case of storing the target data, the main controller performs protocol conversion processing on the target data so that the format of the target data is converted into a format that complies with the CXL protocol;

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

[0041] In case of 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, so that the format of the target data is converted into a format that complies with 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 complies with the CXL protocol, or into a format that complies with the PCIe protocol through protocol conversion processing, thereby realizing communication between the CPU and the extended memory.

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

[0046] In the case of storing the target data, determining a plurality of segmented data corresponding to the target data, and the main controller controlling the RAID controller to write the plurality of segmented data into the hard disk in multiple times;

[0047] When reading the target data, a plurality of segmented data corresponding to the target data is determined, the main controller obtains the plurality of segmented data through the RAID controller in multiple times, and integrates the plurality of segmented data into the target data, and sends the target data to the CPU.

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

[0049] In a possible implementation manner, the main controller controls the RAID controller to write the plurality of segmented data into the hard disk in multiple times, including:

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

[0051] The main controller obtains the plurality of segmented data from the extended memory through the CXL controller in multiple times, and controls the RAID controller to write the segmented data obtained each time into the hard disk until the plurality of segmented data are all written into the hard disk.

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

[0053] In a possible implementation manner, the main controller obtains a plurality of segmented data through the RAID controller in multiple times, integrates the plurality of segmented data into the target data, and sends the target data to the CPU, including:

[0054] The main controller controls the RAID controller to obtain the plurality of segmented data in multiple times, and controls the CXL controller to write the segmented data obtained each time into the extended memory;

[0055] The main controller obtains the plurality of segmented data from the extended memory through the CXL controller in multiple times, integrates the plurality of segmented data into the target data, and sends the target data to the CPU.

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

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

[0058] In a possible implementation manner, the first instruction further includes the hotness or coldness level of the target data;

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

[0060] When the cold / hot level is higher than a preset level, determining that the target storage disk is the extended memory;

[0061] When the hot / cold level is not higher than the preset level, 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 in different storage disks respectively. For example, hot data with higher hot and cold levels can be stored in extended content, while cold data with lower hot and cold levels can be stored in 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 according to the hot and cold levels of the target data to be read and written. The determination method is relatively simple and easy to implement.

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

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

[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 first data is read a large number of times, it means that the hot / cold level of the data is high. Therefore, when the data is read a large number of times, the data can be written into the extended memory, so that the CPU can read the data more quickly, thereby reducing the data processing delay.

[0067] In a possible implementation manner, the RAID controller and the CXL controller are connected to the hard disk and / or the extended memory via a connector, 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, wherein the handshake request includes a communication protocol supported by the storage disk, and the communication protocol includes a non-volatile memory express storage NVMe protocol or a computing express interconnect CXL protocol;

[0069] In a case where 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] In a case where 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 the handshake protocol, which can improve the accuracy of storage disk identification.

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

[0073] In the case where it is determined that the type of the connected storage disk is the hard disk, the main controller controls the link between the connector and the RAID controller to be turned on;

[0074] In case that it is determined that the type of the connected storage disk is the extended memory, the main controller controls the link between the connection and the CXL control device to be turned on.

[0075] In the above technical solution, the main controller also has a selection capability. When each connector is connected to the RAID controller and the CXL controller, the RAID controller or the CXL controller is selected by identifying the storage disk connected to the control card. In this way, different types of storage disks can be connected through one connector, which can improve the flexibility of the connection method between the control card and the storage disk. BRIEF DESCRIPTION OF THE DRAWINGS

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

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

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

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

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

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

[0082] Fig. 7A A structural diagram of another example of the connection between the main board 501 and the control card 502 provided in an embodiment of the present application;

[0083] Figure 7B A structural diagram of another example of the connection between the main board 501 and the control card 502 provided in an embodiment of the present application;

[0084] Figure 8 A structural diagram of another example of the connection between the main board 501 and the control card 502 provided in an embodiment of the present application;

[0085] Fig. 9 A schematic diagram of another example of a computing device provided in an embodiment of the present application;

[0086] Fig.10 A flowchart of an example of a data processing method provided in an embodiment of the present application. DETAILED DESCRIPTION

[0087] In order to clearly describe the technical solution of the embodiments of the present application, an introduction is given below in conjunction with the accompanying drawings.

[0088] In the embodiments of the present application, words such as "first" and "second" are used to distinguish between identical or similar items with substantially the same functions and effects. For example, the first instruction and the second instruction are used to distinguish between different user instructions, and their order is not limited. Those skilled in the art can understand that words such as "first" and "second" do not limit the quantity and execution order, and words such as "first" and "second" do not necessarily limit them to be different.

[0089] It should be noted that, in this application, words such as "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 interpreted as being more preferred or more advantageous than other embodiments or designs. Specifically, the use of words such as "exemplarily" or "for example" is intended to present related concepts in a specific way.

[0090] "At least one" means one or more, and "more" means two or more. "And / or" describes the association relationship of the associated objects, indicating that three relationships may exist. For example, A and / or B can mean: A exists alone, A and B exist at the same time, and B exists alone, where A and B can be singular or plural. "At least one of the following" or similar expressions refers 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 have lower response latency.

[0092] As an example, the performance of the server can be improved by connecting a PCIe device to the server. For example, to increase the data storage capacity of the server, a hard disk can be connected to the server, such as an NVMe hard disk, to provide more storage space; to improve the data throughput and response latency of the server, a CXL memory can be connected to the server, and memory expansion and memory sharing can be achieved through the CXL memory 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; CXL memory also needs to use a PCIe link to communicate with the server host. It can be seen that in order to achieve the above functions, PCIe devices need to occupy the PCIe resources of the server.

[0094] When the types and numbers of PCIe devices connected to the server increase, the consumption of PCIe resources of the server increases. Therefore, how to reduce the consumption of PCIe resources of the server processor (CPU) by PCIe devices connected to the server is a problem that needs to be solved urgently.

[0095] In view of this, an embodiment of the present application provides a control card, including a circuit board, and a main controller, a disk array RAID controller, a computing fast interconnect CXL controller, and a first connector and a second connector arranged on the circuit board;

[0096] The main controller is connected to a processor CPU of the server through 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 a hard disk and / or an extended memory via the second connector, wherein the RAID controller is used to manage the connected hard disk, and the CXL controller is used to manage the connected extended memory.

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

[0100] The control card provided in the embodiment of the present application is introduced below with reference to the accompanying drawings.

[0101] Please refer to Figure 1 , is a structural block diagram of an example of a control card provided in an embodiment of the present 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 computing express interconnect CXL controller 104 , a first connector 105 , and a second connector 106 arranged on the circuit board 101 .

[0102] The main controller 102 is connected to the first connector 105, and is connected to the processor CPU of the server through the first connector 105 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 the embodiment of the present application, the main controller 102 communicates with the RAID controller 103 via the non-volatile memory express storage NVMe protocol, and the main controller 102 communicates with the CXL controller 104 via the CXL protocol.

[0104] Since different controllers communicate with each other through different protocols, the main controller 102 in the embodiment of the present application is also used for protocol conversion, for example, protocol conversion 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] The RAID controller 103 and the CXL controller 104 are connected to the hard disk and / or the extended memory via the second connector 106. Since both the hard disk and the extended memory can be used to store data, in the embodiment of the present application, the hard disk and the extended memory can be collectively referred to as a storage disk.

[0106] The control card 100 can be connected to different types of storage disks through a second connector. It is understandable that different types of storage disks refer to PCIe devices that support different communication protocols and are used to store data. The communication protocol of a PCIe device may include a physical layer protocol, a link layer protocol, and an application layer protocol. If the application layer protocols of two PCIe devices are different, the two PCIe devices can be considered to be different types of PCIe devices; as an example, the application layer of the CXL memory supports the CXL protocol, and the application layer of the NVMe hard disk supports the redundant array of independent disks (RAID) protocol, then the CXL memory and the NVMe hard disk can be considered to be different types of PCIe devices. In an embodiment of the present application, the application layer protocols of the hard disk and the extended memory are different. For example, the hard disk can use non-volatile memory to quickly store the NVMe protocol, and the extended memory can use the CXL protocol. Therefore, the hard disk and the extended memory belong to different types of storage disks. According to the protocols supported by the RAID controller 103 and the CXL controller 104, the RAID controller 103 in the embodiment of the present application is used to manage the connected hard disk, and the CXL controller 104 is used to manage the connected extended memory.

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

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

[0109] In a first connection mode, one part of the at least two second connectors is connected to the RAID controller 103 , and another part 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 connected to the first connector. Figure 1 In the figure, the second connector 106 is marked as a first type connector 1061 and a second type connector 1062, wherein 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 are connected to different types of storage disks. For example, the first type connector 1061 can be connected to a hard disk, such as an NVMe hard disk, and the second type connector 1062 can be connected to an extended memory, such as a 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. It can be understood that connectors of the same type share the same controller.

[0112] In other examples, each connector can use its own controller. Figure 2 , is a structural block diagram of another example of a connection method between the second connector and the RAID controller 103 and / or the CXL controller 104. Figure 2 As shown, each controller is connected to only one second connector. Figure 2 and Figure 1 In the embodiment, the number of the first type connectors 1061 and the second type connectors 1062 are the same, but the number of the RAID controllers 103 and the number of the CXL controllers 104 are different. Figure 1 The RAID controller 103 and the CXL controller 104 each include one, and Figure 2 The RAID controller 103 and the CXL controller 104 each include a plurality of RAID controllers 103 , and the number of the RAID controllers 103 is the same as the first type connector 1061 , and the number of the CXL controllers 104 is the same as the second type connector 1062 .

[0113] In the first connection mode, when different types of storage disks are connected, the connection positions of the different types of storage disks are preset in advance.

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

[0115] In the second connection mode, 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 , is a structural block diagram of another example of a connection method between the second connector and the RAID controller 103 and / or the CXL controller 104. Figure 3 As shown, each second connector 106 is connected 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] In order 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. Figure 4 As shown. Figure 4 In the embodiment, the RAID controller 103 and the CXL controller 104 connected to each second connector 106 are the same.

[0118] Since a second connector 106 can only be controlled by one controller at the same time, in an embodiment of the present application, if a second connector 106 is connected to two controllers, the main controller 102 needs to select which of the two controllers to connect the link between the second connector 106 and the link between the second connector 106 and the other controller, and disconnect the link between the second connector 106 and the other controller. It can be understood that the main controller 102 also has a gating function.

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

[0120] In the embodiment of the present application, the controller matching the storage disk can be understood as a controller that can be used to manage the storage disk. If the storage disk is a hard disk, the controller matching the storage disk is the RAID controller 103; if the storage disk is an extended memory, the controller matching the storage disk is the CXL controller 104.

[0121] When 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 a hard disk type or an extended memory type. The specific identification method may be determined through a handshake protocol with the storage disk. This content will be introduced in the following method embodiment and will not be described in detail here.

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

[0123] Specifically, when the main controller 102 identifies that the type of the storage disk is a hard disk type, it controls the link between the second connector 106 and the RAID controller 103 to be connected, and controls the link between the second connector 106 and the CXL controller 104 to be disconnected; when the main controller 102 identifies that the type of the storage disk is an extended memory type, it controls the link between the second connector 106 and the CXL controller 104 to be connected, and controls the link between the second connector 106 and the RAID controller 103 to be disconnected.

[0124] Through the above technical solution, each second connector 106 in the control card 100 can be connected to any type of storage disk, which can improve the versatility of the second connector 106. Further, 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 may be independent chips with corresponding functions, or may be integrated chips in which the functions corresponding to each device are burned into the same chip through firmware, and no limitation is made here.

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

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

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

[0129] In the embodiment of the present application, the control card 502 is similar to the control card 100 in the above example, and will not be described in detail here. In the following, for the convenience of description, the components of the control card 502 are marked as the main controller 5021, the RAID controller 5022, the CXL controller 5023, the first connector 5024 and the second connector 5025. Figure 5 Only the first connector 5024 and the second connector 5025 are shown.

[0130] like Figure 5 As shown, the mainboard 501 includes, in addition to the CPU 5011, a PCIe port 5012 for interconnecting fast peripheral components. 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 devices connected to different connectors, the end of the control card 502 where the first connector 5024 is located can be called the host end, and the end of the control card 502 where the second connector 5025 is located can be called the device end.

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

[0132] First, the connection method between the mainboard 501 including the CPU 5011 and the PCIe port 5012 is described.

[0133] In the embodiment of the present application, the CPU 5011 and the PCIe port 5012 may be connected in a PCIe bus manner, including but not limited to the following three methods:

[0134] The first connection method:

[0135] like Figure 6 As shown, the CPU 5011 is connected to the PCIe port 5012 via a root complex (RC) 5013. It can be understood that the root complex 5013 and the PCIe port 5012 are combined into a point-to-point connection pair.

[0136] The root complex 5013 is responsible for managing the communication between the CPU 5011 and other PCIe devices. The root complex 5013 may include multiple subcomponents, such as a processor interface, a memory controller, etc., which are not listed here one by one. Figure 2 In addition, the PCIe port 5012 can also be understood as an endpoint.

[0137] The root complex 5013 and the PCIe port 5012 may also be provided with an upstream port (USP) or a downstream port (DSP), for example, Figure 2 As shown, a DSP is disposed below the root complex 5013 , a USP is disposed above the PCIe port 5012 , and 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 taken as an example. In other examples, the host may be provided with multiple PCIe ports 5012. In the embodiment of the present application, the number of PCIe ports 5012 is not limited.

[0140] In the case where the number of PCIe ports 5012 includes a plurality of ports, such as Fig. 7A As shown, the CPU 5011 is connected to a plurality of PCIe ports 5012 through a root complex 5013 and a switch 5014. In this way, the PCIe link of the host 110 is extended through the switch, and each PCIe port 5012 can be connected to a PCIe device, so that the host 110 can be connected to a plurality of PCIe devices.

[0141] refer to Figure 6 The example shown, Fig. 7A The switch in 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 a DSP of the switch.

[0142] exist Fig. 7A In the example shown, the number of switches is one. In other examples, the number of switches may include multiple switches. Figure 7B , is a structural block diagram of an example including multiple switches. Figure 7BIn the embodiment, CPU 5011 is connected to multiple PCIe ports 5012 through a root complex 5013 and multiple switches 5014. The multiple switches 5014 include a first switch 50141 and a second switch 50142. A DSP of the first switch 50141 is connected to a 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 above examples, the PCIe bus used by CPU 5011 is taken as an example. In other examples, CPU 5011 may also use other types of buses, such as a PCI bus or a PCI-X bus. In this case, other types of buses may be converted into a PCIe bus through a bridge. Figure 8 shown.

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

[0146] The above describes the connection method between the CPU 5011 and the PCIe port 5012 in the host 110. Of course, in other embodiments, the CPU 5011 and the PCIe port 5012 may also be connected in other ways, which are not limited here.

[0147] Of course, the mainboard 501 may also include other components, which are not listed one by one here.

[0148] The following is an explanation of the connection method between the control card 502 and the storage disk 503 in the embodiment of the present application.

[0149] In the embodiment of the present application, the control card 502 includes two ends, which are respectively connected to the mainboard 501 and the storage disk 503. For the convenience of description, the end connected to the mainboard 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 mainboard 501 and the control card 502 is realized through the first connector 5204 of the host end and the PCIe port 5012 included in the mainboard 501. In the embodiment of the present application, the number of PCIe ports 5012 is not limited. In the case where the mainboard 501 includes one PCIe port 5012, the control card 502 can be provided with one first connector 5024; in the case where the mainboard 501 includes multiple PCIe ports 5012, the control card 502 can be provided with one first connector 5024, and the control card 502 is connected to one PCIe port 5012 through the first connector 5024 to realize the connection with the CPU 5011; of course, the control card 502 can also be provided with multiple first connectors 5024, and the control card 502 is connected to multiple PCIe ports 5012 through multiple first connectors 5024 to realize the connection with the CPU 5011. Those skilled in the art can set it according to actual use requirements.

[0151] The device end 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 , and then the number of storage disks 503 that can be connected to the control card 502 is limited by the number of the second connectors 5025 .

[0153] In order to increase the number of storage disks 503 that can be connected to the control card 502, a backplane can be provided between the control card 502 and the storage disk 503 to connect more storage disks 503. This example is described below in conjunction with the accompanying drawings.

[0154] Please refer to Fig. 9 , which is a schematic diagram of an example of a connection method between a control card 502 and a storage disk 503 provided in an embodiment of the present application.

[0155] like Fig. 9 As shown, the backplane 504 includes a first end 5041 and a second end 5042, the first end 5041 includes a third connector 50411, the second end 5042 includes a plurality of fourth connectors 50421, the third connector 50411 is connected to the second connector 5025, and the fourth connector 50421 is connected to the storage disk 503, so that the storage disk can be connected to the control card 502 through the backplane 504.

[0156] The second end 5042 of the backplane 504 is usually provided with a plurality of fourth connectors 50421 , so that more storage disks 503 can be connected through the plurality of fourth connectors 50421 , thereby improving the device integration and scalability of the server.

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

[0158] It should be noted that, in the embodiment of the present application, the fourth connector 50421 may be a slot, so that the storage disk 503 is connected to the backplane 504 through the slot. When different types of storage disks 503, such as a hard disk and an extended memory, are connected to the control card 502, the hard disk and the extended memory may be inserted into the slot on the same backplane 504, or may be inserted into the slots on different backplanes 504, without limitation. Fig. 9 In the example, the extended memory and the hard disk are inserted into the same backplane 504.

[0159] As an example, the second connector 5025 may be a UBC connector, and the third connector 50411 may be a UBC cable, which is connected to the UBC connector via the UBC cable. In this way, the length of the cable can be adjusted according to the distance between the storage disk 503 and the motherboard 501, thereby improving the flexibility of the connection.

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

[0161] In the above examples, the structures of the control card and the computing device provided in the embodiments of the present application are introduced. The working principle of the control card provided in the embodiments of the present application is introduced below with the main controller of the control card as the execution body.

[0162] Please refer to Fig.10 , is a data processing method provided in an embodiment of the present application, which is applied to a main controller in a control card, and the control card can be the aforementioned Figure 1-9 The control card in any of the examples will not be described here. Fig.10 As shown, the data processing method includes the following steps:

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

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

[0165] The main controller obtains a handshake request sent by the connected storage disk, wherein the handshake request includes a communication protocol supported by the storage disk, and the communication protocol includes a non-volatile memory express storage NVMe protocol or a computing express interconnect CXL protocol;

[0166] In a case where 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] In a case where 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 the handshake protocol, which can improve the accuracy of storage disk identification.

[0169] When the storage disk is connected to the control card through the connector, the main controller first establishes a physical layer link with the storage disk, and then through the established physical layer link, performs handshake negotiation with the storage disk to obtain the protocol supported by the storage disk, and determines the type of the storage disk according to the protocol supported by the storage disk. Finally, the main controller controls the RAID controller and the controller corresponding to the type of the storage disk in the CXL controller to turn on, and controls the other controller to turn off, so that the storage disk can communicate with the main controller through the target controller.

[0170] It should be noted that the above-mentioned process of identifying the storage disk is only an example. In other examples, other methods or methods in related technologies may also be used for identification, which will not be described in detail here.

[0171] In addition, step S1001 is an optional step, that is, it is not necessary to execute. Fig.10 Indicated by dotted lines.

[0172] S1002: Obtain a first instruction sent by a processor CPU of the server.

[0173] In the embodiment of the present application, the first instruction is used to instruct to store or read the target data. When the first instruction is an instruction to read data, the target data may be data stored in the hard disk and / or extended memory connected by the control card; when the first instruction is an instruction to write data, the target data may be new data not stored in the hard disk and / or extended memory.

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

[0175] S1003. Determine a target storage disk based on the first instruction.

[0176] After the main controller obtains the first instruction, it can determine the target storage disk for the reading or storage operation according to the target data indicated by the first instruction.

[0177] As an example, since the main controller can be used to manage the RAID controller and the CXL controller, the main controller can store information about all data stored in the hard disk through the RAID controller, and can store information about all data stored in the extended memory through the CXL controller, and the data information can include a first mapping relationship between the data tag and the storage disk identifier. In this way, if the first instruction indicates to read the target data, the main controller can determine whether the storage disk corresponding to the target data to be read is the hard disk or the extended memory according to the first mapping relationship.

[0178] As another example, the main controller may preset a second mapping relationship between the data type and the storage disk type, and the main controller stores different types of data in the hard disk or extended memory according to the second mapping relationship and the type of data. Then, when the main controller determines that the target data needs to be read or stored, the target storage disk may be directly determined according to the data type of the target data.

[0179] As another example, the main controller may preset a third mapping relationship between data heat and storage disk type, and the main controller stores different data to the hard disk or extended memory according to the third mapping relationship and the heat of the data. The third mapping relationship may include storing the data to the extended memory if the hot / cold level is higher than the preset level, and storing the data to the hard disk if the hot / cold level is not higher than the preset level. In this case, the first instruction may 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 that the target storage disk is the extended memory; when the hot / cold level of the target data is not higher than the preset level, the main controller determines that the target storage disk is the hard disk.

[0180] By storing data with different hot and cold levels in different storage disks, for example, hot data with higher hot and cold levels can be stored in extended content, while cold data with lower hot and cold levels 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 according to the hot and cold levels of the target data to be read and written. The determination method is relatively simple and easy to implement.

[0181] Of course, the main controller may also determine the target storage disk corresponding to the target data in other ways, which are not listed here one by one.

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

[0183] The following describes step S1004 for two situations, namely, storing target data and reading target data.

[0184] The situation of storing the target data:

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

[0186] The main controller performs protocol conversion processing on the target data to convert the format of the target data into a format that complies with the NVMe protocol, and then sends the target data after the protocol conversion to the RAID controller.

[0187] It can be seen from the above content that since the first instruction is an instruction using the PCIe protocol, when the first instruction is used to store data, the target data carried in the first instruction is also data using the PCIe protocol. The hard disk uses the NVMe protocol, so the format of the target data needs to be converted into a format that complies with the NVMe protocol. After the target data complies with the format of the NVMe protocol, the target data after protocol conversion is sent to the RAID controller, and the target data is stored in the hard disk through the RAID controller. The main controller converts the target data into data in a format that complies with the NVMe protocol through protocol conversion processing, so that communication between the CPU and the hard disk can be realized.

[0188] As an example, since the target data has a large amount of data, in the above data storage process, the target data can be segmented, and then at least part of the segmented data is first cached in the memory, and then the main controller controls the RAID controller to write the multiple segmented data to the hard disk in multiple times. In this case, the memory space corresponding to the extended memory on the same control card can be used preferentially, because the extended memory is closer to the hard disk than the CPU memory, thereby increasing the data writing rate.

[0189] Next, the process of storing segmented data is described.

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

[0191] The main controller obtains the plurality of segmented data from the extended memory through the CXL controller in multiple times, and controls the RAID controller to write the segmented data obtained each time into the hard disk until the plurality of segmented data are all written into the hard disk.

[0192] As an example, the main controller determines to divide the target data into segmented data 1 to segmented data 3, and then controls the RAID controller to write segmented data 1 to the hard disk, and controls the CXL controller to write segmented data 2 and segmented data 3 to the extended memory; after segmented data 1 is written to the hard disk, the RAID controller sends a write completion instruction to the main controller, and then the main controller controls the CXL controller to read segmented data 2, and controls the RAID controller to write segmented data 2 to the hard disk; after segmented data 2 is written to the hard disk, the RAID controller sends a write completion instruction to the main controller, and then the main controller controls the CXL controller to read segmented data 3, and controls the RAID controller to write segmented data 3 to the hard disk. After segmented data 3 is written to the hard disk, the RAID controller sends a write completion instruction to the main controller, and the main controller determines that the data storage is completed.

[0193] The situation of reading the target data:

[0194] In a 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 complies with the PCIe protocol;

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

[0197] As can be seen from the above content, since the first instruction is an instruction using the PCIe protocol, when the first instruction is used to read data, the required target data is also data using the PCIe protocol. The hard disk uses the NVMe protocol, so it is necessary to convert the format of the target data read from the hard disk into a format that complies with the PCIe protocol. The main controller converts the target data into a format that complies with the PCIe protocol through protocol conversion processing, so that communication between the CPU and the hard disk can be achieved.

[0198] As an example, since the target data has a large amount of data, and the amount of data that the RAID controller reads from the hard disk each time is limited, multiple segmented data will be obtained during the above data reading process, and the main controller can synthesize the multiple segmented data into target data and send it to the CPU. In this case, the memory space corresponding to the extended memory on the same control card can be used first, because the extended memory is closer to the hard disk than the CPU memory, thereby increasing the data reading rate.

[0199] Next, the process of reading segmented data is described.

[0200] The main controller controls the RAID controller to obtain the plurality of segmented data in multiple times, and controls the CXL controller to write the segmented data obtained each time into the extended memory;

[0201] The main controller obtains the plurality of segmented data from the extended memory through the CXL controller in multiple times, integrates the plurality of segmented data into the target data, and sends the target data to the CPU.

[0202] As an example, take the case where the target data includes 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 the extended memory; then controls the RAID controller to read segmented data 5, and controls the CXL controller to write segmented data 5 into the extended memory, and then the main controller combines segmented data 4 and segmented data 5 into target data, converts the target data into a format that complies with 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 disk in other ways, which are not limited here.

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

[0205] In the case of storing the target data, it can be seen from the above content that since the first instruction is an instruction using the PCIe protocol, when the first instruction is used to store data, the target data carried in the first instruction is also data using the PCIe protocol. The extended memory is data using the CXL protocol, so the format of the target data to be stored needs to be converted into a format that complies with the CXL protocol.

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

[0207] The main controller performs protocol conversion processing on the target data, so that the format of the target data is converted into a format that complies with the CXL protocol;

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

[0209] When the target data is read, since the extended memory uses data of the CXL protocol, it is necessary to convert the format of the read target data into a format that complies with 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, so that the format of the target data is converted into a format that complies with 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 complies with the CXL protocol, or into a format that complies with the PCIe protocol through protocol conversion processing, thereby realizing 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 an embodiment of the present application, since the hotness and coldness level of the data will change with the number of times the data is read, when the extended memory is used to store data with a hotness and coldness level higher than a preset level, the main controller can record the first data that is read from the hard disk a number of times greater 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 delay in accessing the first data next time.

[0217] It should be noted that step S1006 is not necessarily executed, that is, it is an optional step. Fig.10 Indicated by a dotted line.

[0218] In the above technical solution, if the hard disk and / or extended memory are connected to the CPU of the server through a control card, the main controller processes the data reading or storage instructions for the hard disk and / or extended memory without the participation of the CPU, thereby freeing up the computing resources or PCIe resources required for the CPU to process the data reading or storage instructions, thereby saving CPU resources.

[0219] The above mainly introduces the solution provided by the embodiment of the present application from the perspective of the server. It is understandable that in order 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 easily realize that, in combination with the units and algorithm steps of each example described in the embodiments disclosed herein, the embodiments of the present application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a function is executed in the form of hardware or computer software driving hardware depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to exceed the scope of the present application.

[0220] It should be noted that the division of units (modules) in the embodiments of the present application is schematic and is only a logical function division. There may be other division methods in actual implementation. The functional modules in the embodiments of the present application may be integrated into a processing module, or each module may exist physically separately, or two or more modules may be integrated into one module. The above-mentioned integrated modules may be implemented in the form of hardware or in the form of software functional modules.

[0221] It should be understood that the processor may be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSP), application specific integrated circuits (ASIC), field programmable gate arrays (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The general-purpose processor may be a microprocessor or any conventional processor, etc. It is worth noting that the processor may be a processor supporting the advanced RISC machines (ARM) architecture.

[0222] The embodiment of the present application provides a chip system, which includes a processor and may also include a memory, for implementing the function of the acceleration card in the above method. The chip system may be composed of a chip, or may include a chip and other discrete devices.

[0223] Through the description of the above implementation methods, technical personnel in the relevant field can understand that for the convenience and simplicity of description, only the division of the above-mentioned functional modules is used as an example. In actual applications, the above-mentioned 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 the present application, it should be understood that the disclosed devices and methods can be implemented in other ways. For example, the device embodiments described above are only schematic. For example, the division of modules or units is only a logical function division. There may be other division methods in actual implementation. For example, multiple units or components can be combined or integrated into another device, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.

[0225] The units described as separate components may or may not be physically separated, and the components shown as units may be one physical unit or multiple physical units, that is, they may be located in one place or distributed in multiple different places. Some or all of the units may be selected according to actual needs to achieve the purpose of the present embodiment.

[0226] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit. The above-mentioned integrated unit may be implemented in the form of hardware or in the form of software functional units.

[0227] The above contents are only specific implementation methods of the present application, but the protection scope of the present application is not limited thereto. Any technician familiar with the technical field can easily think of changes or substitutions within the technical scope disclosed in the present application, which should be included in the protection scope of the present application. Therefore, the protection scope of the present application should be based on the protection scope of the claims.

Claims

1. A control card, characterized in that: It includes a circuit board, and a main controller, a disk array RAID controller, a computing fast interconnect CXL controller, a first connector, and a second connector arranged on the circuit board; The main controller is connected to a processor of the server through 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 a hard disk and / or an extended memory via the second connector, wherein the RAID controller is used to manage the connected hard disk, and the CXL controller is used to manage the connected extended memory.

2. The control card according to claim 1, characterized in that: The main controller communicates with the processor CPU via a PCIe protocol, the main controller communicates with the RAID controller via a non-volatile memory express storage NVMe protocol, and the main controller communicates with the CXL controller via a CXL protocol; The main controller is used for protocol conversion between any two of the PCIe protocol, the NVMe protocol and the CXL protocol.

3. The control card according to claim 1 or 2, 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 the storage disk connected to any one of the second connectors, and control the link between the second connector and the target controller to be connected; The storage disk includes the hard disk or the extended memory, and the target controller is a controller matching the storage disk among the RAID controller and the CXL controller.

4. A computing device, characterized in that It includes a mainboard, a control card and a storage disk, wherein the mainboard includes a processor CPU, the CPU is connected to the control card, the control card is also connected to the storage disk, and the storage disk includes a hard disk and / or an extended memory; The control card includes a circuit board and a main controller, a disk array RAID controller, a computing fast interconnect CXL controller, a first connector and a second connector arranged 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 is used to manage the connected hard disk, and the CXL controller is used to manage the connected extended memory.

5. A data processing method, applied to a main controller in a control card, characterized in that: The control card also includes a disk array RAID controller and a computing fast interconnect CXL controller; the method includes: Acquire a first instruction sent by a processor CPU of the server, where the first instruction is used to instruct to store or read target data; Based on the first instruction, determining a target storage disk; In the case where the target storage disk is a hard disk, the main controller controls the RAID controller to process the storage or reading of the target data; In the case that the target storage disk is an extended memory, the main controller controls the CXL controller to process the storage or reading of the target data.

6. The method according to claim 5, characterized in that In the case where the target storage disk is a hard disk, the main controller controls the RAID controller to process the storage or reading of target data, including: In the case of storing the target data, the main controller performs protocol conversion processing on the target data so that the format of the target data is converted into a format that complies with the NVMe protocol; The main controller sends the target data after protocol conversion to the RAID controller; In the case of reading 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, and performs protocol conversion processing on the target data, so that the format of the target data is converted into a format that complies with the PCIe protocol; The main controller sends the target data after protocol conversion to the CPU.

7. The method according to claim 5, characterized in that When the target storage disk is an extended memory, the main controller controls the CXL controller to process the storage or reading of target data, including: In the case of storing the target data, the main controller performs protocol conversion processing on the target data so that the format of the target data is converted into a format that complies with the CXL protocol; The main controller sends the target data after protocol conversion to the CXL controller; In case of reading 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, so that the format of the target data is converted into a format that complies with the PCIe protocol; The main controller sends the target data after protocol conversion to the CPU.

8. The method according to claim 5, characterized in that When the target storage disk is a hard disk, the main controller controls the RAID controller to process the storage or reading of the target data, including: In the case of storing the target data, determining a plurality of segmented data corresponding to the target data, and the main controller controlling the RAID controller to write the plurality of segmented data into the hard disk in multiple times; When reading the target data, a plurality of segmented data corresponding to the target data is determined, the main controller obtains the plurality of segmented data through the RAID controller in multiple times, and integrates the plurality of segmented data into the target data, and sends the target data to the CPU.

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

10. The method according to claim 8, characterized in that The main controller obtains a plurality of segmented data through the RAID controller in multiple times, and integrates the plurality of segmented data into the target data, and sends the target data to the CPU, including: The main controller controls the RAID controller to obtain the plurality of segmented data in multiple times, and controls the CXL controller to write the segmented data obtained each time into the extended memory; The main controller obtains the plurality of segmented data from the extended memory through the CXL controller in multiple times, integrates the plurality of segmented data into the target data, and sends the target data to the CPU.

11. The method according to claim 5, characterized in that The first instruction also includes the hotness or coldness level of the target data; The step of determining a target storage disk based on the first instruction includes: When the cold / hot level is higher than a preset level, determining that the target storage disk is the extended memory; When the hot / cold level is not higher than the preset level, the target storage disk is determined to be the hard disk.

12. The method according to claim 5, characterized in that The method further comprises: The main controller acquires first data read from the hard disk a number of times greater than or equal to a preset number of times; 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.

13. The method according to claim 5, characterized in that The RAID controller and the CXL controller are connected to the hard disk and / or the extended memory via a connector, and the method further includes: When the connector is connected to the storage disk, the main controller obtains a handshake request sent by the connected storage disk, wherein the handshake request includes a communication protocol supported by the storage disk, and the communication protocol includes a non-volatile memory express storage NVMe protocol or a computing express interconnect CXL protocol; In a case where 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; In a case where 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.

14. The method according to claim 13, characterized in that The connector is connected to the RAID controller and the CXL controller respectively, and the method further includes: In the case where it is determined that the type of the connected storage disk is the hard disk, the main controller controls the link between the connector and the RAID controller to be turned on; When it is determined that the type of the connected storage disk is the extended memory, the main controller controls the link between the connector and the CXL controller to be turned on.

Citation Information

Patent Citations

  • COMPUTING HIGH SPEED NONVOLATILE MEMORY (NVMe) ON HIGH SPEED LINK (CXL)

    CN116486868A

  • Data operation method, server and CXL controller

    CN117724994A

  • Memory system, control method and server

    CN117806990A

  • Data migration method, controller and extended storage box

    CN118349399A

  • Hard disk backboard supporting CXL signals and PCIe signals and storage device

    CN218768130U

Cited By

  • RAID card hard disk control system, method and equipment based on expansion capability set and medium

    CN119828985A