Design Feature: June 22, 1995
System designers use x86 processors in an endless variety of applications, including industrial controllers, robotics, network controllers (bridgers and routers), handheld inventory devices, hard-disk controllers, security systems, in-flight-phone and -entertainment systems, and even ice-cream dispensers. System designers have long understood the benefits of PC compatibility in an embedded system; however, there are now many complex issues involved in selecting an x86 CPU.
No other computer architecture has evolved as wide an assortment of assemblers, compilers, debuggers, simulators, operating systems (OSs), and applications as has the x86. Some companies even have products that do not require PC compatibility but still use an x86 processor to maintain OS and application-software homogeneity across product lines. An x86 processor leverages the competitive pricing of the desktop PC market, a benefit equally as important as compatibility. On the other hand, system designers are finding it difficult to keep pace with the desktop PC market, making your CPU choice critical to the longevity of your product.
Engineers often refer to an x86-based application as an embedded PC, even if it only remotely resembles a PC. But, an embedded PC is really a feature, or a component, of an application-not a market segment. From a functional standpoint, an embedded PC provides standardized mechanisms for inputting and displaying data as well as the ability to provide hardware and software flexibility. Most important, by treating an embedded PC as a component, you stay focused on your product's value-added software or hardware elements.
This last point begs the question of whether you should build or buy your product's embedded-PC component. Beginning with the introduction of the 386, the CPU market evolved rapidly. At that point, many OEMs began buying embedded PCs instead of redesigning with a new CPU or chip set every six to 18 months. This trend has continued, suggesting that an increasing number of embedded-system developers are opting not to reinvent the wheel. Furthermore, by purchasing the embedded PC for your system, you won't have to worry about understanding the hardware idiosyncrasies and compatibility issues of standard desktop PCs.
On the other hand, if you build your own embedded PC, you have the opportunity to choose the exact peripheral functions needed. An off-the-shelf single-board computer (SBC) may contain more features than your design requires. (It may still be less expensive by the time you add in design and manufacturing costs.) For example, to offer a compromise, Dovatron International manufactures modular SBCs that plug into a card cage. You can add features by plugging in additional modules such as VGA, PCMCIA, Ethernet, SCSI, etc. Alternatively, Radisys Corp offers PC-compatible boards but specializes in providing custom solutions to allow you to add (or remove) special features.
Before embedding a PC into your product, you have to interpret different degrees of PC compatibility. Some designers maintain that if the embedded PC runs x86 code, it's PC compatible. Others stretch it a little further, saying that, as long as it runs "well-behaved" DOS and Windows applications, it's PC compatible. Still other designers say that, to be PC compatible, the embedded PC must support the complete PC-AT specification, including all ISA bus signals. The processor (and core-logic chip set) you choose determines how PC compatible your embedded PC can be.
The definition boils down to determining what features you really need to support: a monitor, a keyboard, a floppy or hard disk? What about ISA bus add-in cards? All of these are basic PC features. How about adding nonstandard features (common in embedded PCs) such as solid-state disks or extra RS-232C ports? Again, the processor you choose affects how easily you can accommodate these features.
One of the first steps you must take in selecting an x86 processor is determining the processing power your application requires. You can find non-x86 processors that deliver higher performance than any x86 processor, but x86 processors have a guaranteed upgrade path (due to the desktop PC market) and double their performance every 18 months. And, even though 186s and 286s may provide ample performance for many applications, the trend appears to be following the rapid pace of desktop PCs, where 486s represent the performance entry point. This trend is carrying over to the embedded market (typically lagging by a minimum of two years): 386s, 486s, and Pentiums are becoming increasingly popular for performance-demanding functions such as enhanced graphical user interfaces.
If your application needs performance at the upper-most end of the x86 spectrum, the choices are simple. You can select from 586-class processors that include Intel's Pentium, AMD's K5, Cyrix's M1, or maybe even Nexgen's 586. When combined with the supporting core-logic chip set, these CPUs allow you to build any degree of PC compatibility. The Pentium, K5, and M1 share the same pinout, theoretically making it possible for the chip sets (available from a multitude of vendors) to work with any of these CPUs. Because 586-class CPUs are at the leading edge of performance, you are almost guaranteed product availability for several years. However, the same guarantee may not be the case with chip sets that seem to change every six months. The unique pinout of Nexgen's 586 amplifies the instability of chip-set support; as a result, it may be even more difficult to maintain an embedded-PC design.
Although the choices are simple for the 586-class CPUs (because there aren't many), it's the system layout that presents a challenge. This situation is especially true if you're designing a small form-factor board, as is typically the case for embedded PCs. Ziatech Corp's STD32-bus-based ZT 8905 SBC exemplifies this situation (Fig 1). This Pentium computer board is made 100% PC-AT compatible by using Acer Labs Inc's (ALI's) Aladdin PCI M1511/M1513 core-logic chip set ($22 each). Ziatech chose the Aladdin because the implementation only requires two devices, which is essential for squeezing an entire Pentium computer on a 4.5x6.5-in. board. However, in order to get away with only two devices, ALI's 1461 DRAM controller doesn't include on-chip drivers. Thus, the multiplexed address and data buses for the DRAM interface require external drivers (245s). The additional cost for the drivers is sometimes a problem for penny-pinching desktop PCs. Designers at Ziatech benefited from ALI's chip set by putting the drivers on the back side of the board using 17 TSOPs.
The 486-class CPUs offer many more options for building an embedded PC when compared with 586-class CPUs. Different versions of the 486 are manufactured by a long list of companies, including Intel, AMD, Cyrix, Texas Instruments, IBM Microelectronics, and SGS-Thomson. Amazingly, the 486 has become a commodity product, but this helps to ensure its longevity, and it continues to drive down prices.
The 486-class CPUs consist of 16- and 32-bit versions. The 32-bit versions include the SX (with no floating-point unit), DX2, and DX4 processors. The 486 CPUs, such as the 486SLC from Cyrix and TI, have a 16-bit bus interface that allows you to drop it into a 386SX socket. The 32-bit versions have the widest range of support from CPU and chip-set vendors. Incidentally, Intel and AMD are supporting 486s as embedded processors, indicating a commitment to product longevity and the enlistment of chip-set vendors such as PicoPower, ACC Micro, and Intel. AMD's 486SE, identical to a 486SX, is an embedded CPU (from a company-support standpoint). PicoPower's Pine core-logic chip set ($22) supports all 32-bit CPUs (386s and 486s), making it easier for the company to leverage manufacturing efforts. Also, because Pine supports both 386 and 486 CPUs, it minimizes your efforts for redesigning the hardware and BIOS when upgrading.
When it's actually time to make a selection, embedded-PC designers find that the 386 class generates the most confusion. The 386 has virtually left the desktop PC. Devices such as the 386SX and 386DX are supported almost exclusively as embedded products. As a result, chip-set support has all but disappeared, with only a few vendors-Chips and Technologies, ALI, and PicoPower-still actively supporting these CPUs.
Similar to the SE device in the 486 category are the 386SE and 386DE, which AMD markets for embedded applications. The SE and DE, however, differ a bit from their SX and DX counterparts. Specifically, the SE and DE have had their paging units removed to help reduce cost. The 386SE ($10.50) and 386DE ($12) each cost about $0.25 less than their 386SX and 386DX counterparts, respectively. But, without the paging unit, you give up the ability to run Windows. Chips and Technologies' CS4031EM Chipset ($15.65) and the 82C836EM "SCATsx" system logic chip sets support SE and DE devices (as well as SX and DX devices). The company has agreed to support these chip sets for at least four years.
About a year and a half ago, Intel introduced a 386 specifically targeted at embedded PCs. This device, the 386EX, contains a 386 static core surrounded by a set of almost-PC-compatible peripherals that include DMA and interrupt controllers, serial ports, a parallel port (not EPP compatible), watchdog timer, timer control unit, and refresh unit. These peripherals lessen your dependency on a potentially volatile chip set. Additional benefits of using a highly integrated CPU include higher system reliability, better power management, and smaller board space. The 386EX carries a price tag of $24, which is reasonable if you consider the range of peripherals on this device. But, before you buy a 386EX-based SBC or begin developing with the EX, decide on the degree of PC compatibility your product requires.
The 386EX includes dual 8259A-compatible interrupt controllers (PC compatible). Pin-count limitations forced Intel not to connect IRQ10, IRQ11, and IRQ15 to external pins. Although these IRQs are unassigned ISA bus interrupts, they are required for ISA bus compatibility. You may decide on a partial ISA bus implementation using add-in cards that do not require these interrupts. Or, more than likely, your embedded PC doesn't support add-in cards anyway.
A partial solution to the interrupt-pin shortage is to utilize some of the other available interrupts. For example, if you aren't using a numeric coprocessor, you can reassign IRQ13, which normally is used by the coprocessor for signaling an error. Likewise, a system without a hard drive can reassign IRQ14. However, reassigning IRQs may not solve this problem because ISA add-in card's hardware may not allow the IRQs to be steered to these interrupt lines.
PC-AT compatibles have eight DMA channels; the 386EX has only two. Specifically, the EX supports DMA channels 0 and 1. On PC-AT compatibles, channels 0 and 1 are assigned to memory refresh and serial communications, respectively. Floppy disks use channel 3.
You have several choices for getting around the lack of floppy-disk support on the 386EX. The simplest solution is not to use a floppy disk, which generally isn't an issue on embedded PCs. New applications or data can be downloaded to the embedded PC using a serial or parallel connection. The 386EX has a separate refresh control unit, freeing DMA channel 0 for reassignment to a floppy disk. Alternatively, your embedded PC's BIOS can be rewritten to accommodate the redirection. As long as programs don't try to circumvent the BIOS and go directly to hardware, no problems will occur. Watch out for Windows, however, which may cheat and go directly to the floppy-disk hardware. (Windows 95 allows you to direct floppy services through the BIOS.) Embedded applications that use a floppy disk use them primarily through DOS for loading new programs into the system (which always goes through the BIOS).
If you're building a "real" PC with the 386EX, you'll need to add a few more peripheral devices, such as graphics, memory controllers, a keyboard, a real-time clock, a parallel port, and perhaps circuitry to generate the ISA bus signals if you plan to support some add-in cards. The Explorer Series SBC evaluation platform, which Radisys Corp designs and manufactures for Intel, offers an example of what you can do with the 386EX (Fig 2). This SBC lacks an ISA bus connector but uses a synchronous expansion bus (SEB) and a digital I/O channel to access off-board peripherals. The SEB provides a subset of the ISA bus with processor-synchronous timing.
Many SBC vendors, such as Ampro and WinSystems, which have PC/104 connectors on their boards, decided that 100% PC-AT compatibility is essential. Therefore, they had to use the 386SX instead of the EX. Basically, no amount of BIOS modifications could allow vendors to deliver 100% compatibility through the PC/104 (ISA bus signals) connector. Additionally, these vendors have found that the cost of adding a CPLD (or ASIC) and other logic to an EX design to make it PC compatible is roughly equivalent to buying a CPU and core logic chip set.
Another "almost" PC-AT-compatible CPU is AMD's Am386SC300 (commonly called Elan), which AMD originally targeted at very-high-volume handheld devices such as personal communicators. Although the 386SC300, which costs $39 for a 25-MHz version, costs 1.5 times as much as the 386EX, it's packed with twice as many peripherals. Additional peripherals include a memory controller, ISA bus controller, EPP-compatible parallel port, CGA controller, and two PCMCIA-card controllers. However, to use these peripherals, you must make trade-offs. For example, because the 386SC300 is only available in a 208-pin PQFP, the pin limitation forces the ISA bus, local bus, and CGA controllers to share the same pins. Thus, your system can only utilize one of these functions.
Elan's internal LCD controller supports CGA sizes of 320x200, 640x200, and 480x320 (predominantly flat-panel displays). Adastra Systems, an SBC manufacturer specializing in integrating flat-panel displays, has considered the Elan for an SBC. However, the company has determined that almost any design would require using an external VGA controller. Unfortunately, most of the displays Elan supports are either obsolete, not manufactured in the technology of interest (such as active-matrix color LCDs), or not readily available.
When you use the 386SC300's internal CGA controller, it supports a minimal ISA bus (this capability includes basic memory and I/O reads and writes, DMA channel 2, and a few interrupts). If you configure the 386SC300 into the local-bus mode, the internal CGA controller is disabled, and the CPU provides a few more ISA bus DMA channels and interrupts. The local-bus option basically is a 386SX local bus. The maximum ISA bus mode supplies the balance of the signals for the DMA channels, interrupts, ISA-latched addresses (LA17-LA23), zero-wait-state request, and address latch enable. Unless you plan to build a system with ISA slots, it makes the most sense to operate the Elan CPU in the local-bus mode and add an external VGA controller.
Also, when considering the 386SC-300, note that it only supports a single serial port, which may be a limitation in embedded PCs (most support at least two). Also note that, from a development/debugging standpoint, the 386SC300 lacks any type of emulator support. However, the 386SC300 is typically used in system environments similar to those of desktop PCs, where software support is almost exclusive. In this case, it may also be most appropriate to use tools such as a PROM ICE, logic analyzer, and, perhaps, a serial debugger.
If you're only using x86s because of software compatibility with the PC, check out AMD's 386EM, which is derived from an enhanced version of its 186EM. This non-PC-AT-compatible device provides a 32-bit upgrade path for the 186EM. Peripherals integrated into the 386EM include an interrupt controller, counter/timers, DMA controller, watchdog timer, and serial ports. AMD's 386EM sells for $24.94.
Back when the first motherboards were built, chip sets consisted of discrete components such as the 8259 (interrupt controller) and 8237 (DMA controller). Today, ASIC, FPGA, and CPLD vendors are offering these components as functional system blocks (FSBs) or macrocells. You can "glue" the appropriate FSBs together to build your own integrated core logic. "Owning" the core logic puts you in better control of your embedded PC's destiny. However, you have several considerations when using this approach:
Instead of building your own ASIC, you may be lucky enough to land an agreement with a chip-set vendor to build its discontinued devices. Be wary, however: Chip-set vendors are typically unwilling to disclose core-logic-design secrets. Alternatively, you may have the opportunity for a last-time buy, which doesn't help your inventory but outweighs the option of having to use engineering resources on a redesign.
The best thing you can do for an embedded PC is to isolate it from the rest of your application. By doing so, you won't be concerned about CPU and chip-set changes. To accomplish this, you can buy off-the-shelf SBCs and let the vendor hassle with the changes in hardware and firmware. If you're building the SBC, you may want to use an alternative approach, such as in Ziatech's ZT 8905 SBC. This SBC provides an interface to the STD32 bus. Ziatech has painstakingly developed a custom interface between the PCI bus (generated by the ALI chip set) and the STD32 bus. Even if the chip set or CPU changes, PCI bus standardization ensures that Ziatech's custom interface remains unchanged. The company's biggest concern, however, is that a CPU or chip-set change may affect board layout (for example, more chips required), which, in turn, may affect how the SBC fits within their customer's original enclosure.
In addition to deciding on a CPU/chip set based on performance, price, and longevity, you should also examine BIOS support. The closer your embedded PC is to its desktop-PC counterpart, the easier it will be for you to obtain an off-the-shelf BIOS.
Fortunately, BIOS vendors are beginning to appreciate the value of embedded PCs and are making it easier to modify or add to their standard BIOS offerings. For example, almost every SBC vendor provides a flash solid-state-disk option. Another example is the keyboardless BIOS, a capability requested by 50% of companies involved with embedding PCs into their products. Despite the availability of off-the-shelf BIOSs, many SBC vendors still choose to write their own BIOS, easing the move to support custom features and accommodate design changes.
CPUs such as the 386EX and 386SC300 don't transcend the desktop-PC world. A semicustom BIOS is essential when using these processors in an embedded PC. Phoenix Technologies offers a product called PhoenixPICO BIOS, which supports both CPUs. PICO lets you add nonstandard extensions, such as I/O through serial ports, different screens, or the ability to boot from a PCMCIA device. Furthermore, the PICO BIOS is "object oriented" in the sense that it's easy to build a system and then pick only the pieces you want to use.
Cost is an obvious drawback with an off-the-shelf BIOS. As with the hardware portion of an embedded PC, you have several considerations. On one side, if your product volumes are low (<1000 qty), it is probably better to buy rather than build, because you cannot justify the development costs. It took Phoenix three man years to develop BIOS support for the 386EX. However, if you're buying a custom BIOS such as the PhoenixPICO, because of NRE charges, it really isn't economical, unless you purchase at least 1000 pieces.
If you're building your own embedded PC with 386-class performance and do not need 100% PC-AT compatibility, one of the integrated CPUs from Intel or AMD is probably your best bet. You eliminate the core-logic chip set and, therefore, have better control over the longevity of your design. Integrated 486- and 586-class CPUs don't exist yet, so you'll have to use an off-the-shelf chip set with guaranteed PC-AT compatibility. Since 486- and 586-class CPUs are mainstream today, you are guaranteed product availability for at least a few years. Regardless of how you slice it, there are no clear-cut answers for making the "right" CPU choice for an embedded PC. But, fully understanding all of your options should be the first step in making your task a bit easier.
| Looking ahead |
|---|
|
Applications that use an embedded PC should grow from 20 to 34% within the next two years (Ref 1). Also, note that among the OEMs using embedded PCs today, 48% of these OEMs are building their own, but this number is expected to drop to 38% within two years. In response to this tremendous growth, vendors supporting embedded PCs, that is, CPU and chip-set vendors, will offer more products with increased longevity.
Later this year, National Semiconductor will join the fold of vendors supporting embedded PCs. National plans to produce a sole-sourced device that will contain a 486 core surrounded by integrated peripherals, a move intended to help decrease system costs. These peripherals will include a DMA controller, PCMCIA interface, UARTs, parallel ports, timers, and a DRAM controller. Although this CPU is not PC-AT compatible, it can still utilize the huge software base supported by the x86. It's likely that Intel and AMD soon will be developing 486 versions of the EX and Elan, respectively. |

