← Back to Patent Explorer
US6829693B2 Expired / Lapsed US ⏱️ 0.0 years remaining

Auxiliary storage slot scavenger

Assignee: International Business Machines Corp
•
Filing: 2001-02-28
•
Granted: 2004-12-07
•
Expires: 2021-02-28
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract In a computing system implementing a virtual memory system having real memory storage frames for storing virtual pages of data and an auxiliary storage system comprising auxiliary storage slots for storing copies of corresponding virtual pages provided in real storage frames, a system and method for freeing auxiliary storage slots to enable further copying of pages thereto. The method comprising the steps of: a) traversing a queue of page frame table entries indicating presence and location of virtual page data in the real storage system; b) determining from the real storage frame backing a page whether the page has been changed in the real storage, and in response, determining whether the page is backed in a corresponding slot in auxiliary storage; c) identifying the auxiliary slot corresponding to the changed frame; and, b) removing the virtual page in said corresponding slot in said auxiliary storage, wherein further room is made available in said auxiliary storage for accommodating storage of other virtual page entries.

Inventors

  • 👤 Greg A. Dyck
  • 👤 Harris M. Morgenstern
  • 👤 Danny R. Sutherland
  • 👤 Wendy L. Wang

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-23 15:16
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/12

Claims Analysis

Total Claims: 24
Claim 1
Independent Claim 326 words
In a computing system implementing a virtual memory storage system having real memory storage frames for storing virtual pages of data, and an auxiliary storage system comprising auxiliary storage slots for storing copies of corresponding virtual pages provided in real memory storage frames, a system for freeing the auxiliary storage slots to enable further copying of virtual pages of data thereto, the system comprising: mechanism for periodically traversing a queue of page frame table entries indicating presence and location of the virtual pages of data in the virtual memory storage system; mechanism, responsive to the traversing mechanism, for determining whether at least one of the virtual pages of data that is backed in at least one of the real memory storage frames has been changed in the virtual memory storage system, and in response to determining that the at least one of the virtual pages of data has been changed in the virtual memory storage system, determining whether a no longer valid copy of the at least one of the virtual pages of data is backed in at least one of the auxiliary storage slots; mechanism, responsive to the determining mechanism, for identifying the at least one of the auxiliary storage slots which backs the no longer valid copy, when it is determined that the at least one of the virtual pages of data has been changed and the no longer valid copy is backed in the at least one of the auxiliary storage slots; and, mechanism, responsive to the identifying mechanism, for deleting the no longer valid copy from the at least one of the auxiliary storage slots, when it is determined that the at least one of the virtual pages of data has been changed and the no longer valid copy is backed in the at least one of the auxiliary storage slots, thereby freeing the at least one of the auxiliary storage slots for use in a pool of available auxiliary storage slots.
Claim 2
Dependent Claim 326 words
In a computing system implementing a virtual memory storage system having real memory storage frames for storing virtual pages of data, and an auxiliary storage system comprising auxiliary storage slots for storing copies of corresponding virtual pages provided in real memory storage frames, a system for freeing the auxiliary storage slots to enable further copying of virtual pages of data thereto, the system comprising: mechanism for periodically traversing a queue of page frame table entries indicating presence and location of the virtual pages of data in the virtual memory storage system; mechanism, responsive to the traversing mechanism, for determining whether at least one of the virtual pages of data that is backed in at least one of the real memory storage frames has been changed in the virtual memory storage system, and in response to determining that the at least one of the virtual pages of data has been changed in the virtual memory storage system, determining whether a no longer valid copy of the at least one of the virtual pages of data is backed in at least one of the auxiliary storage slots; mechanism, responsive to the determining mechanism, for identifying the at least one of the auxiliary storage slots which backs the no longer valid copy, when it is determined that the at least one of the virtual pages of data has been changed and the no longer valid copy is backed in the at least one of the auxiliary storage slots; and, mechanism, responsive to the identifying mechanism, for deleting the no longer valid copy from the at least one of the auxiliary storage slots, when it is determined that the at least one of the virtual pages of data has been changed and the no longer valid copy is backed in the at least one of the auxiliary storage slots, thereby freeing the at least one of the auxiliary storage slots for use in a pool of available auxiliary storage slots.
Claim 3
Dependent Claim 110 words
The system for freeing auxiliary storage slots as claimed in claim 1 , wherein the page frame table entries include information indicating referenced virtual pages of data, the traversing further comprises determining whether a stored virtual page of data in at least one of the real memory storage frames has been referenced since a prior time the stored virtual page of data has been processed and, if so, placing at least one corresponding page frame table entry at a back of the queue so that the stored virtual page of data, becomes a less desirable candidate to have its contents written to the auxiliary storage system in a steal operation.
Claim 4
Dependent Claim 28 words
The system for freeing auxiliary storage slots as claimed in claim 2 , wherein said queue of page frame table entries is maintained in least recently used order.
Claim 5
Dependent Claim 50 words
The system for freeing auxiliary storage slots as claimed in claim 1 , further comprising a mechanism for providing a condition code indicating whether the at least one of the virtual pages of data that is backed in the at least one of the real memory storage frames has changed.
Claim 6
Dependent Claim 45 words
The system for freeing auxiliary storage slots as claimed in claim 1 , wherein the page frame table entries include information indicating whether the at least one of the virtual pages of data is backed in the at least one of the auxiliary storage slots.
Claim 7
Dependent Claim 37 words
The system for freeing auxiliary storage slots as claimed in claim 1 , wherein the identifying mechanism includes a mechanism for retrieving an auxiliary slot token that identifies the at least one of the auxiliary storage slots.
Claim 8
Dependent Claim 125 words
The system for freeing auxiliary storage slots as claimed in claim 1 , wherein the determining mechanism determines a plurality of the virtual pages of data that are backed by the real memory storage frames, that have been changed in the virtual memory storage system, and for which no longer valid copies are backed in a plurality of the auxiliary storage slots, and the deleting mechanism deletes only a subset of the no longer valid copies from a subset of the plurality of the auxiliary storage slots in a single traversal of the queue, and remaining ones of the no longer valid copies are deleted from remaining ones of the plurality of the auxiliary storage slots in at least one subsequent traversal of the queue.
Claim 9
Dependent Claim 329 words
In a computing system implementing a virtual memory storage system having real memory storage frames for storing virtual pages of data and an auxiliary storage system comprising auxiliary storage slots for storing copies of corresponding virtual pages provided in real memory storage frames, a method for freeing the auxiliary storage slots to enable further copying of virtual pages of data thereto, the method comprising the steps of: a) periodically traversing a queue of page frame table entries with each entry indicating presence and location of the virtual pages of data in the virtual memory storage system; and during each traversal: b) responsive to the traversing, determining whether at least one of the virtual pages of data that is backed in at least one of the real memory storage frames has been changed in the virtual memory storage system, and in response to determining that the at least one of the virtual pages of data has been changed in the virtual memory storage system, determining whether a no longer valid copy of the at least one of the virtual pages of data is backed in at least one of the auxiliary storage slots; c) responsive to the determining, identifying the at least one of the auxiliary storage slots which backs the no longer valid copy, when it is determined that the at least one of the virtual pages of data has been changed and the no longer valid copy is backed in the at least one of the auxiliary storage slots; and, d) responsive to the identifying, deleting the no longer valid copy from the at least one of the auxiliary storage slots, when it is determined that the at least one of the virtual pages of data has been changed and the no longer valid copy is backed in the at least one of the auxiliary storage slots, thereby freeing the at least one of the auxiliary storage slots for use in a pool of available auxiliary storage slots.
Claim 10
Dependent Claim 329 words
In a computing system implementing a virtual memory storage system having real memory storage frames for storing virtual pages of data and an auxiliary storage system comprising auxiliary storage slots for storing copies of corresponding virtual pages provided in real memory storage frames, a method for freeing the auxiliary storage slots to enable further copying of virtual pages of data thereto, the method comprising the steps of: a) periodically traversing a queue of page frame table entries with each entry indicating presence and location of the virtual pages of data in the virtual memory storage system; and during each traversal: b) responsive to the traversing, determining whether at least one of the virtual pages of data that is backed in at least one of the real memory storage frames has been changed in the virtual memory storage system, and in response to determining that the at least one of the virtual pages of data has been changed in the virtual memory storage system, determining whether a no longer valid copy of the at least one of the virtual pages of data is backed in at least one of the auxiliary storage slots; c) responsive to the determining, identifying the at least one of the auxiliary storage slots which backs the no longer valid copy, when it is determined that the at least one of the virtual pages of data has been changed and the no longer valid copy is backed in the at least one of the auxiliary storage slots; and, d) responsive to the identifying, deleting the no longer valid copy from the at least one of the auxiliary storage slots, when it is determined that the at least one of the virtual pages of data has been changed and the no longer valid copy is backed in the at least one of the auxiliary storage slots, thereby freeing the at least one of the auxiliary storage slots for use in a pool of available auxiliary storage slots.
Claim 11
Dependent Claim 113 words
The method for freeing auxiliary storage slots as claimed in claim 8 , wherein the page frame table entries include information indicating referenced virtual pages of data, the traversing step further comprising the steps of: determining whether a stored virtual page of data in at least one of the real memory storage frames has been referenced since a prior time the stored virtual page of data has been processed; and, if so, placing at least one corresponding page frame entry at a back of the queue so that the stored virtual page of data, becomes a less desirable candidate to have its contents written to the auxiliary storage system in a steal operation.
Claim 12
Dependent Claim 31 words
The method for freeing auxiliary storage slots as claimed in claim 9 , further including the step of maintaining the queue of page frame table entries in least recently used order.
Claim 13
Dependent Claim 59 words
The method for freeing auxiliary storage slots as claimed in claim 8 , wherein the determining step b) further includes the step of executing an instruction for providing a condition code indicating whether the at least one of the virtual pages of data that is backed in the at least one of the real memory storage frames has changed.
Claim 14
Dependent Claim 55 words
The method for freeing auxiliary storage slots as claimed in claim 8 , wherein the step b) further includes the step of providing information in the page frame table entries for indicating whether the at least one of the virtual pages of data is backed in the at least one of the auxiliary storage slots.
Claim 15
Independent Claim 39 words
The method for freeing auxiliary storage slots as claimed in claimed 8 , wherein the identifying step c) further includes the step of retrieving an auxiliary slot token that identifies the at least one of the auxiliary storage slots.
Claim 16
Dependent Claim 127 words
The method for freeing auxiliary storage slots as claimed in claim 8 , wherein the determining step b) determines a plurality of the virtual pages of data that are backed by the real memory storage frames, that have been changed in the virtual memory storage system, and for which no longer valid copies are backed in a plurality of the auxiliary storage slots, and the deleting stop c) deletes only a subset of the no longer valid copies from a subset of the plurality of the auxiliary storage slots in a single traversal of the queue, and remaining ones of the no longer valid copies are deleted from remaining ones of the plurality of the auxiliary storage slots in at least one subsequent traversal of the queue.
Claim 17
Dependent Claim 335 words
A program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform method steps for freeing auxiliary storage slots in a computing system implementing a virtual memory storage system having real memory storage frames for storing virtual pages of data and an auxiliary storage system comprising auxiliary storage slots for storing copies of corresponding virtual pages provided in real memory storage frames, the method steps comprising: a) periodically traversing a queue of page frame table entries with each entry indicating presence and location of the virtual pages of data in the virtual memory storage system; and during each traversal; b) responsive to the traversing, determining whether at least one of the virtual pages of data that is backed in at least one of the real memory storage frames has been changed in the virtual memory storage system, and in response to determining that the at least one of the virtual pages of data has been changed in the virtual memory storage system, determining whether a no longer valid copy of the at least one of the virtual pages of data is backed in at least one of the auxiliary storage slots; c) responsive to the determining, identifying the at least one of the auxiliary storage slots which backs the no longer valid copy, when it is determined that the at least one of the virtual pages of data has been changed and the no longer valid copy is backed in the at least one of the auxiliary storage slots; and, d) responsive to the identifying, deleting the no longer valid copy from the at least one of the auxiliary storage slots, when it is determined that the at least one of the virtual pages of data has been changed and the no longer valid copy is backed in the at least one of the auxiliary storage slots, thereby freeing the at least one of the auxiliary storage slots for use in a pool of available auxiliary storage slots.
Claim 18
Dependent Claim 335 words
A program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform method steps for freeing auxiliary storage slots in a computing system implementing a virtual memory storage system having real memory storage frames for storing virtual pages of data and an auxiliary storage system comprising auxiliary storage slots for storing copies of corresponding virtual pages provided in real memory storage frames, the method steps comprising: a) periodically traversing a queue of page frame table entries with each entry indicating presence and location of the virtual pages of data in the virtual memory storage system; and during each traversal; b) responsive to the traversing, determining whether at least one of the virtual pages of data that is backed in at least one of the real memory storage frames has been changed in the virtual memory storage system, and in response to determining that the at least one of the virtual pages of data has been changed in the virtual memory storage system, determining whether a no longer valid copy of the at least one of the virtual pages of data is backed in at least one of the auxiliary storage slots; c) responsive to the determining, identifying the at least one of the auxiliary storage slots which backs the no longer valid copy, when it is determined that the at least one of the virtual pages of data has been changed and the no longer valid copy is backed in the at least one of the auxiliary storage slots; and, d) responsive to the identifying, deleting the no longer valid copy from the at least one of the auxiliary storage slots, when it is determined that the at least one of the virtual pages of data has been changed and the no longer valid copy is backed in the at least one of the auxiliary storage slots, thereby freeing the at least one of the auxiliary storage slots for use in a pool of available auxiliary storage slots.
Claim 19
Dependent Claim 113 words
The program storage device readable by machine as claimed in claim 15 , wherein the page frame table entries include information indicating referenced virtual pages of data, the traversing step further comprising the steps of: determining whether a stored virtual page of data in at least one of the real memory storage frames has been referenced since a prior time the stored virtual page of data has been processed; and, if so, placing at least one corresponding page frame entry at a back of the queue so that the stored virtual page of data, becomes a less desirable candidate to have its contents written to the auxiliary storage system in a steal operation.
Claim 20
Dependent Claim 31 words
The program storage device readable by machine as claimed in claim 16 , further including the step of maintaining the queue of page frame table entries in least recently used order.
Claim 21
Dependent Claim 59 words
The program storage device readable by machine as claimed in claim 15 , wherein the determining step b) further includes the step of executing an instruction for providing a condition code indicating whether the at least one of the virtual pages of data that is backed in the at least one of the real memory storage frames has changed.
Claim 22
Dependent Claim 55 words
The program storage device readable by machine as claimed in claim 15 , wherein the step b) further includes the step of providing information in the page frame table entries for indicating whether the at least one of the virtual pages of data is backed in the at least one of the auxiliary storage slots.
Claim 23
Dependent Claim 39 words
The program storage device readable by machine as claimed in claim 15 , wherein the identifying step c) further includes the step of retrieving an auxiliary slot token that identifies the at least one of the auxiliary storage slots.
Claim 24
Dependent Claim 127 words
The program storage device readable by machine as claimed in claim 15 , wherein the determining step b) determines a plurality of the virtual pages of data that are backed by the real memory storage frames, that have been changed in the virtual memory storage system, and for which no longer valid copies are backed in a plurality of the auxiliary storage slots, and the deleting stop c) deletes only a subset of the no longer valid copies from a subset of the plurality of the auxiliary storage slots in a single traversal of the queue, and remaining ones of the no longer valid copies are deleted from remaining ones of the plurality of the auxiliary storage slots in at least one subsequent traversal of the queue.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2007-12-07 2008-06-07 2008-12-07 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2011-12-07 2012-06-07 2012-12-07 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2015-12-07 2016-06-07 2016-12-07 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag