Application of Suspend Mode to Automotive ECUs 2018-01-0021
To achieve high robustness and quality, automotive ECUs must initialize from low-power states as quickly as possible. However, microprocessor and memory advances have failed to keep pace with software image size growth in complex ECUs such as in Infotainment and Telematics. Loading the boot image from non-volatile storage to RAM and initializing the software can take a very long time to show the first screen and result in sluggish performance for a significant time thereafter which both degrade customer perceived quality. Designers of mobile devices such as portable phones, laptops, and tablets address this problem using Suspend mode whereby the main processor and peripheral devices are powered down during periods of inactivity, but memory contents are preserved by a small “self-refresh” current. When the device is turned back “on”, fully initialized memory content allows the system to initialize nearly instantaneously. While the basic concept is more than ten years old, there has been limited deployment of Suspend mode in automotive ECU designs due to lack of support in automotive-grade microprocessors and the accompanying overall increase in software and hardware complexity. Recent availability of Suspend-capable automotive-grade microprocessors and adoption of operating systems such as Linux and Android have renewed automotive industry interest in Suspend mode, in particular Suspend-to-RAM, in order to meet startup performance requirements. This paper discusses hardware and software design considerations in implementing Suspend mode in an automotive ECU, presents a sample power management design, and describes how Suspend-Resume is implemented in the Linux operating system.