S3 BIOS operating system switch

Arrangements for employing a system BIOS (basic input/output system) to handle email during a suspended state (such as an “S3” state as will be better understood herebelow). Preferably, the BIOS is employed to “jump” between two suspended images such that, e.g., two more powerful OS's can be employed to manage the mail function.

FIELD OF THE INVENTION

The present invention relates generally to notebook computers and the like, and to methods and arrangements for managing electronic mail in such settings.

BACKGROUND OF THE INVENTION

Notebook computers (which may also alternatively be referred to as “notebooks”, “laptops”, “laptop computers” or “mobile computers” in the present discussion) generally are not as flexible and versatile with the handling of electronic mail as might be desired. One of the major impediments to better mail handling has been the fact that notebooks (and other personal computers), because of the power states normally employed (e.g., the system does not run when the lid is closed), cannot download mail when the system is suspended (e.g., when the lid is closed). However, the handling of mail in a suspended state would appear to be a great boon to notebook users as this would help replicate such a function as is known and employed in hand-held mobile devices (such as the “BLACKBERRY” devices manufactured by Research In Motion, Waterloo, Ont., Canada).

Accordingly, in view of the foregoing, a need has been recognized in connection with improving upon the mail handling capabilities of notebooks so as to expand their functionality in scenarios that, for one reason or another, have hitherto been off-limits.

SUMMARY OF THE INVENTION

In accordance with at least one presently preferred embodiment of the present invention, a system BIOS (basic input/output system) is employed to handle email during a suspended state (such as an “S3” state as will be better understood herebelow). Preferably, the BIOS is employed to “jump” between two suspended images such that, e.g., two more powerful OS's can be employed to manage the mail function.

In summary, one aspect of the invention provides a system comprising: a main memory; a hard drive; a BIOS; a first operating system; and a second operating system; the first operating system acting to download mail responsive to a first condition; the second operating system acting to download mail responsive to a second condition; the BIOS acting to activate the second operating system responsive to the second condition.

Another aspect of the invention provides a method comprising the steps of: downloading mail with a first operating system, responsive to a first condition; downloading mail with a second operating system, responsive to a second condition; and employing a BIOS to activate the second operating system responsive to the second condition.

Furthermore, an additional aspect of the invention provides a program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform a method comprising the steps of: downloading mail with a first operating system, responsive to a first condition; downloading mail with a second operating system, responsive to a second condition; and employing a BIOS to activate the second operating system responsive to the second condition.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Referring now toFIG. 1, there is depicted a block diagram of an illustrative embodiment of a computer system12. The illustrative embodiment depicted inFIG. 1may be a notebook computer system, such as one of the ThinkPad® series of personal computers sold by Lenovo (US) Inc. of Morrisville, N.C., however, as will become apparent from the following description, the present invention is applicable to any data processing system.

As shown inFIG. 1, computer system12includes at least one system processor42, which is coupled to a Read-Only Memory (ROM)40and a system memory46by a processor bus44. System processor42, which may comprise one of the AMD™ line of processors produced by AMD Corporation or a processor produced by Intel Corporation, is a general-purpose processor that executes boot code41stored within ROM40at power-on and thereafter processes data under the control of operating system and application software stored in system memory46. System processor42is coupled via processor bus44and host bridge48to Peripheral Component Interconnect (PCI) local bus50.

PCI local bus50supports the attachment of a number of devices, including adapters and bridges. Among these devices is network adapter66, which interfaces computer system12to a LAN, and graphics adapter68, which interfaces computer system12to display69. Communication on PCI local bus50is governed by local PCI controller52, which is in turn coupled to non-volatile random access memory (NVRAM)56via memory bus54. Local PCI controller52can be coupled to additional buses and devices via a second host bridge60.

Computer system12further includes Industry Standard Architecture (ISA) bus62, which is coupled to PCI local bus50by ISA bridge64. Coupled to ISA bus62is an input/output (I/O) controller70, which controls communication between computer system12and attached peripheral devices such as a keyboard and mouse. In addition, I/O controller70supports external communication by computer system12via serial and parallel ports. A disk controller72is in communication with a disk drive200. Of course, it should be appreciated that the system12may be built with different chip sets and a different bus structure, as well as with any other suitable substitute components, while providing comparable or analogous functions to those discussed above.

