(57)【要約】【解決手段】  物理デバイスコントローラから割り込みをリダイレクトすることによって複数の仮想デバイスコントローラを提供するための装置、方法、およびシステムの実施形態を開示する。一実施形態によると、当該装置は、プロセッサと、物理デバイスコントローラと、仮想化ロジックとを備える。仮想化ロジックは、物理デバイスコントローラから第１の割り込みを受信して、この受信に応じて、複数の仮想デバイスコントローラのうち１つからプロセッサに第２の割り込みを送信する。【選択図】  図１
2010157232.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、
物理デバイスコントローラと、
前記物理デバイスコントローラから第１の割り込みを受信して、前記受信に応じて、複数の仮想デバイスコントローラのうち１つから前記プロセッサに第２の割り込みを送信する仮想化ロジックと
を備える装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、情報処理分野に関する。特に、情報処理システムにおける仮想化に関する。
【背景技術】
【０００２】
情報処理システムでは、一般的に、仮想化の概念によって、１つの情報処理システムにおいて１以上のオペレーティングシステム（それぞれを「ＯＳ」と呼ぶ）の複数のインスタンスを実行することができる。尚、各ＯＳは、当該情報処理システムおよびそのリソースに対して完全且つ直接的な制御を持つように設計されている。仮想化は通常、仮想リソースを備える「仮想マシン（ＶＭ）」を各ＯＳに対して提示するべく、ソフトウェア（例えば、仮想マシンモニタ「ＶＭＭ」）を用いることによって実装される。仮想リソースは、１以上の仮想プロセッサを含み、ＯＳによって完全且つ直接的に制御され得る。一方、ＶＭＭは、ＶＭ間での物理リソースの共有および／または割り当て等の仮想化ポリシーを実装するためのシステム環境（「仮想化環境」）を維持する。ＶＭで実行される各ＯＳおよびその他の任意のソフトウェアは、「ゲスト」または「ゲストソフトウェア」と呼ばれ、仮想化環境の外部で実行されているＶＭＭ等のソフトウェアは、「ホスト」または「ホストソフトウェア」と呼ばれる。
【０００３】
情報処理システムの物理プロセッサは、例えば、仮想化環境を開始してＶＭの仮想プロセッサ（つまり、ＶＭＭによって制約が課されている物理プロセッサ）でゲストを実行するための命令をサポートすることによって、仮想化をサポートするとしてよい。仮想化環境では、所定のイベント、処理、および状況、例えば、外部からの割り込み、または、特権レジスタまたは特権リソースへのアクセス試行をインターセプトし得る。つまり、特定のイベント、処理、および状況によって、プロセッサは仮想化環境を出て、ＶＭＭは、例えば、仮想化ポリシーを実装するべく動作するとしてよい。例えば、外部割込みは、ＶＭＭによってインターセプトされて、適切な仮想プロセッサにルーティングされるとしてよい。
【０００４】
入出力デバイスコントローラ等の、情報処理システムの物理リソースは、所与のＶＭに対して専用のリソースとして割り当てられるとしてよい。これに代えて、ＶＭＭが各トランザクションを実行、リダイレクト、または制限するべく当該リソースに関連するトランザクションをすべてインターセプトすることによって、物理リソースを複数のＶＭで共有するとしてよい。第３の方法は、複数の仮想リソースとして利用され得るように物理リソースを設計するというものである。
【図面の簡単な説明】
【０００５】
添付図面に本発明を図示するが、例示を目的としたものであり、添付図面の内容は本発明を限定するものではない。
【０００６】
【図１】本発明の実施形態に係る、割り込みをリダイレクトする装置を示す図である。
【０００７】
【図２】本発明の実施形態に係る、割り込みをリダイレクトする方法を示す図である。
【０００８】
【図３】本発明の実施形態に係る、割り込みをリダイレクトするための情報を格納するエントリを示す図である。
【発明を実施するための形態】
【０００９】
本発明は、後述するように、割り込みをリダイレクトする装置または方法によって実施され得る。以下の説明では、本発明をより深く理解していただくべく、構成要素およびシステム構成等、具体的且つ詳細な内容を数多く記載する場合がある。しかし、そのような具体的且つ詳細な内容を利用せずとも本発明を実施し得ることは当業者には明らかである。また、本発明の説明を不必要にあいまいにすることを避けるべく、一部の公知の構造、回路等については詳細な説明を省略している。
【００１０】
１つの物理デバイスコントローラを複数の仮想マシンで共有する際に、当該デバイスコントローラに関するトランザクションを全てＶＭＭがインターセプトする必要がないこと、または、仮想化をサポートするように当該デバイスコントローラを設計し直す必要がないことが望ましい。このため、本発明の実施形態では、１つの物理デバイスコントローラから割り込みをリダイレクトして、当該物理デバイスコントローラを複数の仮想デバイスコントローラのように見せるとしてよい。
【００１１】
本発明の実施形態の構成要素は、ハードウェア、ソフトウェア、ファームウェア、または、ハードウェア、ソフトウェア、あるいはファームウェアの任意の組み合わせによって実装されるとしてよい。ハードウェアという用語は一般的に、電子部品、電磁部品、光学部品、電気光学部品、機械的部品、電気機械部品等の物理的構造を持つ構成要素を意味する。ソフトウェアという用語は一般的に、論理構造、方法、プロシージャ、プログラム、ルーチン、プロセス、アルゴリズム、式、数式等を意味する。ファームウェアという用語は一般的に、ハードウェア構造（例えば、フラッシュメモリまたはリードオンリーメモリ）で実装または実施される論理構造、方法、プロシージャ、プログラム、ルーチン、プロセス、アルゴリズム、式、数式等を意味する。ファームウェアの例としては、マイクロコード、書き込み可能コントロールストア、およびマイクロプログラム構造がある。
【００１２】
図１は、本発明の実施形態に従って割り込みがリダイレクトされる情報処理システム１００を示す図である。情報処理システム１００は、ベアプラットフォームハードウェア１１０を備える。ベアプラットフォームハードウェア１１０は、任意のＯＳ、ＶＭＭまたはその他のソフトウェアを実行することができる装置であればどのような装置であってもよい。例えば、ベアプラットフォームハードウェア１１０は、パーソナルコンピュータ、メインフレームコンピュータ、ポータブルコンピュータ、ハンドヘルドデバイス、セットトップボックス、サーバ、またはその他の任意のコンピュータシステムのハードウェアであってよい。本実施形態によると、ベアプラットフォームハードウェア１１０は、プロセッサ１２０と、チップセット１３０と、システムメモリ１４０と、デバイスコントローラ１５０とを有する。
【００１３】
プロセッサ１２０は、１以上の実行コアを持つコンポーネントであればどのようなコンポーネントであってもよい。各実行コアは、多岐にわたるさまざまな種類のプロセッサのうちいずれに基づくとしてもよい。例えば、Ｉｎｔｅｌ（登録商標）Ｃｏｒｐｏｒａｔｉｏｎ社のＩｎｔｅｌ（登録商標）Ｐｅｎｔｉｕｍ（登録商標）プロセッサファミリー、Ｉｔａｎｉｕｍ（登録商標）プロセッサファミリー、あるいはその他のプロセッサファミリーのプロセッサ、または、他の会社のプロセッサ、または、デジタルシグナルプロセッサまたはマイクロコントローラ等の汎用マイクロプロセッサであってよい。図１が図示するプロセッサ１２０は１つのみであるが、ベアプロセッシングハードウェア１１０が有するプロセッサの数は任意としてよい。例えば、任意の数のマルチコアプロセッサを有し、各マルチコアプロセッサに任意の数の実行コアを含めたり、任意の数のマルチスレッドプロセッサを有し、各マルチスレッドプロセッサは任意の数のスレッドを含む。
【００１４】
チップセット１３０は、メモリ動作、入出力動作、設定、制御、内部インターフェースあるいは外部インターフェース、接続、または通信機能（例えば、「グルー」ロジックおよびバスブリッジ）、ならびに／または、プロセッサ１２０および／あるいはシステム１００と同様の任意の機能をサポートする、複数の回路およびロジックの任意の集合体であってよい。チップセット１３０の構成要素は、単一のチップ上にまとめてあるとしてもよいし、一対のチップにまとめてあるとしてもよいし、複数のチップに分散して設けられているとしてもよいし、および／または、プロセッサ１２０を含む１以上のプロセッサに、部分的に、完全に、重複して、あるいは、分散方法に従って、集積化されるとしてもよい。本実施形態によると、チップセット１３０は、後述するように本発明の実施形態にしたがって割込みをリダイレクトする仮想化ロジック１３２を含む。ほかの実施形態によると、仮想化ロジック１３２は、システム１００の別の場所に設けられているとしてもよい。
【００１５】
システムメモリ１４０は、データおよび／または命令等の情報を格納する媒体であればどのような媒体を含むとしてよい。そのような媒体は、例えば、スタティックランダムアクセスメモリあるいはダイナミックランダムアクセスメモリ、半導体ベースのリードオンリーメモリあるいはフラッシュメモリ、磁気ディスクメモリあるいは光ディスクメモリ、または、プロセッサ１２０が読み出し可能な任意のその他の種類の媒体、または、これらの媒体の任意の組み合わせである。
【００１６】
デバイスコントローラ１５０は、任意の種類のＩ／Ｏデバイス、周辺機器、または、割込み要求を発行するその他のデバイスのコントローラ、例えば、ハードディスクコントローラ、オーディオコントローラ、ネットワークインターフェースコントローラ、周辺バスコントローラ等であってよい。デバイスコントローラ１５０は、独立したコンポーネントで実施されるとしてもよいし、または、その他の任意のデバイスコントローラと共に集積化コンポーネントに含まれるとしてもよい。一実施形態によると、デバイスコントローラ１５０は、多機能Ｉ／Ｏコントローラ、周辺コントローラ、またはその他のデバイスコントローラにおける機能を表すとしてもよい。デバイスコントローラ１５０は、設定情報を格納するための設定ストレージ１５２を含むとしてよい。
【００１７】
プロセッサ１２０、チップセット１３０、システムメモリ１４０、およびデバイスコントローラ１５０は、任意の公知の方法によって、互いに結合されているとしてもよいし、または、通信するとしてもよい。結合または通信は、１以上のパラレル方式、シーケンシャル方式、パイプライン型、非同期型、同期型、有線方式、無線方式、またはその他のバスあるいはポイント・ツー・ポイントの接続手段、または、通信手段を用いて、直接的または間接的に行う。例えば、本実施形態によると、チップセット１３０は、上述した接続手段または通信手段のうち任意のものを用いて、デバイスコントローラ１５０から、割り込み要求等の、信号、メッセージ、および／またはトランザクションを受信すると共に、デバイスコントローラ１５０および／またはシステム１００のその他の任意のエージェントまたはコンポーネントに、信号、メッセージ、および／またはトランザクションを送信するためのインターフェース１３１を含む。同様に、デバイスコントローラ１５０は、チップセット１３０および／またはシステム１００のその他の任意のエージェントあるいはコンポーネントとの間で、信号、メッセージ、および／またはトランザクションを送受信するためのインターフェース１５１を含む。また、システム１００には、任意の数のエージェント、コンポーネント、または接続手段を追加するとしてよい。
【００１８】
システム１００はさらに、ＶＭＭ１６０と、ＶＭ１６２および１６４とを備える。ＶＭＭ１６０は、ベアプラットフォームハードウェア１１０で実行されるべくインストールされる任意のソフトウェア、ファームウェア、あるいはハードウェアのホスト、またはベアプラットフォームハードウェア１１０にアクセス可能な任意のソフトウェア、ファームウェア、あるいはハードウェアのホストであってよく、ＶＭ、つまりベアプラットフォームハードウェア１１０の抽象化をゲストに提示するか、または、ＶＭを作成および管理して、システム１００内で仮想化ポリシーを実行する。他の実施形態によると、ホストは、ベアプラットフォームハードウェア１１０を制御可能な任意のＶＭＭ、ハイパーバイザ、ＯＳ、またはその他のソフトウェア、ファームウェア、あるいはハードウェアであってよい。ゲストは、任意のＯＳ、ＶＭＭ１６０の別のインスタンスを含む任意のＶＭＭ、任意のハイパーバイザ、または、任意のアプリケーションあるいは他のソフトウェアであってよい。
【００１９】
各ゲストは、プロセッサおよびＶＭにおいて提示されるプラットフォームのアーキテクチャに従って、ベアプラットフォームハードウェア１１０またはＶＭＭ１６０によって仮想化されたプラットフォームの、プロセッサおよびプラットフォームレジスタ等のリソース、メモリ、および入出力デバイスへとアクセスするものと思われる。図１は２つのＶＭ１６２および１６４を図示しており、それぞれにはゲストＯＳおよび任意の数のゲストアプリケーションがインストールされ得る。図１に図示しているＶＭは２つであるが、形成するＶＭの数は任意であってよく、本発明の範囲においては、各ＶＭで実行されるべくインストールされるゲストＯＳおよびゲストアプリケーションの数は任意であってよい。
【００２０】
チップセット１３０の説明に戻って、仮想化ロジック１３２は、物理デバイスコントローラ１５０等の物理デバイスコントローラからの割り込みをリダイレクトするための、ファームウェア等の任意の回路、ロジック、またはその他の構造を含むとしてよい。チップセット１３０はさらに、上述したインターフェース１３１、設定ストレージ１３４、およびデータストレージ１３６を含む。設定ストレージ１３４およびデータストレージ１３６は、情報を格納し得る任意の媒体を含むとしてよい。例えば、設定ストレージ１３４は、プログラム可能レジスタを含むとしてよく、データストレージ１３６はスタティックランダムアクセスメモリを含むとしてよい。仮想化ロジック１３２は、設定ストレージ１３４および／またはデータストレージ１３６に対して情報の読み書きを行って、どの物理デバイスコントローラの割り込みをトラップするのか、各共有物理デバイスコントローラが現在どのＶＭに割り当てられているのか、トラップされた各ＶＭへの割り込みをどこへリダイレクトするべきか等の状態を判断および維持するとしてよい。設定ストレージ１３４およびデータストレージ１３６は、プロセッサ１１０のアドレス空間にマッピングされて、仮想化ロジック１３２とＶＭ１６２および１６４との間で情報を交換するべく用いられるとしてよい。
【００２１】
チップセット１３０は、デバイスコントローラ１５０から、インターフェース１３１を介して、割り込み要求を受信するとしてよい。一実施形態によると、割り込み要求は、任意の公知の信号送信プロトコルに従った、入力端末を介したレベルトリガ割り込み信号またはエッジトリガ割り込み信号（ピン割り込み）等の信号として受信されるとしてよい。別の実施形態によると、割り込み要求は、任意の公知のメッセージ通信プロトコル、トランザクション通信プロトコルまたはその他の通信プロトコルに従った、バスメッセージまたはポイント・ツー・ポイントトランザクションのようなメッセージとして受信されるとしてもよい。例えば、ＰＣＩ  Ｅｘｐｒｅｓｓ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ）バスによってデバイスコントローラ１５０がチップセット１３０に結合されている実施形態において、バスプロトコルには、割り込みメッセージが３２ビットのアドレスフィールドおよび３２ビットのデータフィールドを有するＭＳＩ（Ｍｅｓｓａｇｅ  Ｓｉｇｎａｌｅｄ  Ｉｎｔｅｒｒｕｐｔ）が含まれるとしてよい。信号およびメッセージの両方による割り込み要求が利用される実施形態等、他の実施形態も実施可能である。
【００２２】
システム１００は、プロセッサ１２０および／またはシステム１００内のその他の任意のエージェントに対する割り込み要求に優先順位を付与して配信するための１以上の割り込みコントローラを備えるとしてよい。一実施形態によると、プロセッサ１２０はローカル割り込みコントローラ１２２を含み、チップセット１３０はＩ／Ｏ割り込みコントローラ１３８を含む。
【００２３】
割り込み要求は、デバイスコントローラ１５０に対応付けられている割り込みハンドラを実行するべく、プロセッサ１２０に与えられるとしてよい。所望の割り込みハンドラは、例えばＭＳＩのアドレスフィールドおよび／またはデータフィールドの内容等、割り込み要求によって搬送される情報が示すとしてもよいし、または、ピン割り込み用の入力端末、入力ピン、または入力信号経路の特定情報が示すとしてもよい。しかし、デバイスコントローラ１５０の仮想化をサポートするべく、割り込み要求は仮想化ロジック１３２によってトラップされるとしてよい。つまり、プロセッサ１２０に与えられるべき割り込みメッセージまたは割り込み信号は、仮想化ロジック１３２がインターセプトして修正する。
【００２４】
図２は、本発明の実施形態に応じて割り込みがリダイレクトされる方法２００を説明するための図である。図２に示す実施形態に係る方法を説明する際には、図１に示した実施形態に係るシステムが備える構成要素に言及するが、本発明の実施形態に係る方法は、これに限定されるものではない。
【００２５】
方法２００のボックス２１０において、情報処理システム、例えばシステム１００は、割り込み要求の発行元となる各物理デバイスコントローラ、例えばデバイスコントローラ１５０と、割り込みハンドラを対応付けるように、設定される。設定情報は、例えばＭＳＩレジスタである設定ストレージ１５２に格納されるとしてよい。
【００２６】
ＭＳＩを含む実施形態では、物理デバイスコントローラ１５０は、ＭＳＩのアドレスフィールド内の第１のアドレス値およびデータフィールド内の第１のデータ値を利用するように、例えば仮想化ロジック１３２によって、設定されるとしてよい。第１のアドレス値は、ＶＭＭ１６０に見えているシステムメモリに基づき、ローカル割り込みコントローラ１２２に対応付けられているアドレスであってよい。第１のデータ値は、ＶＭＭ１６０に見えているシステムメモリに基づき、デバイスコントローラ１５０用の割り込みハンドラに対応付けられているアドレスであってよい。
【００２７】
ピン割り込みを含む実施形態では、物理デバイスコントローラ１５０は、出力した場合にＩ／Ｏ割り込みコントローラ１３８によって受信されるように割り込み要求がハードワイヤードまたはソフトワイヤードされることによって、割り込み要求が仮想化ロジック１３２によってインターセプトされるように設定されるとしてよい。例えば、出力された割り込み要求は、Ｉ／Ｏ割り込みコントローラ１３４または仮想化ロジック１３２に多重化されるとしてよい。Ｉ／Ｏ割り込みコントローラ１３８は、デバイスコントローラ１５０用の割り込みハンドラと、デバイスコントローラ１５０から出力された割り込み要求が接続されている入力とを対応付けるようにプログラミングされるとしてよい。
【００２８】
ボックス２１２において、仮想化ロジック１３２は、デバイスコントローラ１５０からの割り込み要求をトラップするように設定される。
【００２９】
ＭＳＩを含む実施形態では、仮想化ロジック１３２は、設定ストレージ１３４内に、チップセット１３０とデバイスコントローラ１５０との間のバス上でトラップすべきＭＳＩトランザクションのアドレス値およびデータ値によってプログラミングされる複数のロケーションを含むとしてよい。例えば、図３は、設定ストレージ１３４内のエントリ３００を示している。エントリ３００は、物理ＭＳＩアドレスフィールド３１０、物理ＭＳＩデータフィールド３２０、仮想ＭＳＩアドレスフィールド３３０、および仮想ＭＳＩデータフィールド３４０を含む。本実施形態によると、第１のアドレス値および第１のデータ値はそれぞれ、物理ＭＳＩアドレスフィールド３１０および物理ＭＳＩデータフィールド３２０にプログラミングされるとしてよい。エントリ３００は、さらに後述するが、仮想デバイスコントローラと物理デバイスコントローラ１５０とを対応付けるべく利用されるとしてよい。エントリ３００の形式のエントリを追加して、第１のアドレス値および第１のデータ値によって同様にプログラミングして、その他の仮想デバイスコントローラと物理デバイスコントローラ１５０とを対応付けるとしてよい。
【００３０】
ピン割り込みを含む実施形態では、割り込み要求信号は、ローカル割り込みコントローラ１３８によって受信される設定から、仮想化ロジック１３２によって受信される設定に切り替えられるとしてよい。
【００３１】
ボックス２１４において、仮想化ロジック１３２は、物理デバイスコントローラ１５０を表す複数の仮想デバイスコントローラのうち１以上と、１以上のＶＭとを対応付けるように設定されるとしてよい。
【００３２】
ＭＳＩを利用する実施形態の場合、設定ストレージ１３４内の、トラップすべきＭＳＩトランザクションのアドレス値およびデータ値によってプログラミングされるロケーションは、ＶＭに対応付けられているアドレス値およびデータ値によってプログラミングされる追加対応ロケーションを含むとしてよい（例えば、仮想ＭＳＩアドレスフィールド３３０および仮想ＭＳＩデータフィールド３４０）。例えば、ＶＭ１６２は、システムメモリ１４０の全てに対してアクセスを持たない場合がある。このため、ＶＭ１６２から見たときと、ＶＭＭ１６０から見たときとでは、システムメモリ１４０が異なる場合がある。ＶＭ１５２からシステムメモリ１４０を見る場合、ローカル割り込みコントローラ１２２に対応付けられているアドレスは、ボックス２１２と関連付けて説明された第１のアドレス値ではなく第２のアドレスで、デバイスコントローラ１５０用の割り込みハンドラと対応付けられているアドレスは、第１のデータ値ではなく第２のデータ値である場合がある。このため、仮想ＭＳＩアドレスフィールド３３０は、第２のアドレス値によってプログラミングされ、仮想ＭＳＩデータフィールド３４０は、第２のデータ値によってプログラミングされるとしてよい。
【００３３】
ピン割り込みを利用する実施形態の場合、仮想化ロジック１３２は、物理デバイスコントローラ１５０に対応する仮想デバイスコントローラに代わって、Ｉ／Ｏ割り込みコントローラ１３８へと割り込み要求を送信するように設定されるとしてよい。設定ストレージ１３４またはデータストレージ１３６は、物理デバイスコントローラから入力される割り込み要求と、Ｉ／Ｏ割り込みコントローラ１３８へ出力される割り込み要求とのマッピングを格納するロケーションを含むとしてよい。
【００３４】
ボックス２２０において、物理デバイスコントローラ１５０は、例えば、ＭＳＩトランザクションを発行することによって、または、割り込み信号をアサートすることによって、第１の割り込み要求を出す。ボックス２２２において、仮想化ロジック１３２は、当該割り込み要求をトラップする。ボックス２２４において、仮想化ロジック１３２は、例えば、データストレージ１３６に格納されている情報に基づいて、および／または、物理デバイスコントローラ１５０をポーリングすることによって、第１の割り込み要求の宛先はどのＶＭであるのかを判断する。ボックス２２６において、仮想化ロジック１３２は、第１の割り込み要求を待ち行列、バッファ、または、その他のデータストレージ１３６内のロケーションに入れて、第１の割り込み要求を、仮想化ロジック１３２との間で情報を交換するＶＭが発見できるようにする。
【００３５】
ボックス２３０において、仮想化ロジック１３２は、プロセッサ１２０に、ボックス２２０の第１の割り込み要求に対応するが別の割り込み要求である第２の割り込み要求を送信する。一実施形態によると、第２の割り込み要求は、プロセッサ１２０の制御が、第１の割り込み要求の宛先であるＶＭに移行されるまで送信されないとしてよい。この第２の割り込み要求は、メッセージまたは信号の形式で送信されるとしてよい。メッセージの形式で送信される実施形態の場合、当該メッセージに含まれるアドレス、データ、および／または、その他の任意の情報は、物理デバイスコントローラではなく仮想デバイスコントローラに対応する情報であってよい。例えば、プロセッサ１２０とチップセット１３０との間のバスで、アドレスフィールドに仮想ＭＳＩアドレスフィールド３３０から得られる第２のアドレス値を持ち、データフィールドに仮想ＭＳＩデータフィールド３４０から得られる第２のデータ値を持つＭＳＩが送信されるとしてよい。第２の割り込み要求が信号である実施形態では、仮想化ロジック１３２からＩ／Ｏ割り込みコントローラ１３８へと信号が送信され、その後Ｉ／Ｏ割り込みコントローラ１３８からプロセッサ１２０へと信号が送信されるとしてよい。仮想化ロジック１３２から送信される信号は、ボックス２１４の説明で言及したマッピングに基づく信号で、物理デバイスコントローラ１５０ではなく仮想デバイスコントローラに対応する信号であってよい。いずれの実施形態であっても、仮想化はＶＭＭ１６０ではなく仮想化ロジック１３２によって実行されているので、ＶＭＭ１６０は、情報が物理デバイスコントローラではなく仮想デバイスコントローラに対応することを認識しないとしてよい。
【００３６】
ボックス２４０において、プロセッサ１２０は、第２の割り込み要求を受信して、割り込みハンドラへのベクトルを取得して、宛先のＶＭにおいて割り込みハンドラの実行を開始する。ボックス２４２において、ＶＭは、データストレージ１３６を介して、仮想化ロジック１３２との間で情報を交換するとしてよい。
【００３７】
方法２００は、本発明の範囲において、図示したボックスを省略して実行するとしてもよいし、別のボックスを追加して実行するとしてもよいし、または、ボックスの順序を並び替えて、ボックスを省略して、あるいは、別のボックスを追加して実行するとしてもよい。一部のボックス、例えば２２６および２３０は、同時に実行されるとしてもよい。
【００３８】
本発明の実施形態に従って設計されるコンポーネントまたはコンポーネントの一部は、着想からシミュレーションから製造まで多岐にわたる段階において設計され得るとしてよい。設計を表すデータは、さまざまな形式を取るとしてよい。第一に、シミュレーションで有用であるが、ハードウェア記述言語またはその他の機能記述言語でハードウェアを表すとしてよい。さらに、または、これに代えて、論理ゲートおよび／またはトランジスタゲートによる回路レベルモデルを、設計プロセスの段階において作成するとしてもよい。また、大半の設計は、一部の段階において、さまざまなデバイスの物理的配置を表すデータでモデル化される。従来の半導体製造技術が利用される場合には、デバイス配置モデルを表すデータは、集積回路を製造するために用いられるマスクのさまざまなマスク層におけるフィーチャーの有無を特定するデータであってよい。
【００３９】
設計内容をどのように表現するとしても、データは、任意の形式の機械読み出し可能媒体に格納されるとしてよい。このような機械読出し可能媒体は、上述した情報を送信するべく変調または生成された光波または電波、メモリ、または磁気格納媒体あるいは光学格納媒体、例えばディスクであってよい。このような媒体はいずれも、設計内容または本発明の実施形態で用いられるその他の情報を「搬送」または「提示」するとしてもよい。このような情報を提示または搬送する搬送電波が送信されると、当該電気信号の複製、バッファリング、または再送が行われる限りにおいて、新しい複製が作成される。このため、通信プロバイダまたはネットワークプロバイダの処理によって、本発明に係る技術を具現化する物品、例えば搬送波の複製を作成することになるとしてよい。
【００４０】
上記では、割り込みをリダイレクトする装置、方法、およびシステムを開示した。特定の実施形態を記載すると共に添付図面に図示したが、当業者であれば本開示を参照することによってさまざまなほかの変形例に想到するので、上記の実施形態は本発明を例示するためのものに過ぎず本発明を限定するものではないこと、および、本発明は図示および説明した具体的な構成および構造には限定されないことを理解されたい。本発明の関連技術分野のように、発展が速く、どのように発展していくかが簡単には予測できない技術分野では、技術の進歩を取り入れることによって容易となることであるが、本開示または本願特許請求の範囲の原則から離れることなく、開示した実施形態の構成および詳細な内容を容易に変形し得る。
【図１】
2010157232.tif 000003
【図２】
2010157232.tif 000004
【図３】
2010157232.tif 000005
【外国語明細書】
2010157232.tif 000006
2010157232.tif 000007
2010157232.tif 000008
2010157232.tif 000009
2010157232.tif 000010
2010157232.tif 000011
2010157232.tif 000012
2010157232.tif 000013
2010157232.tif 000014
2010157232.tif 000015
2010157232.tif 000016
2010157232.tif 000017
2010157232.tif 000018
2010157232.tif 000019
2010157232.tif 000020