System for maintaining a shared cache in a multi-threaded computer environment
First Claim
Patent Images
1. 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.
2 Assignments
0 Petitions
Accused Products
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.
131 Citations
105 Claims
-
1. 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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 30)
-
-
10. 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. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 31, 32, 33)
-
-
19. 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. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 34, 35, 36)
-
-
37. 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. - View Dependent Claims (38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48)
-
-
49. 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. - View Dependent Claims (50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60)
-
-
61. 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. - View Dependent Claims (62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72)
-
-
73. 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. - View Dependent Claims (74, 75, 76, 77, 78, 79, 80, 81, 82, 83)
-
-
84. 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. - View Dependent Claims (85, 86, 87, 88, 89, 90, 91, 92, 93, 94)
-
-
95. 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. - View Dependent Claims (96, 97, 98, 99, 100, 101, 102, 103, 104, 105)
-
Specification