JP2017068824A - Information processing device - Google Patents
Information processing device Download PDFInfo
- Publication number
- JP2017068824A JP2017068824A JP2016102437A JP2016102437A JP2017068824A JP 2017068824 A JP2017068824 A JP 2017068824A JP 2016102437 A JP2016102437 A JP 2016102437A JP 2016102437 A JP2016102437 A JP 2016102437A JP 2017068824 A JP2017068824 A JP 2017068824A
- Authority
- JP
- Japan
- Prior art keywords
- driver
- video
- information processing
- guest
- host
- 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
- Stored Programmes (AREA)
Abstract
Description
本発明は、情報処理装置に関する。 The present invention relates to an information processing apparatus.
OS(Operating System)の準仮想化・仮想化技術とは、過去のOSを新しいシステム上でそのまま実行することで過去の資産をそのまま継承するための技術として発展してきた。 The OS (Operating System) para-virtualization / virtualization technology has been developed as a technology for directly inheriting past assets by executing past OSs as they are on a new system.
また、近年では、クラウド環境の発展により、ハードウェアに依存することなくサーバ環境をネットワーク上に提供する土台となる技術として準仮想化・仮想化技術が利用されている。また、組み込み分野でもハードウェアのシステム性能の向上から過去の資産の再利用や複数ハードウェアの統合を目的として準仮想化・仮想化技術の導入が検討され実現化されつつある。 In recent years, with the development of cloud environments, para-virtualization / virtualization technologies have been used as a base technology for providing a server environment on a network without depending on hardware. Also in the embedded field, introduction of para-virtualization / virtualization technology is being studied and realized for the purpose of reusing past assets and integrating multiple hardware to improve hardware system performance.
準仮想化・仮想化技術を備えた情報処理装置では、仮想環境上で動作するゲストOSと、ゲストOSを動作させるホストOSとが備えられており、例えば、ゲストOSが仮想環境上でファイルシステムを実現するものなどがある。 An information processing apparatus provided with a para-virtualization / virtualization technology includes a guest OS that operates in a virtual environment and a host OS that operates the guest OS. For example, the guest OS operates on a file system in the virtual environment. There is something that realizes.
さらに、このような情報処理装置では、ゲストOS上で動作するパススルードライバが起動された場合、当該パススルードライバがホストOSを介さずハードウェアを直接制御して初期化等の所定の処理を行うものがある。例えば、準仮想化したドライバがHDD(Hard Disk Drive)などのハードウェアに直接アクセスすることができるコンピュータが開示されている(特許文献1参照)。 Further, in such an information processing apparatus, when a pass-through driver that operates on the guest OS is activated, the pass-through driver directly controls the hardware without using the host OS and performs predetermined processing such as initialization. There is. For example, a computer is disclosed in which a paravirtualized driver can directly access hardware such as a hard disk drive (HDD) (see Patent Document 1).
しかしながら、上述の準仮想化・仮想化技術を備えた情報処理装置では、装置の起動時や省エネルギー状態からの復帰時において、ホストOSの起動、仮想化管理ソフトウェアの起動、ゲストOSの起動、という順序で起動される。従って、例えば、特許文献1の情報処理装置において、ゲストOS上にある準仮想化したパススルードライバを起動するためには、ゲストOSが起動されるまで待機する必要があるため、オーバーヘッドが生じて、処理負荷が増大してしまう。 However, in the information processing apparatus provided with the above-described para-virtualization / virtualization technology, the host OS is started, the virtualization management software is started, and the guest OS is started when the apparatus is started or when returning from the energy saving state. Launched in order. Therefore, for example, in the information processing apparatus disclosed in Patent Document 1, in order to start the paravirtualized pass-through driver on the guest OS, it is necessary to wait until the guest OS is started. The processing load increases.
本発明は、上記に鑑みてなされたものであって、オーバーヘッドを回避して、処理負荷を抑制できる情報処理装置を提供することを目的とする。 The present invention has been made in view of the above, and an object of the present invention is to provide an information processing apparatus that can avoid overhead and suppress processing load.
上述した課題を解決し、目的を達成するために、本発明は、仮想環境上で動作する第1の処理部と、前記第1の処理部を動作させる第2の処理部とを有する情報処理装置において、前記第1の処理部により動作され、前記第2の処理部を介さずに直接ハードウェアを制御する直接制御部と、前記第2の処理部により動作され、前記直接制御部が起動する前に、前記直接制御部により実行される所定の処理を代替して実行する代替制御部と、を備え、前記直接制御部は、起動した後、前記代替制御部により実行された前記所定の処理の内容を引き継ぐ。 In order to solve the above-described problems and achieve the object, the present invention provides an information processing including a first processing unit that operates in a virtual environment and a second processing unit that operates the first processing unit. In the apparatus, a direct control unit that is operated by the first processing unit and directly controls hardware without going through the second processing unit, and is operated by the second processing unit, and the direct control unit is activated. An alternative control unit that executes instead of the predetermined process executed by the direct control unit, and the direct control unit is activated and then the predetermined control executed by the alternative control unit Take over the contents of the process.
本発明によれば、オーバーヘッドを回避して、処理負荷を抑制できるという効果を奏する。 According to the present invention, it is possible to avoid the overhead and suppress the processing load.
以下、添付図面を参照しながら、本発明にかかる情報処理装置の実施形態を詳細に説明する。本実施形態の情報処理装置は、準仮想化技術が用いられている。 Hereinafter, embodiments of an information processing apparatus according to the present invention will be described in detail with reference to the accompanying drawings. The information processing apparatus according to the present embodiment uses a para-virtualization technology.
図1は、本実施形態の情報処理装置のハードウェア構成の一例を示すブロック図である。図1に示すように、情報処理装置100は、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)などの制御装置11と、ROM(Read Only Memory)やRAM(Random Access Memory)などの主記憶装置12と、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの補助記憶装置13と、ディスプレイなどの表示装置14と、マウス、キーボード、タッチパネル、又はキースイッチなどの入力装置15と、通信インタフェースなどの通信装置16と、を備えており、通常のコンピュータを利用したハードウェア構成となっている。
FIG. 1 is a block diagram illustrating an example of a hardware configuration of the information processing apparatus according to the present embodiment. As shown in FIG. 1, an
但し、情報処理装置100のハードウェア構成は、これに限定されず、IC(Integrated Circuit)、ASIC(Application Specific Integrated Circuit)、及び各種センサなどを更に備えていてもよい。
However, the hardware configuration of the
情報処理装置100は、例えば、PC(Personal Computer)、スマートフォン、タブレット端末、ウェアラブル端末、画像形成装置、プロジェクタ、テレビ会議装置、電子黒板、蛍光灯、カメラ、エアコン、冷蔵庫、自販機、及び産業用機器などが挙げられる。画像形成装置は、例えば、印刷装置、複写機、複合機、スキャナ装置、及びファクシミリ装置などが挙げられる。複合機は、複写機能、印刷機能、スキャナ機能、及びファクシミリ機能のうち少なくとも2つの機能を有するものである。
The
図2は、本実施形態の情報処理装置の構成の一例を示す図である。図2に示すように、情報処理装置100は、図1で示した構成等を備えたHW(Hardware:ハードウェア)20と、ホストOS(Operating System)30と、ゲストOS50と、ゲストOS60と、Virtio51、61と、図1で示した主記憶装置12と、を主に備えている。ホストOS30、ゲストOS50、60、およびVirtio51、61は、例えば、制御装置11および主記憶装置12により実現できる。ここで、ホストOS30が第2の処理部に相当し、ゲストOS60が第1の処理部に相当する。
FIG. 2 is a diagram illustrating an example of the configuration of the information processing apparatus according to the present embodiment. As shown in FIG. 2, the
ホストOS30(Dom0)は、情報処理装置100上の基盤となるOSであって、ゲストOS50、60を動作させる。詳細には、ホストOS30は、ゲストOS50、60を動作させるための仮想環境を構築するソフトウェアであるVM(Virtual Machine)を動作させる。例えば、ホストOS30は、LINUX(登録商標)などである。
The host OS 30 (Dom 0) is an OS serving as a base on the
ゲストOS50(DomU1)およびゲストOS60(DomU2)は、情報処理装置100の仮想環境上で動作するOSであって、ホストOS30により動作される。仮想環境とは、物理的なコンピュータ環境とは別の仮想的な環境であって、本実施形態では、ホストOS30上で動作するVMによって仮想的に構築されたコンピュータ環境である。
The guest OS 50 (DomU1) and the guest OS60 (DomU2) are operating on the virtual environment of the
Virtio51、61は、仮想環境上で動作する、標準化された仮想化ドライバ群である。本実施形態では、ホストOS30およびゲストOS50、60間のVM間通信を実現するインタフェースの役割を果たしている。但し、これに限定されず、例えば、VMにXenを用いる場合には、XenSocketを、VM間通信を実現するインタフェースに用いてもよいし、ベンダが独自に提供するインタフェースを、VM間通信を実現するインタフェースに用いてもよい。 The Virtuals 51 and 61 are a standardized virtualization driver group that operates in a virtual environment. In this embodiment, it plays the role of the interface which implement | achieves communication between VM between host OS30 and guest OS50,60. However, the present invention is not limited to this. For example, when Xen is used for VM, XenSocket may be used as an interface for realizing communication between VMs, or an interface provided by a vendor is realized for communication between VMs. It may be used for an interface that
HW20は、ほとんどのモジュールがホストOS30によって、モジュールそれぞれに対応するドライバを介して制御されている。また、図2に示すように、HW20は、Videoハードウェア21を備えている。このVideoハードウェア21は、ゲストOS60によって、ホストOS30を介さず直接制御(パススルー)されている。
Most modules of the
一方、ゲストOS60は、Videoドライバ62を備えている。Videoドライバ62は、ゲストOS60上で動作するものであり、情報処理装置100の一部のハードウェア(本実施形態の例ではVideoハードウェア21)を、ホストOS30を介さず直接制御(パススルー)している。ここで、Videoドライバ62が、直接制御部に相当する。
On the other hand, the guest OS 60 includes a video driver 62. The video driver 62 operates on the guest OS 60, and directly controls (passes through) a part of the hardware of the information processing apparatus 100 (the
また、図2に示すように、ホストOS30は、仮想化管理部31と、代替ドライバ32と、を備えている。仮想化管理部31は、情報処理装置100における仮想化を管理するものであって、例えば、ホストOS30が完全に起動した後にゲストOS50、60を起動し管理する(図2矢印参照)。
As illustrated in FIG. 2, the host OS 30 includes a virtualization management unit 31 and an alternative driver 32. The virtualization management unit 31 manages virtualization in the
代替ドライバ32(DOM0ドライバ)は、ゲストOS60からホストOS30を介さず直接制御(パススルー)されるハードウェア(ここでは、Videoハードウェア21)に対応するドライバである。通常、Videoハードウェア21は、ゲストOS60のVideoドライバ62がホストOS30を介さずに直接制御するものであるが、本実施形態の代替ドライバ32は、ゲストOS60が起動するまでは、Videoドライバ62が行う所定の処理を肩代わりするものである。ここで、代替ドライバ32が、代替制御部に相当する。
The alternative driver 32 (DOM0 driver) is a driver corresponding to hardware (here, Video hardware 21) that is directly controlled (passed through) from the guest OS 60 without passing through the
主記憶装置12は、仮想記憶領域203、204を有している。ここで、各ドライバは、通常、ドライバ構造体と呼ばれるドライバ個別の記憶領域を有しておりこれを基に動作する。図2に示すように、本実施形態の主記憶装置12では、ホストOS30から見た仮想記憶領域203に代替ドライバ構造体201を有し、ゲストOS60から見た仮想記憶領域204にVideoドライバ構造体202を有している。代替ドライバ構造体201が記憶部に相当する。
The main storage device 12 has
例えば、代替ドライバ32は、情報処理装置100の起動時に、ホストOS30が起動してゲストOS60にあるVideoドライバ62が起動するまで機能し、Videoハードウェア21の初期化処理を代替して実行する。そして、代替ドライバ32は、代替して実行した初期化処理の内容を代替ドライバ構造体201(記憶部)に記憶する。
For example, the alternative driver 32 functions until the
そして、Videoドライバ62が起動した後、Videoドライバ62は、代替ドライバ構造体201を参照して、代替ドライバ32により実行された初期化処理の内容を引き継ぐ。これにより、ゲストOS60のVideoドライバ62が起動する前に、Videoハードウェア21を初期化して利用ができる。
Then, after the video driver 62 is activated, the video driver 62 refers to the
また、例えば、代替ドライバ32は、情報処理装置100の省エネルギー状態(省エネ状態)からの復帰時に、ホストOS30が起動(復帰)してゲストOS60にあるVideoドライバ62が起動(復帰)するまで機能し、Videoハードウェア21の省エネルギー状態からの復帰処理を代替して実行する。そして、代替ドライバ32は、代替して実行した復帰処理の内容を代替ドライバ構造体201(記憶部)に記憶する。
Further, for example, the substitute driver 32 functions until the
そして、Videoドライバ62が起動(復帰)した後、Videoドライバ62は、代替ドライバ構造体201を参照して、代替ドライバ32により実行された復帰処理の内容を引き継ぐ。これにより、ゲストOS60のVideoドライバ62が起動する前に、Videoハードウェア21を復帰させて利用ができる。
After the video driver 62 is activated (returned), the video driver 62 refers to the
ここで、準仮想化された従来の情報処理装置について例を挙げて説明する。図9は、従来の情報処理装置の構成の一例を示す図である。図9に示すように、情報処理装置300は、HW320と、ホストOS330と、ゲストOS350と、ゲストOS360と、Virtio351、361と、を主に備えている。
Here, an example of a conventional virtualized information processing apparatus will be described. FIG. 9 is a diagram illustrating an example of a configuration of a conventional information processing apparatus. As illustrated in FIG. 9, the
HW320は、さらに、ASIC(Application Specific Integrated Circuit)322、GPU(Graphics Processing Unit)321を備えている。また、ゲストOS350は、ホストOS330を介さずASIC322を制御するASICドライバ352を備えている。また、ゲストOS360は、さらに、ホストOS330を介さずGPU321を制御するGPUドライバ362を備えている。
The
このように、情報処理装置300では、ゲストOS350、360がホストOS330を介さず直接HW320のASIC322やGPU321を制御するASICドライバ352やGPUドライバ362、いわゆるパススルードライバを備えている。
As described above, in the
次に、従来の情報処理装置を参照して、装置の起動について説明する。図10は、従来の情報処理装置の構成の他の例を示す図である。図10に示すように、情報処理装置400は、HW420と、ホストOS430と、ゲストOS450と、ゲストOS460と、Virtio451、461と、を主に備えている。そして、ホストOS430は、仮想化管理部431を備えている。また、ゲストOS460は、Videoドライバ462を備え、HW420はVideoハードウェア421を備えている。図10に示す情報処理装置400は、本実施形態の情報処理装置100における代替ドライバ32を有していないが、他の各部の構成および機能は同様である(図2参照)。
Next, activation of the apparatus will be described with reference to a conventional information processing apparatus. FIG. 10 is a diagram illustrating another example of the configuration of a conventional information processing apparatus. As illustrated in FIG. 10, the
情報処理装置400では、ホストOS(Dom0)430が完全に起動し、マルチプロセス動作が可能になった後、ホストOS430に備えられている仮想化管理部431により、仮想環境上のゲストOS450(DomU1)およびゲストOS460(DomU2)を起動する。
In the
ここで、情報処理装置400におけるVideoドライブの起動までの流れについて説明する。図11は、従来の情報処理装置におけるVideoドライブの起動までの流れを示す図である。図11(a)〜(c)のそれぞれは、情報処理装置400が起動している部分を表示している。
Here, the flow until the video drive is started in the
すなわち、図11(a)は、ホストOS430の起動が完了した直後の状態を示している。ホストOS430の起動後は、初期起動プロセスとして仮想化管理部431が起動する。図11(b)は、(a)の状態から、ゲストOS450が起動された状態を示している。そして、図11(c)は、さらに、ゲストOS460が起動され、パススルードライバであるVideoドライバ462が起動され、Videoハードウェア421を初期化処理して利用可能となった状態を示している。
That is, FIG. 11A shows a state immediately after the activation of the
図11(a)〜(c)に示すように、従来の情報処理装置400では、ホストOS430が起動し、仮想化管理部431がゲストOS450、460を起動し、さらにゲストOS460のVideoドライバ462が起動するまで、パススルーの対象となったハードウェア(ここでは、Videoハードウェア421)の初期化処理等の処理や使用をすることができない。
As shown in FIGS. 11A to 11C, in the conventional
また、従来の情報処理装置400では、ゲストOS460が起動するまで、ホストOS430がパススルー対象のVideoハードウェア421を使用するケースであっても、Videoハードウェア421の状態をゲストOS460のVideoドライバ462に引き継ぐ機能がないため、再度初期化からやり直して使用しなければならなかった。
Further, in the conventional
このようにパススルードライバ(本実施形態ではVideoドライバ462)の制御が後回しになるのは、装置の起動時だけでなく省エネルギー状態(Suspend to RAM、Suspend to HDD)からの復帰時(省エネ復帰時)にも起きる。省エネ復帰時は、周辺回路にも電源が入り、それに対応するデバイスドライバも省エネ復帰処理を行う必要がある。その際、仮想環境上のゲストOS450、460の省エネ復帰は、ホストOS430の省エネ復帰が完了した後に行われる。
As described above, the control of the pass-through driver (in this embodiment, the video driver 462) is postponed not only when the apparatus is started but also when returning from the energy saving state (Suspend to RAM, Suspend to HDD) (when energy saving is restored). Also happens to. At the time of energy saving recovery, the peripheral circuit is also turned on, and the corresponding device driver must also perform energy saving recovery processing. At that time, the energy saving recovery of the
図12は、従来の情報処理装置におけるVideoドライブの省エネルギー状態への移行から復帰までの流れを示す図である。図12(a)〜(c)は、省エネルギー状態への移行(省エネ移行)の流れを示しており、図12(d)〜(f)は、省エネルギー状態からの復帰(省エネ復帰)の流れを示している。 FIG. 12 is a diagram illustrating a flow from transition to return to an energy saving state of a video drive in a conventional information processing apparatus. FIGS. 12A to 12C show the flow of the transition to the energy saving state (energy saving transition), and FIGS. 12D to 12F show the flow of the return from the energy saving state (energy saving return). Show.
すなわち、図12(a)は、ホストOS430もゲストOS450、460も起動されている通常状態を示している。図12(b)は、ゲストOS450、460、Virtio451、461、Videoハードウェア421が省エネ状態へ移行した仮想環境のサスペンド状態を示している。図12(c)は、さらに、ホストOS430も省エネ状態へ移行し、全てが省エネ状態になったサスペンド状態を示している。
That is, FIG. 12A shows a normal state in which both the
図12(d)は、(c)と同様サスペンド状態を示している。図12(e)は、省エネ状態からホストOS430が復帰した復帰状態を示している。図12(f)は、さらに、ゲストOS450、460、Virtio451、461、Videoハードウェア421が復帰し、全てが復帰した通常状態を示している。
FIG. 12D shows a suspended state as in FIG. FIG. 12E shows a return state in which the
図12(d)〜(f)に示すように、従来の情報処理装置400では、ホストOS430が起動(復帰)し、仮想化管理部431がゲストOS450、460を起動(復帰)し、さらにゲストOS460のVideoドライバ462が起動(復帰)するまで、パススルーの対象となったハードウェア(ここでは、Videoハードウェア421)を復帰させて使用することができない。
As shown in FIGS. 12D to 12F, in the conventional
つまり、従来の情報処理装置400は、パススルードライバであるVideoドライバ462により、ゲストOS460から直接制御されているVideoハードウェア421の初期化処理や復帰処理は、ゲストOS460が起動されないとできない。従って、パススルー対象のハードウェア(Videoハードウェア421)が利用可能になるための初期化処理や復帰処理は、ゲストOS460の起動時間分だけ遅れるため、システム全体として利用可能な状態になる時間はその分遅れてしまう。
That is, the conventional
また、デバイスによっては、初期化処理や省エネ復帰処理に物理的に時間がかかるものがあり(例えば、HDDのスピンアップなど)、初期化処理や省エネ復帰処理をできるだけ早く実行することでシステムのパフォーマンスを上げることができる。反対に、パススルー対象のデバイスの初期化処理や省エネ復帰処理に時間を要するものである場合、大幅にパフォーマンスを悪化させてしまう。 Also, depending on the device, the initialization process and the energy saving recovery process may take physically long time (for example, HDD spin-up etc.), and the system performance can be improved by executing the initialization process and energy saving recovery process as soon as possible. Can be raised. On the other hand, if the initialization process or the energy saving recovery process of the pass-through target device takes time, the performance will be greatly deteriorated.
そこで、本実施形態の情報処理装置100(図2参照)は、パススルー対象のハードウェアの初期化処理や省エネ復帰処理を代替して実行し、その内容を引き継ぐ代替ドライバ32を備えている。そして、ゲストOS60上のパススルードライバであるVideoドライバ62は、代替ドライバ32で初期化処理や省エネ復帰処理が実行されたハードウェアの情報を引き継ぐ機能を備えている。 Therefore, the information processing apparatus 100 (see FIG. 2) according to the present embodiment includes an alternative driver 32 that substitutes and executes the pass-through target hardware initialization process and the energy saving return process, and takes over the contents. The video driver 62, which is a pass-through driver on the guest OS 60, has a function of taking over the hardware information that has been subjected to the initialization process and the energy saving return process by the alternative driver 32.
次に、本実施形態の情報処理装置100による起動処理について説明する。図3は、本実施形態の情報処理装置における起動処理の流れを示すフローチャートである。図3(a)の部分は、ホストOS30の起動処理を示しており、図3(b)の部分は、ゲストOS60の起動処理を示している。
Next, activation processing by the
まず、ホストOS30の起動処理を説明する。情報処理装置100の電源が投入されると、ホストOS30は、システム全体の初期化処理を行い(ステップS102)、その後、個別のドライバの初期化処理を行う(ステップS104)。
First, startup processing of the
このとき、ホストOS30は、準仮想化対象のハードウェアモジュールであるVideoハードウェア21に対応する代替ドライバ32の初期化処理を行う。そして、代替ドライバ32は、初期化処理した内容を自己が有する代替ドライバ構造体201に記憶する(ステップS106)。
At this time, the
ドライバを含むホストOS30の初期化処理が終わると、ホストOS30は、プロセスの初期化・起動を行う(ステップS108)。このプロセスにおいて、ホストOS30は、ゲストOS50、60を操作する仮想化管理部31を起動する(ステップS110)。仮想化管理部31は、ゲストOS50、60を起動する(ステップS112、114)。そして、ホストOS30のシステムが動作状態となる(ステップS116)。
When the initialization process of the
次に、ゲストOS60の起動処理を説明する。ゲストOS60が起動されると、ゲストOS60は、仮想化OSとしてのシステムの初期化処理を行い(ステップS122)、その後、ドライバの初期化処理を行う(ステップS124)。 Next, the startup process of the guest OS 60 will be described. When the guest OS 60 is activated, the guest OS 60 performs initialization processing of the system as the virtualized OS (step S122), and then performs initialization processing of the driver (step S124).
このとき、パススルードライバであるVideoドライバ62を初期化する際、Virtio61によるVM間通信を介して、ホストOS30の代替ドライバ32の代替ドライバ構造体201にアクセスして、Videoハードウェア21の初期化処理の内容を引き継ぐ。そして、Videoドライバ62は、引き継いだVideoハードウェア21の初期化処理の内容を自己が有するVideoドライバ構造体202に記憶する(ステップS126)。
At this time, when the video driver 62 as the pass-through driver is initialized, the
ドライバを含むゲストOS60の初期化処理が終わると、ゲストOS60は、プロセスの初期化・起動を行う(ステップS128)。そして、ゲストOS60のシステムが動作状態となる(ステップS130)。 When the initialization process of the guest OS 60 including the driver is completed, the guest OS 60 initializes and activates the process (step S128). Then, the system of the guest OS 60 enters an operating state (step S130).
ここで、Virtio51、61によるVM間通信において、代替ドライバ32の代替ドライバ構造体201にアクセスするための手段は通常備えられていないが、ホストOS30側のバックエンドドライバとして通信用ドライバを備えることで容易にアクセスが実現できる。
Here, in the communication between VMs by the Virtual 51 and 61, a means for accessing the
たとえば、本実施形態の情報処理装置100のVideoドライバ62の場合であれば、ビデオモード(解像度、リフレッシュレートなど)の情報を引き継ぐことでビデオチップの再初期化が不要となる。このように、起動時に代替ドライバ32でVideoハードウェア21の初期化処理を実行することにより、ハードウェアの初期化処理に必須となる時間をパススルードライバ起動前から初期化することで見かけ上なくすことができる。
For example, in the case of the video driver 62 of the
次に、図3におけるステップS106の初期化処理について詳述する。図4は、本実施形態の情報処理装置の起動時における代替ドライバの初期化処理の流れを示すフローチャートである。 Next, the initialization process in step S106 in FIG. 3 will be described in detail. FIG. 4 is a flowchart showing a flow of an alternative driver initialization process when the information processing apparatus according to this embodiment is started.
Videoハードウェア21に対応する代替ドライバ32は、ホストOS30によりシステムの初期化処理が行われると(ステップS182)、初期化処理の内容を、代替ドライバ構造体201に記憶する(ステップS184)。
When the
この代替ドライバ32は、初期化処理と省エネ復帰処理とを実行する機能のみを有するドライバであって、他のOPEN/CLOSEといったシステムコールに対してはすべてエラーを返すように設計している。 This alternative driver 32 is a driver having only a function of executing an initialization process and an energy saving return process, and is designed to return an error for all other system calls such as OPEN / CLOSE.
また、初期化処理としてデバイスの初期化を行うが、時間のかかる処理に関しては終了の待ち合わせを行わない。すなわち、例えば、発信回路の安定時間など数100ms単位で起動された場合、初期化処理のトリガのみかけておいて、パススルードライバで完了を待つことでハードウェア初期化の待ち時間とゲストOS60の起動時間とを並列化して全体の待ち時間の短縮をはかることができる。 In addition, the device is initialized as the initialization process, but no waiting for completion is performed for the time-consuming process. That is, for example, when the system is started in units of several hundreds of milliseconds, such as the stabilization time of the transmission circuit, the hardware initialization wait time and the startup of the guest OS 60 are performed by waiting for the completion of the pass-through driver only by triggering the initialization process. The overall waiting time can be shortened by parallelizing time.
次に、図3におけるステップS126の初期化処理について詳述する。図5は、本実施形態の情報処理装置の起動時におけるVideoドライバの初期化処理の流れを示すフローチャートである。 Next, the initialization process in step S126 in FIG. 3 will be described in detail. FIG. 5 is a flowchart showing the flow of initialization processing of the video driver when the information processing apparatus of this embodiment is started.
まず、Videoドライバ62は、代替ドライバ構造体201からVirtio61を介して初期化処理の内容を読み込む(ステップS192)。この部分は各ドライバ実装に依存する。Videoドライバ62の場合、例えば、解像度設定、リフレッシュレート、現在使用しているビデオメモリ位置などの情報が初期化処理の内容となる。
First, the video driver 62 reads the contents of the initialization process from the
そして、デバイスを初期化することなく、これらの情報(初期化の内容)を引き継ぐことで、Videoドライバ62の初期化処理となり(ステップS194)、引き継いだ内容をVideoドライバ構造体202に記憶する。
Then, by inheriting these pieces of information (initialization contents) without initializing the device, the video driver 62 is initialized (step S194), and the inherited contents are stored in the
また、代替ドライバ32でハードウェアの初期化のトリガをかけている場合、初期化完了を確認、もしくは完了していない場合、継続して完了待ちを実施する。 If the alternative driver 32 triggers hardware initialization, the completion of initialization is confirmed or, if not completed, waiting for completion is carried out continuously.
次に、本実施形態の情報処理装置100による省エネ復帰処理について説明する。図6は、本実施形態の情報処理装置における省エネ復帰処理の流れを示すフローチャートである。図6(a)の部分は、ホストOS30の省エネ復帰処理を示しており、図6(b)の部分は、ゲストOS60の省エネ復帰処理を示している。
Next, the energy saving return process by the
情報処理装置100が省エネ状態から復帰する場合、周辺回路として電源が落とされてしまうデバイスは、省エネ移行前に現状復帰するため、デバイスの初期化を含めた復帰処理が必要となる。
When the
まず、ホストOS30の省エネ復帰処理を説明する。起動時と同様に、情報処理装置100の復帰処理が開始されると、ホストOS30は、システム全体の復帰処理を行い(ステップS142)、その後、各ドライバの復帰処理ルーチンが呼び出され、ドライバの復帰処理を行う(ステップS144)。
First, the energy saving return process of the
このとき、ホストOS30は、代替ドライバ32に関しても復帰処理ルーチンが呼び出され、ホストOS30は、代替ドライバ32の復帰処理を行う。そして、代替ドライバ32は、初期化した処理内容を自己が有する代替ドライバ構造体201に記憶する(ステップS146)。
At this time, the
ドライバを含むホストOS30の復帰処理が終わると、ホストOS30は、プロセスの復帰を行う(ステップS148)。このプロセスにおいて、ホストOS30は、ゲストOS50、60を操作する仮想化管理部31を復帰する(ステップS150)。仮想化管理部31は、ゲストOS50、60を復帰する(ステップS152、154)。そして、ホストOS30のシステムが動作状態となる(ステップS156)。
When the return processing of the
次に、ゲストOS60の復帰処理を説明する。ゲストOS60が復帰されると、ゲストOS60は、仮想化OSとしてのシステムの復帰処理を行い(ステップS162)、その後、各ドライバの復帰処理ルーチンが呼び出され、ドライバの復帰処理を行う(ステップS164)。 Next, the restoration process of the guest OS 60 will be described. When the guest OS 60 is restored, the guest OS 60 performs a system restoration process as a virtualized OS (step S162), and then a restoration process routine for each driver is called to perform the driver restoration process (step S164). .
このとき、パススルードライバであるVideoドライバ62を復帰する際、復帰処理ルーチンが呼び出され、Virtio61によるVM間通信を介して、ホストOS30の代替ドライバ32の代替ドライバ構造体201にアクセスして、Videoハードウェア21の復帰処理の内容を引き継ぐ。そして、Videoドライバ62は、引き継いだVideoハードウェア21の復帰処理の内容を自己が有するVideoドライバ構造体202に記憶する(ステップS166)。
At this time, when the video driver 62 that is a pass-through driver is restored, a restoration processing routine is called to access the
ドライバを含むゲストOS60の復帰処理が終わると、ゲストOS60は、プロセスの復帰を行う(ステップS168)。そして、ゲストOS60のシステムが動作状態となる(ステップS170)。 When the restoration process of the guest OS 60 including the driver is completed, the guest OS 60 performs process restoration (step S168). Then, the system of the guest OS 60 enters an operating state (step S170).
これにより、不要な再初期化を回避して、ゲストOS60の起動(復帰)を待つことなく、先に代替ドライバ32により復帰処理を開始することができる。 Thereby, unnecessary re-initialization can be avoided, and the return process can be started by the alternative driver 32 without waiting for the activation (return) of the guest OS 60.
次に、図6におけるステップS146の復帰処理について詳述する。図7は、本実施形態の情報処理装置の省エネ復帰時における代替ドライバの復帰処理の流れを示すフローチャートである。 Next, the return process in step S146 in FIG. 6 will be described in detail. FIG. 7 is a flowchart showing the flow of the replacement process of the alternative driver when the information processing apparatus according to the present embodiment returns to the energy saving mode.
Videoハードウェア21に対応する代替ドライバ32は、ホストOS30によりシステムの復帰処理が行われると(ステップS202)、復帰処理の内容を、代替ドライバ構造体201に記憶する(ステップS204)。
When the
なお、具体的な復帰処理の内容は、個別のドライバによって異なる。Videoドライバ62の場合、例えば、ビデオモード(解像度、リフレッシュレート)のレジューム処理(再設定処理)などの情報が復帰処理の内容となる。そして、代替ドライバ32は、それらの設定値を代替ドライバ構造体201に記憶する。
Note that the specific contents of the return process differ depending on the individual driver. In the case of the Video driver 62, for example, information such as a resume process (resetting process) of the video mode (resolution, refresh rate) is the contents of the restoration process. Then, the substitute driver 32 stores these setting values in the
次に、図6におけるステップS166の復帰処理について詳述する。図8は、本実施形態の情報処理装置の省エネ復帰時におけるVideoドライバの復帰処理の流れを示すフローチャートである。 Next, the return process in step S166 in FIG. 6 will be described in detail. FIG. 8 is a flowchart showing the flow of the restoration process of the video driver when the information processing apparatus according to the present embodiment is restored to the energy saving state.
まず、Videoドライバ62は、代替ドライバ構造体201からVirtio61を介して復帰処理の内容を読み込む(ステップS212)。Videoドライバ62の場合、例えば、ビデオモード(解像度、リフレッシュレート)のレジューム処理(再設定処理)などの情報が復帰処理の内容となる。この情報を元にパススルードライバ(Videoドライバ62)で必要な復帰処理を行う。
First, the video driver 62 reads the contents of the return process from the
そして、デバイスを復帰処理することなく、これらの情報(復帰処理の内容)を引き継ぐことで、Videoドライバ62の復帰処理となり(ステップS214)、引き継いだ内容をVideoドライバ構造体202に記憶する。
Then, by taking over these pieces of information (the contents of the restoration process) without performing the restoration process on the device, the restoration process of the Video driver 62 is performed (step S214), and the taken over contents are stored in the
このように、本実施形態の準仮想化された情報処理装置100は、ホストOS30を介さず直接制御(パススルー)されるVideoハードウェア21に対応する代替ドライバ32を、ホストOS30に備えている。この代替ドライバ32は、情報処理装置100の起動時や省エネ復帰時に、パススルードライバであるVideoドライバ62が起動(復帰)するまで機能する。そして、代替ドライバ32がVideoハードウェア21の初期化処理や復帰処理を実行した後に、Videoドライバ62が起動(復帰)した場合にその処理の内容を引き継ぐ。これにより、Videoドライバ62は、初期化処理や復帰処理を再度行うことなく、Videoハードウェア21を利用することができるため、オーバーヘッドを回避して、処理負荷を抑制できる。
As described above, the paravirtualized
11 制御装置
12 主記憶装置
13 補助記憶装置
14 表示装置
15 入力装置
16 通信装置
20 HW
21 Videoハードウェア
30 ホストOS
31 仮想化管理部
32 代替ドライバ
50、60 ゲストOS
51、61 Virtio
62 Videoドライバ
100 情報処理装置
201 代替ドライバ構造体
202 Videoドライバ構造体
203、204 仮想記憶領域
11 Control Device 12 Main Storage Device 13 Auxiliary Storage Device 14 Display Device 15 Input Device 16
21
31 Virtualization management unit 32 Alternative driver 50, 60 Guest OS
51, 61 Viratio
62
Claims (4)
前記第1の処理部により動作され、前記第2の処理部を介さずに直接ハードウェアを制御する直接制御部と、
前記第2の処理部により動作され、前記直接制御部が起動する前に、前記直接制御部により実行される所定の処理を代替して実行する代替制御部と、を備え、
前記直接制御部は、起動した後、前記代替制御部により実行された前記所定の処理の内容を引き継ぐ、情報処理装置。 In an information processing apparatus having a first processing unit that operates in a virtual environment and a second processing unit that operates the first processing unit,
A direct control unit that is operated by the first processing unit and directly controls hardware without going through the second processing unit;
An alternative control unit that is operated by the second processing unit and executes a predetermined process executed by the direct control unit before the direct control unit is activated, and
The direct control unit is an information processing apparatus that takes over the content of the predetermined process executed by the alternative control unit after being activated.
前記直接制御部は、起動した後、前記記憶部を参照して実行された前記所定の処理の内容を引き継ぐ、請求項1に記載の情報処理装置。 The substitution control unit stores the contents of the predetermined process executed in substitution in a storage unit,
The information processing apparatus according to claim 1, wherein the direct control unit takes over the contents of the predetermined process executed with reference to the storage unit after being activated.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/277,268 US20170097836A1 (en) | 2015-10-02 | 2016-09-27 | Information processing apparatus |
EP16191214.2A EP3151118A3 (en) | 2015-10-02 | 2016-09-28 | Information processing apparatus |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015197105 | 2015-10-02 | ||
JP2015197105 | 2015-10-02 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017068824A true JP2017068824A (en) | 2017-04-06 |
Family
ID=58492556
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016102437A Pending JP2017068824A (en) | 2015-10-02 | 2016-05-23 | Information processing device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2017068824A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7566851B2 (en) | 2022-11-29 | 2024-10-15 | キヤノン株式会社 | Information processing device, control method, and program |
-
2016
- 2016-05-23 JP JP2016102437A patent/JP2017068824A/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7566851B2 (en) | 2022-11-29 | 2024-10-15 | キヤノン株式会社 | Information processing device, control method, and program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11875172B2 (en) | Bare metal computer for booting copies of VM images on multiple computing devices using a smart NIC | |
US8635395B2 (en) | Method of suspending and resuming virtual machines | |
US9015705B2 (en) | Computing device having a migrated virtual machine accessing physical storage space on another computing device | |
US9600369B2 (en) | Operating system recovery method and apparatus, and terminal device | |
US9632813B2 (en) | High availability for virtual machines in nested hypervisors | |
EP3117311A1 (en) | Method and system for implementing virtual machine images | |
JP2011100431A (en) | Device and method for controlling virtual machine | |
CN102567052A (en) | Techniques for enabling remote management of servers configured with graphics processors | |
CN110968392B (en) | Method and device for upgrading virtualized simulator | |
KR101673299B1 (en) | Operating system recovery method and apparatus, and terminal device | |
CN102591675A (en) | Method and system for management of multiple software images with shared memory blocks | |
US9557980B2 (en) | Seamless application integration apparatus and method | |
JP2014059733A (en) | Information processing system, and image processor | |
US9852029B2 (en) | Managing a computing system crash | |
US9870246B2 (en) | Systems and methods for defining virtual machine dependency mapping | |
US11635970B2 (en) | Integrated network boot operating system installation leveraging hyperconverged storage | |
JP2017068824A (en) | Information processing device | |
CN113971069A (en) | Controlling screen video display via manageability controller | |
US20230026015A1 (en) | Migration of virtual computing storage resources using smart network interface controller acceleration | |
US20230350770A1 (en) | Recovery of smart network interface controller operating system | |
US10776287B2 (en) | Headless support using serial-based virtual consoles in a computing system | |
JP4292220B2 (en) | Virtual computer system | |
JP4548514B2 (en) | Control method of virtual computer system | |
EP3151118A2 (en) | Information processing apparatus |