Going 64 bit
levi at cold.org
Sat Jan 27 16:30:20 MST 2007
On Jan 27, 2007, at 4:05 PM, Bryan Sant wrote:
> ???, I would think that "high-level" languages would have a major
> advantage in these cases. Porting your language runtime would be a
> beast, but once you've done so, all of the software written in that
> language would be usable and optimized for the target arch. The
> people who are more likely to feel the pain are low-level language
> users. You have to port your compiler and then you have to port a
> large portion of the software written in said language.
The EPIC architecture is a VLIW variant, where each instruction is a
compound of several smaller instructions that get executed in
parallel. A standard superscalar architecture like modern x86 chips
prefetches several instructions in advance and uses complex logic in
the die to figure out how to run them in parallel. VLIW, on the
other hand, requires the compiler to perform that logic and simply
runs the smaller instructions on their corresponding execution units
as the compound instruction is loaded. This leaves a bunch of
complexity out of the CPU die, which leaves more room for extra
execution units or other performance-boosting circuitry.
So, a bytecode-interpreting virtual machine for dynamic languages
would be fairly easy to port, and would probably run fairly well as
long as the compiler that built the virtual machine was smart. The
problem is, the key to efficient execution of dynamic languages is
JIT compilation and optimization based on runtime profiling.
Designing a runtime like that is difficult enough as it is; adding in
the necessity to detect instruction-level parallelism just raises
another barrier to an efficient runtime.
More information about the PLUG