Abstract
Sequential consistency is an intuitive consistency model that
simpli_es reasoning about concurrent multiprocessor programs. Most
implementations of high-performance multiprocessors, however, utilize
mechanisms that allow instructions to execute out of order, resulting in
consistency models that are weaker than sequential consistency and further
complicating the job of programmers. This paper investigates all possible
combinations of re-ordering of read and write instructions and their effects
on the correctness of programs that are designed for sequential consistency.
It shows that with certain combinations of re-orderings, any program that
accesses shared memory through only reads and writes and that is correct
assuming sequential consistency, can be transformed to a new program that
does not use any explicit synchronization, and that remains correct in spite
of the instruction re-ordering. With other combinations of re-ordering, such
transformations do not exist, and even solutions to the mutual exclusion
problem are impossible without resorting to explicit synchronization.
Notes
We are currently acquiring citations for the work deposited into this collection. We recognize the distribution rights of this item may have been assigned to another entity, other than the author(s) of the work.If you can provide the citation for this work or you think you own the distribution rights to this work please contact the Institutional Repository Administrator at digitize@ucalgary.ca