US5485609A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Online background predictors and prefetchers for locality management
Assignee: Brown University Research Foundation Inc
•
Filing: 1994-05-20
•
Granted: 1996-01-16
•
Expires: 2014-05-20
Abstract
Abstract Online prediction techniques based on data compression principles are employed to make predictions in restricted memory environments. Predictors have data structures in the form of trees that are paged and maintained in a cache on a least recently used replacement basis. A fast sequence of events strategy increments the counts for events at the current node of the predictor.
Inventors
- 👤 Jeffrey S. Vitter
- 👤 Kenneth M. Curewitz
- 👤 P. Krishnan
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-26 20:14
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/0802; G06F12/0862; G06F12/0866; G06F2212/00; G06F2212/60; G06F2212/6024; G06F2212/6026
Claims Analysis
Total Claims: 13
Claim 1
Independent Claim
142 words
A method of maintaining a predictor or a prefetcher in cache comprising, constructing the predictor, using a sequence of recent user page requests and a data compression algorithm, in the form of a tree having a root, transitions, nodes and leaves, placing said root of the tree in a page and maintaining the page in cache, placing every node of the tree in at most one cache page, maintaining some of said node pages in cache in accordance with a replacement heuristic, and maintaining the remaining node pages in a secondary memory, fetching a node page not in cache from said secondary memory when it is required, and replacing a node page in cache with said fetched node page in accordance with said replacement heuristic, wherein said replacing a node page in cache is in accordance with a least recently used heuristic.
Claim 2
Independent Claim
142 words
A method of maintaining a predictor or a prefetcher in cache comprising, constructing the predictor, using a sequence of recent user page requests and a data compression algorithm, in the form of a tree having a root, transitions, nodes and leaves, placing said root of the tree in a page and maintaining the page in cache, placing every node of the tree in at most one cache page, maintaining some of said node pages in cache in accordance with a replacement heuristic, and maintaining the remaining node pages in a secondary memory, fetching a node page not in cache from said secondary memory when it is required, and replacing a node page in cache with said fetched node page in accordance with said replacement heuristic, wherein said replacing a node page in cache is in accordance with a least recently used heuristic.
Claim 3
Dependent Claim
20 words
A method as in claim 1 including placing more than one node of said tree on a single cache page.
Claim 4
Dependent Claim
22 words
A method as in claim 2 including reallocating nodes to a less crowded page when they threaten to overflow a node page.
Claim 5
Dependent Claim
18 words
A method as in claim 3 including reallocating nodes to less crowded node pages in a lazy fashion.
Claim 6
Dependent Claim
29 words
A method as in claim 3 including, where one of said nodes has several pointers into it, the step of leaving a forwarding address when that node is moved.
Claim 7
Dependent Claim
23 words
A method as in claim 1 further comprising the step of updating the count of each transition each time the transition is traversed.
Claim 8
Dependent Claim
27 words
A method as in claim 6 further comprising the step of updating the count upon traversing the transition due to accessing of a user page in cache.
Claim 9
Dependent Claim
33 words
A method as in claim 6 comprising the step of updating said predictor for fast page requests by incrementing the counts for the user pages accessed at the current node of the prefetcher.
Claim 10
Independent Claim
330 words
A method of prefetching pages into cache by predicting the next page request from a sequence of past page requests using a data compression algorithm, comprising, constructing an online probabilistic model in the form of a parse tree using a data compression algorithm on the sequence of past page requests, said tree having a root, nodes and leafs connected via transitions, constructing a prefetcher comprising a data structure in the form of a tree with a current node, internal nodes and transitions for past page requests between the nodes, wherein transition counts, corresponding to the probabilities established by the parse tree, out of each node to each succeeding node are kept at each node, setting the current node of the prefetcher to be the root of the parse tree, before each user page request, prefetching at most k pages, choosing the pages in decreasing order of the estimated probabilities as determined by the transition counts out of the current node, upon receiving a user page request, updating the transition count for the page requested, resetting the current node to be the node led to by the transition corresponding to the page requested, and preparing to prefetch again, and upon reaching a leaf of the parse tree, an end node of the data structure for which there are no transitions to a further node, immediately resetting the current node of the data structure tree to be the root of the parse tree, using the root for predicting for prefetching and updating the parse tree at both the leaf and root of the parse tree upon receiving the next page request, said step of constructing a prefetcher comprising a data structure includes labeling the transitions between nodes with a user page identifier and a count corresponding to the number of times the transition is traversed, and upon the occurrence of fast page requests by a user, maintaining the current node at its present location and incrementing the count at the current node.
Claim 11
Independent Claim
330 words
A method of prefetching pages into cache by predicting the next page request from a sequence of past page requests using a data compression algorithm, comprising, constructing an online probabilistic model in the form of a parse tree using a data compression algorithm on the sequence of past page requests, said tree having a root, nodes and leafs connected via transitions, constructing a prefetcher comprising a data structure in the form of a tree with a current node, internal nodes and transitions for past page requests between the nodes, wherein transition counts, corresponding to the probabilities established by the parse tree, out of each node to each succeeding node are kept at each node, setting the current node of the prefetcher to be the root of the parse tree, before each user page request, prefetching at most k pages, choosing the pages in decreasing order of the estimated probabilities as determined by the transition counts out of the current node, upon receiving a user page request, updating the transition count for the page requested, resetting the current node to be the node led to by the transition corresponding to the page requested, and preparing to prefetch again, and upon reaching a leaf of the parse tree, an end node of the data structure for which there are no transitions to a further node, immediately resetting the current node of the data structure tree to be the root of the parse tree, using the root for predicting for prefetching and updating the parse tree at both the leaf and root of the parse tree upon receiving the next page request, said step of constructing a prefetcher comprising a data structure includes labeling the transitions between nodes with a user page identifier and a count corresponding to the number of times the transition is traversed, and upon the occurrence of fast page requests by a user, maintaining the current node at its present location and incrementing the count at the current node.
Claim 12
Independent Claim
313 words
A method of prefetching pages into cache by predicting the next page request from a sequence of past page requests using a data compression algorithm, comprising, constructing an online probabilistic model in the form of a parse tree using a data compression algorithm on the sequence of past page requests, said tree having a root, nodes and leafs connected via transitions, constructing a prefetcher comprising a data structure in the form of a tree with a current node, internal nodes and transitions for past page requests between the nodes, wherein transition counts, corresponding to the probabilities established by the parse tree, out of each node to each succeeding node are kept at each node, setting the current node of the prefetcher to be the root of the parse tree, before each user page request, prefetching at most k pages, choosing the pages in decreasing order of the estimated probabilities as determined by the transition counts out of the current node, upon receiving a user page request, updating the transition count for the page requested, resetting the current node to be the node led to by the transition corresponding to the page requested, and preparing to prefetch again, and upon reaching a leaf of the parse tree, an end node of the data structure for which there are no transitions to a further node, immediately resetting the current node of the data structure tree to be the root of the parse tree, using the root for predicting for prefetching and updating the parse tree at both the leaf and root of the parse tree upon receiving the next page request, said step of constructing a prefetcher comprising a data structure includes labeling the transitions between nodes with a user page identifier and a count corresponding to the number of times the transition is traversed, and comprising the step of paging each data structure node.
Claim 13
Independent Claim
313 words
A method of prefetching pages into cache by predicting the next page request from a sequence of past page requests using a data compression algorithm, comprising, constructing an online probabilistic model in the form of a parse tree using a data compression algorithm on the sequence of past page requests, said tree having a root, nodes and leafs connected via transitions, constructing a prefetcher comprising a data structure in the form of a tree with a current node, internal nodes and transitions for past page requests between the nodes, wherein transition counts, corresponding to the probabilities established by the parse tree, out of each node to each succeeding node are kept at each node, setting the current node of the prefetcher to be the root of the parse tree, before each user page request, prefetching at most k pages, choosing the pages in decreasing order of the estimated probabilities as determined by the transition counts out of the current node, upon receiving a user page request, updating the transition count for the page requested, resetting the current node to be the node led to by the transition corresponding to the page requested, and preparing to prefetch again, and upon reaching a leaf of the parse tree, an end node of the data structure for which there are no transitions to a further node, immediately resetting the current node of the data structure tree to be the root of the parse tree, using the root for predicting for prefetching and updating the parse tree at both the leaf and root of the parse tree upon receiving the next page request, said step of constructing a prefetcher comprising a data structure includes labeling the transitions between nodes with a user page identifier and a count corresponding to the number of times the transition is traversed, and comprising the step of paging each data structure node.
References Cited (Backward Citations)
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 1999-01-15 | 1999-07-17 | 2000-01-16 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2003-01-15 | 2003-07-17 | 2004-01-16 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2007-01-15 | 2007-07-17 | 2008-01-16 | $7700.00 | Window Closed / Lapsed |