JP5562988B2 - 命令群トラッピングによってosコンテキスト切替を最適化するシステム及び方法 - Google Patents

命令群トラッピングによってosコンテキスト切替を最適化するシステム及び方法 Download PDF

Info

Publication number
JP5562988B2
JP5562988B2 JP2012015079A JP2012015079A JP5562988B2 JP 5562988 B2 JP5562988 B2 JP 5562988B2 JP 2012015079 A JP2012015079 A JP 2012015079A JP 2012015079 A JP2012015079 A JP 2012015079A JP 5562988 B2 JP5562988 B2 JP 5562988B2
Authority
JP
Japan
Prior art keywords
virtual machine
register set
event
vmcs
processor
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.)
Expired - Fee Related
Application number
JP2012015079A
Other languages
English (en)
Other versions
JP2012079357A5 (ja
JP2012079357A (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 JP2012079357A publication Critical patent/JP2012079357A/ja
Publication of JP2012079357A5 publication Critical patent/JP2012079357A5/ja
Application granted granted Critical
Publication of JP5562988B2 publication Critical patent/JP5562988B2/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
    • 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/461Saving or restoring of program or task context
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)
  • Stored Programmes (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明の実施形態は、概して計算装置に関し、より具体的には仮想機械間の移行時に限られたコンテキスト情報を保存する技術に関する。
オペレーティングシステム(OS)によって制御されるプロセス間でのコンテキスト切替のために、様々な機構が存在している。同様に、仮想化環境においては、典型的には仮想機械モニタ/マネージャ(VMM)である仮想機械(VM)スケジューラが動作中の仮想機械と動作中でない仮想機械との間で切り替わるとき、コンテキスト切替が必要である。仮想化環境において、VMMは起動中のOSの間で利用可能なプロセッササイクルをスケジューリングする。対応するゲスト仮想機械群においては様々なOSが起動される。ゲストVMの起動をスケジューリングする前に、現在動作中のVMのコンテキストは、該VMの再起動がスケジューリングされた時に該VMが正しく起動することを確保するために保存されなければならない。
様々なプロセッサレジスタがコンテキスト切替の一部として保存されなければならない。プロセッサ固有レジスタに加えて、標準レジスタ、スタックポインタ、MMX、単一命令複数データ(SIMD)及び浮動小数点(FP)のレジスタが保存されなければならない。現在動作中のVMからコンテキストが切り替えられるとき、次にスケジューリングされるVMがスケジューリングされる前に、コンテキストの保存が実行される。次にスケジューリングされたVMのコンテキストレジスタは先のVMの再起動が可能にされることに先立って復元される。コンテキスト切替は時間、電力及びその他の資源の点で高くつくものである。
本発明の一実施形態は、仮想化環境内の仮想機械(VM)間での切替時に保存されるべきコンテキストを制限するシステム及び方法を提供することを目的とする。
少なくとも1つの実施形態において、本発明は、考え得る全てのレジスタを保存する代わりに、現在動作中のVMによって実際に使用されているレジスタセットのみを保存するものである。
本発明の一態様に従った仮想化プラットホームは、複数のレジスタセットを有するプロセッサ;プロセッサ上で動作する複数の仮想機械(VM)であり、各々がゲストオペレーティングシステムにて動作する複数の仮想機械;動作中のVMから該VM内での所定の事象の発生に応答して退去するためのトラップ機構であり、該VM内で該所定の事象が発生したことを指し示す対応するフラグを設定するトラップ機構;及び複数の仮想機械間でスケジューリング及びコンテキストの切替を行う仮想機械モニタ(VMM)であり、複数のVM間でのコンテキスト切替時に複数のレジスタセットの何れが保存され復元されるべきかを、トラップ機構によって設定された対応するフラグに基づいて決定するVMMを有する。
本発明の他の一態様に従った方法は、仮想化プラットホーム内の第1の仮想機械が該仮想化プラットホーム上のプロセッサ内の選択されたレジスタセットを使用するとき、そのことを特定する特定段階;及び選択されたレジスタセットが第1の仮想機械によって使用されていると特定されたとき、第1の仮想機械から第2の仮想機械にプロセッサコンテキストを切り替えることに先立って、仮想機械モニタ(VMM)によって選択されたレジスタセットのコンテキストを保存する保存段階を有する。
本発明の他の一態様に従った機械可読媒体は、実行される時に機械に:仮想化プラットホーム内の第1の仮想機械が該仮想化プラットホーム上のプロセッサ内の選択されたレジスタセットを使用するとき、そのことを特定する特定段階;及び選択されたレジスタセットが第1の仮想機械によって使用されていると特定されたとき、第1の仮想機械から第2の仮想機械にプロセッサコンテキストを切り替えることに先立って、仮想機械モニタ(VMM)によって選択されたレジスタセットのコンテキストを保存する保存段階;を行わせる命令を有する。
本発明の他の一態様に従った方法は、選択されたレジスタセットに対応する命令の仮想機械内での実行に応答して、実行中の仮想機械から仮想機械モニタへのトラップを生じさせる段階;及び仮想機械が選択されたレジスタセットを使用することを指し示すように、選択されたレジスタセットに対応するフラグを設定する段階を有する。
本発明の特徴及び効果は以下の発明の詳細な説明から明らかになる。
本発明の実施形態が実施され得る典型的な仮想化プラットホームを示すブロック図である。 本発明の実施形態に従った典型的なプロセスフローを示すフロー図である。 本発明の実施形態に従って仮想機械モニタ(VMM)が実行され得る典型的なプラットホームを示すブロック図である。
この明細書における本発明の“一実施形態”への言及は、その実施形態に関連して説明された特定の特徴、構造又は特性が、本発明の少なくとも1つの実施形態に含まれることを意味している。故に、この明細書全体を通して様々な箇所に“一実施形態において”という言い回しが現れることは、全てが同一の実施形態について言及しているということでは必ずしもない。
本発明の完全な理解を提供するため、説明目的で、具体的な構成及び詳細事項が説明される。しかしながら、当業者に認識されるように、本発明の実施形態はここで提示される具体的詳細事項を用いなくても実施され得るものである。また、本発明を不明瞭にしないよう、周知の特徴は省略されるか簡略化されるかしている。この説明全体を通して様々な例が与えられるが、これらは本発明の特定の実施形態を単に説明するものであり、本発明の範囲は与えられた例に限定されるものではない。
既存のシステムは、一般的に、VMを一時的に停止させたり別のVMをスケジューリングしたりする前にVMの全てのコンテキストを保存するようになっている。多くの場合、一時停止されるVMは全ての階級のレジスタを使用していたわけではない。例えば、VMは浮動小数点演算を実行していないことがあり、そのVMは、VMMによって再開されるとき、浮動小数点(FP)レジスタのコンテキストを必要としない。既存システムはコンテキストの切替に先立って、とにかくFPレジスタを保存しようとする。この処理は、不要な場合には無駄である。
続いて、図1を参照するに、本発明の実施形態が実施され得る典型的な仮想化プラットホーム100が示されている。VMM110と、ゲストVM101、103、105及び107とはプラットホームハードウェア上で実行される。プラットホームハードウェア120は、プロセッサ122、メモリ124、並びに1つ又は複数のI/O装置126及び128を含み得る。プロセッサ122は、例えばマイクロプロセッサ、デジタル信号プロセッサ又はマイクロコントローラ等の、ソフトウェアを実行可能な如何なる種類のプロセッサであってもよい。プラットホームハードウェア120は、パーソナルコンピュータ(PC)、メインフレーム、手持ち型装置、可搬式コンピュータ、セットトップボックス、又はその他の何らかの計算システムから成り得る。図1は単一のこのようなプロセッサ122を示しているが、プラットホーム120には1つ又は複数のプロセッサが存在していてもよく、プロセッサの1つ以上は複数のスレッド又は複数のコア等を含んでいてもよい。
メモリ124は、ハードディスク、フロッピー(登録商標)ディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、又はプロセッサ122によって読み取り可能なその他の何らかの種類の媒体であり得る。メモリ124は本発明に係る方法の実施形態を実行する命令を格納し得る。
1つ又は複数のI/O装置126及び128は、例えば、ネットワークインターフェースカード、通信ポート、ビデオコントローラ、システムバス(例えば、PCI、ISA、AGP)上のディスクコントローラ、チップセットロジック若しくはプロセッサに一体化された装置(例えば、実時間クロック、プログラム可能タイマ、性能カウンタ)、又はプラットホーム120上のその他の何らかの装置である。1つ又は複数のI/O装置126及び128は、I/O命令又はメモリマップされたI/Oアクセスを介して、あるいは技術的に知られたその他の何らかの手段を介してアクセスされ得る。
プロセッサ122は多様なレジスタ123を有している。レジスタ123は一般的に、プロセッサのコンテキスト切替中に保存される。
本発明の実施形態において、ゲストVMが一組のレジスタを使用して、VMMがコンテキスト切替中に使用レジスタのコンテキストを保存する必要があることを指し示すとき、VMMに通知される。一例において、ストリーミングSIMDエクステンション(SSE)レジスタがゲストVMによって使用される。ある一定の命令はレジスタセットを利用する。例えば、SIMD乗算を実行する命令が知られている。ゲストVMのプロセスがこの命令を実行する場合、このゲストVMにおいてSIMDレジスタが使用される。
既存の仮想化環境においては、ある状況下で仮想化トラップが発生し得る。このトラップはゲストVM上での処理からVMMへの退去(イグジット)を生じさせる。一部の環境において、このトラップはVMイグジット(VM_exit)と呼ばれる。本発明の実施形態は、所定の命令がゲストVMにて実行されるときにトラップすなわちVMイグジットを生じさせる。その使用に注目するVMMに制御が移行する。一実施形態において、VMMは、現セッション中にこの所定の命令が後に使用されることによって更なるトラップが引き起こされないように、そのトラップ機構を除去する。故に、この所定の命令の最初の使用のみがトラップを生じさせる。
次に図2を参照するに、本発明の実施形態に従った典型的なプロセスフローが示されている。段階201にて、コンテキスト切替における標準レジスタ群が把握される。換言すると、レジスタの標準セットはゲストVMコンテキストとともに常に保存される。VMMは、段階203にて、対応するレジスタが使用されていることをVMMに通知するためにトラップを生じさせるように所定組の処理又は命令を設定する。当業者に明らかであるように、何れの命令がトラップを生じさせるべきかを特定することには様々な方法が使用され得る。
仮想化環境で動作する一部の実施形態においては、これらの標的処理を特定するために仮想機械制御構造(virtual machine control structure;VMCS)が使用され得る。VMCSは、特定のVMに割り当てられた各プロセッサの、各VMに割り当てられたデータ構造である。複数のプロセッサを有するシステムにおいて、VMMは或るプロセッサを特定のVMに割り当て、それをその他のVMに割り当てないことを選択してもよい。他の実施形態においては、VMMは全てのVMが全てのプロセッサを使用すること許可してもよい。VMCSは、何れの事象がVMイグジット(トラップ)を生じさせ、何れの事象がトラップを生じさせないかを規定するための多数の制御フィールドを含んでいる。既存システムにおけるVMCSデータ構造は、命令群をトラップするためのフィールドを提供していない。
既存システムにおけるVMCSデータ構造は、特定のレジスタセットにアクセスする命令群に対するトラップ機構のためのフィールドを提供していない。ここで説明されるように事象のトラップを提供するようにVMCSを構成することは、更なるビットフィールドをVMCSに割り当てることによって実行され得る。この更なるビットフィールドは、FP、MMX、SSE、SIMD命令などを特定し、ゲストVMにおける処理が特定のレジスタセットを使用していたかを決定する。
VMCSは動的に変更可能であってもよい。ゲストVMが起動するようにスケジューリングされるとき、VMCSフィールドは標的の命令及び事象が特定され得るように要求に応じて設定されてもよい。例えば、VMCSは、浮動小数点レジスタを使用する命令セットに対応するビットを有していてもよい。この場合、このビットを設定し、そして対応するVMにおいてFDIV命令を実行することは、VMイグジットすなわちハイパーバイザ・トラップを生じさせる。トラップが一旦特定され設定されると、段階205にて通常のOS動作が開始する。
一例において、FDIVのようなFP命令が段階207にて実行され得る。制御はVMMに移行され、段階209にて、トラップを引き起こす処理に基づいて適当な行動が起こされる。この場合、FDIVの使用はその命令を実行したゲストVMに関連付けられ、FPレジスタコンテキストがこのVMのために保存されなければならないことが指し示される。このゲストVMがFPレジスタコンテキストの保存を必要としていることがVMMによって特定されると、段階211にて、現セッションにおいて後続のFP命令の各々がトラップを生じさせることがないようにトラップが無効にされる。
一部の実施形態において、トラップはゲストVMが終了するまで、すなわち、活動停止するまで無効にされたままであってもよい。故に、このゲストVMへの/からの各コンテキスト切替は、(この例において)FPレジスタが保存あるいは復元されることを必要とする。しかしながら、一部のゲストVMはレジスタセットをたまに使用するのみであってもよい。この場合、コンテキスト切替ごとにトラップをリセットすることが一層効率的となり得る。一部の実施形態において、トラップはゲストVMが開始あるいは復旧されるときに再開される。そのとき、VMMはまた、ゲストVMが先のセッションでレジスタセットを使用していたことを“忘れて”いる。この動作セッションの間にゲストVMが特定のレジスタセットを使用しない場合、VMMはそのレジスタセットをコンテキスト保存を必要とするものとして特定しないことになる。故に、コンテキストの保存/復元は最小化され得る。
一実施形態において、標的の事象はVMCSにて特定されてもよい。しかしながら、この事象が発生したとき、この事象がVMイグジットの完全なトラップを要求することなく発生したことを指し示すようにVMCS内でビットが設定あるいはクリアされてもよい。そして、このビットは、レジスタセットが保存/復元されなければならないかを決定するために、コンテキスト切替の開始時に確認されてもよい。事象の発生時にこのビットを自動的に設定するようにプロセッサのハードウェアが構成されてもよい。これは、典型的に、命令セットアーキテクチャが特定の命令上でトラップするように構成されることを必要とする。他の実施形態は、ソフトウェア、ファームウェア、又はハードウェアとファームウェアとソフトウェアとの組み合わせにてビットを設定してもよい。本発明の一部の実施形態は、VT−x(仮想化技術エクステンション)技術を更に拡張することによって実施されてもよい。VT−xに関するもっと多くの情報は、“IA−32インテル(登録商標)アーキテクチャのインテル(登録商標)仮想化技術仕様書”(文書番号C97063−002、2005年4月)に記載されており、またwww.intel.com/cd/00/00/19/76/197666_197666.pdfなるURLにてインターネット上で閲覧することができる。
他の一実施形態においては、VMMは2つ以上のゲストVMが特定のレジスタセットを使用するかどうかを認識してもよい。例えば、仮想化環境内で動作しているゲストVMが5個存在し、その内の1つのみがFP動作を用いていてもよい。この場合、1つのゲストVMのみがFPレジスタにアクセスするので、FPレジスタは保存あるいは復元される必要がない。VMMは、特定のゲストVMがレジスタセットを使用しているかどうかを追跡することに加えて、レジスタセットが第2のゲストVMによって変更される虞があるかどうかを追跡してもよく、その虞がない場合、コンテキスト切替中にレジスタセットを保存/復元しなくてもよい。第2のゲストOSがレジスタセットにアクセスするときには、VMMは、レジスタセットを使用する2つのゲストVMのために、コンテキスト切替時にレジスタセットを保存/復元することになる。
他の一実施形態においては、ゲストVMにて起動中のオペレーティングシステムはVMMと協働する。ゲストOSは自身の処理について知識を有し、何れの処理が何れのレジスタセットを使用するかを知ることができてもよい。例えば、1つの実行処理のみがSIMD命令を使用することをOSが知っている場合、その処理が終了すると、SIMDレジスタはもはや、このゲストVMのコンテキスト切替時に保存/復元される必要はない。この実施形態においては、OSは、先にトラップを生じさせていた処理が終了するとき、VMMに通知してもよく、またVMMは、ゲストVMが特定のレジスタセットを使用しないことを指し示すようにトラップ制御構造をリセットしてもよい。
次に、図3を参照するに、本発明の実施形態に従った先述のVMMが実行され得る典型的なプラットホーム300が示されている。プロセッサ310はフロントサイドバス301を介して、ノースブリッジとしても知られるメモリ・コントローラ・ハブ(MCH)314と信号伝達を行う。MCH314はメモリバス303を介してシステムメモリ312と信号伝達を行う。MCH314はまたグラフィックバス305を介してアドバンスト・グラフィック・ポート(AGP)316と信号伝達を行ってもよい。MCH314は周辺機器インターコネクト(PCI)バス307を介して、サウスブリッジとしても知られるI/Oコントローラ・ハブ(ICH)320と信号伝達を行う。ICH320はロー・ピン・カウント(LPC)バス309を介して、1つ以上の例えばPCIハードドライブ(図示せず)等の機器、例えばIDE322、USB324、LAN326及びオーディオ328等の従前からのレガシー機器、並びにスーパーI/O(SIO)コントローラ356に結合されていてもよい。
プロセッサ310は、例えばマイクロプロセッサ、デジタル信号プロセッサ又はマイクロコントローラ等の、ソフトウェアを実行可能な如何なる種類のプロセッサであってもよい。図3は単一のこのようなプロセッサ310を示しているが、プラットホームハードウェア300には1つ又は複数のプロセッサが存在していてもよく、プロセッサの1つ以上は複数のスレッド又は複数のコア等を含んでいてもよい。
メモリ312は、ハードディスク、フロッピー(登録商標)ディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、又はプロセッサ310によって読み取り可能なその他の何らかの種類の媒体であり得る。メモリ312は本発明に係る方法の実施形態を実行する命令を格納し得る。
I/OコントローラにはLPCバス309を介して、例えばフラッシュメモリ352等の不揮発性メモリが結合され得る。BIOSファームウェア354は一般的にフラッシュメモリ352内にあり、ブートアップがフラッシュすなわちファームウェアからの命令を実行する。
プラットホーム300は、一部の実施形態において、サーバ管理タスクを有効にするサーバである。このプラットホームの実施形態は、LPCバス309を介してICH320に結合されたベースボード管理コントローラ(BMC)350を有していてもよい。
ここで説明された技術は、如何なる特定のハードウェア又はソフトウェア構成にも限定されるものではなく、如何なるコンピュータ環境、家庭用電子機器環境又は処理環境にも適用され得るものである。この技術はハードウェア、ソフトウェア、又はこれら2つの組み合わせにて実現され得る。この技術は、プロセッサ、プロセッサがアクセス可能な記憶媒体(揮発性及び不揮発性のメモリ及び/又は記憶要素を含む)、少なくとも1つの入力装置、及び1つ以上の出力装置を含み得る、例えば移動型若しくは固定型のコンピュータ、携帯情報端末(PDA)、セットトップボックス、携帯電話及びポケベル、家庭用電子機器(DVD再生装置、家庭用ビデオ録画再生装置、家庭用ビデオ再生装置、衛星放送受信器、ステレオ放送受信器、ケーブルテレビ受像器を含む)、並びにその他の電子機器などのプログラム可能な機械上で起動するプログラムにて実現されてもよい。入力装置を用いて入力されたデータにプログラムコードが適用され、記述された機能が実行され、そして出力情報が生成される。出力情報は1つ以上の出力装置に与えられ得る。当業者に認識されるように、本発明は、マルチプロセッサシステム、小型コンピュータ、大型汎用コンピュータ、及び独立型家庭用電子機器などを含む様々なシステム構成を用いて実施され得る。本発明はまた、通信ネットワークを介して連結された遠隔処理装置によってタスク又はその一部が実行される分散型コンピュータ環境にて実施されることもできる。
各プログラムは、処理システムと通信するための高レベル手続き型プログラミング言語又はオブジェクト指向プログラミング言語にて実装され得る。しかしながら、プログラムは要望に応じて、アセンブリ言語又は機械語にて実装されてもよい。何れの場合も、言語はコンパイルあるいは解釈(インタープリット)され得る。
プログラム命令は、命令を用いてプログラムされた汎用あるいは専用の処理システムにここで説明された処理を実行させるために使用され得る。他の例では、この処理はそれを実行するためのハードウェアロジックを含んだ特定のハードウェア要素によって実行されてもよいし、あるいはプログラムされたコンピュータ要素と特別なハードウェア要素との何らかの組み合わせによって実行されてもよい。ここで説明された方法は、該方法を実行するように処理システム又はその他の電子機器をプログラムするために使用され得る命令を格納した機械アクセス可能媒体を含むコンピュータプログラム製品として提供されてもよい。用語“機械アクセス可能媒体”は、ここでは、機械による実行のための命令シーケンスを格納あるいは符号化することが可能で、機械に上述の方法の何れか1つを実行させるような如何なる媒体をも含むものである。従って、用語“機械アクセス可能媒体”は、以下に限定されないが、半導体メモリ、光ディスク及び磁気ディスク、並びにデータ信号を符号化する搬送波を含む。また技術的に、ある1つの形態又は別の1つ形態(例えば、プログラム、手順、プロセス、アプリケーション、モジュール、ロジック等)をしたソフトウェアのことを、行動を起こして結果を生じさせるものとして言うことが一般的である。このような表現は単に、処理システムによるソフトウェアの実行が、結果を生成する活動をプロセッサに実行させることを簡単に述べる言い方である。
本発明は例示的な実施形態を参照して説明されたが、この説明は限定的な意味で解釈されるべきものではない。例示された実施形態への様々な変更、及び本発明のその他の実施形態が、本発明が関連する技術分野の当業者には明らかであり、それらは本発明の意図及び範囲に含まれるものである。

Claims (25)

  1. 仮想化技術を実現するプラットホームアーキテクチャを有する計算プラットホームシステムであって:
    複数のレジスタセットを有するプロセッサ;
    前記プロセッサ上で動作する複数の仮想機械(VM)であり、各VMがゲストオペレーティングシステムにて動作し、各VMに少なくとも1つの仮想機械制御構造(VMCS)が付随し、該VMCSが、選択されたレジスタセットにアクセスするプロセッサ命令に関するトラップ事象を指し示す複数のフィールドを有する、複数の仮想機械;
    動作中のVMから該VMにおける所定のトラップ事象の発生に応答してイグジットするための各VMのトラップ機構であり、該VMにおいて該所定のトラップ事象が発生したことを指し示すように該VMのVMCS内の第1のフィールドを設定するトラップ機構;及び
    前記複数の仮想機械間でコンテキスト切替をスケジューリングし且つ前記複数の仮想機械間でコンテキストを切替える仮想機械モニタ(VMM)であり:
    当該VMMは、前記複数のレジスタセットのうちの何れが前記複数のVMのうちの少なくとも1つ及び前記プロセッサ上で実行されている処理によって使用されるかを認識し;
    当該VMMは、前記複数のVM間でのコンテキスト切替時に前記複数のレジスタセットのうちの何れが保存され復元されるべきかを、少なくとも部分的に前記VMのVMCS内の前記第1のフィールドに基づいて決定し;且つ
    コンテキスト切替において、当該VMMは、前記複数のVMのうちの少なくとも1つによってアクセスされるレジスタセットのコンテキストを保存するが、前記複数のVMのうちの何れの1つによっても使用されないレジスタセットのコンテキストを保存しない;
    VMM;
    を有するシステム。
  2. 前記トラップ機構は、トラップを生じさせる複数の事象を特定するためのVMCSデータ構造を有する、請求項1に記載のシステム。
  3. 前記第1のフィールドは、VMCSデータ構造内の1ビットを有し、前記複数の仮想機械の各々は少なくとも1つの対応するVMCSを有する、請求項1に記載のシステム。
  4. 前記VMCS内の前記第1のフィールドは、所定の事象に応答してリセットされる、請求項1に記載のシステム。
  5. 選択されたレジスタセットにアクセスするプロセッサ命令に関する前記所定のトラップ事象の前記トラップは、選択された事象が以前に仮想機械内で発生したことに応答して、該選択された事象に対して該仮想機械内で無効にされる、請求項1に記載のシステム。
  6. 無効にされた事象トラップは該仮想機械が再開されるときに該仮想機械に対して再び有効にされる、請求項5に記載のシステム。
  7. コンテキスト切替において、前記VMMは、前記複数のVMのうちの2つ以上によってアクセスされるレジスタセットのコンテキストを保存し、前記複数のVMのうちの1つ以下によって使用されるレジスタセットのコンテキストを保存しない、請求項1に記載のシステム。
  8. 前記複数の仮想機械の1つにて起動されているオペレーティングシステム(OS)は、選択されたレジスタセットが該OSの下で起動されている処理によってもはやアクセスされていないとき、そのことを前記VMMに通知する、請求項1に記載のシステム。
  9. コンピュータによって実行される方法であって:
    仮想化技術を実現する計算プラットホーム内の第1の仮想機械が該プラットホーム上のプロセッサ内の複数のレジスタセットのうちの選択されたレジスタセットを使用するとき、そのことを前記プロセッサによって特定する特定段階であり、前記第1の仮想機械に少なくとも1つの仮想機械制御構造(VMCS)が付随し、前記VMCSは、前記選択されたレジスタセットにアクセスするプロセッサ命令に関する複数のトラップ事象を指し示す複数のフィールドを有し、当該特定段階は更に、前記該選択されたレジスタセットの使用を指し示す該第1の仮想機械における事象をトラップする段階と、該選択されたレジスタセットが該第1の仮想機械によって使用されることを指し示すように前記VMCSの前記複数のフィールドのうちの第1のフィールドを設定する段階とを有する特定段階;
    前記プロセッサ上で動作する仮想機械モニタ(VMM)によって、対応する選択されたレジスタセットに対して前記第1のフィールドが設定されているかを決定する決定段階;
    前記選択されたレジスタセットが前記第1の仮想機械によって使用されていると特定されたとき、前記第1の仮想機械から第2の仮想機械にプロセッサコンテキストを切り替えることに先立って、前記仮想機械モニタ(VMM)を用いて、前記第1の仮想機械に対して前記選択されたレジスタセットのコンテキストのみを保存する保存段階;及び
    前記選択されたレジスタセットが前記第1の仮想機械によって使用されていると前記VMMによって特定されたとき、前記第2の仮想機械から前記第1の仮想機械にプロセッサコンテキストを切り替えることに先立って、前記第1の仮想機械に対して前記選択されたレジスタセットのコンテキストを復元する段階;
    を有する方法。
  10. 前記特定段階は更に:
    所定の命令の実行に応答して、該所定の命令が仮想機械制御構造(VMCS)内で前記選択されたレジスタセットに対応するものとして規定されているかを決定する段階;
    を有する、請求項9に記載の方法。
  11. 前記事象をトラップする段階は更に:
    前記第1の仮想機械における前記事象がトラップされるべきかを、前記事象に対応する前記VMCS内のビットデータに基づいて特定する段階;及び
    前記事象がトラップされるべきであることを前記VMCSが指し示すとき、前記第1の仮想機械における前記事象をトラップし、前記事象がトラップされるべきでないことを前記VMCSが指し示すとき、前記事象をトラップしない段階;
    を有する、請求項9に記載の方法。
  12. 前記選択されたレジスタセットが、前記第1の仮想機械によって使用されているとして以前に特定されているとき、前記事象をトラップしない段階;
    を更に有する請求項9に記載の方法。
  13. 前記第1の仮想機械以外の仮想機械が前記選択されたレジスタセットを使用するかを決定する段階;及び
    前記選択されたレジスタセットが前記第1の仮想機械以外の仮想機械によって使用されない場合、前記選択されたレジスタセットのコンテキストを保存しない段階;
    を更に有する請求項9に記載の方法。
  14. 前記第1の仮想機械が前記選択されたレジスタセットをもはや使用しないことを前記VMMに通知する段階;
    を更に有する請求項9に記載の方法。
  15. 実行される時に機械に:
    仮想化技術を実現する計算プラットホーム内の第1の仮想機械が該プラットホーム上のプロセッサ内の複数のレジスタセットのうちの選択されたレジスタセットを使用するとき、そのことを特定する特定段階であり、前記第1の仮想機械に少なくとも1つの仮想機械制御構造(VMCS)が付随し、前記VMCSは、前記選択されたレジスタセットにアクセスするプロセッサ命令に関する複数のトラップ事象を指し示す複数のフィールドを有し、当該特定段階は更に、前記第1の仮想機械における事象をトラップする段階を有し、該事象は、前記VMCSの前記複数のフィールドのうちの第1のフィールドを設定し、それにより、前記選択されたレジスタセットが前記第1の仮想機械によって使用されることを指し示す特定段階;
    前記プロセッサ上で動作する仮想機械モニタ(VMM)によって、対応する選択されたレジスタセットに対して前記第1のフィールドが設定されているかを決定する決定段階;
    前記選択されたレジスタセットが前記第1の仮想機械によって使用されていると特定されたとき、前記第1の仮想機械から第2の仮想機械にプロセッサコンテキストを切り替えることに先立って、前記仮想機械モニタ(VMM)を用いて、前記第1の仮想機械に対して前記選択されたレジスタセットのコンテキストを保存する保存段階
    複数の仮想機械(VM)のうちの少なくとも1つ及び前記プロセッサ上で実行されている処理の何れにも使用されないレジスタセットのコンテキストを保存しない段階;及び
    前記選択されたレジスタセットが前記第1の仮想機械によって使用されていると前記VMMによって特定されたとき、前記第2の仮想機械から前記第1の仮想機械にプロセッサコンテキストを切り替えることに先立って、前記第1の仮想機械に対して前記選択されたレジスタセットのコンテキストを復元する段階;
    を行わせる命令を有する機械読み取り可能な記録媒体。
  16. 前記特定段階は更に:
    所定の命令の実行に応答して、該所定の命令が前記VMCS内で前記選択されたレジスタセットに対応するものとして規定されているかを決定する段階;
    を有する、請求項15に記載の記録媒体。
  17. 前記事象をトラップする段階は更に:
    前記第1の仮想機械における前記事象がトラップされるべきかを、前記事象に対応する前記VMCS内のビットデータに基づいて特定する段階;及び
    前記事象がトラップされるべきであることを前記VMCSが指し示すとき、前記第1の仮想機械における前記事象をトラップし、前記事象がトラップされるべきでないことを前記VMCSが指し示すとき、前記事象をトラップしない段階;
    を有する、前記請求項15に記載の記録媒体。
  18. 前記選択されたレジスタセットが、前記第1の仮想機械によって使用されているとして以前に特定されているとき、前記事象をトラップしない段階;
    を行わせる命令を更に有する請求項15に記載の記録媒体。
  19. 前記第1の仮想機械以外の仮想機械が前記選択されたレジスタセットを使用するかを決定する段階;及び
    前記選択されたレジスタセットが前記第1の仮想機械以外の仮想機械によって使用されない場合、前記選択されたレジスタセットのコンテキストを保存しない段階;
    を行わせる命令を更に有する請求項15に記載の記録媒体。
  20. 前記第1の仮想機械が前記選択されたレジスタセットをもはや使用しないことを前記VMMに通知する段階;
    を行わせる命令を更に有する請求項15に記載の記録媒体。
  21. コンピュータによって実行される方法であって:
    複数のレジスタセットを有するプロセッサ上で動作する第1の仮想機械での、前記複数のレジスタセットのうちの選択されたレジスタセットに対応する命令の実行に応答して、前記命令が前記第1の仮想機械から仮想機械モニタへのトラップを生じさせる段階であり、前記第1の仮想機械に少なくとも1つの仮想機械制御構造(VMCS)が付随し、前記VMCSは、前記選択されたレジスタセットにアクセスするプロセッサ命令に関する複数のトラップ事象を指し示す複数のフィールドを有し、前記複数のフィールドの各々が前記複数のレジスタセットのうちのそれぞれの1つに対応する、段階
    前記プロセッサによって、前記第1の仮想機械が前記選択されたレジスタセットを使用することを指し示すように、前記VMCSの前記複数のフィールドのうちの第1のフィールドを設定する段階;
    前記プロセッサによって、前記第1のフィールドを設定する段階後、前記選択されたレジスタセットに対する前記第1の仮想機械のトラップを無効にする段階;及び
    前記第1の仮想機械と第2の仮想機械との間でのプロセッサコンテキスト切替の要求に応答して、前記プロセッサ上で動作する仮想機械モニタ(VMM)によって、前記選択されたレジスタセットが保存あるいは復元される必要があるかを、少なくとも部分的に前記第1のフィールドに基づいて決定し、且つ前記第1の仮想機械によってアクセスされるレジスタセットのコンテキストのみを保存する段階;
    を有する方法。
  22. 前記第1及び第2の仮想機械間でのプロセッサコンテキスト切替要求に応答して、前記対応する第1のフィールドが設定されているとき、前記選択されたレジスタセットのコンテキストを保存する段階;
    を更に有する請求項21に記載の方法。
  23. コンピュータによって実行される方法であって:
    仮想化技術を実現する計算プラットホーム内のプロセッサによって、前記プラットフォーム上で動作する第1の仮想機械が前記プロセッサ内の複数のレジスタセットのうちの選択された1つを使用するとき、そのことを特定する段階であり、
    前記第1の仮想機械に少なくとも1つの仮想機械制御構造(VMCS)が付随し、前記VMCSは、前記選択されたレジスタセットにアクセスするプロセッサ命令に関する複数のトラップ事象を指し示す複数のフィールドを有し、
    当該特定する段階は更に、所定の命令の実行に応答して、該所定の命令が前記VMCS内で前記選択されたレジスタセットに対応するものとして規定されているかを決定する段階と、前記第1の仮想機械における事象をトラップする段階を有し、該事象は、前記選択されたレジスタセットが前記第1の仮想機械によって使用されることを指し示すように前記VMCSの前記複数のフィールドのうちの第1のフィールドを設定し、前記トラップする段階は更に、前記第1の仮想機械における該事象がトラップされるべきかを、該事象に対応する前記VMCS内のビットに基づいて特定することを有する、特定する段階;
    前記プロセッサによって、前記事象がトラップされるべきであることを前記VMCSが指し示すとき、前記第1の仮想機械における前記事象をトラップし、前記事象がトラップされるべきでないことを前記VMCSが指し示すとき、前記事象をトラップしない段階;及び
    前記選択されたレジスタセットが前記第1の仮想機械によって使用されていると特定されたとき、前記第1の仮想機械から第2の仮想機械にプロセッサコンテキストを切り替えることに先立って、仮想機械モニタ(VMM)を用いて、前記第1の仮想機械に対して前記選択されたレジスタセットのコンテキストのみを保存する段階;
    を有する方法。
  24. 記第2の仮想機械が前記選択されたレジスタセットを使用するかを決定する段階;及び
    前記選択されたレジスタセットが前記第2の仮想機械によって使用されないとき、前記第1の仮想機械に対して前記選択されたレジスタセットの前記コンテキストを保存しない段階;
    を更に有する請求項23に記載の方法。
  25. 前記第1の仮想機械が前記選択されたレジスタセットをもはや使用しないことを前記VMMに通知する段階;
    を更に有する請求項23に記載の方法。
JP2012015079A 2005-06-30 2012-01-27 命令群トラッピングによってosコンテキスト切替を最適化するシステム及び方法 Expired - Fee Related JP5562988B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/174,254 US7904903B2 (en) 2005-06-30 2005-06-30 Selective register save and restore upon context switch using trap
US11/174,254 2005-07-01

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2008519684A Division JP2008545205A (ja) 2005-06-30 2006-06-29 命令群トラッピングによってosコンテキスト切替を最適化するシステム及び方法

Publications (3)

Publication Number Publication Date
JP2012079357A JP2012079357A (ja) 2012-04-19
JP2012079357A5 JP2012079357A5 (ja) 2013-04-18
JP5562988B2 true JP5562988B2 (ja) 2014-07-30

Family

ID=37075628

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2008519684A Pending JP2008545205A (ja) 2005-06-30 2006-06-29 命令群トラッピングによってosコンテキスト切替を最適化するシステム及び方法
JP2012015079A Expired - Fee Related JP5562988B2 (ja) 2005-06-30 2012-01-27 命令群トラッピングによってosコンテキスト切替を最適化するシステム及び方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2008519684A Pending JP2008545205A (ja) 2005-06-30 2006-06-29 命令群トラッピングによってosコンテキスト切替を最適化するシステム及び方法

Country Status (6)

Country Link
US (1) US7904903B2 (ja)
EP (1) EP1899810B1 (ja)
JP (2) JP2008545205A (ja)
KR (1) KR100974108B1 (ja)
CN (1) CN101213518B (ja)
WO (1) WO2007005819A1 (ja)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7904903B2 (en) 2005-06-30 2011-03-08 Intel Corporation Selective register save and restore upon context switch using trap
US20080052776A1 (en) * 2006-08-25 2008-02-28 Nomadrive, Inc. Method and apparatus of an unintrusive plug and play application virtualization platform
US8296775B2 (en) * 2007-01-31 2012-10-23 Microsoft Corporation Efficient context switching of virtual processors by managing physical register states in a virtualized environment
US7941657B2 (en) * 2007-03-30 2011-05-10 Lenovo (Singapore) Pte. Ltd Multi-mode mobile computer with hypervisor affording diskless and local disk operating environments
JP4864817B2 (ja) * 2007-06-22 2012-02-01 株式会社日立製作所 仮想化プログラム及び仮想計算機システム
US8261284B2 (en) * 2007-09-13 2012-09-04 Microsoft Corporation Fast context switching using virtual cpus
JP4530182B2 (ja) * 2008-02-27 2010-08-25 日本電気株式会社 プロセッサ、メモリ装置、処理装置及び命令の処理方法
US8397216B2 (en) * 2008-02-29 2013-03-12 International Business Machines Corporation Compiler for a declarative event-driven programming model
US8365149B2 (en) * 2008-02-29 2013-01-29 International Business Machines Corporation Debugger for a declarative event-driven programming model
US8627299B2 (en) * 2008-02-29 2014-01-07 International Business Machines Corporation Virtual machine and programming language for event processing
US8468533B2 (en) * 2008-04-28 2013-06-18 Panasonic Corporation Virtual machine control device, method, and program wherein a switching task used to switch to the highest priority virtual machines is the highest priority task in the current virtual machine and the virtual machine that is the switching target
US9417914B2 (en) * 2008-06-02 2016-08-16 Microsoft Technology Licensing, Llc Regaining control of a processing resource that executes an external execution context
JP5405799B2 (ja) * 2008-10-30 2014-02-05 株式会社日立製作所 仮想計算機の制御方法、仮想化プログラム及び仮想計算機システム
US8429648B2 (en) * 2009-05-28 2013-04-23 Red Hat, Inc. Method and apparatus to service a software generated trap received by a virtual machine monitor
US8813069B2 (en) * 2009-05-29 2014-08-19 Red Hat, Inc. Migration of functionalities across systems
KR101651202B1 (ko) * 2009-12-21 2016-08-26 삼성전자주식회사 가상화 장치 및 가상화 장치의 동작 방법
US8612633B2 (en) * 2010-03-31 2013-12-17 Microsoft Corporation Virtual machine fast emulation assist
JP5758914B2 (ja) * 2010-12-21 2015-08-05 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 仮想計算機システム及び仮想計算機システム制御方法
JP5369356B2 (ja) * 2011-11-09 2013-12-18 株式会社日立製作所 仮想化プログラム
KR101433644B1 (ko) * 2011-11-09 2014-08-27 상명대학교서울산학협력단 Arm 기반 운영체제의 가상화를 위한 정책 제공 시스템 및 방법
US9164789B2 (en) * 2012-02-29 2015-10-20 Red Hat Israel, Ltd. Multiple queue management and adaptive CPU matching in a virtual computing system
CN104321749B (zh) * 2012-03-29 2019-01-29 英特尔公司 用于管理虚拟化环境中的中断的体系结构和方法
US9052971B2 (en) 2012-07-12 2015-06-09 International Business Machines Corporation Scalable event-driven system
WO2014081608A1 (en) * 2012-11-20 2014-05-30 Unisys Corporation Optimized execution of virtualized software using securely partitioned virtualization system with dedicated resources
US10572665B2 (en) 2012-12-28 2020-02-25 Fireeye, Inc. System and method to create a number of breakpoints in a virtual machine via virtual machine trapping events
CN104937550B (zh) * 2013-01-15 2019-03-26 英派尔科技开发有限公司 以函数为目标的虚拟机切换
JP5608797B2 (ja) * 2013-07-31 2014-10-15 株式会社日立製作所 仮想化プログラム、仮想計算機システム及び計算機システム制御方法
KR102033009B1 (ko) * 2013-09-13 2019-10-16 한국전자통신연구원 가상 물리 시스템 및 그의 가상 머신 모니터링 방법
JP5584811B2 (ja) * 2013-10-30 2014-09-03 株式会社日立製作所 仮想計算機の制御方法、仮想化プログラム及び仮想計算機システム
US11249777B2 (en) * 2014-07-10 2022-02-15 Red Hat Israel, Ltd. Virtual machine context management
US9946566B2 (en) * 2015-09-28 2018-04-17 Intel Corporation Method and apparatus for light-weight virtualization contexts
KR101690949B1 (ko) 2016-03-11 2016-12-29 국방과학연구소 가상화 환경에서의 가상머신 게스트 os 자원 정보 수집 장치 및 방법
US20180299269A1 (en) * 2016-07-27 2018-10-18 Lumedyne Technologies Incorporated Multi-axis, single-drive inertial device
US10248595B2 (en) * 2017-08-10 2019-04-02 Infineon Technologies Ag Virtual machine monitor interrupt support for computer processing unit (CPU)
US10394595B2 (en) * 2017-08-23 2019-08-27 Intel Corporation Method to manage guest address space trusted by virtual machine monitor
US10592164B2 (en) 2017-11-14 2020-03-17 International Business Machines Corporation Portions of configuration state registers in-memory
US10496437B2 (en) * 2017-11-14 2019-12-03 International Business Machines Corporation Context switch by changing memory pointers
US20230088998A1 (en) * 2021-09-17 2023-03-23 Samsung Electronics Co., Ltd. System on chip, controller and vehicle

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4787031A (en) * 1985-01-04 1988-11-22 Digital Equipment Corporation Computer with virtual machine mode and multiple protection rings
JPS61183742A (ja) * 1985-02-08 1986-08-16 Hitachi Ltd フロ−テイング演算プロセツサのプログラム実行制御装置
JPH0754470B2 (ja) 1986-03-24 1995-06-07 株式会社日立製作所 仮想計算機システムの制御方法
JPH0373027A (ja) 1989-08-14 1991-03-28 Fujitsu Ltd ベクトルレジスタ退避復元方式
JPH03292527A (ja) * 1990-04-11 1991-12-24 Fujitsu Ltd 演算装置
JP2902746B2 (ja) * 1990-07-27 1999-06-07 富士通株式会社 仮想計算機制御方式
JPH056281A (ja) 1990-10-04 1993-01-14 Nec Corp 情報処理装置
JPH06242973A (ja) * 1993-02-16 1994-09-02 Fujitsu Ltd 仮想計算機システムにおけるvmへのvpマシンチェックの通知方法
US5481719A (en) * 1994-09-09 1996-01-02 International Business Machines Corporation Exception handling method and apparatus for a microkernel data processing system
US7275246B1 (en) * 1999-01-28 2007-09-25 Ati International Srl Executing programs for a first computer architecture on a computer of a second architecture
US6961941B1 (en) * 2001-06-08 2005-11-01 Vmware, Inc. Computer configuration for resource management in systems including a virtual machine
US7191440B2 (en) * 2001-08-15 2007-03-13 Intel Corporation Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor
US7127548B2 (en) * 2002-04-16 2006-10-24 Intel Corporation Control register access virtualization performance improvement in the virtual-machine architecture
US7484208B1 (en) * 2002-12-12 2009-01-27 Michael Nelson Virtual machine migration
US7793286B2 (en) * 2002-12-19 2010-09-07 Intel Corporation Methods and systems to manage machine state in virtual machine operations
US7415708B2 (en) * 2003-06-26 2008-08-19 Intel Corporation Virtual machine management using processor state information
US7552426B2 (en) * 2003-10-14 2009-06-23 Microsoft Corporation Systems and methods for using synthetic instructions in a virtual machine
US20050132364A1 (en) 2003-12-16 2005-06-16 Vijay Tewari Method, apparatus and system for optimizing context switching between virtual machines
US7478388B1 (en) * 2004-04-21 2009-01-13 Vmware, Inc. Switching between multiple software entities using different operating modes of a processor in a computer system
US7500244B2 (en) * 2004-06-30 2009-03-03 Intel Corporation Adaptive algorithm for selecting a virtualization algorithm in virtual machine environments
US20060070065A1 (en) * 2004-09-29 2006-03-30 Zimmer Vincent J Memory support for heterogeneous virtual machine guests
US20060149940A1 (en) * 2004-12-27 2006-07-06 Intel Corporation Implementation to save and restore processor registers on a context switch
US7904903B2 (en) 2005-06-30 2011-03-08 Intel Corporation Selective register save and restore upon context switch using trap

Also Published As

Publication number Publication date
EP1899810A1 (en) 2008-03-19
WO2007005819A1 (en) 2007-01-11
KR20080020639A (ko) 2008-03-05
JP2012079357A (ja) 2012-04-19
US7904903B2 (en) 2011-03-08
US20070006228A1 (en) 2007-01-04
KR100974108B1 (ko) 2010-08-04
EP1899810B1 (en) 2018-01-10
CN101213518B (zh) 2012-10-10
JP2008545205A (ja) 2008-12-11
CN101213518A (zh) 2008-07-02

Similar Documents

Publication Publication Date Title
JP5562988B2 (ja) 命令群トラッピングによってosコンテキスト切替を最適化するシステム及び方法
CN101405712B (zh) 利用虚拟化技术来加速域特定运行时环境的框架
US8943346B2 (en) Distributed advanced power management
JP4564536B2 (ja) 仮想マシンモニタに関連するタイマへのサポートを提供する方法及び装置
US7886190B2 (en) System and method for enabling seamless boot recovery
US8176485B2 (en) Launching hypervisor under running operating system
US7793127B2 (en) Processor state restoration and method for resume
JP6556748B2 (ja) コンピュータにおいて複数のスレッドをディスパッチするための方法、システム、およびコンピュータ・プログラム
US7584374B2 (en) Driver/variable cache and batch reading system and method for fast resume
US9563439B2 (en) Caching unified extensible firmware interface (UEFI) and/or other firmware instructions in a non-volatile memory of an information handling system (IHS)
US20110072254A1 (en) Method and system for secured dynamic bios update
US9164784B2 (en) Signalizing an external event using a dedicated virtual central processing unit
US9417886B2 (en) System and method for dynamically changing system behavior by modifying boot configuration data and registry entries
US7082542B2 (en) Power management using processor throttling emulation
JP6556747B2 (ja) コンピュータ内の複数のスレッドをエグジットするための方法、システム、およびコンピュータ・プログラム
JP2017515204A (ja) コンピュータ内の複数のスレッドを管理する制御エリアを提供するためのシステム、方法、およびコンピュータ・プログラム製品
US8473945B2 (en) Enabling system management mode in a secure system
CN115988218B (zh) 一种虚拟化视频编解码系统、电子设备和存储介质
WO2015041636A1 (en) Virtual machine switching based on processor power states
JP2017513128A (ja) マルチスレッド・ゲスト仮想マシン(vm)をディスパッチするためのシステム、方法およびコンピュータ・プログラム製品
US20230169163A1 (en) Software isolation using event driven multi-threading
US7797473B2 (en) System for executing system management interrupts and methods thereof
CN110795231A (zh) 一种虚拟cpu的处理方法及装置
US11068302B2 (en) Method for regulating system management mode function calls and system therefor
US20240020103A1 (en) Parallelizing data processing unit provisioning

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120224

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130903

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130904

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131203

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140611

R150 Certificate of patent or registration of utility model

Ref document number: 5562988

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees