Design Article

SoC Embedded Software Needs a Low-Power Perspective

Jim Lipman

10/1/2002 12:00 AM EDT



 
Software designers, especially those who work with embedded applications, are well aware of the importance of low-power designs. The truth is that in most situations software people do not have a clue how their design decisions effect the power consumption in the final product. The detailed reasons for this depend on the specifics of the design system being used but, generally speaking, the software designer is too far removed from the hardware and lacks the analysis and feedback tools that would allow effective optimization for power. This is not the case for other performance characteristics such as execution speed and code size for which measurements are readily available, so it is no surprise that those characteristics get optimized.

At Improv, we recognized the need for this information in the design process early on and have developed our methodology such that hardware and software optimization are done as a coordinated process with the requisite measurements and feedback available to the designer. The software (application) engineer is in touch with the consequences of design decisions early and can readily predict not only code size and speed, but also power and die size. We find that when given access to good information, the software designer becomes a key resource in producing solutions that meet all specifications, including low power.
Victor Berman
Improv Systems
 
With the emphasis on lightweight, portable devices with long battery life, an important—and sometimes the primary—design constraint for many leading-edge system-on-a-chip (SoC) designs is low power consumption. While hardware designers often have a goal of low-power along with several design tools and methodologies at their disposal for minimizing chip power dissipation, the same is usually not true for designers of SoC embedded software.

"Design for minimum power" is the mantra of many SoC designers—low power is a consideration from the very start of their chip design. The idea of reducing power consumption of the finished product is pervasive throughout the chip's fabrication, specification, and design processes:

  • Silicon foundries usually offer a low-power variation of their baseline digital process.

  • Many cell libraries, silicon cores, and silicon compilers have low-power variants of their basic cell, core, and compiler modules.

  • You have your choice of many EDA tools for designing, analyzing, and verifying block and chip-power usage at various design-abstraction levels. Examples include OSC's ORINOCO at the behavioral level, Sequence's PowerTheatre at RTL, and several tools at the gate level.

  • Designing for minimum chip size (and cost) results in shorter interconnect paths, which also means less dynamic power dissipation.

  • The march to ever-increasing system complexity on the chip through continuing process-node reduction (in other words, shrinking feature sizes on a chip) means less inter-chip communications—thus reducing a major contributor to power usage.

While chip-hardware designs are guided—and sometimes controlled—by a directive to reduce chip power, the same cannot be said for designers of the embedded software that will go on that chip. Designers of embedded software have their own set of guidelines, such as maximizing co-design activities with the hardware designers, minimizing the lines of code needed to meet performance specifications, maximizing the speed of the running software, and minimizing the memory the system needs to support software activities. While reduced memory also has a benefit of reducing power, there is generally not a "design for lower power" edict for the embedded software designer.

Techniques for software design to reduce system power do exist. You can find examples of such techniques in various research and conference papers. Three interesting papers are:

  • Low Power Architecture Design and Compilation Techniques for High-Performance Processors
    Presented at Compcon 1994.
    The low-power architecture design paper presents two methods for reducing processor switching activity: Gray code addressing (changing only a single bit between consecutive addresses) and cold scheduling (using traditional performance-driven scheduling with special heuristics to reduce switching activities). The authors found that Gray code reduced address-line-switching activity by 30-50% compared to binary-code addressing, while early results with cold scheduling reducing the processor's control-path switching activity by 20-30%. Lower on-chip switching activity translates to lower power.

  • Efficient Instruction-Level Optimization for Low-Power Embedded Systems
    Presented at ISSS (International Symposium on System Synthesis).
    The paper on instruction-level optimization discusses a technique for developing and validating an instruction-level low-power optimization framework for a given instruction-set architecture. Using this technique, the authors found power savings ranging from 2.7 to 29.2% for a variety of applications run on a 32-bit five-stage pipelined datapath.

  • Improving Memory Energy Using Access Pattern Classification
    Given at ICCAD (International Conference on Computer Aided Design) 2001.
    The memory-energy improvement paper presents a compiler-based strategy that modifies the execution order of loop iterations in array-intensive applications (such as image or video processing). This change increases the time periods in which memory banks are not accessed by loop operations. The modification allows a memory bank to go into a low-power mode more often and, in addition, allows a more energy-efficient operating mode. The authors of the paper obtained a reduction of memory energy of up to 34%.

 
Power Conservation—A Shared Goal for SoC Developers

"When it comes to power management in SoC devices, hardware engineers usually determine the power budget. Yet, software controls the use of peripherals and interfaces critical to power management. Power dissipation typically is calculated based on hardware factors such as voltage, frequency and number of gates; software controls the frequency of service, which significantly impacts the power budget. Cadence believes power management responsibility should be shared by both hardware engineers and embedded software engineers. Unfortunately, few tools provide coordinated views of the same problem. The power dissipation challenge underscores the importance of tools that enable designers of complex SoCs to make appropriate choices for hardware architecture, embedded software architecture and physical implementation."
Michael O'Reilly
Cadence Design Systems
 
Unfortunately, these types of power-saving design techniques are not normally used by embedded-software designers working on SoCs—these designers' major concerns are finishing the software-development project on time and within timing (speed) specifications.

Making Embedded Software Designers "Power Savvy"
There are several ways of implanting a "low-power consciousness" into embedded software designers. From a design-methodology perspective, when developing original system specifications, which would include speed and power constraints, bring the software team in at the beginning. Make lower power a goal of the software-development team, as is done with the hardware design team. Give software developers extra time during the hardware virtual-prototype phase to compare different code streams to see which results in minimum power (while still meeting other performance specifications).

Vendors of hardware/software co-design EDA tools offer products that allow early SoC embedded-software and virtual-hardware integration and evaluation (with varying degrees of success). These tools concentrate on meeting functional and timing specifications—power is not a primary consideration. Design-tool companies need to consider power analysis as part of the domains of both the software and hardware teams of the SoC development project. This paradigm shift will require changes in HW/SW co-development tools that would allow software designers to evaluate their code, when running on a prototype of the target hardware, with respect to power dissipation as well as run time.

Software Can Make the Difference
With similar silicon-foundry processes and a push to higher levels of hardware reusability to meet time-to-market requirements, many analysts feel that differences between products targeting a common application will come from an SoC's embedded software, not the chip hardware. This is certainly the case for the speed and feature set of the end product. Why not put low-power operation into the mix and let embedded-software designers help give a "low-power" edge to their target products?





Please sign in to post comment

Navigate to related information

Datasheets.com Parts Search

185 million searchable parts
(please enter a part number or hit search to begin)

Feedback Form