JP2017511926A - 仮想化コンピューティング装置及び方法 - Google Patents

仮想化コンピューティング装置及び方法 Download PDF

Info

Publication number
JP2017511926A
JP2017511926A JP2016553360A JP2016553360A JP2017511926A JP 2017511926 A JP2017511926 A JP 2017511926A JP 2016553360 A JP2016553360 A JP 2016553360A JP 2016553360 A JP2016553360 A JP 2016553360A JP 2017511926 A JP2017511926 A JP 2017511926A
Authority
JP
Japan
Prior art keywords
cache
hypervisor
code
operating system
virtual machine
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
JP2016553360A
Other languages
English (en)
Other versions
JP6273034B2 (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 JP2017511926A publication Critical patent/JP2017511926A/ja
Application granted granted Critical
Publication of JP6273034B2 publication Critical patent/JP6273034B2/ja
Active 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0808Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device

Landscapes

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

Abstract

仮想化コンピューティング装置及び方法の実施形態を記載する。実施形態においては、装置は、一以上のプロセッサコアと、一以上のプロセッサコアに結合したキャッシュと、を含み得る。装置は、さらに、装置上にある仮想マシンの動作を管理する、一以上のプロセッサコアによって動作されるハイパーバイザを有する。管理には、キャッシュの一部を選択して、ハイパーバイザ又は一の仮想マシンの選択データ又はコードを記憶すること、キャッシュの一部をロックして、選択データ又はコードがキャッシュから退去させられるのを防止することが含まれる。他の実施形態が記載及び/又はクレームされ得る。

Description

本願は、2014年3月21日に出願された”APPARATUS AND METHOD FOR VIRTUALIZED COMPUTING”と題する、米国特許出願番号14/222,416号に基づく優先権を主張する。
本開示は、一般的に、コンピューティングの技術分野に関し、より詳細には、仮想化コンピューティング装置及び方法に関する(が、これらには限られない)。
本明細書で提供する背景技術の記載は、本開示の背景を一般的に提示することを目的とする。本明細書で別段定めのない限り、このセクションで記載されるものは、本願の特許請求の範囲に対する先行技術とはならないし、先行技術であるとも認められないし、このセクションの内容を含めることによって先行技術の示唆であるとも認められない。
コンピュータ仮想化には、コンピュータハードウェアの仮想化が含まれる。ユーザの側からすると、コンピュータ仮想化は、抽象的コンピューティングプラットフォーム(例えば、仮想マシン(VM))を提供し得る。この抽象的コンピューティングプラットフォームは、下層のハードウェアを共有しつつ、他のプログラムセット又は他の抽象的コンピューティングプラットフォームの実行とは独立してプログラムセットを実行するものである。典型的には、各VMは、自己のオペレーティングシステムを有する。このオペレーティングシステムは、他のVMのオペレーティングシステムと同一又は異なり得る。仮想化は、仮想マシンモニタとしても知られる(VMM)、ハイパーバイザにより制御され得る。
ジッタ(Jitter)がVMエグジット(Exit)及びVMエントリ(Entry)時間で起き得る。VMエグジットが起きるとき、ハイパーバイザのいくらかのデータ又はコードをメインメモリからフェッチする必要があり得る。同様に、他方、ハイパーバイザがVMの制御に戻るとき(例えば、VMエントリの後)、VMのいくらかのデータ又はコードをメインメモリからフェッチする必要があり得る。ジッタの影響はマルチコアの実行状況ではより厳しくなり得る。ここでは、データ又はコードを、互いのキャッシュから、又は共有キャッシュから退避させ得る。ジッタは、二つのシステムが単一又はマルチコアのシステム上で独立して動作しようとするとき(例えば、同一のマルチコアプロセッサ上でリアルタイムオペレーティングシステム及び汎用オペレーティングシステムを動作するとき)、負荷集約(workload consolidation)についての重要な課題となり得る。
実施形態は、添付の図面と供せて、次の詳細な説明により容易に理解できるものである。この記載を容易にするため、類似の参照番号は類似の構造要素を示す。実施形態は、添付の図面における限定としてではなく、例として説明される。
図1は、種々の実施形態に従った、本開示の観点を組み込んでいる仮想化コンピューティング装置の実装例を示す概略図である。 図2は、種々の実施形態に従った、本開示の観点を組み込んでいる装置例により実施し得る仮想化コンピューティングプロセス例のフロー図である。 図3は、種々の実施形態に従った、本開示の観点を組み込んでいる装置例により実施し得るキャッシュサービス品質クラスを示す概略図である。 図4は、種々の実施形態に従った、本開示の実施形態を実施するのに好適なコンピューティング装置例を示す。 図5は、種々の実施形態に従った、本開示の観点を組み込んでいるプログラム命令を有する製品を示す。
仮想化コンピューティング装置及び方法の実施形態を本明細書に記載する。実施形態においては、装置は、一以上のプロセッサコアと、一以上のプロセッサコアに結合したキャッシュと、を含み得る。以下、プロセッサコアは単にコアと呼び得る。装置は、さらに、装置上にある仮想マシンの動作を管理する、一以上のプロセッサコアによって動作されるハイパーバイザを有する。管理には、キャッシュの一部を選択して、ハイパーバイザ又は一の仮想マシンの選択データ又はコードを記憶すること、キャッシュの一部をロックして、選択データ又はコードがキャッシュから退去(evicted)させられるのを防止することが含まれる。本開示のこれらの及び他の観点を以下により詳細に記載することにする。
次の詳細な説明においては、参照番号を詳細な説明の一部を形成する添付の図面に付し、類似の参照番号は全体を通して類似の部分を示し、実施され得る実施形態が図示により図面に示される。他の実施形態を利用し得るし、構造的又は論理的変更を、本願の開示範囲から逸脱することなくなし得ることが理解される。従って、次の詳細な説明は、限定的な意味で捉えられることなく、実施形態の範囲は添付の特許請求の範囲と、その均等物によって規定される。
種々の動作が、次々に複数の個別の活動又は動作として記載され得る。その記載の仕方が、特許請求の範囲に記載された主題を理解するのに最も有益である。しかし、記載の順序は、これらの動作が順序依存であることが必要であると示唆するものとして解釈されるべきではない。特に、これらの動作は、提示の順序で実行されなくてもよい。記載する動作は、記載する実施形態のものとは異なる順序で実行し得る。種々の付加的な動作を実行してもよく、及び/又は記載する処理を付加的な実施形態において省略してもよい。
本開示上、表現「A及び/又はB」は、(A)、(B)又は(A及びB)を意味する。本開示上、表現「A、B、及び/又はC」は、(A)、(B)、(C)、(A及びB)、(A及びC)、(B及びC)又は(A、B及びC)を意味する。本開示は「ある(a)」若しくは「第一(a first)」要素又はそれらの均等物を規定する場合、そのような開示は、一以上のそのような要素を含むのであって、二以上のそのような要素を必要ともしないし、排除もしない。さらに、特定された要素についての順序の指示(例えば、第一、第二又は第三)は、複数の要素を区別するのに用いられ、そのような要素の数が必要、又は数に限られることを示す又は示唆しておらず、特に言及されない限りは、そのような要素の特定の位置又は順序を示していない。
記載において、一の実施形態又はある実施形態に対する参照は、その実施形態に関連して記載された特定の特徴、構造、特性が、本発明の少なくとも一の実施形態に含まれることを意味する。記載では、表現「一の実施形態において」、「別の実施形態において」、「(複数)実施形態において」、「種々の実施形態において」等を用い得るが、それぞれ、同一又は異なる実施形態の一つ以上を示し得る。さらに、用語「含む(comprising)」、「含む(including)」、「有する(having)」等は、本開示の実施形態に関して用いるように、同義である。
実施形態において、用語「モジュール」は、特定用途向け集積回路(ASIC)、電子回路、一以上のソフトウェア若しくはファームウェアプログラムを実行するプロセッサ(共有、専用若しくはグループ)及び/若しくはメモリ(共有、専用若しくはグループ)、組み合わせ論理回路並びに/又は記載の機能性を提供する他の好適なコンポーネント、の一部である又はそれらを含むこと示し得る。実施形態においては、モジュールは、ファームウェア、ソフトウェア又はファームウェア、ハードウェア及びソフトウェアの任意の組み合わせで実装し得る。実施形態において、用語「インタフェース」は、ソフトウェア又はコンピュータハードウェアとの相互作用点を示してよく、ソフトウェアとソフトウェア、ソフトウェアとハードウェア及びハードウェアとハードウェアの相互作用を含む。
ここで図1を参照して、種々の実施形態に従った、仮想化コンピューティング装置の実装例を示す。図のように、装置100は、ハイパーバイザ120の管理下で、一以上の仮想マシン130の実行を主催する(host)ホスト110を含み得る。いくつかの実施形態においては、装置100は、モバイルコンピューティング装置であり得る。いくつかの実施形態においては、装置100は、静的コンピューティング装置であり得る。いくつかの実施形態においては、装置100は、種々のウェアラブル装置、モバイル装置又は静的デバイスが分散した種々のコンポーネント又はサブシステムを有する分散型システムであり得る。
実施形態において、装置100は、ハードウェア仮想化又はプラットフォーム仮想化に好適であり得る。ここでは、VM130がゲストオペレーティングシステム(GOS)132を有するコンピュータのようにふるまう。GOS132はホスト110上で実行しているホストオペレーティングシステムとは異なるものである。ハイパーバイザ120は仮想マシンモニタでよく、VM130を生成する及び/又はホスト110上でVM130が動作することを可能にし得る。ハイパーバイザ120は、種々の実施形態において、コンピュータソフトウェア、ファームウェア又はハードウェアの部品であり得る。ハイパーバイザ120は、仮想オペレーティングプラットフォームでVM130上にGOS132を提示し、VM130の動作を管理し得る。一のVM130上で実行するアプリケーション134及びGOS132は、ホスト110上の下層のハードウェアリソースを他のVM130と共有し得る。
いくつかの実施形態においては、ハイパーバイザ120は完全仮想化を可能にし得る。これにより、VM130の修正されていないGOS132をホスト110上で(他のVM130の他のGOS132から)切り離して実行することができる。いくつかの実施形態においては、ハイパーバイザ120は直接的にホスト110のハードウェアを制御し、VM130と下層のハードウェアリソースとの間の仲介としてふるまい得る。いくつかの実施形態においては、ハイパーバイザ120は、VM130とホスト110の元からある(native)オペレーティングシステムの間のソフトウェア層としてのハイパーバイザ120を有する、ホスト110の元からあるオペレーティングシステム内で動作し得る。
いくつかの実施形態においては、ホスト110はキャッシュ112及びプロセッサ114を含み得る。プロセッサ114はマルチコアプロセッサで、二つ以上の独立したコアを有し得る。キャッシュ112は、ホスト110のための特別高速な記憶機構である。いくつかの実施形態においては、キャッシュ112は、実行可能な命令フェッチを高速化する命令キャッシュを含み得る。いくつかの実施形態においては、キャッシュ112は、データフェッチ及び記憶を高速化するデータキャッシュを含み得る。さらに、いくつかの実施形態では、キャッシュ112は、キャッシュ112が実行可能な命令及びデータの両方について、仮想・物理アドレス変換を高速化するのに用いられるトランスレーションルックアサイドバッファ(TLB)を含み得る。
実施形態において、キャッシュ112は、キャッシュレベルの階層で組織化され得る。例えば、第一レベルキャッシュ(L1)、第二レベルキャッシュ(L2)等、最終レベルキャッシュ(LLC)まであり、キャッシュのレイテンシとヒット率とのバランスを取って(より大きいキャッシュではヒット率はよりよいが、待ち時間がより長くなるので)いる。実施形態においては、キャッシュ112の全ての又はいくつかのレベルのものをプロセッサ114のアーキテクチャに組み入れる、又はプロセッサ114とメインメモリとの間に置く。実施形態においては、キャッシュ112は特定の機能(データキャッシュ、命令キャッシュ等)を有し得る。実施形態においては、キャッシュ112はプロセッサ114の異なるコア間で共有され得る。実施例として、各コアが自己の命令又はデータL1及び共有命令/データL2を有し、命令/データL3は全てのコアで共有され得る、とする。
実施形態において、キャッシュ112は、キャッシュサービス品質クラス(CQoS)116をサポートするように構成され得る。各コアにはCQoSクラスが割り当てられ得る。種々のCQoSクラスは共有キャッシュへのアクセスの優先付けに用いられ得る。実施形態においては、キャッシュ112は共有キャッシュ内にある記憶データをロックするCQoSクラスを含み得る。実施形態においては、CQoSクラスは、コアによりアクセスされるメモリ位置の内容(content of memory locations)をキャッシュするのに、共有キャッシュ内のどのウェイが利用されるかを制御するビットマスクを含み得る。実施形態においては、キャッシュ内でロックされたデータ又はコードは、退去されないようにし得る。実施形態においては、ハイパーバイザ120は、例えば、CQoSクラスのビットマスクを所望のように設定することによって、CQoSクラスに関連づけて、キャッシュの一部をロックするように構成され得る。
実施形態においては、ハイパーバイザ120は、主なディスパッチルーチン(ディスパッチ機能、スケジューラ、割り込みハンドラ等)を選択して、キャッシュ112内に記憶及びロックし得る。割り込みハンドラは、ルートの内容及び/又は仮想マシンの内容のためのものであり得る。実施形態においては、GOS132は、リアルタイムアプリケーション要求を提供することを意図したリアルタイムゲストオペレーティングシステムであり得る。GOS132は、その重要なデータ又はコード(ディスパッチャ、割り込みハンドリングコード等)を選択して、キャッシュ112内に記憶及びロックし得る。実施形態においては、ハイパーバイザ120は、VM130よりも自己を優先して、キャッシュ112にデータ又はコードを記憶及びロックし得る。
実施形態においては、ハイパーバイザ120は、ハイパーコールインタフェース(HI)122及びデータ124を含み得る。実施形態においては、ハイパーバイザ120は、プロセッサ114により動作されて、VM130の動作を管理し得る。キャッシュ112の一部を選択して、ハイパーバイザ120の選択データ若しくはコード(例えば、データ124の一部)又はVM130の選択データ若しくはコード(例えば、GOS132の一部)を記憶すること、キャッシュの一部をロックして、選択データ又はコードがキャッシュ112から退去させられることを防ぐ等がある。
実施形態においては、HI122により、VM130がハイパーコールを介して特権動作を要求できるようにし得る。現代のオペレーティングシステム(UNIX(登録商標)、LINUX、Windows、Mac OS X等)においては、システムコールは、特権(スーパバイザ)モードでのオペレーティングシステムのサービスと同期的に通信する、より低い特権モードで実行するプロセスのための機構を提供する。ハイパーコールは、同様の通信機構を提供する。システム内でプロセス空間とカーネル空間とを通信させる(communicate between)システムコールと対比して、ハイパーコールは、仮想マシンとハイパーバイザとを通信を許容する。
実施形態においては、ハイパーコールは、VM130からハイパーバイザ120へのソフトウェアトラップであり得る。例として、GOS132は、GOS132又はアプリケーション134の選択データ又はコードをキャッシュ112でロックすることをハイパーバイザ120に要求し得る。他の例としては、GOS132は、GOS132又はアプリケーション134の選択データ又はコードをキャッシュ112でアンロックすることを、ハイパーバイザ120に要求し得る。実施形態においては、HI122を介したハイパーコールは、同期的であり得るが、ハイパーバイザ120からVM130へのリターンパスは、非同期通知のキューを用い得るイベントチャネルを用い得る。
いくつかの実施形態においては、GOS130は、ハイパーコールを介して、所定の領域をキャッシュ内でロックすることハイパーバイザ120に知らせ得る。そのハイパーコールは、ゲストの物理的メモリアドレス空間内の開始アドレス及び、目標メモリ領域の長さを提供し得る。いくつかの実施形態においては、GOS132は、ハイパーコールを介して、所定のメモリ領域のキャッシュロックを無効化することをハイパーバイザ120に知らせ得る。これは、同様に、ゲストの物理的メモリアドレス空間内の開始アドレス及び、アンロックする目標メモリ領域の長さを特定することによる。いくつかの実施形態においては、GOS132は、リセットハイパーコールを介して特定のメモリ領域を特定することなく、これまでの全てのキャッシュロック要求をリセットすることを、ハイパーバイザ120に知らせ得る。
いくつかの実施形態においては、ハイパーバイザ120又はVM130の重要なデータ又はコードはキャッシュ内でロックされ得る。ロックされたデータ又はコードは、キャッシュ112の少なくともLLCから退去させられることを防ぎ得る。ロックされたデータ又はコードは、キャッシュ112のL1及びL2から退去させられることも防ぎ得る。いくつかの実施形態においては、CQoSクラス116を介したキャッシュロッキング機構は、ハイパーバイザ120内だけで実行され得る。実施形態においては、VM130は、種々のオペレーティングシステム及び異なるオペレーティングシステムのバージョンを実行し得る。ゆえに、VM130は、キーとなる機能(ディスパッチャ、割り込みハンドリングコード等)について異なるプロパティを有し得る。CQoSクラス116を介したキャッシュロッキング機構は、例えば、ハイパーバイザ120によって、VM130に知らされ、これにより、GOS132はVM130の動作要件と内部構造に基づいて、ハイパーコールインタフェース122を介してキャッシュ112にその重要なデータ又はコードをロックすることができ得る。
実施形態においては、装置100は図1に示したものとは異なるように実装され得る。例として、キャッシュ112はプロセッサ114に集積され得る。実施形態において、図1に示したコンポーネントは、図1に示されていない、直接的又は間接的な接続を有し得る。実施形態において、装置100のいくつか又は全てのコンポーネントを、ハードウェア、ソフトウェア又はこれらの組み合わせで実装してよく、任意の数の異なる装置又はネットワークに分散(spread)し得る。
本開示の改善により、装置は、ジッタ及び最悪のレイテンシを低減することを含む、ハイパーバイザの性能を改善するように構成され得る。例として、ディスパッチ機能又は、ハイパーバイザ120におけるスケジューリング用のディスパッチ機能により呼び出される機能の一部又は全ては、キャッシュ112内にロックされて、アクセスレイテンシを低下させ(例えば、低いジッタ)、高い性能を達成する。他の例として、ハイパーバイザ120のテキスト又はデータの全て又は一部は、キャッシュ112にロックされて、アクセスレイテンシを低下させ、高い性能を達成する。
本開示の改善により、二つのVMの分離性(separation)、VMとハイパーバイザの分離性、VMとホストの分離性、仮想化でのキャッシュロッキングと負荷集約の組み合わせを備えたリアルタイム性能を改善するように構成され得る。リアルタイムシステムは、最悪の場合である、VMエグジット及びVMエントリのレイテンシ及び/又はジッタを考慮する必要があり得る。実施形態においては、CQoSを用いて、所定の方法でキャッシュにあるデータ又はコードが退去させられるの防いでよく、ハイパーバイザは、ゲストにインタフェースを提供して、ゲストの重要なデータ又はコードをキャッシュ内にロックし、さらに、ゲストオペレーティングシステムからアクティブなQCoSクラスに書き込むモデル固有レジスタ(MSR)をトラッピングすることによって、全てのゲストが、専用ウェイ(way)を用いることを防ぎ得る。例として、リアルタイムオペレーティングシステムの性能は、VMコンテンツ情報の一部又は全て(仮想マシン制御構造(VMCS)、汎用目的のレジスタ等)がキャッシュ内でロックされることにより、改善し、低下したアクセスレイテンシーにより高い性能を達成することになり得る。別の例として、同様に、VMゲストの割り込みハンドラの一部又は全てがキャッシュにロックされることにより、リアルタイム性能を改善し得る。
ここで、図2を参照して、仮想化コンピューティングのプロセス200の例のフロー図を示す。プロセス200は、ハードウェア(回路、専用論理、プログラマブル論理、マイクロコード等)、ソフトウェア(処理装置上で動作して、ハードウェアシミュレーションを行う命令)又はこれらの組み合わせを含む処理論理によって行われ得る。処理論理は、仮想化コンピューティングのために構成され得る。このため、プロセス200はコンピューティング装置(例えば、図1に関連した装置100)によって行われて、本開示の一以上の実施形態を実装し得る。実施形態においては、図2の種々のブロックを任意の好適な順序で(例えば、仮想化コンピューティングを実施する装置100の特定の実施形態に従って)組み合わせ、又は並べ得る。
実施形態において、プロセスはブロック210で開始し得る。ここでは、共有キャッシュの一部が選択されて、ハイパーバイザ又は、ハイパーバイザ(例えば、図1に関連したハイパーバイザ120)により管理された仮想マシンのゲストオペレーティングシステムの選択データ又はコードを記憶し得る。ハイパーバイザは、直接データ入出力(DDIO)により使用されない一以上のウェイを選択することによってキャッシュの一部を選択する。直接データ入出力は、周辺コンポーネント相互接続エクスプレス(PCI Express又はPCIe)装置から共有キャッシュに直接的に書き込み得るものである。図1に関連して説明したように、実施形態においては、ハイパーバイザは、キャッシュ内でロックされるのに好適な主なディスパッチルーチンの既知又は推定のサイズに少なくとも部分的に基づいて、選択キャッシュのサイズを決定し得る。
次に、ブロック220で、例えば、図1に関連したハイパーバイザ120によって、共有キャッシュの一部がロックされて、ハイパーバイザ又はゲストオペレーティングシステムの選択データ又はコードが、共有キャッシュから退去させられるのを防ぎ得る。実施形態においては、ハイパーバイザは、キャッシュ内の選択したウェイで、ハイパーバイザの主なディスパッチルーチン(ディスパッチ機能、スケジューラ、割り込みハンドラ等)をフェッチし得る。それから、ハイパーバイザは選択ウェイをロックして、共有キャッシュに関連づけられた任意のアクティブQCoSクラスでウェイが使用されるのを防ぎ得る。実施形態においては、CQoSクラスは共有キャッシュ内のどのウェイがコアによってアクセスされ得るかを制御するビットマスクを含み得る。したがって、ハイパーバイザは、ロッキング機構として、選択ウェイに関連づけられた対応ビットをセット又はリセットする。
実施形態において、VM内のゲストオペレーティングシステムは、リアルタイム又は汎用オペレーティングシステムであり得る。ハイパーバイザは、そのゲストオペレーティングシステムにハイパーコールインタフェースを提供し、そこで、ゲストオペレーティングシステムは、ハイパーコールインタフェースを介して、その重要なデータ又はコードを、キャッシュ内にロックするように要求し得る。いくつかの実施形態においては、ハイパーバイザはVMのゲストオペレーティングシステムよりも、自分自身を優先して、データ又はコードを選択キャッシュの一部に記憶し得る。ゆえに、ブロック210に関連して選択されたウェイに予備がある場合には、ハイパーバイザは予備ウェイを準備して、ゲストオペレーティングシステムによって要求されるデータ又はコードを記憶し得る。さらに、ハイパーバイザは上記のようにロック機構を用いて全てのアクティブQCoSクラスでこれらのウェイを無効化し得る。いくつかの実施形態においては、ハイパーバイザは、特定のタイプのVMからの特定のタイプのデータ又はコードを優先し得る。これにより、例えば、リアルタイムオペレーティングシステムからの特定のタイプのデータ又はコードが常に、キャッシュ内でロックされる機会を有し得る。
実施形態においては、ゲストオペレーティングシステムが、例えば、ハイパーコールを介して、共有キャッシュ内にある同システムのデータ又はコードのロックを、例えば、ゲストの物理的メモリアドレス空間の開始アドレスと、アンロックされる目標メモリ領域の長さを特定することによって解放することを、ハイパーバイザに要求し得る。実施形態においては、ゲストオペレーティングシステムは、例えば、リセットハイパーコールを介して、ゲストオペレーティングシステムに関連した、共有キャッシュ内の全てのロックを取り外すことを、ハイパーバイザに知らせ得る。
実施形態においては、ハイパーバイザは、仮想マシンからキャッシュサービス品質クラスへの直接接触(direct contact)をトラップし得る。例として、アクティブなCQoSセットへの全てのMSR書き込みをトラップして、ゲストオペレーティングシステムが、ブロック210に関連して予約されたCQoSクラスを用いるのを防ぎ得る。
共有キャッシュ内で選択ウェイをロックすることで、共有キャッシュ内ででの利用可能なウェイの数が減少することによって、競合性ミス(conflict miss)が増加し得る。実施形態においては、競合性ミスを低減するのにキャッシュカラーリングが用いられ得る。キャッシュカラーリングは、キャッシュ内で隣接するフリーページを割り当てて、プロセッサによりキャッシュされる総ページ数を最大化し得る。
ここで、図3を参照して、CQoSクラスを図示する概略図を示す。これは、種々の実施形態に従った、装置例により実施され得る。実施形態においては、CQoSクラスは、図2におけるブロック220又は図1のCQoSクラス116に関連して用いられ得る。
実施形態においては、CQoSはCQoSクラスを各コアに割り当て得る。CQoSクラスは、共有キャッシュへのアクセスに優先付けするのに用いられ得る。CQoSクラスは、共有キャッシュ内にあるデータ又はコードをロックするのにも用いられ得る。実施形態においては、CQoSクラスは、供給キャッシュ内のどのウェイがコアによりアクセスされ得るかを制御するビットマスクを有し得る。例として、CQoSクラス310は、コアによるアクセスのためにウェイ2から11を許容する。図2に関連して、CQoSクラス310内の複数のウェイが選択され、データ又はコードに関して準備され、ロックされ得る。しかし、いくつかの実施形態においては、CQoSクラス内のウェイ0及び1は、DDIOのために用いられるので、選択され得ない。結果として、CQoSクラス320には、ウェイ2から9をロックした(これらのビットは、1から0に反転されている)後に、コアによるアクセスのためにウェイ10及び11のみを許容するCQoSが図示されている。CQoS320により、全てのコアが、共有キャッシュ内でロックされたこれらのウェイを用いることが許容されないのではないかもしれない。ロックされたデータ又はコードは、依然として例えば、L1及びL2から、データ又はコードをロックした同じコアによって退去され得るのであるが、ロックされたデータ又はコードは、少なくともLLC内にとどまり得る。
図4は、本開示の実施形態を実施するのに好適なコンピューティング装置400の実施形態を示す。図示のように、コンピューティング装置400は、一以上のプロセッサ410、メモリ430、不揮発性メモリ(NVM)/ストレージ440及び一以上の周辺機器450に結合したシステム制御論理420を含み得る。種々の実施形態においては、一以上のプロセッサ410は、一以上のプロセッサコア及びキャッシュ412を含み得る。実施形態においては、キャッシュ412は、CQoSクラス416がキャッシュ412内に記憶されたデータ又はコードをロックするのをサポートするように構成され得る。キャッシュ412及びCQoSクラス416は、それぞれ、図1に関連したキャッシュ112及びCQoS116と同様に機能し得る。
実施形態においては、周辺機器450は任意の好適なハードウェア及び/又はファームウェア(ネットワークアダプタ、一以上のアンテナ、無線インタフェース等)を有し得る。周辺機器450には、幅広い有線又は無線インタフェース(I2Cバス、ユニバーサルシリアルバス(USB)、Bluetooth(登録商標),無線ネットワークインタフェースコントローラ(WNIC)等があるが、これらには限られない)が含まれ得る。周辺機器450は、コンピューティング装置400が一以上のネットワークで通信する、及び/又は任意の他の好適な装置と通信するインタフェースを含み得る。種々の実施形態においては、周辺機器450は、近距離無線通信(NFC)、光学通信、他の装置と直接通信する(例えば、中継なし)その他の同様の技術を利用する、コンピューティング装置400のためのインタフェースを含み得る。種々の実施形態では、周辺機器450は、無線通信技術(例えば、広帯域符号分割多元接続(WCDMA(登録商標))、グローバル移動通信システム(GSM(登録商標))、ロングタームエボリューション(LTE)、WiFi、Bluetooth、Zigbee等)と相互運用し得る。
実施形態においては、システム制御論理420には、プロセッサ410及び/又はシステム制御論理420と通信する任意の好適な装置若しくはコンポーネントへの、任意の好適なインタフェースを提供する任意の適切なインタフェースコントローラを有し得る。実施形態においては、システム制御論理420は、コンピューティング装置400上で実行する一以上のVMの動作を管理するハイパーバイザ422を有し得る。ハイパーバイザ422は、図1に関連したハイパーバイザ120と同様に機能し得る。
実施形態においては、システム制御論理420は、ユーザなどに情報を表示するディスプレイ(図示せず)とも相互運用し得る。種々の実施形態においては、ディスプレイには、種々の構成及び形式(例えば、液晶ディスプレイ、ブラウン管ディスプレイ、e-inkディスプレイ、プロジェクションディスプレイ等)の一つが含まれ得る。種々の実施形態において、ディスプレイはタッチ画面を含み得る。
実施形態においては、システム制御論理420は、システムメモリ430へのインタフェースを提供する一以上のメモリコントローラ(図示せず)を含み得る。システムメモリ430は、例えば、コンピューティング装置400のため、データ及び/又は命令を読み込む及び記憶するのに用いられ得る。システムメモリ430は任意の好適な揮発性メモリ(例えば、好適なダイナミックランダムアクセスメモリ(DRAM)など)を含み得る。
いくつかの実施形態においては、システム制御論理420は、NVM/ストレージ440及び周辺機器450へのインタフェースを提供する一以上の入出力(I/O)コントローラ(図示せず)を含み得る。NVM/ストレージ440は、例えば、データ及び/又は命令を記憶するのに用い得る。NVM/ストレージ440は、任意の好適な不揮発性メモリ(例えば、フラッシュメモリ)を含み得る、並びに/又は、任意の好適な不揮発性ストレージ装置(例えば、一以上のハードディスクドライブ(HDD)、一以上のソリッドステートドライブ、一以上のコンパクトディスク(CD)ドライブ、及び/若しくは、一以上のデジタル多用途ディスク(DVD)ドライブ等)を含み得る。NVM/ストレージ440は、コンピューティング装置400が搭載される、又はアクセス可能な装置の物理的な一部(コンピューティング装置400の一部である必要はない)であるストレージリソースを含み得る。例えば、NVM/ストレージ440は、通信インタフェース480を介してネットワークでコンピューティング装置400によりアクセスされ得る。
実施形態においては、システムメモリ430、NVM/ストレージ440及びシステム制御論理420は、特に、ハイパーバイザ422の一時的及び永続的コピーを含み得る。ハイパーバイザ422は、少なくとも一のプロセッサ410により実行されると、コンピューティング装置400が仮想化コンピューティング(プロセス200等であるが、これには限られない)を行うすることになる命令を含み得る。
いくつかの実施形態においては、少なくとも一のプロセッサ410を、システム制御論理420及び/又はハイパーバイザ422を有するメモリとともにパッケージし得る。いくつかの実施形態においては、少なくとも一のプロセッサ410を、システム制御論理420及び/又はハイパーバイザ422を有するメモリとともにパッケージして、システムインパッケージ(SiP)を形成し得る。いくつかの実施形態においては、少なくとも一のプロセッサ410を、システム制御論理420及び/又はハイパーバイザ422を有するメモリとともに同一のダイに集積し得る。いくつかの実施形態においては、少なくとも一のプロセッサ410を、システム制御論理420及び/又はハイパーバイザ422を有するメモリとともに同一のダイに集積して、システムオンチップ(SoC)を形成し得る。
図1に関連した装置100のどのモジュールがコンピューティング装置400によってホストされる(hosted)かに依拠して、プロセッサ、システムメモリ430等の可用性及び/又は性能特性が変わり得る。種々の実施形態においては、演算装置400は、本開示の教示により強化された、ウェアラブルコンピューティング装置、スマートフォン、タブレット、モバイルコンピューティング装置、サーバ等であり得る。実施形態においては、図4での様々なモジュールの配置及び/又は他のモジュールとの結合方法が、図4に示したものとは異なり得る。
図5は、種々の実施形態に従って、本開示の観点を組み込んでいるプログラム命令を有する製品510を示す。種々の実施形態においては、製品は、本開示の種々の実施形態を実装するのに用いられ得る。図のように、製品510は命令530を有するコンピュータ読み取り可能記憶媒体520を含んでよく、、命令530が本明細書で記載した任意の一のプロセスの実施形態又は実施形態の観点を実施するように構成されている。記憶媒体520は本技術分野で既知の、幅広い永続的な記憶媒体(フラッシュメモリ、ダイナミックランダムアクセスメモリ、スタティックランダムアクセスメモリ、光学ディスク、磁気ディスク等を含むが、これらに限られない)を表し得る。命令530により、装置が命令を実行することに応じて、装置に本明細書に記載した種々の動作を実行することができる。本開示の実施形態に従って、例えば、記憶媒体520は、装置(例えば、装置100)に、図1から図4に関連した仮想化コンピューティング(例えば、ハイパーバイザ120)のいくつか又は全ての観点を実行させるように構成された命令530を含み得る。実施形態においては、コンピュータ読み取り可能記憶媒体520は、非一時的な一以上のコンピュータ読み取り可能記憶媒体を含み得る。他の実施形態においては、コンピュータ読み取り可能記憶媒体は一時的なもの(命令530で符号化された信号等)であり得る。
所定の実施形態の説明を目的として図示及び記載したが、同一の目的を達成するように計画された多様な代替の及び/又は均等な実施形態又は実装形態が、本開示の範囲を逸脱することなく、及び記載された実施形態の代用となり得る。本願は、本明細書で説明した実施形態の任意の改作態様又は変形態様を含むことを意図している。したがって、本明細書で記載した実施形態は、特許請求の範囲によってのみ限定されることを明確に意図している。
以下の段落は種々の実施形態の実施例を記載する。
実施例1は、仮想化コンピューティング装置であって、一以上のプロセッサコアと、前記一以上のプロセッサコアに結合したキャッシュとを含み得る。当該装置は、前記一以上のプロセッサコアにより動作され、当該装置上の複数の仮想マシンの動作を管理するハイパーバイザであって、前記キャッシュの一部を選択して、該ハイパーバイザ又は該仮想マシンの一つの選択データ又はコードを記憶すること、及び、該キャッシュの一部をロックして、該選択データ又はコードがキャッシュから退去させられるのを防ぐことを含む、ハイパーバイザも含み得る。
実施例2は、実施例1の主題を含んでよく、前記ハイパーバイザは、前記仮想マシンの一つのゲストオペレーティングシステムのためのインタフェースを有し、該ゲストオペレーティングシステムの前記選択データ又はコードをロックする要求を、前記キャッシュの一部に要求する、ことをさらに特定し得る。
実施例3は、実施例2の主題を含んでよく、、前記ゲストオペレーティングシステムは、リアルタイムオペレーティングシステムである、ことをさらに特定し得る。
実施例4は、実施例1から3のいずれか一つの主題を含んでよく、、前記ハイパーバイザは、前記仮想マシンの一つよりも、自分自身を優先して、前記キャッシュの一部にデータ又はコードを記憶する、ことをさらに特定し得る。
実施例5は、実施例1から4のいずれか一つの主題を含んでよく、、前記ハイパーバイザは、直接データ入出力により使用されない一以上のウェイを選択することによって、前記キャッシュの一部を選択する、ことをさらに特定し得る。
実施例6は、実施例1から5のいずれか一つの主題を含んでよく、、前記ハイパーバイザからの前記選択データ又はコードは、ディスパッチ機能、スケジューラ及び割り込みハンドラの少なくとも一つを含む、ことをさらに特定し得る。
実施例7は、実施例1から6のいずれか一つの主題を含んでよく、、前記ハイパーバイザは、前記仮想マシンの一つのメモリ領域を前記キャッシュにロックする要求をするハイパーコールを含むハイパーコールインタフェースを含む、ことをさらに特定し得る。
実施例8は、実施例1から7のいずれか一つの主題を含んでよく、、前記ハイパーバイザは、前記仮想マシンの一つのメモリ領域を前記キャッシュからアンロックする要求をするハイパーコールを含むハイパーコールインタフェースを含む、ことをさらに特定し得る。
実施例9は、実施例1から8のいずれか一つの主題を含んでよく、前記キャッシュは、前記キャッシュのラストレベルキャッシュへのアクセスを制御するビットマスクを含むキャッシュサービス品質クラスに関連づけられる、ことをさらに特定し得る。
実施例10は、実施例9の主題を含んでよく、前記ハイパーバイザは、前記キャッシュサービス品質クラスの設定を通じて、前記キャッシュの部分をロックする、ことをさらに特定し得る。
実施例11は、実施例9又は10の主題を含んでよく、、前記ハイパーバイザは、前記仮想マシンの一つから前記キャッシュサービス品質クラスへの直接接触をトラップする、ことをさらに特定し得る。
実施例12は、仮想化コンピューティング方法であって、コンピューティングシステムのハイパーバイザによって、共有キャッシュの一部を選択して、該ハイパーバイザ又は該ハイパーバイザの管理下において該コンピューティングシステム上で動作する仮想マシンの選択データ又はコードを記憶する工程と、前記ハイパーバイザによって、前記共有キャッシュの一部をロックして、前記ハイパーバイザ又は前記仮想マシンの前記選択データ又はコードが前記共有キャッシュから退去させられることを防ぐ工程と、を含み得る。
実施例13は、実施例12の主題を含んでよく、、前記ハイパーバイザが、前記仮想マシンのゲストオペレーティングシステムから、該ゲストオペレーティングシステムの前記選択データ又はコードをロックする、前記共有キャッシュへの要求を受信する工程を、さらに含み得る。
実施例14は、実施例13の主題を含んでよく、、前記受信する工程は、ハイパーコールインタフェースを通じて、前記ゲストオペレーティングシステムによって管理される仮想メモリの領域を前記共有キャッシュ内でロックすることを要求するハイパーコールを受信する工程を含む、ことをさらに特定し得る。
実施例15は、実施例13又は14の主題を含んでよく、、前記ハイパーバイザが、前記ハイパーコールインタフェースを通じて、前記ゲストオペレーティングシステムによって管理される仮想メモリの領域を前記共有キャッシュ内でアンロックすることを要求するハイパーコールを受信する工程を、さらに含み得る。
実施例16は、実施例13から15のいずれか一つの主題を含んでよく、、前記ゲストオペレーティングシステムは、リアルタイムオペレーティングシステムである、ことをさらに特定し得る。
実施例17は、実施例12から16のいずれか一つの主題を含んでよく、、前記ハイパーバイザは、前記仮想マシンよりも優先して、前記共有キャッシュの一部を用いる工程を、さらに含み得る。
実施例18は、実施例12から17のいずれか一つの主題を含んでよく、、前記ロックする工程は、キャッシュサービス品質クラス内で前記共有キャッシュの一部を無効化する工程を含む、ことをさらに特定し得る。
実施例19は、実施例18の主題を含んでよく、、前記キャッシュサービス品質クラスは、前記共有キャッシュのラストレベルキャッシュへのアクセスを制御するビットマスクを含む、ことをさらに特定し得る。
実施例20は、実施例12から19のいずれか一つの主題を含んでよく、、前記ロックする工程は、前記ハイパーバイザによって、前記仮想マシンから前記共有キャッシュのキャッシュサービス品質クラスへの直接接触をトラップする工程を含む、ことをさらに特定し得る。
実施例21は、実施例12から20のいずれか一つの主題を含んでよく、、前記ハイパーバイザからの前記選択データ又はコードは、ディスパッチ機能、スケジューラ及び割り込みハンドラの少なくとも一つを含む、ことをさらに特定し得る。
実施例22は、実施例12から21のいずれか一つの主題を含んでよく、、前記共有キャッシュの一部を選択する工程は、直接データ入出力により使用されない一以上のウェイを選択する工程を含む、ことをさらに特定し得る。
実施例23は、装置に、該装置による命令の実行に応じて、実施例12から22のいずれか一つの主題を実施させるように構成された該命令をそこに記憶したコンピュータ読み取り可能記憶媒体である。記憶媒体は、非一時的なものであり得る。
実施例24は、仮想化コンピューティング装置であって、コンピューティングシステムのハイパーバイザによって、共有キャッシュの一部を選択して、該ハイパーバイザ又は該ハイパーバイザの管理下において該コンピューティングシステム上で動作する仮想マシンの選択データ又はコードを記憶する手段と、前記ハイパーバイザによって、前記共有キャッシュの一部をロックして、前記ハイパーバイザ又は前記仮想マシンの前記選択データ又はコードが前記共有キャッシュから退去させられるのを防ぐ手段と、を含み得る。
実施例25は、実施例24の主題を含んでよく、、前記ハイパーバイザが、前記仮想マシンのゲストオペレーティングシステムから、前記共有キャッシュの一部について、前記ゲストオペレーティングシステムの前記選択データ又はコードをロック又はアンロックする要求を受信する手段をさらに含み得る。
実施例26は、実施例24又は25の主題を含んでよく、前記ハイパーバイザが、前記仮想マシンから前記共有キャッシュのキャッシュサービス品質クラスへの直接接触をトラップする手段をさらに含み得る。

Claims (26)

  1. 仮想化コンピューティング装置であって、
    一以上のプロセッサコアと、
    前記一以上のプロセッサコアに結合したキャッシュと、
    前記一以上のプロセッサコアにより動作され、当該装置上の複数の仮想マシンの動作を管理するハイパーバイザであって、前記キャッシュの一部を選択して、該ハイパーバイザ又は該仮想マシンの一つの選択データ又はコードを記憶すること、及び、該キャッシュの一部をロックして、該選択データ又はコードがキャッシュから退去させられるのを防ぐことを含む、ハイパーバイザと、を含む装置。
  2. 前記ハイパーバイザは、前記仮想マシンの一つのゲストオペレーティングシステムのためのインタフェースを有し、該ゲストオペレーティングシステムの前記選択データ又はコードをロックする要求を、前記キャッシュの一部に要求する、請求項1に記載の装置。
  3. 前記ゲストオペレーティングシステムは、リアルタイムオペレーティングシステムである、請求項2に記載の装置。
  4. 前記ハイパーバイザは、前記仮想マシンの一つよりも、自分自身を優先して、前記キャッシュの一部にデータ又はコードを記憶する、請求項1に記載の装置。
  5. 前記ハイパーバイザは、直接データ入出力により使用されない一以上のウェイを選択することによって、前記キャッシュの一部を選択する、請求項1に記載の装置。
  6. 前記ハイパーバイザからの前記選択データ又はコードは、ディスパッチ機能、スケジューラ及び割り込みハンドラの少なくとも一つを含む、請求項1に記載の装置。
  7. 前記ハイパーバイザは、前記仮想マシンの一つのメモリ領域を前記キャッシュにロックする要求をするハイパーコールを含むハイパーコールインタフェースを含む、請求項1に記載の装置。
  8. 前記ハイパーバイザは、前記仮想マシンの一つのメモリ領域を前記キャッシュからアンロックする要求をするハイパーコールを含むハイパーコールインタフェースを含む、請求項1に記載の装置。
  9. 前記キャッシュは、前記キャッシュへのアクセスを制御するビットマスクを含むキャッシュサービス品質クラスに関連づけられる、請求項1から8のいずれか一項に記載の装置。
  10. 前記ハイパーバイザは、前記キャッシュサービス品質クラスの設定を通じて、前記キャッシュの部分をロックする、請求項9に記載の装置。
  11. 前記ハイパーバイザは、前記仮想マシンの一つから前記キャッシュサービス品質クラスへの直接接触をトラップする、請求項9に記載の装置。
  12. 仮想化コンピューティング方法であって、
    コンピューティングシステムのハイパーバイザによって、共有キャッシュの一部を選択して、該ハイパーバイザ又は該ハイパーバイザの管理下において該コンピューティングシステム上で動作する仮想マシンの選択データ又はコードを記憶する工程と、
    前記ハイパーバイザによって、前記共有キャッシュの一部をロックして、前記ハイパーバイザ又は前記仮想マシンの前記選択データ又はコードが前記共有キャッシュから退去させられることを防ぐ工程と、を含む方法。
  13. 前記ハイパーバイザが、前記仮想マシンのゲストオペレーティングシステムから、該ゲストオペレーティングシステムの前記選択データ又はコードをロックする、前記共有キャッシュへの要求を受信する工程を、さらに含む請求項12に記載の方法。
  14. 前記受信する工程は、ハイパーコールインタフェースを通じて、前記ゲストオペレーティングシステムによって管理される仮想メモリの領域を前記共有キャッシュ内でロックすることを要求するハイパーコールを受信する工程を含む、請求項13に記載の方法。
  15. 前記ハイパーバイザが、前記ハイパーコールインタフェースを通じて、前記ゲストオペレーティングシステムによって管理される仮想メモリの領域を前記共有キャッシュ内でアンロックすることを要求するハイパーコールを受信する工程を含む、請求項14に記載の方法。
  16. 前記ゲストオペレーティングシステムは、リアルタイムオペレーティングシステムである、請求項15に記載の方法。
  17. 前記ハイパーバイザは、前記仮想マシンよりも優先して、前記共有キャッシュの一部を用いる工程、さらに含む請求項12に記載の方法。
  18. 前記ロックする工程は、キャッシュサービス品質クラス内で前記共有キャッシュの一部を無効化する工程を含む、請求項12に記載の方法。
  19. 前記キャッシュサービス品質クラスは、前記共有キャッシュへのアクセスを制御するビットマスクを含む、請求項18に記載の方法。
  20. 前記ロックする工程は、前記ハイパーバイザによって、前記仮想マシンから前記共有キャッシュのキャッシュサービス品質クラスへの直接接触をトラップする工程を含む、請求項12に記載の方法。
  21. 前記ハイパーバイザからの前記選択データ又はコードは、ディスパッチ機能、スケジューラ及び割り込みハンドラの少なくとも一つを含む、請求項12に記載の方法。
  22. 前記共有キャッシュの一部を選択する工程は、直接データ入出力により使用されない一以上のウェイ選択する工程を含む、請求項12に記載の方法。
  23. 仮想化コンピューティング装置であって、
    コンピューティングシステムのハイパーバイザによって、共有キャッシュの一部を選択して、該ハイパーバイザ又は該ハイパーバイザの管理下において該コンピューティングシステム上で動作する仮想マシンの選択データ又はコードを記憶する手段と、
    前記ハイパーバイザによって、前記共有キャッシュの一部をロックして、前記ハイパーバイザ又は前記仮想マシンの前記選択データ又はコードが前記共有キャッシュから退去させられるのを防ぐ手段と、を含む装置。
  24. 前記ハイパーバイザが、前記仮想マシンのゲストオペレーティングシステムから、前記共有キャッシュの一部について、前記ゲストオペレーティングシステムの前記選択データ又はコードをロック又はアンロックする要求を受信する手段と、
    前記ハイパーバイザが、前記仮想マシンから前記共有キャッシュのキャッシュサービス品質クラスへの直接接触をトラップする手段と、をさらに含む請求項23の装置。
  25. コンピューティング装置による実行により、請求項12から22のいずれか一項に記載の方法を、該コンピューティング装置に行わせるプログラム。
  26. 請求項25に記載の前記プログラムを有する、一以上のコンピュータ読み取り可能記憶媒体。
JP2016553360A 2014-03-21 2015-01-23 仮想化コンピューティング装置及び方法 Active JP6273034B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/222,416 US9652270B2 (en) 2014-03-21 2014-03-21 Apparatus and method for virtualized computing
US14/222,416 2014-03-21
PCT/US2015/012728 WO2015142421A1 (en) 2014-03-21 2015-01-23 Apparatus and method for virtualized computing

Publications (2)

Publication Number Publication Date
JP2017511926A true JP2017511926A (ja) 2017-04-27
JP6273034B2 JP6273034B2 (ja) 2018-01-31

Family

ID=54142199

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016553360A Active JP6273034B2 (ja) 2014-03-21 2015-01-23 仮想化コンピューティング装置及び方法

Country Status (6)

Country Link
US (1) US9652270B2 (ja)
EP (1) EP3120244A4 (ja)
JP (1) JP6273034B2 (ja)
KR (1) KR101821079B1 (ja)
CN (1) CN105980986B (ja)
WO (1) WO2015142421A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020149597A (ja) * 2019-03-15 2020-09-17 株式会社デンソーテン 制御装置および制御方法

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9563564B2 (en) 2015-04-07 2017-02-07 Intel Corporation Cache allocation with code and data prioritization
US10191858B2 (en) * 2015-11-25 2019-01-29 Red Hat Israel, Ltd. Virtual machine memory lock-down
US20210026950A1 (en) * 2016-03-07 2021-01-28 Crowdstrike, Inc. Hypervisor-based redirection of system calls and interrupt-based task offloading
CN109964211B (zh) * 2016-09-30 2024-01-23 英特尔公司 用于半虚拟化网络设备队列和存储器管理的技术
US10241874B2 (en) * 2017-05-17 2019-03-26 Stratus Technologies Checkpoint method for a highly available computer system
US20190340123A1 (en) * 2019-07-17 2019-11-07 Intel Corporation Controller for locking of selected cache regions
KR20210130341A (ko) 2020-04-22 2021-11-01 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
US20230061511A1 (en) * 2021-08-30 2023-03-02 International Business Machines Corporation Inaccessible prefix pages during virtual machine execution

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009075070A1 (ja) * 2007-12-10 2009-06-18 Panasonic Corporation 共有キャッシュ制御装置、共有キャッシュ制御方法及び集積回路
US20090276607A1 (en) * 2008-04-30 2009-11-05 Bonola Thomas J Virtualization platform with dedicated cache access
JP2012190446A (ja) * 2011-03-10 2012-10-04 Safenet Inc ゲスト仮想マシンメモリの保護
US20130086329A1 (en) * 2011-04-04 2013-04-04 International Business Machines Corporation Allocating cache for use as a dedicated local storage
US20130318302A1 (en) * 2012-05-23 2013-11-28 Samsung Electronics Co., Ltd. Cache controller based on quality of service and method of operating the same
US20140013059A1 (en) * 2012-07-03 2014-01-09 Fusion-Io, Inc. Systems, methods and apparatus for cache transfers

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7516453B1 (en) * 1998-10-26 2009-04-07 Vmware, Inc. Binary translator with precise exception synchronization mechanism
US6490615B1 (en) * 1998-11-20 2002-12-03 International Business Machines Corporation Scalable cache
JP4012517B2 (ja) 2003-04-29 2007-11-21 インターナショナル・ビジネス・マシーンズ・コーポレーション 仮想計算機環境におけるロックの管理
JP4358224B2 (ja) * 2006-12-27 2009-11-04 株式会社東芝 ゲストosスケジューリング方法及び仮想計算機モニタ
US8156298B1 (en) * 2007-10-24 2012-04-10 Adam Stubblefield Virtualization-based security apparatuses, methods, and systems
US20100070678A1 (en) 2008-09-12 2010-03-18 Vmware, Inc. Saving and Restoring State Information for Virtualized Computer Systems
JP5338435B2 (ja) 2009-03-31 2013-11-13 富士通株式会社 情報処理プログラム、情報処理装置および情報処理方法
US8707287B2 (en) * 2009-12-18 2014-04-22 Syddansk Universitet Method, computer program product, and system for non-blocking dynamic update of statically typed class-based object-oriented software
US8443376B2 (en) * 2010-06-01 2013-05-14 Microsoft Corporation Hypervisor scheduler
CN102402422B (zh) * 2010-09-10 2016-04-13 北京中星微电子有限公司 处理器组件及该组件内存共享的方法
US8745614B2 (en) * 2011-05-13 2014-06-03 Lsi Corporation Method and system for firmware upgrade of a storage subsystem hosted in a storage virtualization environment
JP5737050B2 (ja) * 2011-08-15 2015-06-17 富士通株式会社 情報処理装置、割込み制御方法および割込み制御プログラム
US10061616B2 (en) * 2012-05-30 2018-08-28 Red Hat Israel, Ltd. Host memory locking in virtualized systems with memory overcommit
US9612966B2 (en) * 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
WO2014185906A1 (en) * 2013-05-15 2014-11-20 Empire Technology Development, Llc Core affinity bitmask translation

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009075070A1 (ja) * 2007-12-10 2009-06-18 Panasonic Corporation 共有キャッシュ制御装置、共有キャッシュ制御方法及び集積回路
US20090276607A1 (en) * 2008-04-30 2009-11-05 Bonola Thomas J Virtualization platform with dedicated cache access
JP2012190446A (ja) * 2011-03-10 2012-10-04 Safenet Inc ゲスト仮想マシンメモリの保護
US20130086329A1 (en) * 2011-04-04 2013-04-04 International Business Machines Corporation Allocating cache for use as a dedicated local storage
US20130318302A1 (en) * 2012-05-23 2013-11-28 Samsung Electronics Co., Ltd. Cache controller based on quality of service and method of operating the same
US20140013059A1 (en) * 2012-07-03 2014-01-09 Fusion-Io, Inc. Systems, methods and apparatus for cache transfers

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020149597A (ja) * 2019-03-15 2020-09-17 株式会社デンソーテン 制御装置および制御方法

Also Published As

Publication number Publication date
US20150268979A1 (en) 2015-09-24
KR20160108502A (ko) 2016-09-19
US9652270B2 (en) 2017-05-16
JP6273034B2 (ja) 2018-01-31
CN105980986B (zh) 2020-01-31
KR101821079B1 (ko) 2018-01-22
WO2015142421A1 (en) 2015-09-24
CN105980986A (zh) 2016-09-28
EP3120244A4 (en) 2018-03-28
EP3120244A1 (en) 2017-01-25

Similar Documents

Publication Publication Date Title
JP6273034B2 (ja) 仮想化コンピューティング装置及び方法
US10901772B2 (en) Virtualization exceptions
US9798567B2 (en) Multi-hypervisor virtual machines
US10162655B2 (en) Hypervisor context switching using TLB tags in processors having more than two hierarchical privilege levels
US10191759B2 (en) Apparatus and method for scheduling graphics processing unit workloads from virtual machines
US10255090B2 (en) Hypervisor context switching using a redirection exception vector in processors having more than two hierarchical privilege levels
US20180129619A1 (en) Virtualizing interrupt prioritization and delivery
US9135080B2 (en) Dynamically assigning a portion of physical computing resource to logical partitions based on characteristics of executing logical partitions
WO2017024783A1 (zh) 一种虚拟化方法、装置和系统
KR101521778B1 (ko) 가상화 환경에서 i/o 동작을 처리하는 방법 및 장치
US10409633B2 (en) Hypervisor-visible guest thread management
US9697029B2 (en) Guest idle based VM request completion processing
US10162657B2 (en) Device and method for address translation setting in nested virtualization environment
JP2013109777A (ja) パフォーマンスカウンタの仮想化
US10019275B2 (en) Hypervisor context switching using a trampoline scheme in processors having more than two hierarchical privilege levels
US10061616B2 (en) Host memory locking in virtualized systems with memory overcommit
US20160188354A1 (en) Efficient enabling of extended page tables
US11188365B2 (en) Memory overcommit by speculative fault
US9600314B2 (en) Scheduler limited virtual device polling
US9898307B2 (en) Starting application processors of a virtual machine
Grinberg et al. Architectural virtualization extensions: A systems perspective

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170822

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170829

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171124

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180104

R150 Certificate of patent or registration of utility model

Ref document number: 6273034

Country of ref document: JP

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