WO2020110895A1 - 通信装置、情報処理システム、および通信方法 - Google Patents

通信装置、情報処理システム、および通信方法 Download PDF

Info

Publication number
WO2020110895A1
WO2020110895A1 PCT/JP2019/045601 JP2019045601W WO2020110895A1 WO 2020110895 A1 WO2020110895 A1 WO 2020110895A1 JP 2019045601 W JP2019045601 W JP 2019045601W WO 2020110895 A1 WO2020110895 A1 WO 2020110895A1
Authority
WO
WIPO (PCT)
Prior art keywords
packet
information processing
fabric
management table
communication device
Prior art date
Application number
PCT/JP2019/045601
Other languages
English (en)
French (fr)
Inventor
紀圭 馬場
Original Assignee
日本電気株式会社
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 日本電気株式会社 filed Critical 日本電気株式会社
Priority to US17/296,394 priority Critical patent/US11836105B2/en
Priority to EP19890545.7A priority patent/EP3889790A4/en
Priority to CN201980075966.2A priority patent/CN113168384A/zh
Publication of WO2020110895A1 publication Critical patent/WO2020110895A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1072Decentralised address translation, e.g. in distributed shared memory systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Definitions

  • the present invention relates to a communication device, an information processing system, and a communication method.
  • RDMA Remote Direct Memory Access
  • NTB Non Transparent Bridge
  • PCIe Express Peripheral Component Interconnect
  • Patent Document 1 discloses an interprocessor communication method for executing data transfer from a virtual space of a process of a certain cluster to a virtual space of a process of another cluster without copying to a buffer provided inside the operating system. ing.
  • the start address of the virtual communication area in the user process is set to be the same in all clusters, and the virtual communication areas are sequentially added to the actual communication areas in the continuous area on the memory from the beginning of the area. assign.
  • Patent Document 2 discloses a computer system having a shared addressable memory space.
  • the system of Patent Document 2 includes a persistent memory device and a plurality of computers.
  • the persistent memory device is connected to a data network that carries data signals representing computer readable information and has persistent storage for data signals.
  • Each computer has an interface for accessing a data network to exchange data signals and a shared memory that maps a portion of the addressable memory space to a portion of persistent storage to provide addressable persistent storage for data signals. -Including subsystems.
  • Patent Document 3 discloses a memory access method of a multiprocessor system in which a plurality of processors are connected to a multiprocessor bus.
  • memory sharing becomes possible by providing a virtual shared memory on the network.
  • the shared memory is divided into pages, and any one device can access each page, so that a plurality of devices cannot refer to the same page. There was a point.
  • An object of the present invention is to provide a communication device that enables a plurality of information processing devices to share a memory space in order to solve the above problems.
  • a communication device is a communication device mounted on each of a plurality of information processing devices connected to a fabric, and a serial interface that transmits and receives a first packet of PCIe (Peripheral Component Interconnect Express) standard.
  • PCIe Peripheral Component Interconnect Express
  • a first packet from the serial interface, and the acquired first packet is used as a fabric between a plurality of information processing devices that share a memory space that is virtually expanded using a device identifier unique to the information processing device.
  • Requester unit for converting into a second packet transmitted and received via the fabric communication unit, fabric communication unit for transmitting and receiving the second packet via the fabric, and request included in the acquired second packet for acquiring the second packet from the fabric communication unit And a completer unit that generates a response packet to the.
  • An information processing system is implemented in a plurality of information processing devices, a fabric that connects the plurality of information processing devices, and each of the plurality of information processing devices, and is a PCIe (Peripheral Component Interconnect Express) standard
  • a serial interface that transmits and receives one packet, and a first packet that is acquired from the serial interface, and the acquired first packet is shared by a plurality of devices that share a memory space that is virtually expanded using a device identifier unique to the information processing device.
  • a requester unit that converts into a second packet that is transmitted and received between the information processing devices via the fabric, a fabric communication unit that transmits and receives the second packet through the fabric, and acquires the second packet from the fabric communication unit.
  • a communication method is a communication method in an information processing system configured by a plurality of information processing devices connected to a fabric, and receives a first packet of PCIe (Peripheral Component Interconnect Express) standard, The received first packet is converted into a second packet transmitted/received via the fabric between a plurality of information processing devices that share a memory space that is virtually expanded using a device identifier unique to the information processing device. , Transmits and receives the second packet via the fabric, and generates a response packet to the request included in the received second packet.
  • PCIe Peripheral Component Interconnect Express
  • FIG. 6 It is a block diagram showing an example of composition of a completer part with which a communication apparatus concerning an embodiment of the present invention is provided.
  • 6 is an example of a second packet management table used by the communication device according to the embodiment of the present invention. It is a conceptual diagram for demonstrating operation
  • 6 is a flowchart for explaining an example of request processing by the communication device according to the embodiment of the present invention.
  • 6 is a flowchart for explaining an example of a packet conversion process by the communication device according to the embodiment of the present invention.
  • 6 is a flowchart for explaining an example of completion processing by the communication device according to the embodiment of the present invention.
  • 6 is a flowchart for explaining an example of a response reception process by the communication device according to the embodiment of the present invention.
  • the communication device of the present embodiment is mounted on an information processing device based on a technology capable of expanding PCI Express (registered trademark, hereinafter also referred to as PCIe) to a fabric (PCI: Peripheral Component Interconnect).
  • PCIe Peripheral Component Interconnect
  • the memory space is virtually expanded by using an identifier uniquely assigned to each device, such as a MAC (Media Access Control) address, as the upper bit of the memory space.
  • NTB Non-transparent bridging
  • FIG. 1 is a block diagram showing an example of an outline of the configuration of the communication device 100 of this embodiment.
  • the communication device 100 includes a PCIe device 110, a requester unit 120, a completer unit 140, and a fabric communication unit 150.
  • the fabric communication unit 150 is connected to the fabric 160.
  • the fabric 160 is realized by a local network such as Ethernet (registered trademark).
  • the components included in the communication device 100 are connected to each other via lanes each including a differential pair for transmission and reception.
  • the transmission line and the reception line forming the lane are composed of at least one conductor.
  • the communication device 100 is implemented in an information processing device such as a computer or a server including at least one CPU (Central Processing Unit) and memory.
  • CPU Central Processing Unit
  • FIG. 2 shows an information processing system 1 including a plurality of information processing devices 10-1 to 10-n in which the communication device 100 is mounted (n is a natural number).
  • the information processing apparatuses 10-1 to 10-n are not distinguished from each other, they are simply referred to as the information processing apparatus 10.
  • the information processing device 10 itself may be referred to as its own device, and another information processing device 10 may be referred to as another device for the own device.
  • Each information processing device 10 (own device) that configures the information processing system 1 in FIG. 2 is connected to another device via the fabric 160 and shares a memory space with another device.
  • FIG. 3 is a block diagram showing an example of a hardware configuration for realizing the information processing device 10.
  • the communication device 100 includes a root port 11, a CPU 12, a memory 13, a PCIe switch 14, a communication device 15, an endpoint 16, and an endpoint 17.
  • the communication device 100 is mounted inside the communication device 15.
  • Root port 11 has at least one PCIe port.
  • the root port 11 is connected to at least one PCIe switch 14 and a PCIe device (not shown) via the PCIe port.
  • the root port 11 is connected to a PCIe device such as PCIe graphics via the PCIe port.
  • the root port 11 has a built-in host bridge and is connected to the CPU 12 and the memory 13.
  • the root port 11 is connected to the CPU 12 via the system bus and is connected to the memory 13 via the memory bus.
  • the CPU 12 is connected to the root port 11.
  • the CPU 12 is connected to the root port 11 via the system bus.
  • the CPU 12 is realized by a general central processing unit.
  • the memory 13 is connected to the root port 11.
  • the memory 13 is connected to the root port 11 via a memory bus.
  • the memory 13 is realized by a general main storage device.
  • the PCIe switch 14 has a plurality of PCIe ports.
  • the PCIe switch 14 is connected to the root port 11, the communication device 15, the endpoint 16, and the endpoint 17 via the PCIe port.
  • the PCIe switch 14 performs packet routing between each port.
  • FIG. 3 shows an example in which each of the information processing apparatuses 10-1 and 10-2 has one PCIe switch 14, but each of the information processing apparatuses 10-1 and 10-2 may have a plurality of PCIe switches 14. ..
  • the communication device 15 has a plurality of PCIe ports.
  • the communication device 15 is connected to the PCIe switch 14 and the fabric 160 via the PCIe port.
  • the communication device 15 is a device conforming to the PCIe standard, and is equipped with standard functions such as a configuration register.
  • the communication device 100 is mounted on the communication device 15.
  • PCI enumeration software allocates a PCI bus number and BAR space.
  • the endpoint 16 and the endpoint 17 have at least one PCIe port.
  • the endpoints 16 and 17 are legacy endpoints, PCIe endpoints, root complex endpoints, and the like.
  • FIG. 3 shows an example in which each of the information processing devices 10-1 and 10-2 has two end points (end points 16 and 17), but each of the information processing devices 10-1 and 10-2 has three or more end points. May have points.
  • FIG. 3 is an example, and the hardware configuration that implements the information processing apparatus 10 is not limited to the same form.
  • the information processing device 10 accesses the BAR space secured in the communication device 15 in the own device.
  • the information processing device 10 accesses the BAR space in the device itself, the information processing device 10 transmits a request packet to the requester unit 120.
  • how to allocate the BAR space is arbitrary.
  • the internal control function can be assigned to BAR0/1 and the communication function can be assigned to BAR2/3.
  • the PCIe device 110 (also called a serial interface) is connected to the requester unit 120 and the completer unit 140.
  • the PCIe device 110 is also connected to the PCIe switch 14.
  • the PCIe device 110 receives a packet (also referred to as a first packet) from the root port 11 via the PCIe switch 14.
  • the PCIe device 110 outputs the received packet to either the requester unit 120 or the completer unit 140.
  • the PCIe device 110 receives a request packet (also called a request packet) from the root port 11, the PCIe device 110 outputs the received request packet to the requester unit 120.
  • the PCIe device 110 receives a response packet (also referred to as a completion packet) from the root port 11, the PCIe device 110 outputs the received request packet to the requester unit 120.
  • the PCIe device 110 also receives a packet from either the requester unit 120 or the completer unit 140.
  • the PCIe device 110 transmits the received packet to the root port 11 via the PCIe switch 14. For example, when the PCIe device 110 receives a response packet from the requester unit 120, the PCIe device 110 transmits the received response packet to the root port 11. On the other hand, when the PCIe device 110 receives the request packet from the completer unit 140, the PCIe device 110 transmits the received request packet to the root port 11.
  • the requester unit 120 is connected to each of the PCIe device 110 and the fabric communication unit 150.
  • the requester unit 120 operates when the communication device 100 functions as a requester.
  • the requester unit 120 acquires a request packet from the PCIe device 110.
  • the requester unit 120 determines whether the access is to a BAR (Base Address Register) space for performing communication with another device, based on the acquired address of the request packet.
  • the requester unit 120 refers to the destination management table stored in its own device and determines the transmission destination of the acquired request packet.
  • the destination management table is a table for determining to which communication device 100 the request packet is transferred.
  • the requester unit 120 When the requester unit 120 accesses the BAR space for communication with another device, the requester unit 120 refers to the destination management table, and to which information processing device 10 to transfer the request packet based on the address of the request packet. To judge. At this time, the requester unit 120 generates a packet by converting the tag field of the request packet. The requester unit 120 outputs the generated packet to the fabric communication unit 150. On the other hand, the requester unit 120 processes the acquired request packet as a normal PCIe packet when there is no access to the BAR space for communication with another device.
  • the requester unit 120 stores the information in the first packet management table.
  • the first packet management table sets information (also referred to as conversion information) such as converted tag information, use flag of the tag information, destination information (destination identifier), and information necessary for completion generation (completion generation information). It is a table for recording.
  • the requester unit 120 attaches unused tag information in the first packet management table to the tag field to be converted.
  • the completion generation information includes original tag information, requester ID, byte count, and the like.
  • the requester unit 120 does not register the information in the first packet management table because the completion is not returned.
  • the completer unit 140 is connected to each of the PCIe device 110 and the fabric communication unit 150.
  • the completer unit 140 operates when the communication device 100 functions as a completer.
  • the completer unit 140 receives a request packet from another information processing device 10 via the fabric communication unit 150.
  • the completer unit 140 extracts a PCIe packet from the received request packet and converts the packet. Specifically, the completer unit 140 replaces the transmission source identifier field of the packet with the transmission source identifier of the own device and converts the tag field.
  • the completer unit 140 stores the converted information in the second packet management table.
  • the second packet management table is a table for recording conversion information in which the converted tag information, a use flag of the tag information, and destination information (also referred to as a transmission source identifier) of the request source are set.
  • the completer unit 140 attaches unused tag information in the second packet management table to the tag field to be converted.
  • the converted packet is transmitted to the root port 11 of the own device as if it were issued by the communication device 15 of the own device. If the request included in the request packet is a memory write, this completes the process.
  • a response packet (also called a completion packet) is returned from the root port 11 of another information processing device 10 (another device).
  • the completer unit 140 refers to the second packet management table to determine which request the received response packet is a response to. When there is a hit request, the completer unit 140 acquires the transmission source identifier from the information stored in the second management table, restores the tag field, and then transmits the response packet to the fabric 160. The response packet transmitted to the fabric 160 reaches the other device of the set destination.
  • the fabric communication unit 150 is connected to each of the requester unit 120 and the completer unit 140.
  • the fabric communication unit 150 is also connected to the fabric 160.
  • the fabric communication unit 150 is connected to the fabric communication unit 150 of another information processing device 10 (also referred to as another device) via the fabric 160.
  • the fabric communication unit 150 transmits/receives a packet (also called a second packet) to/from the fabric 160.
  • the above is a description of an example of the outline of the configuration of the communication device 100.
  • the configuration of the communication device 100 of FIG. 1 is an example, and the configuration of the communication device 100 of the present embodiment is not limited to the same form.
  • FIG. 4 is a block diagram showing an example of the configuration of the requester unit 120.
  • the requester unit 120 includes an address determination circuit 121, a destination determination circuit 122, a request packet transmission circuit 123, and a response packet reception circuit 125.
  • the requester unit 120 also includes a destination management table 131 and a first packet management table 132.
  • the destination management table 131 and the first packet management table 132 are stored in a storage circuit (not shown).
  • the destination management table 131 and the first packet management table 132 may be stored in different storage circuits, or may be stored in different storage areas of the same storage circuit.
  • the address determination circuit 121 is connected to the PCIe device 110 and the destination determination circuit 122.
  • the address determination circuit 121 acquires a request packet from the PCIe device 110.
  • the address determination circuit 121 determines, based on the address of the acquired request packet, whether or not there is access to the BAR space for performing communication with another device.
  • the address determination circuit 121 outputs the acquired request packet to the destination determination circuit 122.
  • the acquired request packet is processed as a normal PCIe packet.
  • the destination determination circuit 122 is connected to the address determination circuit 121 and the request packet transmission circuit 123.
  • the destination determination circuit 122 also refers to the destination management table 131.
  • the destination determination circuit 122 acquires the request packet from the address determination circuit 121.
  • the destination determination circuit 122 refers to the destination management table 131 and determines the information processing device 10 that is the destination of the request packet. When determining the destination of the destination of the request packet, the destination determination circuit 122 outputs the request packet and the destination to the request packet transmission circuit 123.
  • the request packet transmission circuit 123 is connected to the destination determination circuit 122 and the fabric communication unit 150.
  • the request packet transmission circuit 123 also refers to the first packet management table 132.
  • the request packet transmission circuit 123 generates a packet by converting the request packet.
  • the request packet transmission circuit 123 transmits the generated packet to the fabric communication unit 150.
  • the packet transmitted to the fabric communication unit 150 is transmitted to the communication device 100 of the set destination.
  • the request packet transmission circuit 123 when the request packet transmission circuit 123 receives the request packet, the request packet transmission circuit 123 generates a packet to be transmitted to the fabric 160 so as to be appropriately routed when the packet is transmitted to the fabric 160. For example, the request packet transmission circuit 123 correctly sets the destination MAC address when the fabric 160 is Ethernet.
  • the request packet transmission circuit 123 converts the tag field of the packet when the request included in the request packet is a memory read. After converting the tag field of the packet, the request packet transmitting circuit 123 registers the converted tag information, the destination information, and the conversion information in which the information used for completion (completion information) is set in the first packet management table 132. ..
  • the first packet management table 132 is a table for recording a tag value to be replaced, a use flag, a destination identifier, and completion generation information. At this time, the request packet transmission circuit 123 uses an unused value in the first packet management table 132 for the tag field to be converted. Note that the completion generation information is the original tag information, requester ID, byte count, and the like.
  • the request packet transmission circuit 123 does not register information in the first packet management table 132.
  • the response packet receiving circuit 125 is connected to the PCIe device 110 and the fabric communication unit 150.
  • the response packet receiving circuit 125 receives a response packet from the fabric communication unit 150. Upon receiving the response packet, the response packet receiving circuit 125 extracts the PCIe packet from the response packet. The response packet reception circuit 125 refers to the first packet management table 132 to determine which request the response is to. When there is a hit request, the response packet receiving circuit 125 restores the tag field and the requester ID included in the information stored in the first packet management table 132, and replaces the destination identifier field with its own ID. That is, the response packet reception circuit 125 updates the completion information in the first packet management table 132 when the completion is received. The response packet receiving circuit 125 deletes the use flag of the corresponding tag when all the completions for the corresponding memory read are received. As a result, in the information processing device 10, the converted packet is transmitted to the root port 11 of its own device as if the communication device 15 of its own device responded.
  • the destination management table 131 is used when the destination determination circuit 122 receives a packet.
  • the destination management table 131 stores transfer information for determining to which device the request packet is transferred.
  • the destination management table 131 stores the information processing apparatus 10 that is the transmission destination of the request packet in association with the upper bits of the memory address.
  • FIG. 5 shows an example of the destination management table 131.
  • the destination management table 131 of FIG. 5 is an example in which one of the plurality of information processing devices 10 is associated with the first 2 bits of the address.
  • the destination management table 131 of FIG. 5 is an example of accessing another four information processing devices 10 using the memory space secured by the fabric communication unit 150.
  • the destination management table 131 of FIG. 5 it is possible to identify the four information processing devices 10 by using the upper 2 bits (00, 01, 10, 11) of the memory address.
  • the destination management table 131 can be changed dynamically. That is, the destination management table 131 can change the communication device 100 assigned to each address according to time.
  • devices A to D are assigned to the respective addresses at time T1.
  • T2 when the upper 2 bits of the address are 00, the allocation is changed from the device A to the device E.
  • the device A which was assigned the upper 2 bits of the address to 00 at the time T1, is reallocated to 10 of the upper 2 bits of the address.
  • the first packet management table 132 (also called a PCIe packet management table) is used when the request packet transmission circuit 123 receives a memory read.
  • packet destination information transmission destination identifier
  • information necessary for completion are registered based on the tag information replaced by the request packet transmission circuit 123.
  • the first packet management table 132 also stores a flag (also called a usage flag) indicating whether or not the tag to be replaced is in use. A use flag is set when the request packet transmission circuit 123 transmits the packet with the tag changed to the fabric 160.
  • FIG. 6 is an example of the first packet management table 132 (also referred to as a PCIe packet management table).
  • packet destination information transmission destination identifier
  • information necessary for completion also referred to as completion generation information
  • the first packet management table 132 also stores a flag (also called a usage flag) indicating whether or not the tag to be replaced is in use.
  • the use flag of the first packet management table 132 is set to 0 when it is not in use.
  • the use flag of the first packet management table 132 is set to 1 to indicate that the request packet transmission circuit 123 is in use when the request packet transmission circuit 123 changes the tag and transmits it to the fabric. Further, when all the flags are in use, the request packet transmission circuit 123 cannot change the tags. Therefore, when all the flags are in use (1), the PCIe device 110 stops receiving the packet.
  • the information processing device 10 If communication with the corresponding destination is interrupted when the use flag is set in the first packet management table 132, the information processing device 10 that is the request issuing source detects a completion timeout. When the information processing device 10 detects that the communication is interrupted, it notifies the response packet receiving circuit 125 to autonomously return the completion. At this time, the information processing device 10 uses the completion generation information of the first packet management table 132 to autonomously create the completion. Further, the information processing device 10 deletes the usage flag of the corresponding request.
  • the above is a description of an example of the configuration of the requester unit 120.
  • the configuration of the requester unit 120 shown in FIG. 4 is an example, and the configuration of the requester unit 120 of this embodiment is not limited to the same form.
  • FIG. 7 is a block diagram showing an example of the configuration of the completer unit 140.
  • the completer unit 140 has a request packet receiving circuit 143 and a response packet transmitting circuit 145.
  • the completer unit 140 also includes a second packet management table 133.
  • the second packet management table 133 is stored in a storage circuit (not shown).
  • the second packet management table 133 may be stored in a different storage area of the same storage circuit as the destination management table 131 and the first packet management table 132.
  • the request packet receiving circuit 143 is connected to the PCIe device 110 and the fabric communication unit 150.
  • the request packet receiving circuit 143 also refers to the second packet management table 133.
  • the request packet receiving circuit 143 receives the request packet from the fabric communication unit 150 via the fabric 160.
  • the request packet receiving circuit 143 extracts a PCIe packet from the received request packet and converts the packet. Specifically, the request packet receiving circuit 143 replaces the transmission source identifier field of the packet with the transmission source identifier of its own device and converts the tag field.
  • the request packet receiving circuit 143 stores the conversion information in the second packet management table 133.
  • the second packet management table 133 is a table for recording conversion information in which the converted tag information, a use flag of the tag information, and destination information (also referred to as a transmission source identifier) of the request source are set.
  • the request packet receiving circuit 143 attaches unused tag information in the second packet management table to the tag field to be converted.
  • the converted packet is transmitted to the root port 11 as if it was issued by the communication device 15 of the own device.
  • a response packet (also called a completion packet) is returned from the root port 11 of the own device and passed to the response packet transmission circuit 145 of the own device.
  • the response packet transmission circuit 145 refers to the second packet management table 133 to determine which request the received response packet is a response to. When there is a hit request, the response packet transmission circuit 145 acquires the transmission source identifier from the information stored in the second packet management table 133, restores the tag field, and then transmits the response packet to the fabric 160. Send. The response packet transmitted from the response packet transmission circuit 145 reaches the response packet reception circuit 125 of the communication device 100 included in the information processing device 10 of the set destination.
  • the second packet management table 133 is used when the request packet receiving circuit 143 receives a memory read.
  • FIG. 8 is an example of the second packet management table 133 (also called a fabric packet management table).
  • the second packet management table 133 stores the destination information (also referred to as the transmission source identifier) of the transmission source and the original tag information based on the tag information to be replaced.
  • the second packet management table 133 also stores a flag (also referred to as a usage flag) indicating whether the tag to be replaced is in use.
  • the use flag is set when the request packet receiving circuit 143 transmits the packet with the tag changed to the PCIe device 110.
  • the usage flag is deleted when all the completions for the corresponding memory read are received.
  • the request packet receiving circuit 143 cannot change the tag, and thus the fabric communication unit 1500 stops the packet reception.
  • the above is a description of an example of the configuration of the completer unit 140.
  • the configuration of the completer unit 140 shown in FIG. 7 is an example, and the configuration of the completer unit 140 of the present embodiment is not limited to the same form.
  • FIG. 9 is a conceptual diagram for explaining the operation of the communication device 100.
  • the information processing device 10-1 in which the communication device 100-1 is installed is set on the requester side
  • the information processing device 10-2 in which the communication device 100-2 is installed is set on the completer side.
  • the completer unit 140 of the communication device 100-1 on the requester side and the requester unit 120 of the communication device 100-2 on the completer side are omitted.
  • a PCI bus number and a BAR space are assigned to the communication device 15 by the PCI enumeration software.
  • the request process is a process of transmitting a request packet received by the communication device 100-1 on the requester side to the communication device 100-2 on the completer side via the fabric 160.
  • the communication device 100-1 will be described as the main subject of the operation.
  • the communication device 100-1 receives a request packet from the root port 11 via the PCIe switch 14 (step S111).
  • the communication device 100-1 determines whether or not there is access to the BAR space for performing communication with another device (step S112).
  • the communication device 100-1 refers to the destination management table 131 and refers to the information processing device that is the transfer destination of the acquired request packet. 10 is determined (step S113).
  • the communication device 100-1 processes the acquired packet as a normal PCIe packet (step S114).
  • step S113 the communication device 100-1 converts the acquired request packet into a packet for transmitting to the fabric 160 (step S115).
  • the communication device 100-1 transmits the converted packet to the fabric 160 via the fabric communication unit 150 (step S116).
  • the packet transmitted to the fabric 160 is transmitted to the communication device 100-2 of the information processing device 10-2 via the fabric 160.
  • request processing when the communication device 100-1 on the requester side accesses the communication device 100-2 on the completer side.
  • the request processing according to the flowchart of FIG. 10 is an example, and the request processing by the information processing device 10 of the present embodiment is not limited to the procedure as it is.
  • the request packet transmission circuit 123 receives a packet from the destination determination circuit 122 (step S121).
  • the request packet transmission circuit 123 generates a packet to be transmitted to the fabric 160 so that the packet is appropriately routed when the packet is transmitted to the fabric 160 (step S122). For example, when the fabric 160 is Ethernet (registered trademark), the request packet transmission circuit 123 correctly sets the destination MAC address included in the packet.
  • step S123 if the request is a memory read (Yes in step S123), the request packet transmission circuit 123 converts the tag field of the packet (step S124). At this time, the request packet transmission circuit 123 converts the tag field of the packet into an unused tag in the first packet management table 132. On the other hand, when the request is a memory write (No in step S123), the request packet transmission circuit 123 does not register the completion in the first packet management table 132 (proceeds to step S126).
  • the request packet transmission circuit 123 stores the conversion information including the converted tag information, destination information, and completion generation information in the first packet management table 132 (step S125).
  • the request packet transmission circuit 123 transmits the converted packet to the fabric communication unit 150 (step S126).
  • the packet conversion processing by the request packet transmission circuit 123 is an example, and the packet conversion process by the request packet transmission circuit 123 of the present embodiment is not limited to the procedure as it is.
  • the completion process is a process in which the communication device 100-2 on the completer side receives a packet transmitted from the communication device 100-1 on the requester side via the fabric 160, and responds to the request included in the packet.
  • the communication device 100-2 is the main body of operation.
  • the communication device 100-2 receives a packet from the communication device 100-1 via the fabric 160 (step S131).
  • the communication device 100-2 extracts a PCIe packet from the received packet and converts the request packet (step S132). Specifically, the request packet receiving circuit 143 replaces the requester ID field of the packet with its own requester ID and converts the tag field. At this time, the request packet receiving circuit 143 converts it into an unused tag field in the second management table.
  • the communication device 100-2 stores the conversion information in which the converted tag information and the destination information of the request source are set in the second packet management table 133 (step S133).
  • the converted packet is transmitted to the root port 11 of the communication device 100-2 as if issued by the communication device 15 of the communication device 100-2.
  • step S134 if the request packet is a memory write (Yes in step S134), the process according to the flowchart of FIG. 12 is finished.
  • the response packet is returned from the root port 11 of the communication device 100-2 and passed to the response packet transmission circuit 145 (step S135).
  • the communication device 100-2 refers to the second packet management table 133 and determines whether or not the request to be hit is included in the response packet (step S136).
  • step S136 if there is a hit request (Yes in step S136), the communication device 100-2 acquires the destination of the return destination from the information stored in the second packet management table 133 (step S137).
  • step S137 the process according to the flowchart of FIG. 12 ends.
  • step S137 the communication device 100-2 restores the tag field and then transmits a response packet to the fabric 160 (step S138).
  • the response packet transmitted to the fabric 160 is received by the fabric communication unit 150 of the communication device 100-1.
  • completion processing when the communication device 100-2 on the completer side is accessed from the communication device 100-1 on the requester side.
  • the completion processing according to the flowchart of FIG. 12 is an example, and the completion processing by the information processing device 10 of the present embodiment is not limited to the procedure as it is.
  • the communication device 100-1 receives a response packet from the communication device 100-2 (step S141).
  • the communication device 100-1 extracts a PCIe packet from the received packet (step S142).
  • the communication device 100-1 refers to the first packet management table 132 and determines whether or not the hit request is included in the response packet (step S143).
  • step S143 the communication device 100-1 converts the acquired response packet into a packet for transmitting to the root port 11 (step S144). Specifically, the communication device 100-1 restores the tag field and the requester ID from the information stored in the first packet management table 132, and replaces the transmission destination identifier field with its own identifier. If there is no hit request (No in step S143), the process according to the flowchart of FIG. 13 ends.
  • the communication device 100-1 transmits the converted packet to the root port 11 (step S145).
  • the packet converted by the communication device 100-1 is transmitted to the root port 11 of the communication device 100-1 as if the communication device 15 of the communication device 100-1 responded.
  • the response reception process in which the communication device 100-1 on the requester side receives the response packet from the communication device 100-2 on the completer side.
  • the response reception process according to the flowchart of FIG. 13 is an example, and the response reception process by the communication device 100 of the present embodiment is not limited to the procedure as it is.
  • the communication device 100-1 can access the memory 13 of the communication device 100-2 via the fabric 160 by the procedure of FIGS. 10 to 13 described above.
  • the information processing device 10 configuring the information processing system 1 can access the memory 13 of any information processing device 10 configuring the information processing system 1 via the fabric 160.
  • the communication device of this embodiment is implemented in each of the plurality of information processing devices connected to the fabric.
  • the communication device of this embodiment includes a serial interface, a requester unit, a fabric communication unit, and a completer unit.
  • the serial interface transmits and receives the first packet of the PCIe (Peripheral Component Interconnect Express) standard.
  • the requester unit acquires the first packet from the serial interface.
  • the requester unit transmits/receives the acquired first packet via a fabric between a plurality of information processing devices that share a memory space that is virtually expanded using a device identifier unique to the information processing device. Convert to packet.
  • the fabric communication unit transmits/receives the second packet via the fabric.
  • the completer unit acquires the second packet from the fabric communication unit and generates a response packet to the request included in the acquired second packet.
  • the requester unit has an address determination circuit, a destination management table, a destination determination circuit, a first packet management table, a request packet transmission circuit, and a response packet reception circuit.
  • the address determination circuit acquires the first packet from the serial interface and determines whether or not there is an access to another information processing device based on the acquired first packet.
  • the destination management table associates the bits included in the memory address with each of the plurality of information processing devices sharing the memory space.
  • the destination determination circuit acquires the first packet from the address determination circuit, determines the transmission destination of the first packet by referring to the destination management table, and determines the device identifier of the information processing device of the transmission destination of the first packet and the first packet. And output.
  • the first packet management table is a set of a device identifier of the destination of the first packet, completion information, and a tag value added to the combination of the device identifier of the destination and the completion information.
  • the conversion information is registered.
  • the completion information is used to complete the response packet for the first packet.
  • the request packet transmission circuit acquires the device identifier of the transmission destination of the first packet and the first packet from the destination determination circuit, and transmits the first packet to be transmitted to the information processing device sharing the memory space via the fabric. Convert to the second packet.
  • the request packet transmission circuit converts the tag value of the second packet when the request included in the first packet is a memory read, and transmits the second packet with the converted tag value to the fabric communication unit. To do.
  • the request packet transmission circuit registers the first conversion information in the first packet management table.
  • the response packet reception circuit acquires the second packet from the fabric communication unit, converts the second packet into the first packet by referring to the first packet management table, and updates the first conversion information of the first packet management table. .
  • the destination management table stores records that associate the upper bits of the memory address associated with each of the plurality of information processing devices sharing the memory space with the information processing device. Further, for example, in the destination management table, a record that associates the upper bit of the memory address associated with each of the plurality of information processing devices sharing the memory space with the information processing device is stored in association with a plurality of times. To be done.
  • the completer unit has a second packet management table, a request packet receiving circuit, and a response packet transmitting circuit.
  • the second packet management table the second conversion information in which the tag value of the second packet and the device identifier unique to the information processing device of the transmission source are set is registered.
  • the request packet receiving circuit acquires the second packet from the fabric communication unit, replaces the device identifier value of the acquired second packet with the device identifier of the own device, and converts the tag value to generate the first packet.
  • the request packet receiving circuit registers the second conversion information in the second packet management table.
  • the response packet transmission circuit acquires a response packet for the request included in the first packet from the serial interface.
  • the response packet transmission circuit converts the device identifier and the tag value of the acquired response packet based on the second conversion information registered in the second packet management table to generate the second packet.
  • the response packet transmission circuit transmits the generated second packet to the fabric communication unit and updates the second conversion information registered in the second packet management table.
  • the first packet management table includes a set of a device identifier unique to the information processing device of the transmission destination of the first packet, completion information, and a tag value that associates the device identifier with the completion information. 1 conversion information is registered. The completion information is used to convert the first packet into the second packet.
  • the second conversion information in which a device identifier unique to the information processing device that is the transmission source of the second packet and a tag value associated with the device identifier are set is registered.
  • a flag indicating the usage status of the tag value is set in the first packet management table and the second packet management table.
  • the requester unit and the completer unit use the value of the unused tag based on the flag of the second packet management table.
  • the information processing apparatus of this embodiment constitutes an information processing system based on the technology capable of expanding PCIe into the fabric.
  • the memory space is virtually expanded by using an identifier uniquely assigned to each device as the upper bit of the memory space.
  • NTB Non-transparent bridging
  • the devices connected to the fabric can access any memory space of any information processing device, and the memory space can be shared among a plurality of computers.
  • RDMA Remote Direct Memory Access
  • NTB Non Transparent Bridge
  • processing overhead exists because each computer manages the memory space separately.
  • NTB the memory space of another computer can be directly accessed, but since it is based on PCIe, there is a limitation of 64 bit address.
  • the fabric connection used in this embodiment can be dynamically connected only when necessary and disconnected when not needed. Further, by using the fabric connection, data transfer between a plurality of servers and storage can be performed independently at the same time.
  • NTB memory can be shared by connecting two information processing devices via PCIe via a bridge.
  • peer-to-peer is an essential PCIe base, so basically memory can be shared only between two devices.
  • peer-to-peer based PCIe enables a plurality of connections at the same time by using a management table, which enables NTB by a plurality of devices and enables a plurality of information processing devices connected to a fabric. Memory space can be shared between them.

Abstract

複数の情報処理装置がメモリ空間を共有することを可能とするために、ファブリックに接続された複数の情報処理装置のそれぞれに実装される通信装置であって、PCIe(Peripheral Component Interconnect Express)規格の第1パケットを送受信するシリアルインタフェースと、シリアルインタフェースから第1パケットを取得し、取得した第1パケットを、情報処理装置に固有の装置識別子を用いて仮想的に拡張されたメモリ空間を共有する複数の情報処理装置の間でファブリックを介して送受信される第2パケットに変換するリクエスタ部と、ファブリックを介して第2パケットを送受信するファブリック通信部と、ファブリック通信部から第2パケットを取得し、取得した第2パケットに含まれるリクエストに対する応答パケットを生成するコンプリータ部とを備える通信装置とする。

Description

通信装置、情報処理システム、および通信方法
 本発明は、通信装置、情報処理システム、および通信方法に関する。
 複数の情報処理装置間でメモリ空間を共有する場合、RDMA(Remote Direct Memory Access)やNTB(Non Transparent Bridge)などが用いられる。RDMAを用いれば、それぞれの情報処理装置が別々にメモリ空間を管理するため、処理のオーバヘッドが存在する。NTBを用いれば、他の情報処理装置のメモリ空間に直接アクセスできるが、PCIe Express(登録商標)がベースとなっているために64bitに制限される(PCI:Peripheral Component Interconnect)。
 特許文献1には、あるクラスタのプロセスの仮想空間から他クラスタのプロセスの仮想空間へのデータ転送を、オペレーティングシステム内部に設けたバッファへのコピーをすることなく実行するプロセッサ間通信方法について開示されている。特許文献1の方法では、ユーザプロセス内の仮想の通信領域の先頭アドレスを全クラスタにおいて同一にセットし、メモリ上の連続領域にある実の通信領域に領域の先頭から順番に仮想の通信領域を割り当てる。
 特許文献2には、共用アドレス可能メモリ空間を有するコンピュータシステムについて開示されている。特許文献2のシステムは、持続性メモリ装置と、複数のコンピュータとを含む。持続性メモリ装置は、コンピュータ可読情報を表すデータ信号を伝送するデータネットワークに接続され、データ信号のための持続性記憶域を有する。各コンピュータは、データネットワークにアクセスしてデータ信号を交換するインタフェースと、アドレス可能メモリ空間の一部を持続性記憶域の一部にマッピングしてデータ信号にアドレス可能持続性記憶域を設ける共用メモリ・サブシステムとを含む。
 特許文献3には、マルチプロセッサバスに複数のプロセッサが接続されたマルチプロセッサシステムのメモリアクセス方式について開示されている。
