{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2024,9,6]],"date-time":"2024-09-06T13:45:34Z","timestamp":1725630334788},"reference-count":34,"publisher":"Association for Computing Machinery (ACM)","issue":"5","content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["J. ACM"],"published-print":{"date-parts":[[2004,9]]},"abstract":"The traditional assumption about memory is that a read returns the value written by the most recent write. However, in a shared memory multiprocessor several processes independently and simultaneously submit reads and writes resulting in a partial order of memory operations. In this partial order, the definition of most recent write may be ambiguous. Memory consistency models have been developed to specify what values may be returned by a read given that memory operations may only be partially ordered. Before this work, consistency models were defined independently. Each model followed a set of rules which was separate from the rules of every other model. In our work, we have defined a set of four consistency properties. Any subset of the four properties yields a set of rules which constitute a consistency model. Every consistency model previously described in the literature can be defined based on our four properties. Therefore, we present these properties as a unfied theory of shared memory consistency.Our unified theory provides several benefits. First, we claim that these four properties capture the underlying structure of memory consistency. That is, the goal of memory consistency is to ensure certain declarative properties which can be intuitively understood by a programmer, and hence allow him or her to write a correct program. Our unified theory provides a uniform, formal definition of all previously described consistency models, and in addition some combinations of properties produce new models that have not yet been described. We believe these new models will prove to be useful because they are based on declarative properties which programmers desire to be enforced. Finally, we introduce the idea of selecting a consistency model as an on-line activity. Before our work, a shared memory program would run start to finish under a single consistency model. Our unified theory allows the consistency model to change as the program runs while maintaining a consistent definition of what values may be returned by each read.<\/jats:p>","DOI":"10.1145\/1017460.1017464","type":"journal-article","created":{"date-parts":[[2004,10,7]],"date-time":"2004-10-07T17:38:56Z","timestamp":1097170736000},"page":"800-849","update-policy":"http:\/\/dx.doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":61,"title":["A unified theory of shared memory consistency"],"prefix":"10.1145","volume":"51","author":[{"given":"Robert C.","family":"Steinke","sequence":"first","affiliation":[{"name":"University of Colorado at Boulder, Boulder, Colorado"}]},{"given":"Gary J.","family":"Nutt","sequence":"additional","affiliation":[{"name":"University of Colorado at Boulder, Boulder, Colorado"}]}],"member":"320","published-online":{"date-parts":[[2004,9]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1109\/2.546611"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1109\/71.242161"},{"key":"e_1_2_1_3_1","volume-title":"Proceedings of the 5th ACM Symposium on Parallel Algorithms and Architectures. ACM","author":"Ahamad M."},{"key":"e_1_2_1_4_1","volume-title":"Proceedings of the 5th International Workshop on Distributed Algorithms, S. Toueg, G. Spirakis, P., and L. Kirousis, Eds. Lecture Notes in Computer Science","volume":"579","author":"Ahamad M."},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1109\/2.485843"},{"key":"e_1_2_1_6_1","volume-title":"Proceedings of the 3rd International Euro-Par Conference, C. Lengauer, M. Griebl, and S. Gorlatch, Eds. Springer","author":"Bataller J."},{"key":"e_1_2_1_7_1","volume-title":"Proceedings of the 4th International Euro-Par Conference, D. Pritchard and J. Reeve, Eds. Springer","author":"Bataller J."},{"key":"e_1_2_1_8_1","volume-title":"Proceedings of the 2nd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming. ACM","author":"Bennett J. K."},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/210126.210127"},{"key":"e_1_2_1_10_1","volume-title":"Midway: Shared memory parallel programming with entry consistency for distributed memory multiprocessors. Tech. Rep. CMU-CS-91-170","author":"Bershad B. N.","year":"1991"},{"key":"e_1_2_1_11_1","volume-title":"Proceedings of the IEEE COMPCON Conference. IEEE Computer Society Press, Los Alamitos, Calif., 528--537","author":"Bershad B. N."},{"key":"e_1_2_1_12_1","volume-title":"Proceedings of the 10th International Parallel Processing Symposium.","author":"Blumofe R. D."},{"key":"e_1_2_1_13_1","volume-title":"Reasoning About Parallel Architectures","author":"Collier W. W."},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1109\/32.55094"},{"key":"e_1_2_1_15_1","volume-title":"Proceedings of the 13th Annual Symposium on Computer Architecture. IEEE Computer Society Press, Los Alamitos, Calif., 434--442","author":"Dubois M."},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1109\/12.868026"},{"key":"e_1_2_1_18_1","volume-title":"Proceedings of the 17th Annual International Symposium on Computer Architecture. IEEE Computer Society Press, Los Alamitos, Calif., 15--26","author":"Gharachorloo K."},{"key":"e_1_2_1_19_1","volume-title":"Proceedings of the 26th Annual International Symposium on Computer Architecture. IEEE Computer Society Press, Los Alamitos, Calif., 162--171","author":"Gniady C."},{"key":"e_1_2_1_21_1","unstructured":"Gosling J. Joy B. and Steele G. 1996. The Java Language Specification. Addison-Wesley Reading Mass. Gosling J. Joy B. and Steele G. 1996. The Java Language Specification. Addison-Wesley Reading Mass."},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/78969.78972"},{"key":"e_1_2_1_23_1","volume-title":"Proceedings of the 10th International Conference on Distributed Computing Systems. 302--309","author":"Hutto P. W."},{"key":"e_1_2_1_24_1","article-title":"Scope consistency: A bridge between release consistency and entry consistency","author":"Iftode L.","year":"1996","journal-title":"Tech. Rep., Princeton University, Princeton, N.J."},{"key":"e_1_2_1_25_1","volume-title":"Proceedings of the 19th Annual International Symposium on Computer Architecture. IEEE Computer Society Press, Los Alamitos, Calif., 13--21","author":"Keleher P."},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/359545.359563"},{"key":"e_1_2_1_27_1","doi-asserted-by":"crossref","first-page":"690","DOI":"10.1109\/TC.1979.1675439","article-title":"How to make a multiprocessor computer that correctly executes multiprocess programs","volume":"9","author":"Lamport L.","year":"1979","journal-title":"IEEE Trans. Comput. C-28"},{"key":"e_1_2_1_28_1","first-page":"2","article-title":"On interprocess communication; Part II","volume":"1","author":"Lamport L.","year":"1986","journal-title":"Algorithms. Distrib. Comput."},{"key":"e_1_2_1_29_1","volume-title":"Proceedings of the 17th Annual International Symposium on Computer Architecture. IEEE Computer Society Press, Los Alamitos, Calif., 148--159","author":"Lenoski D."},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/75104.75105"},{"key":"e_1_2_1_32_1","volume-title":"Pram: A scalable shared memory. Tech. Rep. CS-TR-180-88","author":"Lipton R. J.","year":"1988"},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/160551.160553"},{"key":"e_1_2_1_34_1","volume-title":"Proceedings of the 24th Annual International Symposium on Computer Architecture. IEEE Computer Society Press, Los Alamitos, Calif., 144--156","author":"Ranganathan P."},{"key":"e_1_2_1_35_1","volume-title":"Proceedings of the 9th ACM Symposium on Parallel Algorithms and Architectures. ACM","author":"Ranganathan P."},{"key":"e_1_2_1_36_1","volume-title":"Proceedings of the 24th International Conference on Software Engineering. 489--499","author":"Roychoudbury A."},{"key":"e_1_2_1_37_1","volume-title":"Distributed Operating Systems","author":"Tanenbaum A. S."}],"container-title":["Journal of the ACM"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/1017460.1017464","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,12,28]],"date-time":"2022-12-28T15:44:59Z","timestamp":1672242299000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1017460.1017464"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2004,9]]},"references-count":34,"journal-issue":{"issue":"5","published-print":{"date-parts":[[2004,9]]}},"alternative-id":["10.1145\/1017460.1017464"],"URL":"https:\/\/doi.org\/10.1145\/1017460.1017464","relation":{},"ISSN":["0004-5411","1557-735X"],"issn-type":[{"value":"0004-5411","type":"print"},{"value":"1557-735X","type":"electronic"}],"subject":[],"published":{"date-parts":[[2004,9]]},"assertion":[{"value":"2004-09-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}