Methods and systems to perform a computer task in a reduced power consumption state

Methods and systems to perform a computer task in a reduced power consumption state, including to virtualize physical resources with respect to an operating environment and service environment, to exit the operating environment and enter the service environment, to place a first set of one or more of the physical resources in a reduced power consumption state, and to perform a task in the service environment utilizing a processor and a second set of one or more of the physical resources. A physical resource may be assigned to an operating environment upon an initialization of the operating environment, and re-assigned to the service environment to be utilized by the service environment while other physical resources are placed in a reduced power consumption state.

BACKGROUND

Computer systems include a plurality of physical resources that consume electrical power.

A computer system may include a system-wide power-save feature to place all or substantially all physical resources, including an instruction processor, in a reduced-power or sleep state.

During normal operation, a computer system may utilize one or more physical resources when performing a task, during which one or more other physical resources may not be utilized. For example, a data transfer between a storage device and a network may utilize the storage device and a network interface card, but may not utilize other physical resources, such as a display, a printer, a keyboard, and other physical resources.

Where a computer task may take a relatively long period of time to complete, such a as a relatively large data transfer, or where the task may be performed when the computer is not needed for other purposes, maintaining non-utilized physical resources in active states unnecessarily consumes power.

In the drawings, the leftmost digit(s) of a reference number identifies the drawing in which the reference number first appears.

DETAILED DESCRIPTION

FIG. 1is a process flowchart of an exemplary method100of performing a task in a computer system with one or more physical resources of the computer system in a lower power consumption mode or state.

At102, one or more tasks or functions are performed in an operating environment of a computer system. The one or more function may be performed in response to one or more applications running within the operating environment.

At104, a determination may be made to perform a task in a power saving mode.

At106, upon a determination to perform a task in a power saving mode, a first set of one or more physical resources of the computer system is placed in a lower power consumption mode or state, and a processor and a second set of one or more of the physical resources are maintained in an active mode or state.

Physical resources may include an input/output (I/O) device, which may include one or more of:a human interface device (HID), such as a display or monitor, a printer, a keyboard, and a pointer device;a storage device, such as a hard disk drive storage device, an optical storage device, and a removable storage device; anda network interface card (NIC) device.

The lower power consumption state may include one or more of a reduced performance state and an inactive state. A lower performance state may include a reduced operating speed state. An inactive state may include one or more of an intermediate power state, such as a D1or D2state, and a power-off state, such as a D3state, in which a corresponding device may be unresponsive to a communication bus.

The processor may be maintained at normal performance state or a lower performance state, such as a lower speed state.

Where the computer system includes multiple processors, or cores, at least one of the processors or cores is maintained in an active state. Remaining processors or cores may be placed in a lower power consumption state, which may include one or more of a lower performance state and an inactive state. An inactive state may include one or more of a halt state, such as a C1state, a stop-clock state, such as a C2state, and a sleep state, such as a C3state, and a power-off state.

At108, the task is performed using the active processor and the second set of one or more active physical resources.

The second set of one or more physical resources may include a network interface device and a storage device, and the task may include controlling the network interface device to transfer information between a network and the storage device. The task may include one or more of uploading information from the computer system to the network, which may be performed to back-up information from the computer system to the network, and downloading information from the network to the computer system. As used herein, information may include one or more of data and instructions.

The computer system may be configured to support multiple operating environments, and to perform the task from a service environment while other operating environments are essentially in a sleep state, examples of which are provided below.

FIG. 2is a process flowchart of an exemplary method200of virtualizing physical resources of a computer system with respect to an operating environment and a service environment, and performing a service task in the service environment with one or more physical resources of the computer system in a lower power consumption state.

At202, physical resources of a computer system are virtualized with respect to one or more operating environments and a service environment. The one or more operating environments may include one or more conventional operating environments. The virtualization of physical resources may include initiating virtual machine management (VMM) logic on the computer system.

At204, one or more tasks or functions are performed in the operating environment. The one or more function may be performed in response to one or more applications running within the operating environment.

