OPERATING VEHICULAR PROCESSOR-BASED SYSTEMS

Abstract: A processor-based system in a vehicle may be quickly suspended to a lower power consumption state (16) after detecting a signal (10) indicative of engine cranking. Advantageously, the system may be caused to enter the lower power consumption state (16) prior to the time that power is reduced as a result of engine cranking. If the operating system is active when the signal is detected, a routine (15) may be called which causes device contexts to be saved before returning the system to a reduced power consumption state (16). Otherwise, if the operating system is inactive, an interrupt handler (14) may be called which immediately returns the system to a reduced power consumption state (16). In this way, the system may be reliably restored to a lower power consumption state (16) before being exposed to the power reduction inherent in engine cranking.

Description: Operating Vehicular Processor-Based Systems Background This invention relates generally to vehicular processor-based systems. A number of processor-based systems may be used in vehicles such as automobiles or trucks. Conventionally, a engine controller is utilized to control the operation of the engine. A body controller may be utilized to control all other operations of the vehicle such as remote opening of doors, controlling radios and the like. In addition, vehicles may include processor-based systems for providing conventional personal computer functions. For example, in car personal computers may provide routing and mapping information as well as entertainment through a compact disc or digital video disc player. Thus, a variety of conventional computer functions including mapping functions, music, movies and game functions may be provided through the in car personal computer. In most personal computers, it is desirable to have at least one lower power consumption state. Particularly, in battery powered systems, it is desirable to reduce power consumption during periods of inactivity. Thus, some processor-based systems used in vehicles may have lower power consumption states such as suspend-to-RAM (STR) or suspend-to-non-volatile memory (STN). The STR mode may be a reduced power consumption mode that still continues to use some power. However, the system can generally be reactivated more quickly from the suspend-to-RAM state than from the suspend- to-non-volatile memory state. A problem arises in connection with vehicular processor-based system when the engine is cranked. Conventionally, when the engine is cranked, the available power is greatly reduced for a period of time. A processor-based system, that is not in its reduced power consumption state, may be adversely affected by the reduced power condition. Generally, if nothing else is done, the processor-based system experiencing such a reduced power condition may shut itself down and automatically reboot. In connection with processor-based systems such as those used for in car personal computers, this rebooting sequence delays the initiation of the personal computer. It would be disconcerting to the user if every time the user turns the engine on, the in car personal computer attempts to come on, fails and then reboots. As a result of this sequence of operation, a delay period may be created before the processor-based system may be accessed. One available solution for this problem is to provide a potential source, such as a battery, in association with the vehicular processor-based system. However, this solution tends to be unreliable. For example, providing a battery in association with the processor- based system may require replacing the battery periodically. Thus, the user is burdened with special care instructions for the in car personal computer. In addition, requiring an additional battery or other potential source raises the cost of the overall computer system. Thus, there is a continuing need for a better way to adapt vehicular processor-based systems to the period during cranking when the available power is reduced. Summary In accordance with one aspect, a method for operating a processor-based system in a vehicle includes detecting a signal indicative of engine cranking. The system is suspended to a lower power consumption state before a crank induced power reduction occurs. Other aspects are set forth in the accompanying detailed description and claims. Brief Description of the Drawings Fig. 1 is a state diagram for one embodiment of the present invention; Fig. 2 is a flow chart for one aspect of one embodiment of the present invention; Fig. 3 is a flow chart for another aspect of one embodiment of the present invention; Fig. 4 is a flow chart for another of aspect of one embodiment of the present invention; and Fig. 5 is a block diagram showing one embodiment of the present invention. Detailed Description A processor-based system in a vehicle such as a car or a truck is generally exposed to the reduced power consumption state that occurs during engine cranking. Thus, referring to Fig. 1, a crank interrupt indicated at 10 may be experienced. The crank interrupt may be a signal indicative of cranking operation which may supplied directly to the processor of a processor-based system. Upon receiving the crank indicative signal, the system can take one of two alternative courses. If the operating system is already active, in response to the crank interrupt, an operating system non-maskable interrupt handler 15 is invoked. The handler 15 may cause a routine which is responsible for reducing the power consumption state of the system to be activated as indicated at 18 The routine may save the context of devices in the processor- based system and place those devices into an off condition which may be the D3 state associated with the Advanced Configuration and Power Interface (ACPI) Specification, Revision 1 0, December 22. 1996 (available at www teleport com/~acpι) The amount of time that the routine 18 takes may be determined by controlling the number of steps which the routme implements That is, the time peπod required for the power off routme 18 to save device states and then enter a reduced power consumption mode, such as a suspend-to-RAM, may be engineered to involve less time than the amount of time between the crank interrupt and the crank-mduced reduction of system power The power reduction is due to the dedication of available power sources to the cranking operation In general, this time peπod is generally less than about 20 milliseconds in current systems Thus, m response to the crank interrupt signal, a power off routine may be called directly by a non-maskable interrupt (NMI) handler when the operating system is active The power off routme, after shutting peπpheral devices down, places the system in a reduced power consumption state 16 such as suspend-to-RAM, in one embodiment of the present invention If the system is in a reduced power consumption mode before the power reduction occurs, the system can resume out of the reduced power consumption mode quickly after the cranking operation is done Thus, the effect of the cranking operation and its associated power reduction is largely invisible to the user, in one embodiment of the present invention Alternatively, if the operating system has not yet been activated at the time when a crank interrupt signal 10 occurs, a bootloader may begin operation by immediately vectoπng to an NMI handler 14 which may operate without invoking the power off routine 18 In this case, since the operating system is not yet active, it is not necessary to save the context of devices The old context of the devices may still be valid at this point, stored in the previous reduced power consumption state such as suspend-to-RAM or suspend-to-non-volatile memory, in one embodiment of the invention It is virtually certain that those devices have no new context to save at this point The system may vector to the NMI handler while the bootloader is running, putting the system back into a reduced power consumption state 16, such as the suspend-to-RAM or suspend-to-non-volatile state The system may very quickly be placed into the safer, reduced power consumption state well in advance of the power reduction that occurs dunng engine cranking Thus, in either case, the system may suspend to a lower power consumption state prior to the power reduction that occurs when the engine cranks. This prevents the system from failing which would require rebooting and delay to full system operation. In addition, previous contexts of applications may be lost as well. Generally, when the ignition is turned on after a given period of no operation, the system uses the right path in Fig. 1, loads the bootloader NMI handler 14 and immediately resumes the reduced power consumption state 16. However, if the user turns to the ignition accessory (ACC) feature, the system operates for a period without cranking. The operating system eventually boots. Thereafter, if the engine is cranked, the left path in Fig. 1 may be taken and the power off routine 18 may be called before going to the lower power consumption state. In many cases, at least two lower power consumption states may be provided. A first lower power consumption state, such as suspend-to-RAM, may reduce the power consumption but provide for quicker resumption to a normal operating state. A second lower power consumption state, such as suspend-to-non-volatile memory, may take more time to resume the system while using less power. Commonly, if the system is inactive for a period exceeding a preset time period, the system goes from normal operating state to the suspend- to-RAM state. If the period of inactivity continues in excess of another time period, the system may suspend to non- volatile memory (STN), in one embodiment of the invention. Thus, when the engine is operated, the system may be either in a suspend-to-RAM or suspend-to-non-volatile memory, as examples. In either case, the operation of the system shown in Fig. 1 may be the same, in one embodiment of the present invention. That is, whatever power consumption state the system was in before the engine cranks, if the operating system is not active, the system determines what was the prior state and suspends to the state it was in prior to engine cranking. Of course, if the operating system is active, the system would not be in either the suspend-to-RAM or the suspend-to-non-volatile memory states. In other embodiments, it may be desirable to always place the system into suspend-to- RAM state rather than to return the system to a suspend-to-non-volatile memory state when a crank interrupt signal is received. Referring next to Fig. 2, a flow for implementing software for the bootloader NMI handler 14 begins by calling the bootloader and the NMI handler as indicated at block 20. The flow in Fig. 2 arises when the operating system is not yet active. At diamond 22 a check determines whether the active non-maskable interrupt is due to engine cranking. If so, the system immediately resumes a reduced power consumption state as indicated at block 24. Otherwise, the system defaults to the conventional NMI response for the given bootloader. Referring now to Fig. 3, software for setting the vector to either the handler 20 or an operating system NMI handler 46 begins at system reset 28. The NMI vector for the local handler is installed at block 30. The vector for the local handler is initially set to point to the bootloader NMI handler 20. Thus, immediately upon system reset, a vector to the bootloader NMI handler is installed. The vector causes a jump to occur to an interrupt handler. Next as indicated at block 32, an initialization or booting process may be implemented. At diamond 34 a check determines whether a system resume has occurred. If so, the system is restored or restarted as indicated at block 36. The booting sequence then resumes the operating system as indicated in block 38. The NMI vector for the operating system NMI handler 46 (Fig. 4) is installed (block 40) in place of the vector to the handler 20. Device contexts may be restored using a stored image, for example, as indicated in block 42 and any applications may be restarted as shown in block 44. Thus, the sequence from block 38 to 44 is a boot sequence from system reset to operation of the operating system and applications associated therewith. After the operating system has been activated, the vector for the operating system NMI handler replaces the vector to the bootloader NMI handler. Namely, at block 40, the vector is redirected, after the operating system has resumed, to the operating system NMI handler 46 from the bootloader NMI handler 20, as set initially. The operation of the operating system NMI handler 46, shown in Fig. 4, begins by determining if the active non-maskable interrupt is due to engine cranking as determined in diamond 48. If so a power off routine 18, discussed previously, is called to put the system into a lower power consumption state such as the suspend-to-RAM state. Otherwise, the normal default actions for other types of non-maskable interrupts are implemented as indicated at block 50. In this case, the power off routine 18 is initiated (blocks 52 and 18) and the system is placed into a suspend state as indicated at block 56. In the course of operating the power off routine 18, device contexts are saved and devices may be placed into a reduced power consumption state or an off state such as the D3 state in the ACPI Specification. Upon operating system resume (block 38), the flow continues through blocks 40-44. After cranking ends (block 57), a signal may be generated by the ignition system, causing a wake- up signal to be received by the processor, indicating that cranking is complete. The system may then resume automatically from system reset (block 28) in response to that wake-up signal (block 59). Thus, in either case, whether the operating system is already active or whether it is inactive during a cranking cycle, the system may be placed into a reduced power consumption state within a determinate period of time. The time is determinate because the bootloader NMI handler operates quickly without involving the operating system to return the system to its initial reduced power consumption state, without even bothering to power down devices or save contexts. Alternatively, if the operating system is active, the power off routine 18 may be called. However, because the power off routine 18 is called directly without involving the operating system, the transition to the reduced power consumption state may occur within a determinate period of time. The amount of time may be determined by controlling the number of activities that the power off routine 18 implements. In contrast, if the operating system were involved, there is no way to know how many applications or drivers have been loaded onto the system. Thus, the amount of time that the operating system would take to transition to the reduced power consumption state is indeterminate. In some situations, that indeterminate amount of time may exceed the available time to power the system down before the cranking induced power reduction occurs. Thus, with one embodiment of the present invention, the system may adaptively handle an interrupt due to cranking, whether or not the operating system is active, returning the system to a reduced power consumption state before the crank induced power reduction adversely affects the system. Referring next to Fig. 5, the system may include a processor 58 coupled to an interface 60 which in turn is coupled to system memory 62. The interface 60, in one embodiment of the present invention, may be coupled to a display 64. The interface 60 may also be coupled to a bus 66 and another interface 68. The interfaces 60 and 68 may be implemented through chipsets or bridges. The interface 68 couples a bus 74 and storage 70. In some processor-based systems used in vehicles, the storage 70 may be implemented by a flash memory system. In other cases, a hard disk drive storage may be utilized. The operating system NMI handler 46 as well as the power off routine 18 may be stored on the storage 70. The basic input/output system (BIOS) 76 may be stored on a memory associated with the bus 74. Conventionally, the BIOS is stored in a read only memory (ROM) that may be provided on a legacy bus 74. The non-maskable interrupt handler 20 may be stored with the BIOS 76, as indicated in Fig. 4, for quick operation. While the present invention has been described with respect to a limited number of embodiments, those skilled in the art will appreciate numerous modifications and variations therefrom. It is intended that the appended claims cover all such modifications and variations as fall within the true spirit and scope of this present invention.

Claims: What is claimed is 1 A method for operating a processor-based system m a vehicle comprising detecting a signal indicative of engine cranking, and suspending said system to a lower power consumption state before a crank induced power reduction occurs 2 The method of claim 1 further including determining whether the operating system is active after detecting a signal indicative of engine cranking 3 The method of claim 2 further including using a first interrupt handler if an operating system is active and using a second interrupt handler if the operating system is inactiλ e 4 The method of claim 3 further including installing a first vector to the first interrupt handler after system reset and replacing said first vector with a second vector to the second interrupt handler after the operating system becomes active 5 The method of claim 4 wherein, if the operating system is active, saving device contexts before causing said system to enter the lower power consumption state 6 The method of claim 4 further including immediately returning the system to a lower power consumption state if the operating system is not active 7 The method of claim 5 further including calling a routine for saving the device contexts directly without involving the operating system, upon detecting a signal indicative of engine cranking 8 The method of claim 1 wherein suspending includes causing said system to enter a lower power consumption state withm 20 milliseconds after detecting a signal indicative of engine cranking 9. The method of claim 1 wherein suspending includes determining the lower power consumption state that the system was in at the time a signal indicative of engine cranking was detected and suspending said system to that state. 10. An article comprising a medium for storing instructions that cause a processor-based system in a vehicle to: detect a signal indicative of engine cranking; and suspend the system to a lower power consumption state before a crank induced power reduction occurs. 1 1. The article of claim 10 further storing instructions that cause a processor- based system to determine whether the operating system is active after detecting a signal indicative of engine cranking. 12. The article of claim 11 further storing instructions that cause a processor- based system to use a first interrupt handler if an operating system is active and use a second interrupt handler if the operating system is inactive. 13. The article of claim 12 further storing instructions that cause a processor- based system to install a first vector to the first interrupt handler after system reset and replace said first vector with a second vector to the second interrupt handler after the operating system becomes active. 14. The article of claim 13 further storing instructions that cause a processor- based system to save device contexts before causing the system to enter the lower power consumption state if the operating system is active. 15. The article of claim 13 further storing instructions that cause a processor- based system to return the system to a lower power consumption state if the operating system is not active. 16 The article of claim 14 further storing instructions that cause a processor- based system to call a routine for saving the device contexts directly without involving the operating system upon detecting a signal indicative of engine cranking 17 A processor-based system for use in a vehicle comprising a processor, a storage coupled to said processor, a detector to detect a signal indicative of engine cranking and to suspend said system to a lower power consumption state before a crank induced power reduction occurs 18 The system of claim 17 wherein said processor-based system suspends to a reduced power consumption state within 20 milliseconds after detecting the signal indicative of engine cranking 19 The system of claim 18 wherein said processor is programmed to act as said detector 20 The system of claim 19 including a basic input/output system, coupled to said process, an operating system and an interrupt handler or return the system to a lower power consumption state when the operating system is inactive when the signal indicative of engine cranking signal is detected

Inventors: FLEMING BRUCE L, NOEHRING LEE P, FLEMING, BRUCE, L., NOEHRING, LEE, P.
Applicants: FLEMING BRUCE L, INTEL CORP, NOEHRING LEE P, FLEMING, BRUCE, L., INTEL CORPORATION, NOEHRING, LEE, P.
Application year: 2000
Main classification: G06F1
IPC codes: F02D45, G06F1, G06F11