Thanks to Bob Burckle of WinSystems for helping me realize the dilemma of choosing a CPU for an embedded PC. Thanks also to Jim Medeiros at Ziatech and Dan Hildebrand at QNX for the detailed technical explanations.
| Manufacturers of embedded-PC-related processors | ||
|---|---|---|
| For free information on the products described in this article, circle the appropriate numbers on the postage-paid Information Retrieval Service card or use EDN's Express Request service. When you contact any of the following manufacturers directly, please let them know you read about their products in EDN. | ||
| CPUs | Advanced Micro Devices Austin, TX (512) 462-4360 |
Cyrix Microsystems New Haven, CT (203) 786-5536 |
| IBM Microelectronics Inc Fishkill, NY (800) 426-0181 |
Intel Literature Center Mount Prospect, IL (800) 468-8118 |
National Semiconductor Santa Clara, CA (800) 272-9959 |
| Nexgen Milpitas, CA (800) 863-9436 |
SGS-Thomson Microelectronics Phoenix, AZ (602) 867-6200 |
Texas Instruments Inc Literature Response Center Denver, CO (800) 477-8924, ext 4500 |
| CHIP SETS | Acer Labs Inc Santa Clara, CA (408) 764-0644 |
Chips and Technologies Inc San Jose, CA (408) 434-0600 |
| PicoPower Technology San Jose, CA (408) 954-6972 |
SINGLE-BOARD COMPUTERS | Adastra Systems Hayward, CA (510) 732-6900 |
| Ampro Computers Inc Sunnyvale, CA (408) 522-2100 |
Dovatron International Longmont, CO (303) 772-5933 |
Radisys Corp Beaverton, OR (503) 646-1800 |
| WinSystems Inc Arlington, TX (817) 274-7553 |
Ziatech Corp San Luis Obispo, CA (805) 541-0488 |
BIOSs |
| Phoenix Technologies Ltd Norwood, MA (617) 551-4000 | ||