JP2018181378A - ハードウェア内で変換索引バッファ(tlb)シュートダウンを指示および追跡するための方法およびシステム、並びに非一時的なコンピュータ可読媒体 - Google Patents

ハードウェア内で変換索引バッファ(tlb)シュートダウンを指示および追跡するための方法およびシステム、並びに非一時的なコンピュータ可読媒体 Download PDF

Info

Publication number
JP2018181378A
JP2018181378A JP2018146132A JP2018146132A JP2018181378A JP 2018181378 A JP2018181378 A JP 2018181378A JP 2018146132 A JP2018146132 A JP 2018146132A JP 2018146132 A JP2018146132 A JP 2018146132A JP 2018181378 A JP2018181378 A JP 2018181378A
Authority
JP
Japan
Prior art keywords
tlb
core
request
processor
processor core
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
JP2018146132A
Other languages
English (en)
Other versions
JP2018181378A5 (ja
JP6716645B2 (ja
Inventor
エリック・ノーサップ
Northup Eric
ベンジャミン・チャールズ・セレブリン
Charles Serebrin Benjamin
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of JP2018181378A publication Critical patent/JP2018181378A/ja
Publication of JP2018181378A5 publication Critical patent/JP2018181378A5/ja
Application granted granted Critical
Publication of JP6716645B2 publication Critical patent/JP6716645B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • 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
    • 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/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/682Multiprocessor TLB consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/683Invalidation

Landscapes

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

Abstract

【課題】本開示の態様は、ハードウェア内で変換索引バッファ(TLB)シュートダウンを指示および追跡することに関する。【解決手段】1つ以上のプロセッサコアを備える1つ以上のプロセッサは、一プロセッサコア上で実行中のプロセスが1つ以上の仮想メモリページと以前に関連付けられた1つ以上の物理メモリアドレスとの関連性を失わせたことを判断することができる。関連性の喪失を引き起こしたプロセスを実行しているプロセッサコアは、TLBシュートダウン要求を生成することができる。このプロセッサコアは、TLBシュートダウン要求を他のコアに送信することができる。TLBシュートダウン要求は、識別情報と、関連性が喪失され且つ他のコアに対応するTLBからフラッシュされる必要のある仮想メモリページを示すシュートダウンアドレスと、他のコアがTLBシュートダウン要求の処理完了を通知する場所を示す通知アドレスとを含むことができる。【選択図】図4

Description

関連出願の相互参照
本願は、2016年6月8日に出願された米国仮特許出願第62/347495号の出願日の利益を主張し、その開示が参照により本明細書に組み込まれる。
背景
マルチコアプロセッサおよび仮想プロセッサの普及により、仮想メモリの使用が増えている。仮想メモリは、システムのプロセッサ上で動作する各プロセスに使用される実際の物理メモリがシステム内に分散されても、各プロセスに連続したメモリを与えているという錯覚を提供する。この場合、仮想メモリは、一般的にページごとに分けられ、各ページは、システムの物理メモリの位置にマッピングされる。ページテーブルを使用することによって、データを格納している対応の物理メモリアドレスにデータの仮想メモリページをマッピングすることができる。仮想メモリページを対応する物理アドレスに変換する速度を高めるために、プロセッサの各コアは、物理メモリアドレスに最近変換した仮想メモリページを格納する変換索引バッファ(Translation Lookaside Buffer、TLB)を実装することができる。
ページテーブル内の仮想メモリページのマッピングを変更するときに、またはハイパーバイザが仮想マシンの仮想メモリからゲストページのマッピングを解除または変更するときに、それに応じて各プロセッサコアのTLBを更新する必要がある。いくつかのシナリオにおいて、このような更新は、マッピングが解除された仮想メモリページエントリのソフトウェア定義リストを見直し、これらのエントリを各々のTLBから削除するように指示する割込み(interrupt)命令、例えば、TLBシュートダウン割込み(TLB shootdown
interrupt)命令を各目標プロセッサコアに送信することによって達成される。指示されたプロセッサコアは、マッピング解除されたエントリを各々のTLBテーブルから削除し、削除が完了すると、TLBシュートダウンを開始したプロセッサに知らせることができる。開始したプロセッサ上のOSソフトウェアは、さらに他の処理を再開する前に、すべての応答が戻るまで待機しなければならない。同様に、受信したプロセッサコアは、さらに他の処理を再開する前に、TLBシュートダウン要求の処理を完了しなければならない。
仮想化環境において、物理プロセッサと仮想プロセッサとの間の通信がハイパーバイザを介入する必要があるため、TLBシュートダウン要求などの割込み命令の送信および受信に時間がかかる場合がある。さらに、仮想プロセッサは、(例えば、ハイパーバイザによりスケジュールから外されることによって、または物理CPUが一時停止することによって)オフラインになる可能性もある。これによって、これらの仮想プロセッサからのTLBシュートダウンの通知が遅らせられる。多くの仮想プロセッサを備えるシステムにおいて、このような遅延が長くなり、場合によってスーパーリニアに長くなる可能性があるため、システムの性能が大幅に低下する。
概要
本開示内のさまざまな実施形態は、一般的に、TLBシュートダウン要求の処理に関する。1つの態様は、ハードウェア内でTLBシュートダウンを指示および追跡するための
方法を含む。この場合、1つ以上のプロセッサコアを備える1つ以上のプロセッサは、一プロセッサコア上で実行中のプロセスが1つ以上の仮想メモリページと以前に関連付けられた1つ以上の物理メモリアドレスとの関連性を失わせたことを決定することができる。関連性の喪失を引き起こしたプロセスを実行しているプロセッサコアは、TLBシュートダウン要求を生成することができる。プロセッサコアは、TLBシュートダウン要求を他のコアに送信することができる。TLBシュートダウン要求は、識別情報と、関連性が喪失され且つ他のコアに対応するTLBからフラッシュされる必要のある仮想メモリページを示すシュートダウンアドレスと、他のコアがTLBシュートダウン要求の処理完了を通知する場所を示す通知アドレスとを含むことができる。
いくつかの例において、この方法は、他のプロセッサコアがTLBシュートダウン要求の処理を完了した場合、他のプロセッサコアから通知を受信するステップをさらに含むことができる。その通知は、通知アドレスで受信することができる。1つ以上のプロセッサは、1つ以上の仮想コンピュータを実行することができる。仮想コンピュータは、1つ以上の仮想コンピュータプロセッサを含む。プロセスは、1つ以上の仮想マシンで実行される第1プロセスであってもよい。
いくつかの例において、この方法は、電力管理ユニットによって、TLBシュートダウン要求を受信した第2コアが低電力状態にあるか否かを判断するステップと、第2コアが低電力状態にある場合、電力管理ユニットによって、TLBシュートダウン要求を通知するステップとをさらに含むことができる。
別の態様は、ハードウェア内でTLBシュートダウンを指示および追跡するためのシステムを含む。このシステムは、1つ以上のコアを備える1つ以上のプロセッサを有する1つ以上のコンピューティングデバイスを備えることができる。この場合、1つ以上のプロセッサは、1つ以上のプロセッサコアのうち1つで実行中のプロセスが1つ以上の仮想メモリページと以前に関連付けられた1つ以上の物理メモリアドレスとの関連性を失わせたことことを決定するように構成されてもよい。関連性の喪失を引き起こしたプロセスを実行しているプロセッサコアは、TLBシュートダウン要求を生成することができる。プロセッサコアは、さらに、TLBシュートダウン要求を他のコアに送信するように構成されてもよい。TLBシュートダウン要求は、識別情報と、関連性が喪失され且つ他のコアに対応するTLBからフラッシュされる必要のある仮想メモリページを示すシュートダウンアドレスと、他のコアがTLBシュートダウン要求の処理完了を通知する場所を示す通知アドレスとを含むことができる。
本願の技術は、限定ではなく例示として、添付図面に示される。図面において、同様の参照符号は、同様の要素を指す。
本開示の実施形態に係るシステムを示す図である。 本開示の実施形態に従って、複数の仮想マシンを実行するシステムを示す図である。 本開示の実施形態に従って、複数のコア上で仮想マシンを実行するシステムを示す図である。 本開示の実施形態に係るフロー図である。 本開示の実施形態に係るフロー図である。
詳細な説明
概要
本願の技術は、変換索引バッファ(Translation Lookaside Buffer、TLB)シュートダウンを効率的に処理するためのシステムおよび方法並びにコンピュータ可読媒体に関する。従来のマルチコアプロセッサおよび仮想マシン(VM)環境において、TLBシュートダウンは、第1コアから送信され、プロセッサ上の他のコア(またはコアのサブセット)の各々によって受信される。各々の受信コアは、対応するTLBを見直し、TLBシュートダウンによって除去する必要があると示された仮想ページを含んでいるか否かを判断する必要がある。TLBシュートダウンを成功に行ったまたは行う必要がないと判断された場合、受信コアは、送信コアに対して、TLBシュートダウンの処理完了を個別に通知する必要がある。特にTLBシュートダウンが仮想マシンのプロセスインスタンスによって開始される場合、複数層のソフトウェアを介した通信がすべてのコアによるさらに他の処理を大幅に遅延させる可能性があるため、この処理は、莫大な時間およびリソースを要する。
本開示によれば、完全なハードウェア実装を使用して、仮想メモリページを削除する必要のあるTLBに関連付けられたコアのみに、TLBシュートダウンを指示および追跡することによって、TLBシュートダウンを完了するために必要な処理リソースを削減することができる。例えば、1つ以上のプロセッサコアで実行しているプロセスが、1つ以上の仮想メモリページと以前に関連付けられた1つ以上の物理メモリアドレスとの関連性を失わせた場合、関連性の喪失を引き起こしたコアがTLBシュートダウン要求を生成することができる。TLBシュートダウン要求は、シュートダウンが必要であるか否かを各受信コアに迅速に判断させることを可能にする識別情報、対応するTLBからフラッシュされる必要のある仮想メモリページを示すシュートダウンアドレス、および受信コアがTLBシュートダウン要求の処理完了を通知できる場所を示す通知アドレスを含むことができる。
識別情報は、各VMの識別子を含むことができる。各VMに含まれた各VCPU、各プロセッサコア、およびVCPUおよび/またはプロセッサコア内で実行される各プロセスは、識別子を有することができる。特定の実施形態において、例えばx86システムにおいて、識別情報は、1つ以上の高度なプログラム可能な割込みコントローラID(APICID)、仮想プロセッサID(VPID)、およびプロセス定義文ID(PCID)を含むことができる。APICIDは、オペレーティングシステムなどのソフトウェアアプリケーションによって提供され、追跡されてもよい。たとえば、オペレーティングシステムまたはハードウェア自体は、システムの各コアにAPICIDを割り当てることができる。オペレーティングシステムは、特定のプロセスを実行しているコアを追跡し、これらのコアのAPICIDを決定することができる。プロセスが仮想マシン(VM)上で動作している場合、オペレーティングシステムは、テーブルを使用して、特定のプロセスを実行しているVMの仮想プロセッサ(VCPU)を、VMを実行している物理コアにマッピングすることができる。APICIDは、VMを実行している物理コアであってもよい。
仮想プロセッサIDは、VMの論理プロセッサおよび物理コアの両方に割り当てることができる。たとえば、プロセスがVMの外部で実行されている場合、その物理コアにVPID値0を割り当てることができる。プロセスがVM内に実行されている場合、VMを制御するハイパーバイザは、そのVMにVPID値を割り当てることができる。
実行されているすべてのプロセスに、プロセス定義文ID(PCID)を割り当てることができる。この場合、各プロセスのPCIDは、対応するプロセスに関連付けられた特定のTLBエントリに割り当てられてもよい。TLBシュートダウン要求を要求したプロセスに対して、PCIDを決定することができる。TLBシュートダウンを要求したプロセスに関連するAPICID、VPIDおよびPCIDは、共に識別情報として見なされることができる。
TLBシュートダウン要求は、システム上で動作しているすべてのコアに送信されてもよい。本明細書で説明したように、TLBシュートダウン要求は、識別情報、シュートダウンアドレスおよび通知アドレスを含むことができる。
TLBシュートダウン要求を受信した各コアに対して、受信コアの識別情報とTLBシュートダウン要求に含まれた識別情報との比較を行うことができる。受信コアの識別情報がTLBシュートダウン要求に含まれた識別情報と一致しない場合、TLBシュートダウン要求は、ハードウェア機構によって無視され、CPUの命令ストリームの実行に影響を与えない。そうでない場合、受信コアは、対応するTLBを見直して、シュートダウンアドレスを含むか否かを判断する。シュートダウンアドレスを含む場合、受信コアは、そのアドレスを無効化する。無効化が完了した場合、またはシュートダウンアドレスが受信コアのTLBに含まれていない場合に、または無効化が行われていない場合に、受信コアは、無効通知を通知アドレスに送信し、通常の機能、例えばアプリケーションの継続処理を再開する。
送信コアは、受信コアから受信した通知の数を追跡することができる。この場合、送信コアは、すべての受信コアが予想されたTLBシュートダウン要求の通知を通知するまで、通知アドレスで受信した通知の数を追跡することができる。いくつかの実施形態において、送信コアは、TLBシュートダウン要求を送信すると、すぐに動作を継続することができる。TLBシュートダウン要求のステータスを監視するために、オペレーティングシステムなどのソフトウェアがすべての通知を受信したことを保証することができる。
本明細書で説明された特徴によって、システムは、TLBシュートダウン要求をより効率的に処理することができる。TLBシュートダウン要求を引き起こしたプロセスを実行していないプロセッサコアは、TLBシュートダウン要求を無視することができる。さらに、TLBシュートダウンを送信したプロセッサコアは、TLBシュートダウンが完了した通知を受信するが、通知を追跡する必要がないため、より迅速に他の動作を継続することができる。
システムの例
図1は、TLBシュートダウンを実行できるシステム100を示している。システムは、少なくとも1つのプロセッサ103を含む。また、システム100は、ページテーブル131と、物理メモリ141と、二次メモリ151と、電力管理ユニット161とをさらに含む。
物理メモリ141および二次メモリ151は、1つ以上のプロセッサ103によってアクセス可能な情報、例えばプロセッサ103によって実行可能な命令(図示せず)を格納することができる。また、物理メモリおよび二次メモリは、プロセッサ103によって読出され、操作されまたは格納され得るデータ(図示せず)を格納することができる。物理メモリおよび二次メモリは、プロセッサによってアクセス可能な情報を格納することができる任意の非一時的な媒体、例えば、ハードドライブ、メモリカード、ROM、RAM、DVD、CD−ROM、書き込み可能専用メモリおよび読み出し専用メモリのいずれかであってもよい。
物理メモリおよび二次メモリに格納された命令は、直接に実行される任意の命令、例えば機械コード、またはプロセッサによって間接に実行される任意の命令、例えばスクリプトであってもよい。本明細書において、「命令」、「アプリケーション」、「ステップ」および「プログラム」という用語を交換可能に使用することができる。命令は、プロセッサによる直接処理のために機械コードの形式で、または要求に応じて翻訳されまたは事前
にコンパイルされたスクリプトまたは独立ソースコードモジュール群を含む任意の他のコンピュータ言語で格納されことができる。機能、方法および命令のルーチンは、以下で詳しく説明される。
物理メモリおよび二次メモリに格納されたデータは、命令に従って、プロセッサ103によって読出され、格納され、変更されてもよい。例えば、本明細書に記載される主題が特定のデータ構造によって制限されないが、データは、多くの異なるフィールドおよびレコードを有するテーブルまたはXML文書として、例えばコンピュータのレジスタまたは関係データベースに格納されることができる。データは、バイナリ値、ASCIIまたはユニコードなどのコンピュータ装置で読み取り可能なフォーマットにフォーマットされてもよい。さらに、データは、数字、記述テキスト、専有コード、ポインタ、他のネットワーク位置などの他のメモリに格納されたデータへの参照などの関連情報を識別するのに、またはある関数に利用され、当該関連情報を計算するための情報を識別するのに十分な情報を含むことができる。
プロセッサ103は、従来の任意プロセッサ、例えば、インテル社のプロセッサまたはAMD社(Advanced Micro Devices)のプロセッサであってもよい。代替的に、プロセッサは、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)などの専用コントローラであってもよい。さらに、プロセッサ103は、複数のプロセッサ、マルチコアプロセッサ、またはそれらの組み合わせを備えることができる。図1には1つのプロセッサ103しか示されていないが、システム100に複数のプロセッサを設けてもよいことは、当業者にとって認識できるであろう。同様に、プロセッサを言及する場合、並列に動作し得るプロセッサまたは専用ロジックの集合を含むことが理解されるであろう。
プロセッサ103は、1つ以上のコア105〜111を含むことができる。各コアが他のコアから独立してプログラム命令を実行することができる。これによって、多重処理を行うことができる。図示されていないが、各コアは、キャッシュを含むことができ、またはすべてのコアに単一のキャッシュを関連付けることができる。
また、システムは、少なくとも1つのページテーブル131を含む。ページテーブル131を用いて、プロセッサ103内にキャッシュされるデータの仮想メモリページを、例えばデータを格納する物理メモリ141または二次メモリ151内の対応する物理アドレスにマッピングすることができる。ページテーブル131は、プロセッサ103の外部に配置されていると図示されているが、プロセッサ103のキャッシュ内に、もしくは物理メモリ141または二次メモリ151内に格納されてもよい。
仮想メモリページを対応する物理アドレスに変換する速度を高めるために、プロセッサのコア105〜111は、仮想メモリページおよび物理メモリアドレスの最近の変換を格納する変換索引バッファ(TLB)121〜127をそれぞれ含むことができる。
システム100は、電力管理ユニット161を備えることができる。電力管理ユニットは、プロセッサ103内の各コアの電力状態を追跡することができる。電力状態は、「オン」状態、「オフ」状態、「オン」状態と「オフ」状態との間の中間状態を含む。以下で詳細に説明するように、電力管理ユニットは、各コアの代わりに通信を行うようにプログラムされてもよい。
図2に示すように、システム100は、1つ以上の仮想マシン(VM)201〜205を動作させるように構成されてもよい。そのため、プロセッサ103上で実行されるホスト231に、ハイパーバイザ221をインストールしてもよい。動作中、ホスト231は
、ハイパーバイザ231などのハイパーバイザまたは仮想マシンマネージャ(VMM)を含むオペレーティングシステムを動作させることができる。いくつかの実施形態において、ハイパーバイザ221は、ホスト231なしでプロセッサ103上で直接動作することができる。このような応用を達成するために、ハイパーバイザおよびVMMは、互換的に使用される。さらに、当業者であれば認識するように、ホスト231上のオペレーティングシステムは、Linux(登録商標)オペレーティングシステム、Windows(登録商標)オペレーティングシステム、または仮想マシンをサポートすることができる任意適切な他のオペレーティングシステムであってもよい。
ハイパーバイザは、これらのVMが互いに隔離されているように各VMを管理することができる。すなわち、各VM201、203および205が各自のハードウェアリソースを有する独立マシンであると見なすことができる。ハイパーバイザ221は、システム100のリソース(すなわち、メモリ、ネットワークインタフェースコントローラなど)にアクセスするVMを制御することができる。ハイパーバイザ221は、ハードウェア仮想化スキームを実装することによって、必要に応じてハードウェアリソースをVMに割り当てることができる。いくつかの例によれば、プロセッサ103は、ハイパーバイザ221を介してVM201、203および205と相互作用するハードウェアリソースの1種である。
VM201、203および205は、コンピュータのソフトウェア実装である。すなわち、VM201、203および205は、オペレーティングシステムを実行する。図面には3つのVMしか示されていないが、当業者なら、システム100が任意数のVMをサポートできることを認識するであろう。各々のVM201、203および205のオペレーティングシステムは、ホスト231のオペレーティングシステムと同様であってもよいが、必ずしも同様にする必要がない。さらに、各VMのオペレーティングシステムは、他のVMと異なってもよい。例えば、ホスト231は、Linux(登録商標)オペレーティング
システムを実行し、VM201は、Windows(登録商標)オペレーティングシステムを実
行し、VM203は、Solaris(登録商標)オペレーティングシステムを実行してもよい
。オペレーティングシステムのさまざまな組み合わせは、当業者には容易に明らかであり、本明細書において詳細に説明しない。いくつかの実施形態において、VMは、他のVM内にネストすることができる。例えば、VM201は、別のゲストVMをホストすることができる。
VMは、各自の仮想中央処理装置(VCPU)211〜215をそれぞれ含むことができる。図2のVMが単一のVCPUしか有しないと示されているが、VMは、任意数のVCPUを含むことができる。VCPUは、物理プロセッサ、例えばプロセッサ103のプロセッサコアに割り当てられた仮想化プロセッサである。各VCPUは、仮想プロセッサID(VPID)として知られている各自の特別な識別情報を有することができる。
方法の例
TLBシュートダウン要求を効率的に処理するために、仮想メモリページを削除する必要があるTLBに関連付けられたコアのみに、TLBシュートダウンを指示および追跡することによって、TLBシュートダウンを低減することができる。例えば、図4に示すように、1つ以上のプロセッサコア上で実行しているプロセスが、1つ以上の仮想メモリページと以前に関連付けられた1つ以上の物理メモリアドレスとの関連性を失わせた場合、ブロック401に示すように、関連性の喪失を引き起こしたコアによって、TLBシュートダウン要求を生成することができる。上記で説明したように、TLBシュートダウン要求は、シュートダウンが必要であるか否かを各受信コアに迅速に判断させることを可能にする識別情報、各TLBからフラッシュされる必要のある仮想メモリページを示すシュートダウンアドレス、および受信コアがTLBシュートダウン要求の処理完了を通知できる
場所を示す通知アドレスを含む。
識別情報は、各VMの識別子を含むことができる。VMに含まれた各VCPU、各プロセッサコア、およびVCPUおよび/またはプロセッサコア内で実行される各プロセスは、識別子を有することができる。特定の実施形態において、例えば、x86システムにおいて、識別情報は、1つ以上の高度なプログラム可能な割込みコントローラID(APICID)、仮想プロセッサID(VPID)、およびプロセス定義文ID(PCID)を含むことができる。APICIDは、ブロック403に示すように、ホスト231上のオペレーティングシステムなどのソフトウェアアプリケーションによって提供され、追跡されてもよい。例えば、オペレーティングシステム、例えばホスト231上で実行するオペレーティングシステムは、システムの各コアにAPICIDを割り当てることができる。オペレーティングシステムは、特定のプロセスを実行しているコアを追跡し、これらのコアのAPICIDを決定することができる。
APICIDをTLBシュートダウン要求に割り当てるために、ブロック404に示すように、TLBシュートダウン要求を要求したプロセスが(ゲスト)VMまたは(実際の)ホスト上で実行されているか否かを判断することができる。プロセスがVM上で動作している場合、ブロック405に示すように、オペレーティングシステムは、テーブルを用いて、特定のプロセスを実行しているVMの仮想プロセッサ(VCPU)を、VMを実行している物理コアにマッピングすることができる。VMを実行している物理コアのAPICIDは、TLBシュートダウン要求のAPICIDとして割り当てられることができる。プロセスがVM内で実行されていない場合、ブロック409に示すように、APICIDは、プロセスを実行している実際のAPICIDである。
APICIDをVCPUに割り当てる例は、図3に示される。VCPU211を含むVM201は、ホストオペレーティングシステム231にインストールされるハイパーバイザ221によって、制御されてもよい。四方囲み301で示すように、VCPU211は、最初にプロセッサのコア105に割り当てられ、その後、コア107に割り当てられてもよい。ホストオペレーティングシステム231は、VCPU211のAPICIDをプロセッサコア105および107のAPICIDにマッピングするテーブル(図示せず)を含むことができる。したがって、VM201上で実行している第1プロセスがTLBシュートダウンを要求する場合、ホストオペレーティングシステムは、プロセッサコア105および107に関連付けられた2つのAPICIDを割り当てることができる。
再び図4を参照して、仮想プロセッサIDは、VMの論理プロセッサおよび物理コアの両方に割り当てられることができる。例えば、プロセスが物理コア上で実行されている場合、ブロック411に示すように、その物理コアにVPID値0を割り当てることができる。プロセスがVM上で動作している場合、ブロック407に示すように、VMを制御するハイパーバイザは、VPID値を割り当てることができる。このVPID値は、システム100にVMを追加または削除することによって変更し得るため、VM内で動作するVCPUからのTLBシュートダウン要求のVPID値は、無視されてもよい。
実行されたすべてのプロセスにプロセス定義文ID(PCID)を割り当てることができる。プロセス定義文IDは、VCPUを含むプロセッサによって実行される各プロセスに特異なタグを与える。各プロセスのPCIDは、各々のプロセスに関連する特定のTLBエントリに割り当てられてもよい。プロセッサは、TLBシュートダウン要求を要求したプロセスのPCIDを決定することができる。TLBシュートダウンを要求したプロセスに関連するAPICID、VPID、およびPCIDは、共に識別情報として見なされてもよい。
TLBシュートダウンの識別情報、シュートダウンアドレスおよび通知アドレスは、タプルとして、物理メモリ141などのメモリに書き込まれてもよく、プロセッサ103のレジスタ(図示せず)に割り当てられてもよい。例えば、x86プロセッサの場合、TLBシュートダウンの識別情報、シュートダウンアドレスおよび通知アドレスは、さまざまなプロセッサレジスタ、例えば、RDXレジスタ、RAXレジスタ、RCXレジスタ、およびRDIレジスタに入力されることができる。一例において、モデル固有レジスタを書き込む命令(WRMSR)を介して、APICIDをRDXレジスタに入力し、VPIDおよびPCIDをRDIレジスタに入力することができる。
RCXレジスタは、割込み命令(例えば、TLBシュートダウン要求)を送信することを示すようにエンコードされてもよい。例えば、x86システムにおいて、既存のRCXレジスタ値は、0×830であり、RDXは、宛先フィールド(例えば、APICID)であってもよい。既存のRAX値は、以下である、すなわち、宛先記号:00、トリガーモード:0、レベル:1、宛先モード:0(物理モード)または1(論理モード)。これらの値は、「配信モード」および「ベクトル」に新しいエンコーディングを追加することによって変更することができる。たとえば、配信モード=010(SMI)、ベクトルが新しい非ゼロ値である。または配信モード=100(NMI)、ベクトルが新しい非ゼロ値である。この新しいエンコーディングは、TLBシュートダウンが実行されていることを示すことができる。さらに、他のレジスタは、他の新しい値を有することができる。例えば、RDIは、拡張宛先フィールド(例えば、VPIDおよびPCID)を含むことができ、RSIは、通知アドレスを含むことができ、RBXは、シュートダウンアドレスエンコーディングを含むことができる。他のエンコーディングを用いて、TLBシュートダウンが実行されていることを示すこともできる。これらの値は、モデル固有レジスタを書き込む命令(WRMSR)を介して、RAXレジスタおよび他のレジスタに入力することができる。
APICIDは、TLBシュートダウン要求が論理モードで送信されるかまたは物理モードで送信されるかを示すようにエンコードされてもよい。物理モードの場合、システム内の各コアに対して、TLBシュートダウン要求を個別に行う必要がある。例えば、プロセッサ103は、4つのコアを含み、そのうち1つがTLB要求を送信した。したがって、3つの異なるTLBシュートダウン要求が残りの3つのコアに各々送信される。APICIDが論理モードである場合、同一のTLBシュートダウン要求が残りの3つのコアに送信される。
シュートダウンアドレスは、タプルまたはレジストリに含まれてもよい。この場合、シュートダウンアドレスをタプルまたはレジストリにエンコードしてもよい。例えば、シュートダウンアドレスは、4kbページのページアドレス(例えば、INVLPG命令の符号化と一致するアドレス)、開始アドレス、およびページ数(例えば、ページ数のログ値またはページ数としてエンコードされる)の1種以上、または無効化アドレスのリストとしてエンコードされてもよい。
ブロック417に示すように、TLBシュートダウン要求は、システム上で動作しているすべてのコアに送信されてもよい。説明したように、TLBシュートダウン要求は、識別情報、シュートダウンアドレス、および通知アドレスを含むことができる。いくつかの実施形態において、オペレーティングシステムは、1つ以上の仮想メモリページを削除する必要があるTLBに関連付けられたコアのみに、TLBシュートダウンを指示することができる。したがって、OSは、一組のコアにTLBシュートダウンを指示することができる。
図5を参照して、ブロック501に示すように、TLBシュートダウン要求を受信した
各コアにおいて、受信コアの識別情報とTLBシュートダウン要求に含まれる識別情報との比較を行うことができる。受信コアの識別情報とTLBシュートダウン要求に含まれる識別情報とが一致しない場合、ブロック503に示すように、TLBシュートダウン要求を無視してもよい。そうでない場合、受信コアは、各々のTLBを検討し、シュートダウンアドレスを含むか否かを判断する。シュートダウンアドレスを含む場合、ブロック505に示すように、そのアドレスを無効化する。
無効化が完了したまたはシュートダウンアドレスが受信コアのTLBに含まれていない場合、ブロック507に示すように、受信コアは、通知アドレスに無効通知を送信することができる。受信コアの識別情報がTLBシュートダウン要求に含まれる識別情報と一致しない場合に、通知を送信することもできる。受信コアは、TLBシュートダウンを完了した時に、通常の機能、例えばアプリケーションの継続処理を再開することができる。いくつかの例において、TLBシュートダウンを無視した受信コアを含め、TLBシュートダウンを受信したすべてのコアが、通知を送信することができる。別の例において、シュートダウンを行ったコアのみが、通知を送信する。
いくつかの例において、プロセッサの電力管理ユニットは、TLBシュートダウンの完了を通知することができる。コアは、特定の閾値よりも低い電力状態に切り替えるとそのTLBをフラッシュすることができる。これによって、TLB無効化がそのコアにさらに影響を与えない。コアが閾値よりも低い電力状態にあるときにTLBシュートダウン要求の処理を完了した場合、低電力状態の受信コアが既に全てのTLBを解放したため、電力管理ユニットは、受信コアの代わりに、TLBシュートダウン要求の処理完了を通知することができる。電力管理ユニットがTLBシュートダウン要求の処理完了を通知できるようにすることによって、送信コアは、受信コアがより高い電力状態に戻るまで待機する必要がある場合よりも、要求に対する応答を早く受信することができる。さらに、受信コアによる処理は、TLBシュートダウン要求によって中断されなくてもよい。いくつかの例において、高度なプログラム可能な割込みコントローラ(APIC)(図示せず)などのシステム100内の他の構成要素を使用して、各コアの代わりに通信を行うことができる。例えば、APICは、TLBシュートダウンの完了を通知することができる。一般的に、他の常時稼働ハードウェアエージェントは、コアの代わりに、通知を実行するように拡張または作成することができる。たとえば、現在稼働されていないVCPUは、関連するTLBエントリを有しないため、常時稼働プロキシ通知によって、VCPUからの入力なしでTLBシュートダウン要求の処理完了を可能にすることができる。
送信コアは、受信コアから受信した通知の数を追跡することができる。この場合、送信コアは、すべての受信コアが予想されたTLBシュートダウン要求の通知を通知するまで、通知アドレスで受信した通知の数を追跡することができる。例えば、TLBシュートダウン要求に含まれるAPICIDに基づいて、送信コアは、予想された通知の数を知ることができる。したがって、送信コアは、この数の通知が受信されるまで、通知アドレス、例えばビットベクトルの特定の仮想アドレスまたは物理アドレスを監視することができる。いくつかの例において、送信コアは、TLBシュートダウン要求を送信すると、すぐに動作を継続することができる。TLBシュートダウン要求の状態を監視するために、ホストオペレーティングシステム231などのソフトウェアは、すべての通知が受信されたことを保証することができる。
単一のシステムが複数のプロセッサを備える場合、各プロセッサにソケットマネージャを割り当てることができる。各々のソケットマネージャは、プロセッサ内のすべてのコアからの通知を監視することができる。ソケットマネージャは、受信した通知を通知アドレスに報告することができる。いくつかの実施形態において、ソケットマネージャは、2つ以上のプロセッサに割り当てられてもよい。ソケットマネージャは、ソケットのサブ領域
、回路基板、シャーシなどに割り当てられてもよい。
TLBシュートダウンは、キャッシュラインに書き込むことによってトリガすることができる。この場合、各VCPUは、VM−VCPUペア毎に特異である共有状態のキャッシュラインを保持することができる。TLBシュートダウンを開始するために、TLBシュートダウンを開始したVCPUは、このキャッシュラインに書き込むことによって、対応するキャッシュからキャッシュラインを解放し、コアがTLBシュートダウンプロセスを開始すべくことを示すハードウェアまたはマイクロコードメカニズムをトリガする。
さらに、TLBシュートダウンは、特定のコアのみにターゲットすることができる。この場合、ソフトウェアは、すべてのVCPU/VMとコアとの間のマッピングを維持することができる。このマッピングに基づいて、TLBシュートダウンをトリガしたプロセスを処理するコアのみに、TLBシュートダウンを指示する。
前述した代替例の大部分は、互いに排他的ではなく、独自の利点を達成するためにさまざまな組み合わせで実施することができる。特許請求の範囲によって規定される主題から逸脱することなく、上述した特徴のこれらの変形および組み合わせおよび他の変形および組み合わせを利用することができるため、前述した実施形態の説明は、特許請求の範囲によって規定される主題を限定すものではなく、その例示として理解すべきである。一例として、上記の動作は、上述した正確な順序で実行される必要がない。むしろ、さまざまなステップは、異なる順序で、例えば逆の順序でまたは同時に処理することができる。別段の記載がない限り、ステップを省略することもできる。さらに、本明細書に記載された実施例、ならびに「例えば」および「含む」などの表現は、特許請求の範囲の主題を特定の実施例に限定するものとして解釈すべきではなく、むしろ、これらの実施例は、多くの可能な実施形態の一部を例示することを意図している。さらに、異なる図面において、同様の参照番号は、同一または類似の要素を指すことができる。

Claims (20)

  1. ハードウェア内で変換索引バッファ(TLB)シュートダウンを指示および追跡するための方法であって、
    1つ以上のプロセッサコアをそれぞれ備える1つ以上のプロセッサによって、第1プロセッサコア上で実行中のプロセスが1つ以上の仮想メモリページと以前に関連付けられた1つ以上の物理メモリアドレスとの関連性を失わせたことを検出するステップと、
    前記第1プロセッサコアによって、TLBシュートダウン要求を生成するステップと、
    前記第1プロセッサコアによって、前記TLBシュートダウン要求を前記1つ以上のプロセッサコアのうち他のプロセッサコアに送信するステップとを含み、
    前記TLBシュートダウン要求は、
    関連性が喪失され且つ前記他のプロセッサコアに対応するTLBからフラッシュされる必要のある仮想メモリページを示すシュートダウンアドレスと、
    前記他のプロセッサコアがTLBシュートダウン要求の処理完了を通知する場所を示す通知アドレスと、
    識別情報とを含む、方法。
  2. 前記方法は、前記他のプロセッサコアが前記TLBシュートダウン要求の処理を完了した場合、前記他のプロセッサコアから通知を受信するステップをさらに含み、
    前記通知は、前記通知アドレスで受信される、請求項1に記載の方法。
  3. 前記1つ以上のプロセッサは、1つ以上の仮想マシンを実行し、
    前記仮想マシンは、1つ以上の仮想コンピュータプロセッサ(VCPU)を含み、
    前記プロセスは、前記1つ以上のVCPU上で実行される第1プロセスである、請求項1に記載の方法。
  4. 電力管理ユニットによって、前記TLBシュートダウン要求を受信した第2コアが低電力状態にあるか否かを判断するステップと、
    前記第2コアが低電力状態にある場合、前記電力管理ユニットによって、前記TLBシュートダウン要求を通知するステップとをさらに含む、請求項1に記載の方法。
  5. 高度なプログラム可能な割込みコントローラ(APIC)によって、前記TLBシュートダウン要求を受信した第2コアが低電力状態にあるか否かを判断するステップと、
    前記第2コアが低電力状態にある場合、前記APICによって、前記TLBシュートダウン要求を通知するステップとをさらに含む、請求項1に記載の方法。
  6. 前記識別情報は、構成要素の識別子を含み、
    前記構成要素は、VM、前記VMに含まれたVCPU、プロセッサコア、および/または、VCPUもしくはプロセッサコア内で実行されるプロセスのうち1種以上を含む、請求項3に記載の方法。。
  7. 前記識別情報によって識別された前記構成要素のすべてが前記TLBシュートダウンを通知するまで、前記識別された構成要素から受信した通知の数を追跡するステップと、
    前記識別情報によって識別された前記構成要素のすべてから通知を受信した場合、前記第1プロセッサコアによって、前記TLBシュートダウン要求を完了するステップとをさらに含む、請求項6に記載の方法。
  8. ハードウェア内で変換索引バッファ(TLB)シュートダウンを指示および追跡するためのシステムであって、
    1つ以上のプロセッサを備え、各プロセッサは1つ以上のプロセッサコアを含み、
    前記1つ以上のプロセッサは、
    第1プロセッサコア上で実行中のプロセスが1つ以上の仮想メモリページと以前に関連付けられた1つ以上の物理メモリアドレスとの関連性を失わせたことを決定し、
    TLBシュートダウン要求を生成し、
    前記TLBシュートダウン要求を前記1つ以上のプロセッサコアのうち他のプロセッサコアに送信するように構成され、
    前記TLBショットダウン要求は、
    関連性が喪失され且つ前記他のプロセッサコアに対応するTLBからフラッシュされる必要のある仮想メモリページを示すシュートダウンアドレスと、
    前記他のプロセッサコアがTLBシュートダウン要求の処理完了を通知する場所を示す通知アドレスと、
    識別情報とを含む、システム。
  9. 前記1つ以上のプロセッサは、前記他のプロセッサコアが前記TLBシュートダウン要求の処理を完了した場合、前記他のプロセッサコアから通知を受信するように構成され、
    前記通知は、前記通知アドレスで受信される、請求項8に記載のシステム。
  10. 前記1つ以上のプロセッサは、1つ以上の仮想マシンを実行するように構成され、
    前記仮想マシンは、1つ以上の仮想コンピュータプロセッサ(VCPU)を含み、
    前記プロセスは、前記1つ以上のVCPU上で実行される第1プロセスである、請求項8に記載のシステム。
  11. 前記システムは、電力管理ユニットをさらに備え、
    前記電力管理ユニットは、前記TLBシュートダウン要求を受信した第2コアが低電力状態にあるか否かを判断し、前記第2コアが低電力状態にある場合、前記TLBシュートダウン要求を通知するように構成される、請求項8に記載のシステム。
  12. 高度なプログラム可能な割込みコントローラ(APIC)をさらに備え、
    前記APICは、前記TLBシュートダウン要求を受信した第2コアが低電力状態にあるか否かを判断し、前記第2コアが低電力状態にある場合、前記TLBシュートダウン要求を通知するように構成される、請求項8に記載のシステム。
  13. 前記識別情報は、構成要素の識別子を含み、
    前記構成要素は、VM、前記VMに含まれたVCPU、プロセッサコア、および/または、VCPUもしくはプロセッサコア内で実行されるプロセスのうち1種以上を含む、請求項10に記載のシステム。
  14. 前記1つ以上のプロセッサは、前記識別情報によって識別された前記構成要素のすべてが前記TLBシュートダウンを通知するまで、前記識別された構成要素から受信した通知の数を追跡し、前記識別情報によって識別された前記構成要素のすべてから通知を受信した場合、前記TLBシュートダウン要求を完了するように構成される、請求項13に記載のシステム。
  15. 命令を格納する非一時的なコンピュータ可読媒体であって、前記命令は、1つ以上のプロセッサコアをそれぞれ備える1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサに、ハードウェア内で変換索引バッファ(TLB)シュートダウンを指示および追跡するための方法を実行させ、
    前記方法は、
    第1プロセッサコア上で実行中のプロセスが1つ以上の仮想メモリページと以前に関連付けられた1つ以上の物理メモリアドレスとの関連性を失わせたことを検出するステッ
    プと、
    TLBシュートダウン要求を生成するステップと、
    前記TLBシュートダウン要求を前記1つ以上のプロセッサコアのうち他のプロセッサコアに送信するステップとを含み、
    前記TLBシュートダウン要求は、
    関連性が喪失され且つ前記他のプロセッサコアに対応するTLBからフラッシュされる必要のある仮想メモリページを示すシュートダウンアドレスと、
    前記他のプロセッサコアがTLBシュートダウン要求の処理完了を通知する場所を示す通知アドレスと、
    識別情報とを含む、非一時的なコンピュータ可読媒体。
  16. 前記方法は、前記他のプロセッサコアが前記TLBシュートダウン要求の処理を完了した場合、前記他のプロセッサコアから通知を受信するステップをさらに含み、
    前記通知は、前記通知アドレスで受信される、請求項15に記載の非一時的なコンピュータ可読媒体。
  17. 前記方法は、前記第2コアが低電力状態にある場合、前記電力管理ユニットから、前記TLBシュートダウン要求の通知を受信するステップをさらに含む、請求項15に記載の非一時的なコンピュータ可読媒体。
  18. 前記方法は、第2コアが低電力状態にある場合に、高度なプログラム可能な割込みコントローラ(APIC)から、前記TLBシュートダウン要求の通知を受信するステップをさらに含む、請求項15に記載の非一時的なコンピュータ可読媒体。
  19. 前記方法は、1つ以上の仮想マシンを実行させるステップをさらに含み、
    前記仮想マシンは、1つ以上の仮想コンピュータプロセッサ(VCPU)を含み、
    前記プロセスは、前記1つ以上のVCPU上で実行される第1プロセスである、請求項15に記載の非一時的なコンピュータ可読媒体。
  20. 前記方法は、前記識別情報によって識別された前記構成要素のすべてが前記TLBシュートダウンを通知するまで、前記識別された構成要素から受信した通知の数を追跡するステップと、
    前記識別情報によって識別された前記構成要素のすべてから通知を受信した場合、前記第1プロセッサコアによって、前記TLBシュートダウン要求を完了するステップとをさらに含む、請求項15に記載の非一時的なコンピュータ可読媒体。
JP2018146132A 2016-06-08 2018-08-02 ハードウェア内で変換索引バッファ(tlb)シュートダウンを指示および追跡するための方法およびシステム、並びに非一時的なコンピュータ可読媒体 Active JP6716645B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662347495P 2016-06-08 2016-06-08
US62/347,495 2016-06-08
US201615293627A 2016-10-14 2016-10-14
US15/293,627 2016-10-14

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2016246448A Division JP6382924B2 (ja) 2016-06-08 2016-12-20 ハードウェア内で変換索引バッファ(tlb)シュートダウンを指示および追跡するための方法およびシステム、並びに非一時的なコンピュータ可読媒体

Publications (3)

Publication Number Publication Date
JP2018181378A true JP2018181378A (ja) 2018-11-15
JP2018181378A5 JP2018181378A5 (ja) 2019-02-07
JP6716645B2 JP6716645B2 (ja) 2020-07-01

Family

ID=57569990

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2016246448A Active JP6382924B2 (ja) 2016-06-08 2016-12-20 ハードウェア内で変換索引バッファ(tlb)シュートダウンを指示および追跡するための方法およびシステム、並びに非一時的なコンピュータ可読媒体
JP2018146132A Active JP6716645B2 (ja) 2016-06-08 2018-08-02 ハードウェア内で変換索引バッファ(tlb)シュートダウンを指示および追跡するための方法およびシステム、並びに非一時的なコンピュータ可読媒体

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2016246448A Active JP6382924B2 (ja) 2016-06-08 2016-12-20 ハードウェア内で変換索引バッファ(tlb)シュートダウンを指示および追跡するための方法およびシステム、並びに非一時的なコンピュータ可読媒体

Country Status (6)

Country Link
EP (2) EP3255550B1 (ja)
JP (2) JP6382924B2 (ja)
CN (2) CN107480075B (ja)
DE (2) DE102016124749B4 (ja)
DK (2) DK3502906T3 (ja)
GB (1) GB2551226A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108710584B (zh) * 2018-05-22 2021-08-31 郑州云海信息技术有限公司 一种提高tlb刷新效率的方法
CN114595164B (zh) * 2022-05-09 2022-08-16 支付宝(杭州)信息技术有限公司 在虚拟化平台中管理tlb高速缓存的方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63286944A (ja) * 1987-05-20 1988-11-24 Hitachi Ltd アドレス変換バツフア無効化方式
US20060026359A1 (en) * 2004-07-30 2006-02-02 Ross Jonathan K Multiprocessor system having plural memory locations for respectively storing TLB-shootdown data for plural processor nodes
JP2006209797A (ja) * 1995-03-20 2006-08-10 Fujitsu Ltd キャッシュコヒーレンス装置
US20140189285A1 (en) * 2012-12-29 2014-07-03 Shaun M. Conrad Apparatus and Method For Tracking TLB Flushes On A Per Thread Basis
WO2015124899A1 (en) * 2014-02-21 2015-08-27 Arm Limited Invalidating stored address translations

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01109452A (ja) * 1987-10-22 1989-04-26 Fujitsu Ltd 変換索引バッファ情報の消去制御方式
JP2806778B2 (ja) * 1994-01-28 1998-09-30 甲府日本電気株式会社 変換索引バッファクリア命令処理方式
US5906001A (en) * 1996-12-19 1999-05-18 Intel Corporation Method and apparatus for performing TLB shutdown operations in a multiprocessor system without invoking interrup handler routines
US20040117590A1 (en) * 2002-12-12 2004-06-17 International Business Machines Corp. Aliasing support for a data processing system having no system memory
US7073043B2 (en) * 2003-04-28 2006-07-04 International Business Machines Corporation Multiprocessor system supporting multiple outstanding TLBI operations per partition
US7188229B2 (en) * 2004-01-17 2007-03-06 Sun Microsystems, Inc. Method and apparatus for memory management in a multi-processor computer system
US7454590B2 (en) * 2005-09-09 2008-11-18 Sun Microsystems, Inc. Multithreaded processor having a source processor core to subsequently delay continued processing of demap operation until responses are received from each of remaining processor cores
JP4908017B2 (ja) * 2006-02-28 2012-04-04 富士通株式会社 Dmaデータ転送装置及びdmaデータ転送方法
US20120203831A1 (en) * 2011-02-03 2012-08-09 Kent Schoen Sponsored Stories Unit Creation from Organic Activity Stream
CN101398768B (zh) * 2008-10-28 2011-06-15 北京航空航天大学 一种分布式虚拟机监视器系统的构建方法
CN102262557B (zh) * 2010-05-25 2015-01-21 运软网络科技(上海)有限公司 通过总线架构构建虚拟机监控器的方法及性能服务框架
US9916257B2 (en) * 2011-07-26 2018-03-13 Intel Corporation Method and apparatus for TLB shoot-down in a heterogeneous computing system supporting shared virtual memory
CN104204990B (zh) * 2012-03-30 2018-04-10 英特尔公司 在使用共享虚拟存储器的处理器中加速操作的装置和方法
US9411745B2 (en) * 2013-10-04 2016-08-09 Qualcomm Incorporated Multi-core heterogeneous system translation lookaside buffer coherency
CN105993005B (zh) 2014-07-21 2019-06-04 上海兆芯集成电路有限公司 具有地址转译快取的处理器及其操作方法
JP6663108B2 (ja) * 2016-02-29 2020-03-11 富士通株式会社 物理演算処理装置、情報処理装置及び情報処理装置の制御方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63286944A (ja) * 1987-05-20 1988-11-24 Hitachi Ltd アドレス変換バツフア無効化方式
JP2006209797A (ja) * 1995-03-20 2006-08-10 Fujitsu Ltd キャッシュコヒーレンス装置
US20060026359A1 (en) * 2004-07-30 2006-02-02 Ross Jonathan K Multiprocessor system having plural memory locations for respectively storing TLB-shootdown data for plural processor nodes
US20140189285A1 (en) * 2012-12-29 2014-07-03 Shaun M. Conrad Apparatus and Method For Tracking TLB Flushes On A Per Thread Basis
WO2015124899A1 (en) * 2014-02-21 2015-08-27 Arm Limited Invalidating stored address translations

Also Published As

Publication number Publication date
EP3502906B1 (en) 2021-06-16
DE202016008132U1 (de) 2017-04-24
GB201621246D0 (en) 2017-01-25
JP6716645B2 (ja) 2020-07-01
GB2551226A (en) 2017-12-13
EP3255550A1 (en) 2017-12-13
DK3502906T3 (da) 2021-08-30
JP6382924B2 (ja) 2018-08-29
EP3502906A1 (en) 2019-06-26
EP3255550B1 (en) 2019-04-03
CN112286839A (zh) 2021-01-29
JP2017220211A (ja) 2017-12-14
CN107480075B (zh) 2020-10-27
CN112286839B (zh) 2024-05-10
DK3255550T3 (da) 2019-07-15
DE102016124749A1 (de) 2017-12-14
CN107480075A (zh) 2017-12-15
DE102016124749B4 (de) 2023-08-10

Similar Documents

Publication Publication Date Title
US10977191B2 (en) TLB shootdowns for low overhead
US9671970B2 (en) Sharing an accelerator context across multiple processes
US9772962B2 (en) Memory sharing for direct memory access by a device assigned to a guest operating system
US9854036B2 (en) Method for migrating memory data of virtual machine, and related apparatus and cluster system
US10367688B2 (en) Discovering changes of network interface controller names
US11836091B2 (en) Secure memory access in a virtualized computing environment
US20160239323A1 (en) Virtual Remote Direct Memory Access Management
EP3274896B1 (en) Configuration of a memory controller for copy-on-write with a resource controller
CN108073451B (zh) 一种多核cpu上异构操作系统间中断处理方法及装置
JP6716645B2 (ja) ハードウェア内で変換索引バッファ(tlb)シュートダウンを指示および追跡するための方法およびシステム、並びに非一時的なコンピュータ可読媒体
US10341177B2 (en) Parallel computing system and migration method
US9684529B2 (en) Firmware and metadata migration across hypervisors based on supported capabilities
US20230185593A1 (en) Virtual device translation for nested virtual machines
US11860792B2 (en) Memory access handling for peripheral component interconnect devices
US11409551B2 (en) Emulating VPID correctly for a nested hypervisor
US9652296B1 (en) Efficient chained post-copy virtual machine migration
US20230214247A1 (en) Robust resource removal for virtual machines
US20240211293A1 (en) Efficient queue shadowing for virtual machines
EP4321998A1 (en) Performance optimized task duplication and migration
CN117591252A (zh) 性能优化的任务复制和迁移

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181217

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191029

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191029

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200124

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200610

R150 Certificate of patent or registration of utility model

Ref document number: 6716645

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