JP2013500525A - I/oのための多重レベルアドレストランスレーションを含むi/oメモリ管理ユニット及び計算負荷軽減 - Google Patents
I/oのための多重レベルアドレストランスレーションを含むi/oメモリ管理ユニット及び計算負荷軽減 Download PDFInfo
- Publication number
- JP2013500525A JP2013500525A JP2012521869A JP2012521869A JP2013500525A JP 2013500525 A JP2013500525 A JP 2013500525A JP 2012521869 A JP2012521869 A JP 2012521869A JP 2012521869 A JP2012521869 A JP 2012521869A JP 2013500525 A JP2013500525 A JP 2013500525A
- Authority
- JP
- Japan
- Prior art keywords
- guest
- translation
- memory
- page
- request
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1081—Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/151—Emulated environment, e.g. virtual machine
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
I/Oデバイスによるシステムメモリへの要求を制御するように構成される入力/出力メモリ管理ユニット(IOMMU)は、システムメモリ内に記憶されるトランスレーションデータを用いてI/Oデバイス生成の要求に関連するアドレスをトランスレートするために2レベルのゲストトランスレーションを行い得る制御論理を含む。トランスレーションデータは、幾つかのエントリを有するデバイステーブルを含む。制御論理は、所与の要求を生成するI/Oデバイスに対応するデバイス識別子を用いることによって、その要求に対するデバイステーブルエントリを選択してよい。トランスレーションデータはまた、ゲストページテーブルのセットと、入れ子にされたページテーブルのセットとを含むI/Oページテーブルの第1のセットを含んでいてよい。所与の要求に対して選択されたデバイステーブルエントリは、ゲストトランスレーションテーブルのセットへのポインタを含んでいてよく、そして最後のゲストトランスレーションテーブルは、入れ子にされたページテーブルのセットへのポインタを含む。
【選択図】図5
Description
Claims (30)
- I/Oデバイスによるメモリへの要求を制御するように構成される入力/出力(I/O)メモリ管理ユニット(IOMMU)であって、
システムメモリ内に記憶されるトランスレーションデータを用いてI/Oデバイス生成の要求に関連するアドレスをトランスレートするために2レベルのゲストトランスレーションを行うように構成される制御論理を備え、
前記トランスレーションデータは、デバイステーブル内の1つ以上のデバイステーブルエントリと、ゲストページテーブルのセット及び入れ子にされたページテーブルのセットを含んでいるページテーブルの第1のセットとを含み、
所与の要求に対する前記デバイステーブルエントリはデバイス識別子に基づいて選択され、所与の要求に対して選択されたデバイステーブルエントリはゲストトランスレーションテーブルのセットへのポインタを含み、ゲストページテーブルは入れ子にされたページテーブルのセットへのポインタを含むIOMMU。 - ゲストトランスレーションテーブルの前記セットへの前記ポインタは、コンピュータシステムのプロセッサで実行中の仮想メモリモニタ(VMM)によってマッピングされるアドレス空間に対応するシステム物理アドレス(SPA)を備え、所与のSPAは前記メモリ内の物理メモリページにアクセスするために用いられる請求項1に記載のIOMMU。
- 入れ子にされたページテーブルの前記セットへの前記ポインタは、前記コンピュータシステムのプロセッサ上の仮想マシン(VM)で実行中のゲストオペレーティングシステムによってマッピングされるアドレス空間に対応するゲスト物理アドレス(GPA)を備えており、前記制御論理は、前記GPAを前記メモリ内の物理メモリページにアクセスするためのSPAへトランスレートするように更に構成される請求項2に記載のIOMMU。
- 前記I/O要求に関連する前記アドレスは、前記コンピュータシステムのプロセッサ上の仮想マシン(VM)で実行中のゲストアプリケーションによってマッピングされるアドレス空間に対応するゲスト仮想アドレス(GVA)を備えており、前記制御論理は、2レベルのゲストトランスレーションを用いて前記GVAをSPAへトランスレートするように構成される請求項2に記載のIOMMU。
- 前記ゲストページテーブルの少なくとも幾つかは、それぞれの次のゲストページテーブルへのポインタを含む少なくとも1つのエントリを含む請求項1に記載のIOMMU。
- ゲストページテーブルの前記セットの最後のゲストページテーブルは、入れ子にされたページテーブルの前記セットのそれぞれの第1のページテーブルへのポインタを含む少なくとも1つのエントリを含む請求項1に記載のIOMMU。
- 入れ子にされたページテーブルの前記セットの最後のページテーブルは、前記メモリ内のそれぞれの物理ページに対応するアドレスを有するポインタを含む少なくとも1つのエントリを含む請求項3に記載のIOMMU。
- 前記メモリ内のそれぞれの物理ページに対応するアドレスを有する前記ポインタはGPAを備えている請求項7に記載のIOMMU。
- 前記制御論理は前記メモリ内のそれぞれの物理ページに対応するGPAポインタを前記それぞれの物理ページのSPAへトランスレートするように更に構成される請求項8に記載のIOMMU。
- 前記制御論理は前記I/O要求に関連する前記アドレスのビットのサブセットを前記それぞれの物理ページの前記SPAと連結して最終的なトランスレーションアドレスを提供するように更に構成される請求項9に記載のIOMMU。
- 前記所与の要求に対する前記デバイステーブルエントリは、ホストトランスレーションページテーブルのセットを含むI/Oページテーブルの第2のセットへの第2のポインタを更に備える請求項1に記載のIOMMU。
- 前記ホストトランスレーションテーブルの少なくとも幾つかは次の連続的なホストトランスレーションテーブルへのポインタを有するエントリを含み、各ポインタは前記コンピュータシステムのプロセッサで実行中の仮想メモリモニタ(VMM)によってマッピングされるアドレス空間に対応するシステム物理アドレス(SPA)を備え、所与のSPAは前記メモリ内の物理メモリページにアクセスするために用いられる請求項11に記載のIOMMU。
- プロセッサと、
前記プロセッサに結合され、1つ以上のエントリを含んでいるデバイステーブルとゲストページテーブルのセット及び入れ子にされたページテーブルのセットを含んでいるページテーブルのセットとを含むトランスレーションデータを記憶するように構成されるメモリと、
システムメモリにアクセスするための要求を生成するように構成される少なくとも1つの入力/出力(I/O)デバイスと、
前記I/Oデバイス及び前記メモリに結合され、前記トランスレーションデータを用いてI/Oデバイス生成の要求に関連するアドレスをトランスレートするために2レベルのゲストトランスレーションを行うように構成されるI/Oメモリ管理ユニット(IOMMU)とを備えたシステムであって、
前記IOMMUは、
デバイス識別子に基づいて所与の要求に対するデバイステーブルエントリを選択し、
選択されたデバイステーブルエントリからのポインタを用いてゲストトランスレーションデータ構造のセットにアクセスし、
ゲストページテーブルからのポインタを用いて、入れ子にされたページテーブルの前記セットにアクセスするように構成されるシステム。 - 前記IOMMUは、前記デバイステーブルとゲストページテーブルの前記セットとを第1のゲストトランスレーションレベルで用い、入れ子にされたページテーブルの前記セットを第2のゲストトランスレーションレベルで用いて最終的なトランスレーションアドレスを得るように構成される請求項13に記載のシステム。
- 前記メモリは、前記プロセッサで実行中の仮想メモリモニタ(VMM)によってマッピングされるアドレス空間に対応するシステム物理アドレス(SPA)と、前記プロセッサ上の仮想マシン(VM)で実行中のゲストオペレーティングシステムによってマッピングされるアドレス空間に対応するゲスト物理アドレス(GPA)と、前記プロセッサ上の仮想マシン(VM)で実行中のゲストアプリケーションによってマッピングされるアドレス空間に対応するゲスト仮想アドレス(GVA)とを含む複数のアドレス空間内へマッピングされる請求項13に記載のシステム。
- ゲストトランスレーションテーブルのセットへのポインタはSPAを備え、所与のSPAは前記メモリ内の物理メモリページにアクセスするために用いられる請求項15に記載のシステム。
- 入れ子にされたページテーブルの前記セットへの前記ポインタはGPAを備え、前記IOMMUは前記GPAを前記メモリ内の物理メモリページにアクセスするためのSPAへトランスレートするように更に構成される請求項15に記載のシステム。
- 前記I/O要求に関連する前記アドレスはGVAを備え、前記IOMMUは前記2レベルのゲストトランスレーションを用いて前記GVAをSPAへトランスレートするように構成される請求項14に記載のシステム。
- 前記IOMMUは、前記I/O要求に関連する処理識別子を用いてゲストページテーブルの前記セットの少なくとも一部分内へと索引付け、前記I/O要求に関連する前記GVAを用いてゲストページテーブルの前記セットの別の部分内へと索引付けるように更に構成される請求項15に記載のシステム。
- 前記処理識別子を含む前記I/Oデバイス生成の要求に応答して、前記IOMMUは前記I/Oデバイス生成の要求に関連する前記GVAをトランスレートするために前記2レベルのゲストトランスレーションを行うように構成される請求項19に記載のシステム。
- 前記処理識別子を含まない前記I/Oデバイス生成の要求に応答して、前記IOMMUは前記I/Oデバイス生成の要求に関連する前記アドレスをトランスレートするために1レベルのトランスレーションを行うように構成され、前記アドレスはGPAを備える請求項19に記載のシステム。
- コンピュータシステムのメモリへの入力/出力I/O要求を制御するための方法であって、
デバイステーブル内の1つ以上のデバイステーブルエントリと、ゲストページテーブルのセット及び入れ子にされたページテーブルのセットを含んでいるページテーブルの第1のセットとを含むトランスレーションデータをコンピュータシステムのメモリ内に記憶することと、
デバイス識別子に基づいて所与の要求に対してデバイステーブルエントリを選択することと、ゲストトランスレーションテーブルの前記セットにアクセスするために選択されたデバイステーブルエントリからのポインタを用いることとによって、I/O要求において受信されるアドレスに対して2レベルのゲストトランスレーションの第1のトランスレーションレベルを制御論理が実行することと、
入れ子にされたページデータ構造の前記セットにアクセスするためにゲストページテーブルからのポインタを用いることによって前記2レベルのゲストトランスレーションの第2のトランスレーションレベルを前記制御論理が実行することとを備えた方法。 - 前記制御論理は前記I/O要求における処理識別子を受信することに応答して前記2レベルのゲストトランスレーションを実行する請求項22に記載の方法。
- 前記I/O要求において受信される前記アドレスは、前記コンピュータシステムのプロセッサ上の仮想マシン(VM)で実行中のゲストアプリケーションによってマッピングされるアドレス空間に対応するゲスト仮想アドレス(GVA)を備える請求項22に記載の方法。
- 前記制御論理は処理識別子を含まないI/O要求を受信することに応答して1レベルのトランスレーションを実行する請求項23に記載の方法。
- 処理識別子を含まない前記I/O要求において受信される前記アドレスは、前記コンピュータシステムのプロセッサ上の仮想マシン(VM)で実行中のゲストオペレーティングシステムによってマッピングされるアドレス空間に対応するゲスト物理アドレス(GPA)を備える請求項25に記載の方法。
- データ構造を備えたコンピュータ可読記憶媒体であって、コンピュータシステム上で実行可能なプログラムによって前記データ構造が動作させられる場合に、前記プログラムが前記データ構造に基づいて動作して前記データ構造によって記述される回路を含む集積回路を製造するための処理の一部を実行し、
前記データ構造において記述される前記回路は、
メモリ内に記憶されるトランスレーションデータを用いてI/Oデバイス生成の要求に関連するアドレスをトランスレートするために2レベルのゲストトランスレーションを行うように構成される制御論理を含み、
前記トランスレーションデータは、デバイステーブル内の1つ以上のデバイステーブルエントリと、ゲストページテーブルのセット及び入れ子にされたページテーブルのセットを含んでいるページテーブルの第1のセットとを含み、
所与の要求に対する前記デバイステーブルエントリはデバイス識別子に基づいて選択され、所与の要求に対して選択されたデバイステーブルエントリはゲストトランスレーションテーブルのセットへのポインタを含み、ゲストページテーブルは入れ子にされたページテーブルの前記セットへのポインタを含むコンピュータ可読記憶媒体。 - 前記制御論理に結合され完了したトランスレーションを記憶するように構成されるキャッシュメモリを更に備えた請求項1に記載のIOMMU。
- 完了したトランスレーションを前記制御論理がキャッシュメモリ内に記憶することを更に備えた請求項24に記載の方法。
- 入力/出力(I/O)メモリ管理ユニット(IOMMU)であって、
メモリ内に記憶されるトランスレーションデータを用いてI/Oデバイス生成の要求に関連するゲストアドレスをトランスレートするために多重レベルの階層的トランスレーションを行うように構成される制御論理を備え、
前記トランスレーションデータは、デバイスデータ構造内の1つ以上のデバイステーブルエントリと、ゲストページデータ構造のセット及び入れ子にされたページデータ構造のセットを含んでいるページデータ構造の第1のセットとを含み、
前記制御論理は、
所与の要求を生成するI/Oデバイスに対応するデバイス識別子に基づいて前記所与の要求に対するデバイスデータ構造エントリを選択し、
選択されたデバイスデータ構造エントリからのポインタを用いてゲストトランスレーションデータ構造のセットにアクセスし、
ゲストページデータ構造からのポインタを用いて、入れ子にされたページデータ構造の前記セットにアクセスするように更に構成されるIOMMU。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/508,882 US8386745B2 (en) | 2009-07-24 | 2009-07-24 | I/O memory management unit including multilevel address translation for I/O and computation offload |
US12/508,882 | 2009-07-24 | ||
PCT/US2010/043169 WO2011011769A1 (en) | 2009-07-24 | 2010-07-24 | I/o memory management unit including multilevel address translation for i/o and computation offload |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013500525A true JP2013500525A (ja) | 2013-01-07 |
Family
ID=43012690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012521869A Pending JP2013500525A (ja) | 2009-07-24 | 2010-07-24 | I/oのための多重レベルアドレストランスレーションを含むi/oメモリ管理ユニット及び計算負荷軽減 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8386745B2 (ja) |
EP (1) | EP2457166B1 (ja) |
JP (1) | JP2013500525A (ja) |
KR (1) | KR101614865B1 (ja) |
CN (1) | CN102473139B (ja) |
IN (1) | IN2012DN00934A (ja) |
WO (1) | WO2011011769A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7443344B2 (ja) | 2018-09-25 | 2024-03-05 | エーティーアイ・テクノロジーズ・ユーエルシー | 外部メモリベースのトランスレーションルックアサイドバッファ |
Families Citing this family (95)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9606936B2 (en) * | 2010-12-16 | 2017-03-28 | Advanced Micro Devices, Inc. | Generalized control registers |
WO2012103373A2 (en) | 2011-01-27 | 2012-08-02 | Soft Machines, Inc. | Variable caching structure for managing physical storage |
WO2012103359A2 (en) | 2011-01-27 | 2012-08-02 | Soft Machines, Inc. | Hardware acceleration components for translating guest instructions to native instructions |
WO2012103245A2 (en) | 2011-01-27 | 2012-08-02 | Soft Machines Inc. | Guest instruction block with near branching and far branching sequence construction to native instruction block |
EP2668565B1 (en) | 2011-01-27 | 2019-11-06 | Intel Corporation | Guest instruction to native instruction range based mapping using a conversion look aside buffer of a processor |
WO2012103253A2 (en) * | 2011-01-27 | 2012-08-02 | Soft Machines, Inc. | Multilevel conversion table cache for translating guest instructions to native instructions |
WO2012103367A2 (en) | 2011-01-27 | 2012-08-02 | Soft Machines, Inc. | Guest to native block address mappings and management of native code storage |
US8943296B2 (en) | 2011-04-28 | 2015-01-27 | Vmware, Inc. | Virtual address mapping using rule based aliasing to achieve fine grained page translation |
US9767039B2 (en) | 2011-07-18 | 2017-09-19 | Vmware, Inc. | Increasing granularity of dirty bit information in hardware assisted memory management systems |
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 |
US8954704B2 (en) | 2011-08-12 | 2015-02-10 | International Business Machines Corporation | Dynamic network adapter memory resizing and bounding for virtual function translation entry storage |
US20130042238A1 (en) * | 2011-08-12 | 2013-02-14 | International Business Machines Corporation | Optimized Virtual Function Translation Entry Memory Caching |
US8645663B2 (en) * | 2011-09-12 | 2014-02-04 | Mellanox Technologies Ltd. | Network interface controller with flexible memory handling |
US8631212B2 (en) * | 2011-09-25 | 2014-01-14 | Advanced Micro Devices, Inc. | Input/output memory management unit with protection mode for preventing memory access by I/O devices |
US8719464B2 (en) * | 2011-11-30 | 2014-05-06 | Advanced Micro Device, Inc. | Efficient memory and resource management |
US9378150B2 (en) | 2012-02-28 | 2016-06-28 | Apple Inc. | Memory management unit with prefetch ability |
US9081507B2 (en) * | 2012-03-14 | 2015-07-14 | Symantec Corporation | Shared storage access management systems and methods |
US9507639B2 (en) * | 2012-05-06 | 2016-11-29 | Sandisk Technologies Llc | Parallel computation with multiple storage devices |
US9256545B2 (en) | 2012-05-15 | 2016-02-09 | Mellanox Technologies Ltd. | Shared memory access using independent memory maps |
US8761189B2 (en) | 2012-06-28 | 2014-06-24 | Mellanox Technologies Ltd. | Responding to dynamically-connected transport requests |
US8938602B2 (en) * | 2012-08-02 | 2015-01-20 | Qualcomm Incorporated | Multiple sets of attribute fields within a single page table entry |
US9424199B2 (en) * | 2012-08-29 | 2016-08-23 | Advanced Micro Devices, Inc. | Virtual input/output memory management unit within a guest virtual machine |
US8745276B2 (en) | 2012-09-27 | 2014-06-03 | Mellanox Technologies Ltd. | Use of free pages in handling of page faults |
US8914458B2 (en) | 2012-09-27 | 2014-12-16 | Mellanox Technologies Ltd. | Look-ahead handling of page faults in I/O operations |
US9639464B2 (en) | 2012-09-27 | 2017-05-02 | Mellanox Technologies, Ltd. | Application-assisted handling of page faults in I/O operations |
US9298642B2 (en) | 2012-11-01 | 2016-03-29 | Mellanox Technologies Ltd. | Sharing address translation between CPU and peripheral devices |
US10380030B2 (en) * | 2012-12-05 | 2019-08-13 | Arm Limited | Caching of virtual to physical address translations |
US10445243B2 (en) | 2013-03-14 | 2019-10-15 | Nvidia Corporation | Fault buffer for resolving page faults in unified virtual memory system |
DE102013022169A1 (de) | 2013-03-14 | 2014-09-18 | Nvidia Corporation | Fehlerpuffer zur verfolgung von seitenfehlern in einem vereinheitlichten virtuellen speichersystem |
EP2972798B1 (en) | 2013-03-15 | 2020-06-17 | Intel Corporation | Method and apparatus for guest return address stack emulation supporting speculation |
WO2014151652A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines Inc | Method and apparatus to allow early dependency resolution and data forwarding in a microprocessor |
WO2014209269A1 (en) * | 2013-06-24 | 2014-12-31 | Intel Corporation | A protected memory view for nested page table access by virtual machine guests |
US10229043B2 (en) | 2013-07-23 | 2019-03-12 | Intel Business Machines Corporation | Requesting memory spaces and resources using a memory controller |
US9547603B2 (en) * | 2013-08-28 | 2017-01-17 | Wisconsin Alumni Research Foundation | I/O memory management unit providing self invalidated mapping |
US9436823B1 (en) * | 2013-12-17 | 2016-09-06 | Google Inc. | System and method for detecting malicious code |
CN104750623B (zh) * | 2013-12-31 | 2017-11-24 | 华为技术有限公司 | 一种内存虚拟化的方法及装置 |
US10642501B1 (en) * | 2014-01-10 | 2020-05-05 | MIPS Tech, LLC | Hardware virtualized input output memory management unit |
US10114760B2 (en) * | 2014-01-14 | 2018-10-30 | Nvidia Corporation | Method and system for implementing multi-stage translation of virtual addresses |
US9852100B2 (en) | 2014-02-26 | 2017-12-26 | Red Hat Israel, Ltd. | Guest-programmable location of advanced configuration and power interface (ACPI) tables in virtualized systems |
US9696942B2 (en) | 2014-03-17 | 2017-07-04 | Mellanox Technologies, Ltd. | Accessing remote storage devices using a local bus protocol |
US9727503B2 (en) | 2014-03-17 | 2017-08-08 | Mellanox Technologies, Ltd. | Storage system and server |
FR3019919B1 (fr) * | 2014-04-14 | 2016-05-06 | Inria Inst Nat De Rech En Informatique Et En Automatique | Procede de synthese automatique de circuits, dispositif et programme d'ordinateur associes |
US10120832B2 (en) | 2014-05-27 | 2018-11-06 | Mellanox Technologies, Ltd. | Direct access to local memory in a PCI-E device |
US10031857B2 (en) | 2014-05-27 | 2018-07-24 | Mellanox Technologies, Ltd. | Address translation services for direct accessing of local memory over a network fabric |
US9710381B2 (en) | 2014-06-18 | 2017-07-18 | International Business Machines Corporation | Method and apparatus for cache memory data processing |
KR102218715B1 (ko) * | 2014-06-19 | 2021-02-23 | 삼성전자주식회사 | 채널별로 데이터를 보호할 수 있는 반도체 장치 |
GB201415796D0 (en) * | 2014-09-07 | 2014-10-22 | Technion Res & Dev Foundation | Logical-to-physical block mapping inside the disk controller: accessing data objects without operating system intervention |
US11775443B2 (en) * | 2014-10-23 | 2023-10-03 | Hewlett Packard Enterprise Development Lp | Supervisory memory management unit |
US9619401B2 (en) * | 2015-02-20 | 2017-04-11 | Wisconsin Alumni Research Foundation | Efficient memory management system for computers supporting virtual machines |
US9710393B2 (en) | 2015-06-25 | 2017-07-18 | Intel Corporation | Dynamic page table edit control |
US9665373B2 (en) | 2015-06-26 | 2017-05-30 | Intel Corporation | Protecting confidential data with transactional processing in execute-only memory |
US10120818B2 (en) | 2015-10-01 | 2018-11-06 | International Business Machines Corporation | Synchronous input/output command |
US10063376B2 (en) | 2015-10-01 | 2018-08-28 | International Business Machines Corporation | Access control and security for synchronous input/output links |
JP6579916B2 (ja) * | 2015-10-28 | 2019-09-25 | 株式会社日立製作所 | 仮想計算機間の通信経路制御方法および計算機システム |
GB2545170B (en) | 2015-12-02 | 2020-01-08 | Imagination Tech Ltd | GPU virtualisation |
US9424155B1 (en) * | 2016-01-27 | 2016-08-23 | International Business Machines Corporation | Use efficiency of platform memory resources through firmware managed I/O translation table paging |
US20170220466A1 (en) * | 2016-01-30 | 2017-08-03 | Intel Corporation | Sharing a guest physical address space among virtualized contexts |
US10515023B2 (en) | 2016-02-29 | 2019-12-24 | Intel Corporation | System for address mapping and translation protection |
US10671419B2 (en) | 2016-02-29 | 2020-06-02 | Red Hat Israel, Ltd. | Multiple input-output memory management units with fine grained device scopes for virtual machines |
US10037288B2 (en) * | 2016-04-01 | 2018-07-31 | Intel Corporation | Memory protection at a thread level for a memory protection key architecture |
US9898227B2 (en) | 2016-04-27 | 2018-02-20 | International Business Machines Corporation | Synchronous input/output virtualization |
US10148581B2 (en) | 2016-05-30 | 2018-12-04 | Mellanox Technologies, Ltd. | End-to-end enhanced reliable datagram transport |
CN106155933B (zh) * | 2016-07-06 | 2019-02-05 | 乾云众创(北京)信息科技研究院有限公司 | 一种基于KSM及Pass-through相结合的虚拟机内存共享方法 |
US10048881B2 (en) * | 2016-07-11 | 2018-08-14 | Intel Corporation | Restricted address translation to protect against device-TLB vulnerabilities |
US10209900B2 (en) * | 2016-09-19 | 2019-02-19 | Fungible, Inc. | Buffer allocation and memory management using mapping table |
CN106502721B (zh) * | 2016-09-26 | 2019-11-15 | 华为技术有限公司 | 一种命令卸载方法、装置及物理机 |
US11200183B2 (en) * | 2017-03-31 | 2021-12-14 | Intel Corporation | Scalable interrupt virtualization for input/output devices |
US10353826B2 (en) | 2017-07-14 | 2019-07-16 | Arm Limited | Method and apparatus for fast context cloning in a data processing system |
US10613989B2 (en) | 2017-07-14 | 2020-04-07 | Arm Limited | Fast address translation for virtual machines |
US10467159B2 (en) * | 2017-07-14 | 2019-11-05 | Arm Limited | Memory node controller |
US10534719B2 (en) * | 2017-07-14 | 2020-01-14 | Arm Limited | Memory system for a data processing network |
US10565126B2 (en) | 2017-07-14 | 2020-02-18 | Arm Limited | Method and apparatus for two-layer copy-on-write |
US10489304B2 (en) | 2017-07-14 | 2019-11-26 | Arm Limited | Memory address translation |
US10592424B2 (en) | 2017-07-14 | 2020-03-17 | Arm Limited | Range-based memory system |
US11042394B2 (en) | 2017-10-13 | 2021-06-22 | Electronics And Telecommunications Research Institute | Method for processing input and output on multi kernel system and apparatus for the same |
WO2019124450A1 (ja) * | 2017-12-20 | 2019-06-27 | 日本電気株式会社 | 入出力実行装置、デバイス仮想化システム、入出力実行方法、および、記録媒体 |
CN110096457B (zh) * | 2018-01-31 | 2023-05-23 | 联发科技股份有限公司 | 硬件控制系统及硬件控制方法 |
CN110134325A (zh) * | 2018-02-09 | 2019-08-16 | 晨星半导体股份有限公司 | 存储器控制装置及存储器控制方法 |
US10884850B2 (en) | 2018-07-24 | 2021-01-05 | Arm Limited | Fault tolerant memory system |
US10769076B2 (en) | 2018-11-21 | 2020-09-08 | Nvidia Corporation | Distributed address translation in a multi-node interconnect fabric |
US11036649B2 (en) | 2019-04-04 | 2021-06-15 | Cisco Technology, Inc. | Network interface card resource partitioning |
US11226904B2 (en) | 2019-04-26 | 2022-01-18 | Hewlett Packard Enterprise Development Lp | Cache data location system |
US10909053B2 (en) * | 2019-05-27 | 2021-02-02 | Advanced Micro Devices, Inc. | Providing copies of input-output memory management unit registers to guest operating systems |
US10853263B1 (en) | 2019-07-23 | 2020-12-01 | Ati Technologies Ulc | Unified kernel virtual address space for heterogeneous computing |
GB2594258B (en) | 2020-04-20 | 2022-07-20 | Advanced Risc Mach Ltd | Variable nesting control parameter for table structure providing access control information for controlling access to a memory system |
US11556513B2 (en) | 2020-06-30 | 2023-01-17 | Hewlett Packard Enterprise Development Lp | Generating snapshots of a key-value index |
US11461299B2 (en) | 2020-06-30 | 2022-10-04 | Hewlett Packard Enterprise Development Lp | Key-value index with node buffers |
US11461240B2 (en) | 2020-10-01 | 2022-10-04 | Hewlett Packard Enterprise Development Lp | Metadata cache for storing manifest portion |
WO2022133841A1 (en) * | 2020-12-24 | 2022-06-30 | Intel Corporation | Apparatus and method for address pre-translation to enhance direct memory access by hardware subsystems |
US11940933B2 (en) | 2021-03-02 | 2024-03-26 | Mellanox Technologies, Ltd. | Cross address-space bridging |
US11934333B2 (en) | 2021-03-25 | 2024-03-19 | Mellanox Technologies, Ltd. | Storage protocol emulation in a peripheral device |
US11934658B2 (en) | 2021-03-25 | 2024-03-19 | Mellanox Technologies, Ltd. | Enhanced storage protocol emulation in a peripheral device |
US11726666B2 (en) | 2021-07-11 | 2023-08-15 | Mellanox Technologies, Ltd. | Network adapter with efficient storage-protocol emulation |
CN114201269B (zh) * | 2022-02-18 | 2022-08-26 | 阿里云计算有限公司 | 内存换页方法、系统及存储介质 |
US12007921B2 (en) | 2022-11-02 | 2024-06-11 | Mellanox Technologies, Ltd. | Programmable user-defined peripheral-bus device implementation using data-plane accelerator (DPA) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04308953A (ja) * | 1991-04-05 | 1992-10-30 | Kyocera Corp | 仮想アドレス計算機装置 |
JP2002067405A (ja) * | 2000-07-31 | 2002-03-05 | Hewlett Packard Co <Hp> | プリンタ内でデータを転送するシステム |
US20070168643A1 (en) * | 2006-01-17 | 2007-07-19 | Hummel Mark D | DMA Address Translation in an IOMMU |
JP2007272885A (ja) * | 2006-03-28 | 2007-10-18 | Internatl Business Mach Corp <Ibm> | 代替ページのプールを使用してdma書込みページ障害をコンピュータにより管理するための方法、装置、及びコンピュータ・プログラム |
JP2008009982A (ja) * | 2006-06-27 | 2008-01-17 | Internatl Business Mach Corp <Ibm> | メモリ・アドレスの変換およびピン止めのための方法およびシステム |
US20080120487A1 (en) * | 2006-11-21 | 2008-05-22 | Ramakrishna Saripalli | Address translation performance in virtualized environments |
US20090187697A1 (en) * | 2008-01-22 | 2009-07-23 | Serebrin Benjamin C | Execute-Only Memory and Mechanism Enabling Execution From Execute-Only Memory for Minivisor |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8843727B2 (en) * | 2004-09-30 | 2014-09-23 | Intel Corporation | Performance enhancement of address translation using translation tables covering large address spaces |
US7444493B2 (en) | 2004-09-30 | 2008-10-28 | Intel Corporation | Address translation for input/output devices using hierarchical translation tables |
US7428626B2 (en) * | 2005-03-08 | 2008-09-23 | Microsoft Corporation | Method and system for a second level address translation in a virtual machine environment |
EP1883865A4 (en) * | 2005-05-24 | 2010-12-15 | Marathon Techn Corp | FAULT TOLERANT COMPUTER SYSTEM WITH SYMMETRIC MULTIPROCESSOR |
US7225287B2 (en) | 2005-06-01 | 2007-05-29 | Microsoft Corporation | Scalable DMA remapping on a computer bus |
US7543131B2 (en) | 2005-08-12 | 2009-06-02 | Advanced Micro Devices, Inc. | Controlling an I/O MMU |
US7793067B2 (en) | 2005-08-12 | 2010-09-07 | Globalfoundries Inc. | Translation data prefetch in an IOMMU |
US7548999B2 (en) | 2006-01-17 | 2009-06-16 | Advanced Micro Devices, Inc. | Chained hybrid input/output memory management unit |
US7873770B2 (en) | 2006-11-13 | 2011-01-18 | Globalfoundries Inc. | Filtering and remapping interrupts |
US7849287B2 (en) | 2006-11-13 | 2010-12-07 | Advanced Micro Devices, Inc. | Efficiently controlling special memory mapped system accesses |
JP4852012B2 (ja) * | 2007-07-09 | 2012-01-11 | 株式会社東芝 | 画像を処理する装置、画像の更新を検出する方法およびプログラム |
US8045828B2 (en) * | 2007-07-09 | 2011-10-25 | Kabushiki Kaisha Toshiba | Apparatus for processing images, and method and computer program product for detecting image updates |
US20090113111A1 (en) * | 2007-10-30 | 2009-04-30 | Vmware, Inc. | Secure identification of execution contexts |
US8055827B2 (en) * | 2009-01-26 | 2011-11-08 | Advanced Micro Devices, Inc. | Guest interrupt controllers for each processor to aid interrupt virtualization |
US9535849B2 (en) * | 2009-07-24 | 2017-01-03 | Advanced Micro Devices, Inc. | IOMMU using two-level address translation for I/O and computation offload devices on a peripheral interconnect |
US8244978B2 (en) * | 2010-02-17 | 2012-08-14 | Advanced Micro Devices, Inc. | IOMMU architected TLB support |
-
2009
- 2009-07-24 US US12/508,882 patent/US8386745B2/en active Active
-
2010
- 2010-07-24 IN IN934DEN2012 patent/IN2012DN00934A/en unknown
- 2010-07-24 JP JP2012521869A patent/JP2013500525A/ja active Pending
- 2010-07-24 WO PCT/US2010/043169 patent/WO2011011769A1/en active Application Filing
- 2010-07-24 CN CN201080033605.0A patent/CN102473139B/zh active Active
- 2010-07-24 KR KR1020127004960A patent/KR101614865B1/ko active IP Right Grant
- 2010-07-24 EP EP10738113.9A patent/EP2457166B1/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04308953A (ja) * | 1991-04-05 | 1992-10-30 | Kyocera Corp | 仮想アドレス計算機装置 |
JP2002067405A (ja) * | 2000-07-31 | 2002-03-05 | Hewlett Packard Co <Hp> | プリンタ内でデータを転送するシステム |
US20070168643A1 (en) * | 2006-01-17 | 2007-07-19 | Hummel Mark D | DMA Address Translation in an IOMMU |
JP2007272885A (ja) * | 2006-03-28 | 2007-10-18 | Internatl Business Mach Corp <Ibm> | 代替ページのプールを使用してdma書込みページ障害をコンピュータにより管理するための方法、装置、及びコンピュータ・プログラム |
JP2008009982A (ja) * | 2006-06-27 | 2008-01-17 | Internatl Business Mach Corp <Ibm> | メモリ・アドレスの変換およびピン止めのための方法およびシステム |
US20080120487A1 (en) * | 2006-11-21 | 2008-05-22 | Ramakrishna Saripalli | Address translation performance in virtualized environments |
US20090187697A1 (en) * | 2008-01-22 | 2009-07-23 | Serebrin Benjamin C | Execute-Only Memory and Mechanism Enabling Execution From Execute-Only Memory for Minivisor |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7443344B2 (ja) | 2018-09-25 | 2024-03-05 | エーティーアイ・テクノロジーズ・ユーエルシー | 外部メモリベースのトランスレーションルックアサイドバッファ |
Also Published As
Publication number | Publication date |
---|---|
US8386745B2 (en) | 2013-02-26 |
EP2457166A1 (en) | 2012-05-30 |
CN102473139A (zh) | 2012-05-23 |
EP2457166B1 (en) | 2018-08-22 |
KR101614865B1 (ko) | 2016-04-29 |
CN102473139B (zh) | 2015-05-20 |
IN2012DN00934A (ja) | 2015-04-03 |
KR20120044369A (ko) | 2012-05-07 |
US20110023027A1 (en) | 2011-01-27 |
WO2011011769A1 (en) | 2011-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5680642B2 (ja) | 周辺相互接続におけるi/o及び計算負荷軽減デバイスのための2レベルのアドレストランスレーションを用いるiommu | |
EP2457166B1 (en) | I/o memory management unit including multilevel address translation for i/o and computation offload | |
US7613898B2 (en) | Virtualizing an IOMMU | |
US7653803B2 (en) | Address translation for input/output (I/O) devices and interrupt remapping for I/O devices in an I/O memory management unit (IOMMU) | |
US7673116B2 (en) | Input/output memory management unit that implements memory attributes based on translation data | |
JP4772795B2 (ja) | 大アドレス容量に及ぶ変換テーブルを用いた、アドレス変換の性能向上 | |
US7873770B2 (en) | Filtering and remapping interrupts | |
JP6110946B2 (ja) | ゲスト仮想マシン内の仮想入出力メモリ管理ユニット | |
US7849287B2 (en) | Efficiently controlling special memory mapped system accesses | |
US7543131B2 (en) | Controlling an I/O MMU | |
KR101179341B1 (ko) | 메모리 액세스 데이터 구조에 기초하는 직접 캐시 액세스트랜잭션의 수행 | |
US7516247B2 (en) | Avoiding silent data corruption and data leakage in a virtual environment with multiple guests | |
JP6067928B2 (ja) | 属性フィールドのマルチコアページテーブルセット | |
US7480784B2 (en) | Ensuring deadlock free operation for peer to peer traffic in an input/output memory management unit (IOMMU) | |
US20130080714A1 (en) | I/o memory translation unit with support for legacy devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130626 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140226 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20140526 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20140602 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140626 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20140730 |