JavaMemoryModel: Alpha Memory model doesn't support fast & safe OO languages

From: Bill Pugh (pugh@cs.umd.edu)
Date: Mon Jun 28 1999 - 18:11:26 EDT


 From Alpha AXP Architecture reference manual, 2nd edition, by Richard
Sites and Richard Witek, Section 5.6.2.6, page (1) 5-17 (paraphrased):

The two columns show actions by processor Pi and processor Pj. A R(x,2) action
refers to reading location x and seeing the value 2. A W(y,2) action
refers to writing a 2 into location y. A MB action is a memory
barrier. All memory locations are assumed to start initialized 1.
Names such as [U1] are just names used to refer to actions.

Pi Pj
[U1] W(x,2) [V1] R(y,2)
[U2] MB
[U3] W(y,2) [V2] R(x,1)

There are no conflicts in this sequence. We can infer the following
partial order: V2 <= U1 <= U3 <= V1. There is not conflicting
implication that V1 <= V2.

OK. So that means that the Alpha MM specification doesn't easily
support fast and safe implementations of OO languages on SMP's (even
just limiting ourselves to the object header/vtbl; ignore the issue
of stale object fields for the memory).

Does anyone know about the actual implementations? The specifications
of memory models are often far more aggressive than the current
implementations, to allow future designs headroom.

Maybe we should try to bring some of the more senior architecture
people at Dec into this discussion. This could have serious
implementations for them.

As I mentioned before, I think the Sparc RMO MM is OK. I haven't
found anything yet in the Intel Merced spec that looks like a formal
memory model.

I know the architecture people are very aggressive, and want to avoid
all constraints on their memory model. This issue of stale object
headers may just be the point where the PL people come in and say
"No, you shouldn't do that".

Bill

-------------------------------
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:13 EDT