WO2015079482A1 - I/o制御システム、i/o制御方法およびコンピュータシステム - Google Patents

I/o制御システム、i/o制御方法およびコンピュータシステム Download PDF

Info

Publication number
WO2015079482A1
WO2015079482A1 PCT/JP2013/081736 JP2013081736W WO2015079482A1 WO 2015079482 A1 WO2015079482 A1 WO 2015079482A1 JP 2013081736 W JP2013081736 W JP 2013081736W WO 2015079482 A1 WO2015079482 A1 WO 2015079482A1
Authority
WO
WIPO (PCT)
Prior art keywords
virtual device
tlp
computer
adapter
virtual
Prior art date
Application number
PCT/JP2013/081736
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 PCT/JP2013/081736 priority Critical patent/WO2015079482A1/ja
Publication of WO2015079482A1 publication Critical patent/WO2015079482A1/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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network

Definitions

  • the present invention relates to an I / O control system, an I / O control method, and a computer system.
  • PCI Express (registered trademark, hereinafter referred to as PCIe) has been standardized and widely used as a bus standard for connecting CPUs and peripheral devices inside a computer. In PCIe, it is possible to design a flexible communication topology via multiple bridges by serially communicating packets. In PCIe, Single Root I / O Virtualization (hereinafter referred to as SR-IOV) has been standardized as an extension, and it is now possible to share devices that support SR-IOV among multiple virtual machines.
  • SR-IOV Single Root I / O Virtualization
  • Patent Document 1 discloses "a plurality of computers 1-1 to 1-N (N is a natural number of 2 or more) and a plurality of computers 1".
  • SR-IOV compatible I / O device 6 shared simultaneously from -1 to 1-N and I / O virtualization module 7 connected to multiple computers 1-1 to 1-N via a PCIe bus
  • the I / O virtualization module 7 creates a unique address space in the I / O device 6 in order to share the I / O device 6 among a plurality of computers 1-1 to 1-N ”(paragraph 0026) technology Is disclosed.
  • Patent Document 1 For example, by using the technique disclosed in Patent Document 1, it becomes possible to share an I / O device among a plurality of computers. However, this requires an SR-IOV compatible I / O device and a virtualization module (I / O virtualization bridge, ie, a virtualized PCIe switch in FIG. 10 of Patent Document 1). In addition, since other computers cannot use the I / O devices already provided in each of the plurality of computers, it is necessary to prepare an I / O device for sharing.
  • I / O virtualization bridge ie, a virtualized PCIe switch in FIG. 10 of Patent Document 1
  • an object of the present invention is to enable other computers to use a standard I / O device connected to a standard PCIe switch according to a PCIe basic standard provided in each of a plurality of computers.
  • a computer system is a computer system configured by a plurality of computers each including a virtual device adapter, a target device, and a network adapter connected to a PCIe switch, wherein the virtual device adapter is a virtual device and the target
  • the virtual device adapter receives a first TLP destined for the virtual device from the PCIe switch, and refers to the mapping table to determine the first TLP.
  • the TLP header source and destination are rewritten, and the rewritten first TLP is transmitted to the second computer via the network adapter.
  • the target device rewrites the rewritten first TLP. Receive TLP Characterized in that it.
  • the present invention can also be understood as an I / O control system and an I / O control method that are virtual device adapters.
  • a standard I / O device connected to a standard PCIe switch provided in each of a plurality of computers can be used by another computer.
  • FIG. 18 is a diagram illustrating an example of a configuration of a computer using PCIe. It is a figure which shows the example of a structure of a computer system. It is a figure which shows the example of a structure of a virtual device adapter. It is a figure which shows the example of the mapping relationship of ID number space and physical memory space. It is a figure which shows the example of an I / O domain mapping table. It is a figure which shows the example of the configuration process sequence of a target device. It is a figure which shows the example of the sequence which transmits TLP to a target device. It is a figure which shows the example of the sequence which receives TLP from a target device. It is a figure which shows the example of a structure of the computer system which uses both local and remote.
  • FIG. 1 shows an example of the internal connection configuration of a general computer 1, and the CPU 11 and the root complex (hereinafter referred to as RC) 12, and the memory 13 and the RC 12 are connected by a communication standard different from PCIe,
  • the RC 12 and the PCIe switch 14, and the PCIe switch 14 and the devices 21 and 22 are connected by a communication standard compliant with PCIe.
  • the number of device buses 21 and 22 may be n (n is a natural number of 2 or more).
  • RC 12 is responsible for communication transfer between CPU 11 and memory 13, memory 13 and devices 21, 22 and CPU 11.
  • the PCIe switch 14 includes, for example, an upstream bridge 140 and downstream bridges 141 and 142.
  • the RC switch 12 connected to the upstream bridge 140 is a root, and the devices 21 and 22 connected to the downstream bridges 141 and 142 are leaves.
  • the root side is referred to as upstream
  • the leaf side is referred to as downstream
  • communication is performed using TLP (Transaction Layer Packet) on the communication path between upstream and downstream.
  • TLP Transaction Layer Packet
  • FIG. 2 is a diagram illustrating an example of the configuration of a computer system.
  • “-N” N is a natural number
  • the target devices 21 and 22 that can be used from other computers 1 are particularly referred to as target devices 20. Illustration of the CPU 11, RC 12 and memory 13 of the computer 1 is omitted.
  • Computers 1-1 to 1-3 are equipped with virtual device adapters 15-1 to 15-3 and network adapters (hereinafter referred to as N / W adapters) 16-1 to 16-3.
  • the computers 1-2 and 1-3 include target devices 20-2 and 20-3.
  • the virtual device adapter 15-1 is connected to the target device 20-2 included in the computer 1-2 via the network 2 and virtually exists as a target device downstream of the virtual device adapter 15-1. Behave like. This virtual existence is a virtual device.
  • the virtual device adapters 15-1 to 15-3 are also I / O control systems for controlling I / O. This will be specifically described below.
  • the virtual device adapter 15 and the target device 20 are connected as endpoints of the standard PCIe switch 14.
  • the virtual device adapter 15 has a plurality of virtual devices.
  • the computer 1 holds the address space of the virtual device adapter 15, the virtual device, and the target device 20.
  • the local computer 1-1 uses the target device 20-2 that the remote computer 1-2 has.
  • the configuration unit included in the virtual device adapter 15-2 includes the size of the address space used by the target device 20-2 and the target device 20-2 allocated by the computer 1-2 via the PCIe switch 14-2. Get Bus, Device, Function number (hereinafter referred to as device ID number).
  • the configuration unit included in the virtual device adapter 15-2 configures the target device and allocates a part of the address space allocated to the virtual device to the target device 20-2. Also, a part of the address space allocated to the virtual device is set in the target device 20-2 as an MSI (Message Signaled Interrupt) interrupt destination address.
  • MSI Message Signaled Interrupt
  • I / O domain mapping A table of the NVRAM (Non Volatile RAM) area of the virtual device adapter 15-2 (hereinafter referred to as I / O domain mapping) that shows the range of the address space of the assigned target device 20-2, the MSI interrupt destination address, and the acquired ID number In the table) as downstream I / O domain information.
  • the computer 1-1 When the computer 1-1 starts up, an area that satisfies the address space required by the target device 20-2 is secured in the virtual device included in the virtual device adapter 15-2 by configuration processing. Further, the MSI interrupt destination address of the virtual device included in the virtual device adapter 15-1 is set so as to interrupt the CPU of the computer 1-1.
  • the virtual device adapter 15-1 communicates with the virtual device adapter 15-2 via the network 2, acquires the downstream I / O domain information held in the I / O domain mapping table of the virtual device adapter 15-2, and acquires the virtual device. It is registered as downstream I / O domain information in the I / O domain mapping table of the NVRAM area possessed by the adapter 15-1.
  • the virtual device adapter 15-1 acquires the size of the address space of the target device 20-2 from the acquired downstream I / O domain information and reflects it in the configuration register (hereinafter referred to as CONF_REG) of the virtual device.
  • the virtual device adapter 15-1 registers the range of the virtual device address space, the MSI interrupt destination address, and the ID number as upstream I / O domain information in the I / O domain mapping table.
  • the virtual device adapter 15-2 communicates with the virtual device adapter 15-1 via the network 2, acquires the upstream I / O domain information held in the I / O domain mapping table of the virtual device adapter 15-1, and acquires the virtual device. It is registered as upstream I / O domain information in the I / O domain mapping table in the NVRAM area of the adapter 15-2.
  • the virtual device adapter 15-1 When receiving a TLP from the PCIe switch 14-1, the virtual device adapter 15-1 rewrites the source and destination of the TLP header to the I / O domain of the transfer destination by referring to the I / O domain mapping table, and the TLP Forward.
  • the I / O domain mapping table holds the TLP transfer destination network address and the virtual device adapter 15-2 receive buffer address.
  • the transfer destination is via the network 2, the transmission is started to the N / W adapter 16-1. To transfer the TLP to the remote computer 1-2.
  • the TLP transferred from the local computer 1-1 is written to the reception buffer of the virtual device adapter 15-2.
  • the virtual device adapter 15-2 detects the transferred TLP, the TLP is transferred to the target device 20-2. To do.
  • the virtual device of the virtual device adapter 15-1 and the virtual device adapter 15-2 The address conversion is performed between the target devices 20-2 assigned to the resources of the virtual device that the local computer 1-1 has, and the virtual device adapter that the local computer 1-1 has has the network 2 to the virtual device adapter 15-2 that the remote computer 1-2 has.
  • the target device 20-2 of the remote computer 1-2 can be provided as a virtual device to the local computer 1-1.
  • the same configuration processing is performed for the computer 1-3, and the target device 20-3 of the remote computer 1-3 can be provided as a virtual device to the local computer 1-1 as indicated by the dotted line 32.
  • FIG. 3 is a diagram showing an example of the configuration of the virtual device adapter 15. Since other than the virtual device adapter 15 has already been described, the description thereof is omitted here.
  • the virtual device adapters 15-1 and 15-2 are provided in the computers 1-1 and 1-2, respectively, and are connected to the PCIe switches 14-1 and 14-2.
  • Figure 3 shows an example of a total of two computers 1-1 and 1-2, local and remote, but is not limited to two, and consists of N computers (N is a natural number of 2 or more). it can.
  • Virtual device adapter 15-1 includes data molding / transfer unit 8-1, configuration unit 9-1, NVRAM 7-1, device function 4-1, virtual devices 51-1 and 53-1, and communication buffer 6-1. Prepare.
  • FIG. 3 shows two virtual devices 51-1 and 53-1, but is not limited to two, and can be configured with M (M is a natural number).
  • M is a natural number.
  • Each of the device function 4-1 and the virtual devices 51-1 and 53-1 includes CONF_REGs 41-1, 52-1 and 54-1 for conforming to the PCIe in the computer 1-1.
  • the communication buffer 6-1 includes a transmission buffer area 61-1 and a reception buffer area 62-1.
  • the virtual device adapter 15-2 has the same configuration as the virtual device adapter 15-1.
  • the configuration holding area 72-2 is an area for temporarily saving the configuration of the target device 20-2, and the use operation will be described later with reference to FIG. Since the computer 1-1 does not have a target device, the configuration holding area 72-1 is not used, but the virtual device adapters 15-1 and 15-2 have the same structure, and thus the configuration holding area 72-1 is provided. .
  • the data shaping / transfer unit 8-1 has a function of transferring the TLP issued by the RC-12-1 to the transmission buffer 61-1. Also, the data shaping / transfer unit 8-1 refers to the I / O domain mapping table 71-1 held in the NVRAM IV 7-1, and upstream I / O domain information and downstream I / O as TLP transfer destination information. It has a function of acquiring domain information and rewriting transmission source information and transmission destination information held in a TLP header. The upstream I / O domain information and the downstream I / O domain information will be described later with reference to FIG.
  • the data shaping / transferring unit 8-1 transfers the TLP to the transmission buffer 61-1, in order to transfer the TLP to the virtual device adapter 15-2 included in the computer 1-2 via the network 2. Further, refer to the I / O domain mapping table 71-1 to acquire the transmission destination network address and the transmission destination buffer address so that the transmission destination virtual device adapter 15-2 includes the reception buffer 62-2. It has a function of notifying the N / W adapter 16-1 of the transmission destination network address, the transmission destination buffer address, and the address of the transmission buffer 61-1, and giving a transmission activation.
  • the data shaping / transfer unit 8-2 included in the computer 1-2 has a function of acquiring the TLP transferred to the reception buffer 62-2 and transferring it to the target device 20-2, and the target device 20- 2 has a function for performing the processing described in the data shaping / transfer unit 15-1 on the TLP issued by 2 and transferring the TLP to the virtual device adapter 15-1 included in the computer 1-1 via the network 2.
  • the device function 4-1 includes a function for receiving an instruction from the CPU 11 to the virtual device adapter 15-1 and issuing an instruction to the configuration unit 9-1, and a device included in the virtual device adapter 15-2 via the network 2 It has a function of communicating with the function 4-2, acquiring upstream I / O domain information from the I / O domain mapping table 71-2 included in the virtual device adapter 15-2, and notifying the configuration unit 9-1.
  • the virtual device 51-1 has a function of notifying the computer 1-1 of the address range required by the virtual device 51-1. This function secures an area that satisfies the address space required by the target device 20-2 in the virtual device 51-1 through configuration processing when the computer 1-1 is started. The same applies to other virtual devices such as the virtual device 53-1.
  • the configuration unit 9-2 of the computer 1-2 receives the size of the address space used by the target device 20-2 and the target device 20-2 allocated by the computer 1-2 via the PCIe switch 14-2. It has a function of acquiring an ID number and a function of configuring the target device 20-2 and allocating a part of the address space allocated to the virtual device 51-2 to the target device 20-2. Further, a part of the address space allocated to the virtual device 51-2 is set in the target device 20-2 as an MSI interrupt destination address. Register the range of the address space of the assigned target device 20-2, the MSI interrupt destination address, and the acquired ID number as downstream I / O domain information in the I / O domain mapping table 71-2 of the virtual device adapter 15-2 It has the function to do. The configuration unit 9-2 has a function of registering the upstream I / O domain information notified from the device function 4-2 in the I / O domain mapping table 71-2 provided in the virtual device adapter 15-2.
  • the configuration unit 9-1 of the computer 1-1 has a function of registering the downstream I / O domain information notified from the device function 4-1 in the I / O domain mapping table 71-1 included in the virtual device adapter 15-1.
  • the size of the address space of the target device is acquired from the downstream I / O domain information acquired by referring to the I / O domain mapping table 71-1, and reflected in the CONF_REG 52-1 of the virtual device 51-1. It has a function.
  • the configuration unit 9-1 sends the virtual device 52-1 address space range, MSI interrupt destination address, and ID number to the I / O domain mapping table 71-1 included in the virtual device adapter 15-1 in the upstream I It has a function to register as / O domain information.
  • FIG. 4 is a diagram showing an example of the I / O domain relationship of each computer 1.
  • each of the computers 1-1 to 1-3 holds I / O domains 17-1 to 17-3.
  • Each of the I / O domains 17-1 to 17-3 has an ID number space 170-1 to 170-3 and a physical memory space 173-1 to 173 that hold ID number resources including a bus number, a device number, and a function number. -3.
  • the ID number space 170-1 holds the maps 171-1 and 172-1 of the virtual devices 51-1 and 53-1, and the ID number spaces 171-2 and 171-3 are the target devices 20-2 and 20- 3 maps 171-2 and 172-3 are held.
  • the physical memory space 173-1 holds the maps 174-1 and 177-1 of the virtual devices 51-1 and 53-1, and the physical memory spaces 173-1 and 173-3 are respectively virtual devices 51-2 and 53-1. Holds 3 maps 174-2, 177-3.
  • the maps 174-2, 174-3 of the virtual devices 51-2, 53-3 held by the computers 1-2, 1-3 are the address ranges 176-2, 179-3 and MSI interrupt destination addresses 175-2 and 178-3 of the target devices 20-2 and 20-3.
  • the maps 174-1 and 177-1 of the virtual devices 51-1 and 53-1 held by the computer 1-1 include address ranges 176-1 and 179-1 assigned to the target devices 20-2 and 20-3.
  • the virtual device adapters 15-1 to 15-3 hold I / O domain mapping tables 71-1 to 71-3 to map between the I / O domains 17-1 to 17-3.
  • the virtual device adapters 15-2 and 15-3 acquire the ID numbers of the target devices 20-2 and 20-3.
  • the virtual device adapters 15-2 and 15-3 acquire the memory size used by the target devices 20-2 and 20-3, and the physical memory space 174-2 allocated to the virtual devices 51-2 and 51-3, From 177-3, physical memory spaces 176-2 and 179-3 and MSI interrupt destination addresses 175-2 and 178-3 satisfying the memory size used for the target devices 20-2 and 20-3 are allocated.
  • the virtual device adapters 15-2 and 15-3 reflect the memory size used by the target devices 20-2 and 20-3 on the CONF_REGs 52-2 and 52-3 of the virtual devices 51-2 and 51-3.
  • the virtual device adapter 15-1 acquires the ID numbers of the virtual devices 51-1 and 53-1.
  • the virtual device adapter 15-1 reflects the CONF_REGs 52-1 and 54-1 of the virtual devices 51-1 and 53-1 based on the address range used by the target devices 20-2 and 20-3.
  • the virtual device adapters 15-2 and 15-3 map the ID numbers of the target devices 20-2 and 20-3 to the ID numbers of the virtual devices 51-1 and 53-1 included in the virtual device adapter 15-1,
  • the physical memory spaces 176-2 and 179-3 allocated to the target devices 20-2 and 20-3 are mapped to the virtual devices 51-1 and 53-1 included in the virtual device adapter 15-1.
  • the virtual device adapter 15-1 maps the ID numbers of the virtual devices 51-1 and 53-1 to the ID numbers of the target devices 20-2 and 20-3, and the virtual device adapter 15-1 , 53-1 are mapped to the physical memory spaces 176-2 and 179-3 of the target devices 20-2 and 20-3.
  • FIG. 5 is a diagram showing an example of the I / O domain mapping table 71.
  • the I / O domain mapping tables 71-1 and 71-2 shown in FIG. 5 are respectively held by the virtual device adapters 15-1 and 15-2, and hold mapping information of ID numbers, physical memory areas, and interrupt destination addresses. .
  • the number of I / O domain mapping tables 71 is not limited to two, and there are as many virtual device adapters 15 as there are.
  • the I / O domain mapping table 71-1 provides the upstream I / O domain information 75-1, the downstream I / O domain information 76-1, the network address 77-1, Device adapter receive buffer address 78-1 is provided.
  • the items in the I / O domain mapping table 71-2 of the virtual device adapter 15-2 are the same as those in the I / O domain mapping table 71-1, and the horizontal value sequence in FIG. Indicates.
  • One entry is information for mapping one target device 20.
  • the computer 1-2 includes a target device 20-2 and a virtual device adapter 15-2, and the virtual device adapter 15-2 includes an I / O domain mapping table 71-2.
  • the computer 1-1 includes a virtual device adapter 15-1, and the virtual device adapter 15-1 includes an I / O domain mapping table 71-1.
  • I / O domain mapping table 71-1 included in the virtual device adapter 15-1 1 in the number 74-1 of the entry 73-1 in the upstream I / O domain information 75-1 is the RC ID number 751-1 ( B UR, D UR, F UR ), 5 pieces of information about the virtual device 51-1 i.e.
  • the device ID number 752-1 is (B UD1, D UD1, F UD1), a memory upper limit 753-1 is (X UA1), memory lower limit 754-1 is (X UA1), the interrupt destination address 755-1 is (Z UA1), constituted by the position 756-1 is (T U1).
  • the number 74-1 of the entry 73-1 in the downstream I / O domain information 76-1 is the RC ID number 761-1 (B LR , D LR , F LR ), and five for the target device 20-2.
  • the device ID number 762-1 is (B LD1, D LD1, F LD1)
  • the memory upper limit 763-1 is (Y LA1)
  • the memory limit value 764-1 is (X LA1)
  • the interrupt destination address 765-1 Is (Z LA1 ) and position 766-1 is (T L1 ).
  • the value of the RC ID number 761-1 of the downstream I / O domain information 76-1 may be, for example, the ID number of the virtual device adapter 15-2.
  • the target device 20-2 can be used by either RC-12-2 or virtual device adapter 15-2. If virtual device adapter 15-2 is used, the target device From the perspective of 20-2, virtual device adapter 15-2 replaces RC-12-2. In this case, the value of the RC ID number 761-1 can be used as the ID number of the virtual device adapter 15-2.
  • Position 756-1 and position 766-1 are shown remotely or locally and represent the mapping destination position. For example, if the position 756-1 in the upstream I / O domain information 75-1 is local and the position 766-1 in the downstream I / O domain information 76-1 is remote, the upstream I / O domain information 75-1 When performing address translation from the I / O domain information 76-1 to the downstream I / O domain information 76-1, the network address 77-1 and the virtual device adapter reception buffer address 78-1 are referred to.
  • the data molding / transfer unit 8-1 transfers the TLP from the RC 12-1 to the target device 20-2, the TLP transmission source and transmission destination are converted from the upstream I / O domain to the downstream I / O domain.
  • the data shaping / forwarding unit 8-1 refers to the I / O domain mapping table 71-1 and sets the transmission source ID number of the TLP header in the upstream I / O domain information 75-1.
  • the data shaping / forwarding unit 8-1 refers to the I / O domain mapping table 71-1 and sets the source ID number of the TLP header in the downstream I / O domain information 76-1.
  • the I / O domain mapping table 71-2 includes an entry having the same content as the entry whose number 74-1 of the entry 73-1 of the I / O domain mapping table 71-1 is 1.
  • the data shaping / forwarding unit 8-2 refers to the I / O domain mapping table 71-2 and sets the destination ID number of the TLP header in the downstream I / O domain information 76-2.
  • the TLP address issued by the target device 20-2 indicates the physical memory space 176-2 used by the target device.
  • the physical memory space 176-2 is a part of the physical memory space 174-2 of the virtual device 51-2, and the TLP issued by the target device 20-2 is transferred toward the virtual device 51-1.
  • the TLP address indicates an interrupt destination address assigned in a part of the physical memory space of the virtual device 51-2.
  • the MSI issued by the target device 20-2 is transferred toward the virtual device 51-2.
  • the data shaping / forwarding unit 8-2 refers to the TLP I / O domain mapping table 71-2, and determines the transmission source ID number of the TLP header as the virtual device ID number in the upstream I / O domain information 75-2 (B UD1, D UD1, rewriting the F UD1), rewrites the destination address to the interrupt destination address of the upstream I / O domain information 75-2.
  • FIG. 6 is a diagram showing an example of a configuration processing sequence of the target device 20-2.
  • the CPU 11-1 and the virtualization adapter 15-1 are provided in the computer 1-1, and the CPU 11-2, the virtualization adapter 15-2, and the target device 20-2 are provided in the computer 1-2.
  • the computer 1-1 and the computer 1-2 are connected via the network 2 and can communicate with each other.
  • CPU 11-1 transmits a connection request 111-1 to CPU 11-2.
  • CPU 11-2 transmits connection permission 111-2 to CPU 11-1.
  • CPU 11-1 sends a request 112-1 for the receive buffer address value of virtual device adapter 15-2 to CPU 11-2.
  • the CPU 11-2 transmits a reply 112-2 of the reception buffer address value of the virtual device adapter 15-2 to the CPU 11-1.
  • the CPU 11-1 registers the reception buffer address of the connection destination virtual device adapter 15-2 and the connection destination network address 113-1 in the I / O domain mapping table 71-1 included in the virtual device adapter 15-1.
  • the virtual device adapter 15-1 transmits a registration completion notice 151-1 to the CPU 11-1.
  • the CPU 11-1 transmits a notification 114-1 of the reception buffer address registration completion of the virtual device adapter 15-2 to the CPU 11-2.
  • CPU 11-2 sends a request 113-2 for the receive buffer address value of virtual device adapter 15-1 to CPU 11-1.
  • the CPU 11-1 transmits a reply 115-1 of the reception buffer address value of the virtual device adapter 15-1 to the CPU 11-2.
  • the CPU 11-2 registers 114-2 in the I / O domain mapping table 71-2 of the virtual device adapter 15-2 with the reception buffer address and the connection destination network address of the connection destination virtual device adapter 15-1.
  • the virtual device adapter 15-2 transmits a registration completion notification 151-2 to the CPU 11-2.
  • the CPU 11-2 transmits a notification 115-2 of the reception buffer address registration completion of the virtual device adapter 15-1 to the CPU 11-1.
  • the CPU 11-1 sends a request 116-1 for the target device list to the CPU 11-2.
  • the CPU 11-2 returns the target device list 116-2 to the CPU 11-1.
  • the CPU 11-1 transmits a use request 117-1 for the target device 20-2 to the CPU 11-2.
  • the CPU 11-2 issues an instruction 117-2 for saving the configuration of the target device 20-2 to the virtual device adapter 15-2.
  • the virtual device adapter 15-2 acquires the configuration of the target device 20-2 and saves it 152-2 in the configuration holding area 72-2.
  • the virtual device adapter 15-2 sends a configuration saving completion notification 153-2 to the CPU 11-2.
  • the CPU 11-2 issues an instruction 118-2 for configuring the target device 20-2 to the virtual device adapter 15-2.
  • the virtual device adapter 15-2 configures the target device 20-2 154-2 and 201-2, and the acquired ID number, the allocated memory space, and the allocated interrupt destination address are displayed in the I / O domain mapping table 71-2. Is registered in the downstream I / O domain information 76-2, and the address range assigned to the target device 20-2 is reflected 155-2 in the CONF_REG 52-2 of the virtual device 51-2.
  • the virtual device adapter 15-2 transmits a configuration completion notification 156-2 to the CPU 11-2.
  • CPU 11-2 sends permission 119-2 for target device 20-2 to CPU 11-1.
  • the CPU 11-1 issues an instruction 118-1 for acquiring the downstream I / O domain information 76-2 held by the virtual device adapter 15-2 to the virtual device adapter 15-1.
  • the virtual device adapter 15-1 requests the downstream I / O domain information 76-2 from the virtual device adapter 15-2 152-1.
  • the virtual device adapter 15-2 transmits a reply 157-2 of the downstream I / O domain information 76-2.
  • the virtual device adapter 15-1 acquires the downstream I / O domain information 76-2, it registers in the downstream I / O domain information 76-1 of the I / O domain mapping table 71-1, and acquires the acquired downstream I / O domain.
  • the memory size is acquired from the address range used by the target device 20-2, and reflected to the virtual device 51-1 and reflected 153-1.
  • the virtual device adapter 15-1 transmits a downstream I / O domain information registration completion notification 154-1 to the virtual device adapter 15-2.
  • the virtual device adapter 15-1 acquires the ID number, memory space, and interrupt destination address of the virtual device 51-1, and registers 155-1 in the upstream I / O domain information 75-1.
  • the virtual device adapter 15-2 requests 158-2 the upstream I / O domain information 75-1 from the virtual device adapter 15-1.
  • the virtual device adapter 15-1 transmits a reply 156-1 of the upstream I / O domain information 75-1.
  • the virtual device adapter 15-2 acquires the upstream I / O domain information 75-1, it registers 159-2 in the upstream I / O domain information 75-2 of the I / O domain mapping table 71-2.
  • the virtual device adapter 15-2 transmits a notification 160-2 of registration completion of the upstream I / O domain information.
  • the virtual device adapter 15-2 sends the registration completion notification 161-2 of the I / O domain mapping table 71-2 to the CPU 11-2.
  • the virtual device adapter 15-1 transmits a registration completion notification 157-1 of the I / O domain mapping table 71-1 to the CPU 11-1.
  • the CPU 11-2 transmits the registration completion notification 120-2 of the I / O domain mapping table 71-2 to the CPU 11-1.
  • the target device 20-2 of the computer 1-1 to the computer 1-2 can be used.
  • the CPU 11-1 transmits the use cancellation 119-1 of the target device 20-2 to the CPU 11-2.
  • the CPU 11-2 issues an instruction 121-2 for restoring the configuration of the target device 20-2 to the virtual device adapter 15-2.
  • the virtual device adapter 15-2 sends the configuration 152-2 stored in the configuration holding area 72-2 to the target device 20-2 and returns 162-2.
  • the virtual device adapter 15-2 sends a configuration return completion notice 163-2 to the CPU 11-2, and the CPU 11-2 sends a use release completion notice 122-2 to the CPU 11-1.
  • FIG. 7 is a diagram showing an example of an operation sequence for transmitting the TLP from the RC 12-1 to the target device 20-2 via the network 2.
  • RC IV 12-1 issues a TLP and transfers 121-1 to the data shaping / transfer unit 8-1.
  • the data molding / transfer unit 8-1 refers to the I / O domain mapping table 71-1 and rewrites 81-1, rewrites the TLP header, transfers it to the transmission buffer 61-1 and transfers it to the N / W adapter 16-1.
  • the address 62-2 is notified and the transmission activation 83-1 is performed.
  • the N / W adapter 16-1 reads TLP 165-1 from the transmission buffer 61-1, and transmits 166-1 to the N / W adapter 16-2 via the network 2.
  • the N / W adapter 16-2 writes the received TLP to the receive buffer 62-2 165-2.
  • the data shaping / transfer unit 8-2 monitors the reception buffer 62-2, reads the TLP received from the reception buffer 62-2, and transfers 83-2 the TLP to the target device 20-2.
  • FIG. 8 is a diagram showing an example of an operation sequence for transmitting TLP from the target 20-2 to the RC 12-1 via the network 2.
  • the target 20-2 issues a TLP and transfers 201-2 to the data shaping / transfer unit 8-2.
  • the data molding / transfer unit 8-2 refers to the I / O domain mapping table 71-2, 83-2, rewrites the TLP header, transfers 84-2 to the transmission buffer 61-2, and transfers it to the N / W adapter 16-2.
  • the address of the transmission buffer 61-2, the transmission destination network address registered in the network address 77-2, and the reception buffer included in the transmission destination virtual device adapter 15-1 registered in the virtual device adapter reception buffer address 78-2 Notify the address of 62-1 and start transmission 85-2.
  • the N / W adapter 16-2 reads TLP 166-2 from the transmission buffer 61-2 and transmits 166-2 to the N / W adapter 16-1 via the network 2.
  • N / W adapter 16-1 writes the received TLP to the reception buffer 62-1 167-1.
  • the data shaping / transferring unit 8-1 monitors the reception buffer 62-1 and reads the TLP received from the reception buffer 62-1 84-1 and transfers the TLP 86-1 to the RC 12-1.
  • FIG. 9 is a diagram showing an example of a configuration using both local and remote.
  • the virtual device adapter 15-1 included in the computer 1-1 includes the target device B 20-20 included in the computer 1-2 and the target device C 20-3 included in the computer 1-3 downstream of the virtual device adapter 15-1. It behaves as it exists as virtual devices 51-1 and 53-1. Furthermore, the virtual device adapter 15-1 provides the resources of the target device A-20-1 to the computers 1-2 and 1-3.
  • the virtual device adapter 15-2 included in the computer 1-2 includes a target device A 20-1 included in the computer 1-1 and a target device D 20-4 included in the computer 1-4. It behaves as if it exists as a virtual device 51-2, 53-2 downstream. Furthermore, the virtual device adapter 15-2 provides the resources of the target device B 20-2 to the computers 1-1 and 1-3.
  • the virtual device adapter 15-3 included in the computer 1-3 is the same as the virtual device adapters 15-1 and 15-2, but the target device A 20-1 is shared by the virtual devices 51-2 and 51-3.
  • the target device B 20-2 may be shared by the virtual devices 51-1 and 53-3.
  • the target device may have any function as long as it complies with PCIe.
  • GPGPU General-purpose computing-on-graphics-processing-units
  • co-processors sub-processors
  • the application device of the simulation program in the distributed GPGPU cluster can be reduced because the target device included in a large number of remote computers appears to be virtually local to the application.
  • the target device 20-2 does not need to be SR-IOV compatible, does not need an SR-IOV compatible PCIe switch, and the target device 20-2 can be connected to computers 1-1, 1-2, etc. Can be shared. Further, it is not necessary to prepare a dedicated device for sharing as the target device 20-2, and the device of the computer 1-2 can be used. Then, a plurality of target devices 20 of a plurality of computers 1 can be used with each other.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

 PCIeスイッチに接続された仮想デバイスアダプタとターゲットデバイスとネットワークアダプタをそれぞれ備えた複数のコンピュータにより構成されたコンピュータシステムであって、前記仮想デバイスアダプタは仮想デバイスと前記ターゲットデバイスとのマッピングテーブルを備え、第1の前記コンピュータにおいて、前記仮想デバイスアダプタは前記仮想デバイスを宛先とする第1のTLPを前記PCIeスイッチから受信し、前記マッピングテーブルを参照して前記第1のTLPのヘッダの送信元と送信先を書き換え、前記ネットワークアダプタ経由で第2の前記コンピュータへ前記書き換えた第1のTLPを送信し、前記第2のコンピュータにおいて、前記ターゲットデバイスが前記書き換えた第1のTLPを受信する。

