de-Virtualized Machine Interface

The de-virtualized Machines (de-VM), That is an experimental FPGA synthesized implementation of a Virtual Machine, needs to work as a co-processor or an accelerator to the main system.

For example, within an Android smart-phone, a synthesized (as Hard IP core) Dalvik Machine will appear as a co-processor. The Java applications would run on it, but for I/O and other OS related services it will transfer control to the main application processor like ARM Cortex-A8 processor running the kernel code.

The main and the co-processor should be as tightly coupled as possible for maximizing performance, however, if there is a design constraint then the co-processor can be loosely coupled.

Tightly Coupled

The best performance can be achieved when the main processor and the co-processor are part of the same system-on-chip, or in case of Intel FPGA strategy can be on separate sockets connected via Front Side Bus (FSB).

The options in the order of performance are:

Hybrid Cores: The main and co-processor are connected through the cache-crossbar switch.

Wishbone: The co-processor connects through Open Cores Wishbone protocol