Silicomp Research Institute Home Site Map | Job Vacancies | Contacting Us | Groupe Silicomp  
 
Technologies Solutions Services
 
Technologies > Java Compilers

 
The Research Institute has developed compilers and tools that enable the use of compiled Java in embedded systems. Our technologies address the specific needs of the embedded market insofar as they not only aim for performance, but also take into account two key requirements of the embedded world: the ability to burn compiled code into ROM and low RAM footprint.

These technologies are available to VM vendors as an OEM product, or as a royalty free site license for large customers.

TurboJ: Improve the speed of your embedded code by up to x30
Fajita: Efficient compact native code
JCod: Dynamic compilation for networked devices
Further Information

Turbo

 

Turbo is an ahead of time (AOT) bytecode compiler which translates bytecode into native code using C as a vehicle.

By compiling a whole application at once, instead of one class after another, it can make powerful global optimizations which are out of reach of traditional JIT compilers. By using C as a vehicle, it ensures smooth integration within the development process: the generated code can be placed in the device's ROM image with little effort; retargetability to a new processor can be achieved in no time as Turbo uses the processor's C compiler as code generator.

The Turbo profiler is used to detect and select which parts of an application are performance critical and thus need to be compiled.

Turbo has been resold under their own brand by our customer:

  • WindPower TurboJ for Personal JWorks from Wind River Systems and obtained an award at Java One 2000 as Best Embedded Java Product
In the server market, Siemens uses TurboJ as an AOT compiler for Java on their line of mainframes.

The Turbo compiler preserves the original Java/JVM semantics, including its most intimate details such as introspection, serialization, dynamic loading, etc. It is designed to work in mixed mode, where interpreted bytecode and native code cooperate and call each other transparently. Both compilers offload actual compilation from the device.

An integrated profiling tool helps to determine, statically, the classes that are worth compiling.

TurboJ is part of the technology solution offering from Silicomp Research Institute.

Back to Top

Fajita

 

Fajita compiles bytecode methods directly into native code for two families of processor: the ARM family (including StrongARM and Xscale) and Hitachi's SuperH processors. During optimisation, it favours code size over speed, and thus drastically reduces the size of the native code.

Fajita is split into 3 parts: a processor and JVM-independent front-end, a processor-dependent, JVM-independent backend and a processor-independent JVM-dependent installer in order to maximize code reuse for all processors and targeted JVMs.

Fajita can compile full classes before execution, i.e. in AOT mode. The appliance's JVM sees native code only, and can run the application at full speed.

Fajita can also be used in dynamic compilation mode with JCod.

An integrated profiling tool helps to determine, dynamically, the classes that are worth compiling.

As for the Turbo compiler, Fajita preserves the original Java/JVM semantics, including its most intimate details such as introspection, serialization, dynamic loading, etc. It is also designed to work in mixed mode, where interpreted bytecode and native code cooperate and call each other transparently.

Both compilers offload actual compilation from the device.

Back to Top

JCod

 

JCod (Java Compilation on Demand) offers the benefits of bytecode-to-native compilation for networked Java appliances, without paying the footprint of a JIT on the device.

JCod is a small runtime embedded within the VM. It includes a dynamic profiler which silently audits the interpreter loop activity. Whenever JCod determines that a method should be compiled, it sends it to a compilation server on the local network. The compilation server replies by sending the native code back to JCod, which installs it within the VM. The native code will be used from this time on, resulting in a gain in speed only for the part of the application for which it is worthwhile.

The JCod profiling policies are fully configurable through an open API.

Back to Top

 

Further Information

 

 For further information please contact 
Back to Top

 
Home About Contacts Jobs

  1. https://www.sanpedrotrainer.com/
  2. https://www.150yearsofobamacare.com/
  3. https://www.silicomp.com/
  4. https://www.christchurchnj.org/
  5. https://www.concours-en-gares.com/
  6. https://www.nautiinn.com/
  7. https://www.gefassembly.org/
  8. https://www.mobileasiaexpo.com/
  9. https://katiewheelerart.com/
  10. https://www.usrussia.org/
  11. https://reinventlawnyc.com/
  12. https://www.global-commission.org/
  13. https://www.boquim.com/
  14. https://www.marcodezzibardeschi.com/
  15. https://www.talktous.org/
  16. https://ahchala.com/
  17. https://ei-lab.org/
  18. https://sterlingwitt.com/
  1. HOME