PC/104 product migration strategies
PC/104 is a widely used small form factor board standard that has evolved several variations by leveraging advances in desktop PC technology. To date, these advancements have included faster bus interconnects and new I/O schemes that required additions to the original PC/104 specification. But as technology continues to improve, there must be a clear migration path available to allow the incorporation of new technology into product updates and new generations of products.
The PC/104 family of specifications has five major variations, spanning from the original PC/104 specification based on the ISA bus, to the latest based solely on PCI Express (PCIe) for module interconnection. The changes are very evolutionary in nature, and those that have been tracking these changes have most likely taken the small steps necessary to leverage the latest advancements. But what happens when you need to move multiple generations, particularly from ISA or PCI bus variations to PCIe? What are the precautions that must be taken in order to make the migration in one big step?
Reasons to change
Common reasons to change electronic components such as PC/104 modules include:
- Higher performance – Customers have outgrown the performance capability of their existing platforms, so a faster processor, more memory, or more I/O is needed. There always seems to be a need for more performance, as Operating System (OS) and application software requirements tend to grow. New I/O devices are added to the product feature set, and faster algorithm processing and response may be demanded by an application.
- Latest in I/O technology – SATA, USB 3.0 – New peripheral devices are needed to accommodate new requirements, and changes to the base platform are needed to utilize peripherals that are only available in new technologies. New peripherals only available with USB 3.0 may be required, thus a newer generation of modules with the proper I/O interfaces are needed as well.
- Obsolescence management – The bane of embedded computing platforms is they are expected to perform for many years. It can be especially challenging when trying to leverage the cost advantage of PC-style components that thrive on change. Obsolescence management is a never-ending task that requires constant monitoring to be sure that there is a true end-to-end product life cycle in place.
- Supply chain issues – If a supplier changes strategy or goes out of business, are there alternatives? Using open standards like PC/104 put you in a good position to address this issue, but there are still hurdles that must be cleared before an alternate module can be used.
Any of the aforementioned issues can put platforms in a position where the existing architecture will no longer be sufficient. When faced with one or more of these reasons, you need to start preparing to change or update the technology used in your platform(s). Change can be very beneficial, especially as technology marches on, but benefits will vary depending on product and customer needs.
Preparing for migration
Ask yourself the following questions when developing your next embedded computing platform, and then work with suppliers on answers to keep from falling behind in the future.
When should I move to the next generation?
The move to the next generation will usually be driven by the need for increased computing performance or additional functionality that can only be achieved with a new generation of products. The move can also be influenced by the need to reduce or eliminate obsolescence issues that are too complicated or costly to manage with the original product line. In most cases, microprocessor selection will drive the need for migration.
What are my options?
With PC/104 there are several options. Long time users may have been making incremental improvements from generation to generation using bridging products that provide the benefit of enhancements while maintaining original components. If you have not been keeping up, then read on.
What should I be concerned about when migrating?
In short, you should be concerned about everything. Take the time to develop a new architecture that will get your product where it needs to be now and in the future. A lot of these decisions will be based on expected production volume and product lifetime. You need to be especially sensitive to enclosures, peripherals, and software (drivers in particular). Depending on your choices, any one of these could quickly require a complete overhaul. PC/104’s standard form factors minimize the enclosure impact, and since PC/104 follows the desktop PC, the software migration path is clearly defined.
What cost tradeoffs must be made?
Cost tradeoffs depend on the big picture plan, production volume, and product lifetime. Budgets will make a lot of the decisions for you, but keep in mind that migrating as much as possible may have cost benefits in product lifecycle management that justify a substantial migration effort. PC/104’s modular approach helps, allowing you to build the system required today with the knowledge that it can be expanded later if necessary.
How much reuse should I expect?
The amount of reuse you can expect really depends on the extent of your upgrade plans. If it is a low run-rate system and you only need a bit more from it, try to reuse as much as possible. If you are dealing with a product that needs a major refresh and the production volume is still viable, then a more substantial redesign with little regard for reuse may be more appropriate. How much of your original enclosure design you can reuse will depend on the original design and how well it can support new modules. Every PC/104 generation has a bridge to the previous generation, and the step from PCI to PCIe is simplified by the common software architecture.
Do I need to support all of the current interfaces?
This is your call, but it may be time to change to more efficient interfaces and I/O peripherals. For instance, USB offers a ubiquitous interface that was not available several years ago that may allow you to replace many older, more difficult-to-support devices with ones that can save money and improve overall system performance.
What new capabilities can be added?
Using serial switched fabrics such as PCIe allows you to build systems with a very scalable interconnect scheme. Additional “pipes” can be added to the system to increase bandwidth as an application’s performance needs grow, and interconnects can be routed in ways not possible with parallel bus architectures. Being able to optimize the traffic lanes to your application makes it possible to move data to locations where it is most effective for your application. With the higher interconnect bandwidth, some of the data throughput limitations that may have been hindering your system will no longer exist. This is the time to re-evaluate the entire system architecture to maximize its effectiveness for current and future computing needs.
What software issues need to be addressed?
If starting with a proprietary OS, work could be substantial if the environment is not current with today’s I/O devices. This is very likely since you are still dealing with older peripherals that are influencing your migration decisions. In this case, a commercially available OS that will reduce future risk may be the best option.
If you have a current version of a commercially available OS then your efforts may be relatively painless. Again, it will depend on how much custom driver work was done originally and if those peripherals will be needed in the new system. If everything can be upgraded at once then the work may be minimal. If new drivers must be developed or re-written from old drivers, then there is a lot of work ahead in developing and testing new software. This may also be the time to re-evaluate your OS choice, since there has been tremendous change in the past few years – Linux plays a major role, and multicore processors with hypervisor support open up interesting opportunities that allow you to run legacy software while developing an alternate path for new applications. Since PC/104 hardware migration has followed the desktop PC, the software path is well traveled with a wealth of resources available to support growth.
Steps to migration
The developers of the PC/104 family of specifications have always had product migration in mind. Figure 1 shows how to step through the generations of PC/104, but what happens when you want to go from one generation to the next? PC/104-Plus and PCI/104-Express simplify single generation transitions by incorporating an older generation bus with the new generation bus. This allows direct use of older generation peripheral cards in a system with newer cards, which significantly reduces development time and cost because well-performing legacy peripherals can be used alongside cards with advanced microprocessor architectures.
One big jump
A two-generation jump in any electronic system can be a major undertaking, such as ISA to PCIe or PC/104 to PCIe/104. For complete system redesigns you can simply select from a wide array of new PCIe/104 modules. If you would rather take a more conservative approach or need to use older technology peripherals, you can use transition modules. In this case, you would select a PCI/104-Express CPU and use a transition module to bridge to the ISA bus. As newer OSs free themselves from the legacy constraints, you may find ISA features like interrupts, Direct Memory Access (DMA), and certain size bus transactions limited, so be sure to check compatibility with the CPU manufacturer.
There may be some reuse of enclosure technology depending on the original implementation. You will be able to reuse I/O with standards such as USB and Ethernet, but need to start shopping for PCIe/104 modules that can be used to replace older I/O payload(s). For large I/O complexes, you might consider a second box that is dedicated to PCIe/104 and connects back to the PC/104 subsystem through Ethernet or another acceptable interconnect; this may allow you to consolidate and eliminate modules, depending on the types of I/O in the original system versus what is required in the new version. Look for these opportunities when possible to minimize the migration effort and cost.
PCI-104 to PCIe/104
Here you can follow the same steps as the PC/104-Plus migration, but without the legacy ISA bus issues to contend with. Start thinking about eliminating any I/O that resides on the PCI bus so that you can eventually have a single interconnect system based on PCIe.
PCI/104-Express to PCIe/104
If you started here or have been migrating over the years, you are in great shape. You already have the PCIe bus interconnect and the next move eliminates the PCI bus from the equation. You may even be able to start eliminating costs as you reduce stacking complexity by focusing all of your system elements on PCIe as the primary interconnect. From here you are also well positioned to leverage the expanding use of serial switched fabrics such as PCIe.
Coping with change
Change cannot be avoided, especially when dealing with electronic technology. Rather than resist, you should anticipate change and build it into your plans. Some common strategies to minimize the impact of change include:
- Staying within processor families
- Staying within commercial OS families with broad driver support
- Migrating in multiple small steps versus one big step
Future-proof your design by keeping a product lifecycle team on top of new technologies, and make migration decisions in a timely fashion so you do not get so far out that you need a complete system redesign. Also consider getting involved in the standards development process so that you can influence new standards and stay on top of new innovations for your next product design.
PC/104 module suppliers have the expertise to assist in developing the most effective migration strategy. Be sure to get them involved early in the migration process so you can make the right choices and minimize effort.