Server system, data processing method and apparatus, device, and medium
By deploying remote direct data access processing units in processors and accelerators, and using CXL to cache RNIC data, the problem of hardware replacement of RNIC expansion is solved, and flexible RNIC expansion and RDMA processing capabilities are achieved.
Patent Information
- Application Number
- PCT/CN2024/137228
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-12-28
- Filing Date
- 2024-12-05
- Publication Date
- 2025-07-03
AI Technical Summary
In the prior art, the RNIC capacity expansion solution requires replacement of hardware, resulting in high cost and lack of flexibility, and cannot meet the temporary large-capacity RDMA service needs in a short period of time.
Deploy remote direct data access processing unit in processors and accelerators, use CXL to cache data in RNIC, offload RDMA requests to the CPU or accelerator through software messages or doorbells, and realize flexible expansion of RNIC.
It realizes flexible expansion of RNIC processing capabilities, avoids hardware replacement, improves RDMA processing capabilities, and adapts to business needs under different load conditions.
Smart Images

Figure CN2024137228_03072025_PF_FP_ABST
Abstract
Description
A server system, a data processing method, a device, a device and a medium
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims priority to the Chinese patent application filed with the China Patent Office on December 28, 2023, with application number 202311843331.7, and entitled “A Server System, A Data Processing Method, Device, Equipment and Medium”, all contents of which are incorporated by reference into this application. Technical Field
[0003] The present application relates to the field of computer technology, and more specifically, to a server system, a data processing method, an apparatus, a device, and a medium. Background Art
[0004] Unlike traditional software transport TCP (Transmission Control Protocol), RDMA (Remote Direct Memory Access) is a hardware transport that implements transmission functions entirely in 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 transport TCP, RDMA achieves high throughput, low latency, and low CPU (Central Processing Unit) overhead. RDMA is usually fully hardware offloaded, so the degree of parallelism and processing power are limited by the number of hardware resources. When the hardware resources on the RNIC (RDMA-enabled Network Interface Card) are exhausted, RDMA will reach a performance and processing bottleneck and cannot be expanded.
[0005] In the related art, there are several solutions for RNIC capacity expansion: the first is to replace a more powerful RNIC. A more powerful RNIC has more hardware resources and can provide greater RDMA service capacity, such as replacing a 4060 graphics card with a 4090 graphics card. The second solution is to insert multiple RNICs, such as replacing a 4060 graphics card with two 4060 graphics cards. It can be seen that the RNIC capacity expansion solutions in the related art require hardware replacement, which incurs upgrade costs and lacks flexibility. For example, when greater RDMA service capacity is only needed for a short period of time, upgrading the hardware lacks flexibility, resulting in the RNIC being underloaded most of the time. Summary of the Invention
[0006] The purpose of this application is to provide a server system, a data processing method, an apparatus, a device and a medium to achieve flexible RNIC expansion.
[0007] To achieve the above objectives, the present application provides a server system, comprising a network card, a processor connected to the network card, and an accelerator, wherein the network card comprises a first remote direct data access processing unit and a first computing high-speed interconnect controller, the processor comprises a second remote direct data access processing unit and a second computing high-speed interconnect controller, and the accelerator comprises a third remote direct data access processing unit and a third computing high-speed interconnect controller;
[0008] a first remote direct data access processing unit in the network card, configured to receive a remote direct data access request and forward the remote direct data access request to the processor or accelerator;
[0009] a processor configured to obtain target data from the network card through communication between the second 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 second remote direct data access processing unit;
[0010] The accelerator is configured to obtain 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 utilize the third remote direct data access processing unit to process the received remote direct data access request based on the target data.
[0011] The first remote direct data access processing unit is specifically configured to: receive a remote direct data access request, determine whether capacity expansion is required based on the remote direct data access request, and forward the remote direct data access request to the processor or accelerator if capacity expansion is required.
[0012] The first remote direct data access processing unit is further configured to: when it is determined that capacity expansion is not required according to the remote direct data access request, process the remote direct data access request based on data in the internal cache.
[0013] 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 a software message.
[0014] 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 in a doorbell manner.
[0015] Among them, the third remote direct data access processing unit is a remote direct data access processing unit implemented by a field programmable gate array or an artificial intelligence dedicated processor.
[0016] The network card is further configured to: forward congestion management tasks and / or queue pair context management tasks to the processor or accelerator;
[0017] The processor is further configured to process the received congestion management task and / or queue pair context management task using the second remote direct data access processing unit;
[0018] The accelerator is further configured to process the received congestion management task and / or queue pair context management task by utilizing the third remote direct data access processing unit.
[0019] The target data is data whose data volume is smaller than a preset value and / or whose access frequency is greater than a preset access frequency.
[0020] The network cards include:
[0021] A remote direct data access capacity expansion management unit, configured to determine whether capacity expansion is required based on a remote direct data access request;
[0022] A processor proxy unit, used to forward remote direct data access requests to the processor when expansion is required;
[0023] An accelerator proxy unit, configured to forward remote direct data access requests to the accelerator when capacity expansion is required;
[0024] A remote direct data access network card operation unit, used for processing remote direct data access requests based on internal cached data when capacity expansion is not required;
[0025] Computing high-speed interconnection device management unit, used for managing computing high-speed interconnection devices in the network card;
[0026] Computing high-speed interconnect driver, used to start and operate computing high-speed interconnect devices in network cards.
[0027] To achieve the above objectives, the present application provides a data processing method, which is applied to the network card in the above server system, and the method includes:
[0028] receiving remote direct data access requests;
[0029] The remote direct data access request is forwarded to a processor or an accelerator in the server system, so that the processor or the accelerator obtains a target from the network card through a computing high-speed interconnection and processes the received remote direct data access request based on the target data.
[0030] After receiving the remote direct data access request, the method further includes:
[0031] Determine whether capacity expansion is needed based on remote direct data access requests;
[0032] If capacity expansion is required, the step of forwarding the remote direct data access request to a processor or accelerator in the server system is performed.
[0033] After determining whether capacity expansion is required based on the remote direct data access request, the following steps are further included:
[0034] When it is determined according to the remote direct data access request that capacity expansion is not required, the remote direct data access request is processed based on the data in the internal cache.
[0035] The method of forwarding the remote direct data access request to a processor in the server system includes:
[0036] Remote direct data access requests are forwarded to the processor in the server system by means of software messages.
[0037] The method of forwarding the remote direct data access request to the accelerator in the server system includes:
[0038] Remote direct data access requests are forwarded to the accelerator in the server system through the doorbell method.
[0039] To achieve the above objectives, the present application provides a data processing device, which is applied to the network card in the above server system, and the device includes:
[0040] A receiving module, configured to receive a remote direct data access request;
[0041] 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 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.
[0042] Among them, also include:
[0043] A judgment module is used to judge whether capacity expansion is required based on a remote direct data access request; if capacity expansion is required, the workflow of the forwarding module is started; if capacity expansion is not required, the workflow of the processing module is started;
[0044] The processing module is used for processing remote direct data access requests based on internal cached data.
[0045] The forwarding module is specifically used to forward the remote direct data access request to the processor in the server system by means of software messages.
[0046] The forwarding module is specifically used to forward the remote direct data access request to the accelerator in the server system by means of a doorbell.
[0047] To achieve the above objectives, the present application provides an electronic device, comprising:
[0048] memory for storing computer programs;
[0049] A processor is used to implement the steps of the above-mentioned data processing method when executing a computer program.
[0050] To achieve the above objectives, the present application provides a computer non-volatile readable storage medium, on which a computer program is stored. When the computer program is executed by a processor, the steps of the above data processing method are implemented.
[0051] From the above scheme, it can be seen that the server system provided by the present application includes a network card, a processor and an accelerator connected to the network card, the network card includes a first remote direct data access processing unit and a first computing high-speed interconnect controller, the processor includes a second remote direct data access processing unit and a second computing high-speed interconnect controller, and the accelerator includes a third remote direct data access processing unit and a third computing high-speed interconnect controller; 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 accelerator; the processor is used to cache data in the network card through communication between the second computing high-speed interconnect controller and the first computing high-speed interconnect controller, and use the second remote direct data access processing unit to process the received remote direct data access request based on the data; the accelerator is used to cache data in the network card through communication between the third computing high-speed interconnect controller and the first computing high-speed interconnect controller, and use the third remote direct data access processing unit to process the received remote direct data access request based on the data.
[0052] This application deploys remote direct data access processing units in processors and accelerators. When the RNIC's processing capacity is insufficient, CXL (Compute Express Link) is used to cache data in the RNIC, thereby expanding the RNIC's processing capacity. Thus, this application partially offloads the RDMA processing unit functionality in the RNIC to the CPU and accelerator. Compared to related technologies, this application does not require replacing or adding RNICs, thus achieving flexible RNIC expansion. This application also discloses a data processing method and device, an electronic device, and a computer-readable non-volatile storage medium, which can also achieve the above-mentioned technical effects.
[0053] It should be understood that the foregoing general description and the following detailed description are merely illustrative and are not restrictive of the present application. BRIEF DESCRIPTION OF THE DRAWINGS
[0054] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the following will briefly introduce the drawings required for the embodiments or the description of the prior art. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without creative work. The drawings are used to provide a further understanding of the present disclosure and constitute part of the specification. Together with the following specific embodiments, they are used to explain the present disclosure, but do not constitute a limitation of the present disclosure. In the drawings:
[0055] FIG1 is a diagram of the RNIC hardware architecture in the related art;
[0056] FIG2 is a structural diagram of a server system shown in some embodiments of the present application;
[0057] FIG3 is a diagram of a software architecture of an RNIC according to some embodiments of the present application;
[0058] FIG4 is a flow chart of a data processing method shown in some embodiments of the present application;
[0059] FIG5 is a flow chart of an application embodiment provided by the present application;
[0060] FIG6 is a structural diagram of a data processing device according to some embodiments of the present application;
[0061] FIG7 is a structural diagram of an electronic device according to some embodiments of the present application. DETAILED DESCRIPTION
[0062] The technical solutions in the embodiments of the present application will be clearly and completely described below in conjunction with the drawings in the embodiments of the present application. Obviously, the described embodiments are only a part of the embodiments of the present application, rather than all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without making creative work are within the scope of protection of this application. In addition, in the embodiments of the present application, "first", "second", etc. are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence.
[0063] In the related art, the RNIC hardware architecture is shown in Figure 1, comprising 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 RDMA processing bottlenecks; the main bottleneck of RDMA processing capacity lies in the RDMA processing unit. The RDMA processing unit is responsible for managing the QP (Queue Pair, i.e., the send queue and receive queue) context in the RDMA processing process, RDMA congestion management, RDMA caching, and RDMA service logic processing. These processes are more complex than the logic, much more complex than PCIE and Ethernet port processing, and also consume more computing resources. The fundamental problem that prevents RNIC expansion in the related art is that all processing power is fixed in the RDMA processing unit on the RNIC.
[0064] Therefore, this application deploys remote direct data access processing units in processors and accelerators. When the RNIC's processing capacity is insufficient, CXL is used to cache data in the RNIC, thereby expanding the RNIC's processing capacity. In other words, this application partially offloads the RDMA processing unit functions in the RNIC to the CPU and accelerator. Compared to related technologies, this application does not require replacing or adding RNICs, achieving flexible RNIC expansion.
[0065] The embodiment of the present application discloses a server system, including a network card 10, a processor 20 connected to the network card 10, and an accelerator 30. The network card 10 includes a first remote direct data access processing unit 101 and a first computing high-speed interconnect controller 102. The processor 20 includes a second remote direct data access processing unit 201 and a second computing high-speed interconnect controller 202. The accelerator 30 includes a third remote direct data access processing unit 301 and a third computing high-speed interconnect controller 302.
[0066] The first remote direct data access processing unit 101 in the network card 10 is configured to receive a remote direct data access request and forward the remote direct data access request to the processor or accelerator;
[0067] The processor 20 is configured to cache 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 to process the received remote direct data access request based on the data using the second remote direct data access processing unit 201;
[0068] The accelerator 30 is used to cache 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 use the third remote direct data access processing unit 301 to process the received remote direct data access request based on data.
[0069] In some embodiments of the present application, the network card may be an RNIC, a first computing high-speed interconnect controller is added to the network card, a second remote direct data access processing unit and a second computing high-speed interconnect controller are deployed in the processor, and a third remote direct data access processing unit and a third computing high-speed interconnect controller are deployed in the accelerator. The second computing high-speed interconnect controller in the processor and the third computing high-speed interconnect controller in the accelerator are used to obtain target data from the RNIC and cache it, and the first computing high-speed interconnect controller in the RNIC cooperates with the second computing high-speed interconnect controller in the processor and the third computing high-speed interconnect controller in the accelerator to complete the CXL function. The reason why the CPU and the accelerator collaborate with the RNIC through CXL is that CXL can improve the access performance of the CPU and the accelerator to the RNIC data. The accelerator in this embodiment may be a heterogeneous accelerator, which is a special accelerator that uses multiple algorithms and architectures to improve computing power.
[0070] In some embodiments, the target data is data with a data volume less than a preset value and / or an access frequency greater than a preset access frequency. In specific implementations, data with a data volume less than the preset value can be offloaded to a processor or accelerator to better leverage CXL's cache coherence capabilities. Data with an access frequency greater than the preset access frequency, also known as hot data, can also be offloaded to a processor or accelerator, such as network protocol packets and real-time data streams associated with real-time network communications, to improve the accuracy of processing remote direct data access requests. Of course, the target data can also be data that meets both the requirements of a data volume less than a preset value and an access frequency greater than the preset access frequency.
[0071] The second remote direct data in the processor can be implemented by pure software, and the third remote direct data access processing unit in the accelerator can be in the form of hardware. For example, the third remote direct data access processing unit is a remote direct data access processing unit implemented by a field programmable gate array or an artificial intelligence dedicated processor.
[0072] The first remote direct data access processing unit in the RNIC receives the remote direct data access request and forwards the remote direct data access request 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.
[0073] In some embodiments, the first remote direct data access processing unit is specifically used to: receive a remote direct data access request, determine whether capacity expansion is required based on the remote direct data access request, and if capacity expansion is required, forward the remote direct data access request to the processor or accelerator; if capacity expansion is not required, process the remote direct data access request based on internal cached data.
[0074] In a specific implementation, a first remote direct data access processing unit in the RNIC receives a remote direct data access request and determines whether capacity expansion is needed based on the amount of data processed by the remote direct data access request and the RNIC load. If capacity expansion is needed, the remote direct data access request is forwarded to a second remote direct data access processing unit in the processor or a third remote direct data access processing unit in the accelerator for processing. If capacity expansion is not needed, the remote direct data access request is processed based on internally cached data.
[0075] In some embodiments, 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 a software message.
[0076] In some embodiments, 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.
[0077] In some embodiments, the network card is further used to: forward congestion management tasks and / or queue pair context management tasks to a processor or accelerator; the processor is further used to utilize a second remote direct data access processing unit to process the received congestion management tasks and / or queue pair context management tasks; the accelerator is further used to utilize a third remote direct data access processing unit to process the received congestion management tasks and / or queue pair context management tasks.
[0078] In a specific implementation, in addition to offloading the RNIC's RDMA business logic processing tasks, the CPU and accelerator can also offload the RNIC's congestion management tasks, queue context management tasks, and RDMA cache.
[0079] Furthermore, some embodiments of this application adjust the RNIC software architecture. In related technologies, the RDMA software architecture includes RDMA verbs, RDMA core, and RDMA drivers. RDMA verbs is a user-mode library, while RDMA core is a kernel-mode general-purpose library, both provided by the operating system. RDMA drivers are provided by hardware vendors, and drivers for major vendors' RNICs are also integrated into the operating system, responsible for RNIC register operations.
[0080] In some embodiments, the network card includes: a remote direct data access capacity expansion management unit, which is used to determine whether capacity expansion is required based on a remote direct data access request; a processor agent unit, which is used to forward the remote direct data access request to the processor when capacity expansion is required; an accelerator agent unit, which is used to forward the remote direct data access request to the accelerator when capacity expansion is required; a remote direct data access network card operation unit, which is used to process the remote direct data access request based on internal cached data when capacity expansion is not required; a computing high-speed interconnect device management unit, which is used to manage the computing high-speed interconnect device in the network card; and a computing high-speed interconnect driver, which is used to start and operate the computing high-speed interconnect device in the network card.
[0081] The software architecture of the RNIC provided in some embodiments of the present application is shown in Figure 3, which divides the RDMA driver function into: a remote direct data access network card operation unit, a remote direct data access capacity expansion management unit, a processor agent unit, and an accelerator agent unit. Among them, the remote direct data access network card operation unit is responsible for RNIC register operations. When capacity expansion is not required, it processes remote direct data access requests based on internal cached data. The remote direct data access capacity expansion management unit determines whether capacity expansion is required based on remote direct data access requests, and performs related capacity expansion work when the RDMA processing capacity is insufficient. The processor agent unit is responsible for offloading some RDMA functions in the RNIC to the CPU and sending related RDMA requests to the second remote direct data access processing unit in the processor via software messages. The accelerator agent unit is responsible for offloading some RDMA functions in the RNIC to the accelerator and sending related RDMA requests to the third remote direct data access processing unit in the accelerator via doorbell.
[0082] In addition, the RNIC software architecture includes a high-speed computing interconnect driver and a high-speed computing interconnect device management unit to facilitate the normal operation of CXL on the CPU, accelerators, and RNIC. The high-speed computing interconnect driver is used to start and operate CXL devices, providing the foundation for CXL operation. The high-speed computing interconnect device management unit is used for CXL device user management, such as checking the operating status of CXL devices.
[0083] This embodiment of the application deploys remote direct data access processing units in the processor and accelerator. When the RNIC processing capacity is insufficient, CXL is used to cache data in the RNIC, thereby expanding the RNIC processing capacity. This shows that this embodiment of the application partially offloads the RDMA processing unit functions in the RNIC to the CPU and accelerator. Compared with related technologies, this does not require replacing or adding RNICs, achieving flexible RNIC expansion.
[0084] The present application discloses a data processing method. Referring to FIG4 , a flowchart of a data processing method shown in some embodiments of the present application is shown in FIG4 , including:
[0085] S101: receiving a remote direct data access request;
[0086] S102: Forward the remote direct data access request to a processor or accelerator in the server system, so that the processor or accelerator obtains target data from the network card through a computing high-speed interconnection and processes the received remote direct data access request based on the target data.
[0087] The execution subject of this embodiment is the network card in the above-mentioned server system, which supports RDMA function, that is, the network card can be an RNIC. The server system includes a network card, a processor connected to the network card, and an accelerator. The network card includes a first remote direct data access processing unit and a first computing high-speed interconnect controller. The processor includes a second remote direct data access processing unit and a second computing high-speed interconnect controller. The accelerator includes a third remote direct data access processing unit and a third computing high-speed interconnect controller. The first computing high-speed interconnect controller is added to the network card, the second remote direct data access processing unit and the second computing high-speed interconnect controller are deployed in the processor, and the third remote direct data access processing unit and the third computing high-speed interconnect controller are deployed in the accelerator. The second computing high-speed interconnect controller in the processor and the third computing high-speed interconnect controller in the accelerator are used to obtain target data from the RNIC and cache it. The first computing high-speed interconnect controller in the RNIC cooperates with the second computing high-speed interconnect controller in the processor and the third computing high-speed interconnect 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.
[0088] In specific implementations, data with a size smaller than a preset value can be offloaded to the processor or accelerator to better leverage CXL's cache coherence capabilities. Data with a higher access frequency than a preset value, also known as hot data, can also be offloaded to the processor or accelerator. This includes network protocol packets and real-time data streams related to real-time network communications, to improve the accuracy of processing remote direct data access requests. Of course, the target data can also be data that meets both the requirements of a size smaller than a preset value and an access frequency greater than a preset frequency.
[0089] The second remote direct data in the processor can be implemented by pure software, and the third remote direct data access processing unit in the accelerator can be in the form of hardware. For example, the third remote direct data access processing unit is a remote direct data access processing unit implemented by a field programmable gate array or an artificial intelligence dedicated controller.
[0090] In a specific implementation, the RNIC receives a remote direct data access request. In some embodiments, after receiving the remote direct data access request, the method further includes: determining whether capacity expansion is required based on the remote direct data access request; if capacity expansion is required, forwarding the remote direct data access request to a processor or accelerator in the server system; and if capacity expansion is not required, processing the remote direct data access request based on internally cached data.
[0091] In practice, the RNIC determines whether capacity expansion is needed based on the amount of data being processed by remote direct data access requests and the RNIC's load. If so, the RNIC forwards the request to the processor or accelerator for processing. If not, the RNIC processes the request based on internally cached data.
[0092] Furthermore, the RNIC forwards the remote direct data access request to a 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.
[0093] In some embodiments, 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 a software message.
[0094] In some embodiments, 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 by way of a doorbell.
[0095] Furthermore, in addition to offloading the RNIC's RDMA business logic processing tasks, the CPU and accelerator can also offload the RNIC's congestion management tasks, queue pair (QP, Queue Pair, also known as the send queue and receive queue) context management tasks, and RDMA cache.
[0096] It can be seen that the embodiment of the present application partially offloads the RDMA processing unit function in the RNIC to the CPU and accelerator. When the RNIC processing capacity is insufficient, CXL is used to cache the data in the RNIC to expand the RNIC processing capacity. Compared with related technologies, there is no need to replace the RNIC or add RNIC, thus realizing flexible RNIC expansion.
[0097] The following describes an application embodiment provided by this application. This application leverages the CXL accelerator data caching feature to partially offload the RDMA processing unit functionality within the RNIC to the CPU and accelerator. A CXL controller is added to the CPU and accelerator to cache RNIC data. A CXL controller is also added to the RNIC to work with the CPU and accelerator to complete the CXL functionality. The CPU and accelerator collaborate with the RNIC via CXL because CXL improves 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 business logic processing. In practice, more possibilities are possible, 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 CXL's cache coherence capabilities. Data with a higher access frequency than a preset value, known as hot data, can also be offloaded to the processor or accelerator, such as 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 also satisfy the requirements of both a data volume less than a preset value and an access frequency greater than a preset access frequency. The CPU offload portion is Soft-RDMA, which is pure software. The accelerator offload portion is the RDMA processing unit, which varies depending on the accelerator, such as FPGA firmware and AISC processing units.
[0098] The software architecture divides the RDMA driver functions into: RNIC operation, RDMA expansion management, Soft RDMA agent, and accelerator agent. RNIC operation is responsible for RNIC register operations. RDMA expansion management is responsible for performing related expansion tasks when RDMA processing capacity is insufficient. The Soft RDMA agent is responsible for offloading the RDMA functions of the RNIC to the CPU and sending relevant RDMA requests to the Soft RDMA module in the CPU via software messages. The accelerator agent is responsible for offloading the RDMA functions of the RNIC to the accelerator and sending relevant RDMA requests to the RDMA processing unit in the accelerator via doorbell.
[0099] In addition, the software architecture includes a CXL driver and CXL device management module to assist with the proper operation of the CPU, accelerator, and RNIC. The CXL driver is used to start and operate CXL devices, providing the foundation for CXL's operation. The CXL device management module is used for CXL device user management, such as checking the operating status of CXL devices. The specific business process is shown in Figure 5 and includes:
[0100] Step 1: RNIC receives RDMA request.
[0101] Step 2: The RDMA expansion management module in the RDMA driver determines whether RDMA expansion is required.
[0102] Step 3: If RDMA expansion is not required, RNIC handles it independently.
[0103] Step 4: If RDMA capacity expansion is required, the RDMA capacity expansion management module transfers the RDMA request to the Soft RDMA agent and the accelerator agent.
[0104] Step 5: The Soft RDMA agent sends the relevant RDMA request to the Soft RDMA module in the CPU through a software message.
[0105] Step 6: The accelerator agent sends the relevant RDMA request to the RDMA processing unit in the accelerator through the Doorbell.
[0106] Step 7: The CPU and accelerator cache some hot data in the RNIC through CXL.
[0107] Step 8: The CPU and accelerator collaborate with the RNIC to complete the RDMA processing.
[0108] A data processing device provided in an embodiment of the present application is introduced below. The data processing device described below and the data processing method described above can be referenced to each other.
[0109] Referring to FIG6 , a structural diagram of a data processing device according to some embodiments of the present application is shown. As shown in FIG6 , the device includes:
[0110] Receiving module 601, for receiving a remote direct data access request;
[0111] 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 accelerator obtains the target from the network card through the computing high-speed interconnect cache and processes the received remote direct data access request based on the target data.
[0112] The execution subject of this embodiment is the network card in the above-mentioned server system, which supports RDMA function, that is, the network card can be an RNIC. The server system includes a network card, a processor connected to the network card, and an accelerator. The network card includes a first remote direct data access processing unit and a first computing high-speed interconnect controller. The processor includes a second remote direct data access processing unit and a second computing high-speed interconnect controller. The accelerator includes a third remote direct data access processing unit and a third computing high-speed interconnect controller. The first computing high-speed interconnect controller is added to the network card, the second remote direct data access processing unit and the second computing high-speed interconnect controller are deployed in the processor, and the third remote direct data access processing unit and the third computing high-speed interconnect controller are deployed in the accelerator. The second computing high-speed interconnect controller in the processor and the third computing high-speed interconnect controller in the accelerator are used to obtain target data from the RNIC and cache it. The first computing high-speed interconnect controller in the RNIC cooperates with the second computing high-speed interconnect controller in the processor and the third computing high-speed interconnect 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.
[0113] In specific implementations, data with a size smaller than a preset value can be offloaded to the processor or accelerator to better leverage CXL's cache coherence capabilities. Data with a higher access frequency than a preset value, also known as hot data, can also be offloaded to the processor or accelerator. This includes network protocol packets and real-time data streams related to real-time network communications, to improve the accuracy of processing remote direct data access requests. Of course, the target data can also be data that meets both the requirements of a size smaller than a preset value and an access frequency greater than a preset frequency.
[0114] The second remote direct data in the processor can be implemented by pure software, and the third remote direct data access processing unit in the accelerator can be in the form of hardware. For example, the third remote direct data access processing unit is a remote direct data access processing unit implemented by a field programmable gate array or an artificial intelligence dedicated processor.
[0115] Furthermore, the RNIC forwards the remote direct data access request to a 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.
[0116] It can be seen that the embodiment of the present application partially offloads the RDMA processing unit function in the RNIC to the CPU and accelerator. When the RNIC processing capacity is insufficient, CXL is used to cache the data in the RNIC to expand the RNIC processing capacity. Compared with related technologies, there is no need to replace the RNIC or add RNIC, thus realizing flexible RNIC expansion.
[0117] In some embodiments, it further includes:
[0118] A determination module, configured to determine whether capacity expansion is required based on a remote direct data access request; if capacity expansion is required, the workflow of the forwarding module 602 is started; if capacity expansion is not required, the workflow of the processing module is started;
[0119] The processing module is used for processing remote direct data access requests based on internal cached data.
[0120] In practice, the RNIC determines whether capacity expansion is needed based on the amount of data being processed by remote direct data access requests and the RNIC's load. If so, the RNIC forwards the request to the processor or accelerator for processing. If not, the RNIC processes the request based on internally cached data.
[0121] In some embodiments, the forwarding module 602 is specifically configured to forward the remote direct data access request to the processor in the server system via a software message.
[0122] In some embodiments, the forwarding module 602 is specifically configured to forward the remote direct data access request to the accelerator in the server system via a doorbell.
[0123] Regarding the apparatus in the above embodiment, the specific manner in which each module performs operations has been described in detail in the embodiment of the method, and will not be elaborated here.
[0124] Based on the hardware implementation of the above program modules, and in order to implement the method of the embodiments of the present application, the embodiments of the present application further provide an electronic device. FIG7 is a structural diagram of an electronic device shown in some embodiments of the present application. As shown in FIG7 , the electronic device includes:
[0125] Communication interface 1, capable of exchanging information with other devices such as network devices;
[0126] The processor 2 is connected to the communication interface 1 to implement information exchange with other devices and is used to execute the data processing method provided by one or more of the above technical solutions when running a computer program. The computer program is stored in the memory 3.
[0127] Of course, in actual applications, the various components in the electronic device are coupled together via bus system 4. It will be understood that bus system 4 is used to enable communication between these components. In addition to a data bus, bus system 4 also includes a power bus, a control bus, and a status signal bus. However, for clarity, in FIG7 , all of these buses are labeled as bus system 4.
[0128] The memory 3 in the embodiment of the present application 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.
[0129] It is understood that the memory 3 can be a volatile memory or a non-volatile memory, or can include both volatile and non-volatile memories. Among them, the non-volatile memory can be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), a magnetic random access memory (FRAM), a flash memory, a magnetic surface memory, an optical disc, or a compact disc read-only memory (CD-ROM); the magnetic surface memory can be a magnetic disk memory or a magnetic tape memory. The volatile memory can be a random access memory (RAM), which is used as an external cache. By way of example and 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), synchronous link dynamic random access memory (SLDRAM), and direct rambus random access memory (DRRAM).The memory 3 described in the embodiments of the present application is intended to include but is not limited to these and any other suitable types of memories.
[0130] The method disclosed in the above-mentioned embodiment of the present application can be applied to processor 2 or implemented by processor 2. Processor 2 may be an integrated circuit with signal processing capabilities. During the implementation process, each step of the above-mentioned method can be completed by the hardware integrated logic circuit in processor 2 or instructions in the form of software. The above-mentioned processor 2 can 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 various methods, steps and logic block diagrams disclosed in the embodiments of the present application. A general-purpose processor can be a microprocessor or any conventional processor, etc. The steps of the method disclosed in the embodiment of the present application can be directly embodied 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 module can 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 above-mentioned method in combination with its hardware.
[0131] When the processor 2 executes the program, the corresponding processes in each method of the embodiment of the present application are implemented. For the sake of brevity, they are not repeated here.
[0132] In an exemplary embodiment, the present application also provides a storage medium, namely, a computer storage medium, specifically a non-volatile computer-readable storage medium, such as a memory 3 storing a computer program. The computer program can be executed by a processor 2 to perform the aforementioned method steps. The non-volatile computer-readable storage medium can be a memory such as FRAM, ROM, PROM, EPROM, EEPROM, Flash Memory, magnetic surface storage, optical disk, CD-ROM, or the like.
[0133] Those skilled in the art will understand that all or part of the steps of implementing the above-mentioned method embodiment can be completed by hardware related to program instructions, and the aforementioned program can be stored in a computer-readable storage medium. When the program is executed, it executes the steps of the above-mentioned method embodiment; and the aforementioned storage medium includes: mobile storage devices, ROM, RAM, disks or optical disks, etc. Various media that can store program codes.
[0134] Alternatively, if the above-mentioned integrated unit of the present application is implemented in the form of a software function module and sold or used as an independent product, it can also be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the embodiment of the present application is essentially or the part that contributes to the prior art can be embodied in the form of a software product, which is stored in a storage medium and includes a number of instructions for an electronic device (which can be a personal computer, server, network device, etc.) to execute all or part of the methods of each embodiment of the present application. The aforementioned storage medium includes: various media that can store program codes, such as mobile storage devices, ROM, RAM, magnetic disks or optical disks.
[0135] The above are only specific embodiments of the present application, but the scope of protection of this application is not limited thereto. Any changes or substitutions that can be easily conceived by a person skilled in the art within the technical scope disclosed in this application should be included in the scope of protection of this application. Therefore, the scope of protection of this application should be based on the scope of protection of the claims.
Claims
1. A server system, characterized in that, It includes a network card, a processor connected to the network card, and an accelerator. The network card includes a first Remote Direct Memory Access (RDMA) processing unit and a first Compute Express Link (CXL) controller. The processor includes a second RDMA processing unit and a second CXL controller. The accelerator includes a third RDMA processing unit and a third CXL controller; The first RDMA processing unit in the network card is configured to receive an RDMA request and forward the RDMA request to the processor or the accelerator; The processor is configured to obtain target data from the network card through communication between the second CXL controller and the first CXL controller, and use the second RDMA processing unit to process the received RDMA request based on the target data; The accelerator is configured to obtain target data from the network card through communication between the third CXL controller and the first CXL controller, and use the third RDMA processing unit to process the received RDMA request based on the target data.
2. The server system according to claim 1, wherein The first RDMA processing unit is specifically configured to: receive an RDMA request, determine whether expansion is required according to the RDMA request, and if expansion is required, forward the RDMA request to the processor or the accelerator.
3. The server system according to claim 2, wherein The first RDMA processing unit is further configured to: when it is determined that expansion is not required according to the RDMA request, process the RDMA request based on the data in the internal cache.
4. The server system according to claim 1, wherein The first RDMA processing unit forwards the RDMA request to the second RDMA processing unit in the processor by means of a software message.
5. The server system according to claim 1, wherein The first RDMA processing unit forwards the RDMA request to the third RDMA processing unit in the accelerator by means of a doorbell.
6. The server system according to claim 1, wherein The third RDMA processing unit is an RDMA processing unit implemented by a Field Programmable Gate Array (FPGA) or an Artificial Intelligence (AI) dedicated processor.
7. The server system according to claim 1, wherein The network 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 use the second RDMA processing unit to process the received congestion management tasks and / or queue pair context management tasks; The accelerator is further configured to use the third RDMA processing unit to process the received congestion management tasks and / or queue pair context management tasks.
8. The server system according to claim 1, wherein The target data is data with a data volume less than a preset value and / or an access frequency greater than a preset access frequency.
9. The server system according to claim 1, wherein The network card includes: An RDMA expansion management unit configured to determine whether expansion is required according to the RDMA request; A processor proxy unit, configured to forward the remote direct memory access request to the processor when expansion is required; An accelerator proxy unit, configured to forward the remote direct memory access request to the accelerator when expansion is required; A remote direct memory access network card operation unit, configured to process the remote direct memory access request based on the internally cached data when expansion is not required; A Compute Express Link device management unit, configured to manage the Compute Express Link devices in the network card; A Compute Express Link driver, configured to start and operate the Compute Express Link devices in the network card.
10. The server system according to claim 1, wherein The accelerator is a heterogeneous accelerator.
11. A data processing method, characterized in that, Applied to a network card in the server system according to any one of claims 1 to 10, the method includes: Receiving a remote direct memory access request; Forwarding the remote direct memory access request to a processor or an accelerator in the server system, so that the processor or the accelerator obtains target data from the network card through Compute Express Link and processes the received remote direct memory access request based on the target data.
12. The data processing method according to claim 11, wherein The target data is data with a data volume less than a preset value and / or an access frequency greater than a preset access frequency.
13. The data processing method according to claim 11, wherein After receiving the remote direct memory access request, it further includes: Judging whether expansion is required according to the remote direct memory access request; If expansion is required, execute the step of forwarding the remote direct memory access request to a processor or an accelerator in the server system.
14. The data processing method according to claim 13, wherein The judging whether expansion is required according to the remote direct memory access request includes: Judging whether expansion is required according to the processed data volume of the remote direct memory access request and the load condition of the network card.
15. The data processing method according to claim 13, wherein After judging whether expansion is required according to the remote direct memory access request, it further includes: When it is determined according to the remote direct memory access request that expansion is not required, processing the remote direct memory access request based on the internally cached data.
16. The data processing method according to claim 12, wherein Forwarding the remote direct memory access request to the processor in the server system includes: Forwarding the remote direct memory access request to the processor in the server system by means of a software message.
17. The data processing method according to claim 12, wherein Forwarding the remote direct memory access request to the accelerator in the server system includes: Forwarding the remote direct memory access request to the accelerator in the server system by means of a doorbell.
18. A data processing device, characterized in that, Applied to a network card in the server system according to any one of claims 1 to 10, the device includes: A receiving module, configured to receive a remote direct memory access request; A forwarding module, configured to forward the remote direct memory access request to a processor or an accelerator in the server system, so that the processor or the accelerator caches the data in the network card through Compute Express Link and processes the received remote direct memory access request based on the data.
19. An electronic device, characterized in that, Including: A memory, configured to store a computer program; A processor, configured to implement the steps of the data processing method according to any one of claims 11 to 17 when executing the computer program.
20. A computer non-volatile readable storage medium, characterized in that, A computer program is stored on the computer non-volatile readable storage medium, and when the computer program is executed by a processor, the steps of the data processing method according to any one of claims 11 to 17 are implemented.
Citation Information
Patent Citations
Data processing method, remote direct memory access network card and equipment
CN110647480A
Memory space expansion method and device, electronic equipment and storage medium
CN113868155A
Storage system and remote direct data access method
CN116830094A
Server system, data processing method, device and equipment and medium
CN117827708A
Shared memory space among devices
US20200104275A1
Cited By
Data communication task processing method and device, chip, network interface card, computer equipment, readable storage medium and program product
CN120723487A