JP2010218478A - ハイパバイザを有する計算機システム - Google Patents

ハイパバイザを有する計算機システム Download PDF

Info

Publication number
JP2010218478A
JP2010218478A JP2009067266A JP2009067266A JP2010218478A JP 2010218478 A JP2010218478 A JP 2010218478A JP 2009067266 A JP2009067266 A JP 2009067266A JP 2009067266 A JP2009067266 A JP 2009067266A JP 2010218478 A JP2010218478 A JP 2010218478A
Authority
JP
Japan
Prior art keywords
port
controller
virtual machine
register
hypervisor
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.)
Granted
Application number
JP2009067266A
Other languages
English (en)
Other versions
JP5198334B2 (ja
Inventor
Ryota Noguchi
良太 野口
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2009067266A priority Critical patent/JP5198334B2/ja
Priority to US12/629,229 priority patent/US8078765B2/en
Publication of JP2010218478A publication Critical patent/JP2010218478A/ja
Priority to US13/292,007 priority patent/US8166209B2/en
Application granted granted Critical
Publication of JP5198334B2 publication Critical patent/JP5198334B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】複数のI/Oデバイスが接続される複合I/Oコントローラを有する計算機システムにおいて、個々の仮想計算機が別々にI/Oデバイスを利用することができなくなることを防ぐ。
【解決手段】ハイパバイザが、仮想計算機から発行されたI/O命令を捕捉する。そして、ハイパバイザは、そのI/O命令に従うI/Oのターゲットが、そのI/O命令の発行元の仮想計算機に割り当てられていないI/Oコントローラに接続されたI/Oポートに関わるデバイスである非割当ポート関連デバイスであるか否かを判断する。その判断の結果が肯定的であれば、ハイパバイザは、非割当ポート関連デバイスに対するI/Oを行わず、仮想的な実行結果をI/O命令の発行元の仮想計算機に返す。
【選択図】図1

Description

本発明は、ハイパバイザを有する計算機システムに関する。
計算機システムとして、ハイパバイザを有した計算機システムが知られている(例えば特許文献1)。この種の計算機システムでは、一般に、物理的な計算機システム上で、ハイパバイザや、仮想計算機が起動する。物理的な計算機システムは、物理的なハードウェア資源(例えばプロセッサやメモリ)を有する。
また、この種の計算機システムでは、通常、仮想計算機の論理的なアドレスと実際の物理的なアドレスとの関係を管理するためのアドレス変換技術が採用される。アドレス変換技術としては、例えば、特許文献2に開示の技術がある。
特開2003−202999号公報 特開2004−220218号公報
物理的な計算機システムに、I/O(Input/Output)デバイスのコントローラ(I/Oコントローラ)が備えられる。I/Oコントローラとしては、個々に独立したコントローラもあれば、複数のI/Oコントローラを有する複合I/Oコントローラもある。
複合I/Oコントローラは、複数のI/Oポートを有する。複合I/Oコントローラ内の各I/Oコントローラが、それら複数のI/Oポートを共有できる。複数のI/Oコントローラのうちの一つのI/Oコントローラが、どのI/OポートをどのI/Oコントローラに接続するかの接続制御を行う機能を有する。各I/Oコントローラは、そのI/Oコントローラに接続されているI/Oポートを介して、そのI/Oポートに接続されているI/Oデバイスを制御する。
アドレス変換技術を利用することにより、個々の仮想計算機に別々のI/Oコントローラを割り当てることができる。これにより、例えば、或る仮想計算機が或るI/Oデバイスを利用している間に、別の仮想計算機が別のI/Oデバイスを利用することができる。
しかし、個々の仮想計算機が別々にI/Oデバイスを利用することができないケースが生じ得る。具体的には、仮想計算機から発行されたI/O命令のターゲットが、その仮想計算機に割り当てられていないI/Oコントローラに接続されたI/Oポートに関わるデバイスである場合に、そのようなケースが生じ得る。
そこで、本発明の目的は、複数のI/Oデバイスが接続される複合I/Oコントローラを有する計算機システムにおいて、個々の仮想計算機が別々にI/Oデバイスを利用することができなくなることを防ぐことにある。
ハイパバイザが、仮想計算機から発行されたI/O命令を捕捉する。そして、ハイパバイザは、そのI/O命令に従うI/Oのターゲットが、そのI/O命令の発行元の仮想計算機に割り当てられていないI/Oコントローラに接続されたI/Oポートに関わるデバイスである非割当ポート関連デバイスであるか否かを判断する。その判断の結果が肯定的であれば、ハイパバイザは、非割当ポート関連デバイスに対するI/Oを行わず、仮想的な実行結果をI/O命令の発行元の仮想計算機に返す。
ここで言う「仮想的な実行結果」とは、例えば、I/Oのターゲットに関わるポートに仮想計算機から見てあたかもI/Oデバイスが何も接続されていないように見える実行結果である。
なお、その判断の結果が否定的であれば、ハイパバイザは、I/O命令に従うI/O、すなわち、I/Oのターゲットであるデバイスに対してのI/Oを実行して良い。
ハイパバイザが、I/Oのターゲットが、そのI/O命令の発行元の仮想計算機に割り当てられていないI/Oコントローラに接続されたI/Oポートに関わるデバイスである非割当ポート関連デバイスであるか否かを判断する。その判断の結果が肯定的であれば、ハイパバイザは、非割当ポート関連デバイスに対するI/Oを行わない。これにより、複数のI/Oデバイスが接続される複合I/Oコントローラを有する計算機システムにおいて、個々の仮想計算機が別々にI/Oデバイスを利用することができなくなることを防ぐことができる。
図1は、本発明の実施例1に係る計算機システム100の概要を示す。 図2は、計算機システム100における物理計算機システム51を示す。 図3は、計算機システム100における仮想計算機1(11)及び2(31)の構成とハイパバイザ50の構成とを示す。 図4は、仮想計算機1からライト命令が発行された場合にハイパバイザ50が行う処理のフローチャートである。 図5は、仮想計算機2からライト命令が発行された場合にハイパバイザ50が行う処理のフローチャートである。 図6は、仮想計算機1からリード命令が発行された場合にハイパバイザ50が行う処理のフローチャートである。 図7は、仮想計算機2からリード命令が発行された場合にハイパバイザ50が行う処理のフローチャートである。 図8は、本発明の実施例2に係る計算機システムにおける仮想計算機1及びハイパバイザ71を示す。 図9は、本発明の実施例3に係る計算機システムにおける物理計算機システム91の構成を示す。 図10は、本発明の実施例3に係る計算機システムにおけるハイパバイザ50及び仮想計算機の構成を示す。
以下、図面を参照して、本発明の幾つかの実施例を説明する。
図1は、本発明の実施例1に係る計算機システム100の概要を示す。
物理的な計算機システム51上で、ハイパバイザ50及び複数の仮想計算機が実行される。仮想計算機としては、例えば、後述の上位コントローラ20PAが割り当てられる仮想計算機1(11)と、下位コントローラ20PBが割り当てられる仮想計算機2(31)とがある(以下、便宜上、「仮想計算機1」、「仮想計算機2」と略す)。
物理的な計算機システム51が複合I/Oコントローラ61を有する。複合I/Oコントローラ61は、複数のI/Oポートとして、例えば、I/Oポート0(62)とI/Oポート1(63)とを有する(以下、便宜上、「ポート0」、「ポート1」と略す)。ポート0には、I/Oデバイス0(64)が接続され、ポート1には、I/Oデバイス1(65)が接続される(以下、便宜上、「I/Oデバイス0」、「I/Oデバイス1」と略す)。I/Oデバイス0は、仮想計算機1に利用されるI/Oデバイスであり、I/Oデバイス1は、仮想計算機2に利用されるI/Oデバイスである。
複合I/Oコントローラ61は、1つの上位コントローラ20PAと、1つの下位コントローラ20PBとを有する(下位コントローラ20PBの数は、実施例3で説明するように2以上であっても良い)。図1に示すように、上位コントローラと下位コントローラの共通の要素について、参照符号の末尾が「A」である要素は、上位コントローラが有する要素であり、参照符号の末尾が「B」である要素は、下位コントローラが有する要素である。
上位コントローラ20PA及び下位コントローラ20PBが有する共通の要素として、コントローラ共通デバイス21PA(21PB)と、ポート0デバイス22PA(22PB)と、ポート1デバイス23PA(23PB)とがある。コントローラ共通デバイス21PA(21PB)は、割当先の仮想計算機1(仮想計算機2)で指定された命令を実行する。ポート0デバイス22PA(22PB)は、ポート0に接続され得るデバイスであり、ポート0にI/Oデバイスが接続されているか否かを表す値が記憶されるレジスタを有する。ポート1デバイス23PA(23PB)は、ポート1に接続され得るデバイスであり、ポート1にI/Oデバイスが接続されているか否かを表す値が記憶されるレジスタを有する。
上位コントローラ20PAは、ポートの接続の切り替えをできるI/Oコントローラであり、下位コントローラ20PBは、ポートの接続の切り替えを制御できないI/Oコントローラである。
そのため、上位コントローラ20PAが有し下位コントローラ20PBが有しない要素として、ポート0スイッチレジスタ27Pと、ポート1スイッチレジスタ28Pと、ポート0と、ポート1とがある。レジスタ27P(28P)は、ポート0(ポート1)をどちらのコントローラ20PA又は20PBに接続するかのスイッチとしての役割を有するレジスタである。具体的には、レジスタ27Pは、ポート0とデバイス22PA及び22PBとに接続されており、ポート0をどちらのコントローラ20PA又は20PBに接続するかを表す値を記憶する。一方、レジスタ28Pは、ポート1とデバイス23PA及び23PBとに接続されており、ポート1をどちらのコントローラ20PA又は20PBに接続するかを表す値を記憶する。
ハイパバイザ50は、起動したときに、レジスタ27Pに、ポート0を上位コントローラ20PAに接続することを表す第一の値を設定し、レジスタ28Pに、ポート1を下位コントローラ20PBに接続することを表す第二の値を設定する。
その後、例えば、仮想計算機1から、或るアドレス範囲を指定したI/O命令が発行されたとする。この場合、ハイパバイザ50は、そのI/O命令を捕捉する。そして、ハイパバイザ50は、そのI/O命令に従うI/Oのターゲットが、仮想計算機1に割り当てられていない下位コントローラ20PBに接続されたポート1に関わるデバイスである非割当ポート関連デバイスであるか否かを判断する。その判断の結果が否定的であれば、ハイパバイザ50は、補足したI/O命令に応答して、I/Oのターゲットのデバイス(例えばポート0に関わるデバイス)に対するI/Oを行う。一方、その判断の結果が肯定的であれば、ハイパバイザ50は、非割当ポート関連デバイスに対するI/Oを行わず、仮想的な実行結果をI/O命令の発行元の仮想計算機に返す。
ここで、ポートに関わるデバイスとしては、例えば、ポート0デバイス22PA(22PB)内のレジスタ、ポート1デバイス23PA(23PB)内のレジスタ、スイッチレジスタ27P及び28Pがある。従って、非割当ポート関連デバイスとしては、I/O命令の発行元が仮想計算機1であれば、ポート1デバイス23PA内のレジスタ、及び/又は、ポート1スイッチレジスタ28Pであり、I/O命令の発行元が仮想計算機2であれば、ポート0デバイス22PB内のレジスタである。
ハイパバイザ50による上記の制御により、ポート1デバイス23PA内のレジスタに記憶されている値やポート1スイッチレジスタ28Pに記憶されている値が仮想計算機1から更新されることを防ぐことができる。また、上位コントローラ20PAは仮想計算機2に割り当てられていないため、仮想計算機2からそれらの値が更新されることは無い。これらの理由から、仮想計算機2がI/Oデバイス1を利用している最中にポート1と下位コントローラ20PBとが切断されてしまうことを防ぐことができる。その結果、仮想計算機2がI/Oデバイス1を利用している最中にI/Oデバイス1を認識できなくなってしまうということを防ぐことができる。
以下、本実施例を詳細に説明する。
図2は、計算機システム100における物理計算機システム51を示す。図3は、計算機システム100における仮想計算機1(11)及び2(31)の構成とハイパバイザ50の構成とを示す。
物理計算機システム51では、I/Oバス56に、パス制御装置52と、複合I/Oコントローラ56とが接続されている。バス制御装置52に、CPU(Central Processing Unit)54及びメモリ55が接続されている。
バス制御装置52は、この装置52に接続されている要素間の通信を制御する装置(例えば回路基板)である。バス制御装置52は、DMA(Direct Memory Access)アドレス変換回路53を有する。DMAアドレス変換回路53は、DMAでのアクセスの際に指定されたアドレスを別のアドレスに変換するアドレス変換処理を行うハードウェア回路である。
デバイス21PA(21PB)は、コマンドレジスタ(図では「C-REG.」と略記)24PA(24PB)を有する。コマンドレジスタ24PA(24PB)は、コントローラ毎に一つ存在する。コマンドレジスタ24PA(24PB)に値が書き込まれることで、そのレジスタ24PA(24PB)を有するコントローラ20PA(20PB)のリセットや、後述のデバイスドライバ13(33)がメモリ55(フレーム12(32))上に作成した命令の処理の開始及び終了を行うことができる。
ポート0デバイス22PA(22PB)は、ポート状態レジスタ(図では「PS-REG.」と略記)25PA(25PB)を有する。同様に、ポート1デバイス23PA(23PB)も、ポート状態レジスタ26PA(26PB)を有する。各レジスタ25PA、26PA、25PB及び26PBが、対応するポート0又は1にI/Oデバイス0又は1が接続されているか否かを表す値を記憶する。
前述したレジスタ24PA、25PA、26PA、24PB、25PB及び26PBは、仮想計算機1,2が指定可能なアドレス空間(例えば、MMIO(Memory Mapped I/O)空間、及び/又は、I/Oポート空間)にマッピングされる。例えば、上位コントローラ20PAにあるレジスタ24PA、25PA及び26PAは、MMIO空間にマッピングされ、下位コントローラ20PBにある24PB、25PB及び26PBは、I/Oポート空間にマッピングされる。
前述したように、上位コントローラ20PAは、ポートスイッチレジスタ27P、28Pを有する。このレジスタは、I/Oポート毎に用意される。
以上のような複合I/Oコントローラ61は、例えばUSB(Universal Serial Bus)コントローラである。具体的には、例えば、上位コントローラ20PAは、EHCI(Enhanced Host Controller Interface)コントローラ(USB2.0コントローラ)であり、下位コントローラ20PBは、UHCI(Universal Host Controller Interface)コントローラ(USB1.1コントローラ)である。ポート0及び1は、USBポートである。
ポート0及び1とI/Oデバイス0及び1の接続は、例えば固定的である。このため、途中でI/Oデバイス0及び1が外される(例えば交換される)ことはない。この種のI/Oデバイスとしては、例えば、リモートKVM(Keyboard, Video, Mouse)コンソールに含まれているI/Oデバイスが考えられる。リモートKVMコンソールは、複合I/Oコントローラ61に基板上の配線で固定的に接続されている。また、一般に、リモートKVMコンソールでは、一方のI/Oデバイス1が、USB1.1で接続される仮想的なインプットデバイス(典型的にはキーボード/マウス)であり、他方のI/Oデバイス0が、USB2.0で接続される仮想的なストレージデバイスである。このような構成が採用された場合、本実施例では、例えば、仮想計算機1から仮想的なストレージデバイスからソフトウェアをインストールしている最中に、仮想計算機2が、仮想的なインプットデバイスを利用することができる。そして、仮想計算機2が仮想的なインプットデバイスを利用している最中に、仮想計算機2がそのインプットデバイスを認識できなくなることが防止される。
以上のような物理計算機システム51上でハイパバイザ50が起動する。
ハイパバイザ50は、例えば、管理メモリ領域66を管理する。この領域66に保持される値は、後述の論理的なポート1スイッチレジスタ28Lに格納される値である。
また、ハイパバイザ50は、捕捉部401、判断部402、命令処理部403、ルール設定部404及び初期設定部405等の機能を有する。これらの機能は、例えばCPU54でハイパバイザ50が実行されることにより実現される。捕捉部401は、仮想計算機1及び2から発行されたI/O命令、特に、物理的なレジスタがマッピングされたアドレス空間を指定したI/O命令を捕捉する。判断部402は、I/O命令に従うI/Oのターゲットが、そのI/O命令の発行元の仮想計算機に割り当てられていないI/Oコントローラに接続されたI/Oポートに関わるデバイスである非割当ポート関連デバイスであるか否かを判断する。命令処理部403は、I/O命令に従うI/Oや、I/Oを行わず仮想的な実行結果をI/O命令の発行元の仮想計算機に返すことを行う。ルール設定部404は、アドレス変換ルールをメモリ空間に設定する。初期設定部405は、ハイパバイザが起動したときにポートスイッチレジスタ27P及び28P等のレジスタに値を設定する。
起動したハイパバイザ50は、例えば、複合I/Oコントローラ61をリセットする。そして、ハイパバイザ50(初期設定部405)は、上位コントローラ20PA内のポート0スイッチレジスタ27Pに、ポート0を上位コントローラ20PAに接続することを表す第一の値を設定し、ポート1スイッチレジスタ28Pに、ポート1を下位コントローラ20PBに接続することを表す第二の値を設定する。
ハイパバイザ50が、仮想計算機1と仮想計算機2を定義する。ハイパバイザ50(ルール設定部404)は、上位コントローラ20PAについてのアドレス変換ルールを、メモリ55における、仮想計算機1のメモリ空間に設定する。同様に、ハイパバイザ50は、下位コントローラ20PBについてのアドレス変換ルールを、メモリ55における、仮想計算機2のメモリ空間に設定する。これにより、上位コントローラ20PAは仮想計算機1のメモリ領域、下位コントローラ20PBは仮想計算機2のメモリ領域に対して、それぞれDMAを行うことが可能となる。上位コントローラ20PA、下位コントローラ20PBともに自らが割当てられた仮想計算機のメモリ領域以外に対してDMAを行うことはできない。
具体的には、仮想計算機1には、論理的な上位コントローラ20LAが設定される。図2及び図3に示すように、参照符号の末尾が「P」である要素は、物理的なI/Oコントローラにある要素であり、参照符号の末尾が「L」である要素は、論理的なI/Oコントローラにある要素である。つまり、論理的な上位コントローラ20LAは、論理的なコントローラ共通デバイス21LAと、論理的なポート0デバイス22LAと、論理的なポート1デバイス23LAと、論理的なポートスイッチレジスタ27L(28L)とを有する。デバイス21LAは、論理的なコマンドレジスタ24LAを有し、デバイス22LA(23LA)は、論理的なポート状態レジスタ25LA(26LA)を有する。論理的なレジスタ24LA、25LA、26LA、27L及び28Lは、物理的なレジスタ24PA、25PA、26PA、27P及び28Pがマッピングされたアドレス空間(例えばMMIO空間)である。例えば、論理的なレジスタ28Lに対するI/Oは、物理的なレジスタ28Pに対するI/Oということになる。
同様に、仮想計算機2には、論理的な下位コントローラ20LBが設定される。論理的な下位コントローラ20LBは、上述のコントローラ20LAと同様に、物理的な下位コントローラ20PBが有する物理的な要素21PB、22PB、23PB、24PB、25PB及び26PBに対応した論理的な要素21LB、22LB、23LB、24LB、25LB及び26LBを有する。
仮想計算機1(及び仮想計算機2)において、それぞれ、オペレーティングシステム(OS)14(34)が起動する。
仮想計算機1のOS14上のデバイスドライバ13は、上位コントローラ20PAの存在を認識し、上位コントローラ20PAのいずれかのレジスタに対応するアドレス空間(いずれかの論理的なレジスタ)を指定したI/O命令を発行する。そのI/O命令は、ハイパバイザ50によって捕捉される。ハイパバイザ50は、ターゲットが、仮想計算機1に割り当てられた上位コントローラ20PAに接続されているポート0に対応した物理的なレジスタであれば(指定されたアドレス空間が、そのレジスタに対応した論理的なレジスタであれば)、ポート0に対応した物理的なレジスタに対するI/Oを行う。一方、ターゲットが、仮想計算機1に割り当てられていない下位コントローラ20PBに接続されているポート1に対応した物理的なレジスタであれば、ハイパバイザ50は、下記(A)乃至(D)のいずれかの処理;
(A)I/O命令が、リード命令であり、ターゲットが、ポート1の物理的な状態レジスタ26PAであれば、ポート1の物理的な状態レジスタ26PAにアクセスせず、I/Oデバイスが未接続であることを意味する値(未接続値)を、ポート1の論理的な状態レジスタ26LAに書き込む;
(B)I/O命令が、ライト命令であり、ターゲットが、ポート1の物理的な状態レジスタ26PAであれば、ポート1の物理的な状態レジスタ26PAにライト対象の値を書き込まず、そのライト命令を無視する;
(C)I/O命令が、ライト命令であり、ターゲットが、物理的なポート1スイッチレジスタ28Pであれば、そのレジスタ28Pにライト対象の値を書き込まず、管理メモリ領域66に記憶されている値に、そのライト対象の値を上書きする;
(D)I/O命令が、リード命令であり、ターゲットが、物理的なポート1スイッチレジスタ28Pであれば、そのレジスタ28Pにアクセスせず、管理メモリ領域66に記憶されている値を取得し、その値を、論理的なポート1スイッチレジスタ28Lに書き込む;
を行う。これにより、仮想計算機1のデバイスドライバ13は、仮想計算機1に割り当てられている上位コントローラ20PAに接続されているポート0に接続されているI/Oデバイス0を認識し、仮想計算機1に割り当てられていない下位コントローラ20PBに接続されているポート1に接続されているI/Oデバイス1を認識しない。
仮想計算機2のOS34上のデバイスドライバ33は、下位コントローラ20PBの存在を認識し、下位コントローラ20PBのいずれかのレジスタに対応するアドレス空間(いずれかの論理的なレジスタ)を指定したI/O命令を発行する。そのI/O命令は、ハイパバイザ50によって捕捉される。ハイパバイザ50は、ターゲットが、仮想計算機2に割り当てられた下位コントローラ20PAに接続されているポート1に対応した物理的なレジスタであれば、ポート1に対応した物理的なレジスタに対するI/Oを行う。一方、ターゲットが、仮想計算機2に割り当てられていない上位コントローラ20PAに接続されているポート0に対応した物理的なレジスタであれば、ハイパバイザ50は、下記(A)及び(B)のいずれかの処理;
(A)I/O命令が、リード命令であり、ターゲットが、ポート0の物理的な状態レジスタ25PBであれば、ポート1の物理的な状態レジスタ25PBにアクセスせず、I/Oデバイスが未接続であることを意味する値(未接続値)を、ポート0の論理的な状態レジスタ25LBに書き込む;
(B)I/O命令が、ライト命令であり、ターゲットが、ポート0の物理的な状態レジスタ25PBであれば、ポート1の物理的な状態レジスタ25PBにライト対象の値を書き込まず、そのライト命令を無視する;
を行う。これにより、仮想計算機2のデバイスドライバ33は、仮想計算機2に割り当てられている下位コントローラ20PBに接続されているポート1に接続されているI/Oデバイス1を認識し、仮想計算機2に割り当てられていない上位コントローラ20PAに接続されているポート0に接続されているI/Oデバイス0を認識しない。
なお、仮想計算機1(2)上のデバイスドライバ13(33)は、認識したI/Oデバイス0(1)を操作するフレーム12(32)と呼ばれるデータ構造を作成する。フレーム12(32)は、メモリ55における、仮想計算機1(2)に対応したメモリ空間に設定される。コマンドレジスタ24PA(24PB)に対する値として、例えば、処理開始を表す値と、フレーム12(32)に関する論理アドレス(例えば先頭論理アドレス))の値とがある。これらの値の書き込みは、ハイパバイザ50に捕捉され、ハイパバイザ50によって、それらの値がコマンドレジスタ24PA(24PB)に書き込まれる。それを契機に、コントローラ20PA(20PB)がフレーム処理を開始する。フレーム処理では、コントローラ20PA(20PB)が、フレーム12(32)に関する論理アドレスを基に、フレーム12(32)から命令を読んだり、フレーム12(32)に命令の実行結果を書いたりする。フレーム12(32)へのアクセスは、DMAで行われる。そのアクセスでは、フレーム12(32)に関する論理アドレスが指定されるが、その論理アドレスは、DMAアドレス変換回路53により、アクセス元のコントローラ20PA(20PB)に対応したアドレス変換ルールに従い、物理アドレス(メモリ55の物理的なアドレス)に変換される。その変換後の物理アドレスに従って、フレーム12(32)へのアクセスが行われる。従って、上位コントローラ20PAのアクセス先は、矢印Aで示すように、仮想計算機1でのフレーム12となり、下位コントローラ20PBのアクセス先は、矢印Bで示すように、仮想計算機2でのフレーム32となる。
以下、ハイパバイザ50が行う処理を詳細に説明する。
図4は、仮想計算機1からライト命令が発行された場合にハイパバイザ50が行う処理のフローチャートである。
或るアドレス空間を指定したライト命令が仮想計算機1から発行され(S401)、ハイパバイザ50が、そのライト命令を捕捉する(S402)。ハイパバイザ50は、ライトのターゲットが上位コントローラ20PA内のデバイスか否か(例えば特定のMMIO空間又はI/Oポート空間か否か)を判断する(S403)。
S403の判断の結果が肯定的であれば(S403:YES)、ハイパバイザ50は、ライトのターゲットがポート1スイッチレジスタ28Pか否かを判断する(S404)。
S404の判断の結果が肯定的であれば(S404:YES)、ハイパバイザ50は、ポート1スイッチレジスタ28Pに対する書き込みをせず、管理メモリ領域66に保持されている値に、ライト対象の値を上書きする(S405)。その後、仮想計算機1の次命令に制御が移動する(S410)。仮想計算機1は、次命令の処理を実行する(S411)。
S404の判断の結果が否定的であれば(S404:NO)、ハイパバイザ50は、ライトのターゲットがポート1状態レジスタ26PAか否かを判断する(S406)。
S406の判断の結果が肯定的であれば(S406:YES)、ハイパバイザ50は、ポート1状態レジスタ26PAに対する書き込みをせず、書込みを無視する(S407)。その後、S410が行われる。
S406の判断の結果が否定的であれば(S406:NO)、ハイパバイザ50は、ターゲットのデバイスにライト対象のデータを書き込む(S408)。その後、S410が行われる。
S403の判断の結果が否定的であれば(S403:NO)、ハイパバイザ50は、ライト命令に従う書き込みエミュレーション処理を行う。その後、S410が行われる。
図5は、仮想計算機2からライト命令が発行された場合にハイパバイザ50が行う処理のフローチャートである。
或るアドレス空間を指定したライト命令が仮想計算機2から発行され(S501)、ハイパバイザ50が、そのライト命令を捕捉する(S502)。ハイパバイザ50は、ライトのターゲットが下位コントローラ20PB内のデバイスか否か(例えば特定のMMIO空間又はI/Oポート空間か否か)を判断する(S503)。
S503の判断の結果が肯定的であれば(S503:YES)、ハイパバイザ50は、ライトのターゲットがポート0状態レジスタ25PBか否かを判断する(S504)。
S504の判断の結果が肯定的であれば(S504:YES)、ハイパバイザ50は、ポート0状態レジスタ25PBに対する書き込みをせず、書込みを無視する(S505)。その後、仮想計算機2の次命令に制御が移動する(S508)。仮想計算機2は、次命令の処理を実行する(S509)。
S504の判断の結果が否定的であれば(S504:NO)、ハイパバイザ50は、ターゲットのデバイスにライト対象のデータを書き込む(S506)。その後、S508が行われる。
S503の判断の結果が否定的であれば(S503:NO)、ハイパバイザ50は、ライト命令に従う書き込みエミュレーション処理を行う。その後、S508が行われる。
図6は、仮想計算機1からリード命令が発行された場合にハイパバイザ50が行う処理のフローチャートである。
或るアドレス空間を指定したリード命令が仮想計算機2から発行され(S701)、ハイパバイザ50が、そのリード命令を捕捉する(S702)。ハイパバイザ50は、リードトのターゲットが上位コントローラ20PA内のデバイスか否かを判断する(S703)。
S703の判断の結果が肯定的であれば(S703:YES)、ハイパバイザ50は、リードのターゲットがポート1スイッチレジスタ28Pか否かを判断する(S704)。
S704の判断の結果が肯定的であれば(S704:YES)、ハイパバイザ50は、ポート1スイッチレジスタ28Pからの読み出しをせず、管理メモリ領域66に保持されている値を読み出す(S705)。その後、ハイパバイザ50は、読み出したデータを捕捉した命令の格納先に設定し、仮想計算機1の次命令に制御が移動するようにする(S710)。ここでのデータは、管理メモリ領域66から読み出された値であり、格納先は、論理的なポート1スイッチレジスタ28Lである。S710の後、仮想計算機1が、次命令の処理を実行する(S711)。
S704の判断の結果が否定的であれば(S704:NO)、ハイパバイザ50は、リードのターゲットがポート1状態レジスタ26PAか否かを判断する(S706)。
S706の判断の結果が肯定的であれば(S706:YES)、ハイパバイザ50は、ポート1状態レジスタ26PAからの読出しを行わず、I/Oデバイスが未接続であることを表す値(未接続値)を読み出しデータとして設定する(S707)。その後、S710が行われる。そのS710では、未接続値が論理的なポート1状態レジスタ26LAに格納される。
S706の判断の結果が否定的であれば(S706:NO)、ハイパバイザ50は、ターゲットのデバイスからデータを読み出す(S708)。その後、S710が行われる。
S703の判断の結果が否定的であれば(S703:NO)、ハイパバイザ50は、リード命令に従う読み出しエミュレーション処理を行う。その後、S710が行われる。
図7は、仮想計算機2からリード命令が発行された場合にハイパバイザ50が行う処理のフローチャートである。
或るアドレス空間を指定したリード命令が仮想計算機2から発行され(S601)、ハイパバイザ50が、そのリード命令を捕捉する(S602)。ハイパバイザ50は、リードのターゲットが下位コントローラ20PB内のデバイスか否かを判断する(S603)。
S603の判断の結果が肯定的であれば(S603:YES)、ハイパバイザ50は、リードのターゲットがポート0状態レジスタ25PBか否かを判断する(S604)。
S604の判断の結果が肯定的であれば(S604:YES)、ハイパバイザ50は、ポート0状態レジスタ25PBからの読み出しを行わず、I/Oデバイスが未接続であることを表す値(未接続値)を読み出しデータとして設定する(S605)。その後、S608が行われる。そのS608では、未接続値が論理的なポート1状態レジスタ26LAに格納される。S608の後、仮想計算機1が、次命令の処理を実行する(S609)。
S604の判断の結果が否定的であれば(S604:NO)、ハイパバイザ50は、ターゲットのデバイスからデータを読み出す(S606)。その後、S608が行われる。
S603の判断の結果が否定的であれば(S603:NO)、ハイパバイザ50は、リード命令に従う読み出しエミュレーション処理を行う。その後、S608が行われる。
以上が、実施例1の説明である。
以下、本発明の実施例2を説明する。その際、実施例1との相違点を主に説明し、実施例1との共通点については説明を省略或いは簡略する(これは、後述の実施例3についても同様である)。
図8は、本発明の実施例2に係る計算機システムにおける仮想計算機1及びハイパバイザ71を示す。なお、物理計算機システムの構成は、実施例1と同じため図示を省略する。
実施例2では、下位コントローラ20PBが、仮想計算機に代えてハイパバイザ71に割り当てられる。これにより、ハイパバイザ71と仮想計算機1間で接続先のI/Oデバイス0及び1を別々に利用できる。
ハイパバイザ71がデバイス制御部73を有する。デバイス制御部73は、ハイパバイザ71がどちらのポート0又は1を使えないのかを知っている。このため、下位コントローラ20PBについてのポート状態レジスタ25PB、26PBを化かす必要はない。ハイパバイザ71は、自分に割り当てられていない上位コントローラ20PAを使用する仮想計算機1に影響が出ないように、自分が使用しないポート0に関する、下位コントローラ20PB内のレジスタ25PBにアクセスしなければ良い。
以上が、実施例2の説明である。なお、ハイパバイザ71には、下位コントローラ20PBに代えて上位コントローラ20PAが割り当てられ、下位コントローラ20PBに仮想計算機が割り当てられても良い。この場合、ハイパバイザ71は、自分が使用しないポート1に関する、上位コントローラ20PA内のレジスタ23PA及び28Pにアクセスしなければ良い。
図9は、本発明の実施例3に係る計算機システムにおける物理計算機システム91の構成を示す。図10は、本発明の実施例3に係る計算機システムにおけるハイパバイザ50及び仮想計算機の構成を示す。
図9に示すように、複合I/Oコントローラ92が、N個の下位コントローラ20PBを有する(Nは2以上の整数)。1つの上位コントローラ20PA及びN個の下位コントローラ20PBが、(N+1)個の仮想計算機に1対1で割り当てられる。なお、実施例2のように、いずれか1つのI/Oコントローラがハイパバイザに割り当てられても良い。
各下位コントローラ20PBの構成は、2つのI/Oポートを共有可能な構成である。このため、1つの下位コントローラ20PBにつき2つのI/Oポートが備えられる。それ故、N個の下位コントローラ20PBがある場合には、ポート0からポート(2N−1)の2N個のポートが備えられることになる。
複合I/Oコントローラ92が複数の下位コントローラ20PBを備えていても、個々の仮想計算機が別々にI/Oデバイスを利用することを保証することができる。なぜなら、上位コントローラ20PAが割り当てられている仮想計算機(又はハイパバイザ)から、その仮想計算機(又はハイパバイザ)に割り当てられていない下位コントローラ20PBに接続されているポートに関するレジスタにアクセスがされないようになっているからである。
以上、本発明の好適な幾つかの実施例を説明したが、本発明は、これらの実施例に限定されるものでなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
100…計算機システム

Claims (10)

  1. 少なくとも1つの仮想計算機を管理するハイパバイザと、
    I/O(Input/Output)コントローラユニットと
    を備え、
    前記複合I/Oコントローラは、複数のI/Oコントローラと、各I/Oコントローラが共有可能な複数のI/Oポートとを有し、
    前記複数のI/Oコントローラのうちの少なくとも1つのI/Oコントローラが、いずれかの仮想計算機に割り当てられ、
    各I/Oポートに、いずれかのI/Oデバイスと、いずれかのI/Oコントローラとが接続され、
    前記ハイパバイザは、以下の(a)乃至(c)の処理:
    (a)仮想計算機から発行されたI/O命令を捕捉する;
    (b)前記I/O命令に従うI/Oのターゲットが、前記I/O命令の発行元の仮想計算機に割り当てられていないI/Oコントローラに接続されたI/Oポートに関わるデバイスである非割当ポート関連デバイスであるか否かを判断する;
    (c)前記(b)の判断の結果が肯定的であれば、前記非割当ポート関連デバイスに対するI/Oを行わず、仮想的な実行結果を前記I/O命令の発行元の仮想計算機に返す;
    を行う、
    計算機システム。
  2. 前記少なくとも1つの仮想計算機は、第一の仮想計算機と第二の仮想計算機を含み、
    前記複数のI/Oコントローラは、
    前記第一の仮想計算機に割り当てられる第一のI/Oコントローラと、
    前記第二の仮想計算機に割り当てられる第二のI/Oコントローラと
    を含み、
    前記第一のI/Oコントローラは、第一及び第二のポートスイッチレジスタと、第一及び第二のポートデバイスとを有し、
    前記第二のI/Oコントローラは、第一及び第二のポートデバイスを有し、
    前記第一のポートスイッチレジスタは、前記第一のI/Oポートと、前記第一のI/Oコントローラの前記第一のポートデバイスと、前記第二のI/Oコントローラの前記第一のポートデバイスとに接続されており、前記第一のI/Oポートを前記第一のI/Oコントローラと第二のI/Oコントローラのどちらに接続するかを表す値を記憶し、
    前記第二のポートスイッチレジスタは、前記第二のI/Oポートと、前記第一のI/Oコントローラの前記第二のポートデバイスと、前記第二のI/Oコントローラの前記第二のポートデバイスとに接続されており、前記第二のI/Oポートを前記第一のI/Oコントローラと第二のI/Oコントローラのどちらに接続するかを表す値を記憶し、
    各第一のポートデバイスは、前記第一のI/Oポートに対応しており、
    各第二のポートデバイスは、前記第二のI/Oポートに対応しており、
    前記第一のI/Oコントローラの前記第一のポート状態レジスタは、前記第一のポートスイッチレジスタが前記第一の値を記憶しているため、デバイスが接続されていることを意味する値である接続値を記憶し、一方、前記第二のI/Oコントローラの前記第一のポート状態レジスタは、前記第一のI/Oコントローラの前記第一のポート状態レジスタが前記接続値を記憶しているため、デバイスが接続されていないことを意味する値である非接続値を記憶し、
    前記第二のI/Oコントローラの前記第二のポート状態レジスタは、前記第二のポートスイッチレジスタが前記第二の値を記憶しているため、デバイスが接続されていることを意味する値である接続値を記憶し、一方、前記第一のI/Oコントローラの前記第二のポート状態レジスタは、前記第二のI/Oコントローラの前記第二のポート状態レジスタが前記接続値を記憶しているため、デバイスが接続されていないことを意味する値である非接続値を記憶し、
    前記第一の仮想計算機が、割り当てられている前記第一のI/Oコントローラに対応した論理的な第一のI/Oコントローラを有し、前記論理的な第一のI/Oコントローラは、論理的な第一のポート状態レジスタと、論理的な第二のポート状態レジスタと、論理的な第一のポートスイッチレジスタと、論理的な第二のポートスイッチレジスタとを有し、
    前記第二の仮想計算機が、割り当てられている前記第二のI/Oコントローラに対応した論理的な第二のI/Oコントローラを有し、前記論理的な第二のI/Oコントローラは、論理的な第一のポート状態レジスタと、論理的な第二のポート状態レジスタとを有し、
    前記ハイパバイザが、前記論理的な第二のポートスイッチレジスタに記憶される値を記憶するための領域であるレジスタ領域を管理しており、起動したときに、前記複合I/Oコントローラをリセットし、前記第一のポートスイッチレジスタに、前記第一のI/Oポートが前記第一のI/Oコントローラに接続されており前記第二のI/Oコントローラに接続されていないことを意味する第一の値を書き込み、前記第二のポートスイッチレジスタに、前記第二のI/Oポートが前記第二のI/Oコントローラに接続されており前記第一のI/Oコントローラに接続されていないことを意味する第二の値を書き込み、
    (A)前記(a)において、捕捉されたI/O命令は、前記論理的な第二のポートスイッチレジスタを指定した、前記第一の仮想計算機からのライト命令であり、前記(b)において、前記非割当ポート関連デバイスが、前記第二のポートスイッチレジスタである場合、前記ハイパバイザが、前記(c)において、ライト対象の値を前記第二のポートスイッチレジスタに書き込まず、前記レジスタ領域に前記ライト対象の値を書き込み、
    (B)前記(a)において、捕捉されたI/O命令は、前記論理的な第二のポートスイッチレジスタを指定した、前記第一の仮想計算機からのリード命令であり、前記(b)において、前記非割当ポート関連デバイスが、前記第二のポートスイッチレジスタである場合、前記ハイパバイザが、前記(c)において、前記第二のポートスイッチレジスタに記憶されている値を読み出さず、前記レジスタ領域に現在記憶されている値を読み出し、読み出した値を前記第一の仮想計算機に返し、
    (C)前記(a)において、捕捉されたI/O命令は、前記論理的な第二又は第一のポート状態レジスタを指定した、前記第一又は第二の仮想計算機からのライト命令であり、前記(b)において、前記非割当ポート関連デバイスが、ライト元の仮想計算機に割り当てられていないI/Oコントローラのポート状態レジスタである場合、前記ハイパバイザが、前記(c)において、そのポート状態レジスタに対するライトを行わず、ライト元の仮想計算機からのライト命令に従う書き込みを非実行とし、
    (D)前記(a)において、捕捉されたI/O命令は、前記論理的な第二又は第一のポート状態レジスタを指定した、前記第一又は第二の仮想計算機からのリード命令であり、前記(b)において、前記非割当ポート関連デバイスが、そのリード元の仮想計算機に割り当てられていないI/Oコントローラのポート状態レジスタである場合、前記ハイパバイザが、前記(c)において、そのポート状態レジスタからの読み出しを行わず、デバイスが接続されていないことを意味する値である非接続値をリード元の仮想計算機に返す、
    請求項1記載の計算機システム。
  3. 前記第一のI/Oコントローラは、EHCI(Enhanced Host Controller Interface)コントローラであり、
    前記第二のI/Oコントローラは、UHCI(Universal Host Controller Interface)コントローラであり、
    前記複数のI/Oポートは、第一のUSB(Universal Serial Bus)ポートと、第二のUSBポートとを含み、
    前記第一のUSBポートに第一のUSBインタフェースで接続されるI/Oデバイスは、仮想的なストレージ装置であり、
    前記第二のUSBポートに第二のUSBインタフェースで接続されるI/Oデバイスは、仮想的な入力装置である、
    請求項2記載の計算機システム。
  4. 前記複数のI/Oコントローラは、
    第一の対象に割り当てられる第一のI/Oコントローラと、
    第二の対象に割り当てられる第二のI/Oコントローラと
    を含み、
    前記第一の対象と前記第二の対象の少なくとも一方が仮想計算機であり、
    前記第一のI/Oコントローラは、第一及び第二のポートスイッチを有し、
    前記第一のポートスイッチは、前記第一のI/Oポートを前記第一のI/Oコントローラと第二のI/Oコントローラのどちらかに選択的に接続するためのデバイスであり、
    前記第二のポートスイッチは、前記第二のI/Oポートを前記第一のI/Oコントローラと第二のI/Oコントローラのどちらかに選択的に接続するためのデバイスであり、
    前記ハイパバイザが、起動したときに、前記第一のポートスイッチを制御することにより前記第一のI/Oポートを前記第一のI/Oコントローラに接続することと、前記第二のポートスイッチを制御することにより前記第二のI/Oポートを前記第二のI/Oコントローラに接続することとを実行し、
    前記(b)において、前記非割当ポート関連デバイスが、前記第二のポートスイッチである、
    請求項1記載の計算機システム。
  5. 前記ハイパバイザが、前記第二のポートスイッチに対するリードで返す値であるスイッチ値を管理しており、
    前記(a)において、捕捉されたI/O命令が、前記第二のポートスイッチに対する、前記第一の対象からのライト命令である場合、前記ハイパバイザが、前記(c)において、現在の前記スイッチ値をライト対象の値に更新し、
    前記(a)において、捕捉されたI/O命令が、前記第二のポートスイッチに対する、前記第一の対象からのリード命令である場合、前記ハイパバイザが、前記(c)において、現在の前記スイッチ値を前記第一の対象に返す、
    請求項4記載の計算機システム。
  6. 前記第一及び第二のI/Oコントローラは、それぞれ、前記第一及び第二のI/Oポートにそれぞれ対応する第一及び第二のポート状態記憶領域を有し、
    各ポート状態記憶領域は、そのポート状態レジスタに対応するI/OポートにI/Oデバイスが接続されているか否かに関する値を記憶し、
    前記(b)において、前記I/O命令の発行元が前記第一の対象である場合、前記非割当ポート関連デバイスは、前記第一のI/Oコントローラの前記第二のポート状態記憶領域であり、
    前記(b)において、前記I/O命令の発行元が前記第二の対象である場合、前記非割当ポート関連デバイスは、前記第二のI/Oコントローラの前記第一のポート状態記憶領域である、
    請求項4記載の計算機システム。
  7. 前記(a)において、捕捉されたI/O命令は、前記第一又は第二の対象からのライト命令である場合、前記ハイパバイザが、前記(c)において、前記非割当ポート関連デバイスであるポート状態レジスタに対するライトを行わず、前記第一又は第二の対象からのライト命令に従うライトを非実行とし、
    前記(a)において、捕捉されたI/O命令は、前記第一又は第二の対象からのリード命令である場合、前記ハイパバイザが、前記(c)において、前記非割当ポート関連デバイスであるポート状態レジスタからの読み出しを行わず、デバイスが接続されていないことを意味する値である非接続値を前記第一又は第二の対象に返す、
    請求項6記載の計算機システム。
  8. 前記複数のI/Oコントローラは、
    第一の対象に割り当てられる第一のI/Oコントローラと、
    第二の対象に割り当てられる第二のI/Oコントローラと
    を含み、
    前記第一の対象と前記第二の対象の少なくとも一方が仮想計算機であり、
    前記第一のI/Oコントローラは、前記第一及び第二のI/Oポートと、前記第一及び第二のI/Oポートにそれぞれ対応する第一及び第二のポート状態記憶領域とを有し、
    前記第二のI/Oコントローラは、前記第一及び第二のI/Oポートにそれぞれ対応する第一及び第二のポート状態記憶領域を有し、
    各ポート状態記憶領域は、そのポート状態レジスタに対応するI/OポートにI/Oデバイスが接続されているか否かに関する値を記憶し、
    前記(b)において、前記I/O命令の発行元が前記第一の対象である場合、前記非割当ポート関連デバイスは、前記第一のI/Oコントローラの前記第二のポート状態記憶領域であり、
    前記(b)において、前記I/O命令の発行元が前記第二の対象である場合、前記非割当ポート関連デバイスは、前記第二のI/Oコントローラの前記第一のポート状態記憶領域である、
    請求項1記載の計算機システム。
  9. 前記(a)において、捕捉されたI/O命令は、前記第一又は第二の対象からのライト命令である場合、前記ハイパバイザが、前記(c)において、前記非割当ポート関連デバイスであるポート状態レジスタに対するライトを行わず、前記第一又は第二の対象からのライト命令に従うライトを非実行とし、
    前記(a)において、捕捉されたI/O命令は、前記第一又は第二の対象からのリード命令である場合、前記ハイパバイザが、前記(c)において、前記非割当ポート関連デバイスであるポート状態レジスタからの読み出しを行わず、デバイスが接続されていないことを意味する値である非接続値を前記第一又は第二の対象に返す、
    請求項8記載の計算機システム。
  10. 複合I/Oコントローラ内のI/Oコントローラに割り当てられた仮想計算機を管理するハイパバイザであって、
    仮想計算機から発行されたI/O(Input/Output)命令を捕捉する捕捉部と、
    前記I/O命令に従うI/Oのターゲットが、前記I/O命令の発行元の仮想計算機に割り当てられていないI/Oコントローラに接続されたI/Oポートに関わるデバイスである非割当ポート関連デバイスであるか否かを判断する判断部と、
    前記判断の結果が肯定的であれば、前記非割当ポート関連デバイスに対するI/Oを行わず、仮想的な実行結果を前記I/O命令の発行元の仮想計算機に返す命令処理部と
    を備え、
    前記複合I/Oコントローラは、複数のI/Oコントローラと、各I/Oコントローラが共有可能な複数のI/Oポートとを有し、
    前記複数のI/Oコントローラのうちの少なくとも1つのI/Oコントローラが、いずれかの仮想計算機に割り当てられ、
    各I/Oポートに、いずれかのI/Oデバイスと、いずれかのI/Oコントローラとが接続されている、
    ハイパバイザ。
JP2009067266A 2009-03-19 2009-03-19 ハイパバイザを有する計算機システム Expired - Fee Related JP5198334B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2009067266A JP5198334B2 (ja) 2009-03-19 2009-03-19 ハイパバイザを有する計算機システム
US12/629,229 US8078765B2 (en) 2009-03-19 2009-12-02 Computer system provided with hypervisor
US13/292,007 US8166209B2 (en) 2009-03-19 2011-11-08 Computer system provided with hypervisor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009067266A JP5198334B2 (ja) 2009-03-19 2009-03-19 ハイパバイザを有する計算機システム

Publications (2)

Publication Number Publication Date
JP2010218478A true JP2010218478A (ja) 2010-09-30
JP5198334B2 JP5198334B2 (ja) 2013-05-15

Family

ID=42738765

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009067266A Expired - Fee Related JP5198334B2 (ja) 2009-03-19 2009-03-19 ハイパバイザを有する計算機システム

Country Status (2)

Country Link
US (2) US8078765B2 (ja)
JP (1) JP5198334B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013054414A (ja) * 2011-09-01 2013-03-21 Nec Corp 情報処理装置

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8789034B1 (en) * 2011-12-31 2014-07-22 Parallels IP Holdings GmbH Method for updating operating system without memory reset
JP5884899B2 (ja) * 2012-03-27 2016-03-15 日本電気株式会社 制御装置、物理ノード、端末装置、通信システム、ポート状態表示方法及びプログラム
US9721121B2 (en) * 2014-06-16 2017-08-01 Green Hills Software, Inc. Out-of-band spy detection and prevention for portable wireless systems
US9716725B2 (en) 2014-06-16 2017-07-25 Green Hills Software, Inc. Executing a remote control command to activate one or more peripheral of a mobile device in a peripheral control domain
US10289583B2 (en) * 2016-09-02 2019-05-14 American Megatrends, Inc. Techniques of emulation of serial port over USB at embedded-system device
US11256644B2 (en) * 2018-09-05 2022-02-22 Fungible, Inc. Dynamically changing configuration of data processing unit when connected to storage device or computing device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01195562A (ja) * 1988-01-29 1989-08-07 Nec Corp 入出力装置割当て制御方式
JPH0348937A (ja) * 1989-07-18 1991-03-01 Nec Corp 仮想計算機システムにおける入出力命令実行方式
JPH0973427A (ja) * 1995-09-05 1997-03-18 Hitachi Ltd 入出力チャネルの拡張方式
JP2007172760A (ja) * 2005-12-22 2007-07-05 Kenwood Corp オーディオ再生装置及び方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7003771B1 (en) * 2000-06-08 2006-02-21 International Business Machines Corporation Logically partitioned processing system having hypervisor for creating a new translation table in response to OS request to directly access the non-assignable resource
JP2003202999A (ja) 2002-01-08 2003-07-18 Hitachi Ltd 仮想計算機システム
JP4123942B2 (ja) * 2003-01-14 2008-07-23 株式会社日立製作所 情報処理装置
US7555596B2 (en) * 2004-12-10 2009-06-30 Microsoft Corporation Systems and methods for attaching a virtual machine virtual hard disk to a host machine
US7657694B2 (en) * 2006-12-20 2010-02-02 Arm Limited Handling access requests in a data processing apparatus
US7886115B2 (en) * 2007-07-13 2011-02-08 Hitachi Global Storage Technologies Netherlands, B.V. Techniques for implementing virtual storage devices

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01195562A (ja) * 1988-01-29 1989-08-07 Nec Corp 入出力装置割当て制御方式
JPH0348937A (ja) * 1989-07-18 1991-03-01 Nec Corp 仮想計算機システムにおける入出力命令実行方式
JPH0973427A (ja) * 1995-09-05 1997-03-18 Hitachi Ltd 入出力チャネルの拡張方式
JP2007172760A (ja) * 2005-12-22 2007-07-05 Kenwood Corp オーディオ再生装置及び方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNH201100065004; 上野 仁 Hitoshi Ueno: 'Big Dataにより新たな価値を創出する次世代ITプラットフォーム Next-generation IT Platform Cr' 日立評論 第93巻 第7号 HITACHI HYORON 第93巻, 20110701, p.26-29, 日立評論社 *
JPN6013002791; 上野 仁 Hitoshi Ueno: 'Big Dataにより新たな価値を創出する次世代ITプラットフォーム Next-generation IT Platform Cr' 日立評論 第93巻 第7号 HITACHI HYORON 第93巻, 20110701, p.26-29, 日立評論社 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013054414A (ja) * 2011-09-01 2013-03-21 Nec Corp 情報処理装置

Also Published As

Publication number Publication date
US8078765B2 (en) 2011-12-13
US20120054749A1 (en) 2012-03-01
US8166209B2 (en) 2012-04-24
JP5198334B2 (ja) 2013-05-15
US20100242039A1 (en) 2010-09-23

Similar Documents

Publication Publication Date Title
JP5198334B2 (ja) ハイパバイザを有する計算機システム
CN107643996B (zh) 包括单端口存储控制器的基于pci express的双端口存储盒
CN108509351B (zh) 存储器系统和控制方法
US9135190B1 (en) Multi-profile memory controller for computing devices
US9223734B2 (en) Switch with synthetic device capability
US8095701B2 (en) Computer system and I/O bridge
WO2020055921A4 (en) Methods and apparatus for high-speed data bus connection and fabric management
WO2016135875A1 (ja) 情報処理装置
JP6406707B2 (ja) 半導体記憶装置
JP2009187368A (ja) Usbポートの共有制御方法
JP5915378B2 (ja) ストレージ装置およびストレージ装置の制御方法
US9336032B2 (en) Zoning data to a virtual machine
US20160224479A1 (en) Computer system, and computer system control method
KR20090100263A (ko) Usb 제어기 및 버퍼 메모리 제어 방법
JP5920595B2 (ja) 電子機器、オペレーティングシステム、アクセス管理方法
US10481951B2 (en) Multi-queue device assignment for application groups
EP2782002A2 (en) Control device, storage system, and control program
JP2022502743A (ja) 複数のプロセッサ装置と複数のインターフェースを有するデータ処理装置
JP2008009926A (ja) 情報処理装置、情報処理システムおよびアドレス変換方法
JP6948039B2 (ja) コンピュータシステム
US20190138480A1 (en) Storage system and control method therefor
JP4480678B2 (ja) 半導体集積回路装置
WO2023112646A1 (ja) 情報処理装置、及び情報処理装置の制御方法
US11836393B2 (en) Storage system and control method of migrating storage control unit based on maximum amount of mountable storage control units
JP2011203843A (ja) 情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110418

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120620

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120626

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120822

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130206

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160215

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees