Optimizing Dual-Core Processing for Industrial Server Applications

By Farhad Sharifi, Division Leader, Kontron Embedded Computers

Embedded developers of industrial applications are plagued with competitive pressure to provide more features and improved platform management capabilities. This often requires trade-offs between performance, space, and power consumption. To further complicate matters, they are often faced with shrinking form factors, eliminating the option to increase the footprint to make room for more power or more performance.

The advent of multi-core technology provides an attractive solution to help conquer these challenges since it offers the ability to scale solutions and add features within embedded form factors without dramatically affecting the energy variables such as thermal output and power consumption. However not all multi-core platforms are created equal. To maximize the capabilities of multi-core technologies, a number of key factors must be taken into consideration. For instance, the operating system and application must be equal to the challenge if the numerous options offered by multi-core processing are to be used efficiently. Intel's platform approach to multi-core processing combines a multi-core architecture with complementary system-enhancing technologies that let developers leverage the multi-core architecture to even greater efficiency.

Optimizing Multi-Core Technologies

Since dual-core processors provide two complete execution cores instead of one, each core has an independent interface to the front side bus in addition to its own cache. This gives the operating system sufficient resources to handle intensive tasks in parallel, which provides a noticeable improvement in multitasking. Thanks to this parallel concept (which was previously available only on expensive parallel computers), dual-core processors make it possible to distribute tasks to several computer units, thereby duplicating performance. The power dissipation of a dual-core processor is virtually unchanged in comparison to the traditional parallel computer. On the server side, multi-core processors are ideal because they let many users connect to a site simultaneously and have independent threads of execution. This offers much better throughput, resulting in an appreciable increase in performance.

Complete optimization for the multi-core processor requires that both the operating system and applications running on the computer support a technology called "thread-level parallelism." Thread-level parallelism is the part of the operating system or application that runs multiple threads simultaneously and where threads refer to the part of a program that can execute independently of other parts. To use a multi-core processor, the operating system must be able to recognize multi-threading, and the software must have simultaneous multi-threading technology written into its code. Since simultaneous multi-threading technology enables parallel multi-threading, the cores can multi-thread instructions in parallel. Without simultaneous multi-threading technology, the software will only recognize one core.

Virtualization technology is a component of multi-core technology that represents a major divergence from previous technologies. Intel, among others, is helping establish virtualization technology as the standard for all new platforms. It provides simpler hardware administration and lets multiple operating systems and applications run as "virtual machines" in independent partitions on one platform. This makes overall systems more stable because processes that would collide on single-core systems can be separated. The partitions can be assigned as necessary, even when the system is running.

Before multi-core technology, virtualization was unimaginable. It is highly beneficial in industrial server applications and offers the option to integrate stand-alone systems—such as controls, firewalls, and data servers that were completely isolated from each other—into a single system. Multi-core and virtualization together offer innumerable configuration possibilities and a degree of freedom for implementation of multiple applications on one system that ultimately leads to savings in hardware.

Regardless of the method chosen, developers of dual-core systems must, for example, considerably reduce the size of tasks or threads when carrying out parallel programming. This reduction will increase the granularity of the structure and ensure the optimum use of available resources. Communications rules must be defined to address this kind of task interdependency, which is particularly important for tasks that wait for one another and then block each other completely. The key is the integrity of distributed actions. Bearing in mind that parallel programming can speed up an application or create a bottleneck, investment to acquire comprehensive expertise in the field is critical to the success of dual-core systems (and, in future, the success of multi-core systems).

Multi-core processing is not without its obstacles. In addition to operating system support, adjustments in existing software are required to maximize use of the computing resources. The ability of multi-core processing to increase application performance depends on the use of multiple threads within applications. Raw processing power is not the only constraint on system performance. Two or more processing cores sharing the same system bus and memory bandwidth limit the real-world performance advantage.

However, the advantages of dual-core processing in the server market far outweigh the disadvantages. While most server applications produce a lot of threads and processes, performance scales close to linear as more cores are added to the die. OEMs can realize remarkable cost savings by employing dual-core-based servers that allow for the integration of controls that previously required separate dedicated systems (for example, industrial PCs and PLCs) and visualization in one system with the right software adaptation. Only one computer is needed for control and visualization tasks—even for critical and highly complex real-time applications.

Dual-Core Servers for Industrial Storage Applications

As storage environments continue to grow and expand, system administrators are increasingly faced with the problem balancing capacity and performance requirements, while keeping costs in line. These escalating demands are forcing RAID manufacturers to take a hard look at how their systems are constructed and what can be done to both lower the cost and reduce the management overhead placed on their customers. The chosen RAID type is based on application needs that include fault tolerance, read and write access, access speeds, and single vs. multiple users. Cost is also a deciding factor, based on the level of sophistication dictated by each RAID type.

More efficient storage can be achieved by deploying multiple storage levels to optimize price and performance based on the specific requirements of the application (quantity, required availability, and so on). Such a specialized approach demands multiple devices, each cost-effectively performing its respective storage duties.

In response to this trend, the Kontron Industrial Silent Server (KISS), an umbrella term for a new family of IPC servers that supports the latest dual-core technologies like Intel® Core™ Duo processors and dual 64-bit Intel® Xeon® processors, was recently introduced. The latest addition is a 19-inch, 2U server family (KISS-2U), equipped with a redundant power supply unit, a hot-swap RAID 1 subsystem, and the latest power-saving multi-core processors. The Kontron KISS-2U is one of the smallest and fastest high-availability servers that has ever been built for long-lifecycle projects. It is robust enough for both professional data server applications in air-conditioned server rooms and embedded applications in automation, medical technology, security engineering, traffic engineering. and building control technology. Ranges for the Intel® Core™ 2 Duo and Intel Core Duo processors currently strike the best energy balance between server operation and air conditioning for the performance levels required. Should one of the breakdown-prone components such as the power supply unit or hard drive fail, redundant components will continue to be available.

On the Horizon: More Cores, New Capabilities

While the current generation consists of dual-core processors, multi-core processors are the goal as technology shrinks, and more real-estate is available on the die. Quad processors are only the beginning. Chipmakers will continue to push for greater performance, using a combination of improvements in circuitry and more advanced manufacturing technologies.

Threads can take advantage of existing and future processor designs. For example, if an application has been set up for hyper-threading, it can deliver immediate benefits on a dual-core system because it was simply written to use two threads. However, if developers architect programs for as many threads as possible within the program, as additional cores become available, the application will run faster and more efficiently. The practice of threading beyond the immediate number of available cores can help future-proof the design.


Farhad Sharifi is the director of Kontron America's Embedded Systems Division. Sharifi's 20 years in the industry include 11 years with Kontron and five years as a design engineer. He holds a BS in Electrical Engineering and Computer Engineering from San Diego State University and is a member of IEEE and PICMG.