Data processing method and device based on multi-data processing engine sharing, network equipment and readable storage medium

CN122970086APending Publication Date: 2026-10-23SUZHOU CENTEC COMM CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202611285365.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2026-08-24
Publication Date
2026-10-23

AI Technical Summary

Technical Problem

但是不同通道上流量大小不一致的情况下,会造成数据处理引擎负载不均匀,部分数据处理引擎超负荷运行,部分数据处理引擎可能处于空转状态

Benefits of technology

[0016]本发明提供一种基于多数据处理引擎共享的数据处理方法、装置、网络设备和可读存储介质,获取待处理的数据流量后,基于数据流量的接收顺序并按照设定编号模式对数据流量进行编号,得到对应的编号,设定编号模式基于数据处理引擎的数量进行设置。基于数据流量的编号,将数据流量送至对应的数据处理引擎进行处理,针对处理完成的数据流量,按照 数据流量的编号顺序进行保序恢复,将恢复后的数据流量发送至下一环节。本方案中,将数据流量按照设定编号模式编号后送至对应的数据处理引擎,可平衡各数据处理引擎的负载,提高数据处理引擎的利用率,且在处理完成后,按照数据流量的编号顺序进行保序恢复,保障了数据流量处理前后的顺序一致性。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122970086A_ABST
    Figure CN122970086A_ABST
Patent Text Reader

Abstract

The application provides a data processing method and device based on multi-data processing engine sharing, network equipment and a readable storage medium. After obtaining data traffic to be processed, the data traffic is numbered based on the receiving order of the data traffic and according to a set numbering mode, and a corresponding number is obtained. The numbering mode is set based on the number of data processing engines. Based on the number of data traffic, the data traffic is sent to the corresponding data processing engine for processing. For the processed data traffic, the data traffic is recovered in sequence according to the number of the data traffic, and the recovered data traffic is sent to the next link. In the scheme, the data traffic is numbered according to the set numbering mode and then sent to the corresponding data processing engine, so that the load of each data processing engine can be balanced, the utilization rate of the data processing engine is improved, and after processing, the data traffic is recovered in sequence according to the number of the data traffic, so that the sequence consistency before and after the data traffic processing is ensured.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of network technology, and more specifically, to a data processing method, apparatus, network device, and readable storage medium based on the sharing of multiple data processing engines. Background Technology

[0002] In chip design, the number of engines required for different processing behaviors is not the same. Data processing engines are often allocated according to the data throughput. With multiple data processing engines, if the traffic volume of each channel is not the same, some engines will be idle and some engines will be overloaded.

[0003] In existing technologies, it is common practice to configure the same number of data processing engines for each channel, such as Figure 1 As shown in the diagram, the number of data processing engines needs to be designed based on the weakest processing capability of each engine. This approach leads to an increased number of data processing engines, resulting in a significant waste of processing power, as well as an increase in chip area and power consumption.

[0004] In addition, some existing technologies employ schemes that design the processing power of each data processing engine according to the actual required average throughput, such as... Figure 2 As shown in the figure. However, when the traffic volume is inconsistent on different channels, it will cause uneven load on the data processing engine. Some data processing engines will run overloaded, while others may be idling. Summary of the Invention

[0005] The purpose of this invention is to provide a data processing method, apparatus, network device, and readable storage medium based on the sharing of multiple data processing engines, so as to balance the load of each data processing engine and improve the utilization rate of the data processing engines.

[0006] In a first aspect, the present invention provides a data processing method based on the sharing of multiple data processing engines, the method comprising: The system acquires the data traffic to be processed, and assigns numbers to the data traffic based on the receiving order and according to a set numbering pattern to obtain corresponding numbers. The set numbering pattern is set based on the number of data processing engines. Based on the number of the data traffic, the data traffic is sent to the corresponding data processing engine for processing; For the processed data traffic, the data traffic is restored in the order of its number, and the restored data traffic is sent to the next stage.

[0007] In an optional implementation, the numbering pattern is sequentially and cyclically numbered according to the number of data processing engines; The step of numbering the data traffic according to the receiving order and a set numbering pattern to obtain the corresponding number includes: The previous data flow is determined based on the receiving order of the data flow, and the number of the previous data flow is obtained; The current number is determined based on the number of the previous data flow according to the set numbering pattern, and the corresponding number is obtained.

[0008] In an optional implementation, the numbering mode includes a set of numbering sequences, the numbering sequence including multiple numbers, and the number of the multiple numbers is consistent with the number of data processing engines; The step of determining the current number based on the number of the previous data flow according to the set numbering pattern to obtain the corresponding number includes: If the number of the previous data traffic is not the last number in the numbering sequence, then the current number is determined to be the number following the number of the previous data traffic according to the set numbering pattern. When the number of the previous data traffic is the last number in the numbering sequence, the current number is determined to be the first number in the numbering sequence according to the set numbering pattern.

[0009] In an optional implementation, the step of sending the data traffic to the corresponding data processing engine for processing based on the data traffic number includes: Store the data traffic carrying the number into the cache queue; For the data traffic in the cache queue, a round-robin scheduling strategy is adopted. Based on the number of the data traffic obtained in the round-robin, the data traffic is sent to the corresponding data processing engine for processing.

[0010] In an optional implementation, the step of sending the data traffic to the corresponding data processing engine for processing based on the polled data traffic number includes: For the polled data traffic, check whether the data processing engine corresponding to the data traffic number is in an idle state; If the data processing engine is idle, the data traffic is sent to the data processing engine for processing; If the data processing engine is not in an idle state, a waiting period is triggered until the data processing engine switches to an idle state, at which point the data traffic is sent to the data processing engine for processing.

[0011] In an optional implementation, the step of restoring the processed data traffic in order-preserving manner according to the number sequence of the data traffic includes: For the processed data traffic, check whether the number of the data traffic is the currently expected number; Based on the detection results, the data traffic is restored in order.

[0012] In an optional implementation, the step of performing order-preserving recovery of the data traffic based on the detection results includes: If the detection result indicates that the number of the data traffic is not the currently expected number, a waiting period is triggered until the data traffic with the currently expected number is received and the currently expected number is updated to the number of the data traffic. Then, the data traffic is received and the order-preserving recovery is performed. If the detection result indicates that the number of the data traffic is the currently expected number, then the data traffic is received and order-preserving recovery is performed.

[0013] Secondly, the present invention provides a data processing apparatus based on the sharing of multiple data processing engines, the apparatus comprising: The numbering generation module is used to acquire the data traffic to be processed, and to number the data traffic according to the receiving order of the data traffic and according to the set numbering pattern to obtain the corresponding number. The set numbering pattern is set based on the number of data processing engines. The distribution module is used to send the data traffic to the corresponding data processing engine for processing based on the data traffic number; The recovery module is used to restore the processed data traffic in order according to the number sequence of the data traffic, and send the restored data traffic to the next stage.

[0014] Thirdly, the present invention provides a network device including a processor and a memory, the memory storing computer-executable instructions executable by the processor, the processor executing the computer-executable instructions to implement the method described in any of the foregoing embodiments.

[0015] Fourthly, the present invention provides a computer-readable storage medium storing computer-executable instructions, which, when invoked and executed by a processor, cause the processor to implement the method described in any of the foregoing embodiments.

[0016] This invention provides a data processing method, apparatus, network device, and readable storage medium based on shared data processing engines. After acquiring the data traffic to be processed, the data traffic is numbered according to the receiving order and a pre-defined numbering pattern to obtain corresponding numbers. The numbering pattern is set based on the number of data processing engines. Based on the data traffic numbers, the data traffic is sent to the corresponding data processing engine for processing. For the processed data traffic, the order is restored according to the numbering sequence, and the restored data traffic is sent to the next stage. In this solution, numbering the data traffic according to the pre-defined numbering pattern before sending it to the corresponding data processing engine can balance the load of each data processing engine, improve the utilization rate of the data processing engines, and ensure the consistency of the data traffic order before and after processing by restoring the order according to the numbering sequence. Attached Figure Description

