Data processing method and device

By creating independent service channels in the FPGA and allocating service resources, the problem of multiple service gateways sharing chip resources in the prior art is solved, and physical isolation and fault isolation between each service gateway are realized.

CN119172225BActive Publication Date: 2025-03-21HANGZHOU FEITIAN CLOUD COMPUTING CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411672130.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-11-20
Publication Date
2025-03-21
Estimated Expiration
2044-11-20

AI Technical Summary

Technical Problem

AISC chips in existing cloud services cause multiple service gateways to share chip resources, and the hardware resources cannot be isolated, resulting in an abnormality of one service gateway affecting other service gateways.

Method used

By creating independent service channels corresponding to each pending service in the FPGA, and allocating the FPGA's service resource information according to the service channel, the independent isolation of each service resource is achieved.

Benefits of technology

It realizes physical isolation between each pending service, reduces the impact range of abnormal failures, and avoids the abnormality of one service gateway affecting other service gateways.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119172225B_ABST
    Figure CN119172225B_ABST
Patent Text Reader

Abstract

The embodiments of this specification provide a data processing method and device, wherein the data processing method is applied to a programmable logic component, including: receiving business channel configuration information for at least one business to be processed; creating business channels corresponding to each business to be processed according to the business channel configuration information of each business to be processed, and allocating business resource information of the programmable logic component according to each business channel, wherein each business resource information is independent of each other; processing business data of each business to be processed according to the business channel and business resource information corresponding to each business to be processed. Through this method, physical isolation between each business to be processed can be effectively achieved, reducing the failure explosion radius caused by an abnormality of a business to be processed, and achieving the purpose that an abnormality of a business to be processed will not affect other businesses to be processed.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments of the present specification relate to the field of integrated circuit technology, and in particular, to a data processing method. Background Art

[0002] With the advancement of computer technology, cloud services have also developed rapidly. In cloud services, there are various very important business gateways. With the user's virtual private cloud as the center, the user's traffic can be divided into four types, and each type of traffic is carried by a business gateway. The cloud service business gateway is the hub of the entire cloud traffic, with high traffic concentration and large fault domain. Its business traffic has the characteristics of traffic bursts and traffic diversity.

[0003] The AISC chips currently used by cloud services have the following problems: multiple service gateways share chip resources, service gateway logics are mixed together, and the hardware resources of different service gateways cannot be isolated. When an abnormality occurs in one service gateway, it will affect other service gateways. Therefore, a new service channel design method is urgently needed to solve the above problems. Summary of the invention

[0004] In view of this, an embodiment of this specification provides a data processing method. One or more embodiments of this specification also relate to a data processing device, a computing device, a computer-readable storage medium and a computer program product to solve the technical defects existing in the prior art.

[0005] According to a first aspect of an embodiment of this specification, a data processing method is provided, which is applied to a programmable logic component, including:

[0006] Receiving service channel configuration information for at least one service to be processed;

[0007] Creating a service channel corresponding to each service to be processed according to the service channel configuration information of each service to be processed, and allocating service resource information of the programmable logic component according to each service channel, wherein each service resource information is independent of each other;

[0008] Process the business data of each pending business according to the business channel and business resource information corresponding to each pending business.

[0009] According to a second aspect of an embodiment of this specification, there is provided a data processing device, which is applied to a programmable logic component, including:

[0010] A receiving module, configured to receive service channel configuration information for at least one service to be processed;

[0011] an allocation module, configured to create a service channel corresponding to each service to be processed according to the service channel configuration information of each service to be processed, and allocate service resource information of the programmable logic component according to each service channel, wherein each service resource information is independent of each other;

[0012] The processing module is configured to process the service data of each service to be processed according to the service channel and service resource information corresponding to each service to be processed.

[0013] According to a third aspect of an embodiment of this specification, a computing device is provided, including:

[0014] Memory and processor;

[0015] The memory is used to store computer programs / instructions, and the processor is used to execute the computer programs / instructions. When the computer programs / instructions are executed by the processor, the steps of the above-mentioned data processing method are implemented.

[0016] According to a fourth aspect of the embodiments of this specification, a computer-readable storage medium is provided, which stores a computer program / instruction, and the computer program / instruction implements the steps of the above-mentioned data processing method when executed by a processor.

[0017] According to a fifth aspect of the embodiments of this specification, a computer program product is provided, comprising a computer program / instruction, which implements the steps of the above-mentioned data processing method when executed by a processor.

[0018] A data processing method provided in one embodiment of the present specification is applied to a programmable logic component, including: receiving business channel configuration information for at least one business to be processed; creating a business channel corresponding to each business to be processed according to the business channel configuration information of each business to be processed, and allocating business resource information of the programmable logic component according to each business channel, wherein each business resource information is independent of each other; processing the business data of each business to be processed according to the business channel and business resource information corresponding to each business to be processed.

[0019] The data processing method provided in the embodiment of this specification creates a service channel corresponding to each service to be processed based on FPGA, allocates service resource information on FPGA to each service channel, and each service resource information is independently isolated from each other. This ensures the physical isolation between the services to be processed, reduces the failure explosion radius caused by an abnormality of a service to be processed, and achieves the purpose that an abnormality of a service to be processed will not affect other services to be processed. BRIEF DESCRIPTION OF THE DRAWINGS

[0020] Figure 1 is a structural diagram of a data processing system provided by an embodiment of this specification;

[0021] Figure 2 is a flow chart of a data processing method provided by an embodiment of this specification;

[0022] Figure 3 This is a diagram of an FPGA-based data processing system architecture provided by an embodiment of this specification;

[0023] Figure 4 is a structural schematic diagram of a data processing device provided by an embodiment of this specification;

[0024] Figure 5 It is a structural block diagram of a computing device provided by an embodiment of this specification. DETAILED DESCRIPTION

[0025] Many specific details are described in the following description to facilitate a full understanding of this specification. However, this specification can be implemented in many other ways than those described herein, and those skilled in the art can make similar generalizations without violating the connotation of this specification, so this specification is not limited to the specific implementation disclosed below.

[0026] The terms used in one or more embodiments of this specification are only for the purpose of describing specific embodiments, and are not intended to limit one or more embodiments of this specification. The singular forms of "a", "said" and "the" used in one or more embodiments of this specification and the appended claims are also intended to include plural forms, unless the context clearly indicates other meanings. It should also be understood that the term "and / or" used in one or more embodiments of this specification refers to and includes any or all possible combinations of one or more associated listed items.

[0027] It should be understood that although the terms first, second, etc. may be used to describe various information in one or more embodiments of this specification, this information should not be limited to these terms. These terms are only used to distinguish the same type of information from each other. For example, without departing from the scope of one or more embodiments of this specification, the first may also be referred to as the second, and similarly, the second may also be referred to as the first. Depending on the context, the word "if" as used herein may be interpreted as "at the time of" or "when" or "in response to determining".

[0028] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, stored data, displayed data, etc.) involved in this manual are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with the relevant laws, regulations and standards of the relevant regions, and provide corresponding operation entrances for users to choose to authorize or refuse.

[0029] First, the terms involved in one or more embodiments of this specification are explained.

[0030] CPU (Central Processing Unit) is the core component of the computer hardware system. It is responsible for executing the computer's instruction set, processing various data and operations, and controlling the operation of the computer.

[0031] SRAM (Static Random Access Memory): Static random access memory is a type of computer memory, mainly used in situations such as cache and registers that require fast reading and writing of data.

[0032] DDR (Double Data Rate): Double Data Rate Synchronous Dynamic Random Access Memory, a type of computer memory that provides higher storage density and lower price.

[0033] FPGA (Field-Programmable Gate Array): Field programmable gate array, a programmable logic component, is an integrated circuit that can be reconfigured at the hardware level.

[0034] Pipeline: A service channel refers to an orderly, serial data processing flow, which is used to describe the entire process of receiving, processing, forwarding or discarding a data packet.

[0035] Stage: A complete pipeline is divided into multiple stages, each of which can perform different operations independently.

[0036] MAU (Match Action Unit): used for data packet processing, allowing network devices to match according to specific fields of the data packet (such as source IP address, destination IP address, port number, etc.) and perform corresponding actions based on the matching results.

[0037] VLAN (Virtual Local Area Network): Virtual Local Area Network. It is a technology that logically divides physical LAN devices into multiple network domains to achieve virtual workgroups.

[0038] IDC (Internet Data Center): An enterprise can place its own servers, storage devices and other hardware resources in an Internet data center.

[0039] VPC (Virtual Private Cloud): Virtual Private Cloud is a network service in cloud computing. In a public cloud environment, VPC allows users to run their own applications in an isolated network environment that is customized by the user, including IP address ranges, subnets, routing tables, and gateways.

[0040] ECS (Elastic Compute Service): a cloud server, an elastic and scalable computing service, aims to provide users with a simple, efficient, safe and reliable computing service with elastically scalable processing power.

[0041] AISC (Application Specific Integrated Circuit): A dedicated integrated circuit. This is an integrated circuit designed specifically for a specific application that can provide higher performance and energy efficiency on specific tasks compared to a general-purpose central processing unit.

[0042] In cloud services, there are various very important business gateways. With the user's VPC as the center, the user's traffic can be divided into four types, and each type of traffic is carried by a business gateway.

[0043] The traffic from VPC to the public network is carried by business gateway 1, which is the hub for public network traffic to enter and exit the cloud. In the cloud direction, it converts the traffic from the public network to the private network address of the ECS in the VPC. In the corresponding cloud direction, it converts the traffic from the ECS in the VPC from the private network address to the public network address.

[0044] Business Gateway 2 carries the traffic for users to access their IDCs. It interconnects the user's IDC with the VPC on the cloud through a physical dedicated line.

[0045] Business gateway 3 carries part of the traffic between ECSs in the same tenant VPC.

[0046] Business gateway 4 carries the traffic for ECS to access cloud services.

[0047] The cloud network service gateway is the entire cloud traffic hub, with high traffic concentration and large fault domain. Its service traffic has the characteristics of traffic bursts, diverse traffic types, and large data flows.

[0048] The current cloud services use AISC chips, which have the following problems:

[0049] 1. Multiple service gateways share the service channel resources of the chip, so that the logic of multiple service gateways is mixed together, and the hardware resources of different service gateways cannot be isolated. When a service gateway has a problem, it will affect other service gateways, resulting in an expansion of the failure radius and a larger impact.

[0050] 2. Programmable business channels consume more resources, resulting in fewer business channels and fewer supported businesses, which in turn leads to low network bandwidth, low utilization and high costs.

[0051] 3. The table resource management in this chip architecture is exclusive to each stage and does not support sharing. In order to carry larger table items, they need to be split into multiple stages, which leads to complex business logic, difficult incremental modifications, high R&D costs, and high failure rates.

[0052] In this specification, a data processing method is provided. This specification also relates to a data processing device, a computing device, a computer-readable storage medium and a computer program product, which are described in detail one by one in the following embodiments.

[0053] See also Figure 1 , Figure 1 FIG. 1 shows a schematic diagram of a data processing system provided by an embodiment of the present specification, wherein the data processing is applied to a programmable logic component. Figure 1 As shown in the figure, different service gateways are deployed in the programmable logic component (FPGA), specifically, service gateway 1, service gateway 2, service gateway 3, and service gateway 4. The service gateways are isolated from each other. For example, different service gateways can be deployed in their own containers, and different service channels (pipelines) are allocated to different service gateways. Different service gateways are deployed on the same FPGA to improve network water level and reduce network costs.

[0054] Different pipelines are allocated to each service gateway, and then FPGA hardware forwarding resources are divided based on pipelines. Different service gateways can be allocated different pipeline types according to business needs. In the same service gateway, there can be one pipeline (such as service gateway 2), parallel pipelines (such as service gateway 1), serial pipelines (such as service gateway 3), and serial and parallel pipelines (such as service gateway 4).

[0055] Parallel pipelines can improve service throughput. For example, two parallel pipelines are allocated to service gateway 1, which can double the throughput of network bandwidth. Serial pipelines increase service logic and increase service complexity. For example, two serial pipelines are allocated to service gateway 3, and part of the logic in service gateway 3 is placed in pipeline 3, and the other part of the business logic is placed in pipeline 4, thereby increasing the business logic of service gateway 3. As in service gateway 4, multiple pipelines in one service can be connected in series or in parallel, thereby obtaining two benefits.

[0056] The pipelines between business gateways are independent of each other. The resources allocated based on the pipelines belong to the same business. Different business resources are isolated from each other. If an exception occurs in one business gateway, it will not affect other business gateways. If an exception occurs in one of the parallel pipelines in a business gateway, it will not affect other pipelines. If an exception occurs in the subsequent pipeline in the series pipeline of a business gateway, it will not affect the previous pipeline. It should be noted that if a business gateway is a series pipeline and one of them has an exception, the entire business gateway will also report an error.

[0057] The pipelines in each service gateway are configured according to the business demand information. When the business logic of a service gateway changes, only the corresponding pipeline is orchestrated and the business logic of the service gateway is dynamically reloaded without affecting other service gateways. Each service gateway can only operate its own pipeline. FPGA provides permission management. Specifically, a hybrid service channel platform runs in FPGA. The hybrid service channel platform provides permission management for each service channel and prohibits service gateways from operating pipelines that do not belong to them.

[0058] When the pipeline cannot process the business data of the corresponding business gateway, it can also send the unprocessed business data to the central processing unit (CPU) for processing, thereby improving the flexibility and scalability of the business.

[0059] The service channels (pipelines) corresponding to each service gateway in the FPGA of the embodiment of this specification are all set and created according to the actual service needs of each service gateway. Pipelines have the characteristics of high forwarding throughput, low latency, and high performance. Forwarding based on FPGA hardware resources does not have the performance bottleneck of processor forwarding, and can also solve the problem of insufficient software forwarding performance.

[0060] See also Figure 2 , Figure 2 A flowchart of a data processing method provided according to an embodiment of the present specification is shown. The method is applied to a programmable logic device (FPGA), and specifically includes the following steps:

[0061] Step 202: Receive service channel configuration information for at least one service to be processed.

[0062] The programmable logic component is an FPGA, which allows developers to program and reprogram the logic functions inside the chip after manufacturing. The data processing method provided in the embodiment of this specification is applied to FPGA, that is, the service channel is designed based on FPGA.

[0063] The service to be processed can be understood as a service deployed on the FPGA, specifically, it can be the service gateway to be processed mentioned in the above embodiment. In actual applications, different services to be processed are used to process different service data, thereby realizing different service functions.

[0064] The service channel configuration information refers to the pipeline configuration information sent to the service to be processed. In the method provided in the embodiment of this specification, a corresponding pipeline is created for the service to be processed on the FPGA. Therefore, the pipeline configuration information corresponding to each pipeline is required. Specifically, the FPGA receives the service channel configuration information for each service to be processed sent by other terminals or devices.

[0065] For example, in a specific implementation provided in this specification, three pending services are deployed on the FPGA, namely, pending service 1, pending service 2, and pending service 3. Service channel configuration information for each pending service is received, such as receiving service channel configuration information 1 for pending service 1, receiving service channel configuration information 2 for pending service 2, and receiving service channel configuration information 3 for pending service 3.

[0066] In the method provided in the embodiments of this specification, the purpose is to deploy the corresponding service channel for each service to be processed. The service channel is used to process the service data corresponding to each service to be processed. The service channel includes different service processing logics. The service channel is created and generated based on the service channel configuration information. Therefore, it is necessary to receive the service channel configuration information for each service to be processed in advance to provide data support for the subsequent generation of each service channel.

[0067] In a specific implementation manner provided in this specification, receiving service channel configuration information for at least one service to be processed includes:

[0068] Receive service channel configuration information for a target service to be processed, wherein the service channel configuration information is determined based on at least one service channel type information, at least one service channel type information is determined by service demand information of the target service to be processed, and the target service to be processed is any one of the at least one service to be processed.

[0069] In this embodiment, it is further defined that the service channel configuration information of each service channel is determined based on the service demand information of each service to be processed. Since at least one service to be processed is included in the FPGA, for the convenience of explanation and description, in this embodiment, one of the services to be processed is used as an example for explanation. The target service to be processed is any one of the services to be processed.

[0070] First, determine the business demand information of the target pending business. Business demand information can be understood as information for processing the normal operation of the target pending business. For example, if a pending business needs to process a large amount of data, but the data business logic is relatively simple, and the business processing process has a fixed processing process, then its business demand information can be determined as "large data volume, clear business logic, fixed processing process". Users can determine that what they need is a large throughput and fixed business logic based on the business demand information. It can be determined that the business channel type information it needs is a fixed business channel; for another example, if a pending business needs to process a moderate amount of data, but its business logic is relatively complex and often changes, users can determine that the business channel type information is a programmable business channel based on the business demand information.

[0071] In the method provided in the embodiments of this specification, the service channel types are divided into two major types, namely fixed service channels and programmable service channels.

[0072] The advantage of fixed service channels is that they occupy less resources and have simple service logic; their disadvantage is that the service channel functions are fixed and cannot be modified. Service data packets can only be forwarded and processed according to the pre-designed processing logic. If there are additional functions, the service channel cannot process them and needs to be sent to the central processor for processing. If the data volume is large, the pure software method of the CPU is used for processing, and the performance is weak and there is a performance bottleneck.

[0073] The advantage of programmable service channels is that the hardware processing flow can be dynamically programmed; the disadvantage is that programmable service channels consume more hardware resources due to their flexible design. If the service functions are iteratively updated, only the hardware processing flow of the service needs to be re-arranged to achieve the upgrade of hardware functions, without the need to rely on the central processor to expand functions, and hardware forwarding of data packets can be achieved, with higher throughput, lower latency, and no data packet forwarding bottleneck.

[0074] The user can determine the number of service channels required for the target service to be processed and the service channel type information of each service channel according to the service demand information of the target service to be processed. For example, according to the service demand information, it can be determined that a target service to be processed requires two fixed service channels, and the two fixed service channels are parallel; for another example, according to the service demand information, it can be determined that a target service to be processed requires a programmable service channel, and so on.

[0075] After determining at least one service channel type information corresponding to the target service to be processed, the user can send corresponding service channel configuration information for each service channel type information, and the FPGA can receive the service channel configuration information for each target service to be processed. Specifically, the hybrid service channel platform deployed and running in the FPGA receives each service channel configuration information. In the method provided in the embodiment of this specification, FPGA receives and processes each information, which refers to processing by the hybrid service channel platform deployed in the FPGA, and will not be repeated in the subsequent content of this specification.

[0076] Step 204: Create a service channel corresponding to each service to be processed according to the service channel configuration information of each service to be processed, and allocate service resource information of the programmable logic component according to each service channel, wherein each service resource information is independent of each other.

[0077] After obtaining the service channel configuration information corresponding to each pending service, a corresponding service channel can be created for each pending service according to the service channel configuration information. In actual applications, the service channels between each pending service are independent of each other and do not affect each other. The service resource information corresponding to each service channel is also independent of each other, and the service resources corresponding to the service resource information are isolated from each other, and there is no resource sharing. After creating a corresponding service channel for each pending service, the service resource information of the programmable logic component can be divided based on each service channel. Service resource information can be understood as hardware forwarding resources on the FPGA. In the process of processing service data, the pending service needs to occupy the hardware resources on the FPGA. In the method provided in the embodiment of this specification, the hardware resources of the FPGA can be allocated on demand according to each service channel, which can ensure that the service resource information on the FPGA can be fully utilized and minimize the waste of resources.

[0078] Each service channel is independently configured in the FPGA. When FPAG receives the corresponding service resource information, it can create a corresponding service channel for each service to be processed. After determining each service channel, the service resource information (i.e., hardware forwarding resources) on the FPGA will be divided based on each service channel. Different services to be processed are assigned different pipelines according to service needs. For the same service to be processed, multiple pipelines can be assigned according to service needs to process the corresponding service data.

[0079] Since the hardware forwarding resources of FPGA are allocated based on the service channels, the resource isolation between the service channels of each pending service can be guaranteed. When the service channels of the pending services are processing services, the service resource information of each service can be distributed to the corresponding service channels, and each service channel processes the corresponding service resource information, thereby achieving the independence between the pending services. When an exception occurs in a pending service, since the hardware resources of the service channels based on FPGA are isolated from each other, it will not affect other pending services, thereby minimizing the impact of the abnormal pending services and avoiding unnecessary impact.

[0080] In a specific implementation manner provided in this specification, creating a service channel corresponding to each service to be processed according to the service channel configuration information of each service to be processed includes:

[0081] Determine a target service to be processed and target service channel configuration information corresponding to the target service to be processed, wherein the target service to be processed is any one of the at least one service to be processed;

[0082] Determine at least one piece of service channel type information and service channel configuration parameters corresponding to each piece of service channel type information according to the target service channel configuration information;

[0083] At least one service channel corresponding to the target to-be-processed service is created according to each service channel type information and the service channel configuration parameters corresponding to each service channel type information.

[0084] In the implementation provided in this specification, a target pending business in each pending business is used as an example to further explain the creation of a business channel. The target pending task is any one of the pending businesses. When determining the target pending business, the target business channel configuration information corresponding to the target pending business is also determined.

[0085] The target business channel configuration information includes at least one business channel type information and the business channel configuration parameters corresponding to each business channel type information. Among them, the business channel type information is used to determine whether each business channel is a fixed pipeline or a programmable pipeline. The business channel configuration parameters specifically refer to the configuration parameters required in the process of creating each business channel, as well as the configuration parameters of the relationship between each business channel. For example, a pipeline is a fixed pipeline, which corresponds to a fixed functional stage, and the business channel configuration parameters are the parameters for creating each stage. For another example, a certain business to be processed corresponds to 2 pipelines, which are in a parallel relationship. The business channel configuration parameters also include the parallel relationship parameters of the two pipelines.

[0086] In a specific implementation provided in this specification, the method further includes:

[0087] In the case where the target to-be-processed service corresponds to at least two service channels, the at least two service channels are in a parallel relationship and / or a series relationship;

[0088] The service channel type information includes fixed service channels and programmable service channels.

[0089] After determining the type information of each service channel and the configuration parameters of each service channel, at least one service channel corresponding to the target service to be processed can be created. When the number of service channels corresponding to the target service to be processed is at least two, it can also be determined according to the configuration parameters of each service channel whether the relationship between the multiple service channels corresponding to the target service to be processed is parallel, series, or parallel and series.

[0090] Step 206: Process the service data of each service to be processed according to the service channel and service resource information corresponding to each service to be processed.

[0091] After determining the service channel and service resource information corresponding to each service to be processed, the corresponding pipeline has been allocated and created for each service to be processed. At this point, the service data corresponding to each service to be processed can be executed based on each pipeline.

[0092] At this time, the FPGA has allocated different service channels based on the services to be processed. The service resources between different services to be processed are isolated from each other and do not affect each other. If the service channel of one service to be processed is abnormal, it will not affect the service channels of other services to be processed.

[0093] As described in the above embodiment, the service channel types include fixed service channels and programmable service channels, wherein the fixed service channel functions are fixed and cannot be modified. The programmable service channel can perform iterative function updates according to actual needs. Based on this, in a specific implementation provided in this specification, the method further includes:

[0094] Receiving service channel adjustment information for target services to be processed;

[0095] Determine a target service channel corresponding to the target service to be processed;

[0096] The target service channel is adjusted according to the service channel adjustment information to obtain an adjusted service channel corresponding to the target service to be processed.

[0097] In this embodiment, the programmable service channel is targeted. When the service logic of the service to be processed changes, the processing logic of the corresponding service channel will also be adjusted accordingly. That is, the service channel adjustment information for the target service to be processed is received, wherein the service channel adjustment information can be understood as the adjusted and updated service processing logic.

[0098] In actual applications, there may be one or more business channels corresponding to the target business to be processed. When the processing logic of a business channel needs to be adjusted (such as adding a business processing flow or the current business processing flow has an exception when processing business data), it is necessary to locate the corresponding target business channel according to the business channel adjustment information, and adjust the target business channel according to the business channel adjustment information, that is, rearrange the hardware processing flow of the target business channel to obtain the adjusted business channel and realize the upgrade of hardware functions.

[0099] In a specific implementation provided in this specification, the method further includes:

[0100] Receive a service data packet to be processed, and obtain a data packet identifier of the service data packet to be processed;

[0101] Determine the target to-be-processed service corresponding to the to-be-processed service data packet according to the data packet identifier;

[0102] The to-be-processed service data packet is sent to the service channel corresponding to the target to-be-processed service.

[0103] In the present implementation mode provided in the present specification, the FPGA further includes a diversion unit, which is used to divert the service data packets received by the FPGA and distribute them to the corresponding service channels for processing.

[0104] Specifically, the shunt unit in the FPGA will receive all pending service data packets sent to the FPGA, and the shunt unit will parse the pending service data packets to obtain the data packet identifiers corresponding to each pending service data packet. The data packet identifier can be a VLAN ID. VLAN is a virtual local area network, which is used to logically divide physical LAN devices into multiple network domains to implement virtual workgroup technology. The data packet identifier can also be the service IP address of each pending service. The destination IP in each data packet determines the pending service and service channel.

[0105] After obtaining the data packet identifier of the service data packet to be processed, the service data packet to be processed can be determined by the data packet identifier to which service data packet to be processed belongs, and then the service data packet to be processed is forwarded to the service channel corresponding to the target service to be processed, so that the service channel performs corresponding data processing on the service data packet to be processed based on its own service processing logic.

[0106] In another specific implementation manner provided in this specification, the method further comprises:

[0107] When the service channel processes the service data packet to be processed abnormally, the service data packet to be processed is sent to a central processor.

[0108] In this embodiment, when using the service channel to process the pending service data packet of the pending service, it is also monitored whether the processing process of the pending service data packet is normal. If the service channel processes the pending service data packet abnormally, it means that the service channel cannot process the pending service data packet, and the pending service data packet that cannot be processed can be sent to the central processor, and the central processor performs extended processing on it. This can greatly improve the flexibility and scalability of the service.

[0109] In a specific implementation manner provided in this specification, the service channel includes at least one service processing unit, and the method further includes:

[0110] Create exclusive resources for business processing units;

[0111] Creating a first shared resource for each service processing unit in the same service channel;

[0112] A second shared resource is created for each service channel.

[0113] In the method provided in the embodiments of this specification, for programmable pipelines, resources can be shared among different MAUs (Match Action Units). MAUs are used to process data packets, allowing network devices to match data packets based on specific fields (such as source IP address, destination IP address, port number, etc.) and perform corresponding actions based on the matching results.

