System and hardware module for incremental real time garbage collection and memory management
First Claim
1. A garbage-collecting memory module (GCMM) for use with a computer system having one or more digital processors, said digital processor(s) maintaining list(s) of source descriptors pointing to regions of memory in said GCMM containing live objects, said GCMM comprising:
- a memory for the storage of objects;
a means for communicating with said digital processor(s);
a garbage-collecting control unit which (1) allocates space for and stores an object in said memory upon request by one of said digital processor(s), (2) causes an object to be retrieved from said memory and returned to one of said digital processor(s) upon request, and (3) collects garbage from said memory utilizing said source descriptors supplied by said digital processor(s).
2 Assignments
0 Petitions
Accused Products
Abstract
The garbage-collecting memory module (GCMM) functions much like traditional memory in a computer system, thereby permitting the invention to be utilized with a wide variety of computers. It differs from traditional memory in that it automatically cleanses itself of garbage while functioning as traditional memory without causing excessive delays in the execution of application programs by an associated computer. The GCMM can be designed to interface with a computer system via a traditional memory bus and to communicate with the central processing unit (CPU) of the computer using standard communication protocols. The GCMM is comprised of a memory, a means for communicating with the CPU, and a garbage-collecting control unit. The garbage-collecting control unit gives top priority to satisfying the computer'"'"'s requests for memory services. The collection of garbage takes place during the intervals between memory service requests. Garbage collection is accomplished by copying live objects that are stored in one region of memory to a second region thereby leaving dead objects behind in the first region. When the copying process has been completed, the dead objects are disposed of, and the garbage-collecting process continues with the copying of live objects in the second region back to the first. An up-to-date list of live objects is maintained by the CPU and forwarded to the GCMM at the start of each garbage-collection cycle.
279 Citations
48 Claims
-
1. A garbage-collecting memory module (GCMM) for use with a computer system having one or more digital processors, said digital processor(s) maintaining list(s) of source descriptors pointing to regions of memory in said GCMM containing live objects, said GCMM comprising:
-
a memory for the storage of objects; a means for communicating with said digital processor(s); a garbage-collecting control unit which (1) allocates space for and stores an object in said memory upon request by one of said digital processor(s), (2) causes an object to be retrieved from said memory and returned to one of said digital processor(s) upon request, and (3) collects garbage from said memory utilizing said source descriptors supplied by said digital processor(s). - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A process for collecting garbage in a memory and providing memory services to a computer system, said memory comprising a from-space region and a to-space region for the storage of objects, a designated word of each object being a header that specifies the size of said object and whether said object contains descriptors, said computer system maintaining a list of source descriptors pointing to regions of said memory containing live objects, said process comprising the steps:
-
performing a memory service at the request of said computer system, said memory service consisting of allocating space for an object in said to-space region of memory; performing a memory service at the request of said computer system, said memory service consisting of storing an object in said to-space region of memory; performing a memory service at the request of said computer system, said memory service consisting of retrieving an object from memory and returning said object to said computer system; obtaining said source descriptors from said computer system; entering the objects to which said source descriptors point and slice regions containing data belonging to said objects into a copying queue, said objects being called source-descriptor objects; allocating space in to-space for said objects and slice regions; writing a header and a from-space pointer for each of said objects and slice regions in predetermined memory cells of the to-space memory allocations of said objects and slice regions, said from-space pointers pointing to the locations of said objects and slice regions in from-space; replacing the header of each of said objects and slice regions in from-space with a forwarding pointer to the header in to-space; updating said source descriptors to point to to-space; returning the updated source descriptors to said computer system; copying the objects and slice regions in the copying queue from from-space to to-space when not performing or requested to perform memory services for said computer system. - View Dependent Claims (23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48)
-
Specification