[0017] To more clearly illustrate the technical solutions of the embodiments of the present invention, the accompanying drawings used in the embodiments of the present invention will be briefly introduced below. It should be understood that the following drawings only show some embodiments of the present invention and should not be regarded as a limitation on the scope. For those skilled in the art, other related drawings can be obtained based on these drawings without creative effort.

[0018] Figure 1 This is a logical diagram of data processing in the prior art; Figure 2 This is another logical diagram of data processing in the prior art; Figure 3 A flowchart of a data processing method based on shared data processing engines provided in an embodiment of the present invention; Figure 4 This is a logical diagram illustrating data processing in an embodiment of the present invention; Figure 5 for Figure 4 A flowchart of the sub-steps included in S11; Figure 6 for Figure 4 A flowchart of the sub-steps included in S12; Figure 7 for Figure 4 A flowchart of the sub-steps included in S13; Figure 8 This is a functional block diagram of a data processing device based on multiple data processing engines sharing, provided in an embodiment of the present invention. Figure 9 This is a structural block diagram of a network device provided in an embodiment of the present invention. Detailed Implementation

[0019] The technical solutions of the present invention will now be described with reference to the accompanying drawings in the embodiments of the present invention.

[0020] This invention provides a data processing method based on the sharing of multiple data processing engines. This method can be applied to network devices, such as those in Ethernet environments with high real-time data transmission requirements, such as data center networks and industrial networks. Please refer to... Figure 3 The flowchart below shows a data processing method based on shared data processing engines provided in an embodiment of the present invention. The data processing method includes the following steps: S11, acquire the data traffic to be processed, number the data traffic according to the receiving order of the data traffic and according to the set numbering mode to obtain the corresponding number, wherein the set numbering mode is set based on the number of data processing engines; S12, based on the number of the data traffic, send the data traffic to the corresponding data processing engine for processing; S13, For the processed data traffic, restore the order according to the number sequence of the data traffic, and send the restored data traffic to the next stage.

[0021] Please refer to the following: Figure 4 The data processing method provided in this embodiment no longer sends data traffic to a fixed data processing engine. Instead, it pre-assigns a number to each data traffic received by the input module according to the number of data processing engines, and forces them to be evenly distributed to all data processing engines for processing through the engine distribution mechanism.

[0022] In this way, regardless of the channel from which the data traffic comes, it can be fairly distributed among all data engines, solving the problem of uneven load distribution. After the data traffic has been processed out of order in each data processing engine, this solution uses a recovery mechanism based on the numbering order of the data traffic in the receiving module. This allows the receiving end to rearrange the processed data traffic back to its original order according to the initially assigned numbering order, ultimately ensuring that the data traffic flows out in an organized and disciplined manner. In this way, by first scattering and then restoring, this solution achieves multi-engine load balancing, improves overall processing efficiency, and perfectly guarantees the consistency of the order before and after data processing.

[0023] The specific implementation methods of each of the above steps will be explained in detail below.

[0024] In this embodiment, the numbering mode is set to sequentially and cyclically number the data processing engines. For example, assuming that the number of data processing engines is 2, the numbering mode is set to sequentially and cyclically number 0, 1, 0, 1...

[0025] Based on this, please refer to Figure 5 The step of numbering data traffic according to the received order and a set numbering pattern to obtain the corresponding number can be achieved in the following way: S111, determine the previous data traffic based on the receiving order of the data traffic, and obtain the number of the previous data traffic; S112, determine the current number based on the number of the previous data flow according to the set numbering pattern, and obtain the corresponding number.

[0026] In this embodiment, data traffic is numbered sequentially and cyclically according to a set numbering pattern. Therefore, the current data traffic number is the next in a row after the previous data traffic number. Based on this, when numbering the current data traffic, the number of the previous data traffic can be determined, and then the current number can be determined based on the previous data traffic according to the set numbering pattern. For example, if the set numbering pattern is 0, 1, 0, 1..., and the number of the previous data traffic is 0, then the number of the current data traffic can be 1.

[0027] In this embodiment, during actual implementation, the numbering pattern can include a set of numbering sequences, which contain multiple numbers, the number of which is consistent with the number of data processing engines. For example, when there are two data processing engines, the numbering sequence can be [0,1]. When numbering data traffic, the numbers are sequentially and cyclically assigned according to this numbering sequence.

[0028] Based on this, the steps described above for determining the current number based on the previous data flow's number according to the set numbering pattern, and obtaining the corresponding number, can be implemented in the following way: If the number of the previous data traffic is not the last number in the numbering sequence, then the current number is determined to be the number following the number of the previous data traffic according to the set numbering pattern. When the number of the previous data traffic is the last number in the numbering sequence, the current number is determined to be the first number in the numbering sequence according to the set numbering pattern.

[0029] Taking the above example, if the numbering mode is designed as a number sequence, then it is necessary to perform cyclic numbering based on the numbers in the number sequence. Assuming the number sequence is [0,1], for the current data flow, if the number of the previous data flow is not the last number in the number sequence, for example, if the number of the previous data flow is 0, then the current number is the number after the number of the previous data flow, that is, the number 1 after number 0.

[0030] If the number of the previous data traffic is the last number in the numbering sequence, for example, if the number of the previous data traffic is 1, then the current number is the first number in the numbering sequence, that is, number 0.

[0031] Following the above method, by sequentially numbering the data based on a sequence number, data traffic can be distributed to various data processing engines in the order of receipt, balancing the load on each engine and enabling data processing shared by multiple engines. By forcibly assigning cyclical numbers to the data, a predictable and uniform distribution sequence is created, ensuring that traffic is evenly distributed from the source, which is a prerequisite for achieving engine load balancing. Simultaneously, this fixed engine number sequence also provides a crucial basis for the subsequent data recovery order.

[0032] As mentioned above, data traffic is numbered sequentially and cyclically. Therefore, multiple data traffic streams may need to be sent to the same data processing engine. To manage this type of data, please refer to [link / reference needed] in this embodiment. Figure 6 The steps described above, which involve sending data traffic to the corresponding data processing engine based on the data traffic number, can be implemented in the following ways: S121, store the data traffic carrying the number into the buffer queue; S122, for the data traffic in the cache queue, a round-robin scheduling strategy is adopted, and the data traffic is sent to the corresponding data processing engine for processing based on the number of the polled data traffic.

[0033] In this embodiment, data traffic carrying a serial number is stored in a buffer queue. Data traffic carrying the same serial number can be stored in the same buffer queue. This buffer queue can be a FIFO queue, that is, a first-in, first-out queue. Its operation is like a one-way tunnel, where data can only enter from one end and exit from the other, and the data that enters first will exit first. In this solution, it mainly serves the functions of buffering and queuing.

[0034] For data traffic in the cache queue, a round-robin scheduling strategy is adopted to send the polled data traffic to the corresponding data processing engine for processing.

[0035] Considering that the data processing engine needs a certain amount of time to process data traffic, in order to ensure that multiple data traffic flows are processed in an orderly and sequential manner, in this embodiment, the step of sending the data traffic to the corresponding data processing engine for processing based on the polled data traffic number can be implemented in the following way: For the polled data traffic, check whether the data processing engine corresponding to the data traffic number is in an idle state; If the data processing engine is idle, the data traffic is sent to the data processing engine for processing; If the data processing engine is not in an idle state, a waiting period is triggered until the data processing engine switches to an idle state, at which point the data traffic is sent to the data processing engine for processing.

[0036] In this embodiment, taking the above example, assume that a certain cache queue contains multiple data traffic entries numbered 0. All of these data traffic entries need to be sent to the data processing engine corresponding to entry number 0 for processing. If the data processing engine numbered 0 is idle, the polled data traffic can be sent to it from the cache queue in a first-in, first-out (FIFO) order. If the data processing engine is not idle, it waits until it finishes processing the data traffic it is currently processing before sending the polled data traffic from the cache queue to the data processing engine.

[0037] This ensures that each data stream is processed in sequence and avoids overloading the data processing engine. By using a FIFO cache queue and round-robin scheduling, concurrency conflicts are resolved, ensuring that data streams are accurately and efficiently delivered to the designated data processing engine. This enables multiple data processing engines to truly process in parallel, significantly improving overall throughput and preventing congestion in a single data engine.

[0038] In this embodiment, each data processing engine begins processing the data traffic independently after receiving it, and the processing time may vary. For example, data traffic sent to data processing engine 0 may be processed quickly, while data traffic sent to data processing engine 1 may be processed slowly, but they are all working in parallel.

[0039] In this embodiment, after processing the data traffic, the data processing engine needs to perform order-preserving restoration of the data traffic before sending it to the next stage. During order-preserving restoration, the data traffic is restored according to its serial number sequence. For details, please refer to [link to relevant documentation]. Figure 7 This can be achieved in the following ways: S131, For the processed data traffic, detect whether the number of the data traffic is the currently expected number; S132, perform order-preserving recovery of the data traffic based on the detection results.

[0040] In this embodiment, the receiving module does not simply receive the processed data traffic, but rather receives and recovers it according to the original sequential numbering from the initial transmission, such as 0, 1, 0, 1... The receiving module checks the current expected number, compares the number of the currently processed data traffic with this current expected number, and then determines how to perform order-preserving recovery.

[0041] Specifically, if the detection result indicates that the number of the data traffic is not the currently expected number, a waiting period is triggered until the data traffic with the currently expected number is received and the currently expected number is updated to the number of the data traffic. Then, the data traffic is received and the order-preserving recovery is performed. If the detection result indicates that the number of the data traffic is the currently expected number, then the data traffic is received and order-preserving recovery is performed.

[0042] For example, if the receiving module expects to receive a data stream that has been processed by data processing engine 0, but engine 0 has not yet finished processing it, while data stream from data processing engine 1 has already arrived, the receiving module will wait until data stream from engine 0 arrives. Then, the receiving module will receive and send out the data stream numbered 0. At this point, the currently expected number will be updated to 1, and the receiving module will receive the data stream from engine 1.

[0043] In this way, even if the data processing engines process the data out of order, the final data stream is restored strictly according to the original numbering order, such as 0, 1, 0, 1, through the processing mechanism of the receiving module.

[0044] The above method solves the biggest challenge in engine sharing solutions: data order preservation. This solution utilizes a waiting and matching mechanism, based on pre-assigned cyclic numbers, to successfully restore data order, ensuring the integrity and consistency of the data stream. While achieving data processing engine sharing, it improves efficiency without causing data corruption.

[0045] Based on the same inventive concept, please refer to Figure 8 This invention also provides a functional module diagram of a data processing device based on shared multiple data processing engines. This embodiment can divide the data processing device based on shared multiple data processing engines into functional modules according to the above method embodiments. For example, each function can be divided into its own functional modules, or two or more functions can be integrated into one processing module. The integrated module can be implemented in hardware or as a software functional module. It should be noted that the module division in this invention embodiment is illustrative and only represents one logical functional division; other division methods may be used in actual implementation.

[0046] For example, when dividing functional modules according to their respective functions, Figure 8The data processing device shown is only a schematic diagram based on multiple data processing engines. This device may include a number generation module, a distribution module, and a recovery module. The functions of each module of this data processing device will be described in detail below.

[0047] The numbering generation module is used to acquire the data traffic to be processed, and to number the data traffic according to the receiving order of the data traffic and according to the set numbering pattern to obtain the corresponding number. The set numbering pattern is set based on the number of data processing engines. The distribution module is used to send the data traffic to the corresponding data processing engine for processing based on the data traffic number; The recovery module is used to restore the processed data traffic in order according to the number sequence of the data traffic, and send the restored data traffic to the next stage.

[0048] As one possible implementation, the numbering pattern is sequentially and cyclically numbered according to the number of data processing engines; the aforementioned numbering generation module can be used for: The previous data flow is determined based on the receiving order of the data flow, and the number of the previous data flow is obtained; The current number is determined based on the number of the previous data flow according to the set numbering pattern, and the corresponding number is obtained.

[0049] As one possible implementation, the numbering mode includes a set of number sequences, which in turn include multiple numbers, the number of which is consistent with the number of data processing engines; the aforementioned numbering generation module can specifically be used for: If the number of the previous data traffic is not the last number in the numbering sequence, then the current number is determined to be the number following the number of the previous data traffic according to the set numbering pattern. When the number of the previous data traffic is the last number in the numbering sequence, the current number is determined to be the first number in the numbering sequence according to the set numbering pattern.

