12
Unit III Synchroniz ation & Memory consistency Models By N.R.Rejin Paul Lecturer/VIT/CSE CS2354 Advanced Computer Architecture 

3 & 4.Synchronization & Models of Memory Consistency (1)

Embed Size (px)

Citation preview

Page 1: 3 & 4.Synchronization & Models of Memory Consistency (1)

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 

Page 2: 3 & 4.Synchronization & Models of Memory Consistency (1)

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 

Page 3: 3 & 4.Synchronization & Models of Memory Consistency (1)

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

Page 4: 3 & 4.Synchronization & Models of Memory Consistency (1)

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

Page 5: 3 & 4.Synchronization & Models of Memory Consistency (1)

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

Page 6: 3 & 4.Synchronization & Models of Memory Consistency (1)

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)

Page 7: 3 & 4.Synchronization & Models of Memory Consistency (1)

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?

Page 8: 3 & 4.Synchronization & Models of Memory Consistency (1)

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

Page 9: 3 & 4.Synchronization & Models of Memory Consistency (1)

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

Page 10: 3 & 4.Synchronization & Models of Memory Consistency (1)

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

Page 11: 3 & 4.Synchronization & Models of Memory Consistency (1)

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

Page 12: 3 & 4.Synchronization & Models of Memory Consistency (1)

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