WO2020184381A1 - 処理装置、情報処理システム、情報処理方法、及びプログラム - Google Patents

処理装置、情報処理システム、情報処理方法、及びプログラム Download PDF

Info

Publication number
WO2020184381A1
WO2020184381A1 PCT/JP2020/009444 JP2020009444W WO2020184381A1 WO 2020184381 A1 WO2020184381 A1 WO 2020184381A1 JP 2020009444 W JP2020009444 W JP 2020009444W WO 2020184381 A1 WO2020184381 A1 WO 2020184381A1
Authority
WO
WIPO (PCT)
Prior art keywords
packet
instruction
instructions
processing
processing device
Prior art date
Application number
PCT/JP2020/009444
Other languages
English (en)
French (fr)
Inventor
大地 照屋
紘也 金子
大史 浅井
Original Assignee
株式会社Preferred Networks
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社Preferred Networks filed Critical 株式会社Preferred Networks
Publication of WO2020184381A1 publication Critical patent/WO2020184381A1/ja
Priority to US17/468,914 priority Critical patent/US20210406013A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/56Routing software
    • H04L45/566Routing instructions carried by the data packet, e.g. active networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Definitions

  • the present invention relates to a processing device, an information processing system, an information processing method, and a program.
  • In-network computing which performs calculations during packet transfer in a network, is attracting attention.
  • the network is controlled so that the packets to be forwarded are processed in the order requested by the packets on a node (processing device) having an arithmetic function.
  • the identification device identifies the service function applied to the packet, assigns an identifier (NSH: Network Service Header) to the packet, and the transfer device refers to the identifier and transfers the packet to the service function or the like.
  • NSH Network Service Header
  • An inning system is known (see, for example, Patent Document 1).
  • the packet is transferred to the operation node capable of executing the operation, and the operation is executed. ..
  • this method is based on the premise that the arithmetic node has a specific arithmetic function in advance, and cannot be applied, for example, when an arbitrary program is to be executed on the network from a terminal. There's a problem.
  • One embodiment of the present invention has been made in view of the above problems, and is arbitrary from a terminal in an information processing system including a plurality of processing devices that execute predetermined processing during packet transfer in a network. Allows you to specify a program to execute processing.
  • the processing apparatus receives a packet containing a plurality of instructions, context information indicating the execution status of the instructions, and data to be processed by the instructions. It has a unit and an instruction execution control unit that controls execution of at least a part of the instructions based on the context information.
  • an arbitrary program can be specified from a terminal to execute the process. Will be.
  • FIG. 1 is a diagram showing an example of a configuration of an information processing system according to an embodiment.
  • the information processing system 100 includes a plurality of processing devices (first processing device 101-1, second processing device 101-2, third processing device 101-3, fourth processing device) provided in the network NW. 101-4), and a plurality of terminals (first terminal 102-1, second terminal 102-2).
  • first processing device 101-1, second processing device 101-2, third processing device 101-3, fourth processing device 101-4 among a plurality of processing devices (first processing device 101-1, second processing device 101-2, third processing device 101-3, fourth processing device 101-4).
  • “Processing device 101” is used to indicate an arbitrary processing device.
  • terminal 102 is used.
  • the number of processing devices 101 shown in FIG. 1 is an example, and the number of processing devices 101 may be two or more other numbers. Further, the number of terminals 102 shown in FIG. 1 is an example, and the number of terminals 102 may be one or more other numbers. Further, the topology of the network NW shown in FIG. 1 is an example, and the connection relationship between the processing devices 101 may be different from that in FIG.
  • the data transfer route in the network NW is determined by each processing device 101, a route selection device, or the like by a predetermined route selection algorithm and stored in the routing table of each processing device 101. Will be explained.
  • the processing device 101 is a device or an information processing device having a computer configuration capable of performing packet (an example of data) transfer processing in the network NW and executing instructions stored in the packet.
  • packet an example of data
  • the processing device 101 is a switch that performs packet transfer processing in the network NW.
  • the present invention is not limited to this, and the processing device may be a server device, an information terminal, or the like.
  • the terminal 102 is an information processing device that transmits a packet containing a plurality of instructions to be processed in the network NW, context information indicating the execution status of the plurality of instructions, data to be processed by the plurality of instructions, and the like to the processing device 101.
  • the terminal 102 include information terminals such as PCs (Personal Computers), smartphones and tablet terminals, devices such as robots and automobiles, and server devices.
  • the terminal 102 may also have a function of processing data, which also serves as a processing device 101, or may have a function of generating a packet without performing processing.
  • the first terminal 102-1 is a packet containing a plurality of instructions to be processed in the network NW, context information indicating the execution status of the plurality of instructions, data to be processed by the plurality of instructions, and the like. Is transmitted to the second terminal 102-2 via the network NW.
  • the first processing device 101-1 receives the packet transmitted from the first terminal 102-1, and if it is not a packet to be processed by the first processing device 101-1, another transfer destination.
  • the packet is transferred to the processing device (for example, the second processing device 101-2).
  • the first processing device 101-1 when the received packet is a packet to be processed by the first processing device 101-1, the first processing device 101-1 has a plurality of instructions included in the packet based on the context information contained in the packet. Of these, at least some of the instructions are executed. Further, when at least a part of the instructions are executed, the first processing device 101-1 contains a packet containing context information indicating that the at least a part of the instructions has been executed and data containing at least a part of the instructions executed. For example, it is transmitted to the second processing device 101-2.
  • the second processing device 101-2 when the packet received from the first processing device 101-1 is a packet to be processed by the second processing device 101-2, the first processing device 101- In the same manner as in 1, at least a part of the plurality of processes included in the packet is executed. Further, when at least a part of the instructions are executed, the second processing device 101-2 contains a packet containing context information indicating that the at least a part of the instructions has been executed and data containing at least a part of the instructions. , For example, transmission to the second terminal 102-2. For example, the second terminal 102-2 sequentially executes an unexecuted instruction among a plurality of instructions included in the packet based on the context information included in the received packet.
  • a plurality of packets included in the packet are transmitted by transmitting the packet from the first terminal 102-1 to the second terminal 102-2 via the network NW. Part or all of the processing of is executed in the network NW.
  • FIG. 2 shows an example of the hardware configuration of the processing device according to the embodiment.
  • the processing device 101 includes, for example, a CPU (Central Processing Unit) 201, a memory 202, a storage device, and a plurality of communication I / Fs (Interfaces) (first communication I / F204-1 and second communication I / F204-2). , ...), and the bus 205 and the like.
  • a CPU Central Processing Unit
  • I / Fs Interfaces
  • the CPU 201 is an arithmetic unit that realizes the function of the processing device 101 by executing a program stored in the storage device 203, the memory 202, or the like, for example.
  • the memory 202 includes, for example, a RAM (Random Access Memory), which is a volatile memory used as a work area of the CPU 201, and a ROM (Read Only), which is a non-volatile memory that stores a program for starting the processing device 101. Memory) etc. are included.
  • the storage device 203 is, for example, a large-capacity storage device such as an OS (Operating System), an SSD (Solid State Drive) for storing applications, data, and the like, and a flash ROM.
  • the plurality of communication I / F 204s include, for example, a NIC (Network Interface Card) and a communication module for performing LAN (Local Area Network) communication, WAN (Wide Area Network) communication, and the like with other processing devices 101, terminals 102, and the like. Etc. are included.
  • the hardware configuration of the processing device 101 shown in FIG. 2 is an example.
  • the processing device 101 may further include various hardware such as a display device and an input device. Further, when the processing device 101 is a switch (network switch), the processing device 101 may further have an ASIC (Application Specific Integrated Circuit) or the like that performs packet transfer processing by hardware.
  • ASIC Application Specific Integrated Circuit
  • FIG. 3 is a diagram showing an example of the functional configuration of the processing device according to the first embodiment.
  • the processing device 101 includes, for example, a packet interpretation unit 301, an instruction execution control unit 302, an instruction execution unit 303, a packet transfer unit (an example of a transfer unit) 304, a routing table 305, an interface unit 306, and the like.
  • the packet interpretation unit 301 is realized by, for example, a program executed by the CPU 201 of FIG. 2, an ASIC that performs the packet transfer process described above, or the like.
  • the packet interpretation unit 301 determines whether or not the packet received by the interface unit 306 is a packet to be processed by the processing device 101, and sends the packet to be processed by the processing device 101 to the instruction execution control unit 302. .
  • the packet interpreting unit 301 is an example of a receiving unit that receives a packet including a plurality of instructions, context information indicating the execution status of the instructions, and data to be processed by the instructions.
  • the packet interpretation unit 301 transmits a packet that is not a processing target of the processing device 101 to the packet transfer unit 304. For example, the packet interpretation unit 301 determines whether or not the packet is a packet to be processed by the processing device 101 by using information such as a “destination” and an “identifier” included in the packet.
  • FIG. 4A and 4B are diagrams for explaining information included in the packet according to the first embodiment.
  • FIG. 4A visually shows an example of the information contained in the packet 400 according to the first embodiment.
  • the packet 400 includes, for example, a destination 401, a source 402, an instruction sequence 403, a context information 404, a data area 405, and the like.
  • the destination 401 is information indicating the destination of the packet 400, and for example, the IP (Internet Protocol) address of the destination is used.
  • the source 402 is information indicating the source of the packet 400, and for example, the IP address of the source is used.
  • the instruction sequence 403 stores a plurality of instructions to be processed in the network NW.
  • the plurality of instructions include, for example, an instruction that can be executed by the instruction execution unit 303, an EOF (End Of File) indicating the end of execution, and the like.
  • the context information 404 stores information (for example, an offset value, etc.) indicating the execution status of a plurality of instructions stored in the instruction sequence 403.
  • the data area 405 stores data to be processed by the packet 400.
  • FIG. 4B visually shows another example of the information contained in the packet 400 according to the first embodiment.
  • the packet 400 includes the information of the identifier 411 in addition to the information contained in the packet 400 shown in FIG. 4A.
  • the identifier 411 is predetermined identification information indicating that the packet 400 is a packet to be processed by the processing device 101.
  • each information is stored in the order in which each information is stored.
  • the instruction sequence 403, the context information 404, and the data area 405 are stored in the payload 406 of the packet 400, but the order in which each information is stored is determined to be different from that in FIGS. 4A and 4B. Is also good.
  • the packet interpreting unit 301 can determine that the packet 400 is the processing target of the processing device 101. Further, the packet interpreting unit 301 can determine that the packet 400 is not the processing target of the processing device 101 when the packet 400 does not include the identifier 411.
  • the packet interpretation unit 301 can determine, for example, whether or not the packet 400 is the processing target of the processing device 101 by using the information of the transmission destination 401.
  • a packet 400 is transmitted from the first terminal 102-1 to the second terminal 102-2.
  • the second terminal 102-2 has an address such as an IP address for normal communication (hereinafter referred to as a first address) and an IP address for processing execution as information on the destination 401.
  • a plurality of identifiers of the address (hereinafter referred to as a second address) are set.
  • the first terminal 102-1 transmits the packet 400 shown in FIG. 4A to the second terminal 102-2
  • the first terminal 102-1 sets the second address in the transmission destination 401 to send the packet 400. Send to network NW.
  • the packet interpreting unit 301 can determine that the packet 400 is the processing target of the processing device 101 when the second address is set in the destination 401 of the packet 400. Further, the packet interpretation unit 301 can determine that the packet 400 is not the processing target of the processing device 101 when the second address is not set in the transmission destination 401 of the packet 400.
  • the destination 401 may be specified by a method capable of appropriately setting the destination and the processing device, and the IP address may be used as described above, or the MAC address or MPLS label may be used.
  • the instruction execution control unit 302 is realized by, for example, a program executed by the CPU 201 of FIG. 2, and is a plurality of instructions stored in the instruction sequence 403 based on the context information 404 of the packet 400 received from the packet interpretation unit 301. Of these, it controls the execution of at least some instructions.
  • the instruction execution control unit 302 extracts the instruction to be executed next indicated by the offset value included in the context information 404, and passes the extracted instruction and the data stored in the data area 405 to the instruction execution unit 303. To execute the instruction. Further, when the instruction is executed by the instruction execution unit 303, the instruction execution control unit 302 updates the data area 405 using the instruction execution result and updates the offset value of the context information 404.
  • the instruction execution control unit 302 sequentially executes an unexecuted instruction among the plurality of instructions stored in the instruction sequence 403 to the instruction execution unit 303 by using the context information 404 of the packet 400. Let me. The instruction execution control unit 302 repeatedly executes this process until the offset value becomes EOF or until it is determined that the execution of the program should not be continued.
  • the instruction execution control unit 302 determines whether or not the execution of the program should be continued based on, for example, the resource usage status, the elapsed time from the start of instruction execution, and the like, and the program If the execution of is not to be continued, the process of causing the instruction execution unit 303 to sequentially execute the instructions is stopped.
  • the instruction execution control unit 302 determines that the execution of the program should not be continued when the values such as the usage rate of the CPU 201 of the processing device 101 and the amount of memory used exceed the threshold values. Alternatively, the instruction execution control unit 302 may determine that the execution of the program should not be continued when the elapsed time from the start of instruction execution exceeds the threshold value. Further, the instruction execution control unit 302 may determine that the execution of the program should not be continued or the program should be executed by another processing device by another method.
  • the instruction execution unit 303 is realized by, for example, the CPU 201 of FIG. 2, a program executed by the CPU 201, or the like, and executes an instruction in response to a control from the instruction execution control unit 302.
  • the packet transfer unit 304 is realized by, for example, a program executed by the CPU of FIG.
  • the packet transfer unit 304 receives a packet received from the packet interpretation unit 301, a packet received from the instruction execution control unit 302, or the like based on a preset routing table 305, a routing rule, or the like, and the transfer destination processing device 101 or It is transmitted to the terminal 102.
  • the routing table 305 is realized by, for example, a program executed by the CPU 201 of FIG. 2, a storage device 203, a memory 202, or the like, and stores a data transfer route determined by a predetermined route selection algorithm or the like.
  • the data transfer route determination method may be any method, and thus the description of the data transfer route determination method will be omitted.
  • the interface unit 306 is realized by, for example, a program executed by the CPU 201 of FIG. 2 and a communication I / F 204, and transmits / receives packets to / from another processing device 101, a terminal 102, or the like.
  • the functional configuration of the processing device 101 shown in FIG. 3 is an example.
  • the function of the packet interpretation unit 301 may be possessed by the packet transfer unit 304.
  • the packet transfer unit 304 may have the function of the packet interpretation unit 301.
  • instruction execution unit 303 may be included in the instruction execution control unit 302, or may be provided outside the processing device 101.
  • FIG. 5 is a flowchart showing an example of processing of the packet interpretation unit according to the first embodiment. This process shows an example of the process executed by the packet interpreting unit 301 when the interface unit 306 of the processing device 101 receives the packet.
  • step S501 the packet interpretation unit 301 determines whether or not the packet received by the interface unit 306 is a packet to be processed by the processing device 101.
  • the packet to be processed by the processing device 101 is a packet containing information as shown in FIG. 4A.
  • the packet interpreting unit 301 receives the received packet from the processing device 101. Judge that it is a packet to be processed.
  • the packet interpretation unit 301 determines that the received packet is not the packet to be processed by the processing device 101 when the above-mentioned second address is not set in the transmission destination 401 of the received packet.
  • the packet to be processed by the processing device 101 is a packet containing information as shown in FIG. 4B.
  • the packet interpreting unit 301 determines that the received packet is the packet to be processed by the processing device 101.
  • the packet interpreting unit 301 determines that the received packet is not the packet to be processed by the processing device 101.
  • the packet interpreting unit 301 shifts the processing to step S502. On the other hand, when the received packet is a packet to be processed by the processing device 101, the packet interpreting unit 301 shifts the processing to step S503.
  • the packet interpretation unit 301 sends the packet received by the interface unit 306 to the packet transfer unit 304.
  • the packet transfer unit 304 transmits the packet to the transfer destination.
  • the packet interpretation unit 301 sends the packet 400 to be processed by the processing device 101 received by the interface unit 306 to the instruction execution control unit 302.
  • FIG. 6 is a flowchart showing an example of processing of the instruction execution control unit according to the first embodiment.
  • this process shows an example of the process executed by the instruction execution control unit 302 when the packet interpretation unit 301 sends the packet 400 to the instruction execution control unit 302.
  • step S601 the instruction execution control unit 302 acquires an offset value from the context information 404 of the packet 400 received from the packet interpretation unit 301.
  • step S602 the instruction execution control unit 302 determines whether or not the acquired offset value is EOF (a code indicating the end).
  • the instruction execution control unit 302 shifts the process to step S607 and sends the packet 400 to the packet transfer unit 304.
  • the packet transfer unit 304 transmits the packet 400 to the transfer destination.
  • the context information 404 indicating that the instruction has been executed and the instruction process the instruction.
  • the data and the like are included in the packet 400.
  • the instruction execution control unit 302 shifts the process to step S603.
  • the instruction execution control unit 302 determines whether or not the program execution should be continued. For example, the instruction execution control unit 302 may determine that the program execution should not be continued when the values such as the usage rate of the CPU 201 of the processing device 101 and the amount of memory used exceed the threshold values. Alternatively, the instruction execution control unit 302 may determine that the execution of the program should not be continued when the elapsed time from the start of instruction execution exceeds the threshold value.
  • the instruction execution control unit 302 determines that the execution of the program should not be continued when the load of the processing device 101 is heavy and the own device may become a bottleneck of the processing due to such processing.
  • the present invention is not limited to this, and the instruction execution control unit 302 may determine whether or not the program execution should be continued by another method.
  • step S607 When it is determined that the program should not be continued, the instruction execution control unit 302 shifts the process to step S607. On the other hand, when it is determined that the program should be continued, the instruction execution control unit 302 shifts the process to step S604.
  • the instruction execution control unit 302 extracts the instruction to be executed next based on the offset value. For example, the instruction execution control unit 302 extracts the instruction corresponding to the offset value from the plurality of instructions stored in the instruction sequence 403 of the packet 400.
  • step S605 the instruction execution control unit 302 sends the extracted instruction and the data in the data area 405 to the instruction execution unit 303, and causes the instruction execution unit 303 to execute the instruction.
  • step S606 the instruction execution control unit 302 updates the offset values of the data area 405 of the packet 400 and the context information 404 based on the execution result by the instruction execution unit 303, and returns the process to step S602. For example, the instruction execution control unit 302 increments the offset value of the context information 404 and stores the execution result by the instruction execution unit 303 in the data area 405.
  • the instruction execution control unit 302 is not executed among the plurality of instructions stored in the instruction sequence 403 until the offset value becomes EOF or it is determined that the program should not be continued.
  • the instruction execution unit 303 sequentially executes the instructions.
  • FIG. 7 is a diagram for explaining an example of the operation of the information processing system according to the first embodiment.
  • the following instruction is used as an example for explanation.
  • the instruction "mov $ 0, 1" is an instruction to copy the data "1" to the address "0" of the data area, "$ 0". Further, it is assumed that the instruction “mov $ 1, 2" is an instruction to copy the data "2" to "$ 1" which is the address "1" of the data area. Further, it is assumed that the instruction “add $ 0, $ 1” is an instruction that adds the data of "$ 0" and the data of "$ 1" and stores the addition result in "$ 0".
  • the first terminal 102-1 transmits the packet 701 to the first processing device 101-1.
  • the packet interpreting unit 301 of the first processing device 101-1 receives the packet 701, it determines that the packet is the packet to be processed and sends the packet 701 to the instruction execution control unit 302.
  • the instruction execution control unit 302 of the first processing device 101-1 acquires the offset value "0" from the context information of the packet 701, and is the first instruction (instruction of the offset value "0") "mov $ 0, 1". Is executed by the instruction execution unit 303. As a result, the data "1" is copied to "$ 0" in the data area, and the offset value of the context information is incremented to "1".
  • the instruction execution control unit 302 of the first processing device 101-1 acquires the offset value “1” from the context information of the packet 701, and is the next instruction (instruction of the offset value “1”) “mov”.
  • Make the instruction execution unit 303 execute "$ 1, 2".
  • the data "2" is copied to "$ 1" in the data area, and the offset value of the context information is incremented to "2".
  • the instruction execution control unit 302 of the first processing device 101-1 determines that, for example, the load on the processing device 101 is heavy and the program execution should not be continued.
  • the packet transfer unit 304 of the first processing device 101-1 transmits the packet 702 to the transfer destination (here, the second processing device 101-2).
  • the offset value of the context information of the packet 702 is updated to "2" because two instructions are executed by the first processing device 101-1. Further, the data “1” is copied to “$ 1" in the data area by the first instruction, and the data “2” is copied to "$ 2" in the data area by the second instruction.
  • the packet interpreting unit 301 of the second processing device 101-2 receives the packet 702, it determines that the packet is the packet to be processed and sends the packet 702 to the instruction execution control unit 302.
  • the instruction execution control unit 302 of the second processing device 101-2 acquires the offset value “2” from the context information of the packet 702, and is the third instruction (instruction of the offset value “2”) “add $ 0”. , $ 1 ”is executed by the instruction execution unit 303.
  • the data "3" obtained by adding the data "1" of the data area "$ 0" and the data "2" of the data area "$ 1” is stored in the data area "$ 0".
  • EOF is set in the offset value of the context information.
  • the packet transfer unit 304 of the first processing device 101-1 transmits the packet 703 to the transfer destination (here, the second terminal 102-2).
  • the information processing system 100 by transmitting a packet from the first terminal 102-1 to the second terminal 102-2 via the network NW, a plurality of packets are transmitted during the transmission.
  • Arbitrary processing can be executed by using the processing device 101 of the above.
  • each processing device 101 when the load of the own device is heavy, each processing device 101 sends a packet including the processing status of a plurality of instructions, data in the process of processing, and the like to another processing device 101 of the transfer destination even during the processing. Can be transferred and the processing can be taken over, so that the load can be distributed to a plurality of processing devices 101.
  • FIG. 8 is a diagram showing an example of the functional configuration of the processing device according to the second embodiment.
  • the processing device 101 according to the second embodiment has a memory access unit 801 and a device memory 802, etc., in addition to the functional configuration of the processing device 101 according to the first embodiment shown in FIG. have.
  • the memory access unit 801 is realized by, for example, a program executed by the CPU 201 of FIG. 2, and is a storage area of the device memory 802 for each identification information (hereinafter, referred to as an application ID) that identifies a program to be processed by the network NW. To manage.
  • the device memory 802 is a memory (storage device) included in the processing device 101, and is realized by, for example, the memory 202 in FIG. 2, the storage device 203, and the like.
  • FIG. 9 is a diagram showing a configuration example of a packet according to the second embodiment.
  • the packet 900 according to the second embodiment includes, for example, the application ID 901 in addition to the information contained in the packet 400 according to the first embodiment shown in FIG. 4A.
  • the plurality of instructions stored in the instruction sequence 403 may include an instruction for accessing the device memory 802.
  • the memory access unit 801 receives an instruction to access the device memory 802, the memory access unit 801 accesses a different storage area for each application ID 901.
  • FIG. 10 is a flowchart showing an example of processing of the instruction execution control unit according to the second embodiment.
  • steps S601 to S607 are the same as the processes related to the first embodiment shown in FIG. 6, and therefore, the differences from the first embodiment will be mainly described here. I do.
  • step S1001 the instruction execution control unit 302 of the processing device 101 determines whether or not the instruction extracted in step S604 is an access instruction of the device memory 802. If the extracted instruction is not an access instruction of the device memory 802, the instruction execution control unit 302 shifts the process to step S605. On the other hand, when the extracted instruction is an access instruction of the device memory 802, the instruction execution control unit 302 shifts the process to step S1002.
  • step S1002 the instruction execution control unit 302 determines whether or not the memory access instruction is an instruction intended for its own device. If the memory access instruction is not an instruction intended for the own device, for example, an instruction intended for another processing device 101, the instruction execution control unit 302 shifts the processing to step S607. On the other hand, when the memory access instruction is an instruction for the own device, the instruction execution control unit 302 shifts the process to step S1003.
  • step S1003 the instruction execution control unit 302 transmits the memory address, application ID, and access information to the data area to the memory access unit 801 to access the device memory 802 (write or read data). To execute.
  • step S1004 the instruction execution control unit 302 updates (for example, increments) the offset value and returns the process to step S602.
  • the instruction execution control unit 302 uses the memory access unit 801 to the device memory 802. Can be accessed.
  • FIG. 11 is a flowchart showing an example of processing of the memory access unit according to the second embodiment.
  • this process shows an example of a process executed when the memory access unit 801 is instructed to access the device memory 802 by the instruction execution control unit 302.
  • step S1101 the memory access unit 801 of the processing device 101 calculates the device memory address separated for each program (application) from the application ID and address sent from the instruction execution control unit 302.
  • step S1102 the memory access unit 801 determines whether the instruction sent from the instruction execution control unit 302 is a read instruction or a write instruction. In the case of a write instruction, the memory access unit 801 shifts the process to step S1103. On the other hand, in the case of a read instruction, the memory access unit 801 shifts the process to step S1104.
  • the memory access unit 801 When moving to step S1103, the memory access unit 801 writes the data in the data area 405 to the device memory 802 using the device memory address calculated in step S1101.
  • the memory access unit 801 reads data from the device memory address calculated in step S1101 and writes the read data in the data area 405.
  • FIG. 12 is a diagram for explaining an example of the operation of the information processing system according to the second embodiment.
  • the following instruction is used as an example for explanation.
  • the instruction “writem $ 10 @ 0102 $ 0" is an instruction to write the data of "$ 0" indicating the address "0" of the data area to "$ 10 @ 102" indicating the address "10" of the device memory "0102". To do. Further, the device memory "0102" indicates the device memory 802 included in the first processing device 101-1.
  • the instruction “readm $ 0 $ 10 @ 0102” is an instruction to read the data of "$ 10 @ 1010" indicating the address "10" of the device memory "0102" to "$ 0" indicating the address "0" of the data area. To do.
  • the first terminal 102-1 transmits the packet 1201 to the first processing device 101-1.
  • the packet interpreting unit 301 of the first processing device 101-1 receives the packet 1201, it determines that the packet is the packet to be processed and sends the packet 1201 to the instruction execution control unit 302.
  • the instruction execution control unit 302 of the first processing device 101-1 acquires the offset value “0” from the context information of the packet 1201 and is the first instruction (instruction of the offset value “0”) “writem $ 10 @ 0102”. Control the execution of "$ 0".
  • the instruction execution control unit 302 gives the memory access unit 801 the information "$ 10" that specifies the application ID "1", the device memory 802, and the address. @ 102 ”, data“ 10 ”(or information for acquiring data) is sent.
  • the memory access unit 801 uses the device memory address (for example, the device memory in Table 1205) separated for each application from the application ID “1”, the device memory 802, and the information “$ 10 @ 102” that specifies the address. Address "266”) is calculated. Further, the memory access unit 801 writes the data “10” to the calculated device memory address “266”, for example, as shown in Table 1205.
  • the device memory address for example, the device memory in Table 1205
  • the first terminal 102-1 transmits the packet 1202 to the first processing device 101-1.
  • the packet interpreting unit 301 of the first processing device 101-1 receives the packet 1202, it determines that the packet is the packet to be processed and sends the packet 1202 to the instruction execution control unit 302.
  • the instruction execution control unit 302 of the first processing device 101-1 acquires the offset value "0" from the context information of the packet 1202 and controls the execution of the first instruction (instruction having the offset value "0").
  • the instruction to be executed is a write instruction to the device memory "0102”
  • the instruction execution control unit 302 gives the memory access unit 801 the information "$ 10" that specifies the application ID "2", the device memory 802, and the address. @ 102 ”, data“ 20 ”(or information for acquiring data) is sent.
  • the memory access unit 801 is separated from the application ID "2" and the device memory 802 and the information "$ 10 @ 102" that specifies the address for each application (for example, the device memory address in Table 1205). "522") is calculated. Further, the memory access unit 801 writes the data “20” to the calculated device memory address “522”, for example, as shown in Table 1205.
  • the first terminal 102-1 transmits the packet 1203 to the first processing device 101-1.
  • the packet interpreting unit 301 of the first processing device 101-1 receives the packet 1203, it determines that the packet is the packet to be processed and sends the packet 1203 to the instruction execution control unit 302.
  • the instruction execution control unit 302 of the first processing device 101-1 acquires the offset value "0" from the context information of the packet 1203 and controls the execution of the first instruction (instruction having the offset value "0").
  • the instruction to be executed is a read instruction to the device memory "0102”
  • the instruction execution control unit 302 gives the memory access unit 801 the information "$ 10" that specifies the application ID "1", the device memory 802, and the address. @ 102 "etc. are sent.
  • the memory access unit 801 uses the device memory address (here, the memory address "266") separated for each application from the application ID "1", the device memory 802, and the information "$ 10 @ 102" that specifies the address. ) Is calculated. Further, the memory access unit 801 reads, for example, the data “10” stored in the calculated device memory address “266” as shown in Table 1205.
  • packet 1203 in FIG. 12 is updated as shown in packet 1204.
  • the offset value included in the context information is updated from “0" to "EOF”
  • the data "$ 0: 0" in the data area is updated to "$ 0: 10”.
  • the instruction execution control unit 302 transmits the packet 1204 having an offset value of "EOF" to the packet transfer unit 304.
  • the packet transfer unit 304 transmits the packet 1204 to the transfer destination (for example, the second processing device 101-2).
  • the memory access unit 801 can manage the storage area of the device memory 802 for each application ID (for each program).
  • the processing device 101 can use the device memory 802 in the processing device 101 from the instructions included in the instruction sequence 403 of the packet 900 without causing a conflict among a plurality of applications (programs). Will be.
  • an application that counts the number of times data is passed on each processing device 101 for each application can be realized without causing conflict between applications.
  • an arbitrary program is designated from the terminal 102 for processing. Will be able to execute.
  • the processing device 101 stores the context information and the data to be processed in the packet and transfers the data to the other processing device 101, the processing is taken over by the other processing device 101 even during the processing. You will be able to do it.
  • the device memory 802 included in the processing device 101 can be accessed from a plurality of programs without conflict. This makes it possible to easily realize, for example, a process of aggregating data from a plurality of terminals 102.
  • the instructions illustrated in each of the above embodiments are examples for explanation, and the processing device 101 according to the present embodiment may be various instructions specified from the terminal 102.
  • the instruction executed by the processing device 101 may include an aggregation instruction for aggregating data.
  • the processing device 101 may wait for data from another target terminal 102 and aggregate the data when the data arrives.
  • the first terminal 102-1 transmits a part of the processing to the first processing device 101-1 and the remaining processing to the third processing device 101-3. Then, the data can be aggregated by the second processing device 101-2 and transmitted to the second terminal 102-3.
  • Information processing system 101 Processing device 102 Terminal 301 Packet interpreter (example of receiver) 302 Instruction execution control unit 303 Instruction execution unit 304 Packet transfer unit (an example of transfer unit) 400, 900 packets 801 Memory access unit 802 Device memory (memory provided in the processing device) 901 App ID (an example of identification information that identifies a program)

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

ネットワークにおけるパケットの転送中に所定の処理を実行する複数の処理装置を含む情報処理システムにおいて、端末から任意のプログラムを指定して処理を実行させることができるようにするために、処理装置は、複数の命令、前記命令の実行状況を示すコンテキスト情報、及び前記命令の処理対象となるデータを含むパケットを受信する受信部と、前記コンテキスト情報に基づいて、前記命令のうち少なくとも一部の命令の実行を制御する命令実行制御部と、を有する。

Description

処理装置、情報処理システム、情報処理方法、及びプログラム
 本発明は、処理装置、情報処理システム、情報処理方法、及びプログラムに関する。
 ネットワークにおけるパケットの転送中に計算を行うIn-network Computingが注目されている。In-network Computingでは、例えば、転送するパケットが、演算機能を有するノード(処理装置)上において、パケットが要求する順番で処理が行われるようにネットワークが制御される。
 また、識別装置が、パケットに適用するサービス機能を識別して、パケットに識別子(NSH:Network Service Header)を付与し、転送装置が、識別子を参照してパケットをサービス機能等に転送するサービスチェイニングシステムが知られている(例えば、特許文献1参照)。
特開2018-129759号公報
 上記のようなサービスチェイニングシステムでは、例えば、NSHヘッダに要求する演算のIDを記載することにより、当該演算を実行可能な演算ノードに対してパケットの転送が行われ、当該演算が実行される。
 ただし、この方法は、演算ノードが特定の演算機能を予め有していることが前提となっており、例えば、端末から任意のプログラムをネットワーク上で実行したい場合等には適用することができないという問題がある。
 本発明の一実施形態は、上記の問題点に鑑みてなされたものであって、ネットワークにおけるパケットの転送中に所定の処理を実行する複数の処理装置を含む情報処理システムにおいて、端末から任意のプログラムを指定して処理を実行させることができるようにする。
 上記の課題を解決するため、本発明の一実施形態に係る処理装置は、複数の命令、前記命令の実行状況を示すコンテキスト情報、及び前記命令の処理対象となるデータを含むパケットを受信する受信部と、前記コンテキスト情報に基づいて、前記命令のうち少なくとも一部の命令の実行を制御する命令実行制御部と、を有する。
 本発明の一実施形態によれば、ネットワークにおけるパケットの転送中に所定の処理を実行する複数の処理装置を含む情報処理システムにおいて、端末から任意のプログラムを指定して処理を実行させることができるようになる。
一実施形態に係る情報処理システムのシステム構成の例を示す図である。 一実施形態に係る処理装置のハードウェア構成の例を示す図である。 一実施形態に係る処理装置の機能構成の例を示す図である。 第1の実施形態に係るパケットに含まれる情報について説明するための図(1)である。 第1の実施形態に係るパケットに含まれる情報について説明するための図(2)である。 第1の実施形態に係るパケット解釈部の処理の例を示す図である。 第1の実施形態に係る命令実行制御部の処理の例を示す図を示すフローチャートである。 第1の実施形態に係る情報処理システムの動作の例について説明するための図である。 第2の実施形態に係る処理装置の機能構成の例を示す図である。 第2の実施形態に係るパケットの構成例を示す図である。 第2の実施形態に係る命令実行制御部の処理の例を示すフローチャートである。 第2の実施形態に係るメモリアクセス部の処理の例を示すフローチャートである。 第2の実施形態に係る処理システムの動作の例について説明するための図である。
 以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
 <システム構成>
 図1は、一実施形態に係る情報処理システムの構成の例を示す図である。情報処理システム100は、ネットワークNW内に設けられた複数の処理装置(第1の処理装置101-1、第2の処理装置101-2、第3の処理装置101-3、第4の処理装置101-4)、及び複数の端末(第1の端末102-1、第2の端末102-2)を含む。なお、以下の説明において、複数の処理装置(第1の処理装置101-1、第2の処理装置101-2、第3の処理装置101-3、第4の処理装置101-4)のうち、任意の処理装置を示す場合、「処理装置101」を用いる。また、複数の端末(第1の端末102-1、第2の端末102-2)のうち、任意の端末を示す場合、「端末102」を用いる。
 なお、図1に示す処理装置101の数は一例であり、処理装置101の数は、2つ以上の他の数であっても良い。また、図1に示す端末102の数は一例であり、端末102の数は、1つ以上の他の数であっても良い。さらに、図1に示すネットワークNWのトポロジは一例であり、処理装置101間の接続関係は図1と異なる接続関係であっても良い。
 また、ここでは、ネットワークNW内におけるデータ転送経路が、所定の経路選択アルゴリズムにより、各処理装置101、又は経路選択装置等によって決定され、各処理装置101のルーティングテーブルに記憶されているものとして以下の説明を行う。
 処理装置101は、ネットワークNW内でパケット(データの一例)の転送処理を行うとともに、パケットに格納された命令を実行可能なコンピュータの構成を有する機器、又は情報処理装置である。ここでは、一例として、処理装置101が、ネットワークNW内でパケットの転送処理を行うスイッチであるものとして以下の説明を行う。ただし、これに限られず、処理装置は、サーバ装置や情報端末等であっても良い。
 端末102は、ネットワークNW内で処理する複数の命令、複数の命令の実行状況を示すコンテキスト情報、及び複数の命令の処理対象となるデータ等を含むパケットを、処理装置101に送信する情報処理装置である。端末102の具体的な例として、例えば、PC(Personal Computer)、スマートフォン、タブレット端末等の情報端末、ロボットや自動車等の機器、サーバ装置等をあげることができる。また、端末102は処理装置101を兼ねてデータの処理を行う機能を有してもよく、処理を行わないがパケットを生成する機能を有していてもよい。
 例えば、図1において、第1の端末102-1は、ネットワークNW内で処理する複数の命令、複数の命令の実行状況を示すコンテキスト情報、及び複数の命令の処理対象となるデータ等を含むパケットを、ネットワークNWを介して第2の端末102-2に送信するものとする。
 これにより、第1の処理装置101-1は、第1の端末102-1から送信されたパケットを受信し、第1の処理装置101-1で処理すべきパケットでない場合、転送先の他の処理装置(例えば、第2の処理装置101-2)にパケットを転送する。
 一方、受信したパケットが第1の処理装置101-1で処理すべきパケットである場合、第1の処理装置101-1は、パケットに含まれるコンテキスト情報に基づいて、パケットに含まれる複数の命令のうち、少なくとも一部の命令を実行する。また、第1の処理装置101-1は、少なくとも一部の命令を実行した場合、少なくとも一部の命令を実行したことを示すコンテキスト情報、及び少なくとも一部の命令を実行したデータを含むパケットを、例えば、第2の処理装置101-2に送信する。
 また、第2の処理装置101-2は、第1の処理装置101-1から受信したパケットが、第2の処理装置101-2で処理すべきパケットである場合、第1の処理装置101-1と同様にして、パケットに含まれる複数の処理のうち、少なくとも一部の処理を実行する。また、第2の処理装置101-2は、少なくとも一部の命令を実行した場合、少なくとも一部の命令を実行したことを示すコンテキスト情報、及び少なくとも一部の命令を実行したデータを含むパケットを、例えば、第2の端末102-2に送信する。例えば、第2の端末102-2は、受信したパケットに含まれるコンテキスト情報に基づいて、パケットに含まれる複数の命令のうち、実行されていない命令を順次に実行する。
 このように、本実施形態に係る情報処理システム100では、第1の端末102-1から、第2の端末102-2に、ネットワークNWを介してパケットを送信することにより、パケットに含まれる複数の処理の一部、又は全部がネットワークNW内で実行される。
 <ハードウェア構成>
 (処理装置のハードウェア構成)
 図2は、一実施形態に係る処理装置のハードウェア構成の例を示している。処理装置101は、例えば、CPU(Central Processing Unit)201、メモリ202、ストレージデバイス、複数の通信I/F(Interface)(第1の通信I/F204-1、第2の通信I/F204-2、・・・)、及びバス205等を含む。なお、以下の説明において、第1の通信I/F204-1、第2の通信I/F204-2、・・・のうち、任意の通信I/Fを示す場合、「通信I/F204」を用いる。
 CPU201は、例えば、ストレージデバイス203、メモリ202等に格納されたプログラムを実行することにより、処理装置101の機能を実現する演算装置である。メモリ202には、例えば、CPU201のワークエリア等として用いられる揮発性のメモリであるRAM(Random Access Memory)、処理装置101の起動用のプログラム等を記憶した不揮発性のメモリであるROM(Read Only Memory)等が含まれる。ストレージデバイス203は、例えば、OS(Operating System)、アプリケーション、データ等を記憶するSSD(Solid State Drive)、フラッシュROM等の大容量の記憶装置である。
 複数の通信I/F204には、例えば、他の処理装置101や端末102等とLAN(Local Area Network)通信、WAN(Wide Area Network)通信等を行うためのNIC(Network Interface Card)、通信モジュール等が含まれる。
 なお、図2に示す処理装置101のハードウェア構成は一例である。処理装置101は、例えば、表示装置、入力装置等の様々なハードウェアをさらに有していても良い。また、処理装置101がスイッチ(ネットワークスイッチ)である場合、処理装置101は、ハードウェアでパケット転送処理を行うASIC(Application Specific Integrated Circuit)等をさらに有していても良い。
 [第1の実施形態]
 続いて、第1の実施形態に係る処理装置101の機能構成について説明する。
 <機能構成>
 図3は、第1の実施形態に係る処理装置の機能構成の例を示す図である。処理装置101は、例えば、パケット解釈部301、命令実行制御部302、命令実行部303、パケット転送部(転送部の一例)304、ルーティングテーブル305、及びインタフェース部306等を有する。
 パケット解釈部301は、例えば、図2のCPU201で実行されるプログラム、又は前述したパケット転送処理を行うASIC等によって実現される。パケット解釈部301は、インタフェース部306が受信したパケットが、処理装置101の処理対象となるパケットであるか否かを判断し、処理装置101の処理対象となるパケットを命令実行制御部302に送る。なお、パケット解釈部301は、複数の命令、命令の実行状況を示すコンテキスト情報、及び命令の処理対象となるデータを含むパケットを受信する受信部の一例である。
 また、パケット解釈部301は、処理装置101の処理対象ではないパケットを、パケット転送部304に送信する。例えば、パケット解釈部301は、パケットに含まれる「送信先」、「識別子」等の情報を用いて、パケットが、処理装置101の処理対象となるパケットであるか否かを判断する。
 図4A、図4Bは、第1の実施形態に係るパケットに含まれる情報について説明するための図である。図4Aは、第1の実施形態に係るパケット400に含まれる情報の一例を視覚的に示している。図4Aの例では、パケット400には、例えば、送信先401、送信元402、命令列403、コンテキスト情報404、データ領域405等が含まれる。
 送信先401は、パケット400の送信先を示す情報であり、例えば、送信先のIP(Internet Protocol)アドレス等が用いられる。送信元402は、パケット400の送信元を示す情報であり、例えば、送信元のIPアドレス等が用いられる。
 命令列403には、ネットワークNW内で処理する複数の命令が格納される。この複数の命令には、例えば、命令実行部303で実行可能な命令、実行終了を示すEOF(End Of File)等が含まれる。
 コンテキスト情報404には、命令列403に格納される複数の命令の実行状況を示す情報(例えば、オフセット値等)が格納される。データ領域405には、パケット400の処理対象となるデータが格納される。
 図4Bは、第1の実施形態に係るパケット400に含まれる情報の別の一例を視覚的に示している。図4Bの例では、パケット400には、図4Aに示すパケット400に含まれる各情報に加えて、識別子411の情報が含まれる。識別子411は、パケット400が、処理装置101の処理対象のパケットであることを示す予め定められた識別情報である。
 なお、図4A、図4Bにおいて、各情報が格納される順序は一例である。例えば、命令列403、コンテキスト情報404、及びデータ領域405は、パケット400のペイロード406に格納されるが、各情報が格納される順序は、図4A、図4Bとは異なる順序に定められていても良い。
 図4Bの例では、パケット解釈部301は、パケット400に識別子411が含まれている場合、パケット400が、処理装置101の処理対象であると判断することができる。また、パケット解釈部301は、パケット400に識別子411が含まれていない場合、パケット400が、処理装置101の処理対象ではないと判断することができる。
 図4Aの例では、パケット解釈部301は、例えば、送信先401の情報を用いて、パケット400が、処理装置101の処理対象であるか否かを判断することができる。
 例えば、図1に示す情報処理システム100において、第1の端末102-1から第2の端末102-2に対して、パケット400を送信するものとする。この場合、例えば、第2の端末102-2に、送信先401の情報として、通常の通信用のIPアドレス等のアドレス(以下、第1のアドレスと呼ぶ)と、処理実行用のIPアドレス等のアドレス(以下、第2のアドレスと呼ぶ)の複数の識別子を設定しておく。そして、第1の端末102-1は、第2の端末102-2に対して、図4Aに示すパケット400を送信する場合、送信先401に、第2のアドレスを設定して、パケット400をネットワークNWに送信する。これにより、パケット解釈部301は、パケット400の送信先401に、第2のアドレスが設定されている場合、パケット400が、処理装置101の処理対象であると判断することができる。また、パケット解釈部301は、パケット400の送信先401に、第2のアドレスが設定されていない場合、パケット400が、処理装置101の処理対象ではないと判断することができる。なお、送信先401の指定は、適切に宛先や処理装置を設定できる方法で行われればよく、上述のようにIPアドレスを用いるほか、MACアドレスやMPLSラベルを利用してもよい。
 ここで、図3に戻り、処理装置101の機能構成の説明を続ける。
 命令実行制御部302は、例えば、図2のCPU201で実行されるプログラムによって実現され、パケット解釈部301から受信したパケット400のコンテキスト情報404に基づいて、命令列403に格納された複数の命令のうち、少なくとも一部の命令の実行を制御する。
 例えば、命令実行制御部302は、コンテキスト情報404に含まれるオフセット値が示す、次に実行すべき命令を抽出し、抽出した命令と、データ領域405に格納されたデータを命令実行部303に渡して、命令を実行させる。また、命令実行制御部302は、命令実行部303で命令が実行された場合、命令の実行結果を用いてデータ領域405を更新し、コンテキスト情報404のオフセット値を更新する。
 このようにして、命令実行制御部302は、パケット400のコンテキスト情報404を用いて、命令列403に格納された複数の命令のうち、実行されていない命令を、命令実行部303に順次に実行させる。命令実行制御部302は、この処理を、オフセット値がEOFになるまで、或いは、プログラムの実行を継続すべきでないと判断するまで、繰り返し実行する。
 また、命令実行制御部302は、例えば、リソースの使用状況や、命令の実行を開始してからの経過時間等に基づいて、プログラムの実行を継続すべきであるか否かを判断し、プログラムの実行を継続すべきでない場合、命令実行部303に命令を順次に実行させる処理を中止する。
 例えば、命令実行制御部302は、処理装置101のCPU201の使用率、メモリの使用量等の値が、しきい値を超えた場合、プログラムの実行を継続すべきでないと判断する。或いは、命令実行制御部302は、命令の実行を開始してからの経過時間が、しきい値を超えた場合、プログラムの実行を継続すべきでないと判断するものであっても良い。さらに、命令実行制御部302は、他の手法により、プログラムの実行を継続すべきでない、またはプログラムを他の処理装置に実行させるべきと判断するものであっても良い。
 命令実行部303は、例えば、図2のCPU201、又はCPU201で実行されるプログラム等によって実現され、命令実行制御部302からの制御に応じて、命令を実行する。
 パケット転送部304は、例えば、図2のCPUで実行されるプログラム等によって実現される。パケット転送部304は、パケット解釈部301から受け付けたパケット、命令実行制御部302から受け付けたパケット等を、予め設定されたルーティングテーブル305や、ルーティングルール等に基づいて、転送先の処理装置101又は端末102に送信する。
 ルーティングテーブル305は、例えば、図2のCPU201で実行されるプログラム、及びストレージデバイス203、メモリ202等によって実現され、所定の経路選択アルゴリズム等により決定されたデータ転送経路が記憶されている。なお、本実施形態では、データ転送経路の決定方法は任意の方法であって良いので、データ転送経路の決定方法に関する説明は省略する。
 インタフェース部306は、例えば、図2のCPU201で実行されるプログラム、及び通信I/F204等によって実現され、他の処理装置101や端末102等との間でパケットの送受信を行う。
 なお、図3に示す処理装置101の機能構成は一例である。例えば、パケット解釈部301の機能は、パケット転送部304が有していても良い。また、パケット転送部304の機能は、パケット解釈部301が有していても良い。
 また、命令実行部303は、命令実行制御部302に含まれていても良いし、処理装置101の外部に設けられていても良い。
 <処理の流れ>
 続いて、第1の実施形態に係る処理装置101が実行する処理の流れについて説明する。
 (パケット解釈部の処理)
 図5は、第1の実施形態に係るパケット解釈部の処理の例を示すフローチャートである。この処理は、処理装置101のインタフェース部306がパケットを受信したときに、パケット解釈部301が実行する処理の例を示している。
 ステップS501において、パケット解釈部301は、インタフェース部306が受信したパケットが、処理装置101の処理対象となるパケットであるか否かを判断する。
 例えば、処理装置101の処理対象となるパケットが、図4Aに示すような情報を含むパケットであるものとする。この場合、パケット解釈部301は、受信したパケットの送信先401に、前述した第2のアドレス(例えば、処理実行用のIPアドレス)が設定されているとき、受信したパケットが、処理装置101の処理対象となるパケットであると判断する。一方、パケット解釈部301は、受信したパケットの送信先401に、前述した第2のアドレスが設定されていないとき、受信したパケットが、処理装置101の処理対象となるパケットではないと判断する。
 また、別の一例として、処理装置101の処理対象となるパケットが、図4Bに示すような情報を含むパケットであるものとする。この場合、パケット解釈部301は、受信したパケットに、前述した識別子411が含まれているとき、受信したパケットが、処理装置101の処理対象となるパケットであると判断する。一方、パケット解釈部301は、受信したパケットに、前述した識別子411が含まれていないとき、受信したパケットが、処理装置101の処理対象となるパケットではないと判断する。
 受信したパケットが、処理装置101の処理対象となるパケットでない場合、パケット解釈部301は、処理をステップS502に移行させる。一方、受信したパケットが、処理装置101の処理対象となるパケットである場合、パケット解釈部301は、処理をステップS503に移行させる。
 ステップS502に移行すると、パケット解釈部301は、インタフェース部306が受信したパケットを、パケット転送部304に送る。これにより、パケット転送部304は、当該パケットを、転送先に送信する。
 一方、ステップS503に移行すると、パケット解釈部301は、インタフェース部306が受信した、処理装置101の処理対象となるパケット400を、命令実行制御部302に送る。
 (命令実行制御部の処理)
 図6は、第1の実施形態に係る命令実行制御部の処理の例を示すフローチャートである。この処理は、例えば、図5のステップS503において、パケット解釈部301が、パケット400を命令実行制御部302に送ったときに、命令実行制御部302が実行する処理の例を示している。
 ステップS601において、命令実行制御部302は、パケット解釈部301から受け付けたパケット400のコンテキスト情報404から、オフセット値を取得する。
 ステップS602において、命令実行制御部302は、取得したオフセット値がEOF(終端を示す符号)であるか否かを判断する。
 オフセット値がEOFである場合、命令実行制御部302は、処理をステップS607に移行させて、パケット400をパケット転送部304に送る。これにより、パケット転送部304は、パケット400を、転送先に送信する。なお、命令実行制御部302の制御により、パケット400に含まれる複数の命令のうち、少なくとも一部の命令が実行された場合、当該命令を実行したことを示すコンテキスト情報404、及び当該命令により処理されたデータ等が、パケット400に含まれる。
 一方、オフセット値がEOFではない場合、命令実行制御部302は、処理をステップS603に移行させる。
 ステップS603に移行すると、命令実行制御部302は、プログラムの実行を継続すべきか否かを判断する。例えば、命令実行制御部302は、処理装置101のCPU201の使用率、メモリの使用量等の値が、しきい値を超えた場合、プログラムの実行を継続すべきでないと判断しても良い。或いは、命令実行制御部302は、命令の実行を開始してからの経過時間が、しきい値を超えた場合、プログラムの実行を継続すべきでないと判断しても良い。
 このような処理により、命令実行制御部302は、処理装置101の負荷が重く、自装置が処理のボトルネックとなる恐れがある場合、プログラムの実行を継続すべきでないと判断することが望ましい。ただし、これに限られず、命令実行制御部302は、他の手法により、プログラムの実行を継続すべきであるか否かを判断しても良い。
 プログラムを継続すべきでないと判断した場合、命令実行制御部302は、処理をステップS607に移行させる。一方、プログラムを継続すべきと判断した場合、命令実行制御部302は、処理をステップS604に移行させる。
 ステップS604に移行すると、命令実行制御部302は、オフセット値に基づいて、次に実行すべき命令を抽出する。例えば、命令実行制御部302には、パケット400の命令列403に格納された複数の命令から、オフセット値に対応する命令を抽出する。
 ステップS605において、命令実行制御部302は、抽出した命令と、データ領域405のデータとを命令実行部303に送り、命令実行部303に命令を実行させる。
 ステップS606において、命令実行制御部302は、命令実行部303による実行結果に基づいて、パケット400のデータ領域405、及びコンテキスト情報404のオフセット値を更新し、処理をステップS602に戻す。例えば、命令実行制御部302は、コンテキスト情報404のオフセット値をインクリメントし、命令実行部303による実行結果をデータ領域405に格納する。
 上記の処理により、命令実行制御部302は、オフセット値がEOFになるまで、或いは、プログラムを継続すべきでないと判断されるまで、命令列403に格納された複数の命令のうち実行されていない命令を、命令実行部303に順次に実行させる。
 <情報処理システムの動作の例>
 続いて、具体的な例をあげて、第1の実施形態に係る情報処理システム100による情報処理方法の動作について説明する。
 図7は、第1の実施形態に係る情報処理システムの動作の例について説明するための図である。ここでは、説明用の一例として、次の命令を用いる。
 命令「mov $0, 1」は、データ「1」を、データ領域の「0」番地である「$0」にコピーする命令であるものとする。また、命令「mov $1, 2」は、データ「2」を、データ領域の「1」番地である「$1」にコピーする命令であるものとする。さらに、命令「add $0, $1」は、「$0」のデータと、「$1」のデータとを加算し、加算結果を「$0」に格納する命令であるものとする。
 図7において、第1の端末102-1が、パケット701を第1の処理装置101-1に送信するものとする。
 第1の処理装置101-1のパケット解釈部301は、パケット701を受信すると、処理対象のパケットであると判断し、パケット701を命令実行制御部302に送る。
 第1の処理装置101-1の命令実行制御部302は、パケット701のコンテキスト情報からオフセット値「0」を取得し、最初の命令(オフセット値「0」の命令)である「mov $0, 1」を命令実行部303に実行させる。これにより、データ領域の「$0」に、データ「1」がコピーされ、コンテキスト情報のオフセット値が「1」にインクリメントされる。
 続いて、第1の処理装置101-1の命令実行制御部302は、パケット701のコンテキスト情報からオフセット値「1」を取得し、次の命令(オフセット値「1」の命令)である「mov $1, 2」を命令実行部303に実行させる。これにより、データ領域の「$1」に、データ「2」がコピーされ、コンテキスト情報のオフセット値が「2」にインクリメントされる。
 ここで、説明用の一例として、第1の処理装置101-1の命令実行制御部302は、例えば、処理装置101の負荷が重く、プログラムの実行を継続すべきでないと判断するものとする。これにより、第1の処理装置101-1のパケット転送部304は、パケット702を転送先(ここでは、第2の処理装置101-2)に送信する。
 パケット702のコンテキスト情報は、第1の処理装置101-1で2つの命令が実行されたため、オフセット値が「2」に更新されている。また、データ領域の「$1」には、1つめの命令によりデータ「1」がコピーされ、データ領域の「$2」には、2つめの命令によりデータ「2」がコピーされている。
 第2の処理装置101-2のパケット解釈部301は、パケット702を受信すると、処理対象のパケットであると判断し、パケット702を命令実行制御部302に送る。
 第2の処理装置101-2の命令実行制御部302は、パケット702のコンテキスト情報からオフセット値「2」を取得し、3つ目の命令(オフセット値「2」の命令)である「add $0, $1」を命令実行部303に実行させる。これにより、データ領域の「$0」のデータ「1」と、データ領域の「$1」のデータ「2」とを加算したデータ「3」が、データ領域の「$0」に格納される。また、これにより、全ての命令が実行されたので、コンテキスト情報のオフセット値にEOFが設定される。
 これにより、第1の処理装置101-1のパケット転送部304は、パケット703を転送先(ここでは、第2の端末102-2)に送信する。
 このように、本実施形態による情報処理システム100では、第1の端末102-1から、ネットワークNWを介して、第2の端末102-2にパケットを送信することにより、パケットの送信中に複数の処理装置101を利用して、任意の処理を実行させることができる。
 また、各処理装置101は、例えば、自装置の負荷が重い場合、処理途中であっても、転送先の他の処理装置101に、複数の命令の処理状況、処理途中のデータ等を含むパケットを転送し、処理を引き継ぐことができるので、複数の処理装置101に負荷を分散することができる。
 [第2の実施形態]
 第2の実施形態では、ネットワークNW内で実行されるプログラムが、処理装置101が備えるメモリ(以下、デバイスメモリと呼ぶ)を利用できるようにする場合の例について説明する。
 <機能構成>
 図8は、第2の実施形態に係る処理装置の機能構成の例を示す図である。図8に示すように、第2の実施形態に係る処理装置101は、図3に示す第1の実施形態に係る処理装置101の機能構成に加えて、メモリアクセス部801、及びデバイスメモリ802等を有している。
 メモリアクセス部801は、例えば、図2のCPU201で実行されるプログラム等によって実現され、ネットワークNWで処理するプログラムを識別する識別情報(以下、アプリIDと呼ぶ)毎に、デバイスメモリ802の記憶領域を管理する。
 デバイスメモリ802は、処理装置101が備えるメモリ(記憶装置)であり、例えば、図2のメモリ202、ストレージデバイス203等によって実現される。
 図9は、第2の実施形態に係るパケットの構成例を示す図である。図9に示すように、第2の実施形態に係るパケット900は、例えば、図4Aに示す第1の実施形態に係るパケット400に含まれる各情報に加えて、アプリID901が含まれる。
 また、第2の実施形態では、命令列403に格納される複数の命令には、デバイスメモリ802にアクセスする命令が含まれていても良い。メモリアクセス部801は、デバイスメモリ802にアクセスする命令を受け付けた場合、アプリID901毎に異なる記憶領域にアクセスする。
 <処理の流れ>
 (実行命令制御部の処理)
 図10は、第2の実施形態に係る命令実行制御部の処理の例を示すフローチャートである。なお、図10に示す処理のうち、ステップS601~S607の処理は、図6に示す第1の実施形態に係る処理と同様なので、ここでは、第1の実施形態との相違点を中心に説明を行う。
 ステップS1001において、処理装置101の命令実行制御部302は、ステップS604で抽出した命令が、デバイスメモリ802のアクセス命令であるか否かを判断する。抽出した命令がデバイスメモリ802のアクセス命令でない場合、命令実行制御部302は、処理をステップS605に移行させる。一方、抽出した命令がデバイスメモリ802のアクセス命令である場合、命令実行制御部302は、処理をステップS1002に移行させる。
 ステップS1002に移行すると、命令実行制御部302は、メモリアクセス命令が、自装置を対象とした命令であるか否かを判断する。メモリアクセス命令が、自装置を対象とした命令でない場合、例えば、他の処理装置101を対象とした命令である場合、命令実行制御部302は、処理をステップS607に移行させる。一方、メモリアクセス命令が、自装置を対象とした命令である場合、命令実行制御部302は、処理をステップS1003に移行させる。
 ステップS1003に移行すると、命令実行制御部302は、メモリアクセス部801に対して、メモリアドレス、アプリID、データ領域へのアクセス情報を送信し、デバイスメモリ802に対するアクセス(データの書き込み、又は読み出し)を実行させる。
 ステップS1004において、命令実行制御部302は、オフセット値を更新(例えば、インクリメント)して、処理をステップS602に戻す。
 上記の処理により、命令実行制御部302は、実行すべき命令が、自装置(処理装置101)のデバイスメモリ802へのメモリアクセス命令である場合、メモリアクセス部801を用いて、デバイスメモリ802にアクセスすることができる。
 (メモリアクセス部の処理)
 図11は、第2の実施形態に係るメモリアクセス部の処理の例を示すフローチャートである。この処理は、例えば、図10のステップS1003において、メモリアクセス部801が、命令実行制御部302から、デバイスメモリ802へのアクセスを指示されたときに実行する処理の例を示している。
 ステップS1101において、処理装置101のメモリアクセス部801は、命令実行制御部302から送られたアプリIDとアドレスから、プログラム(アプリ)毎に分離されたデバイスメモリアドレスを計算する。
 ステップS1102において、メモリアクセス部801は、命令実行制御部302から送られた命令が読み出し命令であるか、書き込み命令であるかを判断する。書き込み命令である場合、メモリアクセス部801は、処理をステップS1103に移行させる。一方、読み出し命令である場合、メモリアクセス部801は、処理をステップS1104に移行させる。
 ステップS1103に移行すると、メモリアクセス部801は、ステップS1101で計算したデバイスメモリアドレスを用いて、デバイスメモリ802に対する、データ領域405のデータの書き込みを行う。
 ステップS1004に移行すると、メモリアクセス部801は、ステップS1101で計算したデバイスメモリアドレスからデータを読み出し、読み出したデータをデータ領域405に書き込む。
 <情報処理システムの動作の例>
 続いて、具体的な例をあげて、第2の実施形態に係る情報処理システム100による情報処理方法の動作について説明する。
 図12は、第2の実施形態に係る情報処理システムの動作の例について説明するための図である。ここでは、説明用の一例として、次の命令を用いる。
 命令「writem $10@0102 $0」は、デバイスメモリ「0102」の「10」番地を示す「$10@102」に、データ領域の「0」番地を示す「$0」のデータを書き込む命令であるものとする。また、デバイスメモリ「0102」は、第1の処理装置101-1が備えるデバイスメモリ802を示すものとする。
 命令「readm $0 $10@0102」は、デバイスメモリ「0102」の「10」番地を示す「$10@1010」のデータを、データ領域の「0」番地を示す「$0」に読み出す命令であるものとする。
 図12において、第1の端末102-1が、パケット1201を第1の処理装置101-1に送信するものとする。
 第1の処理装置101-1のパケット解釈部301は、パケット1201を受信すると、処理対象のパケットであると判断し、パケット1201を命令実行制御部302に送る。
 第1の処理装置101-1の命令実行制御部302は、パケット1201のコンテキスト情報からオフセット値「0」を取得し、最初の命令(オフセット値「0」の命令)である「writem $10@0102 $0」の実行を制御する。ここでは、実行すべき命令は、デバイスメモリ「0102」への書き込み命令なので、命令実行制御部302は、メモリアクセス部801に、アプリID「1」、デバイスメモリ802とアドレスを指定する情報「$10@102」、データ「10」(又はデータを取得するための情報)を送る。
 これにより、メモリアクセス部801は、アプリID「1」と、デバイスメモリ802とアドレスを指定する情報「$10@102」とから、アプリケーション毎に分離されたデバイスメモリアドレス(例えば、表1205のデバイスメモリアドレス「266」)を計算する。また、メモリアクセス部801は、例えば、表1205に示すように、計算したデバイスメモリアドレス「266」に、データ「10」を書き込む。
 続いて、第1の端末102-1が、パケット1202を第1の処理装置101-1に送信するものとする。
 第1の処理装置101-1のパケット解釈部301は、パケット1202を受信すると、処理対象のパケットであると判断し、パケット1202を命令実行制御部302に送る。
 第1の処理装置101-1の命令実行制御部302は、パケット1202のコンテキスト情報からオフセット値「0」を取得し、最初の命令(オフセット値「0」の命令)の実行を制御する。ここでは、実行すべき命令が、デバイスメモリ「0102」への書き込み命令なので、命令実行制御部302は、メモリアクセス部801に、アプリID「2」、デバイスメモリ802とアドレスを指定する情報「$10@102」、データ「20」(又はデータを取得するための情報)を送る。
 これにより、メモリアクセス部801は、アプリID「2」と、デバイスメモリ802とアドレスを指定する情報「$10@102」から、アプリケーション毎に分離されたデバイスメモリアドレス(例えば、表1205のデバイスメモリアドレス「522」)を計算する。また、メモリアクセス部801は、例えば、表1205に示すように、計算したデバイスメモリアドレス「522」に、データ「20」を書き込む。
 このように、本実施形態では、同じデバイスメモリ802の同じアドレスに対して、異なるアプリケーションから値が書き込まれた場合、互いに異なる記憶領域にデータが書き込まれるので、アプリケーション間の書き込みの競合を回避することができる。
 続いて、第1の端末102-1が、パケット1203を、第1の処理装置101-1に送信するものとする。
 第1の処理装置101-1のパケット解釈部301は、パケット1203を受信すると、処理対象のパケットであると判断し、パケット1203を命令実行制御部302に送る。
 第1の処理装置101-1の命令実行制御部302は、パケット1203のコンテキスト情報からオフセット値「0」を取得し、最初の命令(オフセット値「0」の命令)の実行を制御する。ここでは、実行すべき命令が、デバイスメモリ「0102」への読み出し命令なので、命令実行制御部302は、メモリアクセス部801に、アプリID「1」、デバイスメモリ802とアドレスを指定する情報「$10@102」等を送る。
 これにより、メモリアクセス部801は、アプリID「1」と、デバイスメモリ802とアドレスを指定する情報「$10@102」から、アプリケーション毎に分離されたデバイスメモリアドレス(ここでは、メモリアドレス「266」)を計算する。また、メモリアクセス部801は、例えば、表1205に示すように、計算したデバイスメモリアドレス「266」に記憶されたデータ「10」を読み出す。
 これにより、図12のパケット1203が、パケット1204に示すように更新される。例えば、コンテキスト情報に含まれるオフセット値が「0」から「EOF」に更新され、データ領域のデータ「$0: 0」が、「$0: 10」に更新される。
 命令実行制御部302は、オフセット値が「EOF」となったパケット1204をパケット転送部304に送信する。これに応じて、パケット転送部304は、転送先(例えば、第2の処理装置101-2)にパケット1204を送信する。
 上記の処理により、メモリアクセス部801は、アプリID毎(プログラム毎)に、デバイスメモリ802の記憶領域を管理することができる。これにより、処理装置101は、複数のアプリケーション(プログラム)の間で競合を起こすことなく、処理装置101内のデバイスメモリ802を、パケット900の命令列403に含まれる命令から、利用することができるようになる。
 これによって、例えば、データの通過回数を各処理装置101上で、アプリケーション毎に計数するアプリケーションを、アプリケーション間の競合を発生させることなく実現することができる。
 以上、本発明の各実施形態によれば、ネットワークNWにおけるパケットの転送中に所定の処理を実行する複数の処理装置101を含む情報処理100システムにおいて、端末102から任意のプログラムを指定して処理を実行させることができるようになる。
 また、処理装置101は、コンテキスト情報、及び処理対象となるデータをパケットに格納して、他の処理装置101に転送するので、処理の途中であっても、他の処理装置101に処理を引き継ぐことができるようになる。
 また、第2の実施形態によれば、処理装置101が備えるデバイスメモリ802に対して、複数のプログラムから競合することなくアクセスが行えるようになる。これにより、例えば、複数の端末102からのデータを集約(アグリエーション)するような処理を、容易に実現することができるようになる。
 なお、上記の各実施形態で例示した命令は説明用の一例であり、本実施形態に係る処理装置101は、端末102から指定された様々な命令であって良い。例えば、処理装置101が実行する命令には、データの集約を行う集約命令が含まれていても良い。処理装置101は、実行する命令が集約命令である場合には、対象となる他の端末102からのデータを待ち、データが到着したときに、データの集約を行うものであっても良い。
 これにより、例えば、図1において、第1の端末102-1は、処理の一部を第1の処理装置101-1に送信するとともに、残りの処理を第3の処理装置101-3に送信し、第2の処理装置101-2でデータを集約して、第2の端末102-3に送信させること等ができる。
 本願は、日本特許庁に2019年3月12日に出願した日本国特許出願2019-044984号に基づく優先権を主張するものであり、当該出願の全内容を本国際出願に援用する。
 100   情報処理システム
 101   処理装置
 102   端末
 301   パケット解釈部(受信部の一例)
 302   命令実行制御部
 303   命令実行部
 304   パケット転送部(転送部の一例)
 400、900   パケット
 801   メモリアクセス部
 802   デバイスメモリ(処理装置が備えるメモリ)
 901   アプリID(プログラムを識別する識別情報の一例)

