7/28/2019 3 & 4.Synchronization & Models of Memory Consistency (1)
http://slidepdf.com/reader/full/3-4synchronization-models-of-memory-consistency-1 1/12
Unit IIISynchronization & Memory consistency Models
ByN.R.Rejin Paul
Lecturer/VIT/CSE
CS2354 Advanced Computer Architecture
7/28/2019 3 & 4.Synchronization & Models of Memory Consistency (1)
http://slidepdf.com/reader/full/3-4synchronization-models-of-memory-consistency-1 2/12
SynchronizationWhy we need Synchronization?
important because while using multiprocessorsarchitectures Need to know when it is safe for different processes touse shared data
When Synchronization is important?
different processor uses shared data, we must havesome mechanism to establish the synchronization in process
The synchronization mechanism are built with the user levelsoftware routines relay on hardware supplies synchronizationinstructions
For small multiprocessors uninterruptable instruction are used tofetch and update the memory which is referred to as the atomicoperation
The operation used to fetch and update memory at same time (readand write) referred to as atomic operation
In large scale multiprocessors synchronization can be a bottleneck
7/28/2019 3 & 4.Synchronization & Models of Memory Consistency (1)
http://slidepdf.com/reader/full/3-4synchronization-models-of-memory-consistency-1 3/12
Synchronization
several techniques have been proposed to reduce contention and
latency in synchronization We have to first examine the hardware primitives to implement
synchronization and then construct synchronization routines
Hardware primitives Basic requirements to implement synchronization in
multiprocessor is the set of hardware primitives with the ability to
automatically read and modify the memory location(In one step)
Interchanging value in a register for a value in memoryautomatically referred to as atomic exchange
The key property of these atomic primitive is that they read and
update memory value atomically (ie) without subdividing into
number of steps
7/28/2019 3 & 4.Synchronization & Models of Memory Consistency (1)
http://slidepdf.com/reader/full/3-4synchronization-models-of-memory-consistency-1 4/12
Synchronization
In addition to atomic exchange the other option used in old
multiprocessors areAtomic exchange: interchange a value in a register for a value inmemory
0 synchronization variable is free
1 synchronization variable is locked and unavailable
Set register to 1 & swap
New value in register determines success in getting lock 0 if you succeeded in setting the lock (you were first)1 if other processor had already claimed access
Key is that exchange operation is indivisibleTest-and-set : tests a value and sets it if the value passes the test
Fetch-and-increment : it returns the value of a memory location andatomically increments it
0 synchronization variable is free
7/28/2019 3 & 4.Synchronization & Models of Memory Consistency (1)
http://slidepdf.com/reader/full/3-4synchronization-models-of-memory-consistency-1 5/12
Synchronization
To implement synchronization a processor tries to set the lock
by exchange of 1, which is in the register ,with the memoryaddress corresponding to the lock
The value returned from the exchange instruction is 1, if some
other processor had already claimed access , otherwise value
returned is 0 The synchronization is locked and unavailable if some other
processor has already claimed access otherwise value=0
7/28/2019 3 & 4.Synchronization & Models of Memory Consistency (1)
http://slidepdf.com/reader/full/3-4synchronization-models-of-memory-consistency-1 6/12
6
Uninterruptable Instruction to
Fetch and Update Memory
• Hard to have read & write in 1 instruction: use 2 instead• Load linked (or load locked) + store conditional
– Load linked returns the initial value
– Store conditional returns 1 if it succeeds (no other store to
same memory location since preceding load) and 0 otherwise
• Example doing atomic swap with LL & SC:try: mov R3,R4 ; mov exchange value
ll R2,0(R1) ; load linkedsc R3,0(R1) ; store conditionalbeqz R3,try ; branch store fails (R3 = 0)
mov R4,R2 ; put load value in R4
• Example doing fetch & increment with LL & SC:try: ll R2,0(R1) ; load linked
addi R2,R2,#1 ; increment (OK if reg –reg)sc R2,0(R1) ; store conditionalbeqz R2,try ; branch store fails (R2 = 0)
7/28/2019 3 & 4.Synchronization & Models of Memory Consistency (1)
http://slidepdf.com/reader/full/3-4synchronization-models-of-memory-consistency-1 7/12
7
User Level Synchronization—
Operation Using this Primitive• Spin locks: processor continuously tries to acquire, spinning around a loop
trying to get the lock li R2,#1lockit: exch R2,0(R1) ;atomic exchange
bnez R2,lockit ;already locked?
• Problem: exchange includes a write, which invalidates all other copies; this
generates considerable bus traffic
• Solution: start by simply repeatedly reading the variable; when it changes,
then try exchange (“test and test&set ”):
try: li R2,#1
lockit: lw R3,0(R1) ;load var
bnez R3,lockit ;≠ 0
not free
spinexch R2,0(R1) ;atomic exchange
bnez R2,try ;already locked?
7/28/2019 3 & 4.Synchronization & Models of Memory Consistency (1)
http://slidepdf.com/reader/full/3-4synchronization-models-of-memory-consistency-1 8/12
8
Another MP Issue:
Memory Consistency ModelsWhat is consistency? When must a processor see consistent view of
memory . e.g., seems that P1: A = 0; P2: B = 0;
..... .....A = 1; B = 1;
L1: if (B == 0) ... L2: if (A == 0) ... The processes are assumed to be running on different processors
and location A,B are originally cached by both processors with initialvalue 0. If write always take immediate effect and immediately seen by other
processors it is impossible to for both statement (L1,L2) to be true Reaching the if statement means that either A or B must be assigned
the value to 1 Suppose the invalidate delays, there is no possible that p1 &p2 seen
invalidation respectively This behavior came be overcome by using model for memory
consistencyTwo consistency Modelssequential consistency modelrelaxed consistency model
7/28/2019 3 & 4.Synchronization & Models of Memory Consistency (1)
http://slidepdf.com/reader/full/3-4synchronization-models-of-memory-consistency-1 9/12
9
Another MP Issue:
Memory Consistency ModelsSequential consistency model:
Result of any execution is the same as if the accesses of eachprocessor were kept in order and the accesses among different
processors were interleaved assignments before ifs above
– SC: delay all memory accesses until all invalidates done
Relaxed consistency model:works by allowing read and write to complete out of order but uses
synchronization to enforce ordering among the writes
7/28/2019 3 & 4.Synchronization & Models of Memory Consistency (1)
http://slidepdf.com/reader/full/3-4synchronization-models-of-memory-consistency-1 10/12
10
Relaxed Consistency Models: The Basics
• Key idea: allow reads and writes to complete out of order, but to usesynchronization operations to enforce ordering, so that a synchronizedprogram behaves as if the processor were sequentially consistent
– By relaxing orderings, may obtain performance advantages – Also specifies range of legal compiler optimizations on shared data – Unless synchronization points are clearly defined and programs are synchronized,
compiler could not interchange read and write of 2 shared data items because mightaffect the semantics of the program
• 3 major sets of relaxed orderings:1. W→R ordering (all writes completed before next read)
• Because retains ordering among writes, manyprograms that operate under sequentialconsistency operate under this model, withoutadditional synchronization. Called processorconsistency
2. W → W ordering (all writes completed before next write)3. R → W and R → R orderings, a variety of models depending on ordering
restrictions and how synchronization operations enforce orderingMany complexities in relaxed consistency models; defining precisely whatit means for a write to complete; deciding when processors can see valuesthat it has written
7/28/2019 3 & 4.Synchronization & Models of Memory Consistency (1)
http://slidepdf.com/reader/full/3-4synchronization-models-of-memory-consistency-1 11/12
11
Write Consistency
•For now assume
1. A write does not complete (and allow the nextwrite to occur) until all processors have seen theeffect of that write
2. The processor does not change the order of anywrite with respect to any other memory access
if a processor writes location A followed bylocation B, any processor that sees the new
value of B must also see the new value of A• These restrictions allow the processor to reorder
reads, but forces the processor to finish writes inprogram order
7/28/2019 3 & 4.Synchronization & Models of Memory Consistency (1)
http://slidepdf.com/reader/full/3-4synchronization-models-of-memory-consistency-1 12/12
12
Memory Consistency Model
• Schemes faster execution to sequential consistency
•Not an issue for most programs; they are synchronized – A program is synchronized if all access to shared data are
ordered by synchronization operations
write (x)...release (s) {unlock}
...acquire (s) {lock} ...
read(x)• Several Relaxed Models for Memory Consistency since
most programs are synchronized; characterized by theirattitude towards: RAR, WAR, RAW, WAWto different addresses