A server system, a data processing method, apparatus and device, and a medium
By deploying remote direct data access processing units in processors and accelerators and utilizing the RDMA processing unit function offloading the RNIC from the CXL, the problem of high hardware replacement costs for RNIC expansion is solved, enabling flexible RNIC expansion and RDMA processing capability enhancement.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- INSPUR (BEIJING) ELECTRONICS INFORMATION IND CO LTD
- Filing Date
- 2023-12-28
- Publication Date
- 2026-07-24
AI Technical Summary
Existing RNIC expansion solutions require hardware replacement, resulting in high costs and a lack of flexibility, making it impossible to meet the needs of high-capacity RDMA services in a short period of time.
Deploying remote direct data access processing units in processors and accelerators enables flexible RNIC expansion by offloading the RDMA processing unit functions of the RNIC through compute high-speed interconnect (CXL).
Without replacing or adding RNIC hardware, the CPU and accelerator collaboratively cache RNIC data, enabling flexible expansion of RNIC processing capacity and improving RDMA processing capabilities.
Smart Images

Figure CN117827708B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of computer technology, and more specifically, to a server system, a data processing method, apparatus, device, and medium. Background Technology
[0002] Unlike traditional software-based TCP (Transmission Control Protocol), RDMA (Remote Direct Memory Access) is a hardware-based transport. It implements all transport functions within the NIC (Network Interface Card) hardware, including congestion control and packet loss recovery, and provides kernel bypass and zero-copy interfaces for user applications. Therefore, compared to software-based TCP, RDMA achieves high throughput, low latency, and low CPU (Central Processing Unit) overhead. RDMA is typically offloaded entirely in hardware, so its parallelism and processing power are limited by the amount of hardware resources available. Once the hardware resources on the RNIC (RDMA-enabled Network Interface Card) are exhausted, RDMA will reach its performance and processing bottleneck and cannot be scaled up.
[0003] In related technologies, RNIC capacity expansion can be achieved through several solutions: The first is to replace the RNIC with a more powerful one. A more powerful RNIC has more hardware resources and can provide greater RDMA service capacity; for example, replacing a 4060 graphics card with a 4090. The second solution is to insert multiple RNICs, such as replacing one 4060 graphics card with two 4060 graphics cards. It is evident that these RNIC capacity expansion solutions require hardware replacement, which incurs upgrade costs and lacks flexibility. For example, when greater RDMA service capacity is only needed for a short period, upgrading hardware lacks flexibility, resulting in the RNIC not being fully utilized most of the time.
[0004] Therefore, how to achieve flexible RNIC expansion is a technical problem that needs to be solved by those skilled in the art. Summary of the Invention
[0005] The purpose of this application is to provide a server system, a data processing method, an apparatus, a device, and a medium that enables flexible RNIC expansion.
[0006] To achieve the above objectives, this application provides a server system including a network interface card (NIC), a processor and an accelerator connected to the NIC. The NIC includes a first remote direct data access processing unit (RDBAM) and a first high-speed computing interconnect controller (HSCIT). The processor includes a second RDBAM and a second HSCIT. The accelerator includes a third RDBAM and a third HSCIT.
[0007] The first remote direct data access processing unit in the network card is used to receive a remote direct data access request and forward the remote direct data access request to the processor or the accelerator.
[0008] The processor is configured to acquire target data from the network card through communication between the second high-speed computing interconnect controller and the first high-speed computing interconnect controller, and to process the received remote direct data access request based on the target data using the second remote direct data access processing unit.
[0009] The accelerator is used to acquire target data from the network card through communication between the third computing high-speed interconnect controller and the first computing high-speed interconnect controller, and to process the received remote direct data access request based on the target data using the third remote direct data access processing unit.
[0010] Specifically, the first remote direct data access processing unit is used to: receive a remote direct data access request, determine whether expansion is needed based on the remote direct data access request, and if so, forward the remote direct data access request to the processor or the accelerator.
[0011] The first remote direct data access processing unit is further configured to: when it is determined that no expansion is required based on the remote direct data access request, process the remote direct data access request based on the data in the internal cache.
[0012] The first remote direct data access processing unit forwards the remote direct data access request to the second remote direct data access processing unit in the processor via software messages.
[0013] The first remote direct data access processing unit forwards the remote direct data access request to the third remote direct data access processing unit in the accelerator via a doorbell.
[0014] The third remote direct data access processing unit is a remote direct data access processing unit implemented through a field-programmable gate array or an artificial intelligence dedicated chip.
[0015] The network interface card is also used to: forward congestion management tasks and / or queue pair context management tasks to the processor or the accelerator;
[0016] The processor is further configured to process received congestion management tasks and / or queue context management tasks using the second remote direct data access processing unit;
[0017] The accelerator is also used to process, and utilizes, the received congestion management tasks and / or queue context management tasks by the third remote direct data access processing unit.
[0018] The target data refers to data whose volume is less than a preset value and / or whose access frequency is greater than a preset access frequency.
[0019] The network interface card includes:
[0020] The remote direct data access expansion management unit is used to determine whether expansion is needed based on the remote direct data access request.
[0021] A processor proxy unit is used to forward the remote direct data access request to the processor when expansion is required;
[0022] An accelerator proxy unit is used to forward the remote direct data access request to the accelerator when expansion is required.
[0023] The remote direct data access network card operation unit is used to process the remote direct data access request based on the data in the internal cache when no expansion is required;
[0024] A high-speed interconnect device management unit is used for managing the high-speed interconnect devices in the network interface card;
[0025] A high-speed interconnect driver is used for starting and operating the high-speed interconnect device in the network card.
[0026] To achieve the above objectives, this application provides a data processing method applied to a network interface card (NIC) in the aforementioned server system, the method comprising:
[0027] Receive remote direct data access requests;
[0028] The remote direct data access request is forwarded to the processor or accelerator in the server system, so that the processor or accelerator can obtain the target from the network card through high-speed computing interconnect and process the received remote direct data access request based on the target data.
[0029] The process of receiving a remote direct data access request further includes:
[0030] Determine whether expansion is needed based on the remote direct data access request;
[0031] If so, the step of forwarding the remote direct data access request to the processor or accelerator in the server system is performed.
[0032] The step of determining whether expansion is needed based on the remote direct data access request further includes:
[0033] When it is determined that no expansion is needed based on the remote direct data access request, the remote direct data access request is processed based on the data in the internal cache.
[0034] The forwarding of the remote direct data access request to the processor in the server system includes:
[0035] The remote direct data access request is forwarded to the processor in the server system via software messages.
[0036] The accelerator that forwards the remote direct data access request to the server system includes:
[0037] The remote direct data access request is forwarded to the accelerator in the server system via a doorbell.
[0038] To achieve the above objectives, this application provides a data processing apparatus for use in a network interface card (NIC) within the aforementioned server system, the apparatus comprising:
[0039] The receiving module is used to receive remote direct data access requests;
[0040] The forwarding module is used to forward the remote direct data access request to the processor or accelerator in the server system, so that the processor or the accelerator can cache the data in the network card by computing high-speed interconnect and process the received remote direct data access request based on the data.
[0041] This also includes:
[0042] The judgment module is used to determine whether capacity expansion is needed based on the remote direct data access request; if yes, the workflow of the forwarding module is started; if no, the workflow of the processing module is started.
[0043] The processing module is used to process the remote direct data access request based on the data cached internally.
[0044] Specifically, the forwarding module is used to forward the remote direct data access request to the processor in the server system via software messages.
[0045] Specifically, the forwarding module is used to forward the remote direct data access request to the accelerator in the server system via a doorbell mechanism.
[0046] To achieve the above objectives, this application provides an electronic device, comprising:
[0047] Memory, used to store computer programs;
[0048] A processor for executing the computer program to implement the steps of the data processing method described above.
[0049] To achieve the above objectives, this application provides a computer-readable storage medium storing a computer program, which, when executed by a processor, implements the steps of the data processing method described above.
[0050] As can be seen from the above scheme, the server system provided in this application includes a network interface card (NIC), a processor connected to the NIC, and an accelerator. The NIC includes a first remote direct data access processing unit (RDBART) and a first high-speed computing interconnect controller (HSCIT). The processor includes a second RDBART and a second HSCIT. The accelerator includes a third RDBART and a third HSCIT. The first RDBART in the NIC is used to receive remote direct data access requests and forward the requests to the processor or the accelerator. The processor is used to cache data in the NIC through communication between the second HSCIT and the first HSCIT, and to process the received RDBART requests based on the data processing by the second RDBART. The accelerator is used to cache data in the NIC through communication between the third HSCIT and the first HSCIT, and to process the received RDBART requests based on the data processing by the third RDBART.
[0051] This application deploys a Remote Direct Data Access (RDMA) processing unit within the processor and accelerator. When the RNIC's processing capacity is insufficient, it utilizes a Compute Express Link (CXL) to cache data in the RNIC, thereby expanding the RNIC's processing capacity. Thus, this application offloads the RDMA processing unit functionality from the RNIC to the CPU and accelerator, achieving flexible RNIC expansion compared to related technologies that do not require replacing or adding an RNIC. This application also discloses a data processing method, apparatus, electronic device, and computer-readable storage medium, which can achieve the same technical effects.
[0052] It should be understood that the above general description and the following detailed description are merely exemplary and do not limit this application. Attached Figure Description
[0053] To more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort. The drawings are used to provide a further understanding of this disclosure and constitute a part of the specification. They are used together with the following detailed description to explain this disclosure, but do not constitute a limitation of this disclosure. In the drawings:
[0054] Figure 1 This is a diagram of the RNIC hardware architecture in related technologies;
[0055] Figure 2 This is a structural diagram of a server system according to an exemplary embodiment;
[0056] Figure 3 This is a software architecture diagram of an RNIC according to an exemplary embodiment;
[0057] Figure 4 This is a flowchart illustrating a data processing method according to an exemplary embodiment;
[0058] Figure 5 A flowchart of an application embodiment provided in this application;
[0059] Figure 6 This is a structural diagram of a data processing apparatus according to an exemplary embodiment;
[0060] Figure 7 This is a structural diagram of an electronic device according to an exemplary embodiment. Detailed Implementation
[0061] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only a part of the embodiments of this application, and not all of them. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application. Furthermore, in the embodiments of this application, "first," "second," etc., are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence.
[0062] In related technologies, the RNIC hardware architecture is as follows: Figure 1As shown, it includes an RDMA processing unit, a PCIe (Peripheral Component Interconnect Express) interface processing unit, and an Ethernet port processing unit. The Ethernet port processing unit is used to send Ethernet packets. The PCIe interface processing unit is responsible for connecting the RNIC to the host at high speed. The Ethernet port processing unit and the PCIe interface processing unit are not the bottleneck points of RDMA processing; the main bottleneck of RDMA processing capability lies in the RDMA processing unit. The RDMA processing unit is responsible for QP (Queue Pair, i.e., transmit queue and receive queue) context management, RDMA congestion management, RDMA buffering, and RDMA service logic processing in the RDMA processing process. These processing logics are more complex than PCIe and Ethernet port processing, and also consume more chip resources. The fundamental problem with the inability of RNICs to be expanded in related technologies is that all processing capabilities are fixed on the RDMA processing unit on the RNIC.
[0063] Therefore, this application deploys a Remote Direct Data Access (RDMA) processing unit in the processor and accelerator. When the RNIC's processing capacity is insufficient, the CXL caches the data in the RNIC, thus expanding the RNIC's processing capacity. In other words, this application offloads the RDMA processing unit function from the RNIC to the CPU and accelerator, achieving flexible RNIC expansion compared to related technologies, which do not require replacing or adding an RNIC.
[0064] This application discloses a server system, including a network interface card (NIC) 10, a processor 20 connected to the NIC 10, and an accelerator 30. The NIC 10 includes a first remote direct data access processing unit (RDBAM) 101 and a first high-speed computing interconnect controller (HSCIT) 102. The processor 20 includes a second RDBAM 201 and a second HSCIT 202. The accelerator 30 includes a third RDBAM 301 and a third HSCIT 302.
[0065] The first remote direct data access processing unit 101 in the network card 10 is used to receive a remote direct data access request and forward the remote direct data access request to the processor or the accelerator.
[0066] The processor 20 is configured to cache the data in the network card 10 through communication between the second computing high-speed interconnect controller 202 and the first computing high-speed interconnect controller 102, and utilize the remote direct data access processing unit 201 to receive remote direct data access requests based on the data processing.
[0067] The accelerator 30 is used to cache the data in the network card 10 through communication between the third computing high-speed interconnect controller 302 and the first computing high-speed interconnect controller 102, and to utilize the third remote direct data access processing unit 301 to receive remote direct data access requests based on the data processing.
[0068] In this embodiment, the network interface card (NIC) can be an RNIC. A first compute high-speed interconnect controller (CHS controller) is added to the NIC. A second remote direct data access processing unit (RDBAM) and a second CHS controller are deployed in the processor. A third RDBAM and a third CHS controller are deployed in the accelerator. The second CHS controller in the processor and the third CHS controller in the accelerator are used to obtain target data from the RNIC and cache it. The first CHS controller in the RNIC works in conjunction with the second CHS controller in the processor and the third CHS controller in the accelerator to complete the CXL function. The reason why the CPU and accelerator cooperate with the RNIC through CXL is that CXL can improve the access performance of the CPU and accelerator to RNIC data. In this embodiment, the accelerator can be a heterogeneous accelerator. A heterogeneous accelerator is a special type of accelerator that uses multiple algorithms and architectures to improve computing power.
[0069] In a preferred embodiment, the target data is data whose volume is less than a preset value and / or whose access frequency is greater than a preset access frequency. In specific implementations, data with a volume less than the preset value can be offloaded to the processor or accelerator to better utilize CXL's cache coherency function. Data with an access frequency greater than the preset access frequency, i.e., hot data, such as network protocol packets and real-time data streams related to real-time network communication, can also be offloaded to the processor or accelerator to improve the accuracy of processing remote direct data access requests. Of course, the target data can be data that simultaneously satisfies both the conditions of having a volume less than the preset value and an access frequency greater than the preset access frequency.
[0070] The second remote direct data access unit in the processor can be implemented in pure software, while the third remote direct data access processing unit in the accelerator can be implemented in hardware, for example, the third remote direct data access processing unit can be a remote direct data access processing unit implemented by a field-programmable gate array or an artificial intelligence dedicated chip.
[0071] The first remote direct data access processing unit in the RNIC receives a remote direct data access request and forwards it to the second remote direct data access processing unit in the processor or the third remote direct data access processing unit in the accelerator for processing.
[0072] As a feasible implementation, the first remote direct data access processing unit is specifically used to: receive a remote direct data access request, determine whether expansion is needed based on the remote direct data access request, and if so, forward the remote direct data access request to the processor or the accelerator; if not, process the remote direct data access request based on the data in the internal cache.
[0073] In practice, the first remote direct data access processing unit in the RNIC receives remote direct data access requests. Based on the amount of data to be processed in the request and the RNIC's load, it determines whether expansion is needed. If so, the request is forwarded to the second remote direct data access processing unit in the processor or the third remote direct data access processing unit in the accelerator for processing. If not, the request is processed based on data cached internally.
[0074] As a possible implementation, the first remote direct data access processing unit forwards the remote direct data access request to the second remote direct data access processing unit in the processor via software messages.
[0075] As a possible implementation, the first remote direct data access processing unit forwards the remote direct data access request to the third remote direct data access processing unit in the accelerator via a doorbell.
[0076] In a preferred embodiment, the network interface card is further configured to: forward congestion management tasks and / or queue pair context management tasks to the processor or the accelerator; the processor is further configured to process the received congestion management tasks and / or queue pair context management tasks using the second remote direct data access processing unit; the accelerator is further configured to process the received congestion management tasks and / or queue pair context management tasks using the third remote direct data access processing unit.
[0077] In practical implementation, in addition to offloading the RDMA business logic processing tasks of the RNIC, the CPU and accelerator can also offload the congestion management tasks, queue context management tasks, and RDMA cache of the RNIC.
[0078] Furthermore, this embodiment adjusts the software architecture of the RNIC. In related technologies, the RDMA software architecture includes: RDMA verbs, RDMA core, and RDMA driver. RDMA verbs are user-mode libraries, and the RDMA core is a kernel-mode general-purpose library, both provided by the operating system. The RDMA driver is provided by the hardware vendor; drivers for RNICs from major vendors are also integrated into the operating system and are responsible for RNIC register operations.
[0079] In a preferred embodiment, the network interface card (NIC) includes: a remote direct data access (RDA) expansion management unit, used to determine whether expansion is needed based on the RDA request; a processor proxy unit, used to forward the RDA request to the processor when expansion is needed; an accelerator proxy unit, used to forward the RDA request to the accelerator when expansion is needed; a RDA operation unit, used to process the RDA request based on internally cached data when expansion is not needed; a computing high-speed interconnect device management unit, used for managing computing high-speed interconnect devices in the NIC; and a computing high-speed interconnect driver, used for starting and operating computing high-speed interconnect devices in the NIC.
[0080] The software architecture of the RNIC provided in this embodiment is as follows: Figure 3 As shown, the RDMA driver function is divided into: a Remote Direct Data Access (RNIC) operation unit, a Remote Direct Data Access (RDMA) expansion management unit, a processor proxy unit, and an accelerator proxy unit. The RNIC operation unit is responsible for RNIC register operations and processes RDMA requests based on internal cached data when expansion is not required. The RDMA expansion management unit determines whether expansion is needed based on RDMA requests and performs expansion when RDMA processing capacity is insufficient. The processor proxy unit is responsible for offloading the RDMA functionality from the RNIC to the CPU and sending relevant RDMA requests to the second RDMA processing unit in the processor via software messages. The accelerator proxy unit is responsible for offloading the RDMA functionality from the RNIC to the accelerator and sending relevant RDMA requests to the third RDMA processing unit in the accelerator via doorbell messages.
[0081] In addition, the RNIC's software architecture includes a compute high-speed interconnect driver and a compute high-speed interconnect device management unit to assist the CPU, accelerator, and CXL on the RNIC in operating normally. The compute high-speed interconnect driver is used for the startup and operation of the CXL device, forming the foundation for CXL's operation. The compute high-speed interconnect device management unit is used for CXL device user management, such as viewing the CXL device's operating status.
[0082] This application embodiment deploys a Remote Direct Data Access (RDMA) processing unit in the processor and accelerator. When the RNIC's processing capacity is insufficient, the CXL caches the data in the RNIC, thus expanding the RNIC's processing capacity. Therefore, this application embodiment offloads the RDMA processing unit function from the RNIC to the CPU and accelerator, achieving flexible RNIC expansion compared to related technologies that do not require replacing or adding an RNIC.
[0083] This application discloses a data processing method, see [link to relevant documentation] Figure 4 A flowchart illustrating a data processing method according to an exemplary embodiment, such as... Figure 4 As shown, it includes:
[0084] S101: Receive remote direct data access request;
[0085] S102: Forward the remote direct data access request to the processor or accelerator in the server system, so that the processor or the accelerator can obtain the target from the network card through high-speed computing interconnect, and process the received remote direct data access request based on the target data.
[0086] In this embodiment, the execution entity is the network interface card (NIC) in the aforementioned server system, which supports RDMA functionality; that is, the NIC can be an RNIC. The server system includes the NIC, a processor connected to the NIC, and an accelerator. The NIC includes a first remote direct data access processing unit (RDBAM) and a first compute high-speed interconnect (CHI) controller. The processor includes a second RDBAM and a second CHI controller. The accelerator includes a third RDBAM and a third CHI controller. The first CHI controller is added to the NIC; the second RDBAM and the second CHI controller are deployed in the processor; and the third RDBAM and the third CHI controller are deployed in the accelerator. The second CHI controller in the processor and the third CHI controller in the accelerator are used to obtain target data from the RNIC and cache it. The first CHI controller in the RNIC works in conjunction with the second CHI controller in the processor and the third CHI controller in the accelerator to complete the CXL function. The reason why the CPU and accelerator collaborate with the RNIC via CXL is that CXL can improve the CPU and accelerator's access performance to RNIC data.
[0087] In practical implementation, data with a volume smaller than a preset value can be offloaded to the processor or accelerator to better leverage CXL's cache coherency function. Similarly, data with an access frequency higher than a preset access frequency—i.e., hot data—can be offloaded to the processor or accelerator. Examples include network protocol packets and real-time data streams related to real-time network communication, to improve the accuracy of processing remote direct data access requests. Of course, the target data can simultaneously satisfy the conditions of having a volume smaller than a preset value and an access frequency higher than a preset access frequency.
[0088] The second remote direct data access unit in the processor can be implemented in pure software, while the third remote direct data access processing unit in the accelerator can be implemented in hardware, for example, the third remote direct data access processing unit can be a remote direct data access processing unit implemented by a field-programmable gate array or an artificial intelligence dedicated chip.
[0089] In a specific implementation, the RNIC receives remote direct data access requests. As one possible implementation, after receiving the remote direct data access request, the process further includes: determining whether expansion is needed based on the remote direct data access request; if so, forwarding the remote direct data access request to the processor or accelerator in the server system; if not, processing the remote direct data access request based on internally cached data.
[0090] In practice, the RNIC determines whether expansion is needed based on the amount of data processed by the remote direct data access request and the RNIC's load. If expansion is needed, the remote direct data access request is forwarded to the processor or accelerator for processing. If not, the remote direct data access request is processed based on the data cached internally.
[0091] Furthermore, the RNIC forwards the remote direct data access request to the processor or accelerator in the server system. The processor or accelerator calculates the data in the high-speed interconnect cache network card and processes the received remote direct data access request based on the data.
[0092] As a possible implementation, forwarding the remote direct data access request to the processor in the server system includes: forwarding the remote direct data access request to the processor in the server system via software messages.
[0093] As a possible implementation method, forwarding the remote direct data access request to the accelerator in the server system includes: forwarding the remote direct data access request to the accelerator in the server system via a doorbell.
[0094] Furthermore, in addition to offloading the RDMA service logic processing tasks of the RNIC, the CPU and accelerator can also offload the RNIC's congestion management tasks, queue pair (QP, Queue Pair, i.e., send queue and receive queue) context management tasks, and RDMA buffer.
[0095] Therefore, the embodiments of this application offload the RDMA processing unit function in the RNIC to the CPU and accelerator. When the RNIC processing capacity is insufficient, the data in the RNIC is cached by CXL to expand the RNIC processing capacity. Compared with related technologies, it does not require replacing or adding RNICs, thus realizing flexible RNIC expansion.
[0096] The following describes an application embodiment provided by this application. Utilizing the CXL's data caching function for accelerators, the RDMA processing unit function in the RNIC is offloaded to the CPU and accelerator. A CXL controller is added to the CPU and accelerator, and the CXL controller performs data caching of the RNIC by the CPU and accelerator. A CXL controller is also added to the RNIC, working in conjunction with the CXL controllers on the CPU and accelerator to complete the CXL function. The reason for the CPU and accelerator collaborating with the RNIC through CXL is that CXL can improve the CPU and accelerator's access performance to RNIC data. In the example above, the CPU and accelerator offload RDMA congestion management, RDMA caching, and RDMA service logic processing. In practice, more possibilities should be included, such as offloading QP context management. In specific implementations, data with a volume less than a preset value can be offloaded to the processor or accelerator to better leverage the CXL's cache coherency function. Data with an access frequency greater than a preset access frequency, i.e., hot data, such as network protocol packets related to real-time network communication and real-time data streams, can also be offloaded to the processor or accelerator to improve the accuracy of processing remote direct data access requests. Of course, the target data can be data that simultaneously meets the conditions of having a data volume less than a preset value and an access frequency greater than a preset access frequency. The CPU offload section is Soft-RDMA, which is pure software. The accelerator offload section is an RDMA processing unit, which varies depending on the accelerator, such as the firmware of an FPGA or the processing unit of an ASIC.
[0097] The software architecture divides the RDMA driver functionality into: RNIC operation, RDMA expansion management, Soft RDMA agent, and accelerator agent. RNIC operation handles RNIC register operations. RDMA expansion management handles expansion when RDMA processing capacity is insufficient. The Soft RDMA agent offloads the RDMA functionality from the RNIC to the CPU and sends relevant RDMA requests to the Soft RDMA module in the CPU via software messages. The accelerator agent offloads the RDMA functionality from the RNIC to the accelerator and sends relevant RDMA requests to the RDMA processing unit in the accelerator via doorbell.
[0098] In addition, the software architecture includes a CXL driver and a CXL device management module to assist the CPU, accelerator, and RNIC in ensuring the normal operation of the CXL. The CXL driver is used for the startup and operation of the CXL device, forming the foundation for CXL's operation. The CXL device management module is used for CXL device user management, such as viewing the CXL device's operating status. Specific business processes are as follows... Figure 5 As shown, it includes:
[0099] Step 1: RNIC receives RDMA request.
[0100] Step 2: The RDMA expansion management module in the RDMA driver determines whether RDMA expansion is needed.
[0101] Step 3: If RDMA expansion is not required, RNIC is handled independently.
[0102] Step 4: If RDMA expansion is required, the RDMA expansion management module will transfer the RDMA request to the Soft RDMA agent and accelerator agent.
[0103] Step 5: The Soft RDMA agent sends the relevant RDMA request to the SoftRDMA module in the CPU via software messages.
[0104] Step 6: The accelerator agent sends the relevant RDMA request to the RDMA processing unit in the accelerator via Doorbell.
[0105] Step 7: The CPU and accelerator cache some of the hot data in the RNIC via CXL.
[0106] Step 8: The CPU and accelerator work together with the RNIC to complete RDMA processing.
[0107] The following describes a data processing apparatus provided in an embodiment of this application. The data processing apparatus described below and the data processing method described above can be referred to each other.
[0108] See Figure 6 A structural diagram of a data processing apparatus according to an exemplary embodiment is shown, such as... Figure 6 As shown, it includes:
[0109] Receiver module 601 is used to receive remote direct data access requests;
[0110] The forwarding module 602 is used to forward the remote direct data access request to the processor or accelerator in the server system, so that the processor or the accelerator can obtain the target from the network card by computing the high-speed interconnect cache, and process the received remote direct data access request based on the target data.
[0111] In this embodiment, the execution entity is the network interface card (NIC) in the aforementioned server system, which supports RDMA functionality; that is, the NIC can be an RNIC. The server system includes the NIC, a processor connected to the NIC, and an accelerator. The NIC includes a first remote direct data access processing unit (RDBAM) and a first compute high-speed interconnect (CHI) controller. The processor includes a second RDBAM and a second CHI controller. The accelerator includes a third RDBAM and a third CHI controller. The first CHI controller is added to the NIC; the second RDBAM and the second CHI controller are deployed in the processor; and the third RDBAM and the third CHI controller are deployed in the accelerator. The second CHI controller in the processor and the third CHI controller in the accelerator are used to obtain target data from the RNIC and cache it. The first CHI controller in the RNIC works in conjunction with the second CHI controller in the processor and the third CHI controller in the accelerator to complete the CXL function. The reason why the CPU and accelerator collaborate with the RNIC via CXL is that CXL can improve the CPU and accelerator's access performance to RNIC data.
[0112] In practical implementation, data with a volume smaller than a preset value can be offloaded to the processor or accelerator to better leverage CXL's cache coherency function. Similarly, data with an access frequency higher than a preset access frequency—i.e., hot data—can be offloaded to the processor or accelerator. Examples include network protocol packets and real-time data streams related to real-time network communication, to improve the accuracy of processing remote direct data access requests. Of course, the target data can simultaneously satisfy the conditions of having a volume smaller than a preset value and an access frequency higher than a preset access frequency.
[0113] The second remote direct data access unit in the processor can be implemented in pure software, while the third remote direct data access processing unit in the accelerator can be implemented in hardware, for example, the third remote direct data access processing unit can be a remote direct data access processing unit implemented by a field-programmable gate array or an artificial intelligence dedicated chip.
[0114] Furthermore, the RNIC forwards the remote direct data access request to the processor or accelerator in the server system. The processor or accelerator calculates the data in the high-speed interconnect cache network card and processes the received remote direct data access request based on the data.
[0115] Therefore, the embodiments of this application offload the RDMA processing unit function in the RNIC to the CPU and accelerator. When the RNIC processing capacity is insufficient, the data in the RNIC is cached by CXL to expand the RNIC processing capacity. Compared with related technologies, it does not require replacing or adding RNICs, thus realizing flexible RNIC expansion.
[0116] Based on the above embodiments, as a preferred embodiment, it further includes:
[0117] The judgment module is used to determine whether expansion is needed based on the remote direct data access request; if so, the workflow of the forwarding module 602 is started; if not, the workflow of the processing module is started.
[0118] The processing module is used to process the remote direct data access request based on the data cached internally.
[0119] In practice, the RNIC determines whether expansion is needed based on the amount of data processed by the remote direct data access request and the RNIC's load. If expansion is needed, the remote direct data access request is forwarded to the processor or accelerator for processing. If not, the remote direct data access request is processed based on the data cached internally.
[0120] Based on the above embodiments, as a preferred implementation, the forwarding module 602 is specifically used to: forward the remote direct data access request to the processor in the server system via software messages.
[0121] Based on the above embodiments, as a preferred implementation, the forwarding module 602 is specifically used to: forward the remote direct data access request to the accelerator in the server system via a doorbell.
[0122] Regarding the apparatus in the above embodiments, the specific manner in which each module performs its operation has been described in detail in the embodiments related to the method, and will not be elaborated upon here.
[0123] Based on the hardware implementation of the above program modules, and in order to implement the method of the embodiments of this application, the embodiments of this application also provide an electronic device. Figure 7 This is a structural diagram of an electronic device according to an exemplary embodiment, such as... Figure 7 As shown, the electronic device includes:
[0124] Communication interface 1 enables information exchange with other devices, such as network devices;
[0125] Processor 2 is connected to communication interface 1 to enable information interaction with other devices and to execute the data processing methods provided by one or more of the above-mentioned technical solutions when running computer programs. The computer program is stored in memory 3.
[0126] Of course, in practical applications, the various components in an electronic device are coupled together through bus system 4. It can be understood that bus system 4 is used to achieve communication and connection between these components. In addition to the data bus, bus system 4 also includes a power bus, a control bus, and a status signal bus. However, for clarity, in... Figure 7 The general will label all buses as Bus System 4.
[0127] The memory 3 in this embodiment is used to store various types of data to support the operation of the electronic device. Examples of such data include any computer program used to operate on the electronic device.
[0128] It is understood that memory 3 can be volatile memory or non-volatile memory, or both. Non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), ferromagnetic random access memory (FRAM), flash memory, magnetic surface memory, optical disc, or compact disc read-only memory (CD-ROM); magnetic surface memory can be disk storage or magnetic tape storage. Volatile memory can be random access memory (RAM), which is used as an external cache. By way of example, but not limitation, many forms of RAM are available, such as Static Random Access Memory (SRAM), Synchronous Static Random Access Memory (SSRAM), Dynamic Random Access Memory (DRAM), Synchronous Dynamic Random Access Memory (SDRAM), Double Data Rate Synchronous Dynamic Random Access Memory (DDRSDRAM), Enhanced Synchronous Dynamic Random Access Memory (ESDRAM), SyncLink Dynamic Random Access Memory (SLDRAM), and Direct Rambus Random Access Memory (DRRAM).The memory 3 described in the embodiments of this application is intended to include, but is not limited to, these and any other suitable types of memory.
[0129] The methods disclosed in the embodiments of this application can be applied to processor 2, or implemented by processor 2. Processor 2 may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method can be completed by the integrated logic circuit of the hardware in processor 2 or by instructions in the form of software. The processor 2 may be a general-purpose processor, DSP, or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. Processor 2 can implement or execute the methods, steps and logic block diagrams disclosed in the embodiments of this application. The general-purpose processor may be a microprocessor or any conventional processor, etc. The steps of the methods disclosed in the embodiments of this application can be directly manifested as being executed by a hardware decoding processor, or being executed by a combination of hardware and software modules in the decoding processor. The software modules may be located in a storage medium, which is located in memory 3. Processor 2 reads the program in memory 3 and completes the steps of the aforementioned method in combination with its hardware.
[0130] When processor 2 executes the program, it implements the corresponding processes in the various methods of the embodiments of this application. For the sake of brevity, these will not be described in detail here.
[0131] In an exemplary embodiment, this application also provides a storage medium, namely a computer storage medium, specifically a computer-readable storage medium, such as a memory 3 that stores a computer program, which can be executed by a processor 2 to complete the steps described in the aforementioned method. The computer-readable storage medium may be a memory such as FRAM, ROM, PROM, EPROM, EEPROM, Flash Memory, magnetic surface memory, optical disc, or CD-ROM.
[0132] Those skilled in the art will understand that all or part of the steps of the above method embodiments can be implemented by hardware related to program instructions. The aforementioned program can be stored in a computer-readable storage medium. When the program is executed, it performs the steps of the above method embodiments. The aforementioned storage medium includes various media that can store program code, such as mobile storage devices, ROM, RAM, magnetic disks, or optical disks.
[0133] Alternatively, if the integrated units described above are implemented as software functional modules and sold or used as independent products, they can also be stored in a computer-readable storage medium. Based on this understanding, the technical solutions of the embodiments of this application, or the parts that contribute to the prior art, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause an electronic device (which may be a personal computer, server, network device, etc.) to execute all or part of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as mobile storage devices, ROM, RAM, magnetic disks, or optical disks.
[0134] 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 server system, characterized in that, The device includes a network interface card (NIC), a processor connected to the NIC, and an accelerator. The NIC includes a first remote direct data access processing unit (RDBMS) and a first high-speed computing interconnect controller (HSCIT). The processor includes a second RDBMS and a second HSCIT. The accelerator includes a third RDBMS and a third HSCIT. The first remote direct data access processing unit in the network card is used to receive a remote direct data access request and forward the remote direct data access request to the processor or the accelerator. The processor is configured to acquire target data from the network card through communication between the second high-speed computing interconnect controller and the first high-speed computing interconnect controller, and to process the received remote direct data access request based on the target data using the second remote direct data access processing unit. The accelerator is used to acquire target data from the network card through communication between the third computing high-speed interconnect controller and the first computing high-speed interconnect controller, and to process the received remote direct data access request based on the target data using the third remote direct data access processing unit.
2. The server system according to claim 1, characterized in that, The first remote direct data access processing unit is specifically used to: receive a remote direct data access request, determine whether expansion is needed based on the remote direct data access request, and if so, forward the remote direct data access request to the processor or the accelerator.
3. The server system according to claim 2, characterized in that, The first remote direct data access processing unit is further configured to: when it is determined that no expansion is required based on the remote direct data access request, process the remote direct data access request based on the data in the internal cache.
4. The server system according to claim 1, characterized in that, The first remote direct data access processing unit forwards the remote direct data access request to the second remote direct data access processing unit in the processor via software messages.
5. The server system according to claim 1, characterized in that, The first remote direct data access processing unit forwards the remote direct data access request to the third remote direct data access processing unit in the accelerator via a doorbell.
6. The server system according to claim 1, characterized in that, The third remote direct data access processing unit is a remote direct data access processing unit implemented through a field-programmable gate array or an artificial intelligence dedicated chip.
7. The server system according to claim 1, characterized in that, The network interface card is also used to: forward congestion management tasks and / or queue pair context management tasks to the processor or the accelerator; The processor is further configured to process received congestion management tasks and / or queue context management tasks using the second remote direct data access processing unit; The accelerator is also used to process, and utilizes, the received congestion management tasks and / or queue context management tasks by the third remote direct data access processing unit.
8. The server system according to claim 1, characterized in that, The target data is data whose volume is less than a preset value and / or whose access frequency is greater than a preset access frequency.
9. The server system according to claim 1, characterized in that, The network interface card includes: The remote direct data access expansion management unit is used to determine whether expansion is needed based on the remote direct data access request. A processor proxy unit is used to forward the remote direct data access request to the processor when expansion is required; An accelerator proxy unit is used to forward the remote direct data access request to the accelerator when expansion is required; The remote direct data access network card operation unit is used to process the remote direct data access request based on the data in the internal cache when no expansion is required; A computing high-speed interconnect device management unit is used for managing the computing high-speed interconnect devices in the network interface card; A high-speed interconnect driver is used for starting and operating the high-speed interconnect device in the network card.
10. A data processing method, characterized in that, The method, applied to a network interface card in a server system as described in any one of claims 1 to 9, comprises: Receive remote direct data access requests; The remote direct data access request is forwarded to the processor or accelerator in the server system, so that the processor or accelerator can obtain the target data from the network card through high-speed computing interconnect, and process the received remote direct data access request based on the target data.
11. The data processing method according to claim 10, characterized in that, After receiving the remote direct data access request, the method further includes: Determine whether expansion is needed based on the remote direct data access request; If so, the step of forwarding the remote direct data access request to the processor or accelerator in the server system is performed.
12. The data processing method according to claim 11, characterized in that, After determining whether expansion is needed based on the remote direct data access request, the process further includes: When it is determined that no expansion is needed based on the remote direct data access request, the remote direct data access request is processed based on the data in the internal cache.
13. The data processing method according to claim 10, characterized in that, Forwarding the remote direct data access request to the processor in the server system includes: The remote direct data access request is forwarded to the processor in the server system via software messages.
14. The data processing method according to claim 10, characterized in that, Forwarding the remote direct data access request to the accelerator in the server system includes: The remote direct data access request is forwarded to the accelerator in the server system via a doorbell.
15. A data processing apparatus, characterized in that, The device is used in a network interface card (NIC) in a server system as described in any one of claims 1 to 9, the device comprising: The receiving module is used to receive remote direct data access requests; The forwarding module is used to forward the remote direct data access request to the processor or accelerator in the server system, so that the processor or the accelerator can cache the data in the network card by computing high-speed interconnect and process the received remote direct data access request based on the data.
16. An electronic device, characterized in that, include: Memory, used to store computer programs; A processor for executing the computer program to implement the steps of the data processing method as described in any one of claims 10 to 14.
17. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program that, when executed by a processor, implements the steps of the data processing method as described in any one of claims 10 to 14.