US6078994A
Expired / Lapsed
US
⏱️ 0.0 years remaining
System for maintaining a shared cache in a multi-threaded computer environment
Assignee: Oracle International Corp
•
Filing: 1997-05-30
•
Granted: 2000-06-20
•
Expires: 2017-05-30
Abstract
Abstract In a multi-threaded computing environment, a shared cache system reduces the amount of redundant information stored in memory. A cache memory area provides both global readable data and private writable data to processing threads. A collection mechanism monitors the amount of cache memory available to the processing threads. In particular, a collector thread is executed when needed to reclaim least recently used cache memory.
Inventors
- 👤 James E. Carey
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-30 23:27
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/12; G06F12/121; G06F12/0802; G06F12/0806; G06F12/084; G06F12/0842; G06F12/0223; G06F12/023
Claims Analysis
Total Claims: 105
Claim 1
Independent Claim
187 words
In a computer, a method of managing a cache memory area having a plurality of cache memory blocks, comprising: storing data in a first subset of cache memory blocks including a shared memory block, the data in the shared memory block being accessible by a plurality of data accessor tasks; storing a list of free cache memory blocks in the computer, the free cache memory blocks being cache memory blocks that are not included in the first subset of cache memory blocks; satisfying a request for a cache memory block from a free cache memory block moved from the list of free cache memory blocks to the first subset of cache memory blocks; from a data accessor task generating a triggering event in response to satisfying said request, based on the amount of free cache memory blocks; after satisfying said request, triggering a dedicated collector task, separate from the data access tasks, to execute in the computer in response to the triggering event; and from the collector task, reclaiming memory blocks from the first subset of cache memory blocks to the list of free cache memory blocks.
Claim 2
Dependent Claim
32 words
The method of claim 1 further comprising generating the triggering event based on a minimum threshold of a plurality of free cache memory blocks in the list of free cache memory blocks.
Claim 3
Dependent Claim
16 words
The method of claim 1 wherein reclaiming includes identifying a not recently used cache memory block.
Claim 4
Dependent Claim
26 words
The method of claim 1 wherein the at least one data accessor and the collector are executed among a plurality of processing units in the computer.
Claim 5
Dependent Claim
24 words
The method of claim 1 wherein suspending the execution of the collector in task responsive to a maximum threshold of free cache memory blocks.
Claim 6
Dependent Claim
24 words
The method of claim 1 whereby reclaiming comprises communicating to an owner data accessor task that an owned cache memory block is being reclaimed.
Claim 7
Dependent Claim
27 words
The method of claim 6 further comprising instructing, from the collector task, the owner data accessor task to write data out of the owned cache memory block.
Claim 8
Dependent Claim
23 words
The method of claim 1 wherein the at least one data accessor and the collector are processing threads in a multi-threaded computer system.
Claim 9
Dependent Claim
44 words
The method of claim 1 further comprising triggering a flusher task dependent on a periodic timer event to execute in the computer to reclaim modified cache memory blocks from the first subset of cache memory blocks to the list of free cache memory blocks.
Claim 10
Independent Claim
157 words
An apparatus for managing a cache memory area having a plurality of cache memory blocks in a computer, comprising: a first subset of cache memory blocks having data stored therein, the data being accessible by at least one data accessor; a list of free cache memory blocks stored in the computer, the free cache memory blocks being cache memory blocks that are not included in the first subset of cache memory blocks; a request for a cache memory block satisfied from a free cache memory blocks to the first subset of cache memory blocks; a triggering event generated from a data accessor task in response to satisfying said request based on the amount of free cache memory blocks; and a collector executing in the computer, after satisfying said request, in response to the triggering event, the collector reclaiming cache memory blocks from the first subset of cache memory blocks to the list of free cache memory blocks.
Claim 11
Dependent Claim
29 words
The apparatus of claim 10 wherein the triggering event comprises a minimum threshold of a plurality of free cache memory blocks in the list of free cache memory blocks.
Claim 12
Dependent Claim
21 words
The apparatus of claim 10 wherein the collector reclaims cache memory blocks by identifying a not recently used cache memory block.
Claim 13
Dependent Claim
26 words
The apparatus of claim 10 further comprising a plurality of processing units in the computer to execute the at least one data accessor and the collector.
Claim 14
Dependent Claim
22 words
The apparatus of claim 10 further comprising a maximum threshold of free cache memory blocks to suspend the execution of the collector.
Claim 15
Dependent Claim
29 words
The apparatus of claim 10 further comprises comprising a message from the collector task to an owner data accessor task that an owned cache memory block is being reclaimed.
Claim 16
Dependent Claim
27 words
The apparatus of claim 15 further comprising an instruction from the collector to the owner data accessor to write data out of the owned cache memory block.
Claim 17
Dependent Claim
23 words
The apparatus of claim 10 wherein the at least one data accessor and the collector are processing threads in a multi-threaded computer system.
Claim 18
Dependent Claim
42 words
The apparatus of claim 10 further comprising a flusher task executing in the computer dependent on a periodic timer event to reclaim modified cache memory blocks from the first subset of cache memory blocks to the list of free cache memory blocks.
Claim 19
Dependent Claim
190 words
An article of manufacture comprising: a computer-readable medium for use in a computer having a memory; a computer-implementable program recorded on the medium to manage a cache memory having a plurality of cache memory blocks, the program comprising the steps of: storing data in a first subset of cache memory blocks, the data being accessible by at least one data accessor; storing a list of free cache memory blocks in the computer, the free cache memory blocks being cache memory blocks that are not included in the first subset of cache memory blocks; satisfying a request for a cache memory block from a free cache memory block moved from the list of free cache memory blocks to the first subset of cache memory blocks; from a data accessor task generating a triggering event in response to satisfying said request, based on the amount of free cache memory blocks; after satisfying said request, triggering a collector to execute in the computer in response to the triggering event; and from the collector, reclaiming cache memory blocks from the first subset of cache memory blocks to the list of free cache memory blocks.
Claim 20
Dependent Claim
37 words
The article of claim 19 wherein the program further comprises the step of generating the triggering event based on a minimum threshold of a plurality free cache memory blocks in the list of free cache memory blocks.
Claim 21
Dependent Claim
19 words
The article of claim 19 wherein the step of reclaiming includes identifying a not recently used cache memory block.
Claim 22
Dependent Claim
28 words
The article of claim 19 wherein the at least one data accessor and the collector are programmed to execute among a plurality of processing units in the computer.
Claim 23
Dependent Claim
30 words
The article of claim 19 wherein the program further comprises the step of suspending the execution of the collector in response to a maximum threshold of free cache memory blocks.
Claim 24
Dependent Claim
26 words
The article of claim 19 whereby the step of reclaiming comprises communicating to an owner data accessor that an owned cache memory block is being reclaimed.
Claim 25
Dependent Claim
31 words
The article of claim 24 wherein the program further comprises the step of instructing, from the collector, the owner data accessor to write data out of the owned cache memory block.
Claim 26
Dependent Claim
25 words
The article of claim 19 wherein the at least one data accessor and the collector are programmed as processing threads in a multi-threaded computer system.
Claim 27
Dependent Claim
49 words
The article of claim 19 wherein the program further comprises instructions for triggering a flusher task dependent on a periodic timer event to execute in the computer to reclaim modified cache memory blocks from the first subset of cache memory blocks to the list of free cache memory blocks.
Claim 28
Dependent Claim
32 words
The method of claim 19 wherein the program further comprises instructions for determining the threshold based on a predetermined number of free cache memory blocks, the predetermined number being greater than 1.
Claim 29
Dependent Claim
26 words
The method of claim 19 wherein the program further comprises instructions for dynamically determining the threshold based on usage of the cache memory area over time.
Claim 30
Dependent Claim
19 words
The method of claim 1 wherein the collector operates to maintain a non-empty list of free cache memory blocks.
Claim 31
Dependent Claim
24 words
The apparatus of claim 11 wherein the threshold is a predetermined number of free cache memory blocks, the predetermined number being greater than 1.
Claim 32
Dependent Claim
19 words
The apparatus of claim 11 wherein the threshold is dynamically determined based on usage of the cache memory area.
Claim 33
Dependent Claim
19 words
The apparatus of claim 10 wherein the collector operates to maintain a non-empty list of free cache memory blocks.
Claim 34
Dependent Claim
33 words
The article of claim 20 wherein the program further comprises the step of determining the threshold based on a predetermined number of free cache memory blocks, the predetermined number being greater than 1.
Claim 35
Dependent Claim
27 words
The article of claim 20 wherein the program further comprises the step of dynamically determining the threshold based on usage of the cache memory area over time.
Claim 36
Dependent Claim
26 words
The article of claim 19 wherein the program further comprises the step of operating the collector to maintain a non-empty list of free cache memory blocks.
Claim 37
Dependent Claim
126 words
In a computer, a method of managing a cache memory area having a plurality of cache memory blocks, comprising: storing data in a first subset of cache memory blocks, the data being accessible by at least one data accessor; storing a list of free cache memory blocks in the computer, the free cache memory blocks being cache memory blocks that are not included in the first subset of cache memory blocks; from a data accessor, generating a triggering event based on the amount of free cache memory blocks; triggering a collector to execute n the computer in response to the triggering event; and from the collector, reclaiming cache memory blocks from the first subset of cache memory blocks to the list of free cache memory blocks.
Claim 38
Dependent Claim
21 words
The method of claim 37 further comprising generating the triggering event based on a minimum threshold of free cache memory blocks.
Claim 39
Dependent Claim
27 words
The method of claim 38 further comprising determining the threshold based on a predetermined number of free cache memory blocks, the predetermined number being greater than 1.
Claim 40
Dependent Claim
21 words
The method of claim 38 further comprising dynamically determining the threshold based on usage of the cache memory area over time.
Claim 41
Dependent Claim
20 words
The method of claim 37 further comprising operating the collector to maintain a non-empty list of free cache memory blocks.
Claim 42
Dependent Claim
16 words
The method of claim 37 wherein reclaiming includes identifying a not recently used cache memory block.
Claim 43
Dependent Claim
23 words
The method of claim 37 wherein the at least one data accessor and the collector are processing threads in a multi-threaded computer system.
Claim 44
Dependent Claim
24 words
The method of claim 37 further comprising suspending the execution of the collector in response to a maximum threshold of free cache memory blocks.
Claim 45
Dependent Claim
23 words
The method of claim 37 whereby reclaiming comprises communicating to an owner data accessor that an owned cache memory block is being reclaimed.
Claim 46
Dependent Claim
25 words
The method of claim 45 further comprising instructing, from the collector, the owner data accessor to write data out of the owned cache memory block.
Claim 47
Dependent Claim
26 words
The method of claim 37 wherein the at least one data accessor and the collector are executed among a plurality of processing units in the computer.
Claim 48
Dependent Claim
29 words
The method of claim 37 further comprising triggering a flusher to execute in the computer to reclaim modified cache memory blocks from the first subset of cache memory blocks.
Claim 49
Independent Claim
111 words
An apparatus for managing a cache memory area having a plurality of cache memory blocks in a computer, comprising: a first subset of cache memory blocks having data stored therein, the data being accessible by at least one data accessor; a list of free cache memory blocks that are not included in the first subset of cache memory blocks; and a triggering event generated by a data accessor based on the amount of free cache memory blocks; a collector executing in the computer in response to the triggering event, the collector reclaiming cache memory blocks from the first subset of cache memory blocks to the list of free cache memory blocks.
Claim 50
Dependent Claim
18 words
The apparatus of claim 49 wherein the triggering event comprises a minimum threshold of free cache memory blocks.
Claim 51
Dependent Claim
24 words
The apparatus of claim 50 wherein the threshold is a predetermined number of free cache memory blocks, the predetermined number being greater than 1.
Claim 52
Dependent Claim
21 words
The apparatus of claim 50 wherein the threshold is dynamically determined based on usage of the cache memory area over time.
Claim 53
Dependent Claim
19 words
The apparatus of claim 49 wherein the collector operates to maintain a non-empty list of free cache memory blocks.
Claim 54
Dependent Claim
21 words
The apparatus of claim 49 wherein the collector reclaims cache memory blocks by identifying a not recently used cache memory block.
Claim 55
Dependent Claim
26 words
The apparatus of claim 49 further comprising a plurality of processing units in the computer to execute the at least one data accessor and the collector.
Claim 56
Dependent Claim
22 words
The apparatus of claim 49 further comprising a maximum threshold of free cache memory blocks to suspend the execution of the collector.
Claim 57
Dependent Claim
26 words
The apparatus of claim 49 further comprising a message from the collector to an owner data accessor that an owned cache memory block is being reclaimed.
Claim 58
Dependent Claim
27 words
The apparatus of claim 57 further comprising an instruction from the collector to the owner data accessor to write data out of the owned cache memory block.
Claim 59
Dependent Claim
23 words
The apparatus of claim 49 wherein the at least one data accessor and the collector are processing threads in a multi-threaded computer system.
Claim 60
Dependent Claim
35 words
The apparatus of claim 49 further comprising a flusher executing in the computer to reclaim modified cache memory blocks from the first subset of cache memory blocks to the list of free cache memory blocks.
Claim 61
Dependent Claim
145 words
An article of manufacture comprising: a computer-readable medium for use in a computer having a memory; a computer-implementable program recorded on the medium to manage a cache memory having a plurality of cache memory blocks, the program comprising: storing data in a first subset of cache memory blocks, the data being accessible by at least one data accessor; storing a list of free cache memory blocks in the computer, the free cache memory blocks being cache memory blocks that are not included in the first subset of cache memory blocks; from a data accessor, generating a triggering event, based on the amount of free cache memory blocks; triggering a collector to execute in the computer in response to the triggering event; and from the collector, reclaiming cache memory blocks from the first subset of cache memory blocks to the list of free cache memory blocks.
Claim 62
Dependent Claim
26 words
The article of claim 61 wherein the program further comprises instructions for generating the triggering event based on a minimum threshold of free cache memory blocks.
Claim 63
Dependent Claim
32 words
The article of claim 62 wherein the program further comprises instructions for determining the threshold based on a predetermined number of free cache memory blocks, the predetermined number being greater than 1.
Claim 64
Dependent Claim
26 words
The article of claim 62 wherein the program further comprises instructions for dynamically determining the threshold based on usage of the cache memory area over time.
Claim 65
Dependent Claim
25 words
The article of claim 61 wherein the program further comprises instructions for operating the collector to maintain a non-empty list of free cache memory blocks.
Claim 66
Dependent Claim
19 words
The article of claim 61 wherein the instructions for reclaiming includes identifying a not recently used cache memory block.
Claim 67
Dependent Claim
28 words
The article of claim 61 wherein the at least one data accessor and the collector are programmed to execute among a plurality of processing units in the computer.
Claim 68
Dependent Claim
29 words
The article of claim 61 wherein the program further comprises instructions for suspending the execution of the collector in response to a maximum threshold of free cache memory blocks.
Claim 69
Dependent Claim
26 words
The article of claim 61 whereby the instructions for reclaiming comprises communicating to an owner data accessor that an owned cache memory block is being reclaimed.
Claim 70
Dependent Claim
30 words
The article of claim 69 wherein the program further comprises instructions for instructing, from the collector, the owner data accessor to write data out of the owned cache memory block.
Claim 71
Dependent Claim
25 words
The article of claim 61 wherein the at least one data accessor and the collector are programmed as processing threads in a multi-threaded computer system.
Claim 72
Dependent Claim
42 words
The article of claim 61 wherein the program further comprises instructions for triggering a flusher to execute in the computer to reclaim modified cache memory blocks from the first subset of cache memory blocks to the list of free cache memory blocks.
Claim 73
Dependent Claim
125 words
In a computer, a method of managing a cache memory area having a plurality of cache memory blocks, comprising: storing data in a first subset of cache memory blocks, the data being accessible by at least one data accessor; storing a list of free cache memory blocks in the computer, the free cache memory blocks being cache memory blocks that are not included in the first subset of cache memory blocks; triggering a collector to execute in the computer in response to a triggering event; and from the collector, reclaiming cache memory blocks from the first subset of cache memory blocks to the list of free cache memory blocks, wherein an owner data accessor is informed that an owned cache memory block is being reclaimed.
Claim 74
Dependent Claim
21 words
The method of claim 73 further comprising generating the triggering event based on a minimum threshold of free cache memory blocks.
Claim 75
Dependent Claim
27 words
The method of claim 74 further comprising determining the threshold based on a predetermined number of free cache memory blocks, the predetermined number being greater than 1.
Claim 76
Dependent Claim
21 words
The method of claim 74 further comprising dynamically determining the threshold based on usage of the cache memory area over time.
Claim 77
Dependent Claim
20 words
The method of claim 73 further comprising operating the collector to maintain a non-empty list of free cache memory blocks.
Claim 78
Dependent Claim
16 words
The method of claim 73 wherein reclaiming includes identifying a not recently used cache memory block.
Claim 79
Dependent Claim
26 words
The method of claim 73 wherein the at least one data accessor and the collector are executed among a plurality of processing units in the computer.
Claim 80
Dependent Claim
24 words
The method of claim 73 further comprising suspending the execution of the collector in response to a maximum threshold of free cache memory blocks.
Claim 81
Dependent Claim
25 words
The method of claim 73 further comprising instructing, from the collector, the owner data accessor to write data out of the owned cache memory block.
Claim 82
Dependent Claim
23 words
The method of claim 73 wherein the at least one data accessor and the collector are processing threads in a multi-threaded computer system.
Claim 83
Dependent Claim
37 words
The method of claim 73 further comprising triggering a flusher to execute in the computer to reclaim modified cache memory blocks from the first subset of cache memory blocks to the list of free cache memory blocks.
Claim 84
Independent Claim
123 words
An apparatus for managing a cache memory area having a plurality of cache memory blocks in a computer, comprising: a first subset of cache memory blocks having data stored therein, the data being accessible by at least one data accessor; a list of free cache memory blocks stored in the computer, the free cache memory blocks being cache memory blocks that are not included in the first subset of cache memory blocks; and a collector executing in the computer in response to a triggering event, the collector reclaiming cache memory blocks from the first subset of cache memory blocks to the list of free cache memory blocks, wherein an owner data accessor is informed that an owned cache memory block is being reclaimed.
Claim 85
Dependent Claim
18 words
The apparatus of claim 84 wherein the triggering event comprises a minimum threshold of free cache memory blocks.
Claim 86
Dependent Claim
24 words
The apparatus of claim 85 wherein the threshold is a predetermined number of free cache memory blocks, the predetermined number being greater than 1.
Claim 87
Dependent Claim
21 words
The apparatus of claim 85 wherein the threshold is dynamically determined based on usage of the cache memory area over time.
Claim 88
Dependent Claim
19 words
The apparatus of claim 84 wherein the collector operates to maintain a non-empty list of free cache memory blocks.
Claim 89
Dependent Claim
21 words
The apparatus of claim 84 wherein the collector reclaims cache memory blocks by identifying a not recently used cache memory block.
Claim 90
Dependent Claim
26 words
The apparatus of claim 84 further comprising a plurality of processing units in the computer to execute the at least one data accessor and the collector.
Claim 91
Dependent Claim
22 words
The apparatus of claim 84 further comprising a maximum threshold of free cache memory blocks to suspend the execution of the collector.
Claim 92
Dependent Claim
27 words
The apparatus of claim 84 further comprising an instruction from the collector to the owner data accessor to write data out of the owned cache memory block.
Claim 93
Dependent Claim
23 words
The apparatus of claim 84 wherein the at least one data accessor and the collector are processing threads in a multi-threaded computer system.
Claim 94
Dependent Claim
35 words
The apparatus of claim 84 further comprising a flusher executing in the computer to reclaim modified cache memory blocks from the first subset of cache memory blocks to the list of free cache memory blocks.
Claim 95
Dependent Claim
146 words
An article of manufacture comprising: a computer-readable medium for use in a computer having a memory; a computer-implementable program recorded on the medium to manage a cache memory having a plurality of cache memory blocks, the program comprising instructions for: storing data in a first subset of cache memory blocks, the data being accessible by at least one data accessor; storing a list of free cache memory blocks in the computer, the free cache memory blocks being cache memory blocks that are not included in the first subset of cache memory blocks; triggering a collector to execute in the computer in response to a triggering event; and from the collector, reclaiming cache memory blocks from the first subset of cache memory blocks to the list of free cache memory blocks, wherein an owner data accessor is informed that an owned cache memory block is being reclaimed.
Claim 96
Dependent Claim
26 words
The article of claim 95 wherein the program further comprises instructions for generating the triggering event based on a minimum threshold of free cache memory blocks.
Claim 97
Dependent Claim
32 words
The article of claim 96 wherein the program further comprises instructions for determining the threshold based on a predetermined number of free cache memory blocks, the predetermined number being greater than 1.
Claim 98
Dependent Claim
26 words
The article of claim 96 wherein the program further comprises instructions for dynamically determining the threshold based on usage of the cache memory area over time.
Claim 99
Dependent Claim
25 words
The article of claim 95 wherein the program further comprises instructions for operating the collector to maintain a non-empty list of free cache memory blocks.
Claim 100
Dependent Claim
19 words
The article of claim 95 wherein the instructions for reclaiming includes identifying a not recently used cache memory block.
Claim 101
Dependent Claim
28 words
The article of claim 95 wherein the at least one data accessor and the collector are programmed to execute among a plurality of processing units in the computer.
Claim 102
Dependent Claim
29 words
The article of claim 95 wherein the program further comprises instructions for suspending the execution of the collector in response to a maximum threshold of free cache memory blocks.
Claim 103
Dependent Claim
30 words
The article of claim 95 wherein the program further comprises instructions for instructing, from the collector, the owner data accessor to write data out of the owned cache memory block.
Claim 104
Dependent Claim
25 words
The article of claim 95 wherein the at least one data accessor and the collector are programmed as processing threads in a multi-threaded computer system.
Claim 105
Dependent Claim
42 words
The article of claim 95 wherein the program further comprises instructions for triggering a flusher to execute In the computer to reclaim modified cache memory blocks from the first subset of cache memory blocks to the list of free cache memory blocks.
References Cited (Backward Citations)
US4975833A
Cited
US5345588A
Cited
US5179702A
Cited
US5297269A
Cited
US5459862A
Cited
US5475858A
Cited
US5613086A
Cited
US5414840A
Cited
US5642495A
Cited
US5394555A
Cited
US5684993A
Cited
US5535116A
Cited
US5636355A
Cited
WO1995025306A2
Cited
US5566315A
Cited
US5761670A
Cited
US5788429A
Cited
US5860101A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2003-06-20 | 2003-12-20 | 2004-06-20 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2007-06-20 | 2007-12-20 | 2008-06-20 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2011-06-20 | 2011-12-20 | 2012-06-20 | $7700.00 | Window Closed / Lapsed |