Power Management – Hardware Software Co-design
Power consumption by embedded devices is a key issue that needs to be addressed during any embedded product development. There is always a need to extend battery life and/or reduce the environmental impact of a system. The performance of embedded devices is highly dependent on adequate power management. Embedded devices are being packed with more and more features while the power budget has not changed much.
Historically, power management for embedded devices was something that was mainly addressed at the hardware level. But, in modern embedded systems, software takes an increasing responsibility for power management. This warrants effective power management using the available hardware and software resources; also referred to as hardware software co-design.
Implementation of Power Management Techniques
There are different levels at which Power Management can be implemented – from energy efficient peripherals and adaptive digital systems to power aware software programs. Device power optimization automatically reduces the amount of power used by individual devices or components when not in demand to perform some function. Disk drives, monitors, adapters, and even CPUs can provide this power-saving feature. The effect of device power management is transparent to the computer user.
The overall system is still in operation, and is able to respond to requests for service from devices. Those devices are able to power up for full service within seconds when needed. Traditionally, power optimization and power management has been about switching on/off devices as required for a particular use. Recent developments in technologies have enabled chips with dynamic voltage and frequency scaling capabilities which is generally seen in microprocessors.
The Power Management eco-system provides mechanisms starting from build time set ups to application software to make the implementation power sensitive. Starting from CPU scaling to set the core processor in a dynamically adaptive scaling based on load to a power management infrastructure that can sense the power budget available and control application launches, these software setups provide considerable power management capabilities.
While designing low power embedded devices, it is important to choose the right hardware components that can be put to power down modes and enable software to put hardware modules into different states of activity based on requirements for effective power handling. The hardware design inherently can bring in reliable real-time performance while software design bring in flexibility and configurability .Thereby, hardware software co-design increases the effectiveness of power management manifold.
An interesting example of power management in hardware software co-design is battery management in smart phones. When the battery level in your smart phone goes below certain levels, some of the services are automatically disabled. This is because of the hardware- software co-design in smart phones.
Power management is done using the battery charger chip and a fuel gauge chip in hardware that performs power management and also provides battery statistics. Software then needs to consistently monitor battery statistics and helps policy manager to take decisions on power budget allocation to requests from applications. This is why certain requests like playing a video or audio clip will indicate a low battery signal. When the device is inactive, the power policy manager automatically puts the device into power saving mode.
Hardware software co-design is imperative for efficient power management given the present day design challenges of time to market, cost, energy efficiency and ever increasing product features and design complexity. It comes with its own set of dynamism and complexities, which when handled with diligence and focus, yields great results. As a designer, hardware software co-design is a very powerful tool for efficient power optimization, to meet system demands in an optimized manner.
*Published in EE Times India