WO2017208360A1 - Computer system - Google Patents

Computer system Download PDF

Info

Publication number
WO2017208360A1
WO2017208360A1 PCT/JP2016/066056 JP2016066056W WO2017208360A1 WO 2017208360 A1 WO2017208360 A1 WO 2017208360A1 JP 2016066056 W JP2016066056 W JP 2016066056W WO 2017208360 A1 WO2017208360 A1 WO 2017208360A1
Authority
WO
WIPO (PCT)
Prior art keywords
sector
hypervisor
computer system
computer
fpga
Prior art date
Application number
PCT/JP2016/066056
Other languages
French (fr)
Japanese (ja)
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/JP2016/066056 priority Critical patent/WO2017208360A1/en
Publication of WO2017208360A1 publication Critical patent/WO2017208360A1/en

Links

Images

Classifications

    • 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/46Multiprogramming arrangements
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]

Definitions

  • the present invention generally relates to computer technology, for example, computer virtualization technology.
  • Patent Document 1 discloses a technique for providing and managing access to an FPGA as a service.
  • a system that enables (A) provisioning management for use of a shared FPGA and access control to allow a user's process to access a user-programmed FPGA is a data center server.
  • a user package can be accepted to compile for an FPGA that communicates with.
  • B) The user package can be image copied to the FPGA along with the attached management payload, and the driver and user key can be used to selectively access the FPGA as a service for the data center virtual machine. Can be made possible.
  • C Combin, these elements enable the data center to provide an integrated circuit (ICaaS) as a rentable service. It is disclosed that additional services such as billing tracking, provision management, and access control can be provided to the user, enabling lower costs while realizing significant benefits for the data center. Has been.
  • ICaaS integrated circuit
  • An object of the present invention is to efficiently use resources of a programmable logic device such as an FPGA.
  • a computer system includes a partially configurable programmable logic device, a hypervisor, and a management computer.
  • the programmable logic device includes a plurality of configurable sectors, and the hypervisor Alternatively, when creating a virtual machine, the management computer selects a predetermined sector that is free from a plurality of sectors, and the hypervisor assigns the predetermined sector exclusively to the virtual machine.
  • the resources of the programmable logic device can be used efficiently.
  • the structural example of the computer system which concerns on this embodiment is shown.
  • the example of the hardware constitutions of a server is shown.
  • An example of the logical configuration of the FPGA is shown.
  • the structural example of a VM management table is shown.
  • the structural example of a FPGA sector management table is shown. It is a flowchart which shows the operation example of the hypervisor in the validation process of FPGA.
  • the example of the management screen for VM creation is shown. It is a flowchart which shows the operation example of the hypervisor in the VM new creation process. It is a flowchart which shows the operation example of the hypervisor in the sector initialization process of FPGA.
  • the example of the management screen for VM change is shown.
  • abc table information may be described using the expression “abc table”, but the information may be expressed in any data structure. That is, the “abc table” can be referred to as “abc information” to indicate that the information does not depend on the data structure.
  • the process may be described using “program” as a subject.
  • the program is executed by a processor (for example, a CPU (Central Processing Unit)), so that a predetermined process is appropriately performed.
  • a processor for example, a CPU (Central Processing Unit)
  • the subject of processing may be a processor and an apparatus having the processor. Part or all of the processing performed by the processor may be performed by a hardware circuit.
  • the computer program may be installed from a program source.
  • the program source may be a program distribution server or a storage medium (for example, a portable storage medium).
  • the “CPU” may be a so-called core inside the CPU, but for the sake of simplicity of explanation, the “CPU” will be described as being unified.
  • a core inside the CPU is called a “CPU core”, and when referring to a CPU including a plurality of cores, it is called a “CPU package”.
  • the CPU package may include a CPU core and a programmable logic device.
  • the management computer also includes an interface device connected to one or more I / O devices including a display device, a storage resource (for example, a memory) that stores information, and a processor connected to the interface device and the storage resource.
  • the display device may be a display device included in the management computer or a display computer connected to the management computer.
  • the I / O device may be an I / O device (for example, a keyboard and a pointing device or a touch panel) included in the management computer, a display computer connected to the management computer, or another computer. That the management computer “displays the display information” is to display the display information on the display device, and this may be to display the display information on the display device of the management computer.
  • the management computer may transmit display information to the display computer (in the latter case, the display information is displayed by the display computer).
  • the management computer inputting / outputting information may be inputting / outputting information to / from an I / O device of the management computer, or a remote computer connected to the management computer (for example, a display)
  • Information may be input / output to / from the computer.
  • the information output may be a display of information.
  • FIG. 1 shows a configuration example of a computer system 1 according to this embodiment.
  • the computer system 1 includes a server 20, a client 30, a management computer 10, a management client 34, a WEB server 32, and a storage device 36.
  • the client 30, the WEB server 32, and the server 20 may be connected via a wide area network (WAN) 40, which is an example of a communication network, so that bidirectional communication is possible.
  • the management client 34, the WEB server 32, the management computer 10, and the server 20 may be connected via a local area network (LAN) 42, which is an example of a communication network, so that bidirectional communication is possible.
  • the storage device 36 and the server 20 may be connected via a storage area network (SAN) 44, which is an example of a communication network, so that bidirectional communication is possible.
  • WAN wide area network
  • SAN storage area network
  • the server 20 is an example of a computer and includes a hypervisor 200 and an FPGA 23.
  • the hypervisor 200 is a mechanism for realizing a virtual machine (VM) 220 by controlling physical resources (for example, computing resources, storage resources, communication resources, etc.) of the server 20.
  • the FPGA 23 is an example of a programmable logic device, and is a device that can configure a desired logic circuit.
  • the FPGA 23 may have a plurality of sectors, and only a certain sector may be configured (that is, partially).
  • the storage device (storage system) 36 is a device capable of storing data.
  • the storage device 36 may include a storage device such as a hard disk drive (HDD), a solid state drive (SSD), or a flash memory.
  • the storage apparatus 36 may configure a Redundant Arrays of Inexpensive Disks (RAID) group using a plurality of storage devices.
  • RAID Redundant Arrays of Inexpensive Disks
  • the VM 220 operating on the server 20 may be able to use a logical storage area (logical volume) provided by the storage device 36 (read and write data).
  • the client 30 is a computer (terminal) used by the user of the VM 220.
  • the management computer (or management system) 10 is a computer for managing the server 20 and the storage device 36 included in the computer system 1.
  • the management client 34 is a computer (terminal) used by the administrator of the computer system 1. An administrator may be able to operate the management computer 10 via the management client 34.
  • the WEB server 32 may provide a WEB page (Graphical User Interface (GUI)) to the client 30 or the management client 34.
  • GUI Graphic User Interface
  • the WEB server 32 provides the management client 34 with a WEB page for operating the management computer 10.
  • the WEB server 32 provides the client 30 with a WEB page for operating the VM 220.
  • VM creation, VM deletion, or operation or display of a program executed in the VM can be considered.
  • FIG. 2 shows an example of the hardware configuration of the server 20.
  • the server 20 may include a CPU 21, a memory 22, a Network Interface Card (NIC) 24, a Host Bus Adapter (HBA) 25, and an FPGA 23 as hardware configuration elements. These elements 21 to 25 may be connected by a bus 26 capable of bidirectional communication.
  • NIC Network Interface Card
  • HBA Host Bus Adapter
  • the CPU 21 is a device for realizing various functions of the server 20 by processing programs and data stored in the memory 22.
  • the memory 22 is a device for storing programs and data used by the CPU 21 and other devices 23, 24 and 25.
  • Examples of the memory 22 are Dynamic Random Access Memory (DRAM), Magnetically Responsive Random Access Memory (MRAM), and Ferroelectric Random Access Memory (FeRAM).
  • DRAM Dynamic Random Access Memory
  • MRAM Magnetically Responsive Random Access Memory
  • FeRAM Ferroelectric Random Access Memory
  • the NIC 24 is an interface device for connecting the server 20 to the WAN 40 or the LAN 42.
  • An example of the NIC 24 is an Ethernet (registered trademark) adapter compatible with PCI Express (PCIe).
  • the HBA 25 is an interface device for connecting the server 20 to the SAN 44.
  • An example of the HBA 25 is a PCIe compatible fiber channel adapter. Note that the HBA 25 may be integrated into the NIC 24.
  • the FPGA 23 is a kind of programmable logic device and is a device capable of partially configuring an arbitrary logic circuit.
  • An example of the FPGA 23 is a PCIe compatible FPGA card.
  • SRAM volatile memory
  • a circuit called a logic block simulates the circuit operation by referring to the volatile memory. Yes. Therefore, so-called configuration including loading of configuration data into the volatile memory is required every time the FPGA package is powered on, which is complicated. For this reason, when the FPGA 23 is provided in the form of a card, a nonvolatile memory storing configuration data is mounted on the card.
  • the FPGA package When the FPGA card is powered on, the FPGA package performs configuration (internal configuration) by reading configuration data from the nonvolatile memory.
  • the external configuration includes (1) transmitting configuration data from outside the FPGA 23 to the FPGA 23, and (2) performing configuration of the FPGA with configuration data transmitted from the outside (data from the outside).
  • the data may be stored in the nonvolatile memory of the FPGA 23 and read from there, or configuration data from the outside may be received directly).
  • the “configuration” in the following description of the embodiment will be described assuming this external configuration.
  • FIG. 3 shows an example of the logic (function) configuration of the FPGA 23.
  • the FPGA 23 may include an endpoint 110, a configuration controller 130, a configurable area 100, and an authentication module 124 as elements of a logical (functional) configuration.
  • the endpoint 110 provides an endpoint in PCIe to an external element (such as the hypervisor 200).
  • the endpoint 110 corresponds to Single Root I / O Virtualization (SR-IOV), and can provide at least one physical function (PF) 112 and a plurality of virtual functions (VF) 114.
  • the hypervisor 200 exclusively allocates the VF 114 to each VM 220. Note that the PF 112 may be occupied by the hypervisor (that is, the PF 112 is not shown as a function in the PCI Express of the VM 220).
  • Configurable area 100 is an area where an arbitrary logic circuit can be partially configured.
  • the configurable area 100 may include a plurality of sectors 120 each configurable.
  • the configuration controller 130 can receive configuration data and configure a logic circuit in at least a part of the configurable area 100.
  • the configuration data is created by processing the source described by, for example, Hardware Description Language (HDL) with logic synthesis software.
  • HDL Hardware Description Language
  • the endpoint 110, the configuration controller 130, and the authentication module 124 described above may be configured by configuration data, and a circuit may physically exist in the FPGA 23.
  • the configuration controller 130 may configure a basic logic circuit in the configurable area 100 based on the basic configuration data.
  • the basic logic circuit may include a plurality of sectors 120, a plurality of access control modules 122, and a bus 132, for example, as shown in FIG. That is, the basic configuration data may include configuration data for a plurality of sectors 120, a plurality of access control modules 122, and a bus 132.
  • Arbitrary logic circuits can be configured (partial configuration) in the sector 120. That is, the configuration controller 130 can configure a logic circuit in the sector 120 based on the configuration file.
  • the access control module 122 is a module that controls access from the VF 114 to the sector 120 associated (connected) with itself.
  • the VF ID of the VF 114 that is permitted to access the sector 120 may be set.
  • the access control module 122 permits access from the VF 114 conforming to the VF ID set for itself to the sector 120 associated with itself, and denies access from other VFs. It's okay.
  • the access control module 122 and the sector 120 may be associated on a one-to-one basis, or may be associated on a one-to-N basis (N is an integer of 2 or more). As an exception to the access denial, access from the hypervisor 200 may be permitted.
  • the predetermined sector 120 can be exclusively allocated to one or more predetermined VMs 220.
  • the VF ID setting can be changed by accessing from the hypervisor 200.
  • the authentication module 124 is a module for authenticating the configuration authority for the sector 120 in the configurable area 100.
  • the configuration data of the sector 120 is described as being transmitted to the PF 112 or VF 114 so that the configuration controller 130 receives the configuration data.
  • the configuration data from the path other than the PF 112 or VF 114 is used. Data may be received.
  • the hypervisor 200 preferably sets each sector 120 to be configurable. Accordingly, each authentication module 124 may be set to permit the PF 112 associated with the hypervisor 200 as a standard.
  • the VM 220 may also configure the sector 120 assigned to itself.
  • the authentication module 124 allows the authentication module 124 corresponding to the sector 120 assigned to the predetermined VM 220 to be configured from the VF 114 associated with the predetermined VM, and otherwise.
  • the configuration from the VF 114 (or the VM 220) may be rejected (except for the hypervisor 200).
  • the sector 120 can be prevented from being configured (for example, tampered) by another VM 220.
  • the authentication module 124 and the sector 120 may be associated with each other one to one, or may be associated with one to N (N is an integer of 2 or more). Note that if it is not assumed that configuration data is received from the VF 114, the authentication module 124 only needs to have a mechanism that limits the functions that can receive configuration data to the PF 112 only.
  • the VF 114a is provided to the VM 220a, and the VF 114a is associated with the sectors 120a and 120b. That is, the function of the VF 114a is realized by a logic circuit configured in the sectors 120a and 120b.
  • the VF ID of the VF 114a may be set in the access control module 122a corresponding to the sector 120a and the access control module 122b corresponding to the sector 120b.
  • a VF 114b is provided to the VM 220b, and the VF 114b is associated with the sector 120c.
  • the sector 120d is an empty sector that is not associated with any VF.
  • such an empty sector 120 may be already initialized before the VF 114 is associated. This is because if not initialized, the information of the logic circuit configured in this empty sector 120 (an example is information stored in the Block RAM mentioned below) This is because it may be leaked to another VM 220 to be used, which is not preferable in terms of security. Details of the process related to the initialization will be described later.
  • VM1 and VM2 the following can be considered.
  • VM for server For example, a part of OLTP processing or OLAP processing using a search engine or a database is left to the FPGA.
  • the application program In the server program, the application program is executed, and the sector dedicated to the VM is configured with configuration data corresponding to the application program.
  • Storage VM. Speedup can be expected by causing the FPGA to execute a part of storage processing such as encryption, compression, and deduplication. That is, the storage processing program is executed in the storage VM, and the sector dedicated to the storage VM is configured with configuration data that realizes data compression, data encryption, or data deduplication.
  • such a flexible operation of creating a plurality of server VMs, creating a plurality of storage VMs alone, or creating them in a mixed manner can also be realized by the server 20 including the FPGA 23.
  • the server VM and the storage VM may be created together by a VM creation operation described later.
  • the hypervisor is in charge of the processing of the sector 120 of the FPGA 23 and the resources allocated to the VM 220, and performs subsequent management.
  • the management computer 10 may perform part or all of the search processing for such resources and sectors 120.
  • the resources, the free capacity of the sector 120, the used capacity, the load, etc. are monitored for each server 20, and the server 20 that creates the VM 220 is determined.
  • the hypervisor of the server 20 determines which resource in the server 20 is actually allocated to the VM.
  • the FPGA 23 may execute the following processing. A typical example of the operation will be described later (see FIGS. 6 and 9).
  • the configuration controller 130 initializes the configurable area 100. For example, the configuration controller 130 clears a Block RAM (BRAM) in the configurable area 100.
  • BRAM Block RAM
  • the configuration controller 130 configures a basic logic circuit in the configurable area 100 based on the basic configuration data. Thereby, as shown in FIG. 3, a plurality of sectors 120, a plurality of access control modules 122, a bus 132, and the like are configured in the configurable area 100. At this time, the configuration controller 130 may associate the sector 120 with the authentication module 124.
  • the endpoint 110 enables the SR-IOV function. That is, the end point 110 enables a plurality of VFs 114. Thereby, the hypervisor 200 can recognize a plurality of VFs 114.
  • Each process described above may be executed based on a command issued from the hypervisor 200 to the endpoint 110.
  • the hypervisor 200 may issue these instructions to the endpoint 110 based on the request transmitted from the management computer 10.
  • a plurality of sectors 120 and the like are configured in the configurable area 100 of the FPGA 23, and a plurality of VFs 114 are configured in the end point 110.
  • the management computer 10 determines the sector 120 to be allocated to the new VM 220 based on the FPGA sector management table 300 (see FIG. 5) for managing the correspondence between the VM 220 and the sector 120.
  • the number of sectors assigned to the new VM 220 may be one or more.
  • the hypervisor 200 determines a VF 114 to be associated with one or more sectors 120 to be allocated to the new VM 220.
  • the configuration controller 130 initializes the sector 120 associated with the VF 114 determined by the hypervisor 200.
  • the configuration controller 130 sets the authentication module 124 of the sector 120 associated with the VF 114 to permit the configuration from the VF 114.
  • the hypervisor 200 sets the VF ID of the VF 114 in the access control module 122 of the sector 120 associated with the VF 114.
  • the configuration controller 130 configures a logic circuit in the sector 120 assigned to the new VM 220 based on the configuration data.
  • the hypervisor 200 provides the VF 114 to the new VM 220.
  • the OS 222 running on the new VM 220, the application running on the OS 222, and the like can use the functions configured in the sector 120 corresponding to the VF 114 through a predetermined device driver.
  • the new VM 220 can use the function configured in the sector 120 allocated to itself. That is, the resources of one FPGA 23 can be used from a plurality of VMs 220. In some cases, the sector 120 to which the program to be executed by the new VM 220 is assigned is configured. In this case, configuration as an operation when creating a VM may be omitted.
  • the VMs 220 other than the new VM 220 cannot access or configure the sector 120 assigned to the new VM 220. That is, the sector 120 allocated to the new VM 220 is not accessed or configured (tampered) by other VMs 220.
  • the logic circuit and data configured in the sector 120 by the user of the previous VM 220 are prevented from leaking to the user of the new VM 220. .
  • the resources of the FPGA 23 can be used safely and efficiently by a plurality of VMs 220 and users.
  • the management computer 10 determines a deletion target VM (deletion VM) 220. A typical example of the operation will be described later (see FIG. 13).
  • the hypervisor 200 deletes the deletion target VM and identifies the VF 114 associated with the deletion VM 220.
  • the hypervisor 200 deletes the VF ID of the VF 114 from the access control module 122 of the sector 120 corresponding to the specified VF 114.
  • the configuration controller 130 deletes the configuration permission setting of the VF 114 from the authentication module 124 corresponding to the VF 114.
  • the configuration controller 130 initializes the sector 120 corresponding to the deleted VM 220.
  • the initialized sector 120 becomes a free sector 120 and can be allocated to another new VM 220.
  • the sector 120 allocated to the deleted VM 220 can be released. If the relationship between the VF 114 and the sector 120 remains the same, the deletion of the VD ID related to the access control module 122 and the deletion of the configuration permission setting related to the authentication module 124 may be omitted. However, when it is desired to dynamically change the number of sectors 120 allocated to the VF 114, it is preferable to delete the VF ID related to the access control module 122 and the configuration permission setting related to the authentication module 124.
  • the sector 120 assigned to the deleted VM 220 is initialized so that the logic circuit and data (for example, data stored in the BRAM) configured in the sector 120 are used next time. Can be prevented from leaking.
  • the initialization process when allocating the sector 120 to the new VM 220 described above may be omitted.
  • FIG. 4 shows a configuration example of the VM management table 350.
  • the VM management table 350 is a table for managing the VM 220 created in the computer system 1.
  • the VM management table 350 may be held in a storage device of the management computer 10.
  • the VM management table 350 may be a table for managing the VM 220 created in the server 20.
  • the VM management table 350 may be held in a storage device of each server 20 (or hypervisor 200).
  • the VM management table 350 includes, as item values, VM ID 352, server ID 354, OS type 356, CPU number 358, memory capacity 360, NIC number 362, NIC setting 364, storage type 366, storage capacity 368, allocated sector number 370, config.
  • Configuration file ID 374 abbreviated as Conf file ID
  • configuration file ID 374 abbreviated as Conf file number in the figure.
  • the configuration file is a file that stores the above-described configuration data. However, a data storage format other than a file may be used as long as configuration data can be stored.
  • the VM ID 352 is an identifier of the VM 220.
  • the VM ID 352 may be a VM name.
  • the server ID 354 is an identifier of the server 20 having the VM 220 having the VM ID 352.
  • the server ID 354 may be a server name (or host name).
  • the OS type 356 is a type of the OS 222 that runs on the VM 220 with the VM ID 352. Examples of the OS type 356 are Linux (registered trademark) and Windows (registered trademark).
  • the CPU number 358 is the number of virtual CPUs of the VM 220 with the VM ID 352.
  • the memory capacity 360 is a virtual memory capacity of the VM 220 with the VM ID 352.
  • the NIC number 362 is the number of virtual NICs that the VM 220 with the VM ID 352 has.
  • the NIC setting 364 is a virtual NIC setting that the VM 220 with the VM ID 352 has.
  • the VM management table 350 may have item values of the NIC setting 364 corresponding to the NIC number 362.
  • the storage type 366 is a virtual storage type that the VM 220 with the VM ID 352 has. Examples of the storage type 366 are HDD, SSD, flash memory, and the like.
  • the storage capacity 368 is a virtual storage capacity of the VM 220 with the VM ID 352.
  • the above items 354 to 368 may be changed to other items as long as they indicate the configuration of the VM, and some items may be omitted.
  • the allocated sector number 370 is the number of sectors 120 of the FPGA 23 allocated to the VM 220 with the VM ID 352.
  • the configuration file number 372 is the number of configuration files for configuring the logic circuit used by the VM 220 having the VM ID 352.
  • the configuration file ID 374 is an identifier of a configuration file for configuring a logic circuit used by the VM 220 having the VM ID 352.
  • the configuration file ID 374 may be a configuration file name.
  • the VM management table 350 may have item values of the configuration file ID 374 corresponding to the number of configuration files 372.
  • These item values may be values input by the administrator from the VM creation management screen (see FIG. 7).
  • FIG. 5 shows a configuration example of the FPGA sector management table 300.
  • the FPGA sector management table 300 is a table for managing which sector 120 and VF 114 of the FPGA 23 are allocated to which VM 220 of the FPGA 23 of each server 20.
  • the FPGA sector management table 300 may be held in a storage device of the management computer 10.
  • the FPGA sector management table 300 may be a table for managing which sector 120 and VF 114 of the FPGA 23 of the server 20 is assigned to which VM 220 created in the server 20. .
  • the FPGA sector management table 300 may be held in a storage device of each server 20 (or hypervisor 200).
  • the FPGA sector management table 300 may include an FPGA ID 302, a sector number 304, a VM ID 306, and a VF ID 308 as item values.
  • the FPGA ID 302 is an identifier of the FPGA 23.
  • the sector number 304 is a number for identifying the sector 120 included in the FPGA 23 of the FPGA ID 302.
  • VM ID 306 is an ID of VM 220 to which sector 120 of sector number 304 is assigned.
  • the VM ID 306 may be “N / A”.
  • the same VM ID 306 is associated with different sector numbers 304, it may indicate that a sector (that is, a plurality of sectors) with the different sector numbers 304 is assigned to the VM 220 of the VM ID 306. .
  • the VF ID 308 is the ID of the VF 114 associated with the sector 120 with the sector number 304.
  • the VF ID 308 may be “N / A”.
  • the VF 114 of the VF ID 308 indicates that the sector (that is, a plurality of sectors) 120 with the different sector numbers 304 is associated. It's okay.
  • FIG. 6 is a flowchart showing an operation example of the hypervisor 200 in the FPGA 23 validation process.
  • movement although the case where the hypervisor 200 recognizes FPGA23 is considered, you may implement at another timing.
  • the management computer 10 transmits an FPGA activation request to the hypervisor 200 of the server 20 that activates the FPGA 23.
  • the hypervisor 200 receives the FPGA validation request from the management computer 10, the hypervisor 200 proceeds to S102.
  • the FPGA validation request may include a request for validation of the SR-IOV of the FPGA 23.
  • the hypervisor 200 instructs the PF 112 of the FPGA 23 to configure a basic logic circuit.
  • the sector 120, the access control module 122, the bus 132, and the like as shown in FIG. 3 are configured in the configurable area 100 of the FPGA 23.
  • each sector 120 may be initialized by an initialization process described later (see FIG. 9). Then, the process proceeds to S104.
  • the hypervisor 200 commands the PF 112 of the FPGA 23 to enable SR-IOV. As a result, a plurality of VFs 114 are validated at the end point 110 of the FPGA 23, and the hypervisor 200 can recognize these VFs 114. Then, the process proceeds to S106.
  • the sector 122, the access control module 122, and the like are configured in the configurable area 100 of the FPGA 23, and the hypervisor 200 can recognize the VF 114 of the FPGA 23.
  • FIG. 7 shows an example of a management screen 1000 for creating a VM.
  • the administrator may be able to input the parameters of the VM 220 to be created from the VM creation management screen 1000 shown in FIG.
  • the parameters that can be input from the management screen 1000 for creating a VM and the item values in the VM management table 350 may be in a correspondence relationship.
  • the management computer 10 When the administrator inputs parameters from the VM creation management screen 1000 and presses the “Done” button 1002, the management computer 10 is notified of this and the VM 220 new creation process shown in FIG. 8 is executed. Good.
  • the configuration requirements of the VM to be created for example, Host name to Storage Size in the diagram
  • the FPGA configuration requirements to be allocated to the VM for example, FPGA Sectors to Config. 1 are input. To do.
  • a template may be used when creating a VM.
  • the management computer 10 or the hypervisor 200 stores a template that defines the VM configuration requirements and the FPGA configuration requirements as input in FIG. 7, and when actually creating a VM, the client 30 or In this example, the management client 34 performs a VM creation operation by designating the template.
  • the screen of FIG. 7 may be a screen for creating the template.
  • FIG. 8 is a flowchart showing an operation example of the hypervisor 200 in the new creation process of the VM 220.
  • the management computer 10 transmits a VM creation request to the hypervisor 200 of the server 20 that creates the VM 220.
  • the hypervisor 200 proceeds to S201.
  • the VM creation request may include parameters input from the VM creation management screen 1000 (each record item value in the VM management table 350; the same applies hereinafter).
  • the hypervisor 200 allocates the physical resources of the server 20 to the VM 220 based on the parameters included in the VM creation request. For example, the hypervisor 200 allocates computing resources, storage resources, network resources, and the like to the VM 220. Then, the process proceeds to S202.
  • the resource selection process to be allocated is performed as part of this step. However, the hypervisor 200 may perform the process, or the management computer 10 may perform at least a part of the process.
  • the hypervisor 200 determines whether or not the sector 120 needs to be allocated to the VM 220 based on the number of allocated sectors included in the VM creation request. When the determination result is “YES” (when the number of allocated sectors is 1 or more), the hypervisor 200 proceeds to S204, and when “NO” (when the number of allocated sectors is 0), the hypervisor 200 proceeds to S214.
  • the processing may be performed by the hypervisor 200, or at least a part of the processing may be performed by the management computer 10.
  • the hypervisor 200 allocates to the VM 220 the empty sectors 120 corresponding to the number of allocated sectors and the VF 114 associated with the empty sectors 120.
  • the hypervisor 200 may select a plurality of empty sectors so that the signal transmission distance between the sectors is the shortest. As a result, the operation speed of the logic circuit configured by using a plurality of empty sectors can be improved. Then, the process proceeds to S206.
  • the hypervisor 200 sets the authentication module 124 corresponding to the sector 120 allocated to the VM 220 to permit the configuration from the VM 220. Then, the process proceeds to S208.
  • the hypervisor 200 sets the VF ID of the VF 114 in the access control module 122 of the sector 120 associated with the VF 114. As a result, the VF 114 can access the sector 120. Then, the process proceeds to S210.
  • the hypervisor 200 determines whether or not a configuration file is specified in the VM creation request. The hypervisor 200 proceeds to S212 when the determination result is “YES”, and proceeds to S214 when the determination result is “NO”. The processing may be performed by the hypervisor 200, or at least a part of the processing may be performed by the management computer 10.
  • the hypervisor 200 configures a logic circuit based on the designated configuration file in the allocated sector 120 (for example, configuration data from the configuration file).
  • the configuration data is transmitted to the PF 112 while designating the sector, and the configuration controller 130 configures the designated sector using the received configuration data). Then, the process proceeds to S214.
  • the hypervisor 200 returns a completion response to the VM creation request to the management computer 10.
  • the management computer 10 that has received this completion response reflects the content of the VM creation request (that is, the allocation relationship between the VM (and VF) and the sector) in the FPGA sector management table 300. Then, this process ends.
  • the VM 220 can be generated, and the VM 220 can use the function of the logic circuit configured in the sector 120 corresponding to the VF 114.
  • FIG. 9 is a flowchart showing an operation example of the hypervisor 200 in the sector initialization process of the FPGA 23.
  • the hypervisor 200 commands the FPGA 23 to initialize (clear) the sector 120.
  • This instruction may include a sector number to be initialized.
  • the configuration controller 130 of the FPGA 23 that has received this initialization command initializes the sector 120 to be initialized. For example, the configuration controller 130 clears the BRAM of the sector 120. Further, the logic circuit configured in the sector may be cleared. Then, the FPGA 23 returns a completion response to the initialization instruction of the sector 120 to the hypervisor 200.
  • the hypervisor 200 confirms that the sector 120 has been initialized (optional). For example, the hypervisor 200 attempts to read the BRAM of the sector 120 to be initialized, and determines whether or not it has been correctly cleared. Alternatively, a logic circuit configured in the sector 120 may be driven. Then, the process returns to the caller of this process.
  • the desired sector 120 can be initialized by the above processing. By executing the initialization process of the sector 120 as necessary, for example, when deleting the existing VM 220 and / or allocating the sector 120 to the new VM 220, the logic circuit and data of the sector 120 are changed. , It is possible to prevent leakage to another person's VM 220.
  • FIG. 10 shows an example of a management screen 1200 for changing VMs.
  • the administrator may be able to change the configuration (parameter) of the created VM 220 from the VM change management screen 1200 shown in FIG.
  • the parameters that can be changed from the VM change management screen 1200 and the item values in the VM management table 350 may be in a correspondence relationship.
  • the management computer 10 When the administrator changes the parameter from the VM change management screen 1200 and presses the “Done” button 1202, the management computer 10 is notified to that effect, and the configuration change process of the VM 220 shown in FIG. 11 is executed. Good. Note that a template may be used to change the configuration of the VM as in the VM creation.
  • FIG. 11 is a flowchart illustrating an operation example of the hypervisor 200 in the configuration change process of the VM 220.
  • the management computer 10 transmits a VM change request to the hypervisor 200 of the server 20 including the VM 220 to be changed.
  • the hypervisor 200 proceeds to S301.
  • the VM change request may include parameters changed from the VM change management screen 1200.
  • the hypervisor 200 changes the physical resource allocated to the VM 220 based on the parameter included in the VM change request. Then, the process proceeds to S304.
  • the hypervisor 200 determines whether the number of assigned sectors after the change included in the VM change request is “increase”, “decrease”, or “match” compared to the original number of assigned sectors. .
  • the hypervisor 200 proceeds to S310 when the number of allocated sectors after the change is “increase”, proceeds to S320 when it is “decreased”, and proceeds to S330 when “match”.
  • the processing is described on the assumption that the sector in which the logic circuit to be continuously used before and after the sector allocation change (including coincidence) is configured is not changed, but the sector change is not limited. . For example, when the sector to be configured is changed, processing for deallocating the sector before the change and assigning the sector for the change destination may be added.
  • the hypervisor 200 selects a free sector to be newly allocated to the VM 220 according to the increased number.
  • the hypervisor 200 may select a plurality of empty sectors so that the signal transmission distance between the sectors is as short as possible.
  • the hypervisor 200 sets the configuration permission from the VF 114 provided to the VM 220 and the VF ID in the authentication module 124 and the access control module 122 corresponding to the allocated empty sector 120. As a result, the VF 114 can change and access the configuration of the newly allocated sector 120. Then, the process proceeds to S312.
  • the hypervisor 200 determines whether or not a configuration file is specified in the VM change request. If the determination result is “YES”, the hypervisor 200 proceeds to S314, and if “NO”, the hypervisor 200 proceeds to S330.
  • the hypervisor 200 selects one of the sectors 120 allocated to the VM 220 according to the decreased number and the designation of the administrator. The sector 120 to be deallocated is selected. Then, the hypervisor 200 deletes the VF ID and configuration permission setting of the VF 114 provided to the VM 220 from the access control module 122 and the authentication module 124 corresponding to the sector 120 to be deallocated. As a result, the VF 114 cannot access or configure the sector 120 to be deallocated. Then, the process proceeds to S322.
  • the hypervisor 200 initializes the sector 120 to be deallocated (see FIG. 9). Then, the process proceeds to S330.
  • the hypervisor 200 returns a completion response to the VM change request to the management computer 10.
  • the management computer 10 that has received this completion response reflects the content of the VM change request (that is, the change in the allocation relationship between the VM (and VF) and the sector) in the FPGA sector management table 300. Then, this process ends.
  • the configuration of the VM 220 can be changed, and the correspondence relationship between the VM 220 and the sector 120 can also be changed.
  • FIG. 12 shows an example of a management screen 1300 for deleting a VM.
  • the administrator can delete the VM 220 already created in the server 20 from the VM deletion management screen 1300 shown in FIG.
  • the management computer 10 When the administrator selects the VM 220 to be deleted from the VM deletion management screen 1300 and presses the “Done” button 1302, the management computer 10 is notified to that effect, and the deletion processing of the VM 220 shown in FIG. 13 is executed. It's okay.
  • FIG. 13 is a flowchart illustrating an operation example of the hypervisor 200 in the deletion process of the VM 220.
  • the management computer 10 transmits a VM deletion request to the hypervisor 200 of the server 20 including the VM 220 to be deleted.
  • the hypervisor 200 proceeds to S401.
  • the VM deletion request may include the VM ID of the VM 220 selected from the VM deletion management screen 1300.
  • the hypervisor 200 determines whether or not the sector 120 has been allocated to the VM 220. If the determination result is “YES”, the hypervisor 200 proceeds to S406, and if “NO”, the hypervisor 200 proceeds to S412.
  • the hypervisor 200 deletes the VF ID and the configuration permission setting of the VF 114 provided to the VM 220 from the access control module 122 and the authentication module 124 corresponding to the sector 120 to deal with the deallocation. As a result, the VF 114 cannot access and configure the sector 120 to be deallocated. Then, the process proceeds to S410.
  • the hypervisor 200 returns a completion response to the VM deletion request to the management computer 10.
  • the management computer 10 that has received this completion response reflects the contents of the VM deletion request (that is, the deallocation relationship between the VM (and VF) and the sector) in the FPGA sector management table 300. Then, this process ends.
  • the sector 120 allocated to the VM 220 to be deleted can be made a free sector. Furthermore, since the empty sector 120 is initialized, it is possible to prevent the logic circuit and data of the sector 120 from leaking to another person's VM 220.
  • FIG. 14 is a flowchart showing an operation example of the hypervisor 200 in the forced initialization process of the sector 120.
  • a certain sector may adversely affect the operation of a nearby (adjacent) sector 120. That is, there is a risk of adversely affecting the operation of another person's VM 220.
  • a logic circuit that causes an FPGA thermal runaway in sector 120 is configured and operating. Such a sector 120 may require a forced initialization.
  • a processing example in such a case will be described.
  • the hypervisor 200 requests the temperature of each sector 120 from the FPGA 23, and acquires the temperature of each sector 120.
  • the hypervisor 200 may periodically execute this request.
  • the processing may be performed by the hypervisor 200, or at least a part of the processing may be performed by the management computer 10.
  • the hypervisor 200 determines whether or not there is a sector 120 whose temperature is higher than a predetermined threshold. When the determination result is “YES”, the hypervisor 200 proceeds to S504, and when the determination result is “NO”, the hypervisor 200 ends the process.
  • the processing may be performed by the hypervisor 200, or at least a part of the processing may be performed by the management computer 10.
  • S504 If the determination result in S502 is “YES”, the hypervisor 200 determines from the access control module 122 and the authentication module 124 corresponding to the sector 120 whose temperature is higher than the predetermined threshold value, the VF ID and the VF ID set therein. Delete configuration permission settings. As a result, the VF 114 with the VF ID cannot access and configure the sector 120 whose temperature is abnormally high. Then, the process proceeds to S506.
  • the hypervisor 200 initializes the sector 120 whose temperature is abnormally high (see FIG. 9). Then, this process ends.
  • the sector 120 having an abnormally high temperature can be forcibly initialized, and adverse effects on the operation of the nearby sector 120 can be prevented.
  • this embodiment can be applied in addition to thermal runaway as long as the predetermined sector adversely affects adjacent sectors because of the configuration data, and the hypervisor has an adverse effect on the state of the predetermined sector.
  • the item for determining may be other than temperature.
  • FIG. 15 shows a configuration example of a computer system 2 that is a modification of the computer system 1.
  • the computer system 2 in FIG. 15 is a computer system in which the FPGA 23 existing in each server 20 in FIG.
  • the FPGA server 38 may include a hypervisor 202 and an FPGA 23.
  • the server 20 may include a hypervisor 201.
  • the hypervisor 201 of the server 20 and the hypervisor 202 of the FPGA server 38 may cooperate via the LAN 42 so that the VM 220 of the server 20 can use the FPGA 23 of the FPGA server 38 as described above.
  • the hypervisor 201 of the server 20 may transmit the above-described command to the hypervisor 202 of the FPGA server 38 via the LAN 42, so that the computer system 2 can realize the same as the above-described computer system 1. .
  • the resources of the FPGA 23 can be shared by the plurality of servers 20, so that the resources of the FPGA 23 can be used more efficiently.
  • the server 20 may include a VM 220 that does not use the FPGA 23.
  • Computer system 10 Management computer 20: Server 23: FPGA 200, 201, 202: Hypervisor 220: Virtual computer

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

A computer system comprising a partially configurable programmable logic device, a hypervisor, and a management computer, wherein: the programmable logic device includes a plurality of configurable sectors; the hypervisor or the management computer selects available predetermined sectors from among the plurality of sectors when creating a virtual computer; and the hypervisor allocates the predetermined sectors exclusively to the virtual computer.

Description

計算機システムComputer system
 本発明は、概して計算機の技術に関し、例えば、計算機の仮想化技術に関する。 The present invention generally relates to computer technology, for example, computer virtualization technology.
 Central Processing Unit(CPU)と比較して電力性能比の高いField Programmable Gate Array(FPGA)をデータセンタなどで利用することが検討されている。特許文献1の開示技術には、サービスとしてのFPGAへのアクセスを提供し、かつ管理するための技術が開示されている。具体的には、(A)共用のFPGA使用のためのプロビジョニング管理、およびユーザ仕様にプログラムされたFPGAにユーザのプロセスがアクセスできるようにするためのアクセス制御を可能にするシステムは、データセンタサーバと通信するFPGAに向けてコンパイルするためのユーザパッケージを受け入れることができる。(B)ユーザパッケージは、付加された管理ペイロードと共にFPGAにイメージコピーすることができ、またドライバおよびユーザキーを使用して、データセンタ仮想マシンに対して、サービスとしてのFPGAへの選択的なアクセスを可能にすることができる。(C)併せて、これらの要素は、データセンタが、レンタル可能なサービスとしての集積回路(ICaaS)を提供できるようにする。請求追跡、プロビジョン管理、およびアクセス制御などのさらなるサービスをユーザに提供することができ、低コストを実現できるようにする一方で、データセンタには、大きな利益が実現される、といったことが開示されている。 The use of Field Programmable Gate Array (FPGA), which has a high power performance ratio compared to Central Processing Unit (CPU), in data centers and the like is being studied. The technique disclosed in Patent Document 1 discloses a technique for providing and managing access to an FPGA as a service. Specifically, a system that enables (A) provisioning management for use of a shared FPGA and access control to allow a user's process to access a user-programmed FPGA is a data center server. A user package can be accepted to compile for an FPGA that communicates with. (B) The user package can be image copied to the FPGA along with the attached management payload, and the driver and user key can be used to selectively access the FPGA as a service for the data center virtual machine. Can be made possible. (C) Together, these elements enable the data center to provide an integrated circuit (ICaaS) as a rentable service. It is disclosed that additional services such as billing tracking, provision management, and access control can be provided to the user, enabling lower costs while realizing significant benefits for the data center. Has been.
特表2015-507234号公報Special table 2015-507234 gazette
 サーバ計算機のリソースは半導体の微細化によって増加しており、1つのサーバ計算機上に多数の仮想計算機を実行可能となった。しかし、仮想計算機では、FPGAのリソースを余らせてしまう可能性が高い。その要因はCPUとは異なりFPGAでは短時間での時分割による共有が難しいからである。よって、FPGAのリソースの効率的な活用が要求される。また、別な視点の課題としては、複数の利用者が利用する複数の仮想計算機が1つのFPGAのリソースを共有する場合、各仮想計算機の利用者に係る情報が、FPGAを介して他の利用者に漏洩しないようにする必要がある。本発明の目的は、FPGAなどのプログラマブルロジックデバイスのリソースを効率的に利用することにある。 Server resources have increased due to semiconductor miniaturization, and a large number of virtual machines can be executed on one server computer. However, in the virtual machine, there is a high possibility that extra FPGA resources will be left. This is because, unlike CPUs, FPGAs are difficult to share by time division in a short time. Therefore, efficient utilization of FPGA resources is required. Another problem is that when a plurality of virtual machines used by a plurality of users share the resources of one FPGA, information related to the users of each virtual machine is transferred to the other users via the FPGA. It is necessary to prevent it from leaking to the person. An object of the present invention is to efficiently use resources of a programmable logic device such as an FPGA.
 一実施形態に係る計算機システムは、部分的にコンフィグレーション可能なプログラマブルロジックデバイスと、ハイパバイザと、管理計算機と、を有し、プログラマブルロジックデバイスは、それぞれがコンフィグレーション可能な複数のセクタを含み、ハイパバイザ又は管理計算機は、仮想計算機を作成する際に、複数のセクタから空いている所定のセクタを選択し、ハイパバイザは、所定のセクタを仮想計算機に専用割り当てする。 A computer system according to an embodiment includes a partially configurable programmable logic device, a hypervisor, and a management computer. The programmable logic device includes a plurality of configurable sectors, and the hypervisor Alternatively, when creating a virtual machine, the management computer selects a predetermined sector that is free from a plurality of sectors, and the hypervisor assigns the predetermined sector exclusively to the virtual machine.
 本発明によれば、プログラマブルロジックデバイスのリソースを効率的に利用することができる。 According to the present invention, the resources of the programmable logic device can be used efficiently.
本実施形態に係る計算機システムの構成例を示す。The structural example of the computer system which concerns on this embodiment is shown. サーバのハードウェア構成の例を示す。The example of the hardware constitutions of a server is shown. FPGAの論理的な構成例を示す。An example of the logical configuration of the FPGA is shown. VM管理テーブルの構成例を示す。The structural example of a VM management table is shown. FPGAセクタ管理テーブルの構成例を示す。The structural example of a FPGA sector management table is shown. FPGAの有効化処理におけるハイパバイザの動作例を示すフローチャートである。It is a flowchart which shows the operation example of the hypervisor in the validation process of FPGA. VM作成用の管理画面の例を示す。The example of the management screen for VM creation is shown. VMの新規作成処理におけるハイパバイザの動作例を示すフローチャートである。It is a flowchart which shows the operation example of the hypervisor in the VM new creation process. FPGAのセクタ初期化処理におけるハイパバイザの動作例を示すフローチャートである。It is a flowchart which shows the operation example of the hypervisor in the sector initialization process of FPGA. VM変更用の管理画面の例を示す。The example of the management screen for VM change is shown. VMの構成変更処理におけるハイパバイザの動作例を示すフローチャートである。It is a flowchart which shows the operation example of the hypervisor in the structure change process of VM. VM削除用の管理画面の例を示す。The example of the management screen for VM deletion is shown. VMの削除処理におけるハイパバイザの動作例を示すフローチャートである。It is a flowchart which shows the operation example of the hypervisor in the deletion process of VM. セクタの強制初期化処理におけるハイパバイザの動作例を示すフローチャートである。It is a flowchart which shows the operation example of the hypervisor in the forced initialization process of a sector. 計算機システムの変形例を示す。The modification of a computer system is shown.
 以下、一実施形態を説明する。以下の説明では、「abcテーブル」の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「abcテーブル」を「abc情報」と呼ぶことができる。 Hereinafter, an embodiment will be described. In the following description, information may be described using the expression “abc table”, but the information may be expressed in any data structure. That is, the “abc table” can be referred to as “abc information” to indicate that the information does not depend on the data structure.
 また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ(例えばCPU(Central Processing Unit))によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び通信インターフェースデバイスのうちの少なくとも1つを用いながら行うため、処理の主語が、プロセッサ、そのプロセッサを有する装置とされてもよい。プロセッサが行う処理の一部又は全部が、ハードウェア回路で行われてもよい。コンピュータプログラムは、プログラムソースからインストールされてよい。プログラムソースは、プログラム配布サーバ又は記憶メディア(例えば可搬型の記憶メディア)であってもよい。なお、「CPU」とは所謂CPU内部のコアであってもよいが、説明の簡易化のために「CPU」で統一して説明する。なお、CPUとコアを明確に区別して呼ぶ場合は、CPU内部のコアを「CPUコア」と呼び、コアを複数含むCPUを指す場合は「CPUパッケージ」と呼ぶ。例えば「CPUパッケージにはCPUコアとプログラマブルロジックデバイスが含まれてもよい」、といった使い方である。 In the following description, the process may be described using “program” as a subject. However, the program is executed by a processor (for example, a CPU (Central Processing Unit)), so that a predetermined process is appropriately performed. Since at least one of a storage resource (for example, memory) and a communication interface device is used, the subject of processing may be a processor and an apparatus having the processor. Part or all of the processing performed by the processor may be performed by a hardware circuit. The computer program may be installed from a program source. The program source may be a program distribution server or a storage medium (for example, a portable storage medium). The “CPU” may be a so-called core inside the CPU, but for the sake of simplicity of explanation, the “CPU” will be described as being unified. When a CPU and a core are clearly distinguished and called, a core inside the CPU is called a “CPU core”, and when referring to a CPU including a plurality of cores, it is called a “CPU package”. For example, the CPU package may include a CPU core and a programmable logic device.
 また、管理計算機は、表示デバイスを含む1以上のI/Oデバイスに接続されたインターフェースデバイスと、情報を記憶する記憶資源(例えばメモリ)と、インターフェースデバイス及び記憶資源に接続されたプロセッサとを有する。表示デバイスは、管理計算機が有する表示デバイスでもよいし、管理計算機に接続された表示用計算機でもよい。I/Oデバイスは、管理計算機が有するI/Oデバイス(例えばキーボード及びポインティングデバイス、タッチパネル)でもよいし、管理計算機に接続された表示用計算機又は別の計算機でもよい。管理計算機が「表示用情報を表示する」ことは、表示デバイスに表示用情報を表示することであり、これは、管理計算機が有する表示デバイスに表示用情報を表示することであってもよいし、管理計算機が表示用計算機に表示用情報を送信することであってもよい(後者の場合は表示用計算機によって表示用情報が表示される)。また、管理計算機が情報を入出力するとは、管理計算機が有するI/Oデバイスとの間で情報の入出力を行うことであってもよいし、管理計算機に接続された遠隔の計算機(例えば表示用計算機)との間で情報の入出力を行うことであってもよい。情報の出力は、情報の表示であってもよい。 The management computer also includes an interface device connected to one or more I / O devices including a display device, a storage resource (for example, a memory) that stores information, and a processor connected to the interface device and the storage resource. . The display device may be a display device included in the management computer or a display computer connected to the management computer. The I / O device may be an I / O device (for example, a keyboard and a pointing device or a touch panel) included in the management computer, a display computer connected to the management computer, or another computer. That the management computer “displays the display information” is to display the display information on the display device, and this may be to display the display information on the display device of the management computer. The management computer may transmit display information to the display computer (in the latter case, the display information is displayed by the display computer). The management computer inputting / outputting information may be inputting / outputting information to / from an I / O device of the management computer, or a remote computer connected to the management computer (for example, a display) Information may be input / output to / from the computer. The information output may be a display of information.
 また、以下の説明では、同種の要素を区別して説明する場合には、「セクタ120a」、「セクタ120b」のように、参照符号を使用し、同種の要素を区別しないで説明する場合には、「セクタ120」のように参照符号のうちの共通番号のみを使用することがある。 In the following description, when the same type of elements are distinguished and described, reference numerals are used such as “sector 120a” and “sector 120b”, and the same types of elements are not distinguished. In some cases, only a common number among the reference symbols is used, such as “sector 120”.
 図1は、本実施形態に係る計算機システム1の構成例を示す。 FIG. 1 shows a configuration example of a computer system 1 according to this embodiment.
 計算機システム1は、サーバ20、クライアント30、管理計算機10、管理クライアント34、WEBサーバ32、ストレージ装置36を含む。 The computer system 1 includes a server 20, a client 30, a management computer 10, a management client 34, a WEB server 32, and a storage device 36.
 クライアント30と、WEBサーバ32と、サーバ20とは、通信ネットワークの例であるWide Area Network(WAN)40を介して双方向通信可能に接続されてよい。管理クライアント34と、WEBサーバ32と、管理計算機10と、サーバ20とは、通信ネットワークの例であるLocal Area Network(LAN)42を介して双方向通信可能に接続されてよい。ストレージ装置36と、サーバ20とは、通信ネットワークの例であるStorage Area Network(SAN)44を介して双方向通信可能に接続されてよい。 The client 30, the WEB server 32, and the server 20 may be connected via a wide area network (WAN) 40, which is an example of a communication network, so that bidirectional communication is possible. The management client 34, the WEB server 32, the management computer 10, and the server 20 may be connected via a local area network (LAN) 42, which is an example of a communication network, so that bidirectional communication is possible. The storage device 36 and the server 20 may be connected via a storage area network (SAN) 44, which is an example of a communication network, so that bidirectional communication is possible.
 サーバ20は、計算機の例であり、ハイパバイザ200と、FPGA23とを含む。ハイパバイザ200は、サーバ20の有する物理リソース(例えば、演算リソース、記憶リソース、通信リソース等)を制御して、仮想計算機(VM)220を実現するための機構である。FPGA23は、ブログラマブルロジックデバイスの例であり、所望の論理回路をコンフィグレーション可能なデバイスである。FPGA23は、複数のセクタを有し、或るセクタのみを(つまり部分的に)コンフィグレーションすることができてよい。 The server 20 is an example of a computer and includes a hypervisor 200 and an FPGA 23. The hypervisor 200 is a mechanism for realizing a virtual machine (VM) 220 by controlling physical resources (for example, computing resources, storage resources, communication resources, etc.) of the server 20. The FPGA 23 is an example of a programmable logic device, and is a device that can configure a desired logic circuit. The FPGA 23 may have a plurality of sectors, and only a certain sector may be configured (that is, partially).
 ストレージ装置(ストレージシステム)36は、データを記憶可能な装置である。ストレージ装置36は、hard disk drive(HDD)、Solid State Drive(SSD)、フラッシュメモリなどの記憶デバイスを有してよい。ストレージ装置36は、複数の記憶デバイスを用いてRedundant Arrays of Inexpensive Disks(RAID)グループを構成してもよい。 The storage device (storage system) 36 is a device capable of storing data. The storage device 36 may include a storage device such as a hard disk drive (HDD), a solid state drive (SSD), or a flash memory. The storage apparatus 36 may configure a Redundant Arrays of Inexpensive Disks (RAID) group using a plurality of storage devices.
 サーバ20で稼働するVM220は、ストレージ装置36の提供する論理的な記憶領域(論理ボリューム)を利用(データをリード及びライト)できてよい。 The VM 220 operating on the server 20 may be able to use a logical storage area (logical volume) provided by the storage device 36 (read and write data).
 クライアント30は、VM220の利用者が使用する計算機(端末)である。 The client 30 is a computer (terminal) used by the user of the VM 220.
 管理計算機(又は管理システム)10は、計算機システム1の有するサーバ20及びストレージ装置36を管理するための計算機である。 The management computer (or management system) 10 is a computer for managing the server 20 and the storage device 36 included in the computer system 1.
 管理クライアント34は、計算機システム1の管理者が使用する計算機(端末)である。管理者は、管理クライアント34を介して管理計算機10を操作できてよい。 The management client 34 is a computer (terminal) used by the administrator of the computer system 1. An administrator may be able to operate the management computer 10 via the management client 34.
 WEBサーバ32は、クライアント30や管理クライアント34に、WEBページ(Graphical User Interface(GUI))を提供してよい。例えば、WEBサーバ32は、管理クライアント34に、管理計算機10を操作するためのWEBページを提供する。例えば、WEBサーバ32は、クライアント30に、VM220を操作するためのWEBページを提供する。その操作の例としては、VM作成、VM削除、又はVM内で実行されるプログラムの操作又は表示が考えられる。 The WEB server 32 may provide a WEB page (Graphical User Interface (GUI)) to the client 30 or the management client 34. For example, the WEB server 32 provides the management client 34 with a WEB page for operating the management computer 10. For example, the WEB server 32 provides the client 30 with a WEB page for operating the VM 220. As an example of the operation, VM creation, VM deletion, or operation or display of a program executed in the VM can be considered.
 図2は、サーバ20のハードウェア構成の例を示す。 FIG. 2 shows an example of the hardware configuration of the server 20.
 サーバ20は、ハードウェア構成の要素として、CPU21、メモリ22、Network Interface Card(NIC)24、Host Bus Adapter(HBA)25、FPGA23を有してよい。これらの要素21乃至25は、双方向通信可能なバス26で接続されてよい。 The server 20 may include a CPU 21, a memory 22, a Network Interface Card (NIC) 24, a Host Bus Adapter (HBA) 25, and an FPGA 23 as hardware configuration elements. These elements 21 to 25 may be connected by a bus 26 capable of bidirectional communication.
 CPU21は、メモリ22に格納されたプログラム及びデータを処理することにより、サーバ20の有する各種機能を実現するためのデバイスである。 The CPU 21 is a device for realizing various functions of the server 20 by processing programs and data stored in the memory 22.
 メモリ22は、CPU21及び他のデバイス23、24、25から利用されるプログラム及びデータを格納するためのデバイスである。メモリ22の例は、Dynamic Random Access Memory(DRAM)、Magnetoresistive Random Access Memory(MRAM)、Ferroelectric Random Access Memory(FeRAM)である。 The memory 22 is a device for storing programs and data used by the CPU 21 and other devices 23, 24 and 25. Examples of the memory 22 are Dynamic Random Access Memory (DRAM), Magnetically Responsive Random Access Memory (MRAM), and Ferroelectric Random Access Memory (FeRAM).
 NIC24は、サーバ20をWAN40やLAN42に接続するためのインターフェースデバイスである。NIC24の例は、PCI Express(PCIe)対応のEthernet(登録商標)アダプタである。 The NIC 24 is an interface device for connecting the server 20 to the WAN 40 or the LAN 42. An example of the NIC 24 is an Ethernet (registered trademark) adapter compatible with PCI Express (PCIe).
 HBA25は、サーバ20をSAN44に接続するためのインターフェースデバイスである。HBA25の例は、PCIe対応のファイバチャネルアダプタである。なお、HBA25はNIC24に統合されていてもよい。 The HBA 25 is an interface device for connecting the server 20 to the SAN 44. An example of the HBA 25 is a PCIe compatible fiber channel adapter. Note that the HBA 25 may be integrated into the NIC 24.
 FPGA23は、プログラマブルロジックデバイスの一種であり、任意の論理回路を部分的にコンフィグレーション可能なデバイスである。FPGA23の例は、PCIe対応のFPGAカードである。なお、パッケージとしてみた場合、SRAMメモリセル方式のFPGAは、内部にコンフィグレーションデータ格納用の揮発メモリ(SRAM)を持ち、論理ブロックと呼ばれる回路が、揮発メモリを参照して回路動作を模擬している。そのため、コンフィグレーションデータの揮発メモリへのロードを含むいわゆるコンフィグレーションが、FPGAのパッケージの電源投入毎に必要であり、これは煩雑である。そのため、FPGA23がカード形態で提供されている場合は、カード上にコンフィグレーションデータを格納した不揮発メモリが搭載されている。そして、FPGAカードに電源が投入された場合、FPGAパッケージは当該不揮発メモリからコンフィグレーションデータを読み込むことでコンフィグレーション(内的コンフィグレーション)を行う。なお、外的なコンフィグレーションは、(1)FPGA23の外部から、コンフィグレーションデータをFPGA23に送信し、(2)FPGAのコンフィグレーションを外部から送信されたコンフィグレーションデータで行う(外部からのデータをFPGA23の不揮発メモリに格納してそこからデータを読んでもよく、ダイレクトに外部からのコンフィグレーションデータを受信してもよい)、ことである。以後の実施例の説明での「コンフィグレーション」はこの外的コンフィグレーションを想定して説明する。 The FPGA 23 is a kind of programmable logic device and is a device capable of partially configuring an arbitrary logic circuit. An example of the FPGA 23 is a PCIe compatible FPGA card. When viewed as a package, an SRAM memory cell type FPGA has a volatile memory (SRAM) for storing configuration data inside, and a circuit called a logic block simulates the circuit operation by referring to the volatile memory. Yes. Therefore, so-called configuration including loading of configuration data into the volatile memory is required every time the FPGA package is powered on, which is complicated. For this reason, when the FPGA 23 is provided in the form of a card, a nonvolatile memory storing configuration data is mounted on the card. When the FPGA card is powered on, the FPGA package performs configuration (internal configuration) by reading configuration data from the nonvolatile memory. The external configuration includes (1) transmitting configuration data from outside the FPGA 23 to the FPGA 23, and (2) performing configuration of the FPGA with configuration data transmitted from the outside (data from the outside The data may be stored in the nonvolatile memory of the FPGA 23 and read from there, or configuration data from the outside may be received directly). The “configuration” in the following description of the embodiment will be described assuming this external configuration.
 図3は、FPGA23の論理(機能)構成の例を示す。 FIG. 3 shows an example of the logic (function) configuration of the FPGA 23.
 FPGA23は、論理(機能)構成の要素として、エンドポイント110、コンフィグレーションコントローラ130、コンフィグレーション可能エリア100、認証モジュール124を含んでよい。 The FPGA 23 may include an endpoint 110, a configuration controller 130, a configurable area 100, and an authentication module 124 as elements of a logical (functional) configuration.
 エンドポイント110は、外部の要素(ハイパバイザ200等)に対して、PCIeにおけるエンドポイントを提供する。エンドポイント110は、Single Root I/O Virtualization(SR-IOV)に対応しており、少なくとも1つの物理ファンクション(PF)112と、複数の仮想ファンクション(VF)114とを提供することができる。ハイパバイザ200は、各VM220に対してVF114を占有割り当てする。なお、PF112はハイパバイザが占有してもよい(即ち、PF112をVM220のPCI ExpressにおけるFunctionとして見せない)。 The endpoint 110 provides an endpoint in PCIe to an external element (such as the hypervisor 200). The endpoint 110 corresponds to Single Root I / O Virtualization (SR-IOV), and can provide at least one physical function (PF) 112 and a plurality of virtual functions (VF) 114. The hypervisor 200 exclusively allocates the VF 114 to each VM 220. Note that the PF 112 may be occupied by the hypervisor (that is, the PF 112 is not shown as a function in the PCI Express of the VM 220).
 コンフィグレーション可能エリア100は、部分的に任意の論理回路をコンフィグレーション可能なエリアである。コンフィグレーション可能エリア100は、それぞれがコンフィグレーション可能な複数のセクタ120を含んでよい。 Configurable area 100 is an area where an arbitrary logic circuit can be partially configured. The configurable area 100 may include a plurality of sectors 120 each configurable.
 コンフィグレーションコントローラ130は、コンフィグレーションデータを受信し、コンフィグレーション可能エリア100の少なくとも一部に、論理回路をコンフィグレーションすることができる。コンフィグレーションデータは、例えばHardware Description Language(HDL)によって記載されたソースを論理合成ソフトで処理することで作成される。前述のエンドポイント110、コンフィグレーションコントローラ130、認証モジュール124は、コンフィグレーションデータによってコンフィグレーションされてもよく、FPGA23内部に物理的に回路が存在してもよい。 The configuration controller 130 can receive configuration data and configure a logic circuit in at least a part of the configurable area 100. The configuration data is created by processing the source described by, for example, Hardware Description Language (HDL) with logic synthesis software. The endpoint 110, the configuration controller 130, and the authentication module 124 described above may be configured by configuration data, and a circuit may physically exist in the FPGA 23.
 FPGA23の有効化時、コンフィグレーションコントローラ130は、基礎コンフィグレーションデータに基づき、コンフィグレーション可能エリア100に基礎的な論理回路をコンフィグレーションしてもよい。基礎的な論理回路は、例えば図3に示すように、複数のセクタ120と、複数のアクセス制御モジュール122と、バス132とを含んでよい。すなわち、基礎コンフィグレーションデータには、複数のセクタ120と、複数のアクセス制御モジュール122と、バス132とのコンフィグレーションデータが含まれてもよい。 When the FPGA 23 is activated, the configuration controller 130 may configure a basic logic circuit in the configurable area 100 based on the basic configuration data. The basic logic circuit may include a plurality of sectors 120, a plurality of access control modules 122, and a bus 132, for example, as shown in FIG. That is, the basic configuration data may include configuration data for a plurality of sectors 120, a plurality of access control modules 122, and a bus 132.
 セクタ120には、任意の論理回路をコンフィグレーション(部分コンフィグレーション)することができる。つまり、コンフィグレーションコントローラ130は、コンフィグレーションファイルに基づき、セクタ120に論理回路をコンフィグレーションすることができる。 Arbitrary logic circuits can be configured (partial configuration) in the sector 120. That is, the configuration controller 130 can configure a logic circuit in the sector 120 based on the configuration file.
 アクセス制御モジュール122は、自分と対応付けられている(結線されている)セクタ120へのVF114からのアクセスを制御するモジュールである。アクセス制御モジュール122には、セクタ120へのアクセスが許可されているVF114のVF IDが設定されてよい。この場合、アクセス制御モジュール122は、自分と対応付けられているセクタ120への、自分に設定されているVF IDに適合するVF114からのアクセスを許可し、それ以外のVFからのアクセスを拒否してよい。アクセス制御モジュール122とセクタ120とは、1対1で対応付けられてもよいし、1対N(Nは2以上の整数)で対応付けられてもよい。なお、上記アクセス拒否の例外として、ハイパバイザ200からのアクセスは許可してもよい。前述の通り、VF114は所定のVMに占有割り当てされるため、結果として所定のセクタ120を所定の1以上のVM220に占有割り当てすることができる。VF IDの設定はハイパバイザ200からのアクセスにより変更可能とする。 The access control module 122 is a module that controls access from the VF 114 to the sector 120 associated (connected) with itself. In the access control module 122, the VF ID of the VF 114 that is permitted to access the sector 120 may be set. In this case, the access control module 122 permits access from the VF 114 conforming to the VF ID set for itself to the sector 120 associated with itself, and denies access from other VFs. It's okay. The access control module 122 and the sector 120 may be associated on a one-to-one basis, or may be associated on a one-to-N basis (N is an integer of 2 or more). As an exception to the access denial, access from the hypervisor 200 may be permitted. As described above, since the VF 114 is exclusively allocated to a predetermined VM, as a result, the predetermined sector 120 can be exclusively allocated to one or more predetermined VMs 220. The VF ID setting can be changed by accessing from the hypervisor 200.
 認証モジュール124は、コンフィグレーション可能エリア100のセクタ120に対するコンフィグレーションの権限を認証するモジュールである。なお、本実施例ではセクタ120のコンフィグレーションデータは、PF112又はVF114当てに送信することで、コンフィグレーションコントローラ130がコンフィグレーションデータを受信するものとして説明するが、PF112又はVF114以外の経路からコンフィグレーションデータを受信してもよい。なお、ハイパバイザ200は各セクタ120をコンフィグレーション可能と設定することが好ましい。よって、各認証モジュール124には、ハイパバイザ200に対応付けられているPF112を標準で許可する旨が設定されてよい。 The authentication module 124 is a module for authenticating the configuration authority for the sector 120 in the configurable area 100. In this embodiment, the configuration data of the sector 120 is described as being transmitted to the PF 112 or VF 114 so that the configuration controller 130 receives the configuration data. However, the configuration data from the path other than the PF 112 or VF 114 is used. Data may be received. The hypervisor 200 preferably sets each sector 120 to be configurable. Accordingly, each authentication module 124 may be set to permit the PF 112 associated with the hypervisor 200 as a standard.
 ハイパバイザ200以外に、VM220が自身に割り当てられたセクタ120のコンフィグレーションを行う場合も考えられる。そうした場合に対応するため、認証モジュール124は、所定のVM220に割り当てられたセクタ120に対応する認証モジュール124に対して、所定のVMに対応付けられたVF114からのコンフィグレーションを許可し、それ以外のVF114(又はVM220)からのコンフィグレーションを拒否してよい(ただしハイパバイザ200は除く)。これにより、セクタ120が、他のVM220によってコンフィグレーションされる(例えば改竄される)ことを防止できる。なお、認証モジュール124とセクタ120とは、1対1で対応付けられてもよいし、1対N(Nは2以上の整数)で対応付けられてもよい。なお、VF114からのコンフィグレーションデータ受信を想定しない場合、認証モジュール124は、コンフィグレーションデータを受信できるFunctionをPF112だけに限定する仕組みだけでよい。 In addition to the hypervisor 200, the VM 220 may also configure the sector 120 assigned to itself. In order to deal with such a case, the authentication module 124 allows the authentication module 124 corresponding to the sector 120 assigned to the predetermined VM 220 to be configured from the VF 114 associated with the predetermined VM, and otherwise. The configuration from the VF 114 (or the VM 220) may be rejected (except for the hypervisor 200). As a result, the sector 120 can be prevented from being configured (for example, tampered) by another VM 220. The authentication module 124 and the sector 120 may be associated with each other one to one, or may be associated with one to N (N is an integer of 2 or more). Note that if it is not assumed that configuration data is received from the VF 114, the authentication module 124 only needs to have a mechanism that limits the functions that can receive configuration data to the PF 112 only.
 図3の例では、VF114aがVM220aに提供されており、VF114aは、セクタ120a及び120bに対応付けられている。すなわち、VF114aの機能は、セクタ120a及び120bにコンフィグレーションされた論理回路によって実現される。この場合、セクタ120aに対応するアクセス制御モジュール122aと、セクタ120bに対応するアクセス制御モジュール122bには、VF114aのVF IDが設定されてよい。また、VF114bがVM220bに提供されており、VF114bは、セクタ120cに対応付けられている。 In the example of FIG. 3, the VF 114a is provided to the VM 220a, and the VF 114a is associated with the sectors 120a and 120b. That is, the function of the VF 114a is realized by a logic circuit configured in the sectors 120a and 120b. In this case, the VF ID of the VF 114a may be set in the access control module 122a corresponding to the sector 120a and the access control module 122b corresponding to the sector 120b. A VF 114b is provided to the VM 220b, and the VF 114b is associated with the sector 120c.
 また、図3の例では、セクタ120dは、何れのVFも対応付けられていない空きセクタである。本実施形態において、このような空きセクタ120は、VF114が対応付けられる前に、既に初期化されていてよい。なぜなら、初期化されていないと、この空きセクタ120にコンフィグレーションされていた論理回路の情報(その一例が下記に言及したBlock RAMに格納された情報である)が、次にこの空きセクタ120を利用する他のVM220に漏洩してしまうおそれがあり、セキュリティ的に好ましくないからである。当該初期化に関する処理の詳細については後述する。 In the example of FIG. 3, the sector 120d is an empty sector that is not associated with any VF. In this embodiment, such an empty sector 120 may be already initialized before the VF 114 is associated. This is because if not initialized, the information of the logic circuit configured in this empty sector 120 (an example is information stored in the Block RAM mentioned below) This is because it may be leaked to another VM 220 to be used, which is not preferable in terms of security. Details of the process related to the initialization will be described later.
 なお、VM1やVM2の例としては下記が考えられる。
*サーバ用VM。例えば検索エンジンや、データベースを用いたOLTP処理やOLAP処理の一部をFPGAに任せる。サーバプログラムでは、アプリケーションプログラムが実行され、当該VMに専用割り当てされたセクタには、アプリケーションプログラムに対応したコンフィグレーションデータでコンフィグレーションされる。
*ストレージVM。暗号化、圧縮、重複排除等のストレージ処理の一部をFPGAに実行させることによる高速化が期待できる。つまり、ストレージVMではストレージ処理プログラムが実行され、ストレージVMに専用割り当てされたセクタは、データ圧縮、データ暗号化、又はデータ重複排除を実現するコンフィグレーションデータでコンフィグレーションされる。
As examples of VM1 and VM2, the following can be considered.
* VM for server. For example, a part of OLTP processing or OLAP processing using a search engine or a database is left to the FPGA. In the server program, the application program is executed, and the sector dedicated to the VM is configured with configuration data corresponding to the application program.
* Storage VM. Speedup can be expected by causing the FPGA to execute a part of storage processing such as encryption, compression, and deduplication. That is, the storage processing program is executed in the storage VM, and the sector dedicated to the storage VM is configured with configuration data that realizes data compression, data encryption, or data deduplication.
 本実施例によればこうした、サーバ用VMを複数作成したり、ストレージVM単体を複数作成したり、あるいは混在して作成する、といったフレキシブルな運用をFPGA23を含むサーバ20でも実現できる。なお、サーバ用VMとストレージVMは後述するVM作成操作で纏めて作成してもよい。 According to the present embodiment, such a flexible operation of creating a plurality of server VMs, creating a plurality of storage VMs alone, or creating them in a mixed manner can also be realized by the server 20 including the FPGA 23. The server VM and the storage VM may be created together by a VM creation operation described later.
 以後、各種フローについて説明する。なお、本実施例では説明の簡易化のために、サーバ20が1つの場合を想定してハイパバイザがVM220に割り当てるリソースや前述のFPGA23のセクタ120の処理を担当し、その後の管理を行う形態で説明する。しかし、サーバ20が複数台の場合はこうしたリソースやセクタ120の探索処理の一部又は全てを管理計算機10が行っても良い。例えば、サーバ20が複数存在する場合は、サーバ20毎にリソースやセクタ120の空き容量、使用容量、負荷等を監視し、VM220を作成するサーバ20を決定する。その上で、サーバ20のハイパバイザが当該サーバ20内のどのリソースを実際にVMに割り当てるかを決定する、といった分担である。 Hereinafter, various flows will be described. In the present embodiment, for the sake of simplicity of explanation, assuming that there is one server 20, the hypervisor is in charge of the processing of the sector 120 of the FPGA 23 and the resources allocated to the VM 220, and performs subsequent management. explain. However, when there are a plurality of servers 20, the management computer 10 may perform part or all of the search processing for such resources and sectors 120. For example, when there are a plurality of servers 20, the resources, the free capacity of the sector 120, the used capacity, the load, etc. are monitored for each server 20, and the server 20 that creates the VM 220 is determined. In addition, the hypervisor of the server 20 determines which resource in the server 20 is actually allocated to the VM.
 <FPGAの有効化の動作>
 FPGA23を有効化する際、FPGA23は以下の処理を実行してよい。なお、当該動作の典型例については後述する(図6及び図9参照)。
<Operation of enabling FPGA>
When enabling the FPGA 23, the FPGA 23 may execute the following processing. A typical example of the operation will be described later (see FIGS. 6 and 9).
 まず、コンフィグレーションコントローラ130は、コンフィグレーション可能エリア100を初期化する。例えば、コンフィグレーションコントローラ130は、コンフィグレーション可能エリア100におけるBlock RAM(BRAM)をクリアする。 First, the configuration controller 130 initializes the configurable area 100. For example, the configuration controller 130 clears a Block RAM (BRAM) in the configurable area 100.
 次に、コンフィグレーションコントローラ130は、基礎コンフィグレーションデータに基づき、コンフィグレーション可能エリア100に、基礎的な論理回路をコンフィグレーションする。これにより、図3に示すように、コンフィグレーション可能エリア100に、複数のセクタ120、複数のアクセス制御モジュール122、及び、バス132等がコンフィグレーションされる。このとき、コンフィグレーションコントローラ130は、セクタ120と、認証モジュール124とを対応付けてよい。 Next, the configuration controller 130 configures a basic logic circuit in the configurable area 100 based on the basic configuration data. Thereby, as shown in FIG. 3, a plurality of sectors 120, a plurality of access control modules 122, a bus 132, and the like are configured in the configurable area 100. At this time, the configuration controller 130 may associate the sector 120 with the authentication module 124.
 次に、エンドポイント110は、SR-IOVの機能を有効にする。すなわち、エンドポイント110は、複数のVF114を有効にする。これにより、ハイパバイザ200が、複数のVF114を認識できるようになる。 Next, the endpoint 110 enables the SR-IOV function. That is, the end point 110 enables a plurality of VFs 114. Thereby, the hypervisor 200 can recognize a plurality of VFs 114.
 上述の各処理は、ハイパバイザ200からエンドポイント110に対して発行される命令に基づいて実行されてよい。ハイパバイザ200は、管理計算機10から送信される要求に基づいて、これらの命令をエンドポイント110へ発行してもよい。 Each process described above may be executed based on a command issued from the hypervisor 200 to the endpoint 110. The hypervisor 200 may issue these instructions to the endpoint 110 based on the request transmitted from the management computer 10.
 以上の処理により、FPGA23のコンフィグレーション可能エリア100に複数のセクタ120等が構成され、エンドポイント110に複数のVF114が構成される。 Through the above processing, a plurality of sectors 120 and the like are configured in the configurable area 100 of the FPGA 23, and a plurality of VFs 114 are configured in the end point 110.
 <VM作成の動作>
 新たにVM220を作成する際、管理計算機10、ハイパバイザ200及びFPGA23は、以下の処理を実行してよい。なお、当該動作の典型例については後述する(図9参照)。
<Operation of VM creation>
When creating a new VM 220, the management computer 10, the hypervisor 200, and the FPGA 23 may execute the following processing. A typical example of the operation will be described later (see FIG. 9).
 まず、管理計算機10は、VM220とセクタ120との対応関係を管理するためのFPGAセクタ管理テーブル300(図5参照)に基づいて、新規VM220に割り当てるセクタ120を決定する。新規VM220に割り当てるセクタ数は、1つ又は複数の何れであってもよい。 First, the management computer 10 determines the sector 120 to be allocated to the new VM 220 based on the FPGA sector management table 300 (see FIG. 5) for managing the correspondence between the VM 220 and the sector 120. The number of sectors assigned to the new VM 220 may be one or more.
 次に、ハイパバイザ200は、新規VM220に割り当てる1つ以上のセクタ120に対応付けるVF114を決定する。 Next, the hypervisor 200 determines a VF 114 to be associated with one or more sectors 120 to be allocated to the new VM 220.
 次に、コンフィグレーションコントローラ130は、ハイパバイザ200によって決定されたVF114に対応付けられたセクタ120を初期化する。 Next, the configuration controller 130 initializes the sector 120 associated with the VF 114 determined by the hypervisor 200.
 次に、コンフィグレーションコントローラ130は、VF114に対応付けられたセクタ120の認証モジュール124に、そのVF114からのコンフィグレーションを許可する設定をする。 Next, the configuration controller 130 sets the authentication module 124 of the sector 120 associated with the VF 114 to permit the configuration from the VF 114.
 次に、ハイパバイザ200は、VF114に対応付けられたセクタ120のアクセス制御モジュール122に、そのVF114のVF IDを設定する。 Next, the hypervisor 200 sets the VF ID of the VF 114 in the access control module 122 of the sector 120 associated with the VF 114.
 次に、コンフィグレーションコントローラ130は、コンフィグレーションデータに基づいて、その新規VM220に割り当てるセクタ120に、論理回路をコンフィグレーションする。 Next, the configuration controller 130 configures a logic circuit in the sector 120 assigned to the new VM 220 based on the configuration data.
 ハイパバイザ200は、このVF114を、新規VM220に提供する。新規VM220で稼働するOS222、及び、当該OS222上で動作するアプリケーション等は、所定のデバイスドライバを通じて、このVF114と対応するセクタ120にコンフィグレーションされた機能を利用することができる。 The hypervisor 200 provides the VF 114 to the new VM 220. The OS 222 running on the new VM 220, the application running on the OS 222, and the like can use the functions configured in the sector 120 corresponding to the VF 114 through a predetermined device driver.
 以上の処理により、新規VM220は、自分に割り当てられたセクタ120にコンフィグレーションされた機能を利用することができる。すなわち、1つのFPGA23のリソースを、複数のVM220から利用することができる。なお、新規VM220で実行するプログラムが割り当てられたセクタ120のコンフィグレーションを行う場合もある。この場合はVM作成時の動作としてのコンフィグレーションは省略してもよい。 Through the above processing, the new VM 220 can use the function configured in the sector 120 allocated to itself. That is, the resources of one FPGA 23 can be used from a plurality of VMs 220. In some cases, the sector 120 to which the program to be executed by the new VM 220 is assigned is configured. In this case, configuration as an operation when creating a VM may be omitted.
 また、アクセス制御モジュール122及び認証モジュール124の設定により、新規VM220に割り当てられたセクタ120には、その新規VM220以外のVM220がアクセス又はコンフィグレーションができないようになっている。すなわち、新規VM220に割り当てられたセクタ120が、他のVM220からアクセス又コンフィグレーション(改竄)されないようになっている。 Further, by setting the access control module 122 and the authentication module 124, the VMs 220 other than the new VM 220 cannot access or configure the sector 120 assigned to the new VM 220. That is, the sector 120 allocated to the new VM 220 is not accessed or configured (tampered) by other VMs 220.
 さらに、新規VM220に割り当てる前にそのセクタを初期化することにより、前回のVM220の利用者がそのセクタ120にコンフィグレーションした論理回路及びデータが、新規VM220の利用者に漏洩しないようになっている。 Further, by initializing the sector before allocating to the new VM 220, the logic circuit and data configured in the sector 120 by the user of the previous VM 220 are prevented from leaking to the user of the new VM 220. .
 したがって、本実施形態によれば、FPGA23のリソースを、複数のVM220及び利用者で、安全且つ効率的に利用することができる。 Therefore, according to the present embodiment, the resources of the FPGA 23 can be used safely and efficiently by a plurality of VMs 220 and users.
 <VM220の削除の動作>
 管理計算機10は、削除対象のVM(削除VM)220を決定する。なお、当該動作の典型例については後述する(図13参照)。
<Operation of deleting VM 220>
The management computer 10 determines a deletion target VM (deletion VM) 220. A typical example of the operation will be described later (see FIG. 13).
 ハイパバイザ200は、削除対象VMを削除し、削除VM220に対応付けられているVF114を特定する。 The hypervisor 200 deletes the deletion target VM and identifies the VF 114 associated with the deletion VM 220.
 ハイパバイザ200は、その特定されたVF114と対応するセクタ120のアクセス制御モジュール122から、そのVF114のVF IDを削除する。 The hypervisor 200 deletes the VF ID of the VF 114 from the access control module 122 of the sector 120 corresponding to the specified VF 114.
 コンフィグレーションコントローラ130は、VF114と対応する認証モジュール124から、そのVF114のコンフィグレーションの許可設定を削除する。 The configuration controller 130 deletes the configuration permission setting of the VF 114 from the authentication module 124 corresponding to the VF 114.
 次に、コンフィグレーションコントローラ130は、その削除VM220と対応するセクタ120を初期化する。初期化されたセクタ120は、空きセクタ120となり、別の新規VM220に割当可能となる。 Next, the configuration controller 130 initializes the sector 120 corresponding to the deleted VM 220. The initialized sector 120 becomes a free sector 120 and can be allocated to another new VM 220.
 以上の処理により、削除VM220に割り当てられていたセクタ120を解放することができる。なお、VF114とセクタ120との関係がそのままであれば上記アクセス制御モジュール122に関するVD IDの削除及び認証モジュール124に関するコンフィグレーション許可設定の削除を省略してもよい。しかし、動的にVF114に対して割り当てるセクタ120の数を変更させたい場合は、上記アクセス制御モジュール122に関するVF ID削除及び認証モジュール124に関するコンフィグレーション許可設定の削除の実施は、好適である。 Through the above processing, the sector 120 allocated to the deleted VM 220 can be released. If the relationship between the VF 114 and the sector 120 remains the same, the deletion of the VD ID related to the access control module 122 and the deletion of the configuration permission setting related to the authentication module 124 may be omitted. However, when it is desired to dynamically change the number of sectors 120 allocated to the VF 114, it is preferable to delete the VF ID related to the access control module 122 and the configuration permission setting related to the authentication module 124.
 また、VM220の削除時に、削除VM220に割り当てられていたセクタ120を初期化することにより、そのセクタ120にコンフィグレーションされていた論理回路及びデータ(例えばBRAMに格納されたデータ)が、次回の利用者に漏洩することを防止できる。なお、本処理を実行する場合、上述の新規VM220にセクタ120を割り当てる際の初期化処理は省略されてもよい。  When the VM 220 is deleted, the sector 120 assigned to the deleted VM 220 is initialized so that the logic circuit and data (for example, data stored in the BRAM) configured in the sector 120 are used next time. Can be prevented from leaking. When this process is executed, the initialization process when allocating the sector 120 to the new VM 220 described above may be omitted. *
 図4は、VM管理テーブル350の構成例を示す。 FIG. 4 shows a configuration example of the VM management table 350.
 VM管理テーブル350は、計算機システム1において作成されているVM220を管理するためのテーブルである。VM管理テーブル350は、管理計算機10の記憶デバイスに保持されてよい。 The VM management table 350 is a table for managing the VM 220 created in the computer system 1. The VM management table 350 may be held in a storage device of the management computer 10.
 又は、VM管理テーブル350は、サーバ20において作成されているVM220を管理するためのテーブルであってもよい。この場合、VM管理テーブル350は、各サーバ20(又はハイパバイザ200)の記憶デバイスに保持されてもよい。 Alternatively, the VM management table 350 may be a table for managing the VM 220 created in the server 20. In this case, the VM management table 350 may be held in a storage device of each server 20 (or hypervisor 200).
 VM管理テーブル350は、項目値として、VM ID352、サーバID354、OSタイプ356、CPU数358、メモリ容量360、NIC数362、NIC設定364、ストレージタイプ366、ストレージ容量368、割当セクタ数370、コンフィグレーションファイル数372(図ではConfファイル数と省略)、コンフィグレーションファイルID374(ConfファイルIDと省略)を含んでよい。なお、コンフィグレーションファイルとは、前述のコンフィグレーションデータを格納したファイルである。しかし、コンフィグレーションデータを格納できるのであれば、ファイル以外のデータ格納形式であってもよい。 The VM management table 350 includes, as item values, VM ID 352, server ID 354, OS type 356, CPU number 358, memory capacity 360, NIC number 362, NIC setting 364, storage type 366, storage capacity 368, allocated sector number 370, config. Configuration file ID 374 (abbreviated as Conf file ID) and configuration file ID 374 (abbreviated as Conf file number in the figure). The configuration file is a file that stores the above-described configuration data. However, a data storage format other than a file may be used as long as configuration data can be stored.
 VM ID352は、VM220の識別子である。VM ID352は、VMの名称であってもよい。 The VM ID 352 is an identifier of the VM 220. The VM ID 352 may be a VM name.
 サーバID354は、VM ID352のVM220を有するサーバ20の識別子である。サーバID354は、サーバの名称(又はホスト名)であってもよい。 The server ID 354 is an identifier of the server 20 having the VM 220 having the VM ID 352. The server ID 354 may be a server name (or host name).
 OSタイプ356は、VM ID352のVM220で稼働するOS222のタイプである。OSタイプ356の例は、Linux(登録商標)、Windows(登録商標)である。 The OS type 356 is a type of the OS 222 that runs on the VM 220 with the VM ID 352. Examples of the OS type 356 are Linux (registered trademark) and Windows (registered trademark).
 CPU数358は、VM ID352のVM220が有する仮想的なCPUの数である。 The CPU number 358 is the number of virtual CPUs of the VM 220 with the VM ID 352.
 メモリ容量360は、VM ID352のVM220が有する仮想的なメモリの容量である。 The memory capacity 360 is a virtual memory capacity of the VM 220 with the VM ID 352.
 NIC数362は、VM ID352のVM220が有する仮想的なNICの数である。 The NIC number 362 is the number of virtual NICs that the VM 220 with the VM ID 352 has.
 NIC設定364は、VM ID352のVM220が有する仮想的なNICの設定である。VM管理テーブル350は、NIC数362の分だけNIC設定364の項目値を有してよい。 The NIC setting 364 is a virtual NIC setting that the VM 220 with the VM ID 352 has. The VM management table 350 may have item values of the NIC setting 364 corresponding to the NIC number 362.
 ストレージタイプ366は、VM ID352のVM220が有する仮想的なストレージのタイプである。ストレージタイプ366の例は、HDD、SSD、フラッシュメモリ等である。 The storage type 366 is a virtual storage type that the VM 220 with the VM ID 352 has. Examples of the storage type 366 are HDD, SSD, flash memory, and the like.
 ストレージ容量368は、VM ID352のVM220が有する仮想的なストレージの容量である。以上の項目354乃至項目368はVMの構成を示す項目であればほかの項目に変えてもよく、また一部の項目は省略してもよい。 The storage capacity 368 is a virtual storage capacity of the VM 220 with the VM ID 352. The above items 354 to 368 may be changed to other items as long as they indicate the configuration of the VM, and some items may be omitted.
 割当セクタ数370は、VM ID352のVM220に割り当てられたFPGA23のセクタ120の数である。 The allocated sector number 370 is the number of sectors 120 of the FPGA 23 allocated to the VM 220 with the VM ID 352.
 コンフィグレーションファイル数372は、VM ID352のVM220が利用する論理回路をコンフィグレーションするためのコンフィグレーションファイルの数である。 The configuration file number 372 is the number of configuration files for configuring the logic circuit used by the VM 220 having the VM ID 352.
 コンフィグレーションファイルID374は、VM ID352のVM220が利用する論理回路をコンフィグレーションするためのコンフィグレーションファイルの識別子である。コンフィグレーションファイルID374は、コンフィグレーションファイル名であってもよい。VM管理テーブル350は、コンフィグレーションファイル数372の分だけコンフィグレーションファイルID374の項目値を有してよい。 The configuration file ID 374 is an identifier of a configuration file for configuring a logic circuit used by the VM 220 having the VM ID 352. The configuration file ID 374 may be a configuration file name. The VM management table 350 may have item values of the configuration file ID 374 corresponding to the number of configuration files 372.
 これらの項目値は、VM作成用の管理画面(図7参照)から管理者によって入力された値であってよい。 These item values may be values input by the administrator from the VM creation management screen (see FIG. 7).
 図5は、FPGAセクタ管理テーブル300の構成例を示す。 FIG. 5 shows a configuration example of the FPGA sector management table 300.
 FPGAセクタ管理テーブル300は、各サーバ20のFPGA23について、FPGA23の何れのセクタ120及びVF114が、何れのVM220に割り当てられているかを管理するためのテーブルである。FPGAセクタ管理テーブル300は、管理計算機10の記憶デバイスに保持されてよい。 The FPGA sector management table 300 is a table for managing which sector 120 and VF 114 of the FPGA 23 are allocated to which VM 220 of the FPGA 23 of each server 20. The FPGA sector management table 300 may be held in a storage device of the management computer 10.
 又は、FPGAセクタ管理テーブル300は、サーバ20の有するFPGA23の何れのセクタ120及びVF114が、そのサーバ20において作成されている何れのVM220に割り当てられているかを管理するためのテーブルであってもよい。この場合、FPGAセクタ管理テーブル300は、各サーバ20(又はハイパバイザ200)の記憶デバイスに保持されてよい。 Alternatively, the FPGA sector management table 300 may be a table for managing which sector 120 and VF 114 of the FPGA 23 of the server 20 is assigned to which VM 220 created in the server 20. . In this case, the FPGA sector management table 300 may be held in a storage device of each server 20 (or hypervisor 200).
 FPGAセクタ管理テーブル300は、項目値として、FPGA ID302、セクタ番号304、VM ID306、VF ID308を含んでよい。 The FPGA sector management table 300 may include an FPGA ID 302, a sector number 304, a VM ID 306, and a VF ID 308 as item values.
 FPGA ID302は、FPGA23の識別子である。 The FPGA ID 302 is an identifier of the FPGA 23.
 セクタ番号304は、FPGA ID302のFPGA23に含まれるセクタ120を識別するための番号である。 The sector number 304 is a number for identifying the sector 120 included in the FPGA 23 of the FPGA ID 302.
 VM ID306は、セクタ番号304のセクタ120が割り当てられているVM220のIDである。セクタ番号304のセクタ120が何れのVM220にも割り当てられていない場合(つまり空きセクタの場合)、VM ID306は「N/A」であってよい。異なるセクタ番号304に対して同一のVM ID306が対応付けられている場合、そのVM ID306のVM220には、その異なるセクタ番号304のセクタ(つまり複数のセクタ)が割り当てられていることを示してよい。 VM ID 306 is an ID of VM 220 to which sector 120 of sector number 304 is assigned. When the sector 120 with the sector number 304 is not assigned to any VM 220 (that is, when it is an empty sector), the VM ID 306 may be “N / A”. When the same VM ID 306 is associated with different sector numbers 304, it may indicate that a sector (that is, a plurality of sectors) with the different sector numbers 304 is assigned to the VM 220 of the VM ID 306. .
 VF ID308は、セクタ番号304のセクタ120が対応付けられているVF114のIDである。セクタ番号304のセクタ120が何れのVM220にも割り当てられていない場合(つまり空きセクタの場合)、VF ID308は「N/A」であってよい。異なるセクタ番号304に対して同一のVF ID308が対応付けられている場合、そのVF ID308のVF114には、その異なるセクタ番号304のセクタ(つまり複数のセクタ)120が対応付けられていることを示してよい。 The VF ID 308 is the ID of the VF 114 associated with the sector 120 with the sector number 304. When the sector 120 with the sector number 304 is not assigned to any VM 220 (that is, when it is an empty sector), the VF ID 308 may be “N / A”. When the same VF ID 308 is associated with different sector numbers 304, the VF 114 of the VF ID 308 indicates that the sector (that is, a plurality of sectors) 120 with the different sector numbers 304 is associated. It's okay.
 図6は、FPGA23の有効化処理におけるハイパバイザ200の動作例を示すフローチャートである。なお、本動作を行うタイミングとしては、ハイパバイザ200がFPGA23を認識した場合が考えられるが、他のタイミングで実施してもよい。 FIG. 6 is a flowchart showing an operation example of the hypervisor 200 in the FPGA 23 validation process. In addition, as a timing which performs this operation | movement, although the case where the hypervisor 200 recognizes FPGA23 is considered, you may implement at another timing.
 (S100)管理計算機10は、FPGA23を有効化させるサーバ20のハイパバイザ200に対して、FPGA有効化要求を送信する。ハイパバイザ200は、管理計算機10からFPGA有効化要求を受信すると、S102へ進む。FPGA有効化要求には、FPGA23のSR-IOVの有効化の要求が含まれてよい。 (S100) The management computer 10 transmits an FPGA activation request to the hypervisor 200 of the server 20 that activates the FPGA 23. When the hypervisor 200 receives the FPGA validation request from the management computer 10, the hypervisor 200 proceeds to S102. The FPGA validation request may include a request for validation of the SR-IOV of the FPGA 23.
 (S102)ハイパバイザ200は、FPGA23のPF112に対して、基礎的な論理回路のコンフィグレーションを命令する。これにより、FPGA23のコンフィグレーション可能エリア100に、図3に示すような、セクタ120、アクセス制御モジュール122及びバス132等がコンフィグレーションされる。このとき、各セクタ120は、後述(図9参照)の初期化処理によって初期化されてよい。そして、S104へ進む。 (S102) The hypervisor 200 instructs the PF 112 of the FPGA 23 to configure a basic logic circuit. As a result, the sector 120, the access control module 122, the bus 132, and the like as shown in FIG. 3 are configured in the configurable area 100 of the FPGA 23. At this time, each sector 120 may be initialized by an initialization process described later (see FIG. 9). Then, the process proceeds to S104.
 (S104)ハイパバイザ200は、FPGA23のPF112に対して、SR-IOVの有効化を命令する。これにより、FPGA23のエンドポイント110において、複数のVF114が有効化され、ハイパバイザ200が、これらのVF114を認識できるようになる。そして、S106へ進む。 (S104) The hypervisor 200 commands the PF 112 of the FPGA 23 to enable SR-IOV. As a result, a plurality of VFs 114 are validated at the end point 110 of the FPGA 23, and the hypervisor 200 can recognize these VFs 114. Then, the process proceeds to S106.
 (S106)ハイパバイザ200は、FPGA有効化要求に対する完了応答を、管理計算機10へ返す。そして、本処理を終了する。 (S106) The hypervisor 200 returns a completion response to the FPGA validation request to the management computer 10. Then, this process ends.
 以上の処理により、FPGA23のコンフィグレーション可能エリア100にセクタ122及びアクセス制御モジュール122等がコンフィグレーションされ、ハイパバイザ200は、FPGA23のVF114を認識できるようになる。 Through the above processing, the sector 122, the access control module 122, and the like are configured in the configurable area 100 of the FPGA 23, and the hypervisor 200 can recognize the VF 114 of the FPGA 23.
 図7は、VM作成用の管理画面1000の例を示す。 FIG. 7 shows an example of a management screen 1000 for creating a VM.
 管理者は、図7に示すVM作成用の管理画面1000から、作成するVM220のパラメタを入力することができてよい。 The administrator may be able to input the parameters of the VM 220 to be created from the VM creation management screen 1000 shown in FIG.
 VM作成用の管理画面1000から入力可能なパラメタと、VM管理テーブル350の項目値とは、対応関係にあってよい。 The parameters that can be input from the management screen 1000 for creating a VM and the item values in the VM management table 350 may be in a correspondence relationship.
 管理者が、VM作成用の管理画面1000からパラメタを入力して、「完了」ボタン1002を押下すると、その旨が管理計算機10に通知され、図8に示すVM220の新規作成処理が実行されてよい。以上、図7に説明した管理画面1000では作成対象のVMの構成要件(例えば図中のHost nameからStorage Size)と、VMに割り当てるFPGAの構成要件(例えばFPGA SectorsからConfig.1)とを入力する。 When the administrator inputs parameters from the VM creation management screen 1000 and presses the “Done” button 1002, the management computer 10 is notified of this and the VM 220 new creation process shown in FIG. 8 is executed. Good. As described above, in the management screen 1000 described in FIG. 7, the configuration requirements of the VM to be created (for example, Host name to Storage Size in the diagram) and the FPGA configuration requirements to be allocated to the VM (for example, FPGA Sectors to Config. 1) are input. To do.
 なお、VMを作成する場合にテンプレートを用いても良い。具体的には、管理計算機10又はハイパバイザ200は、図7にて入力するようなVMの構成要件とFPGAの構成要件を定義したテンプレートを格納し、実際にVMを作成する際は、クライアント30又は管理クライアント34からは当該テンプレートを指定してVMの作成操作を行う、といった例である。この場合、図7の画面は当該テンプレートを作成する画面であってもよい。 A template may be used when creating a VM. Specifically, the management computer 10 or the hypervisor 200 stores a template that defines the VM configuration requirements and the FPGA configuration requirements as input in FIG. 7, and when actually creating a VM, the client 30 or In this example, the management client 34 performs a VM creation operation by designating the template. In this case, the screen of FIG. 7 may be a screen for creating the template.
 図8は、VM220の新規作成処理におけるハイパバイザ200の動作例を示すフローチャートである。 FIG. 8 is a flowchart showing an operation example of the hypervisor 200 in the new creation process of the VM 220.
 (S200)管理計算機10は、VM220を作成するサーバ20のハイパバイザ200に対して、VM作成要求を送信する。ハイパバイザ200は、管理計算機10からVM作成要求を受信すると、S201へ進む。VM作成要求には、VM作成用の管理画面1000から入力されたパラメタ(VM管理テーブル350における1レコードの各項目値。以下同じ)が含まれてよい。 (S200) The management computer 10 transmits a VM creation request to the hypervisor 200 of the server 20 that creates the VM 220. When receiving the VM creation request from the management computer 10, the hypervisor 200 proceeds to S201. The VM creation request may include parameters input from the VM creation management screen 1000 (each record item value in the VM management table 350; the same applies hereinafter).
 (S201)ハイパバイザ200は、VM作成要求に含まれるパラメタに基づいて、VM220に、サーバ20の物理リソースを割り当てる。例えば、ハイパバイザ200は、VM220に対して、演算リソース、記憶リソース、ネットワークリソースなどを割り当てる。そして、S202へ進む。なお、割り当てるリソースの選択処理は本ステップの一環として行われるが、当該処理はハイパバイザ200が行ってもよく、少なくとも一部の処理を管理計算機10が行ってもよい。 (S201) The hypervisor 200 allocates the physical resources of the server 20 to the VM 220 based on the parameters included in the VM creation request. For example, the hypervisor 200 allocates computing resources, storage resources, network resources, and the like to the VM 220. Then, the process proceeds to S202. The resource selection process to be allocated is performed as part of this step. However, the hypervisor 200 may perform the process, or the management computer 10 may perform at least a part of the process.
 (S202)ハイパバイザ200は、VM作成要求に含まれる割当セクタ数に基づいて、VM220に、セクタ120を割り当てる必要があるか否かを判定する。ハイパバイザ200は、当該判定結果が「YES」の場合(割当セクタ数が1以上の場合)、S204へ進み、「NO」の場合(割当セクタ数が0の場合)、S214へ進む。なお、当該処理はハイパバイザ200が行ってもよく、少なくとも一部の処理を管理計算機10が行ってもよい。 (S202) The hypervisor 200 determines whether or not the sector 120 needs to be allocated to the VM 220 based on the number of allocated sectors included in the VM creation request. When the determination result is “YES” (when the number of allocated sectors is 1 or more), the hypervisor 200 proceeds to S204, and when “NO” (when the number of allocated sectors is 0), the hypervisor 200 proceeds to S214. The processing may be performed by the hypervisor 200, or at least a part of the processing may be performed by the management computer 10.
 (S204)S202の判定結果が「YES」の場合、ハイパバイザ200は、割当セクタ数の分の空きセクタ120と、その空きセクタ120に対応付けるVF114とを、VM220に割り当てる。割当セクタ数が2以上の場合、ハイパバイザ200は、セクタ間の信号伝送距離が最短となるように、複数の空きセクタを選択してよい。これにより、複数の空きセクタを用いてコンフィグレーションされる論理回路の動作速度が向上し得る。そして、S206へ進む。 (S204) If the determination result in S202 is “YES”, the hypervisor 200 allocates to the VM 220 the empty sectors 120 corresponding to the number of allocated sectors and the VF 114 associated with the empty sectors 120. When the number of allocated sectors is 2 or more, the hypervisor 200 may select a plurality of empty sectors so that the signal transmission distance between the sectors is the shortest. As a result, the operation speed of the logic circuit configured by using a plurality of empty sectors can be improved. Then, the process proceeds to S206.
 (S206)ハイパバイザ200は、その割り当てたセクタ120の初期化処理を行う(図9参照)。そして、S207へ進む。 (S206) The hypervisor 200 initializes the allocated sector 120 (see FIG. 9). Then, the process proceeds to S207.
 (S207)ハイパバイザ200は、そのVM220に割り当てたセクタ120に対応する認証モジュール124に、そのVM220からのコンフィグレーションを許可する設定をする。そして、S208へ進む。 (S207) The hypervisor 200 sets the authentication module 124 corresponding to the sector 120 allocated to the VM 220 to permit the configuration from the VM 220. Then, the process proceeds to S208.
 (S208)ハイパバイザ200は、VF114に対応付けられたセクタ120のアクセス制御モジュール122に、そのVF114のVF IDを設定する。これにより、このVF114は、このセクタ120にアクセス可能となる。そして、S210へ進む。 (S208) The hypervisor 200 sets the VF ID of the VF 114 in the access control module 122 of the sector 120 associated with the VF 114. As a result, the VF 114 can access the sector 120. Then, the process proceeds to S210.
 (S210)ハイパバイザ200は、VM作成要求に、コンフィグレーションファイルが指定されているか否かを判定する。ハイパバイザ200は、当該判定結果が「YES」の場合、S212へ進み、「NO」の場合、S214へ進む。なお、当該処理はハイパバイザ200が行ってもよく、少なくとも一部の処理を管理計算機10が行ってもよい。 (S210) The hypervisor 200 determines whether or not a configuration file is specified in the VM creation request. The hypervisor 200 proceeds to S212 when the determination result is “YES”, and proceeds to S214 when the determination result is “NO”. The processing may be performed by the hypervisor 200, or at least a part of the processing may be performed by the management computer 10.
 (S212)S210の判定結果が「YES」の場合、ハイパバイザ200は、その割り当てたセクタ120に、その指定されたコンフィグレーションファイルに基づく論理回路をコンフィグレーションする(例えば、コンフィグレーションファイルからコンフィグレーションデータを取り出し、セクタを指定しつつ、コンフィグレーションデータをPF112に送信する。そして、コンフィグレーションコントローラ130は受信したコンフィグレーションデータを用いて指定されたセクタをコンフィグレーションする)。そして、S214へ進む。 (S212) When the determination result in S210 is “YES”, the hypervisor 200 configures a logic circuit based on the designated configuration file in the allocated sector 120 (for example, configuration data from the configuration file). The configuration data is transmitted to the PF 112 while designating the sector, and the configuration controller 130 configures the designated sector using the received configuration data). Then, the process proceeds to S214.
 (S214)ハイパバイザ200は、そのVM220を起動する。そして、S216へ進む。 (S214) The hypervisor 200 activates the VM 220. Then, the process proceeds to S216.
 (S216)ハイパバイザ200は、VM作成要求に対する完了応答を、管理計算機10へ返す。この完了応答を受信した管理計算機10は、VM作成要求の内容(つまり、VM(及びVF)とセクタとの割当関係)を、FPGAセクタ管理テーブル300に反映する。そして、本処理を終了する。 (S216) The hypervisor 200 returns a completion response to the VM creation request to the management computer 10. The management computer 10 that has received this completion response reflects the content of the VM creation request (that is, the allocation relationship between the VM (and VF) and the sector) in the FPGA sector management table 300. Then, this process ends.
 以上の処理により、VM220を生成することができ、さらに、そのVM220は、VF114に対応するセクタ120にコンフィグレーションされた論理回路の機能を利用することができる。 Through the above processing, the VM 220 can be generated, and the VM 220 can use the function of the logic circuit configured in the sector 120 corresponding to the VF 114.
 図9は、FPGA23のセクタ初期化処理におけるハイパバイザ200の動作例を示すフローチャートである。 FIG. 9 is a flowchart showing an operation example of the hypervisor 200 in the sector initialization process of the FPGA 23.
 (S120)ハイパバイザ200は、FPGA23に、セクタ120の初期化(クリア)を命令する。この命令には、初期化対象のセクタ番号が含まれてよい。この初期化命令を受信したFPGA23のコンフィグレーションコントローラ130は、初期化対象のセクタ120を初期化する。例えば、コンフィグレーションコントローラ130は、そのセクタ120のBRAMをクリアする。また、そのセクタにコンフィグレーションされていた論理回路をクリアしてもよい。そして、FPGA23は、セクタ120の初期化命令に対する完了応答を、ハイパバイザ200へ返す。 (S120) The hypervisor 200 commands the FPGA 23 to initialize (clear) the sector 120. This instruction may include a sector number to be initialized. The configuration controller 130 of the FPGA 23 that has received this initialization command initializes the sector 120 to be initialized. For example, the configuration controller 130 clears the BRAM of the sector 120. Further, the logic circuit configured in the sector may be cleared. Then, the FPGA 23 returns a completion response to the initialization instruction of the sector 120 to the hypervisor 200.
 (S122)ハイパバイザ200は、FPGA23から完了応答を受信すると、S124へ進む。 (S122) When the hypervisor 200 receives the completion response from the FPGA 23, the process proceeds to S124.
 (S124)ハイパバイザ200は、セクタ120が初期化されていることを確認する(オプションである)。例えば、ハイパバイザ200は、初期化対象のセクタ120のBRAMに対してリードを試み、正しくクリアされているか否かを判定する。又はセクタ120にコンフィグレートされた論理回路を駆動させてもよい。そして、本処理の呼び出し元へ戻る。 (S124) The hypervisor 200 confirms that the sector 120 has been initialized (optional). For example, the hypervisor 200 attempts to read the BRAM of the sector 120 to be initialized, and determines whether or not it has been correctly cleared. Alternatively, a logic circuit configured in the sector 120 may be driven. Then, the process returns to the caller of this process.
 以上の処理により、所望のセクタ120を初期化することができる。このセクタ120の初期化処理を、例えば、既存のVM220を削除するとき、及び/又は、新規VM220にセクタ120を割り当てるときなど、必要に応じて実行することにより、セクタ120の論理回路及びデータが、他人のVM220に漏洩することを防止できる。 The desired sector 120 can be initialized by the above processing. By executing the initialization process of the sector 120 as necessary, for example, when deleting the existing VM 220 and / or allocating the sector 120 to the new VM 220, the logic circuit and data of the sector 120 are changed. , It is possible to prevent leakage to another person's VM 220.
 図10は、VM変更用の管理画面1200の例を示す。 FIG. 10 shows an example of a management screen 1200 for changing VMs.
 管理者は、図10に示すVM変更用の管理画面1200から、作成済みのVM220の構成(パラメタ)を変更することができてよい。 The administrator may be able to change the configuration (parameter) of the created VM 220 from the VM change management screen 1200 shown in FIG.
 VM変更用の管理画面1200から変更可能なパラメタと、VM管理テーブル350の項目値とは、対応関係にあってよい。 The parameters that can be changed from the VM change management screen 1200 and the item values in the VM management table 350 may be in a correspondence relationship.
 管理者が、VM変更用の管理画面1200からパラメタを変更して、「完了」ボタン1202を押下すると、その旨が管理計算機10に通知され、図11に示すVM220の構成変更処理が実行されてよい。なお、当該VMの構成変更もVM作成と同じくテンプレートを用いてもよい。 When the administrator changes the parameter from the VM change management screen 1200 and presses the “Done” button 1202, the management computer 10 is notified to that effect, and the configuration change process of the VM 220 shown in FIG. 11 is executed. Good. Note that a template may be used to change the configuration of the VM as in the VM creation.
 図11は、VM220の構成変更処理におけるハイパバイザ200の動作例を示すフローチャートである。 FIG. 11 is a flowchart illustrating an operation example of the hypervisor 200 in the configuration change process of the VM 220.
 (S300)管理計算機10は、変更対象のVM220を含むサーバ20のハイパバイザ200に対して、VM変更要求を送信する。ハイパバイザ200は、管理計算機10からVM変更要求を受信すると、S301へ進む。VM変更要求には、VM変更用の管理画面1200から変更されたパラメタが含まれてよい。 (S300) The management computer 10 transmits a VM change request to the hypervisor 200 of the server 20 including the VM 220 to be changed. When receiving the VM change request from the management computer 10, the hypervisor 200 proceeds to S301. The VM change request may include parameters changed from the VM change management screen 1200.
 (S301)ハイパバイザ200は、変更対象のVM220を停止させる。そして、S302へ進む。 (S301) The hypervisor 200 stops the VM 220 to be changed. Then, the process proceeds to S302.
 (S302)ハイパバイザ200は、VM変更要求に含まれるパラメタに基づいて、VM220に割り当てる物理リソースを変更する。そして、S304へ進む。 (S302) The hypervisor 200 changes the physical resource allocated to the VM 220 based on the parameter included in the VM change request. Then, the process proceeds to S304.
 (S304)ハイパバイザ200は、VM変更要求に含まれる変更後の割当セクタ数が、元の割当セクタ数と比較して、「増加」、「減少」又は「一致」の何れであるかを判定する。ハイパバイザ200は、変更後の割当セクタ数が「増加」している場合、S310へ進み、「減少」している場合、S320へ進み、「一致」している場合、S330へ進む。なお、ここでは、セクタの割当変更(一致を含む)の前後で継続利用する論理回路がコンフィグレーションされるセクタを変更しない想定で処理を記載しているが、セクタの変更に関して制限するものではない。例えば、コンフィグレーションされるセクタを変更する場合には、変更前のセクタの割当解除と変更先のセクタの割当の処理を追加すれば良い。 (S304) The hypervisor 200 determines whether the number of assigned sectors after the change included in the VM change request is “increase”, “decrease”, or “match” compared to the original number of assigned sectors. . The hypervisor 200 proceeds to S310 when the number of allocated sectors after the change is “increase”, proceeds to S320 when it is “decreased”, and proceeds to S330 when “match”. Here, the processing is described on the assumption that the sector in which the logic circuit to be continuously used before and after the sector allocation change (including coincidence) is configured is not changed, but the sector change is not limited. . For example, when the sector to be configured is changed, processing for deallocating the sector before the change and assigning the sector for the change destination may be added.
 (S310)S304において変更後の割当セクタ数が「増加」していると判定した場合、ハイパバイザ200は、その増加数に応じて、VM220に新規に割り当てる空きセクタを選択する。割当セクタ数が2以上増加の場合、ハイパバイザ200は、セクタ間の信号伝送距離ができるだけ近くなるように、複数の空きセクタを選択してよい。そして、ハイパバイザ200は、その割り当てた空きセクタ120に対応する認証モジュール124及びアクセス制御モジュール122に、VM220に提供されているVF114からのコンフィグレーションの許可及びVF IDを設定する。これにより、このVF114は、この新規に割り当てられたセクタ120のコンフィグレーションの変更及びアクセスが可能となる。そして、S312へ進む。 (S310) When it is determined in S304 that the number of allocated sectors after the change is “increasing”, the hypervisor 200 selects a free sector to be newly allocated to the VM 220 according to the increased number. When the number of allocated sectors increases by 2 or more, the hypervisor 200 may select a plurality of empty sectors so that the signal transmission distance between the sectors is as short as possible. Then, the hypervisor 200 sets the configuration permission from the VF 114 provided to the VM 220 and the VF ID in the authentication module 124 and the access control module 122 corresponding to the allocated empty sector 120. As a result, the VF 114 can change and access the configuration of the newly allocated sector 120. Then, the process proceeds to S312.
 (S312)ハイパバイザ200は、VM変更要求に、コンフィグレーションファイルが指定されているか否かを判定する。ハイパバイザ200は、当該判定結果が「YES」の場合、S314へ進み、「NO」の場合、S330へ進む。 (S312) The hypervisor 200 determines whether or not a configuration file is specified in the VM change request. If the determination result is “YES”, the hypervisor 200 proceeds to S314, and if “NO”, the hypervisor 200 proceeds to S330.
 (S314)S312の判定結果が「YES」の場合、ハイパバイザ200は、その割り当てたセクタ120に、その指定されたコンフィグレーションファイルに基づく論理回路をコンフィグレーションする。具体例は図8のS212と同じである。そして、S330へ進む。 (S314) If the determination result in S312 is “YES”, the hypervisor 200 configures a logic circuit based on the designated configuration file in the allocated sector 120. A specific example is the same as S212 in FIG. Then, the process proceeds to S330.
 (S320)S304において変更後の割当セクタ数が「減少」していると判定した場合、ハイパバイザ200は、その減少数及び管理者の指定に応じて、VM220に割り当てられていたセクタ120の中から、割り当て解除対象のセクタ120を選択する。そして、ハイパバイザ200は、その割り当て解除対象のセクタ120に対応するアクセス制御モジュール122及び認証モジュール124から、VM220に提供されているVF114のVF ID及びコンフィグレーション許可設定を削除する。これにより、このVF114は、この割り当て解除対象のセクタ120にアクセス及びコンフィグレーションが不可能となる。そして、S322へ進む。 (S320) When it is determined in S304 that the number of allocated sectors after the change is “decreasing”, the hypervisor 200 selects one of the sectors 120 allocated to the VM 220 according to the decreased number and the designation of the administrator. The sector 120 to be deallocated is selected. Then, the hypervisor 200 deletes the VF ID and configuration permission setting of the VF 114 provided to the VM 220 from the access control module 122 and the authentication module 124 corresponding to the sector 120 to be deallocated. As a result, the VF 114 cannot access or configure the sector 120 to be deallocated. Then, the process proceeds to S322.
 (S322)ハイパバイザ200は、割り当て解除対象のセクタ120の初期化処理を行う(図9参照)。そして、S330へ進む。 (S322) The hypervisor 200 initializes the sector 120 to be deallocated (see FIG. 9). Then, the process proceeds to S330.
 (S330)ハイパバイザ200は、変更後のVM220を起動する。そして、S332へ進む。 (S330) The hypervisor 200 activates the VM 220 after the change. Then, the process proceeds to S332.
 (S332)ハイパバイザ200は、VM変更要求に対する完了応答を、管理計算機10へ返す。この完了応答を受信した管理計算機10は、VM変更要求の内容(つまり、VM(及びVF)とセクタとの割当関係の変更)を、FPGAセクタ管理テーブル300に反映する。そして、本処理を終了する。 (S332) The hypervisor 200 returns a completion response to the VM change request to the management computer 10. The management computer 10 that has received this completion response reflects the content of the VM change request (that is, the change in the allocation relationship between the VM (and VF) and the sector) in the FPGA sector management table 300. Then, this process ends.
 以上の処理により、VM220の構成を変更することができ、さらに、VM220とセクタ120との対応関係も変更することができる。 Through the above processing, the configuration of the VM 220 can be changed, and the correspondence relationship between the VM 220 and the sector 120 can also be changed.
 図12は、VM削除用の管理画面1300の例を示す。 FIG. 12 shows an example of a management screen 1300 for deleting a VM.
 管理者は、図12に示すVM削除用の管理画面1300から、サーバ20に作成済みのVM220を削除することができる。 The administrator can delete the VM 220 already created in the server 20 from the VM deletion management screen 1300 shown in FIG.
 管理者が、VM削除用の管理画面1300から削除するVM220を選択して、「完了」ボタン1302を押下すると、その旨が管理計算機10に通知され、図13に示すVM220の削除処理が実行されてよい。 When the administrator selects the VM 220 to be deleted from the VM deletion management screen 1300 and presses the “Done” button 1302, the management computer 10 is notified to that effect, and the deletion processing of the VM 220 shown in FIG. 13 is executed. It's okay.
 図13は、VM220の削除処理におけるハイパバイザ200の動作例を示すフローチャートである。 FIG. 13 is a flowchart illustrating an operation example of the hypervisor 200 in the deletion process of the VM 220.
 (S400)管理計算機10は、削除対象のVM220を含むサーバ20のハイパバイザ200に対して、VM削除要求を送信する。ハイパバイザ200は、管理計算機10からVM削除要求を受信すると、S401へ進む。VM削除要求には、VM削除用の管理画面1300から選択されたVM220のVM IDが含まれてよい。 (S400) The management computer 10 transmits a VM deletion request to the hypervisor 200 of the server 20 including the VM 220 to be deleted. When receiving the VM deletion request from the management computer 10, the hypervisor 200 proceeds to S401. The VM deletion request may include the VM ID of the VM 220 selected from the VM deletion management screen 1300.
 (S401)ハイパバイザ200は、削除対象のVM220を停止させる。そして、S402へ進む。 (S401) The hypervisor 200 stops the VM 220 to be deleted. Then, the process proceeds to S402.
 (S402)ハイパバイザ200は、VM220に割り当てられていた物理リソースを解放する。そして、S404へ進む。 (S402) The hypervisor 200 releases the physical resources allocated to the VM 220. Then, the process proceeds to S404.
 (S404)ハイパバイザ200は、そのVM220に、セクタ120が割り当てられていたか否かを判定する。ハイパバイザ200は、当該判定結果が「YES」の場合、S406へ進み、「NO」の場合、S412へ進む。 (S404) The hypervisor 200 determines whether or not the sector 120 has been allocated to the VM 220. If the determination result is “YES”, the hypervisor 200 proceeds to S406, and if “NO”, the hypervisor 200 proceeds to S412.
 (S406)S404の判定結果が「YES」の場合、ハイパバイザ200は、そのVM220に対するセクタ120の割り当てを解除する。そして、S408へ進む。 (S406) When the determination result in S404 is “YES”, the hypervisor 200 cancels the allocation of the sector 120 to the VM 220. Then, the process proceeds to S408.
 (S408)ハイパバイザ200は、その割り当て解除対処のセクタ120に対応するアクセス制御モジュール122及び認証モジュール124から、そのVM220に提供されていたVF114のVF ID及びコンフィグレーション許可設定を削除する。これにより、VF114は、この割り当て解除対象のセクタ120にアクセス及びコンフィグレーションが不可能となる。そして、S410へ進む。 (S408) The hypervisor 200 deletes the VF ID and the configuration permission setting of the VF 114 provided to the VM 220 from the access control module 122 and the authentication module 124 corresponding to the sector 120 to deal with the deallocation. As a result, the VF 114 cannot access and configure the sector 120 to be deallocated. Then, the process proceeds to S410.
 (S410)ハイパバイザ200は、割り当て解除対象のセクタ120の初期化処理を行う(図9参照)。そして、S412へ進む。 (S410) The hypervisor 200 performs initialization processing of the sector 120 to be deallocated (see FIG. 9). Then, the process proceeds to S412.
 (S412)ハイパバイザ200は、VM削除要求に対する完了応答を、管理計算機10へ返す。この完了応答を受信した管理計算機10は、VM削除要求の内容(つまり、VM(及びVF)とセクタとの割当解除関係)を、FPGAセクタ管理テーブル300に反映する。そして、本処理を終了する。 (S412) The hypervisor 200 returns a completion response to the VM deletion request to the management computer 10. The management computer 10 that has received this completion response reflects the contents of the VM deletion request (that is, the deallocation relationship between the VM (and VF) and the sector) in the FPGA sector management table 300. Then, this process ends.
 以上の処理によれば、削除するVM220に割り当てられていたセクタ120を空きセクタにすることができる。さらに、空きセクタ120は初期化された状態となるので、セクタ120の論理回路及びデータが、他人のVM220に漏洩することを防止できる。 According to the above processing, the sector 120 allocated to the VM 220 to be deleted can be made a free sector. Furthermore, since the empty sector 120 is initialized, it is possible to prevent the logic circuit and data of the sector 120 from leaking to another person's VM 220.
 図14は、セクタ120の強制初期化処理におけるハイパバイザ200の動作例を示すフローチャートである。 FIG. 14 is a flowchart showing an operation example of the hypervisor 200 in the forced initialization process of the sector 120.
 特定のセクタが近くの(隣接する)セクタ120の動作に悪影響を与えるおそれがある。すなわち、他人のVM220の動作に悪影響を与えるおそれがある。例えば、セクタ120にFPGAの熱暴走を引き起こすような論理回路がコンフィグレーションされ、それが動作している場合である。このようなセクタ120は、強制的な初期化が必要な場合もある。以下、そのような場合の処理例を述べる。 A certain sector may adversely affect the operation of a nearby (adjacent) sector 120. That is, there is a risk of adversely affecting the operation of another person's VM 220. For example, a logic circuit that causes an FPGA thermal runaway in sector 120 is configured and operating. Such a sector 120 may require a forced initialization. Hereinafter, a processing example in such a case will be described.
 (S500)ハイパバイザ200は、FPGA23に対して各セクタ120の温度を要求し、各セクタ120の温度を取得する。ハイパバイザ200は、この要求を定期的に実行してよい。なお、当該処理はハイパバイザ200が行ってもよく、少なくとも一部の処理を管理計算機10が行ってもよい。 (S500) The hypervisor 200 requests the temperature of each sector 120 from the FPGA 23, and acquires the temperature of each sector 120. The hypervisor 200 may periodically execute this request. The processing may be performed by the hypervisor 200, or at least a part of the processing may be performed by the management computer 10.
 (S502)ハイパバイザ200は、温度が所定の閾値よりも高いセクタ120が存在するか否かを判定する。ハイパバイザ200は、当該判定結果が「YES」の場合、S504へ進み、「NO」の場合、本処理を終了する。なお、当該処理はハイパバイザ200が行ってもよく、少なくとも一部の処理を管理計算機10が行ってもよい。 (S502) The hypervisor 200 determines whether or not there is a sector 120 whose temperature is higher than a predetermined threshold. When the determination result is “YES”, the hypervisor 200 proceeds to S504, and when the determination result is “NO”, the hypervisor 200 ends the process. The processing may be performed by the hypervisor 200, or at least a part of the processing may be performed by the management computer 10.
 (S504)S502の判定結果が「YES」の場合、ハイパバイザ200は、温度が所定の閾値よりも高いセクタ120に対応するアクセス制御モジュール122及び認証モジュール124から、そこに設定されているVF ID及びコンフィグレーション許可設定を削除する。これにより、そのVF IDのVF114は、その温度が異常に高いセクタ120にアクセス及びコンフィグレーションが不可能となる。そして、S506へ進む。 (S504) If the determination result in S502 is “YES”, the hypervisor 200 determines from the access control module 122 and the authentication module 124 corresponding to the sector 120 whose temperature is higher than the predetermined threshold value, the VF ID and the VF ID set therein. Delete configuration permission settings. As a result, the VF 114 with the VF ID cannot access and configure the sector 120 whose temperature is abnormally high. Then, the process proceeds to S506.
 (S506)ハイパバイザ200は、その温度が異常に高いセクタ120の初期化処理を行う(図9参照)。そして、本処理を終了する。 (S506) The hypervisor 200 initializes the sector 120 whose temperature is abnormally high (see FIG. 9). Then, this process ends.
 以上の処理により、温度が異常に高いセクタ120を強制的に初期化し、近くのセクタ120の動作への悪影響を防止することができる。なお、所定のセクタが隣接するセクタに悪影響を及ぼす理由はコンフィグレーションデータを原因とする理由であれば熱暴走以外にも本実施例は適用でき、又ハイパバイザが所定のセクタの状態が悪影響を及ぼすと判断するための項目は温度以外でもよい。 By the above processing, the sector 120 having an abnormally high temperature can be forcibly initialized, and adverse effects on the operation of the nearby sector 120 can be prevented. Note that this embodiment can be applied in addition to thermal runaway as long as the predetermined sector adversely affects adjacent sectors because of the configuration data, and the hypervisor has an adverse effect on the state of the predetermined sector. The item for determining may be other than temperature.
 図15は、計算機システム1の変形例である計算機システム2の構成例を示す。 FIG. 15 shows a configuration example of a computer system 2 that is a modification of the computer system 1.
 図15の計算機システム2は、図1において各サーバ20に存在していたFPGA23を、FPGAサーバ38として外に出した計算機システムである。 The computer system 2 in FIG. 15 is a computer system in which the FPGA 23 existing in each server 20 in FIG.
 FPGAサーバ38は、ハイパバイザ202、FPGA23を含んでよい。サーバ20は、ハイパバイザ201を含んでよい。
 サーバ20のハイパバイザ201とFPGAサーバ38のハイパバイザ202とは、LAN42を介して連携し、上述と同様に、サーバ20のVM220がFPGAサーバ38のFPGA23を利用できるようにしてよい。例えば、サーバ20のハイパバイザ201が、上述の命令を、LAN42を介して、FPGAサーバ38のハイパバイザ202へ送信することにより、計算機システム2は、上述の計算機システム1と同様のことを実現してよい。
