JP7387873B2 - ネットワーク化された入出力メモリ管理ユニット - Google Patents
ネットワーク化された入出力メモリ管理ユニット Download PDFInfo
- Publication number
- JP7387873B2 JP7387873B2 JP2022509631A JP2022509631A JP7387873B2 JP 7387873 B2 JP7387873 B2 JP 7387873B2 JP 2022509631 A JP2022509631 A JP 2022509631A JP 2022509631 A JP2022509631 A JP 2022509631A JP 7387873 B2 JP7387873 B2 JP 7387873B2
- Authority
- JP
- Japan
- Prior art keywords
- iommu
- memory access
- access request
- primary
- memory
- 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
- 230000015654 memory Effects 0.000 title claims description 211
- 238000013519 translation Methods 0.000 claims description 124
- 230000002093 peripheral effect Effects 0.000 claims description 61
- 238000012545 processing Methods 0.000 claims description 61
- 238000000034 method Methods 0.000 claims description 32
- 230000004044 response Effects 0.000 claims description 26
- 239000000872 buffer Substances 0.000 claims description 14
- 230000008569 process Effects 0.000 claims description 11
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 230000014616 translation Effects 0.000 description 103
- 238000005192 partition Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 14
- 230000008901 benefit Effects 0.000 description 8
- 230000009466 transformation Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 230000002730 additional effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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/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
- 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; 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- 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/68—Details of translation look-aside buffer [TLB]
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)
- Memory System (AREA)
Description
Claims (20)
- ネットワーク化された入出力メモリ管理ユニット(IOMMU)を含む装置であって、
前記ネットワーク化されたIOMMUは、複数のIOMMUを含み、
前記ネットワーク化されたIOMMUは、
第一アドレス変換層によって生成されたドメイン物理アドレスを含むメモリアクセス要求を受信することと、
前記複数のIOMMUのうち、前記メモリアクセス要求を生成したデバイスのタイプに基づいて選択された何れかのIOMMUを使用して、前記ドメイン物理アドレスをシステムメモリ内の物理アドレスに選択的に変換することと、
を行うように構成されている、
装置。 - 前記デバイスは、グラフィックスプロセッシングユニット(GPU)、又は、複数の周辺デバイスのうち何れかの周辺デバイスであり、
前記複数のIOMMUは、
前記メモリアクセス要求を前記第一アドレス変換層から受信するように構成された一次IOMMUと、
前記一次IOMMUに接続され、前記デバイスに関連する回路に近接して配置された二次IOMMUと、を含む、
請求項1の装置。 - 前記一次IOMMUは、前記メモリアクセス要求が前記GPUから受信されたことに応じて、前記ドメイン物理アドレスのアドレス変換を実行し、
前記二次IOMMUは、前記メモリアクセス要求が前記周辺デバイスから受信されたことに応じて、前記アドレス変換を実行する、
請求項2の装置。 - 前記一次IOMMUは、前記一次IOMMUに関連する第一トランスレーションルックアサイドバッファ(TLB)及び第一ページテーブルセットを使用してページテーブルウォークを実行することによって、前記GPUから受信した前記ドメイン物理アドレスのアドレス変換を実行する、
請求項3の装置。 - 前記一次IOMMUは、前記メモリアクセス要求が前記周辺デバイスから受信されたことに応じて、前記メモリアクセス要求を前記二次IOMMUに提供し、
前記二次IOMMUは、前記二次IOMMUに関連する第二TLB及び第二ページテーブルセットを使用して前記ページテーブルウォークを実行することによって、前記一次IOMMUから受信した前記メモリアクセス要求内の前記ドメイン物理アドレスのアドレス変換を実行する、
請求項4の装置。 - 前記周辺デバイスに関連する回路に対する前記二次IOMMUの位置は、前記周辺デバイスのレイテンシ要件に基づいて決定される、
請求項2の装置。 - 前記一次IOMMUに接続された複数の二次IOMMUをさらに含み、
前記複数の二次IOMMUは、複数の周辺デバイスに関連する回路に近接して配置されており、
前記複数の二次IOMMUの各々は、前記複数の周辺デバイスのうち対応する周辺デバイスに関連する回路から受信したメモリアクセス要求内のドメイン物理アドレスのアドレス変換を実行するように構成されている、
請求項6の装置。 - 前記複数の二次IOMMUは、前記複数の周辺デバイスに関連する回路内に集積されている、
請求項7の装置。 - メモリアクセス要求を前記第一アドレス変換層から受信し、前記メモリアクセス要求を生成した前記デバイスのタイプに基づいて、前記メモリアクセス要求を前記一次IOMMU又は前記二次IOMMUに選択的に提供するように構成されたコマンドキューをさらに含む、
請求項2の装置。 - 複数の入出力メモリ管理ユニット(IOMMU)を含むネットワーク化されたIOMMUにおいて、第一アドレス変換層によって生成されたドメイン物理アドレスを含むメモリアクセス要求を受信することと、
前記メモリアクセス要求を生成したデバイスのタイプに基づいて、前記複数のIOMMUのうち何れかのIOMMUを選択することと、
前記複数のIOMMUのうち選択されたIOMMUを用いて、前記ドメイン物理アドレスをシステムメモリ内の物理アドレスに選択的に変換することと、を含む、
方法。 - 前記デバイスは、グラフィックスプロセッシングユニット(GPU)、又は、複数の周辺デバイスのうち何れかの周辺デバイスであり、
前記メモリアクセス要求を受信することは、前記複数のIOMMU内の一次IOMMUにおいて、前記第一アドレス変換層から前記メモリアクセス要求を受信することを含む、
請求項10の方法。 - 前記複数のIOMMUのうち何れかのIOMMUを選択することは、
前記デバイスが前記GPUであることに応じて、前記一次IOMMUを選択することと、
前記デバイスが前記複数の周辺デバイスのうち何れかの周辺デバイスであることに応じて二次IOMMUを選択することであって、前記二次IOMMUは、前記一次IOMMUに接続され、前記複数の周辺デバイスのうち何れかの周辺デバイスに関連する回路に近接して配置されている、ことと、を含む、
請求項11の方法。 - 前記メモリアクセス要求が前記GPUから受信されたことに応じて、前記一次IOMMUにおいて、前記ドメイン物理アドレスのアドレス変換を実行することをさらに含む、
請求項12の方法。 - 前記一次IOMMUにおいて、前記ドメイン物理アドレスのアドレス変換を実行することは、前記一次IOMMUに関連する第一トランスレーションルックアサイドバッファ(TLB)及び第一ページテーブルセットを使用してページテーブルウォークを実行することを含む、
請求項13の方法。 - 前記メモリアクセス要求が前記周辺デバイスから受信されたことに応じて、前記二次IOMMUにおいて前記アドレス変換を実行することをさらに含む、
請求項13の方法。 - 前記メモリアクセス要求が前記周辺デバイスから受信されたことに応じて、前記メモリアクセス要求を前記一次IOMMUから前記二次IOMMUに提供することをさらに含み、
前記二次IOMMUにおいて仮想アドレスのアドレス変換を実行することは、前記二次IOMMUに関連する第二TLB及び第二ページテーブルセットを使用してページテーブルウォークを実行することを含む、
請求項15の方法。 - コマンドキューにおいて、前記第一アドレス変換層からのメモリアクセス要求を受信することと、
前記メモリアクセス要求を生成した前記デバイスのタイプに基づいて、前記メモリアクセス要求を前記コマンドキューから前記一次IOMMU又は前記二次IOMMUに選択的に提供することと、をさらに含む、
請求項12の方法。 - グラフィックスプロセッシングユニット(GPU)と、少なくとも1つの周辺デバイスと、メモリと、に接続されるように構成されたネットワーク化された入出力メモリ管理ユニット(IOMMU)であって、
前記ネットワーク化されたIOMMUは、
メモリアクセス要求を第一アドレス変換層から受信するように構成されたコマンドキューであって、前記メモリアクセス要求は、前記第一アドレス変換層によって生成されたドメイン物理アドレスを含む、コマンドキューと、
前記メモリアクセス要求が前記GPUから受信されたことに応じて、前記ドメイン物理アドレスを前記メモリ内の物理アドレスに変換するように構成された一次IOMMUと、
前記メモリアクセス要求が前記少なくとも1つの周辺デバイスから受信されたことに応じて、前記ドメイン物理アドレスを前記メモリ内の物理アドレスに変換するように構成された少なくとも1つの二次IOMMUと、を含む、
ネットワーク化されたIOMMU。 - 前記一次IOMMUは、前記一次IOMMUに関連する第一トランスレーションルックアサイドバッファ(TLB)及び第一ページテーブルセットを使用してページテーブルウォークを実行することによって、前記GPUから受信した前記ドメイン物理アドレスのアドレス変換を実行し、
前記少なくとも1つの二次IOMMUは、前記二次IOMMUに関連する第二TLB及び第二ページテーブルセットを使用して前記ページテーブルウォークを実行することによって、前記メモリアクセス要求内の前記ドメイン物理アドレスの変換を実行する、
請求項18のネットワーク化されたIOMMU。 - 前記少なくとも1つの周辺デバイスに対する前記少なくとも1つの二次IOMMUの少なくとも1つの位置は、前記少なくとも1つの周辺デバイスのレイテンシ要件に基づいて決定される、
請求項18のネットワーク化されたIOMMU。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/548,692 US11003588B2 (en) | 2019-08-22 | 2019-08-22 | Networked input/output memory management unit |
US16/548,692 | 2019-08-22 | ||
PCT/US2020/047376 WO2021035134A1 (en) | 2019-08-22 | 2020-08-21 | A networked input/output memory management unit |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2022544791A JP2022544791A (ja) | 2022-10-21 |
JPWO2021035134A5 JPWO2021035134A5 (ja) | 2023-08-30 |
JP7387873B2 true JP7387873B2 (ja) | 2023-11-28 |
Family
ID=74646775
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022509631A Active JP7387873B2 (ja) | 2019-08-22 | 2020-08-21 | ネットワーク化された入出力メモリ管理ユニット |
Country Status (6)
Country | Link |
---|---|
US (1) | US11003588B2 (ja) |
EP (1) | EP4018320A4 (ja) |
JP (1) | JP7387873B2 (ja) |
KR (1) | KR102693394B1 (ja) |
CN (1) | CN114258536B (ja) |
WO (1) | WO2021035134A1 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11874768B1 (en) * | 2019-11-14 | 2024-01-16 | Xilinx, Inc. | Flash memory emulation |
US11720401B2 (en) * | 2020-03-27 | 2023-08-08 | Intel Corporation | Reclaiming and reusing pre-boot reserved memory post-boot |
US11698860B2 (en) * | 2020-12-28 | 2023-07-11 | Ati Technologies Ulc | Method, system, and apparatus for supporting multiple address spaces to facilitate data movement |
US11550722B2 (en) * | 2021-03-02 | 2023-01-10 | Ati Technologies Ulc | Method, system, and apparatus for supporting multiple address spaces to facilitate data movement |
CN118035134A (zh) * | 2022-11-14 | 2024-05-14 | 华为技术有限公司 | 一种地址翻译方法及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170249106A1 (en) | 2016-02-29 | 2017-08-31 | Red Hat Israel, Ltd. | Multiple input-output memory management units with fine grained device scopes for virtual machines |
JP2017529606A (ja) | 2014-08-27 | 2017-10-05 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | 仮想化されたコンピューティング環境におけるダイレクトメモリアクセス要求のルーティング |
JP2018523247A (ja) | 2015-04-07 | 2018-08-16 | ベンジャミン・アーロン・ジッティンズ | プログラム可能なメモリ転送リクエストユニット |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7548999B2 (en) * | 2006-01-17 | 2009-06-16 | Advanced Micro Devices, Inc. | Chained hybrid input/output memory management unit |
US8635385B2 (en) | 2010-07-16 | 2014-01-21 | Advanced Micro Devices, Inc. | Mechanism to handle peripheral page faults |
US9218310B2 (en) * | 2013-03-15 | 2015-12-22 | Google Inc. | Shared input/output (I/O) unit |
US9594521B2 (en) | 2015-02-23 | 2017-03-14 | Advanced Micro Devices, Inc. | Scheduling of data migration |
US10678702B2 (en) * | 2016-05-27 | 2020-06-09 | Advanced Micro Devices, Inc. | Using multiple memory elements in an input-output memory management unit for performing virtual address to physical address translations |
US10176122B2 (en) * | 2016-10-19 | 2019-01-08 | Advanced Micro Devices, Inc. | Direct memory access authorization in a processing system |
US10514943B2 (en) | 2016-11-17 | 2019-12-24 | Qualcomm Incorporated | Method and apparatus for establishing system-on-chip (SOC) security through memory management unit (MMU) virtualization |
US10380039B2 (en) * | 2017-04-07 | 2019-08-13 | Intel Corporation | Apparatus and method for memory management in a graphics processing environment |
CN110046106B (zh) * | 2019-03-29 | 2021-06-29 | 海光信息技术股份有限公司 | 一种地址转换方法、地址转换模块及系统 |
US11599621B2 (en) | 2019-03-30 | 2023-03-07 | Intel Corporation | Apparatuses, methods, and systems for verification of input-output memory management unit to device attachment |
-
2019
- 2019-08-22 US US16/548,692 patent/US11003588B2/en active Active
-
2020
- 2020-08-21 CN CN202080058329.7A patent/CN114258536B/zh active Active
- 2020-08-21 WO PCT/US2020/047376 patent/WO2021035134A1/en unknown
- 2020-08-21 JP JP2022509631A patent/JP7387873B2/ja active Active
- 2020-08-21 KR KR1020227008962A patent/KR102693394B1/ko active IP Right Grant
- 2020-08-21 EP EP20854323.1A patent/EP4018320A4/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017529606A (ja) | 2014-08-27 | 2017-10-05 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | 仮想化されたコンピューティング環境におけるダイレクトメモリアクセス要求のルーティング |
JP2018523247A (ja) | 2015-04-07 | 2018-08-16 | ベンジャミン・アーロン・ジッティンズ | プログラム可能なメモリ転送リクエストユニット |
US20170249106A1 (en) | 2016-02-29 | 2017-08-31 | Red Hat Israel, Ltd. | Multiple input-output memory management units with fine grained device scopes for virtual machines |
Also Published As
Publication number | Publication date |
---|---|
CN114258536B (zh) | 2023-08-15 |
KR102693394B1 (ko) | 2024-08-09 |
WO2021035134A1 (en) | 2021-02-25 |
EP4018320A4 (en) | 2023-10-11 |
US20210056042A1 (en) | 2021-02-25 |
KR20220050171A (ko) | 2022-04-22 |
CN114258536A (zh) | 2022-03-29 |
EP4018320A1 (en) | 2022-06-29 |
JP2022544791A (ja) | 2022-10-21 |
US11003588B2 (en) | 2021-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7387873B2 (ja) | ネットワーク化された入出力メモリ管理ユニット | |
JP6110946B2 (ja) | ゲスト仮想マシン内の仮想入出力メモリ管理ユニット | |
JP5870206B2 (ja) | 効率的なメモリ及びリソース管理 | |
US8392628B2 (en) | Sharing memory spaces for access by hardware and software in a virtual machine environment | |
US7882330B2 (en) | Virtualizing an IOMMU | |
EP2457166B1 (en) | I/o memory management unit including multilevel address translation for i/o and computation offload | |
JP5680642B2 (ja) | 周辺相互接続におけるi/o及び計算負荷軽減デバイスのための2レベルのアドレストランスレーションを用いるiommu | |
KR101179341B1 (ko) | 메모리 액세스 데이터 구조에 기초하는 직접 캐시 액세스트랜잭션의 수행 | |
EP1987434B1 (en) | Methods and apparatus for providing independent logical address space and access management | |
US20130145055A1 (en) | Peripheral Memory Management | |
US20130145051A1 (en) | Direct Device Assignment | |
US20170185514A1 (en) | Caching policies for processing units on multiple sockets | |
KR20220061983A (ko) | 입출력 메모리 관리 유닛으로부터 게스트 운영 시스템으로의 인터럽트 제공 | |
KR20230162982A (ko) | 페이지 마이그레이션을 제공하기 위한 시스템 및 방법 | |
JP2023507096A (ja) | コヒーレント及び非コヒーレントメモリ要求のアービトレーションスキーム | |
JP2022536689A (ja) | 入出力メモリ管理ユニットによるゲストオペレーティングシステムのバッファとログへのアクセス | |
TWI844963B (zh) | 用於控制對物理地址空間的訪問的系統及方法 | |
JP2022529759A (ja) | 入出力メモリ管理ユニットによるドメイン識別子及びデバイス識別子の変換 | |
JP2022541059A (ja) | ヘテロジニアスコンピューティングのための統合カーネル仮想アドレス空間 | |
US20220382577A1 (en) | Hardware Virtual Machine for Controlling Access to Physical Memory Space |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220419 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230821 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230821 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20230821 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230919 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230922 |
|
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: 20231017 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20231115 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7387873 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |