skip to main content
article
Free Access

Weak ordering—a new definition

Authors Info & Claims
Published:01 May 1990Publication History
Skip Abstract Section

Abstract

A memory model for a shared memory, multiprocessor commonly and often implicitly assumed by programmers is that of sequential consistency. This model guarantees that all memory accesses will appear to execute atomically and in program order. An alternative model, weak ordering, offers greater performance potential. Weak ordering was first defined by Dubois, Scheurich and Briggs in terms of a set of rules for hardware that have to be made visible to software.

The central hypothesis of this work is that programmers prefer to reason about sequentially consistent memory, rather than having to think about weaker memory, or even write buffers. Following this hypothesis, we re-define weak ordering as a contract between software and hardware. By this contract, software agrees to some formally specified constraints, and hardware agrees to appear sequentially consistent to at least the software that obeys those constraints. We illustrate the power of the new definition with a set of software constraints that forbid data races and an implementation for cache-coherent systems that is not allowed by the old definition.

References

  1. AdH89 S. V. ADVE and M. D. HILL. Weak Ordering - A New Definition And Some Implications, Computer Sciences Technical Report #902, University of Wisconsin, Madison, December 1989.Google ScholarGoogle Scholar
  2. ASH88 A. AGARWAL. R. SIMONI. M. HOROWITZ and J. HENNESSY, An Evaluation of Directory Schemes for Cache Coherence, 15th Annual International Symposium on Computer Architecture, Honolulu, Hawaii, June 1988.280-289. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. ArB86 J. ARCHIBALD and J. BAER, Cache Coherence Protocols: Evaluation Using a Multiprocessor Simulation Model, ACM Transactions on Computer Systems 4. 4 (November 1986). 273- 298. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. BeG81 P. A. BERNSTEIN and N. GOODMAN. Concurrency Control in Distributed Systems, Computing Surueys 13.2 (June, 1981). 185221. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. BNR89 R. BISIANI. A. NOWATZYK and M. RAMSHANKAR. Coherent Shared Memory on a Distributed Memory Machine, Proc. International Conference on Parallel Processing, August 1989, I-133-141.Google ScholarGoogle Scholar
  6. BMW85 W. C. BRANIZEY, K. P. MCAULJFFE and J. WEISS, RP3 Process-Memory Element, International Conference on Parallel Processing, August 1985. 772-781.Google ScholarGoogle Scholar
  7. Col84 W. W. COLLIER, Architectures for Systems of Parallel Processes, Technical Report Tech. Rep. 00.3253, IBM Corp., Poughkeepsie, N.Y., 27 January 1984.Google ScholarGoogle Scholar
  8. Col90 W. W. COLLIER, Reasoning about Parallel Architectures, Prentice-Hall, Inc., To appear 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. DeM88 R. DE LEONE and 0. L. MANGASARIAN, Asynchronous Parallel Successive Over-relaxation for the Symmetric Linear Complementarity Problem, Mathematical Programming 42( 1988). 347-361. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. DSB86 M. DUBOIS, C. SCHEURICH and F. A. BRIGGS, Memory Access Buffering in Multiprocessors, Proc. Thirteenth Annual International Symposium on Computer Architecture 14. 2 (June 1986), 434-442. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. DSB88 M. DUBOIS, C. SCHEURICH and F. A. BRIGGS, Synchronization, Coherence, and Event Ordering in Multiprocessors, IEEE Computer 21, 2 (February 1988). 9-21. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. GVW89 J. R. GOODMAN, M. K. VERNON and P. J. WOEST. Efficient Synchronization Primitives for Large- Scale Cache-Coherent Multiprocessors, Proc. Third International Conference on Architectural Support for Programming Languages and Operating Systems, Boston, April 1989,64-75. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Kro81 D. KROFT, Lockup-Free Instruction Fetch/Perfetch Cache Organization, Proc. Eighth Symposium on Computer Architecture, May 1981, 81-87. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Lam78 L. LAMPORT. Time, Clocks, and the Ordering of Events in a Distributed System, Communications of the ACM 21.7 (July 1978). 558-565. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Lam79 L. LAMPORT. How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs, IEEE Trans. on Computers C-28, 9 (September 1979). 690-691.Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Lam86 L. LAMPORT, The Mutual Exclusion Problem, Parts I and II , Journal of the Association of Computing Machinery 33. 2 (April 1986), 313- 348. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. NeM89 R. NEIZR and B. MILLER, Detecting Data Races in Parallel Program Executions, Computer Sciences Technical Report #894, University of Wiiconsin. Madison. November 1989.Google ScholarGoogle Scholar
  18. Pap86 C. PAPAD-OU, The Theory of Database Concurrency Control, Computer Science Press. Rockville, Maryland 20850.1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. PBG85 G. F. PZ;ISTER, W. C. BRANTLEY, D. A. GEORGE, S. L. HARVEY, W. J. QXINFELDER K. P. MCAULIFFE, E. A. MELTON, V. A. NORTON and J. WEISS, The IBM Research Parallel Processor Prototype (RP3): Introduction and Architecture, International Cogerence on Parallel Processing, August 1985.764-771.Google ScholarGoogle Scholar
  20. RuS84 L. RUDOLPH and Z. SEGALL, Dynamic Decentralized Cache Schemes for MIMD Parallel Processors, Proc. Eleventh International Symposium on Computer Architecture, June 1984, 340-347. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. ScD87 C. SCHEURICH and M. D~OIS, Correct Memory Operation of Cache-Based Multiprocessors, Proc. Fourteenth Annual International Symposium on Computer Architecture, Pittsburgh, PA, June 1987,234-243. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. ScD88 C. SCHEURICH and M. DUBOIS, Concurrent Miss Resolution in Multiprocessor Caches, Proceedings of the 1988 International Conference on Parallel Processing, University Park PA, August, 1988, I-l 18-125.Google ScholarGoogle Scholar
  23. Sch89 C. E. SCHBURICH, Access Ordering and Coherence in Shared Memory Multiprocessors, Ph.D. Thesis, Department of Computer Engineering. Technical Report CENG 89-19. University of Southern California, May 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. ShS88 D. SHASHA and M. SNIR. Efficient and Correct Execution of Parallel Programs that Share Memory, ACM Trans. on Programming Languages and Systems 10, 2 (April 1988), 282- 312. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Weak ordering—a new definition

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader