[self-interest] Re: Transmeta

Jecel Assumpcao Jr. jecel at merlintec.com
Thu Jan 20 17:33:29 UTC 2000


Gordon F. Cichon wrote:
> Jerry Bell wrote:
> > How does this 'morphing' stuff Transmeta is doing compare to the
> > dynamic optimization in Self?  What are the implications, if any?
> 
> [....]
> 
> Digital recently presented a system which dynamically recompiles code 
> in software for Alpha processors - I can't remember right now whether 
> it was Alpha code for older architectures, or whether it works for i86 
> as well. Nevertheless, the principle is always the same.

The FX!32 is for executing x86 code on the Alpha, and is indeed essentially the
same thing as the Crusoe technology. DEC also had other tools to translate
whole programs from older machines (VAX, I think) to the Alpha.

> It is just the next logical step to expose the code translation
> mechanisms,
> as translated code chunks get larger and span more than the first level
> cache capacity.

I had suggested this in 1989 when people started complaining that the new Sparc
cpu didn't have many applications compared to the PC. So I proposed that there
could be a Sparc plus a small amount of hardware to enhance dynamic
translation (emulating the flags is the key to high performance).

One difference between Crusoe and Self (this is from looking at their patent,
not from their presentation or web site) is that when they translate a block of
x86 code to a block of VLIW code they have to suppose that this block will run
without exceptions or other interruptions so that they can really optimize
things. If this guess turns out to be wrong, there are serious problems. Their
patent decribes hardware that allows the state of the processor to be rolled
back to the begining of the block when that happens, then instructions can be
interpreted one by one until we reach the exception point to get the correct
result.

Since the Self group got to define the semantics of the bytecodes, they simply
defined that an interrupt can only happen in certain "safe points" (either a
non-inlined message send or the backwards jump at the end of a loop with no
non-inlined sends). So the Self adaptive compilation can get the same results
without strange hardware support.

-- Jecel



More information about the Self-interest mailing list