News Archive (1999-2012) | 2013-current at LinuxGizmos | Current Tech News Portal |    About   

Real-time JVM rejiggered for multicore

Jun 10, 2008 — by Eric Brown — from the LinuxDevices Archive — 13 views

Aonix announced a symmetric multi-processing (SMP) version of its Linux-compatible real-time Java virtual machine (JVM) for military and telecommunications applications. PERC Ultra SMP optimizes PERC's garbage collection techniques for complex SMP environments, says Aonix, with an eye toward increased… efficiency and lower interference with application threads.

(Click for larger view of PERC Ultra SMP thread analysis using Concurrent NightTrace)

The Java 5 compliant PERC Ultra is the most widely used real-time virtual machine, claims Aonix. Designed as a toolset for creating embedded and real-time systems requiring J2SE (Java Standard Edition) support, it is commonly found in aerospace, defense, telecommunications, industrial automation, and robotics applications.

The new SMP version aims to increase efficiency when PERC Ultra is deployed on multi-core systems. Because Java provides foundational support for multithreaded programming, Java code does not need to be rewritten to exploit SMP's improved performance, says Aonix. However, the company says it is modifying PERC Ultra's “patented, deterministic garbage collection technology,” with the aim of increasing efficiency on multiple cores, and reducing interference between garbage collection and application threads. Acting as a parallel process, the garbage collector leverages the power of idle processors that are made to work in tandem, with one processing scanning stack memory in search of pointers to live objects, while the other simultaneously relocates previously identified live objects (see diagram below).

PERC Ultra SMP scheduling over multiple cores
(Click to enlarge)

With PERC Ultra SMP, all Java threads access the same shared objects, says Aonix, thereby enabling objects to relocate themselves within memory while freeing threads to migrate seamlessly between processors. To conduct efficient garbage handling in this chaotic environment, Aonix developed a patent-pending synchronization technique that ensures that any given application thread will not try to access an object while another process is relocating the object. The trick is accomplished with PERC Ultra SMP's JIT (just-in-time) compiler, which is said to generate specialized code sequences that work in conjunction with an enhanced real-time garbage collection algorithm.

Like PERC Ultra, the SMP version offers the following garbage collection features, says Aonix:

  • Preemptible by higher priority threads
  • Incremental collection process that resumes with the next work increment after preemption instead of restarting
  • Guaranteed to reclaim all dead memory
  • Coalesces discontiguous free segments by defragmenting through relocation of live objects
  • Memory pool replenished at a pace consistent with application's memory allocation

PERC Ultra architecture
(Click to enlarge)

In April, Aonix announced PERC Ultra 5.1. Version 5.1 added security enhancements, as well as performance improvements that apply when using the software with PERC Pico, Aonix's low-level hard real-time JVM. By optimizing the interface between the two products, the company claims that performance is twice as fast for integrated applications. The release also added support for real-time operating systems (RTOSes), including Wind River Linux, Sysgo's PikeOS, Mentor Graphics' Nucleus, and Green Hills' Integrity. PERC Ultra previously supported Wind River VxWorks, LynuxWorks LynxOS and LynxOS SE, MontaVista Mobilinux, and QNX Neutrino.

Additional PERC Ultra features are said to include:

  • AOT (ahead of time) and JIT compilation, in addition to interpreted execution mode
  • Debugging available regardless of execution mode
  • Remote debug support
  • Standard graphics
  • Support for either software floating point or Vector Floating Point (VFP) hardware in the Freescale i.MX31 processor

Stated Gary Cato, Aonix director of marketing, “Customer demand has expedited Aonix's SMP development plans. With increased market adoption, we are taking our plans to develop SMP functionality in PERC off the drawing board to meet an earlier-than-expected update requirement.”


PERC Ultra SMP is set for an “early adopter” release in the third quarter, with a general release expected in Q4, says Aonix, a Hughes Communications company. It will initially be available for commercial Linux RTOSes before being released for proprietary RTOSs. PERC development tools are free, but must be used in combination with a maintenance contract, starting at $25,000 based on projected volume.

This article was originally published on and has been donated to the open source community by QuinStreet Inc. Please visit for up-to-date news and articles about Linux and open source.

Comments are closed.