Claims (9)

  1.  複数の命令、前記命令の実行状況を示すコンテキスト情報、及び前記命令の処理対象となるデータを含むパケットを受信する受信部と、
     前記コンテキスト情報に基づいて、前記命令のうち少なくとも一部の命令の実行を制御する命令実行制御部と、
     を有する、処理装置。
  2.  前記少なくとも一部の命令が実行された場合、前記少なくとも一部の命令を実行したことを示す前記コンテキスト情報、及び前記少なくとも一部の命令により処理された前記データを含む前記パケットを、転送先に送信する転送部を有する、請求項1に記載の処理装置。
  3.  前記命令実行制御部は、前記コンテキスト情報を用いて、前記命令のうち実行されていない命令を、命令実行部に順次に実行させる、請求項1又は2に記載の処理装置。
  4.  前記命令実行制御部は、前記処理装置のリソースの使用状況に基づいて、前記命令実行部に前記命令を順次に実行させる処理を中止する、請求項3に記載の処理装置。
  5.  前記命令実行制御部は、前記少なくとも一部の命令の実行を開始してからの経過時間に基づいて、前記命令実行部に前記命令を順次に実行させる処理を中止する、請求項3に記載の処理装置。
  6.  複数の命令、前記命令の実行状況を示すコンテキスト情報、及び前記命令の処理対象となるデータを含むパケットを送信する転送部と、
     前記コンテキスト情報に基づいて、前記命令のうち少なくとも一部の命令の実行を制御する命令実行制御部と、を有する、
     処理装置。
  7.  パケットの転送処理を行うとともに、前記パケットに格納された命令を実行可能な複数の処理装置を含む情報処理システムであって、
     前記処理装置のいずれか1つは、
     複数の前記命令、前記命令の実行状況を示すコンテキスト情報、及び前記命令の処理対象となるデータを含む前記パケットを受信する受信部または
     前記複数の処理装置のうち、1つ以上の処理装置に前記パケットを送信する転送部のいずれか1つと、
     前記コンテキスト情報に基づいて、前記命令のうち少なくとも一部の命令の実行を制御する命令実行制御部と、
     を備える、情報処理システム。
  8.  コンピュータが、
     複数の命令、前記命令の実行状況を示すコンテキスト情報、及び前記命令の処理対象となるデータを含むパケットを受信する処理と、
     前記コンテキスト情報に基づいて、前記命令のうち少なくとも一部の命令の実行を制御する処理と、
     を実行する、情報処理方法。
  9.  請求項8に記載の情報処理方法をコンピュータに実行させる、プログラム。
