By Mike Corder, CEO, jCan Corporation
With microprocessor-based systems having been in development for some
25 years, development methodologies and tools should have reached a
point of stability.
However, we are seeing situations where projects are late, over
budget, and often unacceptably bug-ridden. The past may explain the
present, and may provide an indicator of how we can bring reality to
our vision. It also indicates why the Sun Community Source License
(CSL) approach may hold great promise for the future.
In the early days of the microprocessor, I led the team that
developed many of the tools for the MOS/Technology (later Synertek
and Rockwell) 6502. When the 6502 was introduced in 1975, the
computing world was ruled by mainframes.
The mainframe was always in a glass enclosed room with a raised
floor, and was surrounded by numerous caretakers. Computer time was a
precious commodity accounted for down to the second. The operating
system was usually programmed in a high level language, and as
mainframes were huge machines, with memory and problems of a
corresponding size, development teams were necessarily large. Tools
were carefully considered, and much time was spent in planning an
approach to the development project. The best teams spent a
significant amount of time planning, working in a top-down fashion,
with design completed before coding (except for algorithm testing)
was started. Schedules were invariably long. It took the
ground-breaking Mythical Man Month, by Fred Brooks (Addison-Wesley
Publishing Co., 1975) to reveal what was happening.
By comparison, the microprocessor world could be described as
anarchic. Early micros were often used to replace discrete logic, or
to do simple tasks that had never been done before. Chips had limited
compute power and memory.
The first 6502 was fabricated with 8 micron technology, ran at one
megahertz and had a maximum memory of 64k. Teams usually comprised
just a few people, and everyone programmed in assembler. Tools were
primitive, and there were no building blocks. If you needed a file
system or operating system, you invariably had to write your own, and
if code could be reused on the next project, it was a pleasant
surprise.
Today, the typical microprocessor being designed into a new project
is probably 32-bit running at 200 megahertz. Memory size of many
megabytes is common. The project team of eight or more people are
trying to solve problems that are often complicated and
multithreaded. We now have what is, effectively, a mainframe on a
chip. However, instead of treating the issue with the level of
respect accorded our earlier glass enclosed marvel, we still approach
the problem as if we were dealing with an eight-bit microprocessor.
People roll their own operating system, tackle development with
inadequate design methodology, and start coding before the design
process is completed. Despite the fact that today's tools are
significantly better, one of the major problems is that we've let the
physical size of the chips blind us to the fact that we are
attempting to solve mainframe-class problems. If we considered the
demands of early mainframe environments, we would change our approach
to today's challenges.
At jCan we are excited about the prospects for Java
technology-on-silicon, such as the picoJava chip. The Java
programming language is the best tool currently available for the
design of complicated systems. Object-oriented design can greatly
improve the reliability of systems and increase the likelihood of
reusing code on the next system. Implementing the byte codes in
silicon eliminates performance concerns of interpreters. Basing your
next hardware design on picoJava technology and programming in the
Java language greatly increases marketplace success. Furthermore,
currently designers of embedded systems can spend months selecting
the correct CPU, RTOS, hardware configuration, debug tools, etc. A
feature-rich system component that handles all the details of a Java
technology-based system enables a focus on designing and coding
software to solve problems. Such a system, including both hardware
and software, would be based on the picoJava core and include all the
components common to typical embedded systems (a Java Can). If the
system also provided support for a serial datapump, it may be the
ideal platform for implementing Jini connection technology-based
devices (a Jini Can).
Until now, a barrier to building such an integrated system has been
in accessing the picoJava core in a form that allows it to be
integrated with other silicon-based Intellectual Property in a
package priced for the embedded marketplace. Fortunately, Sun
Microsystems has introduced the Sun Community Source Licensing (CSL)
program, which means that an innovative small company has the
opportunity to march to success on the broad shoulders of the
picoJava core.