Publications

Technical note |A History of Jaca’s Progress to a Field Programmable Gate Array

Abstract

This report documents a literature review of the methods associated with embedding a JVM into a Field Programmable Grid or Gate Array (FPGA). The review demonstrated that there was originally a commercial interest in providing silicon solutions for embedded JVMs, however with the exception of the JavaCard (which is embedded in all credit cards), few actually survived as mainstream products. To fabricate this form of design the developer requires a highly multi- disciplined team, that includes skills in programming, OS design, FPGA development and a signicant experience with very-low level hardware design. This report was written primarily to explore the existing domain by documenting the history, developments and possible future for this form of technology. A description of the basic concept together with more advanced applications have been described as example uses of this technology. Ultimately Defence Science and Technology Group (DST Group) could exploit the reuse and exibility of this approach to interface with legacy systems or exploit their interoperability for Defence.

Executive Summary

As the Java programming language continues to mature, the rhetoric about its effectiveness in the enterprise environment diminishes. Ultimately, this sentiment softens with each new release of its specification. Historically Java was supported through academia and has been adopted by enthusiasts, who willingly engage in open source projects. It has become a language of choice for many large corporations because it is secure, robust, reliable and type safe. Being platform independent, it is especially useful for transactional and network based applications. Given the future of parallel processing and the growing use of intelligent agent teams within complex programs, Java is a natural language of choice. Although languages like Erlang, Closure and Scala are being promoted as the future, Java still has a significant following and is supported by industry, academia and a growing crowd-sourced communities. Even if Scala is chosen in the future, its bytecode can execute on a Java Virtual Machine (JVM).

The work presented in this report provides details of how researchers have adapted the use of a Field Programmable Grid or Gate Array (FPGA) design to embed a Java Virtual Machine as a logical solution in silicon hardware. A literature review shows there was some initial commercial interest in providing silicon solutions. This paper was written primarily to explore the existing domain and document the history, developments and possible future for this form of technology. Existing concepts are discussed and the document delineates how this capability could be used to enable the proliferation of common interfaces that promote seamless interoperability to the wider defence community.

The most recent open source effort in this domain appeared within academia in Europe as the Java Optimized Processor (JOP). To fabricate this design, the developer requires a highly skilled, multi-disciplined team, to overcome design issues at many levels of the com- puting architecture. This starts from the application layer and extend through to middle- ware, Operating Systems (OSs), kernel and even into the physical hardware. Members of the team need specific skills in FPGA and very detailed knowledge of hardware design. This review also outlines the development of the data structures and algorithms used to support running software in silicon using FPGAs. This means executing bytecode on a physical JVM using a hardware solution. Existing methods allow developers to run native processors that directly interpret bytecode without the need for emulation or Just- in-Time (JIT) compilation. A customised array of physical JVM cores designed to inter- operate within silicon is envisaged to reduce design complexity and massively enhance its deterministic performance. Using a services approach for connectivity will also enable the seamless approach to Network Centric Warfare (NCW) on a massive scale at low cost. This concept could be used to rapidly create interfaces to legacy systems, exploit interoperability options that are currently not feasible and even leverage the functionality provided through enterprise applications in the field. This deterministic solution has potential uses in mission critical applications and further investigation is recommended.