4 ms·
AVR32 with JEM does this to some extent for Java. http://ww1.microchip.com/downloads/en/devicedoc/doc32000.pdf http://ww1.microchip.com/downloads/en/devicedoc/
by sebcat 7y ago
AVR32 with JEM does this to some extent for Java.
http://ww1.microchip.com/downloads/en/devicedoc/doc32000.pdf http://ww1.microchip.com/downloads/en/devicedoc/doc32000.pdf
3. Java Extension Module
The AVR32 architecture can optionally support execution of Java bytecodes by including a JavaExtension Module (JEM).
This support is included with minimal hardware overhead.
EDIT: Not by implementing the ISA verbatim, but still neat though
- saagarjha 7y agoARM tried to do this with Jazelle, but the effort floundered: https://en.wikipedia.org/wiki/Jazelle https://en.wikipedia.org/wiki/Jazelle
- MaxBarraclough 7y agoIt doesn't make much sense to build hardware to run an intermediate language. Java bytecode isn't optimised; almost all optimisation is meant to happen in the JIT. If you build a processor that runs bytecode directly, when does the optimisation occur? Presumably never. Low-horsepower platforms are probably the best place to give it a go, as they may struggle to run a respectable JIT compiler, but as you say, Jazelle didn't catch on.
- naasking 7y agoThe hardware would perform the optimisation using typical means. Instruction lookahead can be used for caching the stack slots to be used in registers, for instance.
- MaxBarraclough 7y ago> The hardware would perform the optimisation using typical means. The HotSpot JIT is an impressive feat of compiler engineering. The advanced optimisations it performs cannot practically be performed in hardware. Modern CPUs are capable of, for instance, loop-detection, but they haven't put optimising compilers out of a job, and never will. Jazelle would add no value on a modern ARM server, for instance. You'd get far better performance out of HotSpot, or some other modern JVM.