The FPGA server 38 may include a hypervisor 202 and an FPGA 23. The server 20 may include a hypervisor 201.
The hypervisor 201 of the server 20 and the hypervisor 202 of the FPGA server 38 may cooperate via the LAN 42 so that the VM 220 of the server 20 can use the FPGA 23 of the FPGA server 38 as described above. For example, the hypervisor 201 of the server 20 may transmit the above-described command to the hypervisor 202 of the FPGA server 38 via the LAN 42, so that the computer system 2 can realize the same as the above-described computer system 1. .
 計算機システム2の構成によれば、FPGA23のリソースを複数のサーバ20で共有できるので、FPGA23のリソースをより効率的に利用することができる。 According to the configuration of the computer system 2, the resources of the FPGA 23 can be shared by the plurality of servers 20, so that the resources of the FPGA 23 can be used more efficiently.
 上述した実施形態は、本発明の説明のための例示であり、本発明の範囲を実施形態にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。例えば、近年はCPUパッケージ内部にCPUコア以外に、FPGA(本実施例ではFPGAコアと呼ぶ)を含むパッケージ構成も存在する。この場合は、前述の不揮発メモリについて、(A)不揮発メモリはCPUパッケージに含まれる、(B)不揮発メモリはCPUパッケージの外部に接続されている、(C)不揮発メモリを持たない代わりに、CPUパッケージの電源投入時にコンフィグレーションデータをCPUコアなどのFPGAコア外部から送信することでコンフィグレーションを行う、の3パターンがありえる。しかし、(A)(C)いずれの場合でも外的なコンフィグレーションは存在し、(B)の場合はCPUパッケージに接続された不揮発メモリもFPGA23の一部とみなすことで、外的なコンフィグレーションが存在することは明らかである。そのため、本実施例はこのようなFPGAにも適用可能である。また、サーバ20にはFPGA23を使用しないVM220が存在してもよい。 The embodiment described above is an example for explaining the present invention, and is not intended to limit the scope of the present invention only to the embodiment. Those skilled in the art can implement the present invention in various other modes without departing from the gist of the present invention. For example, in recent years, there is a package configuration including an FPGA (referred to as an FPGA core in this embodiment) in addition to a CPU core in a CPU package. In this case, (A) the non-volatile memory is included in the CPU package, (B) the non-volatile memory is connected to the outside of the CPU package, and (C) the CPU is not provided with the non-volatile memory. There are three patterns in which configuration is performed by transmitting configuration data from outside the FPGA core such as a CPU core when the package is turned on. However, in either case (A) or (C), there is an external configuration. In case (B), the non-volatile memory connected to the CPU package is also considered as a part of the FPGA 23, so that the external configuration It is clear that exists. Therefore, the present embodiment can be applied to such an FPGA. Further, the server 20 may include a VM 220 that does not use the FPGA 23.
 1、2:計算機システム 10:管理計算機 20:サーバ 23:FPGA 200、201、202:ハイパバイザ 220:仮想計算機 1, 2: Computer system 10: Management computer 20: Server 23: FPGA 200, 201, 202: Hypervisor 220: Virtual computer

Claims (12)

  1.  部分的にコンフィグレーション可能なプログラマブルロジックデバイスと、ハイパバイザと、管理計算機と、を有する計算機システムであって、
     前記プログラマブルロジックデバイスは、それぞれがコンフィグレーション可能な複数のセクタを含み、
     前記ハイパバイザ又は管理計算機は、仮想計算機を作成する際に、前記複数のセクタから空いている所定のセクタを選択し、
     前記ハイパバイザは、前記選択したセクタを前記作成する仮想計算機に専用割り当てする
    計算機システム。
    A computer system having a partially configurable programmable logic device, a hypervisor, and a management computer,
    The programmable logic device includes a plurality of sectors, each configurable;
    The hypervisor or management computer selects a predetermined sector that is free from the plurality of sectors when creating a virtual computer,
    The hypervisor is a computer system that exclusively allocates the selected sector to the virtual machine to be created.
  2.  請求項1に記載の計算機システムであって、
     前記ハイパバイザは、前記選択したセクタを前記作成対象の仮想計算機に割り当てる前に、前記プログラマブルロジックデバイスの前記選択したセクタに対応するBlock RAM(BRAM)のクリアを伴う第1命令を送信する
    計算機システム。
    The computer system according to claim 1,
    The hypervisor transmits a first instruction accompanied by clearing a block RAM (BRAM) corresponding to the selected sector of the programmable logic device before assigning the selected sector to the virtual machine to be created.
  3.  請求項2に記載の計算機システムであって、
     前記ハイパバイザは、前記第1命令の後に、前記作成する仮想計算機に応じたコンフィグレーションデータによるコンフィグレーションを前記プログラマブルロジックデバイスに命令する
    計算機システム。
    The computer system according to claim 2,
    The computer system in which the hypervisor instructs the programmable logic device to perform configuration based on configuration data according to the virtual machine to be created after the first instruction.
  4.  請求項3に記載の計算機システムであって、
     前記ハイパバイザは、別な仮想計算機を削除することで前記選択したセクタが空き領域となった場合に、前記第1命令を送信する
    計算機システム。
    The computer system according to claim 3,
    The hypervisor is a computer system that transmits the first command when the selected sector becomes a free area by deleting another virtual machine.
  5.  請求項1に記載の計算機システムであって、
     前記ハイパバイザ又は管理計算機は、或るセクタの状態が、隣接するセクタに悪影響を及ぼすと判断した場合、前記プログラマブルロジックデバイスの当該或るセクタに対応するBRAMのクリアを伴う第1命令を送信する
    計算機システム。
    The computer system according to claim 1,
    When the hypervisor or the management computer determines that the state of a certain sector has an adverse effect on an adjacent sector, the computer that transmits a first instruction accompanied by clearing a BRAM corresponding to the certain sector of the programmable logic device system.
  6.  請求項1に記載の計算機システムであって、
     前記プログラマブルロジックデバイスは、前記選択したセクタをコンフィグレーションした論理回路を、Single Root I/O Virtualization(SR-IOV)により作成されたVirtual Functionを介して提供し、
     前記ハイパバイザは、前記作成する仮想計算機に対して前記Virutual Functionを専用割り当てする
    計算機システム。
    The computer system according to claim 1,
    The programmable logic device provides a logic circuit configured with the selected sector via a Virtual Function created by Single Root I / O Virtualization (SR-IOV),
    The hypervisor is a computer system that exclusively allocates the virtual function to the virtual computer to be created.
  7.  請求項6に記載の計算機システムであって、
     前記ハイパバイザ又は管理計算機は、
      前記作成する仮想計算機に対して専用割り当てすべきセクタの数を取得し、
      前記プログラマブルロジックデバイスに、前記取得した数のセクタを前記Virtual Functionに割り当てる
    計算機システム。
    A computer system according to claim 6, wherein
    The hypervisor or management computer is
    Obtain the number of sectors to be dedicated to the virtual machine to be created,
    A computer system that assigns the acquired number of sectors to the virtual function to the programmable logic device.
  8.  請求項7記載の計算機システムであって、
     前記ハイパバイザ又は管理計算機は、2以上のセクタを前記Virtual Functionに割り当てる場合、セクタ間の伝送距離が最短となる2つのセクタを選択する
    計算機システム。
    A computer system according to claim 7, wherein
    The hypervisor or management computer selects two sectors with the shortest transmission distance between sectors when allocating two or more sectors to the virtual function.
  9.  請求項7に記載の計算機システムであって、
     前記計算機システムは、さらにWebサーバを有し、
     前記Webサーバは、仮想計算機を作成する際の構成要件として、前記専用割り当てすべきセクタの数を含む入力項目を入力可能なGraphical User Interface(GUI)を提供する
    計算機システム。
    The computer system according to claim 7,
    The computer system further includes a web server,
    The computer system provides a Graphical User Interface (GUI) capable of inputting an input item including the number of sectors to be allocated as a dedicated component when creating a virtual computer.
  10.  請求項7に記載の計算機システムであって、
     前記計算機システムは、さらにWebサーバを有し、
     前記Webサーバは、仮想計算機を作成する際の構成要件として、前記所定のセクタにコンフィグレーションするコンフィグレーションデータの識別子を入力可能なGraphical User Interface(GUI)を提供する
    計算機システム。
    The computer system according to claim 7,
    The computer system further includes a web server,
    The computer system provides a Graphical User Interface (GUI) capable of inputting an identifier of configuration data to be configured in the predetermined sector as a configuration requirement when creating a virtual computer.
  11.  請求項9に記載の計算機システムであって、
     前記GUIは、仮想計算機を作成する際に指定されるテンプレートの入力GUIである
    計算機システム。
    A computer system according to claim 9, wherein
    The GUI is a computer system that is an input GUI of a template specified when creating a virtual computer.
  12.  請求項1記載の計算機システムであって、
     前記選択されたセクタは、データ圧縮、データ暗号化、又はデータ重複排除を実現するコンフィグレーションデータでコンフィグレーションされ、前記作成する仮想計算機はストレージ仮想計算機であり、前記作成する仮想計算機以外の他の仮想計算機はサーバ用途であり、前記他の仮想計算機に専用割り当てされた他のセクタは、前記他の仮想計算機で実行するアプリケーションプログラムに対応したコンフィグレーションデータでコンフィグレーションされている
    計算機システム。
    The computer system according to claim 1,
    The selected sector is configured with configuration data that realizes data compression, data encryption, or data deduplication, and the created virtual machine is a storage virtual machine, and other than the created virtual machine A virtual machine is used for a server, and the other sector dedicated to the other virtual machine is configured with configuration data corresponding to an application program executed on the other virtual machine.
PCT/JP2016/066056 2016-05-31 2016-05-31 Computer system WO2017208360A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/066056 WO2017208360A1 (en) 2016-05-31 2016-05-31 Computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/066056 WO2017208360A1 (en) 2016-05-31 2016-05-31 Computer system

Publications (1)

Publication Number Publication Date
WO2017208360A1 true WO2017208360A1 (en) 2017-12-07

Family

ID=60478227

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/066056 WO2017208360A1 (en) 2016-05-31 2016-05-31 Computer system

Country Status (1)

Country Link
WO (1) WO2017208360A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7473522B2 (en) 2021-12-22 2024-04-23 株式会社日立製作所 STORAGE MANAGEMENT SYSTEM AND STORAGE MANAGEMENT METHOD

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090187756A1 (en) * 2002-05-31 2009-07-23 Interuniversitair Microelektronica Centrum (Imec) System and method for hardware-software multitasking on a reconfigurable computing platform
JP2015510186A (en) * 2012-02-04 2015-04-02 グローバル スーパーコンピューティング コーポレーション Low memory access motion vector derivation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090187756A1 (en) * 2002-05-31 2009-07-23 Interuniversitair Microelektronica Centrum (Imec) System and method for hardware-software multitasking on a reconfigurable computing platform
JP2015510186A (en) * 2012-02-04 2015-04-02 グローバル スーパーコンピューティング コーポレーション Low memory access motion vector derivation

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7473522B2 (en) 2021-12-22 2024-04-23 株式会社日立製作所 STORAGE MANAGEMENT SYSTEM AND STORAGE MANAGEMENT METHOD

Similar Documents

Publication Publication Date Title
JP7044770B2 (en) A virtual machine that controls a separate subset of programmable hardware
US9471802B2 (en) Hybrid file systems
US20170322824A1 (en) Cloning Computing Device Containers
US11789614B2 (en) Performance allocation among users for accessing non-volatile memory devices
JP6513295B2 (en) Computer system
US20220365688A1 (en) Systems and Methods for Providing High-Performance Access to Shared Computer Memory via Different Interconnect Fabrics
JP6003590B2 (en) Data center, virtual system copy service providing method, data center management server, and virtual system copy program
US11954051B2 (en) Managed NAND Flash memory region control against endurance hacking
JP2023512153A (en) Security module reservation method, system
US10936330B2 (en) Instantaneous boot of virtual machine instances via remote direct memory access
US10936193B2 (en) Method and device for storage management
KR101535792B1 (en) Apparatus for configuring operating system and method thereof
WO2017208360A1 (en) Computer system
EP3388937A1 (en) Local disks erasing mechanism for pooled physical resources
US9911000B2 (en) Implementing extent granularity authorization processing in CAPI adapters
TWI811730B (en) Method, system and computer readable medium for limiting data accessibility in composed systems
US11003378B2 (en) Memory-fabric-based data-mover-enabled memory tiering system
KR20220134762A (en) Virtual Machine Full Forward Secrecy
WO2023077519A1 (en) Storage device supporting multiple operation systems, and configuration method and computer system
US20240104193A1 (en) Direct assignment of physical devices to confidential virtual machines
TWI806622B (en) Storing diagnostic state of secure virtual machines
CN101996141A (en) Computer system, disk storage device and method of controlling the same
US10768816B2 (en) Method and apparatus to manipulate customer data without using the host interface
KR102327065B1 (en) Apparatus for accelerating virtual machine provisioning by use of bws and apparatus for managing the virtual machine and method thereof
von Oven Virtual Hardware

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

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP