Communication methods, systems, devices and electronic equipment

By using double-rate synchronous dynamic random access memory (DRAM) pre-allocated storage areas and direct memory access on PCIe accelerator cards, the problem of low communication efficiency between PCIe accelerator cards is solved, enabling efficient data transmission and management between the host and the PCIe accelerator card, and improving system processing capabilities.

CN117155729BActive Publication Date: 2026-03-06BEIJING YOUZHUJU NETWORK TECH CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-05-24
Publication Date
2026-03-06

AI Technical Summary

Technical Problem

In the existing technology, the communication efficiency between PCIe accelerator cards is low, making it difficult to achieve efficient data transmission and management between the host and the PCIe accelerator card.

Method used

By using double-rate synchronous dynamic random access memory (DRAM) to pre-allocate storage areas on the PCIe accelerator card, a direct data storage and notification mechanism is implemented. Combined with direct memory access, this enables efficient communication between the host and the PCIe accelerator card.

Benefits of technology

It enables efficient communication between the host and the PCIe accelerator card, supports PCIe card operation and maintenance management, firmware upgrades and software debugging, and improves system processing capabilities.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117155729B_ABST
    Figure CN117155729B_ABST
Patent Text Reader

Abstract

This application discloses communication methods, systems, devices, and electronic devices. One specific embodiment of the method includes: in response to determining the existence of data to be transmitted, calling a target interface to move the data to be transmitted to a target storage area, wherein the target storage area is a pre-allocated storage area on the Double Rate Synchronous Dynamic Random Access Memory of a target accelerator card, the target accelerator card is a high-speed serial computer expansion bus standard accelerator card, the data to be transmitted is data sent to the protocol stack of the Transmission Control Protocol or Internet Protocol by a target application calling a socket interface function, and the target interface is used to implement communication between the protocol stack and the target accelerator card; calling the target interface to send a notification to a data receiving device, wherein the notification is used to indicate that the data to be transmitted has been placed in the target storage area. This embodiment can form an IP network between the host and all PCIe accelerator cards, realizing communication between the host and the PCIe accelerator cards.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to the field of computer technology, specifically to communication methods, systems, devices, and electronic devices. Background Technology

[0002] PCIe (Peripheral Component Interconnect Express, a high-speed serial computer expansion bus standard) accelerator cards are generally used to accelerate specific processing flows in hardware, thereby improving system processing capabilities. Typically, a host computer will have multiple PCIe accelerator cards. Communication between the host and PCIe accelerator cards, as well as between PCIe accelerator cards themselves, is usually achieved through a ring buffer. Summary of the Invention

[0003] This disclosure is provided to briefly introduce the concepts, which will be described in detail in the subsequent Detailed Description section. This disclosure is not intended to identify key or essential features of the claimed technical solution, nor is it intended to limit the scope of the claimed technical solution.

[0004] In a first aspect, embodiments of this disclosure provide a communication method applied to a data transmitting device, comprising: in response to determining that data to be transmitted exists, calling a target interface to move the data to be transmitted to a target storage area, wherein the target storage area is a pre-allocated storage area on a double-rate synchronous dynamic random access memory of a target accelerator card, the target accelerator card is a high-speed serial computer extended bus standard accelerator card, the data to be transmitted is data sent to the protocol stack of a transmission control protocol or Internet Protocol by a target application calling a socket interface function, and the target interface is used to realize communication between the protocol stack and the target accelerator card; and calling the target interface to send a notification to a data receiving device, wherein the notification is used to indicate that the data to be transmitted has been placed in the target storage area.

[0005] Secondly, embodiments of this disclosure provide a communication method applied to a data receiving device, comprising: responding to receiving a target notification, calling a target interface to obtain target data moved to a target storage area, wherein the target storage area is a pre-allocated storage area on a double-rate synchronous dynamic random access memory of a target accelerator card, the target notification is used to indicate that the target data has been placed in the target storage area, the target accelerator card is a high-speed serial computer extended bus standard accelerator card, and the target interface is used to implement communication between the protocol stack of a transmission control protocol or an Internet Protocol and the target accelerator card; calling the target interface to parse the target data, and submitting the parsing result to the protocol stack.

[0006] Thirdly, embodiments of this disclosure provide a communication system, including: a data transmitting device, configured to, in response to determining the existence of data to be transmitted, call a target interface to move the data to be transmitted to a target storage area, and send a target notification to a data receiving device, wherein the target storage area is a pre-allocated storage area on the double-rate synchronous dynamic random access memory of a target accelerator card, the target accelerator card is a high-speed serial computer extended bus standard accelerator card, the data to be transmitted is data sent by a target application to a protocol stack of a transmission control protocol or an Internet Protocol by calling a socket interface function, the target interface is used to realize communication between the protocol stack and the target accelerator card, and the target notification is used to indicate that the data to be transmitted has been placed in the target storage area; and a data receiving device, configured to, in response to receiving the target notification, call the target interface to obtain the data to be transmitted moved to the target storage area, parse the data to be transmitted, and submit the parsing result to the protocol stack.

[0007] Fourthly, embodiments of this disclosure provide a communication device disposed in a data transmitting device, comprising: a moving unit, configured to, in response to determining the existence of data to be transmitted, call a target interface to move the data to be transmitted to a target storage area, wherein the target storage area is a pre-allocated storage area on the double-rate synchronous dynamic random access memory of a target accelerator card, the target accelerator card is a high-speed serial computer extended bus standard accelerator card, the data to be transmitted is data sent to the protocol stack of a transmission control protocol or Internet Protocol by a target application calling a socket interface function, and the target interface is used to realize communication between the protocol stack and the target accelerator card; and a sending unit, configured to call the target interface to send a notification to a data receiving device, wherein the notification is used to indicate that the data to be transmitted has been placed in the target storage area.

[0008] Fifthly, embodiments of this disclosure provide a communication device disposed in a data receiving device, comprising: an acquisition unit, configured to, in response to receiving a target notification, invoke a target interface to acquire target data moved to a target storage area, wherein the target storage area is a pre-allocated storage area on a double-rate synchronous dynamic random access memory of a target accelerator card, the target notification is used to indicate that the target data has been placed in the target storage area, the target accelerator card is a high-speed serial computer extended bus standard accelerator card, and the target interface is used to implement communication between a protocol stack of a transmission control protocol or an Internet Protocol and the target accelerator card; and a submission unit, configured to invoke the target interface to parse the target data and submit the parsing result to the protocol stack.

[0009] In a sixth aspect, embodiments of this disclosure provide an electronic device, including: at least one processor; and a storage device for storing at least one program, wherein when the at least one program is executed by the at least one processor, the at least one processor implements the communication method as described in the first or second aspect.

[0010] In a seventh aspect, embodiments of this disclosure provide a computer-readable medium having a computer program stored thereon that, when executed by a processor, implements the steps of the communication method as described in the first or second aspect.

[0011] The communication method, system, apparatus, and electronic device provided in this disclosure, in response to determining the existence of data to be transmitted, call a target interface to move the data to be transmitted to a pre-allocated storage area on the Double Rate Synchronous Dynamic Random Access Memory (DRAM) of the target accelerator card. Then, call the target interface to send a notification to the data receiving device indicating that the data to be transmitted has been placed in the target storage area. In this way, a PCIe-based IP network device can be implemented on the PCIe accelerator card, and a PCIe-based gateway device can be implemented on the host. Ultimately, the host and all PCIe accelerator cards form an IP network, enabling communication between the host and the PCIe accelerator cards. Attached Figure Description

[0012] The above and other features, advantages, and aspects of the embodiments of this disclosure will become more apparent when taken in conjunction with the accompanying drawings and the following detailed description. Throughout the drawings, the same or similar reference numerals denote the same or similar elements. It should be understood that the drawings are schematic, and the originals and elements are not necessarily drawn to scale.

[0013] Figure 1 These are exemplary system architecture diagrams to which the various embodiments of this disclosure can be applied;

[0014] Figure 2 This is a flowchart of one embodiment of the communication method according to the present disclosure;

[0015] Figure 3 This is a schematic diagram illustrating the interaction between the host and the PCIe accelerator card in the communication method according to this disclosure;

[0016] Figure 4 This is a flowchart of yet another embodiment of the communication method according to the present disclosure;

[0017] Figure 5 This is a timing diagram of one embodiment of the communication system according to the present disclosure;

[0018] Figure 6 This is a schematic diagram of a communication flow of a communication system according to this disclosure;

[0019] Figure 7 This is a timing diagram of another embodiment of the communication system according to the present disclosure;

[0020] Figure 8 This is a timing diagram of yet another embodiment of the communication system according to the present disclosure;

[0021] Figure 9 This is a timing diagram of another embodiment of the communication system according to the present disclosure;

[0022] Figure 10 This is a schematic diagram of the structure of a communication device according to an embodiment of the present disclosure;

[0023] Figure 11 This is a schematic diagram of the structure of another embodiment of the communication device according to the present disclosure;

[0024] Figure 12 This is a schematic diagram of the structure of a computer system suitable for implementing the electronic device of the present disclosure. Detailed Implementation

[0025] Embodiments of this disclosure will now be described in more detail with reference to the accompanying drawings. While some embodiments of this disclosure are shown in the drawings, it should be understood that this disclosure can be implemented in various forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided to provide a more thorough and complete understanding of this disclosure. It should be understood that the accompanying drawings and embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of protection of this disclosure.

[0026] It should be understood that the steps described in the method embodiments of this disclosure may be performed in different orders and / or in parallel. Furthermore, the method embodiments may include additional steps and / or omit the steps shown. The scope of this disclosure is not limited in this respect.

