JP5122597B2 - 仮想プロセッサへの直接的なインタラプトの送信 - Google Patents

仮想プロセッサへの直接的なインタラプトの送信 Download PDF

Info

Publication number
JP5122597B2
JP5122597B2 JP2010061343A JP2010061343A JP5122597B2 JP 5122597 B2 JP5122597 B2 JP 5122597B2 JP 2010061343 A JP2010061343 A JP 2010061343A JP 2010061343 A JP2010061343 A JP 2010061343A JP 5122597 B2 JP5122597 B2 JP 5122597B2
Authority
JP
Japan
Prior art keywords
interrupt
logic
virtual
processor
physical
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
JP2010061343A
Other languages
English (en)
Other versions
JP2010176693A5 (ja
JP2010176693A (ja
Inventor
ネイガー ギルヴァート
サンカラン マドゥッカルムクマナ ラジェシュ
エイ アーリグ リチャード
シュタインベルク ウド
シェーンブルク セバスティアン
ムスラサナルア スリダハル
エム ベネット スティーヴン
ヴィ アンダーソン アンドリュー
シー コタ−ロブレス エリック
Original Assignee
インテル コーポレイション
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 インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2010176693A publication Critical patent/JP2010176693A/ja
Publication of JP2010176693A5 publication Critical patent/JP2010176693A5/ja
Application granted granted Critical
Publication of JP5122597B2 publication Critical patent/JP5122597B2/ja
Active 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • 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

Description

本開示は、情報処理の技術分野に関し、より詳細には、仮想化環境におけるインタラプト(interrupt)の処理に関する。
一般に、情報処理システムにおける仮想化(virtualization)のコンセプトは、1以上のオペレーティングシステム(OS)の複数のインスタンスが、各OSがシステムとそれのリソースに対して完全かつ直接的な制御を有するよう設計されていても、1つの情報処理システム上で実行することを可能にする。仮想化は、典型的には、ソフトウェア(バーチャルマシーンモニタ、すなわち、VMMなど)を利用して、OSが完全かつ直接的に制御可能な1以上の仮想プロセッサを含む仮想リソースを有する「バーチャルマシーン(VM)」を各OSに提供することにより実現されるが、VMMは、仮想化環境(VM)における物理リソースの共有化及び/又は割当てなど、仮想化ポリシーを実現するためシステム環境を維持する。VM上で実行される各OS及び他の何れかのソフトウェアは、「ゲスト」又は「ゲストソフトウェア」と呼ばれ、「ホスト」又は「ホストソフトウェア」は、仮想化環境の外部で実行され、仮想化環境を認識した又は認識していないVMMなどのソフトウェアである。
情報処理システムにおける物理プロセッサは、例えば、VMの仮想プロセッサ(すなわち、VMMによって課される制約を受ける物理プロセッサ)上でゲストを実行するため、仮想化環境に入る命令をサポートすることによって、仮想化をサポートするかもしれない。仮想化環境では、優先されるレジスタ又はリソースにアクセスするための外部のインタラプト又は試みなど、特定のイベント、処理及び状況は、インターセプト(intercept)され、すなわち、VMMが例えば、仮想化ポリシーを実現するため動作可能となるように、プロセッサに仮想化環境から離脱させるかもしれない。物理プロセッサはまた、仮想化環境を維持するための他の命令をサポートするようにしてもよく、物理プロセッサの仮想化機能を表示又は制御するメモリ又はレジスタビットを有するかもしれない。
仮想化環境をサポートする物理プロセッサは、ゲストが仮想化環境内部の仮想プロセッサ上で実行されている間にインタラプトリクエストを受信するかもしれない。典型的には、このインタラプトリクエストはインターセプトとされ、制御は、当該インタラプトの処理方法を決定するため、VMMに転送される。例えば、インタラプトサービスルーチンは、VMMにより呼び出されてもよく、あるいは、VMMによりは、仮想インタラプトを生成し、ゲストがインタラプトサービスルーチンを呼び出すことを可能にするため、それをVMに投入するかもしれない。多くのケースでは、インタラプトサービスリクエストを呼び出すため入力されるVMは、VMMがインタラプトリクエストをインターセプトすることを可能にするよう離脱されたものと同一のVMであってもよい。例えば、インタラプトリクエストは、離脱したものと同一のVMMに割り当てられた入出力(I/O)デバイスによって生成されたものであってもよいし、又はインタラプトリクエストは、同じVMにおける2つの仮想プロセッサ間のプロセッサ間インタラプトであってもよい。
本発明の課題は、上記問題点に鑑み、仮想化環境における効果的なインタラプト処理を実現する装置、方法及びシステムを提供することである。
上記課題を解決するため、本発明は、ゲストが仮想プロセッサ上で実行されている間に、インタラプトリクエストを受け付けるインタフェースと、前記インタラプトリクエストの属性に基づき、前記インタラプトリクエストが前記仮想プロセッサに送信されるべきか判断する送信ロジックと、前記インタラプトリクエストが前記仮想プロセッサに送信されるべきでないと前記送信ロジックが判断した場合、前記ゲストからホストに当該装置の制御を移行するイグジットロジックとから構成されることを特徴とする装置を提供する。
さらに、本発明は、ゲストが仮想プロセッサ上で実行されている間に、インタラプトリクエストを受け付けるステップと、前記インタラプトリクエストの属性に基づき、前記インタラプトリクエストが前記仮想プロセッサに送信されるべきか判断するステップと、前記インタラプトリクエストが前記仮想プロセッサに送信されるべきでない場合、前記ゲストからホストに制御を移行するステップとから構成されることを特徴とする方法を提供する。
さらに、本発明は、仮想プロセッサを有するバーチャルマシーンを制御するデータ構造を格納するメモリと、インタラプトリクエストを受け付けるインタフェースと、前記インタラプトリクエストの属性に基づき、前記インタラプトリクエストが前記仮想プロセッサに送信されるべきか判断する送信ロジックと、前記インタラプトリクエストが前記仮想プロセッサに送信されるべきでないと前記送信ロジックが判断した場合、前記ゲストからホストに当該プロセッサの制御を移行するイグジットロジックとを有する物理プロセッサとから構成されることを特徴とするシステムを提供する。
本発明によると、仮想化環境における効果的なインタラプト処理を実現する装置、方法及びシステムを提供することが可能となる。
図1は、本発明の実施例が動作可能な仮想化環境を示す。 図2は、インタラプトを直接仮想プロセッサに送信するため、VMMがサポートを初期化する方法の実施例を示す。 図3は、インタラプトを直接仮想プロセッサに送信するための方法の実施例を示す。
以下において、仮想プロセッサにインタラプトを直接送信する装置、方法及びシステムの実施例が説明される。本記載では、本発明のより完全なる理解を提供するため、コンポーネント、システムコンフィギュレーションなどの多数の具体的詳細が与えられる。しかしながら、本発明がこのような具体的詳細なしに実現可能であることは、当業者により理解されるであろう。さらに、いくつかの周知の構成、回路などは、本発明を不要に不明りょうにすることを回避するため、詳細には説明されない。
仮想化環境のパフォーマンスは、インターセプトされるイベントの頻度が最小化される場合、向上するかもしれない。本発明の実施例は、VMMによるインターセプトを必要とすることなく、仮想プロセッサへのインタラプトリクエストの送信をサポートするのに利用可能である(ダイレクト送信)。従って、すべてのインタラプトリクエストがVMMによりインターセプトされる仮想化環境に対するパフォーマンスが向上するかもしれない。
図1は、本発明の実施例が動作可能な仮想化アーキテクチャ100を示す。図1において、ベアプラットフォーム(bare platform)ハードウェア110は、任意のOS又はVMMソフトウェアを実行可能な任意のデータ処理装置であってもよい。例えば、ベアプラットフォームハードウェアは、パーソナルコンピュータ、メインフレームコンピュータ、ポータブルコンピュータ携帯装置、セットトップボックス、サーバ又は他の何れかの計算システムのものであるかもしれない。ベアプラットフォームハードウェア110は、プロセッサ120、メモリ130、入出力(I/O)デバイス115及びチップセット111を有する。
プロセッサ120は、Pentium(登録商標)系プロセッサ、Itanium(登録商標)系プロセッサ、インテルコーポレイションからの他のプロセッサ、若しくは他の企業からのプロセッサなどの汎用マイクロプロセッサ、又はデジタル信号プロセッサ若しくはマイクロコントローラを含む任意のタイプのプロセッサであってもよい。図1は、1つのプロセッサ120しか示していないが、ベアプラットフォームハードウェア110は、各々が任意数の実行コアを備えた任意数のマルチコアプロセッサと、各々が任意数のスレッドを備えた任意数のマルチスレッドプロセッサとを含む任意数のプロセッサを含むかもしれない。
メモリ130は、SRAM(Static Random Access Memory)、DRAM(Dynamic RAM)、半導体ベースROM、フラッシュメモリ、磁気ディスクメモリ、光ディスクメモリ、プロセッサ120により可読な他の任意のタイプの媒体又はこのような媒体の何れかの組み合わせであってもよい。I/Oデバイス115は、モニタ、キーボード、マウス、プリンタ、ネットワークインタフェース、情報ストレージ装置などの任意数の周辺又はI/Oデバイスを表すかもしれない。チップセット111は、システムロジック、バスコントロール、バスインタフェース、バスブリッジ、メモリコントロール、周辺デバイスコントロール、周辺デバイス機能、システムコンフィギュレーションなど任意数のタスクを実行する任意数のコンポーネントを含むかもしれない。
プロセッサ120、メモリ130、I/Oデバイス115及びチップセット111は、例えば、1以上のバス、ポイント・ツー・ポイント又は他の有線又は無線接続を直接的又は間接的に介するなど、何れか既知のアプローチに従って互いに接続又は通信するようにしてもよい。ベアプラットフォームハードウェア110はまた、任意数のさらなるデバイス又は接続を有するようにしてもよい。
ベアプラットフォームハードウェア100に加えて、図1は、VMM140、VM150と160、及びゲスト152、154、155、162、164と165を示す。
VMM140は、VM、すなわち、ベアプラットフォームハードウェア110のアブストラクションをゲストに提供し、あるいは、VMを生成及び管理し、仮想化環境100の内部で仮想化ポリシーを実現するため、ベアプラットフォームハードウェア110にインストール又はアクセス可能な任意のソフトウェア、ファームウェア又はハードウェアホストであってもよい。他の実施例では、ホストは、ベアプラットフォームハードウェア110を制御可能な任意のVMM、ハイパーバイザ(hypervisor)、OS、他のソフトウェア、ファームウェア又はハードウェアであってもよい。ゲストは、任意のOS、VMM140のインスタンスを含む任意のVMM、ハイパーバイザ、アプリケーション又は他のソフトウェアであってもよい。
各ゲストは、VMに提供されるプラットフォーム及びプロセッサのアーキテクチャに従って、ベアプラットフォームハードウェア110のプロセッサ、プラットフォームレジスタ、メモリ及び入出力デバイスなどの物理リソースにアクセスすることを期待する。図1は、2つのVM150と160を示し、VM150にはゲストOS152及びゲストアプリケーション154と155がインストールされ、VM160にはゲストOS162及びゲストアプリケーション164と165がインストールされている。図1は、2つのVMと各VMに2つのアプリケーションしか示していないが、本発明の範囲内において、任意数のVMが生成可能であり、任意数のアプリケーションが各VM上で実行可能である。
ゲストによってアクセス可能なリソースは、「優先(privileged)」又は「非優先(non−privileged)」リソースとして分類されるかもしれない。優先リソースについて、VMM140は、リソースに対する最終的な制御を維持しながら、ゲストによって所望される機能を実現する。非優先リソースは、VMM140によって制御される必要はなく、ゲストによって直接的にアクセスされるかもしれない。
さらに、各ゲストOSは、例外処理(ページフォルト、一般的なプロテクションフォルトなど)、インタラプト(ハードウェアインタラプト、ソフトウェアインタラプトなど)、プラットフォームイベント(初期化、システム管理インタラプトなど)などの各種イベントを処理することを期待する。これら例外処理、インタラプト及びプラットフォームイベントは、ここではまとめて「イベント」と呼ばれる。これらのイベントの一部は「優先」される。なぜなら、VM150と160の適切な処理、ゲストからのVMM140のプロテクション及び互いからのゲストのプロテクションを保証するため、VMM140により処理される必要があるためである。
何れか所与の時点において、プロセッサ120は、VMM140又は何れかのゲストからの命令を実行しているかもしれず、これにより、VMM140又はゲストは、プロセッサ120上で実行又は制御されるかもしれない。優先イベントが実行されるとき、又はゲストが優先リソースにアクセスしようとするとき、コントロールは、ゲストからVMM140に移行するかもしれない。ゲストからVMM140へのコントロールの移行は、ここでは「VMイグジット(exit)」と呼ばれる。イベント処理後、又はリソースへのアクセスを適切に実現した後、VMM140は、ゲストにコントロールを返すかもしれない。VMM140からゲストへのコントロールの移行は、「VMエントリ(entry)」とここでは呼ばれる。
図1の実施例では、プロセッサ120は、バーチャルマシーンコントロール構成(VMCS)132に格納されているデータに従って、VM150と160の動作を制御する。VMCS132は、ゲストの状態、VMM140の状態、VMM140がゲストの動作をどのように制御するか示す実行制御情報、VMイグジット及びVMエントリに関する上記又は他の任意のそのような情報を含むかもしれない構成である。プロセッサ120は、VMの実行環境を決定し、それの動作を制限するための情報をVMCS132から読み出す。本実施例では、VMCS132は、メモリ130に格納されている。いくつかの実施例では、複数のVMCSが複数のVMをサポートするのに利用される。図1は、メモリ130に格納されているVMCS132を示すが、VMCSをメモリに格納することは、本発明によって要求されるものではない。
プロセッサ120は、インタラプトリクエストを受付、生成、優先順位付け、送信、保留、制御又は管理するためのインタラプトコントローラ122を有するかもしれない。例えば、インタラプトコントローラ122は、Pentium(登録商標)系プロセッサのアーキテクチャに従って、ローカルなAPIC(Advanced Programmable Interrupt Controller)であるかもしれない。チップセット111はまた、インタラプトコントローラ112に加えて、それと共に、又はその代わりに、インタラプトリクエストを受付、生成、優先順位付け、送信、保留、制御又は管理するためのインタラプトコントローラ112を有するかもしれない。例えば、インタラプトコントローラ112は、I/O APICであってもよい。プロセッサ120及び/又はチップセット111は、他の何れかのインタラプトコントローラを有するようにしてもよく、また、図1に図示されない他の何れかのプロセッサ、チップセット又はコンポーネントは、インタラプトコントローラを有するようにしてもよく、また、インタラプトリクエストは、他の何れかのアプローチに従って制御又は管理されるようにしてもよい。
プロセッサ120はまた、プロセッサ120がチップセット111などの他の何れかのコンポーネントを介し又は直接的に、何れかのタイプのバス、ポイント・ツー・ポイント又は他の接続を介しインタラプトリクエスト及びインタラプトベクトルを受け付けることを可能にするため、バスユニット又は他の何れかのユニット、ポート又はインタフェースであるかもしれないインタフェース121を有する。インタフェース121は、例えば、ローカルAPICからインタラプトリクエストを受信するための内部インタフェース、及び/又は外部ソースからインタラプトリクエストを受信するための外部インタフェースであってもよい。
さらに、プロセッサ120は、インタラプトの仮想プロセッサへの送信を含む仮想化をサポートするコントロールロジック125を含む。コントロールロジック125は、プロセッサ120内部のマイクロコード、プログラマブルロジック、ハードコードロジック又は他の何れかの形式のコントロールロジックであってもよい。他の実施例では、コントロールロジック125は、プロセッサ内部、又はメモリ130などのプロセッサにより可読又はアクセス可能な任意のコンポーネント内部のプロセッサアブストラクションレイヤなどの任意の形式によるハードウェア、ソフトウェア又はファームウェアにより実現可能である。
コントロールロジック125は、例えば、プロセッサ120にホストからゲストへの仮想化命令又は他の命令に応答して仮想化をサポートするため、プロセッサ120に1以上のマイクロオペレーションを実行させることによって、図2及び3に示される方法などの本発明の実施例による方法を実行させる。
コントロールロジック125は、インタラプトアクノリッジロジック126、インタラプト送信ロジック127、インタラプトリダイレクトロジック128及びイグジットロジック129を含む。インタラプトアクノリッジロジック126は、インタラプトリクエストをアクノリッジし、いくつかの実施例では、インタラプトベクトルをプロセッサ120に送信する。インタラプト送信ロジック127は、インタラプトリクエストが仮想プロセッサに送信されるべきか決定する。インタラプトリダイレクトロジック128は、例えば、物理インタラプトベクトルを仮想インタラプトベクトルに変換することによって、物理プロセッサ120の代わりに仮想プロセッサに送信するため、インタラプトをリダイレクトする。イグジットロジック129は、インタラプトリクエストが仮想プロセッサに送信されるべきでない場合、VMイグジットを準備及び発生させる。上記ロジックのそれぞれはまた、ロジックユニットの他のものにより実行されるとして示されるものを含むさらなる機能を実行してもよく、上記ロジックユニットの何れか又はすべては、1つのロジックユニットに一体化されてもよい。
VMCS132は、仮想プロセッサへのインタラプトの送信を含む仮想化をサポートするため、フィールド、コントロールビット又は他のデータ構造を含むかもしれない。これらのデータ構造は、VM環境の管理方法を決定するため、コントロールロジック125によりチェック又は参照されるかもしれない。例えば、インタラプト割当てコントロールビット133は、後述されるように、仮想プロセッサへのインタラプトリクエストの直接的な送信を可能にするよう設定されてもよい。本実施例の説明では、コントロールビットは、所望の効果を可能又は発生させるよう設定される。ここでは、設定とは、論理「1」を当該ビットに書き込むことを意味するが、何れかの論理的用語が、本発明の範囲内で利用可能である。
またVMCS132において、アドレスフィールド134は、インタラプトが仮想プロセッサに送信されるべきか示すデータ構造が格納可能であるメモリ位置のアドレスを格納するのに利用可能である。例えば、当該アドレスは、256個までの物理インタラプトベクトルのそれぞれに対して、1つのコンフィギュレーションビットを含む256ビットアレイの64ビットアドレスであってもよい。同様に、アドレスフィールド136は、仮想インタラプトベクトルを提供するデータ構造が格納可能なメモリ位置のアドレスを格納するのに利用可能である。例えば、当該アドレスは、256個までの物理インタラプトベクトルのそれぞれに対して、1バイト仮想インタラプトベクトルを含む256バイトアレイの64ビットアドレスであってもよい。他の実施例では、VMCS132は、このような標識又は仮想インタラプトベクトルを直接格納するデータ構造を有するかもしれない。
図2及び3は、本発明の実施例による方法を示す。各実施例はこれに限定されるものではないが、図2及び3の実施例を説明するため、図1の仮想化環境100が参照される。
図2は、インタラプトを仮想プロセッサに直接送信するためVMMがサポートを初期化する方法の実施例を示す。
図2のボックス210では、図1のVMM140は、VMに対するVMCS(VMCS132など)を生成する。ボックス212から217において、VMM140は、インタラプトを仮想プロセッサに送信するためサポートを実現するようVMCS132を構成する。ボックス212において、インタラプト割当てコントロールビット133は、後述されるように、仮想プロセッサへのインタラプトの直接的な送信を可能にするよう設定される。
ボックス214において、インタラプトが仮想プロセッサに送信されるべきか示すデータ構造を格納するためのメモリ位置のアドレスが、アドレスフィールド134に書き込まれる。ある数(256など)の潜在的なインタラプトのそれぞれは、物理インタラプトベクトルによって特定されるかもしれない。データ構造(インタラプトビットマップ135など)は、物理インタラプトベクトルのそれぞれに対するエントリを含むかもしれない。各エントリは、各物理インタラプトベクトルに対応する物理インタラプトが、仮想プロセッサに送信されるべきか示すためのコンフィギュレーションビットを含むかもしれない。ボックス215において、データ構造は、例えば、物理インタラプトベクトルと、それぞれに対する所望のコンフィギュレーションビットを格納することによって初期化される。
ボックス216において、物理インタラプトベクトルを仮想インタラプトベクトルに変換するため、データ構造を格納するためのメモリ位置のアドレスが、アドレスフィールド136に書き込まれる。データ構造(ベクトルリダイレクトマップ137など)は、各物理インタラプトベクトルのエントリを含むかもしれない。各エントリは、仮想プロセッサに送信されるべき各インタラプトに対する物理インタラプトベクトルに対応する仮想インタラプトベクトルを含むかもしれない。このような再変換は、例えば、システムメモリ130又はシステムメモリ130の一部の仮想プロセッサを含むVMに割り当てられるメモリへの再変換を説明するのに利用されるかもしれない。ボックス217において、データ構造は、例えば、物理インタラプトベクトルとそれぞれに対する所望の仮想インタラプトベクトルを格納することによって、初期化される。
図3は、インタラプトを仮想プロセッサに直接送信する方法の実施例を示す。
図3のボックス310において、VMエントリが実行され、コントロールがゲストに移行される。ボックス320において、ゲストは、VMの仮想プロセッサ上の実行を開始又は継続する。ボックス330において、インタフェース121は、インタラプトリクエストを受け付ける。インタラプトリクエストは、インタラプトコントローラ122又は112などのインタラプトコントローラ又は他の何れかの装置からのものであってもよい。いくつかの実施例では、インタラプトは、他の物理プロセッサによって生成され、又は自らの仮想プロセッサに対してゲストによって生成されるプロセッサ間インタラプトであってもよい。
ボックス340において、コントロールロジック125は、仮想プロセッサへのインタラプトの直接的な送信が可能であるか判断するため、インタラプト割当てコントロールビット133をチェックする。仮想プロセッサへのインタラプトの直接的な送信が可能でない場合、ボックス390において、イグジットロジック129は、VMMがインタラプトを処理することを可能にするため、VMイグジットを実行させる。いくつかの実施例では、イグジットロジックは、インタラプトイグジットコントロールビットなど、VMCSの1以上のコントロールビットを照会することによって、VMイグジットがこの状況で必要とされるか判断する。いくつかの実施例では、イグジットロジック129は、インタラプトリクエストをアクノリッジし、インタラプトベクトルをフェッチする。いくつかの実施例では、ハードウェアインタラプトによるVMイグジットの一部としての当該インタラプトアクノリッジメントは、イグジットコントロールビットのアクノリッジインタラプトなど、VMCSの1以上のコントロールビットにより制御されるかもしれない。
しかしながら、仮想プロセッサへのインタラプトの直接的な送信が可能である場合、ボックス350において、インタラプトアクノリッジロジック126は、例えば、インタラプトアクノリッジメッセージを送信することによって、インタラプトリクエストをアクノリッジする。プロセッサがローカルなAPICを有する実施例では、インタラプトリクエストは、ローカルAPICにおいてアクノリッジされる。ボックス352において、プロセッサ120は、物理インタラプトベクトルを受信する。プロセッサがローカルAPICを有する実施例では、インタラプトリクエストのアクノリッジメントはまた、インタラプトリクエストレジスタ(IRR)、インサービスレジスタ(USR)及びプロセッサプライオリティレジスタ(PPR)を更新するかもしれない。
ボックス360において、インタラプト送信ロジック127は、当該インタラプトが、例えば、インタラプトビットマップ135をチェックすることによって、仮想プロセッサに送信されるべきか判断する。この判定は、送信モード(固定又はユーザに規定されたSMI(System Management Interrupt)など)、NMI(No−Maskable Interrupt)、INIT(Soft Reset)など)やトリガーモード(エッジ又はレベルなど)インタラプトリクエストの他の属性に基づくものであってもよい。このインタラプトが仮想プロセッサに送信されるべきでない場合、ボックス390において、イグジットロジック129は、VMMがインタラプトを処理することを可能にするようVMイグジットを実行させる。物理インタラプトベクトルは、それをVMCSのVMイグジットフィールドに格納することによって、VMMに提供されてもよい。
しかしながら、インタラプトが仮想プロセッサに送信されるべきである場合、ボックス362において、インタラプトリダイレクトロジック128は、例えば、物理インタラプトベクトルを仮想インタラプトベクトルに変換することによって、物理プロセッサの代わりに仮想プロセッサへの送信のためインタラプトをリダイレクトする。本実施例では、この変換は、対応する仮想インタラプトベクトルを検出するため、インタラプトリダイレクトマップ137の物理インタラプトベクトルを検索することによって実行される。
ローカルAPICを含む実施例では、ボックス362はまた、インタラプトリクエストを適切に管理するため、他のアクションを含むかもしれない。例えば、コントロールロジック125は、ISR及びPPRが更新されるように、ローカルAPICのエンド・オブ・インタラプト(EOI)レジスタをクリアする。
ボックス364において、リダイレクトされたインタラプトは、例えば、仮想プロセッサに係るインタラプト記述子テーブル(IDT)のインデックスとして仮想インタラプトベクトルを用いて、インタラプトハンドラのエントリポイントを検出することによって、仮想プロセッサに送信される。いくつかの実施例では、リダイレクトされたインタラプトは、インタラプトの優先順位に応じて、仮想プロセッサへの送信前に保留されるかもしれない。この優先順位付けは、仮想プロセッサに送信されるべきインタラプト間のものであってもよいし、あるいは、VMMに送信されるインタラプトを含むものであってもよい。
共有可能なインタラプトリクエストラインによる実施例では、各種技術の何れかが仮想プロセッサを対象とする第1インタラプトリクエストに係る第1インタラプトハンドラが、仮想プロセッサを対象としない第2インタラプトリクエストに係る第2インタラプトハンドラに自動的にリンクすることを回避するのに利用可能である。一実施例では、ローカルAPICのEOIレジスタは、I/O APICに配信されない特別なメッセージによりクリアされるかもしれない。他の実施例では、インタラプトリクエストが仮想プロセッサに送信されるべきか否かの判断は、トリガーモード(エッジ又はレベルなど)又は共有可能性を示す他の属性に基づくものであってもよい。
さらに、いくつかの実施例では、直接送信されたインタラプトの結果として呼び出されるインタラプトハンドラからのEOIメッセージがインターセプトされ、他の実施例では、プロセッサは、VMイグジットなしにそれを処理するコントロールロジックを有するかもしれない。
本発明の範囲内において、図2及び3に示される方法は、異なる順序、図示されたボックスの省略、さらなるボックスの追加又は再順序付け、省略又は追加的なボックスの組み合わせにより実行されてもよい。例えば、VMCSは任意の順序によりVMCSを構成してもよく、例えば、ボックス212〜217は任意の順序により再構成されてもよい。
プロセッサ120又は本発明の実施例による他の何れかのコンポーネント又はコンポーネントの一部は、生成からシミュレーション、製造までの各段階において設計されるかもしれない。構成を表すデータは、いくつかの方法によりそれを表すかもしれない。まず、シミュレーションにおいて有用なように、ハードウェアは、ハードウェア記述言語又は他の機能記述言語を用いて表されるかもしれない。さらに、又はあるいは、ロジック及び/又はトランジスタゲートを備える回路レベルモデルが、設計処理のいくつかの段階で生成されるかもしれない。さらに、大部分の構成は、いくつかの段階において各種デバイスの物理的配置を表すデータによりモデリングされるレベルに到達する。従来の半導体製造技術が利用される場合、デバイス配置モデルを表すデータは、集積回路を生成するのに利用されるマスクに対する異なるマスクレイや上の各種特徴の有無を指定するデータであるかもしれない。
当該構成の何れかの表現において、データは、マシーン可読媒体の何れかの形式により格納されるかもしれない。このような情報を送信するのに変調又は生成される光学的又は電気的な波動、又はメモリ、ディスクなどの磁気若しくは光記憶媒体は、マシーン可読媒体であってもよい。これらの媒体の何れも、エラーリカバリルーチンにおける命令など、本発明の実施例において利用される構成又は他の情報を搬送又は表示するかもしれない。情報を表示又は搬送する電気的な搬送波が送信されるとき、電気信号の複製、バッファリング又は再送が実行される程度まで、新たな複製が行われる。従って、通信プロバイダ又はネットワークプロバイダのアクションは、本発明の技術を実現する搬送波などの物品の複製を生成することから構成されるかもしれない。
以上より、仮想プロセッサにインタラプトを直接送信する装置、方法及びシステムが開示された。特定の実施例が添付した図面により説明及び図示されたが、このような実施例が単なる例示であり、本発明を限定するものではないということは理解されるであろう。本発明は、他の様々な変更が本開示を研究することにより当業者に想起されると予想されるため、ここで説明及び図示された具体的構成に限定されるものではない。成長が速く、さらなる進歩が予見不可能な当該技術分野では、開示された実施例は、添付した請求項の範囲又は本開示の原理から逸脱することなく、技術的進歩を可能にすることによって実現されるよう構成及び詳細において容易に変更可能である。
100 仮想化アーキテクチャ
110 ベアプラットフォームハードウェア
120 プロセッサ
130 メモリ
160 VMM(バーチャルマシーンモニタ)
150 VM(バーチャルマシーン)

Claims (15)

  1. ゲストが仮想プロセッサ上で実行されている間に、インタラプトリクエストを受け付けるインタフェースと、
    前記インタラプトリクエストのトリガーモードがエッジ又はレベルであるかに基づき、前記インタラプトリクエストが前記仮想プロセッサに送信されるべきか判断する送信ロジックと、
    前記インタラプトリクエストが前記仮想プロセッサに送信されるべきでないと前記送信ロジックが判断した場合、前記ゲストからホストに当該装置の制御を移行するイグジットロジックと、
    から構成されることを特徴とする装置。
  2. 請求項1記載の装置であって、
    前記送信ロジックはさらに、前記インタラプトリクエストが前記仮想プロセッサに送信されるべきであると前記送信ロジックが判断した場合、前記インタラプトリクエストを前記仮想プロセッサに送信することを特徴とする装置。
  3. 請求項1記載の装置であって、
    前記インタフェースはさらに、物理インタラプトベクトルを受け付けことを特徴とする装置。
  4. 請求項3記載の装置であって、さらに、
    前記物理インタラプトベクトルの送信を実行させるため、前記インタラプトリクエストをアクノリッジするアクノリッジロジックを有することを特徴とする装置。
  5. 請求項3記載の装置であって、さらに、
    前記物理インタラプトベクトルを仮想インタラプトベクトルに変換するリダイレクトロジックを有することを特徴とする装置。
  6. 請求項5記載の装置であって、
    前記リダイレクトロジックは、インタラプトリダイレクトデータ構造のエントリに基づき、前記物理インタラプトベクトルを仮想インタラプトベクトルに変換することを特徴とする装置。
  7. ゲストが仮想プロセッサ上で実行されている間に、インタフェースがインタラプトリクエストを受け付けるステップと、
    前記インタラプトリクエストのトリガーモードがエッジ又はレベルであるかに基づき、送信ロジックが前記インタラプトリクエストが前記仮想プロセッサに送信されるべきか判断するステップと、
    前記インタラプトリクエストが前記仮想プロセッサに送信されるべきでない場合、イグジットロジックが前記ゲストからホストに制御を移行するステップと、
    から構成されることを特徴とする方法。
  8. 請求項7記載の方法であって、
    前記インタフェースが物理インタラプトベクトルを受け付けるステップをさらに有することを特徴とする方法。
  9. 請求項記載の方法であって、さらに、
    前記物理インタラプトベクトルの送信を実行させるため、アクノリッジロジックが前記インタラプトリクエストをアクノリッジするステップを有することを特徴とする方法。
  10. 請求項記載の方法であって、さらに、
    リダイレクトロジックが前記物理インタラプトベクトルを仮想インタラプトベクトルに変換するステップを有することを特徴とする方法。
  11. 請求項10記載の方法であって、
    前記リダイレクトロジックが変換するステップは、インタラプトリダイレクトデータ構造のエントリに基づくことを特徴とする方法。
  12. 仮想プロセッサを有するバーチャルマシーンを制御するデータ構造を格納するメモリと、
    インタラプトリクエストを受け付けるインタフェースと、前記インタラプトリクエストのトリガーモードがエッジ又はレベルであるかに基づき、前記インタラプトリクエストが前記仮想プロセッサに送信されるべきか判断する送信ロジックと、前記インタラプトリクエストが前記仮想プロセッサに送信されるべきでないと前記送信ロジックが判断した場合、ゲストからホストに当該プロセッサの制御を移行するイグジットロジックとを有する物理プロセッサと、
    から構成されることを特徴とするシステム。
  13. 請求項12記載のシステムであって、
    前記インタフェースはさらに、物理インタラプトベクトルを受け付けことを特徴とするシステム。
  14. 請求項13記載のシステムであって、さらに、
    前記物理プロセッサはさらに、前記物理インタラプトベクトルを仮想インタラプトベクトルに変換するリダイレクトロジックを有することを特徴とするシステム。
  15. 請求項14記載のシステムであって、
    前記リダイレクトロジックは、前記データ構造におけるインタラプトリダイレクトマップに基づき、前記物理インタラプトベクトルを仮想インタラプトベクトルに変換することを特徴とするシステム。
JP2010061343A 2005-12-30 2010-03-17 仮想プロセッサへの直接的なインタラプトの送信 Active JP5122597B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/323,114 2005-12-30
US11/323,114 US8286162B2 (en) 2005-12-30 2005-12-30 Delivering interrupts directly to a virtual processor

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2006349810A Division JP2007183951A (ja) 2005-12-30 2006-12-26 仮想プロセッサへの直接的なインタラプトの送信

Publications (3)

Publication Number Publication Date
JP2010176693A JP2010176693A (ja) 2010-08-12
JP2010176693A5 JP2010176693A5 (ja) 2012-05-24
JP5122597B2 true JP5122597B2 (ja) 2013-01-16

Family

ID=37904009

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2006349810A Pending JP2007183951A (ja) 2005-12-30 2006-12-26 仮想プロセッサへの直接的なインタラプトの送信
JP2010061343A Active JP5122597B2 (ja) 2005-12-30 2010-03-17 仮想プロセッサへの直接的なインタラプトの送信

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2006349810A Pending JP2007183951A (ja) 2005-12-30 2006-12-26 仮想プロセッサへの直接的なインタラプトの送信

Country Status (5)

Country Link
US (3) US8286162B2 (ja)
EP (1) EP1804164A1 (ja)
JP (2) JP2007183951A (ja)
CN (2) CN102945186A (ja)
TW (1) TWI375913B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI733745B (zh) * 2017-01-23 2021-07-21 香港商阿里巴巴集團服務有限公司 核心模式的虛擬機器(kvm)虛擬化下處理i/o請求的方法和裝置

Families Citing this family (91)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8286162B2 (en) * 2005-12-30 2012-10-09 Intel Corporation Delivering interrupts directly to a virtual processor
US7971104B2 (en) * 2006-10-24 2011-06-28 Shlomi Dolev Apparatus and methods for stabilization of processors, operating systems and other hardware and/or software configurations
US7533207B2 (en) * 2006-12-06 2009-05-12 Microsoft Corporation Optimized interrupt delivery in a virtualized environment
JP4864817B2 (ja) * 2007-06-22 2012-02-01 株式会社日立製作所 仮想化プログラム及び仮想計算機システム
US8032681B2 (en) 2007-09-06 2011-10-04 Intel Corporation Processor selection for an interrupt based on willingness to accept the interrupt and on priority
US7627706B2 (en) * 2007-09-06 2009-12-01 Intel Corporation Creation of logical APIC ID with cluster ID and intra-cluster ID
US7769938B2 (en) * 2007-09-06 2010-08-03 Intel Corporation Processor selection for an interrupt identifying a processor cluster
US8453143B2 (en) * 2007-09-19 2013-05-28 Vmware, Inc. Reducing the latency of virtual interrupt delivery in virtual machines
US8612973B2 (en) * 2007-09-26 2013-12-17 Hewlett-Packard Development Company, L.P. Method and system for handling interrupts within computer system during hardware resource migration
US8521966B2 (en) * 2007-11-16 2013-08-27 Vmware, Inc. VM inter-process communications
US8024504B2 (en) * 2008-06-26 2011-09-20 Microsoft Corporation Processor interrupt determination
US20090327556A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Processor Interrupt Selection
US8032680B2 (en) * 2008-06-27 2011-10-04 Microsoft Corporation Lazy handling of end of interrupt messages in a virtualized environment
JP5405799B2 (ja) * 2008-10-30 2014-02-05 株式会社日立製作所 仮想計算機の制御方法、仮想化プログラム及び仮想計算機システム
JP5352848B2 (ja) * 2008-11-28 2013-11-27 株式会社日立製作所 仮想計算機の制御方法及び計算機装置
US9424211B2 (en) * 2008-12-31 2016-08-23 Intel Corporation Providing multiple virtual device controllers by redirecting an interrupt from a physical device controller
US8234432B2 (en) 2009-01-26 2012-07-31 Advanced Micro Devices, Inc. Memory structure to store interrupt state for inactive guests
US9195487B2 (en) * 2009-05-19 2015-11-24 Vmware, Inc. Interposition method suitable for hardware-assisted virtual machine
US8566492B2 (en) * 2009-12-31 2013-10-22 Intel Corporation Posting interrupts to virtual processors
US20110197004A1 (en) * 2010-02-05 2011-08-11 Serebrin Benjamin C Processor Configured to Virtualize Guest Local Interrupt Controller
CN102200926B (zh) * 2010-03-24 2014-05-07 北京兆易创新科技股份有限公司 一种存储器读操作功能的仿真验证方法
US8910155B1 (en) * 2010-11-02 2014-12-09 Symantec Corporation Methods and systems for injecting endpoint management agents into virtual machines
US8612659B1 (en) * 2010-12-14 2013-12-17 Vmware, Inc. Hardware interrupt arbitration in virtualized computer systems
US8688883B2 (en) 2011-09-08 2014-04-01 Intel Corporation Increasing turbo mode residency of a processor
US9804870B2 (en) * 2011-10-28 2017-10-31 Intel Corporation Instruction-set support for invocation of VMM-configured services without VMM intervention
JP5369356B2 (ja) * 2011-11-09 2013-12-18 株式会社日立製作所 仮想化プログラム
US8910158B2 (en) * 2011-12-14 2014-12-09 Intel Corporation Virtualizing interrupt priority and delivery
WO2013100948A1 (en) * 2011-12-28 2013-07-04 Intel Corporation Delivering real time interrupts with an advanced programmable interrupt controller
US8892802B2 (en) 2012-01-01 2014-11-18 International Business Machines Corporation Enhancing interrupt handling in a virtual environment
TWI533220B (zh) * 2012-03-19 2016-05-11 緯創資通股份有限公司 虛擬系統管理模式裝置以及其控制方法
US9594703B2 (en) * 2012-03-29 2017-03-14 Intel Corporation Architecture and method for managing interrupts in a virtualized environment
US8806104B2 (en) 2012-09-25 2014-08-12 Intel Corporation Enabling virtualization of a processor resource
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
US9292331B2 (en) * 2013-03-15 2016-03-22 Bracket Computing, Inc. Expansion of services for a virtual data center guest
US9378162B2 (en) 2013-05-21 2016-06-28 Arm Limited Handling and routing interrupts to virtual processors
US9842015B2 (en) * 2013-09-27 2017-12-12 Intel Corporation Instruction and logic for machine checking communication
JP5584811B2 (ja) * 2013-10-30 2014-09-03 株式会社日立製作所 仮想計算機の制御方法、仮想化プログラム及び仮想計算機システム
US9697031B2 (en) * 2013-10-31 2017-07-04 Huawei Technologies Co., Ltd. Method for implementing inter-virtual processor interrupt by writing register data in a single write operation to a virtual register
US9355050B2 (en) 2013-11-05 2016-05-31 Qualcomm Incorporated Secure, fast and normal virtual interrupt direct assignment in a virtualized interrupt controller in a mobile system-on-chip
US9563588B1 (en) * 2014-01-29 2017-02-07 Google Inc. OS bypass inter-processor interrupt delivery mechanism
CN103984591B (zh) * 2014-05-15 2015-04-29 中国人民解放军国防科学技术大学 计算机虚拟化系统的PCI设备INTx中断投递方法
CN105335222B (zh) 2014-06-04 2019-03-19 华为技术有限公司 中断信息的处理方法、虚拟机监控器及中断控制器
JP2017518589A (ja) 2014-06-20 2017-07-06 華為技術有限公司Huawei Technologies Co.,Ltd. 仮想化プラットホームによって割込みを処理する方法および関連デバイス
US9772868B2 (en) 2014-09-16 2017-09-26 Industrial Technology Research Institute Method and system for handling interrupts in a virtualized environment
KR20160039846A (ko) * 2014-10-02 2016-04-12 한국전자통신연구원 인터럽트 처리 시스템 및 인터럽트 처리 방법
US9910699B2 (en) 2014-10-28 2018-03-06 Intel Corporation Virtual processor direct interrupt delivery mechanism
US9921984B2 (en) 2014-12-23 2018-03-20 Intel Corporation Delivering interrupts to user-level applications
US9852091B2 (en) 2015-11-16 2017-12-26 International Business Machines Corporation Techniques for handling interrupts in a processing unit using virtual processor thread groups and software stack levels
US9858167B2 (en) * 2015-12-17 2018-01-02 Intel Corporation Monitoring the operation of a processor
US10042720B2 (en) 2016-02-22 2018-08-07 International Business Machines Corporation Live partition mobility with I/O migration
US10002018B2 (en) 2016-02-23 2018-06-19 International Business Machines Corporation Migrating single root I/O virtualization adapter configurations in a computing system
US10042723B2 (en) 2016-02-23 2018-08-07 International Business Machines Corporation Failover of a virtual function exposed by an SR-IOV adapter
US10025584B2 (en) 2016-02-29 2018-07-17 International Business Machines Corporation Firmware management of SR-IOV adapters
KR102509986B1 (ko) 2016-03-28 2023-03-14 삼성전자주식회사 다중 코어 프로세서 및 다중 코어 프로세서를 제어하는 방법
US9785451B1 (en) 2016-10-21 2017-10-10 International Business Machines Corporation Migrating MMIO from a source I/O adapter of a computing system to a destination I/O adapter of the computing system
US9760512B1 (en) 2016-10-21 2017-09-12 International Business Machines Corporation Migrating DMA mappings from a source I/O adapter of a source computing system to a destination I/O adapter of a destination computing system
US9720863B1 (en) 2016-10-21 2017-08-01 International Business Machines Corporation Migrating MMIO from a source I/O adapter of a source computing system to a destination I/O adapter of a destination computing system
US9720862B1 (en) 2016-10-21 2017-08-01 International Business Machines Corporation Migrating interrupts from a source I/O adapter of a computing system to a destination I/O adapter of the computing system
US9715469B1 (en) * 2016-10-21 2017-07-25 International Business Machines Corporation Migrating interrupts from a source I/O adapter of a source computing system to a destination I/O adapter of a destination computing system
US9740647B1 (en) 2016-10-21 2017-08-22 International Business Machines Corporation Migrating DMA mappings from a source I/O adapter of a computing system to a destination I/O adapter of the computing system
CN109144679B (zh) * 2017-06-27 2022-03-29 华为技术有限公司 中断请求的处理方法、装置及虚拟化设备
US10248595B2 (en) * 2017-08-10 2019-04-02 Infineon Technologies Ag Virtual machine monitor interrupt support for computer processing unit (CPU)
US11487574B2 (en) * 2017-09-19 2022-11-01 Microsoft Technology Licensing, Llc Targeted interrupts for virtual processors
US10992750B2 (en) * 2018-01-16 2021-04-27 Infineon Technologies Ag Service request interrupt router for virtual interrupt service providers
CN110162377A (zh) * 2018-02-14 2019-08-23 华为技术有限公司 一种通信方法和逻辑处理器
CN110609730B (zh) * 2018-06-14 2023-04-07 阿里巴巴集团控股有限公司 一种实现虚拟处理器间中断透传的方法及设备
KR102643803B1 (ko) * 2018-11-15 2024-03-05 삼성전자주식회사 멀티 호스트 컨트롤러와 이를 포함하는 반도체 장치
US11080088B2 (en) * 2018-12-19 2021-08-03 Intel Corporation Posted interrupt processing in virtual machine monitor
CA3130164A1 (en) 2019-02-14 2020-08-20 International Business Machines Corporation Directed interrupt for multilevel virtualization
WO2020164820A1 (en) * 2019-02-14 2020-08-20 International Business Machines Corporation Directed interrupt virtualization
EP3924819A1 (en) 2019-02-14 2021-12-22 International Business Machines Corporation Directed interrupt for multilevel virtualization with interrupt table
WO2020164935A1 (en) 2019-02-14 2020-08-20 International Business Machines Corporation Directed interrupt virtualization with running indicator
EP3924822A4 (en) * 2019-02-14 2022-11-23 International Business Machines Corporation DIRECTED INTERRUPT VIRTUALIZATION WITH CLOCK FLAG
TWI727607B (zh) 2019-02-14 2021-05-11 美商萬國商業機器公司 用於具有中斷表之經引導中斷虛擬化之方法、電腦系統及電腦程式產品
TWI759677B (zh) 2019-02-14 2022-04-01 美商萬國商業機器公司 用於具有回退之經引導中斷虛擬化之方法、電腦系統及電腦程式產品
US10996975B2 (en) 2019-08-22 2021-05-04 Micron Technology, Inc. Hierarchical memory systems
US10789094B1 (en) 2019-08-22 2020-09-29 Micron Technology, Inc. Hierarchical memory apparatus
US11036434B2 (en) 2019-08-22 2021-06-15 Micron Technology, Inc. Hierarchical memory systems
US11036633B2 (en) 2019-08-22 2021-06-15 Micron Technology, Inc. Hierarchical memory apparatus
US11106595B2 (en) 2019-08-22 2021-08-31 Micron Technology, Inc. Hierarchical memory systems
US11074182B2 (en) 2019-08-22 2021-07-27 Micron Technology, Inc. Three tiered hierarchical memory systems
US10929301B1 (en) 2019-08-22 2021-02-23 Micron Technology, Inc. Hierarchical memory systems
US11016903B2 (en) 2019-08-22 2021-05-25 Micron Technology, Inc. Hierarchical memory systems
US11169928B2 (en) * 2019-08-22 2021-11-09 Micron Technology, Inc. Hierarchical memory systems to process data access requests received via an input/output device
US11113094B1 (en) 2019-08-28 2021-09-07 Parallels International Gmbh Physical memory management for virtual machines
DE102019126897B4 (de) * 2019-10-07 2021-10-28 Infineon Technologies Ag Datenverarbeitungsvorrichtung und verfahren zum verarbeiten eines interrupts
US11182184B2 (en) * 2019-10-23 2021-11-23 Red Hat, Inc. Implementing high-performance virtual machines for bare metal simulation
WO2022160217A1 (zh) * 2021-01-28 2022-08-04 华为技术有限公司 一种中断上报装置、方法及虚拟化系统
US11789653B2 (en) 2021-08-20 2023-10-17 Micron Technology, Inc. Memory access control using a resident control circuitry in a memory device
CN117377944A (zh) * 2022-01-26 2024-01-09 英特尔公司 主机至宾客机通知

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2809187B2 (ja) * 1996-04-15 1998-10-08 日本電気株式会社 割込み線共有回路および割込み線共有方法
JP3593241B2 (ja) * 1997-07-02 2004-11-24 株式会社日立製作所 計算機の再起動方法
US6021458A (en) * 1998-01-21 2000-02-01 Intel Corporation Method and apparatus for handling multiple level-triggered and edge-triggered interrupts
US6192442B1 (en) * 1998-04-29 2001-02-20 Intel Corporation Interrupt controller
US6665708B1 (en) * 1999-11-12 2003-12-16 Telefonaktiebolaget Lm Ericsson (Publ) Coarse grained determination of data dependence between parallel executed jobs in an information processing system
JP2001290665A (ja) * 2000-04-11 2001-10-19 Nec Software Hokuriku Ltd プロセッサシステム
US6401154B1 (en) * 2000-05-05 2002-06-04 Advanced Micro Devices, Inc. Flexible architecture for an embedded interrupt controller
US20020083254A1 (en) * 2000-12-22 2002-06-27 Hummel Mark D. System and method of implementing interrupts in a computer processing system having a communication fabric comprising a plurality of point-to-point links
US7818808B1 (en) 2000-12-27 2010-10-19 Intel Corporation Processor mode for limiting the operation of guest software running on a virtual machine supported by a virtual machine monitor
US7124327B2 (en) * 2002-06-29 2006-10-17 Intel Corporation Control over faults occurring during the operation of guest software in the virtual-machine architecture
US6996748B2 (en) * 2002-06-29 2006-02-07 Intel Corporation Handling faults associated with operation of guest software in the virtual-machine architecture
US20040117532A1 (en) * 2002-12-11 2004-06-17 Bennett Steven M. Mechanism for controlling external interrupts in a virtual machine system
US7287197B2 (en) * 2003-09-15 2007-10-23 Intel Corporation Vectoring an interrupt or exception upon resuming operation of a virtual machine
US7237051B2 (en) 2003-09-30 2007-06-26 Intel Corporation Mechanism to control hardware interrupt acknowledgement in a virtual machine system
US7222203B2 (en) * 2003-12-08 2007-05-22 Intel Corporation Interrupt redirection for virtual partitioning
DE10361364B4 (de) * 2003-12-29 2010-07-01 Advanced Micro Devices, Inc., Sunnyvale Vorrichtung zum Behandeln von Interruptereignissen, mit der pegel-sensitive bzw. level-sensitive Interruptanforderungen in flankengetriggerten Interruptnachrichten umgesetzt werden
US8127098B1 (en) * 2004-05-11 2012-02-28 Globalfoundries Inc. Virtualization of real mode execution
US7209994B1 (en) * 2004-05-11 2007-04-24 Advanced Micro Devices, Inc. Processor that maintains virtual interrupt state and injects virtual interrupts into virtual machine guests
US20060036775A1 (en) * 2004-08-16 2006-02-16 Konstantin Levit-Gurevich Apparatus and methods for video graphics array (VGA) virtualization in system exploiting multiple operating systems
US7480755B2 (en) * 2004-12-08 2009-01-20 Hewlett-Packard Development Company, L.P. Trap mode register
US20060200616A1 (en) * 2005-03-02 2006-09-07 Richard Maliszewski Mechanism for managing resources shared among virtual machines
US7516252B2 (en) * 2005-06-08 2009-04-07 Intel Corporation Port binding scheme to create virtual host bus adapter in a virtualized multi-operating system platform environment
US8286162B2 (en) * 2005-12-30 2012-10-09 Intel Corporation Delivering interrupts directly to a virtual processor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI733745B (zh) * 2017-01-23 2021-07-21 香港商阿里巴巴集團服務有限公司 核心模式的虛擬機器(kvm)虛擬化下處理i/o請求的方法和裝置

Also Published As

Publication number Publication date
TWI375913B (en) 2012-11-01
US20120331467A1 (en) 2012-12-27
EP1804164A1 (en) 2007-07-04
US8938737B2 (en) 2015-01-20
US8286162B2 (en) 2012-10-09
TW200818019A (en) 2008-04-16
JP2007183951A (ja) 2007-07-19
US20070157197A1 (en) 2007-07-05
JP2010176693A (ja) 2010-08-12
US9442868B2 (en) 2016-09-13
US20150205736A1 (en) 2015-07-23
CN101004726A (zh) 2007-07-25
CN102945186A (zh) 2013-02-27

Similar Documents

Publication Publication Date Title
JP5122597B2 (ja) 仮想プロセッサへの直接的なインタラプトの送信
US9619270B2 (en) Remote-direct-memory-access-based virtual machine live migration
JP4668166B2 (ja) ゲストがメモリ変換されたデバイスにアクセスする方法及び装置
US8677356B2 (en) Adjunct partition work scheduling with quality of service attributes
US6961941B1 (en) Computer configuration for resource management in systems including a virtual machine
US7900204B2 (en) Interrupt processing in a layered virtualization architecture
KR102104695B1 (ko) 하드웨어 디바이스에 대한 소프트웨어 인터페이스
JP4980416B2 (ja) 物理デバイスコントローラから割り込みをリダイレクトすることによる複数の仮想デバイスコントローラの提供
US20100174841A1 (en) Providing multiple virtual device controllers by redirecting an interrupt from a physical device controller
US20230359484A1 (en) Inter-thread interrupt signal sending
EP2941694B1 (en) Capability based device driver framework
Kolhe et al. Comparative study on Virtual Machine Monitors for cloud
Liebergeld et al. Towards modular security-conscious virtual machines
Mvondo et al. Tell me when you are sleepy and what may wake you up!
TW201432461A (zh) 在受控代碼中實現的高流通量低延遲使用者模式驅動程式
Djob Mvondo et al. Tellmewhenyouaresleepyandwhatmaywakeyouup!

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120330

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120524

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120605

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120905

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121024

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

Free format text: PAYMENT UNTIL: 20151102

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5122597

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250