|
Multiple processors make a compelling choice for designers—however, challenges remain in software development. |
Multicore SoCs: A challenge for developers
By Vivek Nanda Just a few years ago, performance was synonymous with frequency. Intel kept upping the frequency while new applications kept thirsting for more. You had to solve bus bandwidth issues and memory bottlenecks. Today, Intel has a Pentium running at 4GHz, but at a price: 100W of power consumption. That's enough to light up your living room and run a ceiling fan. That's more than what most TV sets consume. Yet today's applications—high-speed networking, network security, wireless communications, image processing--continue to hunger for higher processing performance. The convergence of computer, communications and consumer applications into multifunction gadgets has added to the challenge. But with frequency scaling, given current fabrication technologies, you reach a point when the leakage current of transistors is the same when turned on or off. Even before that point, higher frequency does not always result in higher performance. Since many multifunctional devices are also portable, burning 100W would hardly be a solution. Enter parallel processing. Parallel processing has been around for some time now. The first time I heard about an application was in the late 1980s when the Indian Centre for Development of Advanced Computing (C-DAC) designed the Param, a supercomputer based on a massive parallel processing architecture. It was claimed to be comparable in performance to then serial Cray, and about a third in price. The concept of shared memory multiprocessors as used in the server segment has only recently caught on for embedded systems because, up until now, hardware designers had to contend with high cost and large latencies in off-chip processor communication. The nanometer era has changed all that. Today, SoCs already provide a customized solution for a given range of embedded applications, which invariably results in higher speed at lower power consumption. Adding multiple embedded cores can give you a further boost in performance. In applications that require real-time processing and high throughput, where there is functional and data parallelism, multiple processors optimized for a given set of applications in an SoC make a compelling choice. But now, most of the remaining design challenges lie in software development. At the board level, a multiprocessor system usually has one type of processor and OS. Not necessarily so in the embedded environment. You might encounter two types of cores, say RISC for control and DSP for computations. And what if you have multiple operating systems to run on these? This obviously makes software development a lot more complex where a developer has to partition software over several targets. The shared memory and other resources also compound the possibility of contention. The SoC may use the multilayered AMBA bus architecture, where simultaneous bus access by different masters to different peripherals is allowed. So you can't deduce system activity simply by watching a central processor. Developers can use message-passing to manage multiple processors and operating systems, but there is an urgent need for development tools that can deal with a heterogeneous system of multiple processors. The hardware is becoming increasingly available and the embedded software industry needs to develop tools for multicore SoCs. Meet representatives from the embedded development tool industry at the Embedded Systems Conference to be held August 17-18 in Taipei. The show will host a summit on multicore SoCs where you can voice your concerns, learn about the latest technology trends and take back solutions to tackle development challenges.
|
| ||||||||||
| ||||||||||







