IP Library Granted Patent US 8,356,141
Granted Patent B2
US 8,356,141 · App. 12/825,163 · Granted Jan 15, 2013

Identifying replacement memory pages from three page record lists

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 8,356,141
App. No.
12/825,163
Granted
Jan 15, 2013
Kind
B2
Abstract

A replacement memory page is identified by accessing a first list of page records, and if the first list is not empty, identifying a replacement page from a next page record indicator of the first list. A second list of page records is accessed if the first list is empty, and if the second list is not empty, the replacement page is identified from a next page record indicator of the second list. A third list of page records is accessed if the first and second lists are empty, and the replacement page is identified from a next page record indicator of the third list.

Claims (27)

1. A method of managing memory pages comprising:

accessing a first list of page records of a first class, and if the first list is not empty, identifying a replacement page from a next page record indicator of the first list;

accessing a second list of page records of a second class if the first list is empty, and if the second list is not empty, identifying the replacement page from a next page record indicator of the second list; and

accessing a third list of page records of a third class if the first and second lists are empty, and identifying the replacement page from a next page record indicator of the third list;

wherein the first class comprises inactive pages, the second class comprises read ahead pages, and the third class comprises active pages.

2. The method of claim 1 wherein the second class comprises read ahead pages, and further comprising:

speculatively prefetching read ahead pages from persistent storage into memory; and

adding read ahead page records to the second list.

3. The method of claim 1 wherein the first class comprises inactive pages and the second class comprises read ahead pages, and further comprising:

periodically scanning the second list for page records that were speculatively prefetched but were not accessed within a specified time period; and

moving page records that were speculatively prefetched but were not accessed within the specified time period from the second list to the first list.

4. The method of claim 1 wherein the first list, the second list, and the third list each comprise a linked list of page records, and the next page record indicator of each list comprises a list tail.

5. The method of claim 4 wherein the first list, the second list, and the third list are arranged in least recently used order.

6. A non transitory computer readable media having computer executable program segments stored thereon, the computer executable program segments comprising:

a virtual to physical memory page replacement module for accessing a first list of page records of a first class, and if the first list is not empty, identifying a replacement page from a next page record indicator of the first list, accessing a second list of page records of a second class if the first list is empty, and if the second list is not empty, identifying the replacement page from a next page record indicator of the second list, and accessing a third list of page records of a third class if the first and second lists are empty, and identifying the replacement page from a next page record indicator of the third list;

wherein the first class comprises inactive pages, the second class comprises read ahead pages, and the third class comprises active pages.

7. The non transitory computer readable media of claim 6 and further comprising:

a read ahead page module for speculatively prefetching read ahead pages from persistent storage into memory, and adding read ahead page records to the second list.

8. The non transitory computer readable media of claim 6 wherein the virtual to physical memory page replacement module also periodically scans the second list for page records that were speculatively prefetched but were not accessed within a specified time period, and moves page records that were speculatively prefetched but were not accessed within the specified time period from the second list to the first list.

9. The non transitory computer readable media of claim 6 wherein the first list, the second list, and the third list each comprise a linked list of page records, and the next page record indicator of each list comprises a list tail.

10. The non transitory computer readable media of claim 6 wherein the first list, the second list, and the third list are arranged in least recently used order.

11. A computer system comprising: a CPU for executing program instructions; persistent storage for storing data; and main memory for storing data, the main memory including a virtual to physical memory page replacement module, an active page list, an inactive page list, and a read ahead page list, wherein the virtual to physical memory page replacement module accesses a first list of page records of a first class, and if the first list is not empty, identifies a replacement page from a next page record indicator of the first list, accesses a second list of page records of a second class if the first list is empty, and if the second list is not empty, identifies the replacement page from a next page record indicator of the second list, and accesses a third list of page records of a third class if the first and second lists are empty, and identifies the replacement page from a next page record indicator of the third list, wherein the identified replacement page is moved from main memory to persistent storage;

wherein the first class comprises inactive pages, the second class comprises read ahead pages, and the third class comprises active pages.

12. The computing system of claim 11 wherein the memory includes a page read ahead module, the second class comprises read ahead pages, and the page read ahead module speculatively prefetching read ahead pages from the persistent storage into main memory and adds read ahead page records to the second list.

13. The computing system of claim 12 wherein the first class comprises inactive pages and the second class comprises read ahead pages, and the virtual to physical memory page replacement module periodically scans the second list for page records that were speculatively prefetched but were not accessed within a specified time period, and moves page records that were speculatively prefetched but were not accessed within the specified time period from the second list to the first list.

14. The computing system of claim 11 wherein the first list, the second list, and the third list each comprise a linked list of page records, and the next page record indicator of each list comprises a list tail.

15. The computing system of claim 14 wherein the first list, the second list, and the third list are arranged in least recently used order.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2021
From: OT PATENT ESCROW, LLC
To: VALTRUS INNOVATIONS LIMITED
Reel/Frame 058897/0262 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 28, 2010
From: MADISETTI, PRASHANTH; TRUONG, DAN; YALLAPRAGADA, SRISAILENDRA
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 024605/0542 →