[0050] As one possible implementation, the above distribution module can be used for: Store the data traffic carrying the number into the cache queue; For the data traffic in the cache queue, a round-robin scheduling strategy is adopted. Based on the number of the data traffic obtained in the round-robin, the data traffic is sent to the corresponding data processing engine for processing.

[0051] As one possible implementation, the above distribution module can be specifically used for: For the polled data traffic, check whether the data processing engine corresponding to the data traffic number is in an idle state; If the data processing engine is idle, the data traffic is sent to the data processing engine for processing; If the data processing engine is not in an idle state, a waiting period is triggered until the data processing engine switches to an idle state, at which point the data traffic is sent to the data processing engine for processing.

[0052] As one possible implementation, the recovery module described above can be used for: For the processed data traffic, check whether the number of the data traffic is the currently expected number; Based on the detection results, the data traffic is restored in order.

[0053] As one possible implementation, the recovery module described above can be used specifically for: If the detection result indicates that the number of the data traffic is not the currently expected number, a waiting period is triggered until the data traffic with the currently expected number is received and the currently expected number is updated to the number of the data traffic. Then, the data traffic is received and the order-preserving recovery is performed. If the detection result indicates that the number of the data traffic is the currently expected number, then the data traffic is received and order-preserving recovery is performed.

[0054] The data processing device based on the sharing of multiple data processing engines provided in this embodiment can be used to execute the data processing method based on the sharing of multiple data processing engines under any of the above embodiments. For details not covered in this embodiment, please refer to the corresponding descriptions in the above embodiments. This embodiment will not elaborate further here.

[0055] Please see Figure 9 This is a structural block diagram of a network device provided in an embodiment of the present invention. The network device includes a memory, a processor, and a communication module. The memory, processor, and communication module are electrically connected to each other directly or indirectly to realize data transmission or interaction. For example, these components can be electrically connected to each other through one or more communication buses or signal lines.

[0056] The memory is used to store computer programs or data. Memory can be, but is not limited to, Random Access Memory (RAM), Read Only Memory (ROM), Programmable Read-Only Memory (PROM), Erasable Programmable Read-Only Memory (EPROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), etc.

[0057] The processor is used to read / write data or programs stored in the memory and to execute the data processing method based on the sharing of multiple data processing engines provided in any embodiment of the present invention.

[0058] The communication module is used to establish communication connections between network devices and other communication terminals via the network, and to send and receive data via the network.

[0059] It should be understood that, Figure 9 The structure shown is only a schematic diagram of a network device; the network device may also include components that are larger than those shown. Figure 9 The more or fewer components shown, or having the same Figure 9 The different configurations shown.

[0060] Furthermore, embodiments of the present invention also provide a computer-readable storage medium storing machine-executable instructions, which, when executed, implement the data processing method based on shared data processing engines provided in the above embodiments.

[0061] Specifically, the computer-readable storage medium can be a general-purpose storage medium, such as a removable disk or hard disk. When the computer program on the computer-readable storage medium is executed, it can perform the aforementioned data processing method based on the sharing of multiple data processing engines. The processes involved in the execution of the executable instructions on the computer-readable storage medium can be referred to the relevant descriptions in the above method embodiments, and will not be detailed here.

[0062] In the embodiments provided by this invention, it should be understood that the disclosed apparatus and method can be implemented in other ways. The apparatus embodiments described above are merely illustrative. For example, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. Furthermore, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Additionally, the displayed or discussed mutual couplings, direct couplings, or communication connections may be through some communication interfaces; indirect couplings or communication connections between devices or units may be electrical, mechanical, or other forms.

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

[0064] Furthermore, the functional modules in the various embodiments of the present invention can be integrated together to form an independent part, or each module can exist independently, or two or more modules can be integrated to form an independent part.

[0065] It should be noted that if the functionality is implemented as a software module and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this invention, or the part that contributes to the prior art, or a part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this invention. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.

[0066] The above description is merely an embodiment of the present invention and is not intended to limit the scope of protection of the present invention. For those skilled in the art, the present invention can have various modifications and variations. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of the present invention should be included within the scope of protection of the present invention.

