JP5979229B2 - 情報処理装置、制御方法、及び制御プログラム - Google Patents

情報処理装置、制御方法、及び制御プログラム Download PDF

Info

Publication number
JP5979229B2
JP5979229B2 JP2014516552A JP2014516552A JP5979229B2 JP 5979229 B2 JP5979229 B2 JP 5979229B2 JP 2014516552 A JP2014516552 A JP 2014516552A JP 2014516552 A JP2014516552 A JP 2014516552A JP 5979229 B2 JP5979229 B2 JP 5979229B2
Authority
JP
Japan
Prior art keywords
bridge
state
route
processor
virtual machine
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.)
Active
Application number
JP2014516552A
Other languages
English (en)
Other versions
JPWO2013175570A1 (ja
Inventor
哲也 上農
哲也 上農
正和 矢部
正和 矢部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2013175570A1 publication Critical patent/JPWO2013175570A1/ja
Application granted granted Critical
Publication of JP5979229B2 publication Critical patent/JP5979229B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)

Description

本発明は、情報処理装置、制御方法、及び制御プログラムに関する。
一般に、コンピュータシステムにおいては、ハイパーバイザが起動され、ハイパーバイザにより複数の仮想マシンが起動される。各仮想マシンは、実デバイス,仮想デバイスなどを割り当てられ、OS(Operating System)上でアプリケーションを動作させ、実デバイス,仮想デバイスなどにアクセスしながら動作する。
仮想マシンに割り当てられる実デバイスとしては、PCI(Peripheral Components Interconnect)デバイスがある。一般的なPCIデバイスに割り当てられるI/O(Input/Output)アドレスは可変である。そのため、システム上に複数のPCIデバイスが搭載されている場合、PCIデバイス毎に異なるI/Oアドレスを割り当てることにより、アドレスの衝突が回避され、複数の仮想マシンにより複数のPCIデバイスを同時に扱うことが可能である。
しかし、ビデオデバイス(以下、VGA(Video Graphic Array)という)は一般のPCIデバイスと異なり、VGAに割り当てられるI/Oアドレスは固定されている。I/Oアドレスを固定されたVGA等のデバイスは、レガシーデバイスと呼ばれる。通常、一つのコンピュータシステム(例えばパーソナルコンピュータ)にはディスプレイは一台だけそなえられるという前提に基づき、VGAに割り当てられるI/Oアドレスは固定されている。
なお、一般的なPCIデバイスは、メモリマップドI/O(MMIO)方式またはI/Oアドレス方式でアクセスされる。VGAの場合、フレームバッファやVGAの設定のためのMMIOアドレス(非固定)が割り当てられる。さらに、VGAの場合、システム起動時等のI/OアクセスのためのI/Oアドレス(例えば3B0h〜3BBh, 3C0h〜3DFh)と、VGAの画面表示のフレームバッファのために用意されたメモリアドレス(例えば000A0000h〜000BFFFFh)とが固定的に割り当てられる。
仮想マシンは、起動時にI/Oアドレスを用いてVGAに対するI/Oアクセスを行なう。一つのコンピュータシステムに複数の実VGAを搭載し複数の仮想マシンのそれぞれに別個の実VGAを割り当てる場合、それぞれの実VGAに固有のI/Oアドレスを割り当てる必要がある。このとき、VGAに割り当てられるI/Oアドレスは、上述の通り同一の固定の値である。I/Oアドレスが固定の値であっても、各仮想マシン上でI/O空間は別々であるため、各VGAに対し同じ固定I/Oアドレスを割り当てることは可能である。
しかしながら、ハイパーバイザは、複数の仮想マシンがそれぞれ使用する複数のVGAのI/Oアドレスを、一つのI/O空間内で取り扱うため、複数のVGAに同じ固定I/Oアドレスを割り当てると、アドレスの重複・衝突が起こる(図13参照)。図13では、2つの仮想マシンVM1,VM2が、それぞれ、同一のI/Oアドレス(例えば3B0h-3BBh, 3C0h-3DFh)を割り当てられた異なる2つのVGA(VGAカード#1,#2)に対するレガシーアクセス要求を行なった状態が示されている。したがって、一つのコンピュータシステム上で複数の実VGAを同時に使うことはできない。
このため、複数のVGAを搭載した場合、複数のVGAのうちのいずれか一つだけを有効にするとともに、それ以外のVGAを無効に設定することが行なわれている。各VGAの有効/無効の切換は、PCIブリッジのVGA許可ビットを用いて行なわれる(図14参照)。図14では、4つの仮想マシンVM1〜VM4を構築する一つのCPU(Central Processing Unit)が、チップセットおよび4つのPCIブリッジを介し4つのVGAカード#1〜#4に接続されている。そして、例えば仮想マシンVM2に割り当てられたVGAカード#2のみを有効にすべく、仮想マシンVM2とVGAカード#2とを接続するPCIブリッジのVGA許可ビットに“1”が設定され、それ以外のPCIブリッジのVGA許可ビットに“0”が設定されている。
このように、一つのコンピュータシステムにおいて1台しか実VGAを用いることができないため、実VGAを割り当てて動作させる仮想マシンは、1つに抑えられる。したがって、仮想マシンに割り当てることのできる実VGAは、コンピュータシステム全体で高々一つであり、複数の仮想マシンにより複数の実VGAを扱うことができない。
アドレスの重複・衝突を抑止する手法として、図15に示す手法も考えられる。図15に示す手法では、仮想マシンVM1〜VM4のそれぞれに、仮想VGAカードが割り当てられ、ハイパーバイザが実VGAを制御し、ハイパーバイザの画面の中に各仮想マシンの画面出力が表示される。この手法において、仮想マシンVM1〜VM4に割り当てられる仮想VGAカードは、ハイパーバイザによって作成される、仮想化されたVGAであるため、実VGAの豊富な機能を全て用いることができない。
特許文献1では、PCIデバイスと仮想マシンとの割り当て表を用いて仮想マシンからPCIデバイスへのアクセスの制御を行なう技術が開示されている。当該技術では、同じ固定I/Oアドレスを割り当てられた複数のレガシーデバイス(例えばVGA)がPCIデバイスとして搭載された場合、上述したようにI/Oアドレスの衝突を回避することができない。したがって、複数の仮想マシンのそれぞれに対し、実VGAを同時に割り当てることができない。
特許文献2では、PCIスイッチにおけるレジスタの設定によりI/Oデバイスから仮想サーバへのアクセスを抑止し、ホットプラグの仕組みを用いて仮想サーバからI/Oデバイスへのアクセスを抑止する技術が開示されている。当該技術では、I/Oデバイス(VGA)は、仮想サーバ(仮想マシン)から一時的に切り離された後、再接続される。再接続時にはデバイスのリセットが行なわれるため、デバイスを切り離し前の状態に戻すための再設定が必要となる。複数のVGAを同時に扱うシステムでは、VGAに対するアクセスが頻繁に起きる。このため、当該技術を用いた場合、VGAの切り離しから再設定までの処理が頻発し、現実的な性能は望めない。
特開2004−252591号公報 特開2009−181418号公報
一つの側面で、本発明は、複数の仮想マシンに対しI/Oアドレス固定の複数のデバイスを接続した状態を保ちながらI/Oアドレスの衝突を回避することを目的とする。
一つの案では、情報処理装置は、複数の仮想マシンを構築するプロセッサと、同一のI/Oアドレスを割り当てられた複数の実デバイスと、前記プロセッサと前記複数の実デバイスとを接続する複数のブリッジと、を備える。前記プロセッサは、前記プロセッサから各実デバイスまでの各経路上における前記ブリッジの識別情報と前記各経路の通過の可否を示す通過設定情報とを管理するテーブルを作成する。また、前記プロセッサは、前記複数の仮想マシンのうちの一の仮想マシンから当該一の仮想マシンに割り当てられた前記複数の実デバイスのうちの一の実デバイスに対する一のアクセスを検知すると、前記テーブルを参照し、前記プロセッサから当該一の実デバイスまでの前記経路の通過を許可するように前記テーブルの前記通過設定情報と前記経路上の前記ブリッジの状態とを設定し、前記一のアクセスを行ない、各仮想マシンが各ブリッジの状態の参照要求をした場合、前記参照要求への返信用の状態が予め設定されていなければ通過を許可する状態を各仮想マシンに返信する一方、前記返信用の状態が予め設定されていれば前記返信用の状態を各仮想マシンに返信する
一つの案では、制御方法は、複数の仮想マシンを構築するプロセッサと、同一のI/Oアドレスを割り当てられた複数の実デバイスと、前記プロセッサと前記複数の実デバイスとを接続する複数のブリッジと、を備えた、情報処理装置の制御方法であって、前記プロセッサから各実デバイスまでの各経路上における前記ブリッジの識別情報と前記各経路の通過の可否を示す通過設定情報とを管理するテーブルを作成し、前記複数の仮想マシンのうちの一の仮想マシンから当該一の仮想マシンに割り当てられた前記複数の実デバイスのうちの一の実デバイスに対する一のアクセスを検知すると、前記テーブルを参照し、前記プロセッサから当該一の実デバイスまでの前記経路の通過を許可するように前記テーブルの前記通過設定情報と前記経路上の前記ブリッジの状態とを設定し、前記一のアクセスを行ない、各仮想マシンが各ブリッジの状態の参照要求をした場合、前記参照要求への返信用の状態が予め設定されていなければ通過を許可する状態を各仮想マシンに返信する一方、前記返信用の状態が予め設定されていれば前記返信用の状態を各仮想マシンに返信する
一つの案では、制御プログラムは、複数の仮想マシンを構築するプロセッサと、同一のI/Oアドレスを割り当てられた複数の実デバイスと、前記プロセッサと前記複数の実デバイスとを接続する複数のブリッジと、を備えた、情報処理装置の制御を、前記プロセッサに実行させるプログラムであって、前記プロセッサから各実デバイスまでの各経路上における前記ブリッジの識別情報と前記各経路の通過の可否を示す通過設定情報とを管理するテーブルを作成し、前記複数の仮想マシンのうちの一の仮想マシンから当該一の仮想マシンに割り当てられた前記複数の実デバイスのうちの一の実デバイスに対する一のアクセスを検知すると、前記テーブルを参照し、前記プロセッサから当該一の実デバイスまでの前記経路の通過を許可するように前記テーブルの前記通過設定情報と前記経路上の前記ブリッジの状態とを設定し、前記一のアクセスを行ない、各仮想マシンが各ブリッジの状態の参照要求をした場合、前記参照要求への返信用の状態が予め設定されていなければ通過を許可する状態を各仮想マシンに返信する一方、前記返信用の状態が予め設定されていれば前記返信用の状態を各仮想マシンに返信する、処理を、前記プロセッサに実行させる。
一実施形態によれば、複数の仮想マシンに対しI/Oアドレス固定の複数のデバイスを接続した状態を保ちながらI/Oアドレスの衝突を回避することができる。
一実施形態としての情報処理装置の構成を示すブロック図である。 本実施形態のPCIデバイス/ブリッジ対応表の一例を示す図である。 図2に示す対応表の一例に対応する構成と同構成におけるVGA許可ビットの状態とを示すブロック図である。 図1に示す情報処理装置による処理を説明するフローチャートである。 図1に示す情報処理装置によるPCIバススキャン処理を説明するフローチャートである。 図1に示す情報処理装置によるPCIバススキャンの処理を具体的に説明するシーケンス図である。 図1に示す情報処理装置によるPCIデバイス/ブリッジ対応表作成処理を説明するフローチャートである。 図1に示す情報処理装置によるPCIデバイス/ブリッジ対応表作成処理を具体的に説明するシーケンス図である。 図1に示す情報処理装置によるPCIブリッジ設定処理を説明するフローチャートである。 図1に示す情報処理装置によるPCIブリッジ設定処理を具体的に説明するシーケンス図である。 図1に示す情報処理装置の仮想マシンによる対応表の排他的使用を説明するフローチャートである。 図1に示す情報処理装置の仮想マシンがPCIブリッジのVGA許可ビットの参照要求を行なった際の処理を説明するフローチャートである。 コンピュータシステムにおけるVGAカードに対するアクセス要求によって生じるアドレスの重複・衝突を説明する図である。 アドレスの重複・衝突を抑止するための手法の第1例を示すブロック図である。 アドレスの重複・衝突を抑止するための手法の第2例を示すブロック図である。
以下、図面を参照して実施の形態を説明する。
〔1〕本実施形態のコンピュータシステムの構成
図1は、一実施形態としての情報処理装置(コンピュータシステム)1の構成を示すブロック図である。
図1に示すコンピュータシステム1は、複数(図中、4)の仮想マシンVM1〜VM4を構築する一般的なアーキテクチャをもつ。コンピュータシステム1は、CPU(プロセッサ)10,メモリ20,ストレージ30,NVRAM(Non-Volatile Random Access Memory)40,チップセット50,PCIバス60,スイッチ70,スロット80およびストレージ90を有している。
NVRAM40は、CPU10でコンピュータシステム1を初期化させるBIOS(Basic Input/Output System)プログラムを格納する。CPU10は、BIOSプログラムを実行することによりBIOS11を起動する。BIOSプログラムには、CPU10をハイパーバイザ12として機能させるハイパーバイザプログラムが内蔵されている。さらに、ハイパーバイザプログラムには、CPU10を、後述するPCIデバイス/ブリッジ対応表作成部12AおよびPCIブリッジ設定部12Bとして機能させる制御プログラムが含まれている。
ストレージ30には、仮想マシンVM1〜VM4用のOSおよびアプリケーションプログラムを含む仮想ストレージ31が構築される。
メモリ20は、CPU10によりNVRAM40から読み出されたBIOSプログラムや、仮想マシンVM1〜VM4により仮想ストレージ31から読み出されたOSおよびアプリケーションプログラムを展開されて保存する。また、メモリ20は、ハイパーバイザ12により作成され更新される仮想マシン構成情報21を格納するほか、後述するPCIデバイス/ブリッジ対応表22やミューテックス変数23を保存する。
チップセット50は、CPU10,ストレージ30およびNVRAM40に接続されるとともに、PCIバス60およびスイッチ70を介し複数のPCI−Ex(Express)スロット(以下、単にスロットという)80に接続される。チップセット50は、ホストブリッジ51およびSATA(Serial Advanced Technology Attachment)コントローラ52を有している。SATAコントローラ52は、CPU10からの要求に従ってストレージ30に対するアクセスを制御する。ホストブリッジ51は、CPU10に対し、ストレージ30,NVRAM40およびスロット80を接続する。
スロット80には、拡張カード(PCIデバイス)としてのSASカード81,RAID(Redundant Arrays of Inexpensive Disks)カード82,VGAカード83などが挿入される。SASカード81を挿入することにより、ストレージ90を増設することができる。スロット80に挿入されたデバイス81〜83は、PCIバス60を相互接続するスイッチ70に内蔵されたPCIブリッジ(以下、単にブリッジという)71経由で、ホストブリッジ51に接続される。
コンピュータシステム1では、複数のスイッチ70がそなえられ、図1に示す各スイッチ70には、4つのスロット80が接続される。図1の左側のスイッチ70に接続された4つのスロット80のうちの2つには、それぞれSASカード81およびRAIDカード82が挿入され、SASカード81には、2つのストレージ90が接続されて増設されている。図1の右側のスイッチ70に接続された4つのスロット80には、それぞれVGAカード(ビデオデバイス)83−1〜83−4が挿入されている。VGAカード83−1〜83−4は、レガシーデバイスであり、VGAカード83−1〜83−4には、前述した通り、同一のI/Oアドレスが固定的に割り当てられている。以下、VGAカードを示す符号としては、複数のVGAカードのうち1つを特定する際には符号83−1〜83−4が用られ、任意のVGAカードを指す際には符号83が用いられる。また、VGAカード83−1〜83−4は、それぞれVGAカード#1〜#4と表記する場合がある。VGAカード#1〜#4は、4つのVGAカード83を識別するための識別情報(ID)を示す(図2参照)。
各スイッチ70は、5つのブリッジ71−1〜71−5を有する。ブリッジ71−1の一端側には、PCIバス60(バス#0;図3参照)を介してホストブリッジ51が接続される。ブリッジ71−1の他端側には、PCIバス60(バス#1;図3参照)を介して4つのブリッジ71−2〜71−5の一端側が接続される。4つのブリッジ71−2〜71−5の他端側には、それぞれPCIバス60(バス#2〜#5;図3参照)を介してスロット80が接続される。図1の右側のスイッチ70における4つのブリッジ71−2〜71−5に接続されたスロット80には、それぞれVGAカード83−1〜83−4が挿入されている。以下、ブリッジを示す符号としては、複数のブリッジのうち1つを特定する際には符号71−1〜71−5が用られ、任意のブリッジを指す際には符号71が用いられる。また、ブリッジ71−1〜71−5は、それぞれPCIブリッジ#1〜#5と表記する場合がある。PCIブリッジ#1〜#5は、5つのブリッジ71を識別するための識別情報(ID)を示す(図2参照)。バス#0〜#5は、PCIバス60を特定するためのバス番号を示す。
各ブリッジ71には、ブリッジ71の状態を設定するためのコンフィグレーションレジスタ(ブリッジ制御レジスタ)71Aがそなえられている。コンフィグレーションレジスタ71AにはVGA許可ビット71Bが含まれている。VGA許可ビット71Bには、ハイパーバイザ12により、ブリッジ71に信号を通過させるか否かを指示する通過可否情報(0または1)が設定される。信号の通過を許可する場合、VGA許可ビット71Bには例えば“1”が設定される。一方、信号の通過を拒否する場合、VGA許可ビット71Bには例えば“0”が設定される。
これにより、VGAカード83に固定的に割り当てられているI/Oアドレスとフレームバッファのメモリアドレスへのアクセス(レガシーアクセス)要求とは、VGA許可ビット71Bに“1”を設定されたブリッジ71経由でVGAカード83へ転送される。一方、VGA許可ビット71Bに“0”を設定されたブリッジ71に接続されたVGAカード83には、何も転送されない。例えば、後述する図3に示す構成では、ブリッジ#1および#2のVGA許可ビット71Bに“1”が設定され、ブリッジ#3〜#5のVGA許可ビット71Bに“0”が設定されている。したがって、I/Oアドレスおよびアクセス要求は、VGAカード#1にのみ転送され、VGAカード#2〜#4には転送されない。
CPU10は、コンピュータシステム1の起動後、NVRAM40から読み出されたハイパーバイザプログラムに含まれる制御プログラムを実行することにより、PCIデバイス/ブリッジ対応表作成部12AおよびPCIブリッジ設定部12Bとして機能する。
PCIデバイス/ブリッジ対応表作成部12Aは、コンピュータシステム起動時にハイパーバイザ12の初期化処理の中で呼び出され、全てのVGAカード83についての対応表22の作成/初期化処理を行なう。PCIデバイス/ブリッジ対応表作成部12Aによる対応表22の作成処理については、図7および図8を参照しながら具体的に説明する。
PCIデバイス/ブリッジ対応表(テーブル)22は、図2に示すように、CPU10から各VGAカード83までの各経路上におけるブリッジ71の識別情報(ID;ブリッジ#1〜#5)と各経路の通過の可否を示す通過設定情報(許可ビット)とを、VGAカード83毎に管理する。なお、図2は、PCIデバイス/ブリッジ対応表22の一例を示す図である。また、図3は、図2に示す対応表22の一例に対応する構成と同構成における許可ビット71Bの状態とを示すブロック図である。
より具体的に、対応表22は、図2に示すように、VGAカード83毎に1行ずつ作成される。対応表22の各行には、VGAカード83を特定するPCIデバイスIDと、VGAカード83が接続されているPCIブリッジ71のIDと、PCIブリッジ71を接続された経路の通過の可否を示す許可ビットとが設定される。例えば図3に示す構成/状態の場合、VGAカード#1の行には、CPU10とVGAカード83−1との間の経路上におけるPCIブリッジ#1,#2が登録されるとともに、当該経路の通過が許可される旨を示す“1”が許可ビットに設定される。VGAカード#2の行には、CPU10とVGAカード83−2との間の経路上におけるPCIブリッジ#1,#3が登録されるとともに、当該経路の通過が拒否される旨を示す“0”が許可ビットに設定される。VGAカード#3の行には、CPU10とVGAカード83−3との間の経路上におけるPCIブリッジ#1,#4が登録されるとともに、当該経路の通過が拒否される旨を示す“0”が許可ビットに設定される。VGAカード#4の行には、CPU10とVGAカード83−4との間の経路上におけるPCIブリッジ#1,#5が登録されるとともに、当該経路の通過が拒否される旨を示す“0”が許可ビットに設定される。つまり、図2および図3に示す例では、CPU10(4つの仮想マシンVM1〜VM4)とVGAカード#1〜#4とを接続する経路のうち、CPU10(仮想マシンVM1)とVGAカード#1とを接続する経路のみが、有効な状態つまり信号通過可能な状態に設定されている。
PCIブリッジ設定部12Bは、仮想マシンVM1〜VM4のうちの一つから当該仮想マシンに割り当てられたVGAカード83に対するアクセスを検知すると、対応表22を参照し、当該アクセスを行なった仮想マシンに基づき、以下の設定処理を行なう。即ち、PCIブリッジ設定部12Bは、CPU10から、当該アクセスを行なった仮想マシンに割り当てられたVGAカード83までの経路の通過を許可するように、対応表22の許可ビットとブリッジ71の状態(VGA許可ビット72Bの状態)とを設定する。なお、本実施形態において、仮想マシンVM1〜VM4には、それぞれ、レガシーデバイスである実VGAカード83−1〜83−4が割り当てられている。
PCIブリッジ設定部12Bは、対応表22においてアクセス対象のVGAカード83の許可ビットに“0”が設定されている場合つまりCPU10からアクセス対象のVGAカード83までの経路の通過を拒否する状態が設定されている場合、以下の設定処理を行なう。即ち、PCIブリッジ設定部12Bは、当該経路以外の経路の許可ビットと当該経路以外の経路上のブリッジ71の状態とを、通過を拒否する状態に設定するとともに、当該経路の許可ビットと当該経路上のブリッジ71の状態とを、通過を許可する状態に設定する。
例えば、図2および図3に示す状態で、仮想マシンVM2が自身に割り当てられたVGAカード#2に対するアクセスを行なった場合、対応表22においてVGAカード#2の許可ビットには“0”が設定されている。PCIブリッジ設定部12Bは、まず、対応表22において許可ビットに“1”を設定されている、VGAカード#1の行を認識し、当該行に登録されたブリッジ#1,#2を、解除対象ブリッジとして取得し、解除対象ブリッジ#1,#2のVGA許可ビット71Bを“0”に設定する。また、PCIブリッジ設定部12Bは、対応表22のVGAカード#1の行における許可ビットに“0”を設定する。この時点で、ブリッジ#1〜#5のVGA許可ビット71Bの値は全て“0”に設定される。この後、PCIブリッジ設定部12Bは、VGAカード#2に至る経路上の設定対象ブリッジ#1,#3のVGA許可ビット71Bを“1”に設定するとともに、対応表22のVGAカード#2の行における許可ビットに“1”を設定する。これにより、VGAカード#2に至る経路(ブリッジ#1→#3)以外の経路は、信号通過を拒否する状態に設定されるとともに、VGAカード#2に至る経路(ブリッジ#1→#3)は、信号通過を許可する状態に設定され、仮想マシンVM2からアクセス対象のVGAカード#2に対するアクセスが実行される。以上の処理の詳細については、図2,図3および図10を参照しながら後述する。
PCIブリッジ設定部12Bは、対応表22においてアクセス対象のVGAカード83の許可ビットに“1”が設定されている場合つまりCPU10からアクセス対象のVGAカード83までの経路の通過を許可する状態が設定されている場合、以下の処理を行なう。即ち、PCIブリッジ設定部12Bは、対応表22の許可ビットや、各ブリッジ71のVGA許可ビット71Bの更新を行なうことなく、仮想マシンからアクセス対象のVGAカード83に対するアクセスを実行させる。
例えば、図2および図3に示す状態で、仮想マシンVM1が自身に割り当てられたVGAカード#1に対するアクセスを行なった場合、対応表22においてVGAカード#1の許可ビットには“1”が設定されている。このため、当該アクセスをトラップしたPCIブリッジ設定部12Bは、対応表22の許可ビットや、各ブリッジ71のVGA許可ビット71Bの更新を行なうことなく、仮想マシンVM1からアクセス対象のVGAカード#1に対するアクセスを実行させる。
PCIブリッジ設定部12Bは、仮想マシンからVGAカード83に対するアクセスを検知してから同アクセスの実行を完了するまでの間に他の仮想マシンから他のVGAカード83に対するアクセスを検知した場合、先行するアクセスの実行を完了するまで、他のアクセスについての処理を待機させる。PCIブリッジ設定部12Bによる待機処理は、メモリ20のミューテックス(MUTual EXclusion(相互排他))変数23を用いて行なわれる。PCIブリッジ設定部12Bは、一の仮想マシンからVGAカード83に対するアクセスを検知するとミューテックス変数23に“1”を設定することによりロックを取得する。PCIブリッジ設定部12Bは、当該アクセスの完了に伴い、ミューテックス変数23を“0”に設定することによりロックを解放する。このように、PCIブリッジ設定部12Bは、ミューテックス変数23が“1”に設定されている間、後続のアクセスを待機させることで、仮想マシンVM1〜VM4からVGAカード83に対するアクセスに際し、対応表22を排他的に使用する。
PCIブリッジ設定部12Bによる設定処理については、図9〜図11を参照しながら具体的に説明する。
なお、CPU10(ハイパーバイザ12)は、仮想マシンVM1〜VM4が自身に割り当てられたVGAカード#1〜#4に接続されるブリッジ71の状態(VGA許可ビット71Bの値)を参照した場合、以下の機能を果たす。つまり、ハイパーバイザ12は、仮想マシンVM1〜VM4のいずれか一つからブリッジ71の状態の参照要求を受けると、ブリッジ71の状態にかかわらず、信号通過を許可する状態を示す“1”、もしくは、予め設定された状態を、仮想マシンVM1〜VM4に返信する機能を有している。当該機能については図12を参照しながら後述する。
〔2〕本実施形態のコンピュータシステムによる処理の流れ
以下では、本実施形態のコンピュータシステム1の動作について、図4〜図12を参照しながら、より詳細に説明する。
まず、図4に示すフローチャート(ステップS10〜S20)に従って、本実施形態のコンピュータシステム1による処理の流れについて説明する。
コンピュータシステム1が起動されると、CPU10は、ハイパーバイザプログラムを内蔵されたBIOSプログラムをNVRAM40から読み出してメモリ20に展開し、BIOSプログラムを実行することにより、BIOS11を起動する(ステップS10)。BIOS11は、PCIバススキャン処理(ステップS11)を含む、コンピュータシステム1の初期化処理を実行した後、ハイパーバイザ12を起動する(ステップS12)。BIOS11によるPCIバススキャン処理については、図5および図6を参照しながら後述する。
ハイパーバイザ12は、起動されると、PCIデバイス/ブリッジ対応表作成部12Aとしての機能を呼び出し、メモリ20上に、PCIデバイス/ブリッジ対応表22を作成する(ステップS13)。PCIデバイス/ブリッジ対応表作成部12Aによる対応表22の作成処理については、図7および図8を参照しながら後述る。
ハイパーバイザ12は、対応表22の作成後、仮想マシンVM1〜VM4の構築や構成変更を行ない、仮想マシン構成情報21を作成してメモリ20に保存する(ステップS14)。ハイパーバイザ12は、仮想マシン構成情報21に基づき、実デバイスや仮想的なデバイスを仮想マシンVM1〜VM4に割り当て、アクセス制御を行ない、仮想マシンVM1〜VM4を起動する(ステップS15)。仮想マシンVM1〜VM4は、自身に割り当てられたストレージ30(仮想ストレージ31)からOSを読み出してメモリ20に展開し、OSを起動し、OS上でアプリケーションを動作させる。なお、上述した通り、本実施形態において、仮想マシンVM1〜VM4には、それぞれ、レガシーデバイスである実VGAカード83−1〜83−4が割り当てられている。
仮想マシンVM1〜VM4の起動後、各仮想マシンが自身に割り当てられたVGAカード83に対するレガシーアクセス要求(I/Oアクセス要求)を発行すると(ステップS16)、ハイパーバイザ12は、レガシーアクセス要求を検知してトラップする(ステップS17)。ハイパーバイザ12は、レガシーアクセス要求をトラップすると、PCIブリッジ設定部12Bとしての機能を呼び出し、レガシーアクセス要求の対象VGAカード83および対応表22に従って、対応表22やPCIブリッジ71の状態を設定する。状態設定後、ハイパーバイザ12は、対象VGAカード83に対するレガシーアクセスを実行する(ステップS18)。この後、VGAカード83に対するアクセス要求を行なった仮想マシンは、ハイパーバイザ12からアクセス結果を取得し(ステップS19)、他の処理へ移行する(ステップS20)。PCIブリッジ設定部12Bによる設定処理については、図9〜図11を参照しながら後述する。
〔3〕BIOSによるPCIバススキャン処理
図5に示すフローチャート(ステップS21〜S26)に従って、BIOS11によるPCIバススキャン処理について説明する。当該PCIバススキャン処理は、図4のステップS11で実行される処理である。ここで、VGAカード83を含むPCIデバイスは、バス番号(バス#0〜#5),デバイス番号(VGAカード#1〜#4)およびファンクション番号により識別することができる。
BIOS11は、ホストブリッジ51に接続されたバス#0から順番に、PCIバス60上の全てのデバイス番号,ファンクション番号の組合せで、デバイスアクセスを試みる(ステップS21〜S25)。BIOS11は、スキャン中のバス上にブリッジを発見した場合(ステップS22のYESルート)、発見したブリッジ下流について再帰的にバススキャンを行なう(ステップS23)。バススキャンによってアクセスしたデバイスがブリッジでない場合(ステップS22のNOルート)、BIOS11は、当該デバイスへのPCIリソース設定処理を行なう(ステップS24)。BIOS11は、全ての組合せについてデバイスアクセスを行なうと(ステップS21〜S25)、ブリッジへのPCIリソース設定処理を行ない(ステップS26)、PCIバススキャン処理を終了する。このPCIバススキャン処理によって、CPU10は、コンピュータシステム1上の全PCIデバイスを列挙し、アクセスすることができる。
次に、図6に示すシーケンス図(矢印A11〜A18)に従って、BIOS11によるPCIバススキャン処理について、より具体的に説明する。図6では、図5に示すフローチャートに従い、図3に示すバス#0〜#2に対するPCIバススキャン処理を行なった際の具体的な動作が図示されている。
BIOS11は、バス#0に対するPCIバススキャンを実行すると(矢印A11参照)、PCIブリッジ#1を発見し(矢印A12参照)、ついで、PCIブリッジ#1よりも下流のバス#1に対するPCIバススキャンを実行する(矢印A13参照)。BIOS11は、バス#1に対するPCIバススキャンにより、PCIブリッジ#2を発見し(矢印A14参照)、さらに、PCIブリッジ#2よりも下流のバス#2に対するPCIバススキャンを実行する(矢印A15参照)。BIOS11は、バス#2に対するPCIバススキャンにより、VGAカード#1を発見し、当該VGAカード#1へのPCIリソース設定処理を行なう(矢印A16参照)。この後、BIOS11は、PCIブリッジ#2,#1へのPCIリソース設定処理を行なう(矢印A17,A18参照)。
〔4〕PCIデバイス/ブリッジ対応表作成処理
図7に示すフローチャート(ステップS31〜S37)に従って、PCIデバイス/ブリッジ対応表作成部12AによるPCIデバイス/ブリッジ対応表作成処理について説明する。当該対応表作成処理は、図4のステップS13で実行される処理である。
PCIデバイス/ブリッジ対応表作成部12Aは、以下のように、BIOS11によるPCIバススキャンと同様のPCIバススキャンを行なって対応表22を作成する。つまり、対応表作成部12Aは、ホストブリッジ51に接続されたバス#0から順番に、PCIバス60上の全てのデバイス番号,ファンクション番号の組合せで、デバイスアクセスを試みる(ステップS31〜S37)。対応表作成部12Aは、スキャン中のバス上にブリッジを発見した場合(ステップS32のYESルート)、発見したブリッジ下流について再帰的に対応表作成処理を行なう(ステップS33)。
バススキャンによってアクセスしたデバイスがブリッジでない場合(ステップS32のNOルート)、対応表作成部12Aは、当該デバイスがVGAカードであるか否かを判断する(ステップS35)。当該デバイスがVGAカードでない場合(ステップS35のNOルート)、対応表作成部12Aは、次のバススキャン処理へ移行する。当該デバイスがVGAカードである場合(ステップS35のYESルート)、対応表作成部12Aは、当該VGAカードについての行を対応表22に追加する(ステップS36)。対応表22に追加された行には、図2に示すように、当該VGAカードの識別情報に対応付けて、当該VGAカードに到るまでに存在するPCIブリッジの識別情報と、当該VGAカードに到るまでの経路についての許可ビットの値(デフォルト値は例えば0)とが登録される。
あるバスについてのバススキャンが終わった段階、つまり再帰的に実行されたステップS33の処理終了時点で、当該バスにブリッジが接続されており当該ブリッジの下流にVGAカードが接続されている場合、対応表作成部12Aは、対応表22へのブリッジの追加処理を行なう(ステップS34)。つまり、対応表作成部12Aは、対応表22における、該当するブリッジの項目に、上位ブリッジの識別情報を追加する。このように、再帰処理が終わるごとにステップS34の追加処理を行なうことで、最終的に、ホストブリッジ51から各VGAカード83までの経路上に存在する全てのブリッジ71の情報を1つの行に記録した、PCIデバイス/ブリッジ対応表22が完成する。
次に、図8に示すシーケンス図(矢印A21〜A29)に従って、対応表作成部12AによるPCIデバイス/ブリッジ対応表作成処理について、より具体的に説明する。図8では、図7に示すフローチャートに従い、対応表22において図3に示すVGAカード#1についての行を作成登録する際の具体的な動作が図示されている。
対応表作成部12Aは、バス#0に対するPCIバススキャンを実行すると(矢印A21参照)、PCIブリッジ#1を発見し(矢印A22参照)、ついで、PCIブリッジ#1よりも下流のバス#1に対するPCIバススキャンを実行する(矢印A23参照)。対応表作成部12Aは、バス#1に対するPCIバススキャンにより、PCIブリッジ#2を発見し(矢印A24参照)、さらに、PCIブリッジ#2よりも下流のバス#2に対するPCIバススキャンを実行する(矢印A25参照)。対応表作成部12Aは、バス#2に対するPCIバススキャンにより、VGAカード#1を発見し(矢印A26参照)、VGAカード#1についての行を対応表22に追加してから(矢印A27参照)、当該行にPCIブリッジ#2,#1を追加する(矢印A28,A29参照)。
〔5〕PCIブリッジ設定処理
図9に示すフローチャート(ステップS41〜S52)および図10に示すシーケンス図(矢印A31〜A43)に従って、PCIブリッジ設定部12BによるPCIブリッジ設定処理について説明する。当該PCIブリッジ設定処理は、図4のステップS18で実行される処理である。
〔5−1〕仮想マシンからVGAカードへのI/Oアクセス
仮想マシンVM1〜VM4のいずれか一つから、当該仮想マシンに割り当てられたVGAカード83へのI/Oアクセス要求が発行されると、当該I/Oアクセス要求は、ハイパーバイザ12によってトラップされる(図4のステップS17)。I/Oアクセス要求がトラップされると、ハイパーバイザ12は、メモリ20の仮想マシン構成情報21を参照し、トラップされたI/Oアクセス要求の発行元である仮想マシンに割り当てられたVGAカード83のIDを取得する(図9のステップS41;図10の矢印A31参照)。この後、ハイパーバイザ12によりPCIブリッジ設定部12Bが呼び出されて起動される(図10の矢印A32参照)。
PCIブリッジ設定部12Bは、起動されると、まず、取得されたVGAカード83のIDに基づき対応表22の参照・更新を行なうとともにPCIブリッジ71への設定処理を行なう(図9のステップS44〜S50;図10の矢印A35〜A41参照)。これにより、PCIブリッジ設定部12Bは、PCIブリッジ71の状態(VGA許可ビット71Bの状態)を、仮想マシン(CPU10)からアクセス対象のVGAカード83に対するI/Oアクセスのみが可能な状態に設定する。
〔5−2〕対応表の排他制御
仮想マシンVM1〜VM4のうちの一つからVGAカード83へのI/Oアクセス要求に応じて対応表22が参照・更新されている間に、別の仮想マシンからVGAカード83へのI/Oアクセス要求が発生する可能性がある。この場合、対応表22の参照・更新処理が同時に行なわれると、対応表22の整合が取れなくなる。このため、PCIブリッジ設定部12Bによる設定処理に際しては、対応表22の排他制御が必要になる。
そこで、本実施形態のPCIブリッジ設定部12Bは、ミューテックス変数と呼ばれる“1”または“0”の値を採る共有記憶域(メモリ20上のミューテックス変数23参照)を用いて、対応表22の排他制御を行なう。PCIブリッジ設定部12Bは、各仮想マシンからVGAカード83へのI/Oアクセス要求をトラップすると、以下のようにして、ミューテックス変数23にアクセスして排他処理を行なう。
〔5−2−1〕ロックの取得
最初に、PCIブリッジ設定部12Bは、メモリ20上のミューテック変数23の値を確認する(図9のステップS42)。ミューテックス変数23の値が“1”の場合(図9のステップS42のYESルート)、対応表22は、今回のアクセスよりも先行する、別の仮想マシンからのアクセスに応じた処理に用いられている。このため、PCIブリッジ設定部12Bは、ミューテックス変数23の値が“0”になるまで、今回のアクセスを待機させる。
ミューテックス変数23の値が“0”の場合(図9のステップS42のNOルート)、どの仮想マシンも対応表22を使用していないことを示している。このとき、PCIブリッジ設定部12Bは、ミューテックス変数23の値を“0”から“1”に設定して、対応表22を使用中であることを示す状態に切り換えることにより、ロックを取得する(ロックを掛ける;図9のステップS43;図10の矢印A33参照)。この状態で、他の仮想マシンは、前述の通り、ミューテックス変数23の値が“0”になるまで処理を待っている。このため、ミューテックスを取得した仮想マシン、つまりミューテックス変数23の値を“1”に切り換えた仮想マシンは、対応表22を排他的に使用することができる。
〔5−2−2〕ロックの解放
対応表22に対する処理(図9のステップS44〜S50;図10の矢印A35〜A41参照)を終え、さらにVGAカード83へのI/Oアクセスを完了すると(図9のステップS51;図10の矢印A42参照)、PCIブリッジ設定部12Bはロックを解放する。つまり、PCIブリッジ設定部12Bは、ミューテックス変数23の値を“1”から“0”に戻してロックを解除する(図9のステップS52:図10の矢印A43参照)。これにより、今まで待機していた別の仮想マシンがミューテックスを取得し、対応表22を使用することが可能になる。
ここで、図11に示すフローチャート(ステップS61〜S78)に従って、コンピュータシステム1の仮想マシンVM1,VM2による対応表22の排他的使用について説明する。
まず、仮想マシンVM1がVGAカード#1に対するI/Oアクセス要求を行ない(ステップS61)、当該I/Oアクセス要求がハイパーバイザ12によりトラップされると(ステップS62)、PCIブリッジ設定部12Bは当該I/Oアクセスについてロックを取得する(ステップS63;図9のステップS42,S43)。そして、PCIブリッジ設定部12BによりPCIブリッジ設定処理が行なわれ(ステップS64;図9のステップS44〜S50)、VGAカード#1に対するアクセスが行なわれると(ステップS65;図9のステップS51)、PCIブリッジ設定部12Bはロックを解放する(ステップS66;図9のステップS52)。この後、VGAカード#1に対するアクセス結果が仮想マシンVM1によって取得される(ステップS67;図4のステップS19)。
このとき、仮想マシンVM1がVGAカード#1に対するI/Oアクセス要求を行なうのとほぼ同時に、仮想マシンVM2がVGAカード#2に対するI/Oアクセス要求を行なったとする(ステップS71)。そして、ハイパーバイザ12により、VGAカード#1に対するI/Oアクセス要求よりも若干遅れてVGAカード#2に対するI/Oアクセス要求がトラップされたものとする(ステップS72)。この場合、PCIブリッジ設定部12Bは、仮想マシンVM2によるVGAカード#2に対するI/Oアクセス要求については、ロックを直ちに取得することができず、先行アクセス要求についてのロックが解放されるのを待機させる(ステップS73;図9のステップS42のYESルート)。
この後、先行アクセス要求についてのロックが解放されると(ステップS66)、PCIブリッジ設定部12Bは、後続の、VGAカード#2に対するI/Oアクセスについてロックを取得する(ステップS74;図9のステップS43)。そして、PCIブリッジ設定部12BによりPCIブリッジ設定処理が行なわれ(ステップS75;図9のステップS44〜S50)、VGAカード#2に対するアクセスが行なわれると(ステップS76;図9のステップS51)、PCIブリッジ設定部12Bはロックを解放する(ステップS77;図9のステップS52)。この後、VGAカード#2に対するアクセス結果が仮想マシンVM2によって取得される(ステップS78;図4のステップS19)。
〔5−3〕設定対象ブリッジ情報の取得
さて、PCIブリッジ設定部12Bは、対応表22のVGAカード83のIDを順に確認し、対応表22において、ステップS41で取得されたアクセス対象のVGAカード83のIDと一致する行を特定する。ここで特定された行から、CPU10からアクセス対象のVGAカード83までの経路の通過の可否を示す許可ビットの値(通過設定情報)が取得されるとともに、当該行に登録されているブリッジが設定対象ブリッジとして取得される(図9のステップS44;図10の矢印A34参照)。
以下、図10の矢印A35〜A42を参照しながら説明する具体的な処理は、図2および図3に示す状態で、仮想マシンVM2が自身に割り当てられたVGAカード#2に対するアクセスを行なった場合の処理である。この場合、PCIブリッジ設定部12Bは、対応表22のVGAカード83のIDを順に確認し、対応表22においてVGAカード#2と一致する行を特定する。図2に示す対応表22においてVGAカード#2と一致する行の許可ビットの値“0”が取得される。また、当該行におけるPCIブリッジ#1,#3が設定対象ブリッジとして取得される。
〔5−4〕許可ビットの判定および判定結果に応じた処理
PCIブリッジ設定部12Bは、対応表22から取得された、アクセス対象のVGAカード83のIDに対応する許可ビットの値が“1”であるか否かを判定する(図9のステップS45)。
〔5−4−1〕許可ビットが“1”の場合
アクセス対象のVGAカード83のIDに対応する許可ビットが“1”の場合(ステップS45のYESルート)、PCIブリッジ設定部12Bは、対応表22の許可ビットや各ブリッジ71のVGA許可ビット71Bの更新を行なうことなく、今回のアクセス対象のVGAカード83に対するI/Oアクセスを実行させる(図9のステップS51)。
例えば、図2および図3に示す状態で、仮想マシンVM1が自身に割り当てられたVGAカード#1に対するアクセスを行なった場合、VGAカード#1に対応する許可ビットは“1”である。このため、PCIブリッジ設定部12Bは、対応表22の許可ビットや各ブリッジ71のVGA許可ビット71Bの更新を行なうことなく、今回のアクセス対象のVGAカード#1に対するI/Oアクセスを実行させる
以上のようにして、VGAカード83(#1)へのI/Oアクセスを完了すると、PCIブリッジ設定部12Bは、ミューテックス変数23の値を“1”から“0”に戻してロックを解除する(図9のステップS52:図10の矢印A43参照)。そして、ハイパーバイザ12は、アクセス対象のVGAカード83(#1)に対するアクセス結果を、仮想マシンVM1へ通知する。
〔5−4−2〕許可ビットが“0”の場合
アクセス対象のVGAカード83のIDに対応する許可ビットが“0”の場合(図9のステップS45のNOルート)、CPU10からアクセス対象のVGAカード83に到る経路上のブリッジ71は、I/Oアクセス要求を下流のバスに転送しない。このままでは、I/Oアクセス要求がアクセス対象のVGAカード83に届かない。このため、CPU10からアクセス対象のVGAカード83に到る経路上のブリッジ71におけるVGA許可ビットには“1”を設定するとともに、それ以外のブリッジ71におけるVGA許可ビットには“0”を設定する必要がある。そこで、PCIブリッジ設定部12Bは、ブリッジ71および対応表22に対し、以下の処理を行なう。
まず、PCIブリッジ設定部12Bは、対応表22における許可ビットの値を順に確認し、許可ビットの値が“1”である行に登録されているブリッジを、解除対象ブリッジとして取得する(図9のステップS46)。図2,図3および図10に示す例では、許可ビットの値が“1”であるVGAカード#1の行が見出され、当該行におけるPCIブリッジ#1,#2が解除対象ブリッジとして取得される(図10の矢印A35参照)。
この後、PCIブリッジ設定部12Bは、ステップS46で特定された全ての解除対象ブリッジのVGA許可ビット71Bの値を“1”から“0”に設定する(図9のステップS47)。この時点で、ブリッジ#1〜#5のVGA許可ビット71Bの値は全て“0”に設定される。図2,図3および図10に示す例では、解除対象ブリッジとして取得されたPCIブリッジ#2,#1におけるVGA許可ビット71Bの値が“1”から“0”に設定される(図10の矢印A36,A37参照)。
そして、PCIブリッジ設定部12Bは、対応表22における解除対象ブリッジの行の許可ビットの値を“1”から“0”に更新する(図9のステップS48)。図2,図3および図10に示す例では、対応表22において解除対象ブリッジ#1,#2を登録された行の許可ビットの値が“1”から“0”に更新される(図10の矢印A38参照)。
ついで、PCIブリッジ設定部12Bは、ステップS44で取得された全ての設定対象ブリッジのVGA許可ビット71Bの値を“0”から“1”に設定する(図9のステップS49)。この時点で、アクセス対象のVGAカード83に対しI/Oアクセス要求が転送可能になる。図2,図3および図10に示す例では、設定対象ブリッジとして取得されたPCIブリッジ#1,#3におけるVGA許可ビット71Bの値が“0”から“1”に設定される(図10の矢印A39,A40参照)。
そして、PCIブリッジ設定部12Bは、対応表22における設定対象ブリッジの行の許可ビットの値を“0”から“1”に更新する(図9のステップS48)。図2,図3および図10に示す例では、対応表22において設定対象ブリッジ#1,#3を特録された行(VGAカード#2の行)の許可ビットの値が“0”から“1”に更新される(図10の矢印A41参照)。
上述したように、ステップS49の設定処理により、アクセス対象のVGAカード83に対しI/Oアクセス要求が転送されるようになり、アクセス対象のVGAカード83に対するI/Oアクセスが実行される(図9のステップS51)。図2,図3および図10に示す例では、アクセス対象のVGAカード#2に対しI/Oアクセス要求が転送され、アクセス対象のVGAカード#2に対するI/Oアクセスが実行される(図10の矢印A42参照)。
以上のようにして、対応表22に対する処理を終え、さらにVGAカード83(#2)へのI/Oアクセスを完了すると、PCIブリッジ設定部12Bは、ミューテックス変数23の値を“1”から“0”に戻してロックを解除する(図9のステップS52:図10の矢印A43参照)。そして、ハイパーバイザ12は、アクセス対象のVGAカード83(#2)に対するアクセス結果を、仮想マシンVM2へ通知する。
〔6〕仮想マシンがPCIブリッジのVGA許可ビットの参照要求を行なった際の処理
次に、図12に示すフローチャート(ステップS81〜S84)に従って、コンピュータシステム1の仮想マシンVM1〜VM4がPCIブリッジ71のVGA許可ビット71Bの参照要求を行なった際の処理について説明する。
ハイパーバイザ12は、仮想マシンVM1〜VM4が自身に割り当てられたVGAカード#1〜#4に接続されるブリッジ71の状態(VGA許可ビット71Bの値)の参照要求を発行したか否かを監視する(ステップS81)。ハイパーバイザ12は、ブリッジ71のVGA許可ビット71Bの参照要求を受けると(ステップS81のYESルート)、返信用の値(状態)が仮想マシンによって予め設定されているか否かを判定する(ステップS82)。
返信用の値が設定されていない場合(ステップS82のNOルート)、ハイパーバイザ12は、ブリッジ71の状態(VGA許可ビット71Bの値)にかかわらず、信号通過を許可する状態を示す“1”を、参照要求元の仮想マシンに返信する(ステップS83)。一方、返信用の値が設定されている場合(ステップS82のYESルート)、ハイパーバイザ12は、ブリッジ71の状態(VGA許可ビット71Bの値)にかかわらず、返信用の値“1”または“0”を、参照要求元の仮想マシンに返信する(ステップS84)。
このように、仮想マシンから、自身に割り当てられたVGAカード83に接続されるブリッジ71の状態(VGA許可ビット71Bの値)の参照要求を受けた場合、返信用の値が設定されていなければ、信号通過を許可する状態を示す“1”が仮想マシンに返信される。これにより、それぞれの仮想マシン側からは、自身に割り当てられたVGAカード83が常に接続されているように見える。
各仮想マシンが参照したブリッジ71の状態が“0”であると、各仮想マシンは、自身に割り当てられたVGAカード83と通信できずブリッジ71に故障が生じている等のエラーを通知してしまい、コンピュータシステム1の処理に支障を来たす可能性がある。しかし、本実施形態では、上述の通り、それぞれの仮想マシン側からは、自身に割り当てられたVGAカード83が常に接続されているように見えるので、上述のようなエラー通知は行なわれず、コンピュータシステム1の処理に支障を来たすこともない。
〔7〕本実施形態のコンピュータシステムの効果
上述した本実施形態のコンピュータシステム1によれば、ハイパーバイザ12が、各仮想マシンからのI/Oアクセス要求をトラップし、対応表22に基づきPCIブリッジ71のVGA許可ビット71Bの設定を変更する。つまり、各仮想マシンからのI/Oアクセス要求時に各ブリッジ71におけるVGA許可ビット71Bの再設定を行なう。
これにより、本実施形態のコンピュータシステム1では、複数の仮想マシンに対しI/Oアドレス固定の複数のデバイス(レガシーデバイス)を接続した状態を保ちながらI/Oアドレスの衝突を回避することができる。つまり、ハイパーバイザ12は、複数の実VGAを搭載している場合でも、I/Oアドレスの重複を避けながら、各仮想マシンに割り当てられたVGAカード83にアクセスすることができる。このとき、各仮想マシン側からは常にVGAカード83が存在しているように見える。
また、本実施形態によれば、仮想マシンによるI/Oアクセス要求時にハイパーバイザ12がPCIブリッジ71のVGA許可ビット71Bの状態を制御するので、各VGAカード83が仮想マシンに接続された状態が保たれ、VGA許可ビット71Bの状態やCPU10のアクセス先VGAカード83の、高速な切り替えが可能である。
さらに、本実施形態のPCIデバイス/ブリッジ対応表作成部12AおよびPCIブリッジ設定部12Bとしての機能を実現するに際し、特殊なハードウェアを新た追加する必要はないため、ハードウェア追加のコストが掛からない。
なお、仮想マシンのOS起動後は、VGAのフレームバッファへのアクセスやデバイス設定等のアクセスは基本的にMMIO方式でアクセスされる。MMIO方式でのアクセスではVGAごとに別々のアドレスが用いられるため、VGA許可ビット等の設定処理を行なう必要はなく、VGA許可ビットの設定処理のオーバーヘッドはなくなる。
〔8〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、係る特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
なお、上述した実施形態では、図2,図3,図6,図8および図10に示す具体例に基づき詳細な説明を行なったが、本発明は、図2,図3,図6,図8および図10に示す具体例に限定されるものではない。
また、上述した実施形態では、同一のI/Oアドレスを割り当てられた複数のデバイス(レガシーデバイス)がVGA(ビデオデバイス)である場合について説明したが、本発明はこれに限定されるものではない。本発明は、VGA以外のレガシーデバイスに対しても上述した実施形態と同様に適用され、上述した実施形態と同様の作用効果を得ることができる。
上述したPCIデバイス/ブリッジ対応表作成部12AおよびPCIブリッジ設定部12Bを含む、本実施形態の情報処理装置1の各種機能の全部もしくは一部は、コンピュータ(CPU,情報処理装置,各種端末を含む)が所定のプログラムを実行することによって実現される。
そのプログラムは、例えばフレキシブルディスク,CD(CD−ROM,CD−R,CD−RWなど),DVD(DVD−ROM,DVD−RAM,DVD−R,DVD−RW,DVD+R,DVD+RWなど),ブルーレイディスク等のコンピュータ読取可能な記録媒体に記録された形態で提供される。この場合、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。
ここで、コンピュータとは、ハードウエアとOS(オペレーティングシステム)とを含む概念であり、OSの制御の下で動作するハードウエアを意味している。また、OSが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウエアは、少なくとも、CPU等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取る手段とをそなえている。上記プログラムは、上述のようなコンピュータに、本実施形態の情報処理装置1の各種機能を実現させるプログラムコードを含んでいる。また、その機能の一部は、アプリケーションプログラムではなくOSによって実現されてもよい。
〔9〕付記
以上の各実施形態を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
複数の仮想マシンを構築するプロセッサと、
同一のI/Oアドレスを割り当てられた複数のデバイスと、
前記プロセッサと前記複数のデバイスとを接続する複数のブリッジと、を備え、
前記プロセッサは、
前記プロセッサから各デバイスまでの各経路上における前記ブリッジの識別情報と前記各経路の通過の可否を示す通過設定情報とを管理するテーブルを作成し、
前記複数の仮想マシンのうちの一の仮想マシンから当該一の仮想マシンに割り当てられた前記複数のデバイスのうちの一のデバイスに対する一のアクセスを検知すると、前記テーブルを参照し、前記プロセッサから当該一のデバイスまでの前記経路の通過を許可するように前記テーブルの前記通過設定情報と前記経路上の前記ブリッジの状態とを設定し、前記一のアクセスを行なうことを特徴とする情報処理装置。
(付記2)
前記プロセッサは、
前記プロセッサから前記一のデバイスまでの前記経路の前記通過設定情報が当該経路の通過を拒否する状態である場合、当該経路以外の経路の前記通過設定情報と当該経路以外の経路上の前記ブリッジの状態とを、通過を拒否する状態に設定するとともに、当該経路の前記通過設定情報と当該経路上の前記ブリッジの状態とを、通過を許可する状態に設定し、前記一のアクセスを行なうことを特徴とする、付記1記載の情報処理装置。
(付記3)
前記プロセッサは、
前記プロセッサから前記一のデバイスまでの前記経路の前記通過設定情報が当該経路の通過を許可する状態である場合、前記一のアクセスを行なうことを特徴とする、付記1または付記2記載の情報処理装置。
(付記4)
前記プロセッサは、
前記一のアクセスを検知してから同アクセスの実行を完了するまでの間に他の仮想マシンから他のデバイスに対する他のアクセスを検知した場合、前記一のアクセスの実行を完了するまで、前記他のアクセスについての処理を待機させることを特徴とする、付記1〜付記3のいずれか一項記載の情報処理装置。
(付記5)
前記プロセッサは、
各仮想マシンが各ブリッジの状態を参照した場合、通過を許可する状態、もしくは、予め設定された状態を、各仮想マシンに返信することを特徴とする、付記1〜付記4のいずれか一項記載の情報処理装置。
(付記6)
複数の仮想マシンを構築するプロセッサと、同一のI/Oアドレスを割り当てられた複数のデバイスと、前記プロセッサと前記複数のデバイスとを接続する複数のブリッジと、を備えた、情報処理装置の制御方法であって、
前記プロセッサから各デバイスまでの各経路上における前記ブリッジの識別情報と前記各経路の通過の可否を示す通過設定情報とを管理するテーブルを作成し、
前記複数の仮想マシンのうちの一の仮想マシンから当該一の仮想マシンに割り当てられた前記複数のデバイスのうちの一のデバイスに対する一のアクセスを検知すると、前記テーブルを参照し、前記プロセッサから当該一のデバイスまでの前記経路の通過を許可するように前記テーブルの前記通過設定情報と前記経路上の前記ブリッジの状態とを設定し、前記一のアクセスを行なうことを特徴とする情報処理装置の制御方法。
(付記7)
前記プロセッサから前記一のデバイスまでの前記経路の前記通過設定情報が当該経路の通過を拒否する状態である場合、当該経路以外の経路の前記通過設定情報と当該経路以外の経路上の前記ブリッジの状態とを、通過を拒否する状態に設定するとともに、当該経路の前記通過設定情報と当該経路上の前記ブリッジの状態とを、通過を許可する状態に設定し、前記一のアクセスを行なうことを特徴とする、付記6記載の情報処理装置の制御方法。
(付記8)
前記プロセッサから前記一のデバイスまでの前記経路の前記通過設定情報が当該経路の通過を許可する状態である場合、前記一のアクセスを行なうことを特徴とする、付記6または付記7記載の情報処理装置の制御方法。
(付記9)
前記一のアクセスを検知してから同アクセスの実行を完了するまでの間に他の仮想マシンから他のデバイスに対する他のアクセスを検知した場合、前記一のアクセスの実行を完了するまで、前記他のアクセスについての処理を待機させることを特徴とする、付記6〜付記8のいずれか一項記載の情報処理装置の制御方法。
(付記10)
各仮想マシンが各ブリッジの状態を参照した場合、通過を許可する状態、もしくは、予め設定された状態を、各仮想マシンに返信することを特徴とする、付記6〜付記9のいずれか一項記載の情報処理装置の制御方法。
(付記11)
複数の仮想マシンを構築するプロセッサと、同一のI/Oアドレスを割り当てられた複数のデバイスと、前記プロセッサと前記複数のデバイスとを接続する複数のブリッジと、を備えた、情報処理装置の制御を、前記プロセッサに実行させるプログラムであって、
前記プロセッサから各デバイスまでの各経路上における前記ブリッジの識別情報と前記各経路の通過の可否を示す通過設定情報とを管理するテーブルを作成し、
前記複数の仮想マシンのうちの一の仮想マシンから当該一の仮想マシンに割り当てられた前記複数のデバイスのうちの一のデバイスに対する一のアクセスを検知すると、前記テーブルを参照し、前記プロセッサから当該一のデバイスまでの前記経路の通過を許可するように前記テーブルの前記通過設定情報と前記経路上の前記ブリッジの状態とを設定し、前記一のアクセスを行なう、
処理を、前記プロセッサに実行させることを特徴とする、制御プログラム。
(付記12)
前記プロセッサから前記一のデバイスまでの前記経路の前記通過設定情報が当該経路の通過を拒否する状態である場合、当該経路以外の経路の前記通過設定情報と当該経路以外の経路上の前記ブリッジの状態とを、通過を拒否する状態に設定するとともに、当該経路の前記通過設定情報と当該経路上の前記ブリッジの状態とを、通過を許可する状態に設定し、前記一のアクセスを行なう、
処理を、前記プロセッサに実行させることを特徴とする、付記11記載の制御プログラム。
(付記13)
前記プロセッサから前記一のデバイスまでの前記経路の前記通過設定情報が当該経路の通過を許可する状態である場合、前記一のアクセスを行なう、
処理を、前記プロセッサに実行させることを特徴とする、付記11または付記12記載の制御プログラム。
(付記14)
前記一のアクセスを検知してから同アクセスの実行を完了するまでの間に他の仮想マシンから他のデバイスに対する他のアクセスを検知した場合、前記一のアクセスの実行を完了するまで、前記他のアクセスについての処理を待機させる、
処理を、前記プロセッサに実行させることを特徴とする、付記11〜付記13のいずれか一項記載の制御プログラム。
(付記15)
各仮想マシンが各ブリッジの状態を参照した場合、通過を許可する状態、もしくは、予め設定された状態を、各仮想マシンに返信する、
処理を、前記プロセッサに実行させることを特徴とする、付記項11〜付記14のいずれか一項記載の制御プログラム。
1 情報処理装置(コンピュータシステム)
10 CPU(プロセッサ)
11 BIOS
12 ハイパーバイザ
12A PCIデバイス/ブリッジ対応表作成部
12B PCIブリッジ設定部
20 メモリ
21 仮想マシン構成情報
22 PCIデバイス/ブリッジ対応表(テーブル)
23 ミューテックス変数
30 ストレージ
31 仮想ストレージ
40 NVRAM
50 チップセット
51 ホストブリッジ
52 SATAコントローラ
60 PCIバス
70 スイッチ
71,71−1〜71−5 PCIブリッジ(ブリッジ)
71A コンフィグレーションレジスタ
71B VGA許可ビット
80 スロット
81 SASカード(PCIデバイス)
82 RAIDカード(PCIデバイス)
83,83−1〜83−4 VGAカード(デバイス,PCIデバイス)
90 ストレージ
VM1〜VM4 仮想マシン

Claims (6)

  1. 複数の仮想マシンを構築するプロセッサと、
    同一のI/Oアドレスを割り当てられた複数の実デバイスと、
    前記プロセッサと前記複数の実デバイスとを接続する複数のブリッジと、を備え、
    前記プロセッサは、
    前記プロセッサから各実デバイスまでの各経路上における前記ブリッジの識別情報と前記各経路の通過の可否を示す通過設定情報とを管理するテーブルを作成し、
    前記複数の仮想マシンのうちの一の仮想マシンから当該一の仮想マシンに割り当てられた前記複数の実デバイスのうちの一の実デバイスに対する一のアクセスを検知すると、前記テーブルを参照し、前記プロセッサから当該一の実デバイスまでの前記経路の通過を許可するように前記テーブルの前記通過設定情報と前記経路上の前記ブリッジの状態とを設定し、前記一のアクセスを行ない、
    各仮想マシンが各ブリッジの状態の参照要求をした場合、前記参照要求への返信用の状態が予め設定されていなければ通過を許可する状態を各仮想マシンに返信する一方、前記返信用の状態が予め設定されていれば前記返信用の状態を各仮想マシンに返信することを特徴とする情報処理装置。
  2. 前記プロセッサは、
    前記プロセッサから前記一の実デバイスまでの前記経路の前記通過設定情報が当該経路の通過を拒否する状態である場合、当該経路以外の経路の前記通過設定情報と当該経路以外の経路上の前記ブリッジの状態とを、通過を拒否する状態に設定するとともに、当該経路の前記通過設定情報と当該経路上の前記ブリッジの状態とを、通過を許可する状態に設定し、前記一のアクセスを行なうことを特徴とする、請求項1記載の情報処理装置。
  3. 前記プロセッサは、
    前記プロセッサから前記一の実デバイスまでの前記経路の前記通過設定情報が当該経路の通過を許可する状態である場合、前記一のアクセスを行なうことを特徴とする、請求項1または請求項2記載の情報処理装置。
  4. 前記プロセッサは、
    前記一のアクセスを検知してから同アクセスの実行を完了するまでの間に他の仮想マシンから他の実デバイスに対する他のアクセスを検知した場合、前記一のアクセスの実行を完了するまで、前記他のアクセスについての処理を待機させることを特徴とする、請求項1〜請求項3のいずれか一項記載の情報処理装置。
  5. 複数の仮想マシンを構築するプロセッサと、同一のI/Oアドレスを割り当てられた複数の実デバイスと、前記プロセッサと前記複数の実デバイスとを接続する複数のブリッジと、を備えた、情報処理装置の制御方法であって、
    前記プロセッサから各実デバイスまでの各経路上における前記ブリッジの識別情報と前記各経路の通過の可否を示す通過設定情報とを管理するテーブルを作成し、
    前記複数の仮想マシンのうちの一の仮想マシンから当該一の仮想マシンに割り当てられた前記複数の実デバイスのうちの一の実デバイスに対する一のアクセスを検知すると、前記テーブルを参照し、前記プロセッサから当該一の実デバイスまでの前記経路の通過を許可するように前記テーブルの前記通過設定情報と前記経路上の前記ブリッジの状態とを設定し、前記一のアクセスを行ない、
    各仮想マシンが各ブリッジの状態の参照要求をした場合、前記参照要求への返信用の状態が予め設定されていなければ通過を許可する状態を各仮想マシンに返信する一方、前記返信用の状態が予め設定されていれば前記返信用の状態を各仮想マシンに返信することを特徴とする情報処理装置の制御方法。
  6. 複数の仮想マシンを構築するプロセッサと、同一のI/Oアドレスを割り当てられた複数の実デバイスと、前記プロセッサと前記複数の実デバイスとを接続する複数のブリッジと、を備えた、情報処理装置の制御を、前記プロセッサに実行させるプログラムであって、
    前記プロセッサから各実デバイスまでの各経路上における前記ブリッジの識別情報と前記各経路の通過の可否を示す通過設定情報とを管理するテーブルを作成し、
    前記複数の仮想マシンのうちの一の仮想マシンから当該一の仮想マシンに割り当てられた前記複数の実デバイスのうちの一の実デバイスに対する一のアクセスを検知すると、前記テーブルを参照し、前記プロセッサから当該一の実デバイスまでの前記経路の通過を許可するように前記テーブルの前記通過設定情報と前記経路上の前記ブリッジの状態とを設定し、前記一のアクセスを行ない、
    各仮想マシンが各ブリッジの状態の参照要求をした場合、前記参照要求への返信用の状態が予め設定されていなければ通過を許可する状態を各仮想マシンに返信する一方、前記返信用の状態が予め設定されていれば前記返信用の状態を各仮想マシンに返信する
    処理を、前記プロセッサに実行させることを特徴とする、制御プログラム。
JP2014516552A 2012-05-22 2012-05-22 情報処理装置、制御方法、及び制御プログラム Active JP5979229B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/063039 WO2013175570A1 (ja) 2012-05-22 2012-05-22 情報処理装置、制御方法、及び制御プログラム

Publications (2)

Publication Number Publication Date
JPWO2013175570A1 JPWO2013175570A1 (ja) 2016-01-12
JP5979229B2 true JP5979229B2 (ja) 2016-08-24

Family

ID=49623301

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014516552A Active JP5979229B2 (ja) 2012-05-22 2012-05-22 情報処理装置、制御方法、及び制御プログラム

Country Status (3)

Country Link
US (1) US9703590B2 (ja)
JP (1) JP5979229B2 (ja)
WO (1) WO2013175570A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8839447B2 (en) * 2012-02-27 2014-09-16 Ca, Inc. System and method for virtual image security in a cloud environment
WO2016151845A1 (ja) * 2015-03-26 2016-09-29 富士通株式会社 情報処理装置
US10031689B2 (en) * 2016-09-15 2018-07-24 Western Digital Technologies, Inc. Stream management for storage devices
US11409649B2 (en) * 2018-01-22 2022-08-09 Panasonic Avionics Corporation Removable direct attached storage for vehicle entertainment systems
CN110941408B (zh) * 2019-10-22 2023-03-14 西安雷风电子科技有限公司 一种kvm虚拟机图形界面输出方法及装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02293954A (ja) * 1989-05-08 1990-12-05 Nec Corp 記憶装置の使用権制御方法
US5848294A (en) * 1996-10-17 1998-12-08 Etma, Inc. PCI computer system with multiple legacy devices
US6453392B1 (en) * 1998-11-10 2002-09-17 International Business Machines Corporation Method of and apparatus for sharing dedicated devices between virtual machine guests
US6976087B1 (en) * 2000-11-24 2005-12-13 Redback Networks Inc. Service provisioning methods and apparatus
JP4256693B2 (ja) 2003-02-18 2009-04-22 株式会社日立製作所 計算機システム、i/oデバイス及びi/oデバイスの仮想共有方法
JP4882845B2 (ja) * 2007-04-19 2012-02-22 株式会社日立製作所 仮想計算機システム
JP5116497B2 (ja) 2008-01-31 2013-01-09 株式会社日立製作所 情報処理システム、i/oスイッチ及びi/oパスの交替処理方法
JP5251188B2 (ja) * 2008-03-18 2013-07-31 富士通株式会社 情報処理装置、情報処理装置の制御方法及びコンピュータプログラム
JP5440507B2 (ja) * 2008-10-15 2014-03-12 日本電気株式会社 マルチルートpciエクスプレススイッチ、その起動方法、及び、マルチルートpciマネージャプログラム
US8144582B2 (en) * 2008-12-30 2012-03-27 International Business Machines Corporation Differentiating blade destination and traffic types in a multi-root PCIe environment
JP5365847B2 (ja) * 2009-03-05 2013-12-11 日本電気株式会社 仮想化装置における物理デバイスのコンフィグレーション処理方法及びコンピュータシステム
JP2011204077A (ja) * 2010-03-26 2011-10-13 Nec Corp 情報処理装置、リソース割り当て方法、およびリソース割り当てプログラム
JP5598148B2 (ja) * 2010-08-05 2014-10-01 富士通株式会社 スイッチング装置、情報処理装置、及びスイッチング装置の制御方法

Also Published As

Publication number Publication date
US20150074665A1 (en) 2015-03-12
JPWO2013175570A1 (ja) 2016-01-12
WO2013175570A1 (ja) 2013-11-28
US9703590B2 (en) 2017-07-11

Similar Documents

Publication Publication Date Title
CN106776159B (zh) 具有故障转移的快速外围元件互连网络系统与操作方法
JP5305848B2 (ja) データ処理システム内で入出力(i/o)仮想化を管理するための方法およびデータ処理システムならびにコンピュータ・プログラム
TWI511048B (zh) 多主機上單根輸入/輸出虛擬化虛擬功能共享的方法及系統
US8127086B2 (en) Transparent hypervisor pinning of critical memory areas in a shared memory partition data processing system
JP5733628B2 (ja) 仮想計算機を制御する計算機装置及び仮想計算機の制御方法
US8412863B2 (en) Storage apparatus and virtual port migration method for storage apparatus
JP5979229B2 (ja) 情報処理装置、制御方法、及び制御プログラム
JP5323021B2 (ja) 動的に拡張可能な仮想スイッチの装置および方法
US9384060B2 (en) Dynamic allocation and assignment of virtual functions within fabric
CN108139924B (zh) 热插拔硬件及软件实施方案
US10877793B2 (en) Extending the base address register by modifying the number of read-only bits associated with a device to be presented to a guest operating system
US10592434B2 (en) Hypervisor-enforced self encrypting memory in computing fabric
JP2009151767A (ja) データ処理システム内で入出力(i/o)仮想化を管理するための方法およびコンピュータ・プログラムならびにデータ処理システム
US20070050767A1 (en) Method, apparatus and system for a virtual diskless client architecture
US9423958B2 (en) System and method for managing expansion read-only memory and management host thereof
JP2009070142A (ja) 仮想計算機の実行可否検査方法
TWI337305B (en) Method and apapratus for preventing loading and execution of rogue operating systems in a logical partitioned data processing system
US8302110B2 (en) Method of configuration processing of PCI device on virtualization apparatus and computer system
US10552345B2 (en) Virtual machine memory lock-down
JP2011527047A (ja) 分散型raidと関連するアプリケーションの実行のための方法およびシステム
US11977631B2 (en) Hypervisor level signature checks for encrypted trusted execution environments
TWI439869B (zh) 調整連結速度的方法及其電腦系統
US20120198446A1 (en) Computer System and Control Method Therefor
US9804877B2 (en) Reset of single root PCI manager and physical functions within a fabric
US11194606B2 (en) Managing related devices for virtual machines utilizing shared device data

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151201

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160405

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160524

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160628

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160711

R150 Certificate of patent or registration of utility model

Ref document number: 5979229

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150