At206, a determination may be made to perform a service environment task or service task in a power saving mode or state. The determination may be made in response to one or more of a scheduled service task, request from the operating environment to place the computer system in a reduced power consumption mode when a service task is in progress or scheduled, and an instruction received over a network.

At208, upon a determination to perform a service task in a power saving mode, the operating environment is exited and the service environment is entered.

The exiting of the operating environment may include or be similar to a virtual machine (VM) exit, and may include saving a state of the operating environment, including states of any application running in the operating environment and any associated open data files, to permit subsequent re-entry to the operating environment without re-booting. State information may be saved to one or more of volatile memory, such as random access memory (RAM), as in a sleep or S3state, and non-volatile memory, such as a hard disk drive, as in a hibernate or S4state.

The exiting of the operating environment may include exiting applications and closing associated data files, without saving state information, akin to a soft-off state, such as a G2or S5state, or a mechanical-off state, such as a G3state.

At210, a first set of one or more physical resources of the computer system is placed in a lower power consumption state, while a processor and a second set of one or more of the physical resources are maintained in an active state, substantially as described above with respect to106inFIG. 1.

At212, the service task is performed in the service environment using the active processor and the second set of one or more active physical resources.

At214, the service environment may be exited upon completion of the service task. Upon exiting the service environment, the second set of one or more physical resources may be placed in lower power consumption state. Alternatively, the operating environment may be re-entered or re-activated and the first set of one or more physical resourced may be returned to an active state.

A service environment may be configured to perform multiple service tasks, one or more of which may have a corresponding set of active physical resources. A computer system may be configured to support multiple service environments, each having one or more corresponding service environment tasks and corresponding active physical resources.

The placing of the first set of one or more physical resources in the reduced power consumption state may be performed selectively, as described below with respect toFIG. 3. For example, where the service task may be completed relatively quickly, the first set of one or more physical resources may be maintained in an active state and the operating environment may be re-entered upon completion of the service task. Where the service task may take a relatively long time, the first set of one or more physical resources may be placed in the reduced power consumption state as described above with respect toFIG. 2.

FIG. 3is a process flowchart of an exemplary method300of selectively placing a set of one or more physical resources of the computer system in a lower power consumption state when performing a service environment task.

At302, physical resources of a computer system are virtualized with respect to one or more operating environments and a service environment, including assigning a first physical resource to the operating environment and assigning a second physical resource to the service environment.

At304, operation of the computer system switches between the operating environment and the service environment to perform tasks using the corresponding assigned physical resources.

For example, the first physical resource may include a storage device, such as a hard disk drive, and the second physical resource may include a network interface device, referred to herein as a network interface card (NIC). The service task may include controlling the NIC and the storage device to transfer data between the storage device and a network. Switching between the operating environment and the service environment at304may include entering the service environment to communicate between the computer system and a network, and entering the operating environment to access the storage device. The switching at304may include corresponding virtual machine (VM) exits and VM entries. Where a service task is to be completed relatively quickly, physical resources of the computer system may be maintained in active states during the service task.

At306, a determination may be made to perform, or continue performing a service task in a power saving mode, substantially as described above with respect to206inFIG. 2.

At308, upon a determination to perform a service task in a power saving mode, the operating environment is exited, substantially as described above with respect to208inFIG. 2.

At310, a first set of one or more physical resources of the computer system is placed in a lower power consumption state, and a processor and a second set of the physical resources are maintained in an active state, substantially as described above with respect to210inFIG. 2.

In the example ofFIG. 3, the second set of the physical resources includes the first and second physical resources initially assigned to the operating environment and the service environment, respectively.

At312, the first physical resource is re-assigned to the service environment, to allow the first physical resource to be controlled from the service environment. The re-assigning may include providing direct access to a driver associated with the first physical resource, or re-initiating the driver within or with respect to the service environment. Assigning of the first physical resource to the service environment may include updating a system management controller, and may include updating an interrupt processing feature of a system management controller, or SMC IRP.

At314, the service task is performed in the service environment using the active processor and the second set of one or more active physical resources, including the first and second physical resources.

At316, upon completion of the service task, service environment may be exited. Upon exiting the service environment, the processor and the second set of physical resources may be placed in lower power consumption states, which may be akin to placing the computer system in a system-wide sleep mode. Alternatively, the operating environment may be re-entered, the first set of physical resources may be placed in active states, and the first physical resource may be re-assigned to the operating environment.

A determination may be made between effecting system-wide sleep mode and re-entering the operating environment. Such a decision may be made in response to input received from the operating environment at306.

One or more features described herein with respect to methods100,200, and300may be implemented alone and in various combinations with one another.

One or more of methods100,200, and300, and portions thereof, may be implemented in logic, which may include one or more of integrated circuit logic and computer program product logic.

FIG. 4is a block diagram of an exemplary computer system400, including one or more computer instruction processing units or cores, illustrated here as a processor402, to execute computer program product logic, also known as instructions, code, and software.

Computer system400includes memory/storage404, including a computer readable medium having computer program product logic or instructions406stored thereon, to cause processor402to perform one or more functions in response thereto.

Computer system400includes physical resources408, which may include one or more of a network interface device or card (NIC)410, a hard disk storage device (HD)412, a display or monitor414, a printer device416, an audio speaker418, and a removable storage device420.

Computer system400includes a communications infrastructure422to communicate data and instructions amongst processor402, memory/storage404, and physical resources408. Communications infrastructure422may include a universal serial bus (USB) interface to one or more of physical resources408.

In the example ofFIG. 4, logic406includes boot logic424, to cause processor402to initialize computer system400upon a system reset. Boot logic424may include driver logic corresponding to one or more of physical resources408to cause processor402to initialize corresponding physical resources408following a system reset. Boot logic424may include extensible firmware interface (EFI) logic.

Logic406further includes virtual machine management (VMM) logic426to cause processor402to virtualize one or more of physical resources408to one or more operating environments.

Logic406further includes service environment logic428, including service operating system (SOS) logic430to cause processor402to host a service environment, and service task logic432to cause processor402perform one or more service tasks within the service environment.

Logic406further includes operating environment logic434, including operating system logic436to cause processor402to host an operating environment. Operating environment logic434may include application logic438corresponding to one or more application programs to cause processor402to perform one or more tasks within the operating environment. Operating environment logic434may include service task management console logic440to cause processor402to initiate and/or schedule a service task to be performed in the service environment. Service task management console logic440may include logic to cause processor402to display a console or window and to receive user-input.

Logic406further includes power management logic442to cause processor402to place one or more of physical resources408in a reduced power consumption state.

Logic406may include decision logic444to invoke service task logic432and power management logic442, substantially as described above with respect toFIG. 3.

Exemplary operation of computer system400is described below with respect toFIGS. 5-8. Computer system400is not, however, limited to the examples below.

FIG. 5is a graphical depiction of an exemplary environment500of computer system400, including a VMM layer502corresponding to VMM logic426inFIG. 4, to host an operating environment504corresponding to operating system logic436inFIG. 4, and a service environment506corresponding to SOS logic430inFIG. 4.

Service environment506may include one or more service task agents512corresponding to service task logic432to perform one or more service tasks in service environment506.

Operating environment504may include a service task management console508corresponding to service task management console logic440inFIG. 4, which may include a display window to present selectable features corresponding to service task agent512.

Operating environment504may include one or more applications510corresponding to application logic438inFIG. 4.

In the example ofFIG. 5, physical resources408are illustrated in active states, and thus may be accessible to one or more of operating environment502and service environment504.

FIG. 6is a graphical depiction of an exemplary environment600of computer system400, wherein operating environment504is illustrated as inactive and service environment506is illustrated as active. Additionally, a first set602of physical resources408is illustrated as inactive and a second set604of physical resources408is illustrated as active.

In the example ofFIG. 6, the active second set604of physical resources408include NIC410and HD412. Service task agent512may be configured to control NIC410and HD412to download data and/or instructions from a network to HD412, and/or to upload data and/or instructions from HD412to the network.

As described above with respect toFIG. 3, one or more of physical resources408may be assigned to operating environment504. Similarly, one or more other physical resources of physical resources408may be assigned to service environment506.

FIG. 7a graphical depiction of an exemplary environment700of computer system400, wherein NIC410is assigned to a service environment and HD412is assigned to an operating environment.

Environment700includes a VMM layer702corresponding to VMM logic426inFIG. 4, to host an operating environment704corresponding to operating system logic436inFIG. 4, and a service environment706corresponding to SOS logic430inFIG. 4.

Service environment706includes a download agent712, corresponding to service task logic432, to control data transfers between NIC410and HD412when a first set of physical resources is placed in a reduced power consumption state.

Operating environment704may include a download management console708corresponding to service task management console logic440inFIG. 4, which may include a console or display window to present selectable features corresponding to download agent712.

Operating environment704may include one or more applications710corresponding to application logic438inFIG. 4.

Operating environment704may include a HD native driver714to access HD412, as illustrated at715. Operating environment704may further include a HD local driver716to process HD access requests719from service environment706. Service environment706may include a HD local driver718to send HD access requests719.

Similarly, service environment706may include a NIC native driver720to access NIC410, as illustrated at721. Service environment706may further include a NIC local driver722to process NIC access requests725from operating environment704. Operating environment704may include a NIC local driver724to send NIC access requests725.

One or more of drivers714,716,718,720,722, and724may be initialized during a boot procedure of computer system400.

During normal VMM operation, when operating environment704sends a NIC access request725, processor402may exit operating environment704and enter service environment706, to process NIC access request725through NIC local driver722and NIC native driver720. This may be performed without invoking power management logic442, and may be performed without invoking download agent712.

Where the processing of NIC access request725requires access to HD412, service environment706may send a HD access request719. In response, processor402may exit service environment706and enter service environment704, to process HD access request719through HD local driver716and HD native driver714. Processor402may thereafter switch between operating environment704and service environment706one or more additional times to process NIC access request725.

When a network access is to be performed in a reduced power consumption mode, processor402may invoke service task logic432and power management logic442, as described below with respect toFIG. 8.

FIG. 8is a graphical depiction of an exemplary environment800of computer system400, wherein operating environment704is illustrated as inactive and service environment706is illustrated as active. Additionally, a first set802of physical resources408, including physical resources414,416,418, and420, is illustrated as inactive, and a second set804of physical resources408, including NIC410and HD412, is illustrated as active.

In addition, HD native driver714is illustrated associated with or assigned to service environment706, to permit service environment706to access HD412without exiting service environment706. Service environment706may thus access NIC410, as illustrated at806, and HD412, as illustrated at808.

Download agent712may be configured to control NIC410to transfer data between HD412and a network, which may include one or more of uploading data from HD412to the network, and downloading data from the network to HD412.

Download management console708may be configured to provide instructions and/or data to download agent712prior to an exit from operating environment704. Download management console708may be configured to receive instructions and/or data from one or more of a user and the network during normal operation.

Download agent712and power management logic442may be invoked following a request from operating environment704to place computer system400in a sleep state or a power-off state. Upon such a request, a determination may be made to perform or continue an existing network interface operation, such as a download or upload operation, in a reduced power consumption mode. In such a situation, operating environment704may be exited in accordance with a sleep mode or power off mode.

Methods and systems are disclosed herein with the aid of functional building blocks illustrating the functions, features, and relationships thereof. At least some of the boundaries of these functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternate boundaries may be defined so long as the specified functions and relationships thereof are appropriately performed. One skilled in the art will recognize that these functional building blocks can be implemented by discrete components, application specific integrated circuits, processors executing appropriate software, and combinations thereof.