Generation-based memory synchronization in a multiprocessor system with weakly consistent memory accesses
First Claim
1. A method for memory synchronization for use in a multiprocessor system having a plurality of processors and a memory device coupled to the processors, the method comprising:
- receiving, at a memory unit associated with a processor, one or more memory access requests from one or more processors;
broadcasting a central generation indication from a memory synchronization unit; and
at each memory unit;
tagging each memory access request with bits representing a global generation number responsive to the central generation indication;
OR-ing said tagged bits from each memory access request to determine what generations are in flight and generating a vector representing generations in flight; and
supplying said generated vector to a global OR reduce tree; and
aggregating, at said global OR reduce tree, information from said generated vectors from each said memory unit about current generations of memory requests in flight; and
delaying memory access requests responsive to said information aggregated at said global OR reduce tree.
8 Assignments
0 Petitions
Accused Products
Abstract
In a multiprocessor system, a central memory synchronization module coordinates memory synchronization requests responsive to memory access requests in flight, a generation counter, and a reclaim pointer. The central module communicates via point-to-point communication. The module includes a global OR reduce tree for each memory access requesting device, for detecting memory access requests in flight. An interface unit is implemented associated with each processor requesting synchronization. The interface unit includes multiple generation completion detectors. The generation count and reclaim pointer do not pass one another.
-
Citations
8 Claims
-
1. A method for memory synchronization for use in a multiprocessor system having a plurality of processors and a memory device coupled to the processors, the method comprising:
-
receiving, at a memory unit associated with a processor, one or more memory access requests from one or more processors; broadcasting a central generation indication from a memory synchronization unit; and at each memory unit; tagging each memory access request with bits representing a global generation number responsive to the central generation indication; OR-ing said tagged bits from each memory access request to determine what generations are in flight and generating a vector representing generations in flight; and supplying said generated vector to a global OR reduce tree; and aggregating, at said global OR reduce tree, information from said generated vectors from each said memory unit about current generations of memory requests in flight; and delaying memory access requests responsive to said information aggregated at said global OR reduce tree. - View Dependent Claims (2, 3, 4)
-
-
5. A central memory synchronization module for use in a multiprocessor system, the system comprising a plurality of processors and a memory device coupled to the processors, the module comprising
at least one global generation bit counter configured to issue a global numeric generation indication; -
a plurality of memory units, each memory unit configured to; receive and store memory access requests from said processors; tag each memory access request with bits representing a global generation number responsive to the global numeric generation indication; apply OR-ing logic to said tagged bits from each memory access request to determine what generations are in flight and generate a vector representing generations in flight for the memory unit; and supplying said generated vector from each memory unit to at least one global OR reduce tree, said global OR reduce tree for aggregating information from said generated vectors from each said memory unit about current generations of memory requests in flight; and at least one broadcast facility for broadcasting the generation indication and a result derived from the OR reduce tree. - View Dependent Claims (6, 7, 8)
-
Specification