Presentation is loading. Please wait.

Presentation is loading. Please wait.

Memory Consistency Models

Similar presentations


Presentation on theme: "Memory Consistency Models"— Presentation transcript:

1 Memory Consistency Models
Adapted from slides by Sarita V. Adve and Kourosh Gharachorloo And slides from Gabriel Tanase CIS 429/529 - W’07 - Memory Consistency

2 Memory Consistency Models
Memory Consistency (definition) Sequential Consistency Processor Consistency Weak Consistency Release Consistency Early Release Consistency Lazy Release Consistency Entry Consistency CIS 429/529 - W’07 - Memory Consistency

3 CIS 429/529 - W’07 - Memory Consistency
Def: A memory consistency model for a shared address space specifies constraints on the order in which memory operations must appear to be performed (i.e. to become visible to the processors) with respect to one another. P1 P2 (A, flag are zero initial) A=1 while(flag == 0); flag=1 print A; (Culler, Singh, Gupta) CIS 429/529 - W’07 - Memory Consistency

4 Memory Consistency Model
Definition: Order in which memory operations will appear to execute -- what value can a read return -- a read should return the value of the “last” write to the same memory location (P&H coherence) Affects 3P -- Programmability (easy-of-programming) -- Performance (optimization) -- Portability (moving software across different systems) CIS 429/529 - W’07 - Memory Consistency

5 Sequential Consistency
Sequential Consistency(Lamport) “A multiprocessor is sequentially consistent if the result of any execution is the same as if the operations of all the processors were executed in some sequential order, and the operations of each individual processor occur in this sequence in the order specified by its program.” CIS 429/529 - W’07 - Memory Consistency

6 CIS 429/529 - W’07 - Memory Consistency
Implicit Memory Model Sequential consistency (SC) [Lamport ‘76] Result of an execution appears as if All operations executed in some sequential order Memory operations of each process in program order MEMORY P1 P3 P2 Pn CIS 429/529 - W’07 - Memory Consistency

7 Architectures without Caches: example
Write buffer CIS 429/529 - W’07 - Memory Consistency

8 Architectures without Caches: example
Initially Flag1 = Flag2 = 0 P P2 Flag1 = Flag2 = 1 if (Flag2 == 0) if (Flag1 == 0) critical section critical section At runtime: (Operation, Location, Value) (Operation, Location, Value) Write, Flag1, Write, Flag2, 1 Read, Flag2, Read, Flag1, 0? CIS 429/529 - W’07 - Memory Consistency

9 Architectures without Caches: example
P P2 (Operation, Location, Value) (Operation, Location, Value) Write, Flag1, Write, Flag2, 1 Read, Flag2, Read, Flag1, 0 Can happen if Reorder write followed by read in h/w or compiler Allocate copies of Flag1 or Flag2 in registers Write buffers with read bypassing (Optimization by use of writer buffer is safe on conventional uniprocessor, but it can violate SC in multiprocessor system.) CIS 429/529 - W’07 - Memory Consistency

10 Architectures With Caches
Cache Coherence and Sequential Consistency (SC) Cache Coherence A write is visible to all processors Serialization of writes to the same location SC Serialization of writes to all locations Operations appear to execute in program order SC implies Cache Coherence: A memory consistency model as the policy that places an early and late bound on when a new value can be propagated by invalidating or updating Atomicity for writes Serialize write can avoid the violation of SC Ordering of updates/invalidates between source and destination is preserved by network Or delay an update/invalidate from being sent out until any updates or invalidates from previous write are acknowledged CIS 429/529 - W’07 - Memory Consistency

11 Sequential Consistency
1. Every process issues memory operations in program order. 2. After a write operation is issued, the issuing process waits for the write to complete before issuing its next operation. 3. After a read operation is issued, the issuing process waits for the read to complete, and for the write whose value is being returned by the read to complete, before issuing its next operation. That is, if the write whose value is being returned has performed with respect to this processor (as it must have if its value is being returned) then the processor should wait until the write has performed with respect to all processors. (Culler, Singh, Gupta) CIS 429/529 - W’07 - Memory Consistency

12 CIS 429/529 - W’07 - Memory Consistency
Is SC enough? SC constrains all memory operations: Simple model for reasoning about parallel programs But, intuitively reasonable reordering of memory operations in a uniprocessor may violate sequential consistency model in multiprocessor Modern microprocessors reorder operations all the time to obtain performance (write buffers, overlapped writes,non-blocking reads…). How do we reconcile sequential consistency model with the demands of performance? CIS 429/529 - W’07 - Memory Consistency

13 Processor Consistency
Writes from the same processor should be observed in program order; The order in which the writes from two processors occur (as observed by themselves or a third processor need NOT be identical(Gharachorloo & al.) 1. Before a read is allowed to perform with respect to any other processor, all previous reads must be performed and 2. Before a write is allowed to performed with respect to any other processor all previous accesses(reads and writes) must be performed The above conditions relax sequential consistency by allowing reads following a write to bypass the write; CIS 429/529 - W’07 - Memory Consistency

14 CIS 429/529 - W’07 - Memory Consistency
Weak Consistency Distinguish Ordinary shared accesses v. Synchronization accesses Conditions for weak consistency Before an ordinary read/write access is allowed to perform with respect to any other processor, all previous synchronization accesses must be performed and Before a synchronization access is allowed to performed with respect to any other processor, all previous ordinary read/write accesses must be performed and Synchronization accesses are sequentially consistent. CIS 429/529 - W’07 - Memory Consistency

15 CIS 429/529 - W’07 - Memory Consistency
Release Consistency Categorization of shared memory accesses Shared access Competing non-competing Synchronization non-synchronization Acquire Release CIS 429/529 - W’07 - Memory Consistency

16 RC: Properly-Labeled Programs
shared special ordinary synch nsynch acq rel Two ways of labelling Parallelizing compilers Programming methodology CIS 429/529 - W’07 - Memory Consistency

17 Conditions for Release Consistency
Before an ordinary read or write access is allowed to perform with respect to any other processor, all previous acquire accesses must be performed and Before a release access is allowed to perform with respect to any other processor, all previous ordinary read and writes accesses must be performed, and Acquire accesses are sequentially consistent with other aquire accesses; same for release access. CIS 429/529 - W’07 - Memory Consistency

18 Comparison of the four models
CIS 429/529 - W’07 - Memory Consistency

19 Performance Potential
CIS 429/529 - W’07 - Memory Consistency

20 Lazy release consistency for Software DSM
CIS 429/529 - W’07 - Memory Consistency

21 Eager Release Consistency
CIS 429/529 - W’07 - Memory Consistency

22 Lazy Release Consistency
CIS 429/529 - W’07 - Memory Consistency

23 Lazy release consistency
“happened-before-1” partial order Write notice propagation Multiple writer protocols Modify different parts of a page concurrently False sharing Reduces the amount of messages Invalidate vs. update(on the acquiring processor) CIS 429/529 - W’07 - Memory Consistency

24 CIS 429/529 - W’07 - Memory Consistency
Lazy versus Eager CIS 429/529 - W’07 - Memory Consistency

25 Other Consistency Models
Entry consistency (Bershad et. Al.) memory becomes consistent up entry to programmer defined critical section Scope consistency (Iftode et. Al.) Any modification during a consistency scope session become visible to processes that enter sessions of that scope Can have multiple related scope sessions CIS 429/529 - W’07 - Memory Consistency

26 CIS 429/529 - W’07 - Memory Consistency
Delayed Consistency CIS 429/529 - W’07 - Memory Consistency

27 CIS 429/529 - W’07 - Memory Consistency
Delayed protocols CIS 429/529 - W’07 - Memory Consistency

28 CIS 429/529 - W’07 - Memory Consistency

29 Update based cache protocols
CIS 429/529 - W’07 - Memory Consistency

30 CIS 429/529 - W’07 - Memory Consistency
Bibliography Memory consistency and event ordering in scalable shared-memory multiprocessors; Kourosh Gharacahorloo, Daniel Lenosky, James Laudon, Philip Gibbons, Anoop Gupta and John Hennessy. Lazy release consistency for software distributed shared memory; Pete Keleher, Alan Cox, Willy Zwaenepoel The Midway distributed shared memory; Brian Bershad & al. Scope Consistency: A bridge between release consistency and entry consistency; L. Iftode , J.P. Singh, K. Li Parallel computer architecture(chapter 5 and 9); David Culler, J.P. Singh, A. Gupta CIS 429/529 - W’07 - Memory Consistency


Download ppt "Memory Consistency Models"

Similar presentations


Ads by Google