|Publication number||US6883091 B2|
|Application number||US 09/871,329|
|Publication date||Apr 19, 2005|
|Filing date||May 30, 2001|
|Priority date||May 30, 2001|
|Also published as||US20020184483|
|Publication number||09871329, 871329, US 6883091 B2, US 6883091B2, US-B2-6883091, US6883091 B2, US6883091B2|
|Inventors||John A. Morrison, Michael S Allison, Leo J Embry, Stephen Silva|
|Original Assignee||Hewlett-Packard Development Company, L.P.|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (20), Referenced by (17), Classifications (17), Legal Events (5)|
|External Links: USPTO, USPTO Assignment, Espacenet|
This invention relates generally to computer firmware or operating systems and more particularly to shortening computer boot-up time.
During the boot process of many computer systems, the firmware or operating system spends time discovering the amount of memory, configuring memory, walking I/O busses to discover devices (LAN, PCI, SCSI, I2C, etc.), configuring devices, and discovering and configuring the machines topology. Unfortunately, these tasks may take a long time since the firmware or operating system must instruct the computer to probe many addresses and compare many of the results against a relatively large database of device characteristics just to complete the discovery portions of these tasks.
The length of time these tasks take impacts the overall length of time it takes to boot. Slow boot times may aggravate users and increase the time upgrades requiring a reboot take to complete. Slow boot times may also give a user the impression that the computer system is slow or is of inferior speed.
Accordingly, there is a need in the art for methods and apparatus that reduce the boot times of computer systems.
The invention reduces the time it takes to complete a boot process by reducing or eliminating the need to discover many or all of the devices and machine topology. When the computer is in standby, access panels are monitored so that it is detected when they are opened. If an access panel has not been opened, then it is assumed that the system configuration, devices, etc. that may have been affected by access into that component have not changed since the last boot process and there is no need to spend time discovering devices and machine topology that may have been changed by access to that panel. Stored, instead of discovered, configuration information is then used to configure those devices. This reduces the time required to boot since discovery is not performed on all of the devices in the computer. A service processor or other logic may be used to detect which access panels are opened. Also, those elements of the configuration that may have changed by the particular access panels that were opened are re-discovered and that information may be stored for future use during future computer boot-ups.
Other aspects and advantages of the invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention.
INTRUSIONS represents a set of flags that signal intrusion detection for the elements in the COMPONENTS set that support intrusion detection. Each member of the set INTRUSIONS can be either asserted or deasserted. Asserted meaning that either an intrusion has occurred on the corresponding component in COMPONENTS, or it is not known if an intrusion has occurred or not occurred. A member of INTRUSIONS being deasserted means that no intrusion has occured into the corresponding component. Thus each element in the set INTRUSIONS corresponds to an element in COMPONENTS that supports intrusion detection. Hereinafter, an individual and arbitrary member of the set INTRUSIONS may be referred to as INTRUSION_y.
State 1 111 represents the situation when the standby power is on and the primary system power is off. When standby power is on it allows a service processor or other logic to monitor intrusions into access panels. Accordingly, State 1 111 is reached from State 0 110 by transition 1101 when system standby power is turned on.
When primary system power is turned on a transition from State 1 111 transitions to State 2 112 via transition 1112 is made and a first member of COMPONENTS, COMPONENT_x, corresponding to the Base Component is created. The value of COMPONENT_x is set to either INTRU_AND_NOTVALID or NO_INTRU_SUPPORT depending upon whether the Base Component supports intrusion detection or not, respectively. The Base Component is simply the first element listed in the set of components COMPONENTS and may be the main chassis or other major component that houses a group of devices or other components.
State 2 112 represents the central loop point of the component intrusion scan where the process considers each member of COMPONENTS. From State 2 112, there may be a transition to either States 3 113, 4 114 or 5 115 or to State 6 116 when there are no more components to consider.
At the systems first power-up, however, (i.e. after an initial transition from State 0 110 to State 1 111 to State 2 112) all of the members of INTRUSIONS are asserted and there is only one member in the set COMPONENTS. This is the Base Component and the value of the member of COMPNENTS corresponding to the Base Component is set to either NO_INTRU_SUPPORT or INTRU_AND_NOTVALID. Accordingly, the next transition out of State 2 112 is to either State 5 115 via transition 1125 or to State 4 114 via transition 1124. A transition to State 5 115 via transition 1125 is made if the Base Component does not support intrusion detection (because the member of COMPONENTS corresponding to the Base Component equals NO_INTRU_SUPPORT). A transition to State 4 114 via transition 1124 is made if the Base Component supports intrusion detection (because the member of COMPONENTS corresponding to the Base Component equals INTRU_AND_NOTVALID).
If a transition to State 5 115 (via transition 1125) is made, full discovery and configuration code is executed for the Base Component. This may result in additional components being discovered. When additional components are discovered, additional elements are added to the set COMPONENTS and their values set to NO_INTRU_SUPPORT, INTRU_AND_NOTVALID, and INTRU_AND_VALID according to what was discovered or already known about them. Once this process is complete the Base Component is fully configured. A transition to State 2 112 (via transition 1152) is then made and another member of COMPONENTS is made the current component for consideration in State 2 112.
If a transition to State 4 114 (via transition 1124) is made, then discovery and configuration code is executed for the Base Component and a valid profile for the Base Component is built. This also may result in additional components being discovered. When additional components are discovered, additional elements are added to the set COMPONENTS and their values set to NO_INTRU_SUPPORT, INTRU_AND_NOTVALID, and INTRU_AND_VALID according to what was discovered or already known about them. A transition to State 2 112 (via transition 1142) is then made and another member of COMPONENTS is made the current component for consideration in State 2 112.
Once back in State 2 112, after returning from State 4 114 or State 5 115, a component other than the Base Component is now the current component (provided new components have been discovered in either State 4 114 or State 5 115). The next transition out of State 2 112 is to either State 5 115 via transition 1125 or to State 4 114 via transition 1124 because all the members of INTRUSIONS were asserted in during transition 1102 and have not yet been deasserted. In State 4 114 or State 5 115, discovery, configuration, and possibly profile building for the current component takes place. Therefore, upon returning from either of these states, new components may have been added to COMPONENTS. Also, another member of COMPONENTS that has not been the current member (if any) will have been selected as the current component. This process repeats itself for each member in or added to COMPONENTS until there are no more components in need of discovery and configuration. When there are no more components in need of discovery and configuration, a transition to State 6 116 via transition 1126 is made. In State 6 116, the boot process is completed and then followed by normal operation.
A transition out of State 6 116 is made when one or both of the power supplies are switched off. If both primary system power and standby power are turned off, then a transition back to State 0 110 via transition 1106 is made. If only the primary system power is turned off, a transition to State 1 111 via transition 1161 is made and all the members of INTRUSIONS are deasserted. While the system is in State 1 111, access panels may be opened and various components added or removed. When an access panel is opened, this event is noted by the service processor or other logic and the appropriate member of INTRUSIONS is asserted.
When primary system power is once again turned on a transition from State 1 111 transitions to State 2 112 via transition 1112 is made and the current component is set to the member of COMPONENTS corresponding to the Base Component. From State 2 112, there may be a transition to either State 3 113, State 4 114 or State 5 115 depending upon the value of the current member of COMPONENTS and the value of the member of INTRUSIONS corresponding to that member, or to State 6 116 when there are no more components to consider. The transitions from State 2 112 to State 4 114, State 5 115, and State 6 116 were described, above.
If a valid profile for the current component exists, and the current component supports intrusion detection (i.e. COMPONENT_x is set to INTRU_AND_VALID) and the corresponding member of INTRUSIONS is deasserted for this component, then a transition from State 2 112 to State 3 113 is made via transition 1123. In State 3 113, the current component is initialized and configured using the stored profile that was created for it in State 4 114. After this is complete, a transition from State 3 113 back to State 2 112 (via transition 1132) is made and another member of COMPONENTS that has not been the current member (if any) is selected as the current component. Note that no discovery is done in State 3 113. This helps speed the boot process.
The process of transitioning out of State 2 112 to either State 3 113, State 4 114, or State 5 115 repeats itself for each member in or added to COMPONENTS until there are no more components in need of discovery, initialization, or configuration. When there are no more components in need of discovery, initialization, or configuration, a transition to State 6 116 via transition 1126 is made. In State 6 116, the boot process is completed and then followed by normal operation.
In a typical system, the code executed in State 3 113 completes in less time than the code executed for the same component in either State 4 114 or State 5 115 because the code executed in State 3 113 is able to configure the component using stored profile information instead of having to execute additional code to discover information about the component. Accordingly, once there are stored profiles for one or more components, and none of the access panels have been opened (which may cause a change in one or more stored profiles) the boot time is reduced. Since many computer boot-ups are for reasons that do not require opening of access panels, these boot-ups may occur significantly faster.
In addition to the transitions described above, State 1 111 may be reached from State 2 112, State 3 113, State 4 114, or State 5 115 by transitions 1121, 1131, 1141, 1151 which represent the case when primary power is turned off and standby power is turned on during those states. Likewise, but not shown in
Although a specific embodiment of the invention has been described and illustrated, the invention is not to be limited to the specific forms or arrangement so described and illustrated. The invention is limited only by the claims.
|Cited Patent||Filing date||Publication date||Applicant||Title|
|US5564054 *||Aug 25, 1994||Oct 8, 1996||International Business Machines Corporation||Fail-safe computer boot apparatus and method|
|US5745669 *||Jun 21, 1996||Apr 28, 1998||Ast Research, Inc.||System and method for recovering PC configurations|
|US6098158 *||Dec 18, 1997||Aug 1, 2000||International Business Machines Corporation||Software-enabled fast boot|
|US6191503 *||Mar 15, 1999||Feb 20, 2001||Dell Usa, L.P.||Computer with a chassis intrusion detector|
|US6374353 *||Mar 3, 1999||Apr 16, 2002||Mitsubishi Denki Kabushiki Kaisha||Information processing apparatus method of booting information processing apparatus at a high speed|
|US6388574 *||Dec 24, 1996||May 14, 2002||Intel Corporation||Optical chassis intrusion detection with power on or off|
|US6393560 *||May 10, 1999||May 21, 2002||Intel Corporation||Initializing and restarting operating systems|
|US6434696 *||May 11, 1999||Aug 13, 2002||Lg Electronics Inc.||Method for quickly booting a computer system|
|US6434697 *||Oct 6, 1999||Aug 13, 2002||Micron Technology, Inc.||Apparatus for savings system configuration information to shorten computer system initialization time|
|US6519698 *||Oct 6, 1999||Feb 11, 2003||Micron Technology, Inc.||Method for saving system configuration information to shorten computer system initialization time by checking the state of a chassis intrusion detection circuit|
|US6598159 *||Jun 27, 2000||Jul 22, 2003||Intel Corporation||Option-ROM boot|
|US6640316 *||May 23, 2000||Oct 28, 2003||Dell Products L.P.||Boot recovery of simple boot BIOS|
|US6671802 *||Apr 13, 2000||Dec 30, 2003||Hewlett-Packard Development Company, L.P.||Performance optimization of computer system by dynamically and immediately updating a configuration setting based on detected change in preferred use|
|US6718461 *||Apr 28, 2000||Apr 6, 2004||Intel Corporation||Booting processor-based systems|
|US6721881 *||Sep 29, 2000||Apr 13, 2004||Dell Products L.P.||System and method for determining if a display device configuration has changed by comparing a current indicator with a previously saved indicator|
|US6721885 *||Sep 8, 2000||Apr 13, 2004||International Business Machines Corporation||Reducing start-up time and avoiding customer-induced system failures for personal computers|
|US6725368 *||Dec 9, 1999||Apr 20, 2004||Gateway, Inc.||System for executing a post having primary and secondary subsets, wherein the secondary subset is executed subsequently to the primary subset in the background setting|
|US6732264 *||Dec 14, 1999||May 4, 2004||Intel Corporation||Multi-tasking boot firmware|
|US6754817 *||Jan 25, 2001||Jun 22, 2004||Dell Products L.P.||Apparatus and method for detecting a change in system hardware configuration to reduce the amount of time to execute a post routine|
|US20010039612 *||Dec 4, 2000||Nov 8, 2001||Lee Sang-Jin||Apparatus and method for fast booting|
|Citing Patent||Filing date||Publication date||Applicant||Title|
|US7162625 *||Mar 10, 2003||Jan 9, 2007||Dell Products L.P.||System and method for testing memory during boot operation idle periods|
|US7257702 *||Apr 16, 2004||Aug 14, 2007||Matsushita Electric Industrial Co., Ltd.||Boot time reducing device including boot preparation instructing unit|
|US7299346 *||Jan 14, 2003||Nov 20, 2007||William K. Hollis||Method and apparatus to minimize computer apparatus initial program load and exit/shut down processing|
|US7624217||Feb 12, 2007||Nov 24, 2009||Microsoft Corporation||Adaptive boot sequence|
|US7890741 *||Apr 3, 2003||Feb 15, 2011||O2Micro International Limited||Low power digital audio decoding/playing system for computing devices|
|US8261050 *||May 8, 2008||Sep 4, 2012||International Business Machines Corporation||Vital product data collection during pre-standby and system initial program load|
|US8572294 *||May 17, 2011||Oct 29, 2013||Ncr Corporation||Device start up system and method|
|US20040006690 *||Apr 3, 2003||Jan 8, 2004||Sterling Du||Low power digital audio decoding/playing system for computing devices|
|US20040181656 *||Mar 10, 2003||Sep 16, 2004||Dell Products L.P.||System and method for testing memory during boot operation idle periods|
|US20060184780 *||Apr 16, 2004||Aug 17, 2006||Mikihiko Yamada||Start time reduction device and electronic device|
|US20070271130 *||May 19, 2006||Nov 22, 2007||Microsoft Corporation||Flexible scheduling and pricing of multicore computer chips|
|US20080195787 *||Feb 12, 2007||Aug 14, 2008||Microsoft Corporation||Adaptive boot sequence|
|US20090282416 *||Nov 12, 2009||International Business Machines Corporation||Vital product data collection during pre-standby and system initial program load|
|US20110173429 *||Jul 14, 2011||Hollis William K||Method and apparatus to minimize computer apparatus initial program load and exit/shut down processing|
|US20120297094 *||Nov 22, 2012||Ncr Corporation||Device start up system and method|
|US20130086372 *||Jun 13, 2012||Apr 4, 2013||Akihiro Kojo||Information processing apparatus and boot control method|
|USRE42936||Nov 6, 2009||Nov 15, 2011||Hollis William K||Method and apparatus to minimize computer apparatus initial program load and exit/shut down processing|
|U.S. Classification||713/2, 713/1, 348/152, 361/640, 340/541, 713/100, 379/44, 361/637, 361/636, 361/635|
|International Classification||G06F9/46, G06F21/00, G06F9/445|
|Cooperative Classification||G06F9/4411, G06F21/575|
|European Classification||G06F21/57B, G06F9/44A4|
|Oct 3, 2001||AS||Assignment|
|Sep 30, 2003||AS||Assignment|
Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY L.P.,TEXAS
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD COMPANY;REEL/FRAME:014061/0492
Effective date: 20030926
|Sep 30, 2008||FPAY||Fee payment|
Year of fee payment: 4
|Oct 2, 2012||FPAY||Fee payment|
Year of fee payment: 8
|Nov 9, 2015||AS||Assignment|
Owner name: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, TEXAS
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.;REEL/FRAME:037079/0001
Effective date: 20151027