Description

I/O制御システム、I/O制御方法およびコンピュータシステム
 本発明はI/O制御システム、I/O制御方法およびコンピュータシステムに関するものである。
 コンピュータの内部でCPUと周辺装置を接続するバス規格としてPCI Express(登録商標、以下PCIeとする)が標準化され、広く使用されている。PCIeではパケットをシリアル通信することにより、複数のブリッジを介した柔軟な通信トポロジの設計を可能としている。さらに、PCIeではSingle Root I/O Virtualization(以下、SR-IOVとする)が拡張として規格化され、SR-IOVに対応したデバイスを複数の仮想マシンで共有することも可能となった。
 また、PCIeを使用して、より柔軟な構成を可能にするために、例えば特許文献1には「複数のコンピュータ1-1~1-N(Nは2以上の自然数)と、複数のコンピュータ1-1~1-Nから同時に共有されるSR-IOV対応のI/Oデバイス6と、複数のコンピュータ1-1~1-NとPCIeバスで接続されるI/O仮想化モジュール7とを含む。I/O仮想化モジュール7は、I/Oデバイス6を複数のコンピュータ1-1~1-Nで共有するためにI/Oデバイス6に独自のアドレス空間を作成する」(段落0026)技術が開示されている。
国際公開第2009/025381号
 例えば特許文献1に開示された技術を使用することによりI/Oデバイスを複数のコンピュータで共用することは可能になる。しかし、このためにはSR-IOV対応のI/Oデバイスと仮想化モジュール(特許文献1の図10のI/O仮想化ブリッジすなわち仮想化PCIeスイッチ)が必要となる。また、複数のコンピュータそれぞれが既に備えたI/Oデバイスを他のコンピュータが利用することはできないため、共有するためのI/Oデバイスを用意する必要がある。
 そこで、本発明の目的は、複数のコンピュータが各々備えたPCIeの基本規格で標準のPCIeスイッチに接続された標準のI/Oデバイスを他のコンピュータが使用可能とすることにある。
 本発明にかかるコンピュータシステムは、PCIeスイッチに接続された仮想デバイスアダプタとターゲットデバイスとネットワークアダプタをそれぞれ備えた複数のコンピュータにより構成されたコンピュータシステムであって、 前記仮想デバイスアダプタは仮想デバイスと前記ターゲットデバイスとのマッピングテーブルを備え、第1の前記コンピュータにおいて、前記仮想デバイスアダプタは前記仮想デバイスを宛先とする第1のTLPを前記PCIeスイッチから受信し、前記マッピングテーブルを参照して前記第1のTLPのヘッダの送信元と送信先を書き換え、前記ネットワークアダプタ経由で第2の前記コンピュータへ前記書き換えた第1のTLPを送信し、前記第2のコンピュータにおいて、前記ターゲットデバイスが前記書き換えた第1のTLPを受信することを特徴とする。
 また、本発明は仮想デバイスアダプタであるI/O制御システムおよびI/O制御方法としても把握される。
 本発明によれば、複数のコンピュータが各々備えた標準のPCIeスイッチに接続された標準のI/Oデバイスを他のコンピュータが使用可能となる。
PCIeを使用したコンピュータの構成の例を示す図である。 コンピュータシステムの構成の例を示す図である。 仮想デバイスアダプタの構成の例を示す図である。 ID番号空間と物理メモリ空間のマッピング関係の例を示す図である。 I/Oドメインマッピングテーブルの例を示す図である。 ターゲットデバイスのコンフィグレーション処理シーケンスの例を示す図である。 TLPをターゲットデバイスへ送信するシーケンスの例を示す図である。 TLPをターゲットデバイスから受信するシーケンスの例を示す図である。 ローカルとリモートを兼用するコンピュータシステムの構成の例を示す図である。
 以下にI/O制御システム、I/O制御方法およびコンピュータシステムの好ましい実施形態について、図面を参照して詳細に説明する。
 まず、PCIeを使用したコンピュータの構成について説明する。図1は一般的なコンピュータ1の内部の接続構成の例を表し、CPU 11とルートコンプレックス(以下、RCとする)12、及びメモリ13とRC 12は、PCIeとは異なる通信規格で接続され、RC 12とPCIeスイッチ14、及びPCIeスイッチ14とデバイス 21、22は、PCIeに準拠した通信規格で接続される。ここで、デイバス21、22はn個(nは2以上の自然数)であってもよい。
 RC 12は、CPU 11とメモリ13、メモリ13とデバイス 21、22とCPU11の間の通信転送を担う。PCIeスイッチ14は、例えば上流ブリッジ140下流ブリッジ141、142を備え、上流ブリッジ140に接続されたRC 12をルートとし、下流ブリッジ141、142に接続されたデバイス21、22をリーフとした木構造のPCIeに準拠した通信経路をコンピュータ1に提供する。この通信経路において、ルート側を上流、リーフ側を下流と呼び、上流と下流の間の通信経路でTLP(Transaction Layer Packet)を用いて相互に通信が行われる。
 次に、複数のコンピュータにより構成されるコンピュータシステムの構成について説明する。図2はコンピュータシステムの構成の例を示す図である。以下では、異なるコンピュータ1の同じ構成を区別して示すために「-N」(Nは自然数)を符号に付ける。また、図1のデバイス21、22の中で他のコンピュータ1から使用可能とする対象のデバイス21、22を特にターゲットデバイス20とする。コンピュータ1のCPU11、RC12、メモリ13の図示は省略する。
 コンピュータ1-1~1-3は仮想デバイスアダプタ15-1~15-3とネットワークアダプタ(以下、N/Wアダプタとする)16-1~16-3を備える。コンピュータ1-2、1-3はターゲットデバイス20-2、20-3を備える。仮想デバイスアダプタ15-1は破線31で示すように、ネットワーク2を介してコンピュータ1-2が備えるターゲットデバイス20-2に接続し、仮想デバイスアダプタ15-1の下流にターゲットデバイスとして仮想的に存在するように振舞う。この仮想的な存在が仮想デバイスである。なお、仮想デバイスアダプタ15-1~15-3はI/Oを制御するためI/O制御システムでもある。以下、具体的に説明する。
 仮想デバイスアダプタ15及びターゲットデバイス20は、標準のPCIeスイッチ14のエンドポイントとして接続される。仮想デバイスアダプタ15は複数の仮想デバイスを有する。仮想デバイスアダプタ15、仮想デバイス、及びターゲットデバイス20のアドレス空間は、コンピュータ1が保持する。ローカルのコンピュータ1-1がリモートのコンピュータ1-2が有するターゲットデバイス20-2を使用する。
 コンピュータ1-2の起動時に、コンフィグレーション処理によって、仮想デバイスアダプタ15-2が有する仮想デバイスに、ターゲットデバイス20-2が必要とするアドレス空間を満たす領域を確保する。仮想デバイスアダプタ15-2の有するコンフィグレーション部は、PCIeスイッチ14-2を介して、ターゲットデバイス20-2が使用するアドレス空間のサイズ、及びコンピュータ1-2によって割り振られたターゲットデバイス20-2のBus、 Device、 Function番号(以下、デバイスID番号とする)を取得する。仮想デバイスアダプタ15-2の有するコンフィグレーション部は、ターゲットデバイスをコンフィグレーションし、仮想デバイスに割り振られたアドレス空間の一部をターゲットデバイス20-2に割り当てる。又、仮想デバイスに割り振られたアドレス空間の一部をMSI(Message Signaled Interrupt)割り込み先アドレスとしてターゲットデバイス20-2に設定する。割り当てたターゲットデバイス20-2のアドレス空間の範囲と、MSI割り込み先アドレスと、取得したID番号を、仮想デバイスアダプタ15-2の有するNVRAM(Non Volatile RAM)領域のテーブル(以下I/Oドメインマッピングテーブルとする)に下流I/Oドメイン情報として登録する。
 コンピュータ1-1の起動時に、コンフィグレーション処理によって、仮想デバイスアダプタ15-2が有する仮想デバイスに、ターゲットデバイス20-2が必要とするアドレス空間を満たす領域を確保する。また、仮想デバイスアダプタ15-1の有する仮想デバイスのMSI割り込み先アドレスは、コンピュータ1-1のCPUに割り込むように設定される。仮想デバイスアダプタ15-1は仮想デバイスアダプタ15-2とネットワーク2を介して通信し、仮想デバイスアダプタ15-2のI/Oドメインマッピングテーブルが保持する下流I/Oドメイン情報を取得し、仮想デバイスアダプタ15-1の有するNVRAM領域のI/Oドメインマッピングテーブルに下流I/Oドメイン情報として登録する。
 仮想デバイスアダプタ15-1は、取得した下流I/Oドメイン情報から、ターゲットデバイス20-2のアドレス空間のサイズを取得し、仮想デバイスの有するコンフィグレーションレジスタ(以下、CONF_REGとする)に反映する。仮想デバイスアダプタ15-1は、仮想デバイスのアドレス空間の範囲とMSI割り込み先アドレスとID番号を、I/Oドメインマッピングテーブルに上流I/Oドメイン情報として登録する。仮想デバイスアダプタ15-2は仮想デバイスアダプタ15-1とネットワーク2を介して通信し、仮想デバイスアダプタ15-1のI/Oドメインマッピングテーブルが保持する上流I/Oドメイン情報を取得し、仮想デバイスアダプタ15-2の有するNVRAM領域のI/Oドメインマッピングテーブルに上流I/Oドメイン情報として登録する。
 仮想デバイスアダプタ15-1は、PCIeスイッチ14-1からTLPを受信すると、TLPヘッダの送信元、送信先をI/Oドメインマッピングテーブルを参照して、転送先のI/Oドメインに書き換え、TLPを転送する。I/Oドメインマッピングテーブルは、TLPの転送先ネットワークアドレスや仮想デバイスアダプタ15-2の受信バッファアドレスを保持しており、転送先がネットワーク2を介する場合、N/Wアダプタ16-1に送信起動をかけてTLPをリモートのコンピュータ1-2に転送する。
 ローカルのコンピュータ1-1から転送されたTLPは、仮想デバイスアダプタ15-2の受信バッファに書き込まれ、仮想デバイスアダプタ15-2は転送されたTLPを検知すると、TLPをターゲットデバイス20-2に転送する。
 仮想デバイスアダプタ15-1が有するI/Oドメインマッピングテーブル、仮想デバイスアダプタ15-2が有するI/Oドメインマッピングテーブルによって、仮想デバイスアダプタ15-1が有する仮想デバイスと、仮想デバイスアダプタ15-2が有する仮想デバイスのリソースに割り当てたターゲットデバイス20-2間をアドレス変換し、ローカルのコンピュータ1-1が有する仮想デバイスアダプタが、リモートのコンピュータ1-2が有する仮想デバイスアダプタ15-2にネットワーク2を介して接続し、リモートのコンピュータ1-2が有するターゲットデバイス20-2をローカルのコンピュータ1-1に仮想デバイスとして提供することができる。
 コンピュータ1-3に関しても同様のコンフィグレーション処理を行い、点線32に示すようにリモートのコンピュータ1-3が有するターゲットデバイス20-3をローカルのコンピュータ1-1に仮想デバイスとして提供することができる。
 次に、仮想デバイスアダプタ15の構成を説明する。図3は仮想デバイスアダプタ15の構成の例を示す図である。仮想デバイスアダプタ15以外は既に説明したため、ここでは説明を省略する。仮想デバイスアダプタ15-1、15-2はコンピュータ1-1、1-2のそれぞれに備えられ、PCIeスイッチ14-1、14-2に接続される。図3ではコンピュータ1-1、1-2のローカルとリモートの合計2台の例を示すが、2台に限定されるものではなく、N台(Nは2以上の自然数)のコンピュータ1で構成できる。仮想デバイスアダプタ15-1はデータ成型/転送部8-1とコンフィグレーション部9-1とNVRAM 7-1とデバイス機能4-1と仮想デバイス51-1、53-1と通信バッファ6-1を備える。
 図3では仮想デバイス51-1、53-1の2個を示すが、2個に限定されるものではなく、M個(Mは自然数)で構成できる。デバイス機能4-1と仮想デバイス51-1、53-1のそれぞれはコンピュータ1-1内のPCIeに準拠するためのCONF_REG 41-1、52-1、54-1を備える。また、通信バッファ6-1は送信バッファ領域61-1と受信バッファ領域62-1を含む。仮想デバイスアダプタ15-2も仮想デバイスアダプタ15-1と同じ構成を備える。
 コンフィグレーション保持領域72-2はターゲットデバイス20-2のコンフィグレーションを一時的に退避する領域であり、図6を用いてその使用動作を後で説明する。コンピュータ1-1にはターゲットデバイスが無いため、コンフィグレーション保持領域72-1を使用しないが、仮想デバイスアダプタ15-1、15-2は同じ構造であるため、コンフィグレーション保持領域72-1を備える。
 データ成型/転送部8-1は、RC 12-1が発行したTLPを送信バッファ61-1に転送する機能を有する。また、データ成型/転送部8-1は、NVRAM 7-1が保持するI/Oドメインマッピングテーブル71-1を参照し、TLPの転送先情報としての上流I/Oドメイン情報と下流I/Oドメイン情報を取得し、TLPのヘッダが保持する送信元情報と送信先情報を書き換える機能を有する。上流I/Oドメイン情報と下流I/Oドメイン情報については図5を用いて後で説明する。そして、データ成型/転送部8-1は、TLPをネットワーク2経由でコンピュータ1-2が備える仮想デバイスアダプタ15-2に転送するために、TLPを送信バッファ61-1に転送する。さらに、転送先の仮想デバイスアダプタ15-2が備える受信バッファ62-2へ送信するように、I/Oドメインマッピングテーブル71-1を参照し、送信先ネットワークアドレスと送信先バッファアドレスを取得してN/Wアダプタ16-1に送信先ネットワークアドレスと送信先バッファアドレスと送信バッファ61-1のアドレスを通知し、送信起動を与える機能を有する。
 この送信に対し、コンピュータ1-2が備えるデータ成型/転送部8-2は、受信バッファ62-2に転送されたTLPを取得してターゲットデバイス20-2に転送する機能と、ターゲットデバイス20-2が発行したTLPに対してデータ成型/転送部15-1で説明した処理を行い、TLPをネットワーク2経由でコンピュータ1-1が備える仮想デバイスアダプタ15-1に転送するための機能を有する。
 デバイス機能4-1は、仮想デバイスアダプタ15-1に対するCPU 11からの命令を受信してコンフィグレーション部9-1に命令を発行する機能と、ネットワーク2経由で仮想デバイスアダプタ15-2が備えるデバイス機能4-2と通信し、仮想デバイスアダプタ15-2が備えるI/Oドメインマッピングテーブル71-2から上流I/Oドメイン情報を取得し、コンフィグレーション部9-1に通知する機能を有する。
 仮想デバイス51-1はコンピュータ1-1に対して、仮想デバイス51-1が必要とするアドレス範囲を通知する機能を有する。この機能は、コンピュータ1-1の起動時にコンフィグレーション処理によって、仮想デバイス51-1にターゲットデバイス20-2が必要とするアドレス空間を満たす領域を確保する。他の仮想デバイス例えば仮想デバイス53-1等も同じである。
 コンピュータ1-2のコンフィグレーション部9-2は、PCIeスイッチ14-2を介して、ターゲットデバイス20-2が使用するアドレス空間のサイズ、及びコンピュータ1-2によって割り振られたターゲットデバイス20-2のID番号を取得する機能と、ターゲットデバイス20-2をコンフィグレーションし、仮想デバイス51-2に割り振られたアドレス空間の一部をターゲットデバイス20-2に割り当てる機能を有する。また、仮想デバイス51-2に割り振られたアドレス空間の一部をMSI割り込み先アドレスとして、ターゲットデバイス20-2に設定する。割り当てたターゲットデバイス20-2のアドレス空間の範囲とMSI割り込み先アドレスと取得したID番号を、仮想デバイスアダプタ15-2が備えるI/Oドメインマッピングテーブル71-2に下流I/Oドメイン情報として登録する機能を有する。また、コンフィグレーション部9-2は、デバイス機能4-2より通知された上流I/Oドメイン情報を仮想デバイスアダプタ15-2が備えるI/Oドメインマッピングテーブル71-2に登録する機能を有する。
 コンピュータ1-1のコンフィグレーション部9-1は、デバイス機能4-1より通知された下流I/Oドメイン情報を仮想デバイスアダプタ15-1が備えるI/Oドメインマッピングテーブル71-1に登録する機能と、I/Oドメインマッピングテーブル71-1を参照して取得した下流I/Oドメイン情報から、ターゲットデバイスのアドレス空間のサイズを取得し、仮想デバイス51-1の有するCONF_REG 52-1に反映する機能を有する。また、コンフィグレーション部9-1は、仮想デバイス52-1のアドレス空間の範囲とMSI割り込み先アドレスとID番号を、仮想デバイスアダプタ15-1が備えるI/Oドメインマッピングテーブル71-1に上流I/Oドメイン情報として登録する機能を有する。
 図4は各コンピュータ1のI/Oドメインの関係の例を示す図である。図4に示すように、コンピュータ1-1~1-3のそれぞれはI/Oドメイン17-1~17-3を保持する。I/Oドメイン17-1~17-3のそれぞれはバス番号とデバイス番号とファンクション番号からなるID番号のリソースを保持するID番号空間170-1~170-3および物理メモリ空間173-1~173-3からなる。ID番号空間170-1は仮想デバイス51-1、53-1のマップ171-1、172-1を保持し、ID番号空間171-2、171-3のそれぞれはターゲットデバイス20-2、20-3のマップ171-2、172-3を保持する。物理メモリ空間173-1は仮想デバイス51-1、53-1のマップ174-1、177-1を保持し、物理メモリ空間173-2、173-3のそれぞれは仮想デバイス51-2、53-3のマップ174-2、177-3を保持する。
 また、コンピュータ1-2、1-3が保持する仮想デバイス51-2、53-3のマップ174-2、174-3は、ターゲットデバイス20-2、20-3に割り当てるアドレス範囲176-2、179-3と、ターゲットデバイス20-2、20-3のMSI割り込み先アドレス175-2、178-3を含む。コンピュータ1-1が保持する仮想デバイス51-1、53-1のマップ174-1、177-1は、ターゲットデバイス20-2、20-3に割り当てるアドレス範囲176-1、179-1を含む。
 仮想デバイスアダプタ15-1~15-3はI/Oドメイン17-1~17-3間をマッピングするために、I/Oドメインマッピングテーブル71-1~71-3を保持する。仮想デバイスアダプタ15-2、15-3は、ターゲットデバイス20-2、20-3のID番号を取得する。仮想デバイスアダプタ15-2、15-3は、ターゲットデバイス20-2、20-3が使用するメモリサイズを取得し、仮想デバイス51-2、51-3に割り当てられた物理メモリ空間174-2、177-3から、ターゲットデバイス20-2、20-3に使用するメモリサイズを満たす物理メモリ空間176-2、179-3とMSI割り込み先アドレス175-2、178-3を割り振る。仮想デバイスアダプタ15-2、15-3はターゲットデバイス20-2、20-3が使用するメモリサイズを、仮想デバイス51-2、51-3のCONF_REG 52-2、52-3に反映する。仮想デバイスアダプタ15-1は仮想デバイス51-1、53-1のID番号を取得する。仮想デバイスアダプタ15-1は、ターゲットデバイス20-2、20-3の使用するアドレス範囲を元に、仮想デバイス51-1、53-1の有するCONF_REG 52-1、54-1に反映する。
 仮想デバイスアダプタ15-2、15-3は、ターゲットデバイス20-2、20-3のID番号を、仮想デバイスアダプタ15-1が備える仮想デバイス51-1、53-1のID番号にマッピングし、ターゲットデバイス20-2、20-3に割り当てた物理メモリ空間176-2、179-3を仮想デバイスアダプタ15-1が備える仮想デバイス51-1、53-1にマッピングする。仮想デバイスアダプタ15-1は、仮想デバイス51-1、53-1のID番号をターゲットデバイス20-2、20-3のID番号にマッピングし、仮想デバイスアダプタ15-1は、仮想デバイス51-1、53-1に割り当てた物理メモリ空間176-1、179-1をターゲットデバイス20-2、20-3の物理メモリ空間176-2、179-3にマッピングする。
 図5はI/Oドメインマッピングテーブル71の例を示す図である。図5に示すI/Oドメインマッピングテーブル71-1、71-2はそれぞれ仮想デバイスアダプタ15-1、15-2が有し、ID番号と物理メモリの領域と割り込み先アドレスのマッピング情報を保持する。なお、I/Oドメインマッピングテーブル71は2個に限定されるものではなく、仮想デバイスアダプタ15の個数だけ存在する。I/Oドメインマッピングテーブル71-1はデータ成型/転送部8-1に対し、上流I/Oドメイン情報75-1と下流I/Oドメイン情報76-1と、ネットワークアドレス77-1と、仮想デバイスアダプタ受信バッファアドレス78-1を提供する。図示は省略するが、仮想デバイスアダプタ15-2のI/Oドメインマッピングテーブル71-2における項目もI/Oドメインマッピングテーブル71-1と同じであり、図5の横方向の値の並びがエントリを示す。1つのエントリが1つのターゲットデバイス20をマッピングするための情報となる。
 コンピュータ1-2はターゲットデバイス20-2と仮想デバイスアダプタ15-2を備え、仮想デバイスアダプタ15-2はI/Oドメインマッピングテーブル71-2を備える。コンピュータ1-1は仮想デバイスアダプタ15-1を備え、仮想デバイスアダプタ15-1はI/Oドメインマッピングテーブル71-1を備える。仮想デバイスアダプタ15-1が備えるI/Oドメインマッピングテーブル71-1において、上流I/Oドメイン情報75-1におけるエントリ73-1の番号74-1の1は、RC ID番号751-1が(BUR、 DUR、 FUR)、仮想デバイス51-1に関する5つの情報すなわちデバイスID番号752-1が(BUD1、 DUD1、 FUD1)、メモリ上限値753-1が(XUA1)、メモリ下限値754-1が(XUA1)、割り込み先アドレス755-1が(ZUA1)、位置756-1が(TU1)で構成される。下流I/Oドメイン情報76-1におけるエントリ73-1の番号74-1の1は、RC ID番号761-1が(BLR、 DLR、 FLR)と、ターゲットデバイス20-2に関する5つの情報すなわちデバイスID番号762-1が(BLD1、 DLD1、 FLD1)、メモリ上限値763-1が(YLA1)、メモリ下限値764-1が(XLA1)、割り込み先アドレス765-1が(ZLA1)、位置766-1が(TL1)で構成される。
 下流I/Oドメイン情報76-1のRC ID番号761-1の値は例えば仮想デバイスアダプタ15-2のID番号であってもよい。コンピュータ1-2において、ターゲットデバイス20-2を使用する元がRC 12-2の場合と仮想デバイスアダプタ15-2の場合とがあり、仮想デバイスアダプタ15-2が使用元となる場合はターゲットデバイス20-2から見ると仮想デバイスアダプタ15-2がRC 12-2の代わりとなる。この場合にRC ID番号761-1の値を仮想デバイスアダプタ15-2のID番号とすることができる。
 位置756-1及び位置766-1はリモート又はローカルで示され、マッピング先の位置を表す。例えば、上流I/Oドメイン情報75-1における位置756-1がローカルであり、下流I/Oドメイン情報76-1における位置766-1がリモートである場合、上流I/Oドメイン情報75-1から下流I/Oドメイン情報76-1へアドレス変換を行う場合、ネットワークアドレス77-1と、仮想デバイスアダプタ受信バッファアドレス78-1を参照する。
 データ成型/転送部8-1がTLPをRC 12-1からターゲットデバイス20-2へ転送する場合、TLPの送信元と送信先を、上流I/Oドメインから下流I/Oドメインへ変換する。TLPがIDベースルーティングの場合、データ成型/転送部8-1は、I/Oドメインマッピングテーブル71-1を参照し、TLPヘッダの送信元ID番号を、上流I/Oドメイン情報75-1におけるRC 12-1のRC ID番号(BUR、 DUR、 FUR)から、下流I/Oドメイン情報76-1におけるRC ID番号(BLR、 DLR、 FLR)に書き換え、TLPヘッダの送信先ID番号を、上流I/Oドメイン情報75-1における仮想デバイス51-1のID番号(BUD1、 DUD1、 FUD1)から、下流I/Oドメイン情報76-1におけるターゲットデバイス20-2のID番号(BLD1、 DLD1、 FLD1)に書き換える。
 TLPがアドレスベースルーティングの場合、データ成型/転送部8-1は、I/Oドメインマッピングテーブル71-1を参照し、TLPヘッダの送信元ID番号を、下流I/Oドメイン情報76-1におけるRC ID番号(BLR、 DLR、 FLR)に書き換え、送信先メモリアドレス(A)を変換する為に、上流I/Oドメイン情報75-1におけるメモリ下限値(XUA1)を取得し、オフセットアドレス(B)を計算(A - XUA1 = B)し、下流I/Oドメイン情報76-1におけるメモリ下限値(XLA1)を取得し、変換後のアドレス(C)を計算(XLA1 + B = C)して取得し、送信先メモリアドレス(A)を変換後のアドレス(C)に書き換える。
 逆にデータ成型/転送部8-2がTLPをターゲットデバイス20-2からルートコンプレックス12-1へ転送する場合、TLPの送信元と送信先を下流I/Oドメインから上流I/Oドメインへ変換する。I/Oドメインマッピングテーブル71-2にはI/Oドメインマッピングテーブル71-1のエントリ73-1の番号74-1が1のエントリと同じ内容のエントリを備える。
 TLPがIDベースルーティングの場合、データ成型/転送部8-2は、I/Oドメインマッピングテーブル71-2を参照し、TLPヘッダの送信先ID番号を、下流I/Oドメイン情報76-2におけるRC ID番号(BLR、 DLR、 FLR)から、上流I/Oドメイン情報75-2におけるRC ID番号 (BUR、 DUR、 FUR)に書き換え、TLPヘッダの送信元ID番号を、下流I/Oドメイン情報76-2におけるターゲットデバイス20-2のデバイスID番号(BLD1、 DLD1、 FLD1)から、上流I/Oドメイン情報75-2における仮想デバイス51-1のデバイスID番号(BUD1、 DUD1、 FUD1)に書き換える。
 TLPがアドレスベースルーティングの場合、ターゲットデバイス20-2が発行したTLPのアドレスは、ターゲットデバイスが使用する物理メモリ空間176-2を指す。物理メモリ空間176-2は仮想デバイス51-2の物理メモリ空間174-2の一部であり、ターゲットデバイス20-2が発行したTLPは仮想デバイス51-1に向けて転送される。データ成型/転送部8-2 は、TLPをI/Oドメインマッピングテーブル71-2 を参照し、TLPヘッダの送信元ID番号を上流I/Oドメイン情報75-2における仮想デバイスのID番号(BUD1、 DUD1、 FUD1)に書き換え、送信先メモリアドレス(D)を変換する為に、下流I/Oドメイン情報76-2におけるメモリ下限値(XLA1)を取得し、オフセットアドレス(E)を計算(D - XLA1 = E)し、上流I/Oドメイン情報75-2におけるメモリ下限値(XUA1)を取得し、変換後のアドレス(F)を計算(XUA1 + E = F)して取得し、送信先メモリアドレス(D)を変換後のアドレス(F)に書き換える。
 TLPがMSIの場合、TLPのアドレスは仮想デバイス51-2の物理メモリ空間の一部にて割り当てた割り込み先アドレスを指す。ターゲットデバイス20-2が発行したMSIは仮想デバイス51-2に向けて転送される。データ成型/転送部8-2 はTLPをI/Oドメインマッピングテーブル71-2 を参照し、TLPヘッダの送信元ID番号を、上流I/Oドメイン情報75-2における仮想デバイスのID番号(BUD1、 DUD1、 FUD1)に書き換え、送信先アドレスを上流I/Oドメイン情報75-2の割り込み先アドレスに書き換える。
 図6はターゲットデバイス20-2 のコンフィグレーション処理シーケンスの例を表す図である。CPU 11-1と仮想化アダプタ15-1はコンピュータ1-1が備え、CPU 11-2と仮想化アダプタ15-2とターゲットデバイス20-2はコンピュータ1-2が備える。コンピュータ1-1とコンピュータ1-2はネットワーク2を介して接続されて通信可能な構成となっている。CPU 11-1はCPU 11-2に対して接続要求111-1を送信する。CPU 11-2はCPU 11-1に対して接続許可111-2を送信する。
 CPU 11-1はCPU 11-2に対して仮想デバイスアダプタ15-2の受信バッファアドレス値の要求112-1を送信する。CPU 11-2はCPU11-1に対して仮想デバイスアダプタ15-2の受信バッファアドレス値の返信112-2を送信する。CPU 11-1は接続先の仮想デバイスアダプタ15-2の受信バッファアドレスと、接続先ネットワークアドレスを仮想デバイスアダプタ15-1が備えるI/Oドメインマッピングテーブル71-1に登録113-1をする。仮想デバイスアダプタ15-1はCPU 11-1に登録完了の通知151-1を送信する。CPU 11-1はCPU 11-2に対して仮想デバイスアダプタ15-2の受信バッファアドレス登録完了の通知114-1を送信する。
 CPU 11-2はCPU 11-1に対して仮想デバイスアダプタ15-1の受信バッファアドレス値の要求113-2を送信する。CPU 11-1はCPU 11-2に対して仮想デバイスアダプタ15-1の受信バッファアドレス値の返信115-1を送信する。CPU 11-2は接続先の仮想デバイスアダプタ15-1の受信バッファアドレスと接続先ネットワークアドレスを仮想デバイスアダプタ15-2が備えるI/Oドメインマッピングテーブル71-2に登録114-2をする。仮想デバイスアダプタ15-2はCPU 11-2に登録完了の通知151-2を送信する。CPU 11-2はCPU 11-1に対して仮想デバイスアダプタ15-1の受信バッファアドレス登録完了の通知115-2を送信する。
 CPU 11-1はCPU 11-2に対しターゲットデバイスのリストの要求116-1を送信する。CPU 11-2はCPU 11-1に対してターゲットデバイスのリストの返信116-2をする。CPU 11-1はCPU 11-2に対してターゲットデバイス20-2の使用要求117-1を送信する。CPU 11-2は仮想デバイスアダプタ15-2に対してターゲットデバイス20-2のコンフィグレーションを保存する命令117-2を発行する。仮想デバイスアダプタ15-2はターゲットデバイス20-2のコンフィグレーションを取得し、コンフィグレーション保持領域72-2に保存152-2する。仮想デバイスアダプタ15-2はCPU 11-2に対してコンフィグレーション保存完了通知153-2をする。
 CPU 11-2は仮想デバイスアダプタ15-2に対して、ターゲットデバイス20-2をコンフィグレーションする命令を発行118-2する。仮想デバイスアダプタ15-2はターゲットデバイス20-2をコンフィグレーション154-2、 201-2し、取得したID番号と割り当てたメモリ空間と割り当てた割り込み先アドレスを、I/Oドメインマッピングテーブル71-2の下流I/Oドメイン情報76-2に登録し、仮想デバイス51-2のCONF_REG 52-2に、ターゲットデバイス20-2に割り当てたアドレス範囲を反映155-2する。仮想デバイスアダプタ15-2はCPU 11-2に対して、コンフィグレーション完了通知156-2を送信する。
 CPU 11-2はCPU 11-1に対して、ターゲットデバイス20-2の使用許可119-2を送信する。CPU 11-1は仮想デバイスアダプタ15-1に対して、仮想デバイスアダプタ15-2が保持する下流I/Oドメイン情報76-2を取得する命令を発行118-1する。仮想デバイスアダプタ15-1は仮想デバイスアダプタ15-2に下流I/Oドメイン情報76-2を要求152-1する。仮想デバイスアダプタ15-2は下流I/Oドメイン情報76-2の返信157-2を送信する。仮想デバイスアダプタ15-1は下流I/Oドメイン情報76-2を取得すると、I/Oドメインマッピングテーブル71-1の下流I/Oドメイン情報76-1に登録し、取得した下流I/Oドメイン情報76-1より、ターゲットデバイス20-2が使用するアドレス範囲から、メモリサイズを取得し仮想デバイス51-1に反映153-1する。仮想デバイスアダプタ15-1は仮想デバイスアダプタ15-2に下流I/Oドメイン情報の登録完了の通知154-1を送信する。仮想デバイスアダプタ15-1は仮想デバイス51-1のID番号とメモリ空間と割り込み先アドレスを取得し、上流I/Oドメイン情報75-1に登録155-1する。
 仮想デバイスアダプタ15-2は、仮想デバイスアダプタ15-1に上流I/Oドメイン情報75-1を要求158-2する。仮想デバイスアダプタ15-1は上流I/Oドメイン情報75-1の返信156-1を送信する。仮想デバイスアダプタ15-2は上流I/Oドメイン情報75-1を取得すると、I/Oドメインマッピングテーブル71-2の上流I/Oドメイン情報75-2に登録159-2する。仮想デバイスアダプタ15-2は上流I/Oドメイン情報の登録完了の通知160-2を送信する。
 仮想デバイスアダプタ15-2はCPU 11-2にI/Oドメインマッピングテーブル71-2の登録完了の通知161-2を送信する。仮想デバイスアダプタ15-1はCPU 11-1にI/Oドメインマッピングテーブル71-1の登録完了の通知157-1を送信する。CPU 11-2はCPU 11-1にI/Oドメインマッピングテーブル71-2の登録完了の通知120-2を送信する。
 その後、コンピュータ1-1からコンピュータ1-2のターゲットデバイス20-2を使用することができる。この使用が終了すると、CPU 11-1はCPU 11-2に対してターゲットデバイス20-2の使用解除119-1を送信する。CPU 11-2は仮想デバイスアダプタ15-2に対してターゲットデバイス20-2のコンフィグレーションを復帰する命令121-2を発行する。仮想デバイスアダプタ15-2はコンフィグレーション保持領域72-2に保存152-2しておいたコンフィグレーションをターゲットデバイス20-2へ送り復帰162-2する。仮想デバイスアダプタ15-2はCPU 11-2に対してコンフィグレーション復帰完了通知163-2をし、CPU11-2はCPU11-1に対して使用解除完了通知122-2をする。
 図7はTLPをRC 12-1からネットワーク2を介してターゲットデバイス20-2に送信する動作シーケンスの例を示す図である。RC 12-1がTLPを発行し、データ成型/転送部8-1に転送121-1する。データ成型/転送部8-1はI/Oドメインマッピングテーブル71-1を参照81-1し、TLPヘッダを書き換え、送信バッファ61-1に転送82-1し、N/Wアダプタ16-1に送信バッファ61-1のアドレスと、ネットワークアドレス77-1に登録された送信先ネットワークアドレスと、仮想デバイスアダプタ受信バッファアドレス78-1に登録された送信先の仮想デバイスアダプタ15-2が備える受信バッファ62-2のアドレスを通知して、送信起動83-1をする。N/Wアダプタ16-1は送信バッファ61-1からTLPを読み出し165-1、ネットワーク2を介してN/Wアダプタ16-2に送信166-1する。
 N/Wアダプタ16-2は受信したTLPを受信バッファ62-2に書き込む165-2。データ成型/転送部8-2は受信バッファ62-2を監視しており、受信バッファ62-2から受信したTLPを読み出し81-2、TLPをターゲットデバイス20-2に転送83-2する。
 図8はTLPをターゲット20-2からネットワーク2を介してRC 12-1に送信する動作シーケンスの例を示す図である。ターゲット20-2はTLPを発行し、データ成型/転送部8-2に転送201-2する。データ成型/転送部8-2はI/Oドメインマッピングテーブル71-2を参照83-2し、TLPヘッダを書き換え、送信バッファ61-2に転送84-2し、N/Wアダプタ16-2に送信バッファ61-2のアドレスと、ネットワークアドレス77-2に登録された送信先ネットワークアドレスと、仮想デバイスアダプタ受信バッファアドレス78-2に登録された送信先の仮想デバイスアダプタ15-1が備える受信バッファ62-1のアドレスを通知して、送信起動85-2をする。N/Wアダプタ16-2は送信バッファ61-2からTLPを読み出し166-2、ネットワーク2を介してN/Wアダプタ16-1に送信167-2する。
 N/Wアダプタ16-1は受信したTLPを受信バッファ62-1に書き込む167-1。データ成型/転送部8-1は、受信バッファ62-1を監視しており、受信バッファ62-1から受信したTLPを読み出し84-1、TLPをRC 12-1に転送86-1する。
 以上の説明ではローカルのコンピュータ1-1がリモートのコンピュータ1-2のターゲットデバイス20-2へアクセスする例を説明したが、ローカルとリモートの組み合わせは固定的なものではなく、1つのコンピュータ1がローカルとリモートを兼用してもよい。図9はローカルとリモートを兼用した構成の例を示す図である。
 コンピュータ1-1が備える仮想デバイスアダプタ15-1は、コンピュータ1-2が備えるターゲットデバイスB 20-2と、コンピュータ1-3が備えるターゲットデバイスC 20-3を仮想デバイスアダプタ15-1の下流に仮想デバイス51-1、53-1として存在するように振舞う。さらに、仮想デバイスアダプタ15-1は、コンピュータ1-2、1-3にターゲットデバイスA 20-1のリソースを提供する。また、コンピュータ1-2が備える仮想デバイスアダプタ15-2は、コンピュータ1-1が備えるターゲットデバイスA 20-1と、コンピュータ1-4が備えるターゲットデバイスD 20-4を仮想デバイスアダプタ15-2の下流に仮想デバイス51-2、53-2として存在するように振舞う。さらに、仮想デバイスアダプタ15-2は、コンピュータ1-1、1-3にターゲットデバイスB 20-2のリソースを提供する。そして、コンピュータ1-3が備える仮想デバイスアダプタ15-3も仮想デバイスアダプタ15-1、15-2と同じであるが、ターゲットデバイスA 20-1を仮想デバイス51-2、51-3で共用してもよく、ターゲットデバイスB 20-2を仮想デバイス51-1、53-3で共用してもよい。
 ターゲットデバイスはPCIeに準拠したデバイスであればどのような機能のものでもよい。例えばクラスタシステムにおいて、複数のリモートのコンピュータが各々備えるPCIeに準拠したGPGPU(General-purpose computing on graphics processing units)や、PCIeに準拠したco-processor(副処理装置)を例とした高価なターゲットデバイスを、ローカルのコンピュータがハードウェア・レイヤで使用することを可能とする。このような構成では、アプリケーションにとって多数のリモートコンピュータが備えるターゲットデバイスが仮想的にローカルにあるように見えるため、分散GPGPUクラスタにおけるシュミレーションプログラムのコーディング負荷を軽減できる。
 以上で説明したように、ターゲットデバイス20-2はSR-IOV対応である必要がなく、SR-IOV対応のPCIeスイッチも必要なく、ターゲットデバイス20-2をコンピュータ1-1、1-2等で共有できる。また、ターゲットデバイス20-2として共有専用のデバイスを用意する必要がなく、コンピュータ1-2のデバイスを利用できる。そして、複数のコンピュータ1の複数のターゲットデバイス20を相互に利用できる。
1 コンピュータ
11 CPU
12 RC
13 メモリ
14 PCIeスイッチ
15 仮想デバイスアダプタ
16 N/Wアダプタ
20 ターゲットデバイス
51、53 仮想デバイス
71 I/Oドメインマッピングテーブル
75 上流I/Oドメイン情報
76 下流I/Oドメイン情報

Claims (9)

  1.  PCIeスイッチに接続されるI/O制御システムであって、
     仮想デバイスとターゲットデバイスとのマッピングテーブルおよび送信バッファを備え、
     前記仮想デバイスを宛先とするTLPを前記PCIeスイッチから受信し、前記マッピングテーブルを参照して前記受信したTLPのヘッダの送信元と送信先を書き換え、前記書き換えたTLPを前記送信バッファへ書き込むことを特徴とするI/O制御システム。
  2.  受信バッファを備え、
     前記受信バッファに書き込まれたTLPを前記PCIeスイッチへ送信することを特徴とする請求項1に記載のI/O制御システム。
  3.  PCIeスイッチに接続され、仮想デバイスとターゲットデバイスとのマッピングテーブルおよび送信バッファを備えたI/O制御システムのI/O制御方法であって、
     前記仮想デバイスを宛先とするTLPを前記PCIeスイッチから受信するステップと、
     前記マッピングテーブルを参照して前記受信したTLPのヘッダの送信元と送信先を書き換えるステップと、
     前記書き換えたTLPを前記送信バッファへ書き込むステップと、
    を有することを特徴とするI/O制御方法。
  4.  前記I/O制御システムはさらに受信バッファを備え、
     前記受信バッファに書き込まれたTLPを前記PCIeスイッチへ送信するステップを有することを特徴とする請求項3に記載のI/O制御方法。
  5.  PCIeスイッチに接続された仮想デバイスアダプタとターゲットデバイスとネットワークアダプタをそれぞれ備えた複数のコンピュータにより構成されたコンピュータシステムであって、
     前記仮想デバイスアダプタは仮想デバイスと前記ターゲットデバイスとのマッピングテーブルを備え、
     第1の前記コンピュータにおいて、前記仮想デバイスアダプタは前記仮想デバイスを宛先とする第1のTLPを前記PCIeスイッチから受信し、前記マッピングテーブルを参照して前記第1のTLPのヘッダの送信元と送信先を書き換え、前記ネットワークアダプタ経由で第2の前記コンピュータへ前記書き換えた第1のTLPを送信し、
     前記第2のコンピュータにおいて、前記ターゲットデバイスが前記書き換えた第1のTLPを受信することを特徴とするコンピュータシステム。
  6.  前記第2のコンピュータにおいて、前記仮想デバイスアダプタは前記ターゲットデバイスから第2のTLPを受信し、前記マッピングテーブルを参照して前記受信した第2のTLPのヘッダの送信元と送信先を書き換え、前記ネットワークアダプタ経由で第1の前記コンピュータへ前記書き換えた第2のTLPを送信し、
     前記第1のコンピュータにおいて、前記仮想デバイスアダプタは前記書き換えた第2のTLPを前記PCIeスイッチへ送信することを特徴とする請求項5に記載のコンピュータシステム。
  7.  前記第1のコンピュータはルートコンプレックスを備え、
     前記マッピングテーブルは、前記第1のコンピュータにおける前記ルートコンプレックスのID番号と前記仮想デバイスのID番号およびアドレス空間と、前記第2のコンピュータにおける前記仮想デバイスアダプタのID番号と前記ターゲットデバイスのID番号およびアドレス空間とを対応付け、前記第1のコンピュータの仮想デバイスアダプタによる前記第1のTLPヘッダの送信元と送信先の書き換えは、前記マッピングテーブルを参照して前記送信元を前記ルートコンプレックスのID番号から前記仮想デバイスアダプタのID番号へ書き換え、前記送信先を前記仮想デバイスのID番号あるいはアドレスから前記ターゲットデバイスのID番号あるいはアドレスへ書き換えることを特徴とする請求項5に記載のコンピュータシステム。
  8.  前記第1のコンピュータはルートコンプレックスを備え、
     前記マッピングテーブルは、前記第1のコンピュータにおける前記ルートコンプレックスのID番号と前記仮想デバイスのID番号およびアドレス空間と、前記第2のコンピュータにおける前記仮想デバイスアダプタのID番号と前記ターゲットデバイスのID番号およびアドレス空間とを対応付け、前記第2のコンピュータの仮想デバイスアダプタによる前記第2のTLPヘッダの送信元と送信先の書き換えは、前記マッピングテーブルを参照して前記送信元を前記ターゲットデバイスのID番号あるいはアドレスから前記仮想デバイスのID番号あるいはアドレスへ書き換え、前記送信先を前記仮想デバイスアダプタのID番号から前記ルートコンプレックスのID番号へ書き換えることを特徴とする請求項6に記載のコンピュータシステム
  9.  前記第2のコンピュータにおいて、前記仮想デバイスアダプタは前記ターゲットデバイスのコンフィグレーション情報を取得して保存した後、前記ターゲットデバイスをコンフィグレーションすることにより、前記ターゲットデバイスのアドレス空間を前記仮想デバイスに割り振られたアドレス空間の一部へ変更することを特徴とする請求項6に記載のコンピュータシステム。
PCT/JP2013/081736 2013-11-26 2013-11-26 I/o制御システム、i/o制御方法およびコンピュータシステム WO2015079482A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/081736 WO2015079482A1 (ja) 2013-11-26 2013-11-26 I/o制御システム、i/o制御方法およびコンピュータシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/081736 WO2015079482A1 (ja) 2013-11-26 2013-11-26 I/o制御システム、i/o制御方法およびコンピュータシステム

Publications (1)

Publication Number Publication Date
WO2015079482A1 true WO2015079482A1 (ja) 2015-06-04

Family

ID=53198474

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/081736 WO2015079482A1 (ja) 2013-11-26 2013-11-26 I/o制御システム、i/o制御方法およびコンピュータシステム

Country Status (1)

Country Link
WO (1) WO2015079482A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009025381A1 (ja) * 2007-08-23 2009-02-26 Nec Corporation I/oシステムおよびi/o制御方法
WO2011090145A1 (ja) * 2010-01-20 2011-07-28 日本電気株式会社 ネットワーク装置、ネットワーク構成方法及びネットワーク装置のプログラムを記録したプログラム記録媒体

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009025381A1 (ja) * 2007-08-23 2009-02-26 Nec Corporation I/oシステムおよびi/o制御方法
WO2011090145A1 (ja) * 2010-01-20 2011-07-28 日本電気株式会社 ネットワーク装置、ネットワーク構成方法及びネットワーク装置のプログラムを記録したプログラム記録媒体

Similar Documents

Publication Publication Date Title
US8683110B2 (en) I/O system and I/O control method
CN105993009B (zh) 通过非透明桥向PCIe集群中的计算资源传送MSI-X中断的方法和装置
US20180101494A1 (en) Presenting multiple endpoints from an enhanced pci express endpoint device
TWI239187B (en) System and method for managing and validating remote keys which correspond to outstanding data transactions
ES2640452T3 (es) Método y aparato para extender el dominio de bus PCIE
EP1358562B1 (en) Method and apparatus for controlling flow of data between data processing systems via a memory
CN103150279B (zh) 一种主机与基板管理控制器共享设备的方法
US20130151750A1 (en) Multi-root input output virtualization aware switch
US20170203436A1 (en) Robotic hybrid system application framework based on multi-core processor architecture
US10684880B2 (en) Allocating and initializing I/O devices at virtual
JP5310175B2 (ja) スイッチシステム、及びスイッチシステムの制御方法
US8972611B2 (en) Multi-server consolidated input/output (IO) device
US20150169487A1 (en) Switch with synthetic device capability
WO2007105373A1 (ja) ブリッジ、情報処理システムおよびアクセス制御方法
CN107851078B (zh) 一种PCIe设备的聚合友好型地址分配的方法和系统
CN101739380B (zh) 基于共享内存结构的多处理机通信装置及其方法
JPWO2011090145A1 (ja) ネットワーク装置、ネットワーク構成方法及びネットワーク装置のプログラムを記録したプログラム記録媒体
CN106844263B (zh) 一种基于可配置的多处理器计算机系统及实现方法
CN108173723A (zh) 一种Profinet通讯协议转换卡以及转换方法
US9639489B2 (en) I/O device sharing system and I/O device sharing method
JP2011248662A (ja) マルチホストシステム
JP6070732B2 (ja) 入出力制御装置、入出力制御システム、入出力制御方法、および、プログラム
CN113821309A (zh) 一种微内核虚拟机间的通信方法、装置、设备及存储介质
WO2015079482A1 (ja) I/o制御システム、i/o制御方法およびコンピュータシステム
JP2011014023A (ja) 中継手段、中継システム、中継方法およびプログラム

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

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP