JP2013041409A - 情報処理装置、割込み制御方法および割込み制御プログラム - Google Patents

情報処理装置、割込み制御方法および割込み制御プログラム Download PDF

Info

Publication number
JP2013041409A
JP2013041409A JP2011177667A JP2011177667A JP2013041409A JP 2013041409 A JP2013041409 A JP 2013041409A JP 2011177667 A JP2011177667 A JP 2011177667A JP 2011177667 A JP2011177667 A JP 2011177667A JP 2013041409 A JP2013041409 A JP 2013041409A
Authority
JP
Japan
Prior art keywords
interrupt
guest
virtual
control unit
destination
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
JP2011177667A
Other languages
English (en)
Other versions
JP5737050B2 (ja
Inventor
Kazuhiro Suzuki
和宏 鈴木
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
Priority to JP2011177667A priority Critical patent/JP5737050B2/ja
Priority to US13/477,113 priority patent/US20130047157A1/en
Priority to EP12172181A priority patent/EP2560096A1/en
Publication of JP2013041409A publication Critical patent/JP2013041409A/ja
Application granted granted Critical
Publication of JP5737050B2 publication Critical patent/JP5737050B2/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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked

Landscapes

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

Abstract

【課題】割込み処理を効率よく実行することを課題とする。
【解決手段】情報処理装置は、複数のゲストOSを稼動させるハイパーバイザと、割込み要求の宛先となるゲストOSを特定する割込みコントローラとを有する。ハイパーバイザは、複数のVMゲスト各々に対応付けて割込みプログラムが格納される格納先の情報を記憶する記憶部から、割込みコントローラが特定したゲストOSに対応付けられる割込みプログラムの格納先を特定する割込みハンドラ特定部を有する。また、ハイパーバイザは、割込みハンドラ特定部によって特定された格納先から割込みハンドラを読み出して実行する割込み実行部を有する。
【選択図】図5

Description

本発明は、情報処理装置、割込み制御方法および割込み制御プログラムに関する。
従来、情報処理装置などの物理サーバ上で、VM(Virtual Machine:仮想マシン)といわれる仮想的なサーバを動作させるサーバ仮想化技術が知られている。物理サーバでは、VMの生成などVMに関する各種制御を実施するVMM(Virtual Machine Monitor)などと呼ばれるハイパーバイザを動作させている。
このようなサーバ仮想化技術を適用した物理サーバで、VMに対する外部割込み要求が発生した場合、割込みコントローラがハイパーバイザに外部割込み要求を通知する。ハイパーバイザは、外部割込み要求を仮想割込み要求に変換し、割込みの宛先となるVMに通知する。仮想割込み要求が通知されたVMは、割込み処理を実行した後、実行が終了したことをハイパーバイザに通知する。そして、ハイパーバイザが、割込みが終了したことを割込みコントローラに通知して、割込み処理が終了する。
また、VMに対する割込みを実行する技術としては、例えば、VMが動作する際に、ハイパーバイザの割込みベクタテーブルのエントリをVMの割込み処理プログラムに書き換える技術が知られている。また、VMの起動目的が割込みである場合に、割込み内容に適した情報をスタックに格納し、格納した情報に適した処理を実行するVM内の割込みハンドラに制御を移す技術が知られている。また、性能モニタリング対象とするVMに実行権が与えられた場合に、当該VMの割込みハンドラへのリンクをハイパーバイザの割込テーブルに登録する。そして、割込みが発生すると、割込テーブルにしたがって割込みハンドラを起動する技術が知られている。
特開昭61−206043号公報 特開昭61−184643号公報 特開2010−152458号公報
しかしながら、従来技術では、CPU(Central Processing Unit)が割り当てられていないVMへの割込み要求が発生した場合に、該当VMにCPUが割り当てられるまで割込み要求を処理できない状態となるので、割込み処理が効率的ではないという問題がある。
例えば、物理サーバで複数のVMが稼動している状況では、スケジューラ等によってCPUが割り当てられた動作中の1つのVMが処理を実行できる。つまり、CPUの実行権を有するVMが各種処理を実行する。したがって、VM1、VM2、VM3が稼動している状況で、VM1にCPUが割り当てられている場合には、VM1が実行中であり、VM2とVM3は、起動はしているものの処理を実行できない実行待機中となる。
したがって、従来技術を用いた場合でも、実行待機中のVMに対して割込み要求が発生した場合には、該当VMが実行中に遷移するまで割込み処理が実行できない。このように、割込み要求の宛先となるVMの状態によっては、割込み処理を完了させるまでに時間がかかり、割込み処理が効率的に実行できない場合がある。
1つの側面では、割込み処理を効率よく実行できる情報処理装置、割込み制御方法および割込み制御プログラムを提供することを目的とする。
第1の案では、情報処理装置は、複数の仮想マシンを稼動させる仮想制御部と、割込み要求の宛先となる仮想マシンを特定する割込み制御部と、を有する。前記仮想制御部は、前記複数の仮想マシン各々に対応付けて割込みプログラムが格納される格納先の情報を記憶する記憶部から、前記割込み制御部が特定した仮想マシンに対応付けられる割込みプログラムの格納先を特定する特定部を有する。また、仮想制御部は、前記特定部によって特定された格納先から割込みプログラムを読み出して実行する実行制御部を有する。
割込み処理を効率よく実行できる。
図1は、実施例1に係る情報処理装置を説明する図である。 図2は、実施例1に係る情報処理装置が割込み処理を実行する例を説明する図である。 図3は、割込み処理の待ちが発生する例を示す図である。 図4は、割込み処理を効率的に実行する例を示す図である。 図5は、実施例2に係る情報処理装置の構成を示す機能ブロック図である。 図6は、ゲストID管理テーブルに記憶される情報の例を示す図である。 図7は、割込みハンドラ管理テーブルに記憶される情報の例を示す図である。 図8は、実施例2に係る情報処理装置の処理シーケンスをNICデバイスを例にして示した図である。 図9は、実施例2に係る情報処理装置の処理シーケンスをHDDデバイスを例にして示した図である。 図10は、割込み要求の宛先のゲストにCPUが割り当てられている場合の処理シーケンス図である。 図11は、プロテクトモードを記憶するゲストID管理テーブルの例を示す図である。 図12は、割込み種別によって実行方式を変更することを説明する図である。 図13は、割込み制御プログラムを実行するコンピュータのハードウェア構成の例を示す図である。
以下に、本願の開示する情報処理装置、割込み制御方法および割込み制御プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
図1は、実施例1に係る情報処理装置を説明する図である。図1に示す情報処理装置10は、サーバ仮想化技術を適用したサーバであり、複数の仮想マシン(VM:Virtual Machine)を動作させる。なお、ここでは情報処理装置10がサーバである例で説明するが、これに限定されるものではなく、パーソナルコンピュータなど他の装置であってもよい。また、ここで説明するVMの数等についても、説明するものに限定されるものではない。
図1に示すように、情報処理装置10は、割込み制御部11と仮想制御部12とを有する。また、情報処理装置10は、仮想マシンとして、ゲストOperating System(A)「以下、ゲストOS(A)などと表記する」とゲストOS(B)とゲストOS(C)とを動作させている。ゲストOS(A)は、割込みプログラム(A)を保持し、ゲストOS(B)は、割込みプログラム(B)を保持し、ゲストOS(C)は、割込みプログラム(C)を保持する。
割込み制御部11は、割込み要求が発生した場合に、割込み要求の宛先となる仮想マシンを特定する処理部である。仮想制御部12は、記憶部12aと特定部12bと実行制御部12cとを有し、これらによって割込み制御部11から通知された割込みを処理する処理部である。なお、記憶部12aは、仮想制御部12ではなく、情報処理装置10内に他の処理部等が有していてもよい。
記憶部12aは、複数の仮想マシン各々に対応付けて、割込みプログラムが格納される格納先の情報を記憶する。特定部12bは、割込み制御部11が特定した仮想マシンに対応付けられる割込みプログラムの格納先を記憶部12aから特定する。実行制御部12cは、特定部12bによって特定された格納先から割込みプログラムを読み出して実行する。
このように、情報処理装置10の割込み制御部11は、外部割込み等を検出した場合に、外部割込みの宛先となるゲストOSを特定する。仮想制御部12は、外部割込みの宛先となるゲストOSの割込みプログラムを読出し、当該ゲストOSを代行して実行する。ここで、図2を用いて、具体的な例を説明する。図2は、実施例1に係る情報処理装置が割込み処理を実行する例を説明する図である。
図2に示すように、割込み制御部11は、外部割込みを検出すると、外部割込みの宛先となるゲストOS(A)を特定する。仮想制御部12の特定部12bは、ゲストOS(A)の割込みプログラムが格納されるアドレス情報を記憶部12aから特定する。実行制御部12cは、特定したアドレス情報からゲストOS(A)の割込みプログラム(A)を読み出して、仮想制御部12内で実行する。
つまり、仮想制御部12は、外部割込みの宛先であるゲストOSに代わって、割込みプログラムを実行する。したがって、情報処理装置10は、該当ゲストOSにCPUが割当てられるまで割込み処理を待機させることがなく、割込み処理を効率的に実行することができる。
例えば、図3は、割込み処理の待ちが発生する例を示す図である。図3は、時間の変化に伴って、ゲストOS(A)、ゲストOS(B)、ゲストOS(C)に順番にCPUが割り当てられることを図示している。この場合に、仮想制御部12は、時刻t0でゲストOS(A)への割込み(A)が発生すると、時刻t0の時点ではゲストOS(A)にCPUが割り当てられているので、割込み(A)を仮想割込み(A)に変換してゲストOS(A)に通知する。
そして、仮想制御部12は、時刻t1でゲストOS(C)への割込み(C)が発生した場合、時刻t1の時点ではゲストOS(B)にCPUが割り当てられているので、割込み(C)を待機させる。その後、仮想制御部12は、ゲストOS(C)にCPUが割り当てられたt2以降に、割込み(C)を仮想割込み(C)に変換してゲストOS(C)に通知して割込み(C)を実行させる。つまり、割込み(C)は、時刻t1から時刻t2まで待機させられる。このように、各ゲストで割込みを実行させる場合、CPUの割当て状況によっては割込みを待機させる時間が発生することがある。
一方、図4は、割込み処理を効率的に実行する例を示す図である。図4は、図1に示した情報処理装置10が実行する割込み処理を説明する図であり、CPUの割当等については図3と同様とする。ここで、図4に示すように、時刻t0でゲストOS(A)の割込み(A)が発生したとする。この場合、仮想制御部12は、ゲストOS(A)にCPUが割り当てられているが割込み(A)を仮想割込みに変換することなく、ゲストOS(A)の割込みプログラム(A)を読み出して実行し、割込み(A)を処理する。
そして、仮想制御部12は、時刻t1でゲストOS(C)の割込み(C)が発生した場合、時刻t1の時点ではゲストOS(B)にCPUが割り当てられているが、ゲストOS(C)の割込みプログラム(C)を読み出して実行し、割込み(C)を処理する。このように、情報処理装置10は、図3と比較してもわかるように、発生した割込みを待機させることなく、順次実行することができるので、割込み処理を効率よく実行できる。
次に、実施例2に係る情報処理装置について説明する。実施例2では、実施例2に係る情報処理装置の構成、処理の流れ等について説明する。
[情報処理装置の構成]
図5は、実施例2に係る情報処理装置の構成を示す機能ブロック図である。図5に示すように、情報処理装置20は、仮想領域20aと通信インタフェース20bと入出力インタフェース20cと割込みコントローラ22と制御部25とを有する。なお、ここで図示した処理部は、あくまで例示であり、これに限定されるものではなく、例えば、メモリやハードディスクなどの記憶装置、ディスプレイなどの表示部、マウスなどの入力部等を有していてもよい。
仮想領域20aは、制御部25のハイパーバイザ26によって管理される領域であり、任意の数のVMを動作させることができる。図5では、VMとして、ゲストOS(A)とゲストOS(B)とゲストOS(C)とが動作している。ここでは、ゲストOS(A)には、ゲストOS(A)を識別する識別子としてゲストID=0が割り当てられ、ゲストOS(B)には、ゲストOS(B)を識別する識別子としてゲストID=1が割り当てられている。また、ゲストOS(C)には、ゲストOS(C)を識別する識別子としてゲストID=2が割り当てられている。また、各ゲストOSは、割込み要因に対応付けて、割込み処理を実行する割込みハンドラを保持する。
この仮想領域20aで動作する各ゲストOSには、ハイパーバイザ26によって仮想プロセッサと仮想メモリとが割り当てられ、各ゲストOSは、この仮想プロセッサと仮想メモリによりVMとして動作し、各種処理を実行する。なお、仮想メモリは、情報処理装置20のメモリにおける所定領域をゲストOSが使用するメモリとして割り当てることで実現された仮想的なメモリである。仮想プロセッサは、情報処理装置20のプロセッサにおける所定処理能力をゲストOSが使用するプロセッサとして割り当てることで実現された仮想的なプロセッサである。
通信インタフェース20bは、例えばNIC(Network Interface Card)デバイスなどのインタエースであり、情報処理装置20と他の装置との間の通信を制御する。例えば、通信インタフェース20bは、パケットやフレームなどのデータを他の装置から受信し、また、情報処理装置20内で処理されたデータを他の装置に送信する。
入出力インタフェース20cは、ディスプレイ、マウス、キーボード、HDD(Hard Disk Drive)デバイスなどとの通信を制御する。例えば、入出力インタフェース20cは、マウスやキーボードを介して、情報処理装置20への入力を受け付ける。また、入出力インタフェース20cは、情報処理装置20の処理結果等をディスプレイに表示出力する。また、入出力インタフェース20cは、各ゲストOSから送信された書き込み要求をHDDデバイスなどの記憶装置に対して実行し、また、HDDデバイスから読み出したデータをゲストに出力する。
割込みコントローラ22は、割込みターゲットレジスタ22aとゲストID管理テーブル22bと格納制御部22cと割込み先特定部22dとを有し、これらによって割込みに関する処理を実行する処理部である。
割込みターゲットレジスタ22aは、割込みの宛先となるゲストOSのゲストIDを格納する。なお、ゲストIDは、仮想領域で動作するゲストOSを識別する識別子である。また、ここで記憶される情報は、割込み先特定部22dによって更新される。また、割込みコントローラ22またはハイパーバイザ26は、割込み処理が完了した場合に、当該割込み処理を実行したゲストIDを削除してもよい。
ゲストID管理テーブル22bは、ゲストOS各々が使用するデバイスの情報を記憶する記憶部である。また、ここで記憶される情報は、管理者等によって格納されてもよく、格納制御部22cによって格納されてもよい。図6は、ゲストID管理テーブルに記憶される情報の例を示す図である。図6に示すように、ゲストID管理テーブル22bは、「ゲストID、デバイスID」を対応付けて記憶する。ここで記憶される「ゲストID」は、仮想領域20aで稼動する各ゲストOSを識別する識別子であり、「デバイスID」は、ゲストOSが使用するデバイスを識別する識別子であり、例えばHDDやNICなどを識別する識別子である。
図6の場合、ゲストID=0が割り当てられているゲストOS(A)は、デバイスIDがdevAのデバイスを使用する。同様に、ゲストID=1が割り当てられているゲストOS(B)は、デバイスIDがdevBのデバイスを使用する。また、ゲストID=2が割り当てられているゲストOS(C)は、デバイスIDがdevCのデバイスとデバイスIDがdevDのデバイスとを使用する。
なお、デバイスIDとしては、様々な情報を用いることもできる。例えば、デバイスがNICデバイスである場合には、「AA:AA:AA:AA:AA:AA」などのようにNICデバイスのMACアドレスをゲストID管理テーブル22bに格納してもよい。また、デバイスがHDDデバイスなどである場合には、「1o9097hi−fujitsu・・・」などのようにHDDデバイスのUUID(Universally Unique Identifier)やデバイス名をゲストID管理テーブル22bに格納してもよい。
格納制御部22cは、仮想領域20aでゲストOSが稼動した場合に、稼動したゲストOSを識別するゲストIDと、当該ゲストOSによって使用されるデバイスのデバイスIDとを対応付けて、ゲストID管理テーブル22bに格納する処理部である。例えば、格納制御部22cは、新たな仮想マシンであるゲストOS(D)が稼動した場合に、ゲストOS(D)に割り当てられたゲストIDとゲストOS(D)が使用するNICデバイスのデバイスIDとをオペレータ等から受信する。そして、格納制御部22cは、受信したゲストIDとデバイスIDとを対応付けてゲストID管理テーブル22bに格納する。
また、格納制御部22cは、新たに稼動したゲストOS(D)からHDDデバイスへのアクセス要求が送信された場合に、このアクセス要求からゲストIDとデバイスIDとを抽出する。そして、格納制御部22cは、抽出したゲストIDとデバイスIDとを対応付けてゲストID管理テーブル22bに格納する。
割込み先特定部22dは、割込み要求の宛先となる仮想マシンを特定する処理部である。例えば、割込み先特定部22dは、通信インタフェース20bにパケットが到着した場合に、パケット受信を要求する外部割込みが発生したと検出する。すると、割込み先特定部22dは、当該パケットが到着したNICデバイスを特定する。そして、割込み先特定部22dは、NICデバイスのデバイスIDに対応付けられたゲストIDをゲストID管理テーブル22bから特定する。続いて、割込み先特定部22dは、特定したゲストIDを割込みターゲットレジスタ22aに格納し、パケット受信の外部割込み要求をハイパーバイザ26に通知する。
また、割込み先特定部22dは、ゲストOSから送信されたDMA(Direct Memory Access)転送の応答が入出力インタフェース20cに到達すると、DMA完了を通知する外部割込みが発生したと検出する。すると、割込み先特定部22dは、DMA完了通知から送信元のHDDデバイスを特定する。そして、割込み先特定部22dは、HDDデバイスに割り当てられているデバイスIDに対応付けられたゲストIDをゲストID管理テーブル22bから特定する。続いて、割込み先特定部22dは、特定したゲストIDを割込みターゲットレジスタ22aに格納し、DMA完了通知の外部割込み要求をハイパーバイザ26に通知する。
制御部25は、処理制御部25aとハイパーバイザ26とを有し、これらによって割込み処理を制御する処理部であり、例えばCPUなどの電子回路である。なお、制御部25は、内部メモリ等を有していてもよい。
処理制御部25aは、ゲストOSに関する処理以外の処理を実行する処理部である。例えば、処理制御部25aは、情報処理装置20に搭載されるOSの起動停止、ハイパーバイザ26の起動停止を実行する。
ハイパーバイザ26は、割込みハンドラ管理テーブル26aとCPU割当部26bと割込みハンドラ特定部26cと割込み実行部26dとを有し、これらによって、割込みコントローラ22から通知された割込み要求を処理する処理部である。また、ハイパーバイザ26は、各ゲストOSから送信されたパケットを宛先に送信したり、各ゲストOSから出力されたデバイスアクセス要求を該当デバイスに出力したりする。
割込みハンドラ管理テーブル26aは、複数のゲストOS各々に対応付けて、割込みハンドラが格納される格納先の情報を記憶する記憶部である。図7は、割込みハンドラ管理テーブルに記憶される情報の例を示す図である。図7に示すように、割込みハンドラ管理テーブル26aは、「ゲストID、割込みベクタ、割込みハンドラ、ゲストページテーブル」を対応付けて記憶する。
ここで記憶される「ゲストID」は、仮想領域20aで稼動する各ゲストOSを識別する識別子であり、「割込みベクタ」は、割込みの要因を識別する識別子である。「割込みハンドラ」は、ゲストOSが使用する物理アドレスの形式、言い換えると、ハイパーバイザ26によって提供される仮想アドレス空間のアドレス形式で格納され、割込みハンドラが格納される格納先の先頭アドレスを示す。「ゲストページテーブル」は、ゲストOSの仮想空間に変換するために使用するページテーブルであり、ゲストOSが保持している物理アドレス空間の先頭アドレス、つまり、ハイパーバイザ26が提供する仮想アドレス空間の先頭アドレスを示す。
図7の場合、ゲストID=0が割り当てられているゲストOS(A)に対して、割込みベクタが0である外部割込みが発生した場合に、PT0を用いて、ゲストOS(A)の物理アドレス「Handler_0」を仮想アドレスに変換することを示す。この結果、ハイパーバイザ26の割込み実行部26dは、ゲストOSが管理するアドレス空間内で割込みハンドラを実行できる。同様に、ゲストID=1が割り当てられているゲストOS(B)に対して、割込みベクタが1である外部割込みが発生した場合に、PT1を用いて、ゲストOS(B)の物理アドレス「Handler_B」を仮想アドレスに変換することを示す。
また、割込みハンドラ管理テーブル26aは、さらに、ゲストOSが保持するTLB(Translation Look-aside Buffer)の先頭アドレスを対応付けて記憶することもできる。こうすることで、ハイパーバイザ26は、ゲストOSの仮想アドレス空間内から割込みハンドラの格納先をより高速に特定することができる。
CPU割当部26bは、予め定められたスケジューラにしたがって、各ゲストOSにCPUを割り与える処理部である。例えば、CPU割当部26bは、オペレータやハイパーバイザ等によって定められたスケジュールにしたがって、ゲストOS(A)からゲストOS(B)にCPUの実行権を移す。この結果、ゲストOS(A)は、実行権がない状態の実行待機中に遷移し、ゲストOS(B)は、実行権を有する実行中に遷移する。
割込みハンドラ特定部26cは、割込みコントローラ22が特定したゲストOSに対応付けられる割込みハンドラの格納先を割込みハンドラ管理テーブル26aから特定する処理部である。例えば、割込みハンドラ特定部26cは、パケット受信を要求する外部割込み要求を割込みコントローラ22から受信する。続いて、割込みハンドラ特定部26cは、割込みコントローラ22の割込みターゲットレジスタ22aに格納されるゲストIDを取得する。つまり、割込みハンドラ特定部26cは、パケット受信を要求する外部割込み要求の宛先を取得する。このとき、割込みハンドラ特定部26cは、取得したゲストIDに対応するゲストOSを特定する。なお、ゲストIDとゲストOSの対応付けは、制御部25の内部メモリや図示しないメモリ等の記憶装置に格納される。
そして、割込みハンドラ特定部26cは、CPU割当部26bのCPU割当状況を取得し、パケット受信を要求する外部割込み要求の宛先となるゲストOSにCPUが割り当てられているか否かを判定する。CPUが割り当てられている場合には、割込みハンドラ特定部26cは、当該外部割込み要求を仮想割込みに変換し、割込み要求の宛先のゲストOSに、変換した仮想割込みを出力する。
一方、CPUが割り当てられていない場合には、割込みハンドラ特定部26cは、当該外部割込みに対応する割込みベクタを特定する。例えば、割込みハンドラ特定部26cは、割込み要求から割込みベクタを特定してもよく、割込み要求の種別と割込みベクタとを対応付けたテーブルを保持しておき、そのテーブルに基づいて特定してもよい。そして、割込みハンドラ特定部26cは、割込みコントローラ22から取得したゲストIDと特定した割込みベクタとの組み合わせに対応する、割込みハンドラとゲストページテーブルとを割込みハンドラ管理テーブル26aから読み出す。その後、割込みハンドラ特定部26cは、読み出した割込みハンドラとゲストページテーブルとを割込み実行部26dに出力する。
一例を挙げると、割込みハンドラ特定部26cは、割込みベクタが0である外部割込みを割込みコントローラ22から通知され、割込みターゲットレジスタ22aからゲストID=0を取得したとする。そして、割込みハンドラ特定部26cは、ゲストID=0のゲストOS(A)にCPUが割り当てられていると判定した場合、通知された外部割込みを仮想割込みに変換してゲストOS(A)に出力する。この結果、ゲストOS(A)が割込み処理を実行する。
一方、割込みハンドラ特定部26cは、ゲストID=0のゲストOS(A)にCPUが割り当てられていないと判定した場合、ゲストID=0と割込みベクタ=0との組み合わせに対応するHandler_0とPT0とを割込みハンドラ管理テーブル26aから取得する。そして、割込みハンドラ特定部26cは、割込みハンドラの物理アドレス「Handler_0」とページテーブル「PT0」とを割込み実行部26dに出力する。
割込み実行部26dは、割込みハンドラ特定部26cによって特定された格納先から割込みハンドラを読み出して実行する処理部である。例えば、割込み実行部26dは、割込みハンドラ特定部26cから物理アドレス「Handler_0」とページテーブル「PT0」とを取得する。そして、割込み実行部26dは、ページテーブル「PT0」を用いて、ゲストOS(A)が管理する物理アドレス空間の物理アドレス「Handler_0」を、ゲストOS(A)が管理する仮想アドレス空間の仮想アドレスに変換する。その後、割込み実行部26dは、変換した仮想アドレスから割込みハンドラを読み出して実行する。また、割込み実行部26dは、割込みハンドラの実行が完了すると、割込みコントローラ22または割込みを発生させた割込みコントローラに、完了通知である「EOI(End of Interrupt)」を送信する。
[処理の流れ]
次に、図8から図10を用いて、情報処理装置20が実行する処理の流れを説明する。ここでは、図8を用いて、割込み要求の要求元がNICデバイスである例を説明し、図9を用いて、割込み要求の要求元がHDDデバイスである例を説明し、図10を用いて、割込み要求の宛先にCPUが割り当てられている場合の例を説明する。
(NICデバイスを用いた例)
図8は、実施例2に係る情報処理装置の処理シーケンスをNICデバイスを例にして示した図である。図8に示すように、オペレータ等によってゲストOSが仮想領域20aに作成される、または、ゲストOSが使用するNICデバイスが追加されると(S101とS102)、ハイパーバイザ26は、S103を実行する。
すなわち、ハイパーバイザ26は、ゲストOSが使用するまたは追加されたNICデバイスのMACアドレスの登録要求を割込みコントローラ22に出力する(S103とS104)。このとき、ハイパーバイザ26は、該当ゲストOSのゲストIDもあわせて割込みコントローラ22に出力する。なお、ゲストIDは、オペレータが指定してもよく、ハイパーバイザが一意に割り与えてもよい。
そして、割込みコントローラ22の格納制御部22cは、該当するNICデバイスのMACアドレスと、ハイパーバイザ26から通知されたゲストIDとを対応付けて、ゲストID管理テーブル22bに格納する(S105とS106)。
その後、通信インタフェース20bが有するNICデバイスにパケットが到着すると、通信インタフェース20bは、パケット到着要求を割込みコントローラ22に出力する(S107とS108)。すなわち、通信インタフェース20bは、外部割込みを割込みコントローラ22に通知する。
そして、割込みコントローラ22の割込み先特定部22dは、パケットが到着したNICデバイスのMACアドレスに対応付けられているゲストIDをゲストID管理テーブル22bから特定する(S109からS111)。なお、割込み先特定部22dは、パケットのヘッダ等に格納される宛先MACアドレスを抽出してもよく、パケットが到着したNICデバイスから直接MACアドレスを抽出してもよい。例えば物理的なNICデバイスを複数のゲストOSが共有している場合などには、宛先MACアドレスからデバイスIDを抽出することができる。続いて、割込み先特定部22dは、特定したゲストIDを割込みターゲットレジスタ22aに格納する(S112とS113)。その後、割込み先特定部22dは、パケット到着要求言い換えると物理割込み要求をハイパーバイザ26に送出する(S114とS115)。
一方、この間に、割込み先特定部22dが特定したゲストIDを有するゲストOSが、CPUの割当から外れる(S116)。つまり、割込み要求の宛先ゲストOSがCPUの実行権を有している状態から有さない状態に遷移したとする。
その後、ハイパーバイザ26の割込みハンドラ特定部26cは、割込みコントローラ22から物理割込み要求を受信すると、割込みターゲットレジスタ22aを参照して、割込みの宛先となるゲストIDを特定する(S117とS118)。
続いて、割込みハンドラ特定部26cは、CPU割当部26bの割当状況を確認し、特定されたゲストIDを有するゲストOSに、CPUが割り当てられていないことを検出する(S119)。
すると、割込みハンドラ特定部26cは、割込みコントローラ22から送出されたパケット到着要求から割込みベクタを抽出し、S120を実行する。すなわち、割込みハンドラ特定部26cは、割込みベクタとゲストIDとの組み合わせに対応付けられている割込みハンドラの先頭アドレスとページテーブルとを特定する。
その後、割込み実行部26dは、割込みハンドラ特定部26cが特定した割込みハンドラの先頭アドレスとページテーブルとを用いて、該当する割込みハンドラをゲストOSから読み出して実行する(S121)。そして、割込み実行部26dは、割込みハンドラの実行が終了すると、つまり、パケット到着要求による外部割込みが完了すると、EOIを割込みコントローラに送信する(S122とS123)。
(HDDデバイスを用いた例)
図9は、実施例2に係る情報処理装置の処理シーケンスをHDDデバイスを例にして示した図である。図9に示すように、ゲストOSは、HDDデバイスへのアクセス要求をハイパーバイザ26に送信する(S201とS202)。ハイパーバイザ26は、アクセス要求を受信すると、アクセス要求先のHDDデバイスにデバイスIDを割り与え、割り与えたデバイスIDとともに当該デバイスIDへのアクセス要求を割込みコントローラに出力する(S203とS204)。
そして、割込みコントローラ22の格納制御部22cは、アクセス要求等から要求元のゲストOSのゲストIDを特定し、S205を実行する。すなわち、格納制御部22cは、特定したゲストIDと、アクセス要求とともに受信したデバイスIDとを対応付けて、ゲストID管理テーブル22bに格納する(S205とS206)。
その後、割込みコントローラ22は、DMA転送要求を該当HDDに送信する(S207とS208)。そして、HDDに対するDMA転送が完了すると、HDDデバイスは、割込みコントローラ22に対してDMA完了割込み要求を送信する(S209とS210)。すなわち、入出力インタフェース20cは、外部割込みを割込みコントローラ22に通知する。
その後に実行されるS211からS223までの処理は、図8で説明したS109からS121と同様なので、詳細な説明を省略する。そして、割込み実行部26dは、割込みハンドラの実行が終了すると、つまり、DMA完了割込み要求による外部割込みが完了すると、EOIを割込みコントローラ22に送信する(S224とS225)。
(実行権を有するゲストOSへの割込み処理)
図10は、割込み要求の宛先のゲストにCPUが割り当てられている場合の処理シーケンス図である。図10に示すS301からS310までの処理は、図9で説明したS201からS210までと同様の処理なので、詳細な説明は省略する。
そして、割込みコントローラ22の割込み先特定部22dは、DMA転送要求を送信したHDDデバイスのデバイスIDに対応するゲストIDをゲストID管理テーブル22bから特定する(S311からS313)。続いて、割込み先特定部22dは、特定したゲストIDを割込みターゲットレジスタ22aに格納する(S314とS315)。その後、割込み先特定部22dは、DMA転送要求言い換えると物理割込み要求をハイパーバイザ26に送出する(S316とS317)。
その後、ハイパーバイザ26の割込みハンドラ特定部26cは、割込みコントローラ22から物理割込み要求を受信すると、割込みターゲットレジスタ22aを参照して、割込みの宛先となるゲストIDを特定する(S318とS319)。
続いて、割込みハンドラ特定部26cは、CPU割当部26bの割当状況を確認し、特定されたゲストIDを有するゲストOSにCPUが割り当てられていることを検出する(S320)。
そして、割込みハンドラ特定部26cは、DMA転送要求を仮想割込み要求に変換し(S321)、変換した仮想割込み要求を、特定したゲストIDを有するゲストOSに送出する(S322とS323)。その後、仮想割込み要求を受信したゲストOSは、割込み処理を実行し、割込み処理が完了すると、EOIを割込みコントローラに送信する(S324とS325)。
このように、実施例2に係る情報処理装置20では、複数のゲストOSが動作している場合に、どのゲストOS宛の割込みかを判定して、ゲストOSの割込みハンドラをハイパーバイザ26が代行処理を行うことができる。また、情報処理装置20は、ゲストOSにCPUが割り当てるのを待たずに割込み処理を終了できるので、後続の割込みを待たせることなく随時処理することができる。また、情報処理装置20は、仮想割込みを経由することなく、ゲストOSの割込みハンドラを直接呼び出すため、ゲストOSへの割込み処理を効率よく実行することができる。また、割込みハンドラでEOIを発行することによって、次の割込みを待たせることなく処理することができる。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
(プロテクトモード)
開示する情報処理装置は、実施例2で説明したゲストID管理テーブルに記憶される情報として、例えば仮想マシンの動作モードが格納されるアドレス情報をさらに記憶させてもよい。図11は、プロテクトモードを記憶するゲストID管理テーブルの例を示す図である。図11に示すように、ゲストID管理テーブルは、実施例2等で説明した「ゲストID、デバイスID」に対してさらに「プロテクトモード」を記憶する。ここで記憶される「プロテクトモード」は、ゲストOSが動作する動作モードの格納先を示す情報であり、例えばゲストOSが管理する仮想アドレス空間の先頭アドレスなどである。このプロテクトモードで示されるアドレスから読み出した動作モードは、例えば保護仮想アドレスモード(Protected Virtual Address Mode)などとも呼ばれる。なお、このプロテクトモードは、割込みコントローラ22がオペレータ等から受け付けて格納する。一例を挙げると、図8のS102のタイミングでハイパーバイザ26がオペレータから受け付けた情報を、割込みコントローラ22がゲストID管理テーブルに格納する。
割込みコントローラ22の割込み先特定部22dは、割込みの宛先のゲストIDを特定した際に、このプロテクトモードもあわせて特定し、割込みターゲットレジスタ22aに登録したり、ハイパーバイザ26に通知したりする。そして、ハイパーバイザ26の割込み実行部26dは、割込みハンドラを実行する際に、このプロテクトモードを格納先から読み出して、各ゲストOSの動作モードで割込みハンドラを実行する。したがって、情報処理装置20は、各ゲストの動作モードで割込みハンドラを実行することができるので、他のゲストOSのメモリ空間などの破壊を防止することができる。
(割込み種別)
開示する情報処理装置は、割込み種別によって、ハイパーバイザ26が割込み処理を代行するか否かを判定することもできる。例えば、ハイパーバイザ26の割込みハンドラ管理テーブル26aに、ゲストOS各々に対応付けてハードウェア割込みに対して実行される割込みハンドラの格納先の情報を記憶させる。こうすることで、ハードウェア割込みをソフトウェア割込みより優先して実行することができる。
ハードウェア割込みとは、例えばイーサネット(登録商標)ドライバ処理、SCSI(Small Computer System Interface)ホストアダプタドライバ処理、シリアルドライバ処理などの割込み処理である。このハードウェア割込みは、割込みが発生した場合になるべく早く実行を完了させて、実行時間が短くなることを要求される割込み処理である。また、ソフトウェア割込みとは、TCP(Transmission Control Protocol)/IP(Internet Protocol)プロトコル処理、SCSIプロトコル処理、端末制御処理などの割込み処理である。このソフトウェア割込みは、ハードウェア割込みに比べて早急な実行完了を要求されない割込み処理である。
開示する情報処理装置のハイパーバイザは、ハードウェア割込みハンドラのコンテキストで実行し、ハードウェア割込みハンドラ内ではソフトウェア割込みの登録だけを実行し後からまとめて実行する。図12は、割込み種別によって実行方式を変更することを説明する図である。
図12に示すように、ハイパーバイザは、ハードウェア割込みを実行するハード割込みハンドラを保持し、このハード割込みハンドラは、ハードウェア割込みごとの割込みハンドラを早い割込みハンドラとして保持する。そして、ハイパーバイザは、ハードウェア割込みが発生した場合に、ハード割込みハンドラを起動して該当する早い割込みハンドラを呼び出し、ゲストOSを代行して割込み処理を実行する。その後、早い割込みハンドラは、実行が完了すると、割込みコントローラにEOIを発行する。
また、ハイパーバイザは、ソフトウェア割込みが発生した場合に、ハード割込みハンドラを起動して仮想割込みに変換して、ゲストOSのカーネルに通知する。ゲストOSは、仮想割込みを受信すると、遅い割込みハンドラを実行する。なお、遅い割込みハンドラとは、例えばソフトウェア割込みを実行する割込みハンドラである。その後、ゲストOSの遅い割込みハンドラは、スケジューラ等によってゲストOSがプロセッサの実行権を獲得すると、ソフト割込みハンドラを実行して割込み処理を実行する。そして、ソフト割込みハンドラは、処理が完了すると、割込みコントローラにEOIを発行する。
なお、上記例では、ハードウェア割込みとソフトウェア割込みとが別々の割込みとして発生した例を説明したが、1つの外部割込みについて、先にハードウェア割込みを実行してEOIを発行し、後からソフトウェア割込みとしてまとめて実行することもできる。例えば、割込みコントローラは、NICデバイスにパケットが到着すると、割込み要求を生成してハイパーバイザのハード割込みハンドラを起動する。ハイパーバイザのハード割込みハンドラは、当該外部割込みが遅い割込みに該当するので、外部割込みを仮想割込みに変換して、ゲストOSのカーネルが保持する遅い割込みハンドラに通知する。一方で、ハイパーバイザのハード割込みハンドラは、登録されたゲストの早い割込みハンドラを呼び出して、早い割込みハンドラの処理が終了するとEOIを発行する。その後、ゲストOSの遅い割込みハンドラは、スケジューラ等によってゲストOSがプロセッサの実行権を獲得すると、ソフト割込みハンドラを実行して割込み処理を実行する。
(実行手法)
実施例2では、ゲストOSにプロセッサの実行権が与えられていない場合には、割込みハンドラを読み出して実行し、ゲストOSにプロセッサの実行権が与えられている場合には、外部割込みを仮想割込み要求に変換してゲストOSに出力する例を説明した。しかし、開示する情報処理装置の割込み実行手法はこれに限定されるものではない。例えば、情報処理装置のハイパーバイザは、割込み対象のゲストOSにプロセッサの実行権が与えられている場合でも、当該ゲストOSを代行して割込みハンドラを実行することもできる。
(システム)
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
(プログラム)
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。
図13は、割込み制御プログラムを実行するコンピュータのハードウェア構成の例を示す図である。図13に示すように、コンピュータ100は、CPU102、入力装置103、出力装置104、通信インタフェース105、媒体読取装置106、HDD(Hard Disk Drive)107、RAM(Random Access Memory)108を有する。また、図13に示した各部は、バス101で相互に接続される。
入力装置103は、マウスやキーボードであり、出力装置104は、ディスプレイなどであり、通信インタフェース105は、NICなどのインタフェースである。HDD107は、割込み制御プログラム107aととともに、図5に示した各テーブルの情報を記憶する。記録媒体の例としてHDD107を例に挙げたが、ROM(Read Only Memory)、RAM(Random Access Memory)、CD−ROM等の他のコンピュータ読み取り可能な記録媒体に各種プログラムを格納しておき、コンピュータに読み取らせることとしてもよい。なお、記憶媒体を遠隔地に配置し、コンピュータが、その記憶媒体にアクセスすることでプログラムを取得して利用してもよい。また、その際、取得したプログラムをそのコンピュータ自身の記録媒体に格納して用いてもよい。
CPU102は、割込み制御プログラム107aを読み出してRAM108に展開することで、図5等で説明した各機能を実行する割込み制御プロセス108aを動作させる。すなわち、割込み制御プロセス108aは、図5に記載した格納制御部22c、割込み先特定部22d、割込みハンドラ特定部26c、割込み実行部26dと同様の機能を実行する。このようにコンピュータ100は、プログラムを読み出して実行することで割込み制御方法を実行する情報処理装置として動作する。
例えば、コンピュータ100は、媒体読取装置106によって記録媒体から割込み制御プログラム107aを読み出し、読み出された割込み制御プログラム107aを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、コンピュータ100によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
10 情報処理装置
11 割込み制御部
12 仮想制御部
12a 記憶部
12b 特定部
12c 実行制御部
20 情報処理装置
20a 仮想領域
20b 通信インタフェース
20c 入出力インタフェース
22 割込みコントローラ
22a 割込みターゲットレジスタ
22b ゲストID管理テーブル
22c 格納制御部
22d 割込み先特定部
25 制御部
25a 処理制御部
26 ハイパーバイザ
26a 割込みハンドラ管理テーブル
26b CPU割当部
26c 割込みハンドラ特定部
26d 割込み実行部

Claims (7)

  1. 複数の仮想マシンを稼動させる仮想制御部と、
    割込み要求の宛先となる仮想マシンを特定する割込み制御部と、を有し、
    前記仮想制御部は、
    前記複数の仮想マシン各々に対応付けて割込みプログラムが格納される格納先の情報を記憶する記憶部から、前記割込み制御部が特定した仮想マシンに対応付けられる割込みプログラムの格納先を特定する特定部と、
    前記特定部によって特定された格納先から割込みプログラムを読み出して実行する実行制御部と
    を有することを特徴とする情報処理装置。
  2. 前記割込み制御部は、前記仮想制御部によって仮想マシンが稼動した場合に、稼動した仮想マシンを識別するマシン識別子と、当該仮想マシンによって使用される外部デバイスを識別するデバイス識別子と対応付けて識別子記憶部に格納し、
    前記割込み要求が発生した場合に、割込み要求を発生させたデバイス識別子に対応するマシン識別子を前記識別子記憶部から特定することを特徴とする請求項1に記載の情報処理装置。
  3. 前記識別子記憶部は、前記複数の仮想マシン各々にさらに対応付けて、前記仮想マシンの動作モードが格納されるアドレス情報を記憶し、
    前記特定部は、前記仮想マシンに対応付けられるアドレス情報をさらに特定し、
    前記実行制御部は、前記特定部によって特定されたアドレス情報から動作モードを読出し、読み出した動作モードで前記割込みプログラムを実行することを特徴とする請求項2に記載の情報処理装置。
  4. 前記実行制御部は、前記割込み制御部によって特定された仮想マシンにプロセッサの実行権が与えられていない場合には、前記割込みプログラムを読み出して実行し、前記割込み制御部によって特定された仮想マシンにプロセッサの実行権が与えられている場合には、前記割込み要求を仮想割込み要求に変換して前記割込み要求の宛先となる仮想マシンに出力することを特徴とする請求項1から3のいずれか一つに記載の情報処理装置。
  5. 前記記憶部は、前記複数の仮想マシン各々に対応付けて、ハードウェア割込みに対して実行される割込みプログラムの格納先の情報を記憶し、
    前記実行制御部は、前記特定部によって格納先が特定されたハードウェア割込みについては、特定された格納先から割込みプログラムを読み出して実行し、前記特定部によって格納先が特定されなかった割込み要求については、前記割込み要求を仮想割込みに変換して前記割込み要求の宛先となる仮想マシンに出力することを特徴とする請求項1から3のいずれか一つに記載の情報処理装置。
  6. 情報処理装置が、
    複数の仮想マシン各々に対応付けて割込みプログラムが格納される格納先の情報を記憶する記憶部から、割込み要求の宛先となる仮想マシンを特定する割込み制御部が特定した仮想マシンに対応付けられる割込みプログラムの格納先を特定し、
    前記特定した格納先から割込みプログラムを読み出して実行する
    処理を実行することを特徴とする割込み制御方法。
  7. 情報処理装置に、
    複数の仮想マシン各々に対応付けて割込みプログラムが格納される格納先の情報を記憶する記憶部から、割込み要求の宛先となる仮想マシンを特定する割込み制御部が特定した仮想マシンに対応付けられる割込みプログラムの格納先を特定し、
    前記特定した格納先から割込みプログラムを読み出して実行する
    処理を実行させることを特徴とする割込み制御プログラム。
JP2011177667A 2011-08-15 2011-08-15 情報処理装置、割込み制御方法および割込み制御プログラム Expired - Fee Related JP5737050B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2011177667A JP5737050B2 (ja) 2011-08-15 2011-08-15 情報処理装置、割込み制御方法および割込み制御プログラム
US13/477,113 US20130047157A1 (en) 2011-08-15 2012-05-22 Information processing apparatus and interrupt control method
EP12172181A EP2560096A1 (en) 2011-08-15 2012-06-15 Information processing apparatus and interrupt control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011177667A JP5737050B2 (ja) 2011-08-15 2011-08-15 情報処理装置、割込み制御方法および割込み制御プログラム

Publications (2)

Publication Number Publication Date
JP2013041409A true JP2013041409A (ja) 2013-02-28
JP5737050B2 JP5737050B2 (ja) 2015-06-17

Family

ID=46690362

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011177667A Expired - Fee Related JP5737050B2 (ja) 2011-08-15 2011-08-15 情報処理装置、割込み制御方法および割込み制御プログラム

Country Status (3)

Country Link
US (1) US20130047157A1 (ja)
EP (1) EP2560096A1 (ja)
JP (1) JP5737050B2 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9268593B2 (en) 2012-02-03 2016-02-23 Fujitsu Limited Computer-readable recording medium, virtual machine control method and information processing apparatus
JP2016518672A (ja) * 2013-05-23 2016-06-23 エイアールエム リミテッド 割り込み処理の方法及び装置
WO2019239778A1 (ja) * 2018-06-14 2019-12-19 日立オートモティブシステムズ株式会社 車両制御装置、割り込み情報管理方法及び割り込み情報管理プログラム
JP2020166879A (ja) * 2016-06-30 2020-10-08 アマゾン・テクノロジーズ・インコーポレーテッド 部分的にオフロードされた仮想化マネージャにおけるメモリ割当て技術
JP2022520160A (ja) * 2019-02-14 2022-03-29 インターナショナル・ビジネス・マシーンズ・コーポレーション フォールバックを伴う有向割り込みの仮想化方法、システム、プログラム
JP2022520526A (ja) * 2019-02-14 2022-03-31 インターナショナル・ビジネス・マシーンズ・コーポレーション 有向割り込みの仮想化のための割り込み信号伝達方法、システム、プログラム
US11429414B2 (en) 2016-06-30 2022-08-30 Amazon Technologies, Inc. Virtual machine management using partially offloaded virtualization managers
US11822493B2 (en) 2019-02-14 2023-11-21 International Business Machines Corporation Directed interrupt for multilevel virtualization

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9158569B2 (en) * 2013-02-11 2015-10-13 Nvidia Corporation Virtual interrupt delivery from a graphics processing unit (GPU) of a computing system without hardware support therefor
US10331589B2 (en) * 2013-02-13 2019-06-25 Red Hat Israel, Ltd. Storing interrupt location for fast interrupt register access in hypervisors
US9329880B2 (en) 2013-02-13 2016-05-03 Red Hat Israel, Ltd. Counter for fast interrupt register access in hypervisors
US10740148B2 (en) * 2013-07-12 2020-08-11 Hewlett Packard Enterprise Development Lp Accelerated data operations in virtual environments
US9652270B2 (en) * 2014-03-21 2017-05-16 Intel Corporation Apparatus and method for virtualized computing
US9921891B1 (en) * 2015-03-31 2018-03-20 Integrated Device Technology, Inc. Low latency interconnect integrated event handling
US9898321B2 (en) * 2015-07-23 2018-02-20 At&T Intellectual Property I, L.P. Data-driven feedback control system for real-time application support in virtualized networks
CN107783913B (zh) 2016-08-31 2021-12-03 华为技术有限公司 一种应用于计算机的资源访问方法和计算机
US10445009B2 (en) * 2017-06-30 2019-10-15 Intel Corporation Systems and methods of controlling memory footprint
JP2019114097A (ja) * 2017-12-25 2019-07-11 ルネサスエレクトロニクス株式会社 半導体装置
US11042494B1 (en) * 2018-06-21 2021-06-22 Amazon Technologies, Inc. Direct injection of a virtual interrupt
JP7151631B2 (ja) * 2019-06-11 2022-10-12 株式会社デンソー 車両用制御装置、車両用表示システム、及び車両用表示制御方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001229038A (ja) * 2000-02-17 2001-08-24 Hitachi Ltd マルチオペレーテング計算機システム
JP2006155272A (ja) * 2004-11-30 2006-06-15 Hitachi Ltd 仮想計算機の制御方法及びプログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2682770B2 (ja) * 1992-05-15 1997-11-26 富士通株式会社 仮想計算機システムのcpu制御方式
US6496847B1 (en) * 1998-05-15 2002-12-17 Vmware, Inc. System and method for virtualizing computer systems
US7620955B1 (en) * 2001-06-08 2009-11-17 Vmware, Inc. High-performance virtual machine networking
US7177967B2 (en) * 2003-09-30 2007-02-13 Intel Corporation Chipset support for managing hardware interrupts in a virtual machine system
US7941624B2 (en) * 2006-09-28 2011-05-10 Intel Corporation Parallel memory migration
US8239610B2 (en) * 2009-10-29 2012-08-07 Red Hat, Inc. Asynchronous page faults for virtual machines

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001229038A (ja) * 2000-02-17 2001-08-24 Hitachi Ltd マルチオペレーテング計算機システム
JP2006155272A (ja) * 2004-11-30 2006-06-15 Hitachi Ltd 仮想計算機の制御方法及びプログラム

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9268593B2 (en) 2012-02-03 2016-02-23 Fujitsu Limited Computer-readable recording medium, virtual machine control method and information processing apparatus
JP2016518672A (ja) * 2013-05-23 2016-06-23 エイアールエム リミテッド 割り込み処理の方法及び装置
JP2020166879A (ja) * 2016-06-30 2020-10-08 アマゾン・テクノロジーズ・インコーポレーテッド 部分的にオフロードされた仮想化マネージャにおけるメモリ割当て技術
JP7007425B2 (ja) 2016-06-30 2022-01-24 アマゾン・テクノロジーズ・インコーポレーテッド 部分的にオフロードされた仮想化マネージャにおけるメモリ割当て技術
US11429414B2 (en) 2016-06-30 2022-08-30 Amazon Technologies, Inc. Virtual machine management using partially offloaded virtualization managers
WO2019239778A1 (ja) * 2018-06-14 2019-12-19 日立オートモティブシステムズ株式会社 車両制御装置、割り込み情報管理方法及び割り込み情報管理プログラム
JP2022520160A (ja) * 2019-02-14 2022-03-29 インターナショナル・ビジネス・マシーンズ・コーポレーション フォールバックを伴う有向割り込みの仮想化方法、システム、プログラム
JP2022520526A (ja) * 2019-02-14 2022-03-31 インターナショナル・ビジネス・マシーンズ・コーポレーション 有向割り込みの仮想化のための割り込み信号伝達方法、システム、プログラム
JP7379502B2 (ja) 2019-02-14 2023-11-14 インターナショナル・ビジネス・マシーンズ・コーポレーション フォールバックを伴う有向割り込みの仮想化方法、システム、プログラム
US11822493B2 (en) 2019-02-14 2023-11-21 International Business Machines Corporation Directed interrupt for multilevel virtualization
US11829790B2 (en) 2019-02-14 2023-11-28 International Business Machines Corporation Directed interrupt virtualization with fallback
JP7398465B2 (ja) 2019-02-14 2023-12-14 インターナショナル・ビジネス・マシーンズ・コーポレーション 有向割り込みの仮想化のための割り込み信号伝達方法、システム、プログラム

Also Published As

Publication number Publication date
JP5737050B2 (ja) 2015-06-17
US20130047157A1 (en) 2013-02-21
EP2560096A1 (en) 2013-02-20

Similar Documents

Publication Publication Date Title
JP5737050B2 (ja) 情報処理装置、割込み制御方法および割込み制御プログラム
JP6328134B2 (ja) クラスタ化されたコンピュータ・システムで通信チャネルのフェイルオーバを実行する方法、装置、およびプログラム
US9354952B2 (en) Application-driven shared device queue polling
US20130174144A1 (en) Hardware based virtualization system
JP6029550B2 (ja) 計算機の制御方法及び計算機
US9535732B2 (en) Zero copy transmission in virtualization environment
US9697029B2 (en) Guest idle based VM request completion processing
US9009702B2 (en) Application-driven shared device queue polling in a virtualized computing environment
US10310974B2 (en) Systems and methods for input/output computing resource control
JP2007183951A (ja) 仮想プロセッサへの直接的なインタラプトの送信
JP2007095065A (ja) ネットワーク上におけるcellプロセッサ制御技術
US8996774B2 (en) Performing emulated message signaled interrupt handling
US9268593B2 (en) Computer-readable recording medium, virtual machine control method and information processing apparatus
JPWO2015145983A1 (ja) コンピュータシステム、データ処理装置、バスデータ転送方法、および、コンピュータ可読記録媒体
WO2022001808A1 (zh) 一种***以及中断处理方法
WO2023071508A1 (zh) 线程间中断信号发送
TW201030623A (en) Providing multiple virtual device controllers by redirecting an interrupt from a physical device controller
Mvondo et al. Closer: A new design principle for the privileged virtual machine os
US11614973B2 (en) Assigning devices to virtual machines in view of power state information
JP7047906B2 (ja) 入出力処理割り当て制御装置、入出力処理割り当て制御システム、入出力処理割り当て制御方法、及び、入出力処理割り当て制御プログラム
Pfefferle vVerbs: a paravirtual subsystem for RDMA-capable network interfaces

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140404

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150202

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150406

R150 Certificate of patent or registration of utility model

Ref document number: 5737050

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees