JP7089333B2 - 仮想マシンの動的アドレス変換のためのコンピュータ実装方法、システム、およびコンピュータ・プログラム - Google Patents
仮想マシンの動的アドレス変換のためのコンピュータ実装方法、システム、およびコンピュータ・プログラム Download PDFInfo
- Publication number
- JP7089333B2 JP7089333B2 JP2020528157A JP2020528157A JP7089333B2 JP 7089333 B2 JP7089333 B2 JP 7089333B2 JP 2020528157 A JP2020528157 A JP 2020528157A JP 2020528157 A JP2020528157 A JP 2020528157A JP 7089333 B2 JP7089333 B2 JP 7089333B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- translation table
- guest
- address translation
- host
- 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; 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
- 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; 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- 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
- 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/45583—Memory management, e.g. access or allocation
-
- 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/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- 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/65—Details of virtual memory and virtual address translation
-
- 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/65—Details of virtual memory and virtual address translation
- G06F2212/651—Multi-level translation tables
-
- 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)
- Software Systems (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 (13)
- シャドー動的アドレス変換テーブルを構築するリクエストに応答して、メモリ空間からメモリ部を取得することであり、前記メモリ空間が、少なくとも1つのゲスト・オペレーション・システムに対して配分され、前記シャドー動的アドレス変換テーブルが、少なくとも1つのゲスト論理メモリ・アドレスと少なくとも1つのホスト物理メモリ・アドレスとの間のマッピングを含む、前記取得することと、
前記シャドー動的アドレス変換テーブルを構築することと、
前記シャドー動的アドレス変換テーブルを前記メモリ部に格納することと、
を含み、
前記メモリ空間が、複数のメモリ・フレームから成るチェーンを含み、
前記チェーンの2つの隣り合うメモリ・フレームにおいて、一方のメモリ・フレームが、隣り合うメモリ・フレームを指すポインタを含み、
前記メモリ空間から前記メモリ部を取得することが、前記複数のメモリ・フレームから成る前記チェーンから少なくとも1つのメモリ・フレームを取得することを含み、
メモリ・フレーム・テーブルにおいて、前記チェーンの前記複数のメモリ・フレームをマークすることを
を含むコンピュータ実装方法。 - 前記シャドー動的アドレス変換テーブルを破壊するリクエストに応答して、前記シャドー動的アドレス変換テーブルに占有された前記メモリ部を前記メモリ空間に返すことをさらに含む、請求項1に記載のコンピュータ実装方法。
- 前記複数のメモリ・フレームから成る前記チェーンのヘッダに前記ポインタを格納することをさらに含む、請求項1に記載のコンピュータ実装方法。
- シャドー動的アドレス変換テーブルを構築するリクエストに応答して、メモリ空間からメモリ部を取得することであり、前記メモリ空間が、少なくとも1つのゲスト・オペレーション・システムに対して配分され、前記シャドー動的アドレス変換テーブルが、少なくとも1つのゲスト論理メモリ・アドレスと少なくとも1つのホスト物理メモリ・アドレスとの間のマッピングを含む、前記取得することと、
前記シャドー動的アドレス変換テーブルを構築することと、
前記シャドー動的アドレス変換テーブルを前記メモリ部に格納することと、
を含み、
前記シャドー動的アドレス変換テーブルを構築することが、
前記シャドー動的アドレス変換テーブルを構築する前記リクエストから、変換対象のゲスト論理メモリ・アドレスを取得することと、
ゲスト・オペレーション・システムから、1つまたは複数のゲスト論理メモリ・アドレスと1つまたは複数のゲスト物理メモリ・アドレスとの間の1つまたは複数のマッピングを含むゲスト動的アドレス変換テーブルを取得することと、
前記ゲスト論理メモリ・アドレスで前記ゲスト動的アドレス変換テーブルを探索して、ゲスト物理メモリ・アドレスを取得することと、
前記ゲスト物理メモリ・アドレスに基づいて、ホスト論理メモリ・アドレスを取得することと、
ホスト・オペレーション・システムから、1つまたは複数のホスト論理メモリ・アドレスと1つまたは複数のホスト物理メモリ・アドレスとの間の1つまたは複数のマッピングを含むホスト動的アドレス変換テーブルを取得することと、
前記ホスト論理メモリ・アドレスで前記ホスト動的アドレス変換テーブルを探索して、ホスト物理メモリ・アドレスを取得することと、
前記ゲスト論理メモリ・アドレスと前記ホスト物理メモリ・アドレスとの間のマッピングを前記シャドー動的アドレス変換テーブルに保存することと、
前記ゲスト論理メモリ・アドレスと前記ゲスト物理メモリ・アドレスとの間のマッピングを前記シャドー動的アドレス変換テーブルに保存することと
を含む、コンピュータ実装方法。 - 前記ホスト物理メモリ・アドレスにより指されたホスト物理メモリの部分を固定することをさらに含む、請求項4に記載のコンピュータ実装方法。
- 所定の基準が満たされた場合に、付加的なメモリ空間が配分される、請求項1に記載のコンピュータ実装方法。
- シャドー動的アドレス変換テーブルを構築するリクエストに応答して、メモリ空間からメモリ部を取得することであり、前記メモリ空間が、少なくとも1つのゲスト・オペレーション・システムに対して配分され、前記シャドー動的アドレス変換テーブルが、少なくとも1つのゲスト論理メモリ・アドレスと少なくとも1つのホスト物理メモリ・アドレスとの間のマッピングを含む、前記取得することと、
前記シャドー動的アドレス変換テーブルを構築することと、
前記シャドー動的アドレス変換テーブルを前記メモリ部に格納することと、
の手段を備え実行し、
前記メモリ空間が、複数のメモリ・フレームから成るチェーンを含み、
前記チェーンの2つの隣り合うメモリ・フレームにおいて、一方のメモリ・フレームが、隣り合うメモリ・フレームを指すポインタを含み、
前記メモリ空間から前記メモリ部を取得することが、前記複数のメモリ・フレームから成る前記チェーンから少なくとも1つのメモリ・フレームを取得することを含み、
メモリ・フレーム・テーブルにおいて、前記チェーンの前記複数のメモリ・フレームをマークすることの手段を備え実行するシステム。 - 前記シャドー動的アドレス変換テーブルを破壊するリクエストに応答して、前記シャドー動的アドレス変換テーブルに占有された前記メモリ部を前記メモリ空間に返すことをさらに含む、請求項7に記載のシステム。
- 前記複数のメモリ・フレームから成る前記チェーンのヘッダに前記ポインタを格納することをさらに含む、請求項7に記載のシステム。
- シャドー動的アドレス変換テーブルを構築するリクエストに応答して、メモリ空間からメモリ部を取得することであり、前記メモリ空間が、少なくとも1つのゲスト・オペレーション・システムに対して配分され、前記シャドー動的アドレス変換テーブルが、少なくとも1つのゲスト論理メモリ・アドレスと少なくとも1つのホスト物理メモリ・アドレスとの間のマッピングを含む、前記取得することと、
前記シャドー動的アドレス変換テーブルを構築することと、
前記シャドー動的アドレス変換テーブルを前記メモリ部に格納することと、
の手段を備え実行し、
前記シャドー動的アドレス変換テーブルを構築することが、
前記シャドー動的アドレス変換テーブルを構築する前記リクエストから、変換対象のゲスト論理メモリ・アドレスを取得することと、
ゲスト・オペレーション・システムから、1つまたは複数のゲスト論理メモリ・アドレスと1つまたは複数のゲスト物理メモリ・アドレスとの間の1つまたは複数のマッピングを含むゲスト動的アドレス変換テーブルを取得することと、
前記ゲスト論理メモリ・アドレスで前記ゲスト動的アドレス変換テーブルを探索して、ゲスト物理メモリ・アドレスを取得することと、
前記ゲスト物理メモリ・アドレスに基づいて、ホスト論理メモリ・アドレスを取得することと、
ホスト・オペレーション・システムから、1つまたは複数のホスト論理メモリ・アドレスと1つまたは複数のホスト物理メモリ・アドレスとの間の1つまたは複数のマッピングを含むホスト動的アドレス変換テーブルを取得することと、
前記ホスト論理メモリ・アドレスで前記ホスト動的アドレス変換テーブルを探索して、ホスト物理メモリ・アドレスを取得することと、
前記ゲスト論理メモリ・アドレスと前記ホスト物理メモリ・アドレスとの間のマッピングを前記シャドー動的アドレス変換テーブルに保存することと、
前記ゲスト論理メモリ・アドレスと前記ゲスト物理メモリ・アドレスとの間のマッピングを前記シャドー動的アドレス変換テーブルに保存することと、
を含む、システム。 - 前記ホスト物理メモリ・アドレスにより指されたホスト物理メモリの部分を固定することをさらに含む、請求項10に記載のシステム。
- 所定の基準が満たされた場合に、付加的なメモリ空間が配分される、請求項7に記載のシステム。
- コンピュータ・プログラムであって、請求項1ないし6のいずれか1項に記載の方法の各ステップをコンピュータに実行させるための、コンピュータ・プログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/824,110 | 2017-11-28 | ||
US15/824,110 US10387325B2 (en) | 2017-11-28 | 2017-11-28 | Dynamic address translation for a virtual machine |
PCT/IB2018/059176 WO2019106491A1 (en) | 2017-11-28 | 2018-11-21 | Dynamic address translation for a virtual machine |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2021504804A JP2021504804A (ja) | 2021-02-15 |
JP2021504804A5 JP2021504804A5 (ja) | 2021-03-25 |
JP7089333B2 true JP7089333B2 (ja) | 2022-06-22 |
Family
ID=66633195
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020528157A Active JP7089333B2 (ja) | 2017-11-28 | 2018-11-21 | 仮想マシンの動的アドレス変換のためのコンピュータ実装方法、システム、およびコンピュータ・プログラム |
Country Status (6)
Country | Link |
---|---|
US (1) | US10387325B2 (ja) |
JP (1) | JP7089333B2 (ja) |
CN (1) | CN111183411B (ja) |
DE (1) | DE112018006068T5 (ja) |
GB (1) | GB2581113B (ja) |
WO (1) | WO2019106491A1 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10387325B2 (en) | 2017-11-28 | 2019-08-20 | International Business Machines Corporation | Dynamic address translation for a virtual machine |
US11074195B2 (en) * | 2019-06-28 | 2021-07-27 | International Business Machines Corporation | Access to dynamic address translation across multiple spaces for operational context subspaces |
US11176056B2 (en) | 2019-06-28 | 2021-11-16 | International Business Machines Corporation | Private space control within a common address space |
US10891238B1 (en) | 2019-06-28 | 2021-01-12 | International Business Machines Corporation | Dynamically joining and splitting dynamic address translation (DAT) tables based on operational context |
US11281483B2 (en) | 2019-10-16 | 2022-03-22 | International Business Machines Corporation | Preserving transient address translation information across a firmware assisted dump procedure |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001051900A (ja) | 1999-08-17 | 2001-02-23 | Hitachi Ltd | 仮想計算機方式の情報処理装置及びプロセッサ |
US20080005447A1 (en) | 2006-06-30 | 2008-01-03 | Sebastian Schoenberg | Dynamic mapping of guest addresses by a virtual machine monitor |
CN103793260A (zh) | 2013-10-09 | 2014-05-14 | 中国电子设备系统工程公司研究所 | 一种平台虚拟化系统 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7310721B2 (en) | 2003-10-30 | 2007-12-18 | Microsoft Corporation | Shadow page tables for address translation control |
US7363463B2 (en) * | 2005-05-13 | 2008-04-22 | Microsoft Corporation | Method and system for caching address translations from multiple address spaces in virtual machines |
US7996628B2 (en) | 2008-02-14 | 2011-08-09 | International Business Machines Corporation | Cross adapter shared address translation tables |
US8095773B2 (en) * | 2008-02-26 | 2012-01-10 | International Business Machines Corporation | Dynamic address translation with translation exception qualifier |
US8180944B2 (en) * | 2009-01-26 | 2012-05-15 | Advanced Micro Devices, Inc. | Guest interrupt manager that records interrupts for guests and delivers interrupts to executing guests |
US8060722B2 (en) | 2009-03-27 | 2011-11-15 | Vmware, Inc. | Hardware assistance for shadow page table coherence with guest page mappings |
US8799879B2 (en) * | 2009-06-30 | 2014-08-05 | Oracle America, Inc. | Method and apparatus for protecting translated code in a virtual machine |
US8650337B2 (en) | 2010-06-23 | 2014-02-11 | International Business Machines Corporation | Runtime determination of translation formats for adapter functions |
US8635430B2 (en) | 2010-06-23 | 2014-01-21 | International Business Machines Corporation | Translation of input/output addresses to memory addresses |
US9336036B2 (en) | 2011-03-31 | 2016-05-10 | Intel Corporation | System method for memory virtualization control logic for translating virtual memory in space of guest memory based on translated codes in response to memory failure |
US10514938B2 (en) * | 2012-12-18 | 2019-12-24 | Dynavisor, Inc. | Making direct calls to a native device driver of a hypervisor using dynamic device driver virtualization |
CN104239227B (zh) | 2013-06-20 | 2017-06-06 | 新华三技术有限公司 | 一种虚拟化存储管理装置、本地虚拟存储管理装置及方法 |
US9223553B2 (en) * | 2013-09-26 | 2015-12-29 | Intel Corporation | Methods and apparatus to validate translated guest code in a dynamic binary translator |
CN104750623B (zh) | 2013-12-31 | 2017-11-24 | 华为技术有限公司 | 一种内存虚拟化的方法及装置 |
US10387325B2 (en) | 2017-11-28 | 2019-08-20 | International Business Machines Corporation | Dynamic address translation for a virtual machine |
-
2017
- 2017-11-28 US US15/824,110 patent/US10387325B2/en active Active
-
2018
- 2018-11-21 JP JP2020528157A patent/JP7089333B2/ja active Active
- 2018-11-21 CN CN201880065143.7A patent/CN111183411B/zh active Active
- 2018-11-21 WO PCT/IB2018/059176 patent/WO2019106491A1/en active Application Filing
- 2018-11-21 DE DE112018006068.3T patent/DE112018006068T5/de active Pending
- 2018-11-21 GB GB2008612.0A patent/GB2581113B/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001051900A (ja) | 1999-08-17 | 2001-02-23 | Hitachi Ltd | 仮想計算機方式の情報処理装置及びプロセッサ |
US20080005447A1 (en) | 2006-06-30 | 2008-01-03 | Sebastian Schoenberg | Dynamic mapping of guest addresses by a virtual machine monitor |
CN103793260A (zh) | 2013-10-09 | 2014-05-14 | 中国电子设备系统工程公司研究所 | 一种平台虚拟化系统 |
Also Published As
Publication number | Publication date |
---|---|
GB202008612D0 (en) | 2020-07-22 |
WO2019106491A1 (en) | 2019-06-06 |
GB2581113B (en) | 2020-12-23 |
CN111183411B (zh) | 2023-10-13 |
US20190163643A1 (en) | 2019-05-30 |
DE112018006068T5 (de) | 2020-08-13 |
US10387325B2 (en) | 2019-08-20 |
GB2581113A (en) | 2020-08-05 |
JP2021504804A (ja) | 2021-02-15 |
CN111183411A (zh) | 2020-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7089333B2 (ja) | 仮想マシンの動的アドレス変換のためのコンピュータ実装方法、システム、およびコンピュータ・プログラム | |
US11409465B2 (en) | Systems and methods for managing communication between NVMe-SSD storage device(s) and NVMe-of host unit | |
US9678918B2 (en) | Data processing system and data processing method | |
RU2690751C2 (ru) | Программируемые устройства для обработки запросов передачи данных памяти | |
US9671970B2 (en) | Sharing an accelerator context across multiple processes | |
US20180129609A1 (en) | Method to share a coherent accelerator context inside the kernel | |
KR102321913B1 (ko) | 불휘발성 메모리 장치, 및 그것을 포함하는 메모리 시스템 | |
US20190243757A1 (en) | Systems and methods for input/output computing resource control | |
JP2013537658A (ja) | 入力/出力アドレスをメモリ・アドレスに変換するための方法、コンピュータ・システム、およびコンピュータ・プログラム | |
CN102119508B (zh) | 将交换机层级结构后面的多功能设备呈现为单功能设备 | |
US10169247B2 (en) | Direct memory access between an accelerator and a processor using a coherency adapter | |
US10310759B2 (en) | Use efficiency of platform memory resources through firmware managed I/O translation table paging | |
JP2019537153A (ja) | サービス・レイヤ・アダプタを用いる、コヒーレンシの最低点(lpc)メモリの管理方法、アダプタ、プログラム | |
CN116010296A (zh) | 一种处理请求的方法、装置及系统 | |
US10929302B2 (en) | MMIO addressing using a translation table | |
CN112764668A (zh) | 扩展gpu存储器的方法、电子设备和计算机程序产品 | |
US10909044B2 (en) | Access control device, access control method, and recording medium containing access control program | |
US20170017579A1 (en) | Flexible i/o dma address allocation in virtualized systems | |
CN118152075A (zh) | 轻量级rdma虚拟化方法、系统、装置、电子设备及介质 | |
CN118159951A (zh) | 一种处理请求的方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210128 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210423 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220222 |
|
RD12 | Notification of acceptance of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7432 Effective date: 20220421 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220425 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20220502 |
|
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: 20220531 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20220531 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220608 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7089333 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |