The SPARC architecture manual (version 9)
The SPARC architecture manual (version 9)
The PowerPC architecture: a specification for a new family of RISC processors
The PowerPC architecture: a specification for a new family of RISC processors
Alpha AXP architecture reference manual (2nd ed.)
Alpha AXP architecture reference manual (2nd ed.)
Memory consistency models for shared-memory multiprocessors
Memory consistency models for shared-memory multiprocessors
Commit-reconcile & fences (CRF): a new memory model for architects and compiler writers
ISCA '99 Proceedings of the 26th annual international symposium on Computer architecture
JAVA '99 Proceedings of the ACM 1999 conference on Java Grande
Concurrent programming in ML
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Compositional pointer and escape analysis for Java programs
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Java Virtual Machine Specification
Java Virtual Machine Specification
The Java Language Specification
The Java Language Specification
Dag-Consistent Distributed Shared Memory
IPPS '96 Proceedings of the 10th International Parallel Processing Symposium
A Multithreaded Substrate and Compilation Model for the Implicity Parallel Language pH
LCPC '96 Proceedings of the 9th International Workshop on Languages and Compilers for Parallel Computing
Design and verification of adaptive cache coherence protocols
Design and verification of adaptive cache coherence protocols
Core semantics of multithreaded Java
Proceedings of the 2001 joint ACM-ISCOPE conference on Java Grande
Formalizing the safety of Java, the Java virtual machine, and Java card
ACM Computing Surveys (CSUR)
Specifying multithreaded Java semantics for program verification
Proceedings of the 24th International Conference on Software Engineering
Specifying Java thread semantics using a uniform memory model
JGI '02 Proceedings of the 2002 joint ACM-ISCOPE conference on Java Grande
Programming dynamically reconfigurable open systems with SALSA
ACM SIGPLAN Notices
The Optimistic Readers Transformation
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Formal Reasoning about Hardware and Software Memory Models
ICFEM '02 Proceedings of the 4th International Conference on Formal Engineering Methods: Formal Methods and Software Engineering
Analysis of Multithreaded Programs
SAS '01 Proceedings of the 8th International Symposium on Static Analysis
Impact of Java Memory Model on Out-of-Order Multiprocessors
Proceedings of the 13th International Conference on Parallel Architectures and Compilation Techniques
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Memory Model = Instruction Reordering + Store Atomicity
Proceedings of the 33rd annual international symposium on Computer Architecture
What do high-level memory models mean for transactions?
Proceedings of the 2006 workshop on Memory system performance and correctness
Tribe: a simple virtual class calculus
Proceedings of the 6th international conference on Aspect-oriented software development
On Validity of Program Transformations in the Java Memory Model
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
A unified formal specification and analysis of the new java memory models
ASM'03 Proceedings of the abstract state machines 10th international conference on Advances in theory and practice
Formalising java's data race free guarantee
TPHOLs'07 Proceedings of the 20th international conference on Theorem proving in higher order logics
MemSAT: checking axiomatic specifications of memory models
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
Concurrent constraint-based memory machines: a framework for java memory models (summary)
ASIAN'04 Proceedings of the 9th Asian Computing Science conference on Advances in Computer Science: dedicated to Jean-Louis Lassez on the Occasion of His 5th Cycle Birthday
Hi-index | 0.00 |
This paper describes alternative memory semantics for Java programs using an enriched version of the Commit/Reconcile/Fence (CRF) memory model [16]. It outlines a set of reasonable practices for safe multithreaded programming in Java. Our semantics allow a number of optimizations such as load reordering that are currently prohibited. Simple thread-local algebraic rules express the effects of optimizations at the source or bytecode level. The rules focus on reordering source-level operations; they yield a simple dependency analysis algorithm for Java. An instruction-by-instruction translation of Java memory operations into CRF operations captures thread interactions precisely. The fine-grained synchronization of CRF means the algebraic rules are easily derived from the translation. CRF can be mapped directly to a modern architecture, and is thus a suitable target for optimizing memory coherence during code generation.