Multi-node heterogeneous data forwarding method and device

By acquiring and isomorphic processing of node data in the communication control system, and using ping-pong operation and combined processing to realize data forwarding, the reliability and real-time problems of multi-node data forwarding in high-speed communication scenarios are solved, and efficient data forwarding is achieved.

CN119766716APending Publication Date: 2025-04-04WUHAN SHIP COMM RES INST (NO 722 RES INST OF CHINA STATE SHIPBUILDING CORP)
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411823236.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-12-12
Publication Date
2025-04-04

AI Technical Summary

Technical Problem

In communication control systems, under the demand for high-speed communication with a large variety of interfaces and a large number of high-speed communications, it is difficult for the prior art to achieve high reliability and real-time forwarding of multi-node data.

Method used

Data is obtained through each node interface, stored in the data buffer, and isomorphic processing is performed. Then, the data frame is cached using ping-pong operations, and the data frame is processed according to the number of routes, and the combined process is performed to realize data forwarding.

Benefits of technology

It realizes fast and efficient forwarding of interface data, and meets the high reliability and real-timeness of high-speed communication requirements in communication control systems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119766716A_ABST
    Figure CN119766716A_ABST
Patent Text Reader

Abstract

The present invention provides a multi-node heterogeneous data forwarding method and device, comprising: obtaining node data of different node interfaces through each node interface, storing the node data in a data buffer, and performing isomorphic processing of the node data through a user-defined data frame format according to the interface timing of the data buffer; reading a data frame of the node data from the data buffer, and obtaining a destination identifier of the node data, and caching the data frame in a ping-pong operation manner; determining the number of buffers N of route branches according to the number of routes to be forwarded by the data frame of the node data, and dividing the node data into N routes of interface data; obtaining data frames from multiple routes on any forwarding node, combining the data frames of the multiple routes, and forwarding the combined data, so as to realize fast and efficient forwarding of interface data in a communication control system with a high-speed communication requirement of multiple types and large numbers of interfaces.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention belongs to the field of communication technology, and in particular relates to a multi-node heterogeneous data forwarding method and device. Background Art

[0002] With the development of communication technology, in communication control systems, the types of equipment have increased, the amount of data generated in real time has increased, the output rate has increased, the data transmission protocol has become increasingly complex, and the complexity of software implementation has increased significantly. Therefore, conventional polling processing methods are difficult to meet the high reliability and strong real-time performance of data forwarding. For high-speed communication requirements with many types and numbers of interfaces, how to forward data from multiple nodes is an urgent problem that needs to be solved. Summary of the invention

[0003] The purpose of the present invention is to provide a multi-node heterogeneous data forwarding method and device.

[0004] According to a first aspect of the present invention, a multi-node heterogeneous data forwarding method is provided, comprising:

[0005] Obtain node data of different node interfaces through each node interface, store the node data in a data buffer, and perform isomorphic processing of the node data through a custom data frame format according to the interface timing of the data buffer;

[0006] Reading the data frame of the node data from the data buffer, and obtaining the destination identifier of the node data, and caching the data frame in a ping-pong operation manner;

[0007] Determine the number of buffers N of routing branches according to the number of routes to be forwarded for the data frames of the node data, and divide the node data into N routes of interface data;

[0008] The data frames from multiple routes on any forwarding node are obtained, the data frames from the multiple routes are combined, and the combined data are forwarded.

[0009] Optionally, acquiring node data of different node interfaces through each node interface, storing the node data in a data buffer, and performing isomorphic processing of the node data through a custom data frame format according to the interface timing of the data buffer, includes:

[0010] Taking the preset number of bits of node interface data as a data unit, receiving the frame header, frame type, destination ID, source ID, data length, data and frame tail of the data frame in sequence;

[0011] If the frame header or frame tail is received incorrectly, the data frame will be discarded;

[0012] If the frame header or frame tail is received correctly, the data and control information are buffered in the data buffer according to a preset number of bytes.

[0013] Optionally, reading the data frame of the node data from the data buffer, obtaining the destination identifier of the node data, and caching the data frame in a ping-pong operation manner includes:

[0014] When the last data of the data frame is cached in the first-level cache, the second-level cache issues a read request until the last data of the data frame in the first-level cache is read out, and then the read request ends;

[0015] When the L1 cache is writing a frame of data and reading a frame of data at the same time, the L2 cache will not send a read request.

[0016] Optionally, determining the number of buffers N for routing splits according to the number of routes to be forwarded for data frames of the node data, and dividing the node data into N routes of interface data, comprises:

[0017] Through the for loop, the destination identifiers of the N-way M_AXIS bus are matched with the node numbers;

[0018] If the destination identifier and the node number match successfully, the tvalid control signal corresponding to the route is pulled high, and the data frame after successful routing corresponds to a unique node number, and the data frame is stored in the Stream Data FIFO.

[0019] Optionally, the acquiring data frames from multiple routes on any forwarding node, combining the data frames of the multiple routes, and forwarding the combined data includes:

[0020] When N data frames are routed to the same node, they need to be combined. The number of each node is represented by a row vector, and the N M_AXIS buses of the branch are represented by a column vector. The two vectors are multiplied to obtain a new matrix. Each row of the matrix represents the set of interface buses that need to forward data frames to a certain node.

[0021] According to the preset node priority and alternating passage principle, when node M is processed, the node with the highest priority to be processed next is M+1. If node M+1 has no data frame to be forwarded, node M+2 has the highest priority, and so on.

[0022] According to a second aspect of the present invention, there is provided a multi-node heterogeneous data forwarding device, comprising:

[0023] A homogeneous processing module for heterogeneous data is used to obtain node data of different node interfaces through various node interfaces, store the node data in a data buffer, and perform homogeneous processing of the node data according to the interface timing of the data buffer through a custom data frame format;

[0024] A data information extraction module, used to read the data frame of the node data from the data buffer, obtain the destination identifier of the node data, and cache it with the data frame in a ping-pong operation;

[0025] A data routing processing module, used to determine the number of buffers N for routing splits according to the number of routes to be forwarded for the data frames of the node data, and to divide the node data into N routes of interface data;

[0026] The data arbitration processing module is used to obtain data frames from multiple routes on any forwarding node, combine the data frames of the multiple routes, and forward the combined data.

[0027] Optionally, the homogeneous processing module for heterogeneous data is used to:

[0028] Taking the preset number of bits of node interface data as a data unit, receiving the frame header, frame type, destination ID, source ID, data length, data and frame tail of the data frame in sequence;

[0029] If the frame header or frame tail is received incorrectly, the data frame will be discarded;

[0030] If the frame header or frame tail is received correctly, the data and control information are buffered in the data buffer according to a preset number of bytes.

[0031] Optionally, the data information extraction module is used to:

[0032] When the last data of the data frame is cached in the first-level cache, the second-level cache issues a read request until the last data of the data frame in the first-level cache is read out, and then the read request ends;

[0033] When the L1 cache is writing a frame of data and reading a frame of data at the same time, the L2 cache will not send a read request.

[0034] Optionally, the data routing processing module is used to:

[0035] Through the for loop, the destination identifiers of the N-way M_AXIS bus are matched with the node numbers;

[0036] If the destination identifier and the node number match successfully, the tvalid control signal corresponding to the route is pulled high, and the data frame after successful routing corresponds to a unique node number, and the data frame is stored in the Stream Data FIFO.

[0037] Optionally, the data arbitration processing module is used to:

[0038] When N data frames are routed to the same node, they need to be combined. The number of each node is represented by a row vector, and the N M_AXIS buses of the branch are represented by a column vector. The two vectors are multiplied to obtain a new matrix. Each row of the matrix represents the set of interface buses that need to forward data frames to a certain node.

[0039] According to the preset node priority and alternating passage principle, when node M is processed, the node with the highest priority to be processed next is M+1. If node M+1 has no data frame to be forwarded, node M+2 has the highest priority, and so on.

[0040] In a third aspect, the present application shows an electronic device, which includes: a processor; a memory for storing processor-executable instructions; wherein the processor is configured to execute the method described in any of the above aspects.

[0041] In a fourth aspect, the present application illustrates a non-temporary computer-readable storage medium, which, when instructions in the storage medium are executed by a processor of an electronic device, enables the electronic device to execute a method as described in any of the above aspects.

[0042] In a fifth aspect, the present application illustrates a computer program product. When instructions in the computer program product are executed by a processor of an electronic device, the electronic device is enabled to execute the method described in any of the above aspects.

[0043] The beneficial effects brought by the present invention are as follows:

[0044] It can be seen from the above scheme that an embodiment of the present invention provides a multi-node heterogeneous data forwarding method and device, including: obtaining node data of different node interfaces through each node interface, storing the node data in a data buffer, and performing isomorphic processing of the node data according to the interface timing of the data buffer through a custom data frame format; reading the data frame of the node data from the data buffer, and obtaining the destination identifier of the node data, and caching the data frame in a ping-pong operation manner; determining the number of buffers N of the route branch according to the number of routes to be forwarded for the data frame of the node data, and dividing the node data into N routes of interface data; obtaining data frames from multiple routes on any forwarding node, combining the data frames of the multiple routes, and forwarding the combined data, so as to realize fast and efficient forwarding of interface data in a communication control system with a large number of interface types and quantities. BRIEF DESCRIPTION OF THE DRAWINGS

[0045] Figure 1 A schematic diagram of a flow chart of a multi-node heterogeneous data forwarding method provided according to an embodiment;

[0046] Figure 2 A flowchart of isomorphic processing of heterogeneous data provided according to an embodiment;

[0047] Figure 3 A frame structure timing diagram of homogeneous data provided according to an embodiment;

[0048] Figure 4 A routing channel matching flow chart provided according to an embodiment;

[0049] Figure 5 It is a structural block diagram of a multi-node heterogeneous data forwarding device of the present application.

[0050] Figure 6 It is a block diagram of an electronic device of the present application.

[0051] Figure 7 It is a block diagram of a computer-readable storage medium of the present application. DETAILED DESCRIPTION

[0052] In order to make the purpose, technical solution and advantages of the present invention clearer, the technical solution in the embodiment of the present invention will be clearly and completely described below in conjunction with the drawings in the embodiment of the present invention. Obviously, the described embodiment is a part of the embodiment of the present invention, not all the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention.

[0053] In order to achieve interconnection between different interfaces in a communication control system, an embodiment of the present application provides a method that can quickly and efficiently forward data from different protocol interfaces such as PCIE, Ethernet, LVDS, CAN, I2C, SPI, UART, etc.

[0054] Field-programmable gate array (FPGA) technology can realize parallel processing, pipeline processing, and ping-pong operation. It can process multiple tasks in parallel and improve the speed of data processing. In addition, tasks can be divided into multiple stages, and FPGA is used for processing in each stage to accelerate the processing speed and improve the throughput of data processing.

[0055] Combined with the VIVADO development platform, the function implementation and verification of a multi-node heterogeneous data forwarding routing arbitration control design was realized through the FPGA VerilogHDL language. In addition, for the increase or decrease of nodes, only some macro definition parameters need to be modified, and the maintenance cost is also low.

[0056] Reference Figure 1 , shows a flowchart of the steps of a multi-node heterogeneous data forwarding method of the present application, which can be applied to an electronic device, wherein the method specifically may include the following steps:

[0057] S101, acquiring node data of different node interfaces through each node interface, storing the node data in a data buffer, and performing isomorphic processing of the node data through a custom data frame format according to the interface timing of the data buffer;

[0058] S102, reading a data frame of the node data from a data buffer, obtaining a destination identifier of the node data, and caching the data frame in a ping-pong operation manner;

[0059] S103, determining the number of buffers N for routing splits according to the number of routes to be forwarded for the data frames of the node data, and dividing the node data into N routes of interface data;

[0060] S104: Acquire data frames from multiple routes on any forwarding node, combine the data frames from the multiple routes, and forward the combined data.

[0061] Another embodiment of the present application further supplements the multi-node heterogeneous data forwarding method provided in the above embodiment.

[0062] Optionally, node data of different node interfaces are obtained through each node interface, the node data is stored in a data buffer, and isomorphic processing of the node data is performed according to the interface timing of the data buffer through a custom data frame format, including:

[0063] Taking the preset number of bits of node interface data as a data unit, receiving the frame header, frame type, destination ID, source ID, data length, data and frame tail of the data frame in sequence;

[0064] If the frame header or frame tail is received incorrectly, the data frame will be discarded;

[0065] If the frame header or frame tail is received correctly, the data and control information are buffered in the data buffer according to the preset number of bytes.

[0066] After receiving the data, each node interface caches it into the AXI4 Stream Data FIFO. According to the AXI4-Stream interface timing, the node data is processed in a custom data frame format to achieve homogeneous processing.

[0067] The homogeneous processing flow of heterogeneous data in the present invention is as follows: Figure 2 As shown in the figure, taking 8 bits of node interface data as a data unit as an example, the frame headers PHEADER0, PHEADER1, PHEADER2, frame type, destination ID, source ID, data length, data of the data frame are received in sequence, and finally the frame tails TAIL0, TAIL1, TAIL2 are received. If the frame header or the frame tail is received incorrectly, the frame is discarded; if it is received correctly, the data and control information are cached in units of 3 bytes to the AXI4 Stream Data FIFO.

[0068] Optionally, a data frame of the node data is read from a data buffer, and a destination identifier of the node data is obtained, and the data frame is cached in a ping-pong operation manner, including:

[0069] When the last data of the data frame is cached in the first-level cache, the second-level cache issues a read request until the last data of the data frame in the first-level cache is read out, and then the read request ends;

[0070] When the L1 cache is writing a frame of data and reading a frame of data at the same time, the L2 cache will not send a read request.

[0071] The frame structure timing diagram of the homogeneous data of the present invention is as follows Figure 3 As shown in the figure, the data frame is read from the AXI4 StreamData FIFO in the homogeneous data module, the destination ID is extracted, and the data frame is cached in a ping-pong operation. When the last data of the data frame is cached in the first-level cache, the second-level cache issues a read request until the last data of the data frame in the first-level cache is read out, and the read request ends. When the first-level cache writes a frame of data and reads a frame of data at the same time, the second-level cache will not send a read request.

[0072] Optionally, according to the number of routes to be forwarded for data frames of the node data, the number of buffers N of the route split is determined, and the node data is divided into N routes of interface data, including:

[0073] Through the for loop, the destination identifiers of the N-way M_AXIS bus are matched with the node numbers;

[0074] If the destination identifier and the node number match successfully, the tvalid control signal corresponding to the route is pulled high, and the data frame after successful routing corresponds to the unique node number, and the data frame is stored in the Stream Data FIFO.

[0075] According to the number of all possible routes for forwarding node data frames, which theoretically also includes the forwarding of the node itself, the number of buffers N for routing branching is determined, and one S_AXIS bus interface data is branched into N M_AXIS bus interface data.

[0076] The routing channel matching flow chart of the present invention is as follows: Figure 4 As shown, the destination ID of the N-way M_AXIS bus is matched with the node number through a for loop. If the match is successful, the tvalid control signal corresponding to the route is pulled high. The data frame after successful routing corresponds to a unique node number, and the data frame is stored in the Stream Data FIFO.

[0077] Optionally, obtaining data frames from multiple routes on any forwarding node, combining the data frames of the multiple routes, and forwarding the combined data includes:

[0078] When N data frames are routed to the same node, they need to be combined. The number of each node is represented by a row vector, and the N M_AXIS buses of the branch are represented by a column vector. The two vectors are multiplied to obtain a new matrix. Each row of the matrix represents the set of interface buses that need to forward data frames to a certain node.

[0079] According to the preset node priority and alternating passage principle, when node M is processed, the node with the highest priority to be processed next is M+1. If node M+1 has no data frame to be forwarded, node M+2 has the highest priority, and so on.

[0080] When N data frames are routed to the same node, they need to be combined. The number of each node is represented by a row vector, and the N M_AXIS buses of the branch are represented by a column vector. The two vectors are multiplied to obtain a new matrix. Each row of the matrix represents the set of interface buses that need to forward data frames to a certain node. According to the custom node priority: node 0> node 1> node 2...> node N, and the principle of alternating passage, when node M is processed, the next node with the highest priority to be processed is M+1. If node M+1 has no data frames to be forwarded, node M+2 has the highest priority, and so on. If nodes M+1, M+2,...N, 0, 1...M-1 have no data frames to be forwarded, the data frames of node M can continue to be forwarded.

[0081] The 4-node state transfer table of the arbitration mechanism of the present invention is shown in Table 1. According to the self-defined node priority and the principle of alternating passage, the data of each node is guaranteed to be alternately forwarded, and the data of other nodes will not be blocked and lost because the node always has data occupying the forwarding interface. Taking 4 nodes as an example, bit[0] of the 4-node data frame request represents node 0, bit[1] represents node 1, bit[2] represents node 2, and bit[3] represents node 3; the current state represents the state of a certain node that can be processed preferentially at present, and the next state represents the state of the next node that can be processed preferentially.

[0082] Table 1

[0083] Serial number Current Status 4-node data frame request Next state 1 2'b00 4'bxxx1 2'b01 2 2'b00 4'bxx10 2'b10 3 2'b00 4'bx100 2'b11 4 2'b00 4'b1000 2'b00 5 2'b01 4'bxx1x 2'b10 6 2'b01 4'bx10x 2'b11 7 2'b01 4'b100x 2'b00 8 2'b01 4'b0001 2'b01 9 2'b10 4'bx1xx 2'b11 10 2'b10 4'b10xx 2'b00 11 2'b10 4'b00x1 2'b01 12 2'b10 4'b0010 2'b10 13 2'b11 4'b1xxx 2'b00 14 2'b11 4'b0xx1 2'b01 15 2'b11 4'b0x10 2'b10 16 2'b11 4'b0100 2'b11

[0084] In this embodiment, when a node has data to receive, Figure 2 The flowchart shown in the figure performs isomorphic processing of data frames and caches data and control information in units of 3 bytes into the AXI4 Stream Data FIFO (the input and output interfaces are both data buffers of the AXIS interface). It includes the following steps:

[0085] Step 101, in the SIDLE state, if the received data is valid and equal to PHEADER0 of the frame header, then enter the next state, otherwise continue to wait for data reception.

[0086] Step 102, in the SHEAD1 state, if the received data is valid and equal to the PHEADER1 of the frame header, then enter the next state, otherwise enter the SEPKT state and discard the data frame.

[0087] Step 103, in the SHEAD2 state, if the received data is valid and equal to the PHEADER2 of the frame header, then enter the next state, otherwise enter the SEPKT state and discard the data frame.

[0088] Step 104, receiving the frame type, destination ID, and source ID in sequence.

[0089] Step 105, in the SRLEN state, a data frame length of 3 bytes is received. If the data frame length is greater than 0, the next state is entered; otherwise, the SEPKT state is entered and the data frame is discarded.

[0090] Step 106, in the SRDAT state, the data payload is received until the received data count is equal to the data frame length, then the next state is entered, otherwise, the receiving of data is continued.

[0091] Step 107, in the STAIL0 state, if the received data is valid and equal to PTAIL0 at the end of the frame, then enter the next state, otherwise enter the SEPKT state and discard the data frame.

[0092] Step 108, in the STAIL1 state, if the received data is valid and equal to the PTAIL1 of the frame header, then enter the next state, otherwise enter the SEPKT state and discard the data frame.

[0093] Step 109, in the STAIL2 state, if the received data is valid and equal to PTAIL2 of the frame header, then enter the next state, otherwise enter the SEPKT state and discard the data frame.

[0094] In this embodiment, after the node data frame is routed, it is divided into N M_AXIS bus interface data, and each interface data frame corresponds to a unique destination ID, which is matched with the node number through a for loop until the node number is successfully matched. Then the tvalid control signal corresponding to the path is pulled high, and the data frame is stored in the Stream Data FIFO, waiting for arbitration. The steps include:

[0095] Step 301, when the m_axis_tvalid signal of the secondary buffer of the data information extraction module is pulled high, it indicates that the node has data frames to be forwarded and enters the next state.

[0096] Step 302, the data frame to be forwarded is routed into N M_AXIS bus interface data, and the unique destination ID corresponding to each interface data frame is searched and matched with the node number i, through a for loop (i=0, i<=N, i++), when the match is successful, enter the next state.

[0097] Step 303, pull up the m_axis_tready signal of the secondary buffer of the data information extraction module and read out the data frame, and then pull up the tvalid signal of the M_AXIS bus interface that successfully matches the node number to enter the next state.

[0098] Step 304: The M_AXIS bus interface control signal with successfully matched node numbers, the destination ID, and the data frame to be forwarded by the node are stored together in the Stream Data FIFO, waiting for arbitration combining processing.

[0099] In this embodiment, when N data frames are routed to the same node, they need to be combined, the number of each node is represented by a row vector A, and the N M_AXIS buses of the branch are represented by a column vector B. The two vectors are multiplied to obtain a new matrix C, and each row of the matrix represents a set of all interface buses that need to forward data frames to a certain node; for example: the first row represents all interface buses that need to forward data to the node numbered 0, the second row represents all interface buses that need to forward data to the node numbered 1, and the Nth row represents all interface buses that need to forward data to the node numbered N; each column of the matrix C represents the N interface buses generated after a certain node is processed by the routing module.

[0100] A=[N0,N1,Ni,...NN](i=0,i<=N,i++)

[0101]

[0102] A*B=C

[0103]

[0104] In this embodiment, taking the arbitration mechanism 4 nodes as an example, the state transition table is shown in Table 1. According to the customized node priority and the principle of alternating passage, bit[0] of the 4-node data frame request represents node 0, bit[1] represents node 1, bit[2] represents node 2, and bit[3] represents node 3; the current state represents the state of a certain node that can be processed preferentially at present, and the next state represents the state of the next node that can be processed preferentially.

[0105] The state is 2'b00. If all four nodes have data to forward, the data from node 0 is forwarded first, and the state enters 2'b01; when node 0 has no data to forward, and the other three nodes have data to forward, the data from node 1 is forwarded first, and the state enters 2'b10; when both nodes 0 and 1 have no data to forward, and the other two nodes have data to forward, the data from node 2 is forwarded first, and the state enters 2'b11; when nodes 0, 1, and 2 have no data to forward, and node 4 has data to forward, the data from node 4 is forwarded directly, and the state enters 2'b00;

[0106] The state is 2'b01. If all four nodes have data to forward, the data from node 1 is forwarded first, and the state enters 2'b10; when node 1 has no data to forward, and the other three nodes have data to forward, the data from node 2 is forwarded first, and the state enters 2'b11; when both nodes 1 and 2 have no data to forward, and the other two nodes have data to forward, the data from node 3 is forwarded first, and the state enters 2'b00; when nodes 1, 2, and 3 have no data to forward, and node 0 has data to forward, the data from node 0 is forwarded directly, and the state enters 2'b01;

[0107] The state is 2'b10. If all four nodes have data to forward, the data from node 2 is forwarded first, and the state enters 2'b11; when node 2 has no data to forward, and the other three nodes have data to forward, the data from node 3 is forwarded first, and the state enters 2'b00; when both nodes 2 and 3 have no data to forward, and the other two nodes have data to forward, the data from node 0 is forwarded first, and the state enters 2'b01; when nodes 0, 2, and 3 have no data to forward, and node 1 has data to forward, the data from node 4 is forwarded directly, and the state enters 2'b10;

[0108] The state is 2'b11. If all four nodes have data to forward, the data of node 3 is forwarded first, and the state enters 2'b00; when node 3 has no data to forward and the other three nodes have data to forward, the data of node 0 is forwarded first, and the state enters 2'b01; when both nodes 0 and 3 have no data to forward and the other two nodes have data to forward, the data of node 1 is forwarded first, and the state enters 2'b10; when nodes 0, 1 and 3 have no data to forward and node 2 has data to forward, the data of node 2 is forwarded directly, and the state enters 2'b11.

[0109] It should be noted that each implementable method in this embodiment may be implemented separately, or may be implemented in combination in any combination without conflict, and this application is not limited thereto.

[0110] The embodiment of the present invention provides a multi-node heterogeneous data forwarding method, including: obtaining node data of different node interfaces through each node interface, storing the node data in a data buffer, and performing isomorphic processing of the node data through a custom data frame format according to the interface timing of the data buffer; reading a data frame of the node data from the data buffer, and obtaining a destination identifier of the node data, and caching the data frame in a ping-pong operation manner; determining the number of buffers N of the route branch according to the number of routes to be forwarded by the data frame of the node data, and dividing the node data into N routes of interface data; obtaining data frames from multiple routes on any forwarding node, combining the data frames of the multiple routes, and forwarding the combined data, so as to realize fast and efficient forwarding of interface data in a communication control system with a high-speed communication requirement of many types and large numbers of interfaces.

[0111] Another embodiment of the present application provides a multi-node heterogeneous data forwarding device, which is used to execute the multi-node heterogeneous data forwarding method provided in the above embodiment.

[0112] like Figure 5 , which is a schematic diagram of the structure of a multi-node heterogeneous data forwarding device provided in an embodiment of the present application. The xx device includes a homogeneous processing module 501 for heterogeneous data, a data information extraction module 502, a data routing processing module 503 and a data arbitration processing module 504, wherein:

[0113] The isomorphic processing module 501 for heterogeneous data is used to obtain node data of different node interfaces through various node interfaces, store the node data in a data buffer, and perform isomorphic processing of the node data according to the interface timing of the data buffer and through a custom data frame format;

[0114] The data information extraction module 502 is used to read the data frame of the node data from the data buffer, obtain the destination identifier of the node data, and cache it with the data frame in a ping-pong operation;

[0115] The data routing processing module 503 is used to determine the number of buffers N for routing splitting according to the number of routes to be forwarded by the data frame of the node data, and to divide the node data into N routes of interface data;

[0116] The data arbitration processing module 504 is used to obtain data frames from multiple routes on any forwarding node, combine the data frames of the multiple routes, and forward the combined data.

[0117] Regarding the device in this embodiment, the specific manner in which each module performs operations has been described in detail in the embodiment of the method, and will not be elaborated here.

[0118] Another embodiment of the present application further supplements the multi-node heterogeneous data forwarding device provided in the above embodiment.

[0119] Optionally, the homogeneous processing module for heterogeneous data is used to:

[0120] Taking the preset number of bits of node interface data as a data unit, receiving the frame header, frame type, destination ID, source ID, data length, data and frame tail of the data frame in sequence;

[0121] If the frame header or frame tail is received incorrectly, the data frame will be discarded;

[0122] If the frame header or frame tail is received correctly, the data and control information are buffered in the data buffer according to the preset number of bytes.

[0123] Optionally, the data information extraction module is used to:

[0124] When the last data of the data frame is cached in the first-level cache, the second-level cache issues a read request until the last data of the data frame in the first-level cache is read out, and then the read request ends;

[0125] When the L1 cache is writing a frame of data and reading a frame of data at the same time, the L2 cache will not send a read request.

[0126] Optionally, the data routing processing module is used to:

[0127] Through the for loop, the destination identifiers of the N-way M_AXIS bus are matched with the node numbers;

[0128] If the destination identifier and the node number match successfully, the tvalid control signal corresponding to the route is pulled high, and the data frame after successful routing corresponds to the unique node number, and the data frame is stored in the Stream Data FIFO.

[0129] Optionally, the data arbitration processing module is used to:

[0130] When N data frames are routed to the same node, they need to be combined. The number of each node is represented by a row vector, and the N M_AXIS buses of the branch are represented by a column vector. The two vectors are multiplied to obtain a new matrix. Each row of the matrix represents the set of interface buses that need to forward data frames to a certain node.

[0131] According to the preset node priority and alternating passage principle, when node M is processed, the node with the highest priority to be processed next is M+1. If node M+1 has no data frame to be forwarded, node M+2 has the highest priority, and so on.

[0132] As for the device embodiment, since it is basically similar to the method embodiment, the description is relatively simple, and the relevant parts can be referred to the partial description of the method embodiment.

[0133] The embodiment of the present invention provides a multi-node heterogeneous data forwarding device, including: obtaining node data of different node interfaces through each node interface, storing the node data in a data buffer, and performing isomorphic processing of the node data through a custom data frame format according to the interface timing of the data buffer; reading a data frame of the node data from the data buffer, and obtaining a destination identifier of the node data, and caching the data frame in a ping-pong operation manner; determining the number of buffers N of the route branch according to the number of routes to be forwarded by the data frame of the node data, and dividing the node data into N routes of interface data; obtaining data frames from multiple routes on any forwarding node, combining the data frames of the multiple routes, and forwarding the combined data, so as to realize fast and efficient forwarding of interface data in a communication control system with a large number of interface types and quantities and high-speed communication requirements.

[0134] Optionally, an embodiment of the present application further provides an electronic device, comprising: a processor, a memory, and a computer program stored in the memory and executable on the processor. When the computer program is executed by the processor, the various processes of the above-mentioned method embodiment are implemented, and the same technical effect can be achieved. To avoid repetition, it will not be described here.

[0135] The embodiment of the present application also provides a computer-readable storage medium, on which a computer program is stored, and when the computer program is executed by a processor, each process of the above method embodiment is implemented, and the same technical effect can be achieved. To avoid repetition, it is not repeated here. The computer-readable storage medium is, for example, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk.

[0136] Figure 6 800 is a block diagram of an electronic device 800 shown in the present application. For example, the electronic device 800 may be a mobile phone, a computer, a digital broadcast terminal, a messaging device, a game console, a tablet device, a medical device, a fitness device, a personal digital assistant, etc.

[0137] Reference Figure 6 , the electronic device 800 may include one or more of the following components: a processing component 802 , a memory 804 , a power component 806 , a multimedia component 808 , an audio component 810 , an input / output (I / O) interface 812 , a sensor component 814 , and a communication component 816 .

[0138] The processing component 802 generally controls the overall operation of the electronic device 800, such as operations associated with display, phone calls, data communications, camera operations, and recording operations. The processing component 802 may include one or more processors 820 to execute instructions to complete all or part of the steps of the above method. In addition, the processing component 802 may include one or more modules to facilitate the interaction between the processing component 802 and other components. For example, the processing component 802 may include a multimedia module to facilitate the interaction between the multimedia component 808 and the processing component 802.

[0139] The memory 804 is configured to store various types of data to support operations on the device 800. Examples of such data include instructions for any application or method operating on the electronic device 800, contact data, phone book data, messages, images, videos, etc. The memory 804 can be implemented by any type of volatile or non-volatile storage device or a combination thereof, such as static random access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic memory, flash memory, magnetic disk or optical disk.

[0140] The power supply component 806 provides power to the various components of the electronic device 800. The power supply component 806 may include a power management system, one or more power supplies, and other components associated with generating, managing, and distributing power to the electronic device 800.

[0141] The multimedia component 808 includes a screen that provides an output interface between the electronic device 800 and the user. In some embodiments, the screen may include a liquid crystal display (LCD) and a touch panel (TP). If the screen includes a touch panel, the screen may be implemented as a touch screen to receive input signals from the user. The touch panel includes one or more touch sensors to sense touch, slide, and gestures on the touch panel. The touch sensor may not only sense the boundaries of the touch or slide action, but also detect the duration and pressure associated with the touch or slide operation. In some embodiments, the multimedia component 808 includes a front camera and / or a rear camera. When the device 800 is in an operating mode, such as a shooting mode or a video mode, the front camera and / or the rear camera may receive external multimedia data. Each front camera and the rear camera may be a fixed optical lens system or have a focal length and optical zoom capability.

[0142] The audio component 810 is configured to output and / or input audio signals. For example, the audio component 810 includes a microphone (MIC), and when the electronic device 800 is in an operating mode, such as a call mode, a recording mode, and a voice recognition mode, the microphone is configured to receive an external audio signal. The received audio signal can be further stored in the memory 804 or sent via the communication component 816. In some embodiments, the audio component 810 also includes a speaker for outputting audio signals.

[0143] I / O interface 812 provides an interface between processing component 802 and peripheral interface modules, such as keyboards, click wheels, buttons, etc. These buttons may include but are not limited to: home button, volume button, start button, and lock button.

[0144] The sensor assembly 814 includes one or more sensors for providing various aspects of status assessment for the electronic device 800. For example, the sensor assembly 814 can detect the open / closed state of the device 800, the relative positioning of components, such as the display and keypad of the electronic device 800, and the sensor assembly 814 can also detect the position change of the electronic device 800 or a component of the electronic device 800, the presence or absence of contact between the user and the electronic device 800, the orientation or acceleration / deceleration of the electronic device 800, and the temperature change of the electronic device 800. The sensor assembly 814 may include a proximity sensor configured to detect the presence of nearby objects without any physical contact. The sensor assembly 814 may also include an optical sensor, such as a CMOS or CCD image sensor, for use in imaging applications. In some embodiments, the sensor assembly 814 may also include an accelerometer, a gyroscope sensor, a magnetic sensor, a pressure sensor, or a temperature sensor.

[0145] The communication component 816 is configured to facilitate wired or wireless communication between the electronic device 800 and other devices. The electronic device 800 can access a wireless network based on a communication standard, such as WiFi, a carrier network (such as 2G, 3G, 4G or 5G), or a combination thereof. In an exemplary embodiment, the communication component 816 receives a broadcast signal or broadcast operation information from an external broadcast management system via a broadcast channel. In an exemplary embodiment, the communication component 816 also includes a near field communication (NFC) module to facilitate short-range communication. For example, the NFC module can be implemented based on radio frequency identification (RFID) technology, infrared data association (IrDA) technology, ultra-wideband (UWB) technology, Bluetooth (BT) technology and other technologies.

[0146] In an exemplary embodiment, the electronic device 800 may be implemented by one or more application-specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), controllers, microcontrollers, microprocessors, or other electronic components to perform the above methods.

[0147] In an exemplary embodiment, a non-transitory computer-readable storage medium including instructions is also provided, such as a memory 804 including instructions, and the instructions can be executed by a processor 820 of an electronic device 800 to perform the above method. For example, the non-transitory computer-readable storage medium can be a ROM, a random access memory (RAM), a CD-ROM, a magnetic tape, a floppy disk, an optical data storage device, etc.

[0148] Figure 7 19 is a block diagram of a computer-readable storage medium 1900 shown in the present application. For example, the computer-readable storage medium 1900 may be provided as a server.

[0149] Reference Figure 7 , the computer-readable storage medium 1900 includes a processing component 1922, which further includes one or more processors, and a memory resource represented by a memory 1932 for storing instructions, such as an application, that can be executed by the processing component 1922. The application stored in the memory 1932 may include one or more modules, each corresponding to a set of instructions. In addition, the processing component 1922 is configured to execute instructions to perform the above method.

[0150] The computer readable storage medium 1900 may also include a power supply component 1926 configured to perform power management of the computer readable storage medium 1900, a wired or wireless network interface 1950 configured to connect the computer readable storage medium 1900 to a network, and an input / output (I / O) interface 1958. The computer readable storage medium 1900 may operate based on an operating system stored in the memory 1932, such as Windows Server™, Mac OS X™, Unix™, Linux™, FreeBSD™ or the like.

[0151] It should be noted that, in this article, the terms "include", "comprises" or any other variations thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, an element defined by the sentence "comprises a ..." does not exclude the existence of other identical elements in the process, method, article or device including the element.

[0152] Through the description of the above implementation methods, those skilled in the art can clearly understand that the above-mentioned embodiment methods can be implemented by means of software plus a necessary general hardware platform, and of course by hardware, but in many cases the former is a better implementation method. Based on such an understanding, the technical solution of the present application, or the part that contributes to the prior art, can be embodied in the form of a software product, which is stored in a storage medium (such as ROM / RAM, a magnetic disk, or an optical disk), and includes a number of instructions for a terminal (which can be a mobile phone, a computer, a server, an air conditioner, or a network device, etc.) to execute the methods described in each embodiment of the present application.

[0153] The embodiments of the present application are described above in conjunction with the accompanying drawings, but the present application is not limited to the above-mentioned specific implementation methods. The above-mentioned specific implementation methods are merely illustrative and not restrictive. Under the guidance of the present application, ordinary technicians in this field can also make many forms without departing from the purpose of the present application and the scope of protection of the claims, all of which are within the protection of the present application.

[0154] Those of ordinary skill in the art will appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed in the present application can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.

[0155] Those skilled in the art can clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and units described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.

[0156] In the embodiments provided in the present application, it should be understood that the disclosed devices and methods can be implemented in other ways. For example, the device embodiments described above are only schematic. For example, the division of the units is only a logical function division. There may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.

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

[0158] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.

[0159] If the functions are implemented in the form of software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application, or the part that contributes to the prior art or the part of the technical solution, can be embodied in the form of a software product, which is stored in a storage medium and includes several instructions for a computer device (which can be a personal computer, server, or network device, etc.) to perform all or part of the steps of the methods described in each embodiment of the present application. The aforementioned storage medium includes: various media that can store program codes, such as USB flash drives, mobile hard drives, ROM, RAM, magnetic disks, or optical disks.

[0160] The above is only a specific implementation of the present application, but the protection scope of the present application is not limited thereto. Any person skilled in the art who is familiar with the present technical field can easily think of changes or substitutions within the technical scope disclosed in the present application, which should be included in the protection scope of the present application. Therefore, the protection scope of the present application should be based on the protection scope of the claims.

[0161] The above are preferred embodiments of the present invention. It should be pointed out that, for ordinary technicians in this technical field, several improvements and modifications can be made without departing from the principles of the present invention. These improvements and modifications should also be regarded as within the scope of protection of the present invention.

Claims

1. A multi-node heterogeneous data forwarding method, characterized in that: include: Obtain node data of different node interfaces through each node interface, store the node data in a data buffer, and perform isomorphic processing of the node data through a custom data frame format according to the interface timing of the data buffer; Reading the data frame of the node data from the data buffer, and obtaining the destination identifier of the node data, and caching the data frame in a ping-pong operation manner; Determine the number of buffers N of routing branches according to the number of routes to be forwarded for the data frames of the node data, and divide the node data into N routes of interface data; The data frames from multiple routes on any forwarding node are obtained, the data frames from the multiple routes are combined, and the combined data are forwarded.

2. The multi-node heterogeneous data forwarding method according to claim 1, characterized in that: The node data of different node interfaces are obtained through each node interface, the node data are stored in a data buffer, and the node data is processed isomorphically according to the interface timing of the data buffer through a custom data frame format, including: Taking the preset number of bits of node interface data as a data unit, receiving the frame header, frame type, destination ID, source ID, data length, data and frame tail of the data frame in sequence; If the frame header or frame tail is received incorrectly, the data frame will be discarded; If the frame header or frame tail is received correctly, the data and control information are buffered in the data buffer according to a preset number of bytes.

3. The multi-node heterogeneous data forwarding method according to claim 1, characterized in that: The step of reading the data frame of the node data from the data buffer and obtaining the destination identifier of the node data, and caching the data frame in a ping-pong operation manner, comprises: When the last data of the data frame is cached in the first-level cache, the second-level cache issues a read request until the last data of the data frame in the first-level cache is read out, and then the read request ends; When the L1 cache is writing a frame of data and reading a frame of data at the same time, the L2 cache will not send a read request.

4. The multi-node heterogeneous data forwarding method according to claim 1, characterized in that: The method of determining the number of buffers N of routing branches according to the number of routes to be forwarded by the data frames of the node data, and dividing the node data into N paths of interface data, comprises: Through the for loop, the destination identifiers of the N-way M_AXIS bus are matched with the node numbers; If the destination identifier and the node number match successfully, the tvalid control signal corresponding to the route is pulled high, and the data frame after successful routing corresponds to a unique node number, and the data frame is stored in the Stream Data FIFO.

5. The multi-node heterogeneous data forwarding method according to claim 1, characterized in that: The step of obtaining data frames from multiple routes on any forwarding node, combining the data frames from the multiple routes, and forwarding the combined data includes: When N data frames are routed to the same node, they need to be combined. The number of each node is represented by a row vector, and the N M_AXIS buses of the branch are represented by a column vector. The two vectors are multiplied to obtain a new matrix. Each row of the matrix represents the set of interface buses that need to forward data frames to a certain node. According to the preset node priority and alternating passage principle, when node M is processed, the node with the highest priority to be processed next is M+1. If node M+1 has no data frame to be forwarded, node M+2 has the highest priority, and so on.

6. A multi-node heterogeneous data forwarding device, characterized in that: include: A homogeneous processing module for heterogeneous data is used to obtain node data of different node interfaces through various node interfaces, store the node data in a data buffer, and perform homogeneous processing of the node data according to the interface timing of the data buffer through a custom data frame format; A data information extraction module, used to read the data frame of the node data from the data buffer, obtain the destination identifier of the node data, and cache it with the data frame in a ping-pong operation; A data routing processing module, used to determine the number of buffers N for routing splits according to the number of routes to be forwarded for the data frames of the node data, and to divide the node data into N routes of interface data; The data arbitration processing module is used to obtain data frames from multiple routes on any forwarding node, combine the data frames of the multiple routes, and forward the combined data.

7. The multi-node heterogeneous data forwarding device according to claim 6, characterized in that: The homogeneous processing module for heterogeneous data is used to: Taking the preset number of bits of node interface data as a data unit, receiving the frame header, frame type, destination ID, source ID, data length, data and frame tail of the data frame in sequence; If the frame header or frame tail is received incorrectly, the data frame will be discarded; If the frame header or frame tail is received correctly, the data and control information are buffered in the data buffer according to a preset number of bytes.

8. The multi-node heterogeneous data forwarding method according to claim 6, characterized in that: The data information extraction module is used to: When the last data of the data frame is cached in the first-level cache, the second-level cache issues a read request until the last data of the data frame in the first-level cache is read out, and then the read request ends; When the L1 cache is writing a frame of data and reading a frame of data at the same time, the L2 cache will not send a read request.

9. An electronic device, characterized in that: include: A processor, a memory, and a computer program stored in the memory and executable on the processor, wherein the computer program implements the method according to any one of claims 1 to 5 when executed by the processor.

10. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the method according to any one of claims 1 to 5 is implemented.