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
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsNotes
- 1.
The complete Maude model is available from http://folk.uio.no/~shijib/wrla2016maude.zip.
- 2.
Recall that the statement forces the flushing of all modified cache lines, which does not affect the number of cache misses.
References
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)
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)
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)
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)
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)
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)
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)
Culler, D.E., Gupta, A., Singh, J.P.: Parallel Computer Architecture: A Hardware/Software Approach. Morgan Kaufmann Publishers Inc., Burlington (1997)
Delzanno, G.: Constraint-based verification of parameterized cache coherence protocols. Formal Methods Syst. Des. 23(3), 257–301 (2003)
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)
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)
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)
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)
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)
Hennessy, J.L., Patterson, D.A.: Computer Architecture: A Quantitative Approach. Morgan Kaufmann Publishers Inc., Burlington (2011)
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)
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
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)
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)
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)
Meseguer, J.: Conditional rewriting logic as a unified model of concurrency. Theor. Comput. Sci. 96, 73–155 (1992)
Meseguer, J., Rosu, G.: The rewriting logic semantics project: a progress report. Inf. Comput. 231, 38–69 (2013)
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)
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)
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)
Patterson, D.A., Hennessy, J.L.: Computer Organization and Design: The Hardware/Software Interface. Morgan Kaufmann Publishers Inc., Burlington (2013)
Pong, F., Dubois, M.: Verification techniques for cache coherence protocols. ACM Comput. Surv. 29(1), 82–126 (1997)
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)
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)
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)
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)
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)
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)
Yu, X., Vijayaraghavan, M., Devadas, S.: A proof of correctness for the Tardis cache coherence protocol (2015). arXiv preprint arXiv:1505.06459
We are grateful to the anonymous reviewers for their very thorough reviews and for giving helpful and critical feedback.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights 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)