IP Library › Granted Patent US 10,387,325
Granted Patent B2
US 10,387,325 · App. 15/824,110 · Granted Aug 20, 2019

Dynamic address translation for a virtual machine

Inventor: Rui Yang (Beijing, CN)
Assignee: International Business Machines Corporation
G06F12/1027G06F9/45558G06F12/023G06F12/1009G06F2009/45583G06F2212/1044G06F2212/65G06F2212/68
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,387,325
App. No.
15/824,110
Granted
Aug 20, 2019
Kind
B2
Abstract

Method, system, and computer program product for dynamic address translation for a virtual machine are disclosed. The method includes obtaining a memory portion from a memory space, in response to a request for building a shadow dynamic address translation table, wherein the memory space is allocated for at least one guest operation system and wherein the shadow dynamic address translation table includes a mapping between at least one guest logic memory address and at least one host physical memory address. The method further includes building the shadow dynamic address translation table and storing the shadow dynamic address translation table in the memory portion.

Claims (70)

1. A computer-implemented method comprising:

in response to a request for building a shadow dynamic address translation table, obtaining a memory portion from a memory space, wherein the memory space is allocated for at least one guest operation system, and wherein the shadow dynamic address translation table includes a mapping between at least one guest logic memory address and at least one host physical memory address;

building the shadow dynamic address translation table, wherein building the shadow dynamic address translation table comprises:

obtaining a guest logical memory address to be translated from the request of building the shadow dynamic address translation table;

obtaining a guest dynamic address translation table including one or more mappings between one or more guest logical memory addresses and one or more guest physical memory addresses, from a guest operation system;

searching the guest dynamic address translation table with the guest logical memory address to obtain a guest physical memory address;

obtaining a host logical memory address based on the guest physical memory address;

obtaining a host dynamic address translation table including one or more mappings between one or more host logical memory addresses and one or more host physical memory addresses, from a host operation system;

searching the host dynamic address translation table with the host logical memory address to obtain a host physical memory address; and

saving a mapping, between the guest logical memory address and the host physical memory address, to the shadow dynamic address translation table; and storing the shadow dynamic address translation table in the memory portion.

2. The computer-implemented method of claim 1 , further comprising:

in response to a request for destroying the shadow dynamic address translation table, returning the memory portion occupied by the shadow dynamic address translation table to the memory space.

3. The computer-implemented method of claim 1 ,

wherein the memory space comprises a chain of a plurality of memory frames;

wherein in two adjacent memory frames in the chain, one memory frame comprises a pointer pointing to an adjacent memory frame; and

wherein obtaining the memory portion from the memory space comprises obtaining at least one memory frame from the chain of the plurality of memory frames.

4. The computer-implemented method of claim 3 , further comprising:

storing the pointer to a header of the chain of the plurality of memory frames.

5. The computer-implemented method of claim 1 , further comprising:

pinning a part of host physical memory, pointed to by the host physical memory address.

6. The computer-implemented method of claim 1 , wherein building the shadow dynamic address translation table further comprises:

saving a mapping between the guest logical memory address and the guest physical memory address to the shadow dynamic address translation table.

7. The computer-implemented method of claim 1 , wherein additional memory space is allocated upon a pre-determined criteria being met.

8. A computer system comprising:

at least one processor;

an assist controller; and

a memory coupled to the at least one processor and the assist controller;

wherein a set of computer program instructions are stored in the memory and executed by the at least one processor and the assist controller, in order to perform actions of:

allocating a memory space for at least one guest operation system, by the at least one processor;

in response to a request for building a shadow dynamic address translation table, obtaining a memory portion from the memory space by the assist controller, wherein the shadow dynamic address translation table includes a mapping between at least one guest logic memory address and at least one host physical memory address;

building the shadow dynamic address translation table, by the assist controller, wherein building the shadow dynamic address translation table comprises:

obtaining a guest logical memory address to be translated from the request of building the shadow dynamic address translation table;

obtaining a guest dynamic address translation table including one or more mappings between one or more guest logical memory addresses and one or more guest physical memory addresses, from a guest operation system;

searching the guest dynamic address translation table with the guest logical memory address to obtain a guest physical memory address;

obtaining a host logical memory address based on the guest physical memory address;

obtaining a host dynamic address translation table including one or more mappings between one or more host logical memory addresses and one or more host physical memory addresses, from a host operation system;

searching the host dynamic address translation table with the host logical memory address to obtain a host physical memory address; and

saving a mapping, between the guest logical memory address and the host physical memory address, to the shadow dynamic address translation table; and

storing the shadow dynamic address translation table in the memory portion, by the assist controller.

9. The computer system of claim 8 , further comprising:

in response to a request for destroying the shadow dynamic address translation table, returning the memory portion occupied by the shadow dynamic address translation table to the memory space, by the assist controller.

10. The computer system of claim 8 ,

wherein the memory space comprises a chain of a plurality of memory frames;

wherein in two adjacent memory frames in the chain, one memory frame comprises a pointer pointing to the other memory frame; and

wherein obtaining the memory portion from the memory space, by the assist controller, comprises obtaining at least one memory frame from the chain of the plurality of memory frames.

11. The computer system of claim 10 , further comprising:

storing the pointer to a header of the chain of the plurality of memory frames, by the at least one processor.

12. The computer system of claim 8 , further comprising:

pinning a part of host physical memory, pointed to by the host physical memory address, by the assist controller.

13. The computer system of claim 8 , wherein building the shadow dynamic address translation table, by the assist controller, further comprises:

saving a mapping between the guest logical memory address and the guest physical memory address to the shadow dynamic address translation table.

14. The computer system of claim 8 , wherein additional memory space is allocated, by the at least one processor, upon a pre-determined criteria being met.

15. A computer program product, comprising a computer readable storage medium having program instructions embodied therewith, wherein the computer readable storage medium is not a transitory signal per se; and

wherein the program instructions are executable by an assist controller to perform a method comprising:

in response to a request for building a shadow dynamic address translation table, obtaining a memory portion from a memory space, wherein the memory space is allocated for at least one guest operation system, and wherein the shadow dynamic address translation table includes a mapping between at least one guest logic memory address and at least one host physical memory address;

building the shadow dynamic address translation table, wherein building the shadow dynamic address translation table comprises:

obtaining a guest logical memory address to be translated from the request of building the shadow dynamic address translation table;

obtaining a guest dynamic address translation table including one or more mappings between one or more guest logical memory addresses and one or more guest physical memory addresses, from a guest operation system;

searching the guest dynamic address translation table with the guest logical memory address to obtain a guest physical memory address;

obtaining a host logical memory address based on the guest physical memory address;

obtaining a host dynamic address translation table including one or more mappings between one or more host logical memory addresses and one or more host physical memory addresses, from a host operation system;

searching the host dynamic address translation table with the host logical memory address to obtain a host physical memory address; and

saving a mapping, between the guest logical memory address and the host physical memory address, to the shadow dynamic address translation table; and

storing the shadow dynamic address translation table in the memory portion.

16. The computer program product of claim 15 , further comprising:

in response to a request for destroying the shadow dynamic address translation table, returning the memory portion occupied by the shadow dynamic address translation table to the memory space.

17. The computer program product of claim 15 ,

wherein the memory space comprises a chain of a plurality of memory frames;

wherein in two adjacent memory frames in the chain, one memory frame comprises a pointer pointing to the other memory frame; and

wherein obtaining the memory portion from the memory space comprises obtaining at least one memory frame from the chain of the plurality of memory frames.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 19, 2026
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: KIDON IP CORPORATION
Reel/Frame 074125/0530 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2026
From: KIDON IP CORPORATION
To: CAPROCK INTEGRATED TECHNOLOGIES LLC
Reel/Frame 073866/0504 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2026
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: KIDON IP CORPORATION
Reel/Frame 074975/0477 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 28, 2017
From: YANG, RUI
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 044900/0258 →
Continuity (1)
Related Publication 20190163643A1 · May 30, 2019
Cited By (1)
US 12,664,100