Computer memory system with parallel garbage collection independent from an associated user processor
First Claim
1. A memory system for use with a user processor, comprising:
- a physical memory;
a binding register unit having a plurality of registers accessed by the user processor, said registers containing only identifiers for blocks of memory and data, wherein said binding register unit enables relative location indexing by the user processor for data manipulation;
means independent from the user processor for managing the physical memory and binding register unit, wherein the memory system functions as a collection of user specified blocks accessed only through the binding register unit;
computer program means for controlling the physical memory; and
binding register managing means for performing garbage collection of a virtual address space representing the physical memory independently from and in parallel with the operation of the user processor, wherein all blocks which cannot be reached by following pointers directly or indirectly from any binding register are garbage, and all blocks which can be reached by following pointers directly or indirectly from any binding register are not garbage.
1 Assignment
0 Petitions
Accused Products
Abstract
A memory system for association with a user processor for operation independently from the user processor includes a physical memory and an interface unit for enabling the associated user processor to access the physical memory. The physical memory is represented in a virtual address space which is garbage collected in parallel with the operation of the user processor. The garbage collection process includes reference count deallocation and a garbage collection algorithm for deallocating cyclic structures not deallocated by the reference count process. The reference count process includes providing for a reference count indicating the number of pointer references to a memory block in the virtual address space. When the reference count becomes zero, and no other references to a memory block exist, the block may be freed. In the garbage collection algorithm, the virtual memory space is traced in areas, called OLDSPACE, and compactly copied into a new area, called NEWSPACE. The OLDSPACE and NEWSPACE are further scavenged to insure that all referenced blocks of memory are copied, and the remaining OLDSPACE is cleaned. The garbage collection process is performed in parallel with the operation of the user processor.
-
Citations
2 Claims
-
1. A memory system for use with a user processor, comprising:
-
a physical memory; a binding register unit having a plurality of registers accessed by the user processor, said registers containing only identifiers for blocks of memory and data, wherein said binding register unit enables relative location indexing by the user processor for data manipulation; means independent from the user processor for managing the physical memory and binding register unit, wherein the memory system functions as a collection of user specified blocks accessed only through the binding register unit; computer program means for controlling the physical memory; and binding register managing means for performing garbage collection of a virtual address space representing the physical memory independently from and in parallel with the operation of the user processor, wherein all blocks which cannot be reached by following pointers directly or indirectly from any binding register are garbage, and all blocks which can be reached by following pointers directly or indirectly from any binding register are not garbage.
-
-
2. A memory system for use with a central processor of a computer system, comprising:
-
a plurality of binding registers, wherein the central processor accesses memory only by reference to a binding register and an offset value; a physical memory having an address space; a memory manager having a memory processor, wherein said memory manager translates references to binding registers and offsets by the central processor into addresses in said physical memory; and a garbage collector in said memory manager and operated by the memory processor, wherein said garbage collector identifies regions of memory which are no longer accessible to the central processor and releases them for use by the memory manager, and wherein all regions accessible to the central processor consist of those regions which can be reached directly or indirectly by following pointers from any binding register
-
Specification