[Introduction: I am Sanjay Ghemawat. I am a researcher at
Compaq's Systems Research Center. I am currently working on
an implementation of a JVM, as well as an optimizing compiler
for Java -- a joint project with Keith Randall, Dan Scales,
Raymie Stata, and Mark Vandevoorde.]
pugh@cs.umd.edu said:
> If we assume that this reordering might happen due to stale cache
> lines, rather than value prediction, here is a solution. In the
> nursery, always allocate objects starting at the beginning of a new
> cache line.
> That way, no other processor will have cached the memory that another
> processor allocates an object in. This will handle both the
> implementation issues (making sure virtual method dispatch doesn't
> crash the machine) and provide initialization safety.
This ignores possible prefetching of uninitialized lines into
caches. Such prefetching may be caused either by hardware that
is trying to guess program access patterns [1,2], or by loads issued
due to speculative execution of instructions by an out-of-order
processor.
[1] Alan J. Smith. Cache memories. Computing Surveys, Sep 1982.
[2] Norm Jouppi. Improving direct-mapped cache performance by the
addition of a small fully-associative cache and prefetch
buffers. ISCA 1990.
-------------------------------
This is the JavaMemoryModel mailing list, managed by Majordomo 1.94.4.
To send a message to the list, email JavaMemoryModel@cs.umd.edu
To send a request to the list, email majordomo@cs.umd.edu and put
your request in the body of the message (use the request "help" for help).
For more information, visit http://www.cs.umd.edu/~pugh/java/memoryModel
This archive was generated by hypermail 2b29 : Thu Oct 13 2005 - 07:00:14 EDT