Вы находитесь на странице: 1из 10

1.

Abstract
Reducing the energy consumption of PCs is becoming increasingly important with rising energy costs and environmental concerns. Sleep states such as S3 (suspend to RAM) save energy, but are often not appropriate because ongoing networking tasks, such as accepting remote desktop logins or performing background le transfers, must be supported. In this paper we presents Somniloquy, an architecture that augments network interfaces to allow PCs in S3 to be responsive to network traffic. We show that many applications, such as remote desktop and VoIP, can be supported without application-specic code in the augmented network interface by using application-level wakeup triggers. A further class of applications, such as instant messaging and peer-to-peer le sharing, can be supported with modest processing and memory resources in the network interface. Experiments using our prototype Somniloquy implementation, a USB-based network interface, demonstrates energy savings of 60% to 80% in most commonly occuring scenarios. This translates to signicant cost savings for PC users.

2.Introduction
Researchers at Microsoft and UCSD created a network adapter dubbed Somniloquy (meaning to talk in one's sleep) that can process network traffic autonomously, allowing a computer's CPU, hard disk,display, and I/O buses to be powered down without losing connectivity. The Microsoft-UCSD network interface could take over many network-related tasks like bit torrent filesharing, and managing a remote desktop connection and a VOIP account, allowing the connected machine to enter sleep mode without losing its network link. The adapter consists of a gumstix module with a 200 MHz XScale processor, 64 MB of RAM, and a 2GB SD memory card running embedded Linux. When the adapter detects that the connected machine has entered sleep mode, it copies over networking information and carries out simple communications on its behalf.

3.Scinerios
Before we continue, we present three simple scenarios that demonstrate the need for Somniloquy. The user is mobile, e.g. in a cafe or airport, and is waiting for an important voice call using VoIP on their laptop, but their battery is running slightly low, and having it wait in an active on state is wasting battery that could be used during the call itself. The user responds to some emails using their laptop on the train home, where there is no free wireless access. When they arrive home they are greeted by their spouse and young children, and would rather not have to wake the laptop up just to have it send the emails in the outbox.

The user occasionally works from home using a personal notebook, and when doing so prefers to connect to a computer (desktop or laptop) in their ofce for remote desktop use and for access to les, since that machine has greater resources, work-related software and a backed-up and large disk. However, they are conscious of the monetary and environmental costs of leaving their work computer on 365 days a year just in case they were to want remote access. For the rst two scenarios, the users laptop could benet from Somniloquy for application reachability during sleep and for the ability to wake up when a suitable AP comes into range, send the emails, and go back to sleep. For the third scenario, if the work computer were to run Somniloquy, the mobile user could access it remotely at any time without incurring the energy cost of continuously keeping that computer on.

4.Background of the Problem


Many personal computers (PCs) remain switched on for much or all of the time, even when a user is not present , despite the existence of low power modes, such as sleep or suspend-to-RAM (ACPI state S3) and hibernate (ACPI state S4) . The resulting electricity usage wastes money and has a negative impact on the environment. PCs are left on for a variety of reasons ,including ensuring remote access to local les, maintaining the reachability of users via incoming email, instant messaging (IM) or voice-over-IP (VoIP) clients, le sharing and content distribution, and so on. Unfortunately, these are all incompatible with current power saving schemes such as S3 and S4, in which the PC does not respond to remote network events. Existing solutions for sleep-mode responsiveness such as Wake-On-LAN (WoL) have not proven successful in the wild for a number of reasons, such as the need to modify application servers or congure network hardware.

5.Motivation
Prior studies have shown that that users often leave their computer powered on, even when they are largely idle . A study shows that in offices, 67% of desktop PCs remain powered on outside work hours, and only 4% use sleep mode. In home environments, average residential computer is on 34% of the time, but is not being actively used for more than half the time. Among the people who left their home machine powered on, 29% did so for remote access, 45% for quick availability and 57% for applications running in the background, of which le sharing/downloading (40%) and IM/e-mail (37%) were most popular. In the office environment, 52% of respondents left their machines on for remote access, and 35% did so to support applications running in the background, of which e-mail and IM were most popular (47%).

PCs dont go to sleep even when they are unused. Second, signicant energy savings can be achieved if only a few applications remote reachability, le sharing, le downloads, instant messaging, e-mail can be handled when the PC is asleep.

6.Design

Figure 1: Somniloquy augments the PC network interface with a low power secondary processor that runs an embedded OS and networking stack, network port filters and lightweight versions of certain applications (stubs). Shading indicates elements introduced by Somniloquy. Somniloquy consumes between one and two orders of magnitude less power than a PC in idle state. Somniloquy exports a 5 Mbps Ethernet or Wireless interface and a few GB of ash storage. Somniloquy runs an embedded distribution of Linux on a low power 400 MHz X Scale processor. The embedded OS supports a full TCP/IP stack, as well as DHCP and serial port communication primary aims during the development of Somniloquy were: to allow an unattended PC to be in low power S3 state while still being available and active for network-facing applications as if the PC were fully on; to do so without changing the user experience of the PC or requiring modification to the network infrastructure or remote application servers. these goals by augmenting the PCs network interface hardware with an always-on, low power embedded CPU, as shown in Figure 1. This secondary processor has a relatively small amount of memory and flash storage 2 which consumes much less power than if it were sharing the larger disk and memory of the host processor. It runs an embedded operating system with a full TCP/IP networking stack, such as embedded Linux or Windows CE. The flash storage is used as a temporary buffer to store data before the data is transferred In a larger chunk to the PC. A larger flash on the secondary processor allows the PC to sleep longer . This architecture has a couple of useful properties. First, it does not require any changes to the host operating system, and second, it can be incrementally deployed on existing PCs using a peripheral network interface.

Figure 2: Somniloquy software components on the host PC and the secondary processor, and their interactions The high-level operation of Somniloquy is as follows: 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 IPlayer 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. Although the host processor is asleep, power to the network interface and the secondary processor is maintained. To maintain transparent reachability to the host while it is asleep, the secondary processor impersonates the host by using the same MAC and IP addresses, host name, DHCP details, and for wireless, the same SSID. It also handles traffic at the link and network layers, such as ARP requests and pings thereby maintaining basic presence on the network. New incoming connection requests for the host processor are now received and handled by the network stack running on the secondary processor. In this way the PCs transition into sleep is transparent to remote hosts on the network. To ensure that the host PC is reachable by various applications, a process on the secondary processor monitors incoming packets. This process watches for patterns, such as requests on specific port numbers, which should trigger wake-up of the host processor. Although, this simple architecture supports several applications with minimal complexity, Somniloquy can get much greater energy savings for some applications by not waking up the host processor for simple tasks, for example, to send instant messenger presence updates. To perform these tasks on the secondary processor, we require the application writer to add a small amount of application specific code (stubs) on the host and secondary processor. In the rest of this section we describe in more detail how we handle various applications with and without application stubs.

6.1 Somniloquy hardware


There are two main ways to implement Somniloquy: integrated into a laptop(figure 3.a), or as a separate peripheral(figure 3.b). The advantages of an integrated solution are reduced cost and a more compact form factor, which avoids the duplication of network interface hardware. Potentially this would also result in a more highly optimized system. The advantage of a peripheral solution is that it can be retro-tted to existing systems and is also easier to prototype and experiment with. This is facilitated by the fact that many existing laptops already have support for powering peripheral devices while in S3, e.g. via USB. Note that in figure 3.b the laptop potentially has an internal network interface as well as the one available through the Somniloquy peripheral and by this we mean specically an interface of the same technology (e.g. 802.11a/b/g). There are two ways to handle this. The laptops built-in interface can be permanently disabled so that the peripheral interface is used when it is on and by the secondary processor when the laptop is in S3. Alternatively, the laptop can use its internal network interface and the secondary processor can use its separate network interface. However, in order to maintain our aim of transparency to the network, the two interfaces must share the same MAC address (using MAC address spoong). This creates a few extra demands on the software in order to transfer state between the two network interfaces, and to make sure that they are never active simultaneously. The rest of this section will discuss the hardware conguration where Somniloquy is implemented as a separate peripheral, but where the laptop has a network interface using the same technology as that peripheral that it uses when it is awake. Architecturally, we believe this is the most complex case.

Figure 3: Somniloquy hardware for (a) future laptops that come with a secondary processor and network interface,and (b) existing laptops where the secondary processor and network interface can be attached via a peripheral connection, for example, via USB

6.2 Somniloquy software


The Somniloquy host software is implemented on Windows Vista. The Somniloquy daemon detects transition to S3 sleep state, and before this is allowed to occur we transfer the network state (MAC address, IP address, and in the case of the wireless prototype, the SSID of the AP) and other information about the wakeup triggers.

6.3Three different prototypes


We have prototyped three different Somniloquy designs to explore different aspects of operation. The first uses the gumstix as an augmented Ethernet interface, as described. However, in prototype this has some performance limitations so we have also implemented a second design which uses the gumstix in cooperation with an existing high-speed Ethernet interface. Finally, we have a Wi-Fi version. All three prototypes are described in further detail below:

6.3.1Augmented Network Interface:


This implementation the Wired-1NIC version. The architecture is shown in Figure 4, with a photograph of the prototype shown in Figure 5. In this prototype, disable the NIC of the host, and configure the PC to use the USBNet interface (USB connection between the gumstix and the host) as its only NIC. The gumstix is connected to the network using its Ethernet connection. To enable the host PC to be on the network, we set up a transparent layer-2 software bridge between the USBnet interface to the host and the Ethernet interface of the gumstix. This bridge is active when the host is awake. When the host transitions to sleep, the gumstix disables the bridge, and resets the MAC address of its Ethernet interface to that of the USBNet interface of the host. The gumstix thus appears to the rest of the network as the host itself, since it has the same network parameters (IP, MAC address). When the host wakes up, the gumstix resets its MAC address to its original value and starts bridging traffic to the host again. Although our Wired-1NIC prototype hardware supports a 100 Mbps Ethernet interface, we are limited to a throughput of 5Mbps due to the bandwidth supported by the USBNet interface driver. There is also a slight overhead of bridging traffic on the gumstix. Although this limits bandwidth to the host significantly in our prototype, we note that in a final integrated version, this over head of bridging can be avoided by allowing both the host and the low power secondary processor to access the NIC directly.

Figure 4: Block diagram of the Somniloquy prototype system - Wired-1NIC version. The figure shows various components of the gumstix and the USB interfaces to the host laptop.

Figure 5: Photograph of the gumstix-based Somniloquy prototype - Wired-1NIC version

6.3.2Using Existing Network Interface:


Somniloquy can coexist with an existing NIC. On such systems, the overhead of bridging is avoided by using the existing Ethernet interface on the host PC for data transfer when it is awake, with the gumstix using its own Ethernet interface (while still impersonating the host PC) when the host is asleep. We have built this version where the gumstix does not perform Layer-2 bridging, and call it the Wired-2NIC prototype.

6.3.3Using Wi-Fi:
We have also implemented a wireless version of Somniloquy. We were unable to implement a one-NIC version since the Marvell 88W8385 802.11 b/g chipset present on the wifistix does not currently support layer 2 bridging. We have however implemented a Wireless-2NIC version.

7.Energy Savings using Somniloquy:


7.1 Reducing Desktop Energy Consumption
Testbed desktop PC consumes 102W in normal operation and <5W in S3 with Somniloquy. Somniloquy therefore saves around 97W. On this basis, if Somniloquy were to be deployed in an environment where a PC is actively used for an average of 45 hours each week (i.e. 27% of the time), this would result in62kWh of savings per computer in a year.

Figure 6: Power consumption and the resulting estimated battery lifetime of a Lenovo X60 using Somniloquy. The lifetime is calculated using the standard 65 Watt hour battery of the laptop.

7.2 Desktop Energy Savings for Real Workloads Now estimate the energy savings enabled by Somniloquy under realistic workloads. Relating to the use patterns of twenty two distinct desktop PCs; each of which is classified as being either idle, active, sleep or turned off. We then compute the energy consumed by each of the PCs with and without. For ease of exposition, we bin the data into three different categories: PCs that are idle for <25% of the time (7 machines), idle for 25%-75% of the time (6 machines) and finally those that are idle for >75% of the time (9 machines). The average energy savings for these twenty two PCs when using Somniloquy is 65%, as compared to normal operation without Somniloquy. The average energy savings for the PCs in the individual categories are 38%, 68% and 85% respectively. As expected, the most energy savings are for the PCs with larger idle times since they have more opportunity to use Somniloquy.

8.Security
We now present a short analysis of the security threats raised by our architecture. While this is by no means rigorous or complete, it does give a high-level indication as to the issues raised. The functionality that Somniloquy provides, of waking the laptop based on network events, can form the basis of a denial of-energy attack. If an attacker were to learn how to trigger wakeup events, a Somniloquy-enabled device could be repeatedly woken by an attacker, wasting its energy in contrast to a device which was asleep and not wakeable. We combat these using two possible responses. One is to implement secure protocols at the various layers on Somniloquy and only wake on events that are received using such secure protocols, e.g. not waking when an AP is seen but only when it is securely associated with using (e.g.) WPA, and not waking when an incoming packet over TCP is received but only after an initial secure handshake such as SSL has been conducted so that the remote host is known to be legitimate. The problem with this solution is that the complexity of the secondary processors tasks rises signicantly, as does the amount of state that needs to be transferred to and from the secondary processor when going to sleep or resuming. This increases the materials and deployment cost, and will likely reduce the energy benets. A less secure but much simpler solution is to

detect false wake events and either inform the user then or automatically modify the lters to omit those events and inform the user offline. While the functionality of Somniloquy is impaired, the user can then take out-of-band action to determine the cause of the attack (which may also be accidental rather than malicious) and act upon it. The complexity of having network-facing code running in both the main and secondary processors does increase the risk of bugs causing security holes. A security hole on the secondary processor causing it to reveal data kept on it has the potential to reveal network access or application credentials that have been transferred to it. A security hole allowing root access and reprogramming of the secondary processor has even more severe implications, for example, that device can be used to launch subsequent attacks, it can be used to electronically spy in locations which it is carried to by the unaware user, or it could use that processors privileged communications path to the main processor to attack the rest of the device. For that reason, Somniloquy limits the code that runs on the secondary processor to programs that monitor, and at most wake up the laptop with very limited state transfer. Despite the denial-of-energy issue and the added complexity of two devices to secure, Somniloquy does not in some sense intrinsically bring any new security problems, in that the secondary processor is simply performing a set of actions that the main processor would perform anyway if it was awake. As such it is not expected that deployment of Somniloquy will cause large security concerns in practice.

8. Conclusions
We have presented Somniloquy, a system that augments network interfaces to allow PCs to be put into low-power sleep states opportunistically, without sacrificing functionality. Somniloquy enables several new energy saving opportunities. First, PCs can be put to sleep while maintaining network reachability, without special network infrastructure as needed by previous solutions (e.g. WoL). Second, some applications can be run in sleep mode thereby requiring much less power. In this paper, we have shown the feasibility for three such applications to be run in sleep mode: BitTorrent, instant messaging, and web downloads. Somniloquy achieves these energy savings without requiring any modifications to network, to remote application servers, or to the user experience of the PC. Furthermore, Somniloquy can be incrementally deployed on legacy network interfaces, and does not rely on changes to the CPU scheduler or the memory manager to implement this functionality, thus it is compatible with a wide class of machines and operating systems. Our prototype implementation, based on a USB peripheral, includes support for waking up the PC on network events such as incoming file copy requests, VoIP calls, instant messages and remote desktop connections, and we have also demonstrated that file sharing/content distribution systems (e.g. BitTorrent, web downloads) can run in the augmented network interface, allowing for file downloads to progress without the PC being awake. Our tests show power savings of 24x are possible for desktop PCs left on when idle, or 11x for laptops. For PCs that are left idle most of the time, this translates to energy savings of 60% to 80%. The electricity savings made are such that deploying a productized version of Somniloquy could pay for itself within a year.

References
Y. Agarwal, R. Chandra, A. Wolman, P. Bahl, K. Chin, and R. Gupta. WirelessWakeups Revisited: EnergyManagement for VoIP over Wi-Fi Smartphones. In MobiSys 07: Proceedings of the 5th international conference on Mobile systems, applications and services Y. Agarwal, T. Pering, R.Want, and R. Gupta. SwitchR: Reducing System Power Consumption in aMulti-Clients, Multi-Radio Environment. In Proceedings of IEEE International Symposium on Wearable Computing (ISWC),2008. P. Lieberman. Wake-on-LAN technology. http://www.liebsoft.com/index.cfm/ whitepapers/Wake_On_LAN

Вам также может понравиться