New system-on-chip runs native Java … plus Linux
Jun 8, 2000 — by Rick Lehrbaum — from the LinuxDevices Archive — 1 viewsImsys (Sweden) used the occasion of JavaOne 2000 in San Francisco to unveil an unusual new system-on-chip microprocessor that supports native on-chip Java bytecode execution — but also runs embedded Linux. The device, called the Cjip, achieves a high degree of on-chip functionality via an unusual approach: dynamically alterable microcode.
What's inside? Actually, it's difficult to say exactly what's in the device. That's because, unlike “normal” processors, its CPU employs semi-soft, rather than fixed, microcode. According to Imsys, two-thirds of the Cjip's microcode is fixed, while the remaining third is loaded on startup from an external ROM or Flash device. As a result, the instruction set is reconfigurable to match the requirements of a given application. Cjip has exploited that inherent flexibility by developing libraries of virtual peripherals, which Imsys calls “Veripherals”. Discounting, for the moment, the theoretically infinite variety of programmable peripherals that this capability provides, the device's fixed specifications include:
- 165 MIPS CPU with CISC type instruction set
- 267 megabits/sec I/O capacity
- IEEE 754 floating point math
- 4 channel DMA controller with 2KB DMA buffer
- Interrupt logic
- DRAM interface for 128 MB memory
- Real time clock
- 40 general purpose programmable I/O lines
- packaged in 144-pin TQFP
- 165 mW maximum power consumption
- Timers, watchdog functions
- Color/mono LCD display controller (320 x 240, 640 x 480)
- Keyboard and touch-panel controllers
- Sound generators
- UART, I2C bus, IEEE-1284 interfaces
- Multimedia interfaces, image compression/decompression
- TCP/IP
Why did Imsys use this unique approach, rather than a more common MIPS or ARM based system-on-chip architecture? Imsys president Stefan Blixt sums it up in five words: “low cost, and low power.” Translating that into specifics: the device is $19 in quantities 0f 10,000, and consumes less than two tenths of a Watt of power. Yet, it can implement nearly every function required in a small post-PC system, with the exception of memory and Ethernet.
From the software perspective, the Cjip can be equipped with native bytecode execution of Java compliant with Sun's J2ME specification, including garbage collection, thread scheduling, and TCP/IP. This represents a significant additional cost savings if a Java runtime environment is required, since it eliminates the usual JVM royalties. How well does this work? Imsys claims that in benchmarks on a Java Bubble-sort, the Cjip performed five times as fast as a 120 MHz 486 processor.
The other supported software alternative is Linux. Since the Cjip supports multiple dynamically switchable instruction sets, it can be optimized for C or C++ based applications, in addition to Java. Based on this capability, Imsys has created an embedded Linux port, which is also freely available to support system designs based on the Cjip.
For development, Imsys has created an Integrated Development Environment which is used for system development and debugging. Imsys offers a development board for the Cjip that contains the processor, RAM, Flash memory, and an Ethernet controller and is implemented on a PCI bus card that plugs into a PC which is used as the development system environment.
In case all this sounds too good to be true, remember one thing: this is not some plug-and-play “embedded PC”. This unique, highly programmable and flexible device can be extremely efficient from a cost, board space, and power consumption perspective — but it's definitely not an architecture for the faint hearted.
Do you have comments or questions on this article? Talkback here
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.