Tomorrow's Computers Might Talk In Their Sleep

With the increased focus on managing energy costs and reducing human impact on the environment in the form of carbon emissions, we're being encouraged now more than ever to turn our PCs off or let them sleep when they are not in use. The problem is, our digital lives are increasingly dependent on maintaining active network connections for communications, information dissemination, file sharing, and other similar activities that are not possible when a system is off or asleep. As a result, many leave their computers running around the clock, even though the systems remain idle most of that time, consuming needless power.

Current power management schemes were simply not designed with the always-connected mentality that pervades today. In response to this need, a UCSD computer science Ph.D. student, Yuvraj Agarwal, has developed a number of prototype devices that can be used with current systems--all of which can maintain active network connections and even conduct a number of low-power tasks--all while the host system remains in a true sleep mode (such as ACPI states S3 or S4).

"Large numbers of people keep their PCs in awake mode even though the PCs are relatively idle for long blocks of time because they want to stay connected to an internal network or the Internet or both... I realized that most of the tasks that people keep their computers on for--like ensuring remote access and availability for virus scans and backup, maintaining presence on instant messaging (IM) networks, being available for incoming voice-over-IP (VoIP) calls, and file sharing and downloading--can be achieved at much lower power-use levels than regular awake mode." -- Yuvraj Agarwal.

Agarwal refers to this technology as "Somniloquy," which means to talk in your sleep. The Somniloquy architecture "does not require any changes to the operating system, to network hardware (e.g. routers), or to remote application servers." Agarwal's work on the project actually started in the summer 2007, while he was interning at Microsoft Research Cambridge.

Agarwal developed three different Somniloquy prototypes: One that uses a USB connection for network communications, one that works in concert with a system's existing Ethernet connection, and one that uses Wi-Fi. What all three Somniloquy prototypes have in common is that they utilize a secondary, low-power processor that run the Gumstix embedded operating system (OS) and contain "a relatively small amount of memory and flash storage, which consumes much less power than if it were sharing the larger disk and memory of the host processor." The Gumstix OS contains "a full TCP/IP networking stack," but there is no reason why a Somniloquy device couldn't be designed that instead used another embedded OS, such as Windows CE or a version of Linux.

"When the host PC is powered on, the secondary processor does nothing; the network stack on the host processor communicates directly with the network interface hardware. When the PC initiates sleep, the Somniloquy daemon on the host processor captures the sleep event, and transfers the network state to the secondary processor. This state includes the ARP table entries, IP address, DHCP lease details, and associated SSID for wireless networks i.e. MAC- and IP-layer information. It also includes details of what events the host should be woken on, and application-specific details such as ongoing file downloads that should continue during sleep. Following the transfer of this information to the secondary processor, the host PC enters sleep."

The Somniloquy architecture works seamlessly with any application that merely needs the system to be woken up by the device. However, applications that are capable of allowing the device to handle network communications while the system continues to sleep, requires application-specific code "stubs." The prototypes presently include support for "remote desktop access, SSH, telnet, VoIP, IM, web downloads and BitTorrent."

Based on work done with a testbed PC, the system consumed between 11 and 24-times less power when in Somniloquy mode, versus when the system was in an idle state: "For commonly occurring scenarios this translates to energy savings of 60% to 80%."

It remains to be seen if this technology or some derivative of it will ever be implemented in actual products or integrated into systems. At the very least, what this technology shows, however, is that there is still a lot of room for improvement in how today's computers handle power management. Agarwal gave a presentation of the Somniloquy technology, yesterday, at the 6th USENIX Symposium on Networked Systems Design and Implementation (NSDI '09), in Boston, MA, and the technical paper associated with his presentation can be found here (PDF).

Additional information from EurekAlert!