skip to main content

Extending Intel-x86 consistency and persistency: formalising the semantics of Intel-x86 memory types and non-temporal stores

Published:12 January 2022Publication History
Related Artifact: X86_64 Memory Type Tests. experiment https://doi.org/10.1145/3462312
Skip Abstract Section

Abstract

Existing semantic formalisations of the Intel-x86 architecture cover only a small fragment of its available features that are relevant for the consistency semantics of multi-threaded programs as well as the persistency semantics of programs interfacing with non-volatile memory.

We extend these formalisations to cover: (1) non-temporal writes, which provide higher performance and are used to ensure that updates are flushed to memory; (2) reads and writes to other Intel-x86 memory types, namely uncacheable, write-combined, and write-through; as well as (3) the interaction between these features. We develop our formal model in both operational and declarative styles, and prove that the two characterisations are equivalent. We have empirically validated our formalisation of the consistency semantics of these additional features and their subtle interactions by extensive testing on different Intel-x86 implementations.

Skip Supplemental Material Section

Supplemental Material

Auxiliary Presentation Video

The 5-minute video presentation.

References

  1. Parosh Aziz Abdulla, Stavros Aronis, Mohamed Faouzi Atig, Bengt Jonsson, Carl Leonardsson, and Konstantinos Sagonas. 2015. Stateless Model Checking for TSO and PSO. LNCS, Vol. 9035. Springer, Berlin, Heidelberg. 353–367. https://doi.org/10.1007/978-3-662-46681-0_28 Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Parosh Aziz Abdulla, Mohamed Faouzi Atig, Ahmed Bouajjani, K. Narayan Kumar, and Prakash Saivasan. 2021. Deciding Reachability under Persistent X86-TSO. Proc. ACM Program. Lang., 5, POPL (2021), Article 56, Jan., 32 pages. https://doi.org/10.1145/3434337 Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Parosh Aziz Abdulla, Mohamed Faouzi Atig, and Tuan-Phong Ngo. 2015. The Best of Both Worlds: Trading Efficiency and Optimality in Fence Insertion for TSO. In Proceedings of the 24th European Symposium on Programming on Programming Languages and Systems - Volume 9032. Springer-Verlag New York, Inc., New York, NY, USA. 308–332. isbn:978-3-662-46668-1 https://doi.org/10.1007/978-3-662-46669-8_13 Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Jade Alglave, William Deacon, Richard Grisenthwaite, Antoine Hacquard, and Luc Maranget. 2021. Armed cats: formal concurrency modelling at Arm. ACM Trans. Program. Lang. Syst., http://www0.cs.ucl.ac.uk/staff/j.alglave/papers/toplas21.pdfGoogle ScholarGoogle ScholarDigital LibraryDigital Library
  5. Jade Alglave and Luc Maranget. 2011–2021. The diy7 tool suite, Software and Documentation. http://diy.inria.fr/Google ScholarGoogle Scholar
  6. Jade Alglave, Luc Maranget, Paul E. McKenney, Andrea Parri, and Alan Stern. 2018. Frightening Small Children and Disconcerting Grown-Ups: Concurrency in the Linux Kernel. SIGPLAN Not., 53, 2 (2018), March, 405–418. issn:0362-1340 https://doi.org/10.1145/3296957.3177156 Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Jade Alglave, Luc Maranget, and Michael Tautschnig. 2014. Herding Cats: Modelling, Simulation, Testing, and Data Mining for Weak Memory. ACM Trans. Program. Lang. Syst., 36, 2 (2014), Article 7, July, 74 pages. issn:0164-0925 https://doi.org/10.1145/2627752 Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Mohammad Alshboul, Prakash Ramrakhyani, William Wang, James Tuck, and Yan Solihin. 2021. BBB: Simplifying Persistent Programming using Battery-Backed Buffers. In 2021 IEEE International Symposium on High-Performance Computer Architecture (HPCA). 111–124. https://doi.org/10.1109/HPCA51647.2021.00019 Google ScholarGoogle Scholar
  9. Anonymous. 2021. Intel-x86:The interaction between WC, WB and UC Memory. https://stackoverflow.com/questions/66978388/intel-x86the-interaction-between-wc-wb-and-uc-memoryGoogle ScholarGoogle Scholar
  10. Hillel Avni, Eliezer Levy, and Avi Mendelson. 2015. Hardware Transactions in Nonvolatile Memory. In Proceedings of the 29th International Symposium on Distributed Computing - Volume 9363 (DISC 2015). Springer-Verlag, Berlin, Heidelberg. 617–630. isbn:978-3-662-48652-8 https://doi.org/10.1007/978-3-662-48653-5_41 Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Mark Batty, Scott Owens, Susmit Sarkar, Peter Sewell, and Tjark Weber. 2011. Mathematizing C++ Concurrency. In Proceedings of the 38th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL ’11). ACM, New York, NY, USA. 55–66. isbn:978-1-4503-0490-0 https://doi.org/10.1145/1926385.1926394 Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. John Bender and Jens Palsberg. 2019. A Formalization of Java’s Concurrent Access Modes. Proc. ACM Program. Lang., 3, OOPSLA (2019), Article 142, Oct., 28 pages. https://doi.org/10.1145/3360568 Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Ahmed Bouajjani, Egor Derevenetc, and Roland Meyer. 2013. Checking and Enforcing Robustness against TSO. In ESOP 2013 (LNCS, Vol. 7792). Springer, 533–553. https://doi.org/10.1007/978-3-642-37036-6_29 Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Soham Chakraborty and Viktor Vafeiadis. 2019. Grounding Thin-Air Reads with Event Structures. Proc. ACM Program. Lang., 3, POPL (2019), Article 70, Jan., 28 pages. https://doi.org/10.1145/3290383 Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Kyeongmin Cho, Sung-Hwan Lee, Azalea Raad, and Jeehoon Kang. 2021. Revamping Hardware Persistency Models: View-Based and Axiomatic Persistency Models for Intel-X86 and Armv8. In Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation (PLDI 2021). Association for Computing Machinery, New York, NY, USA. 16–31. isbn:9781450383912 https://doi.org/10.1145/3453483.3454027 Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Jeremy Condit, Edmund B. Nightingale, Christopher Frost, Engin Ipek, Benjamin Lee, Doug Burger, and Derrick Coetzee. 2009. Better I/O Through Byte-addressable, Persistent Memory. In Proceedings of the ACM SIGOPS 22Nd Symposium on Operating Systems Principles (SOSP ’09). ACM, New York, NY, USA. 133–146. isbn:978-1-60558-752-3 https://doi.org/10.1145/1629575.1629589 Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Sadegh Dalvandi, Simon Doherty, Brijesh Dongol, and Heike Wehrheim. 2020. Owicki-Gries Reasoning for C11 RAR. In 34th European Conference on Object-Oriented Programming (ECOOP 2020), Robert Hirschfeld and Tobias Pape (Eds.) (Leibniz International Proceedings in Informatics (LIPIcs), Vol. 166). Schloss Dagstuhl–Leibniz-Zentrum für Informatik, Dagstuhl, Germany. 11:1–11:26. isbn:978-3-95977-154-2 issn:1868-8969 https://doi.org/10.4230/LIPIcs.ECOOP.2020.11 Google ScholarGoogle ScholarCross RefCross Ref
  18. DML. 2021. https://github.com/intel/DMLGoogle ScholarGoogle Scholar
  19. Marko Doko and Viktor Vafeiadis. 2016. A Program Logic for C11 Memory Fences. In Verification, Model Checking, and Abstract Interpretation, Barbara Jobstmann and K. Rustan M. Leino (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg. 413–430. isbn:978-3-662-49122-5Google ScholarGoogle Scholar
  20. Marko Doko and Viktor Vafeiadis. 2017. Tackling Real-Life Relaxed Concurrency with FSL++. In Programming Languages and Systems, Hongseok Yang (Ed.). Springer Berlin Heidelberg, Berlin, Heidelberg. 448–475. isbn:978-3-662-54434-1Google ScholarGoogle Scholar
  21. DPDK. 2021. https://www.dpdk.org/Google ScholarGoogle Scholar
  22. Shaked Flur, Kathryn E. Gray, Christopher Pulte, Susmit Sarkar, Ali Sezgin, Luc Maranget, Will Deacon, and Peter Sewell. 2016. Modelling the ARMv8 Architecture, Operationally: Concurrency and ISA. In Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL ’16). Association for Computing Machinery, New York, NY, USA. 608–621. isbn:9781450335492 https://doi.org/10.1145/2837614.2837615 Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Free Software Foundation. 2016. https://elixir.bootlin.com/glibc/glibc-2.34/source/sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S##L36Google ScholarGoogle Scholar
  24. GitHub. 2019. https://github.com/spdk/spdk/commit/7b0579df170f90b2d6b704116dea65739f9442cdGoogle ScholarGoogle Scholar
  25. GitHub. 2021. https://github.com/search?q=MOVNTI&type=CodeGoogle ScholarGoogle Scholar
  26. Vaibhav Gogte, Stephan Diestelhorst, William Wang, Satish Narayanasamy, Peter M. Chen, and Thomas F. Wenisch. 2018. Persistency for Synchronization-free Regions. In Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2018). ACM, New York, NY, USA. 46–61. isbn:978-1-4503-5698-5 https://doi.org/10.1145/3192366.3192367 Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Vaibhav Gogte, William Wang, Stephan Diestelhorst, Peter M. Chen, Satish Narayanasamy, and Thomas F. Wenisch. 2020. Relaxed Persist Ordering Using Strand Persistency. In 2020 ACM/IEEE 47th Annual International Symposium on Computer Architecture (ISCA). 652–665. https://doi.org/10.1109/ISCA45697.2020.00060 Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Intel. 2015. Persistent Memory Programming. http://pmem.io/Google ScholarGoogle Scholar
  29. Intel. 2019. Intel 64 and IA-32 Architectures Software Developer’s Manual (Combined Volumes). This is an old version of the manual that has been since removed from the Intel pages and the referenced document is an internet archive. https://web.archive.org/web/20190525125151/https://software.intel.com/sites/default/files/managed/39/c5/325462-sdm-vol-1-2abcd-3abcd.pdf Order Number: 325462-070US.Google ScholarGoogle Scholar
  30. Intel. 2021. Intel 64 and IA-32 Architectures Software Developer’s Manual (Combined Volumes). https://software.intel.com/content/www/us/en/develop/download/intel-64-and-ia-32-architectures-sdm-combined-volumes-1-2a-2b-2c-2d-3a-3b-3c-3d-and-4.html Order Number: 325462-074US.Google ScholarGoogle Scholar
  31. Abhishek Kumar Jain, Scott Lloyd, and Maya Gokhale. 2018. Microscope on Memory: MPSoC-Enabled Computer Memory System Assessments. In 2018 IEEE 26th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM). 173–180. issn:2576-2621 https://doi.org/10.1109/FCCM.2018.00035 Google ScholarGoogle ScholarCross RefCross Ref
  32. Jan-Oliver Kaiser, Hoang-Hai Dang, Derek Dreyer, Ori Lahav, and Viktor Vafeiadis. 2017. Strong Logic for Weak Memory: Reasoning About Release-Acquire Consistency in Iris. In 31st European Conference on Object-Oriented Programming (ECOOP 2017), Peter Müller (Ed.) (Leibniz International Proceedings in Informatics (LIPIcs), Vol. 74). Schloss Dagstuhl–Leibniz-Zentrum fuer Informatik, Dagstuhl, Germany. 17:1–17:29. isbn:978-3-95977-035-4 issn:1868-8969 https://doi.org/10.4230/LIPIcs.ECOOP.2017.17 Google ScholarGoogle ScholarCross RefCross Ref
  33. Jeehoon Kang, Chung-Kil Hur, Ori Lahav, Viktor Vafeiadis, and Derek Dreyer. 2017. A Promising Semantics for Relaxed-Memory Concurrency. SIGPLAN Not., 52, 1 (2017), Jan., 175–189. issn:0362-1340 https://doi.org/10.1145/3093333.3009850 Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Artem Khyzha and Ori Lahav. 2021. Taming X86-TSO Persistency. Proc. ACM Program. Lang., 5, POPL (2021), Article 47, Jan., 29 pages. https://doi.org/10.1145/3434328 Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Michalis Kokologiannakis, Ilya Kaysin, Azalea Raad, and Viktor Vafeiadis. 2021. PerSeVerE: Persistency Semantics for Verification under Ext4. Proc. ACM Program. Lang., 5, POPL (2021), Article 43, Jan., 29 pages. https://doi.org/10.1145/3434324 Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Michalis Kokologiannakis, Azalea Raad, and Viktor Vafeiadis. 2019. Effective Lock Handling in Stateless Model Checking. Proc. ACM Program. Lang., 3, OOPSLA (2019), Article 173, Oct., 26 pages. issn:2475-1421 https://doi.org/10.1145/3360599 Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Michalis Kokologiannakis, Azalea Raad, and Viktor Vafeiadis. 2019. Model Checking for Weakly Consistent Libraries. In Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2019). ACM, New York, NY, USA. 96–110. isbn:978-1-4503-6712-7 https://doi.org/10.1145/3314221.3314609 Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Michalis Kokologiannakis and Viktor Vafeiadis. 2020. HMC: Model Checking for Hardware Memory Models. In Proceedings of the Twenty-Fifth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS ’20). Association for Computing Machinery, New York, NY, USA. 1157–1171. isbn:9781450371025 https://doi.org/10.1145/3373376.3378480 Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Aasheesh Kolli, Vaibhav Gogte, Ali Saidi, Stephan Diestelhorst, Peter M. Chen, Satish Narayanasamy, and Thomas F. Wenisch. 2017. Language-level Persistency. In Proceedings of the 44th Annual International Symposium on Computer Architecture (ISCA ’17). ACM, New York, NY, USA. 481–493. isbn:978-1-4503-4892-8 https://doi.org/10.1145/3079856.3080229 Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Aasheesh Kolli, Steven Pelley, Ali Saidi, Peter M. Chen, and Thomas F. Wenisch. 2016. High-Performance Transactions for Persistent Memories. SIGPLAN Not., 51, 4 (2016), March, 399–411. issn:0362-1340 https://doi.org/10.1145/2954679.2872381 Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Ori Lahav and Udi Boker. 2020. Decidable verification under a causally consistent shared memory. In PLDI 2020, Alastair F. Donaldson and Emina Torlak (Eds.). ACM, 211–226. https://doi.org/10.1145/3385412.3385966 Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Ori Lahav, Nick Giannarakis, and Viktor Vafeiadis. 2016. Taming Release-Acquire Consistency. SIGPLAN Not., 51, 1 (2016), Jan., 649–662. issn:0362-1340 https://doi.org/10.1145/2914770.2837643 Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Ori Lahav and Viktor Vafeiadis. 2015. Owicki-Gries Reasoning for Weak Memory Models. In Automata, Languages, and Programming, Magnús M. Halldórsson, Kazuo Iwama, Naoki Kobayashi, and Bettina Speckmann (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg. 311–323. isbn:978-3-662-47666-6Google ScholarGoogle Scholar
  44. Ori Lahav, Viktor Vafeiadis, Jeehoon Kang, Chung-Kil Hur, and Derek Dreyer. 2017. Repairing Sequential Consistency in C/C++11. In Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2017). ACM, New York, NY, USA. 618–632. isbn:978-1-4503-4988-8 https://doi.org/10.1145/3062341.3062352 Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. Leslie Lamport. 1979. How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs. IEEE Trans. Computers, 28, 9 (1979), Sept., 690–691. https://doi.org/10.1109/TC.1979.1675439 Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. Sung-Hwan Lee, Minki Cho, Anton Podkopaev, Soham Chakraborty, Chung-Kil Hur, Ori Lahav, and Viktor Vafeiadis. 2020. Promising 2.0: Global Optimizations in Relaxed Memory Concurrency. In Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2020). Association for Computing Machinery, New York, NY, USA. 362–376. isbn:9781450376136 https://doi.org/10.1145/3385412.3386010 Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. LWN. 2007. https://lwn.net/Articles/255364/Google ScholarGoogle Scholar
  48. LWN. 2008. https://lwn.net/Articles/282250/Google ScholarGoogle Scholar
  49. LWN. 2016. https://lwn.net/Articles/698014/Google ScholarGoogle Scholar
  50. Sela Mador-Haim, Luc Maranget, Susmit Sarkar, Kayvan Memarian, Jade Alglave, Scott Owens, Rajeev Alur, Milo M. K. Martin, Peter Sewell, and Derek Williams. 2012. An Axiomatic Memory Model for POWER Multiprocessors. In Computer Aided Verification, P. Madhusudan and Sanjit A. Seshia (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg. 495–512. isbn:978-3-642-31424-7Google ScholarGoogle Scholar
  51. Jeremy Manson, William Pugh, and Sarita V. Adve. 2005. The Java Memory Model. In Proceedings of the 32nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL ’05). Association for Computing Machinery, New York, NY, USA. 378–391. isbn:158113830X https://doi.org/10.1145/1040305.1040336 Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. Evgenii Moiseenko, Anton Podkopaev, Ori Lahav, Orestis Melkonian, and Viktor Vafeiadis. 2020. Reconciling Event Structures with Modern Multiprocessors (Artifact). Dagstuhl Artifacts Series, 6, 2 (2020), 4:1–4:3. issn:2509-8195 https://doi.org/10.4230/DARTS.6.2.4 Google ScholarGoogle ScholarCross RefCross Ref
  53. Kyndylan Nienhuis, Kayvan Memarian, and Peter Sewell. 2016. An Operational Semantics for C/C++11 Concurrency. In Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2016). Association for Computing Machinery, New York, NY, USA. 111–128. isbn:9781450344449 https://doi.org/10.1145/2983990.2983997 Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. Jean Pichon-Pharabod and Peter Sewell. 2016. A Concurrency Semantics for Relaxed Atomics That Permits Optimisation and Avoids Thin-Air Executions. In Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL ’16). Association for Computing Machinery, New York, NY, USA. 622–633. isbn:9781450335492 https://doi.org/10.1145/2837614.2837616 Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. Anton Podkopaev, Ori Lahav, and Viktor Vafeiadis. 2017. Promising Compilation to ARMv8 POP. In 31st European Conference on Object-Oriented Programming (ECOOP 2017), Peter Müller (Ed.) (Leibniz International Proceedings in Informatics (LIPIcs), Vol. 74). Schloss Dagstuhl–Leibniz-Zentrum fuer Informatik, Dagstuhl, Germany. 22:1–22:28. isbn:978-3-95977-035-4 issn:1868-8969 https://doi.org/10.4230/LIPIcs.ECOOP.2017.22 Google ScholarGoogle ScholarCross RefCross Ref
  56. Anton Podkopaev, Ori Lahav, and Viktor Vafeiadis. 2019. Bridging the Gap Between Programming Languages and Hardware Weak Memory Models. Proc. ACM Program. Lang., 3, POPL (2019), Article 69, Jan., 31 pages. issn:2475-1421 https://doi.org/10.1145/3290382 Google ScholarGoogle ScholarDigital LibraryDigital Library
  57. Christopher Pulte, Shaked Flur, Will Deacon, Jon French, Susmit Sarkar, and Peter Sewell. 2018. Simplifying ARM Concurrency: Multicopy-atomic Axiomatic and Operational Models for ARMv8. Proc. ACM Program. Lang., 2, POPL (2018), Article 19, Dec., 29 pages. issn:2475-1421 https://doi.org/10.1145/3158107 Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. Azalea Raad, Ori Lahav, and Viktor Vafeiadis. 2020. Persistent Owicki-Gries Reasoning: A Program Logic for Reasoning about Persistent Programs on Intel-X86. Proc. ACM Program. Lang., 4, OOPSLA (2020), Article 151, Nov., 28 pages. https://doi.org/10.1145/3428219 Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. Azalea Raad, Luc Maranget, and Viktor Vafeiadis. 2022. Technical Appendix. https://www.soundandcomplete.org/papers/POPL2022/NT/appendix.pdfGoogle ScholarGoogle Scholar
  60. Azalea Raad, Luc Maranget, and Viktor Vafeiadis. 2022. X86_64 Memory Type Tests. http://diy.inria.fr/x86-memtype/reproduce.htmlGoogle ScholarGoogle Scholar
  61. Azalea Raad and Viktor Vafeiadis. 2018. Persistence Semantics for Weak Memory: Integrating Epoch Persistency with the TSO Memory Model. Proc. ACM Program. Lang., 2, OOPSLA (2018), Article 137, Oct., 27 pages. issn:2475-1421 https://doi.org/10.1145/3276507 Google ScholarGoogle ScholarDigital LibraryDigital Library
  62. Azalea Raad, John Wickerson, Gil Neiger, and Viktor Vafeiadis. 2020. Persistency Semantics of the Intel-X86 Architecture. Proc. ACM Program. Lang., 4, POPL (2020), Article 11, Dec., 31 pages. https://doi.org/10.1145/3371079 Google ScholarGoogle ScholarDigital LibraryDigital Library
  63. Azalea Raad, John Wickerson, and Viktor Vafeiadis. 2019. Weak Persistency Semantics from the Ground Up: Formalising the Persistency Semantics of ARMv8 and Transactional Models. Proc. ACM Program. Lang., 3, OOPSLA (2019), Article 135, Oct., 27 pages. issn:2475-1421 https://doi.org/10.1145/3360561 Google ScholarGoogle ScholarDigital LibraryDigital Library
  64. Rust. 2021. https://doc.rust-lang.org/core/intrinsics/fn.nontemporal_store.htmlGoogle ScholarGoogle Scholar
  65. Susmit Sarkar, Peter Sewell, Jade Alglave, Luc Maranget, and Derek Williams. 2011. Understanding POWER Multiprocessors. SIGPLAN Not., 46, 6 (2011), June, 175–186. issn:0362-1340 https://doi.org/10.1145/1993316.1993520 Google ScholarGoogle ScholarDigital LibraryDigital Library
  66. Peter Sewell, Susmit Sarkar, Scott Owens, Francesco Zappa Nardelli, and Magnus O. Myreen. 2010. X86-TSO: A Rigorous and Usable Programmer’s Model for x86 Multiprocessors. Commun. ACM, 53, 7 (2010), July, 89–97. issn:0001-0782 https://doi.org/10.1145/1785414.1785443 Google ScholarGoogle ScholarDigital LibraryDigital Library
  67. Dennis Shasha and Marc Snir. 1988. Efficient and correct execution of parallel programs that share memory. ACM Transactions on Programming Languages and Systems (TOPLAS), 10, 2 (1988), 282–312.Google ScholarGoogle ScholarDigital LibraryDigital Library
  68. Hongping Shu, Hongyu Chen, Hao Liu, Youyou Lu, Qingda Hu, and Jiwu Shu. 2018. Empirical Study of Transactional Management for Persistent Memory. 61–66. https://doi.org/10.1109/NVMSA.2018.00015 Google ScholarGoogle ScholarCross RefCross Ref
  69. SPDK. 2021. https://spdk.io/Google ScholarGoogle Scholar
  70. Arash Tavakkol, Aasheesh Kolli, Stanko Novakovic, Kaveh Razavi, Juan Gómez-Luna, Hasan Hassan, Claude Barthels, Yaohua Wang, Mohammad Sadrosadati, Saugata Ghose, Ankit Singla, Pratap Subrahmanyam, and Onur Mutlu. 2018. Enabling Efficient RDMA-based Synchronous Mirroring of Persistent Memory Transactions. CoRR, abs/1810.09360 (2018), arxiv:1810.09360. arxiv:1810.09360Google ScholarGoogle Scholar
  71. Aaron Turon, Viktor Vafeiadis, and Derek Dreyer. 2014. GPS: Navigating Weak Memory with Ghosts, Protocols, and Separation. SIGPLAN Not., 49, 10 (2014), Oct., 691–707. issn:0362-1340 https://doi.org/10.1145/2714064.2660243 Google ScholarGoogle ScholarDigital LibraryDigital Library
  72. Viktor Vafeiadis and Chinmay Narayan. 2013. Relaxed Separation Logic: A Program Logic for C11 Concurrency. In Proceedings of the 2013 ACM SIGPLAN International Conference on Object Oriented Programming Systems Languages and Applications (OOPSLA ’13). Association for Computing Machinery, New York, NY, USA. 867–884. isbn:9781450323741 https://doi.org/10.1145/2509136.2509532 Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Extending Intel-x86 consistency and persistency: formalising the semantics of Intel-x86 memory types and non-temporal stores

          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
          About Cookies On This Site

          We use cookies to ensure that we give you the best experience on our website.

          Learn more

          Got it!