DATA TRANSFER DEVICE, DATA PROCESSING DEVICE AND DATA PROCESSING METHOD
Patent Information
- Application Number
- JP2021184727
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-11-12
- Publication Date
- 2025-02-27
- Estimated Expiration
- 2041-11-12
AI Technical Summary
【0020】 本発明によれば、データ転送デバイスがマスタとなってパケットルーティングと配下のデータ処理デバイス間の調停とを行うことにより、配下のいずれのデータ処理デバイスとも同じ処理量の通信を行うことができる。本発明では、データ転送デバイスがネットワークレベルで通信制御を行うことで、低遅延でデータ処理デバイスにパケットを転送することができる。
Smart Images

Figure 0007637034000001 
Figure 0007637034000002 
Figure 0007637034000003
Abstract
Description
[Technical field]
[0001] The present invention relates to a data transfer device, a data processing device and a data processing method in a data processing system that provides a service to a user by a service function chaining technique. [Background technology]
[0002] Service Function Chaining (SFC) is being considered to flexibly provide end-to-end services (Non-Patent Document 1). SFC is a technology that freely combines service functions (Service Functions: SFs) scattered across a network, and by using SFC, it is possible to provide optimal services for each user.
[0003] Although SFC is being considered mainly to realize flexible network services, it is also a useful technology for cloud services. For example, Non-Patent Document 2 discloses a video surveillance service that combines two types of image processing functions as an image processing service using SFC.
[0004] In a network using SFC, as shown in Fig. 15, a classifier 10 at the inlet adds a tag to packets for each user, and a service function forwarder (SFF) 11 forwards the packet to an appropriate SF based on the tag. In Fig. 15, 12 represents a server that realizes the SF, and 13A and 13B represent a service chain that links together SFs provided to each user. With SFC, users can build their own unique services by combining SFs that suit their own purposes.
[0005] In cloud services that require low-latency processing, the processing performance of the server 12 can be an issue. To improve the processing performance of the server 12, a hardware accelerator (HWA) 120 such as a field-programmable gate array (FPGA), a graphics processing unit (GPU), or an application specific integrated circuit (ASIC) is used as shown in Fig. 15. In most cases, a system that uses the HWA 120 uses a central processing unit (CPU) 121 to control the HWA 120. That is, the CPU 121 mainly transfers data to the HWA 120 and retrieves the results when the data processing is completed.
[0006] However, there are also applications that do not require processing by the CPU 121. For example, image processing applications such as image encoding, decoding, and resizing can be processed solely by the HWA 120. In such applications, the CPU 121 only controls the HWA 120, which can increase processing delays within the system.
[0007] A system that provides cloud services must receive data packets from an external source, reconstruct the original data from the packets, and then process the data. In this case, a system that uses the HWA 120 uses the CPU 121 to reconstruct data at the application level and control data transfer between the CPU 121 and the HWA 120.
[0008] For example, in the case of the system shown in Fig. 16, packet processing is performed in a NIC (Network Interface Card) 122 of the host 12a, and data reconstruction and data transfer control between the CPU 121 and the HWA 120 (an FPGA board in the example of Fig. 16) are performed in a host application 123. Then, the host application 123 transfers data to a kernel 125 on the HWA 120 via a driver 124 (see Non-Patent Document 3). In Fig. 16, 126 is a memory, 127 is a memory controller, 128 is a PCIe (PCI Express) controller for connecting the CPU 121 and the HWA 120, and 129 is an interconnect that connects the memory controller 127 and the PCIe controller 128 to the kernel 125.
[0009] 16, communications that are not actually necessary for accessing the HWA 120 occur between the NIC 122 and the host application 123, and between the host application 123 and the driver 124. In addition, slow software processing is performed in the host application 123 executed by the CPU 121. Therefore, these delays increase the processing delay within the system.
[0010] In cloud services that use SFC, the processing delays that occur in each server node are accumulated as service delays by combining SFs implemented in multiple server nodes. For this reason, there was an issue that server nodes configured as shown in Fig. 16 were not suitable for services that require low latency. [Prior art documents] [Non-patent literature]
[0011] [Non-Patent Document 1] RFC 7665 - Service Function Chaining (SFC) Architecture,Internet Engineering Task Force (IETF),October 2015,<https: / / datatracker.ietf.org / doc / html / rfc7665> [Non-Patent Document 2] Yuta UKON, Koji YAMAZAKI, Koyo NITTA, “Real-Time Image Processing Based on Service Function Chaining Using CPU-FPGA Architecture”, IEICE Transactions on Communications, Vol. E103-B, No. 1, pp. 11-19, 2020,<https: / / search.ieice.org / bin / summary.php?id=e103-b_1_11> [Non-Patent Document 3] “Intel FPGA SDK for OpenCL Pro Edition best Practices Guide”,Intel Corporation,2021, <https: / / www.intel.com / content / dam / www / programmable / us / en / pdfs / literature / hb / opencl-sdk / aocl-best-practices-guide.pdf> Summary of the Invention [Problem to be solved by the invention]
[0012] The present invention has been made to solve the above-mentioned problems, and aims to provide a data transfer device, a data processing device, and a data processing method that can achieve low-latency data transfer in a data processing system that provides services to users through service function chaining technology. [Means for solving the problem]
[0013] The present invention relates to a data transfer device having subordinate data processing devices for processing individual service functions constituting a service chain necessary for realizing a service requested by a user, the data transfer device comprising: a plurality of packet receiving units configured to receive packets from a user management device or other subordinate data transfer devices that is a start point of the service chain; a packet analysis unit configured to acquire a tag from a packet received from the user management device, the other data transfer devices, or the subordinate data processing devices; an input arbitration unit configured to selectively input a packet from any one of the plurality of packet receiving units to the packet analysis unit; and a first data transfer unit configured to determine a transfer destination of a packet received from the user management device, the other data transfer devices, or the subordinate data processing devices based on route information of the service chain described in the tag. The device comprises a transfer control unit, a packet transmitting unit configured to transfer a packet to a destination data transfer device when the destination of the packet is another data transfer device, and an inter-device communication control unit configured to check the status of the shared bus when the destination of the packet is a subordinate data processing device, and if the shared bus is available, to transfer the packet to the destination data processing device via the shared bus, and to determine the destination of the packet received from the subordinate data processing device based on the route information written on the tag, wherein when there are multiple subordinate data processing devices, the inter-device communication control unit grants the right to use the shared bus to one of the data processing devices in response to a communication request from these data processing devices, and arbitrates between the data processing devices so that packets are received via the shared bus from the data processing device to which the right of use has been granted.
[0014] In addition, in one configuration example of the data transfer device of the present invention, the inter-device communication control unit includes a transmission buffer having a memory unit assigned to each of the subordinate data processing devices; a second transfer control unit configured to determine a transfer destination of a packet based on the route information written in the tag when the transfer destination of a packet received from a subordinate data processing device is another subordinate data processing device; a buffer input unit configured to store a packet in a memory unit of the transmission buffer corresponding to the destination data processing device when the transfer destination of the packet determined by the first transfer control unit or the second transfer control unit is the subordinate data processing device; and a communication management unit configured to transfer the packet stored in the transmission buffer to the destination data processing device via the shared bus and receive the packet from the data processing device, and when there are multiple subordinate data processing devices, the communication management unit arbitrates between the data processing devices to grant one of the data processing devices the right to use the shared bus in response to a communication request from these data processing devices and receive packets via the shared bus from the data processing device to which the right of use has been granted.
[0015] Furthermore, one configuration example of the data transfer device of the present invention further includes a route information registration unit configured to update the routing tables registered in each of the first transfer control unit and the inter-device communication control unit based on information from a communication management device that calculates the route of the service chain, and each of the first transfer control unit and the inter-device communication control unit determines the transfer destination of a packet based on the route information of the service chain and the routing table registered therein. Furthermore, one configuration example of the data transfer device of the present invention further includes a data acquisition unit configured to, when the destination of a packet determined by the first transfer control unit or the inter-device communication control unit is the subordinate data processing device, reconstruct the original data before being packetized from the payload of the packet instead of transferring the packet to the destination data processing device, and transfer the reconstructed data to the destination data processing device via the shared bus, and a packet creation unit configured to packetize data received from the subordinate data processing device after data processing of a service function has been completed, and send the generated packet to the inter-device communication control unit, wherein the data acquisition unit performs sequence control to arrange the data in the correct order when extracting data from the payloads of multiple packets and reconstructing the original data.
[0016] The present invention also relates to a data processing device for processing individual service functions constituting a service chain necessary for realizing a service requested by a user, the data processing device comprising: a plurality of service function units configured to process the service functions; a packet sorting unit configured, when a packet is received from a higher-level data transfer device connected by a shared bus, to transfer the packet to a destination service function unit among the plurality of service function units based on route information of the service chain described in a tag of the packet; and, when a packet for which data processing by the service function unit has been completed is received, a request is made to the data transfer device for use of the shared bus, and when the right to use the shared bus is granted, the packet for which data processing has been completed is sent to the data transfer device. and a communication request unit configured to transfer packets received from the data transfer device to the data transfer device, and each service function unit comprises a packet sequence control unit configured to perform sequence control to arrange packets received from the data transfer device in a correct order, a data acquisition unit configured to extract a payload from a packet output from the packet sequence control unit, a data construction unit configured to reconstruct the original data before being packetized from one or more payloads output from the data acquisition unit, a data processing unit configured to perform data processing of a service function on the data output from the data construction unit, and a packet creation unit configured to packetize data after data processing by the data processing unit and output the data to the communication request unit.
[0017] Furthermore, in one configuration example of the data processing device of the present invention, each service function unit further includes a register management unit configured to register, in the data processing unit, parameters contained in the payload extracted from the packet by the data acquisition unit when the received packet is a parameter registration request packet, and to delete, from the data processing unit, the parameters when the received packet is a parameter retrieval request packet, and the packet creation unit packetizes the parameters deleted from the data processing unit so as to be returned to the source of the parameter retrieval request, and outputs the packet to the communication request unit.
[0018] The present invention also provides a data processing method in a data transfer device having a subordinate data processing device for processing individual service functions constituting a service chain necessary for realizing a service requested by a user, the method comprising the steps of: a first step of receiving a packet from a user management device or other data transfer device which is the start point of the service chain; a second step of analyzing the packet received from the user management device or other data transfer device to acquire a tag; a third step of determining a transfer destination of the packet received from the user management device or other data transfer device based on route information of the service chain described in the tag acquired in the second step; a fourth step of transferring the packet to the destination data transfer device if the transfer destination of the packet determined in the third step is the subordinate data processing device; and a fifth step of checking a status of a shared bus between the data processing device and the subordinate data processing device if the transfer destination of the packet determined in the third step is the subordinate data processing device. The method includes a sixth step of transferring the packet to a destination data processing device via the shared bus if the confirmation shows that the shared bus is available, a seventh step of receiving the packet from the subordinate data processing device, an eighth step of analyzing the packet received from the subordinate data processing device and acquiring a tag, and a ninth step of determining a destination of the packet received from the subordinate data processing device based on the route information described in the tag acquired in the eighth step, wherein the fifth step includes a step of checking the status of the shared bus between the data processing device and the subordinate data processing device if the destination of the packet determined in the ninth step is the subordinate data processing device, and the seventh step includes a step of granting the right to use the shared bus to any one of the subordinate data processing devices in response to a communication request from the subordinate data processing devices in the case where there are multiple subordinate data processing devices, and receiving the packet via the shared bus from the data processing device to which the right of use has been granted.
[0019] The present invention also provides a data processing method in a data processing device that processes individual service functions constituting a service chain necessary for realizing a service requested by a user, the method comprising: a first step of receiving a packet from a higher-level data transfer device connected by a shared bus; a second step of transferring the packet to a destination service function unit among a plurality of service function units that process the service functions based on route information of the service chain described in a tag of the packet received from the data transfer device; a third step of performing sequence control to arrange the received packets in a correct order in the destination service function unit; and a fourth step of extracting payloads from the packets arranged in the correct order by the third step in the destination service function unit. a fifth step of reconstructing the original data before being packetized from one or more of the payloads in the service function unit of the destination; a sixth step of performing service function data processing on the reconstructed data in the service function unit of the destination; a seventh step of packetizing the data for which data processing in the sixth step is completed in the service function unit of the destination; an eighth step of requesting the data transfer device to use the shared bus when a packet for which data processing by the service function unit of the destination is completed is received; and a ninth step of transferring the packet for which data processing is completed to the data transfer device when right to use the shared bus is granted in response to the request. Effect of the Invention
[0020] According to the present invention, the data transfer device becomes a master and performs packet routing and arbitration between subordinate data processing devices, thereby enabling communication with the same amount of processing with each subordinate data processing device. In the present invention, the data transfer device controls communication at the network level, enabling packets to be transferred to the data processing devices with low latency. [Brief description of the drawings]
[0021] [Figure 1] FIG. 1 is a block diagram showing a configuration of a data processing system according to an embodiment of the present invention. [Diagram 2] FIG. 2 is a block diagram showing a configuration of a user management device according to an embodiment of the present invention. [Diagram 3] FIG. 3 is a flowchart illustrating the operation of the user management device according to the embodiment of the present invention. [Figure 4] FIG. 4 is a block diagram showing a configuration of a data management unit of the user management device according to an embodiment of the present invention. [Diagram 5] FIG. 5 is a block diagram showing a configuration of a data transfer device according to an embodiment of the present invention. [Figure 6] FIG. 6 is a block diagram showing a configuration of an inter-device communication control unit of a data transfer device according to an embodiment of the present invention. [Figure 7] FIG. 7 is a block diagram showing a configuration of a data processing device according to an embodiment of the present invention. [Figure 8] FIG. 8 is a flowchart illustrating the operation of a data transfer device according to an embodiment of the present invention. [Figure 9] FIG. 9 is a flowchart illustrating the operation of a data processing device according to an embodiment of the present invention. [Figure 10] FIG. 10 is a flowchart illustrating the operation of the communication management device according to the embodiment of the present invention. [Figure 11] FIG. 11 is a sequence diagram illustrating the operation of the data processing system according to the embodiment of the present invention. [Figure 12] FIG. 12 is a sequence diagram illustrating another operation of the data processing system according to the embodiment of the present invention. [Figure 13] FIG. 13 is a diagram showing the format of packets transmitted and received between a user terminal and a data processing system and within the data processing system according to the embodiment of the present invention. [Figure 14] FIG. 14 is a block diagram showing an example of the configuration of a computer that realizes a data processing system according to an embodiment of the present invention. [Figure 15]FIG. 15 is a diagram for explaining a conventional service function chaining technique. [Figure 16] FIG. 16 is a diagram for explaining the problems with the conventional service function chaining technology. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0022] Hereinafter, an embodiment of the present invention will be described with reference to the drawings. FIG. 1 is a block diagram showing the configuration of a data processing system according to an embodiment of the present invention. The data processing system includes user management devices 1-1 to 1-3 that manage information of users who have applied to use a service and control the transfer of packets received from the users, one or more data transfer devices 2-1 to 2-9 that transfer packets, data processing devices 3-1 to 3-13 that perform SF data processing on data included in the received packets, and external transmission devices 4-1 to 4-3 that return packets to the users after all data processing of the service chain has been completed. Furthermore, the data processing system includes a communication management device 5 that calculates a route of a service chain required to realize a service requested by a user, transmits route information to the user management devices 1-1 to 1-3, and updates a routing table registered in the data transfer devices 2-1 to 2-9 on the calculated route based on the result of the route calculation. The data processing devices 3-1 to 3-13 include a CPU, an FPGA, a GPU, and an ASIC.
[0023] In this embodiment, a service customized for each user is provided by combining SFs realized by the data processing devices 3-1 to 3-13. Specifically, communication is performed between the data transfer devices 2-1 to 2-9, and a data packet sent from a user is transferred to an appropriate SF. When data processing in an SF is completed, the data packet is transferred to another SF for further data processing. As a result, in this embodiment, the processing content is changed for each user to provide a service according to the user's purpose.
[0024] The communication path that a data packet follows is called a service chain. As in FIG. 15, 13 in FIG. 1 represents a service chain. If multiple users use the service chain simultaneously, data will collide at SF, and appropriate results cannot be guaranteed. Therefore, in this embodiment, the data packets are managed by user management devices 1-1 to 1-3 at the entrance of the data processing system, and the service chain is controlled so that only one user can use it.
[0025] The user management devices 1-1 to 1-3 also add tags to data packets. The tags contain route information for the service chain. The data transfer devices 2-1 to 2-9 route the data packets based on the tags. Specific examples of tags include NSH (Network Service Header), MPLS (Multi-Protocol Label Switching) header, and SRv6 (Segment Routing over IPv6). Original headers may also be defined.
[0026] In routing using a Media Access Control (MAC) address or an Internet Protocol (IP) address, the data transfer devices 2-1 to 2-9 must have a large routing table. On the other hand, in routing using tags as in this embodiment, the size of the routing table can be reduced by having route information in the data packet, and the computational resources and memory resources required for routing can be reduced.
[0027] The external transmitting devices 4-1 to 4-3 add destination information to the data packets after all data processing has been completed, and send the packets back to the user. The reason why the external transmitting devices 4-1 to 4-3 are necessary is that the protocols used inside and outside the data processing system are different. TCP / IP is used as a global standard for communication outside the data processing system. Meanwhile, within the data processing system, packet communication using tags is performed for the reasons mentioned above. Therefore, the external transmitting devices 4-1 to 4-3 are used to absorb the difference in protocols inside and outside the data processing system.
[0028] 2 is a block diagram showing the configuration of the user management device 1-1. The user management device 1-1 includes a packet receiving unit 100, a packet sending unit 101, a packet analyzing unit 102 for analyzing a received packet, a packet type determining unit 103 for determining the type of the received packet, a user information extracting unit 104 for extracting user information from the packet, a data managing unit 105 for transferring the packet received from the user to a tag adding unit 107 at a timing according to the priority, a storage unit 106 for temporarily storing the packet received from the user, a tag adding unit 107 for adding a tag to the packet received from the user, a data communication control unit 108, a user management unit 109 for managing information of a user who has applied to use the service, issuing a user ID, and notifying the user of the issued user ID, a QoS (Quality of Service) control unit 110 for determining the priority of packet transfer for each user based on the user information managed by the user management unit 109, and a tag generating unit 111 for generating a tag describing the route information received from the communication management device 5.
[0029] Fig. 3 is a flow chart for explaining the operation of the user management device 1-1. When the packet receiving section 100 of the user management device 1-1 receives a packet (step S1 in Fig. 3), first the packet analyzing section 102 analyzes the packet (step S2 in Fig. 3). The packet type determination unit 103 determines the packet type based on the analysis result by the packet analysis unit 102 (step S3 in FIG. 3). The packet types include "service use application" and "service use".
[0030] The packet type determination unit 103 sends packets whose packet type is “service use application” to the user information extraction unit 104 , and sends packets whose packet type is “service use” to the data management unit 105 .
[0031] The user information extraction unit 104 acquires user information (such as IP address, port number, contract number, service information, and priority) described in the packet received from the packet type determination unit 103 (step S4 in FIG. 3). The user information extraction unit 104 sends the acquired user information to the user management unit 109.
[0032] The user management unit 109 manages the user information received from the user information extraction unit 104. The user management unit 109 issues a user ID for the user to use the service (step S5 in FIG. 3), and transfers the user information together with the user ID to the communication management device 5 (step S6 in FIG. 3).
[0033] The QoS control unit 110 determines the priority of packet transfer for each user based on the priority and service information requested by the user, and registers the priority information (QoS information) in the data management unit 105 (step S7 in FIG. 3).
[0034] The tag generating unit 111 receives the route information from the communication management device 5 and generates a tag describing the route information. Then, the tag generating unit 111 associates the generated tag with the user ID issued by the user management unit 109 and registers them in the tag adding unit 107 (Step S8 in FIG. 3).
[0035] The data management unit 105 receives packets determined as "service usage" by the packet type determination unit 103, and sorts the received packets by user and temporarily stores them in the storage unit 106. Then, the data management unit 105 retrieves packets of a specific user for each service chain from the storage unit 106 based on the priority information registered by the QoS control unit 110, and transfers them to the tag addition unit 107 (step S9 in FIG. 3).
[0036] When a user ID is issued to a user, the user adds the user ID to packets whose packet type is "service usage" as described below. The tag addition unit 107 adds a tag corresponding to the user ID added to the packet received from the data management unit 105, among the tags registered by the tag generation unit 111, to the received packet, and outputs the tagged packet to the packet transmission unit 101 (step S10 in Figure 3).
[0037] The packet transmitting unit 101 transmits the packet output from the tag adding unit 107 to the nearest data transfer device 2-1 to 2-9 (Step S11 in FIG. 3). As described above, specific examples of tags include NSH and MPLS headers. A unique header may also be defined. It is also possible to use a MAC address or an IP address instead of a tag. However, in a method using a MAC address or an IP address, the data transfer devices 2-1 to 2-9 need to have a large-scale routing table, and this consumes more computational resources and memory resources than a method using a tag.
[0038] In the examples of FIGS. 2 and 3, the user management device 1-1 is taken as an example for explanation, but the configuration and operation of the user management devices 1-2 and 1-3 are similar to that of the user management device 1-1.
[0039] 4 is a block diagram showing the configuration of data management unit 105 of user management devices 1-1 to 1-3. Data management unit 105 is made up of packet distribution unit 1050, one or more user determination units 1051-1 to 1051-N (N is an integer equal to or greater than 1), one or more user selection units 1052-1 to 1052-N, one or more output selection units 1053-1 to 1053-N, and output control unit 1054.
[0040] The user determination unit 1051-1, the user selection unit 1052-1, and the output selection unit 1053-1 constitute a memory controller 1055-1. Similarly, the user determination unit 1051-N, the user selection unit 1052-N, and the output selection unit 1053-N constitute a memory controller 1055-N. Each of the memory controllers 1055-1 to 1055-N stores and retrieves data packets in the storage unit 106. Although a single memory controller may be used, providing multiple memory controllers allows access to the storage unit 106 to be parallelized, improving processing performance.
[0041] The data management section 105 manages the data packets received from the packet type determination section 103 for each user, and outputs the packets to the subsequent tag addition section 107 at an appropriate timing. The packet sorting unit 1050 determines a memory controller that controls storage of the data packet received from the packet type determination unit 103, and outputs the data packet to the user determination unit 1051 (1051-1 to 1051-N) of the determined memory controller. If part of the user ID is used as the memory controller number, the packet sorting unit 1050 can sort at high speed. The memory controller to sort the packet may be appropriately determined according to, for example, the processing availability of the memory controller.
[0042] User determination units 1051-1 to 1051-N refer to the user ID of the packet received from packet sorting unit 1050, and decide whether to transfer the packet to storage unit 106 or output selection units 1053-1 to 1053-N.
[0043] Specifically, when the user determination units 1051-1 to 1051-N receive a packet having the same user ID as the user ID of a packet currently being output by the output selection units 1053-1 to 1053-N belonging to the same memory controller as the user determination units 1051-1 to 1051-N, the user determination units 1051-1 to 1051-N transfer the received packet to the output selection units 1053-1 to 1053-N belonging to the same memory controller as the user determination units 1051-1 to 1051-N. Also, when the user determination units 1051-1 to 1051-N receive a packet having a user ID different from the user ID of a packet currently being output by the output selection units 1053-1 to 1053-N belonging to the same memory controller as the user determination units 1051-1 to 1051-N, the user determination units 1051-1 to 1051-N temporarily store the received packet in the storage unit 106.
[0044] User selection units 1052-1 to 1052-N selectively extract data packets from storage unit 106 based on QoS information (priority information) registered by QoS control unit 110. When QoS control is not performed, user selection units 1052-1 to 1052-N extract the earliest data packet stored in storage unit 106.
[0045] The output selection units 1053-1 to 1053-N select from which of the user determination units 1051-1 to 1051-N and the user selection units 1052-1 to 1052-N that belong to the same memory controller as the output selection units 1053-1 to 1053-N to output the data packets received from them. Since back pressure is applied to the user selection units 1052-1 to 1052-N, the data packets received from the user determination units 1051-1 to 1051-N are given priority for output. This selection may cause the packet order to change. Therefore, the data processing devices 3-1 to 3-13 must have a packet order control function.
[0046] The output control unit 1054 outputs the packets output from the output selection units 1053-1 to 1053-N to the tag addition unit 107. When there are multiple memory controllers (output selection units 1053-1 to 1053-N), the output control unit 1054 controls which memory controller outputs packets to the tag addition unit 107. Examples of the control method include a round robin method, a best effort method, and a DiffServ method (QoS).
[0047] When the user determination units 1051-1 to 1051-N receive a packet having a user ID different from the user ID of a packet currently being output by the output selection units 1053-1 to 1053-N belonging to the same memory controller as the user determination units 1051-1 to 1051-N, the user determination units 1051-1 to 1051-N may store the received packet as is in the storage unit 106. At this time, when a packet having the same user ID as the received packet has already been stored in the storage unit 106, the user determination units 1051-1 to 1051-N may store the stored packet and the received packet in a combined manner, thereby allowing the storage unit 106 to hold larger data.
[0048] FIG. 5 is a block diagram showing the configuration of the data transfer device 2-9. The data transfer device 2-9 includes one or more packet receiving units 200-1 to 200-M (M is an integer equal to or greater than 1) that receive packets from the user management devices 1-1 to 1-3 or other data transfer devices, an input arbitration unit 201 that arbitrates between the packet receiving units to select a packet from any one of the packet receiving units 200-1 to 200-M, one or more packet transmitting units 202-1 to 202-J (J is an integer equal to or greater than 1) that transfer the packet to other data transfer devices or external transmitting devices 4-1 to 4-3, a packet analysis unit 203 that acquires a tag from the received packet, a transfer control unit 204 that determines a transfer destination of the packet received from the user management devices 1-1 to 1-3, other data transfer devices or subordinate data processing devices 3-11 to 3-13 based on route information written in the tag, and an inter-device communication control unit 205 that transfers the packet to the subordinate data processing device when the transfer destination of the packet is the subordinate data processing device 3-11 to 3-13.
[0049] Furthermore, the data transfer device 2-9 is equipped with a data acquisition unit 206 that reconstructs the original data from the payload of a packet when the destination of the packet is a subordinate data processing device 3-11 to 3-13 and transfers the reconstructed data to the destination data processing device, a packet creation unit 207 that packetizes data for which SF data processing has been completed and received from the subordinate data processing devices 3-11 to 3-13 and transmits the generated packet to the inter-device communication control unit 205, and a route information registration unit 208 that updates the routing tables registered in each of the transfer control unit 204 and the inter-device communication control unit 205 based on information from the communication management device 5.
[0050] When any of the packet receiving units 200-1 to 200-M of the data transfer device 2-9 receives a data packet from a preceding user management device or another data transfer device, the packet analysis unit 203 analyzes the data packet, obtains the tag added to the data packet, and outputs the received data packet to the transfer control unit 204.
[0051] Based on the route information written in the tag acquired by the packet analysis unit 203 and the routing table registered in the transfer control unit 204, the transfer control unit 204 transfers the data packet output from the packet analysis unit 203 to subordinate data processing devices 3-11 to 3-13 via the inter-device communication control unit 205, or transfers the data packet output from the packet analysis unit 203 to an adjacent data transfer device via one of the packet transmission units 202-1 to 202-J.
[0052] In this embodiment, the data transfer device 2-9 is provided with a plurality of packet receiving units 200-1 to 200-M, thereby forming a two-dimensional or three-dimensional network. In this configuration, each of the packet receiving units 200-1 to 200-M may receive a packet simultaneously.
[0053] For this reason, the input arbitration unit 201 selectively inputs a packet from any one of the packets received by the plurality of packet reception units 200-1 to 200-M to the packet analysis unit 203, and arbitrates between the packet reception units 200-1 to 200-M so as to put the other packet reception units on standby. As for the selection method, basically, the packet that arrives first may be sent to the packet analysis unit 203. If the packet reception units 200-1 to 200-M happen to receive packets simultaneously, the input arbitration unit 201 may select packets in ascending order of numbers based on the numbers of the packet reception units 200-1 to 200-M that are set in advance, or may select packets according to the preset priorities of the packet reception units 200-1 to 200-M.
[0054] The inter-device communication control unit 205 transfers the data packet sent from the transfer control unit 204 via the shared bus 6 to the subordinate data processing devices 3-11 to 3-13. If the subordinate data processing devices 3-11 to 3-13 are data processing devices that are not good at packet processing, such as GPUs, the data acquisition unit 206 may perform packet processing and reconstruct the original data (data stored in the payload of the packet) before transferring it.
[0055] Specifically, the data acquisition unit 206 extracts payloads from data packets sent from the transfer control unit 204, and reconstructs the original data by combining the payloads acquired from one or more data packets of the same user ID. Since the order of the packets that arrived may be mixed up, the data acquisition unit 206 performs packet order control to arrange the data extracted from the multiple packets in the correct order. This order control is performed based on the sequence numbers added to the packets.
[0056] Furthermore, when the original data is reconstructed and sent by the data acquisition unit 206, the packet header extracted from the data packet needs to be stored in the packet creation unit 207. The packet creation unit 207 stores the packet header received from the data acquisition unit 206 in association with the user ID.
[0057] The inter-device communication control unit 205 also controls communication between the subordinate data processing devices 3-11 to 3-13. This allows the transfer control unit 204 to concentrate on communication between the user management devices 1-1 to 1-3, other data transfer devices, or external transmission devices 4-1 to 4-3 and its own device, thereby widening the communication band.
[0058] When the subordinate data processing devices 3-11 to 3-13 are data processing devices such as GPUs that are not good at packet processing, the packet creation unit 207 may receive data from the subordinate data processing devices 3-11 to 3-13 via the shared bus 6 and packetize the data.
[0059] Specifically, the packet creation unit 207 packetizes the data received from the data processing devices 3-11 to 3-13, and transmits the generated packets to the inter-device communication control unit 205. At this time, the packet creation unit 207 combines the received data with a packet header corresponding to a user ID added to the data received from the data processing devices 3-11 to 3-13, among the packet headers received from the data acquisition unit 206 and stored, and packetizes the combined data. The packet header includes a tag from which route information for the SF that performed the data processing has been deleted.
[0060] In this embodiment, the data acquisition unit 206 and the packet creation unit 207 perform packet processing on behalf of the data processing devices 3-11 to 3-13, which are not good at packet processing, so that the processing delay can be reduced.
[0061] The route information registration unit 208 updates the routing table of the transfer control unit 204 and the routing table of the inter-device communication control unit 205 in accordance with the information sent from the communication management device 5. Since only the minimum information required for routing of its own device is sent from the communication management device 5, the routing table can be configured with relatively few memory resources.
[0062] The data transfer device 2-9 may be implemented as software using a CPU or GPU, or may be implemented as hardware using an FPGA. However, hardware generally has higher packet processing performance, so it is better to use hardware to achieve a high-speed network.
[0063] With the above configuration, the data transfer device 2-9 can transfer a data packet to any of the subordinate data processing devices 3-11 to 3-13 in the shortest time.
[0064] 6 is a block diagram showing the configuration of the inter-device communication control unit 205 of the data transfer device 2-9. The inter-device communication control unit 205 includes a transfer control unit 2050 that determines the transfer destination of a packet based on route information written in a tag when the transfer destination of the packet received from the subordinate data processing devices 3-11 to 3-13 is another subordinate data processing device, a buffer input unit 2051 that stores the packet in a storage unit (FIFO buffer) 2054-1 to 2054-K (K is an integer of 1 or more) of a transmission buffer 2052 corresponding to the transfer destination data processing device when the transfer destination of the packet is the subordinate data processing device 3-11 to 3-13, a transmission buffer 2052 having storage units 2054-1 to 2054-K assigned to each subordinate data processing device, and a communication management unit 2053 that transfers the packet stored in the transmission buffer 2052 to the transfer destination data processing device 3-11 to 3-13 and receives the packet from the data processing device 3-11 to 3-13.
[0065] The inter-device communication control unit 205 transfers the packet sent from the transfer control unit 204 to the subordinate data processing devices 3-11 to 3-13 via the transmission buffer 2052 based on the route information written in the tag acquired by the packet analysis unit 203 and the routing table registered in the inter-device communication control unit 205.
[0066] Furthermore, the packet analysis unit 203 of the data transfer device 2-9 analyzes the packet received by the inter-device communication control unit 205 from the subordinate data processing devices 3-11 to 3-13, and acquires the tag added to the packet. The inter-device communication control unit 205 checks the transfer destination of the packet sent from the data processing devices 3-11 to 3-13 based on the route information written in the tag acquired by the packet analysis unit 203 and the routing table registered in itself, and transfers the packet to the data processing devices 3-11 to 3-13 or the transfer control unit 204.
[0067] A plurality of communications cannot be performed at a time through the shared bus 6. Therefore, data packets transferred to the data processing devices 3-11 to 3-13 are temporarily stored in the transmission buffer 2052 via the transfer control unit 204 or the transfer control unit 2050 and the buffer input unit 2051.
[0068] The transmission buffer 2052 is composed of one or more storage units (FIFO buffers) 2054-1 to 2054-K. One of the data processing devices 3-11 to 3-13 and one of the storage units 2054-1 to 2054-K are in one-to-one correspondence. The buffer input unit 2051 stores the data packet in one of the storage units 2054-1 to 2054-K that corresponds to the data processing device of the transfer destination. However, the correspondence between the data processing device and the storage unit is not permanent. The correspondence can be flexibly changed in accordance with the addition / removal of the data processing devices 3-11 to 3-13.
[0069] The communications management unit 2053 retrieves the data packets from the storage units 2054-1 to 2054-K when the shared bus 6 is free, and transfers the data packets to the destination data processing devices 3-11 to 3-13 corresponding to the storage units from which the data packets were retrieved.
[0070] Furthermore, when the communication management unit 2053 is requested to use the shared bus 6 by the subordinate data processing devices 3-11 to 3-13, the communication management unit 2053 grants the right to use the shared bus 6 to any one of the data processing devices, receives a data packet from this data processing device via the shared bus 6, and arbitrates between the data processing devices 3-11 to 3-13 so that other data processing devices that have issued requests to use the shared bus 6 are put on standby. The right to use may be obtained on a first-come-first-served basis, but the right to use may be granted to the data processing devices 3-11 to 3-13 and the storage units 2054-1 to 2054-K that have made requests later depending on the frequency of obtaining the right to use. Furthermore, it is possible to set priorities in advance for the data processing devices 3-11 to 3-13 and the storage units 2054-1 to 2054-K, and to determine to which the right to use is to be granted in consideration of the priorities. Furthermore, it is also possible to give priority to packets, or to temporarily change the priority by an external command.
[0071] As described above, the packet analysis unit 203 of the data transfer device 2-9 analyzes the packets received by the inter-device communication control unit 205 from the subordinate data processing devices 3-11 to 3-11, and acquires the tags added to the packets.
[0072] The transfer control unit 2050 of the inter-device communication control unit 205 checks the transfer destination of the packet sent from the data processing devices 3-11 to 3-13 based on the route information written in the tag acquired by the packet analysis unit 203 and the routing table registered in itself, and transfers the packet to the buffer input unit 2051 or the transfer control unit 204. The packet transferred to the buffer input unit 2051 is transferred to the subordinate data processing devices 3-11 to 3-13 by the above-mentioned operation.
[0073] The transfer control unit 204 determines the transfer destination of a packet received from the user management devices 1-1 to 1-3 or another data transfer device, or the transfer destination of a packet received from the subordinate data processing devices 3-11 to 3-13 when the transfer destination is another data transfer device or the external transmission devices 4-1 to 4-3. On the other hand, the transfer control unit 2050 determines the transfer destination of a packet based on the route information written in the tag only when the transfer destination of a packet received from a subordinate data processing device is another subordinate data processing device. Therefore, since the transfer control unit 2050 only has routing information between the subordinate data processing devices 3-11 to 3-13, the table size is small and high-speed routing is possible.
[0074] With the above configuration, in this embodiment, any of the data processing devices 3-11 to 3-13 can be accessed with the same delay via the inter-device communication control unit 205, and communication between the data processing devices 3-11 to 3-13 is possible without going through the transfer control unit 204. Also, in this embodiment, by making the data processing devices 3-11 to 3-13 independent of the data transfer device 2-9, it is possible to add or remove a new data processing device without impeding communication between the user management devices 1-1 to 1-3, other data transfer devices 2-1 to 2-8, or external transmission devices 4-1 to 4-3 and the data transfer device 2-9.
[0075] In the examples of Figures 5 and 6, the data transfer device 2-9 and the data processing devices 3-11 to 3-13 are used as examples, but the configuration and operation of the data transfer devices 2-1 to 2-8 are similar to those of the data transfer device 2-9, and the operation of the data processing devices 3-1 to 3-10 are similar to those of the data processing devices 3-11 to 3-13.
[0076] 7 is a block diagram showing the configuration of the data processing device 3-11. The data processing device 3-11 is composed of a communication request unit 300 that requests the data transfer device 2-9 to use the shared bus 6 when receiving a packet for which data processing by service function units (hereinafter, SF units) 302-1 to 302-L (L is an integer equal to or greater than 1) that perform SF processing has been completed, and transfers the packet to the data transfer device 2-9 when the right to use the shared bus 6 is granted, a packet distribution unit 301 that transfers the packet to a transfer destination SF unit among the SF units 302-1 to 302-L based on route information written in the tag of the packet when receiving the packet from the data transfer device 2-9, and the SF units 302-1 to 302-L.
[0077] Each of the SF units 302-1 to 302-L includes a packet sequence control unit 3020, a data acquisition unit 3021, a data construction unit 3022, a register management unit 3023, a data processing unit 3024, and a packet creation unit 3025.
[0078] When the data processing device 3-11 receives a data packet from the data transfer device 2-9 via the shared bus 6, it distributes the data packet to the destination SF units 302-1 to 302-L. The reason why the data processing device 3-11 has a packet distribution unit 301 is to prevent the inter-device communication control unit 205 of the upper data transfer device 2-9 from having an excessive amount of transmission buffer 2052 and to efficiently use the shared bus 6 on a data processing device basis.
[0079] Each of the SF units 302-1 to 302-L reconstructs data by rearranging data packets before performing data processing. The reason for performing sequence control is that the order of packets may be rearranged in an external network or in user management devices 1-1 to 1-3. Specifically, the packet sequence control unit 3020 of each of the SF units 302-1 to 302-L arranges multiple data packets of the same user ID sent from the data transfer device 2-9 in the correct order. This sequence control is performed based on the sequence numbers added to the packets.
[0080] Data acquisition unit 3021 of each of SF units 302-1 to 302-L extracts the payload from the data packets arranged in the correct order by packet order control unit 3020. Data acquisition unit 3021 also refers to route information written in a tag included in the packet header of the data packet, and updates the route information written in the tag so that data acquisition unit 3021 (SF unit 302-1 to 302-L) is removed from the route of the service chain. Data acquisition unit 3021 then passes the packet header after the tag update to packet creation unit 3025 for later reuse. This tag update prevents SF units 302-1 to 302-L that have completed processing from being selected again as a transfer destination.
[0081] Data constructing section 3022 of each of SF sections 302-1 to 302-L combines payloads acquired by data acquiring section 3021 from a plurality of data packets to reconstruct the original data.
[0082] The data processing unit 3024 of each of the SF units 302-1 to 302-L executes a predetermined process on the data received from the data construction unit 3022, and transmits the processed data to the packet creation unit 3025. Examples of the data processing include machine learning and image processing. The data processing unit 3024 can also function as a shared memory. In this manner, each of the SF units 302-1 to 302-L executes the SF processing.
[0083] Packet creation unit 3025 of each of SF units 302-1 to 302-L combines the data received from data processing unit 3024 with the packet header received from data acquisition unit 3021 to packetize the data, and transmits the packetized data to communication request unit 300. At this time, if it is necessary to divide the data received from data processing unit 3024, packet creation unit 3025 combines each of the divided data with the packet header received from data acquisition unit 3021 to packetize the data.
[0084] When the communication request unit 300 of the data processing device 3-11 receives a data packet from the packet creation unit 3025, it requests the upper data transfer device 2-9 to use the shared bus 6, and transmits the data packet to the data transfer device 2-9 after the data transfer device 2-9 has given the right to use the shared bus 6. The communication request unit 300 receives data packets from the packet creation units 3025 of the SF units 302-1 to 302-L until the right to use the shared bus 6 is given, and transmits the data packets collectively at the point in time when the right to use the shared bus 6 is given, thereby making it possible to improve the efficiency of communication.
[0085] The register management unit 3023 registers and acquires parameters in the data processing unit 3024. Specifically, the register management unit 3023 acquires user-specific parameters required for SF processing from the user management devices 1-1 to 1-3 as described below, and registers the acquired parameters in the data processing unit 3024. The parameters are registered for each user (for each user ID).
[0086] Furthermore, when register management unit 3023 receives a collection request packet from user management devices 1-1 to 1-3, it deletes the parameters corresponding to the user ID included in the collection request packet from data processing unit 3024. Packet creation unit 3025 packetizes the parameters registered in data processing unit 3024 and returns the packets to the requesting user management devices 1-1 to 1-3. In this way, the parameters are managed in user management devices 1-1 to 1-3 in association with the user ID. With such parameter registration and collection functions, parameters can be replaced for each user, and data processing can be performed with parameters suitable for the user.
[0087] In the example of FIG. 7, the data processing device 3-11 is taken as an example for explanation, but the configurations and operations of the data processing devices 3-1 to 3-10, 3-12, and 3-13 are similar to those of the data processing device 3-11.
[0088] Fig. 8 is a flowchart explaining the operation of the data transfer device 2-9. When any of the packet receiving units 200-1 to 200-M of the data transfer device 2-9 receives a data packet from a preceding user management device or another data transfer device (Yes in step S20 in Fig. 8), the packet analysis unit 203 analyzes the data packet, acquires the tag added to the data packet, and outputs the received data packet to the transfer control unit 204 (step S21 in Fig. 8).
[0089] The forwarding control unit 204 searches the routing table registered in itself using the route information written in the tag acquired by the packet analysis unit 203 as a search key, and determines the forwarding destination of the data packet output from the packet analysis unit 203 (FIG. 8, step S22).
[0090] If the transfer destination is an adjacent data transfer device or an adjacent external transmission device (No in step S23 in FIG. 8), the transfer control unit 204 transfers the data packet to the transfer destination from an appropriate packet transmission unit 202-1 to 202-J (step S24 in FIG. 8). Here, the appropriate packet transmission unit 202-1 to 202-J refers to the output destination (packet transmission unit 202-1 to 202-J) obtained by the routing result in the transfer control unit 204.
[0091] Furthermore, if the transfer destination is one of the subordinate data processing devices 3-11 to 3-13 (Yes in step S23), the transfer control unit 204 transmits the data packet output from the packet analysis unit 203 to the inter-device communication control unit 205. The inter-device communication control unit 205 checks the status of the shared 6 bus (step S25 in FIG. 8), and if the shared bus 6 is available, transfers the data packet sent from the transfer control unit 204 to the destination data processing device via the shared bus 6 (step S26 in FIG. 8).
[0092] At this time, if packet processing is required in the data transfer device 2-9 instead of the data processing device of the transfer destination (Yes in step S27 in FIG. 8), the data acquisition unit 206 extracts the payload from the data packet sent from the transfer control unit 204, and reconstructs the original data by combining the payloads acquired from one or more data packets of the same user ID (step S28 in FIG. 8). Since the order of the arriving packets may be changed, the data acquisition unit 206 performs packet order control based on the sequence numbers, and arranges the data extracted from the multiple packets in the correct order.
[0093] When the data acquisition unit 206 becomes capable of processing the data, it transfers the reconstructed data to the destination data processing device via the shared bus 6 (step S26 in FIG. 8). The data acquisition unit 206 also causes the packet creation unit 207 to store the packet header extracted from the data packet sent from the transfer control unit 204.
[0094] It is already known which of the data processing devices 3-11 to 3-13 under the data transfer device 2-9 requires packet processing, and information on the data processing devices requiring packet processing is registered in the data acquisition unit 206 in advance.
[0095] When the data processing of the SF is completed, the data packet or data is returned from the destination data processing device (Yes in step S29 in FIG. 8). The communication management unit 2053 of the inter-device communication control unit 205 of the data transfer device 2-9 grants the right to use the shared bus 6 to one of the subordinate data processing devices 3-11 to 3-13 in response to a communication request from the subordinate data processing devices 3-11 to 3-13, and receives a packet via the shared bus 6 from the data processing device to which the right of use has been granted (step S30 in FIG. 8).
[0096] When the inter-device communication control unit 205 of the data transfer device 2-9 receives a packet from a subordinate data processing device, the packet analysis unit 203 analyzes the received packet and obtains the tag added to the packet (FIG. 8, step S31).
[0097] If the data sent from the subordinate data processing device is not in packet format but is data reconstructed from packets and needs to be packetized (Yes in step S32 in FIG. 8), the packet creation unit 207 of the data transfer device 2-9 combines the received data with a packet header corresponding to the user ID added to the data received from the data processing device, among the packet headers received and stored from the data acquisition unit 206, and packetizes the data (step S33 in FIG. 3). At this time, if it is necessary to divide the received data, the packet creation unit 207 combines each of the divided data with a packet header and packets the data.
[0098] When the packet is processed by the packet creating unit 207, the packet analyzing unit 203 analyzes the packet created by the packet creating unit 207 and acquires the tag added to the packet (step S31).
[0099] The transfer control unit 2050 of the inter-device communication control unit 205 of the data transfer device 2-9 searches its own registered routing table using the route information written in the tag acquired by the packet analysis unit 203 as a search key, and determines the transfer destination of the packet received from a subordinate data processing device or the packet created by the packet creation unit 207 (FIG. 8, step S34).
[0100] If the transfer destination is one of the subordinate data processing devices 3-11 to 3-13 (Yes in step S35), the inter-device communication control unit 205 proceeds to step S25. Through the processes in steps S25 to S28 described above, the data packet is transferred via the shared bus 6 to the transfer destination data processing device.
[0101] Furthermore, if the transfer destination is not one of the subordinate data processing devices 3-11 to 3-13 (No in step S35), the inter-device communication control unit 205 passes the packet received from the subordinate data processing device or the packet created by the packet creation unit 207 to the transfer control unit 204. Through the processes in steps S22 to S24, the data packet is transferred to the data transfer device adjacent to the transfer destination or to an adjacent external transmission device.
[0102] The data transfer device 2-9 repeatedly executes the above process until the operation of the data processing system is completed (Yes in step S36 in FIG. 8). In the example of FIG. 8, the data transfer device 2-9 is taken as an example for explanation, but the operations of the data transfer devices 2-1 to 2-8 are similar to those of the data transfer device 2-9.
[0103] Fig. 9 is a flowchart explaining the operation of the data processing device 3-11. When the packet distribution unit 301 of the data processing device 3-11 receives a data packet from the data transfer device 2-9 via the shared bus 6 (Yes in step S40 in Fig. 9), it refers to the route information written in the tag of the data packet and transfers the data packet to the destination SF unit 302-1 to 302-L (step S41 in Fig. 9).
[0104] The packet order control unit 3020 in the destination SF unit arranges the multiple data packets sent from the data transfer device 2-9 in the correct order (FIG. 9, step S42). The data acquisition unit 3021 extracts the payload from each of the data packets that have been arranged in the correct order by the packet order control unit 3020 (step S43 in FIG. 9).
[0105] The data constructing unit 3022 reconstructs the original data by combining the payloads acquired from the multiple data packets by the data acquiring unit 3021 (step S44 in FIG. 9). The processes of steps S40 to S44 are repeated until the data becomes ready for processing.
[0106] When the data becomes processable (Yes in step S45 in FIG. 9), data processing unit 3024 executes a predetermined process on the data received from data construction unit 3022, and transmits the processed data to packet creation unit 3025 (step S46 in FIG. 9).
[0107] Packet creation unit 3025 packetizes the data received from data processing unit 3024 and transmits the packet to communication request unit 300 (step S47 in FIG. 9). Although not shown in FIG. 9, data acquisition unit 3021 refers to route information written in a tag included in the packet header of the data packet, and updates the route information written in the tag so that data acquisition unit 3021 (SF units 302-1 to 302-L) is removed from the route of the service chain. Data acquisition unit 3021 then passes the packet header after the tag update to packet creation unit 3025. Packet creation unit 3025 combines the data received from data processing unit 3024 with the packet header received from data acquisition unit 3021 to packetize the data.
[0108] When the communication request unit 300 of the data processing device 3-11 receives a data packet from the packet creation unit 3025, it requests the upper data transfer device 2-9 to use the shared bus 6, and when the right to use the shared bus 6 is granted by the data transfer device 2-9 (Yes in step S48 of FIG. 9), it transmits the data packet to the data transfer device 2-9 (step S49 of FIG. 9).
[0109] If the data received in step S40 is not in packet format and is data reconstructed by the data transfer device 2-9 of the transfer source, the processes in steps S42 to S44 are unnecessary. If the data received in step S40 is not in packet format and is data reconstructed by the data transfer device 2-9 of the transfer source, a packet header is sent from the data transfer device 2-9 together with the data. In this case, the packet creation unit 3025 combines the data received from the data processing unit 3024 with the packet header received from the data transfer device 2-9 to packetize it.
[0110] On the other hand, if the data received in step S40 is not a “service use” packet or data reconstructed from a “service use” packet but a “parameter registration request” packet (Yes in step S50 in FIG. 9), the register management unit 3023 registers the parameters contained in the payload extracted from the packet by the data acquisition unit 3021 in the data processing unit 3024 and terminates the processing (steps S51 and S52 in FIG. 9).
[0111] Furthermore, if the data received in step S40 is not a "service use" packet or data reconstructed from a "service use" packet but a "parameter retrieval request" packet (Yes in step S50 in FIG. 9), the register management unit 3023 deletes the parameters corresponding to the user ID included in the "parameter retrieval request" packet from the data processing unit 3024. The packet creation unit 3025 packetizes the parameters registered in the data processing unit 3024, transmits the packets to the data transfer device 2-9, and ends the process (steps S51 and S53 in FIG. 9). At this time, the address of the user management device 1-1 to 1-3 that is the sender of the "parameter retrieval request" packet is set as the destination address in the header of the packet created by the packet creation unit 3025.
[0112] In the example of FIG. 9, the data processing device 3-11 is taken as an example for explanation, but the operations of the data processing devices 3-1 to 3-10, 3-12, and 3-13 are similar to those of the data processing device 3-11.
[0113] 10 is a flowchart explaining the operation of the communication management device 5. The communication management device 5 cooperates with the user management devices 1-1 to 1-3, receives user information and information on the end of use of a service, and transmits route information to the user management devices 1-1 to 1-3. The communication management device 5 also manages the routing tables registered in the transfer control units 204, 2050 of the data transfer devices 2-1 to 2-9, and controls the addition / removal of SFs in each of the data processing devices 3-1 to 3-13.
[0114] When the communication management device 5 receives the information of the end of service usage, it deletes the SF from the corresponding data processing device 3-1 to 3-13 (step S100 in FIG. 10). Specifically, if the data processing device is configured with, for example, a CPU or a GPU, the program of the SF can be deleted from the memory of the CPU or GPU. Also, if the data processing device is configured with, for example, an FPGA, the circuit configuration of the FPGA can be updated to delete the circuit for the SF. By deleting the SF, it is possible to reduce the power consumption of the data processing system.
[0115] When communications management device 5 receives user information and a user ID from user management section 109 of user management devices 1-1 to 1-3 (Yes in step S101 in FIG. 10), it acquires service information included in the user information (step S102 in FIG. 10).
[0116] Then, the communication management device 5 calculates a route that passes through SFs necessary to realize the service requested by the user based on the acquired service information (step S103 in FIG. 10). In this calculation, consideration is given to the placement of SFs in operation, the bandwidth used between the data transfer devices 2-1 to 2-9, and the bandwidth used within the data transfer devices 2-1 to 2-9, so that the new service chain does not affect others. For example, a classical placement and wiring method such as the maze method or a genetic algorithm can be used for the route calculation.
[0117] When there are many services in operation, there is a possibility that a new service cannot be realized with only the existing SFs. Therefore, an SF may be added to the data processing devices 3-1 to 3-13 that are out of operation. When it is necessary to add an SF, the communication management device 5 adds the desired SF to a data processing device that is out of operation and is located at the position of the desired SF on the route that passes through the SFs required for the new service chain (step S104 in FIG. 10).
[0118] When the data processing device is configured with, for example, a CPU or GPU, the communication management device 5 transfers a program of the desired SF to the data processing device and stores it in the memory of the data processing device. Also, when the data processing device is configured with, for example, an FPGA, the communication management device 5 transfers data for updating the circuit configuration of the FPGA to the data processing device and adds a circuit for the desired SF.
[0119] If the route calculation is successful, the communications management device 5 transmits the route information and the user ID to the user management device that is the starting point of the calculated route among the user management devices 1-1 to 1-3 (step S105 in FIG. 10). By transmitting the route information only to the user management device that is the starting point of the route in this way, each of the user management devices 1-1 to 1-3 can hold only the route information related to itself in association with the user ID.
[0120] The communication management device 5 also transfers the user information and the user ID to the external transmission device that is the end point of the calculated route among the external transmission devices 4-1 to 4-3 (step S106 in FIG. 10). By transferring the user information only to the external transmission device that is the end point of the route in this manner, each of the external transmission devices 4-1 to 4-3 can hold only the user information related to itself in association with the user ID.
[0121] When the destination user management devices 1-1 to 1-3 and the external transmission devices 4-1 to 4-3 receive the information sent from the communication management device 5, the communication management device 5 sends information to the data transfer devices 2-1 to 2-9 on the calculated route to update the routing tables registered in the transfer control units 204, 2050 of the data transfer devices 2-1 to 2-9 on the calculated route based on the route calculation results (step S107 in FIG. 10). That is, the routing table is updated so that a "service use" packet sent from a user who has requested a new service follows the calculated route. In this embodiment, the expansion of the routing table can be suppressed by limiting the targets of the routing table update to a minimum number of data transfer devices.
[0122] If the route calculation fails, or if the information sent from the communication management device 5 is not accepted by the destination user management device 1-1 to 1-3 or the external transmission device 4-1 to 4-3, the communication management device 5 notifies the user via the user management device 1-1 to 1-3 that the service cannot be started.
[0123] The communications management device 5 repeatedly executes the above process until the operation of the data processing system is completed (Yes in step S108 in FIG. 10).
[0124] Fig. 11 is a sequence diagram for explaining the operation of the data processing system of this embodiment. A user who wishes to use the data processing system of this embodiment uses his / her user terminal 8 to apply for service use to the data processing system before using the service (Fig. 11, step S200).
[0125] When the user information extraction unit 104 of the user management device 1 receives a packet with a packet type of "service use application" from the user terminal 8, it acquires the user information described in the packet. The user management unit 109 of the user management device 1 issues a user ID and transfers the user information and the user ID to the communication management device 5 (FIG. 11, step S201).
[0126] When the communication management device 5 receives the user information, it calculates the route of the service chain based on the service information contained in the user information, and transmits the route information and the user ID to the user management device 1 that is the starting point of the calculated route among the multiple user management devices (Figure 11, step S202).
[0127] The communication management device 5 also transmits the user information and the user ID to the external transmission device 4 that is the end point of the calculated route among the multiple external transmission devices (FIG. 11, step S203). Although not shown in FIG. 11, the communication management device 5 also updates the routing tables registered in the transfer control units 204, 2050 of the data transfer devices on the calculated route based on the results of the route calculation. In this way, the communication management device 5 prepares an environment in which the user can use the service.
[0128] In response to the "service use application" packet, user management unit 109 of user management device 1 returns a packet including the issued user ID to user terminal 8, thereby notifying the user of the user ID (FIG. 11, step S204).
[0129] When starting to use a service, a user who has been issued a user ID uses his / her own user terminal 8 to notify the data processing system that he / she has started using the service (step S205 in FIG. 11).
[0130] When the user management unit 109 of the user management device 1 receives a packet with a packet type of "start using service" from the user terminal 8, it identifies the user based on the user ID added to the packet, and generates user-specific parameters required for data processing in the SF based on service information included in the user information managed in association with the user ID. Then, the user management unit 109 transmits the user-specific parameters to the SF units of the data processing devices 3-1 to 3-n (n is an integer equal to or greater than 2) on the route of the service chain based on the route information managed in association with the user ID (step S206 in FIG. 11).
[0131] 11 does not show data transfer devices, the user-specific parameters are packetized as a "parameter registration request" packet and transmitted from the user management device 1 to the nearest data transfer device. Based on the result of packet analysis by the packet analysis unit 203, the transfer control units 204, 2050 of each data transfer device transfer the packetized parameters to the SF unit of the data processing device connected to the own device, among the SF units of the data processing devices 3-1 to 3-n to which the parameters are to be transmitted.
[0132] The register management unit 3023 of the SF unit of each of the data processing devices 3-1 to 3-n that has received the packetized parameters registers the parameters in the data processing unit 3024 in association with the user ID that was added to the received packet.
[0133] To use the service, the user transmits a data packet to the data processing system using his / her own user terminal 8 (step S207 in FIG. 11). A user ID is added to the data packet of the packet type "service usage" transmitted from the user terminal 8.
[0134] Tag addition unit 107 of user management device 1 adds a tag corresponding to the user ID added to the packet with a packet type of "service usage" received from user terminal 8, and outputs the tagged packet to packet transmission unit 101. Packet transmission unit 101 of user management device 1 transmits the packet output from tag addition unit 107 to the nearest data transfer device (Step S208 in FIG. 11).
[0135] 11 does not show data transfer devices, the packet analysis unit 203 of each data transfer device analyzes the received packet and acquires the tag added to the packet. The transfer control units 204, 2050 of the data transfer device transfer the packet to the SF unit of the data processing device connected to the own device among the SF units of the data processing devices 3-1 to 3-n on the route of the service chain, according to the route information described in the tag acquired by the packet analysis unit 203 (step S209 in FIG. 11).
[0136] The SF unit of each of the data processing devices 3-1 to 3-n receives a packet from the data transfer device connected to the device itself, and transmits the packet after SF processing is completed to the data transfer device. In this manner, the packet is transferred to the SF unit of the data processing device by the data transfer device on the route of the service chain multiple times, and the packet after all data processing is completed is transferred by the data transfer device to the external transmission device 4, which is the end point of the route of the service chain (FIG. 11 step S210).
[0137] The external transmission device 4 identifies the user to whom the packet is addressed based on the user ID added to the received packet, and deletes the tag from the packet. Then, the external transmission device 4 adds TCP / IP destination information to the packet based on the user information corresponding to the user ID, and sends the packet back to the user terminal 8 (FIG. 11, step S211).
[0138] When another user uses the same FS, at the timing when the user is switched, the user management unit 109 of the user management device 1 transmits a packet requesting the retrieval of parameters specific to the user who has finished using the service to the SF unit of the data processing device 3-1 to 3-n on the route of the service chain based on the route information managed in association with the user ID of the user. Based on the result of packet analysis by the packet analysis unit 203, the transfer control units 204, 2050 of each data transfer device transfer the "parameter retrieval request" packet from the user management device 1 to the SF unit of the data processing device connected to the own device among the SF units of the data processing devices 3-1 to 3-n on the route of the service chain.
[0139] When the register management unit 3023 of the data processing device receives a "parameter retrieval request" packet from the user management device 1, it deletes the parameters corresponding to the user ID contained in this packet from the data processing unit 3024. The packet creation unit 304 of the data processing device packetizes the parameters registered in the data processing unit 3024 and transmits them to the data transfer device connected to the data processing device. The packetized parameters are transferred from the data transfer device to the user management device 1 (FIG. 11, step S212).
[0140] The user management unit 109 of the user management device 1 manages the parameters collected from the SF units of the data processing devices 3-1 to 3-n via the data transfer device in association with the user ID of the user who has finished using the service. The user management device 1 also notifies the user terminal 8 of the end of service use (step S213 in FIG. 11). A packet indicating the end of service use is also sent from the user management device 1 to the communication management device 5.
[0141] The system determines that service usage has ended when the user notifies it that they will stop using the service, or when no data is sent for a certain period of time (timeout). In either case, the system notifies the user terminal 8 that service usage has ended. At that time, if there are parameters for that user remaining in the data processing devices 3-1 to 3-n (SF), they are collected (discarded) and parameters for the next user are transmitted.
[0142] If a user is using a service but another user is waiting, after using the service for a certain period of time, the service is temporarily suspended as a result of QoS control or when instructed from outside, and the data processing devices 3-1 to 3-n (SF) are handed over to the next user. At that time, parameters are retrieved from the data processing devices 3-1 to 3-n (SF) and the parameters of the next user are transmitted. However, the timing of the handover is when the data processing has been completed. For example, in an image processing service, processing is performed for each frame, so the parameter update processing is started after the transmission of one frame of data has been completed.
[0143] Fig. 12 is a sequence diagram for explaining another operation of the data processing system of this embodiment. The data processing system of this embodiment can also provide a service that does not have a user-specific parameter. If the user-specific parameter is not used, the processing of steps S206 and S212 described in Fig. 11 is unnecessary. The other processing is the same as that in Fig. 11.
[0144] An example of a service that does not use parameters is a network service, such as a firewall, DPI (Deep Packet Inspection), or load balancing, which is assumed to be used by multiple traffic simultaneously and does not require parameter switching.
[0145] Even in the case of cloud services, for example, when the same learning data is used in machine learning or when the same parameters can be used in image processing, parameter switching is not necessary and the services can be treated as those that do not use parameters.
[0146] The data processing system of this embodiment can use a general IP network for communication with the user terminal 8. In this case, the data processing system uniquely identifies the user from the IP address and port number written in the packet received from the user terminal 8, and issues a user ID.
[0147] Figure 13(A) shows the format of the packet sent from user terminal 8 when applying to use the service, Figure 13(B) shows the format of the packet sent and received between user terminal 8 and the data processing system when using the service, and Figure 13(C) shows the format of the packet sent and received within the data processing system when using the service.
[0148] The “service use application” packet includes an Ethernet (registered trademark) header 400 , an IP header 401 , a TCP or UDP header 402 , a payload 403 , and an FCS (Frame Check Sequence) 404 . When applying for service use, the user terminal 8 stores packet type information (405 in FIG. 13A) indicating "application for service use" in the payload 403 of a packet and transmits it to the data processing system.
[0149] As described above, the user management unit 109 of the user management device 1 uniquely identifies the user from the source IP address and source port number extracted from the "service use application" packet, and issues a user ID. The user management unit 109 returns a packet in which the issued user ID is stored in the location 405 in Fig. 13(A) to the user terminal 8.
[0150] When using a service, the user terminal 8 stores the user ID, sequence number, and packet type information indicating "service usage" at the location indicated by 405 in payload 403 of the packet in Fig. 13(B), and stores a data head flag, data, and data tail flag at the location indicated by 406 in payload 403. The user terminal 8 transmits the "service usage" packet generated in this manner to the data processing system. The data head flag, data tail flag, and sequence number are information necessary for the data processing device or data transfer device to reconstruct the data.
[0151] When using a service, registering parameters, or retrieving parameters, a packet in the format shown in Fig. 13(C) is transmitted and received within the data processing system. This packet includes an Ethernet header 400, a tag 407, a payload 403, and an FCS 404. A user ID, a sequence number, and information on a packet type are stored in a location indicated by 408 in the payload 403, and a data head flag, data, and a data tail flag are stored in a location indicated by 409 in the payload 403. Packet communication using the tag 407 is performed within the data processing system. By describing route information to the destination SF unit in each tag 407, the packet is transferred according to the route information, and data processing is performed in the SF unit corresponding to the service requested by the user.
[0152] Each of the user management devices 1, 1-1 to 1-3, data transfer devices 2-1 to 2-9, data processing devices 3-1 to 3-13, external transmission devices 4, 4-1 to 4-3, communication management device 5, and user terminal 8 described in this embodiment can be realized by a computer equipped with a CPU (or GPU), a storage device, and an interface, and a program that controls these hardware resources. An example of the configuration of this computer is shown in FIG. 14. The computer includes a CPU 500 (or GPU), a storage device 501, and an interface device 502. In such a computer, a program for realizing the data processing method of the present invention is stored in the storage device 501. The CPU 500 (or GPU) of each device executes the process described in this embodiment according to the program stored in the storage device 501.
[0153] At least some of the user management devices 1, 1-1 to 1-3, the data transfer devices 2-1 to 2-9, the data processing devices 3-1 to 3-13, the external transmission devices 4, 4-1 to 4-3, and the communication management device 5 may be configured using FPGA or ASIC. In particular, by executing some of the packet processing and data processing using these hardware devices, improvement in processing performance can be expected. [Industrial Applicability]
[0154] The present invention can be applied to a service function chaining technology. [Explanation of symbols]
[0155] 1-1 to 1-3...user management device, 2-1 to 2-9...data transfer device, 3-1 to 3-13...data processing device, 4-1 to 4-3...external transmission device, 5...communication management device, 6...shared bus, 8...user terminal, 100...packet receiving unit, 101...packet transmitting unit, 102...packet analysis unit, 103...packet type determination unit, 104...user information extraction unit, 105...data management unit, 106...storage unit, 107...tag addition unit, 108...data communication control unit, 109...user management unit, 110...QoS control unit, 111...tag generation unit, 200-1 to 200-M...packet receiving unit, 201...input arbitration unit, 202-1 to 202-J...packet transmitting unit, 203...packet analysis unit, 204...transfer control unit, 205...inter-device communication control unit, 206...data acquisition unit, 207... packet creation unit, 208... route information registration unit, 300... communication request unit, 301... packet distribution unit, 302-1 to 302-L... service function unit, 1050... packet distribution unit, 1051-1 to 1051-N... user determination unit, 1052-1 to 1052-N... user selection unit, 1053-1 to 1053-N... output selection unit, 1054... output control unit, 105 5-1 to 1055-N... memory controller, 2050... transfer control unit, 2051... buffer input unit, 2052... transmission buffer, 2053... communication management unit, 2054-1 to 2054-K... memory unit, 3020... packet order control unit, 3021... data acquisition unit, 3022... data construction unit, 3023... register management unit, 3024... data processing unit, 3025... packet creation unit.
Claims
1. A data transfer device having a data processing device that processes individual service functions constituting a service chain necessary for realizing a service requested by a user, A plurality of packet receiving units configured to receive packets from a user management device or other data transfer device that is a starting point of the service chain; a packet analysis unit configured to acquire a tag from a packet received from the user management device, another data transfer device, or the data processing device under control; an input arbitration unit configured to selectively input a packet from any one of the plurality of packet receiving units to the packet analysis unit; a first transfer control unit configured to determine a transfer destination of a packet received from the user management device, another data transfer device, or the data processing device under the control of the user management device, based on route information of the service chain described in the tag; a packet transmission unit configured to transfer the packet to the destination data transfer device when the destination of the packet is another data transfer device; an inter-device communication control unit configured to check a status of a shared bus when a destination of a packet is a subordinate data processing device, and if the shared bus is available, to transfer the packet to the destination data processing device via the shared bus, and to determine a destination of a packet received from the subordinate data processing device based on the route information described in the tag; A data transfer device characterized in that, when there are multiple data processing devices under its control, the inter-device communication control unit grants use of the shared bus to one of the data processing devices in response to a communication request from the data processing devices, and arbitrates between the data processing devices so that packets are received via the shared bus from the data processing device to which it has been granted use right.
2. 2. The data transfer device according to claim 1, The inter-device communication control unit, a transmission buffer having a storage unit assigned to each of the data processing devices; a second forwarding control unit configured to determine a forwarding destination of a packet based on the route information written in the tag when a forwarding destination of the packet received from the subordinate data processing device is another subordinate data processing device; a buffer input unit configured to store a packet in a storage unit of the transmission buffer corresponding to the data processing device as a destination of the packet when the destination of the packet determined by the first transfer control unit or the second transfer control unit is the data processing device under control; a communication management unit configured to transfer the packets stored in the transmission buffer to a destination data processing device via the shared bus and to receive packets from the data processing device; A data transfer device characterized in that, when there are multiple data processing devices under its control, the communication management unit grants the right to use the shared bus to one of the data processing devices in response to a communication request from the data processing devices, and arbitrates between the data processing devices so that packets are received via the shared bus from the data processing device to which the right of use has been granted.
3. 3. The data transfer device according to claim 1, A route information registration unit is configured to update a routing table registered in each of the first transfer control unit and the inter-device communication control unit based on information from a communication management device that calculates a route of the service chain, A data transfer device characterized in that each of the first transfer control unit and the inter-device communication control unit determines a packet transfer destination based on route information of the service chain and a routing table registered in the device itself.
4. 4. The data transfer device according to claim 1, a data acquisition unit configured to, when a transfer destination of a packet determined by the first transfer control unit or the inter-device communication control unit is the subordinate data processing device, reconstruct original data before being packetized from a payload of the packet instead of transferring the packet to the transfer destination data processing device, and transfer the reconstructed data to the transfer destination data processing device via the shared bus; a packet creation unit configured to packetize data that has been received from the subordinate data processing device and has completed data processing of the service function, and to transmit the generated packets to the inter-device communication control unit; The data transfer device is characterized in that the data acquisition unit performs sequence control to arrange the data in the correct order when extracting data from the payloads of multiple packets and reconstructing the original data.
5. A data processing device that processes individual service functions constituting a service chain necessary for realizing a service requested by a user, A plurality of service function units configured to process service functions; a packet distribution unit configured to transfer a packet to a destination service function unit among the plurality of service function units based on route information of the service chain described in a tag of the packet when the packet is received from a higher-level data transfer device connected by a shared bus; a communication request unit configured to request the data transfer device to use the shared bus when a packet for which data processing by the service function unit has been completed is received, and to transfer the packet for which data processing has been completed to the data transfer device when the right to use the shared bus is granted; Each service function unit: a packet sequence control unit configured to perform sequence control for arranging packets received from the data transfer device in a correct sequence; a data acquisition unit configured to extract a payload from the packet output from the packet sequence control unit; a data constructing unit configured to reconstruct original data before being packetized from one or more payloads output from the data acquiring unit; a data processing unit configured to perform data processing of a service function on the data output from the data construction unit; a packet creation unit configured to packetize data after data processing by the data processing unit and output the packetized data to the communication request unit.
6. 6. The data processing device of claim 5, Each service function unit: a register management unit configured to register, in the data processing unit, parameters included in a payload extracted from the packet by the data acquisition unit when the received packet is a parameter registration request packet, and to delete, from the data processing unit, the parameters when the received packet is a parameter recovery request packet; The data processing device, wherein the packet creation unit converts the parameters deleted from the data processing unit into packets so as to be returned to a source of a parameter retrieval request, and outputs the packets to the communication request unit.
7. A data processing method for a data transfer device having a data processing device that processes individual service functions constituting a service chain necessary for realizing a service requested by a user, comprising: A first step of receiving a packet from a user management device or other data transfer device that is a start point of the service chain; a second step of analyzing packets received from the user management device or other data transfer device to obtain tags; a third step of determining a forwarding destination of a packet received from the user management device or another data forwarding device based on route information of the service chain described in the tag acquired in the second step; a fourth step of transferring the packet to the destination data transfer device when the destination of the packet determined in the third step is another data transfer device; a fifth step of confirming a state of a shared bus between the data processing device and the packet transfer destination determined in the third step when the packet transfer destination is the data processing device under control; a sixth step of transferring the packet to a destination data processing device via the shared bus if the shared bus is available as a result of the check; a seventh step of receiving packets from the subordinate data processing devices; an eighth step of analyzing packets received from the subordinate data processing devices to obtain tags; and a ninth step of determining a forwarding destination of a packet received from the subordinate data processing device based on the route information described in the tag obtained in the eighth step, the fifth step includes a step of checking a status of a shared bus between the data processing device and the subordinate data processing device when the transfer destination of the packet determined in the ninth step is the subordinate data processing device; The seventh step is a data processing method characterized in that, when there are multiple subordinate data processing devices, it includes a step of granting the right to use the shared bus to one of the data processing devices in response to a communication request from the data processing devices, and receiving a packet via the shared bus from the data processing device to which the right of use has been granted.
8. A data processing method for a data processing device that processes individual service functions constituting a service chain necessary for realizing a service requested by a user, comprising: A first step of receiving a packet from an upper data transfer device connected via a shared bus; a second step of transferring the packet to a destination service function unit among a plurality of service function units that perform processing of a service function based on route information of the service chain described in a tag of the packet received from the data transfer device; a third step of performing sequence control in the service function unit of the transfer destination to arrange the received packets in a correct sequence; a fourth step of extracting payloads from the packets arranged in the correct order by the third step in the service function unit of the transfer destination; a fifth step of reconstructing the original data before being packetized from one or more of the payloads in the service function unit of the transfer destination; a sixth step of performing data processing of a service function on the reconstructed data in the service function unit of the transfer destination; a seventh step of packetizing the data that has been subjected to the data processing in the sixth step in the service function unit of the transfer destination; an eighth step of requesting the data transfer device to use the shared bus when a packet for which data processing by the service function unit of the transfer destination has been completed is received; and a ninth step of transferring the packet for which the data processing has been completed to the data transfer device when the right to use the shared bus is granted in response to the request.
Citation Information
Patent Citations
Controller, service function network system, communication path control method
JP2016213586A
Data processing device, network system, packet order control circuit and data processing method
WO2018159677A1