Abstract:
A system and method for information preservation on a portable electronic device is disclosed. A signal indicating an energy capacity threshold remaining in the battery of a hand held device may be generated. Then, responsive to such a signal, information may be copied from a volatile memory into a non-volatile memory. The non-volatile memory may be configured to provide instructions for direct execution by a processor, or the non-volatile storage may be attached via an expansion interface. The non-volatile memory may be a removable card. The copy function is typically done in low power modes. Alternatively, the information is only copied provided sufficient battery capacity remains to perform the copy function.

Description:
RELATED APPLICATIONS 
       [0001]    The present application is a continuation of U.S. patent application Ser. No. 11/581,168, filed Oct. 13, 2006, entitled “INFORMATION PRESERVATION ON A PORTABLE ELECTRONIC DEVICE,” naming Yoon Kean Wong as the inventor, assigned to the assignee of the present invention, and having attorney docket number PALM-3699.5G.CON, which is a continuation of U.S. patent application Ser. No. 09/970,465, now U.S. Pat. No. 7,225,353, filed Oct. 3, 2001, entitled “INFORMATION PRESERVATION ON A PORTABLE ELECTRONIC DEVICE,” naming Yoon Kean Wong as the inventor, assigned to the assignee of the present invention, and having attorney docket number PALM-3699.5G. These applications are incorporated herein by reference in their entirety and for all purposes. 
     
    
     FIELD OF THE INVENTION 
       [0002]    Embodiments of the present invention relate to hand held computer systems. More particularly, embodiments of the present invention provide a method and apparatus for saving information in non-volatile storage in response to a power level reaching a predetermined low threshold. 
       BACKGROUND OF THE INVENTION 
       [0003]    In portable electronic devices, information is often stored in volatile memory, for example random access memory or RAM. This type of memory can operate, that is information can be written or stored into RAM, and read out of RAM, at rates substantially similar to the rate at which a processor is operating. A drawback of RAM is that in general it requires electrical power to not only operate, but also to maintain information. In other words, if power is removed from the RAM device, it will loose all information stored within. 
         [0004]    As an unfortunate consequence, in a battery operated device, when the energy from the device&#39;s battery has been consumed, the information stored in RAM may be lost. In most cases the information created and collected by the user and stored in the device is much more valuable than the device itself. Obviously, losing such information would limit the commercial viability of such products. 
         [0005]    There have been numerous prior art attempts to overcome this problem. One prior art method uses a back-up battery that provides energy only for the limited function of maintaining the contents of RAM while the main battery is being replaced or recharged. 
         [0006]    Another prior art method uses a “lock out” mechanism to reserve a portion of energy in a main battery for the sole purpose of maintaining the contents of RAM. In this mode, after a threshold level has been reached, e.g., 90% of the battery&#39;s energy has been expended, the user can no longer initiate operation of the device. The remaining 10% of the energy is used solely to maintain the contents of RAM. After the final 10% is consumed, RAM contents are lost. 
         [0007]    Yet another prior art method combines the aforementioned “lock out” with a super capacitor. During the lock out mode, the dead battery may be removed and replaced with a fresh cell. The super capacitor is capable of supplying enough energy to maintain the contents of RAM for perhaps one minute, which should be sufficient time to replace the battery. 
         [0008]    Unfortunately, the methods discussed above, all suffer from the same fundamental drawback, that is, maintaining the contents of RAM still consumes power, and there is only a limited amount of power available in the device. If the user does not replenish the energy (replace or recharge the battery) before the “lock out” reserve or the back up battery or the super cap runs out, the information is still lost. 
       SUMMARY OF THE INVENTION 
       [0009]    Therefore, it would be advantageous to provide a method and system providing for the storage of information without consuming power. A further need exists for a hand held computer system that will automatically copy information from RAM to non-volatile memory when the battery is low. A still further need exists for a system and method for recovering information from non-volatile memory after sufficient energy has been restored to enable full operation of the device. 
         [0010]    Embodiments of the present invention provide for the storage of information without power. Further, embodiments of the present invention provide for a hand held computer system that will automatically copy information from RAM to non-volatile memory when the battery is low. Yet other embodiments of the present invention provide for a system and method of recovering information from non-volatile memory after sufficient energy has been restored to enable full operation of the device. 
         [0011]    More specifically, a system and method for information preservation on a portable electronic device are disclosed. First, a signal may be generated that indicates an energy capacity remaining in the battery of a hand held. Then, responsive to such a signal, information from a volatile memory space may be automatically stored into non-volatile storage. 
         [0012]    Another embodiment of the present invention provides for suspending user-initiated operation of a hand held device at a first energy capacity. The system may then maintain information in volatile memory until a second energy capacity is reached. Then, the system may store information into non-volatile storage. 
         [0013]    In one embodiment of the present invention, the non-volatile storage is configured to be capable of storing instructions for the processor of the hand held device. 
         [0014]    In another embodiment of the present invention, the non-volatile storage is connected to the system via an expansion interface. 
         [0015]    In yet another embodiment of the present invention, the system reserves an amount of storage in non-volatile storage. 
         [0016]    In still another embodiment of the present invention, the system dynamically adjusts the reserves of non-volatile storage. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0017]    The accompanying drawings, which are incorporated in and form a part of this specification, illustrate embodiments of the invention and, together with the description, serve to explain the principles of the present invention. 
           [0018]      FIG. 1  is a block diagram of a computer system, which may be used as a platform to implement embodiments of the present invention. 
           [0019]      FIG. 2  is a flow diagram depicting a process  200  for restoring information from non-volatile storage to volatile storage, according to an embodiment of the present invention. 
           [0020]      FIG. 3  is a flow diagram depicting a process  300  for storing information into non-volatile storage in response to an indication of an energy capacity, according to an embodiment of the present invention. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0021]    In the following detailed description of the present invention, a system and method for dynamically generated configuration datasheet; numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be obvious to one skilled in the art that the present invention may be practiced without these specific details. In other instances well known methods, procedures, components, and circuits have not been described in detail so as not to unnecessarily obscure aspects of the present invention. 
       Notation and Nomenclature 
       [0022]    Some portions of the detailed descriptions which follow are presented in terms of procedures, logic blocks, processing and other symbolic representations of operations on data bits within a computer memory. These descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. A procedure, logic block, process, etc., is here, and generally, conceived to be a self-consistent sequence of steps or instructions leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated in a computer system. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like. 
         [0023]    It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussions, it is appreciated that throughout the present invention, discussions utilizing terms such as “indexing” or “processing” or “computing” or “translating” or “calculating” or “determining” or “scrolling” or “displaying” or “recognizing” or “generating” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system&#39;s registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices. 
       EMBODIMENTS OF THE INVENTION 
       [0024]    An embodiment of the present invention is described in the context of a hand held computer system. However, it is appreciated that the present invention may be utilized in other types of battery powered electronic devices where it may be desirable to preserve information when a battery is removed or “dead.” 
         [0025]      FIG. 1  is a block diagram of a computer system, which may be used as a platform to implement embodiments of the present invention. Computer system  100  includes an address/data bus  650  for communicating information, a central processor  605  functionally coupled with the bus for processing information and instructions and a volatile memory  615  (e.g., random access memory RAM) coupled with the bus  650  for storing information and instructions for the central processor  605 . 
         [0026]    Information can be both read from and written to RAM  615  at data rates comparable to processor  605 . Volatile memory  615  may be used to store two general types of information, permanent information and temporary or “dynamic” information. 
         [0027]    Permanent information may include user generated information, such as appointments and address book entries, as well as information downloaded from other computers or otherwise collected by the user, such as stock price quotes or game programs. Such permanent information generally is of long term value. System  100  manages volatile memory  615  in such a manner that such permanent information may be retained as long as power is supplied to volatile memory  615 . 
         [0028]    Volatile memory  615  may also be used by processor  605  to store information and instructions that are valuable for a much shorter period of time. Examples include data structures used by programs and the operating system such as a stack or heap, and storage for interim calculations. Another example may be the frame buffer for a display  625 . 
         [0029]    In general, the user is much more aware of permanent information (e.g., an address book entry) than dynamic information (a parameter passed to a subroutine on a stack data structure). It is appreciated that this is an exemplary, rather than definitive distinction. 
         [0030]    However, volatile memory  615  does not maintain information without power applied. Consequently, some form of non-volatile memory must be included in system  100 . 
         [0031]    Still referring to  FIG. 1 , computer system  100  may include a non-volatile memory  610  (e.g., read only memory ROM) coupled with the bus  650  for storing static information and instructions for the processor  605 . 
         [0032]    Computer system  100  also optionally includes a writeable, non-volatile memory  620  (e.g., flash electrically erasable programmable read only memory) for storing information and instructions for the central processor  605  which can be updated after the manufacture of system  100 . Non-volatile memory  620  can maintain information without power applied. 
         [0033]    Information can generally be read from writeable, non-volatile memory  620  directly by the processor. However, storing information to writeable, non-volatile memory  620  is substantially slower, up to four to six orders of magnitude slower, than reading. Further, the act of storing information to writeable, non-volatile memory  620  also requires greater power than storing information to RAM  615 . 
         [0034]    Consequently, even though writeable, non-volatile memory  620  can retain information without power, it does not substitute for RAM  615  in the normal operation of system  100 . 
         [0035]    Computer system  100  also optionally includes an expansion interface  635  coupled with the bus  650 . Expansion interface  635  can implement many well known standard expansion interfaces, including without limitation the Secure Digital card interface, universal serial bus (USB) interface, Compact Flash, Personal Computer (PC) Card interface, CardBus, Peripheral Component Interconnect (PCI) interface, mini-PCI interface, IEEE 1394, Small Computer System Interface (SCSI), Personal Computer Memory Card International Association (PCMCIA) interface, Industry Standard Architecture (ISA) interface, or RS-232 interface. It is appreciated that external interface  635  may also implement other well known or proprietary interfaces. 
         [0036]    A wide variety of well known expansion devices may be attached to computer system  100  via expansion interface  635 . Examples of such devices include without limitation rotating magnetic memory devices, flash memory devices, digital cameras, wireless communication modules, digital audio players and Global Positioning System (GPS) devices. 
         [0037]    System  100  also optionally includes a communication port  640 . Communication port  640  may be implemented as part of expansion interface  635 . When implemented as a separate interface, communication port  640  may typically be used to exchange information with other devices via communication-oriented data transfer protocols. Examples of communication ports include without limitation RS-232 ports, universal asynchronous receiver transmitters (UARTs), USB ports, infrared light transceivers, ethernet ports, IEEE 1394 and synchronous ports. 
         [0038]    In general, expansion interface  635  has more signal lines and operates at higher data rates than communication port  640 . Conversely, communication port  640  generally is able to communicate over greater distances than expansion interface  635 . It is appreciated, however, that that there can be a great deal of overlap in the type of interface and functions assigned to expansion interface  635  and communication port  640 , in accordance with embodiments of the present invention. 
         [0039]    System  100  optionally includes a radio frequency module  660 , which may implement a mobile telephone, a pager, or a digital data link. Radio frequency module  660  may be interfaced directly to bus  650 , via communication port  640  or via expansion interface  635 . 
         [0040]    Also included in computer system  100  of  FIG. 1  is an optional alphanumeric input device  630 . Device  630  can communicate information and command selections to the central processor  600 . Device  630  may take the form of a touch sensitive digitizer panel. 
         [0041]    The optional display unit  625  utilized with the computer system  100  may be a liquid crystal display (LCD) device, cathode ray tube (CRT), field emission device (FED, also called flat panel CRT), light emitting diode (LED), plasma display device, electro-luminescent display, electronic paper or other display device suitable for creating graphic images and alphanumeric characters recognizable to the user. 
         [0042]    Referring to  FIG. 1 , computer system  100  also includes battery capacity monitor  680 . Battery capacity monitor  680  serves to measure the amount of power remaining in the system&#39;s battery (not shown). There are a variety of well known devices and techniques to measure battery power, for example analog to digital converters to measure voltage and “coulomb counters” which measure actual energy delivered by the battery. 
         [0043]    In an embodiment of the present invention, battery capacity monitor  680  may signal processor  605  that a pre-determined amount of energy remains in the battery. This signal may indicate a “low battery” condition. This amount may be the minimum energy required to perform a storage operation. 
         [0044]    Responsive to this signal, processor  605  may cause information to be copied from volatile RAM  615  into a non-volatile computer readable storage medium, which could be non-volatile writeable (flash) memory  620 , or non-volatile storage connected to expansion interface  635 , for example, a Secure Digital card containing flash memory. 
         [0045]    It is appreciated that other types of non-volatile storage could be connected to expansion interface  635 , including for example battery backed up RAM and rotating magnetic disks. 
         [0046]    In an embodiment of the present invention, battery capacity monitor  680  of  FIG. 1  may generate a signal based on the remaining battery capacity being just sufficient to copy information from RAM  615  to non-volatile storage. 
         [0047]    Most hand held computer systems suspend their operation as a frequent, regular operation, for example when the device turns “off,” either in response to the user pressing the power button or as a result of timing out. As a result, the operations, data structures and application programs of such devices are oriented toward restoring an operating state from a suspended state. Consequently, a given operating state may generally be reconstructed without having to save the processor state and all memory contents. 
         [0048]    In contrast, to suspend the typical desk top computer (and portable computers based off of their design), it is necessary to save substantially all volatile information, including the processor register values and the entire contents of RAM. 
         [0049]    In an embodiment of the present invention, only the permanent information, described previously, may be stored into non-volatile storage. This is sufficient information to restore operation of the hand held device without loss of valuable information. 
         [0050]    In another embodiment of the present invention, the battery capacity monitor  680  may be configured so that it generates a signal whenever less than an energy capacity is present. Consequently, when a battery is removed—the energy capacity is zero—the signal is generated. 
         [0051]    In another embodiment of the present invention, battery capacity monitor  680  of  FIG. 1  may generate a first signal that a pre-determined amount of energy remains in the battery. Responsive to this first signal, the hand held system  100  may automatically enter a “lock out” mode of operation, in which user-initiated operation is prevented (e.g., the system  100  is unresponsive to user attempts to use it, e.g., pushing buttons) and volatile RAM may be placed in a low power, data retention mode. 
         [0052]    While in this lock out mode, the system continues to consume energy from its battery. Eventually, battery capacity monitor  680  may signal processor  605  that a pre-determined amount of energy remains in the battery. 
         [0053]    Responsive to this signal, processor  605  may cause critical information to be copied from volatile RAM  615  into a non-volatile computer readable storage medium, which could be non-volatile writeable (flash) memory  620 , or non-volatile storage connected to expansion interface  635 , for example a Secure Digital card containing flash memory. 
         [0054]    In an embodiment of the present invention, the system may reserve a portion of non-volatile storage, which could be non-volatile writeable (flash) memory  620 , or non-volatile storage connected to expansion interface  635 , during normal operation in order to ensure that such storage is available if it is needed for later use by other elements of the present invention. 
         [0055]    In another embodiment of the present invention, the amount of non-volatile storage reserved may be adjusted as the amount of permanent information increases and decreases. 
         [0056]    In an embodiment of the present invention, an indicator flag may be stored in non-volatile storage in order to indicate that the device has stored information in non-volatile storage as a result of a low battery condition. After energy has been added to the system (for example, by recharging or replacing a battery) the system will check for this indicator flag. If the indicator flag is detected, the information previously stored in non-volatile memory will be restored into operating memory, for example RAM  615 . 
         [0057]    Another embodiment of the present invention provides for clearing the indicator flag after the restoration is complete. 
         [0058]      FIG. 2  is a flow diagram depicting a process  200  for restoring information from non-volatile storage to volatile storage, according to an embodiment of the present invention. 
         [0059]    Process  200  may be entered as a result of a power on reset signal generated by battery capacity monitor  680  or other elements of a power supply (not shown). The power on reset signal indicates that sufficient energy is in the system to begin normal operation. It is appreciated that other signals may also initiate process  200 . 
         [0060]    In step  210 , a location in non-volatile storage (flash  620  or non-volatile storage attached to expansion interface  635 ) is checked for a flag which may indicate that information was stored in non-volatile storage in response to a “dead battery” signal. 
         [0061]    If such a flag is not detected, control is transferred to other processes  299 , which may continue with a power on reset cycle, for example. 
         [0062]    If the dead battery flag is detected, process step  220  may copy information from non-volatile storage to RAM  615 . This operation may restore sufficient information such that a previous loss of power had little or no effect on valuable user generated or collected information. 
         [0000]    After information has been successfully restored, optional step  230  may clear the dead battery indicator flag from non-volatile storage. 
         [0063]      FIG. 3  is a flow diagram depicting a process  300  for storing information into non-volatile storage in response to an indication of an energy capacity, according to an embodiment of the present invention. 
         [0064]    Other processes may typically operate between certain steps of process  300 . In fact, process  300  may typically be reduced to practice in separate software modules. However, it is appreciated that process  300  is depicted generally without the various possible intervening processes in order to describe the present invention, and not unnecessarily obscure elements of the present invention. 
         [0065]    In optional step  310 , system  100  may reserve storage capacity in non-volatile storage. It is appreciated that this operation may take place at virtually any time in the system operation. For example, it may occur very early such as right after power on initialization. As another example, it may occur in response to the attachment of non-volatile storage to expansion interface  635 . 
         [0066]    After optional step  310  completes, process flow continues to other processes  399 , which could be normal operation of the system  100 , and are not the subject of the present invention. 
         [0067]    Optional step  320  may begin in response to optional first energy capacity signal  315 . Signal  315  may be generated by battery capacity monitor  680 , and may be an interrupt signal. Optional suspend user initiated operation  320  may be an interrupt service routine. 
         [0068]    In response to optional first energy capacity signal  315 , optional suspend user initiated operation  320  may place system  100  in a low power mode. A specific operation may be to lock out the user from using the device, for example, by putting the system into a low power mode and ignoring button presses. 
         [0069]    In step  330 , the RAM  615  is set to low power self refresh mode. In this mode, the RAM (for example dynamic RAM) is commanded into its lowest power mode that will retain its contents. 
         [0070]    All operations of processor  605  may then be suspended. All interrupts except for the battery capacity monitor  680  may be masked. System  100  may be configured such that only two events will end this suspended mode of operation. First, energy may be added to system  100 , for example by recharging a battery. This may cause a power good or power on reset signal, which may begin the initialization of system  100  for normal operation. 
         [0071]    Secondly, and as depicted in  FIG. 3 , energy may not be added to system  100 , and suspend operations may continue to drain energy from the battery. 
         [0072]    Still referring to  FIG. 3 , responsive to second energy capacity signal  335 , step  340  may store information into non-volatile storage. Second energy capacity signal  335  may indicate that the battery contains less energy than indicated by optional first energy capacity signal  315 . 
         [0000]    Second energy capacity signal  335  may be an interrupt, and store information into non-volatile storage  340  may be an interrupt service routine. 
         [0073]    After completion of step  340 , option step  350  may store a dead battery flag in non-volatile storage, which may enable process  200  to act upon it at some point in the future. 
         [0074]    The preferred embodiment of the present invention a system and method for information preservation on a portable electronic device is thus described. While the present invention has been described in particular embodiments, it should be appreciated that the present invention should not be construed as limited by such embodiments, but rather construed according to the below claims.