IP Library Granted Patent US 6,981,120
Granted Patent B1
US 6,981,120 · App. 10/287,868 · Granted Dec 27, 2005

Method and apparatus for virtual memory segmentation

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 6,981,120
App. No.
10/287,868
Granted
Dec 27, 2005
Kind
B1
Abstract

Memory and processing required for managing virtual memory segments is reduced by overloading the existing page table entries in a virtual memory page table to encode virtual memory segmentation data. Therefore, no additional data structures are required for virtual memory segment management. Virtual memory segmentation information is stored in the actual page table entries, using bits that are reserved as unused for the given computer architecture to identify the virtual memory segment management information.

Claims (41)

1. A method for managing memory segmentation in a virtual memory system, comprising:

creating a range descriptor for managing segmentation using a page table, the page table being formed of page table entries that correspond to respective segments in virtual memory, the range descriptor containing an index value corresponding to a first free segment in virtual memory referenced by the page table;

in the page table, encoding a reserved header page table entry to indicate that a segment in virtual memory is reserved, such that the page table has a respective reserved header page table entry preceding each page table entry corresponding to a segment that is an allocated segment or a free segment;

in the page table, encoding a free header page table entry to indicate that a segment in virtual memory is free, such that the page table entry has a respective free header page table entry preceding each page table entry corresponding to a free segment; and

managing address translation operations within the virtual memory system using the range descriptor, reserved header page table entries and free header page table entries such that allocation of additional virtual memory system data structures is avoided.

2. The method of claim 1 wherein the reserved header page table entry further comprises an indication of a size of the segment.

3. The method of claim 1 wherein the free header page table entry further comprises an indication of a page table index value corresponding to the next free segment.

4. The method of claim 1 wherein the header page table entry is 32 bits long and the reserved header page table entry is indicated by a zero-bit in bit location 12 and the free header page table entry is indicated by a one-bit in bit location 12 .

5. The method of claim 1 wherein a first header page table entry is allocated in the range descriptor such that the first allocated segment or first free segment is aligned on a zero-byte boundary.

6. The method of claim 1 wherein a first free segment and a second free segment are adjacent and are merged into a single new free segment resulting in an available header page table entry becoming free for further use.

7. The method of claim 1 wherein a new allocated segment is allocated from an existing free segment leaving all but one free segment leftover in the existing free segment.

8. The method of claim 7 wherein the one free leftover segment is encoded as an available reserved header page table entry marked with a size field comprising all one-bits.

9. A virtual memory segmentation apparatus, comprising:

a range descriptor managing segmentation using a page table, the page table being formed of page table entries that correspond to respective segments in virtual memory, the range descriptor containing an index value corresponding to a first free segment in virtual memory referenced by the page table;

a reserved header page table entry encoded in the page table to indicate that a segment in virtual memory is reserved, such that the page table has a respective reserved header page table entry preceding each page table entry corresponding to a segment that is an allocated segment or a free segment;

a free header page table entry encoded in the page table to indicate that a segment in virtual memory is free, such that the page table entry has a respective free header page table entry preceding each page table entry corresponding to a free segment; and

a processor managing address translation operations within the virtual memory system using the range descriptor, reserved header page table entries and free header page table entries such that allocation of additional virtual memory system data structures is avoided.

10. The apparatus of claim 9 wherein the reserved header page table entry further comprises an indication of a size of the segment.

11. The apparatus of claim 9 wherein the free header page table entry further comprises an indication of a page table index value corresponding to the next free segment.

12. The apparatus of claim 9 wherein the header page table entry is 32 bits long and the reserved header page table entry is indicated by a zero-bit in bit location 12 and the free header page table entry is indicated by a one-bit in bit location 12 .

13. The apparatus of claim 9 wherein a first header page table entry is allocated in the range descriptor such that the first allocated segment or first free segment is aligned on a zero-byte boundary.

14. The apparatus of claim 9 wherein a first free segment and a second free segment are adjacent and are merged into a single new free segment resulting in an available header page table entry becoming free for further use.

15. The apparatus of claim 9 wherein a new allocated segment is allocated from an existing free segment leaving all but one free segment leftover in the existing free segment.

16. The method of claim 15 wherein the one free leftover segment is encoded as an available reserved header page table entry marked with a size field comprising all one-bits.

17. A virtual memory segmentation apparatus, comprising:

means for creating a range descriptor for managing segmentation using a page table, the page table being formed of page table entries that correspond to respective segments in virtual memory, the range descriptor containing an index value corresponding to a first free segment in virtual memory referenced by the page table;

means for encoding a reserved header page table entry in the page table to indicate that a segment in virtual memory is reserved, such that the page table has a respective reserved header page table entry preceding each page table entry corresponding to a segment that is an allocated segment or a free segment;

means encoding a free header page table entry in the page table to indicate that a segment in virtual memory is free, such that the page table entry has a respective free header page table entry preceding each page table entry corresponding to a free segment; and

means for managing address translation operations within the virtual memory system using the range descriptor, reserved header page table entries and free header page table entries such that allocation of additional virtual memory system data structures is avoided.

18. A computer program product comprising:

a computer usable medium for managing memory segmentation in a virtual memory system;

a set of computer program instructions embodied on the computer usable medium, including instructions to:

create a range descriptor for managing segmentation using a page table, the page table being formed of page table entries that correspond to respective segments in virtual memory, the range descriptor containing an index value corresponding to a first free segment in virtual memory referenced by the page table;

encode a reserved header page table entry in the page table to indicate that a segment in virtual memory is reserved, such that the page table has a respective reserved header page table entry preceding each page table entry corresponding to a segment that is an allocated segment or a free segment;

encode a free header page table entry in the page table to indicate that a segment in virtual memory is free, such that the page table entry has a respective free header page table entry preceding each page table entry corresponding to a free segment; and

manage address translation operations within the virtual memory system using the range descriptor, reserved header page table entries and free header page table entries such that allocation of additional virtual memory system data structures is avoided.

19. A method of overloading a page table to provide management of memory segmentation in a virtual memory system, comprising:

encoding memory segmentation data using bits that are reserved in page table entries of the page table, the page table entries marked as invalid page table entries; and

managing address translation operations within the virtual memory system using the invalid page table entries within an overloaded page table.

20. The method of claim 19 , wherein the memory segmentation data is a pointer to a next free segment.

21. The method of claim 19 , wherein the memory segmentation data is an indication of the size of a segment.

Assignments (5)
MERGER AND CHANGE OF NAME Recorded Dec 14, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037280/0188 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 3, 2009
From: SAVAJE TECHNOLOGIES, INC.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 022773/0173 →
SECURITY AGREEMENT Recorded Oct 27, 2006
From: SAVAJE TECHNOLOGIES, INC.
To: RIDGEWOOD SAVAJE, LLC
Reel/Frame 018442/0526 →
NOTICE OF GRANT OF SECURITY INTEREST Recorded Mar 26, 2004
From: SAVAJE TECHNOLOGIES, INC.
To: RRE VENTURES III, L.P.; RRE VENTURES III-A, L.P.; RRE VENTURE FUND III, L.P.
Reel/Frame 015124/0591 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 4, 2002
From: BARRUS, FRANK E.; RAU, LAWRENCE R.; NEWELL, CRAIG F.
To: SAVAJE TECHNOLOGIES, INC.
Reel/Frame 013465/0968 →