Chandrasekhar (Chandra) Narayanaswami photo

SoulPad - overview

SoulPad - 2005

Contributors (in alphabetical order): Ramón Cáceres, Casey Carter (summer intern - 2004), Chandra Narayanaswami, M. T. Raghunath

SoulPad is a portable storage device containing the software stack shown below. The three-layer SoulPad software stack enables a paradigm of mobile computing where a user can suspend his computing environment on one PC and resume it on another PC that he may have never seen before. The PC boots an auto-configuring operating system from the SoulPad, starts a virtual machine monitor, and resumes a suspended virtual machine that has the user's entire personal computing environment, which includes the user's files, user's operating system, installed applications, desktop configuration as well as all running applications and open windows. Essentially, SoulPad enables a user to hibernate a PC session to a pocket form-factor device and carry the device to some another PC and resume his session on that PC. SoulPad has minimal dependencies on PCs that can be used to resume a user session. In specific, PCs are neither required to be network connected, nor have any pre-installed software. The only requirement is the support of a high speed local connection to a SoulPad device for an acceptable suspend/resume times and acceptable runtime performance. Our approach differs from Internet Suspend/Resume in several ways: we do not require a known software stack on the PC and also do not rely on network connectivity to fetch suspended virtual machines. In our first prototype, we installed the SoulPad software stack on off-the-shelf hard disks with USB 2.0 interfaces. Since USB 2.0 provides power, we do not need a separate battery to power the SoulPad. In addition, USB 2.0 is fast enough that the performance bottleneck is not the communication link between the SoulPad and the PC. Further, many PC BIOSes support the ability to boot directly from USB disks simplifying the resume operation to one of connecting the SoulPad over USB 2.0 and instructing the PC BIOS to boot from USB. Since the SoulPad device carries the entire personal computing state of a user, it is important that the storage capacity of the device be large enough to hold all of the content that the user needs. Many USB hard disks are based on the same technology as disks on laptop computers, and have similar capacities. Given the popularity of laptop computers, we believe that the capacities of USB hard disks are adequate for a majority of the user population. Since it is possible that the user may lose his SoulPad, we encrypt sensitive data on the SoulPad, namely the virtual machine state using the AES128 block cipher.

Three layerUsage Sequence


Figure 1 : SoulPad software stack and image sequence showing usage model.

The time to resume a suspended session after attaching the SoulPad to the PC is about two minutes. About half of this time is for the auto-configuration of the PC by the Host OS. The time required to suspend a running session and walk away from the PC is about 20 seconds. We note that the suspend and resume times are comparable to the time required for hibernating and rebooting a PC, respectively. As disk storage densities increase, portable devices such as media players, mobile phones, and digital cameras are likely to include large capacity storage disks. For example, a number of portable music players already carry 60GB drives and several cell phones already incorporate 4GB drives. By adding the SoulPad software stack to any such device, we make it possible for a user to carry his personal computing state using a device that the user would carry anyway. The only trade-off is partitioning of the storage capacity between the SoulPad software stack and the native function of the device in question. If the storage capacity is large enough, this approach has the potential to enhance the functionality of the portable device without requiring any additional hardware features, or affecting the usability of the device for instance by reducing its battery life.

The three-layer SoulPad software stack was conceived of by M. T. Raghunath and Chandra Narayanaswami. Subsequently, SoulPad was prototyped, refined, and evaluated jointly by the team listed above.


A video clip demonstrating SoulPad is available here

More information about the SoulPad is available in the following publications.

Reincarnating PCs with Portable SoulPads, M. T. Raghunath, Chandra Narayanaswami, Casey Carter, Ramon Caceres, IBM Research Report RC 23418.

Reincarnating PCs with Portable SoulPads, Ramon Caceres, Casey Carter, Chandra Narayanaswami, M. T. Raghunath, Proc of ACM/USENIX MobiSys 2005, pp. 65-78. (received Best Paper Award at the conference).