Systems and methods for multiprocessor scalable write barrier
First Claim
1. A computing device providing multiprocessor scalable write barrier to a card table in a main memory coupled to the computing device, the main memory having been divided into multiple cards that are bit-mapped by the card table, the computing device comprising:
- means for detecting, by a garbage collector, an application reference to a card of the multiple cards;
means, responsive to detecting, for determining whether the main memory is being utilized by two or more processors in a symmetrical multiprocessing system (SMP);
if the main memory is not part of an SMP system;
means for card marking the one or more bits in response to the application reference;
if the main memory is part of an SMP system;
means for determining, by the garbage collector, that one or more bits of the card table have not been card marked, the one or more bits having been bit-mapped to the card; and
responsive the determining, means for eliminating, by the garbage collector, more than a single probability of an overlapping write operation to a cache line comprising the one or more bits by two or more processors of the computing system prior to a subsequent collection of an object(s) associated with the card.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods providing a multiprocessor scalable write barrier to a main memory card table are described. The main memory is divided into multiple cards bit-mapped by the card table. In one aspect, an application store operation (reference) associated with one of the cards is detected. Responsive to detecting the reference, card table bit(s) that are mapped to the card are evaluated. Responsive to determining that the bit(s) have already been marked as dirty, the card table bit(s) are not again marked. This technique effectively reduces the probability of more than a single overlapping write operation to a card table cache line by two or more processors in the system.
69 Citations
18 Claims
-
1. A computing device providing multiprocessor scalable write barrier to a card table in a main memory coupled to the computing device, the main memory having been divided into multiple cards that are bit-mapped by the card table, the computing device comprising:
-
means for detecting, by a garbage collector, an application reference to a card of the multiple cards; means, responsive to detecting, for determining whether the main memory is being utilized by two or more processors in a symmetrical multiprocessing system (SMP); if the main memory is not part of an SMP system; means for card marking the one or more bits in response to the application reference; if the main memory is part of an SMP system; means for determining, by the garbage collector, that one or more bits of the card table have not been card marked, the one or more bits having been bit-mapped to the card; and responsive the determining, means for eliminating, by the garbage collector, more than a single probability of an overlapping write operation to a cache line comprising the one or more bits by two or more processors of the computing system prior to a subsequent collection of an object(s) associated with the card. - View Dependent Claims (2, 3, 4)
-
-
5. A method providing multiprocessor scalable write barrier to a main memory, the main memory having been divided into multiple cards that are mapped by a card table, the method comprising operations of:
-
detecting an application store operation to a location in a card of the multiple cards; responsive to detecting, determining whether the main memory is being utilized by two or more processors in a symmetrical multiprocessing system (SMP); if the main memory is not part of an SMP system; card marking the one or more bits in response to the application store operation; if the main memory is part of an SMP system; reading one or more bits of the card table, the one or more bits having been mapped to the card; responsive to reading, if the one or more bits have already been marked; not card marking the one or more bits; wherein not card marking substantially reduces probability of an overlapping write operation to a card table cache line comprising the one or more bits by two or more processors. - View Dependent Claims (6, 7, 8, 9, 10)
-
-
11. A computer-readable medium providing multiprocessor scalable write barrier to a main memory, the main memory having been divided into multiple cards that are mapped by a card table, the computer-readable medium comprising computer-program executable instructions executable by a processor for:
-
detecting, by a garbage collector, an application reference to a location in a card of the multiple cards; responsive to detecting, determining whether the main memory is being utilized by two or more processors in a symmetrical multiprocessing system (SMP); and if the main memory is not pan of an SMP system; card marking, by the garbage collector, the one or more bits in response to the application reference; if the main memory is part of an SMP system; reading, by the garbage collector, one or more bits of the card table, the one or more bits having been mapped to the card; responsive to reading; if the one or more bits are not marked, card marking, by the garbage collector, the one or more bits, the card marking being an atomic write operation; and if the one or more bits have already been marked, not card marking, by the garbage collector, the one or more bits to substantially guarantee a probability of at most only one processor-to-processor contention to a cache line comprising the one or more bits during a card marking operation. - View Dependent Claims (12, 13)
-
-
14. A computing device providing multiprocessor scalable write barrier to a card table in main memory, the main memory having been divided into multiple cards that are bit-mapped by the card table, the computing device comprising a computer-readable medium, the computer-readable medium comprising computer-program executable instructions executable by a processor for:
-
detecting, by a Common Language Runtime Garbage Collector (CLR GC), an application reference directed to a card of the multiple cards; determining whether the main memory is utilized by two or more processors in a symmetrical multiprocessing system (SMP); if the main memory is not utilized by a SMP system; card marking, by the garbage collector, the one or more bits in response to the application reference; and wherein the instructions for bypassing scale the multiprocessor write barrier to a single processor system of the computing device; if the main memory is utilized by a SMP system; reading, by the CLR GC, of one or mare bits of the card table, the one or more bits having been bit-mapped to the card; responsive to reading, if the one or more bits have already been marked, substantially guaranteeing a probability of at most only one processor-to-processor contention to a cache line comprising the one or more bits. - View Dependent Claims (15, 16, 17, 18)
-
Specification