[Mono-list] Intel and the CLR?

Serge serge@wildwestsoftware.com
Tue, 5 Mar 2002 11:39:42 +0200


Some random thoughts:
Java chips are either coprocessors or extensions to existing cores.
Such chips are able to execute some bytecodes (not all), mostly
computational, while bytecodes that has to do with object system are still
interpreted. These chips still run JVM interpreter with interpreter's main
loop replaced with special code that takes advantage of chip's ability to
execute some bytecodes.
These bytecodes are more like extension to existing instruction sets (think
of it as of MMX or Altivec).
So you still need normal OS (the "baggage" ;-) and normal instructions to
deal with the system.
Java accelerator is also IL accelerator because of the similarities between
the two (JITting IL to bytecode).
I can't believe IL will be implemented in silicon - IL stack is typed,
whereas in Java type of the operand is encoded in the instruction itself.
Java bytecode was designed with silicon in mind (no pun), while IL was
designed to act as an intermediate representation for further compilation.

Java chips allocate hardware registers for the top of the stack and local
vars. That's true that higher level optimizations are practically impossible
at this level, but optimizer can be built in JVM (JITting bytecode to
bytecode!).

Indeed such hardware acceleration is important mostly in mobile/embedded
area, where hardware resources are limited. Very often software JITter is
too expensive in such environment.

If those rumors about Intel are true, maybe they are about to incorporate
ARM's Jazelle extension into their XScale or something like that.
Still interesting topic ;-)

Serge