As John Wilhite and Tiger Yeh explain, automation applications are uniquely suited to take advantage of and benefit from multi-core processors.
A funny thing happened on the way to the future. Because of the laws of physics and economic realities, processors took a detour, getting off the path they had been on for decades. That is one way to read the development of multi-core processors, chips that have two or more largely independent instruction execution engines in them.
As is the case with some other detours, this one could prove beneficial, particularly for automation applications. Control systems based on multi-core processors have more computing power, greater reliability and lower overall cost than equivalent single core solutions.
In this article, we look at why multi-core processors were developed, explore the characteristics of an industrial automation computer, examine what features a multi-core system should have, and detail the advantages a multi-core system offers for automation applications.

Two (or more) better Around the year 2000, the steady march of semiconductor processors toward greater and greater performance ran afoul of physics. For years, the industry had been able to shrink feature size and pack more transistors into a given area. That was the basis for Moore’s Law, the empirical observation that the number of transistors in a chip doubled every few years. This trend toward smaller features did more than increase the number of transistors on a chip. As an added bonus, the smaller transistors ran faster. The result was greater and greater computing power, all at an ever decreasing cost on a per transistor basis.
However, there was a problem in that the shrinking of feature size was taking place in three dimensions, not just two. Eventually, the various layers grew to be too thin. As a consequence, processors were on their way to becoming extremely power hungry and hot. If the trend had continued, some projections indicated chips eventually would put out as much energy, on an area basis, as the surface of the Sun.
Clearly, such chips, if they even could be made to work, would never be commercially viable. They would not only demand prodigious power to run but would also require lots of power to cool. Other barriers to continuing along this path involved the speed differences between processors and memory chips, as well as the difficulty in doing more and more parallel processing on a single core. Yet, both industry and consumers demanded increased computing power with each chip generation.
The industry, then, had to come up with a way to continue to improve performance and overcome these problems. The solution adopted by Intel and others was to create two or more execution cores in each chip, instead of the one that had been the standard. Each core was essentially its own largely independent processor, although it would share some resources with its neighbors.
In the case of Intel’s implementation, for example, the shared resources include the L2 cache. By dynamically distributing this fast memory between the cores while having separate L1 caches for each, Intel’s processors are able to significantly reduce memory latency and improve system performance.
A dual core chip delivers about twice the computing power as its single core counterpart, provided that the software is configured to take advantage of multiple cores. The increase is slightly less than double because there is some overhead associated with managing two cores. Each chip, for example, contains logic to coordinate the cores and maximize resource utilization. This coordination does steal some compute cycles from other tasks.
However, even with such added complexity the benefit of a multicore approach is significant. There is considerably more computing power on a per watt basis, as well as easier coordination between the cores than is the case with the equivalent setup based on two completely separate processor chips. In addition, the communication between the cores is much more robust than it would be between separate processors. The wiring, after all, between the two is not external to, but instead is integrated on, the chip.

Face the environment While there can be many different implementations of multi-core processors, all of those intended for automation applications need to have certain features. Some of these arise because automation frequently demands an embedded processor.
These have lower power consumption and a longer product life cycle as compared to consumer devices. Given the environment they have to operate in, these processors also need to be capable of running over a wider temperature range. Therefore, they must have a broader operating temperature specification, again as compared to consumer devices.
Indeed, industrial settings are not offices. There is frequently considerable dust and often quite a bit of vibration. Both could be courtesy of machinery, as heavy loads are shifted around, metal is stamped into various shapes, or a result of other activities. Added to the dust and vibration are much wider temperature swings – a plant floor can cycle from frigid cold to extreme heat.
One result is that commercial grade disk drives, displays and even processors quickly fail. Thus, for industrial automation a standard commercial product may work but will only do so for a short time. Given the cost of down time and repair, an inexpensive, consumergrade system may actually end up being quite costly to operate.
The equivalent is true for software. One of the trademarks of an automation setting is that it is deterministic. Events must be responded to within a set period of time, regardless of what else is happening. Bottles traveling by on a conveyor belt, for example, must be inspected and defective ones removed. Such a situation has a fixed amount of time for inspection and action. Most consumer operating systems do not offer a real-time response. While acceptable when composing a letter, this uncertainty as to when the system will take action can be expensive or even deadly on a factory floor.

Going insideEmbedded multi-core processors from Intel are fabricated using 65 or 45 nm manufacturing technology, with the 45 nm technology featuring the new hafnium-based transistor structure that doubles transistor density. One consequence of the greater density is that the cache size on the chip has been increased by up to 50 percent, which cuts down on memory latency while upping the speed and responsiveness of the chip.
The 65-nm technology processors dissipate as little as nine watts, an important figure for both the power consumption and overall heat load of the system. Since they are fanless, the systems have to use passive cooling. Thus, the heat dissipation needed for all components must be accounted for in the design of the system.
The speed of the cores ranges as high as 2.2 GHz, with the faster speeds, as might be expected, being associated with greater power dissipation. They also result in better performance, a key point to consider for some applications. These processors can be offered in systems with a variety of forms, which can be an important benefit. For example, wallmount and rackmount configurations, as well as ATX, Micro-ATX, XTX, EBX, and Mini-ITX form factors are available. The array of form factors means that one or more will likely be a suitable solution for a given situation.
Having this flexibility is important, especially since what is optimum will depend upon the particular circumstance. An array of configuration choices for the same system means that the externals can change while the internals – such as the software – remain the same.

Advantages for automationWith regard to software and certain other items, automation applications are uniquely suited to take advantage of and benefit from multi-core processors. For one thing, multi-core processors consume less energy while delivering more computing power, as measured by instructions executed per watt consumed. Since industrial systems are fanless, cutting down on power consumed makes passive temperature control easier.
For another, multi-core processors are inherently more reliable than the computationally equivalent approach of two completely separate chips. The two cores communicate over a bus on the chip itself. Thus, there is no Ethernet or other external connection that can be severed. Timing and synchronization between the cores is therefore easier and more reliable.
Having a chip with two cores is also often a cheaper solution than having two separate chips. Most of these savings arise because two separate chips would have their own wiring, board space, and supporting electronics. All of those costs vanish with a multi-core approach.
Finally, there is the software to consider. Many times what bogs down an automation system is not the primary task. Controlling a metal stamp and associated robot, for example, may present no problem for a processor. What does slow down the system’s response are such chores as communicating with a centralized server for reporting purposes, interacting with an operator running a spreadsheet, servicing network requests, or other tasks.
It is here that multi-core processors really shine. Because there are two or more cores, one can be assigned the real-time task while the rest handle all the other duties. In this way, the real-time jobs get a deterministic response while other requests are serviced in a less time-certain way. In effect, this segmentation provides many of the benefits of having a dedicated system for the automation application while still supplying what looks much like a standard processor for network communication, office work, and the like.

The assigning of a particular core to a given task can be handled automatically by the operating system or it can be forced. In the first case, the division can be nudged along by assigning priorities to tasks or processes. The second approach may sometimes be preferred because it allocates resources in a known way that does not vary with the processing load or the sequence that the loads occur. The best choice of how to handle core loading will depend upon the situation.
To sum up, then, multi-core processors are better suited for a fanless environment than separate chips offering the equivalent computing power. The multi-core approach is also more reliable and costs less, while providing better performance and greater response predictability. For automation applications, then, systems based on chips with two or more cores offer some substantial benefits.
Multi-core at work For a look at what a multi-core system can do, consider the case of a company that needed an upgraded geological survey system. Such systems deal with large data sets, with input from multiple sources. Typically, the goal is to analyze the incoming data and overlay it with known geographical and geological information, the better to locate gas, oil, and other natural resources.
As a consequence, geological survey systems are often located in tight control cabinets situated in remote locations. They can also be found on airplanes or on ships at sea, again settings with limited space that are subject to harsh conditions. Hence, there is often a need for the survey system to be both compact and fanless.
In this particular case, the data being gathered included information generated by sonar equipment. This data was combined with location information as determined by global positioning satellite technology. The combination is what allowed the system to accurately identify hidden features and place them in a geographic and geologic context. The system also had to communicate with a server. Finally, the system interfaced with operators, through dual high resolution displays and audio speakers.
In meeting these needs, the company went with an Advantech UNO-2182, a system with an Intel Core 2 Duo multi-core processor. To this they added a PCM-36411, a 4/8 port RS-232 module. The UNO does not have either a fan or cables and has an operating temperature range of -20 to about +60o C, performance characteristics that were important in this particular application.
While consuming little power and being highly efficient, the multi-core processor provided the computing punch the company needed. What’s more, the embedded operating system simplified maintenance and increased overall reliability. The RS-232 module provided the interface between the system and sonar, as well as supplying a conduit between the system and the GPS equipment.

For the future While this example shows that multi-core systems are already being put to use, what does the future hold? A natural question to ask concerns the number of cores in coming chip generations. Two is clearly not the limit, as Intel already has announced chips with four or more cores. Advantech is working on implementing a system based on Intel’s Core 2 Quad, which has four processing cores and is manufactured using state-of-the-art 45 nm semiconductor technology. This processor should give roughly double the performance of its two-core counterpart.
However, the number of cores is not going to stop at four or even eight. Semiconductor companies have demonstrated test chips with 80 cores, capable of delivering a trillion floating point operations per second. Beyond such teraflop test chips are plans for product chips with similar performance. There is already talk of chips with hundreds of cores, although they may not show up for years.
For automation applications, then, the future really does look to be one of divide and conquer, as problems are segmented into sections and solved by multiple cores. Since automation tasks can often be divided into real-time and non-real-time categories, automation applications are a natural fit to this type of approach. Reaping the benefits, though, will require the right hardware and software, with each selected carefully to best fit a particular application.
John Wilhite and Tiger Yeh are with the Industrial Automation Group, Advantech Corporation (www.advantech.com).