System and method for transferring an active state between a powerful processor and a less powerful processor

An information handling system includes a tablet with a processor, and a dock with a second processor that determines that the tablet is coupled to the dock, boots the dock, receives a request for the tablet to be uncoupled from the dock, creates a migration image with state information of the dock and that identifies a process running on the dock, and sends the migration image to the tablet. The first processor receives the request, boots the tablet, receives the migration image from the second processor, loads the state information to the tablet, and launches the first process.

FIELD OF THE DISCLOSURE

This disclosure relates generally to information handling systems, and more particularly relates to transferring an active state between a powerful processor and a less powerful processor in an information handling system.

BACKGROUND

DETAILED DESCRIPTION OF DRAWINGS

FIG. 1illustrates a hybrid device100that can be implemented as one or more information handling systems. For purposes of this disclosure, an information handling system can include any instrumentality or aggregate of instrumentalities operable to compute, classify, process, transmit, receive, retrieve, originate, switch, store, display, manifest, detect, record, reproduce, handle, or utilize any form of information, intelligence, or data for business, scientific, control, entertainment, or other purposes. For example, an information handling system can be a personal computer, a laptop computer, a smart phone, a tablet device or other consumer electronic device, a network server, a network storage device, a switch, a router, or another network communication device, or any other suitable device and may vary in size, shape, performance, functionality, and price. Further, an information handling system can include processing resources for executing machine-executable code, such as a central processing unit (CPU), a programmable logic array (PLA), an embedded device such as a System-on-a-Chip (SoC), or other control logic hardware. An information handling system can also include one or more computer-readable medium for storing machine-executable code, such as software or data. Additional components of an information handling system can include one or more storage devices that can store machine-executable code, one or more communications ports for communicating with external devices, and various input and output (I/O) devices, such as a keyboard, a mouse, and a video display.

Hybrid device100includes a dock processing system110and a tablet processing system150. Dock processing system110represents a powerful, fully featured information handling system that includes a large data storage capacity, and tablet processing system150represents an information handling system that is less powerful and that includes a smaller storage capacity as compared with the dock processing system. However, tablet processing system150is a lighter, more portable information handling system that has a compact form factor for use as a stand-alone tablet information handling system. As such, dock processing system110can include functions and features associated with a laptop or desktop processing system, such as a large power supply to enable charging of hybrid processing device150, a keyboard device, a mouse/touchpad device, greater I/O capabilities in the form of various I/O connectors, and other devices, as needed or desired. In terms of operating environment, dock processing system110can include a full application stack, such as a desktop or laptop operating system, greater multi-media storage and display capabilities for more graphics intensive applications like game programs or image processing programs, a full application suite, such as an office productivity suite, and the like, as needed or desired. Further, tablet processing device can include functions and features associated with a tablet or pad processing device, such as a touch-screen display device, a WiFi communication device, a pen-based interface device, and other devices, as needed or desired, and can provide a streamlined operating environment, such as a mobile operating system, and mobility-based applications such as mobile device media applications, reduced functionality office productivity applications, and the like.

Hybrid device100is configured to operate in several distinct operating modes to provide a user with flexibility in determining how to use the hybrid device. In a docked mode, dock processing system110and tablet processing system150are connected together, both electrically and physically via their respective connectors122and162. Here, the full functions and features of dock processing system110are utilized to provide a rich user experience, while using tablet processing system150primarily as the display device for hybrid device100. In a particular embodiment, some functions and features of tablet processing device150are utilized when hybrid device100is in the docked mode, such as the touch-screen device or pen-based device features, the storage capacity of the tablet processing device, or other functions or features. In a tablet mode, dock processing system110and tablet processing system150are separated from each other physically and electrically. Here, dock processing system110is shut off or otherwise disabled and the functions and features of tablet processing system150are utilized to provide a mobile user experience. In a particular embodiment, tablet processing system150maintains a data connection to dock processing system100when in the tablet mode, via, for example, a WiFi interface, as needed or desired.FIG. 1illustrates hybrid device100as configured in the docked mode.

Dock processing system110includes a processor112, a storage device114, a dock detector118, a connector interface120, a connector122, a partition manager124, a migration manager130, and a load manager132, and a migration switch134. Processor112represents a desktop or laptop CPU. Storage device114represents a large capacity data storage device, such as a disk drive, an externally attached storage device such as a network attached storage or a storage area network, or the like. Dock detector118operates to provide an indication to dock processing system110that it is connected, or docked, to tablet processing system150. Connector interface120represents a high bandwidth data connection that operates to transfer large amounts of data between dock processing system110and tablet processing system150. For example, connector interface120can include one or more of a high-speed communication link such as a USB 3.0 interface, a SCSI-Ultra interface, a PCIe interface, a SATA interface, a 1394 (Firewire) interface, a HDMI interface, another high-speed communication link, or a combination thereof. In a particular embodiment, connector interface120represents a higher bandwidth for data communication to tablet processing system150than for communication from the tablet processing device. For example, connector interface120can represent a higher bandwidth media link for transferring multi-media data to tablet device150, and a lower bandwidth link for other bi-directional data transfers. Connector122represents a both a physical attachment mechanism and an electrical attachment mechanism between dock processing system110and tablet processing system150. Partition manager124operates to manage data transfers between dock processing system110and tablet processing system150. In a particular embodiment, partition manager124is not a separate data interface, but utilizes a portion of the bandwidth of connector interface120to transfer non-video data between storage device114and a storage device154of tablet processing device150. The operations of migration manager130, load manager132, and migration switch134will be described below with reference toFIG. 3, below.

Tablet processing system150includes a processor152, a storage device154, a dock detector158, a connector interface160, a connector162, a migration manager170, and a partition manager172. Processor152represents a tablet or mobile device CPU. Storage device154represents a smaller capacity data storage device, such as a non-volatile RAM (NVRAM). Dock detector158operates to provide an indication to tablet processing system150that it is docked to dock processing system110. Connector interface160represents the complimentary high bandwidth data connection to connector interface120. Connector162represents the complimentary connector to connector122. Partition manager164operates, in conjunction with partition manager124, to manage data transfers between dock processing system110and tablet processing system150. The operations of migration manager170will be described below with reference toFIG. 3, below.

In the docked mode, shown inFIG. 1, dock processing system110instantiates an operating environment140, including a hardware abstraction layer (HAL)142, a para-virtualization layer144, an operating system (OS)146, and one or more application148. When hybrid device100is booted, a power-on self test (POST) process is initiated that loads HAL142and passes machine execution to para-virtualization layer144. Para-virtualization layer144operates similarly to a virtual machine hypervisor, to launch OS146which provides a user with an operating environment from which to initiate application148. In a particular embodiment, HAL142and para-virtualization layer144reside in a system firmware for dock processing system110that is stored in a small, but fast NVRAM that permits a rapid boot of the dock processing system. In a particular embodiment, para-virtualization layer144operates to manage the launch of one or more additional OS, in which case, dock processing system110can be said to include one or more additional operating environments associated with each additional OS. Other functions and features of para-virtualization layer144will be described below with reference toFIG. 3, below.

FIG. 2illustrates hybrid device100in a first tablet mode, called the forced undock mode. Here, tablet processing system150is disconnected from dock processing system110, the dock processing system is shut-down or otherwise placed into a low-power state, operating environment140is suspended or otherwise shut-down and an operating environment280is instantiated on tablet processing device150. An example of suspending operating environment140includes performing a hibernation operation, a suspend-to-RAM operation, a suspend-to-disk operation, a suspend-to-network operation, another suspend operation, or a combination thereof. Here, in a particular embodiment, a user can have disconnected tablet processing system150from dock processing system110by separating the processing system, such as where connectors122and162are physically connected via a magnetic attachment mechanism. In another embodiment, the user can have disconnected tablet processing system150from dock processing system110by uncoupling a latch mechanism. In either of the above embodiments, dock detector118detects the forced undock, and initiates a shut-down operation in dock processing system110to suspend operating environment140and to shut-down the dock processing system. In a third embodiment, a user interface can provide an option for performing a force undock without having physically disconnected tablet processing system150from dock processing system110. Here, one or more of the elements of operating environment140operates to detect that a user has engaged the user interface option, and initiates the shut-down operation.

Further, when hybrid device100is placed into the forced undock mode, tablet processing system150instantiates operating environment280, including a HAL282, a para-virtualization layer284, an OS286, and one or more application288. When hybrid device100is placed into the forced undock mode, a POST process is initiated that loads HAL282and passes machine execution to para-virtualization layer284. Para-virtualization layer284operates similarly to a virtual machine hypervisor, to launch OS286which provides the user with an operating environment from which to initiate application288. In a particular embodiment, HAL282and para-virtualization layer284reside in a system firmware for tablet processing system150that is stored in a small, but fast NVRAM that permits a rapid boot of the tablet processing system. Other functions and features of para-virtualization layer284will be described below with reference toFIG. 3, below.