特開平06-019856号公報 特開平10-254761号公報 特開昭63-111563号公報
 特許文献1の方法によれば、送信先のアドレスを事前に計算することによってメモリ共有が可能になる。しかしながら、特許文献1の方法では、クラスタ構成ではない全く異なる情報処理装置を接続してメモリ共有することができないという問題点があった。
 特許文献2のシステムによれば、ネットワーク上に仮想共用メモリを設けることによってメモリ共有が可能になる。しかしながら、特許文献2のシステムでは、共用メモリをページで分割し、それぞれのページについて任意の1台の装置がアクセスできるとなっているため、複数の装置が同一ページを参照することができないという問題点があった。
 特許文献3の方式では、メモリアドレスによってアクセス先を判定するため、構成が同一かつ固定的である必要があり、任意の装置に対してアクセスすることができないという問題点があった。
 本発明の目的は、上述した課題を解決するために、複数の情報処理装置がメモリ空間を共有することを可能とする通信装置を提供することにある。
 本発明の一態様の通信装置は、ファブリックに接続された複数の情報処理装置のそれぞれに実装される通信装置であって、PCIe(Peripheral Component Interconnect Express)規格の第1パケットを送受信するシリアルインタフェースと、シリアルインタフェースから第1パケットを取得し、取得した第1パケットを、情報処理装置に固有の装置識別子を用いて仮想的に拡張されたメモリ空間を共有する複数の情報処理装置の間でファブリックを介して送受信される第2パケットに変換するリクエスタ部と、ファブリックを介して第2パケットを送受信するファブリック通信部と、ファブリック通信部から第2パケットを取得し、取得した第2パケットに含まれるリクエストに対する応答パケットを生成するコンプリータ部とを備える。
 本発明の一態様の情報処理システムは、複数の情報処理装置と、複数の情報処理装置を接続するファブリックと、複数の情報処理装置のそれぞれに実装され、PCIe(Peripheral Component Interconnect Express)規格の第1パケットを送受信するシリアルインタフェースと、シリアルインタフェースから第1パケットを取得し、取得した第1パケットを、情報処理装置に固有の装置識別子を用いて仮想的に拡張されたメモリ空間を共有する複数の情報処理装置の間でファブリックを介して送受信される第2パケットに変換するリクエスタ部と、ファブリックを介して第2パケットを送受信するファブリック通信部と、ファブリック通信部から第2パケットを取得し、取得した第2パケットに含まれるリクエストに対する応答パケットを生成するコンプリータ部とを有する通信装置とを備える。
 本発明の一態様の通信方法は、ファブリックに接続された複数の情報処理装置によって構成される情報処理システムにおける通信方法であって、PCIe(Peripheral Component Interconnect Express)規格の第1パケットを受信し、受信した第1パケットを、情報処理装置に固有の装置識別子を用いて仮想的に拡張されたメモリ空間を共有する複数の情報処理装置の間でファブリックを介して送受信される第2パケットに変換し、ファブリックを介して第2パケットを送受信し、受信した第2パケットに含まれるリクエストに対する応答パケットを生成する。
 本発明によれば、複数の情報処理装置がメモリ空間を共有することを可能とする通信装置を提供することが可能になる。