Indicated at86is a BIOS (basic input/output system) whose functioning, in accordance with at least one presently preferred embodiment of the present invention, will be better understood from further discussion herebelow.

In accordance with at least one presently preferred embodiment of the present invention, BIOS86is employed to handle email during a suspended state (such as an “S3” state). Preferably, the BIOS86is employed to “jump” between two suspended images such that, e.g., two more powerful OS's can be employed to manage the mail function. Essentially, since the BIOS86may not have the strength of function to perform an email handling task as contemplated, the jumping between two suspended images becomes very desirable.

Normally, a standby state (often referred to as an “S3” state) equates to a complete system shutdown, except for memory. Thus, in an S3 or standby state (which terms will heretofore be used and can be understood interchangeably) the memory (e.g., system memory46inFIG. 1) remains coherent while other system elements are not. Such a state often prevails when, without actually shutting down a notebook system, a distinct physically act takes place such as the closing of the notebook lid. This state contrasts with what is commonly known as “S4”, or “hibernate”, and “S5”, or “power off”. S4/hibernate relates to a low battery state when, to avoid a degree of system corruption that might otherwise occur when battery power completely runs out, all open applications are rolled out to a file on the hard drive without being retained in system memory per se. S5 or power off, essentially, relates to complete system shutdown. S3/standby particularly contrasts with S4/hibernate in that the former normally involves a much faster resume time, e.g., when the lid is reopened; on the other hand, resuming a system from hibemation/S4 is typically a longer and more inconvenient process. Herein, the terms “S3” and “standby” and “suspend”, and their derivatives, should be understood as being interchangeable with each other for the purposes of discussion, as should the pair of terms “S4” and “hibernate” (and their derivatives) as well as the pair of terms “S5” and “power off” (and their derivatives).

In accordance with at least one presently preferred embodiment of the present invention, and in a manner to be better understood and appreciated herebelow, mail may be managed and handled via the intervention of system BIOS86in two operating systems (OS's). Preferably, a first OS will download the mail when the system is active. Then, when the system is suspended, as in a S3/standby state, the second OS will preferably be activated periodically (e.g., by policy) to read the mail into memory. This second OS will be protected by the BIOS's bus master interface (BMI) memory protection facilities in such a way that the mail will be secure in memory.

Preferably, the first OS as mentioned above is a “primary” or “main” OS as normally employed by the system (indicated by the dotted box at89as normally encompassing components40,41,42,46and48) while the second OS can be embodied by an Always On Operating System (AO OS, or “AO”), indicated at90. Preferably, an AO image will be placed in its own memory92during a transition between S4 (or hibernate) and S5 (or power off) states. (Generally, the AO OS is optimized just to handle email so it runs like a “BLACKBERRY”, particularly with low power as compared to the primary OS.) When the primary OS89goes into standby or S3 State, the AO90will preferably be periodically powered on to allow the AO90to save mail in memory92. (Thus, at this point the AO OS will get mail from the mail server.) When the AO90has completed such a task, it preferably will suspend (go into S3). The BIOS will then preferably “bounce” between the two suspended images (or images in S3). As such, preferably, BIOS86will include, or be in communication with, an event manager88which determines which of the two OS's (primary and AO) will be started in accordance with timer events. (As such, a timer88ais preferably in communication with BIOS86and system12and acts to prompt switching between images in S3 in a manner to be better understood herebelow.)

Preferably, the AO90and BIOS86will process normal wake events that occur while the AO90is running. Should such a wake event occur (for instance, opening the lid), the AO90will preferably be suspended and the primary OS89will be started.

The AO90should preferably be configured to support a ACPI (advanced configuration and power interface) to control, as known, thermals and acoustics as well as the suspend states.

The AO90can be embodied by essentially any suitable operating system that is capable of functioning as described herein, e.g., a “WINDOWS CE” or “WINDOWS PE” system, or a “LINUX” system. The AO90can be provided in the form of a system card or in essentially any other suitable form, such as via components already in the computer (e.g., a portion of a hard drive).

In view of the foregoing,FIG. 2schematically illustrates data flows in accordance with a preferred embodiment of the present invention. Primary OS89, AO90, BIOS86are all indicated by large dotted boxes, as is a “hardware suspend state” at 94 (relating to an S3/suspend state of system12fromFIG. 1). Different flows are depicted, each relating to a different scenario, with termini of each flow indicated with a circle a, b, c or d. Accordingly, if the primary OS89is in operation and the notebook lid closes (202), this prompts (as is well-known) a suspend or S3 state of the primary OS89. Preferably, then, at204, BIOS86captures the requests to suspend, sets or resets one or more timers (e.g., timer88afromFIG. 1), and then places the system at large in an S3 state (at a).

In accordance with another data flow, hardware suspend state94may be terminated if, e.g., the notebook lid opens (206). (It should be noted that the closing and opening of a notebook lid presents but one illustrative and non-restrictive example of the type of intended action that may initiate or end a suspend state, and that any mention of a lid opening or closing herein can be regarded as encompassing a very wide variety of other intended acts that yield a similar result.) In response to this, BIOS86preferably determines that the primary OS89must run, and then prompts primary OS89to run (b).

In accordance with a preferred embodiment of the present invention, AO90may be activated under given conditions, thus permitting BIOS86to switch between images in the primary OS89and AO90as touched on heretofore. Accordingly, if a timer (e.g.,88ainFIG. 1) terminates a system suspend state (210), then (at212) the event manager (e.g.,88inFIG. 1) associated with BIOS86will determine that AO90is ready to run and will call an AO waking vector, thereby prompting AO90to run (c). Finally, if for any reason AO90suspends (214), then at216BIOS86, as with step204, will preferably capture the requests to suspend, sets or resets one or more timers (e.g., timer88afromFIG. 1), and then places the system at large in an S3 state (at d). It should be noted that steps210-216can by cycled through multiple times.

The data flows illustrated inFIG. 2assume that the system has already been initialized and booted. While these acts can be undertaken in essentially any suitable matter, in accordance with a presently preferred embodiment of the present invention, the AO is loaded during initialization only after real mode memory has been saved. The AO is then preferably suspended, and the AO image is put in a mode where it can be called out of S3/suspend. Finally, the AO image is preferably moved to a reserved space, e.g., on the hard disk drive. Booting, on the other hand, preferably involves saving the AO image into memory followed by a loading of the primary OS.

FIG. 3schematically illustrates an “always on” physical memory map that may be employed in accordance with a preferred embodiment of the present invention. For a 32 bit processor, the maximum accessible memory size is 4 Gigabyte. The chart illustrates that the data structures will be kept at the top of memory. 8 Megabyte is an sample size of the AO and is only used as here as an illustrative and non-restrictive example. “4G”, in the drawing, is the actual physical address of the top item in the memory map and “8M” relates to how much memory is in each slot.

As shown, the AO memory92may include the following components if processes and data flows in accordance with a preferred embodiment of the present invention are carried out: a hardware-based memory mapped I/O (MMIO), integrated graphics, an SMI handler, and the AO OS which may preferably be loaded into memory during a transition between S4 and S5 states. SMI memory protections may be used to protect the AO OS image at run time. Particularly, since SMI has access to all memory, there is a potential that a virus could take over this memory and create harm. Because of this, there are hardware protections which, after initialization, protect the SMI memory from access by anyone other than the SMI handler. These protections go away in accordance with the Sx states and the BIOS then needs to reestablish protection. Because of this, the BIOS can use the protection capability to also shield the AO OS from corruption.

Other components in the memory92may include AO data (which can be used as a queue to pass data between the two OS's), the primary OS saved image, ACPI tables, the primary OS and, again, the OS. If required, the BIOS can exchange the primary OS and the AO into lower memory. If the AO needs to run in lower memory (i.e., needs access to interrupt handlers), the BIOS would need to swap the AO and the lower part of the Primary OS. This would occur in the transition (212) and only needs to happen if the AO needs access to lower memory. On transitioning back to the Primary OS, the BIOS (208) would swap again so memory would not be changed in the swapping states.

It is to be understood that the present invention, in accordance with at least one presently preferred embodiment, includes elements that may be implemented on at least one general-purpose computer running suitable software programs. These may also be implemented on at least one Integrated Circuit or part of at least one Integrated Circuit. Thus, it is to be understood that the invention may be implemented in hardware, software, or a combination of both.

If not otherwise stated herein, it is to be assumed that all patents, patent applications, patent publications and other publications (including web-based publications) mentioned and cited herein are hereby fully incorporated by reference herein as if set forth in their entirety herein.