One certainty in this business is watching the pendulum swing. One year, hardware gets most of the attention; the next year, software takes center stage. After a period of deafening buzz about multicore processing, the next swing seems to be heading back in the direction of software as the battlefield for competitive advantage.
It’s logical that an increase in hardware complexity and capability would be followed by attempts to get software caught up and, judging from recent announcements, that appears to be the case. Designers can look forward to several new and improved software tools. Two areas – compilers and debuggers – are more tra-ditional, while two others – virtualization and Electronic System-Level (ESL) design tools – are relatively new to embedded designers. As I head off to the Embedded Systems Conference, I’ve come up with a few things I see developing in these areas. And I’m sure there will be more new announcements to consider after roaming through the show.
Better compiling
Designers don’t want to spend time optimizing code to run on multiple cores – they want the compiler to do that job automatically, leaving them to worry about application functionality.
New tools like the Codeplay Sieve C++ Parallel Processing System have stepped up to the challenge of optimizing software for execution on multiple cores and processors. Codeplay claims a 740 percent increase in performance from distributing a single application across an eight core Intel Xeon 5300 system with this suite.
Other designers are rediscovering OpenMP compiler technology, which was created a decade ago for high-performance computing but is now experiencing a revival as inexpensive multicore hardware becomes widely available for embedded applications. Intel and the Portland Group are two firms offering C++ and Fortran OpenMP compilers.
Better debugging
None of the processor cores in the world are any good unless designers can tell what’s going on inside. Multiple execution threads running on multiple cores with complex pipelines and caching calls for very sophisticated technology.
TotalView Technologies (formerly Etnus), Lauterbach, Wind River, Mentor Graphics, QNX, Green Hills, TASKING, and others are offering enhanced tools to take on multicore platforms. One challenge is the lack of standardization among debug tools’ internal parts, but selecting JTAG and Eclipse-based tools can help ease integration and reduce vendor lock-in concerns.
Better virtualization
A big server with multiple copies of an OS is one possibility for virtualization, but it can mean other things for embedded designers. Virtualization can help get the most out of a small form factor board with a dual core Intel processor by allowing two OSs, maybe Windows for the operator interface and a Real-Time Operating System (RTOS), to be used for control. Virtualization also can help the new class of media processing System-on-Chips (SoCs) with multiple processor and DSP cores by coordinating RTOS copies for the signal processing and Linux for the user interface.
VirtualLogix is making virtualization easier for embedded developers with their VLX Developer tool, bringing graphical tools to aid in configuring and managing guest OSs. Mark Milligan, VirtualLogix’s VP of marketing, said virtualization “can help scale cores up, too,” referring to SoCs with a variety of cores at work. (See more information on this topic in the Eclipse Perspective and News column on page 12.)
Better system-level design
Designers can design, build, and validate software at an increasingly critical system level with complex SoCs and multicore processors. ESL tools are proving their worth quickly in helping software perform to its full potential. (Read more in our SystemC feature on page 35.)
Cadence is pushing hard in these areas, especially in the area of validation. CEO Mike Fister sees codesign with geographically separated teams as the burning platform and validation as the solution. As he puts it, “if there has to be a wall, be sure you throw only validated code over it.”
Other companies like CoWare, VaST Systems Technology, Carbon Design Systems, S2 Technologies, Mentor Graphics, Virtutech, Synopsys, and others are introducing new tools to help embedded designers build better software at the system level.
Competitive advantage
With multicore processing on everyone’s mind, getting the most out of the hardware by using the right software tools during development promises to be the next competitive advantage for designers. Be sure to check out this month’s E-cast on this subject available at www.opensystems-publishing.com/ecast. I’d like to hear your thoughts and ideas on this and other ongoing developments in embedded technology – e-mail me at ddingee@opensystems-publishing.com [or post a comment below].