本発明の実施形態に係る通信装置の構成の概要の一例を示すブロック図である。 本発明の実施形態に係る通信装置を備える情報処理システムの構成の一例を示すブロック図である。 本発明の実施形態に係る通信装置が実装される情報処理装置の構成の一例を示すブロック図である。 本発明の実施形態に係る通信装置が備えるリクエスタ部の構成の一例を示すブロック図である。 本発明の実施形態に係る通信装置が用いる宛先管理テーブルの一例である。 本発明の実施形態に係る通信装置が用いる第1パケット管理テーブルの一例である。 本発明の実施形態に係る通信装置が備えるコンプリータ部の構成の一例を示すブロック図である。 本発明の実施形態に係る通信装置が用いる第2パケット管理テーブルの一例である。 本発明の実施形態に係る通信装置の動作について説明するための概念図である。 本発明の実施形態に係る通信装置によるリクエスト処理の一例について説明するためのフローチャートである。 本発明の実施形態に係る通信装置によるパケット変換処理の一例について説明するためのフローチャートである。 本発明の実施形態に係る通信装置によるコンプリーション処理の一例について説明するためのフローチャートである。 本発明の実施形態に係る通信装置による応答受信処理の一例について説明するためのフローチャートである。
 以下に、本発明を実施するための形態について図面を用いて説明する。ただし、以下に述べる実施形態には、本発明を実施するために技術的に好ましい限定がされているが、発明の範囲を以下に限定するものではない。なお、以下の実施形態の説明に用いる全図においては、特に理由がない限り、同様箇所には同一符号を付す。また、以下の実施形態において、同様の構成・動作に関しては繰り返しの説明を省略する場合がある。また、図面中の矢印の向きは、一例を示すものであり、ブロック間の信号の向きを限定するものではない。
 (実施形態)
 まず、本発明の実施形態に係る通信装置について図面を参照しながら説明する。本実施形態の通信装置は、PCI Express(登録商標、以下、PCIeとも呼ぶ)をファブリックに拡張できる技術をベースとした情報処理装置に実装される(PCI:Peripheral Component Interconnect)。本実施形態においては、MAC(Media Access Control)アドレスなどのように装置ごとに一意に割り当てられる識別子をメモリ空間の上位bitとして、仮想的にメモリ空間を拡張する。そして、本実施形態においては、仮想的なアドレスに基づいてNTB(Non-transparent bridging)を行う。
 (構成)
 図1は、本実施形態の通信装置100の構成の概要の一例を示すブロック図である。図1のように、通信装置100は、PCIeデバイス110、リクエスタ部120、コンプリータ部140、およびファブリック通信部150を備える。ファブリック通信部150は、ファブリック160に接続される。
 例えば、ファブリック160は、イーサネット(登録商標)などのローカルネットワークによって実現される。通信装置100に含まれる構成要素間は、送受信の差動ペアを単位とするレーンを介して互いに接続される。レーンを構成する送信線および受信線は、少なくとも一本の導線で構成される。通信装置100は、少なくとも一つのCPU(Central Processing Unit)やメモリを含むコンピュータやサーバなどの情報処理装置に実装される。
 図2は、通信装置100が実装された複数の情報処理装置10-1~nによって構成される情報処理システム1である(nは自然数)。以下において、複数の情報処理装置10-1~nのそれぞれを区別しないときは、単に情報処理装置10と記載する。また、以下において、情報処理装置10自体を自装置、自装置にとって他の情報処理装置10を他装置と記載することがある。図2の情報処理システム1を構成するそれぞれの情報処理装置10(自装置)は、ファブリック160を介して他装置に接続され、他装置との間でメモリ空間を共有し合う。
 図3は、情報処理装置10を実現するハードウェア構成の一例を示すブロック図である。図3のように、通信装置100は、ルートポート11、CPU12、メモリ13、PCIeスイッチ14、通信用デバイス15、エンドポイント16、およびエンドポイント17を備える。通信装置100は、通信用デバイス15の内部に実装される。
 ルートポート11は、少なくとも一つのPCIeポートを有する。ルートポート11は、PCIeポートを介して、少なくとも一つのPCIeスイッチ14や、図示しないPCIe装置に接続される。例えば、ルートポート11は、PCIeポートを介してPCIeグラフィックスなどのPCIe装置に接続される。また、ルートポート11は、ホストブリッジを内蔵し、CPU12とメモリ13に接続される。例えば、ルートポート11は、システムバスを介してCPU12に接続され、メモリバスを介してメモリ13に接続される。
 CPU12は、ルートポート11に接続される。例えば、CPU12は、システムバスを介してルートポート11に接続される。CPU12は、一般的な中央演算装置によって実現される。
 メモリ13は、ルートポート11に接続される。例えば、メモリ13は、メモリバスを介してルートポート11に接続される。メモリ13は、一般的な主記憶装置によって実現される。
 PCIeスイッチ14は、複数のPCIeポートを有する。PCIeスイッチ14は、PCIeポートを介して、ルートポート11、通信用デバイス15、エンドポイント16、エンドポイント17に接続される。PCIeスイッチ14は、各ポート間でパケットのルーティングを行う。図3には、情報処理装置10-1~2の各々がPCIeスイッチ14を一つずつ有する例を示すが、情報処理装置10-1~2の各々はPCIeスイッチ14を複数有してもよい。
 通信用デバイス15は、複数のPCIeポートを有する。通信用デバイス15は、PCIeポートを介して、PCIeスイッチ14とファブリック160に接続される。通信用デバイス15は、PCIeの規格に沿ったデバイスであり、コンフィグレーションレジスタ等の標準的な機能が実装されている。通信用デバイス15には、通信装置100が実装される。
 複数の情報処理装置10の間でメモリ13を共有する際には、以下の二つの設定が通信用デバイス15に事前に行われる。
 (1)通常のI/Oデバイスと同様に、PCIエニュメレーションソフトウェアによって、PCIバス番号、BAR空間が割り当てられる。
 (2)OSが起動する際、通信用デバイス15のデバイスドライバがロードされ、動作に必要な初期設定が行われる。
 エンドポイント16およびエンドポイント17は、少なくとも一つのPCIeポートを有する。例えば、エンドポイント16およびエンドポイント17は、レガシ・エンドポイント、PCIeエンドポイント、ルート・コンプレックス・エンドポイントなどである。図3には、情報処理装置10-1~2の各々が二つのエンドポイント(エンドポイント16、17)を有する例を示すが、情報処理装置10-1~2の各々は三つ以上のエンドポイントを有してもよい。
 以上が、情報処理装置10を実現するハードウェア構成の一例についての説明である。なお、図3のハードウェア構成は一例であって、情報処理装置10を実現するハードウェア構成をそのままの形態に限定するものではない。
 〔通信装置〕
 ここで、図1に戻って、通信装置100の構成要素について図面を参照しながら説明する。情報処理装置10は、他装置にアクセスする際、自装置内の通信用デバイス15に確保されたBAR空間に対してアクセスを行う。情報処理装置10は、自装置内のBAR空間にアクセスすると、リクエスタ部120に要求パケットを送信する。このとき、BAR空間をどのように割り当てるかは任意である。例えば、BAR0/1に内部制御機能を割り当て、BAR2/3に通信機能を割り当てることができる。
 図1のように、PCIeデバイス110(シリアルインタフェースとも呼ぶ)は、リクエスタ部120およびコンプリータ部140に接続される。また、PCIeデバイス110は、PCIeスイッチ14に接続される。
 PCIeデバイス110は、PCIeスイッチ14を介して、ルートポート11からパケット(第1パケットとも呼ぶ)を受信する。PCIeデバイス110は、受信したパケットをリクエスタ部120およびコンプリータ部140のいずれかに出力する。例えば、PCIeデバイス110は、ルートポート11から要求パケット(リクエストパケットとも呼ぶ)を受信すると、受信した要求パケットをリクエスタ部120に出力する。また、PCIeデバイス110は、ルートポート11から応答パケット(コンプリーションパケットとも呼ぶ)を受信すると、受信した要求パケットをリクエスタ部120に出力する。
 また、PCIeデバイス110は、リクエスタ部120およびコンプリータ部140のいずれかからパケットを受信する。PCIeデバイス110は、PCIeスイッチ14を介して、受信したパケットをルートポート11に送信する。例えば、PCIeデバイス110は、リクエスタ部120から応答パケットを受信すると、受信した応答パケットをルートポート11に送信する。一方、PCIeデバイス110は、コンプリータ部140から要求パケットを受信すると、受信した要求パケットをルートポート11に送信する。
 リクエスタ部120は、PCIeデバイス110およびファブリック通信部150のそれぞれに接続される。リクエスタ部120は、通信装置100がリクエスタとして機能する際に動作する。
 リクエスタ部120は、PCIeデバイス110から要求パケットを取得する。リクエスタ部120は、取得した要求パケットのアドレスに基づいて、他装置への通信を行うためのBAR(Base Address Register)空間に対するアクセスか否かの判定を行う。リクエスタ部120は、自装置に記憶された宛先管理テーブルを参照し、取得した要求パケットの送信先を判定する。宛先管理テーブルは、どの通信装置100に要求パケットを転送するのかを判定するためのテーブルである。
 リクエスタ部120は、他装置への通信を行うためのBAR空間に対するアクセスがあった場合、宛先管理テーブルを参照し、要求パケットのアドレスに基づいてその要求パケットをどの情報処理装置10に転送するのかを判定する。このとき、リクエスタ部120は、要求パケットのタグフィールドを変換することによってパケットを生成する。リクエスタ部120は、生成したパケットをファブリック通信部150に出力する。一方、リクエスタ部120は、他装置への通信を行うためのBAR空間に対するアクセスがなかった場合、取得した要求パケットを通常のPCIeパケットとして処理を行う。
 要求パケットに含まれるリクエストがメモリリードであった場合、リクエスタ部120は、第1パケット管理テーブルに情報を格納する。第1パケット管理テーブルは、変換したタグ情報、そのタグ情報の使用フラグ、宛先情報(送信先識別子)、コンプリーション生成に必要な情報(コンプリーション生成情報)といった情報(変換情報とも呼ぶ)をセットにして記録するためのテーブルである。リクエスタ部120は、変換するタグフィールドには、第1パケット管理テーブルで未使用のタグ情報を付与する。なお、コンプリーション生成情報には、元のタグ情報、リクエスタID、バイトカウントなどが含まれる。一方、要求パケットに含まれるリクエストがメモリライトの場合、コンプリーションが返ってこないため、リクエスタ部120は、第1パケット管理テーブルに情報を登録しない。
 コンプリータ部140は、PCIeデバイス110およびファブリック通信部150のそれぞれに接続される。コンプリータ部140は、通信装置100がコンプリータとして機能する際に動作する。
 コンプリータ部140は、ファブリック通信部150を介して、他の情報処理装置10からの要求パケットを受信する。コンプリータ部140は、受信した要求パケットからPCIeパケットを抽出し、パケットを変換する。具体的には、コンプリータ部140は、パケットの送信元識別子フィールドを自装置の送信元識別子に差し替え、タグフィールドを変換する。
 コンプリータ部140は、変換した情報を第2パケット管理テーブルに格納する。第2パケット管理テーブルは、変換したタグ情報、そのタグ情報の使用フラグ、リクエスト元の宛先情報(送信元識別子とも呼ぶ)をセットにした変換情報を記録するためのテーブルである。コンプリータ部140は、変換するタグフィールドには、第2パケット管理テーブルで未使用のタグ情報を付与する。変換パケットは、あたかも自装置の通信用デバイス15によって発行されたかのように自装置のルートポート11に送信される。要求パケットに含まれるリクエストがメモリライトであった場合、これで処理は完了する。
 一方、要求パケットに含まれるリクエストがメモリリードであった場合、他の情報処理装置10(他装置)のルートポート11から応答パケット(コンプリーションパケットとも呼ぶ)が返送されてくる。コンプリータ部140は、第2パケット管理テーブルを参照し、受信した応答パケットがどのリクエストに対する応答なのかを判定する。ヒットするリクエストがある場合、コンプリータ部140は、第2管理テーブルに格納された情報から送信元識別子を取得し、タグフィールドを元に戻してからファブリック160に対して応答パケットを送信する。ファブリック160に送信された応答パケットは、設定された宛先の他装置に到達する。
 ファブリック通信部150は、リクエスタ部120およびコンプリータ部140のそれぞれに接続される。また、ファブリック通信部150は、ファブリック160に接続される。ファブリック通信部150は、ファブリック160を介して、他の情報処理装置10(他装置とも呼ぶ)のファブリック通信部150に接続される。ファブリック通信部150は、ファブリック160との間でパケット(第2パケットとも呼ぶ)を送受信する。
 以上が、通信装置100の構成の概要の一例についての説明である。なお、図1の通信装置100の構成は一例であって、本実施形態の通信装置100の構成をそのままの形態に限定するものではない。
 〔リクエスタ部〕
 次に、通信装置100が備えるリクエスタ部120について図面を参照しながら説明する。図4は、リクエスタ部120の構成の一例を示すブロック図である。図4のように、リクエスタ部120は、アドレス判定回路121、宛先判定回路122、要求パケット送信回路123、および応答パケット受信回路125を有する。また、リクエスタ部120は、宛先管理テーブル131および第1パケット管理テーブル132を含む。宛先管理テーブル131および第1パケット管理テーブル132は、図示しない記憶回路に記憶される。宛先管理テーブル131および第1パケット管理テーブル132は、異なる記憶回路に格納されていてもよいし、同じ記憶回路の異なる記憶領域に格納されてもよい。
 アドレス判定回路121は、PCIeデバイス110と宛先判定回路122とに接続される。アドレス判定回路121は、PCIeデバイス110から要求パケットを取得する。アドレス判定回路121は、取得した要求パケットのアドレスに基づいて、他装置への通信を行うためのBAR空間に対してアクセスがあったかどうかの判定を行う。他装置への通信を行うためのBAR空間に対するアクセスがあった場合、アドレス判定回路121は、取得した要求パケットを宛先判定回路122に出力する。他装置への通信を行うためのBAR空間に対するアクセスがなかった場合、取得した要求パケットは通常のPCIeのパケットとして処理される。
 宛先判定回路122は、アドレス判定回路121および要求パケット送信回路123に接続される。また、宛先判定回路122は、宛先管理テーブル131を参照する。宛先判定回路122は、アドレス判定回路121から要求パケットを取得する。宛先判定回路122は、宛先管理テーブル131を参照し、要求パケットを送信先の情報処理装置10を判定する。宛先判定回路122は、要求パケットの送信先の宛先を決定すると、その要求パケットと宛先を要求パケット送信回路123に出力する。
 要求パケット送信回路123は、宛先判定回路122およびファブリック通信部150に接続される。また、要求パケット送信回路123は、第1パケット管理テーブル132を参照する。要求パケット送信回路123は、要求パケットの変換を行うことによってパケットを生成する。要求パケット送信回路123は、生成したパケットをファブリック通信部150に送信する。ファブリック通信部150に送信されたパケットは、設定された宛先の通信装置100に送信される。
 具体的には、要求パケット送信回路123は、要求パケットを受信すると、ファブリック160に対してパケットを送信した際に適切にルーティングされるように、ファブリック160に送信するパケットを生成する。例えば、要求パケット送信回路123は、ファブリック160がイーサネットであった場合、宛先のMACアドレスを正しく設定する。
 要求パケット送信回路123は、要求パケットに含まれるリクエストがメモリリードであった場合、パケットのタグフィールドを変換する。要求パケット送信回路123は、パケットのタグフィールドを変換すると、変換したタグ情報、宛先情報、コンプリーション時に用いられる情報(コンプリーション情報)をセットにした変換情報を第1パケット管理テーブル132に登録する。第1パケット管理テーブル132は、付け替えるタグの値、使用フラグ、送信先識別子、およびコンプリーション生成情報を記録するためのテーブルである。このとき、要求パケット送信回路123は、変換するタグフィールドには、第1パケット管理テーブル132で未使用の値を用いる。なお、コンプリーション生成情報は、元のタグ情報、リクエスタID、バイトカウントなどである。
 また、要求パケットに含まれるリクエストがメモリライトの場合、コンプリーションが返ってこないため、要求パケット送信回路123は、第1パケット管理テーブル132に情報を登録しない。
 応答パケット受信回路125は、PCIeデバイス110とファブリック通信部150とに接続される。
 応答パケット受信回路125は、ファブリック通信部150から応答パケットを受信する。応答パケット受信回路125は、応答パケットを受信すると、その応答パケットからPCIeパケットを抽出する。応答パケット受信回路125は、第1パケット管理テーブル132を参照し、どのリクエストに対する応答かを判定する。応答パケット受信回路125は、ヒットするリクエストが存在する場合、第1パケット管理テーブル132に格納された情報に含まれるタグフィールドとリクエスタIDを元に戻し、送信先識別子フィールドを自身のIDに差し替える。すなわち、応答パケット受信回路125は、コンプリーションを受け取った場合、第1パケット管理テーブル132のコンプリーション情報を更新する。応答パケット受信回路125は、該当メモリリードに対するコンプリーションを全て受信した際に、該当するタグの使用フラグを削除する。その結果、情報処理装置10において、変換されたパケットは、あたかも自装置の通信用デバイス15が応答したかのように自装置のルートポート11に対して送信される。
 宛先管理テーブル131は、宛先判定回路122がパケットを受信した際に用いられる。宛先管理テーブル131には、要求パケットをどの装置に転送するかを判定するための転送情報が格納される。例えば、宛先管理テーブル131には、メモリアドレスの上位ビットに対応付けて、要求パケットの送信先の情報処理装置10が格納される。
 図5は、宛先管理テーブル131の一例である。図5の宛先管理テーブル131は、アドレスの先頭2ビットに複数の情報処理装置10のいずれかが対応付けられる例である。図5の宛先管理テーブル131は、ファブリック通信部150が確保したメモリ空間を用いて、別の4台の情報処理装置10にアクセスする例である。図5の宛先管理テーブル131を用いる場合、メモリアドレスの上位2bit(00、01、10、11)を用いて4台の情報処理装置10を識別することが可能である。
 また、宛先管理テーブル131は、動的に変更可能である。すなわち、宛先管理テーブル131は、それぞれのアドレスに割り当てる通信装置100を時間に応じて変更できる。図5の宛先管理テーブル131では、時刻T1においては、それぞれのアドレスに対して、装置A~Dが割り当てられている。このとき、装置A~Dの割り当て方法は、レジスタ等による設定や、通信装置が通信することによって決定する方法などが考えられる。時刻T2においては、アドレスの上位2bitが00の場合、装置Aから装置Eに割り当てを変更している。また、時刻T3においては、時刻T1においてアドレスの上位2bitが00に割り当てられていた装置Aを、アドレスの上位2bitが10に割り当て直している。このように、宛先管理テーブル131を用いれば、任意の時刻に任意の装置を登録することによって、ファブリックに接続された全ての装置にアクセスすることが可能となる。
 第1パケット管理テーブル132(PCIeパケット管理テーブルとも呼ぶ)は、要求パケット送信回路123がメモリリードを受信した際に用いられる。第1パケット管理テーブル132には、要求パケット送信回路123によって付け替えられるタグ情報をベースにして、パケットの宛先情報(送信先識別子)とコンプリーション時に必要な情報(コンプリーション情報)が登録される。また、第1パケット管理テーブル132には、付け替えるタグが使用中であるか否かを示すフラグ(使用フラグとも呼ぶ)が格納される。要求パケット送信回路123がタグを付け替えたパケットをファブリック160に送信する際には、使用フラグが設定される。
 図6は、第1パケット管理テーブル132(PCIeパケット管理テーブルとも呼ぶ)の一例である。第1パケット管理テーブル132には、付け替えるタグ情報をベースにして、パケットの宛先情報(送信先識別子)と、コンプリーション時に必要な情報(コンプリーション生成情報とも呼ぶ)とが登録される。
 また、第1パケット管理テーブル132には、付け替えるタグが使用中であるか否かを示すフラグ(使用フラグとも呼ぶ)が格納される。第1パケット管理テーブル132の使用フラグは、使用中ではないときは0に設定される。一方、第1パケット管理テーブル132の使用フラグは、要求パケット送信回路123がタグを付け替えてファブリックに送信する際に、使用中であることを示すために1に設定される。また、全てのフラグが使用中になった場合、要求パケット送信回路123がタグの付け替えをできなくなる。そのため、全てのフラグが使用中(1)になった場合、PCIeデバイス110によるパケットの受信を停止させる。
 第1パケット管理テーブル132に使用フラグが設定されているときに該当宛先との通信が途絶えた場合、リクエスト発行元の情報処理装置10は、コンプリーションタイムアウトを検出する。情報処理装置10は、通信が途絶えたことを検出すると、応答パケット受信回路125に対して自律的にコンプリーションを返送するように通知する。このとき、情報処理装置10は、自律的にコンプリーションを作成するために、第1パケット管理テーブル132のコンプリーション生成情報を利用する。また、情報処理装置10は、該当するリクエストの使用フラグを削除する。
 以上が、リクエスタ部120の構成の一例についての説明である。なお、図4に示すリクエスタ部120の構成は一例であって、本実施形態のリクエスタ部120の構成をそのままの形態に限定するものではない。
 〔コンプリータ部〕
 次に、通信装置100が備えるコンプリータ部140について図面を参照しながら説明する。図7は、コンプリータ部140の構成の一例を示すブロック図である。図7のように、コンプリータ部140は、要求パケット受信回路143および応答パケット送信回路145を有する。また、コンプリータ部140は、第2パケット管理テーブル133を含む。第2パケット管理テーブル133は、図示しない記憶回路に記憶される。第2パケット管理テーブル133は、宛先管理テーブル131および第1パケット管理テーブル132と同じ記憶回路の異なる記憶領域に格納されてもよい。
 要求パケット受信回路143は、PCIeデバイス110とファブリック通信部150に接続される。また、要求パケット受信回路143は、第2パケット管理テーブル133を参照する。要求パケット受信回路143は、ファブリック160を介して、ファブリック通信部150から要求パケットを受信する。要求パケット受信回路143は、受信した要求パケットからPCIeパケットを抽出し、パケットを変換する。具体的には、要求パケット受信回路143は、パケットの送信元識別子フィールドを自装置の送信元識別子に差し替え、タグフィールドを変換する。
 要求パケット受信回路143は、第2パケット管理テーブル133に変換情報を格納する。第2パケット管理テーブル133は、変換したタグ情報、そのタグ情報の使用フラグ、リクエスト元の宛先情報(送信元識別子とも呼ぶ)をセットにした変換情報を記録するためのテーブルである。要求パケット受信回路143は、変換するタグフィールドには、第2パケット管理テーブルで未使用のタグ情報を付与する。変換後のパケットは、あたかも自装置の通信用デバイス15によって発行されたかのようにルートポート11に対して送信される。
 要求パケットに含まれるリクエストがメモリライトであった場合、パケットが送信された時点で処理は完了する。一方、要求パケットに含まれるリクエストがメモリリードであった場合、自装置のルートポート11から応答パケット(コンプリーションパケットとも呼ぶ)が返送され、自装置の応答パケット送信回路145に渡される。
 応答パケット送信回路145は、第2パケット管理テーブル133を参照し、受信した応答パケットがどのリクエストに対する応答かを判定する。ヒットするリクエストが存在する場合、応答パケット送信回路145は、第2パケット管理テーブル133に格納された情報から送信元識別子を取得し、タグフィールドを元に戻してからファブリック160に対して応答パケットを送信する。応答パケット送信回路145から送信された応答パケットは、設定された宛先の情報処理装置10が備える通信装置100の応答パケット受信回路125に到達する。
 第2パケット管理テーブル133は、要求パケット受信回路143がメモリリードを受信した際に用いられる。図8は、第2パケット管理テーブル133(ファブリックパケット管理テーブルとも呼ぶ)の一例である。第2パケット管理テーブル133には、付け替えるタグ情報をベースにして、送信元の宛先情報(送信元識別子とも呼ぶ)と、元のタグ情報が格納される。
 また、第2パケット管理テーブル133には、付け替えるタグが使用中であるか否かを示すフラグ(使用フラグとも呼ぶ)が格納される。使用フラグは、要求パケット受信回路143がタグを付け替えたパケットをPCIeデバイス110に送信する際に設定される。一方、使用フラグは、該当メモリリードに対するコンプリーションを全て受信した際に削除される。全てのフラグが使用中になった場合、要求パケット受信回路143は、タグの付け替えができないため、ファブリック通信部1500に対してパケットの受信を停止させる。
 以上が、コンプリータ部140の構成の一例についての説明である。なお、図7に示すコンプリータ部140の構成は一例であって、本実施形態のコンプリータ部140の構成をそのままの形態に限定するものではない。
 (動作)
 次に、通信装置100の動作について図面を参照しながら説明する。ここでは、情報処理装置10-1から情報処理装置10-2のメモリ13にアクセスする際の動作について説明する。なお、以下においては、2台の情報処理装置10をファブリック160に接続する例を挙げて説明するが、接続する装置の数には特に限定を加えない。例えば、ファブリック160がイーサネットである場合、MACアドレスがユニークであれば、無制限に接続することが可能であり、任意の装置のメモリ13にアクセスすることができる。
 図9は、通信装置100の動作について説明するための概念図である。図9の例では、通信装置100-1が実装された情報処理装置10-1がリクエスタ側、通信装置100-2が実装された情報処理装置10-2がコンプリータ側に設定される。図9においては、リクエスタ側の通信装置100-1のコンプリータ部140、コンプリータ側の通信装置100-2のリクエスタ部120は省略している。
 他の情報処理装置10(以下、他装置と呼ぶ)のメモリ空間にアクセスする前に、それぞれの情報処理装置10の通信用デバイス15には、以下の二つの設定が行われているものとする。
 (1)通常のI/Oデバイスと同様に、PCIエニュメレーションソフトウェアによって、通信用デバイス15にPCIバス番号とBAR空間が割り当てられている。
 (2)OS(Operating System)が起動する際、通信用デバイス15のデバイスドライバがロードされ、動作に必要な初期設定が行われている。
 以下においては、図3および図9を参照しながら、図10~図13のフローチャートに沿って、リクエスタ側の情報処理装置10-1の通信装置100-1から、コンプリータ側の情報処理装置10-2の通信装置100-2にアクセスする動作について説明する。
 〔リクエスト処理〕
 まず、図10のフローチャートに沿って、リクエスタ側の通信装置100-1から、コンプリータ側の通信装置100-2にアクセスする際のリクエスト処理について説明する。リクエスト処理は、リクエスタ側の通信装置100-1が受信した要求パケットを、ファブリック160を介してコンプリータ側の通信装置100-2に送信する処理である。以下の図10のフローチャートに沿った説明においては、通信装置100-1を動作の主体として説明する。
 図10において、まず、通信装置100-1は、PCIeスイッチ14を介して、ルートポート11からの要求パケットを受信する(ステップS111)。
 次に、通信装置100-1は、他装置への通信を行うためのBAR空間に対するアクセスがあるか否かを判定する(ステップS112)。
 他装置への通信を行うためのBAR空間に対するアクセスがあった場合(ステップS112でYes)、通信装置100-1は、宛先管理テーブル131を参照し、取得した要求パケットの転送先の情報処理装置10を判定する(ステップS113)。
 他装置への通信を行うためのBAR空間に対するアクセスがなかった場合(ステップS112でNo)、通信装置100-1は、取得したパケットを通常のPCIeのパケットとして処理する(ステップS114)。
 ステップS113の次に、通信装置100-1は、取得した要求パケットを、ファブリック160に送信するためのパケットに変換する(ステップS115)。
 次に、通信装置100-1は、ファブリック通信部150を介して、ファブリック160に変換後のパケットを送信する(ステップS116)。ファブリック160に送信されたパケットは、ファブリック160を介して、情報処理装置10-2の通信装置100-2に送信される。
 以上が、リクエスタ側の通信装置100-1から、コンプリータ側の通信装置100-2にアクセスする際のリクエスト処理についての説明である。なお、図10のフローチャートに沿ったリクエスト処理は一例であって、本実施形態の情報処理装置10によるリクエスト処理をそのままの手順に限定するものではない。
 〔パケット変換処理〕
 次に、図11のフローチャートに沿って、リクエスタ側の通信装置100の要求パケット送信回路123によるパケット変換処理について説明する。パケット変換処理は、図10のフローチャートのステップS115の処理である。図11のフローチャートに沿った以下の説明においては、要求パケット送信回路123を動作の主体として説明する。
 図11において、まず、要求パケット送信回路123は、宛先判定回路122からパケットを受信する(ステップS121)。
 次に、要求パケット送信回路123は、ファブリック160に対してパケットを送信した際にそのパケットが適切にルーティングされるように、ファブリック160に送信するパケットを生成する(ステップS122)。例えば、ファブリック160がイーサネット(登録商標)の場合、要求パケット送信回路123は、パケットに含まれる宛先のMACアドレスを正しく設定する。
 次に、要求パケット送信回路123は、リクエストがメモリリードであった場合(ステップS123でYes)、パケットのタグフィールドを変換する(ステップS124)。このとき、要求パケット送信回路123は、パケットのタグフィールドを、第1パケット管理テーブル132で未使用のタグに変換する。一方、要求パケット送信回路123は、リクエストがメモリライトの場合(ステップS123でNo)、コンプリーションが返ってこないため、第1パケット管理テーブル132に情報を登録しない(ステップS126に進む)。
 次に、要求パケット送信回路123は、変換したタグ情報、宛先情報、コンプリーション生成情報をセットにした変換情報を第1パケット管理テーブル132に格納する(ステップS125)。
 そして、要求パケット送信回路123は、ファブリック通信部150に変換後のパケットを送信する(ステップS126)。
 以上が、要求パケット送信回路123によるパケット変換処理についての説明である。なお、図11のフローチャートに沿ったパケット変換処理は一例であって、本実施形態の要求パケット送信回路123によるパケット変換処理をそのままの手順に限定するものではない。
 〔コンプリーション処理〕
 次に、図12のフローチャートに沿って、コンプリータ側の通信装置100-2が、リクエスタ側の通信装置100-1からアクセスされる際のコンプリーション処理について説明する。コンプリーション処理は、コンプリータ側の通信装置100-2が、リクエスタ側の通信装置100-1からファブリック160を介して送信されてきたパケットを受信し、パケットに含まれるリクエストに応答する処理である。図12のフローチャートに沿った以下の説明においては、通信装置100-2を動作の主体とする。
 図12において、まず、通信装置100-2は、ファブリック160を介して、通信装置100-1からパケットを受信する(ステップS131)。
 次に、通信装置100-2は、受信したパケットからPCIeパケットを抽出し、要求パケットを変換する(ステップS132)。具体的には、要求パケット受信回路143は、パケットのリクエスタIDフィールドを自身のリクエスタIDに差し替え、タグフィールドを変換する。このとき、要求パケット受信回路143は、第2管理テーブルで未使用のタグフィールドに変換する。
 次に、通信装置100-2は、変換したタグ情報と、リクエスト元の宛先情報とをセットにした変換情報を第2パケット管理テーブル133に格納する(ステップS133)。変換後のパケットは、あたかも通信装置100-2の通信用デバイス15によって発行されたかのように、通信装置100-2のルートポート11に送信される。
 ここで、要求パケットがメモリライトであった場合(ステップS134でYes)、図12のフローチャートに沿った処理は終了である。
 一方、要求パケットがメモリリードであった場合(ステップS134でNo)、通信装置100-2のルートポート11から応答パケットが返送され、応答パケット送信回路145に渡される(ステップS135)。
 次に、通信装置100-2は、第2パケット管理テーブル133を参照し、ヒットするリクエストが応答パケットに含まれるか否かを判定する(ステップS136)。
 ここで、ヒットするリクエストがある場合(ステップS136でYes)、通信装置100-2は、第2パケット管理テーブル133に格納された情報から返送先の宛先を取得する(ステップS137)。ヒットするリクエストがない場合(ステップS136でNo)、図12のフローチャートに沿った処理は終了とする。
 ステップS137の次に、通信装置100-2は、タグフィールドを元に戻してからファブリック160に対して応答パケットを送信する(ステップS138)。ファブリック160に送信された応答パケットは、通信装置100-1のファブリック通信部150に受信される。
 以上が、コンプリータ側の通信装置100-2がリクエスタ側の通信装置100-1からアクセスされる際のコンプリーション処理についての説明である。なお、図12のフローチャートに沿ったコンプリーション処理は一例であって、本実施形態の情報処理装置10によるコンプリーション処理をそのままの手順に限定するものではない。
 〔応答受信処理〕
 続いて、図13のフローチャートに沿って、リクエスタ側の通信装置100-1が、コンプリータ側の通信装置100-2から応答パケットを受信する応答受信処理について説明する。以下の図13のフローチャートに沿った説明においては、通信装置100-1を動作の主体として説明する。
 図13において、まず、通信装置100-1は、通信装置100-2から応答パケットを受信する(ステップS141)。
 通信装置100-1は、受信したパケットからPCIeパケットを抽出する(ステップS142)。
 通信装置100-1は、第1パケット管理テーブル132を参照し、ヒットするリクエストが応答パケットに含まれるか否かを判定する(ステップS143)。
 ヒットするリクエストがある場合(ステップS143でYes)、通信装置100-1は、取得した応答パケットをルートポート11に送信するためのパケットに変換する(ステップS144)。具体的には、通信装置100-1は、第1パケット管理テーブル132に格納してあった情報から、タグフィールドとリクエスタIDを元に戻し、送信先識別子フィールドを自身の識別子に差し替える。ヒットするリクエストがない場合(ステップS143でNo)、図13のフローチャートに沿った処理は終了とする。
 そして、通信装置100-1は、変換したパケットをルートポート11に送信する(ステップS145)。通信装置100-1によって変換されたパケットは、あたかも通信装置100-1の通信用デバイス15が応答したかのように通信装置100-1のルートポート11に対して送信される。
 以上が、リクエスタ側の通信装置100-1がコンプリータ側の通信装置100-2からの応答パケットを受信する応答受信処理についての説明である。なお、図13のフローチャートに沿った応答受信処理は一例であって、本実施形態の通信装置100による応答受信処理をそのままの手順に限定するものではない。
 以上の図10~図13の手順によって、通信装置100-1は、ファブリック160を介して通信装置100-2のメモリ13にアクセスすることができる。同様に、情報処理システム1を構成する情報処理装置10は、ファブリック160を介して、情報処理システム1を構成する任意の情報処理装置10のメモリ13にアクセスできる。
 以上のように、本実施形態の通信装置は、ファブリックに接続された複数の情報処理装置のそれぞれに実装される。本実施形態の通信装置は、シリアルインタフェース、リクエスタ部、ファブリック通信部、コンプリータ部を備える。シリアルインタフェースは、PCIe(Peripheral Component Interconnect Express)規格の第1パケットを送受信する。リクエスタ部は、シリアルインタフェースから第1パケットを取得する。リクエスタ部は、取得した第1パケットを、情報処理装置に固有の装置識別子を用いて仮想的に拡張されたメモリ空間を共有する複数の情報処理装置の間でファブリックを介して送受信される第2パケットに変換する。ファブリック通信部は、ファブリックを介して第2パケットを送受信する。コンプリータ部は、ファブリック通信部から第2パケットを取得し、取得した第2パケットに含まれるリクエストに対する応答パケットを生成する。
 例えば、リクエスタ部は、アドレス判定回路、宛先管理テーブル、宛先判定回路、第1パケット管理テーブル、要求パケット送信回路、応答パケット受信回路を有する。アドレス判定回路は、シリアルインタフェースから第1パケットを取得し、取得した第1パケットに基づいて他の情報処理装置に対するアクセスの有無を判定する。宛先管理テーブルは、メモリ空間を共有する複数の情報処理装置のそれぞれにメモリアドレスに含まれるビットを対応付ける。宛先判定回路は、アドレス判定回路から第1パケットを取得し、宛先管理テーブルを参照して第1パケットの送信先を判定し、第1パケットの送信先の情報処理装置の装置識別子と第1パケットとを出力する。第1パケット管理テーブルには、第1パケットの送信先の装置識別子と、コンプリーション情報と、送信先の装置識別子とコンプリーション情報との組合せに付与されるタグの値とをセットにした第1変換情報が登録される。コンプリーション情報は、第1パケットに対する応答パケットをコンプリーションするのに用いられる。要求パケット送信回路は、第1パケットの送信先の装置識別子と第1パケットとを宛先判定回路から取得し、メモリ空間を共有する情報処理装置に送信する第1パケットを、ファブリックを介して送信する第2パケットに変換する。また、要求パケット送信回路は、第1パケットに含まれるリクエストがメモリリードであった場合、第2パケットのタグの値を変換し、タグの値が変換された第2パケットをファブリック通信部に送信する。そして、要求パケット送信回路は、第1パケット管理テーブルに第1変換情報を登録する。応答パケット受信回路は、ファブリック通信部から第2パケットを取得し、第1パケット管理テーブルを参照して第2パケットを第1パケットに変換し、第1パケット管理テーブルの第1変換情報を更新する。
 例えば、宛先管理テーブルには、メモリ空間を共有する複数の情報処理装置のそれぞれに対応付けられたメモリアドレスの上位ビットと情報処理装置とを対応付けるレコードが格納される。また、例えば、宛先管理テーブルには、メモリ空間を共有する複数の情報処理装置のそれぞれに対応付けられたメモリアドレスの上位ビットと情報処理装置とを対応付けるレコードが複数の時刻に対応付けられて格納される。
 例えば、コンプリータ部は、第2パケット管理テ-ブル、要求パケット受信回路、応答パケット送信回路を有する。第2パケット管理テ-ブルには、第2パケットのタグの値と、送信元の情報処理装置に固有の装置識別子とをセットにした第2変換情報が登録される。要求パケット受信回路は、ファブリック通信部から第2パケットを取得し、取得した第2パケットの装置識別子の値を自装置の装置識別子に差し替えるとともにタグの値を変換して第1パケットを生成する。要求パケット受信回路は、第2パケット管理テ-ブルに第2変換情報を登録する。応答パケット送信回路は、第1パケットに含まれるリクエストがメモリリードであった場合、第1パケットに含まれるリクエストに対する応答パケットをシリアルインタフェースから取得する。応答パケット送信回路は、第2パケット管理テーブルに登録された第2変換情報に基づいて、取得した応答パケットの装置識別子とタグの値とを変換して第2パケットを生成する。応答パケット送信回路は、生成した第2パケットをファブリック通信部に送信し、第2パケット管理テ-ブルに登録された第2変換情報を更新する。
 例えば、第1パケット管理テーブルには、第1パケットの送信先の情報処理装置に固有の装置識別子と、コンプリーション情報と、装置識別子とコンプリーション情報とを対応付けるタグの値とをセットにした第1変換情報が登録される。コンプリーション情報は、第1パケットを第2パケットに変換するのに用いられたものである。第2パケット管理テーブルには、第2パケットの送信元の情報処理装置に固有の装置識別子と、装置識別子に対応付けられたタグの値とをセットにした第2変換情報が登録される。
 また、例えば、第1パケット管理テーブルおよび第2パケット管理テーブルには、タグの値の使用状況を示すフラグが設定される。リクエスタ部およびコンプリータ部は、第2パケット管理テーブルのフラグに基づいて未使用のタグの値を用いる。
 以上のように、本実施形態の情報処理装置は、PCIeをファブリックに拡張できる技術をベースとした情報処理システムを構成する。本実施形態においては、装置ごとに一意に割り当てられる識別子をメモリ空間の上位bitとして、仮想的にメモリ空間を拡張する。そして、本実施形態においては、仮想的に拡張されたメモリ空間のアドレスに基づいてNTB(Non-transparent bridging)を行う。その結果、本実施形態によれば、ファブリックに接続された装置同士が、任意の情報処理装置の任意のメモリ空間にアクセス可能となり、複数のコンピュータ間でメモリ空間の共有が可能となる。
 一般に、複数のコンピュータ間でメモリ空間を共有する場合、RDMA(Remote Direct Memory Access)やNTB(Non Transparent Bridge)などが用いられる。RDMAの場合、それぞれのコンピュータが別々にメモリ空間を管理するため、処理のオーバヘッドが存在する。NTBの場合、他のコンピュータのメモリ空間に直接アクセスできるが、PCIeがベースとなっているため、64bitアドレスの制限がある。
 一方、本実施形態で用いるファブリック接続は、必要なときだけダイナミックに接続し、不要なときは外すことができる。また、ファブリック接続を用いれば、複数のサーバとストレージとの間のデータ転送を同時に独立して行なうことができる。
 また、NTBでは、ブリッジを介して2台の情報処理装置をPCIeで接続することで、メモリを共有することができる。しかしながら、NTBでは、ピアトゥーピアが必須のPCIeベースであるため、基本的には2台の装置間でしかメモリを共有できない。NTBによって複数の装置でメモリを共有する場合、NTB空間を複数組み合わせることで通信を行う必要があり、オーバヘッドが存在する。
 本実施形態では、ピアトゥーピアがベースであるPCIeに対し、管理テーブルを用いて同時に複数の接続を可能とすることで、複数の装置によるNTBが可能となり、ファブリックに接続された複数の情報処理装置の間でメモリ空間の共有が可能になる。
 以上、実施形態を参照して本発明を説明してきたが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
 この出願は、2018年11月30日に出願された日本出願特願2018-224572を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 1  情報処理システム
 10  情報処理装置
 11  ルートポート
 12  CPU
 13  メモリ
 14  PCIeスイッチ
 15  通信用デバイス
 16、17  エンドポイント
 100  通信装置
 110  PCIeデバイス
 120  リクエスタ部
 121  アドレス判定回路
 122  宛先判定回路
 123  要求パケット送信回路
 125  応答パケット受信回路
 131  宛先管理テーブル
 132  第1パケット管理テーブル
 133  第2パケット管理テーブル
 140  コンプリータ部
 143  要求パケット受信回路
 145  応答パケット送信回路
 150  ファブリック通信部
 160  ファブリック