FIG. 3illustrates hybrid device100in a second tablet mode, called the migration undock mode. Here, similarly to the forced undock mode, tablet processing system150is disconnected from dock processing system110, the dock processing system is shut-down or otherwise placed into a low-power state, operating environment140is suspended or otherwise shut-down, and an operating environment380is instantiated on tablet processing device150, but the methods and steps to get to the migration undock mode differ from the forced undock mode. However, here migration switch134is used to request the migration undock mode. In a particular embodiment, migration switch134represents a button, a keyboard key or key combination, or another hardware indication that signals for the one or more elements of operating environment140to initiate the migration operation. In another embodiment, migration switch134represents a user interface that provides an option for selecting the migration undock, and one or more of the elements of operating environment140operates to detect that a user has engaged the user interface option, and initiates the migration operation.

When hybrid device100is placed into the migration undock mode, tablet processing system150instantiates operating environment380, similar to operating environment280and including HAL282, para-virtualization layer284, an OS386similar to OS286, and one or more application388similar to application288. A POST process is initiated that loads HAL282and passes machine execution to para-virtualization layer284. Para-virtualization layer284operates to launch OS386which provides the user with an operating environment and initiates application388based upon a migration image390and a data image392provided by migration manager130, as described further, below.

Here, prior to shutting down dock processing system110and suspending operating environment140, load manager132monitors running processes in operating environment140to determine a process footprint for each processes that is running in the operating environment. The process footprints are a quantified value of the amount of resources of dock processing system110that each process is utilizing. In particular, load manager132tracks statistical information regarding each process. Table 1, below, illustrates an example of processes that are being tracked by load manager132. Here, each process is tracked by a process name, an average amount of CPU usage each task is utilizing, an average amount of memory usage each task is utilizing, and a resource footprint for each task. An example of a process includes a program or application running on dock operating system110, a thread of a multi-threaded program or application, a background task such as a print manager, a communication or I/O monitor task, another task, program, or application, or a combination thereof. In a particular embodiment, load manager132does not monitor system tasks that are running in operating environment140, because the system processes that run on tablet processing system150will be different and the system processes that do run on the tablet processing system will be maintained on the tablet processing system.

When hybrid device100is placed into the migration undock mode, load manager132determines a set of processes to be migrated from dock processing system110to tablet processing system150. In a particular embodiment, load manager132determines the set of processes by comparing a total footprint of the processes, a sum of the resource footprints, against a tablet footprint, an amount of resources available to be utilized by tablet processing system150. In particular, if the total footprint is less than the tablet footprint, then all of the processes can be migrated from dock processing system110to tablet processing system150, and the tablet processing system will have adequate resources to run the processes. However, if the total footprint is greater than the tablet footprint, load manager132makes a decision as to which processes should be migrated, and which should not be migrated. In a particular embodiment, load manager132can include a prioritized listing of processes in order to make the decision. In another embodiment, load manager132relies on a user interface to receive input from a user as to which processes should be migrated. For example, in Table 1, the process named Halo-3 can be identified as utilizing too many resources to be successfully migrated to tablet processing system150and can be flagged as such, for example by the fact that the resource footprint is highlighted or otherwise marked.

A list of processes is provided by load manager132to migration manager130, and the migration manager determines a machine state for processor112and operating environment140that is needed to be loaded to tablet processing system150in order to launch the list of processes on the tablet processing system. For example, migration manager130can collect a snapshot of the state of processor112and of operating environment140via one or more known migration mechanisms, such as via a VM-ware V-Motion application or other such similar migration mechanism. Migration manager130also provides a data image392to partition manager124for transfer to partition manager164and storage on storage device154. In this way, data associated with a current state of operating environment140is provided to tablet processing system150. In a particular embodiment, migration image390and data image392are provided as a single image file that is transferred to tablet processing system. In a particular embodiment, a user can pre-select one or more application or activity, such that data or state changes associated with the pre-selected application or activity are mirrored on storage device114and on storage device154. In this way, some or all of data image392can already be stored on storage device154when hybrid device100is placed into the migration undock mode, so as to speed up the migration process. Finally, when migration image390and data image392are transferred to tablet processing system150, dock processing system110and operating environment140are shut down or otherwise suspended, as needed or desired.

While migration manager130creates migration image390and data image392, tablet processing system150performs the POST process to load HAL282and passes machine execution to para-virtualization layer284, and the para-virtualization layer launches OS386. However, the launch of OS386is not finalized until migration image390and data image392are loaded to the tablet processing system. When loading of migration image390and data image392is done, migration manager170operates to provide the machine state information to processor152, to launch the processes included in the list of processes from load manager132, and to provide the data from data image392to the launched applications. Partition manager164sets up a temporary partition356, such that, as tablet processing system150makes changes to any data received in data image392, the changes are stored in the temporary partition for easy re-migration back to dock processing system110when the tablet processing system is re-connected to the dock processing system, as described below. At this point, a user interface is provided to inform the user that the migration is complete, and that tablet processing system150can be disconnected from dock processing system110. The skilled artisan will recognize that passing of both migration image390and data image392are performed via connection interfaces122and162, and that both the migration image and the data image will initially be written to one or more storage device154and temporary partition356for use by migration manager170and partition manager164in completing the migration undock mode event.

When tablet processing system150is reconnected to dock processing system110, a reverse migration process is initiated to restore hybrid device100to the docked mode. Here, migration manager170determines the list of processes that are running on tablet processing system150and a machine state for processor152and operating environment380that is needed to be loaded to dock processing system110in order to launch the list of processes on the dock processing system, and provides a remigration image similar to migration image390to be loaded to the dock processing system. Also, migration manager170provides a data image similar to data image392to partition manager164for transfer to partition manager124and storage on storage device114. While migration manager170is creating the remigration image and the data image, dock processing system110and operating environment140are rebooted or otherwise resumed from the suspend state in preparation for receiving the remigration image and the data image. When dock processing system110receives the remigration image and the data image, operation is resumed in the docked mode, as described above. In a particular embodiment, when tablet processing system150is operating in the docked mode after a remigration, partition manager164deletes temporary partition356. In another embodiment, partition manager164maintains temporary partition356for future migration undock mode events.

FIG. 4illustrates a method for booting a hybrid device such as hybrid device100, starting at block400. A decision is made as to whether or not a tablet processing system is docked in decision block402. For example, one or more of dock detectors118and158can determine if tablet processing system150is docked with dock processing system110. If so, the “YES” branch of decision block402is taken and the dock processing system CPU is run in block404. For example, processor112can be set to begin executing a boot process. The dock is set to initiate a POST in block406and the dock para-virtualization layer is launched in block408. The para-virtualization layer launches the operating system in block410, launches the load manager in block412, launches the storage manager in block414, and the method ends in block426.

If the tablet processing system is not docked, the “NO” branch of decision block402is taken and the tablet processing system CPU is run in block416. For example, processor152can be set to begin executing a boot process. The tablet is set to initiate a POST in block418and the tablet para-virtualization layer is launched in block420. The para-virtualization layer launches the operating system in block422, launches the storage manager in block424, and the method ends in block426.

FIG. 5illustrates a method for transferring an active state between a powerful processor and a less powerful processor, starting at block500. For example, an active state from dock processing device110can be transferred to tablet processing system150. A tablet processing system is undocked from a dock processing system in block502. For example, one or more of dock detectors118and158can determine that tablet processing system150has undocked from dock processing system110. The tablet processing system is initialized in block504. For example, the tablet processing system can be initialized in accordance with the method ofFIG. 4. A decision is made as to whether or not the undocking is a migration undock mode event in decision block506. If not, the “NO” branch of decision block506is taken, the tablet processing system is configured in block520, and the method ends in block522. For example, para-virtualization layer284can launch OS386and application388. If A the undocking is a migration undock mode event, the “YES” branch of decision block506is taken, and a load manager in a dock processing system checks the process statistics in block508. For example, load manager132can check a resource footprint table similar to Table 1, above. A decision is made as to whether or not any of the processes running on the dock processing system are determined by the load manager to be closed in decision block510. If so, the “YES” branch of decision block510is taken, and a user's input is received as to which process is to be closed in block512and the method continues at decision block514. Also, if none of the processes running on the dock processing system are determined by the load manager to be closed, the “NO” branch of block510is taken an the method proceeds to decision block514, where a decision is made as to whether or not any important processes are running on the dock processing system.

If not, the “NO” branch of decision block514is taken, the tablet processing system is configured in block520, and the method ends in block522. If any important processes are running on the dock processing system, the “YES” branch of decision block514is taken and a snapshot of the machine state of the dock processing system is taken in block516. The snapshot can include one or more of migration image390and data image392. The snapshot image is loaded to the tablet processing system in block518, the tablet processing system is configured in block520, and the method ends in block522

Information handling system600can include devices or modules that embody one or more of the devices or modules described above, and operates to perform one or more of the methods described above. Information handling system600includes a processors602and604, a chipset610, a memory620, a graphics interface630, include a basic input and output system/extensible firmware interface (BIOS/EFI) module640, a disk controller650, a disk emulator660, an input/output (I/O) interface670, and a network interface680. Processor602is connected to chipset610via processor interface606, and processor604is connected to the chipset via processor interface608. Memory620is connected to chipset610via a memory bus622. Graphics interface630is connected to chipset610via a graphics interface632, and provides a video display output636to a video display634. In a particular embodiment, information handling system600includes separate memories that are dedicated to each of processors602and604via separate memory interfaces. An example of memory620includes random access memory (RAM) such as static RAM (SRAM), dynamic RAM (DRAM), non-volatile RAM (NV-RAM), or the like, read only memory (ROM), another type of memory, or a combination thereof.

BIOS/EFI module640, disk controller650, and I/O interface670are connected to chipset610via an I/O channel612. An example of I/O channel612includes a Peripheral Component Interconnect (PCI) interface, a PCI-Extended (PCI-X) interface, a high-speed PCI-Express (PCIe) interface, another industry standard or proprietary communication interface, or a combination thereof Chipset610can also include one or more other I/O interfaces, including an Industry Standard Architecture (ISA) interface, a Small Computer Serial Interface (SCSI) interface, an Inter-Integrated Circuit (I2C) interface, a System Packet Interface (SPI), a Universal Serial Bus (USB), another interface, or a combination thereof. BIOS/EFI module640includes BIOS/EFI code operable to detect resources within information handling system600, to provide drivers for the resources, initialize the resources, and access the resources. BIOS/EFI module640includes code that operates to detect resources within information handling system600, to provide drivers for the resources, to initialize the resources, and to access the resources.

Disk controller650includes a disk interface652that connects the disc controller to a hard disk drive (HDD)654, to an optical disk drive (ODD)656, and to disk emulator660. An example of disk interface652includes an Integrated Drive Electronics (IDE) interface, an Advanced Technology Attachment (ATA) such as a parallel ATA (PATA) interface or a serial ATA (SATA) interface, a SCSI interface, a USB interface, a proprietary interface, or a combination thereof. Disk emulator660permits a solid-state drive664to be connected to information handling system600via an external interface662. An example of external interface662includes a USB interface, an IEEE 1394 (Firewire) interface, a proprietary interface, or a combination thereof. Alternatively, solid-state drive664can be disposed within information handling system600.

I/O interface670includes a peripheral interface672that connects the I/O interface to an add-on resource674and to network interface680. Peripheral interface672can be the same type of interface as I/O channel612, or can be a different type of interface. As such, I/O interface670extends the capacity of I/O channel612when peripheral interface672and the I/O channel are of the same type, and the I/O interface translates information from a format suitable to the I/O channel to a format suitable to the peripheral channel672when they are of a different type. Add-on resource674can include a data storage system, an additional graphics interface, a network interface card (NIC), a sound/video processing card, another add-on resource, or a combination thereof. Add-on resource674can be on a main circuit board, on separate circuit board or add-in card disposed within information handling system600, a device that is external to the information handling system, or a combination thereof.

Network interface680represents a NIC disposed within information handling system600, on a main circuit board of the information handling system, integrated onto another component such as chipset610, in another suitable location, or a combination thereof. Network interface device680includes network channels682and684that provide interfaces to devices that are external to information handling system600. In a particular embodiment, network channels682and684are of a different type than peripheral channel672and network interface680translates information from a format suitable to the peripheral channel to a format suitable to external devices. An example of network channels682and684includes InfiniBand channels, Fibre Channel channels, Gigabit Ethernet channels, proprietary channel architectures, or a combination thereof. Network channels682and684can be connected to external network resources (not illustrated). The network resource can include another information handling system, a data storage system, another network, a grid management system, another suitable resource, or a combination thereof.