PCT/JP2020/009444 2019-03-12 2020-03-05 処理装置、情報処理システム、情報処理方法、及びプログラム WO2020184381A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/468,914 US20210406013A1 (en) 2019-03-12 2021-09-08 Processing device, information processing device, and information processing method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019044984A JP2020150369A (ja) 2019-03-12 2019-03-12 処理装置、情報処理システム、情報処理方法、及びプログラム
JP2019-044984 2019-03-12

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/468,914 Continuation US20210406013A1 (en) 2019-03-12 2021-09-08 Processing device, information processing device, and information processing method

Publications (1)

Publication Number Publication Date
WO2020184381A1 true WO2020184381A1 (ja) 2020-09-17

Family

ID=72427440

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/009444 WO2020184381A1 (ja) 2019-03-12 2020-03-05 処理装置、情報処理システム、情報処理方法、及びプログラム

Country Status (3)

Country Link
US (1) US20210406013A1 (ja)
JP (1) JP2020150369A (ja)
WO (1) WO2020184381A1 (ja)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9647905B1 (en) * 2012-12-21 2017-05-09 EMC IP Holding Company LLC System and method for optimized management of statistics counters, supporting lock-free updates, and queries for any to-the-present time interval
US9686192B2 (en) * 2013-06-28 2017-06-20 Niciria, Inc. Network service slotting
US9124644B2 (en) * 2013-07-14 2015-09-01 Netronome Systems, Inc. Script-controlled egress packet modifier
US20150120924A1 (en) * 2013-10-29 2015-04-30 Palo Alto Research Center Incorporated Software-defined named-data networking
IN2015CH04763A (ja) * 2015-09-08 2015-09-25 Wipro Ltd
US10547702B2 (en) * 2016-11-07 2020-01-28 Cable Television Laboratories, Inc. Internet protocol over a content-centric network (IPoC)
US10469379B2 (en) * 2017-02-17 2019-11-05 Cisco Technology, Inc. System and method to facilitate content delivery to multiple recipients in a network environment
US11470185B2 (en) * 2019-01-24 2022-10-11 Intel Corporation Information centric network packet transmission control

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HAYAMIZU, YUSAKU ET AL.: "Novel Routing Strategy for Multiple Functions in ICN-based InNetwork Processing", IEICE TECHN. REPORT, vol. 117, no. 204, 31 August 2017 (2017-08-31), pages 91 - 96 *
THE AN BINH NGUYEN AND MEURISCH CHRISTIAN; NIEMCZYK STEFAN; BOHNSTEDT DOREEN; GEIHS KURT; MUHLHAUSER MAX; STEINMETZ RALF: "Adaptive Task-Oriented Message Template for In-Network Processing", 2017 INTERNATIONAL CONFERENCE ON NETWORKED SYSTEMS (NETSYS, 13 March 2017 (2017-03-13), XP033086921, DOI: 10.1109/NetSys.2017.7903952 *

Also Published As

Publication number Publication date
US20210406013A1 (en) 2021-12-30
JP2020150369A (ja) 2020-09-17

Similar Documents

Publication Publication Date Title
US10382362B2 (en) Network server having hardware-based virtual router integrated circuit for virtual networking
JP5621778B2 (ja) コンテンツベーススイッチシステム、及びコンテンツベーススイッチ方法
JP6538986B2 (ja) 仮想マシンパケット制御
US9294304B2 (en) Host network accelerator for data center overlay network
US9703743B2 (en) PCIe-based host network accelerators (HNAS) for data center overlay network
JP6116072B2 (ja) ネットワークフローを処理リソースにアライメントするための技術
US10164870B2 (en) Relaxed ordering network
JP2003244148A (ja) データ通信システム、データ通信管理装置、および方法、並びにコンピュータ・プログラム
EP2649759A1 (en) Technique for managing traffic at a router
JP5754506B2 (ja) 通信システム、コントローラ、スイッチ、ストレージ管理装置、及び通信方法
CN105556929A (zh) 在云计算系统中运行应用的网络元件和方法
JP2012009996A (ja) 情報処理システム、中継装置、および情報処理方法
JPWO2009096029A1 (ja) パケット処理装置およびパケット処理プログラム
US9141564B1 (en) Interconnection of peripheral devices on different electronic devices
WO2020184381A1 (ja) 処理装置、情報処理システム、情報処理方法、及びプログラム
CN106209634B (zh) 地址映射关系的学习方法及装置
JPWO2014126094A1 (ja) 通信システム、通信方法、制御装置、制御装置の制御方法及びプログラム
JP6888566B2 (ja) 負荷分散システム及び負荷分散方法
JP4415391B2 (ja) データをネットワークに送信する方法及び装置並びにデータをネットワークから受信する方法及び装置
JP6677052B2 (ja) 通信管理装置、通信管理方法及びプログラム
JP6546566B2 (ja) 並列負荷分散システム、並列負荷分散方法、sdnコントローラホスト及びプログラム
KR102526770B1 (ko) 추가의 네트워크 주소 변환 테이블을 참조하여 빠른 패킷 포워딩을 제공하는 전자 장치
JP2014187430A (ja) 通信システム、中継装置、通信方法、及びプログラム
JP7047660B2 (ja) 通知装置および通知方法
EP3229145A1 (en) Parallel processing apparatus and communication control method

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20770288

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20770288

Country of ref document: EP

Kind code of ref document: A1