Claims

1. A data processing method based on shared data processing engines, characterized in that, The method includes: The system acquires the data traffic to be processed, and assigns numbers to the data traffic based on the receiving order and according to a set numbering pattern to obtain corresponding numbers. The set numbering pattern is set based on the number of data processing engines. Based on the number of the data traffic, the data traffic is sent to the corresponding data processing engine for processing; For the processed data traffic, the data traffic is restored in order according to its number sequence, and the restored data traffic is sent to the next stage.

2. The data processing method based on multi-data processing engine sharing according to claim 1, characterized in that, The numbering pattern is set to sequentially and cyclically number the data processing engines. The step of numbering the data traffic according to the receiving order and a set numbering pattern to obtain the corresponding number includes: The previous data flow is determined based on the receiving order of the data flow, and the number of the previous data flow is obtained; The current number is determined based on the number of the previous data flow according to the set numbering pattern, and the corresponding number is obtained.

3. The data processing method based on multi-data processing engine sharing according to claim 2, characterized in that, The numbering mode includes a set of numbering sequences, which include multiple numbers, and the number of the multiple numbers is consistent with the number of data processing engines; The step of determining the current number based on the number of the previous data flow according to the set numbering pattern to obtain the corresponding number includes: If the number of the previous data traffic is not the last number in the numbering sequence, then the current number is determined to be the number following the number of the previous data traffic according to the set numbering pattern. When the number of the previous data traffic is the last number in the numbering sequence, the current number is determined to be the first number in the numbering sequence according to the set numbering pattern.

4. The data processing method based on multi-data processing engine sharing according to claim 1, characterized in that, The step of sending the data traffic to the corresponding data processing engine for processing based on the data traffic number includes: Store the data traffic carrying the number into the cache queue; For the data traffic in the cache queue, a round-robin scheduling strategy is adopted. Based on the number of the data traffic obtained in the round-robin, the data traffic is sent to the corresponding data processing engine for processing.

5. The data processing method based on multi-data processing engine sharing according to claim 4, characterized in that, The step of sending the data traffic to the corresponding data processing engine for processing based on the polled data traffic number includes: For the polled data traffic, check whether the data processing engine corresponding to the data traffic number is in an idle state; If the data processing engine is idle, the data traffic is sent to the data processing engine for processing; If the data processing engine is not in an idle state, a waiting period is triggered until the data processing engine switches to an idle state, at which point the data traffic is sent to the data processing engine for processing.

6. The data processing method based on multi-data processing engine sharing according to claim 1, characterized in that, The step of restoring the processed data traffic in order according to the number sequence of the data traffic includes: For the processed data traffic, check whether the number of the data traffic is the currently expected number; Based on the detection results, the data traffic is restored in order.

7. The data processing method based on multi-data processing engine sharing according to claim 6, characterized in that, The step of performing order-preserving recovery of the data traffic based on the detection results includes: If the detection result indicates that the number of the data traffic is not the currently expected number, a waiting period is triggered until the data traffic with the currently expected number is received and the currently expected number is updated to the number of the data traffic. Then, the data traffic is received and the order-preserving recovery is performed. If the detection result indicates that the number of the data traffic is the currently expected number, then the data traffic is received and order-preserving recovery is performed.

8. A data processing device based on the sharing of multiple data processing engines, characterized in that, The device includes: The numbering generation module is used to acquire the data traffic to be processed, and to number the data traffic according to the receiving order of the data traffic and according to the set numbering pattern to obtain the corresponding number. The set numbering pattern is set based on the number of data processing engines. The distribution module is used to send the data traffic to the corresponding data processing engine for processing based on the data traffic number; The recovery module is used to restore the processed data traffic in order according to the number sequence of the data traffic, and send the restored data traffic to the next stage.

9. A network device, characterized in that, The method includes a processor and a memory, the memory storing computer-executable instructions executable by the processor, the processor executing the computer-executable instructions to implement the method of any one of claims 1 to 7.

10. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer-executable instructions that, when invoked and executed by a processor, cause the processor to perform the method according to any one of claims 1 to 7.