With the widespread availability of cost-effective 32-bitmicroprocessors, applications formerly found only on thedesktop—including applications for accessing theInternet—can now be integrated into a variety of embeddedsystems and appliance-class devices. Examples of such devicesinclude digital set top boxes (STBs), handheld Web tablets,multimedia smart phones, and intranet devices for industry-specificapplication areas, such as point of sale (POS). TheseInternet-enabled devices are referred to as Internetappliances.
Developers are already creating a variety of reference designsfor Internet appliances: everything from roll-your-own OS kernelsrunning on low-cost embedded processors to desktop operatingsystems running on modified PC platforms, complete with MPEGhardware for live video. While these reference platforms point towhere Internet appliances are ultimately going, most Internetconnections (modems, cable companies, etc.) available to theconsumer still lack the infrastructure and network bandwidth todeliver services such as video-on-demand. Nonetheless, Internetappliances can already access several viable information services,including the Web.
Internet services and technologies are evolving with breakneckspeed, with new must haves—such as CCS, XML, 3D plug-ins, andVoIP—appearing almost every month. As a result, products thatcan't track these technologies have little chance to gain afoothold in the market. To keep up with consumer demand, both thehardware and software used in an Internet appliance must bescalable, ideally through customer-applied upgrades. Furthermore,these components must be relatively cheap so that the appliance canbe regularly replaced or exchanged when it inevitably becomesobsolete.
Software consisting of a framework with thesmall QNX Neutrino microkernel managing a group of cooperatingprocesses is ideal. As the following illustration shows, thestructure looks more like a team than a hierarchy, as severalplayers of equal rank interact with each other through thecoordinating kernel.
This technology by architecture is designed to be both extensibleand configurable allowing devices that use it to morph to changingmarket requirements.
Within this turbulent marketplace, product developers are taskedwith creating products that cost little, yet deliver highfunctionality. They also face intense time-to-market pressures. Forexample, consumer appliance manufacturers normally put significanteffort into designing products for manufacturability to minimizeproduction costs. Given the inherently short life cycle of anyappliance that provides Internet access, this cost-reduction phasemust be as brief as possible. Furthermore, the design must be ableto accommodate quick updates without requiring a complete—andexpensive—retooling.
Fortunately, manufacturers don't have to create the technologyneeded to track these rapidly changing functionality requirements.Instead, they can borrow that technology from a readily availablesource: the desktop PC.
With various desktop PC technologies available for integrationinto Internet appliances, other advantages of the PC architecturecome into play. For example, the desktop PC provides what isarguably the richest selection of operating systems, developmenttools, and peripherals for the embedded systems developer. Also,because a PC-derived appliance is architecturally equivalent to thedesktop PC, the PC and PC software become natural prototyping toolsfor the Internet-appliance developer.
And there's another, even more important benefit: With Internetand multimedia technologies initially coming to life on PCs, havingthe Internet appliance architecturally track the desktop makes iteasier to migrate those hardware and software technologies to theInternet appliance.
Thanks to the rapid growth of the embedded x86 industry, anumber of integrated x86 processors are now available, somespecifically targeted at Internet appliances. In fact, severalmodels integrate most or all of the semiconductor content requiredfor an Internet appliance—including MPEG2 video decoder, 2Dgraphics accelerator, NTSC/PAL controller, and Dolby AC3audio—onto a single chip.
Available processors include the AMD ÉlanSC400 andÉlanSC520, the Intel386 EX, the NationalSemiconductor Geode SC1400, and the STMicroelectronics STPCConsumer. Since these processors are specifically targeted at theembedded marketplace, their manufacturers are sometimes morewilling to make them available for the long term—much longerthan for motherboard chip sets targeted at the desktop PC. Betteryet, these processors integrate a variety of peripherals into theCPU, reducing the component count, and cost, of system designs.
Besides these processors, companion chips—some withlong-term availability guarantees—also exist. For example,National Semiconductor provides the CS9210 graphics companion,which enables the Geode information-appliance-on-a-chip to workwith DSTN color flat panel LCDs. And RadiSys provides the R380EXchip that, when combined with the Intel 386 EX, provides asignificant portion of the functionality required to build anembedded PC.
To give manufacturers a jump start, x86 chipmakers also offerevaluation boards and reference designs, including some targeted atthe low-cost requirements of appliance manufacturers. These includethe AMD ÉlanSC400 andÉlanSC520 development platforms, the Intel EXPLR2 evaluation board, theSTPC Consumer rapidprototyping platform, and the National SemiconductorGeode WebPAD, a reference design for wireless handheld Web tablets.Manufacturers can use these platforms “as is” for productevaluation, rapid prototyping, system development, and, in somecases, limited production runs. They can also readily cut and pastefrom these designs to create their own custom hardware.
So far we've discussed the applicability of PC hardware, but thelion's share of an Internet appliance's functionality is expressedthrough software. Fortunately, this software already exists on thedesktop PC. Unfortunately, the operating systems used to host thatsoftware share a prodigious appetite for RAM, disk storage, and CPUcycles. Equipping an Internet appliance with sufficient resourcesto run a desktop OS and GUI, including an Internet browser, wouldpush the hardware complement of the Internet appliance into therange of the desktop PC, missing the consumer price pointentirely.
Since the Internet appliance is a purpose-specific device, not ageneral-purpose PC, it need not carry the software overhead of adesktop OS designed to support generic desktopapplications—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. Withthe greater efficiency and reduced memory/disk requirements of thisOS, hardware costs can be trimmed significantly. For STBapplications, the resulting low unit cost can be buried within themonthly cable-service charge, removing the need for a consumerpurchase in the first place.
Figure 2: At its lowest level, a kernel thatcontains a few fundamental objects and the highly tuned routinesthat manipulate them works best. The QNX Neutrino microkernelpictured above is built from this foundation.
Besides the basic multitasking capabilities needed to run a mixof processes, a QNX-based Internet appliance provides a Webbrowser, media plug-ins, an email program, possibly a news reader,and other applications expected by the consumer, such as a channelguide. To host these applications, and to make the environment easyto use, the appliance needs a GUI. Given the precise timingrequirements for managing the flow of video and audio data in someapplications, it also requires real-time services of the OS.
Conveniently, real-time OSs for embedded applications provideprocessor- and memory-efficient runtime environments suited to thisapplication. Nonetheless, the same need to minimize the engineeringeffort that encourages manufacturers to borrow from PC hardwarestandards should also move them in the direction of software APIstandards. If the API supported by the chosen OS matches the APIused by the applications to be hosted on the appliance, themanufacturer can save significant development effort simply byporting those applications from the PC and other environments.Better still, a standard API enables the manufacturer to closelytrack the rapidly evolving technologies demanded by consumers.
For an example of the efficacy of a standards-based OSenvironment, consider the port of the Spyglass Device Mosaic Webbrowser to the QNX real-time OS. Just one day was required for theX Windows version of Spyglass technology's proof-of-concept port toQNX. Clearly, X is too resource intensive for use in an Internetappliance, so the Spyglass port was adapted to QNX's PhotonmicroGUI windowing system, allowing it to require roughly 1M of ROMor flash. Developing a Web browser from scratch for a proprietaryOS and a minimal graphics library would have required significantlymore development effort—an effort that could arguably neverend in an attempt to track evolving Web-browsing technologies.
To host the variety of graphical applications expected by theconsumer, an Internet appliance requires a windowing system. Aconventional graphics library, while small enough, lacks thefunctionality required to host full-scale applications such as Webbrowsers. On the other hand, a conventional desktop windowingsystem, which provides all the functionality needed, consumes toomany resources to be cost-effective!
There is a way out of this dilemma. We've already seen howmicrokernel technology can help create a rich, yet memory-lean, OSenvironment. It can do the same for a windowing environment. Forexample, QNX's Photon microGUI—which is built around agraphical microkernel—is a scalable windowing system that candeliver the functionality of a high-end GUI in very little memory:less than 1M when configured for an Internet appliance.
To complete the functionality needed to build an Internetappliance, the QNX/Photon runtime environment supports asmall-footprint TCP/IP stack (about 70K) and a filesystem for flashmemory or rotating disk. Both services are added in the form ofprocesses managed by the OS microkernel. The total memoryrequirements for this environment—including OS, windowingsystem, networking, filesystem, Web browser, email, Internet newsreader, and a personal information manager (scheduling, addresslist, etc.)—add up to less than 4M of flash memory and 8M ofRAM.
By borrowing hardware technology from the desktop PC world, andcombining it with a suitable embedded software environment, thedeveloper can readily derive an Internet appliance design. And, ascustomer requirements increase, the developer can incorporateadditional technologies from the ever-evolving PC world with aminimum of redesign. This mix of attributes allows a PC-derivedInternet appliance to achieve the hallmarks of a commerciallysuccessful consumer-electronics product: short time to market, lowengineering cost, minimal risk, and an ability to support thelatest features and technologies expected by consumers.