Skip to main content

A Maude Framework for Cache Coherent Multicore Architectures

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 9942))

Abstract

On shared memory multicore architectures, cache memory is used to accelerate program execution by providing quick access to recently used data, but enables multiple copies of data to co-exist during execution. Although cache coherence protocols ensure that cores do not access stale data, the organisation of data in memory and the scheduling of tasks may significantly influence the performance of a parallel program in this setting. As a step towards understanding how the data organisation impacts the performance of a given parallel program using shared memory, this paper proposes a framework defined in Maude for the executable modelling of program execution on cache coherent multicore architectures, formalising the interactions between cores executing tasks, their caches, and main memory. The framework allows the specification and comparison of program execution with different design choices for the underlying hardware architecture, such as the number of cores, the data layout in main memory, and the cache associativity.

This work is partly funded by the EU research project FP7-612985 UpScale: From Inherent Concurrency to Massive Parallelism Through Type-Based Optimisations (www.upscale-project.eu).

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Notes

  1. 1.

    The complete Maude model is available from http://folk.uio.no/~shijib/wrla2016maude.zip.

  2. 2.

    Recall that the statement forces the flushing of all modified cache lines, which does not affect the number of cache misses.

References

  1. Ayala-Rincón, M., Neto, R.M., Jacobi, R.P., Llanos, C.H., Hartenstein, R.W.: Applying ELAN strategies in simulating processors over simple architectures. Electron. Notes Theor. Comput. Sci. 70(6), 84–99 (2002)

    Article  MATH  Google Scholar 

  2. Bijo, S., Johnsen, E.B., Pun, K.I, Tapia Tarifa, S.L.: An operational semantics of cache coherent multicore architectures. In: Proceedings of the 31st Annual ACM Symposium on Applied Computing (SAC 2016). ACM (2016)

    Google Scholar 

  3. Binkert, N.L., Beckmann, B.M., Black, G., Reinhardt, S.K., Saidi, A.G., Basu, A., Hestness, J., Hower, D., Krishna, T., Sardashti, S., Sen, R., Sewell, K., Shoaib, M., Vaish, N., Hill, M.D., Wood, D.A.: The gem5 simulator. SIGARCH Comput. Archit. News 39(2), 1–7 (2011)

    Article  Google Scholar 

  4. Brandauer, S., et al.: Parallel objects for multicores: a glimpse at the parallel language Encore. In: Bernardo, M., Johnsen, E.B. (eds.) Formal Methods for Multicore Programming. LNCS, vol. 9104, pp. 1–56. Springer, Heidelberg (2015)

    Google Scholar 

  5. Carlson, T., Heirman, W., Eeckhout, L.: Sniper: exploring the level of abstraction for scalable and accurate parallel multi-core simulation. In: International Conference on High Performance Computing, Networking, Storage and Analysis (SC 2011), pp. 1–12 (2011)

    Google Scholar 

  6. Clavel, M., Durán, F., Eker, S., Lincoln, P., Martí-Oliet, N., Meseguer, J., Talcott, C.L.: All About Maude - A High-Performance Logical Framework, How to Specify, Program and Verify Systems in Rewriting Logic. LNCS, vol. 4350. Springer, Heidelberg (2007)

    MATH  Google Scholar 

  7. Crary, K., Sullivan, M.J.: A calculus for relaxed memory. In: Proceedings of the 42nd Annual ACM Symposium on Principles of Programming Languages (POPL 2015), pp. 623–636. ACM (2015)

    Google Scholar 

  8. Culler, D.E., Gupta, A., Singh, J.P.: Parallel Computer Architecture: A Hardware/Software Approach. Morgan Kaufmann Publishers Inc., Burlington (1997)

    Google Scholar 

  9. Delzanno, G.: Constraint-based verification of parameterized cache coherence protocols. Formal Methods Syst. Des. 23(3), 257–301 (2003)

    Article  MATH  Google Scholar 

  10. Dill, D.L., Drexler, A.J., Hu, A.J., Yang, C.H.: Protocol verification as a hardware design aid. In: Proceedings of the International Conference on Computer Design: VLSI in Computer and Processors (ICCD 1992), pp. 522–525. IEEE Computer Society (1992)

    Google Scholar 

  11. Dill, D.L., Park, S., Nowatzyk, A.G.: Formal specification of abstract memory models. In: Proceedings of the Symposium on Research on Integrated Systems, pp. 38–52. MIT Press (1993)

    Google Scholar 

  12. Dongol, B., Travkin, O., Derrick, J., Wehrheim, H.: A high-level semantics for program execution under total store order memory. In: Liu, Z., Woodcock, J., Zhu, H. (eds.) ICTAC 2013. LNCS, vol. 8049, pp. 177–194. Springer, Heidelberg (2013)

    Chapter  Google Scholar 

  13. Ellison, C., Rosu, G.: An executable formal semantics of C with applications. In: Proceedings of the 39th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL 2012), pp. 533–544. ACM (2012)

    Google Scholar 

  14. Harman, N.A.: Verifying a simple pipelined microprocessor using Maude. In: Cerioli, M., Reggio, G. (eds.) WADT 2001 and CoFI WG Meeting 2001. LNCS, vol. 2267, p. 128. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  15. Hennessy, J.L., Patterson, D.A.: Computer Architecture: A Quantitative Approach. Morgan Kaufmann Publishers Inc., Burlington (2011)

    MATH  Google Scholar 

  16. Jagadeesan, R., Pitcher, C., Riely, J.: Generative operational semantics for relaxed memory models. In: Gordon, A.D. (ed.) ESOP 2010. LNCS, vol. 6012, pp. 307–326. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  17. Li, Y., Suhendra, V., Liang, Y., Mitra, T., Roychoudhury, A.: Timing analysis of concurrent programs running on shared cache multi-cores. In: Real-Time Systems Symposium (RTSS 2009), pp. 57–67. IEEE Computer Society, December 2009

    Google Scholar 

  18. Mador-Haim, S., et al.: An axiomatic memory model for POWER multiprocessors. In: Madhusudan, P., Seshia, S.A. (eds.) CAV 2012. LNCS, vol. 7358, pp. 495–512. Springer, Heidelberg (2012)

    Chapter  Google Scholar 

  19. Martin, M.M.K., Sorin, D.J., Beckmann, B.M., Marty, M.R., Xu, M., Alameldeen, A.R., Moore, K.E., Hill, M.D., Wood, D.A.: Multifacet’s general execution-driven multiprocessor simulator (GEMS) toolset. SIGARCH Comput. Archit. News 33(4), 92–99 (2005)

    Article  Google Scholar 

  20. Martín, Ó., Verdejo, A., Martí-Oliet, N.: Model checking TLR* guarantee formulas on infinite systems. In: Iida, S., Meseguer, J., Ogata, K. (eds.) Specification, Algebra, and Software. LNCS, vol. 8373, pp. 129–150. Springer, Heidelberg (2014)

    Chapter  Google Scholar 

  21. Meseguer, J.: Conditional rewriting logic as a unified model of concurrency. Theor. Comput. Sci. 96, 73–155 (1992)

    Article  MathSciNet  MATH  Google Scholar 

  22. Meseguer, J., Rosu, G.: The rewriting logic semantics project: a progress report. Inf. Comput. 231, 38–69 (2013)

    Article  MathSciNet  MATH  Google Scholar 

  23. Miller, J.E., Kasture, H., Kurian, G., Gruenwald III, C., Beckmann, N., Celio, C., Eastep, J., Agarwal, A.: Graphite: a distributed parallel simulator for multicores. In: 16th International Conference on High-Performance Computer Architecture (HPCA-16), pp. 1–12. IEEE Computer Society (2010)

    Google Scholar 

  24. Morrisett, G., Felleisen, M., Harper, R.: Abstract models of memory management. In: Proceedings of the 7th International Conference on Functional Programming Languages and Computer Architecture, FPCA 1995, pp. 66–77. ACM (1995)

    Google Scholar 

  25. Pang, J., Fokkink, W., Hofman, R.F.H., Veldema, R.: Model checking a cache coherence protocol of a Java DSM implementation. J. Logic Algebraic Program. 71(1), 1–43 (2007)

    Article  MathSciNet  MATH  Google Scholar 

  26. Patterson, D.A., Hennessy, J.L.: Computer Organization and Design: The Hardware/Software Interface. Morgan Kaufmann Publishers Inc., Burlington (2013)

    MATH  Google Scholar 

  27. Pong, F., Dubois, M.: Verification techniques for cache coherence protocols. ACM Comput. Surv. 29(1), 82–126 (1997)

    Article  Google Scholar 

  28. Ramirez, S., Rocha, C.: Formal verification of safety properties for a cache coherence protocol. In: 10th Colombian Computing Conference (10CCC), pp. 9–16. IEEE (2015)

    Google Scholar 

  29. Roşu, G., Schulte, W., Şerbănuţă, T.F.: Runtime verification of C memory safety. In: Bensalem, S., Peled, D.A. (eds.) RV 2009. LNCS, vol. 5779, pp. 132–151. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  30. Rusu, V., Lucanu, D., Serbanuta, T., Arusoaie, A., Stefanescu, A., Rosu, G.: Language definitions as rewrite theories. J. Log. Algebr. Meth. Program. 85(1), 98–120 (2016)

    Article  MathSciNet  MATH  Google Scholar 

  31. Sarkar, S., Sewell, P., Alglave, J., Maranget, L., Williams, D.: Understanding POWER multiprocessors. In: Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2011), pp. 175–186. ACM (2011)

    Google Scholar 

  32. Sewell, P., Sarkar, S., Owens, S., Nardelli, F.Z., Myreen, M.O.: X86-TSO: a rigorous and usable programmer’s model for x86 multiprocessors. Commun. ACM 53(7), 89–97 (2010)

    Article  Google Scholar 

  33. Smith, G., Derrick, J., Dongol, B.: Admit your weakness: verifying correctness on TSO architectures. In: Lanese, I., Madelaine, E. (eds.) FACS 2014. LNCS, vol. 8997, pp. 364–383. Springer, Heidelberg (2015)

    Google Scholar 

  34. Yu, X., Vijayaraghavan, M., Devadas, S.: A proof of correctness for the Tardis cache coherence protocol (2015). arXiv preprint arXiv:1505.06459

Download references

We are grateful to the anonymous reviewers for their very thorough reviews and for giving helpful and critical feedback.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Shiji Bijo .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2016 Springer International Publishing Switzerland

About this paper

Cite this paper

Bijo, S., Johnsen, E.B., Pun, K.I., Tapia Tarifa, S.L. (2016). A Maude Framework for Cache Coherent Multicore Architectures. In: Lucanu, D. (eds) Rewriting Logic and Its Applications. WRLA 2016. Lecture Notes in Computer Science(), vol 9942. Springer, Cham. https://doi.org/10.1007/978-3-319-44802-2_3

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-44802-2_3

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-44801-5

  • Online ISBN: 978-3-319-44802-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics