Overview
The aJile Systems aJ-100 is the first device in a family of single-chip microcontrollers that directly execute Java Virtual Machine (JVM) bytecodes and real-time Java threading primitives to provide efficient,
real-time performance for low-power embedded applications. The native JVM bytecode implementation eliminates the typical interpreter or JIT software layers and provides the most optimal Java performance
in both memory requirements and execution time. In addition, Java threading primitives (wait, yield,notify, monitor enter/exit) are implemented as extended bytecodes eliminating the need for a traditional
RTOS as well. The result is extremely low executive overhead with thread-to-thread context switch times of less than 1 μsec.
The aJ-100 features on-chip memory and all the I/O functions required for use in many real-time networked embedded applications. The powerful combination of direct JVM bytecode execution, direct multithreading support, and fully protected multiple JVM environments is ideal for efficient, safe, and robust execution.
The aJ-100 is ideally suited for Java based Smartphones, PDAs, wireless gadgets, and real-time networked industrial controllers and sensors.
Features:
- 32-bit Direct Execution Java Processor Core
- Native JVM bytecode execution
- Extended bytecodes for memory mapped
peripheral access
- IEEE-754 floating-point arithmetic
- Writeable control store supports custom
application specific instructions
- Native Java language Threading Support
- Hard real-time, multi-threading kernel in
hardware
- Atomic threading operations
- Built-in deterministic scheduling queues
- Directly supports the Real Time Specification
for Java (RTSJ)
- Thread to thread yield in less than 1μsec
- Eliminates traditional RTOS software layer
- Multiple JVM Manager (MJM™)
- Supports multiple independent JVM’s
- Brick wall time and space protection
- External memory protection support
- Internal 48KB RAM
- 32KB dedicated data memory
- 16KB microcode memory
- Memory Controller
- 8-bit, 16-bit or 32-bit interface
- Eight chip selects to support ROM, Flash, SRAM, and peripheral devices
- Dual 16550 compatible UARTs
- 128-byte FIFO on Rx and Tx
- Support IrDA physical layer protocol
- Three 16-bit Timers/Counters
- Flexible count control and counter I/O
- Pulse Width Modulation (PWM)
- Waveform measurement
- Serial Peripheral Interface (SPI)
- Master/Slave operation
- Four external chip selects
- Programmable transfer length
- Five 8-bit General Purpose I/O Ports
- I/O programmable on a per-bit basis
- Flexible interrupt generation
- Phase Locked Loop (PLL) and Power
Management
- Transparent CPU power down when the “run queue” is empty
- Individual peripherals can be deactivated
when not in use
- Global clock disable with external wake-up pin
- IEEE 1149.1 (JTAG) Interface
- Boundary scan
- Low-level debugger interface
- JPDA Java Debugger Interface
- Designed for ultra-low-power operation
- Less than 1mW/MHz power consumption
- Fully static operation up to 100 MHz
- Implemented in 3.3V and 0.25μm CMOS process
- Core operates at 2.5V
- Housed in 176-lead LQFP packages
System Development Support
The aJ-100 processor, bundled with Sun’s J2ME/CLDC or CDC/Foundation Profile runtime system, optimizing application builder, debugging
tools and evaluation board provides a complete solution for implementing real-time networked embedded Java technology enabled applications.
The aJile Java runtime together with the microprogrammed real-time kernel supports the Java threading model without the need for a separate
RTOS. This aJile unique technology significantly reduces memory requirements and lowers system costs. aJile’s Multiple JVM (MJM)
technology enables multiple applications to execute concurrently and independently in a deterministic, timesliced schedule. Each JVM employs
it’s own threading and memory management policies to enable real-time applications to execute concurrently with networked applications
without the threat of GC pauses and other interruptions. The MJM capability takes the Java “sandbox” security model the next level, providing
a mechanism to easily isolate applications and allocated resources. aJile’s solution enables real-time applications to run independently and safely
co-exist with networked applications.
Using commercial IDEs for Java technology, application developers can create standalone real-time Java enabled applications totally in the
Java language with the performance and memory efficiency of systems programmed in C and assembly. Utilizing aJile’s development systems,
application developers can readily explore the features of the aJ-100 and assess the efficiency and performance of a real-time embedded Java
platform. The primary components of the development and runtime environments are summarized as follows:
Optimizing Linker/Application Builder:
- GUI based application build configuration and control tool—JEM Builder
- Utilizes standard JVM class files generated by commercial IDEs for Java technology
- Statically resolves class files and eliminates unused methods and fields
- Performs bytecode optimizations
- Performs method substitutions (method invokes replaced by extended bytecodes)
- Builds boot tables, class initialization code, and assigns interrupt and trap handlers
- Configures JVM's and memory layout
Java technology based Runtime System
- Run-time environment based on a J2ME/CLDC or CDC/Foundation Profile
- Includes networking classes, storage classes, and Java communications API
- Device drivers for integrated peripherals and generic physical device interfacing in Java language
Application Debugging Tools
- Host-target communications via an IEEE 1149 (JTAG) interface
- Host-based full featured bytecode-level debugger—Charade
- Host-based JPDA provided to interface to commercial JPDA compliant source-level debuggers
Download Product Brief (PDF 199KB)
Download Reference Manual (PDF 1.78MB)
Download aJ-100EVB Schematics (PDF 273KB)
|