03-12-2012, 04:15 PM
Consistency Models
ConsistencyModel.ppt (Size: 195.5 KB / Downloads: 165)
A Consistency Model is a contract between the software and the memory
it states that the memory will work correctly but only if the software obeys certain rules
The issue is how we can state rules that are not too restrictive but allow fast execution in most common cases
These models represent a more general view of sharing data than what we have seen so far!
Conventions we will use:
W(x)a means “a write to x with value a”
R(y)b means “a read from y that returned value b”
“processor” used generically
Strict Consistency
Strict consistency is the strictest model
a read returns the most recently written value (changes are instantaneous)
not well-defined unless the execution of commands is serialized centrally
otherwise the effects of a slow write may have not propagated to the site of the read
this is what uniprocessors support:
a = 1; a = 2; print(a); always produces “2”
to exercise our notation:
P1: W(x)1
P2: R(x)0 R(x)1
is this strictly consistent?
Weak Consistency
Weak consistency uses synchronization variables to propagate writes to and from a machine at appropriate points:
accesses to synchronization variables are sequentially consistent
no access to a synchronization variable is allowed until all previous writes have completed in all processors
no data access is allowed until all previous accesses to synchronization variables (by the same processor) have been performed
That is:
accessing a synchronization variable “flushes the pipeline”
at a synchronization point, all processors have consistent versions of data
Release Consistency
Release consistency is like weak consistency, but there are two operations “lock” and “unlock” for synchronization
(“acquire/release” are the conventional names)
doing a “lock” means that writes on other processors to protected variables will be known
doing an “unlock” means that writes to protected variables are exported
and will be seen by other machines when they do a “lock” (lazy release consistency) or immediately (eager release consistency)