Claims (10)

  1.  ファブリックに接続された複数の情報処理装置のそれぞれに実装される通信装置であって、
     PCIe(Peripheral Component Interconnect Express)規格の第1パケットを送受信するシリアルインタフェースと、
     前記シリアルインタフェースから前記第1パケットを取得し、取得した前記第1パケットを、前記情報処理装置に固有の装置識別子を用いて仮想的に拡張されたメモリ空間を共有する複数の前記情報処理装置の間で前記ファブリックを介して送受信される第2パケットに変換するリクエスタ手段と、
     前記ファブリックを介して前記第2パケットを送受信するファブリック通信手段と、
     前記ファブリック通信手段から前記第2パケットを取得し、取得した前記第2パケットに含まれるリクエストに対する応答パケットを生成するコンプリータ手段とを備える通信装置。
  2.  前記リクエスタ手段は、
     前記シリアルインタフェースから前記第1パケットを取得し、取得した前記第1パケットに基づいて他の前記情報処理装置に対するアクセスの有無を判定するアドレス判定回路と、
     前記メモリ空間を共有する複数の前記情報処理装置のそれぞれにメモリアドレスに含まれるビットを対応付ける宛先管理テーブルと、
     前記アドレス判定回路から前記第1パケットを取得し、前記宛先管理テーブルを参照して前記第1パケットの送信先を判定し、前記第1パケットの送信先の前記情報処理装置の前記装置識別子と前記第1パケットとを出力する宛先判定回路と、
     前記第1パケットの送信先の前記装置識別子と、前記第1パケットに対する前記応答パケットをコンプリーションするのに用いられるコンプリーション情報と、送信先の前記装置識別子と前記コンプリーション情報との組合せに付与されるタグの値とをセットにした第1変換情報が登録される第1パケット管理テーブルと、
     前記第1パケットの送信先の前記装置識別子と前記第1パケットとを前記宛先判定回路から取得し、前記メモリ空間を共有する前記情報処理装置に送信する前記第1パケットを、前記ファブリックを介して送受信される前記第2パケットに変換する要求パケット送信回路と、
     前記ファブリック通信手段から前記第2パケットを取得し、前記第1パケット管理テーブルを参照して前記第2パケットを前記第1パケットに変換し、前記第1パケット管理テーブルの前記第1変換情報を更新する応答パケット受信回路とを有し、
     前記要求パケット送信回路は、
     前記第1パケットに含まれるリクエストがメモリリードであった場合、前記第2パケットのタグの値を変換し、前記タグの値が変換された前記第2パケットを前記ファブリック通信手段に送信するとともに、前記第1パケット管理テーブルに前記第1変換情報を登録する請求項1に記載の通信装置。
  3.  前記宛先管理テーブルには、
     前記メモリ空間を共有する複数の前記情報処理装置のそれぞれに対応付けられたメモリアドレスの上位ビットと前記情報処理装置とを対応付けるレコードが格納される請求項2に記載の通信装置。
  4.  前記宛先管理テーブルには、
     前記メモリ空間を共有する複数の前記情報処理装置のそれぞれに対応付けられたメモリアドレスの上位ビットと前記情報処理装置とを対応付けるレコードが複数の時刻に対応付けられて格納される請求項2に記載の通信装置。
  5.  前記コンプリータ手段は、
     前記第2パケットの前記タグの値と、送信元の前記情報処理装置に固有の前記装置識別子とをセットにした第2変換情報が登録される第2パケット管理テーブルと、
     前記ファブリック通信手段から前記第2パケットを取得し、取得した前記第2パケットの前記装置識別子の値を自装置の前記装置識別子に差し替えるとともに前記タグの値を変換して前記第1パケットを生成し、前記第2パケット管理テーブルに前記第2変換情報を登録する要求パケット受信回路と、
     前記第1パケットに含まれる前記リクエストがメモリリードであった場合、前記第1パケットに含まれる前記リクエストに対する前記応答パケットを前記シリアルインタフェースから取得し、前記第2パケット管理テーブルに登録された前記第2変換情報に基づいて、取得した前記応答パケットに含まれる前記装置識別子と前記タグの値とを変換して前記第2パケットを生成し、生成した前記第2パケットを前記ファブリック通信手段に送信し、前記第2パケット管理テーブルに登録された前記第2変換情報を更新する応答パケット送信回路とを有する請求項2乃至4のいずれか一項に記載の通信装置。
  6.  前記第1パケット管理テーブルには、
     前記第1パケットの送信先の前記情報処理装置に固有の前記装置識別子と、前記第1パケットを前記第2パケットに変換するのに用いられた前記コンプリーション情報と、前記装置識別子と前記コンプリーション情報とを対応付ける前記タグの値とをセットにした前記第1変換情報が登録され、
     前記第2パケット管理テーブルには、
     前記第2パケットの送信元の前記情報処理装置に固有の前記装置識別子と、前記装置識別子に対応付けられた前記タグの値とをセットにした前記第2変換情報が登録される請求項5に記載の通信装置。
  7.  前記第1パケット管理テーブルおよび前記第2パケット管理テーブルには、前記タグの値の使用状況を示すフラグが設定され、
     前記リクエスタ手段および前記コンプリータ手段は、
     前記第2パケット管理テーブルの前記フラグに基づいて未使用の前記タグの値を用いる請求項6に記載の通信装置。
  8.  請求項1乃至7のいずれか一項に記載の通信装置が実装される情報処理装置。
  9.  複数の情報処理装置と、
     複数の前記情報処理装置を接続するファブリックと、
     複数の前記情報処理装置のそれぞれに実装され、PCIe(Peripheral Component Interconnect Express)規格の第1パケットを送受信するシリアルインタフェースと、前記シリアルインタフェースから前記第1パケットを取得し、取得した前記第1パケットを、前記情報処理装置に固有の装置識別子を用いて仮想的に拡張されたメモリ空間を共有する複数の前記情報処理装置の間で前記ファブリックを介して送受信される第2パケットに変換するリクエスタ手段と、前記ファブリックを介して前記第2パケットを送受信するファブリック通信手段と、前記ファブリック通信手段から前記第2パケットを取得し、取得した前記第2パケットに含まれるリクエストに対する応答パケットを生成するコンプリータ手段とを有する通信装置とを備える情報処理システム。
  10.  ファブリックに接続された複数の情報処理装置によって構成される情報処理システムにおける通信方法であって、
     PCIe(Peripheral Component Interconnect Express)規格の第1パケットを受信し、
     受信した前記第1パケットを、前記情報処理装置に固有の装置識別子を用いて仮想的に拡張されたメモリ空間を共有する複数の前記情報処理装置の間で前記ファブリックを介して送受信される第2パケットに変換し、
     前記ファブリックを介して前記第2パケットを送受信し、
     受信した前記第2パケットに含まれるリクエストに対する応答パケットを生成する通信方法。
PCT/JP2019/045601 2018-11-30 2019-11-21 通信装置、情報処理システム、および通信方法 WO2020110895A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US17/296,394 US11836105B2 (en) 2018-11-30 2019-11-21 Communication device, information processing system, and communication method
EP19890545.7A EP3889790A4 (en) 2019-11-21 Communication device, information processing system, and communication method
CN201980075966.2A CN113168384A (zh) 2018-11-30 2019-11-21 通信设备、信息处理系统和通信方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018224572A JP6922879B2 (ja) 2018-11-30 2018-11-30 通信装置、情報処理システム、および通信方法
JP2018-224572 2018-11-30

Publications (1)

Publication Number Publication Date
WO2020110895A1 true WO2020110895A1 (ja) 2020-06-04

Family

ID=70852046

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/045601 WO2020110895A1 (ja) 2018-11-30 2019-11-21 通信装置、情報処理システム、および通信方法

Country Status (5)

Country Link
US (1) US11836105B2 (ja)
JP (1) JP6922879B2 (ja)
CN (1) CN113168384A (ja)
TW (1) TWI791134B (ja)
WO (1) WO2020110895A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11809888B2 (en) * 2019-04-29 2023-11-07 Red Hat, Inc. Virtual machine memory migration facilitated by persistent memory devices
US11803506B2 (en) * 2021-10-28 2023-10-31 Arm Limited PCIe routing

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63111563A (ja) 1986-10-29 1988-05-16 Nec Corp メモリアクセス方式
JPH0619856A (ja) 1991-09-20 1994-01-28 Hitachi Ltd 並列計算機
JPH10254761A (ja) 1996-11-22 1998-09-25 Mangosoft Corp 共用メモリ・コンピュータ・ネットワーク
US7480303B1 (en) * 2005-05-16 2009-01-20 Pericom Semiconductor Corp. Pseudo-ethernet switch without ethernet media-access-controllers (MAC's) that copies ethernet context registers between PCI-express ports
JP2009110032A (ja) * 2006-01-16 2009-05-21 Sony Computer Entertainment Inc ブリッジ、情報処理装置、情報処理システムおよびグローバルアドレス管理方法
WO2011090145A1 (ja) * 2010-01-20 2011-07-28 日本電気株式会社 ネットワーク装置、ネットワーク構成方法及びネットワーク装置のプログラムを記録したプログラム記録媒体
WO2013046814A1 (ja) * 2011-09-27 2013-04-04 日本電気株式会社 分散型計算機システム
WO2013150792A1 (ja) * 2012-04-06 2013-10-10 日本電気株式会社 I/oデバイス共有システムおよびi/oデバイス共有方法
WO2018003629A1 (ja) * 2016-06-28 2018-01-04 日本電気株式会社 パケット処理装置、及び、パケット処理方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7685319B2 (en) * 2004-09-28 2010-03-23 Cray Canada Corporation Low latency communication via memory windows
JP5601601B2 (ja) * 2011-03-23 2014-10-08 日本電気株式会社 通信制御システム、スイッチノード、及び通信制御方法
US9348396B2 (en) * 2011-06-08 2016-05-24 Nec Corporation Computer system, connection device, power supply control method, and power supply control program recording medium
JP5573829B2 (ja) * 2011-12-20 2014-08-20 富士通株式会社 情報処理装置およびメモリアクセス方法
JP5541275B2 (ja) * 2011-12-28 2014-07-09 富士通株式会社 情報処理装置および不正アクセス防止方法
US9319349B2 (en) * 2013-06-20 2016-04-19 Micron Technology, Inc. Encapsulation enabled PCIE virtualisation
US20150261709A1 (en) * 2014-03-14 2015-09-17 Emilio Billi Peripheral component interconnect express (pcie) distributed non- transparent bridging designed for scalability,networking and io sharing enabling the creation of complex architectures.
US9940287B2 (en) * 2015-03-27 2018-04-10 Intel Corporation Pooled memory address translation
WO2017209856A1 (en) * 2016-05-31 2017-12-07 Brocade Communications Systems, Inc. Multichannel input/output virtualization

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63111563A (ja) 1986-10-29 1988-05-16 Nec Corp メモリアクセス方式
JPH0619856A (ja) 1991-09-20 1994-01-28 Hitachi Ltd 並列計算機
JPH10254761A (ja) 1996-11-22 1998-09-25 Mangosoft Corp 共用メモリ・コンピュータ・ネットワーク
US7480303B1 (en) * 2005-05-16 2009-01-20 Pericom Semiconductor Corp. Pseudo-ethernet switch without ethernet media-access-controllers (MAC's) that copies ethernet context registers between PCI-express ports
JP2009110032A (ja) * 2006-01-16 2009-05-21 Sony Computer Entertainment Inc ブリッジ、情報処理装置、情報処理システムおよびグローバルアドレス管理方法
WO2011090145A1 (ja) * 2010-01-20 2011-07-28 日本電気株式会社 ネットワーク装置、ネットワーク構成方法及びネットワーク装置のプログラムを記録したプログラム記録媒体
WO2013046814A1 (ja) * 2011-09-27 2013-04-04 日本電気株式会社 分散型計算機システム
WO2013150792A1 (ja) * 2012-04-06 2013-10-10 日本電気株式会社 I/oデバイス共有システムおよびi/oデバイス共有方法
WO2018003629A1 (ja) * 2016-06-28 2018-01-04 日本電気株式会社 パケット処理装置、及び、パケット処理方法

Also Published As

Publication number Publication date
EP3889790A1 (en) 2021-10-06
US11836105B2 (en) 2023-12-05
US20220019551A1 (en) 2022-01-20
JP6922879B2 (ja) 2021-08-18
JP2020087238A (ja) 2020-06-04
TWI791134B (zh) 2023-02-01
CN113168384A (zh) 2021-07-23
TW202034183A (zh) 2020-09-16

Similar Documents

Publication Publication Date Title
JP4931787B2 (ja) データ処理システム内で第1のホスト・システムと第2のホスト・システムとの間で通信するための方法、プログラム、およびシステム(トランザクション・プロトコルおよび共用メモリを使用するホスト・システム間の通信のためのシステムおよび方法)
JP5763873B2 (ja) データ処理システムの複数のルート複合体間の通信のために共用メモリを初期設定するための方法、コンピュータ・プログラム、およびデータ処理システム
US8904079B2 (en) Tunneling platform management messages through inter-processor interconnects
JP5362980B2 (ja) データ処理システム内で第1のホスト・システムと第2のホスト・システムとの間で通信するための方法、プログラム、およびシステム(ソケット接続および共用メモリを使用するホスト・システム間の通信のためのシステムおよび方法)
US9672143B2 (en) Remote memory ring buffers in a cluster of data processing nodes
CN101206622B (zh) 基于指定的有效功能组合配置端点的系统和方法
EP3629186B1 (en) Method and apparatus for extending pcie domain
US7917681B2 (en) Switch and network bridge apparatus
JP5310175B2 (ja) スイッチシステム、及びスイッチシステムの制御方法
US7502370B2 (en) Network controller for obtaining a plurality of network port identifiers in response to load-store transactions from a corresponding plurality of operating system domains within a load-store architecture
US20130151750A1 (en) Multi-root input output virtualization aware switch
JP2008152786A (ja) データ処理システム内で1つまたは複数のエンドポイントの第1の物理機能から第2の物理機能に仮想機能を移行するための方法、プログラム、およびシステム(単一ルート・ステートレス仮想機能の移行のためのシステムおよび方法)
JP2008152787A (ja) データ処理システム内で実行中の通信ファブリックにコンポーネントをホット・プラグするための方法、プログラム、およびシステム(実行中のPCIeファブリックにおける新しいコンポーネントのホット・プラグ/除去のためのシステムおよび方法)
US20050172047A1 (en) Fibre channel controller shareable by a plurality of operating system domains within a load-store architecture
US8185602B2 (en) Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters
JP2015537310A (ja) データ処理システム及びデータ処理方法
WO2021051919A1 (zh) 一种数据转发芯片及服务器
EP3159802B1 (en) Sharing method and device for pcie i/o device and interconnection system
WO2020110895A1 (ja) 通信装置、情報処理システム、および通信方法
US10169279B2 (en) Input/output control device, input/output control system, and input/output control method for conversion of logical address of instruction into local address of device specified in instruction
EP1752877A2 (en) A processing module
JP2013196593A (ja) データ処理装置、データ処理方法及びプログラム
CN116680219A (zh) 主机集群通信系统、方法、设备及存储介质

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: 19890545

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2019890545

Country of ref document: EP

Effective date: 20210630