Rethinking Embedded System Partitioning

As USB makes its way into the embedded world, it has begun to shape how we think of a system design. If you were familiar with the PC/104 world, you'll recall that the CPU managed I/O devices over the PC/104 bus by polling or using interrupt requests. The CPU received a signal from an I/O device that a control function needed to be serviced based on a given priority. In such a system, there would typically be several tasks which the CPU was charged with managing such as: network communication, data processing of a log file, writing to a disk drive, or even maintaining a display screen.

Is it ever a good idea to have the same CPU that does data processing, network servicing, displays of graphical interfaces, and many other tasks, also be responsible for servicing an interrupt to shut down a conveyor belt that is moving gravel into a dump truck or performing some other critical task? That debate has gone on for years, and still continues. Truthfully, the marriage of these two extremes, control and data processing, was the result of the availability of excess computing power. In those days, it was easier and cheaper to make advancements by simply pushing clock speeds to the extreme.

However, the world is changing. The excessive clock rates of the PC consume too much power and generate too much heat in an era where the word "Green" is starting to take precedence. But we cannot simply just reduce clock speeds and compromise system performance. No, everything must perform better and faster than its predecessors. So what can we do? Using serial buses to replace the ancient parallel data bus is an obvious answer. Parallel buses seem passé when compared to the ease of implementing faster serial interfaces such as USB. With USB 2.0 High Speed data rates at 480 Mbits/s and USB 3.0 Super Speed expected to enter the market at 4.8 Gbit/s, the speed increases are significant. But what about heat and power consumption? Don't you still need a powerful CPU to handle all this USB activity you ask? The solution comes from an ancient Latin saying divide et impera or "Divide and Conquer." With devices as simple as 8-bit microcontrollers starting to include USB ports, why not make use of this cheap, powerful tool to our benefit?

The advancements toward a better embedded system design proposed by StackableUSB are inevitable and will be realized sooner or later. It is a concept we are familiar with in all aspects of our lives but have traditionally turned a blind eye to it in the computing world due to our hunger for fast and powerful CPUs.

Think of an embedded system as your favorite restaurant for a moment. At some point in time, someone had an idea to start a business selling food. To get his dreams into motion, this person would have conducted most, if not all, of the tasks required by himself and would have had very little to no help except for a hired server perhaps. This was the PC/104 world, and the CPU was the person who dreamt of starting a restaurant. It served all the requirements of the system with very little to no help from the outside world. The hired server is like an Analog-to-Digital converter, serving the system by bringing information into the core just like the server at the restaurant brings an order back to the kitchen.

Now, after a few years, the restaurant wants to expand, serve more people, build a larger menu, and offer additional services it did not before. In order to do this, the person who originally started the restaurant hires an accountant, a sous chef, a floor manager, three more cooks, a decorator, and more wait staff. This is the advancement that StackableUSB prides itself in. By hiring these people, the owner is now able to divide all the tasks required to run the restaurant (the system) between different people and focus his time on doing a better job on more critical tasks, while not using as much energy and time required previously. In doing so, the owner has also created a more efficient system which allows the restaurant to operate more economically than before.

Similarly, in an embedded system where USB is the primary bus, individual tasks can be micro-managed by providing a low power MCU on the I/O side with very little to no additional cost. Consider a GPS module meant to attach to a stack. If equipped with an onboard MCU, all the data processing can now be handled on the Client side and the Host CPU only needs to read some registers from the Client to get the information it needs, freeing the Host's system bus for more critical tasks than servicing and trying to make sense of raw GPS data. This concept can be applied to any device side application, creating a perfect Host-Client system harmony. With fewer cumbersome tasks needing to be handled on the Host side, lower power CPUs can now be used to reduce the cost and power consumption, while increasing the overall life and efficiency of the entire system.

Mirroring the concept of multi-core processor technology at the system level in this fashion has tremendous advantages. Breaking down each task into a micro-architecture that distributes device functions and allows a more granular power control at each level is becoming more popular in all aspects of computing.

One reason this makes sense today is that it allows system designers to reduce power consumption which reduces the costs of running a system in addition to reducing the heat it may generate.

For many, board-to-board communication has been a poor man's version of multi-core processing. Each board plugged into a stack has been charged with a control, measurement and/or monitoring task for the embedded system. Now, with StackableUSB, the embedded systems industry is one step closer to achieving the perfect balance of task distribution between the Host and Client devices.

In the end, the concept of a multi-core architecture afforded by USB and more specifically StackableUSB, can help design engineers develop more efficient, targeted embedded control systems paired with highly modular software.

 

 

Home  |  What's New  |  Products  |  Design Resources  |  Request more Information
Contact Us  |  Employment Opportunities  |  About Micro/sys  |  Search

© Copyright 2014 Micro/sys. All rights reserved.