Pervasive Theory of Memory

For many aspects of memory theoretical treatment already exists, in particular for: simple cache construction, store buffers and store buffer forwarding, cache coherence protocols, out of order access to memory, segmentation and paging, shared memory data structures (e.g. for locks) as well as for memory models of multi-threaded programming languages. It turns out that we have to unite all of these theories into a single theory if we wish to understand why parallel C compiled by an optimizing compiler runs correctly on a contemporary multi core processor. This pervasive theory of memory is outlined here.

[1]  Mark A. Hillebrand,et al.  On the Verification of Memory Management Mechanisms , 2005, CHARME.

[2]  Xavier Leroy,et al.  Formal certification of a compiler back-end or: programming a compiler with a proof assistant , 2006, POPL '06.

[3]  Peter Sewell,et al.  A Better x86 Memory Model: x86-TSO , 2009, TPHOLs.

[4]  Dirk Carsten Leinenbach,et al.  Compiler verification in the context of pervasive system verification , 2008 .

[5]  Christian Jacobi,et al.  Putting it all together – Formal verification of the VAMP , 2006, International Journal on Software Tools for Technology Transfer.

[6]  K. Kavi Cache Memories Cache Memories in Uniprocessors. Reading versus Writing. Improving Performance , 2022 .

[7]  Michel Dubois,et al.  Verification techniques for cache coherence protocols , 1997, CSUR.

[8]  Mark A. Hillebrand,et al.  Formal Verification of Gate-Level Computer Systems , 2009, CSR.

[9]  Sarita V. Adve,et al.  Shared Memory Consistency Models: A Tutorial , 1996, Computer.

[10]  Tom Ridge,et al.  The semantics of x86-CC multiprocessor machine code , 2009, POPL '09.

[11]  George J. Milne,et al.  Correct Hardware Design and Verification Methods , 2003, Lecture Notes in Computer Science.

[12]  Thomas Lengauer,et al.  Strategiekonzept "Molekulare Bioinformatik" , 2008 .

[13]  Wolfram Schulte,et al.  A Practical Verification Methodology for Concurrent Programs , 2009 .

[14]  Jun Sawada,et al.  Results of the Verification of a Complex Pipelined Machine Model , 1999, CHARME.

[15]  P. Stenstrom A survey of cache coherence schemes for multiprocessors , 1990, Computer.

[16]  David Aspinall,et al.  On Validity of Program Transformations in the Java Memory Model , 2008, ECOOP.

[17]  David A. Padua,et al.  A compiler for multiple memory models , 2004, Concurr. Comput. Pract. Exp..

[18]  Norbert Schirmer,et al.  Verification of sequential imperative programs in Isabelle-HOL , 2006 .

[19]  Leslie Lamport,et al.  How to Make a Correct Multiprocess Program Execute Correctly on a Multiprocessor , 1997, IEEE Trans. Computers.

[20]  Wolfgang J. Paul,et al.  Computer architecture - complexity and correctness , 2000 .

[21]  Jan Vitek,et al.  ECOOP 2008 - Object-Oriented Programming, 22nd European Conference, Paphos, Cyprus, July 7-11, 2008, Proceedings , 2008, ECOOP.

[22]  Alan Jay Smith,et al.  A class of compatible cache consistency protocols and their support by the IEEE futurebus , 1986, ISCA '86.

[23]  Alan Bundy,et al.  Constructing Induction Rules for Deductive Synthesis Proofs , 2006, CLASE.

[24]  Frank Wolter,et al.  Monodic fragments of first-order temporal logics: 2000-2001 A.D , 2001, LPAR.

[25]  Daniel Kroening,et al.  Formal verification of pipelined microprocessors , 2001, Ausgezeichnete Informatikdissertationen.

[26]  Elena Petrova,et al.  Pervasive Compiler Verification - From Verified Programs to Verified Systems , 2008, Electron. Notes Theor. Comput. Sci..

[27]  Norbert Schirmer,et al.  A Verification Environment for Sequential Imperative Programs in Isabelle/HOL , 2005, LPAR.

[28]  Gadi Taubenfeld Synchronization Algorithms and Concurrent Programming , 2006 .

[29]  Jaejin Lee,et al.  A compiler for multiple memory models: Research Articles , 2004 .

[30]  Gary J. Nutt,et al.  A unified theory of shared memory consistency , 2002, JACM.