Aonix®, the provider of the PERC product line for embedded and real-time Java developers, announced the beginning of implementation efforts to add symmetric multiprocessing (SMP) capability to its flagship product PERC Ultra. Dubbed PERC Ultra SMP, the product will address the added complexities inherent in design, development, and deployment of SMP-targeted applications where the benefits of scalability, portability, and maintainability of Java applications can be fully realized.
Driven by the pressure to deliver system upgrades with higher throughput and functionality, developers in military and telecommunications sectors — where PERC Ultra SMP will see early adoption — expect multiprocessors to provide a solution. Notably, since the Java language was initially designed for a multithreaded programming environment, Java code does not have to be rewritten to take advantage of SMP benefits.
However, to fully exploit the predictable capabilities of PERC Ultra’s patented garbage collection, changes are being made to enable it to efficiently run on multiple processors concurrently. As with PERC Ultra, PERC Ultra SMP garbage collection will be:
- preemptible by higher priority threads
- incremental so that when garbage collection is preempted and resumed, it will resume with the next increment of work rather than restarting itself
- accurate, meaning it guarantees to reclaim all dead memory
- defragmenting through relocation of live objects in order to coalesce discontiguous free segments
- paced so that the memory pool is replenished at a pace consistent with the application’s appetite for new memory allocation
PERC Ultra SMP will fully exploit the capacity of multiple processors to reduce the interference of garbage collection on application threads. As a highly parallel process, the garbage collector will use idle processors to carry out the garbage collection, working in tandem so that one processor can scan stack memory in search of pointers to live objects while another processor relocates previously identified live objects.
With PERC Ultra SMP, all Java threads access the same shared objects. Because of this, objects are free to relocate themselves within memory and threads are able to migrate between processors. To handle this generality, Aonix has developed a special patent-pending synchronization technique that ensures that an application thread on one processor does not attempt to access an object while another process is relocating the desired object as part of the garbage collection process. This performance-optimized solution hinges on the generation of specialized code sequences by the PERC Ultra SMP JIT compiler and on an enhanced real-time garbage collection algorithm.
“We’ve been carefully watching for an escalation of demand for SMP in deeply embedded systems,” noted 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. The embedded real-time industry is beginning to exploit the performance benefits offered by SMP architectures, and we look forward to meeting that need.”
About the PERC Family
PERC Ultra is a virtual machine and toolset expressly created for demanding embedded and real-time systems requiring J2SE[tm] support. PERC Ultra delivers the ease and efficiency of Java[tm] Standard Edition support without sacrificing integrity, performance, or real-time behavior. The currently available version, PERC Ultra 5.1 offers Ahead-of-Time (AOT) and Just-in-Time (JIT) compilation, remote debug support, deterministic garbage collection, standard graphics and extended commercial RTOS support.
PERC Pico, the first development environment geared toward the creation of resource constrained and deeply embedded hard real-time applications and components, is based on the emerging Java Specification Request (JSR-302) for development of hard real-time safety-critical code. PERC Pico allows Java developers to write low-level Java code such as device drivers and interrupt handlers, telecommunications control plane, and signal processing for multimedia. It offers a memory footprint measured in hundreds of kilobytes in comparison to the tens of megabytes required for other Java solutions as well as boasting performance, latency, and determinism comparable to C.
Shipping and Availability
PERC Ultra SMP is scheduled for early adopter delivery in Q3 2008 with general product release expected in Q4 2008. PERC Ultra SMP will initially be available for commercial Linux RTOSs and subsequently released for traditional proprietary RTOSs. PERC development tools are available at no charge in combination with a maintenance contract. Target execution and deployment license pricing starts at $25K based on projected volume. PERC Ultra is also available with special bundling discounts when licensed together with PERC Pico.
Aonix offers mission- and safety-critical solutions primarily to the military and aerospace, telecommunications and transportation industries. Aonix delivers the leading highly reliable, real-time embedded virtual machine solution for running Java[tm] programs deployed today and has the largest number of certified Ada applications at the highest level of criticality. Headquartered in San Diego, CA and Paris, France, Aonix operates sales offices throughout North America and Europe in addition to offering a network of international distributors.
Aonix and PERC are registered trademarks and trademarks of Aonix. Java[tm] and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries.