Frequently Asked Questions about aJile Systems Technology
- How do aJile microprocessors execute JVM bytecodes?
aJile microprocessors are 32-bit stack machines designed to efficiently implement the JVM via direct execution. Therefore, JVM bytecodes form the native base instruction set along with extended bytecodes (see below) for explicit memory access and real-time threading primitives. All JVM bytecodes are microcoded and atomic with the exception of block operations which are interruptible. Executing JVM bytecodes directly eliminates the need for any interpreters or translators thereby providing improved execution performance and smaller memory footprints.
- The JVM instruction set doesn't support explicit memory addressing. How do aJile microprocessors accomplish this for embedded applications?
aJile microprocessors utilize the JVM impdep2 trap mechanism to define additional instructions (i.e. 16-bit extended bytecodes). These additional instructions (e.g., ipeek, ipoke) are represented as methods at the Java source level allowing programmers to use standard Java constructs and tools. During an application build (linking process), each occurrence of the corresponding method invoke bytecode is replaced with the extended bytecode (e.g., replacing invokes to the "ipeek" method with the corresponding extended bytecode).
- How are custom instructions implemented?
aJile microprocessors allocate a portion of the on-board SRAM for custom instruction microcode. Custom instructions are defined via the extend bytecode mechanism as previously described. aJile provides a service to develop custom instruction microcode from a functional specification.
- How do aJile microprocessors support the Java threading model?
aJile microprocessors directly implement real-time Java threading primitives (e.g., java.lang.Thread.yield, java.lang.Object.notify.all) and data structures resulting in extremely fast atomic threading operations (including true Java synchronization), fast interrupt response and deterministic scheduling. The usual resident RTOS is no longer required.
- How are applications developed for aJile microprocessors?
Standard Java class files from applications developed with commercial Java IDEs are statically resolved and compacted (e.g., unused methods and fields are removed) to build executables using optimizing linking tools. In addition to bytecode optimizations, the static linker technology performs several embedded application build functions including generating object initialization sequences, memory and JVM configurations, and interrupt and trap handler assignments.
- How do aJile microprocessors support interrupts?
aJile microprocessors implement vector tables for interrupt handling. (The static linker allows any method to be assigned to a specific interrupt in the interrupt vector table during an application build.) Upon interrupt recognition, the processor automatically suspends the current thread and saves its state. The processor resolves the pending interrupt through the on-chip interrupt controller and invokes the corresponding handler from the interrupt vector table.
- What is the multiple JVM feature?
The multiple JVM feature allows multiple independent Java applications to execute in a deterministic, time-sliced schedule with full memory protection. Within its bounded execution interval and memory space, each JVM environment can employ its own multi-threading and memory utilization policies without threat of intervention by faulty or malicious applications.
- How do aJile microprocessors perform garbage collection (GC)?
aJile provides 3 separate GC algorithms (mark & sweep, generational, and train) which will be configurable during application builds (linking process). It is also possible to build applications without GC (i.e. never deallocate memory). Utilizing the multiple JVM feature, each application can select the GC algorithm that best suits its execution profile without interfering with other applications.
- What is the runtime system for aJile microprocessors?
aJile's realtime Java runtime systems are built upon Java ME CLDC 1.1 and CDC 1.1 foundation profile. The runtime systems include drivers for on-chip peripherals and various external peripherals including various RS232 / RS485 controllers, ethernet controllers, USB controllers, LCD controllers, touch screen controllers, audio codecs, RTCs, MMC controllers, and CF controllers.
- What is the operating system for aJile microprocessors?
aJile processors have a microprogrammed real-time kernel that is internal to the processor. The microprogrammed kernel performs the traditional operating system functions (scheduling, context switching, interrupt preprocessing, error preprocessing, object synchronization). Java threads are native threads on the aJile processor. In addition, extended bytecodes are used to implement Java threading primitives such as sleep, wait, notify, notifyall, yield, monitor enter, monitor exit, and interrupt to provide extremely fast and atomic (non-interruptible) executive operations. These primitives are incorporated in the aJile Java runtime system such that the traditional operating system layer is not required.
Frequently Asked Questions about the JNIB (Java Network Interface Box) product
- What is the feature set of JNIB?
- aJ-100 Processor
- 16 MB PSRAM with battery backup
- 16 MB NAND Flash
- 10/100 base-T Ethernet port
- Dual serial channels supporting either RS-232 or RS-485 operation
- USB 2.0 host port
- Dual Compact Flash type-II card slots
- Expansion bus
- Slave interface
- 16-bit data bus
- 8-bit GPIO port
- SPI and I2C
- Power and ground
- Real-time clock with battery backup
- Status LEDs
- Alphanumeric LCD display with 16x2 character layout
- (8) User defineable push buttons
- (10) Configuration switches for boot source selection and serial channel mode selection
- Audible Buzzer
- What the power requirement of JNIB?
The JNIB is shipped with a 5VDC/2A power transformer. The JNIB power requirements vary depending on the use of the LCD display back light and the power draw from USB peripherals.
- What are the physical dimensions of the JNIB?
130mm (w) x 135mm (d) x 32mm (h)
- What regulatory agency approvals does the JNIB have?
Emmissions and Immunity
- FCC part B
- US 60950
- IEC 60950-1
- What is the main difference between JNIB and JNIB_L?
have the LCD display and does not
have the keypad/LED daughter board. It uses a lightpipe to show the LEDs on the main board. Otherwise it is identical to the JNIB