IP Library › Granted Patent US 7,107,431
Granted Patent B2
US 7,107,431 · App. 10/782,497 · Granted Sep 12, 2006

Apparatus and method for lazy segment promotion for pre-translated segments

Assignee: International Business Machines Corporation
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 7,107,431
App. No.
10/782,497
Granted
Sep 12, 2006
Kind
B2
Abstract

A mechanism for generating pre-translated segments for use in virtual to real address translation is provided in which segments that are determined to meet a density threshold are promoted to a pre-translated segment class. The pages of these segments are moved to a contiguous portion of memory and the segment table entry corresponding to the segment is updated to indicate the segment to be a pre-translated segment and to include the base real address for the contiguous portion of memory. In one embodiment, as each page is moved, its page table entry is updated to point to the new location of the page so that the page is still accessible during promotion of the segment to a pre-translated segment. In this way, virtual-to-real address translation may be performed by concatenating the segment base real address, the page identifier, and a byte offset into the page.

Claims (54)

1. A method of virtual to real address translation in a data processing device, comprising:

determining if a segment of memory is to be promoted to a pre-translated segment state;

moving at least one page of the segment to a contiguous portion of memory if the segment is to be promoted to a pre-translated segment state; and

updating a segment table entry to identify the segment as being a pre-translated segment, wherein virtual-to-real address translation for pre-translated segments is performed based on address information in the segment table entry.

2. The method of claim 1 , wherein determining if the segment is to be promoted to a pre-translated state includes:

determining if a density of the segment is greater than or equal to a tunable threshold density; and

if the density of the segment is greater than or equal to a tunable threshold density, generating a segment promotion request.

3. The method of claim 2 , wherein the segment promotion request is processed by a dedicated kernel process.

4. The method of claim 1 , wherein moving the at least one page of the segment to a contiguous portion of memory includes:

determining if a contiguous portion of memory having a size sufficient for storing the segment is available; and

allocating the contiguous portion of memory for storing the segment if the contiguous portion of memory having a size sufficient for storing the segment is available.

5. The method of claim 1 , wherein moving the at least one page of the segment to a contiguous portion of memory includes:

copying a page from an old memory location to a new memory location in the contiguous portion of memory; and

updating a page table entry corresponding to the page to point to the new location in the contiguous portion of memory prior to copying another page of the at least on page of the segment to the contiguous portion of memory.

6. The method of claim 1 , wherein updating a segment table entry to identify the segment as being a pre-translated segment includes:

setting a pre-translated flag field in the segment table entry to indicate that the segment is a pre-translated segment.

7. The method of claim 1 , wherein updating a segment table entry to identify the segment as being a pre-translated segment includes:

storing a base real address of the contiguous portion of memory in a segment base real address field for the segment table entry.

8. The method of claim 7 , wherein virtual-to-real address translation is performed using the segment table entry by concatenating the base real address for the contiguous portion of memory with a page identifier from a virtual address and a byte offset from the virtual address.

9. The method of claim 5 , further comprising:

receiving a reference to the page prior to completion of moving the at least one page to the contiguous portion of memory; and

using the updated page table entry to satisfy the reference.

10. The method of claim 5 , further comprising:

receiving a reference to the page after completion of moving the at least one page to the contiguous portion of memory and updating the segment table entry; and

using the segment table entry rather than the page table entry to satisfy the reference.

11. A computer program product tangibly embodied in a tangible computer readable medium for virtual to real address translation in a data processing device, comprising:

first instructions for determining if a segment of memory is to be promoted to a pre-translated segment state;

second instructions for moving at least one page of the segment to a contiguous portion of memory if the segment is to be promoted to a pre-translated segment state; and

third instructions for updating a segment table entry to identify the segment as being a pre-translated segment, wherein virtual-to-real address translation for pre-translated segments is performed based on address information in the segment table entry.

12. The computer program product of claim 11 , wherein the first instructions for determining if the segment is to be promoted to a pre-translated state include:

instructions for determining if a density of the segment is greater than or equal to a tunable threshold density; and

instructions for generating a segment promotion request if the density of the segment is greater than or equal to a tunable threshold density.

13. The computer program product of claim 12 , wherein the segment promotion request is processed by a dedicated kernel process.

14. The computer program product of claim 11 , wherein the second instructions for moving the at least one page of the segment to a contiguous portion of memory include:

instructions for determining if a contiguous portion of memory having a size sufficient for storing the segment is available; and

instructions for allocating the contiguous portion of memory for storing the segment if the contiguous portion of memory having a size sufficient for storing the segment is available.

15. The computer program product of claim 11 , wherein the second instructions for moving the at least one page of the segment to a contiguous portion of memory include:

instructions for copying a page from an old memory location to a new memory location in the contiguous portion of memory; and

instructions for updating a page table entry corresponding to the page to point to the new location in the contiguous portion of memory prior to copying another page of the at least on page of the segment to the contiguous portion of memory.

16. The computer program product of claim 11 , wherein the instructions for updating a segment table entry to identify the segment as being a pre-translated segment include:

instructions for setting a pre-translated flag field in the segment table entry to indicate that the segment is a pre-translated segment.

17. The computer program product of claim 11 , wherein the third instructions for updating a segment table entry to identify the segment as being a pre-translated segment include:

instructions for storing a base real address of the contiguous portion of memory in a segment base real address field for the segment table entry.

18. The computer program product of claim 17 , wherein virtual-to-real address translation is performed using the segment table entry by concatenating the base real address for the contiguous portion of memory with a page identifier from a virtual address and a byte offset from the virtual address.

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

instructions for receiving a reference to the page prior to completion of moving the at least one page to the contiguous portion of memory; and

instructions for using the updated page table entry to satisfy the reference.

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

instructions for receiving a reference to the page after completion of moving the at least one page to the contiguous portion of memory and updating the segment table entry; and

instructions for using the segment table entry rather than the page table entry to satisfy the reference.

21. An apparatus for virtual to real address translation in a data processing device, comprising;

means for determining if a segment of memory law be promoted to a pre-translated segment state;

means for moving at least one page of the segment to a contiguous portion of memory if the segment is to be promoted to a pre-translated segment state; and

means for updating a segment table entry to identify the segment as being a pre-translated segment, wherein virtual-to-real address translation for pre-translated segments is performed based on address information in the segment table entry.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 17, 2004
From: CHIANG, MEN-CHOW; KASHYAP, SUJATHA
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 014635/0886 →
Continuity (1)
Related Publication 20050188175A1 · Aug 25, 2005