IP Library Granted Patent US 7,516,297
Granted Patent B2
US 7,516,297 · App. 11/272,155 · Granted Apr 7, 2009

Memory management

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,516,297
App. No.
11/272,155
Granted
Apr 7, 2009
Kind
B2
Abstract

Systems, methods, and devices are provided for memory management. One method embodiment includes providing an operating system capable of supporting variable page sizes. The method includes providing a virtual memory address, translating the virtual memory address to a virtual memory page, and mapping the virtual memory page to a physical memory page by using a multilevel page table whose depth and/or order corresponds to page sizes that are supported by an operating system and/or hardware.

Claims (42)

1. A method for memory management, comprising:

providing an operating system capable of supporting variable page sizes;

obtaining a virtual memory address that corresponds to requested data;

translating the virtual memory address to a virtual memory page; and

mapping the virtual memory page to a physical memory page by using a multilevel page table, wherein the multilevel page table depth depends on the number of variable page sizes supported by the operating system.

2. The method of claim 1 , wherein the mapping includes locating the physical memory page by using a single data structure to reference the physical memory page, and wherein the virtual memory page is capable of having a variable size.

3. The method of claim 2 , wherein locating the physical page includes using a virtual frame descriptor disk block descriptor data structure to reference the physical memory page.

4. The method of claim 1 , wherein using the multilevel page table includes using a page table having a depth of at least three.

5. The method of claim 1 , wherein the method includes providing a virtual memory address that corresponds to data requested by a process.

6. The method of claim 1 , wherein the method includes providing a processor capable of supporting a number of page sizes, and wherein the method further includes matching a page table level size for each of a number of table level element to correspond to a page size supported by the processor.

7. A computing device, comprising:

a processor capable of supporting variable page sizes;

a memory in communication with the processor; and

executable instructions storable in memory and executable on the processor to:

provide a virtual memory address corresponding to requested data;

translate the virtual memory address to a virtual memory page, the virtual memory page capable of having a variable size; and

map the virtual memory page to a physical memory page by using a multilevel page table, wherein the multilevel page table depth depends on the number of variable page sizes supported by the operating system.

8. The device of claim 7 , including executable instructions that execute to maintain the multilevel page table in a main memory location.

9. The device of claim 7 , including executable instructions that execute to locate the physical memory page by using a single reference data structure.

10. The device of claim 7 , including executable instructions that execute to organize the multilevel page table, the multilevel page table comprising:

a first level including an array of elements of fixed size, the array elements capable of being mapped by a collection of pages, wherein the mapping includes a lower level including a sub-array of elements of fixed size.

11. The device of claim 10 , wherein the size of a first fixed size array element is equal to the sum of the sizes of a number of other fixed size elements associated with the first fixed size array element in a number of arrays at a number of lower levels.

12. The device of claim 11 , wherein the size of the first fixed size array corresponds to the size of a virtual memory space allocated to a process.

13. A computer readable medium having executable instructions thereon being executed to cause a device to perform a method, comprising:

representing a memory object wherein the multilevel page table depth depends on the number of variable page sizes supported by the operating system, by using a multilevel page table, wherein the multilevel page table describes the memory object as a single data structure of virtual memory page array and sub-array elements and wherein:

the elements have a fixed size; and

the elements represent data, including:

a virtual page; and

a collection of virtual pages;

receiving a request for a virtual memory address based on data sought by a process;

translating the virtual memory address to a virtual memory page;

locating the virtual memory page in the multilevel page table; and

locating a physical memory page by using the multilevel page table.

14. The medium of claim 13 , the method including representing a variable page size memory object by using the multilevel page table.

15. The medium of claim 14 , the method including locating the physical memory page by using one reference data structure to reference the pages of the variable page size memory object.

16. The medium of claim 15 , the method including providing direct access to array elements representing virtual pages and array elements representing collections of virtual pages based on the virtual memory address.

17. The medium of claim 15 , the method including maintaining the multilevel page table in a main memory.

18. A computing system, comprising:

a processor capable of supporting variable page sizes;

a memory in communication with the processor; and means for mapping a variable page size memory object by using a multilevel page table, wherein the multilevel page table depth depends on the number of variable page sizes supported by the operating system, by matching a single data structure of virtual memory page array and sub-array elements to correspond to a page size supported by the processor.

19. The system of claim 18 , wherein the multilevel page table includes at least three levels.

20. The system of claim 18 , wherein the processor is capable of supporting at least 4 page sizes.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 26, 2021
From: OT PATENT ESCROW, LLC
To: VALTRUS INNOVATIONS LIMITED
Reel/Frame 057650/0537 →
PATENT ASSIGNMENT, SECURITY INTEREST, AND LIEN AGREEMENT Recorded Jan 26, 2021
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP; HEWLETT PACKARD ENTERPRISE COMPANY
To: OT PATENT ESCROW, LLC
Reel/Frame 055269/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →