JP2017162165A - Information processing apparatus, information processing method, and program - Google Patents
Information processing apparatus, information processing method, and program Download PDFInfo
- Publication number
- JP2017162165A JP2017162165A JP2016045698A JP2016045698A JP2017162165A JP 2017162165 A JP2017162165 A JP 2017162165A JP 2016045698 A JP2016045698 A JP 2016045698A JP 2016045698 A JP2016045698 A JP 2016045698A JP 2017162165 A JP2017162165 A JP 2017162165A
- Authority
- JP
- Japan
- Prior art keywords
- guest
- information processing
- processing apparatus
- unit
- acpi
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Images
Landscapes
- Power Sources (AREA)
Abstract
Description
本発明は情報処理装置、情報処理方法及びプログラムに関する。 The present invention relates to an information processing apparatus, an information processing method, and a program.
近年の一般的なPCでは、複数のCPUコアを持つマルチコアシステムが利用されている。それら複数のCPUを効率的に使うため、アプリケーション及びOSでの対応が進んできている。その中の技術の一つとして、HW(Hardware)仮想化と呼ばれる技術(VMware(登録商標)及びVirtualBox(登録商標)等)が一般化してきている。特に、多数のサーバPCが稼働するデータセンター等では、積極的に本技術が使われている。HW仮想化技術のメリットとして、複数のOSを一台のPCに集約することで、物理的な台数を削減し、設置コスト、電力及び保守費の削減等が挙げられる。 In a recent general PC, a multi-core system having a plurality of CPU cores is used. In order to use these multiple CPUs efficiently, correspondence with applications and OSs has been advanced. As one of the technologies, a technology called HW (Hardware) virtualization (such as VMware (registered trademark) and VirtualBox (registered trademark)) has been generalized. In particular, this technology is actively used in data centers where a large number of server PCs operate. Advantages of the HW virtualization technology include reducing the number of physical units by consolidating a plurality of OSs into one PC, reducing installation costs, power, and maintenance costs.
特許文献1には、VMM(Virtual Machine Manager)とACPI(Advanced Configuration and Power Interface)準拠ゲスト・オペレーティング・システム(OS)との間の双方向通信のための方法及び装置、並びに、システム上の競合を管理するための専用のVMを用いた構成が開示されている。 Patent Document 1 discloses a method and apparatus for bidirectional communication between a VMM (Virtual Machine Manager) and an ACPI (Advanced Configuration and Power Interface) compliant guest operating system (OS), and a competition on the system. A configuration using a dedicated VM for managing the server is disclosed.
また、ハイパーバイザ型のHW仮想化を組込み機器に応用する動きがあり、TrustONIC(登録商標)及びOpen Kernel Lab等といった組込み機器向けに、重要な性能への影響を極力少なくしたりROM/RAMサイズ削減を実現したりする技術が既に知られている。 In addition, there is a movement to apply hypervisor-type HW virtualization to embedded devices. For embedded devices such as TrustONIC (registered trademark) and Open Kernel Lab, etc., the impact on important performance is reduced as much as possible and ROM / RAM size is reduced. Techniques for realizing reductions are already known.
しかしながら前述の組込み機器向けの技術は、ARM系CPUに特化したものであり、最近、スマートフォン及び組込み向け等に注力してきているx86ではそもそも動作しないといった問題がある。また、x86特有の問題としてBIOS(Basic Input/Output System)と呼ばれるソフトウェアがハイパーバイザとハードウェアの間に存在している。このBIOSはハードウェアの基本的な初期化や電源制御を行う機能を持つ。この電源制御の実現をACPI(Advanced Configuration and Power Interface)と呼ばれる規格で実現している。各々のゲストOSが管理するハードウェアに対して、ACPIを用いてBIOSを経由した制御を行う場合、BIOSはOSが複数存在している事を認識できないため、共有で使用されるハードウェアへの電源制御の競合が発生するといった問題がある。 However, the above-mentioned technology for embedded devices is specialized for ARM-based CPUs, and there is a problem that x86, which has recently been focused on smartphones and embedded devices, does not operate in the first place. As a problem specific to x86, software called BIOS (Basic Input / Output System) exists between the hypervisor and the hardware. This BIOS has functions for performing basic hardware initialization and power control. The power control is realized by a standard called ACPI (Advanced Configuration and Power Interface). When performing control via the BIOS using ACPI for the hardware managed by each guest OS, the BIOS cannot recognize that multiple OSs exist. There is a problem that power supply control conflict occurs.
本発明は、上記に鑑みてなされたものであって、仮想環境上で動作する複数のゲストOSからの電源制御要求を適切に処理することができる情報処理装置、情報処理方法及びプログラムを提供することを目的とする。 The present invention has been made in view of the above, and provides an information processing apparatus, an information processing method, and a program capable of appropriately processing power control requests from a plurality of guest OSes operating in a virtual environment. For the purpose.
上述した課題を解決し、目的を達成するために、本発明は、複数のゲストOS(Operating System)を仮想環境上で動作させる情報処理装置であって、前記複数のゲストOSの仮想環境上の動作を制御し、前記ゲストOSに対する前記情報処理装置のハードウェアの割り当てを示す割当情報を保持する仮想化部と、前記割当情報に基づいて複数のACPI(Advanced Configuration and Power Interface)テーブルを作成するBIOS(Basic Input/Output System)部と、を備え、前記仮想化部は、前記複数のゲストOSのそれぞれに対して、前記割当情報に基づいて作成されたACPIテーブルを対応させる。 In order to solve the above-described problems and achieve the object, the present invention is an information processing apparatus that operates a plurality of guest OSs (Operating Systems) on a virtual environment, and is provided on the virtual environment of the plurality of guest OSs. A virtualization unit that controls operation and holds allocation information indicating hardware allocation of the information processing apparatus to the guest OS, and creates a plurality of ACPI (Advanced Configuration and Power Interface) tables based on the allocation information A BIOS (Basic Input / Output System) unit, and the virtualization unit associates an ACPI table created based on the allocation information with each of the plurality of guest OSes.
本発明によれば、仮想環境上で動作する複数のゲストOSからの電源制御要求を適切に処理することができる。 According to the present invention, it is possible to appropriately process power control requests from a plurality of guest OSes operating in a virtual environment.
はじめに、HW仮想化技術について説明する。HW仮想化技術の方式には、ホストOS型(ホスト型)とハイパーバイザ型(ベアメタル型)と呼ばれる2種類の方式が存在する。 First, the HW virtualization technology will be described. There are two types of HW virtualization technology, called host OS type (host type) and hypervisor type (bare metal type).
ホストOS型(ホスト型)は、PC及びサーバ装置で多く使われている方式である。ホストOS型は、既にインストールされたOS(Windows(登録商標)及びLinux(登録商標)等)上にホスト型仮想化ソフトウェアをインストールし、その上で仮想マシン(VM:Virtual Machine)を立上げ、別の仮想OS(以下、ゲストOSという。)をインストールし、動作させるHW仮想化技術である。ホストOS型の特徴としては、既にOSが動作しているため、簡単に起動及び動作確認が出来る利点がある。一方で、ホストOS型は、常にホストOSが必要となり、ホストOSを動作させるためのリソース、及び、ホストOSの遅延等により、ゲストOSの性能が出にくいという面がある。 The host OS type (host type) is a method often used in PCs and server devices. In the host OS type, host type virtualization software is installed on an already installed OS (such as Windows (registered trademark) and Linux (registered trademark)), and then a virtual machine (VM: Virtual Machine) is started up. This is a HW virtualization technology that installs and operates another virtual OS (hereinafter referred to as a guest OS). As a feature of the host OS type, since the OS is already operating, there is an advantage that it can be easily started and checked. On the other hand, the host OS type always requires the host OS, and there is a problem that the performance of the guest OS is difficult to be obtained due to resources for operating the host OS, delay of the host OS, and the like.
ハイパーバイザ型(ベアメタル型)は、ハードウェア上に直接ハイパーバイザ(Virtual Machine Monitor: VMM)と呼ばれるソフトが配置され、そのハイパーバイザから直接仮想マシンを動作させる方式である。ハイパーバイザ型の特徴としては、OSが不要なためゲストOSの性能への影響が少ないという点がある。また、各ゲストOSが直接各々に割り当てられたハードウェアを直接制御することができる。 The hypervisor type (bare metal type) is a system in which software called a hypervisor (Virtual Machine Monitor: VMM) is arranged directly on hardware, and a virtual machine is operated directly from the hypervisor. As a feature of the hypervisor type, there is a point that there is little influence on the performance of the guest OS because the OS is unnecessary. Also, each guest OS can directly control the hardware assigned to each guest OS.
以下に添付図面を参照して、情報処理装置、情報処理方法及びプログラムの実施形態を詳細に説明する。 Exemplary embodiments of an information processing apparatus, an information processing method, and a program will be described below in detail with reference to the accompanying drawings.
(第1実施形態)
はじめに、第1実施形態の情報処理装置のハードウェア構成の例について説明する。
(First embodiment)
First, an example of the hardware configuration of the information processing apparatus according to the first embodiment will be described.
[情報処理装置のハードウェア構成]
図1は第1実施形態の情報処理装置100のハードウェア構成の例を示す図である。第1実施形態の情報処理装置100は、CPU1、CPU2、メモリ3、フラッシュROM4、USBコントローラ5、LCDコントローラ6及びネットワークコントローラ7を備える。
[Hardware configuration of information processing device]
FIG. 1 is a diagram illustrating an example of a hardware configuration of the information processing apparatus 100 according to the first embodiment. An information processing apparatus 100 according to the first embodiment includes a CPU 1, a CPU 2, a memory 3, a flash ROM 4, a USB controller 5, an LCD controller 6, and a network controller 7.
CPU1及び2は、情報処理装置100の動作を制御する制御装置である。CPU1及び2は、MMU(Memory Management Unit)、及び、仮想化を支援する機能を持つ。仮想化を支援する機能は、例えばメモリ仮想化及びIO仮想化等を支援する機能である。第1実施形態の説明では、簡単のため、CPUが2個の場合で説明するが、CPUの数は2個の限らず任意でよい。 The CPUs 1 and 2 are control devices that control the operation of the information processing apparatus 100. The CPUs 1 and 2 have a function for supporting MMU (Memory Management Unit) and virtualization. The function that supports virtualization is a function that supports, for example, memory virtualization and IO virtualization. In the description of the first embodiment, the case of two CPUs will be described for simplicity, but the number of CPUs is not limited to two and may be arbitrary.
メモリ3は、DDR2及びDDR3等の一般的な揮発メモリである。フラッシュROM4は、例えばNOR型、及び、NAND型等のフラッシュメモリデバイスである。フラッシュROM4は、プログラム及びユーザデータの情報を記憶する不揮発性メモリである。 The memory 3 is a general volatile memory such as DDR2 and DDR3. The flash ROM 4 is a flash memory device such as a NOR type and a NAND type. The flash ROM 4 is a non-volatile memory that stores information on programs and user data.
USBコントローラ5は、USBメモリ等を制御するためのコンローラである。LCDコントローラ6は、文字及び画像等の表示を行うLCDを制御するためのコントローラである。ネットワークコントローラ7は、他の装置と通信するためのコントローラである。 The USB controller 5 is a controller for controlling a USB memory or the like. The LCD controller 6 is a controller for controlling the LCD that displays characters and images. The network controller 7 is a controller for communicating with other devices.
[情報処理装置のソフトウェア構成]
次に、第1実施形態の情報処理装置100のソフトウェア構成の例について説明する。
[Software configuration of information processing device]
Next, an example of the software configuration of the information processing apparatus 100 according to the first embodiment will be described.
図2は第1実施形態の情報処理装置100のソフトウェア構成の例を示す図である。第1実施形態の情報処理装置100は、BIOS部20、通信部25、仮想化部30、第1のゲストOS40、及び、第2のゲストOS50を備える。第1実施形態の説明では、簡単のため、ゲストOSが2個の場合で説明するが、ゲストOSの数は2個の限らず任意でよい。
FIG. 2 is a diagram illustrating an example of a software configuration of the information processing apparatus 100 according to the first embodiment. The information processing apparatus 100 according to the first embodiment includes a BIOS unit 20, a communication unit 25, a virtualization unit 30, a
BIOS部20は、情報処理装置100のハードウェアとの最も低レベルの入出力を行うBIOS機能の制御を行う。BIOS部20を実現するプログラムは、上述のフラッシュROM4に記憶されている。BIOS部20は、複数のACPI(Advanced Configuration and Power Interface)テーブル21を保持する。ACPIテーブル21は、電源管理及びハードウェアに関する情報等が含まれる。 The BIOS unit 20 controls a BIOS function that performs the lowest level input / output with the hardware of the information processing apparatus 100. A program for realizing the BIOS unit 20 is stored in the flash ROM 4 described above. The BIOS unit 20 holds a plurality of ACPI (Advanced Configuration and Power Interface) tables 21. The ACPI table 21 includes information on power management and hardware.
まずBIOS部20は、従来の場合と同様に、BIOS部20の起動時にACPIテーブルをメモリ3上に1つ作成する。次にBIOS部20は、第1のゲストOS40に参照されるACPIテーブル21を、第1のゲストOS40の起動時に、後述の割当情報31に基づいてメモリ3上に生成する。次にBIOS部20は、第2のゲストOS50に参照されるACPIテーブル21を、第2のゲストOS50の起動時に、後述の割当情報31に基づいてメモリ3上に生成する。ACPIテーブル21の詳細は、図3を参照して後述する。
First, the BIOS unit 20 creates one ACPI table on the memory 3 when the BIOS unit 20 is activated, as in the conventional case. Next, the BIOS unit 20 generates an ACPI table 21 referred to by the
通信部25は、BIOS部20と仮想化部30との間で情報の送受信を行う。通信部25は、例えば後述の割当情報31をBIOS部20に送信し、BIOS部20から複数のACPIテーブル21それぞれのアドレスを受信する。通信部25は、BIOS部20と仮想化部30との間の通信を可能にするAPI(Application Programming Interface)により実現される。 The communication unit 25 transmits and receives information between the BIOS unit 20 and the virtualization unit 30. For example, the communication unit 25 transmits allocation information 31 (described later) to the BIOS unit 20 and receives the addresses of the plurality of ACPI tables 21 from the BIOS unit 20. The communication unit 25 is realized by an API (Application Programming Interface) that enables communication between the BIOS unit 20 and the virtualization unit 30.
仮想化部30は、第1のゲストOS40、及び、第2のゲストOS50を仮想環境上で動作させるための制御を行う。
The virtualization unit 30 performs control for operating the
第1実施形態の仮想化部30は、VMMと呼ばれるハイパーバイザにより実現される。すなわち第1実施形態の情報処理装置100は、上述の図1のハードウェア上に直接、仮想化部30を動作させるハイパーバイザ型のHW仮想化技術を利用している。そして仮想化部30が、仮想マシンを動作させることにより、当該仮想マシン上で第1のゲストOS40、及び、第2のゲストOS50を動作させる。
The virtualization unit 30 of the first embodiment is realized by a hypervisor called VMM. That is, the information processing apparatus 100 according to the first embodiment uses a hypervisor type HW virtualization technology that causes the virtualization unit 30 to operate directly on the hardware in FIG. 1 described above. Then, the virtualization unit 30 operates the virtual machine, thereby operating the
仮想化部30は割当情報31を保持する。割当情報31は、情報処理装置100で稼働する第1のゲストOS40、及び、第2のゲストOS50に対するハードウェアの割り当てを示す情報である。
The virtualization unit 30 holds
表1は第1実施形態の割当情報31の例を示す表である。
Table 1 is a table showing an example of the
第1実施形態の割当情報31は、ハードウェア、割当対象及び属性を含む。CPU1及び2、並びに、メモリ3及びフラッシュROM4は、基本デバイスとして仮想化部30に割り当てられる。なお基本デバイスは、仮想化部30により制御されるが、第1のゲストOS40、及び、第2のゲストOS50からもアクセス可能である。すなわち基本デバイスは、複数のゲストOSにより共有される共有ハードウェアである。
The
一方、ネットワークコントローラ7及びUSBコントローラ5は、専用デバイスとして第1のゲストOS40に割り当てられる。ネットワークコントローラ7及びUSBコントローラ5は、第2のゲストOS50からはアクセスできない。すなわちネットワークコントローラ7及びUSBコントローラ5は、第1のゲストOS40の専用ハードウェアである。
On the other hand, the network controller 7 and the USB controller 5 are allocated to the
また、LCDコントローラ6は、専用デバイスとして第2のゲストOS50に割り当てられる。LCDコントローラ6は、第1のゲストOS40からはアクセスできない。すなわちLCDコントローラ6は、第2のゲストOS50の専用ハードウェアである。
The LCD controller 6 is assigned to the second guest OS 50 as a dedicated device. The LCD controller 6 cannot be accessed from the
第1のゲストOS40は、仮想化部30上の仮想環境で動作するOSである。第1のゲストOS40はACPIドライバ41を備える。ACPIドライバ41は、システムの電源管理機能、及び、インタプリタを持つソフトウェアモジュールである。ACPIドライバ41のインタプリンタは、ACPIテーブル21上に存在する後述のAML(ACPI Machine Language)を逐次解釈しながら実行する。
The
第2のゲストOS50及びACPIドライバ51の説明は、第1のゲストOS40及びACPIドライバ41の説明と同様なので省略する。
The description of the second guest OS 50 and the ACPI driver 51 is the same as the description of the
図3は第1実施形態のACPIテーブル21の例を示す図である。ACPIテーブル21は、RSDP(Root system Description Pointer)201、XSDT(eXtended System Description Table)202、FACP(Fixed ACPI Description Table)203、DSDT(Differentiated System Description Table)204、及び、SSDT(Secondary System Description Table)205を有する。RSDP201、XSDT202、FACP203、DSDT204及びSSDT205は、構造体である。 FIG. 3 is a diagram illustrating an example of the ACPI table 21 according to the first embodiment. ACPI table 21, RSDP (Root system Description Pointer) 201, XSDT (eXtended System Description Table) 202, FACP (Fixed ACPI Description Table) 203, DSDT (Differentiated System Description Table) 204 and,, SSDT (Secondary System Description Table) 205. RSDP201, XSDT202, FACP203, DSDT204, and SSDT205 are structures.
RSDP201は、RSDT(Root System Description Table)と呼ばれる構造体へのポインタ、及び、XSDT202へのポインタ等を含む。
The
RSDP201は、様々なテーブルへのポインタを含み、XSDT202はRSDTを64ビットメモリ空間に対応させた構造体である。ここではXSDT202を例にして説明する。
The
XSDT202は、様々なテーブルへのエントリ(ポインタ)を含む。ここでは重要な3つの構造体(FACP203、DSDT204及びSSDT205)について説明する。
The
FACP203は、ACPIに関連するハードウェアへのレジスタ情報、及び、FACS(Firmware ACPI Control Structure)と呼ばれるBIOSとの排他制御、及び、サスペンドレジューム時にBIOSとのやり取り等に使用されるメモリ位置の情報等を含む。またFACP203は、DSDT204へのポインタも保持している。
The
DSDT204は、主にAML(ACPI Machine Language)と呼ばれる中間言語により記述されたハードウェアに関連する情報が記載されている。OSは、BIOSから引き渡されたこの情報をACPIドライバ内にあるインタプリンタにより解釈し、実行する。
The
SSDT205は、DSDT204の補足として使われる。
The
図2に戻り、仮想化部30は、複数のゲストOS(第1のゲストOS40、及び、第2のゲストOS50)のそれぞれに対して、割当情報31に基づいて作成されたACPIテーブル21のアドレスを対応させることにより、複数のゲストOSのそれぞれに専用のACPIテーブル21を提供する。なおACPIテーブル21のアドレスは決まっており、複数のゲストOS(第1のゲストOS40、及び、第2のゲストOS50)は、所定のアドレスを使用してACPIテーブル21へアクセスする。そのため、具体的には、仮想化部30は、第1のゲストOS40(第2のゲストOS50)のソースコードの改変を行わないで済むように、ACPIテーブル21の接続元のゲストOSに応じて、所定のアドレスのアドレス変換を行うことにより、割当情報31に基づいて作成されたACPIテーブル21のアドレスを、各ゲストOSに対応させる。
Returning to FIG. 2, the virtualization unit 30 addresses the ACPI table 21 created based on the
[情報処理方法]
次に第1実施形態の情報処理方法について説明する。
[Information processing method]
Next, the information processing method of the first embodiment will be described.
図4は第1実施形態の複数のゲストOS(第1のゲストOS40、及び、第2のゲストOS50)の起動方法の例を示すフローチャートである。はじめに、情報処理装置100の筐体の電源ボタンの押下、及び、CPU1(2)リセット等により、BIOS部20が起動する(ステップS1)。
FIG. 4 is a flowchart illustrating an example of a method of starting a plurality of guest OSs (
次に、BIOS部20は、ACPIテーブル21をメモリ3上に作成する(ステップS2)。次に、BIOS部20は、仮想化部30を起動する(ステップS3)。次に、仮想化部30が、割当情報31を、通信部25を介してBIOS部20に送信することにより、当該割当情報31をBIOS部20に通知する(ステップS4)。
Next, the BIOS unit 20 creates the ACPI table 21 on the memory 3 (step S2). Next, the BIOS unit 20 activates the virtualization unit 30 (step S3). Next, the virtualization unit 30 notifies the BIOS unit 20 of the
次に、BIOS部20は、ステップS4の処理により通知された割当情報31に基づいてACPIテーブル21を作成する(ステップS5)。具体的には、BIOS部20は、第1のゲストOS40に参照されるACPIテーブル21と、第2のゲストOS50に参照されるACPIテーブル21と、を割当情報31に基づいてメモリ3上に生成する。
Next, the BIOS unit 20 creates the ACPI table 21 based on the
第1のゲストOS40に参照されるACPIテーブル21は、USBコントローラ5及びネットワークコントローラ7の電源管理に関する情報を含む。第2のゲストOS50に参照されるACPIテーブル21は、LCDコントローラ6の電源管理に関する情報を含む。
The ACPI table 21 referred to by the
次に、BIOS部20は、ステップS5の処理により作成された2つのACPIテーブルのアドレスを、通信部25を介して仮想化部30に送信することにより、当該アドレスを仮想化部30に通知する(ステップS6)。次に、仮想化部30が、複数のゲストOS(第1のゲストOS40、及び、第2のゲストOS50)を起動する(ステップS7)。
Next, the BIOS unit 20 notifies the virtualization unit 30 of the addresses by transmitting the addresses of the two ACPI tables created by the process of step S5 to the virtualization unit 30 via the communication unit 25. (Step S6). Next, the virtualization unit 30 activates a plurality of guest OSs (
図5は第1実施形態の電源制御が競合した場合の処理例を示すフローチャートである。図5の例は、第1のゲストOS40が、省エネ移行要求を仮想化部30に送信する場合を示す。省エネ移行要求は、情報処理装置100のハードウェア(図1参照)の電源状態の制御を要求する電源制御要求の一例である。図5の例で説明する省エネ移行要求は、情報処理装置100の電源状態をACPI規格により定義されたS3状態に移行させる要求である。S3状態は、Suspend to RAMと呼ばれる。Suspend to RAMは、メモリ3はセルフリフレッシュ状態により保持されているが、ハードウェアのレジスタ情報は失われている状態である。
FIG. 5 is a flowchart illustrating a processing example when the power supply control according to the first embodiment competes. The example of FIG. 5 illustrates a case where the
従来は、それぞれのゲストOSから個別に省エネ移行要求が仮想化部30に通知されることはなかった。第1実施形態の情報処理装置100では、ゲストOS毎に専用のACPIテーブル21が確保されている。そのため仮想化部30は、それぞれのゲストOSから受信された省エネ移行要求を個別に処理することが可能である。しかしながら、例えば仮想化部30が、第1のゲストOS40から省エネ移行要求を受信した場合に、そのまま第1のゲストOS40及び第2のゲストOS50により共有されている共有ハードウェア(ここではメモリ3)を省エネ状態にしてしまうと、第2のゲストOS50の動作に影響を与えてしまう。したがって、仮想化部30は、第1のゲストOS40から省エネ要求を受信した場合、第2のゲストOS50の状態に応じた電源制御を行う。
Conventionally, the energy saving transition request is not individually notified to the virtualization unit 30 from each guest OS. In the information processing apparatus 100 of the first embodiment, a dedicated ACPI table 21 is secured for each guest OS. For this reason, the virtualization unit 30 can individually process the energy saving transition request received from each guest OS. However, for example, when the virtualization unit 30 receives an energy saving transition request from the
はじめに、仮想化部30が、第1のゲストOS40から省エネ移行要求を受信する(ステップS11)。 First, the virtualization unit 30 receives an energy saving transition request from the first guest OS 40 (step S11).
次に、BIOS部20が、第1のゲストOS40のみに影響がある専用ハードウェアの省エネ移行処理を行う(ステップS12)。具体的には、第1実施形態の割当情報31(表1参照)に基づいて作成されたACPIテーブル21の例では、BIOS部20は、USBコントローラ5及びネットワークコントローラ7の消費電力を低下させる省エネ移行処理を行う。 Next, the BIOS unit 20 performs an energy saving transition process for dedicated hardware that affects only the first guest OS 40 (step S12). Specifically, in the example of the ACPI table 21 created based on the allocation information 31 (see Table 1) of the first embodiment, the BIOS unit 20 saves energy by reducing the power consumption of the USB controller 5 and the network controller 7. Perform migration process.
次に、BIOS部20が、第2のゲストOS50が省エネ(S3状態)移行済みであるか否かを判定する(ステップS13)。第2のゲストOS50が省エネ(S3状態)移行済みである場合(ステップS13、Yes)、BIOS部20は、情報処理装置100のシステム全体として、S3状態の省エネ状態に移行可能であると判断し、共有ハードウェアであるメモリ3をセルフリフレッシュ状態にする(ステップS14)。 Next, the BIOS unit 20 determines whether or not the second guest OS 50 has already shifted to energy saving (S3 state) (step S13). When the second guest OS 50 has already shifted to the energy saving state (S3 state) (Yes in step S13), the BIOS unit 20 determines that the entire information processing apparatus 100 system can shift to the energy saving state of the S3 state. Then, the memory 3 that is the shared hardware is set in a self-refresh state (step S14).
第2のゲストOS50が省エネ(S3状態)移行済みでない場合(ステップS13、No)、ステップS11で受信した省エネ移行要求に応じた省エネ移行処理は終了する。 When the second guest OS 50 has not been transferred to the energy saving (S3 state) (No at Step S13), the energy saving transfer process according to the energy saving transfer request received at Step S11 ends.
以上説明したように、第1実施形態の情報処理装置100では、仮想化部30が、複数のゲストOS(第1のゲストOS40、及び、第2のゲストOS50)の仮想環境上の動作を制御し、ゲストOSに対する情報処理装置100のハードウェアの割り当てを示す割当情報31を保持する。BIOS部20は、割当情報31に基づいて複数のACPIテーブル21を作成する。そして仮想化部30が、複数のゲストOSのそれぞれに対して、割当情報31に基づいて作成されたACPIテーブル21を対応させる。
As described above, in the information processing apparatus 100 according to the first embodiment, the virtualization unit 30 controls the operation of the plurality of guest OSs (the
これにより第1実施形態の情報処理装置100によれば、ゲストOSのソースコードを改変することなく、仮想環境上で動作する複数のゲストOSからの電源制御要求を適切に処理することができる。例えば一のゲストOSから、省エネ移行要求が要求された場合、複数のゲストOSで共有されている共有ハードウェアに対する電源制御を、情報処理装置100で動作する他のゲストOSに影響を与えないように適切に処理することができる。 Thus, according to the information processing apparatus 100 of the first embodiment, it is possible to appropriately process power control requests from a plurality of guest OSs operating in a virtual environment without modifying the source code of the guest OS. For example, when an energy saving transition request is requested from one guest OS, power control for shared hardware shared by a plurality of guest OSs is not affected to other guest OSs operating on the information processing apparatus 100. Can be handled properly.
また第1実施形態の情報処理装置100によれば、複数のゲストOSが起動している状態でハードウェアの電源制御を適切に行うために必要なメモリ3及びフラッシュROM4の消費を、従来の電源制御方法よりも少なくすることができる。 In addition, according to the information processing apparatus 100 of the first embodiment, the consumption of the memory 3 and the flash ROM 4 necessary for appropriately performing hardware power control in a state where a plurality of guest OSs are running is reduced. It can be less than the control method.
(第2実施形態)
次に第2実施形態について説明する。第2実施形態の説明では、第1実施形態と同様の説明については省略し、第1実施形態と異なる箇所について説明する。第2実施形態の説明では、情報処理装置100にホストOS型(ホスト型)のHW仮想化技術が利用されている点が、第1実施形態の場合と異なる。
(Second Embodiment)
Next, a second embodiment will be described. In the description of the second embodiment, the description similar to that of the first embodiment is omitted, and only points different from the first embodiment will be described. In the description of the second embodiment, the host OS type (host type) HW virtualization technology is used for the information processing apparatus 100, which is different from the case of the first embodiment.
図6は第2実施形態の情報処理装置100のソフトウェア構成の例を示す図である。第2実施形態の情報処理装置100は、BIOS部20、通信部25、仮想化部30、第1のゲストOS40、第2のゲストOS50、ホストOS60、アプリケーション70a及びアプリケーション70bを備える。第2実施形態の説明では、簡単のため、ゲストOSが2個の場合で説明するが、ゲストOSの数は2個の限らず任意でよい。
FIG. 6 is a diagram illustrating an example of a software configuration of the information processing apparatus 100 according to the second embodiment. The information processing apparatus 100 according to the second embodiment includes a BIOS unit 20, a communication unit 25, a virtualization unit 30, a
BIOS部20は複数のACPIテーブル21を保持する。仮想化部30は割当情報31を保持する。第1のゲストOS40はACPIドライバ41を備える。第2のゲストOS50はACPIドライバ51を備える。
The BIOS unit 20 holds a plurality of ACPI tables 21. The virtualization unit 30 holds
第2実施形態の仮想化部30は、第1実施形態の場合と異なり、ホストOS60上で動作するホスト型仮想化ソフトウェアにより実現される。なおホストOS60の種類は任意でよい。第1のゲストOS40及び第2のゲストOS50は、ホストOS60上で動作する仮想化部30により制御される仮想マシンとして動作する。BIOS部20及び仮想化部30は、第1実施形態の場合と同様に、通信部25により情報(割当情報31、及び、ACPIテーブル21のアドレス等)を送受信する。
Unlike the case of the first embodiment, the virtualization unit 30 of the second embodiment is realized by host-type virtualization software that operates on the host OS 60. The type of host OS 60 may be arbitrary. The
アプリケーション70a及び70bは、ホストOS60上で動作する任意のアプリケーションである。図6に示されるように、第2実施形態の仮想化部30は、アプリケーション70a及び70bと同じように、ホストOS60上で動作する。 The applications 70a and 70b are arbitrary applications that operate on the host OS 60. As illustrated in FIG. 6, the virtualization unit 30 according to the second embodiment operates on the host OS 60 in the same manner as the applications 70a and 70b.
以上説明したように、第2実施形態の情報処理装置100では、仮想化部30がホスト型仮想化ソフトウェアにより実現されているが、第2実施形態の情報処理装置100においても、第1実施形態の場合と同様の効果を得ることができる。 As described above, in the information processing apparatus 100 according to the second embodiment, the virtualization unit 30 is realized by host-type virtualization software, but the information processing apparatus 100 according to the second embodiment also includes the first embodiment. The same effect as in the case of can be obtained.
なお第1及び第2実施形態の情報処理装置100で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、メモリカード、CD−R及びDVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記憶媒体に記憶されてコンピュータ・プログラム・プロダクトとして提供される。 The program executed by the information processing apparatus 100 according to the first and second embodiments is an installable or executable file, such as a CD-ROM, a memory card, a CD-R, a DVD (Digital Versatile Disk), or the like. Stored in a computer-readable storage medium and provided as a computer program product.
また第1及び第2実施形態の情報処理装置100で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また第1及び第2実施形態の情報処理装置100が実行するプログラムを、ダウンロードさせずにインターネット等のネットワーク経由で提供するように構成してもよい。 The program executed by the information processing apparatus 100 according to the first and second embodiments may be provided by being stored on a computer connected to a network such as the Internet and downloaded via the network. . The program executed by the information processing apparatus 100 according to the first and second embodiments may be provided via a network such as the Internet without being downloaded.
また第1及び第2実施形態の情報処理装置100で実行されるプログラムを、ROM等に予め組み込んで提供するように構成してもよい。 In addition, the program executed by the information processing apparatus 100 according to the first and second embodiments may be provided by being incorporated in advance in a ROM or the like.
1 CPU
2 CPU
3 メモリ
4 フラッシュROM
5 USBコントローラ
6 LCDコントローラ
7 ネットワークコントローラ
20 BIOS部
21 ACPIテーブル
25 通信部
30 仮想化部
31 割当情報
40 第1のゲストOS
41 ACPIドライバ
50 第2のゲストOS
51 ACPIドライバ
60 ホストOS
70 アプリケーション
100 情報処理装置
201 RSDP
202 XSDT
203 FACP
204 DSDT
205 SSDT
1 CPU
2 CPU
3 Memory 4 Flash ROM
5 USB controller 6 LCD controller 7 Network controller 20
41 ACPI driver 50 Second guest OS
51 ACPI driver 60 Host OS
70 Application 100
202 XSDT
203 FACP
204 DSDT
205 SSDT
Claims (9)
前記複数のゲストOSの仮想環境上の動作を制御し、前記ゲストOSに対する前記情報処理装置のハードウェアの割り当てを示す割当情報を保持する仮想化部と、
前記割当情報に基づいて複数のACPI(Advanced Configuration and Power Interface)テーブルを作成するBIOS(Basic Input/Output System)部と、を備え、
前記仮想化部は、前記複数のゲストOSのそれぞれに対して、前記割当情報に基づいて作成されたACPIテーブルを対応させる、
情報処理装置。 An information processing apparatus that operates a plurality of guest OSs (Operating Systems) in a virtual environment,
A virtualization unit that controls operations of the plurality of guest OSs in a virtual environment and holds allocation information indicating allocation of hardware of the information processing apparatus to the guest OSs;
A BIOS (Basic Input / Output System) unit for creating a plurality of ACPI (Advanced Configuration and Power Interface) tables based on the allocation information;
The virtualization unit associates an ACPI table created based on the allocation information with each of the plurality of guest OSes.
Information processing device.
前記仮想化部は、VMM(Virtual Machine Manager)である、
請求項1に記載の情報処理装置。 The virtual environment of the information processing apparatus is a hypervisor type,
The virtualization unit is a VMM (Virtual Machine Manager).
The information processing apparatus according to claim 1.
前記仮想化部は、ホスト型仮想化ソフトウェアである、
請求項1に記載の情報処理装置。 The virtual environment of the information processing apparatus is a host OS type,
The virtualization unit is host type virtualization software,
The information processing apparatus according to claim 1.
前記BIOS部は、前記複数のACPIテーブルから、前記電源制御要求を送信したゲストOSにより使用され、かつ、他のゲストOSにより使用されていない専用ハードウェア、及び、前記電源制御要求を送信したゲストOSと、少なくとも1つの他のゲストOSと、に使用されている共有ハードウェアを特定し、前記専用ハードウェアの電源状態を前記電源制御要求に基づいて制御し、前記共有ハードウェアの電源状態を、前記少なくとも1つの他のゲストOSが既に前記電源制御要求により要求される電源状態と同じ電源状態に移行している場合、前記共有ハードウェアの電源状態を前記電源制御要求に基づいて制御する、
請求項1乃至3のいずれか1項に記載の情報処理装置。 The virtualization unit receives, from each of the plurality of guest OSs, a power control request for requesting control of a power state of hardware of the information processing apparatus;
The BIOS unit is used by the guest OS that has transmitted the power control request from the plurality of ACPI tables and is not used by another guest OS, and the guest that has transmitted the power control request The shared hardware used for the OS and at least one other guest OS is identified, the power status of the dedicated hardware is controlled based on the power control request, and the power status of the shared hardware is determined. , When the at least one other guest OS has already shifted to the same power state as that requested by the power control request, the power state of the shared hardware is controlled based on the power control request.
The information processing apparatus according to any one of claims 1 to 3.
請求項4に記載の情報処理装置。 The power supply state is a power supply state defined by the ACPI standard.
The information processing apparatus according to claim 4.
を更に備える請求項1乃至5のいずれか1項に記載の情報処理装置。 A communication unit that transmits the allocation information to the BIOS unit and receives addresses of the plurality of ACPI tables from the BIOS unit;
The information processing apparatus according to any one of claims 1 to 5, further comprising:
前記仮想化部は、前記ACPIテーブルの接続元のゲストOSに応じて、前記所定のアドレスのアドレス変換を行うことにより、前記割当情報に基づいて作成されたACPIテーブルのアドレスを、前記複数のゲストOSそれぞれに対応させる、
請求項6に記載の情報処理装置。 Each of the plurality of guest OSs accesses the ACPI table using a predetermined address,
The virtualization unit performs address conversion of the predetermined address according to a guest OS that is a connection source of the ACPI table, thereby converting the address of the ACPI table created based on the allocation information into the plurality of guest Correspond to each OS,
The information processing apparatus according to claim 6.
仮想化部が、前記複数のゲストOSの仮想環境上の動作を制御するステップと、
仮想化部が、前記ゲストOSに対する前記情報処理装置のハードウェアの割り当てを示す割当情報を保持するステップと、
BIOS(Basic Input/Output System)部が、前記割当情報に基づいて複数のACPI(Advanced Configuration and Power Interface)テーブルを作成するステップと、
仮想化部が、前記複数のゲストOSのそれぞれに対して、前記割当情報に基づいて作成されたACPIテーブルを対応させるステップと、
を含む情報処理方法。 An information processing method of an information processing apparatus for operating a plurality of guest OSs (Operating Systems) in a virtual environment,
A step in which a virtualization unit controls operations of the plurality of guest OSs in a virtual environment;
A step in which a virtualization unit retains allocation information indicating hardware allocation of the information processing apparatus to the guest OS;
A step in which a BIOS (Basic Input / Output System) unit creates a plurality of ACPI (Advanced Configuration and Power Interface) tables based on the allocation information;
A step of causing the virtualization unit to associate an ACPI table created based on the allocation information with respect to each of the plurality of guest OSes;
An information processing method including:
前記複数のゲストOSの仮想環境上の動作を制御し、前記ゲストOSに対する前記情報処理装置のハードウェアの割り当てを示す割当情報を保持する仮想化部と、
前記割当情報に基づいて複数のACPI(Advanced Configuration and Power Interface)テーブルを作成するBIOS(Basic Input/Output System)部として機能させ、
前記仮想化部は、前記複数のゲストOSのそれぞれに対して、前記割当情報に基づいて作成されたACPIテーブルを対応させる、
プログラム。 An information processing apparatus that operates a plurality of guest OSes (Operating Systems) in a virtual environment,
A virtualization unit that controls operations of the plurality of guest OSs in a virtual environment and holds allocation information indicating allocation of hardware of the information processing apparatus to the guest OSs;
Based on the allocation information, it functions as a BIOS (Basic Input / Output System) unit that creates a plurality of ACPI (Advanced Configuration and Power Interface) tables.
The virtualization unit associates an ACPI table created based on the allocation information with each of the plurality of guest OSes.
program.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2016045698A JP2017162165A (en) | 2016-03-09 | 2016-03-09 | Information processing apparatus, information processing method, and program |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2016045698A JP2017162165A (en) | 2016-03-09 | 2016-03-09 | Information processing apparatus, information processing method, and program |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2017162165A true JP2017162165A (en) | 2017-09-14 |
Family
ID=59857995
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2016045698A Pending JP2017162165A (en) | 2016-03-09 | 2016-03-09 | Information processing apparatus, information processing method, and program |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2017162165A (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110888752A (en) * | 2018-09-10 | 2020-03-17 | 横河电机株式会社 | Redundant system, recording medium, and information processing device |
-
2016
- 2016-03-09 JP JP2016045698A patent/JP2017162165A/en active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110888752A (en) * | 2018-09-10 | 2020-03-17 | 横河电机株式会社 | Redundant system, recording medium, and information processing device |
| CN110888752B (en) * | 2018-09-10 | 2023-08-15 | 横河电机株式会社 | Redundant system, recording medium and information processing device |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10191759B2 (en) | Apparatus and method for scheduling graphics processing unit workloads from virtual machines | |
| US12541464B2 (en) | Secure memory access in a virtualized computing environment | |
| CN105264506B (en) | Processor is distributed to configuration memory map | |
| CN107977251B (en) | Exclusive access to shared registers in virtualized systems | |
| JP6029550B2 (en) | Computer control method and computer | |
| JP2015503784A (en) | Migration between virtual machines in the graphics processor | |
| EP3086228A1 (en) | Resource processing method, operating system, and device | |
| US20090265708A1 (en) | Information Processing Apparatus and Method of Controlling Information Processing Apparatus | |
| CN109582435B (en) | Method and apparatus for flexible virtual function queue allocation | |
| JP2011100431A (en) | Device and method for controlling virtual machine | |
| US10977191B2 (en) | TLB shootdowns for low overhead | |
| US10990436B2 (en) | System and method to handle I/O page faults in an I/O memory management unit | |
| US11593170B2 (en) | Flexible reverse ballooning for nested virtual machines | |
| US9639492B2 (en) | Virtual PCI expander device | |
| JP6242502B2 (en) | Virtual computer system control method and virtual computer system | |
| CN117331704A (en) | Graphics processor GPU scheduling method, device and storage medium | |
| EP3543849A1 (en) | Driver management method and host machine | |
| JP4692912B2 (en) | Resource allocation system and resource allocation method | |
| US9342477B2 (en) | Multi-core processor, controlling method thereof and computer system with such processor | |
| US20190227942A1 (en) | System and Method to Handle I/O Page Faults in an I/O Memory Management Unit | |
| US9858085B2 (en) | Information processing including BIOS apparatus, information processing method thereof, and storage medium | |
| JP2017162165A (en) | Information processing apparatus, information processing method, and program | |
| US20090271785A1 (en) | Information processing apparatus and control method | |
| US12314732B2 (en) | Continuity of service for virtualized device after resumption from hibernation | |
| US20220357976A1 (en) | Information processing apparatus, information processing method, and computer-readable recording medium storing information processing program |