By Paul N. Leroux
With the widespread availability of cost-effective 32-bit
microprocessors, applications formerly found only on the
desktop—including applications for accessing the
Internet—can now be integrated into a variety of embedded
systems and appliance-class devices. Examples of such devices
include digital set top boxes (STBs), handheld Web tablets,
multimedia smart phones, and intranet devices for industry-specific
application areas, such as point of sale (POS). These
Internet-enabled devices are referred to as Internet
appliances.
Developers are already creating a variety of reference designs
for Internet appliances: everything from roll-your-own OS kernels
running on low-cost embedded processors to desktop operating
systems running on modified PC platforms, complete with MPEG
hardware for live video. While these reference platforms point to
where Internet appliances are ultimately going, most Internet
connections (modems, cable companies, etc.) available to the
consumer still lack the infrastructure and network bandwidth to
deliver services such as video-on-demand. Nonetheless, Internet
appliances can already access several viable information services,
including the Web.
Internet services and technologies are evolving with breakneck
speed, with new must haves—such as CCS, XML, 3D plug-ins, and
VoIP—appearing almost every month. As a result, products that
can't track these technologies have little chance to gain a
foothold in the market. To keep up with consumer demand, both the
hardware and software used in an Internet appliance must be
scalable, ideally through customer-applied upgrades. Furthermore,
these components must be relatively cheap so that the appliance can
be regularly replaced or exchanged when it inevitably becomes
obsolete.
Software consisting of a framework with the
small QNX Neutrino microkernel managing a group of cooperating
processes is ideal. As the following illustration shows, the
structure looks more like a team than a hierarchy, as several
players of equal rank interact with each other through the
coordinating kernel.
This technology by architecture is designed to be both extensible
and configurable allowing devices that use it to morph to changing
market requirements.
|
Within this turbulent marketplace, product developers are tasked
with creating products that cost little, yet deliver high
functionality. They also face intense time-to-market pressures. For
example, consumer appliance manufacturers normally put significant
effort into designing products for manufacturability to minimize
production costs. Given the inherently short life cycle of any
appliance that provides Internet access, this cost-reduction phase
must be as brief as possible. Furthermore, the design must be able
to accommodate quick updates without requiring a complete—and
expensive—retooling.
Fortunately, manufacturers don't have to create the technology
needed to track these rapidly changing functionality requirements.
Instead, they can borrow that technology from a readily available
source: the desktop PC.
Why Use PC-Based Technology?
With various desktop PC technologies available for integration
into Internet appliances, other advantages of the PC architecture
come into play. For example, the desktop PC provides what is
arguably the richest selection of operating systems, development
tools, and peripherals for the embedded systems developer. Also,
because a PC-derived appliance is architecturally equivalent to the
desktop PC, the PC and PC software become natural prototyping tools
for the Internet-appliance developer.
And there's another, even more important benefit: With Internet
and multimedia technologies initially coming to life on PCs, having
the Internet appliance architecturally track the desktop makes it
easier to migrate those hardware and software technologies to the
Internet appliance.
Thanks to the rapid growth of the embedded x86 industry, a
number of integrated x86 processors are now available, some
specifically targeted at Internet appliances. In fact, several
models integrate most or all of the semiconductor content required
for an Internet appliance—including MPEG2 video decoder, 2D
graphics accelerator, NTSC/PAL controller, and Dolby AC3
audio—onto a single chip.
Available processors include the AMD ÉlanSC400 and
ÉlanSC520, the Intel
386 EX, the National
Semiconductor Geode SC1400, and the STMicroelectronics STPC
Consumer. Since these processors are specifically targeted at the
embedded marketplace, their manufacturers are sometimes more
willing to make them available for the long term—much longer
than for motherboard chip sets targeted at the desktop PC. Better
yet, these processors integrate a variety of peripherals into the
CPU, reducing the component count, and cost, of system designs.
Besides these processors, companion chips—some with
long-term availability guarantees—also exist. For example,
National Semiconductor provides the CS9210 graphics companion,
which enables the Geode information-appliance-on-a-chip to work
with DSTN color flat panel LCDs. And RadiSys provides the R380EX
chip that, when combined with the Intel 386 EX, provides a
significant portion of the functionality required to build an
embedded PC.
Off-the-Shelf Hardware Resources
To give manufacturers a jump start, x86 chipmakers also offer
evaluation boards and reference designs, including some targeted at
the low-cost requirements of appliance manufacturers. These include
the AMD ÉlanSC400 and
ÉlanSC520 development platforms, the Intel EXPLR2 evaluation board, the
STPC Consumer rapid
prototyping platform, and the National Semiconductor
Geode WebPAD, a reference design for wireless handheld Web tablets.
Manufacturers can use these platforms "as is" for product
evaluation, rapid prototyping, system development, and, in some
cases, limited production runs. They can also readily cut and paste
from these designs to create their own custom hardware.
What About Software?
So far we've discussed the applicability of PC hardware, but the
lion's share of an Internet appliance's functionality is expressed
through software. Fortunately, this software already exists on the
desktop PC. Unfortunately, the operating systems used to host that
software share a prodigious appetite for RAM, disk storage, and CPU
cycles. Equipping an Internet appliance with sufficient resources
to run a desktop OS and GUI, including an Internet browser, would
push the hardware complement of the Internet appliance into the
range of the desktop PC, missing the consumer price point
entirely.
Since the Internet appliance is a purpose-specific device, not a
general-purpose PC, it need not carry the software overhead of a
desktop OS designed to support generic desktop
applications—such as a resource-intensive windowing system,
binary compatibility with legacy applications, and so on. Instead,
the appliance can run a much smaller, purpose-built OS,
specifically designed to host Internet appliance applications. With
the greater efficiency and reduced memory/disk requirements of this
OS, hardware costs can be trimmed significantly. For STB
applications, the resulting low unit cost can be buried within the
monthly cable-service charge, removing the need for a consumer
purchase in the first place.

Figure 2: At its lowest level, a kernel that
contains a few fundamental objects and the highly tuned routines
that manipulate them works best. The QNX Neutrino microkernel
pictured above is built from this foundation.
Besides the basic multitasking capabilities needed to run a mix
of processes, a QNX-based Internet appliance provides a Web
browser, media plug-ins, an email program, possibly a news reader,
and other applications expected by the consumer, such as a channel
guide. To host these applications, and to make the environment easy
to use, the appliance needs a GUI. Given the precise timing
requirements for managing the flow of video and audio data in some
applications, it also requires real-time services of the OS.
Appliance-Ready Software
Conveniently, real-time OSs for embedded applications provide
processor- and memory-efficient runtime environments suited to this
application. Nonetheless, the same need to minimize the engineering
effort that encourages manufacturers to borrow from PC hardware
standards should also move them in the direction of software API
standards. If the API supported by the chosen OS matches the API
used by the applications to be hosted on the appliance, the
manufacturer can save significant development effort simply by
porting those applications from the PC and other environments.
Better still, a standard API enables the manufacturer to closely
track the rapidly evolving technologies demanded by consumers.
For an example of the efficacy of a standards-based OS
environment, consider the port of the Spyglass Device Mosaic Web
browser to the QNX real-time OS. Just one day was required for the
X Windows version of Spyglass technology's proof-of-concept port to
QNX. Clearly, X is too resource intensive for use in an Internet
appliance, so the Spyglass port was adapted to QNX's Photon
microGUI windowing system, allowing it to require roughly 1M of ROM
or flash. Developing a Web browser from scratch for a proprietary
OS and a minimal graphics library would have required significantly
more development effort—an effort that could arguably never
end in an attempt to track evolving Web-browsing technologies.
Embedded GUI
To host the variety of graphical applications expected by the
consumer, an Internet appliance requires a windowing system. A
conventional graphics library, while small enough, lacks the
functionality required to host full-scale applications such as Web
browsers. On the other hand, a conventional desktop windowing
system, which provides all the functionality needed, consumes too
many resources to be cost-effective!
There is a way out of this dilemma. We've already seen how
microkernel technology can help create a rich, yet memory-lean, OS
environment. It can do the same for a windowing environment. For
example, QNX's Photon microGUI—which is built around a
graphical microkernel—is a scalable windowing system that can
deliver the functionality of a high-end GUI in very little memory:
less than 1M when configured for an Internet appliance.
A 4+8 Configuration
To complete the functionality needed to build an Internet
appliance, the QNX/Photon runtime environment supports a
small-footprint TCP/IP stack (about 70K) and a filesystem for flash
memory or rotating disk. Both services are added in the form of
processes managed by the OS microkernel. The total memory
requirements for this environment—including OS, windowing
system, networking, filesystem, Web browser, email, Internet news
reader, and a personal information manager (scheduling, address
list, etc.)—add up to less than 4M of flash memory and 8M of
RAM.
By borrowing hardware technology from the desktop PC world, and
combining it with a suitable embedded software environment, the
developer can readily derive an Internet appliance design. And, as
customer requirements increase, the developer can incorporate
additional technologies from the ever-evolving PC world with a
minimum of redesign. This mix of attributes allows a PC-derived
Internet appliance to achieve the hallmarks of a commercially
successful consumer-electronics product: short time to market, low
engineering cost, minimal risk, and an ability to support the
latest features and technologies expected by consumers.