Software and I/O Make the Application (or... It's the I/O, Dummy!)


  • Page 1 of 1
    Bookmark and Share

The pointy-haired boss says the latest multicore CPU is required for the next project, providing you with a reason to come to work tomorrow. Good thing the boss knows how to keep abreast of technology, or where would we be?

Now that the CPU choice is settled, the task becomes how to fit that square peg into your application’s round hole. No problem, just start with a 5-vendor COM Express RFQ, and may the cheapest CPU win. 16-bit A/D, kilosamples per second, CAN bus, PoE, ACPI, QVGA, etc. Or ARINC, SSD, DO-160, COM ports, legacy BIOS, … uh oh. Bus, what bus? So begins another round of trying to educate the pointy-haired boss.

The fundamental problem here is selecting the CPU first. Conventional wisdom tells us to proceed this way, as does the unwise conventional boss. The ensuing struggle to force-fit the I/O against the grain is our job security.

Everybody and their brother makes a CPU, but, even with a schematic, you probably can’t tell them apart. The CPU information needs to be filed away into a project-oriented decision framework. It is critical to understand the I/O requirements, software interactions, latencies, determinism and data bandwidth needs first. Then interconnects and bus structures can be determined. This holds whether designing at the chip level or board level. For example, it’s not wise to triple the gigahertz to solve the determinism problem unless you have a budget that can handle tripling the CPU and thermal solution cost as well. Finally, the CPU and chipset (or all-in-one SoC) can be selected after all the other considerations are put to rest. This, then, is the appropriate time to reach into the archives of the brain and play eenie, meenie, miney, mo with the processor choices.

Since each embedded application is unique, and you are the master of your domain, let’s fast forward past your analysis of I/O and interconnect requirements to the last step, the small form factor CPU selection.

There are three major classes of processors suitable for embedded developers—desktop/notebook class (32/64-bit), RISC-based and microcontroller (4/8/16-bit). Each occupies its own market space without much overlap in terms of performance, power, cost and real-time response. And usage is driven by the application. Automotive infotainment (telematics) has very different requirements than the 50 or so microcontrollers in the vehicle. Even the pointy-haired boss might understand that distinction.

Microcontrollers are well suited for white goods like microwaves and dishwashers, car and TV remote controls, sensor networks, alarms, access control, and distributed decentralized dedicated controllers such as automotive applications. In most cases, the firmware and application-specific I/O is all included in a single chip. Typical unit volumes are in the millions, and prices are several dollars. There is nothing inherently difficult about designing custom boards with these devices; even hobbyists and college students can lay out simple boards and compile interesting application code. Microcontroller Linux versions exist. However, trying to extend these processors to applications outside of their comfort zone may mean expensive custom device drivers, and spending more money on connectors than on the processors themselves.

RISC processors have moved beyond cell phones and cable modems to digital TV, DVRs, network routers and other headless fixed-purpose devices. The 32-bit processors run TCP/IP network stacks, middleware and larger operating systems like QNX, VxWorks, Nucleus, Integrity and many others. Volumes are typically in the tens and hundreds of thousands, costs are tens of dollars, and like microcontrollers, the ROI for custom designed boards instead of off-the-shelf boards is well established due to the uniqueness of every application and the processor-specific local buses.

Intel Architecture and other x86 processors, ColdFire, and some of the high-end almost-CISC-like PowerPC variants comprise the high end. The x86 space in particular has such a standardized architecture that an ecosystem has blossomed. Motherboard form factors like Mini-ITX and modules like COM Express cover the tens- to thousands-per-year volumes with tens to hundreds of dollars for the processor alone. Many of these are 2-chip or 3-chip solutions with 10-100W power dissipation and rich PC-style buses and I/O. Because of their rich graphics support, these processors find themselves in many GUI- and HMI-oriented applications like kiosks, signage, medical instruments and imaging, military, avionics, trains, traffic management, automation and others.

Remember, despite the grandstanding, the CPU is only there to run the software and serve the I/O. If this material is beyond your grasp, there may be a management opening nearby. Let us know your pointy-haired boss stories by e-mailing us at