WO2015033384A1 - I/oデバイスの仮想化のためのコンピュータシステム及びその運用方法並びにhub装置 - Google Patents

I/oデバイスの仮想化のためのコンピュータシステム及びその運用方法並びにhub装置 Download PDF

Info

Publication number
WO2015033384A1
WO2015033384A1 PCT/JP2013/073637 JP2013073637W WO2015033384A1 WO 2015033384 A1 WO2015033384 A1 WO 2015033384A1 JP 2013073637 W JP2013073637 W JP 2013073637W WO 2015033384 A1 WO2015033384 A1 WO 2015033384A1
Authority
WO
WIPO (PCT)
Prior art keywords
internal slot
computer system
computer
signal
pci
Prior art date
Application number
PCT/JP2013/073637
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/073637 priority Critical patent/WO2015033384A1/ja
Priority to JP2015535184A priority patent/JP6203272B2/ja
Publication of WO2015033384A1 publication Critical patent/WO2015033384A1/ja
Priority to US15/058,961 priority patent/US10585842B2/en

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
    • 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/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

Definitions

  • the present invention relates to a virtualization technology for computer I / O devices (input / output devices).
  • server systems that are widely used today are widely virtualized. That is, so-called server virtualization.
  • This server virtualization can improve the utilization efficiency of physical resources on the server side.
  • an arbitrary virtual server may need to be connected to an arbitrary network according to a user request.
  • an individual physical I / O is often provided from the viewpoint of security, resulting in an increase in I / O.
  • a dedicated I / O may be required to manage the virtual environment.
  • the first improved conventional technology may be related to storage sharing and virtualization. It aims to improve the operating rate of storage by sharing and virtualizing storage.
  • Patent Document 1 described later.
  • the second improved conventional technique is a technique for sharing an I / O adapter from a plurality of computers (Patent Documents 2 and 3, etc.) and a technique for performing DMA using a virtual address (Patent Document 4).
  • network virtualization is known as a third improved prior art.
  • Patent Literature 1 discloses a technology for sharing storage by dividing the storage by a virtualization function.
  • Patent Document 2 discloses a technology for virtualizing a USB adapter.
  • Patent Document 3 discloses a technology in which a plurality of logical partitions share one input / output adapter.
  • Patent Document 4 discloses an I / O-HUB that accepts DMA. This HUB has a function of determining whether or not to convert a requested virtual address of a DMA into a physical address. *
  • the inventor of the present application considered that it is preferable to realize “virtualization of I / O” in order to fundamentally solve the problem of I / O under the background described above.
  • the present invention has been made based on such a background, and an object thereof is to provide an apparatus and a method for easily realizing “virtualization of I / O”.
  • the inventor of the present application has developed a network using PCI-Express and has applied for a patent separately.
  • a HUB device for PCI-Express has also been developed, and a plurality of PCs can configure the network via the HUB.
  • This HUB device has already received a patent registration (Japanese Patent No. 5069079).
  • Such a network via a PCI-Express HUB realizes a network by running a network protocol on the PCI-Express. Therefore, the PCI-Express internal slot (expansion slot) of one PC can be viewed directly from the other PC via PCI-Express, so I / O can be easily virtualized.
  • the inventor of the present application has thought.
  • the HUB device is basically a device that attempts to connect to the network using the interface of the internal slot of the PC. However, it is also preferable to use the HUB device only for I / O virtualization without performing a network connection (for example, Ethernet (registered trademark)).
  • a network connection for example, Ethernet (registered trademark)
  • the present invention adopts the following configuration.
  • the present invention has been made in view of the above problems, and includes a HUB device having a plurality of ports, and at least one computer connected to the ports, and is a virtual I / O.
  • the computer system includes a dedicated NIC device that is connected to an internal slot inside the computer and connects the internal slot and the port, and the HUB device is a signal of the internal slot.
  • the present invention is the computer system according to the above (1), wherein the internal slot is PCI-Express.
  • the computer includes storage means for holding information on an I / O device provided in another computer other than the computer system.
  • the information on the I / O device includes at least address information of an I / O device provided in a computer other than the computer. It is a computer system characterized by the above.
  • the dedicated NIC device includes a first internal slot connector, a second internal slot connector, the first internal slot connector, and a first internal slot connector.
  • Switching means connected to two internal slot connectors, wherein the switch means outputs a signal input from the first internal slot to the second internal slot and from the second internal slot.
  • the computer system is characterized in that an input signal is output to the first internal slot.
  • a transmission FIFO for storing the signal data is connected to a reception FIFO for storing the signal when the signal input from the second internal slot is output to the first internal slot.
  • the internal slot is PCI-Express
  • the switch means takes out a predetermined address from the TLP input from any of the ports
  • the computer system is characterized in that a destination is determined based on the predetermined address, and the input TLP is sent to the destination port.
  • a first step of creating a first device list by starting a BIOS of the one or more computers, and the HUB A second step of activating the BIOS of the apparatus to create a second device list, and combining the first device list and the second device list to create a third device list
  • a computer system operating method comprising: a step; and a third step in which the OS uses the third device list.
  • the internal slot is PCI Express
  • the switch means in the HUB device takes out a predetermined address from the TLP.
  • the computer system operating method is characterized in that a destination is determined based on the predetermined address and the inputted TLP is transmitted to the destination port.
  • the present invention is the computer system according to (3) or (4) above, wherein the I / O device information is a device list created by the BIOS. .
  • the present invention is the dedicated NIC device used in the computer system according to (1), wherein the switch means switches the same signal as the signal of the internal slot. And the switch means inputs and outputs the same signal as the signal of the internal slot through the port.
  • the dedicated NIC device in the dedicated NIC device according to (11), the first internal slot connector, the second internal slot connector, the first internal slot connector, and the second internal slot connector Switching means for connecting to the first internal slot, wherein the switch means outputs the signal input from the first internal slot to the second internal slot, and the signal input from the second internal slot.
  • the dedicated NIC device outputs to the first internal slot.
  • the present invention provides the dedicated NIC device according to (12), wherein the switch means outputs a signal input from the first internal slot to the second internal slot.
  • the transmission FIFO for storing the signal data is connected to the reception FIFO for storing the signal when the signal input from the second internal slot is output to the first internal slot.
  • This is a dedicated NIC device.
  • the present invention provides the HUB device used in the computer system described in (1) above, wherein the internal slot is PCI-Express, and the switch means is a predetermined unit based on a TLP input from any of the ports.
  • the HUB device is characterized in that a destination is determined based on the predetermined address, and the input TLP is transmitted to the destination port.
  • the HUB apparatus that includes the switch means and can be connected to the other PC via the switch is used, the I / O device included in the other PC is included. It is possible to build information on I / O devices. Typically, it is possible to build a device list with such content. As a result, I / O devices of other PCs can be handled as I / O devices provided in their PCs, and so-called I / O virtualization can be realized.
  • the other computer since the information related to the I / O device is provided to another computer, the other computer recognizes the I / O device provided in the other PC as an I / O device provided in its own computer. Therefore, virtualization of the I / O device can be realized between two or more connected computers.
  • FIG. 10 is an explanatory diagram illustrating an example of a general configuration using PCI-Express.
  • FIG. 3 is a configuration diagram when a computer using PCI-Express is connected. It is a block diagram of the dedicated NIC device. It is a flowchart showing the starting flow of the system in the case of performing I / O virtualization.
  • I / O virtualization can be easily realized by using this mechanism in a system that configures a network using an internal slot interface of a PC.
  • PCI-Express TLP 2. About Ethernet frame 3. Method of mounting EtherNet frame on PCI-Express Configuration of HUB Configuration of computer using PCI-Express 6. Structure when a network is configured using a HUB device Realization of I / O virtualization Eighth Summary / Modification Regarding the first PCI-Express TLP
  • a TLP Transaction Layer Packet
  • the TLP main body 100 includes a TLP header 102 and a data portion 104.
  • ECRC Transaction Layer Packet
  • the TLP header 102 may be simply referred to as the header 102.
  • the data part 104 is often referred to as “payload”.
  • payload In general, 256 kbytes is widely used for the data portion. According to the standard, the data portion can be expanded to 4 kbytes (4096 bytes), but few devices that support it are known. In general, the data part is often 256 bytes.
  • the TLP body 100 in the transaction layer is passed to the data link layer on the transmission side.
  • a sequence number 106 and an LCRC 108 are added.
  • the data link layer packet 110 is formed (see FIG. 1).
  • the data link layer packet 110 is transferred from the data link layer to the physical layer.
  • the data link layer packet 110 is added with a start frame 114 and an end frame 116 in the physical layer to form a physical layer packet 108.
  • the data link layer packet 110 excluding the start frame 114 and the end frame 116 is generated and sent to the data link layer.
  • the data link layer that has received the transmitted data (data link layer packet 110) from the physical layer checks the sequence number 106 and the LCRC 108 and passes the TLP body 100 excluding these to the transaction layer.
  • the transaction layer on the receiving side analyzes the data (TLP main body 100) received from the data link layer, extracts the data according to the command type, and passes it to the software layer.
  • a command type, a dress, and the like are stored in the TLP header 102.
  • FIG. 2 is an explanatory diagram showing an outline of an example of an EtherNet frame 200.
  • EtherNet registered trademark
  • EtherNet includes a destination address 202 and a source address 204, which are so-called MAC addresses (physical address 48 bits unique to the device). is there.
  • MAC addresses physical address 48 bits unique to the device.
  • These addresses and type 206 are combined to form an Ethernet header part (14 bits).
  • the type 206 field is often used as a VLAN.
  • the Ethernet frame 200 further includes a data part (46 to 1500 bytes) 208 and a CRC 210.
  • a large frame of up to about 8000 bytes is often used as the Ethernet frame 200 depending on the type of configuration.
  • the EtherNet frame is placed on the third PCI-Express.
  • a characteristic feature of this embodiment is that the Ethernet frame shown in FIG. 2 is stored in the PCI-Express data section 104 of FIG. Due to such a feature, EtherNet (registered trademark) communication can be performed on PCI-Express.
  • EtherNet registered trademark
  • one of the characteristic features of this embodiment is that when an EtherNet (registered trademark) frame is large, it is divided and stored in a plurality of PCI-Express. Accordingly, even a large-size EtherNet (registered trademark) frame such as a jumbo frame can be stored in the PCI-Express frame.
  • EtherNet registered trademark
  • FIG. 1 A block diagram of the configuration of the HUB device 300 is shown in FIG. 1
  • the HUB device 300 includes five ports 320a, 320b, 320c, 320d, and 320e. These ports 320a to 320e are PCI-Express ports.
  • the PCI-Express ports 320a to 320e are configured to be usable as network ports.
  • the HUB device 10 of FIG. 3 switches between these ports 320a to 320e and realizes high-speed communication between the ports 320.
  • settings relating to various operations of the HUB device 300 can be made in advance by connecting a host computer to the HUB device 300.
  • the host computer is a computer provided with application software for managing the operation of the HUB device 10.
  • PCI-Express is known as the internal bus of computers.
  • one or more internal bus connection ports may be provided in the computer.
  • the connection port is sometimes referred to as an “internal slot”.
  • PCI Express when a signal of the internal slot is pulled out to the outside, this may be particularly called “port”.
  • the “port” is also similar in signal to the internal slot of the PCI-Express, and each connection port in the “switch” is called a “port” here.
  • FIG. 4 shows an example of a general configuration of a computer equipped with a computer.
  • PCI-Express is one of the internal bus standards. In the present embodiment, a description will be given mainly focusing on the case where PCI Express is used as the internal bus.
  • RC root complex
  • switches 420a, 420b, and 420c may be provided so as to further increase the required number of ports. These switches 420 may be connected in multiple stages because of the required number of ports (see FIG. 4).
  • the I / O device is called an end point and is connected to the switch 420a, the switch 420b, or the like.
  • represents a PCI-Express port.
  • a PCI-Express port can be provided with a so-called bridge that performs protocol conversion with other buses.
  • a PCI bridge 436 that performs protocol conversion with a PCI bus that is a conventional bus is illustrated. With this bridge, conversion from PCI Express to PCI bus can be performed.
  • FIG. 4 is drawn centering on PCI-Express, and actually includes storage means such as a hard disk in addition to the memory (see FIG. 4).
  • a display device is connected to the PCI-Express graphics (see FIG. 4), and a mouse, a keyboard (not shown), etc. are connected to the system bus (FIG. 4) via a predetermined interface. Connected).
  • FIG. 5 shows an example using a HUB device 500 provided with a switch in the same manner as the HUB device 300 described above.
  • the HUB device 300 and the HUB device 500 are substantially the same in terms of function and function, although there are formal differences such as the number of ports being different (4 or 5).
  • the 5 includes a CPU 510, an RC (root complex 520, and a switch (PCI-Express switch) 530.
  • the switch 530 includes four ports 540a, 540b, 540c, and 540d. 5 can be connected to four PCs (personal computers, which may be referred to as “PCs” in the text) in FIG. 5. In FIG. 5, four PCs (PC-A, PC-B, PC-C, PC-D) are connected.
  • the switch 530 is a PCI-Express switch that is an internal slot (internal bus), and corresponds to a preferred example of the switch means in the claims.
  • This switch means determines a destination (PC) of a PCI-Express signal input from a certain port 540 based on a predetermined control rule, and sends it to any one of the ports 540 that are the destination. For example, when an Ethernet frame or the like is inserted into PCI-Express as described above, various addresses (for example, MAC addresses) in the Ethernet frame are extracted, and a destination is determined based on the extracted addresses. Is also preferable.
  • Such control rules are preferably stored in the table 350 or the like, and are preferably stored and set in the switch 530.
  • FIG. 5 shows an example in which the PC-A 600 is connected to the port 540a and the PC-A 700 is connected to the port 540b.
  • PC-C and PC-D are also connected, but are not shown because they are the same as PC-A600 and PC-B700.
  • the PC-A 600 includes a CPU 610 and an RC (root complex) 620 connected thereto.
  • the RC 620 is provided with a switch (PCI-Express switch) 630, and the switch 630 includes ports 640a, 640b, 640c, and 640d.
  • PCI-Express switch PCI-Express switch
  • the GPU 650 which is a kind of I / O is connected to the port 640a.
  • An HD 660 is connected to the port 640d as a kind of I / O.
  • the port 640d is provided with a dedicated NIC device 670.
  • This dedicated NIC is a device similar to the dedicated NIC device described in Japanese Patent Application No. 2007-263197, and includes a buffer for storing data and means for transmitting data at a predetermined timing, and a PCI-Express signal is transmitted. It is a device that can relay.
  • FIG. 5 a system composed of one or more or a plurality of PCs (personal computers) connected to the HUB device 500 as a center is shown.
  • This is a “computer system” in the claims. It corresponds to a suitable example of.
  • the PC-A 600, PC-B 700, etc., which are individual PCs in FIG. 5, correspond to a preferred example of the “computer” in the claims.
  • the dedicated NIC device 800 has the same configuration as the dedicated NIC devices 670 and 770, although the numbers are different for convenience.
  • the dedicated NIC device has a MAC address.
  • the dedicated NIC device 800 includes two PCI-Espress connectors 840a and 840b, and is configured to connect two PCI-Espress internal slots (also called internal ports). .
  • a PCI-Express switch is disposed between the two PCI-Epress connectors 840a and 840b so that data can be transmitted and received in both directions (see FIG. 6).
  • this dedicated NIC device can connect PCI-Express belonging to different systems. Therefore, in order to transmit and receive data between different systems, a transmission FIFO 820 and a reception FIFO 830 are provided as shown in FIG. As a result, the transmission FIFO 820 can hold data for transmission until the preparation of the transmission destination computer is completed, and data can be transmitted between different systems. Similarly, the reception FIFO 830 can hold reception data until the reception destination computer is ready, and data can be received between different systems. It should be noted that transmission and reception are similar operations only in different directions. For convenience, transmission refers to the case where data is transmitted to the PCI-Express connector 840b side. The reception means a case where data is sent to the PCI-Express connector 840a side.
  • I / O virtualization can be performed by such connection by the HUB device 500.
  • the flow of operations / processes after the activation of this system will be described in order below.
  • a flowchart showing the flow of the processing is shown in FIG. The flow of these series of processes is a process for enabling the computer system to realize I / O virtualization, and should be called a computer system operation method.
  • step 1 step S7-1 in FIG. 7
  • the PC group other than the HUB device 500 is turned on and started. That is, the PC-A 600 and PC-B 700 are activated. If they exist, PC-C and PC-D (see FIG. 5) are also activated simultaneously.
  • the BIOS is activated when the PC-A 600 and the PC-B 700 are activated.
  • the BIOS checks an I / O device provided in the computer, creates a so-called device list, and stores it in an internal hard disk (not shown) or memory (not shown). That is, the BIOS of the PC-A 600 is activated, and a minimum PC-A device list XA is created.
  • a minimum PC-B device list XB is created.
  • minimum generally includes storage such as VGA, network-related interface, and HD (hard disk). However, there is a case where VGA is not necessary. In addition to hard disks, various storages have been widely used in recent years. Therefore, the device list is not particularly limited, and any device list may be used as long as a device list for the PC can be created.
  • This step 1 corresponds to step S7-1 in FIG.
  • Step 2 Step S7-2 in FIG. 7
  • the HUB device 500 is powered on and activated.
  • the HUB device 500 according to the present embodiment also includes a CPU 510 and is a kind of computer.
  • the BIOS is activated as in a normal computer.
  • BIOS When the BIOS is activated, various peripheral devices and various I / Os are checked, and necessary initialization and configuration (acquisition of information and confirmation of availability) are performed. At this time, the connected I / O is confirmed through the root complex.
  • the peripheral device is detected and initialized, and the peripheral device becomes usable.
  • POST Power ON Self Test
  • hardware resources I / O address, memory, IRQ, etc.
  • a list of devices that have been detected and assigned is stored as a device list, and this device list is used later by the OS.
  • the device list is stored in a hard disk (not shown) or a memory (not shown) in the HUB device 500. That is, the BIOS of the HUB device 500 is activated, and the device list Y of the HUB device 500 is created.
  • Step 3 Step S7-3 in FIG. 7
  • the boot loader of the PC-A 600 is activated, and the device list XA, XB and the device list Y of the HUB device 500 are combined to create a new device list Z.
  • the device list Z is created by combining the XA, XB and the device list Y of the HUB device 500.
  • the device list Z includes I / O devices of other PCs. Therefore, the I / O device of another PC can be handled as if it is an I / O device of its own PC, and so-called I / O virtualization can be realized.
  • This processing / operation corresponds to step S7-3 in FIG.
  • Step 4 (Step S7-4 in FIG. 7)
  • the OS and applications started from the OS use the created device list Y.
  • I / O virtualization can be realized.
  • This process corresponds to step S7-4 in FIG.
  • I / O device information is stored in a memory (see FIG. 4), a hard disk (see FIG. 5), or the like.
  • the memory and the hard disk correspond to a preferable example of the storage means in the claims.
  • the I / O device information is used as a conventionally used device list, but it is also preferable that the information is stored in the memory or the hard disk as completely independent other information. It is.
  • I / O devices and other PCs that you have A device list including the provided I / O devices is constructed.
  • Each PC or the like of the present embodiment based on this device list, stores information on I / O devices that can be accessed from each PC (mainly information on addresses (also called I / O memory addresses, I / O addresses, etc.)). Have acquired.
  • each PC can recognize an accessible I / O device that is an I / O device other than the I / O device provided in its own PC.
  • I / O devices in other PCs are provided on their own PC (PC-A 600) by performing normal I / O access through the dedicated NIC device 670. It is possible to access as if the I / O device. Further, for example, by accessing the HD 760 on the PC-B 700 via the dedicated NIC device 670, it is possible to access from the software as if it were the HD provided in its own PC-A 600. it can.
  • the PCI-Express TLP may include various addresses (MAC address, etc.) such as an Ethernet frame. It is also preferable to determine the destination by the address.
  • the I / O device may have a MAC address, and it is also preferable to determine a destination using the MAC address.
  • various addresses such as a device ID or information similar thereto.
  • the destination control based on the information of the device list constructed by the BIOS is executed by the switch 530 of the HUB device 500.
  • the switch 530 can send various I / O commands to a predetermined PC.
  • the device list information used by the OS is also preferably distributed to other newly installed PCs at the OS level or application level. is there.
  • the HUB device 500 creates a device list by referring to an I / O device that can be used for each PC based on the device list created by the BIOS.
  • the destination control is performed by the switch 530 of the HUB device 500.
  • Such information setting for the switch 530 is preferably executed at the OS level or the application level in the HUB 500.
  • the switch 530 can send various I / O commands in a predetermined direction (destination).
  • the HUB device 500 is also a kind of PC (personal computer), and has an I / O device inside thereof, which is also listed in the device list. . That is, from the viewpoint of the HUB device 500 (CPU), since the I / O devices provided in all PCs are “visible”, they can be recognized as I / O devices provided in their own PCs. As a result, it is possible to list them in the device list.
  • PC personal computer
  • the information on accessible I / O devices provided to each PC includes I / O devices located in the HUB device 500.
  • the PC-A 600 accesses an I / O device (eg, HD (hard disk)) in the HUB device 500 as if it were an I / O device provided in the PC-A 600. Is possible.
  • I / O device eg, HD (hard disk)
  • the PC-A 600 and the like combine the device lists generated by the BIOS to generate a device list and realize I / O virtualization (FIG. 7, S7-3). It is also preferable to create a unique I / O device information list for each application. Since the data of the existing device list is not modified, it is possible to reduce the influence on an application for which virtualization is not particularly necessary. In addition, since it is possible to build an information list of I / O devices specialized for applications that require virtualization, it is easy to make a dedicated design, and it is considered easy to improve performance.
  • a so-called programmable switch with a built-in setting memory. After the predetermined setting information is stored in the memory in the switch, the switch appropriately sends various commands to the predetermined port based on the setting information.
  • PCI-Express which is one type of internal slot of the computer, is employed, and an example using a PCI-Express switch (530, etc.) is shown.
  • any internal slot in which the switch can be used can be used.
  • PCI-Express having a high data transfer rate is used.
  • an internal slot with a higher speed is developed in the future, it is also preferable to use the internal slot.
  • a lower-speed internal slot if the performance is not questioned.
  • internal slot it may be called “internal port” or “internal bus”.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Small-Scale Networks (AREA)
  • Bus Control (AREA)

Abstract

I/Oの仮想化を容易に実現するシステム及び関連装置を提供する。 PCの内部スロット(例えばPCI-Expressの内部スロット)のスイッチを備え、他のPCの内部スロット同士を接続しうるHUB装置を構成する。このHUB装置を中心として1個以上のPCを接続したコンピュータシステムによれば、各PCから他のPCのI/Oデバイスが、内部スロットのスイッチを介して互いに「見える」状態となる。従って、まず、互いのI/Oデバイスを含めたデバイスリストを作成し、次に、OSがそのデバイスリストを使用する。この結果、I/Oの仮想化を容易に実現することができる。

Description

I/Oデバイスの仮想化のためのコンピュータシステム及びその運用方法並びにHUB装置
 本発明は、コンピュータのI/Oデバイス(入出力装置)の仮想化技術に関する。
 今日、広く用いられているサーバーシステムにおいては、広く仮想化が行われている。すなわち、いわゆるサーバの仮想化である。このサーバの仮想化は、サーバ側の物理リソースの利用効率を向上させることが可能となっている。
 しかしながら、サーバ側(CPU側)の利用効率が向上した結果、I/O(入出力装置)側の負担が増大し、より一層の複雑化を招いているという問題が提示されている。
 例えば、ユーザーの要求によって、任意の仮想サーバを任意のネットワークに接続する必要が生じる場合がある。この場合、セキュリティ上の観点から個別の物理的なI/Oを設けることも多く、I/Oの増大を招いている。
 また、例えば、仮想サーバの格納のため、ストレージの共有化が必要であるが、この結果、イーサネット(登録商標)やユーザの要求に応じてファイバーチャネル等も設ける必要があり、一層、多様な物理的なI/Oを増やす必要があり、システムが複雑化しがちである。
 また、例えば、仮想環境を管理するために専用のI/Oを必要とする場合もある。
 また、例えば、サーバの仮想化によってサーバの利用効率が向上した結果、I/Oが消費する帯域が増えてしまい、その結果、I/Oバスの帯域幅が今日のコンピュータシステムのボトルネックとなる場合も見受けられる。
 改良された従来の技術
 このようなI/Oの問題を解消するため、種々の技術が開発されている。
 第1の改良された従来技術は、ストレージの共有化・仮想化に関する技術が挙げられよう。ストレージを共有化、仮想化することによって、ストレージの稼働率を向上させようとするものである。
 このような技術としては、後述する特許文献1等が挙げられる。
 第2の改良された従来の技術は、I/Oアダプタを複数のコンピュータから共有する手法(特許文献2、3等)や、仮想アドレスを用いたDMAを行う手法(特許文献4)である。
 また、第3の改良された従来技術として、ネットワークの仮想化等が知られている。
 しかしながら、これらの手法では、ストレージやUSB等の部分的な効率向上にとどまり、I/O全体の問題を解決することは困難な場合もあった。
 先行技術文献
 下記特許文献1には、ストレージを仮想化機能によって分割することによって、ストレージの共有化を行う技術が開示されている。
 下記特許文献2には、USBアダプタの仮想化を行う技術が開示されている。
 下記特許文献3には、複数のロジカルパーティションが、一つの入出力アダプタを共用する技術が開示されている。
 下記特許文献4には、DMAを受け付けるI/O-HUBが開示されている。このHUBは、要求されたDMAの仮想アドレスを物理アドレスに変換するか否かを判断する機能を備えている。 
特開2013-003691号公報 特開2011-146044号公報 特開2009-151767号公報 特開2009-037610号公報
 本願発明者は、上述した背景の下、I/Oの問題を抜本的に解決するためには、「I/Oの仮想化」を実現することが好ましいと考えた。本願発明は、このような背景に基づきなされたものであり、「I/Oの仮想化」を容易に実現する装置・方法を提供することを目的とする。
 一方、本願発明者は、PCI-Expressを用いたネットワークを開発し、別途特許出願を行っている。このPCI-Expressを用いたネットワークにおいては、PCI-ExpressのためのHUB装置も開発し、そのHUBを介して、複数のPCがネットワークを構成しうるものである。このHUB装置に関しては、すでに特許登録を受けている(特許第5069079号)。
 このようなPCI-ExpressのHUBを介したネットワークは、PCI-Expressの上にネットワークプロトコルを流すことによって、ネットワークを実現している。したがって、一方のPCのPCI-Express内部スロット(拡張スロット)が、他のPCからもそのままPCI-Expressを介して見ることができる構成となっているので、容易にI/Oの仮想化を行えると本願発明者は考えたものである。
 後述する実施の形態でも説明するようにHUB装置は、基本的にはPCの内部スロットのインターフェースを利用してネットワーク接続を行おうとした装置である。しかし、特にネットワーク接続(例えばEthernet(登録商標))を行わずに、I/Oの仮想化のためにのみ、HUB装置を利用することも好適である。
 この場合は、「HUB装置」という名称より、「I/O仮想化ボックス」「I/O仮想化装置」等と呼ぶ方が妥当かもしれない。
 具体的には、本願発明は、下記のような構成を採用する。
 (1)本発明は、上記課題を鑑みてなされたものであり、複数のポートを備えたHUB装置と、前記ポートに接続された少なくとも1台以上のコンピュータと、を備え、I/Oの仮想化を行えるコンピュータシステムにおいて、前記コンピュータは、そのコンピュータ内部の内部スロットに接続し、前記内部スロットと、前記ポートと、を接続する専用NIC装置、を備え、前記HUB装置は、前記内部スロットの信号と同一の信号をスイッチするスイッチ手段を備え、前記スイッチ手段は、前記ポートを介して、前記内部スロットの信号と同一の信号を入出力することを特徴とするコンピュータシステムである。
 (2)また、本発明は、上記(1)記載のコンピュータシステムにおいて、前記内部スロットは、PCI-Expressであることを特徴とするコンピュータシステムである。
 (3)また、本発明は、上記(1)記載のコンピュータシステムにおいて、前記コンピュータは、自己以外の他のコンピュータに備えられたI/Oデバイスの情報を保持する記憶手段、を備え、前記コンピュータは、前記I/Oデバイスの情報を利用し、前記HUB装置を介して、前記自己以外の他のコンピュータに備えられたI/Oデバイスに対してアクセス可能であることを特徴とするコンピュータシステムである。
 (4)また、本発明は、上記(3)記載のコンピュータシステムにおいて、前記I/Oデバイスの情報には、前記自己以外の他のコンピュータに備えられたI/Oデバイスの少なくともアドレス情報が含まれることを特徴とするコンピュータシステムである。
 (5)また、本発明は、上記(1)記載のコンピュータシステムにおいて、前記専用NIC装置は、第1の内部スロットコネクタと、第2の内部スロットコネクタと、前記第1の内部スロットコネクタ及び第2の内部スロットコネクタと接続するスイッチ手段と、を含み、前記スイッチ手段は、前記第1の内部スロットから入力された信号を、前記第2の内部スロットに出力し、前記第2の内部スロットから入力された信号を、前記第1の内部スロットに出力しすることを特徴とするコンピュータシステムである。
 (6)また、本発明は、上記(5)記載のコンピュータシステムにおいて、前記スイッチ手段には、前記第1の内部スロットから入力された信号を、前記第2の内部スロットに出力する際に、前記信号のデータを保存する送信用FIFOと、前記第2の内部スロットから入力された信号を、前記第1の内部スロットに出力する際に、前記信号を保存する受信用FIFOと、が接続されていることを特徴とするコンピュータシステム。
 (7)また、本発明は、上記(1)記載のコンピュータシステムにおいて、前記内部スロットはPCI-Expressであり、前記スイッチ手段は、いずれかの前記ポートから入力したTLPから所定のアドレスを取り出し、前記所定のアドレスに基づき、行き先を決定し、その行き先のポートへ前記入力したTLPを送出することを特徴とするコンピュータシステムである。
 (8)また、本発明は、上記(1)記載のコンピュータシステムの運用方法において、前記1台以上のコンピュータのBIOSを起動して、第1のデバイスリストを作成する第1ステップと、前記HUB装置のBIOSを起動して、第2のデバイスリストを作成する第2ステップと、前記第1のデバイスリストと、前記第2のデバイスリストとを結合して第3のデバイスリストを作成する第3ステップと、前記第3のデバイスリストをOSが利用する第3ステップと、を含むことを特徴とするコンピュータシステムの運用方法である。
 (9)また、本発明は、上記(1)記載のコンピュータシステムの運用方法において、前記内部スロットは、PCI-Expressであり、前記HUB装置中の前記スイッチ手段は、TLPから所定のアドレスを取り出し、前記所定のアドレスに基づき、行き先を決定し、その行き先のポートへ前記入力したTLPを送出することを特徴とするコンピュータシステムの運用方法である。
 (10)また、本発明は、上記(3)又は(4)記載のコンピュータシステムにおいて、前記I/Oデバイスの情報とは、BIOSが作成したデバイスリストであることを特徴とするコンピュータシステムである。
 (11)また、本発明は、上記課題を解決するために、上記(1)記載のコンピュータシステムに用いられる前記専用NIC装置であって、前記内部スロットの信号と同一の信号をスイッチするスイッチ手段を備え、前記スイッチ手段は、前記ポートを介して、前記内部スロットの信号と同一の信号を入出力することを特徴とする専用NIC装置である。
 (12)また、本発明は、上記(11)記載の専用NIC装置において、第1の内部スロットコネクタと、第2の内部スロットコネクタと、前記第1の内部スロットコネクタ及び第2の内部スロットコネクタと接続するスイッチ手段と、を含み、前記スイッチ手段は、前記第1の内部スロットから入力された信号を、前記第2の内部スロットに出力し、前記第2の内部スロットから入力された信号を、前記第1の内部スロットに出力することを特徴とする専用NIC装置である。
 (13)また、本発明は、上記(12)記載の専用NIC装置において、前記スイッチ手段には、前記第1の内部スロットから入力された信号を、前記第2の内部スロットに出力する際に、前記信号のデータを保存する送信用FIFOと、前記第2の内部スロットから入力された信号を、前記第1の内部スロットに出力する際に、前記信号を保存する受信用FIFOと、が接続されていることを特徴とする専用NIC装置である。
 (14)また、本発明は、上記(1)記載のコンピュータシステムに用いられるHUB装置において、前記内部スロットはPCI-Expressであり、前記スイッチ手段は、いずれかの前記ポートから入力したTLPから所定のアドレスを取り出し、前記所定のアドレスに基づき、行き先を決定し、その行き先のポートへ前記入力したTLPを送出することを特徴とするHUB装置である。
 以上述べたように、本発明によれば、スイッチ手段を備え、このスイッチを介して他のPCと接続しうるHUB装置を用いたので、他のPCに備えられたI/Oデバイスを含めたI/Oデバイスの情報を構築することが可能である。典型的には、そのような内容のデバイスリストを構築することが可能である。その結果、他のPCのI/Oデバイスをあたかも自分のPCに備えられたI/Oデバイスとして扱うことが可能となるので、いわゆるI/Oの仮想化を実現することができる。
 また、このI/Oデバイスに関する情報を、他のコンピュータに提供したので、他のコンピュータでも、互いに他のPCに備えられたI/Oデバイスを自分のコンピュータに備えられたI/Oデバイスとして認識することができるので、接続された2個以上のコンピュータ間でI/Oデバイスの仮想化を実現することができる。
TLPのフォーマットの概要を示す説明図である。 EtherNetフレームの概要を示す説明図である。 HUB装置の構成ブロック図である。 PCI-Expressを用いた一般的な構成の例を示す説明図である。 PCI-Expressを用いたコンピュータを接続した場合の構成図である。 専用NIC装置の構成ブロック図である。 I/Oの仮想化を行う場合のシステムの起動の流れを表すフローチャートである。
 以下、本発明の好ましい形態を図面に基づいて説明する。
 本実施の形態では、PCの内部スロットインターフェースを利用してネットワークを構成するシステムにおいて、この仕組みを利用すれば、I/Oの仮想化を容易に実現できることを説明する。
 以下、第1~第3においては、PCI-Expressを用いてネットワークを構成する手法を説明し、第4ではその手法・仕組みに用いられるHUB装置の説明を行う。
 そして、第5では、PCI-Expressを用いたコンピュータの構成を説明する。
 そして、第6では、HUB装置を用いてネットワークを構成した場合の構造を説明する。第7では、この構造によって、I/Oの仮想化が実現できる運用手法を説明する。第8はまとめである。
~目次~
 第1.PCI-ExpressのTLPについて
 第2.Ethernetフレームについて
 第3.PCI-Express上にEtherNetフレームを載せる方法
 第4.HUBの構成
 第5.PCI-Expressを用いたコンピュータの構成
 第6.HUB装置を用いてネットワークを構成した場合の構造
 第7.I/Oの仮想化の実現
 第8 まとめ・変形例

 第1 PCI-ExpressのTLPについて
 送信側
 PCI-Expressにおいては、送信側において、ソフトウェアレイヤからの要求に応じて、TLP(Transaction Layer Packet)がトランザクションレイヤーにおいて生成される。
 Transaction Layer Packet(TLP)のフォーマットの概要が図1に示されている。図1に示すように、TLP本体100は、TLPヘッダ102と、データ部104と、から構成される。これらに加えてECRC等が付加される場合もあるが、本文では省略する。TLPヘッダ102は、単にヘッダ102と呼ぶ場合もある。
 データ部104は、「ペイロード」と称する場合も多い。データ部は、一般に256kバイトが広く用いられている。規格上は、データ部は4kバイト(4096バイト)まで広げることができるが、それをサポートしたデバイスはほとんど知られていない。一般的にはデータ部は256バイトの場合が多い。
 トランザクションレイヤーにおけるこのTLP本体100は、送信側においては、データリンク層に渡される。データリンクレイヤーにおいては、シーケンスナンバー106と、LCRC108とが付加される。これによって、データリンク層パケット110が形成される(図1参照)。このデータリンク層パケット110は、データリンクレイヤーから、物理層に渡される。
 さらに、このデータリンク層パケット110は、物理層において、スタートフレーム114と、エンドフレーム116と、が付加されて、物理層パケット108が構成される。
 受信側
 受信側においては、物理層においては、スタートフレーム114、エンドフレーム116を除いたデータリンク層パケット110が生成されて、データリンク層に送られる。物理層から、上記送られてきたデータ(データリンク層パケット110)を受け取ったデータリンクレイヤーは、シーケンスナンバー106とLCRC108の確認を行うとともに、これらを除いたTLP本体100を、トランザクションレイヤーに渡す。
 また、受信側のトランザクションレイヤーは、データリンクレイヤーから受け取ったデータ(TLP本体100)を解析して、コマンドタイプに応じてデータを抽出し、ソフトウェアレイヤに渡すのである。
 なお、TLPヘッダ102内にコマンドタイプやドレス等が格納されている。
 第2 EtherNetフレーム
 図2は、EtherNetフレーム200の一例の概要を示す説明図である。この図に示す例によれば、EtherNet(登録商標)においては、宛先アドレス202と、送信元アドレス204と、が含まれており、これらはいわゆるMACアドレス(その機器固有の物理アドレス48ビット)である。これらアドレスと、タイプ206と、を合わせて イーサネットヘッダ部(14ビット)が構成される。なお、タイプ206フィールドは、VLANとして用いられることも多い。
 イーサネットフレーム200は、さらに、データ部(46~1500バイト)208と、CRC210と、から構成されている。しかし、イーサネットフレーム200としては、構成の種類によっては8000バイト程度までの大きなフレームが用いられることも近年は多い。
 第3 PCI-Expressに、EtherNetフレームを載せる。
 本実施の形態において特徴的なことは、図1のPCI-Expressのデータ部104中に、図2で示したイーサネットフレームを格納したことである。このような特徴によって、PCI-Expressの上で、EtherNet(登録商標)の通信を行うことができたものである。
 さらに、本実施の形態において特徴的なことの一つは、EtherNet(登録商標)のフレームが大きな場合、これを分割して、複数のPCI-Expressに格納したことである。これによって、ジャンボフレーム等の大きなサイズのEtherNet(登録商標)のフレームでも、PCI-Expressフレーム中に格納することができる。
 第4 HUB装置の構成
 上述したように、本願発明者は、PCI-Expressを用いたネットワークを開発している。そして、このPCI-Expressを用いたネットワークにおいては、PCI-ExpressのためのHUB装置を用いており、すでに特許登録を受けている(特許第5069079号)。
 本実施の形態でも同様のHUB装置を利用している。このHUB装置300の構成ブロック図が図3に示されている。
 図3に示すように、HUB装置300は、5つのポート320a、320b、320c、320d、320eを備えている。これらのポート320a~320eは、PCI-Expressのポートである。
 特許5069079号でも述べているが、このPCI-Expressのポート320a~320eはネットワークのポートとして利用可能に構成されている。端的に言えば、図3のHUB装置10は、これらのポート320a~320e間をスイッチングし、各ポート320間の高速な通信を実現する。
 なお、HUB装置300の種々の動作に関する設定は、ホストコンピュータをこのHUB装置300に接続することによって予め行うことができる。なお、このホストコンピュータとは、HUB装置10の動作を管理するアプリケーションソフトを備えたコンピュータである。
 ※ポートその他の記法について
 PCI-Expressは、コンピュータの内部バスとして知られている。また、コンピュータによっては、そのコンピュータの内部に、内部バスの接続口が1個以上、複数個設けられている場合もある。一般にその接続口を「内部スロット」と呼ぶこともある。また、PCI-Expressの場合、その内部スロットの信号を外部に引き出した場合、これを特に「ポート」と呼ぶ場合がある。
 本実施の形態における「ポート」も信号的には、PCI-Expressの内部スロットの同様のものであり、「スイッチ」における各接続口を、ここでは「ポート」と呼んでいる。
 第5 PCI-Expressを用いたコンピュータの一般的な構成
 また、PCI-Expressの内部ポート(又は、「内部スロット」「内部バス」等と呼ばれる。また意味合いから「拡張スロット」「拡張バス」と呼ばれることもある)を備えたコンピュータの一般的な構成の例が図4に示されている。PCI-Expressは、内部バスの規格の一つである。本実施の形態では、主としてPCI-Expressを内部バスとして用いた場合を中心に説明を行う。
 PCI-Expressを用いた場合、CPU400には、まずルートコンプレックス(以下、単にRCとも呼ぶ)410が接続している。RC410には、複数のPCI-Expressポートが設けられているが、さらに必要なポート数となるようにスイッチ420a、420b、420cが設けられる場合がある。これらスイッチ420は必要とされるポート数の関係上、多段に接続される場合もある(図4参照)。
 I/Oデバイスは、エンドポイントと呼ばれ、スイッチ420aやスイッチ420b等に接続されている。エンドポイントは、種々存在する。スイッチ420のPCI-Expressポートにそのまま接続する通常のPCI-Expressエンドポイント430a、430b、430cや、RC410に接続するルートコンプレックスエンドポイント434等である。
 なお、図4において、○は、PCI-Expressポートを表す。
 また、PCI-Expressポートには、他のバスとのプロトコル変換を行ういわゆるブリッジを設けることもできる。図4の例では、例えば従来のバスであるPCIのバスとの間のプロトコル変換を行うPCIブリッジ436が示されている。このブリッジによって、PCI-ExpressからPCIのバスへの変換を行うことができる。
 なお、図4は、PCI-Expressを中心として描かれており、実際には、メモリ(図4参照)の他にハードディスク等の記憶手段も備えられている。また、図示されていないが、PCI-Expressグラフィックス(図4参照)には、ディスプレイ装置が接続されており、マウスやキーボード(不図示)等が所定のインターフェースを介して、システムバス(図4参照)に接続されている。
 第6 HUB装置を用いてネットワークを構成した場合の構造
 実際に上記HUB装置300を用いて、コンピュータとコンピュータを接続した場合の構成図の例が図5に示されている。
 図5においては、上記HUB装置300と同様に内部にスイッチを設けたHUB装置500を用いた例を示す。このHUB装置300とHUB装置500とは、ポート数が異なる(4個、5個)等の形式的な相違はあるが、実質的・機能的には同様の装置である。
 図5に示されるHUB装置500は、CPU510と、RC(ルートコンプレックス520と、スイッチ(PCI-Expressスイッチ)530とを備えている。スイッチ530には、4個のポート540a、540b、540c、540dとが設けられており、4台のPC(パーソナルコンピュータ、本文では「PC」と称する場合がある)と接続することができる。図5では、4台のPC(PC-A、PC-B、PC-C、PC-D)と接続する例を示している。
 なお、このスイッチ530は、内部スロット(内部バス)であるPCI-Expressのスイッチであり、請求の範囲のスイッチ手段の好適な一例に相当する。 
 このスイッチ手段は、あるポート540から入力したPCI-Expressの信号を所定の制御ルールに基づき、行き先(のPC)を決定し、その行き先であるいずれかのポート540に送り出す。例えば、上述したようにPCI-ExpressにEthernetフレーム等を挿入して使用する場合は、このEthernetフレーム中の種々のアドレス(例えばMACアドレス等)を取り出し、取り出したアドレスに基づき、行き先を決定することも好ましい。 
 なお、このような制御ルールは、テーブル350等に格納しておくことも好適であり、スイッチ530内部に格納・設定しておくことも好適である。
 図5においては、ポート540aにPC-A600が接続されており、ポート540bにPC-A700が接続されている例が示されている。PC-C、PC-Dも接続されているが、PC-A600、PC-B700と同様であるので、図示を省略している。
 このような構成・接続の形態によって、PC-A600、PC-B700等でネットワークを構成する技術に関してすでに特許出願を行い、特許権を取得している。
 PC-A600は、CPU610と、それに接続するRC(ルートコンプレックス)620とが備えられている。RC620にはスイッチ(PCI-Expressスイッチ)630が設けられており、このスイッチ630にはポート640a、640b、640c、640d、が備えられている。
 ポート640aには、I/Oの一種であるGPU650が接続されている。ポート640dには、I/Oの一種としてHD660が接続されている。またポート640dには、専用NIC装置670が備えられている。この専用NICは特願2007-263197に記載されている専用NIC装置と同様の装置であり、データを蓄積するバッファや所定のタイミングでデータを送信する手段を備えており、PCI-Expressの信号を中継しうる装置である。
 図5に示すようにHUB装置500を中心として、それに接続する1個以上又は複数個のPC(パーソナルコンピュータ)から構成されるシステムを図示しているが、これが、請求の範囲における「コンピュータシステム」の好適な一例に相当する。また、図5の個々のPCであるPC-A600、PC-B700等は、請求の範囲の「コンピュータ」の好適な一例に相当する。
 第6-1 専用NIC装置
 専用NIC装置800の構成ブロック図が図6に示されている。専用NIC装置800は、便宜上番号は異なるが、専用NIC装置670、770と同様の構成である。 
 また、この専用NIC装置はMACアドレスを有している。
 まず、専用NIC装置800は、2個のPCI-Espressコネクタ840a、840bを備えており、2個のPCI-Espressの内部スロット(又は内部ポート共呼ばれる)を結びつけることができるように構成されている。そのため、2個のPCI-Espressコネクタ840a、840bの間にPCI-Expressスイッチが配置され、双方向にデータの送受信を行えるように構成している(図6参照)。
 ただし、この専用NIC装置の特徴的な事項は、異なる系に属するPCI-Expressを結ぶことができる点である。そのため、異なる系の間でデータの送受信を行うために、図6に示すように送信用FIFO820、受信用FIFO830が備えられている。その結果、送信用FIFO820によって、送信用のデータを、送信先のコンピュータの準備が完了するまで保持しておくことができ、異なる系の間でデータの送信が可能である。また、同様に、受信用FIFO830によって、受信用のデータを、受信先のコンピュータの準備が完了するまで保持しておくことができ、異なる系の間でデータの受信が可能である。なお、方向が異なるのみで、送信も受信も動作としては同様の動作である。便宜上、送信とは、PCI-Expressコネクタ840b側に、データが送信される場合を言う。そして、受信とは、PCI-Expressコネクタ840a側に、データが送られる場合を言う。
 第7 I/Oの仮想化
 本実施の形態において特徴的なことは、このようなHUB装置500による接続によって、I/Oの仮想化を行うことができることである。その動作の好適な一例を説明するために、本システムの起動からの動作・処理の流れを以下順次説明する。同処理の流れを示すフローチャートが図7に示されている。これら一連の処理の流れは、コンピュータシステムをI/Oの仮想化を実現しうるようにする処理であり、コンピュータシステムの運用方法と言うべきである。
 第7-1 起動プロセス
 (ステップ1)(図7のステップS7-1)
 図5に示されるシステムの運用においては、まず、HUB装置500以外のPC群の電源を投入して、起動する。すなわち、PC-A600、PC-B700を起動する。また、存在する場合は、PC-C、PC-D(図5参照)も同時に起動する。
 なお、PC-A600、PC-B700の起動においては、BIOSが起動する。ここで、BIOSは、そのコンピュータに備えられているI/Oデバイスのチェックを行い、いわゆるデバイスリストを作成して、内部のハードディスク(不図示)やメモリ(不図示)に格納する。 
 すなわち、PC-A600のBIOSが起動し、最小限のPC-AのデバイスリストXAを作成する。PC-B700についても同様に、最小限のPC-BのデバイスリストXBを作成する。 
 ここで、最小限とは、一般にはVGAや、ネットワーク関連のインターフェース、HD(ハードディスク)などのストレージ、を含むものである。ただし、VGAに関してはなくても良い場合もある。また、ストレージについては、ハードディスク以外にも種々のストレージが近年広く用いられている。したがって、特にこれらに限られるものではなく、ごく一般的にそのPCについてのデバイスリストが作成できれば、どのようなデバイスリストであってもかまわない。
 このステップ1は、図7のステップS7-1に該当する。
 (ステップ2)(図7のステップS7-2)
 次に、HUB装置500の電源を投入し、起動させる。本実施の形態に係るHUB装置500もCPU510を備えており、一種のコンピュータである。HUB装置500が起動すると、まず、通常のコンピュータ同様にBIOSが起動する。
 BIOSが起動すると、周辺の各種装置、各種I/Oをチェックし、必要な初期化・コンフィグレーション(情報の取得及び使用可能か否か確認)等が行われる。この際、ルートコンプレックスを通じて、接続しているI/Oが確認される。
 具体的には、いわゆるPOST(Power ON Self Test)において、周辺機器の検出・初期化が行われ、周辺機器が使用可能な状態になる。このPOSTにおいては、各種デバイスや拡張カードが要求するハードウェアリソース(I/Oアドレス、メモリ、IRQ等)を割り当てる。
 検出・割り当てを行ったデバイスの一覧はデバイスリストとして保存され、このデバイスリストは、OSが後に利用する。デバイスリストは、HUB装置500内のハードディスク(不図示)やメモリ(不図示)に格納される。 
 すなわち、HUB装置500のBIOSが起動し、HUB装置500のデバイスリストYを作成する。
 ※なお、「BIOS」は、近年、「EFI」と呼ばれるファームウェアに置き換えられつつあるが、その場合は、本文の「BIOS」を、「EFI」と読み替えられたい。
 (ステップ3)(図7のステップS7-3)
 次に、PC-A600のブートローダが起動し、上記デバイスリストXA、XBとHUB装置500のデバイスリストYを結合して、新たなデバイスリストZを作成する。PC-B700についても同様に、上記XA、XBとHUB装置500のデバイスリストYを結合して、デバイスリストZを作成する。
 本実施の形態において特徴的なことは、上記デバイスリストZ中に他のPCのI/Oデバイスが含まれていることである。したがって、他のPCのI/Oデバイスをあたかも自分のPCのI/Oデバイスであるかのように扱うことができ、いわゆるI/Oの仮想化を実現することが可能である。
 この処理・動作は、図7のステップS7-3に該当する。
 (ステップ4)(図7のステップS7-4)
 OSが起動した後、OSやOSから起動されるアプリケーションは、上記作成したデバイスリストYを利用するのである。この結果、I/Oの仮想化を実現することができる。
 この処理は、図7のステップS7-4に該当する。
 なお、他のPC(PC-A600、PC-B700等)においては、I/Oデバイスの情報は、メモリ(図4参照)や、ハードディスク(図5参照)等に格納される。この場合、このメモリやハードディスクは、請求の範囲の記憶手段の好適な一例に相当する。また、本実施の形態では、I/Oデバイスの情報は、従来から用いられてきたデバイスリストとして利用しているが、全く独立した他の情報として、上記メモリやハードディスクに格納されることも好適である。
 第7-2 アドレス
 前記第7-1のステップ2において、I/Oアドレスの割り当て等を行ったが、このようなアドレスの割り当ては、いわゆるメモリにおいても同様に行うことが可能である。つまり、ここではI/Oアドレスと呼んでいるが、メモリのアドレスも同様である。この結果、一般的には、このアドレスは「I/Oメモリアドレス」と呼ばれる場合もあった。
 第7-3 デバイス情報の提供・共有や、制御の詳細
 (1)上記第7-1で述べたように、本実施の形態では、自分が持っているI/Oデバイスや、他のPCに備えられているI/Oデバイスを含めたデバイスリストが構築される。本実施の形態の各PC等は、このデバイスリストに基づき、各PCからアクセスしうるI/Oデバイスの情報(主としてアドレス(I/Oメモリアドレス、I/Oアドレス等とも呼ばれる)の情報)を取得している。
 この結果、各PCは、自分のPCに備えられたI/Oデバイス以外のI/Oデバイスであって、アクセス可能なI/Oデバイスを認識することができる。
 例えば、PC-A600からは、他のPCにあるI/Oデバイスに関しては、専用NIC装置670を通じて、通常のI/Oアクセスをすることによって、あたかも自分のPC(PC-A600)上に備えられているI/Oデバイスであるかのようにアクセスすることが可能となる。また例えば、PC-B700上にあるHD760に対して、専用NIC装置670を介してアクセスすることによって、自分のPC-A600に備えられているHDであるかのようにソフトウェアからはアクセスすることができる。
 (2)なお、PC-A600から所定のI/Oデバイスにアクセスする際、上記情報に含まれるアドレスでアクセスを行う。そして、専用NIC装置670を介して、要求コマンドをHUB装置500に送信するのである。
 実際の制御は、種々の手法が考えられるが、例えば、上で述べたように、PCI-ExpressのTLPにはEthernetフレーム等の種々アドレス(MACアドレス等)が含まれている場合もあるので、そのアドレスで行き先を決定することも好適である。I/Oデバイスは、MACアドレスを有していることもあり、そのMACアドレスを用いて、宛先を決定することも好適である。その他、デバイスID等、種々のアドレス又はそれに類する情報を用いることも好適である。
 このように、BIOSで構築されたデバイスリストの情報に基づく行き先の制御は、HUB装置500の、スイッチ530が実行する。この結果、スイッチ530は、I/Oの各種コマンドを、所定のPCに送出することができる。
 第7-4 OS・アプリケーションレベルの動作・機能
 (1)なお、OSが利用するデバイスリストの情報は、OSレベル、又はアプリケーションレベル等で、新しく設置された他のPCに配布することも好適である。
 HUB装置500においては、BIOSが作成したデバイスリストに基づき、各PCに利用できるI/Oデバイスを参照してデバイスリストを作成する。
 このような動作によって、例えばPC-A600上で稼働する各種ソフトウェアからは、デバイスリストに載っている通常のI/Oデバイスと同様に取り扱うことが可能となるものである。
 (2)また、上述したように、行き先の制御は、HUB装置500のスイッチ530が行う。そして、このようなスイッチ530に対する情報の設定は、HUB500における、OSレベル、又はアプリケーションレベル等で実行することも好適である。この結果、スイッチ530は、I/Oの各種コマンドを、所定の方向(相手先)に送出することができる。
 第7-5 仮想化の対象
 さらに、HUB装置500も、一種のPC(パーソナルコンピュータ)であり、その内部にもI/Oデバイスが備えられており、これらもまた上記デバイスリストに列挙されている。すなわち、HUB装置500(のCPU)からみれば、全PCに備えられているI/Oデバイスが「見え」ているので、自分のPCに備えられているI/Oデバイスとして認識可能であり、その結果、デバイスリストに列挙することが可能である。
 したがって、各PCに提供されるアクセス可能なI/Oデバイスに関する情報は、このHUB装置500内に位置するI/Oデバイスも含まれる。その結果、例えばPC-A600から、あたかもPC-A600内に備えられているI/Oデバイスであるかのように、HUB装置500内のI/Oデバイス(例えば、HD(ハードディスク)など)にアクセスすることが可能である。
 第8 まとめ・変形例
 以上述べたように、本実施の形態によれば、接続するPCに備えられているI/Oデバイスに関する情報を収集し、デバイスリストを作成している。そして、そのデバイスリストの情報に基づき、行き先の制御等を行うスイッチの設定を行っている。したがって、いわゆるI/Oの仮想化を容易に実現することが可能である。
 (1)上記実施の形態では、PC-A600等は、BIOSが生成したデバイスリストを結合してデバイスリストを生成し、I/Oの仮想化を実現したが(図7 S7-3)、各アプリケーション毎に特有のI/Oデバイス情報リストを作成することも好適である。既存のデバイスリストのデータを修正することがないので、仮想化が特に必要ではないアプリケーションに対する影響を少なくすることが可能である。また、仮想化が必要なアプリケーションに特化したI/Oデバイスの情報リストを構築できるので、専用設計とすることが容易であり、性能の向上を容易であると考えられる。
 (2)また、上記の実施の形態における制御の例として、TLP中のEthernetフレーム中のアドレスを利用する例を示した。I/OデバイスはMACアドレスを備えるものも多いので、MACアドレスを利用することも好適である。また、デバイスID等のその他種々のアドレスを用いることも好適である。また、他の手法でMACアドレスその他のアドレスを提供することも好適である。
 (3)上述した例では、「スイッチ530の設定」と説明したが、実際の情報自体はメモリやハードディスク等に書き込まれており、適宜それらの情報を参照しながら、I/Oの要求コマンド等を、(スイッチ530が)適切なポートに送出するように構成することも好適である。
 また、いわゆる設定メモリを内蔵した、いわゆるプログラマブルなスイッチを採用することも好適である。所定の設定情報をスイッチ内のメモリに格納した後は、そのスイッチが、設定情報に基づき、適宜、各種コマンドを所定のポートに送出するのである。
 (4)上述した例では、コンピュータの内部スロットの1種であるPCI-Expressを採用しており、PCI-Expressのスイッチ(530等)を利用した例を示している。
 しかし、スイッチが利用可能である内部スロットであれば、どのような内部スロットででも利用可能である。
 実用上の観点から、高いデータ転送速度を有するPCI-Expressを用いたが、将来的により早い速度の内部スロットが開発されれば、その内部スロットを用いることも好適である。また、性能を問わなければ、より低速の内部スロットを用いることも好適である。
 なお、ここでは、内部スロットという用語を用いたが、「内部ポート」「内部バス」と呼ばれる場合もある。
 100 TLP本体
 102 TLPヘッダ
 104 データ部(ペイロード)
 106 シーケンスナンバー
 108 LCRC
 110 データリンク層パケット
 114 スタートフレーム
 116 エンドフレーム
 118 物理層パケット
 200 イーサネットフレーム
 202 宛先アドレス
 204 送信元アドレス
 206 タイプ
 208 データ部
 210 CRC
 300 HUB装置
 320a、320b、320c、320d、320e ポート
 330 PCI-Expressスイッチ
 340 バッファ
 350 テーブル
 400 CPU
 410 ルートコンプレックス
 420a、420b、420c スイッチ
 430a、430b エンドポイント
 434 エンドポイント
 436 ブリッジ
 500 HUB装置
 510 CPU
 520 ルートコンプレックス
 530 スイッチ
 540a、540b、540c、540d ポート
 600 PC-A
 610 CPU
 620 ルートコンプレックス
 630 スイッチ
 640a、640b、640c、640d ポート
 650 GPU
 660 HD
 670 専用NIC装置
 700 PC-B
 710 CPU
 720 ルートコンプレックス
 730 スイッチ
 740a、740b、740c、740d ポート
 750 GPU
 760 HD
 770 専用NIC装置
 800 専用NIC装置
 840a、840b PCI-Expressコネクタ
 820 送信用FIFO
 830 受信用FIFO
 PC-A パーソナルコンピュータ-A
 PC-B パーソナルコンピュータ-B
 PC-C パーソナルコンピュータ-C
 PC-D パーソナルコンピュータ-D

Claims (14)

  1.  複数のポートを備えたHUB装置と、
     前記ポートに接続された少なくとも1台以上のコンピュータと、
    を備え、I/Oの仮想化を行えるコンピュータシステムにおいて、
     前記コンピュータは、
     そのコンピュータ内部の内部スロットに接続し、前記内部スロットと、前記ポートと、を接続する専用NIC装置、
     を備え、
     前記HUB装置は、
     前記内部スロットの信号と同一の信号をスイッチするスイッチ手段を備え、
     前記スイッチ手段は、前記ポートを介して、前記内部スロットの信号と同一の信号を入出力することを特徴とするコンピュータシステム。
  2.  請求項1記載のコンピュータシステムにおいて、
     前記内部スロットは、PCI-Expressであることを特徴とするコンピュータシステム。
  3.  請求項1記載のコンピュータシステムにおいて、
     前記コンピュータは、
     自己以外の他のコンピュータに備えられたI/Oデバイスの情報を保持する記憶手段、
     を備え、
     前記コンピュータは、前記I/Oデバイスの情報を利用し、前記HUB装置を介して、前記自己以外の他のコンピュータに備えられたI/Oデバイスに対してアクセス可能であることを特徴とするコンピュータシステム。
  4.  請求項3記載のコンピュータシステムにおいて、
     前記I/Oデバイスの情報には、前記自己以外の他のコンピュータに備えられたI/Oデバイスの少なくともアドレス情報が含まれることを特徴とするコンピュータシステム。
  5.  請求項1記載のコンピュータシステムにおいて、
     前記専用NIC装置は、
     第1の内部スロットコネクタと、
     第2の内部スロットコネクタと、
     前記第1の内部スロットコネクタ及び第2の内部スロットコネクタと接続するスイッチ手段と、
     を含み、前記スイッチ手段は、前記第1の内部スロットから入力された信号を、前記第2の内部スロットに出力し、前記第2の内部スロットから入力された信号を、前記第1の内部スロットに出力しすることを特徴とするコンピュータシステム。
  6.  請求項5記載のコンピュータシステムにおいて、前記スイッチ手段には、
     前記第1の内部スロットから入力された信号を、前記第2の内部スロットに出力する際に、前記信号のデータを保存する送信用FIFOと、
     前記第2の内部スロットから入力された信号を、前記第1の内部スロットに出力する際に、前記信号を保存する受信用FIFOと、
     が接続されていることを特徴とするコンピュータシステム。
  7.  請求項1記載のコンピュータシステムにおいて、
     前記内部スロットはPCI-Expressであり、
     前記スイッチ手段は、いずれかの前記ポートから入力したTLPから、所定のアドレスを取り出し、前記所定のアドレスに基づき、行き先を決定し、その行き先のポートへ前記入力したTLPを送出することを特徴とするコンピュータシステム。
  8.  請求項1記載のコンピュータシステムの運用方法において、
     前記1台以上のコンピュータのBIOSを起動して、第1のデバイスリストを作成する第1ステップと、
     前記HUB装置のBIOSを起動して、第2のデバイスリストを作成する第2ステップと、
     前記第1のデバイスリストと、前記第2のデバイスリストとを結合して第3のデバイスリストを作成する第3ステップと、
     前記第3のデバイスリストをOSが利用する第3ステップと、
     を含むことを特徴とするコンピュータシステムの運用方法。
  9.  請求項1記載のコンピュータシステムの運用方法において、
     前記内部スロットは、PCI-Expressであり、
     前記HUB装置中の前記スイッチ手段は、TLPから所定のアドレスを取り出し、前記所定のアドレスに基づき、行き先を決定し、その行き先のポートへ前記入力したTLPを送出することを特徴とするコンピュータシステムの運用方法。
  10.  請求項3又は4記載のコンピュータシステムにおいて、
     前記I/Oデバイスの情報とは、BIOSが作成したデバイスリストであることを特徴とするコンピュータシステム。
  11.  請求項1記載のコンピュータシステムに用いられる前記専用NIC装置であって、
     前記内部スロットの信号と同一の信号をスイッチするスイッチ手段を備え、
     前記スイッチ手段は、前記ポートを介して、前記内部スロットの信号と同一の信号を入出力することを特徴とする専用NIC装置。
  12.  請求項11記載の専用NIC装置において、
     第1の内部スロットコネクタと、
     第2の内部スロットコネクタと、
     前記第1の内部スロットコネクタ及び第2の内部スロットコネクタと接続するスイッチ手段と、
     を含み、前記スイッチ手段は、前記第1の内部スロットから入力された信号を、前記第2の内部スロットに出力し、前記第2の内部スロットから入力された信号を、前記第1の内部スロットに出力しすることを特徴とする専用NIC装置。
  13.  請求項12記載の専用NIC装置において、前記スイッチ手段には、
     前記第1の内部スロットから入力された信号を、前記第2の内部スロットに出力する際に、前記信号のデータを保存する送信用FIFOと、
     前記第2の内部スロットから入力された信号を、前記第1の内部スロットに出力する際に、前記信号を保存する受信用FIFOと、
     が接続されていることを特徴とする専用NIC装置。
  14.  請求項1記載のコンピュータシステムに用いられるHUB装置において、
     前記内部スロットはPCI-Expressであり、
     前記スイッチ手段は、いずれかの前記ポートから入力したTLPから、所定のアドレスを取り出し、前記所定のアドレスに基づき、行き先を決定し、その行き先のポートへ前記入力したTLPを送出することを特徴とするHUB装置。
PCT/JP2013/073637 2013-09-03 2013-09-03 I/oデバイスの仮想化のためのコンピュータシステム及びその運用方法並びにhub装置 WO2015033384A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2013/073637 WO2015033384A1 (ja) 2013-09-03 2013-09-03 I/oデバイスの仮想化のためのコンピュータシステム及びその運用方法並びにhub装置
JP2015535184A JP6203272B2 (ja) 2013-09-03 2013-09-03 I/oデバイスの仮想化のためのコンピュータシステム及びその運用方法並びにhub装置
US15/058,961 US10585842B2 (en) 2013-09-03 2016-03-02 Computer system for virtualizing I/O device and method of operating the same and hub device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/073637 WO2015033384A1 (ja) 2013-09-03 2013-09-03 I/oデバイスの仮想化のためのコンピュータシステム及びその運用方法並びにhub装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/058,961 Continuation US10585842B2 (en) 2013-09-03 2016-03-02 Computer system for virtualizing I/O device and method of operating the same and hub device

Publications (1)

Publication Number Publication Date
WO2015033384A1 true WO2015033384A1 (ja) 2015-03-12

Family

ID=52627894

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/073637 WO2015033384A1 (ja) 2013-09-03 2013-09-03 I/oデバイスの仮想化のためのコンピュータシステム及びその運用方法並びにhub装置

Country Status (3)

Country Link
US (1) US10585842B2 (ja)
JP (1) JP6203272B2 (ja)
WO (1) WO2015033384A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108108170B (zh) * 2018-01-04 2021-04-27 武汉斗鱼网络科技有限公司 一种组件的解耦合方法及系统
FI129675B (en) * 2020-02-11 2022-06-30 Wirepas Oy A solution for separating transmissions from different networks
US11853234B2 (en) * 2022-01-05 2023-12-26 Dell Products L.P. Techniques for providing access of host-local storage to a programmable network interface component while preventing direct host CPU access

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04322348A (ja) * 1991-04-23 1992-11-12 Casio Comput Co Ltd データ処理制御装置
JP2009094778A (ja) * 2007-10-09 2009-04-30 Haptic:Kk 高速ネットワークシステム及び関連装置
JP2010176212A (ja) * 2009-01-27 2010-08-12 Hitachi Ltd ネットワーク機器、端末装置、アクセス制御方法およびデバイス共有システム
JP5069079B2 (ja) * 2007-10-19 2012-11-07 株式会社ハプティック ハブ装置

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08249254A (ja) * 1995-03-15 1996-09-27 Mitsubishi Electric Corp マルチコンピュータシステム
US20020002609A1 (en) * 1999-12-29 2002-01-03 Chung David W. Telecommunications operating system
US9264384B1 (en) * 2004-07-22 2016-02-16 Oracle International Corporation Resource virtualization mechanism including virtual host bus adapters
US7478178B2 (en) * 2005-04-22 2009-01-13 Sun Microsystems, Inc. Virtualization for device sharing
JP4814665B2 (ja) * 2006-03-23 2011-11-16 株式会社日立製作所 ネットワークシステム、ネットワーク機器及びネットワーク所属判定方法
US8250254B2 (en) 2007-07-31 2012-08-21 Intel Corporation Offloading input/output (I/O) virtualization operations to a processor
JP5564948B2 (ja) * 2007-10-26 2014-08-06 日本電気株式会社 I/o接続システムおよびi/o接続方法
US8141094B2 (en) 2007-12-03 2012-03-20 International Business Machines Corporation Distribution of resources for I/O virtualized (IOV) adapters and management of the adapters through an IOV management partition via user selection of compatible virtual functions
JP2009145931A (ja) * 2007-12-11 2009-07-02 Hitachi Ltd 仮想計算機と物理計算機との間のマイグレーション方法及びその計算機システム
JP5028304B2 (ja) * 2008-03-11 2012-09-19 株式会社日立製作所 仮想計算機システム及びその制御方法
JP5180729B2 (ja) * 2008-08-05 2013-04-10 株式会社日立製作所 計算機システム及びバス割当方法
US8332593B2 (en) * 2008-12-24 2012-12-11 Nuon, Inc. Memory space management and mapping for memory area network
JPWO2010084529A1 (ja) * 2009-01-23 2012-07-12 株式会社日立製作所 情報処理システム
JP5074457B2 (ja) * 2009-06-04 2012-11-14 株式会社日立製作所 計算機システム、スイッチ切り替え方法及びpciスイッチ
US8521915B2 (en) * 2009-08-18 2013-08-27 Fusion-Io, Inc. Communicating between host computers and peripheral resources in an input/output (I/O) virtualization system
US20110113166A1 (en) * 2009-11-06 2011-05-12 Cpo Technologies Corporation Method and Apparatus of USB 3.0 Based Computer, Console and Peripheral Sharing
JP5691189B2 (ja) 2010-02-15 2015-04-01 富士通株式会社 給電装置及び給電方法
US8504672B2 (en) * 2010-11-19 2013-08-06 Silicon Image, Inc. Discovery of electronic devices in a combined network
JP5399570B2 (ja) * 2010-11-29 2014-01-29 株式会社日立製作所 計算機システム、それに使用されるスイッチ及びパケット転送制御方法
WO2012086068A1 (ja) * 2010-12-24 2012-06-28 株式会社日立製作所 計算機システムおよびルーティング制御方法
US9940283B2 (en) * 2011-04-11 2018-04-10 Ineda Systems Inc. Application sharing in multi host computing systems
JP5439435B2 (ja) 2011-06-14 2014-03-12 株式会社日立製作所 計算機システムおよびその計算機システムにおけるディスク共有方法
US9229638B1 (en) * 2011-06-16 2016-01-05 Emc Corporation Adaptive flow control for networked storage
WO2013136522A1 (ja) * 2012-03-16 2013-09-19 株式会社日立製作所 計算機システム及び計算機間のデータ通信方法
US20140173157A1 (en) * 2012-12-14 2014-06-19 Microsoft Corporation Computing enclosure backplane with flexible network support
US9195483B2 (en) * 2013-01-28 2015-11-24 Dell Products L.P. Systems and methods for mirroring virtual functions in a chassis configured to receive a plurality of modular information handling systems and a plurality of modular information handling resources
US9244877B2 (en) * 2013-03-14 2016-01-26 Intel Corporation Link layer virtualization in SATA controller
US10684973B2 (en) * 2013-08-30 2020-06-16 Intel Corporation NUMA node peripheral switch

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04322348A (ja) * 1991-04-23 1992-11-12 Casio Comput Co Ltd データ処理制御装置
JP2009094778A (ja) * 2007-10-09 2009-04-30 Haptic:Kk 高速ネットワークシステム及び関連装置
JP5069079B2 (ja) * 2007-10-19 2012-11-07 株式会社ハプティック ハブ装置
JP2010176212A (ja) * 2009-01-27 2010-08-12 Hitachi Ltd ネットワーク機器、端末装置、アクセス制御方法およびデバイス共有システム

Also Published As

Publication number Publication date
JPWO2015033384A1 (ja) 2017-03-02
JP6203272B2 (ja) 2017-09-27
US20160179745A1 (en) 2016-06-23
US10585842B2 (en) 2020-03-10

Similar Documents

Publication Publication Date Title
US9152597B2 (en) Unified system area network and switch
US10474624B2 (en) Systems and methods for using resources in a networked computing environment
JP6055310B2 (ja) 仮想記憶ターゲットオフロード技術
US7937447B1 (en) Communication between computer systems over an input/output (I/O) bus
JP5362980B2 (ja) データ処理システム内で第1のホスト・システムと第2のホスト・システムとの間で通信するための方法、プログラム、およびシステム(ソケット接続および共用メモリを使用するホスト・システム間の通信のためのシステムおよび方法)
US8893013B1 (en) Method and apparatus for providing a hybrid computing environment
US8838867B2 (en) Software-based virtual PCI system
WO2017066944A1 (zh) 一种存储设备访问方法、装置和系统
US20140195634A1 (en) System and Method for Multiservice Input/Output
US10013950B2 (en) Systems and methods for transmitting video, network, and USB signals over extension media
JP2008152783A (ja) データ処理システム内で第1のホスト・システムと第2のホスト・システムとの間で通信するための方法、プログラム、およびシステム(トランザクション・プロトコルおよび共用メモリを使用するホスト・システム間の通信のためのシステムおよび方法)
JP2008152786A (ja) データ処理システム内で1つまたは複数のエンドポイントの第1の物理機能から第2の物理機能に仮想機能を移行するための方法、プログラム、およびシステム(単一ルート・ステートレス仮想機能の移行のためのシステムおよび方法)
US10067900B2 (en) Virtualized I/O device sharing within a distributed processing node system
WO2014032233A1 (zh) 虚拟机热迁移的系统和方法
JP2008165776A (ja) データ処理システムの複数のルート複合体間の通信のために共用メモリを初期設定するための方法、プログラム、およびシステム(複数のルート複合体全域でエンドポイントを共用するために共用メモリを初期設定するためのシステムおよび方法)
US11940933B2 (en) Cross address-space bridging
WO2016095762A1 (zh) 一种虚拟机访问控制方法,及虚拟机访问控制系统
BR112016004712B1 (pt) Dispositivo de interface, sistema, método, e, mídia legível por computador
US11321179B1 (en) Powering-down or rebooting a device in a system fabric
JP6203272B2 (ja) I/oデバイスの仮想化のためのコンピュータシステム及びその運用方法並びにhub装置
EP2905948A1 (en) Message traffic control method and related device, and calculation node
EP2515241B1 (en) Unified system area network and switch
US20100161838A1 (en) Host bus adapter with network protocol auto-detection and selection capability
US11003618B1 (en) Out-of-band interconnect control and isolation
US20100161768A1 (en) Auto-detection and selection of an optimal storage virtualization protocol

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2015535184

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13893157

Country of ref document: EP

Kind code of ref document: A1