Skip to main content

vm on custom hardware

2 replies [Last post]
Joined: 2007-02-07


First of all, is it possible to use/isolate/compile-build etc. only the vm of phone me projects ?

Suppose I have an hardware (like an fpga) that employs/emulates a known cpu (mips, arm etc.). Is it possible to port phone me's -either feature or advanced- vm to that platform without an OS running on it ? (I know another research project @ sun called squawk vm that is designed to be run on bare hardware without an OS, however it is not open source.) If it is possible, the way to extend platform's functionality is to have some native interfaces, right ?

I know pure hardware vms, but is it possible/logical to build an hybrid vm in the sense that only some operations or parts of vm have hardware support. Do you know any project like this ?



Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Joined: 2007-02-24

What we do now is to let the VM and the OS work together which will be look like a whole, this is called Elastos. The component technology what we have developed is CAR, a COM-like component technology. the CAR communicate with VM by JNI automativly, for the CAR has its own metadata and can attached to VM automativly.
The Elastos give us the runnning speed as C/C++ and the easy of develop as JAVA.
In this way, the VM can support every kind of hardware such as MIPS, ARM, for the hardware depended software is supported by the OS, which is still called Elastos.

Joined: 2004-03-04


This is an interesting question.

First, in the phoneME Feature code the VM is seperate and can be built and used seprately from the upper layers (MIDP, etc). In fact, the VM itself is very easy to port and requires only minimal OS support (even a simple executive is enough). And yes, there is support for calling native methods.

Second, when you say "some operations or parts of the vm have hardware support" do you mean your fpga will have hardware support for VM operations such as executing byte codes in hardware? phoneME Feature already has the hooks for the ARM Jazelle processor so runing phoneME with hardware support is an option (however, Jazelle support requires a seperate license from ARM ... this is not part of open source).

I am not currently up-to-date with what's going on in the hardware-accellerated VM space. Maybe someone else can add to this. My general feeling on this topic is that hardware accelleration runs counter to a general trend in the IT industry where general-purpose CPUs are evolving so quickly that it is easier to offload more and more work to the GPU instead of building specialized hardware. Also, the software integration of specialized hardware is non-trivial and incurs overhead. So most efforts for hardware accellerated Java execution have not taken hold as far as I can see.

-- Terrence