I have heard rumors that Sun (or some other company) was developing something like a "Java chip" that basically has a processor that uses Java bytecode as it's "assembler". This would obviously make Java execution much faster, but would make upgrading your JVM harder (unless flash ROMS or something were used). Has anyone else heard anything about this (i.e. if it's true, on the way, etc.)? -Nate
Write once, run anywhere, because there's nowhere to hide! - /. A.C.
At the last Tech Days seminar here in Raleigh, there was a presentation about J2ME and Java for embeded devices. They spoke about "KVM" - stands for Kilo VM - a scaled down version of standard JVM that can run in a few kilobytes of memory. Sun is also devloping "device profiles" - some kind of a standardization in categorizing small devices so that KVMs can be implemented for the entire profile instead of individual device types. The idea is a KVM written for one device profile should run on ALL devices belonging to that profile, no matter what type of devices are included. Scaling down obviously makes it faster because it supports only a limited subset of standard features. That's what I think
------------------ Ajith Kallambella M. Sun Certified Programmer for the Java2 Platform.
Open Group Certified Distinguished IT Architect. Open Group Certified Master IT Architect. Sun Certified Architect (SCEA).
And of course, moving away from the concept of a 'general-purpose' computer, and implementing only the functions you need in silicon will eliminate a lot of time consumed on a computer for loading and storing data, as well as a lot of branches that can be cut out as they will no longer lead to valid options. Memory access, disk access....all gone. Marius
Sun was developing a chip called the MicroJava 701 based on their picoJava spec. I'm not sure if it ever shipped. A company called aJile systems (www.aJile.com) has a chip for sale that interprets bytecode in hardware. Peter Haggar ------------------ Senior Software Engineer, IBM author of: Practical Java
There are a number of companies doing embedded Java, i.e. Java on the chip. They range from full Java processors down to picoJava, aka Card Java.
They spoke about "KVM" - stands for Kilo VM - a scaled down version of standard JVM that can run in a few kilobytes of memory. Sun is also devloping "device profiles" - some kind of a standardization in categorizing small devices so that KVMs can be implemented for the entire profile nstead of individual device types. The idea is a KVM written for one device profile should run on ALL devices belonging to that profile, no matter what type of devices are included.
The kVM is really just defines a Java subset, or more accurately, the J2ME configurations and profiles define Java subsets. These ca be implemented either in software or hardware--so the use of a kVM dosn't imply embedded Java. A kVM is jst a JVM. Just as a single JVM only runs one a single chip/OS combo, so will a kVM. I will likely need two different kVMs for my RIM and my Palm. Code written for a particular J2ME profile will, in theory, run on all devices supporting that profile--assuming you don't use OEM APIs, and the GUI works across the screens of all devices. For more information, see the J2ME forum.