Zibb
Subscribe to Control Engineering
FirstLight
Ask Charlie   


Recent Posts

Recent Comments

Most Commented On

Archives

Blog

Link This | Email this | Blog This | Comments (1)


What can multicore technology do for control systems?
December 10, 2007

Multicore technology refers to the technique of incorporating multiple central processing units (CPUs) into one integrated microprocessor device. In the past, the numbers of cores integrated onto one die has been fairly low (four or less). Over the past year or so, a few specialty IC manufacturers have announced devices incorporating tens of cores. This trend is likely to accelerate.

According to Ray Simar, advanced architecture development manager at Texas Instruments, this type of parallel processing architecture is not a new idea, but was less attractive in the past because processing-speed gains were easier to get by pushing clock speeds higher. That is no longer the case. With clock rates reaching into the multiple GHz range, further increases are becoming harder.

For example, in a briefing I attended last week (12/5/07), Simar described a three-core processor, with all three cores running at 1 GHz that provided the computing power of a single processor running at 3 GHz. He then pointed out another IC incorporating six cores, each running at 500 MHz that provided the same computing power, but at a fraction of the power usage. Physics conspires to make power usage a non-linear function of clock rate. Doubling the clock rate more than doubles the power dissipation. Thus, multicore technology helps improve control systems’ processing power while lowering their electric power consumption.

Multiprocessing systems also make it possible to divide up computing tasks while keeping them tightly coordinated. For example, at NIWeek 2007 I saw a dual-core processor demonstration where one core was running HMI software under Microsoft’s non-real-time Windows XP operating system, while the other core ran control software running on a real-time operating system.

Such parallel processing operations can be done using multiple microprocessor ICs. Indeed, this is the current paradigm for supercomputer architecture. The most powerful computers today, such as MareNostrum at the Barcelona Supercomputing Center in Spain, are Linux clusters incorporating large numbers of off-the-shelf components running in parallel.

The main problem, and most of the hardware cost, arises from the difficulty of passing data between separate computing components at speeds that do not choke the overall performance. Also, having these processing components separately packaged takes an enormous amount of physical space. Multicore technology addresses these problems at a fraction of the cost.

Simar also pointed out that heterogeneous multicore technology makes it possible to optimize the device’s architecture for the application. An application might, for example, require a relatively low performance engine to run a simple HMI, coupled with a high-speed digital signal processor (DSP) to process incoming radio frequency (RF) signals, while a medium-speed microprocessor controls an automated process in real time. A tailor-made multicore processor for this application would have three-cores: a small 8-bit microprocessor core to run the HMI; a 16- or 32-bit microprocessor to run the control system; and a DSP core to process the RF signal.

To sum up, the advantages of multicore technology for control applications include:
* Lower cost/performance ratio,
* Lower power consumption for similar performance,
* Reduced space requirements,
* Ability to integrate incompatible applications into one system, and
* Ability to tailor the processor architecture to the application’s needs.

The down side of multicore technology is that, like all parallel processing architectures, it leaves the software engineer with the difficult job of assigning tasks to processors. Some software packages, however, already provide tools to help. National Instruments is fond of pointing out that its LabView programming environment naturally adapts to the multicore environment. I’ve already mentioned that Linux is a standard for cluster computing applications. Some embedded system development tools help engineers balance the computing workload in multicore systems to achieve maximum performance. (There’s no point in having multiple cores if the software forces one core to do all the work while others sit idle.)

In the end, multicore technology can help control engineers develop more efficient, targeted embedded control systems, but they have to pay close attention to the hardware they employ and use the right software tools.

Also read:

Multi-Core Processors Push Performance Envelope

Not your Father’s RTOS

LabView 8.5 adds statechart design, simplifies multicore

Intel honors Kontron for multicore commitment

Posted by Charlie Masi on December 10, 2007 | Comments (1)



POST A COMMENT
Display Name or Registered Users Login Here.

Before submitting this form, please type the characters displayed above:


Advertisement



Advertisements



About Us   |   Advertising Info   |   Site Map   |   Contact Us   |   Useful Sites   |   FREE Subscription   |   RSS
© 2008 Reed Business Information, a division of Reed Elsevier Inc. All rights reserved.
Use of this Web site is subject to its Terms of Use | Privacy Policy
Please visit these other Reed Business sites