IP Library › Granted Patent US 12,461,881
Granted Patent B2
US 12,461,881 · App. 18/988,689 · Granted Nov 4, 2025

Data sending method and apparatus, data receiving method and apparatus, device, and storage medium

Inventors: Wentao Fan (Beijing, CN); Haozhong Zhang (Beijing, CN); Yang Zhang (Beijing, CN)
Assignee: Beijing Volcano Engine Technology Co., Ltd.
G06F13/4221G06F2213/0026
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,461,881
App. No.
18/988,689
Granted
Nov 4, 2025
Kind
B2
Abstract

A data sending method, a data receiving method and an electronic device are disclosed. At least two data sending requests sent by a server through a high-speed bus are received, where the data sending requests are used to request a smart network interface card to send message data stored on a server to an external device. A corresponding target hardware queue is determined for each data sending request, where a hardware queue is used to communicate with the server through the high-speed bus, target hardware queues corresponding to the data sending requests are distributed in at least two hardware queue groups, and the hardware queue groups are in one-to-one correspondence with the high-speed buses. The target hardware queues communicate with the server through at least two corresponding high-speed buses at the same time to obtain corresponding message data, and send the corresponding message data to the external device.

Claims (67)

1 . A data sending method, applied to a smart network interface card,

wherein the smart network interface card has bus ports of at least two buses, and the smart network interface card communicates with a server through the at least two buses, the method comprises:

receiving at least two data sending requests sent by the server through the at least two buses, wherein the at least two data sending requests are configured to request the smart network interface card to send message data stored on a side of the server to an external device;

determining a corresponding target hardware queue for each of the at least two data sending requests, wherein the corresponding target hardware queue is configured to communicate with the server through one of the at least two buses, target hardware queues corresponding to the at least two data sending requests are distributed in at least two hardware queue groups, and the at least two hardware queue groups are in one-to-one correspondence with the at least two buses; and

communicating, by the target hardware queues, with the server through the at least two buses at the same time to obtain corresponding message data, and sending the corresponding message data to the external device.

2 . The method according to claim 1 , wherein a field programmable gate array chip is provided inside the smart network interface card, the field programmable gate array chip is connected to the at least two buses and provides the at least two hardware queue groups in one-to-one correspondence with the at least two buses, and each of the at least two data sending requests comprises a data identifier corresponding to the message data and a bus identifier of a target bus; and

wherein the determining a corresponding target hardware queue for each of the at least two data sending requests comprises:

acquiring first configuration information of the field programmable gate array chip, wherein the first configuration information is used to characterize a mapping relationship between data pairs and target hardware queues, where the data pair consists of a bus identifier of a bus connected to the field programmable gate array chip and the data identifier; and

obtaining the target hardware queue based on processing of the first configuration information, and the data identifier and the bus identifier of the target bus in the data sending request.

3 . The method according to claim 2 , further comprising:

generating, through the field programmable gate array chip, a data request task in response to the at least two data sending requests, and writing the data request task into the target hardware queues corresponding to the at least two data sending requests in sequence; and

wherein the communicating, by the target hardware queues, with the server through the at least two buses at the same time to obtain corresponding message data comprises:

asynchronously executing, by the target hardware queues of the field programmable gate array chip, the data request task in the target hardware queues to perform direct memory access to a memory of the server through the at least two buses at the same time, to obtain the message data corresponding to the data request task.

4 . The method according to claim 2 , wherein the smart network interface card further comprises a control chip connected to the field programmable gate array chip, and the method further comprises:

initializing the field programmable gate array chip through the control chip to configure hardware queues in the at least two hardware queue groups corresponding to the field programmable gate array chip.

5 . The method according to claim 4 , wherein the initializing the field programmable gate array chip through the control chip to configure hardware queues in the at least two hardware queue groups corresponding to the field programmable gate array chip comprises:

obtaining a group capacity of the hardware queue group based on a first number of the at least two buses and a total number of the hardware queues; and

evenly distributing all the hardware queues of the field programmable gate array chip to the first number of the at least two hardware queue groups based on the group capacity of the hardware queue group to obtain configured hardware queue groups corresponding to the field programmable gate array.

6 . The method according to claim 4 , further comprising:

configuring, through the control chip, a bandwidth speed limit of the at least two hardware queue groups corresponding to the field programmable gate array chip; and/or target buses respectively corresponding to the at least two hardware queue groups.

7 . The method according to claim 1 , further comprising:

obtaining a corresponding target bus based on a port identifier of the smart network interface card; and

wherein the receiving at least two data sending requests sent by the server through the at least two buses comprises:

receiving the at least two data sending requests sent by the server through the target bus.

8 . A data receiving method, applied to a smart network interface card, wherein the smart network interface card has bus ports of at least two buses, and the smart network interface card communicates with a server through the at least two buses, the method comprises:

receiving at least two data receiving requests sent by an external device through a network port, wherein the at least two data receiving requests are configured to request the smart network interface card to store message data sent by the external device in the server;

determining a corresponding target hardware queue for each of the at least two data receiving requests, wherein the corresponding target hardware queue is configured to communicate with the server through one of the at least two buses, target hardware queues corresponding to the at least two data receiving requests are distributed in at least two hardware queue groups, and the at least two hardware queue groups are in one-to-one correspondence with the at least two buses; and

communicating, by the target hardware queues, with the server the at least two buses at the same time, to send the message data to the server.

9 . The method according to claim 8 , wherein a field programmable gate array chip is provided inside the smart network interface card, the field programmable gate array chip is connected to the at least two buses and the network port and provides the at least two hardware queue groups in one-to-one correspondence with the at least two buses, and each of the at least two data receiving requests comprises a data identifier corresponding to the message data and a port identifier of the network port; and

wherein the determining a corresponding target hardware queue for each of the at least two data receiving requests comprises:

acquiring second configuration information of the field programmable gate array chip, wherein the second configuration information is used to characterize a mapping relationship between data pairs and target hardware queues, where the data pair consists of the port identifier of the network port connected to the field programmable gate array chip and the data identifier; and

obtaining the target hardware queue based on processing of the second configuration information, and the data identifier and the port identifier of the network port in the data receiving request.

10 . An electronic device, comprising: a processor and a memory; wherein

the memory stores computer-executable instructions; and the processor executes the computer-executable instructions stored in the memory so as to perform a data sending method or a data receiving method applied to a smart network interface card,

wherein the smart network interface card has bus ports of at least two buses, and the smart network interface card communicates with a server through the at least two buses,

the data sending method comprises:

receiving at least two data sending requests sent by the server through the at least two buses, wherein the at least two data sending requests are configured to request the smart network interface card to send message data stored on a side of the server to an external device,

determining a corresponding target hardware queue for each of the at least two data sending requests, wherein the corresponding target hardware queue is configured to communicate with the server through one of the at least two buses, target hardware queues corresponding to the at least two data sending requests are distributed in at least two hardware queue groups, and the at least two hardware queue groups are in one-to-one correspondence with the at least two buses, and

communicating, by the target hardware queues, with the server through the at least two buses at the same time to obtain corresponding message data, and sending the corresponding message data to the external device;

the data receiving method comprises:

receiving at least two data receiving requests sent by an external device through a network port, wherein the at least two data receiving requests are configured to request the smart network interface card to store message data sent by the external device in the server,

determining a corresponding target hardware queue for each of the at least two data receiving requests, wherein the corresponding target hardware queue is configured to communicate with the server through one of the at least two buses, target hardware queues corresponding to the at least two data receiving requests are distributed in at least two hardware queue groups, and the at least two hardware queue groups are in one-to-one correspondence with the at least two buses, and

communicating, by the target hardware queues, with the server through the at least two buses at the same time, to send the message data to the server.

11 . The electronic device according to claim 10 , wherein a field programmable gate array chip is provided inside the smart network interface card, the field programmable gate array chip is connected to the highspeed buses and provides the at least two hardware queue groups in one-to-one correspondence with the at least two buses, and each of the at least two data sending requests comprises a data identifier corresponding to the message data and a bus identifier of a target bus; and

wherein in the data sending method, the determining a corresponding target hardware queue for each of the at least two data sending requests comprises:

acquiring first configuration information of the field programmable gate array chip, wherein the first configuration information is used to characterize a mapping relationship between data pairs and target hardware queues, where the data pair consists of a bus identifier of a bus connected to the field programmable gate array chip and the data identifier; and

obtaining the target hardware queue based on processing of the first configuration information, and the data identifier and the bus identifier of the target bus in the data sending request.

12 . The electronic device according to claim 11 , wherein the data sending method further comprises:

generating, through the field programmable gate array chip, a data request task in response to the data sending request, and writing the data request task into the target hardware queues corresponding to the at least two data sending requests in sequence; and

wherein the communicating, by the target hardware queues, with the server through the at least two buses at the same time to obtain corresponding message data comprises:

asynchronously executing, by the target hardware queues of the field programmable gate array chip, the data request task in the target hardware queues to perform direct memory access to a memory of the server through the at least two buses at the same time, to obtain the message data corresponding to the data request task.

13 . The electronic device according to claim 11 , wherein the smart network interface card further comprises a control chip connected to the field programmable gate array chip, and

the data sending method further comprises:

initializing the field programmable gate array chip through the control chip to configure hardware queues in the at least two hardware queue groups corresponding to the field programmable gate array chip.

14 . The electronic device according to claim 13 , wherein in the data sending method, the initializing the field programmable gate array chip through the control chip to configure hardware queues in the at least two hardware queue groups corresponding to the field programmable gate array chip comprises:

obtaining a group capacity of the hardware queue group based on a first number of the buses and a total number of the hardware queues; and

evenly distributing all the hardware queues of the field programmable gate array chip to the first number of the at least two hardware queue groups based on the group capacity of the hardware queue group to obtain configured hardware queue groups corresponding to the field programmable gate array.

15 . The electronic device according to claim 13 , wherein the data sending method further comprises:

configuring, through the control chip, a bandwidth speed limit of the at least two hardware queue groups corresponding to the field programmable gate array chip; and/or target buses respectively corresponding to the at least two hardware queue groups.

16 . The electronic device according to claim 10 , wherein the data sending method further comprises:

obtaining a corresponding target bus based on a port identifier of the smart network interface card; and

wherein the receiving at least two data sending requests sent by the server through the at least two buses comprises:

receiving the at least two data sending requests sent by the server through the target bus.

17 . The electronic device according to claim 10 , wherein a field programmable gate array chip is provided inside the smart network interface card, the field programmable gate array chip is connected to the highspeed buses and the network port and provides the at least two hardware queue groups in one-to-one correspondence with the at least two buses, and each of the at least two data receiving requests comprises a data identifier corresponding to the message data and a port identifier of the network port; and

wherein in the data receiving method, the determining a corresponding target hardware queue for each of the at least two data receiving requests comprises:

acquiring second configuration information of the field programmable gate array chip, wherein the second configuration information is used to characterize a mapping relationship between data pairs and target hardware queues, where the data pair consists of a port identifier of the network port connected to the field programmable gate array chip and the data identifier; and

obtaining the target hardware queue based on processing of the second configuration information, and the data identifier and the port identifier of the network port in the data receiving request.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 26, 2025
From: FAN, WENTAO; ZHANG, HAOZHONG
To: SHANGHAI KAIYONG INFORMATION TECHNOLOGY CO., LTD.
Reel/Frame 072119/0723 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 26, 2025
From: ZHANG, YANG
To: SHANGHAI GEWU ZHIYUAN NETWORK TECHNOLOGY CO., LTD.
Reel/Frame 072119/0808 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 26, 2025
From: SHANGHAI KAIYONG INFORMATION TECHNOLOGY CO., LTD.; SHANGHAI GEWU ZHIYUAN NETWORK TECHNOLOGY CO., LTD.
To: BEIJING VOLCANO ENGINE TECHNOLOGY CO., LTD.
Reel/Frame 072119/0896 →
Priority Claims (1)
CN 202410179255.2 · Feb 18, 2024 · national
Continuity (1)
Related Publication 20250265215A1 · Aug 21, 2025
References Cited (25)
US 10997106B1 · Bandaru · 2021 [cited by examiner]
US 20090077276A1 · Kato et al. · 2009 [cited by applicant]
US 20090089815A1 · Manczak · 2009 [cited by examiner]
US 20150113114A1 · Zhang · 2015 [cited by examiner]
US 20210397559A1 · Chen · 2021 [cited by examiner]
US 20230105771A1 · Lu · 2023 [cited by examiner]
US 20230119437A1 · Faasse · 2023 [cited by examiner]
US 20230153264A1 · Lin et al. · 2023 [cited by applicant]
US 20230205719A1 · Zhang · 2023 [cited by examiner]
US 20230418697A1 · Chen · 2023 [cited by examiner]
CN 101393540A · 2009 [cited by applicant]
CN 113377288A · 2021 [cited by applicant]
CN 216623148U · 2022 [cited by applicant]
CN 114598746B · 2022 [cited by applicant]
CN 114885045B · 2022 [cited by applicant]
CN 116303171A · 2023 [cited by applicant]
CN 116527609A · 2023 [cited by applicant]
CN 116501684B · 2023 [cited by applicant]
CN 116743883A · 2023 [cited by applicant]
CN 117453596A · 2024 [cited by applicant]
CN 117749739B · 2024 [cited by applicant]
WO WO2021042782A1 · 2021 [cited by applicant]
China Patent Application No. 202410179255.2; Office Action; dated Mar. 28, 2024; 9 pages. [cited by applicant]
European Patent Application No. 24221948.3; Extended Search Report; dated May 28, 2025; 6 pages. [cited by applicant]
Singapore Patent Application No. 10202404053U; Search Report; dated Jun. 27, 2025; 6 pages. [cited by applicant]