[0114] Specifically, the resources in this solution are divided into three types: exclusive resources, first shared resources, and second shared resources.

[0115] Exclusive resources refer to a service channel that includes multiple service processing units. When a resource is exclusively used by a MAU, it is an exclusive resource. It is stored in SRAM and is only accessible to the corresponding MAU. Other MAUs cannot access it. This type of resource is rare and is usually used to store small service entries.

[0116] The first shared resource can be understood as a MAU shared resource. The service is stored in SRAM and can be shared between different MUAs in the same service channel. This resource is medium in size and is used to store most of the service table items.

[0117] The second shared resource can be understood as a global shared resource table. This table is stored through DDR. The table has a large space and different service channels can share access, but different service gateways are isolated from each other. It has the characteristics of a large table space, but its access speed is slow, which has a greater impact on forwarding performance.

[0118] The data processing method provided in the embodiment of this specification creates a service channel corresponding to each service to be processed based on FPGA, and is designed according to the different requirements of each service to be processed. It ensures high throughput of forwarding, and has the characteristics of low latency and high performance. Hardware forwarding based on FPGA will not have a processor forwarding bottleneck, which can effectively solve the problem of large amounts of data flow, and can also solve the problem of insufficient performance based on software forwarding.

[0119] Based on the business channel allocation FPGA business resource information, the physical isolation between the pending businesses can be effectively realized, which reduces the failure explosion radius caused by the abnormality of a pending business, and achieves the purpose that the abnormality of a pending business will not affect other pending businesses.

[0120] In addition, the method provided in the embodiments of this specification supports two types of fixed service channels and programmable service channels. Different types of service channels and corresponding hardware resources can be allocated to the services to be processed according to their characteristics, thereby achieving hybrid deployment of more services to be processed, improving network utilization, and reducing hardware costs.

[0121] Based on the FPGA data processing method, the FPGA hardware resources can be dynamically adjusted and iterated regularly to better meet the actual needs of the business to be processed and solve the generation problem caused by chip shortages.

[0122] See also Figure 3 , Figure 3 FIG. 1 shows an architecture diagram of a data processing system based on FPGA provided in an embodiment of the present specification. Figure 3 As shown, FPGA includes 4 pending services, namely, pending service 1, pending service 2, pending service 3 and pending service 4. Among them, pending service 1 includes multiple parallel fixed service channels, pending service 2 includes serial programmable service channels, pending service data 3 includes parallel programmable service channels, and in pending service 4, a service channel is taken as an example for explanation, which includes multiple service processing units MAU, each MAU includes exclusive resources IN exclusively used by each MAU, and the service channel of pending service 4 includes the first shared resource LS (MAU shared resource) shared by each MAU, and the memory includes global shared resource tables 1, 2, 3, 4, etc. shared by each service channel.

[0123] Each service data packet to be processed is input into the diversion unit, which identifies the data packet identifier of each service data packet to be processed and sends each service data packet to be processed to the service channel of each service to be processed for processing according to each data packet identifier. Finally, the modified data packet is adjusted and the processed data packet is generated and output.

[0124] Corresponding to the above method embodiment, this specification also provides a data processing device embodiment, Figure 4 FIG. 1 is a schematic diagram showing the structure of a data processing device provided by an embodiment of the present specification. Figure 4 As shown, the device comprises:

[0125] The receiving module 402 is configured to receive service channel configuration information for at least one service to be processed;

[0126] The allocation module 404 is configured to create a service channel corresponding to each service to be processed according to the service channel configuration information of each service to be processed, and allocate service resource information of the programmable logic component according to each service channel, wherein each service resource information is independent of each other;

[0127] The processing module 406 is configured to process the service data of each service to be processed according to the service channel and service resource information corresponding to each service to be processed.

[0128] Optionally, the receiving module 402 is further configured to:

[0129] Receive service channel configuration information for a target service to be processed, wherein the service channel configuration information is determined based on at least one service channel type information, at least one service channel type information is determined by service demand information of the target service to be processed, and the target service to be processed is any one of the at least one service to be processed.

[0130] Optionally, the allocation module 404 is further configured to:

[0131] Determine a target service to be processed and target service channel configuration information corresponding to the target service to be processed, wherein the target service to be processed is any one of the at least one service to be processed;

[0132] Determine at least one piece of service channel type information and service channel configuration parameters corresponding to each piece of service channel type information according to the target service channel configuration information;

[0133] At least one service channel corresponding to the target service to be processed is created according to each service channel type information and the service channel configuration parameters corresponding to each service channel type information.

[0134] Optionally, when the target to-be-processed service corresponds to at least two service channels, the at least two service channels are in a parallel relationship and / or a series relationship;

[0135] The service channel type information includes fixed service channels and programmable service channels.

[0136] Optionally, the device further includes an adjustment module configured to:

[0137] Receiving service channel adjustment information for target services to be processed;

[0138] Determine a target service channel corresponding to the target service to be processed;

[0139] The target service channel is adjusted according to the service channel adjustment information to obtain an adjusted service channel corresponding to the target service to be processed.

[0140] Optionally, the device further includes a subpackaging module configured to:

[0141] Receive a service data packet to be processed, and obtain a data packet identifier of the service data packet to be processed;

[0142] Determine the target to-be-processed service corresponding to the to-be-processed service data packet according to the data packet identifier;

[0143] The to-be-processed service data packet is sent to the service channel corresponding to the target to-be-processed service.

[0144] Optionally, the subpackaging module is further configured to:

[0145] When the service channel processes the service data packet to be processed abnormally, the service data packet to be processed is sent to a central processor.

[0146] Optionally, the service channel includes at least one service processing unit;

[0147] The device also includes a resource creation module configured to:

[0148] Create exclusive resources for business processing units;

[0149] Creating a first shared resource for each service processing unit in the same service channel;

[0150] A second shared resource is created for each service channel.

[0151] The data processing device provided in the embodiment of this specification creates a service channel corresponding to each service to be processed based on FPGA, and is designed according to the different requirements of each service to be processed. It ensures high throughput of forwarding, and has the characteristics of low latency and high performance. Hardware forwarding based on FPGA will not have a processor forwarding bottleneck, which can effectively solve the problem of large amounts of data flow, and can also solve the problem of insufficient performance based on software forwarding.

[0152] Based on the business channel allocation FPGA business resource information, the physical isolation between the pending businesses can be effectively realized, which reduces the failure explosion radius caused by the abnormality of a pending business, and achieves the purpose that the abnormality of a pending business will not affect other pending businesses.

[0153] In addition, the device provided in the embodiments of this specification supports two types of service channels: fixed service channels and programmable service channels. Different types of service channels and corresponding hardware resources can be allocated to the service to be processed according to its characteristics, thereby achieving hybrid deployment of more services to be processed, improving network utilization, and reducing hardware costs.

[0154] For data processing devices based on FPGA, the hardware resources of FPGA can be adjusted dynamically and iterated regularly to better meet the actual needs of the business to be processed and solve the generation problem caused by chip shortages.

[0155] Figure 5 The structure block diagram of a computing device 500 provided according to an embodiment of the present specification is shown. The components of the computing device 500 include but are not limited to a memory 510 and a processor 520. The processor 520 is connected to the memory 510 via a bus 530, and the database 550 is used to store data.

[0156] The computing device 500 also includes an access device 540 that enables the computing device 500 to communicate via one or more networks 560. Examples of these networks include a public switched telephone network (PSTN), a local area network (LAN), a wide area network (WAN), a personal area network (PAN), or a combination of communication networks such as the Internet. The access device 540 may include one or more of any type of network interface (e.g., a network interface card (NIC)) that is wired or wireless, such as an IEEE 802.11 wireless local area network (WLAN) wireless interface, a world-wide interoperability for microwave access (Wi-MAX) interface, an Ethernet interface, a universal serial bus (USB) interface, a cellular network interface, a Bluetooth interface, and a near field communication (NFC).

[0157] In one embodiment of the present specification, the above components of the computing device 500 and Figure 5 Other components not shown in the figure may also be connected to each other, for example, via a bus. It should be understood that Figure 5 The computing device structure block diagram shown is only for the purpose of illustration, and is not intended to limit the scope of this specification. Those skilled in the art can add or replace other components as needed.

[0158] The computing device 500 may be any type of stationary or mobile computing device, including a mobile computer or mobile computing device (e.g., a tablet computer, a personal digital assistant, a laptop computer, a notebook computer, a netbook, etc.), a mobile phone (e.g., a smart phone), a wearable computing device (e.g., a smart watch, smart glasses, etc.), or other types of mobile devices, or a stationary computing device such as a desktop computer or a personal computer (PC). The computing device 500 may also be a mobile or stationary server.

[0159] The processor 520 is used to execute the following computer program / instructions, which implement the steps of the above-mentioned data processing method when executed by the processor.

[0160] Each embodiment in this specification is described in a progressive manner, and the same or similar parts between the embodiments can be referred to each other, and each embodiment focuses on the differences from other embodiments. In particular, for the computing device embodiment, since it is basically similar to the data processing method embodiment, the description is relatively simple, and the relevant parts can be referred to the partial description of the data processing method embodiment.

[0161] An embodiment of the present specification further provides a computer-readable storage medium storing a computer program / instruction, which implements the steps of the above-mentioned data processing method when executed by a processor.

[0162] Each embodiment in this specification is described in a progressive manner, and the same or similar parts between the embodiments can be referred to each other, and each embodiment focuses on the differences from other embodiments. In particular, for the computer-readable storage medium embodiment, since it is basically similar to the data processing method embodiment, the description is relatively simple, and the relevant parts can be referred to the partial description of the data processing method embodiment.

[0163] An embodiment of the present specification also provides a computer program product, including a computer program / instruction, which implements the steps of the above data processing method when executed by a processor.

[0164] The above is a schematic scheme of a computer program product of this embodiment. It should be noted that the technical scheme of the computer program product and the technical scheme of the above data processing method belong to the same concept, and the details not described in detail in the technical scheme of the computer program product can be referred to the description of the technical scheme of the above data processing method.

[0165] The above is a description of a specific embodiment of the specification. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps recorded in the claims can be performed in an order different from that in the embodiments and still achieve the desired results. In addition, the processes depicted in the drawings do not necessarily require the specific order or continuous order shown to achieve the desired results. In some embodiments, multitasking and parallel processing are also possible or may be advantageous.

[0166] The computer instructions include computer program codes, which may be in source code form, object code form, executable files or some intermediate forms, etc. The computer-readable medium may include: any entity or device capable of carrying the computer program code, recording medium, USB flash drive, mobile hard disk, magnetic disk, optical disk, computer memory, read-only memory (ROM), random access memory (RAM), electric carrier signal, telecommunication signal and software distribution medium, etc. It should be noted that the content contained in the computer-readable medium may be appropriately increased or decreased according to the requirements of patent practice. For example, in some regions, according to patent practice, computer-readable media do not include electric carrier signals and telecommunication signals.

[0167] It should be noted that the above is a description of a specific embodiment of the present specification. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps recorded in the claims can be performed in an order different from that in the embodiments and still achieve the desired results. In addition, the processes depicted in the accompanying drawings do not necessarily require the specific order or continuous order shown to achieve the desired results. In some embodiments, multitasking and parallel processing are also possible or may be advantageous. Secondly, those skilled in the art should also be aware that the embodiments described in the specification are all preferred embodiments, and the actions and modules involved are not necessarily required by the embodiments of the present specification.

[0168] In the above embodiments, the description of each embodiment has its own emphasis. For parts that are not described in detail in a certain embodiment, reference can be made to the relevant descriptions of other embodiments.

[0169] The preferred embodiments of this specification disclosed above are only used to help explain this specification. The optional embodiments do not describe all the details in detail, nor do they limit the invention to only the specific implementation methods described. Obviously, many modifications and changes can be made according to the content of the embodiments of this specification. This specification selects and specifically describes these embodiments in order to better explain the principles and practical applications of the embodiments of this specification, so that technicians in the relevant technical field can well understand and use this specification. This specification is only limited by the claims and their full scope and equivalents.

Claims

1. A data processing method, applied to a programmable logic component, comprising: Receive service channel configuration information for at least one service to be processed, wherein the service channel configuration information is used to create a corresponding service channel for the service to be processed in the programmable logic component, and the service channel configuration information is determined according to at least one service channel type information, and the at least one service channel type information is determined by service requirement information of the service to be processed; Creating a service channel corresponding to each service to be processed according to the service channel configuration information of each service to be processed, and allocating the service resource information of the programmable logic component to each service channel, wherein each service resource information is independent of each other, and the resources between the service channels of each service to be processed are isolated. When the service to be processed corresponds to at least two service channels, at least two service channels are in parallel and / or in series, and the service channel type information includes a fixed service channel and a programmable service channel. The programmable service channel performs functional iteration and update according to the service demand information of the service to be processed; Process the business data of each pending business according to the business channel and business resource information corresponding to each pending business.

2. The method according to claim 1, creating a service channel corresponding to each service to be processed according to the service channel configuration information of each service to be processed, comprising: Determine a target service to be processed and target service channel configuration information corresponding to the target service to be processed, wherein the target service to be processed is any one of the at least one service to be processed; Determine at least one piece of service channel type information and service channel configuration parameters corresponding to each piece of service channel type information according to the target service channel configuration information; At least one service channel corresponding to the target to-be-processed service is created according to each service channel type information and the service channel configuration parameters corresponding to each service channel type information.

3. The method of claim 1, further comprising: Receiving service channel adjustment information for target services to be processed; Determine a target service channel corresponding to the target service to be processed; The target service channel is adjusted according to the service channel adjustment information to obtain an adjusted service channel corresponding to the target service to be processed.

4. The method of claim 1, further comprising: Receive a service data packet to be processed, and obtain a data packet identifier of the service data packet to be processed; Determine the target to-be-processed service corresponding to the to-be-processed service data packet according to the data packet identifier; The to-be-processed service data packet is sent to the service channel corresponding to the target to-be-processed service.

5. The method of claim 4, further comprising: When the service channel processes the service data packet to be processed abnormally, the service data packet to be processed is sent to a central processor.

6. The method according to claim 1, wherein the service channel comprises at least one service processing unit, and the method further comprises: Create exclusive resources for business processing units; Creating a first shared resource for each service processing unit in the same service channel; A second shared resource is created for each service channel.

7. A data processing device, applied to a programmable logic component, comprising: A receiving module is configured to receive service channel configuration information for at least one service to be processed, wherein the service channel configuration information is used to create a corresponding service channel for the service to be processed in the programmable logic component, and the service channel configuration information is determined according to at least one service channel type information, and the at least one service channel type information is determined by service requirement information of the service to be processed; an allocation module, configured to create a service channel corresponding to each service to be processed according to the service channel configuration information of each service to be processed, and allocate service resource information of the programmable logic component according to each service channel, wherein each service resource information is independent of each other, and resources between service channels of each service to be processed are isolated. When the service to be processed corresponds to at least two service channels, at least two service channels are in parallel and / or in series, and the service channel type information includes a fixed service channel and a programmable service channel. The programmable service channel performs function iteration and update according to the service demand information of the service to be processed; The processing module is configured to process the service data of each service to be processed according to the service channel and service resource information corresponding to each service to be processed.

8. A computing device comprising: Memory and processor; The memory is used to store computer programs / instructions, and the processor is used to execute the computer programs / instructions. When the computer program / instructions are executed by the processor, the steps of the method according to any one of claims 1 to 6 are implemented.

9. A computer-readable storage medium storing a computer program / instruction, wherein the computer program / instruction, when executed by a processor, implements the steps of the method according to any one of claims 1 to 6.

10. A computer program product, comprising a computer program / instruction, which, when executed by a processor, implements the steps of the method according to any one of claims 1 to 6.

Citation Information

Patent Citations

  • Network service processing method and device

    CN104683428A

  • Computing resource allocation system and method

    CN111984397A