Processor emulation virtual memory address translation
AssigneeBull HN Information Systems Inc.
InventorDavid Egolf
Life of this patent
Estimating the term…
Abstract
When emulating a Target architecture on a Host system having a different architecture, virtual to real address translation is typically expensive in terms of computer cycles. The cost can be significantly reduced by utilizing direct page table pointers to short-circuit the address translation. In a system additionally supporting segments framing portions of virtual memory, the direct page table pointers are associated with segment registers and point to the page table entry corresponding to the first location in a segment. Direct page table pointers are invalidated when underlying virtual memory management tables are modified.
Claims21
A method of emulating a Target computer system on a Host computer system, wherein:
- the Target computer system supports a virtual memory addressed through a set of page tables containing a plurality of page table entries,
- each of the plurality of page table entries describes a page of real memory,
- the Target computer system utilizes a set of segment descriptors to frame portions of the virtual memory, and
- said method comprises:
- A) maintaining within the host computer system, a segment page table pointer to a first page table entry in a one of the set of page tables that corresponds to a segment defined by a segment descriptor stored in a segment descriptor register;
- B) utilizing the segment page table pointer to access a second page table entry in the one of the set of page tables when translating a virtual memory address to a real memory address;
- and
- C) referencing the page of real memory described by the second page table entry and corresponding to the real memory address.
Target emulation software stored in a Computer Software Storage Medium on a Host computer system for emulating a Target computer system, wherein:
- the Target computer system supports a virtual memory addressed through a set of page tables containing a plurality of page table entries,
- each of the plurality of page table entries describes a page of real memory,
- the Target computer system utilizes a set of segment descriptors to frame portions of the virtual memory, and
- said Target emulation software comprises:
- A) a set of computer instructions for maintaining a segment page table pointer to a first page table entry in a one of the set of page tables that corresponds to a segment defined by a segment descriptor stored in a segment descriptor register;
- B) a set of computer instructions for utilizing the segment page table pointer to access a second page table entry in the one of the set of page tables when translating a virtual memory address to a real memory address;
- and
- C) a set of computer instructions for referencing the page of real memory described by the second page table entry and corresponding to the real memory address.
A Non-Volatile Storage Medium containing Target emulation software that is executable on a Host computer system for emulating a Target computer system, wherein:
- the Target computer system supports a virtual memory addressed through a set of :page tables containing a plurality of page table entries,
- each of the plurality of page table entries describes a page of real memory,
- the Target computer system utilizes a set of segment descriptors to frame portions of the virtual memory, and
- said Target emulation software comprises:
- A) a set of computer instructions for maintaining a segment page table pointer to a first page table entry in a one of the set of page tables that corresponds to a segment defined by a segment descriptor stored in a segment descriptor register;
- B) a set of computer instructions for utilizing the segment page table pointer to access a second page table entry in the one of the set of page tables when translating a virtual memory address to a real memory address;
- and
- C) a set of computer instructions for referencing the page of real memory described by the second page table entry and corresponding to the real memory address.
Dependencies are inferred from the claim text.