Advertisement

An Operational Model for Multiprocessors with Caches

  • Salil Joshi
  • Sanjiva Prasad
Part of the IFIP Advances in Information and Communication Technology book series (IFIPAICT, volume 323)

Abstract

Modern multiprocessors are equipped with local caches, to enhance program performance. However, the presence of caches can lead to the violation of sequential consistency [7] assumptions regarding program order and write atomicity. With respect to such relaxed memory models [1], we provide an operational description of program execution (in the style of [4]) that accounts for cache effects. In particular, we provide an operational characterization of cache invalidation and update policies and an abstract characterization of cache consistency. The programming model consists of a simple imperative language extended with common synchronization primitives such as locks or barrier instructions. The main results show that by precluding certain data races or by placing certain synchronization constraints, sequentially consistent behavior can be obtained for multiprocessor execution even in the presence of local caches.

Keywords

System Transition Memory Model Local Cache Cache Replacement Data Race 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

References

  1. 1.
    Adve, S.V., Gharachorloo, K.: Shared Memory Consistency Models: A Tutorial. Computer 29(12), 66–76 (1996)CrossRefGoogle Scholar
  2. 2.
    Adve, S.V., Hill, M.D.: Weak Ordering—A new definition. SIGARCH Comput. Archit. News 18(3a), 2–14 (1990)CrossRefGoogle Scholar
  3. 3.
    Arvind, N.N., Maessen, J.-W., Nikhil, R.S., Stoy, J.E.: A Lambda Calculus with Letrecs and Barriers. In: Proceedings of the 16th Conference on Foundations of Software Technology and Theoretical Computer Science, London, UK, pp. 19–36. Springer, Heidelberg (1996)Google Scholar
  4. 4.
    Boudol, G., Petri, G.: Relaxed Memory Models: An Operational Approach. In: POPL ’09: Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of Programming Languages, pp. 392–403. ACM, New York (2009)Google Scholar
  5. 5.
    Handy, J.: The Cache Memory Book. Academic Press Professional, Inc., San Diego (1993)zbMATHGoogle Scholar
  6. 6.
    Joshi, S., Prasad, S.: An Operational Model for Multiprocessors with Caches. Technical report, Indian Institute of Technology Delhi (2010), http://cse.iitd.ac.in/~sanjiva/OpCache.pdf
  7. 7.
    Lamport, L.: How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs. IEEE Transactions on Computers 100(28), 690–691 (1979)CrossRefGoogle Scholar
  8. 8.
    Owens, S., Sarkar, S., Sewell, P.: A Better x86 Memory Model: x86-TSO. In: Berghofer, S., Nipkow, T., Urban, C., Wenzel, M. (eds.) TPHOL 2009. LNCS, vol. 5674, pp. 391–407. Springer, Heidelberg (2009)Google Scholar
  9. 9.
    Sarkar, S., Sewell, P., Nardelli, F.Z., Owens, S., Ridge, T., Braibant, T., Myreen, M.O., Alglave, J.: The semantics of x86-CC multiprocessor machine code. ACM SIGPLAN Notices 44(1), 379–391 (2009)CrossRefGoogle Scholar
  10. 10.
    Wright, A.K., Felleisen, M.: A Syntactic Approach to Type Soundness. Information and Computation 115, 38–94 (1992)CrossRefMathSciNetGoogle Scholar

Copyright information

© IFIP 2010

Authors and Affiliations

  • Salil Joshi
    • 1
  • Sanjiva Prasad
    • 1
  1. 1.Indian Institute of Technology Delhi 

Personalised recommendations