CMP EMBEDDED.COM

Login | Register     Welcome Guest  
HOME DESIGN PRODUCTS COLUMNS E-LEARNING CONFERENCES CODE FORUMS/BLOGS NEWSLETTERS CONTACT FEATURES RSS RSS

Making the right architectural and tool choices in your multicore design
An effective multicore design strategy requires use of software tools that allow programmers to focus on the design elements themselves, not on the precise details of exactly how they are implemented.



Embedded.com
Great hopes are being pinned on multiprocessor and parallel architecture as the answers for the continuing development of electronics and computing. Microprocessor designers have acknowledged that they can no longer rely on higher clock rates and increasing instruction-level parallelism (ILP) for performance increases.

Absolute performance, increasing power and rising cost mean that running faster passed the point of diminishing returns long ago. Most of the industry would agree that multicore is the way forward - that the principal challenges of multicore design have been successfully overcome, and the move to practical deployment can begin.

Main multicore drivers
There are two main drivers behind the move to multicore technologies. The first is that it has become clear that "the real world is parallel." When computer scientists try to identify primitive functions which they can use as universal building blocks for more complex programs, they invariably find that these building blocks are inherently parallel processes.

Moreover, the most rapidly expanding sectors of the electronics market - media processing and data compression - are exactly the areas where this parallelism is most pronounced.

Progress has been made in helping the designer to exploit this natural confluence of application requirements and parallel architectures. Mainstream processors from Intel Corp. and Advanced Micro Devices Inc. are moving to dual or quad processors which are loosely coupled, allowing performance gains approaching 2X and 4X, without dramatically changing the programming model.

But the need for greater performance calls for increasing the numbers of cores - and that impacts the programming model. Multicore and parallel processing systems have traditionally been perceived as extremely hard to program, requiring special-purpose tools (Figure 1, below) and expert knowledge, and this has been the clichéd reason why multicore processors have historically failed.

Figure 1. The ability of tools to automatically configure low-level details of the parallel elements, to automatically allocate tasks to cores, and to configure the interconnect is critical.

However, products such as multicore DSPs can be configured and programmed using standards-based tools that are intuitively understood by chip designers and programmers.

The second driver for the adoption of multicore techniques is the slowdown of advances in uniprocessor development, despite clock rates currently standing at 3GHz and transistor counts moving into the hundreds of millions.

From 1986 to 2002, microprocessor performance rose by 52 percent per year, effectively doubling every 18 months. By 2006, the rate of advancement has slowed to less than 20 percent per year, so that today, performance doubling may be taking as much as five years.

There are many reasons for this slowdown. For a start, system architects are no longer able to wring further gains from ILP techniques. At their most basic, these involved tricks such as simple instruction pre-fetches.

But they now encompass very complex techniques such as outof- order execution and branch prediction. In many cases, the increased complexity outstrips the performance gained. Replacing ILP with task-level and word-level parallelism is the only way to reap further gains.

1 | 2 | 3

Rate this article: Low High
Current rating
  • .
Embedded.com Career Center
Looking for a new job?
SEARCH JOBS

Browse all jobs

SPONSOR
RECENT JOB POSTINGS





 :