[0027] The term "comprising" and its variations as used herein are open-ended inclusions, meaning "including but not limited to". The term "based on" means "at least partially based on". The term "one embodiment" means "at least one embodiment"; the term "another embodiment" means "at least one additional embodiment"; the term "some embodiments" means "at least some embodiments". Definitions of other terms will be given in the description below.

[0028] It should be noted that the concepts of "first" and "second" mentioned in this disclosure are used only to distinguish different devices, modules or units, and are not used to limit the order of functions performed by these devices, modules or units or their interdependencies.

[0029] It should be noted that the terms "a" and "a plurality of" used in this disclosure are illustrative rather than restrictive, and those skilled in the art should understand that, unless otherwise expressly indicated in the context, they should be understood as "one or more".

[0030] The names of messages or information exchanged between multiple devices in the embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of such messages or information.

[0031] Figure 1 An exemplary system architecture 100 is shown, in which embodiments of the communication methods disclosed herein can be applied.

[0032] like Figure 1 As shown, system architecture 100 may include a data transmitting device 101 and a data receiving device 102. Communication between the data transmitting device 101 and the data receiving device 102 is typically achieved via a high-speed serial computer expansion bus.

[0033] The data transmitting device 101 can interact with the data receiving device 102 to send or receive messages, for example, the data transmitting device 101 can send a notification to the data receiving device 102.

[0034] The data transmission device 101 can be either hardware or software. When the data transmission device 101 is hardware, it can be a host or a PCIe accelerator card installed on a host. The host can be, but is not limited to, smartphones, tablets, and laptops. When the data transmission device 101 is software, it can be installed in a host or a PCIe accelerator card. It can be implemented as multiple software programs or software modules (e.g., multiple software programs or software modules used to provide distributed services) or as a single software program or software module. No specific limitations are made here.

[0035] In response to determining that there is data to be transmitted, the data transmitting device 101 may call the target interface used to implement communication between the protocol stack and the target accelerator card to move the data to be transmitted to a pre-allocated storage area on the PCIe accelerator card's Double Rate Synchronous Dynamic Random Access Memory; then, it may call the target interface to send a notification to the data receiving device 102 indicating that the data to be transmitted has been placed in the target storage area.

[0036] In response to receiving a target notification sent by the data sending device 101, the data receiving device 102 can call the target interface used to implement communication between the protocol stack and the target accelerator card to obtain the target data in the pre-allocated storage area on the double rate synchronous dynamic random access memory moved to the PCIe accelerator card; then, it can call the target interface to parse the target data and submit the parsing result to the protocol stack of the transmission control protocol or the Internet Protocol.

[0037] It should be noted that the data receiving device 102 can be either hardware or software. When the data receiving device 102 is hardware, it can be a host or a PCIe accelerator card installed on a host. The host can include, but is not limited to, servers, smartphones, tablets, and laptops. When the data receiving device 102 is software, it can be installed in a host or a PCIe accelerator card. It can be implemented as multiple software programs or software modules (e.g., multiple software programs or software modules used to provide distributed services) or as a single software program or software module. No specific limitations are made here.

[0038] It should also be noted that the communication method provided in this embodiment can be executed by the data transmitting device 101, and the communication device can be disposed in the data transmitting device 101. The communication method provided in this embodiment can also be executed by the data receiving device 102, and the communication device can also be disposed in the data receiving device 102.

[0039] Here, if the data sending device 101 is the host, then the data receiving device 102 is typically a PCIe accelerator card.

[0040] It should also be noted that if the data sending device 101 is a PCIe accelerator card and the data receiving device 102 is the host, then the system architecture 100 may also include a data receiving accelerator card 103. The data receiving accelerator card 103 is usually also located on the host.

[0041] It should be understood that Figure 1 The number of data transmitting devices, data receiving devices, and data receiving acceleration cards shown is merely illustrative. Depending on implementation needs, any number of data transmitting devices, data receiving devices, and data receiving acceleration cards can be included.

[0042] Continue to refer to Figure 2 The diagram illustrates a flow 200 of an embodiment of a communication method according to the present disclosure. This communication method, typically applied to data transmitting devices, includes the following steps:

[0043] Step 201: In response to the determination that there is data to be sent, the target interface is called to move the data to be sent to the target storage area.

[0044] In this embodiment, the execution subject of the communication method (e.g. Figure 1The data sending device shown can determine whether there is data to be sent. This data is typically sent by the target application to the Transmission Control Protocol / Internet Protocol (TCP / IP) stack via socket interface functions. The target application can be the application currently being used by the user. When the user uses the target application, the application calls the socket interface functions to send data to the protocol stack. A socket is an intermediate software abstraction layer for communication between the application layer and the TCP / IP protocol suite; it is a set of interfaces. In design patterns, a socket is essentially a facade pattern, hiding the complex TCP / IP protocol suite behind the socket interface. For the user, a simple set of interfaces is all that's needed; the socket handles the data organization to conform to the specified protocol.

[0045] If data to be sent is determined to exist, the aforementioned execution entity can call the target interface to move the data to the target storage area. This target storage area is typically a pre-allocated storage area on the target accelerator card's Double Data Rate (DDR) synchronous dynamic random access memory. The target accelerator card is typically a high-speed serial computer expansion bus standard accelerator card. PCIe accelerator cards are generally used for hardware acceleration of specific processing flows, improving system processing capabilities. Here, the DDR in the PCIe accelerator card is used to store running code and data. DDR can also be called DDR SDRAM (Synchronous Dynamic Random-Access Memory), and is a type of memory. SDRAM transmits data once per clock cycle, while DDR transmits data twice per clock cycle, once on the rising edge and once on the falling edge, meaning it can transmit 2 bits of data per clock cycle. Therefore, DDR's data transfer rate is twice the clock frequency.

[0046] Here, the target interface described above is used to implement communication between the protocol stack and the target accelerator card. This target interface can also be called a PCIe-based network device transmit interface, used to store network data from the protocol stack into the PCIe accelerator card. Initially, the target interface needs to be registered with the TCP / IP protocol stack as a standard network device transmit interface; the underlying layer calls this interface to complete data transmission and reception.

[0047] Step 202: Call the target interface to send a notification to the data receiving device.

[0048] In this embodiment, the execution entity can call the target interface to send a notification to the data receiving device. The notification can be used to indicate that the data to be sent has been placed in the target storage area.

[0049] After receiving the notification, the data receiving device can acquire the target data that has been moved to the target storage area. Then, it can call the target interface to parse the target data and submit the parsing result to the TCP / IP protocol stack. The TCP / IP protocol stack sends the parsing result to the target application through the Socket interface function.

[0050] Here, PCIe accelerator cards typically use virtual MAC addresses, which contain the corresponding PCIe accelerator card's ID information, facilitating quick identification of the specific PCIe accelerator card used when sending data. Furthermore, PCIe accelerator cards can act as gateways for the host, enabling communication with external network devices.

[0051] The method provided in the above embodiments of this disclosure, in response to determining the existence of data to be transmitted, calls a target interface to move the data to be transmitted to a pre-allocated storage area on the Double Rate Synchronous Dynamic Random Access Memory (DRAM) of the target accelerator card. Then, it calls the target interface to send a notification to the data receiving device indicating that the data to be transmitted has been placed in the target storage area. In this way, a PCIe-based IP network device can be implemented on the PCIe accelerator card, and a PCIe-based gateway device can be implemented on the host. Ultimately, the host and all PCIe accelerator cards form an IP network, enabling communication between the host and the PCIe accelerator cards. This allows for efficient PCIe card operation and maintenance management, firmware upgrades, software debugging, and other functions.

[0052] In some alternative implementations, the data sending device is typically the host, the target accelerator card is typically mounted on the host, and the data receiving device is typically the target accelerator card. This enables communication between the host and the PCIe accelerator card mounted on the host, specifically, it enables the host to transfer data to the PCIe accelerator card. The executing entity can move the data to be sent to the target memory area by calling the target interface as follows: The executing entity (host) can call the target interface to move the data to be sent to the target memory area using Direct Memory Access (DMA). DMA allows hardware devices of different speeds to communicate without relying on a large interrupt load on the CPU (Central Processing Unit). Otherwise, the CPU needs to copy each piece of data from the source to a temporary register and then write them back to the new location. During this time, the CPU is unavailable for other tasks.

[0053] In some alternative implementations, the data sending device is usually the target accelerator card, the data receiving device is usually the host, and the target accelerator card is usually set on the host, that is, to realize communication between the host and the PCIe accelerator card set on the host, specifically, to realize the function of the PCIe accelerator card to transmit data to the host.

[0054] In some alternative implementations, the data sending device is typically the target accelerator card, the data receiving device is typically the host, the host typically contains the target accelerator card and other target accelerator cards, and the target storage area is typically the storage area within the target accelerator card. This enables communication between the host and multiple PCIe accelerator cards located on the host. Specifically, it enables the PCIe accelerator cards to transmit data to the host, and the host to transmit the data to other PCIe accelerator cards.

[0055] In some alternative implementations, before calling the target interface to move the data to be sent to the target storage area, the execution entity can call the target interface to obtain a buffer descriptor (BD) from the target accelerator card. The buffer descriptor can be used to describe the state and address of the memory in Double Rate Synchronous Dynamic Random Access Memory (DDR). The memory state typically includes an idle state and an occupied state. Then, the execution entity can call the target interface to use the buffer descriptor to determine the target storage area. Specifically, the execution entity can use the buffer descriptor to determine the address of the memory in an idle state, thereby using the idle memory as the target storage area to move the data to be sent to the idle memory.

[0056] See also Figure 3 , Figure 3 This is a schematic diagram illustrating the interaction between the host and the PCIe accelerator card in the communication method according to this embodiment. Figure 3 In a PCIe accelerator card, there is a base address register storage space (Bar mem) and double data rate synchronous dynamic random access memory (DDR). A storage area (Buf) for data frames is pre-allocated on the DDR. The base address register storage space (Bar mem) includes multiple buffer descriptors (BDs) used to describe the physical address and state of the corresponding memory. The host can access the base address register storage space (Bar mem) via PCIe base address register access (Bar access) to obtain the physical address of idle memory from the buffer descriptors, thus enabling data movement in idle memory via PCIe direct memory access (DMA).

[0057] Further reference Figure 4 This illustrates a flow 400 of another embodiment of the communication method. This communication method is typically applied to data receiving devices, and flow 400 includes the following steps:

[0058] Step 401: In response to receiving the target notification, call the target interface to obtain the target data that has been moved to the target storage area.

[0059] In this embodiment, the execution subject of the communication method (e.g. Figure 1The data receiving device shown can determine whether a target notification has been received. This target notification can be used to indicate that the target data has been placed in the target storage area. This target storage area is typically a pre-allocated storage area on the target accelerator card's Double Data Rate Synchronous Dynamic Random Access Memory (DRAM). The target accelerator card is typically a high-speed serial computer expansion bus standard accelerator card. PCIe accelerator cards are generally used for hardware acceleration of specific processing flows, improving system processing capabilities. Here, the DDR in the PCIe accelerator card is used to store running code and data. DDR, also known as DDR SDRAM, is a type of memory. SDRAM transmits data once per clock cycle, while DDR transmits data twice per clock cycle, once on the rising edge and once on the falling edge, meaning it can transmit 2 bits of data per clock cycle. Therefore, DDR's data transfer rate is twice the clock frequency.

[0060] If the aforementioned target notification is received, the executing entity can call the target interface to retrieve the target data that has been moved to the target storage area. This target data is typically the data that the data sending device moves to the target storage area after determining that data to be sent exists.

[0061] The aforementioned target interface is used to enable communication between the Transmission Control Protocol (TCP) or Internet Protocol (IP) stack and the target accelerator card. This target interface can also be referred to as a PCIe-based network device transmit interface, used to store network data from the aforementioned protocol stack into the PCIe accelerator card. Initially, this target interface needs to be registered with the TCP / IP protocol stack as a standard network device transmit interface; the underlying layer calls this interface to complete data transmission and reception.

[0062] Step 402: Call the target interface to parse the target data and submit the parsing result to the protocol stack.

[0063] In this embodiment, the execution entity can call the target interface to parse the target data and submit the parsing result to the TCP / IP protocol stack. The TCP / IP protocol stack can send the parsing result to the target application through the Socket interface function. The target application can be the application currently being operated by the user. A Socket is an intermediate software abstraction layer for communication between the application layer and the TCP / IP protocol suite; it is a set of interfaces. In design patterns, a Socket is essentially a facade pattern, hiding the complex TCP / IP protocol suite behind the Socket interface. For the user, a simple set of interfaces is all that's needed; the Socket handles the data organization to conform to the specified protocol.

[0064] The method provided in the above embodiments of this disclosure, in response to receiving a notification indicating that data to be transmitted has been placed in a pre-allocated storage area on the Double Rate Synchronous Dynamic Random Access Memory (DRAM) of the PCIe accelerator card, calls a target interface to retrieve the data to be transmitted that has been moved to the pre-allocated storage area of ​​the PCIe accelerator card; then, it calls the target interface to parse the target data and submits the parsing result to the TCP / IP protocol stack. In this way, a PCIe-based IP network device can be implemented on the PCIe accelerator card, and a PCIe-based gateway device can be implemented on the host. Ultimately, the host and all PCIe accelerator cards form an IP network, enabling communication between the host and the PCIe accelerator cards. This allows for efficient PCIe card operation and maintenance management, firmware upgrades, software debugging, and other functions.

[0065] In some alternative implementations, the data receiving device is typically the target accelerator card, which is usually located on the host. In this case, the target notification is sent by the host, which enables communication between the host and the PCIe accelerator card located on the host. Specifically, it enables the host to transmit data to the PCIe accelerator card.

[0066] In some alternative implementations, the data receiving device is typically a host, the target accelerator card is usually mounted on the host, and the target notification is sent by the target accelerator card. This enables communication between the host and the PCIe accelerator card mounted on the host, specifically, it enables the PCIe accelerator card to transmit data to the host. The executing entity can retrieve the target data moved to the target storage area by calling the target interface as follows: the executing entity (host) can call the target interface to move the target data from the target storage area to the host's memory using direct memory access, and then retrieve the data moved to the memory.

[0067] In some optional implementations, after calling the target interface to parse the target data and submitting the parsing result to the protocol stack, the upper-layer protocol stack can determine whether the destination address of the target data is the address of the host. If it is determined that the destination address of the target data is not the address of the host, the target accelerator card corresponding to the destination address can be found as the data receiving accelerator card. Here, the data receiving accelerator card is usually set in the host. The execution entity (i.e., the host) can be equipped with multiple PCIe accelerator cards, including other accelerator cards besides the target accelerator card. Then, the execution entity can call the target interface to move the target data from the host's memory to the target storage area of ​​the data receiving accelerator card using direct memory access. Afterward, the execution entity can send a second notification to the data receiving accelerator card, which can be used to indicate that the target data has been placed in the target storage area of ​​the data receiving accelerator card.

[0068] In some optional implementations, before calling the target interface to move the target data from the memory to the target storage area of ​​the data receiving accelerator card using direct memory access, the execution entity can call the target interface to obtain a buffer descriptor from the data receiving accelerator card. This buffer descriptor can describe the state and address of the memory in the Double Data Rate Synchronous Dynamic Random Access Memory (DDR). Specifically, the buffer descriptor can be obtained from the base address register storage space. Then, the execution entity can use the buffer descriptor to determine the target storage area of ​​the data receiving accelerator card. Specifically, the execution entity can use the buffer descriptor to determine the address of idle memory, thereby using the idle memory as the target storage area of ​​the data receiving accelerator card to move the data to be transmitted into the idle memory.

[0069] Continue to refer to Figure 5 The diagram shows a timing diagram of one embodiment of a communication system according to the present disclosure.

[0070] The communication system of this embodiment includes a data transmitting device and a data receiving device. The data transmitting device, in response to determining the existence of data to be transmitted, calls a target interface to move the data to be transmitted to a target storage area, and sends a target notification to the data receiving device. The target storage area is a pre-allocated storage area on the Double Rate Synchronous Dynamic Random Access Memory (DRAM) of the target accelerator card. The target accelerator card is a high-speed serial computer extended bus standard accelerator card. The data to be transmitted is data sent to the protocol stack of the Transmission Control Protocol (TCP) or Internet Protocol (IP) by the target application calling a socket interface function. The target interface is used to implement communication between the protocol stack and the target accelerator card. The target notification indicates that the data to be transmitted has been placed in the target storage area. The data receiving device, in response to receiving the target notification, calls the target interface to obtain the data to be transmitted moved to the target storage area, parses the data to be transmitted, and submits the parsing result to the protocol stack.

[0071] like Figure 5 As shown, in step 501, in response to determining that there is data to be sent, the data sending device calls the target interface to move the data to be sent to the target storage area.

[0072] In this embodiment, the data sending device can determine whether there is data to be sent. This data is typically data sent to the TCP / IP protocol stack by the target application calling socket interface functions. The target application can be the application currently being used by the user. When the user uses the target application, the target application calls socket interface functions to send data to the protocol stack. A socket is an intermediate software abstraction layer for communication between the application layer and the TCP / IP protocol suite; it is a set of interfaces. In design patterns, a socket is essentially a facade pattern, hiding the complex TCP / IP protocol suite behind the socket interface. For the user, a simple set of interfaces is all that's needed; the socket handles the data organization to conform to the specified protocol.

[0073] If data to be sent is determined to exist, the data sending device can call the target interface to move the data to the target storage area. This target storage area is typically a pre-allocated storage area on the target accelerator card's Double Data Rate Synchronous Dynamic Random Access Memory (DRAM). The target accelerator card is typically a high-speed serial computer expansion bus standard accelerator card. PCIe accelerator cards are generally used for hardware acceleration of specific processing flows, improving system processing capabilities. Here, the DDR in the PCIe accelerator card is used to store running code and data. DDR, also known as DDR SDRAM, is a type of memory. SDRAM transmits data once per clock cycle, while DDR transmits data twice per clock cycle, once on the rising edge and once on the falling edge, meaning it can transmit 2 bits of data per clock cycle. Therefore, DDR's data transfer rate is twice the clock frequency.

[0074] Here, the target interface described above is used to implement communication between the protocol stack and the target accelerator card. This target interface can also be called a PCIe-based network device transmit interface, used to store network data from the protocol stack into the PCIe accelerator card. Initially, the target interface needs to be registered with the TCP / IP protocol stack as a standard network device transmit interface; the underlying layer calls this interface to complete data transmission and reception.

[0075] In step 502, the data sending device calls the target interface to send a target notification to the data receiving device.

[0076] In this embodiment, the data sending device can call the aforementioned target interface to send a notification to the data receiving device. The notification can be used to indicate that the data to be sent has been placed in the aforementioned target storage area.

[0077] In step 503, in response to receiving the target notification, the data receiving device calls the target interface to obtain the data to be sent that has been moved to the target storage area.

[0078] In this embodiment, the data receiving device can determine whether it has received a target notification. If the target notification is received, the data receiving device can call the target interface to obtain the target data that has been moved to the target storage area. This target data is typically the data that the data sending device has moved to the target storage area after determining that data to be sent exists.

[0079] In step 504, the data receiving device calls the target interface to parse the target data and submits the parsing result to the protocol stack of the Transmission Control Protocol or the Internet Protocol.

[0080] In this embodiment, the data receiving device can call the aforementioned target interface to parse the target data and submit the parsing result to the TCP / IP protocol stack. The TCP / IP protocol stack can send the parsing result to the target application through the Socket interface function.

[0081] Here, PCIe accelerator cards typically use virtual MAC addresses, which contain the corresponding PCIe accelerator card's ID information, facilitating quick identification of the specific PCIe accelerator card used when sending data. Furthermore, PCIe accelerator cards can act as gateways for the host, enabling communication with external network devices.

[0082] The system provided in the above embodiments of this disclosure, in response to determining the existence of data to be transmitted, calls the target interface to move the data to be transmitted to a pre-allocated storage area on the Double Rate Synchronous Dynamic Random Access Memory (DRAM) of the target accelerator card. Then, the data transmitting device calls the target interface to send a notification to the data receiving device indicating that the data to be transmitted has been placed in the target storage area. In response to receiving the notification, the data receiving device calls the target interface to retrieve the data to be transmitted moved to the storage area, parses the data, and submits the parsing result to the TCP / IP protocol stack. In this way, a PCIe-based IP network device can be implemented on the PCIe accelerator card, and a PCIe-based gateway device can be implemented on the host. Ultimately, the host and all PCIe accelerator cards form an IP network, enabling communication between the host and the PCIe accelerator cards. This allows for efficient PCIe card operation and maintenance management, firmware upgrades, software debugging, and other functions.

[0083] In some optional implementations, the data transmitting device can call the aforementioned target interface to obtain a first buffer descriptor from the target accelerator card. This first buffer descriptor can be used to describe the state and address of the memory in the Double Data Rate Synchronous Dynamic Random Access Memory (DDR). The memory state typically includes an idle state and an occupied state. Then, the data transmitting device can use the first buffer descriptor to determine the target storage area. Specifically, the data transmitting device can use the first buffer descriptor to determine the address of a memory in an idle state, thereby using the idle memory as the target storage area to move the data to be transmitted into the idle memory.

[0084] Continue to refer to Figure 6 This diagram illustrates a communication flow of a communication system according to the present disclosure. Figure 6In this process, the user uses the target application to call the `socket` function to send network data to the TCP / IP protocol stack. After confirming the existence of network data in the TCP / IP protocol stack, the target interface (based on a PCIe network device) is called to populate the corresponding storage area of ​​the PCIe accelerator card. The data sending device (host or PCIe accelerator card) can send a notification to the data receiving device (PCIe accelerator card or host). After receiving the notification, the data receiving device can call the target interface to retrieve the data moved to the PCIe accelerator card, parse the retrieved data, and submit the parsing result to the TCP / IP protocol stack. The TCP / IP protocol stack can then call the `socket` function to send the parsing result back to the target application.

[0085] Continue to refer to Figure 7 The diagram shows a timing diagram of another embodiment of the communication system according to the present disclosure.

[0086] like Figure 7 As shown, in step 701, in response to determining that there is data to be sent, the host calls the target interface to move the data to be sent to the target storage area using the direct memory access method.

[0087] In this embodiment, the host can determine whether there is data to be sent. This data is typically data sent to the TCP / IP protocol stack by the target application calling socket interface functions. The target application can be the application currently being used by the user. When the user uses the target application, the target application calls socket interface functions to send data to the protocol stack. A socket is an intermediate software abstraction layer for communication between the application layer and the TCP / IP protocol suite; it is a set of interfaces. In design patterns, a socket is essentially a facade pattern, hiding the complex TCP / IP protocol suite behind the socket interface. For the user, a simple set of interfaces is all that's needed; the socket handles the data organization to conform to the specified protocol.

[0088] If data to be sent is determined to exist, the host can call the target interface to move the data to the target storage area using direct memory access. This target storage area is typically a pre-allocated storage area on the target accelerator card's Double Data Rate Synchronous Dynamic Random Access Memory (DRAM). The target accelerator card is usually located on the host. This target accelerator card is typically a high-speed serial computer expansion bus standard accelerator card. PCIe accelerator cards are generally used for hardware acceleration of specific processing flows, improving system processing capabilities. Here, the DDR in the PCIe accelerator card is used to store running code and data. DDR, also known as DDR SDRAM, is a type of memory. SDRAM transmits data once per clock cycle, while DDR transmits data twice per clock cycle, once on the rising edge and once on the falling edge, meaning it can transmit 2 bits of data per clock cycle. Therefore, DDR's data transfer rate is twice the clock frequency.

[0089] Direct memory access (DMI) allows hardware devices of different speeds to communicate without relying on a heavy interrupt load on the CPU (Central Processing Unit). Otherwise, the CPU would need to copy each piece of data from its source to a temporary register and then write it back to the new location. During this time, the CPU would be unavailable for other tasks.

[0090] Here, the target interface described above is used to implement communication between the protocol stack and the target accelerator card. This target interface can also be called a PCIe-based network device transmit interface, used to store network data from the protocol stack into the PCIe accelerator card. Initially, the target interface needs to be registered with the TCP / IP protocol stack as a standard network device transmit interface; the underlying layer calls this interface to complete data transmission and reception.

[0091] In step 702, the host calls the target interface to send a target notification to the target accelerator card.

[0092] In this embodiment, the host can call the target interface to send a notification to the target accelerator card. The notification can be used to indicate that the data to be sent has been placed in the target storage area of ​​the target accelerator card.

[0093] In step 703, in response to receiving the target notification, the target accelerator card calls the target interface to obtain the data to be sent that has been moved to the target storage area.

[0094] In this embodiment, the target accelerator card can determine whether it has received a target notification. If it has received the target notification, the target accelerator card can call the target interface to retrieve the data to be sent that has been moved to the target storage area.

[0095] In step 704, the target accelerator card calls the target interface to parse the data to be sent and submits the parsing result to the protocol stack.

[0096] In this embodiment, the target accelerator card can call the aforementioned target interface to parse the data to be sent and submit the parsing result to the TCP / IP protocol stack. The TCP / IP protocol stack can send the parsing result to the target application through the Socket interface function.

[0097] Here, PCIe accelerator cards typically use virtual MAC addresses, which contain the corresponding PCIe accelerator card's ID information, facilitating quick identification of the specific PCIe accelerator card used when sending data. Furthermore, PCIe accelerator cards can act as gateways for the host, enabling communication with external network devices.

[0098] The system provided by the above embodiments of this disclosure realizes communication between the host and the PCIe accelerator card installed on the host. Specifically, it realizes the function of the host transmitting data to the PCIe accelerator card.

[0099] Further reference Figure 8 The diagram shows a timing diagram of yet another embodiment of the communication system according to the present disclosure.

[0100] like Figure 8 As shown, in step 801, in response to determining that there is data to be sent, the target accelerator card calls the target interface to move the data to be sent to the target storage area.

[0101] In this embodiment, the target accelerator card can determine whether there is data to be sent. This data is typically data sent to the TCP / IP protocol stack by the target application calling socket interface functions. The target application can be the application currently being used by the user. When the user uses the target application, the application calls socket interface functions to send data to the protocol stack. A socket is an intermediate software abstraction layer for communication between the application layer and the TCP / IP protocol suite; it is a set of interfaces. In design patterns, a socket is essentially a facade pattern, hiding the complex TCP / IP protocol suite behind the socket interface. For the user, a simple set of interfaces is all that's needed; the socket handles the data organization to conform to the specified protocol.

[0102] If data to be sent is determined to exist, the target accelerator card can call the target interface to move the data to the target storage area. This target storage area is typically a pre-allocated storage area on the target accelerator card's Double Data Rate Synchronous Dynamic Random Access Memory (DRAM). The target accelerator card is typically a high-speed serial computer expansion bus standard accelerator card. PCIe accelerator cards are generally used for hardware acceleration of specific processing flows, improving system processing capabilities. Here, the DDR in the PCIe accelerator card is used to store running code and data. DDR, also known as DDR SDRAM, is a type of memory. SDRAM transmits data once per clock cycle, while DDR transmits data twice per clock cycle, once on the rising edge and once on the falling edge, meaning it can transmit 2 bits of data per clock cycle. Therefore, DDR's data transfer rate is twice the clock frequency.

[0103] Here, the target interface described above is used to implement communication between the protocol stack and the target accelerator card. This target interface can also be called a PCIe-based network device transmit interface, used to store network data from the protocol stack into the PCIe accelerator card. Initially, the target interface needs to be registered with the TCP / IP protocol stack as a standard network device transmit interface; the underlying layer calls this interface to complete data transmission and reception.

[0104] In step 802, the target accelerator card calls the target interface to send a target notification to the host.

[0105] In this embodiment, the target accelerator card can call the target interface to send a notification to the host. The notification can be used to indicate that the data to be sent has been placed in the target storage area.

[0106] In step 803, in response to receiving the target notification, the host calls the target interface to retrieve the data to be sent that has been moved to the target storage area.

[0107] In this embodiment, the host can determine whether it has received a target notification. If the target notification is received, the host can call the target interface to retrieve the data to be sent that has been moved to the target storage area.

[0108] In step 804, the host calls the target interface to parse the data to be sent and submits the parsing result to the protocol stack.

[0109] In this embodiment, the host can call the target interface to parse the data to be sent and submit the parsing result to the TCP / IP protocol stack. The TCP / IP protocol stack can send the parsing result to the target application through the Socket interface function.

[0110] Here, PCIe accelerator cards typically use virtual MAC addresses, which contain the corresponding PCIe accelerator card's ID information, facilitating quick identification of the specific PCIe accelerator card used when sending data. Furthermore, PCIe accelerator cards can act as gateways for the host, enabling communication with external network devices.

[0111] The system provided by the above embodiments of this disclosure realizes communication between the host and the PCIe accelerator card installed on the host. Specifically, it realizes the function of the PCIe accelerator card transmitting data to the host.

[0112] Continue to refer to Figure 9 The diagram shows a timing diagram of yet another embodiment of the communication system according to the present disclosure.

[0113] like Figure 9 As shown, in step 901, in response to determining that there is data to be sent, the target accelerator card calls the target interface to move the data to be sent to the target storage area.

[0114] In this embodiment, the target accelerator card can determine whether there is data to be sent. This data is typically data sent to the TCP / IP protocol stack by the target application calling socket interface functions. The target application can be the application currently being used by the user. When the user uses the target application, the application calls socket interface functions to send data to the protocol stack. A socket is an intermediate software abstraction layer for communication between the application layer and the TCP / IP protocol suite; it is a set of interfaces. In design patterns, a socket is essentially a facade pattern, hiding the complex TCP / IP protocol suite behind the socket interface. For the user, a simple set of interfaces is all that's needed; the socket handles the data organization to conform to the specified protocol.

[0115] If data to be sent is determined to exist, the target accelerator card can call the target interface to move the data to the target storage area. This target storage area is typically a pre-allocated storage area on the target accelerator card's Double Data Rate Synchronous Dynamic Random Access Memory (DRAM). The target accelerator card is typically a high-speed serial computer expansion bus standard accelerator card. PCIe accelerator cards are generally used for hardware acceleration of specific processing flows, improving system processing capabilities. Here, the DDR in the PCIe accelerator card is used to store running code and data. DDR, also known as DDR SDRAM, is a type of memory. SDRAM transmits data once per clock cycle, while DDR transmits data twice per clock cycle, once on the rising edge and once on the falling edge, meaning it can transmit 2 bits of data per clock cycle. Therefore, DDR's data transfer rate is twice the clock frequency.

[0116] Here, the target interface described above is used to implement communication between the protocol stack and the target accelerator card. This target interface can also be called a PCIe-based network device transmit interface, used to store network data from the protocol stack into the PCIe accelerator card. Initially, the target interface needs to be registered with the TCP / IP protocol stack as a standard network device transmit interface; the underlying layer calls this interface to complete data transmission and reception.

[0117] In step 902, the target accelerator card calls the target interface to send a target notification to the host.

[0118] In this embodiment, the target accelerator card can call the aforementioned target interface to send a target notification to the host. The target notification can be used to indicate that the data to be sent has been placed in the target storage area of ​​the target accelerator card.

[0119] In step 903, in response to receiving the target notification, the host calls the target interface to move the data to be sent from the target storage area into memory using the direct memory access method, and retrieves the data moved into memory.

[0120] In this embodiment, the host can determine whether it has received a target notification. If the target notification is received, the host can call the target interface to move the target data from the target storage area of ​​the target accelerator card to the host's memory using direct memory access. After that, the host can retrieve the data that has been moved to the memory.

[0121] In step 904, the host parses the data moved into memory and submits the parsing result to the protocol stack.

[0122] In this embodiment, the host calls the aforementioned target interface to parse the data moved into memory and submits the parsing result to the TCP / IP protocol stack.

[0123] In step 905, the host responds by using the protocol stack to parse that the destination address of the data to be sent is not the host's address, and then searches for the target acceleration card corresponding to the destination address as the data receiving acceleration card.

[0124] In this embodiment, the host can use the TCP / IP protocol stack to parse the destination address of the data moved into memory (i.e., the data to be sent) and determine whether the destination address of the data moved into memory is the address of the host.

[0125] If it is determined that the destination address of the data moved into memory is not the address of the host, the host will locate the target accelerator card corresponding to the destination address as the data receiving accelerator card. Here, the data receiving accelerator card is typically located within the host, which can have multiple PCIe accelerator cards, including other accelerator cards besides the target one.

[0126] In step 906, the host calls the target interface to move the data to be sent from memory to the target storage area of ​​the data receiving acceleration card using the direct memory access method.

[0127] In this embodiment, the host can call the target interface to move the data to be sent from the host's memory to the target storage area of ​​the data receiving acceleration card using the direct memory access method.

[0128] In step 907, the host calls the target interface to send a second notification to the data receiving acceleration card.

[0129] In this embodiment, the host can call the target interface to send a second notification to the data receiving acceleration card. The second notification can be used to indicate that the data to be sent has been placed in the target storage area of ​​the data receiving acceleration card.

[0130] In step 908, in response to receiving the second notification, the data receiving acceleration card calls the corresponding interface to obtain the data to be sent that has been moved to the target storage area of ​​the data receiving acceleration card.

[0131] In this embodiment, the data receiving acceleration card can determine whether it has received a second notification. If a second notification is received, the data receiving acceleration card can call its corresponding interface to retrieve the data to be sent that has been moved to the target storage area of ​​the data receiving acceleration card.

[0132] It should be noted that each PCIe accelerator card has a corresponding interface (also known as a PCIe-based network device) used to enable communication between the TCP / IP protocol stack and the PCIe accelerator card.

[0133] In step 909, the data receiving acceleration card calls the corresponding interface to parse the data to be sent and submits the parsing result to the protocol stack.

[0134] In this embodiment, the data receiving acceleration card can call the corresponding interface to parse the data to be sent and submit the parsing result to the TCP / IP protocol stack. The TCP / IP protocol stack can send the parsing result to the target application through the Socket interface function.

[0135] The system provided by the above embodiments of this disclosure realizes communication between the host and multiple PCIe accelerator cards disposed on the host. Specifically, it realizes the function of the PCIe accelerator cards transmitting data to the host, and the host transmitting the data to other PCIe accelerator cards.

[0136] In some optional implementations, the host can call the aforementioned target interface to obtain a second buffer descriptor from the data receiving acceleration card. This second buffer descriptor can be used to describe the state and address of the memory in the Double Data Rate Synchronous Dynamic Random Access Memory (DDR). Specifically, the host can call the aforementioned target interface to obtain the second buffer descriptor from the base address register storage space. Then, the host can use the second buffer descriptor to determine the target storage area of ​​the data receiving acceleration card. Specifically, the host can use the second buffer descriptor to determine the address of idle memory, thereby using the idle memory as the target storage area of ​​the data receiving acceleration card, so that the data to be transmitted can be moved to the idle memory.

[0137] Further reference Figure 10 As an implementation of the methods shown in the above figures, this application provides an embodiment of a communication device, which is similar to... Figure 2 Corresponding to the method embodiments shown, this device can be specifically applied to various data transmission devices.

[0138] like Figure 10 As shown, the communication device 1000 of this embodiment includes a moving unit 1001 and a transmitting unit 1002. The moving unit 1001, in response to determining the existence of data to be transmitted, calls a target interface to move the data to be transmitted to a target storage area. The target storage area is a pre-allocated storage area on the double-rate synchronous dynamic random access memory of a target accelerator card. The target accelerator card is a high-speed serial computer extended bus standard accelerator card. The data to be transmitted is data sent to the protocol stack of the Transmission Control Protocol or the Internet Protocol by a target application calling a socket interface function. The target interface is used to implement communication between the protocol stack and the target accelerator card. The transmitting unit 1002 calls the target interface to send a notification to a data receiving device, wherein the notification indicates that the data to be transmitted has been placed in the target storage area.

[0139] In this embodiment, the specific processing of the moving unit 1001 and the transmitting unit 1002 of the communication device 1000 can be referred to Figure 2 The corresponding steps 201 and 202 in the embodiment.

[0140] In some alternative implementations, the data sending device is a host, the target accelerator card is set on the host, the data receiving device is the target accelerator card; and the moving unit 1001 is used to move the data to be sent to the target storage area by calling the target interface in the following manner: calling the target interface to move the data to be sent to the target storage area using the direct memory access method.

[0141] In some alternative implementations, the data sending device is the target accelerator card, the data receiving device is the host, and the target accelerator card is set on the host.

[0142] In some optional implementations, the data sending device is the target accelerator card, the data receiving device is the host, the host is equipped with the target accelerator card and other target accelerator cards besides the target accelerator card, and the target storage area is the storage area in the target accelerator card.

[0143] In some optional implementations, the communication device 1000 further includes a determining unit (not shown in the figure). The determining unit is used to call the target interface to obtain a buffer descriptor from the target accelerator card, and use the buffer descriptor to determine the target storage area, wherein the buffer descriptor is used to describe the state of the memory and the address of the memory in the double-rate synchronous dynamic random access memory.

[0144] Further reference Figure 11 As an implementation of the methods shown in the above figures, this application provides another embodiment of a communication device, which is similar to... Figure 3 Corresponding to the method embodiments shown, this device can be specifically applied to various data receiving devices.

[0145] like Figure 11 As shown, the communication device 1100 of this embodiment includes an acquisition unit 1101 and a submission unit 1102. The acquisition unit 1101 is used to, in response to receiving a target notification, call a target interface to acquire target data moved to a target storage area. The target storage area is a pre-allocated storage area on the double-rate synchronous dynamic random access memory of the target accelerator card. The target notification indicates that the target data has been placed in the target storage area. The target accelerator card is a high-speed serial computer extended bus standard accelerator card. The target interface is used to implement communication between the protocol stack of the Transmission Control Protocol or the Internet Protocol and the target accelerator card. The submission unit 1102 is used to call the target interface to parse the target data and submit the parsing result to the protocol stack.

[0146] In this embodiment, the specific processing of the acquisition unit 1101 and the submission unit 1102 of the communication device 1100 can be referred to Figure 3 The corresponding steps 301 and 302 in the embodiment.

[0147] In some alternative implementations, the data receiving device is the target accelerator card, which is set on the host, and the target notification is sent by the host.

[0148] In some optional implementations, the data receiving device is a host, the target accelerator card is set on the host, and the target notification is sent by the target accelerator card; and the acquisition unit 1101 is further used to acquire the target data moved to the target storage area by calling the target interface in the following manner: calling the target interface to move the target data from the target storage area to memory using the direct memory access method, and acquiring the data moved to memory.

[0149] In some optional implementations, the communication device 1100 further includes: a lookup unit (not shown in the figure), a moving unit (not shown in the figure), and a sending unit (not shown in the figure). The lookup unit is used to look up the target accelerator card corresponding to the destination address as a data receiving accelerator card in response to determining using the protocol stack that the destination address of the target data is not the address of the host, wherein the data receiving accelerator card is disposed in the host; the moving unit is used to call the target interface to move the target data from memory to the target storage area of ​​the data receiving accelerator card using direct memory access; the sending unit is used to send a second notification to the data receiving accelerator card, wherein the second notification is used to indicate that the target data has been placed in the target storage area of ​​the data receiving accelerator card.

[0150] In some optional implementations, the communication device 1100 further includes a determination unit (not shown in the figure). The determination unit is used to call the target interface to obtain a buffer descriptor from the data receiving acceleration card, and use the buffer descriptor to determine the target storage area of ​​the data receiving acceleration card, wherein the buffer descriptor is used to describe the state and address of the memory in the double rate synchronous dynamic random access memory.

[0151] The following is for reference. Figure 12 It illustrates an electronic device suitable for implementing embodiments of the present disclosure (e.g., Figure 1 A schematic diagram of the structure of the data transmission device or data receiving device (1200). Figure 12 The electronic device shown is merely an example and should not be construed as limiting the functionality and scope of the embodiments of this disclosure.

[0152] like Figure 12As shown, the electronic device 1200 may include a processing unit (e.g., a central processing unit, a graphics processor, etc.) 1201, which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 1202 or a program loaded from a storage device 1208 into a random access memory (RAM) 1203. The RAM 1203 also stores various programs and data required for the operation of the electronic device 1200. The processing unit 1201, ROM 1202, and RAM 1203 are interconnected via a bus 1204. An input / output (I / O) interface 1205 is also connected to the bus 1204.

[0153] Typically, the following devices can be connected to I / O interface 1205: input devices 1206 including, for example, a touchscreen, touchpad, keyboard, mouse, camera, microphone, accelerometer, gyroscope, etc.; output devices 1207 including, for example, a liquid crystal display (LCD), speaker, vibrator, etc.; storage devices 1208 including, for example, magnetic tape, hard disk, etc.; and communication devices 1209. Communication device 1209 allows electronic device 1200 to communicate wirelessly or wiredly with other devices to exchange data. Although Figure 12 An electronic device 1200 with various devices is shown; however, it should be understood that it is not required to implement or possess all of the devices shown. More or fewer devices may be implemented or possessed alternatively. Figure 12 Each box shown can represent a device or multiple devices as needed.

[0154] Specifically, according to embodiments of this disclosure, the processes described above with reference to the flowcharts can be implemented as computer software programs. For example, embodiments of this disclosure include a computer program product comprising a computer program carried on a computer-readable medium, the computer program containing program code for performing the methods shown in the flowcharts. In such embodiments, the computer program can be downloaded and installed from a network via a communication device 1209, or installed from a storage device 1208, or installed from a ROM 1202. When the computer program is executed by a processing device 1201, it performs the functions defined in the methods of embodiments of this disclosure. It should be noted that the computer-readable medium described in embodiments of this disclosure can be a computer-readable signal medium or a computer-readable storage medium, or any combination of the two. A computer-readable storage medium can be, for example,—but not limited to—an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples of computer-readable storage media may include, but are not limited to: electrical connections having one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof. In embodiments of this disclosure, a computer-readable storage medium may be any tangible medium containing or storing a program that can be used by or in connection with an instruction execution system, apparatus, or device. In embodiments of this disclosure, a computer-readable signal medium may include a data signal propagated in baseband or as part of a carrier wave, carrying computer-readable program code. Such propagated data signals may take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. A computer-readable signal medium may also be any computer-readable medium other than a computer-readable storage medium, which can send, propagate, or transmit a program for use by or in connection with an instruction execution system, apparatus, or device. Program code contained on a computer-readable medium may be transmitted using any suitable medium, including but not limited to: wires, optical fibers, RF (radio frequency), etc., or any suitable combination thereof.

[0155] The aforementioned computer-readable medium may be included in the aforementioned data transmitting device; or it may exist independently and not assembled into the data transmitting device. The aforementioned computer-readable medium carries one or more programs that, when executed by the data transmitting device, cause the data transmitting device to: in response to determining the existence of data to be transmitted, call a target interface to move the data to be transmitted to a target storage area, wherein the target storage area is a pre-allocated storage area on the double-rate synchronous dynamic random access memory of the target accelerator card, the target accelerator card is a high-speed serial computer extended bus standard accelerator card, the data to be transmitted is data sent to the protocol stack of the Transmission Control Protocol or Internet Protocol by the target application calling a socket interface function, and the target interface is used to implement communication between the protocol stack and the target accelerator card; and call the target interface to send a notification to the data receiving device, wherein the notification indicates that the data to be transmitted has been placed in the target storage area.

[0156] The aforementioned computer-readable medium may be included in the aforementioned data receiving device; or it may exist independently and not assembled into the data receiving device. The aforementioned computer-readable medium carries one or more programs that, when executed by the data receiving device, cause the data receiving device to: in response to receiving a target notification, invoke a target interface to obtain target data moved to a target storage area, wherein the target storage area is a pre-allocated storage area on the double-rate synchronous dynamic random access memory of the target accelerator card, the target notification indicates that the target data has been placed in the target storage area, the target accelerator card is a high-speed serial computer expansion bus standard accelerator card, and the target interface is used to implement communication between the protocol stack of the Transmission Control Protocol or the Internet Protocol and the target accelerator card; invoke the target interface to parse the target data and submit the parsing result to the protocol stack.

[0157] Computer program code for performing the operations of embodiments of this disclosure can be written in one or more programming languages ​​or a combination thereof, including object-oriented programming languages ​​such as Java, Smalltalk, and C++, and conventional procedural programming languages ​​such as the "C" language or similar programming languages. The program code can be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving remote computers, the remote computer can be connected to the user's computer via any type of network—including a local area network (LAN) or a wide area network (WAN)—or can be connected to an external computer (e.g., via the Internet using an Internet service provider).

[0158] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutively indicated blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can be implemented using a dedicated hardware-based system that performs the specified function or operation, or using a combination of dedicated hardware and computer instructions.

[0159] According to one or more embodiments of this disclosure, a communication method is provided, applied to a data transmitting device. The method includes: in response to determining that data to be transmitted exists, calling a target interface to move the data to be transmitted to a target storage area, wherein the target storage area is a pre-allocated storage area on a Double Rate Synchronous Dynamic Random Access Memory (DRAM) of a target accelerator card, the target accelerator card is a High Speed ​​Serial Computer Extended Bus (HS-CLOSC) standard accelerator card, the data to be transmitted is data sent to a protocol stack of a Transmission Control Protocol (TCP) or Internet Protocol (IPC) by a target application calling a socket interface function, and the target interface is used to implement communication between the protocol stack and the target accelerator card; and calling the target interface to send a notification to a data receiving device, wherein the notification is used to indicate that the data to be transmitted has been placed in the target storage area.

[0160] According to one or more embodiments of this disclosure, the data transmitting device is a host, the target accelerator card is disposed on the host, and the data receiving device is the target accelerator card; and calling the target interface to move the data to be transmitted to the target storage area includes: calling the target interface to move the data to be transmitted to the target storage area using the direct memory access method.

[0161] According to one or more embodiments of this disclosure, the data transmitting device is a target accelerator card, the data receiving device is a host, and the target accelerator card is disposed on the host.

[0162] According to one or more embodiments of this disclosure, the data transmitting device is a target accelerator card, the data receiving device is a host, the host is provided with the target accelerator card and other target accelerator cards besides the target accelerator card, and the target storage area is the storage area in the target accelerator card.

[0163] According to one or more embodiments of this disclosure, before calling the target interface to move the data to be sent to the target storage area, the method includes: calling the target interface to obtain a buffer descriptor from the target accelerator card, and using the buffer descriptor to determine the target storage area, wherein the buffer descriptor is used to describe the state of the memory and the address of the memory in the double rate synchronous dynamic random access memory.

[0164] According to one or more embodiments of this disclosure, a communication method is provided, applied to a data receiving device. The method includes: in response to receiving a target notification, calling a target interface to obtain target data moved to a target storage area, wherein the target storage area is a pre-allocated storage area on a double-rate synchronous dynamic random access memory of a target accelerator card, the target notification is used to indicate that the target data has been placed in the target storage area, the target accelerator card is a high-speed serial computer extended bus standard accelerator card, and the target interface is used to implement communication between a protocol stack of a transmission control protocol or an Internet Protocol and the target accelerator card; calling the target interface to parse the target data, and submitting the parsing result to the protocol stack.

[0165] According to one or more embodiments of this disclosure, the data receiving device is a target acceleration card, the target acceleration card is disposed on the host, and the target notification is sent by the host.

[0166] According to one or more embodiments of this disclosure, the data receiving device is a host, the target accelerator card is mounted on the host, the target notification is sent by the target accelerator card; and calling the target interface to obtain target data moved to the target storage area includes: calling the target interface to move the target data from the target storage area to memory using the direct memory access method, and obtaining the data moved to memory.

[0167] According to one or more embodiments of this disclosure, after calling the target interface to parse the target data and submitting the parsing result to the protocol stack, the method further includes: in response to determining using the protocol stack that the destination address of the target data is not the address of the host, searching for the target accelerator card corresponding to the destination address as the data receiving accelerator card, wherein the data receiving accelerator card is located in the host; calling the target interface to move the target data from memory to the target storage area of ​​the data receiving accelerator card using direct memory access; and sending a second notification to the data receiving accelerator card, wherein the second notification is used to indicate that the target data has been placed in the target storage area of ​​the data receiving accelerator card.

[0168] According to one or more embodiments of this disclosure, before calling the target interface to move target data from memory to the target storage area of ​​the data receiving accelerator card using the direct memory access method, the method includes: calling the target interface to obtain a buffer descriptor from the data receiving accelerator card, and using the buffer descriptor to determine the target storage area of ​​the data receiving accelerator card, wherein the buffer descriptor is used to describe the state of the memory and the address of the memory in the double rate synchronous dynamic random access memory.

[0169] According to one or more embodiments of this disclosure, a communication system is provided, comprising: a data transmitting device, configured to, in response to determining the existence of data to be transmitted, invoke a target interface to move the data to be transmitted to a target storage area, and send a target notification to a data receiving device, wherein the target storage area is a pre-allocated storage area on a double-rate synchronous dynamic random access memory of a target accelerator card, the target accelerator card is a high-speed serial computer extended bus standard accelerator card, the data to be transmitted is data sent by a target application to a protocol stack of a transmission control protocol or an Internet Protocol by invoking a socket interface function, the target interface is used to implement communication between the protocol stack and the target accelerator card, and the target notification is used to indicate that the data to be transmitted has been placed in the target storage area; and a data receiving device, configured to, in response to receiving the target notification, invoke a target interface to obtain the data to be transmitted moved to the target storage area, parse the data to be transmitted, and submit the parsing result to the protocol stack.

[0170] According to one or more embodiments of this disclosure, the data transmitting device is a host, the target accelerator card is disposed on the host, and the data receiving device is the target accelerator card; and the data transmitting device is used to call the target interface to move the data to be transmitted to the target storage area using the direct memory access method; or the data transmitting device is the target accelerator card, the data receiving device is the host, and the target accelerator card is disposed on the host; or the data transmitting device is the target accelerator card, the data receiving device is the host, the host is provided with the target accelerator card and other target accelerator cards besides the target accelerator card, and the target storage area is the storage area in the target accelerator card.

[0171] According to one or more embodiments of this disclosure, a data transmitting device is configured to call a target interface to obtain a first buffer descriptor from a target accelerator card, and use the first buffer descriptor to determine a target storage area, wherein the first buffer descriptor is used to describe the state of the memory and the address of the memory in the double-rate synchronous dynamic random access memory.

[0172] According to one or more embodiments of this disclosure, the data sending device is a target accelerator card, the data receiving device is a host, and the target accelerator card is disposed on the host; and the data receiving device is used to call the target interface to move the data to be sent from the target storage area to memory using the direct memory access method, and to obtain the data moved to memory.

[0173] According to one or more embodiments of this disclosure, a data receiving device is configured to, in response to the protocol stack resolving that the destination address of the data to be sent is not the address of the host, locate the target accelerator card corresponding to the destination address as the data receiving accelerator card, call the target interface to move the data to be sent from memory to the target storage area of ​​the data receiving accelerator card using direct memory access, and send a second notification to the data receiving accelerator card, wherein the second notification is used to indicate that the data to be sent has been placed in the target storage area of ​​the data receiving accelerator card, and the data receiving accelerator card is located in the host.

[0174] According to one or more embodiments of this disclosure, a data receiving device is configured to call a target interface to obtain a second buffer descriptor from a data receiving accelerator card, and use the second buffer descriptor to determine a target storage area of ​​the data receiving accelerator card, wherein the second buffer descriptor is used to describe the state of the memory and the address of the memory in the double rate synchronous dynamic random access memory.

[0175] According to one or more embodiments of this disclosure, a communication device is provided, disposed in a data transmitting device. The device includes: a moving unit, configured to, in response to determining that data to be transmitted exists, invoke a target interface to move the data to be transmitted to a target storage area, wherein the target storage area is a pre-allocated storage area on a Double Rate Synchronous Dynamic Random Access Memory (DRAM) of a target accelerator card, the target accelerator card is a High Speed ​​Serial Computer Extended Bus (HS-CSFB) standard accelerator card, the data to be transmitted is data sent to a protocol stack of a Transmission Control Protocol (TCP) or Internet Protocol (IP) by a target application calling a socket interface function, and the target interface is used to implement communication between the protocol stack and the target accelerator card; and a sending unit, configured to invoke the target interface to send a notification to a data receiving device, wherein the notification indicates that the data to be transmitted has been placed in the target storage area.

[0176] According to one or more embodiments of this disclosure, the data transmitting device is a host, the target accelerator card is disposed on the host, the data receiving device is the target accelerator card; and the moving unit is further configured to move the data to be transmitted to the target storage area by calling the target interface in the following manner: calling the target interface to move the data to be transmitted to the target storage area using the direct memory access method.

[0177] According to one or more embodiments of this disclosure, the data transmitting device is a target accelerator card, the data receiving device is a host, and the target accelerator card is disposed on the host.

[0178] According to one or more embodiments of this disclosure, the data transmitting device is a target accelerator card, the data receiving device is a host, the host is provided with the target accelerator card and other target accelerator cards besides the target accelerator card, and the target storage area is the storage area in the target accelerator card.

[0179] According to one or more embodiments of this disclosure, the apparatus includes a determining unit. The determining unit is configured to invoke a target interface to obtain a buffer descriptor from a target accelerator card, and use the buffer descriptor to determine a target storage region, wherein the buffer descriptor is used to describe the state and address of the memory in the Double Rate Synchronous Dynamic Random Access Memory.

[0180] According to one or more embodiments of this disclosure, a communication device is provided, disposed in a data receiving device. The device includes: an acquisition unit, configured to, in response to receiving a target notification, invoke a target interface to acquire target data moved to a target storage area, wherein the target storage area is a pre-allocated storage area on a double-rate synchronous dynamic random access memory of a target accelerator card, the target notification is used to indicate that the target data has been placed in the target storage area, the target accelerator card is a high-speed serial computer extended bus standard accelerator card, and the target interface is used to implement communication between a protocol stack of a transmission control protocol or an Internet Protocol and the target accelerator card; and a submission unit, configured to invoke the target interface to parse the target data and submit the parsing result to the protocol stack.

[0181] According to one or more embodiments of this disclosure, the data receiving device is a target acceleration card, the target acceleration card is disposed on the host, and the target notification is sent by the host.

[0182] According to one or more embodiments of this disclosure, the data receiving device is a host, the target accelerator card is disposed on the host, the target notification is sent by the target accelerator card; and the acquisition unit is further configured to acquire the target data moved to the target storage area by calling the target interface in the following manner: calling the target interface to move the target data from the target storage area to memory using the direct memory access method, and acquiring the data moved to memory.

[0183] According to one or more embodiments of this disclosure, the apparatus further includes: a lookup unit, a moving unit, and a sending unit. The lookup unit is configured to, in response to determining using the protocol stack that the destination address of the target data is not the address of the host, look up the target accelerator card corresponding to the destination address as a data receiving accelerator card, wherein the data receiving accelerator card is disposed in the host; the moving unit is configured to call the target interface to move the target data from memory to the target storage area of ​​the data receiving accelerator card using direct memory access; the sending unit is configured to send a second notification to the data receiving accelerator card, wherein the second notification indicates that the target data has been placed in the target storage area of ​​the data receiving accelerator card.

[0184] According to one or more embodiments of this disclosure, the apparatus further includes a determining unit. The determining unit is configured to invoke a target interface to obtain a buffer descriptor from the data receiving accelerator card, and use the buffer descriptor to determine a target storage area of ​​the data receiving accelerator card, wherein the buffer descriptor is used to describe the state and address of the memory in the Double Rate Synchronous Dynamic Random Access Memory.

[0185] The units described in the embodiments of this disclosure can be implemented in software or hardware. The described units can also be housed in a processor; for example, a processor may be described as including a moving unit and a transmitting unit, or a processor may be described as including an acquiring unit and a submitting unit. The names of these units do not necessarily limit the specific unit; for example, a transmitting unit may also be described as "a unit that calls a target interface to send a notification to a data receiving device."

[0186] The above description is merely a preferred embodiment of this disclosure and an explanation of the technical principles employed. Those skilled in the art should understand that the scope of the embodiments of this disclosure is not limited to technical solutions formed by specific combinations of the above-described technical features, but should also cover other technical solutions formed by arbitrary combinations of the above-described technical features or their equivalents without departing from the above concept. For example, technical solutions formed by substituting the above-described features with (but not limited to) technical features with similar functions disclosed in the embodiments of this disclosure.

Claims

1. A communication method applied to a data transmitting device, characterized by, The method comprises: in response to determining that there is data to be sent, calling a target interface to move the data to be sent into a target storage area, wherein the target storage area is a pre-allocated storage area on a double data rate synchronous dynamic random access memory of a target accelerator card, the target accelerator card is a high-speed serial computer expansion bus standard accelerator card, the data to be sent is data sent by a target application to a protocol stack of a transmission control protocol or an internet protocol by calling a socket interface function, the target interface is used to realize communication between the protocol stack and the target accelerator card, and the data sending device is the target accelerator card; calling the target interface to send a target notification to a data receiving device, wherein the target notification is used to represent that the data to be sent has been placed in the target storage area, the data receiving device is a host, the host and all high-speed serial computer expansion bus standard accelerator cards form an internet protocol (IP) network to realize communication between the host and the high-speed serial computer expansion bus standard accelerator cards, the host is provided with the target accelerator card and other target accelerator cards except the target accelerator card, and the data receiving device, in response to analyzing, by using the protocol stack, a destination address of the data to be sent and determining that the destination address is not an address of the host, finds a target accelerator card corresponding to the destination address as a data receiving accelerator card, and sends a second notification to the data receiving accelerator card, wherein the second notification is used to represent that the data to be sent has been placed in a target storage area of the data receiving accelerator card, and the data receiving accelerator card is arranged in the host.

2. The method of claim 1, wherein, The data sending device is the host, the target accelerator card is arranged on the host, and the data receiving device is the target accelerator card. The method further comprises: the calling of the target interface to move the data to be sent into the target storage area comprises: calling the target interface to move the data to be sent into the target storage area in a direct memory access mode.

3. The method of claim 1, wherein, The data sending device is the target accelerator card, the data receiving device is the host, and the target accelerator card is arranged on the host.

4. The method according to one of claims 1 to 3, characterized in that, Before the calling of the target interface to move the data to be sent into the target storage area, the method comprises: calling the target interface to obtain a buffer descriptor from the target accelerator card, and using the buffer descriptor to determine the target storage area, wherein the buffer descriptor is used to describe a state of a memory and an address of the memory in the double data rate synchronous dynamic random access memory.

5. A communication method applied to a data receiving device, characterized in that, The method comprises: In response to receiving the target notification, a target interface is called to obtain the to-be-sent data moved into a target storage area, wherein the target storage area is a pre-allocated storage area on a double data rate synchronous dynamic random access memory of a target accelerator card, the target notification is used to represent that the to-be-sent data has been put into the target storage area, the target accelerator card is a high-speed serial computer expansion bus standard accelerator card, the target interface is used to realize communication between a protocol stack of a transmission control protocol or an internet protocol and the target accelerator card, the target accelerator card is arranged on a host, and the target notification is sent by the target accelerator card; The target interface is called to analyze the to-be-sent data, and an analysis result is submitted to the protocol stack, the data receiving device is the host, the host and all high-speed serial computer expansion bus standard accelerator cards form an internet protocol (IP) network to realize communication between the host and the high-speed serial computer expansion bus standard accelerator cards, in response to analyzing that a destination address of the to-be-sent data is not an address of the host, a target accelerator card corresponding to the destination address is found as a data receiving accelerator card, and a second notification is sent to the data receiving accelerator card, wherein the second notification is used to represent that the to-be-sent data has been put into a target storage area of the data receiving accelerator card, and the data receiving accelerator card is arranged in the host.

6. The method of claim 5, wherein, The data receiving device is the target accelerator card, and the target accelerator card is arranged on the host, and the target notification is sent by the host.

7. The method of claim 5, wherein, The calling of the target interface to obtain the to-be-sent data moved into the target storage area comprises: The target interface is called to move the to-be-sent data from the target storage area to the memory in a direct memory access mode, and data moved into the memory is obtained.

8. The method of claim 7, wherein, The finding of the target accelerator card corresponding to the destination address as the data receiving accelerator card in response to analyzing that the destination address of the to-be-sent data is not the address of the host comprises: In response to determining, by using the protocol stack, that the destination address of the to-be-sent data is not the address of the host, the target accelerator card corresponding to the destination address is found as the data receiving accelerator card, wherein the data receiving accelerator card is arranged in the host; The target interface is called to move the to-be-sent data from the memory to the target storage area of the data receiving accelerator card in a direct memory access mode.

9. The method of claim 8, wherein, Before the calling of the target interface to move the to-be-sent data from the memory to the target storage area of the data receiving accelerator card in a direct memory access mode, the method comprises: The target interface is called to obtain a buffer descriptor from the data receiving accelerator card, and the target storage area of the data receiving accelerator card is determined by using the buffer descriptor, wherein the buffer descriptor is used to describe a state of a memory and an address of the memory in a double data rate synchronous dynamic random access memory.

10. A communication system, characterized by The method comprises: The data sending device is configured to, in response to determining that there is data to be sent, invoke a target interface to move the data to be sent into a target storage area of a target accelerator card, and send a target notification to a data receiving device, wherein the target storage area is a pre-allocated storage area on a double data rate synchronous dynamic random access memory of the target accelerator card, the target accelerator card is a high-speed serial computer expansion bus standard accelerator card, the data to be sent is data sent by a target application to a protocol stack of a transmission control protocol or an internet protocol by invoking a socket interface function, the target interface is configured to implement communication between the protocol stack and the target accelerator card, and the target notification is configured to indicate that the data to be sent has been placed in the target storage area. The data receiving device is configured to, in response to receiving the target notification, invoke the target interface to obtain the data to be sent moved into the target storage area, and parse the data to be sent and submit a parsing result to the protocol stack, wherein the data receiving device is a host, the host and all high-speed serial computer expansion bus standard accelerator cards form an internet protocol (IP) network to implement communication between the host and the high-speed serial computer expansion bus standard accelerator cards, and the host is configured to, in response to parsing, by using the protocol stack, a destination address of the data to be sent as not being an address of the host, search for a target accelerator card corresponding to the destination address as a data receiving accelerator card, and send a second notification to the data receiving accelerator card, wherein the second notification is configured to indicate that the data to be sent has been placed in a target storage area of the data receiving accelerator card, and the data receiving accelerator card is arranged in the host. The data sending device is a host, the target accelerator card is arranged on the host, and the data receiving device is the target accelerator card.

11. The system of claim 10, wherein, The data sending device is configured to invoke a target interface to move the data to be sent into a target storage area in a direct memory access mode. The data sending device is the target accelerator card, the data receiving device is a host, and the target accelerator card is arranged on the host.

12. The system of claim 10 or 11, wherein The data sending device is configured to invoke a target interface to obtain a first buffer descriptor from the target accelerator card, and determine the target storage area by using the first buffer descriptor, wherein the first buffer descriptor is configured to describe a state of a memory and an address of the memory in a double data rate synchronous dynamic random access memory.

13. The system of claim 10, wherein The data receiving device is configured to invoke a target interface to move the data to be sent from the target storage area to a memory in a direct memory access mode, and obtain the data moved into the memory.

14. The system of claim 13, wherein ​ The data receiving device is configured to call the target interface to move the to-be-sent data from the memory to a target storage area of the data receiving accelerator card in a direct memory access mode.

15. The system of claim 14, wherein, The data receiving device is configured to call the target interface to obtain a second buffer descriptor from the data receiving accelerator card, and determine the target storage area of the data receiving accelerator card by using the second buffer descriptor, wherein the second buffer descriptor is used to describe a state and an address of a memory in a double data rate synchronous dynamic random access memory.

16. A communication device provided in a data transmitting apparatus, characterized by comprising: Comprise: The moving unit is configured to call the target interface to move the to-be-sent data to the target storage area in response to determining that there is to-be-sent data, wherein the target storage area is a pre-allocated storage area on a double data rate synchronous dynamic random access memory of a target accelerator card, the target accelerator card is a high-speed serial computer expansion bus standard accelerator card, the to-be-sent data is data sent by a target application to a protocol stack of a transmission control protocol or an internet protocol by calling a socket interface function, the target interface is used to implement communication between the protocol stack and the target accelerator card, and the data sending device is the target accelerator card; The sending unit is configured to call the target interface to send a target notification to a data receiving device, wherein the target notification is used to represent that the to-be-sent data has been placed in the target storage area, the data receiving device is a host, the host and all high-speed serial computer expansion bus standard accelerator cards form an internet protocol (IP) network to implement communication between the host and the high-speed serial computer expansion bus standard accelerator cards, the host is provided with the target accelerator card and other target accelerator cards except the target accelerator card, and the data receiving device finds a target accelerator card corresponding to a destination address of the to-be-sent data as a data receiving accelerator card in response to analyzing the destination address by using the protocol stack, and sends a second notification to the data receiving accelerator card, wherein the second notification is used to represent that the to-be-sent data has been placed in a target storage area of the data receiving accelerator card, and the data receiving accelerator card is arranged in the host.

17. A communication device, provided in a data receiving apparatus, characterized by comprising: Comprise: The obtaining unit is configured to call the target interface to obtain the to-be-sent data moved to the target storage area in response to receiving the target notification, wherein the target notification is used to represent that the to-be-sent data has been placed in the target storage area, the target storage area is a pre-allocated storage area on a double data rate synchronous dynamic random access memory of a target accelerator card, the target notification is sent by the target accelerator card, the target accelerator card is a high-speed serial computer expansion bus standard accelerator card, the target interface is used to implement communication between a protocol stack of a transmission control protocol or an internet protocol and the target accelerator card, and the target accelerator card is arranged in a host. The submission unit is configured to call the target interface to parse the to-be-sent data and submit a parsing result to the protocol stack. The data receiving device is the host. The host and all the high-speed serial computer expansion bus standard acceleration cards form an Internet Protocol (IP) network to realize communication between the host and the high-speed serial computer expansion bus standard acceleration cards. In response to the parsed destination address of the to-be-sent data not being an address of the host, a target acceleration card corresponding to the destination address is found as a data receiving acceleration card, and a second notification is sent to the data receiving acceleration card. The second notification indicates that the to-be-sent data has been placed in a target storage area of the data receiving acceleration card. The data receiving acceleration card is arranged in the host.

18. An electronic device, comprising: Comprise: at least one processor; a storage device having at least one program stored thereon, when the at least one program is executed by the at least one processor, so that the at least one processor implements the method as claimed in any one of claims 1-4 and 5-9.

19. A computer readable medium having stored thereon a computer program, characterized in that The program is executed by the processor to implement the method as claimed in any one of claims 1-4 and 5-9.

Citation Information

Patent Citations

  • Data acceleration method, device and system based on network transmission and acceleration card

    CN109787918A

  • System and method for realizing TCP_IP protocol by hardware

    CN110109852A

  • Data management method and system of integrated intelligent network card

    CN110221995A