IP Library Granted Patent US 9,733,831
Granted Patent B2
US 9,733,831 · App. 14/320,841 · Granted Aug 15, 2017

Generation-based memory synchronization in a multiprocessor system with weakly consistent memory accesses

Inventor: Martin Ohmacht (Yorktown Heights, NY)
Assignee: GLOBALFOUNDRIES INC.
G06F3/0604G06F3/0655G06F3/0671G06F9/3004G06F9/30047G06F9/30087G06F9/3834G06F9/522G06F13/1689G06F2003/0697G11C7/22
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,733,831
App. No.
14/320,841
Granted
Aug 15, 2017
Kind
B2
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.

Claims (36)

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.

2. The method of claim 1 , wherein

the central generation indication comprises a pointer value and

the operations comprise,

holding incrementation of the pointer value so long as a given generation is in flight; and

when given generations in flight are completed, incrementing the pointer value.

3. The method of claim 1 , wherein the central indication comprises a first count indicating a generation and a second count indicating a reclaim pointer.

4. The method of claim 3 , comprising preventing the first and second count from passing each other.

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.

6. The module of claim 5 ,

wherein the global generation

bit counter defines a current generation of memory access; said module further comprising:

a reclaim pointer for pointing to an oldest generation in flight; and said module further comprising:

at least one broadcast interface for providing a value of the counter and the reclaim pointer to the system; and

a request interface for coupling within the system and receiving synchronization requests.

7. The module of claim 5 , wherein the at least one global OR reduce tree is configured to:

receive a plurality of respective vectors—each respective vector having a respective bit for each possible generation, indicating whether there are memory accesses in flight for that generation—from each unit capable of requesting memory access; and

apply OR-ing logic to the respective vectors to determine whether there are memory access requests in flight for any generation.

8. The module of claim 5 , wherein the multiprocessor system further comprises:

at least one synchronization controller unit configured to couple with a synchronization requesting processor and an OR reduce tree end-point, and a plurality of respective generation detectors for tracking a current generation associated with a requesting processor.

Assignments (8)
RELEASE OF SECURITY INTEREST Recorded May 12, 2021
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: GLOBALFOUNDRIES U.S. INC.
Reel/Frame 056987/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 20, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: GLOBALFOUNDRIES INC.
Reel/Frame 054636/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2020
From: GLOBALFOUNDRIES INC.
To: GLOBALFOUNDRIES U.S. INC.
Reel/Frame 054633/0001 →
SECURITY AGREEMENT Recorded Nov 29, 2018
From: GLOBALFOUNDRIES INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 049490/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 5, 2015
From: GLOBALFOUNDRIES U.S. 2 LLC; GLOBALFOUNDRIES U.S. INC.
To: GLOBALFOUNDRIES INC.
Reel/Frame 036779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 3, 2015
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: GLOBALFOUNDRIES U.S. 2 LLC
Reel/Frame 036550/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 16, 2014
From: OHMACHT, MARTIN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 033749/0466 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 1, 2014
From: OHMACHT, MARTIN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 033219/0762 →
Continuity (15)
Division 12796411 · Jun 8, 2010
Provisional Application 61295669 · Jan 15, 2010
Provisional Application 61293266 · Jan 8, 2010
Provisional Application 61293476 · Jan 8, 2010
Provisional Application 61293494 · Jan 8, 2010
Provisional Application 61293499 · Jan 8, 2010
Provisional Application 61293237 · Jan 8, 2010
Provisional Application 61293552 · Jan 8, 2010
Provisional Application 61293554 · Jan 8, 2010
Provisional Application 61293559 · Jan 8, 2010
Provisional Application 61293569 · Jan 8, 2010
Provisional Application 61293603 · Jan 8, 2010
Provisional Application 61293611 · Jan 8, 2010
Provisional Application 61261269 · Nov 13, 2009
Related Publication 20150006840A1 · Jan 1, 2015