JP7619966B2 - 入出力メモリ管理ユニットによるゲストオペレーティングシステムのバッファとログへのアクセス - Google Patents
入出力メモリ管理ユニットによるゲストオペレーティングシステムのバッファとログへのアクセス Download PDFInfo
- Publication number
- JP7619966B2 JP7619966B2 JP2021573410A JP2021573410A JP7619966B2 JP 7619966 B2 JP7619966 B2 JP 7619966B2 JP 2021573410 A JP2021573410 A JP 2021573410A JP 2021573410 A JP2021573410 A JP 2021573410A JP 7619966 B2 JP7619966 B2 JP 7619966B2
- Authority
- JP
- Japan
- Prior art keywords
- guest
- iommu
- operating system
- log
- guest operating
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
一部の電子デバイス(例えば、サーバやデスクトップコンピュータ等)は、入出力(I/O)デバイス等の電子デバイスハードウェアの「仮想化」をサポートする。仮想化は、電子デバイス上又は電子デバイス内の中間エンティティが、電子デバイス上で実行中のソフトウェアのインスタンス(例えばアプリケーションプログラム等)に対して、ソフトウェアのインスタンスが電子デバイスハードウェアに直接アクセス可能であるというような錯覚を与えるが、実際には、中間エンティティが、ソフトウェアのインスタンスが行うアクセスをインターセプト/リダイレクト又は他の方法で補助することを含む。例えば、一般的な中間エンティティの1つに「仮想マシン」がある。仮想マシンは、電子デバイスハードウェアを抽象化し、電子デバイスハードウェアへの既知のインタフェースをエミュレート又は提示するソフトウェアエンティティであり、それによって、ソフトウェアのインスタンスが様々なタイプ及び構成の電子デバイス上で実行することが可能になる。電子デバイスハードウェアの構成は、ソフトウェアのインスタンスが互換性を有しない電子デバイスハードウェアを含む可能性がある。一部の電子デバイスでは、仮想マシンは、メモリや中央処理装置(CPU)等の特定のマシンの(仮想化された)リソースの各々のビューを有する「ゲスト」オペレーティングシステムと呼ばれるオペレーティングシステムの1つ以上のインスタンスの実行をサポートする。一方、ゲストオペレーティングシステムは、生産性アプリケーション、データベース等のソフトウェアの他のインスタンスを実行するための環境を提供する。
以下の説明では、様々な用語が実施形態を説明するために用いられる。以下は、これらの用語の簡略化された一般的な説明である。この用語は、明確且つ簡潔にするために、本明細書に記載されていない重要な追加特徴を有していてもよく、したがって、この説明は用語を限定することを意図していないことに留意されたい。
記載された実施形態は、メモリ、入出力(IO)デバイス等の電子デバイスハードウェアの「仮想化」をサポートする。仮想化は、一般に、電子デバイス上又は電子デバイス内の中間エンティティが、電子デバイス上で実行中のソフトウェアのインスタンスに対して、ソフトウェアのインスタンスが電子デバイスハードウェアに直接アクセス可能であるというような錯覚を与えるが、実際には、中間エンティティが、ソフトウェアのインスタンスが行うアクセスをインターセプト/リダイレクト又は他の方法で補助することを含む。例えば、ソフトウェアのインスタンスは、中間エンティティによって、電子デバイスの実際のデバイスレジスタ、メモリ位置等としてソフトウェアのインスタンスに出現するが中間エンティティによって示される単なるコピーである電子デバイスレジスタ、メモリ位置、電子デバイス設定、及び、他の機能ブロックのセットを用いて提示され得る。この場合、中間エンティティは、電子デバイスハードウェアのコピーのアクセスを受信、傍受(インターセプト)又は他の方法で取得し、ソフトウェアのインスタンスに代わって実際の電子デバイスハードウェアと対応する相互作用を行う。電子デバイスハードウェアの仮想化は、様々な電子デバイスが様々な構成の電子デバイスハードウェア、電子デバイスハードウェアの様々等レス、位置又は識別子等を用いることを可能にし、ソフトウェアのインスタンスが、電子デバイスハードウェアへの同一のインタフェースを用いて中間エンティティを介して示される等の多くの利点がある。さらに、中間エンティティは、ソフトウェアの所定のインスタンスによる電子デバイスハードウェアのアクセスを許可するかブロックするかを決定することができ、したがって、電子デバイスハードウェアの仮想化により、電子デバイスハードウェア(又は、その一部)及び/又は電子デバイス上で実行中のソフトウェアのインスタンスの保護を可能にする。上述したようにアクセスを制御することによって、中間エンティティは、ソフトウェアのいくつかのインスタンス間で電子デバイスハードウェアを共有し、及び/又は、ソフトウェアの個々のインスタンスに、電子デバイスハードウェアの一部への排他的アクセスを提供することができる。
記載された実施形態では、電子デバイスは、プロセッサと、メモリ(例えば、メインメモリ)と、いくつかの入出力(IO)デバイス(例えば、ネットワークインタフェースデバイス、ディスクコントローラ等)と、プロセッサとIOデバイスとの間をインタフェースする入出力メモリ管理ユニット(IOMMU)と、を含む。プロセッサは、ハイパーバイザ、1つ以上の仮想マシン、及び、仮想マシンにおけるゲストオペレーティングシステムを実行する。各ゲストオペレーティングシステムは、そのゲストオペレーティングシステムがアクセスするデータ及び情報を記憶するために予約されたメモリのゲスト部分(連続若しくは非連続の領域又はメモリのブロック)が割り当てられる。記載された実施形態では、IOMMUは、ゲストオペレーティングシステムとIOMMUとの間の通信を処理するための動作を実行する。
図4は、いくつかの実施形態による、電子デバイス400を示すブロック図である。図4に見られるように、電子デバイス400は、プロセッサ402と、メモリ404と、大容量記憶装置406と、入出力(IO)デバイス408~412と、入出力(IO)ハブ414と、メモリコントローラ416と、を含む。
いくつかの実施形態では、IOMMUは、本明細書に記載される動作を実行するために、メモリ(例えば、メモリ404)の異なる部分におけるデータ及び情報にアクセスする。これらの実施形態のいくつかにおいて、メモリの一部は、IOMMUバッキングストア(例えば、IOMMUバッキングストア426)、ゲストメモリ(例えば、ゲストメモリ428)、及び/又は、ハイパーバイザメモリを含む。図5は、いくつかの実施形態による、IOMMUによってアクセスされるメモリの一部を示すブロック図である。図5は一例として示されているが、いくつかの実施形態では、メモリ及び/又はメモリの異なる部分は、異なるタイプ及び/又は構成の情報を記憶する。一般に、メモリは、本明細書で記載された動作を可能にするのに十分な情報を含む。
記載された実施形態では、IOMMU(例えば、IOMMU424)は、IOMMU(又は、それによってサービスされるIOデバイス)とゲストオペレーティングシステムとの間の通信を処理する。図7は、いくつかの実施形態による、IOMMU702によって処理される、ゲストオペレーティングシステム700とIOMMU702との間の通信を示すブロック図である。図7には、いくつかの要素が特定の構成で示されているが、他の実施形態では、異なる数又は構成の要素を用いる。一般に、記載された実施形態では、IOMMU702は、本明細書に記載された動作を可能にするのに十分な要素を含むか、それらにアクセスする。図7では、いくつかの要素が点線/点状で示されている。これらの要素は、メモリに(例えば、IOMMUバッキングストア500に、ゲストメモリ512に等)記憶され、IOMMU702、ゲストオペレーティングシステム700及び/又は他のエンティティによって典型的なメモリアクセス技術を用いてアクセスされるログ、バッファ等である。いくつかの実施形態では、ゲストオペレーティングシステム700、IOMMU702及びハイパーバイザ704は、図3のゲストオペレーティングシステム302、IOMMU312及びハイパーバイザ306と同様に構成されるが、これは必須要件ではない。
説明された実施形態では、IOMMU(例えば、IOMMU702)は、IOMMUとゲストオペレーティングシステム(例えば、ゲストオペレーティングシステム700)との間で情報を通信するために使用されるメモリのゲスト部分におけるゲストバッファ及びログにアクセスする(例えば、読み取り及び書き込み)ための動作を実行する。例えば、いくつかの実施形態では、IOMMUは、ゲストオペレーティングシステムのメモリの各々のゲスト部分におけるゲストコマンドバッファ、ゲストイベントログ及び/又はゲスト周辺ページ要求(PPR)ログにおけるエントリにアクセスする。ハイパーバイザが、メモリアクセス動作を処理すること無しに、メモリの各ゲストオペレーティングシステムの部分におけるゲストバッファ及びログに、IOMMUが通常のメモリアクセス動作を使用してアクセスするという点において、IOMMUは、各ゲストオペレーティングシステムのゲストバッファとログに直接アクセスする。図8は、いくつかの実施形態による、ゲストオペレーティングシステムのためのメモリのゲスト部分におけるバッファ又はログにIOMMUがアクセスする間のプロセスを示すフローチャートを示す。図8に示す動作は、いくつかの実施形態によって実行される動作の一般的な例として示されていることに留意されたい。他の実施形態によって実施される動作には、異なる動作、異なる順序で実施される動作、及び/又は、異なるエンティティ若しくは機能ブロックによって実施される動作が含まれる。
Claims (20)
- ゲストオペレーティングシステムを実行するプロセッサと、
前記ゲストオペレーティングシステムによってアクセスされるデータ及び情報を記憶するために予約されたゲスト部分を有するメモリと、
入出力メモリ管理ユニット(IOMMU)と、を備える電子デバイスであって、
前記IOMMUは、
前記ゲスト部分において、前記IOMMUから前記ゲストオペレーティングシステムへの情報の通信に用いられるゲストバッファ及び/又はログに情報を書き込むことと、
前記ゲストオペレーティングシステムから前記IOMMUへの情報の通信に用いられるゲストバッファ及び/又はログ内の情報を前記ゲスト部分から読み取ることと、
を行うように構成されている、
電子デバイス。 - 前記IOMMUが、前記ゲスト部分において、所定のゲストバッファ又はログに情報を書き込むことは、
前記IOMMUが、前記メモリ内の前記所定のゲストバッファ又はログのシステム物理アドレスを決定することと、
前記IOMMUが、前記システム物理アドレスにおける前記メモリ内の前記所定のゲストバッファ又はログに情報を書き込むことと、
前記IOMMUが、前記IOMMUが前記情報を前記所定のゲストバッファ又はログに書き込んだという指標を、前記ゲストオペレーティングシステムに送信することと、を含む、
請求項1の電子デバイス。 - 前記IOMMUが、前記ゲスト部分において、前記所定のゲストバッファ又はログに情報を書き込むことは、
前記IOMMUが、前記ゲストオペレーティングシステムの識別子に基づいて、IOMMUバッキングストア内の前記ゲストオペレーティングシステムのIOMMU MMIOレジスタのコピーのシステム物理アドレスを決定することと、
前記IOMMUが、前記IOMMUバッキングストア内の前記ゲストオペレーティングシステムの前記IOMMU MMIOレジスタのコピーから前記システム物理アドレスを取得することと、
前記IOMMUが、前記情報の前記ゲストバッファ又はログへの書き込み後に、前記IOMMUバッキングストア内の前記ゲストオペレーティングシステムの前記IOMMU MMIOレジスタのコピーを更新して、前記ゲストバッファ又はログへの書き込みを示すことと、を含む、
請求項2の電子デバイス。 - 前記指標を前記ゲストオペレーティングシステムに送信することは、
前記IOMMUが、前記ゲストオペレーティングシステムの割り込みコントローラの仮想コピーを介して、内部割り込みを前記ゲストオペレーティングシステムに送信することを含み、
前記内部割り込みは、前記所定のゲストバッファ又はログを前記IOMMUが書き込んだことを前記ゲストオペレーティングシステムに通知する、
請求項2の電子デバイス。 - 前記ゲストオペレーティングシステムは、前記指標に基づいて、前記情報を前記システム物理アドレスにおける前記ゲスト部分の前記ゲストバッファ又はログから読み取る、
請求項2の電子デバイス。 - 前記ゲストオペレーティングシステムが、前記情報を前記ゲスト部分の前記ゲストバッファ又はログから読み取ることは、
前記ゲストオペレーティングシステムが、前記IOMMUを介して、IOMMUバッキングストア内の前記ゲストオペレーティングシステムのIOMMU MMIOレジスタのコピーから情報を取得することと、
前記ゲストオペレーティングシステムが、前記IOMMU MMIOレジスタのコピーからの前記情報を使用して、前記ゲスト部分の前記ゲストバッファ又はログから前記情報を読み取ることと、を含む、
請求項5の電子デバイス。 - 前記IOMMUが、前記ゲスト部分の所定のゲストバッファ又はログから情報を読み取ることは、
前記IOMMUが、前記所定のゲストバッファ又はログに関連付けられているIOMMU MMIOレジスタを更新するためのメモリ書き込み要求を前記ゲストオペレーティングシステムから受信することであって、前記ゲストオペレーティングシステムは、前記所定のゲストバッファ又はログに個別に書き込みを行っている、ことと、
前記IOMMUが、前記更新に基づいて、前記ゲスト部分の前記所定のゲストバッファ又はログのシステム物理アドレスを決定することと、
前記IOMMUが、前記システム物理アドレスにおける前記メモリ内の前記所定のゲストバッファ又はログから情報を読み取ることと、を含む、
請求項1の電子デバイス。 - 前記IOMMUは、
前記メモリ書き込み要求と前記ゲストオペレーティングシステムの識別子とに基づいて、IOMMUバッキングストア内の前記ゲストオペレーティングシステムの前記IOMMU MMIOレジスタのコピーのシステム物理アドレスを決定することと、
前記IOMMUバッキングストア内の前記ゲストオペレーティングシステムの前記IOMMU MMIOレジスタのコピーの対応する更新を実行することと、
を行うように構成されている、
請求項7の電子デバイス。 - 前記ゲストバッファ及び/又はログは、
コマンドバッファと、
イベントログと、
周辺ページ要求(PPR)ログと、
のうち一部又は全てを含む、
請求項1の電子デバイス。 - 前記プロセッサは、少なくとも1つの他のゲストオペレーティングシステムを実行し、
前記メモリは、前記少なくとも1つの他のゲストオペレーティングシステムによってアクセスされるデータ及び情報を記憶するために予約された個別のゲスト部分を有し、
前記IOMMUは、
対応するゲスト部分において、前記IOMMUから前記少なくとも1つの他のゲストオペレーティングシステムに情報を通信するために使用されるゲストバッファ及び/又はログに情報を書き込むことと、
前記少なくとも1つの他のゲストオペレーティングシステムから前記IOMMUに情報を通信するために使用されるゲストバッファ及び/又はログ内の情報を前記対応するゲスト部分から読み取ることと、
を行うように構成されている、
請求項1の電子デバイス。 - ゲストオペレーティングシステムを実行するプロセッサと、前記ゲストオペレーティングシステムによってアクセスされるデータ及び情報を記憶するために予約されたゲスト部分を有するメモリと、入出力メモリ管理ユニット(IOMMU)と、を備える電子デバイスにおいてゲストバッファ及びログにアクセスする方法であって、
前記IOMMUが、前記ゲスト部分において、前記IOMMUから前記ゲストオペレーティングシステムへの情報の通信に用いられるゲストバッファ及び/又はログに情報を書き込むことと、
前記IOMMUが、前記ゲストオペレーティングシステムから前記IOMMUへの情報の通信に用いられるゲストバッファ及び/又はログ内の情報を前記ゲスト部分から読み取ることと、を含む、
方法。 - 前記IOMMUが、前記ゲスト部分において、所定のゲストバッファ又はログに情報を書き込むことは、
前記IOMMUが、前記メモリ内の前記所定のゲストバッファ又はログのシステム物理アドレスを決定することと、
前記IOMMUが、前記システム物理アドレスにおける前記メモリ内の前記所定のゲストバッファ又はログに情報を書き込むことと、
前記IOMMUが、前記IOMMUが前記情報を前記所定のゲストバッファ又はログに書き込んだという指標を、前記ゲストオペレーティングシステムに送信することと、を含む、
請求項11の方法。 - 前記IOMMUが、前記ゲスト部分において、前記所定のゲストバッファ又はログに情報を書き込むことは、
前記IOMMUが、前記ゲストオペレーティングシステムの識別子に基づいて、IOMMUバッキングストア内の前記ゲストオペレーティングシステムのIOMMU MMIOレジスタのコピーのシステム物理アドレスを決定することと、
前記IOMMUが、前記IOMMUバッキングストア内の前記ゲストオペレーティングシステムの前記IOMMU MMIOレジスタのコピーから前記システム物理アドレスを取得することと、
前記IOMMUが、前記情報の前記ゲストバッファ又はログへの書き込み後に、前記IOMMUバッキングストア内の前記ゲストオペレーティングシステムの前記IOMMU MMIOレジスタのコピーを更新して、前記ゲストバッファ又はログへの書き込みを示すことと、を含む、
請求項12の方法。 - 前記指標を前記ゲストオペレーティングシステムに送信することは、
前記IOMMUが、前記ゲストオペレーティングシステムの割り込みコントローラの仮想コピーを介して、内部割り込みを前記ゲストオペレーティングシステムに送信することを含み、
前記内部割り込みは、前記所定のゲストバッファ又はログを前記IOMMUが書き込んだことを前記ゲストオペレーティングシステムに通知する、
請求項12の方法。 - 前記ゲストオペレーティングシステムが、前記指標に基づいて、前記情報を前記システム物理アドレスにおける前記ゲスト部分の前記ゲストバッファ又はログから読み取ることを含む、
請求項12の方法。 - 前記ゲストオペレーティングシステムが、前記情報を前記ゲスト部分の前記ゲストバッファ又はログから読み取ることは、
前記ゲストオペレーティングシステムが、前記IOMMUを介して、IOMMUバッキングストア内の前記ゲストオペレーティングシステムのIOMMU MMIOレジスタのコピーから情報を取得することと、
前記ゲストオペレーティングシステムが、前記IOMMU MMIOレジスタのコピーからの前記情報を使用して、前記ゲスト部分の前記ゲストバッファ又はログから前記情報を読み取ることと、を含む、
請求項15の方法。 - 前記IOMMUが、前記ゲスト部分の所定のゲストバッファ又はログから情報を読み取ることは、
前記IOMMUが、前記所定のゲストバッファ又はログに関連付けられているIOMMU MMIOレジスタを更新するためのメモリ書き込み要求を前記ゲストオペレーティングシステムから受信することであって、前記ゲストオペレーティングシステムは、前記所定のゲストバッファ又はログに個別に書き込みを行っている、ことと、
前記IOMMUが、前記更新に基づいて、前記ゲスト部分の前記所定のゲストバッファ又はログのシステム物理アドレスを決定することと、
前記IOMMUが、前記システム物理アドレスにおける前記メモリ内の前記所定のゲストバッファ又はログから情報を読み取ることと、を含む、
請求項11の方法。 - 前記IOMMUは、
前記メモリ書き込み要求と前記ゲストオペレーティングシステムの識別子とに基づいて、IOMMUバッキングストア内の前記ゲストオペレーティングシステムの前記IOMMU MMIOレジスタのコピーのシステム物理アドレスを決定することと、
前記IOMMUバッキングストア内の前記ゲストオペレーティングシステムの前記IOMMU MMIOレジスタのコピーの対応する更新を実行することと、
を行うように構成されている、
請求項17の方法。 - 前記ゲストバッファ及び/又はログは、
コマンドバッファと、
イベントログと、
周辺ページ要求(PPR)ログと、
のうち一部又は全てを含む、
請求項11の方法。 - 前記プロセッサは、少なくとも1つの他のゲストオペレーティングシステムを実行し、
前記メモリは、前記少なくとも1つの他のゲストオペレーティングシステムによってアクセスされるデータ及び情報を記憶するために予約された個別のゲスト部分を有し、
前記IOMMUは、
対応するゲスト部分において、前記IOMMUから前記少なくとも1つの他のゲストオペレーティングシステムに情報を通信するために使用されるゲストバッファ及び/又はログに情報を書き込むことと、
前記少なくとも1つの他のゲストオペレーティングシステムから前記IOMMUに情報を通信するために使用されるゲストバッファ及び/又はログ内の情報を前記対応するゲスト部分から読み取ることと、
を行うように構成されている、
請求項11の方法。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US16/436,813 US12260120B2 (en) | 2019-06-10 | 2019-06-10 | Guest operating system buffer and log accesses by an input-output memory management unit |
| US16/436,813 | 2019-06-10 | ||
| PCT/US2020/035506 WO2020251790A1 (en) | 2019-06-10 | 2020-06-01 | Guest operating system buffer and log access by an input-output memory management unit |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2022536689A JP2022536689A (ja) | 2022-08-18 |
| JP7619966B2 true JP7619966B2 (ja) | 2025-01-22 |
Family
ID=73650568
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2021573410A Active JP7619966B2 (ja) | 2019-06-10 | 2020-06-01 | 入出力メモリ管理ユニットによるゲストオペレーティングシステムのバッファとログへのアクセス |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US12260120B2 (ja) |
| EP (1) | EP3980885B1 (ja) |
| JP (1) | JP7619966B2 (ja) |
| KR (1) | KR102920692B1 (ja) |
| CN (1) | CN114080587B (ja) |
| WO (1) | WO2020251790A1 (ja) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12511141B2 (en) * | 2021-06-04 | 2025-12-30 | SDG Logic Inc. | System and methods for Input/Output device emulation |
| US20230004461A1 (en) * | 2021-07-02 | 2023-01-05 | Dell Products L.P. | Systems and methods for using pattern-based bit flips for faster write and consistent error recovery |
| US12455833B2 (en) * | 2022-04-18 | 2025-10-28 | Samsung Electronics Co., Ltd. | Systems and methods for address translation |
| US20240220297A1 (en) * | 2022-12-29 | 2024-07-04 | Advanced Micro Devices, Inc. | Interrupt control using a guest owned backing page |
| CN120353620B (zh) * | 2025-06-17 | 2025-08-22 | 苏州元脑智能科技有限公司 | 一种日志收集方法、装置、设备及介质 |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2013514588A (ja) | 2009-12-17 | 2013-04-25 | マイクロソフト コーポレーション | 仮想記憶ターゲットオフロード技術 |
| JP2013515983A (ja) | 2009-12-24 | 2013-05-09 | インテル・コーポレーション | 仮想化環境においてi/o処理を行う方法および装置 |
| JP2015500524A (ja) | 2011-11-30 | 2015-01-05 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | 効率的なメモリ及びリソース管理 |
| US10013388B1 (en) | 2016-12-19 | 2018-07-03 | Amazon Technologies, Inc. | Dynamic peer-to-peer configuration |
| US10140148B1 (en) | 2017-08-30 | 2018-11-27 | Red Hat Israel, Ltd. | Copy based IOMMU emulation for out-of-process emulated devices |
| US10191861B1 (en) | 2016-09-06 | 2019-01-29 | Fireeye, Inc. | Technique for implementing memory views using a layered virtualization architecture |
Family Cites Families (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2001217135A (ja) * | 2000-02-03 | 2001-08-10 | Murata Mfg Co Ltd | 積層セラミック電子部品およびその製造方法 |
| US7543131B2 (en) * | 2005-08-12 | 2009-06-02 | Advanced Micro Devices, Inc. | Controlling an I/O MMU |
| US7613898B2 (en) * | 2006-01-17 | 2009-11-03 | Globalfoundries Inc. | Virtualizing an IOMMU |
| US7904692B2 (en) * | 2007-11-01 | 2011-03-08 | Shrijeet Mukherjee | Iommu with translation request management and methods for managing translation requests |
| US8055827B2 (en) * | 2009-01-26 | 2011-11-08 | Advanced Micro Devices, Inc. | Guest interrupt controllers for each processor to aid interrupt virtualization |
| US8086765B2 (en) * | 2010-04-29 | 2011-12-27 | Hewlett-Packard Development Company, L.P. | Direct I/O device access by a virtual machine with memory managed using memory disaggregation |
| US20130145051A1 (en) | 2011-12-02 | 2013-06-06 | Andrew Kegel | Direct Device Assignment |
| US9424199B2 (en) * | 2012-08-29 | 2016-08-23 | Advanced Micro Devices, Inc. | Virtual input/output memory management unit within a guest virtual machine |
| US9489173B2 (en) * | 2014-06-04 | 2016-11-08 | Advanced Micro Devices, Inc. | Resizable and relocatable queue |
| EP3338194B1 (en) * | 2016-05-31 | 2022-12-07 | Avago Technologies International Sales Pte. Limited | Multichannel input/output virtualization |
| US10169244B2 (en) * | 2016-07-29 | 2019-01-01 | Advanced Micro Devices, Inc. | Controlling access to pages in a memory in a computing device |
| US10509736B2 (en) * | 2016-07-29 | 2019-12-17 | Advanced Micro Devices, Inc. | Controlling access by IO devices to pages in a memory in a computing device |
| US10176122B2 (en) * | 2016-10-19 | 2019-01-08 | Advanced Micro Devices, Inc. | Direct memory access authorization in a processing system |
-
2019
- 2019-06-10 US US16/436,813 patent/US12260120B2/en active Active
-
2020
- 2020-06-01 CN CN202080043003.7A patent/CN114080587B/zh active Active
- 2020-06-01 KR KR1020217043276A patent/KR102920692B1/ko active Active
- 2020-06-01 JP JP2021573410A patent/JP7619966B2/ja active Active
- 2020-06-01 WO PCT/US2020/035506 patent/WO2020251790A1/en not_active Ceased
- 2020-06-01 EP EP20821688.7A patent/EP3980885B1/en active Active
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2013514588A (ja) | 2009-12-17 | 2013-04-25 | マイクロソフト コーポレーション | 仮想記憶ターゲットオフロード技術 |
| JP2013515983A (ja) | 2009-12-24 | 2013-05-09 | インテル・コーポレーション | 仮想化環境においてi/o処理を行う方法および装置 |
| JP2015500524A (ja) | 2011-11-30 | 2015-01-05 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | 効率的なメモリ及びリソース管理 |
| US10191861B1 (en) | 2016-09-06 | 2019-01-29 | Fireeye, Inc. | Technique for implementing memory views using a layered virtualization architecture |
| US10013388B1 (en) | 2016-12-19 | 2018-07-03 | Amazon Technologies, Inc. | Dynamic peer-to-peer configuration |
| US10140148B1 (en) | 2017-08-30 | 2018-11-27 | Red Hat Israel, Ltd. | Copy based IOMMU emulation for out-of-process emulated devices |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2020251790A1 (en) | 2020-12-17 |
| KR102920692B1 (ko) | 2026-01-29 |
| EP3980885A1 (en) | 2022-04-13 |
| KR20220017949A (ko) | 2022-02-14 |
| EP3980885A4 (en) | 2023-06-28 |
| CN114080587B (zh) | 2024-12-17 |
| EP3980885B1 (en) | 2026-01-28 |
| US12260120B2 (en) | 2025-03-25 |
| US20200387326A1 (en) | 2020-12-10 |
| JP2022536689A (ja) | 2022-08-18 |
| CN114080587A (zh) | 2022-02-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7689945B2 (ja) | 入出力メモリ管理ユニットからゲストオペレーティングシステムへの割り込みの提供 | |
| JP7564830B2 (ja) | 入出力メモリ管理ユニットレジスタのコピーのゲストオペレーティングシステムへの提供 | |
| JP7619966B2 (ja) | 入出力メモリ管理ユニットによるゲストオペレーティングシステムのバッファとログへのアクセス | |
| US7613898B2 (en) | Virtualizing an IOMMU | |
| JP7520843B2 (ja) | 入出力メモリ管理ユニットによるドメイン識別子及びデバイス識別子の変換 | |
| JP7824301B2 (ja) | 入出力デバイスによってアクセス可能なメモリのページの移行 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230510 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20240531 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240604 |
|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20240904 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240918 |
|
| 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: 20241224 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20250109 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7619966 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |