Bounded-pause time garbage collection system and method including read and write barriers associated with an instance of a partially relocated object
First Claim
1. An apparatus comprising:
- memory storage, wherein objects formed therein are relocatable from respective FromSpace instances to respective ToSpace instances thereof,a partially relocated object identifier store updatable to identify a particular instance of a particular one of said objects, if any, for which relocation is incomplete, said particular instance being one of a FromSpace instance and a ToSpace instance;
a write barrier to store-oriented memory accesses targeting said particular instance; and
a read barrier to load-oriented memory accesses targeting said particular instance,said write and said read barriers being responsive to a correspondence between contents of said partially relocated object identifier store and object identifiers for respective of said store-oriented and said load-oriented memory accesses.
2 Assignments
0 Petitions
Accused Products
Abstract
A partially relocated object identifier store including "copy from" and "copy to" identifier storage accessible to write and read barrier logic allows the write and read barrier logic to selectively direct store- and load-oriented accesses to an appropriate FromSpace or ToSpace instance of a partially relocated memory object, in accordance with the memory object'"'"'s partial relocation state. In some embodiments, the barriers trap to a partially relocated object trap handler. In other embodiments, the write barrier itself directs accesses without software trap handler overheads. Optional "how far" indication storage facilitates differentiation by the barrier logic, or by the partially relocated object trap handler, between a copied portion and an uncopied portion of the partially relocated memory object.
-
Citations
54 Claims
-
1. An apparatus comprising:
-
memory storage, wherein objects formed therein are relocatable from respective FromSpace instances to respective ToSpace instances thereof, a partially relocated object identifier store updatable to identify a particular instance of a particular one of said objects, if any, for which relocation is incomplete, said particular instance being one of a FromSpace instance and a ToSpace instance; a write barrier to store-oriented memory accesses targeting said particular instance; and a read barrier to load-oriented memory accesses targeting said particular instance, said write and said read barriers being responsive to a correspondence between contents of said partially relocated object identifier store and object identifiers for respective of said store-oriented and said load-oriented memory accesses. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31)
-
-
32. An apparatus comprising:
-
memory storage, wherein objects formed therein are relocatable from respective FromSpace instances to respective ToSpace instances thereof; a partially relocated object identifier store updatable to identify a FromSpace instance of a particular one of said objects, if any, for which relocation is incomplete; and a write barrier to a store-oriented memory access targeting said FromSpace instance; and a read barrier to a load-oriented memory access targeting said FromSpace instance, wherein, at least during a pointer update phase of said relocation, said read barrier directs said load-oriented memory access to a ToSpace instance of said particular object. - View Dependent Claims (33, 34)
-
-
35. An apparatus comprising:
-
memory storage, wherein objects formed therein are relocatable from respective FromSpace instances to respective ToSpace instances thereof; a partially relocated object identifier store updatable to identify a ToSpace instance of a particular one of said objects, if any, for which relocation is incomplete; a write barrier to store-oriented memory accesses targeting said ToSpace instance; and a read barrier to load-oriented memory accesses targeting said ToSpace instance. - View Dependent Claims (36)
-
-
37. A garbage collection system to manage memory object instance consistency during relocation of a particular memory object in a computer system providing bounded pause-time relocation of said particular memory object using incremental copying of said particular object from a first instance to a second instance thereof, said garbage collection system comprising:
-
a partially relocated object identifier store including identifier fields for said first and said second instances; write barrier logic responsive to a correspondence between an object identifier for a store-oriented mutator process access and contents of said first instance identifier field; and read barrier logic responsive to a correspondence between an object identifier for a load-oriented mutator process access and contents of said first instance identifier field. - View Dependent Claims (38, 39)
-
-
40. A method for bounding garbage collection pause time, said method comprising:
-
during relocating of a memory object from a source instance to a target instance thereof, interrupting said relocating in accordance with a bounded pause time commitment to a mutator process; during said interrupting of said relocating, detecting a correspondence between an object identifier for a write access by said mutator process and contents of a partially relocated object identifier store; selectively directing, based on a partial relocation state of said memory object, said write access to one of said source instance and said target instance; during said interrupting of said relocating, detecting a correspondence between an object identifier for a read access by said mutator process and contents of a partially relocated object identifier store; selectively directing, based on said partial relocation state of said memory object, said read access to one of said source instance and said target instance. - View Dependent Claims (41, 42, 43, 44, 45)
-
-
46. A method for relocating a memory object with bounded pause time impact on a mutator process having access thereto, said method comprising:
-
configuring write and read barriers to respond to respective store-oriented and load-oriented accesses by said mutator process targeting a From instance of said memory object; incrementally copying said memory object from said From instance to a To instance and incrementally updating pointers thereto; during said incremental copying and pointer updating, and in response to a first of said store-oriented accesses, directing said first store-oriented access targeting a copied portion of said memory object to said To instance thereof; during said incremental copying and pointer updating, and in response to a first of said load-oriented accesses, directing said first load-oriented access targeting said copied portion of said memory object to said To instance thereof. - View Dependent Claims (47, 48, 49, 50, 51)
-
-
52. A method for relocating a memory object with bounded pause time impact on a mutator process having access thereto, said method comprising:
-
configuring write and read barriers to respond to respective store-oriented and load-oriented accesses by said mutator process targeting a To instance of said memory object; incrementally updating pointers referencing said From instance to instead reference a To instance and incrementally copying said memory object from said From instance to said To instance; during said incremental pointer updating and copying, and in response to a first of said store-oriented accesses, directing said first store-oriented access targeting an uncopied portion of said memory object to said From instance thereof, during said incremental pointer updating and copying, and in response to a first of said load-oriented accesses, directing said first load-oriented access targeting said uncopied portion of said memory object to said From instance thereof.
-
-
53. A method comprising:
-
maintaining a partial relocation state including a FROM instance identifier state, a TO instance identifier state, and a partial copy position indicating state in accordance with incremental copying of a memory object and incremental updating of pointers thereto; (a) selectively directing, using a hardware read barrier responsive to said partial relocation state, load-oriented memory accesses to either a FROM instance or a TO instance of said memory object; and (b) selectively directing, using a hardware write barrier responsive to said partial relocation state, store-oriented memory accesses to either a FROM instance or a TO instance of said memory object, said (a) and said (b) selective directing maintaining a consistent object representation for a mutator process making said load-oriented and said store-oriented memory accesses.
-
-
54. A computing machine comprising:
-
a processor; memory, wherein objects formed therein are referenceable by said processor; and means accessible by said processor for identifying a partially collected object in said memory, wherein a correspondence between said partially collected object identifier means and an object identifier for an object reference operation by said processor triggers fault handler means; means for garbage collecting said memory, wherein said garbage collecting means maintains said partially collected object identifier means to identify a particular one, if any, of said objects for which garbage collection is incomplete, thereby allowing interruption of said garbage collecting means in accordance with a bounded pause time commitment to mutator means executable on said processor.
-
Specification